




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
open,作為當今最復雜的系統之一,開放系統互聯(OSIX.200種定義)是一個包含了大量抽象的例子。OSI是一個國際通用的標準體系,從物理層一直到用戶應用層,管理著計算OSI之所以被稱為開放系統是因為OSIASN.1(AbstractSyntaxNotationOne,X.208),把這些對integer、bitstring一類的簡單類型到結構化類型,如set和sequence,還可以使用這些類型構建復雜類型。BER說明了如何把每種另外一套編碼規則DERBERASN.1ASN.1、BER和DER的一套子集,以便提供足夠的背景知識理解和實現一種基于OSI的應用——RSAPublic-KeyCryptographyStandards。本文names例子作為總結。CCITT的建議文檔:X.208、X.209,這兩份文檔中定ASN.1BER。術語和符號。本文中,octet(字節)8bit的無符號整數。Bit8bit1 ASN.1類型的值是該類型集合里的一個元素。ASN.1有四種類型:簡單類型,CHOICEANYASN.1的分配符(::=)給類型和值指定名字,這些名CHOICEANYASN.1類型都有一個標簽,由一個類和一個非ASN.1類型。也就是說,ASN.1類型的名字并不影Application:該類型的含義由application決定,如X.500目錄服務。兩個不同的implicitexplicit標簽獲得。表一列ASN.1universal-class標簽。2BIT3OCTET45OBJECT6SEQUENCEandSEQUENCESETandSET5節定義了類型的更多細節。BITSTRING:由0和1OBJECTIDENTIFIER:對象標識符,有一列整數構成,用于確定對象,如算法或OCTETSTRING:任意的octet(8bit值)簡單類型分為兩類:stringnon-string類型。BITSTRINGIA5String,OCTETSTRING,PrintableString,T61String,UTCTimestring類型。octetstring值。SETOF:0個或某給定類型多次出現的無序集合構類型中區分組件類型。例如,SET或SEQUENCE類型的可選組件一般都給予不同的context-specific標簽以避免混淆。ASN.1關鍵詞[classnumberIMPLICIT(5.1節)ASN.1關鍵詞[classnumber]EXPLICIT(5.2節)表示。ASN.1類型默認定義為隱式標簽,關鍵詞[classnumber]默認總是與ANY有一個或多個備選項(alternative;ANY類型表示任意類型的任意值,其中任意類型可能基本編碼規則(BasicEncodingASN.1ASN.1值表示成字節字符串的方法,BER(BEROSI中轉換這些值的標準)BERASN.1的值有三種編碼方法,選擇哪種取決于值的類型和值的長度是non-string類型使用第一種(簡單定長編碼;結構化類型可使用任一種結構化的編碼方法;Identifieroctets:ASN.1Lengthoctets:對于定長編碼方法,它指出了內容字節個數;對于結構化非定長編Contentsoctets:對于簡單定長編碼方法,它給出了值的具體表示;對于結構化的End-of-contentsoctets:對于結構化非定長的編碼方法,它表示內容結束;對于其簡單定長方法(Primitivedefinite-length事先預知的。BER編碼的部分定義如下:簽值(31)BitBit00011011imberfm:兩個或多個ct。第一個ct形式如lw-aumrfm,但是i5-1均為1。第二個和以后的字節給出標簽值,基于128,最高位在it810。octets之間Shortform:一個字節,bit8為0,bit7-1結構化定長方法(Constructeddefinite-length的類型和在任何類型基礎上由顯式標簽生成的類型。要求值的長度事先已知。BER編碼方Lengthoctets3.1對于簡單string5節。結構化非定長方法(Constructedindefinite-lengthrg成的類型和在任何類型基礎上使用顯式標簽生成的類型。不要求事先知道值的長度。ERIdentifieroctets3.2Contentsoctets.3.2 00值的內容octet出現的位置,可把00和00分別視為identifier和lengthoctet。因此DERBERoctetstringASN.1值的編碼方法。DERoctetstringASN.1編碼來計算數字簽名。DERX.5098.7節定義。string類型和在其基礎上使用隱式標簽生成的類型,必須使用簡單定長編ASN.1BERDER對這些類型進行PKCS#7ExtendedCertificateOrCertificateextendedCertificate備ASN.1表示法[[class]number]IMPLICITclass=UNIVERSAL|APPLICATION|其中,Type是類型,classclass名,numberASN.1模塊中,也可以使用[[classnumberType符號,CHOICE類型的組件中。例:PKCS8PrivateKeyInfoattributes組件,具有一個隱式的、context-specific標簽:PrivateKeyInfo::=SEQUENCE{versionVersion,privateKeyAlgorithmPrivateKeyAlgorithmIdentifier,privateKeyPrivateKey,attributes[0]IMPLICITAttributesOPTIONALBERencoding:根據下層類型可以采用簡單化的或結構化的編碼。內容字節與下層值octet為80;如果采用結構化的編碼(bit6為1),則identifieroctet為DERencodingContentoctetDERPKCSANYSEQUENCE類型組件,X.509Certificateversion組件。ASN.1表示法[[class]number]EXPLICITclass=UNIVERSAL APPLICATION Type表示類型,class是一個可選的類名,number是一個非負整數,表示在類內的標如果沒有類名,則標簽為context-specific類。Context-specific類標簽只能出現在SEQUENCE、SETCHOICEASN.1[[classnumberType符號,EXPLICIT是隱含的(2.3節。在模塊以外的地方進行定義聲明,最好顯式寫EXPLICIT以避免語義不清。ContentInfo::=SEQUENCE{contentTypeContentType,[0]EXPLICITANYDEFINEDBYcontentTypeOPTIONAL這里下層的類型為ANYDEFINEDBYcontentType,類名省略了(Certificate::=version[0]VersionDEFAULTBERencoding.結構化編碼。ContentsoctetsBER例:ContentInfocontentBERidentifieroctets為lengthoctets為下層ANYDEFINEDBYcontentType值的BER編碼長DERencoding.結構化編碼。ContentsoctetsBERANYPKCS#7ContentInfocontentX.509'sAlgorithmIdentifier類型中特定算法的參數,或X.501中Attribute類型和#8,#9and#10中,AttributeValueAssertionX.501DNASN.1表示法ANY[DEFINEDBYidentifierAlgorithmIdentifier::=SEQUENCE{algorithmOBJECTIDENTIFIER,parametersANYDEFINEDBYalgorithmOPTIONALBERencoding.BER例:parameter組件的BER編碼值是實際類型值的BER編碼。實際類型在DERencoding.DERBIT0string類型。BITSTRING類型用于PKCS#6ExtendedCertificate類型中的extendedcertificates的digitalsignatures,或X.509Certificate類型的certificates的digitalsignaturesX.509SubjectPublicKeyInfocertificatespublickeys。ASN.1表示法BITSubjectPublicKeyInfo::=SEQUENCE{algorithmAlgorithmIdentifier,publicKeyBITSTRING}BERencoding.簡單或結構化的編碼。在簡單編碼中,第一個內容字節指出了該bitstring8bit數(bit稱為無用的比特。第二個和隨后的內容字節bitstring的值。轉換過程如下:bitstring07bitstring8的倍8的倍數,則不需要填充8bitoctet。8bit的整數倍。DERpaddedwith5dlongformoflength0303006econstructedencoding:"0110111001011101"+0302060304066e5dCHOICE類型用于表示擴展證書的聯合體和 ExtendedCertificateOrCertificateX.509ASN.1表示法CHOICE[identifier1][identifiern]Typenidentifier1,……,identifiernidentifiers表示不同的備選項。Type1,……,Typen是備選項的類型。Identifiers主要是為了書面表示,并不影響類型的值PKCS#7ExtendedCertificateOrCertificateCHOICE類ExtendedCertificateOrCertificate::=CHOICE{certificateCertificate,--X.509extendedCertificate[0]IMPLICITExtendedCertificateidentifierscertificateextendedCertificate,備選項的類Certificate和[0]IMPLICITExtendedCertificate。BERencoding.BER編碼相同。由于備選項的標簽值不同,所以可BER編碼。certificateBERidentifieroctets30,如果選擇extendedCertificatea0。DERencoding.與被選中的選項的DER0string類型。IA5String類型用于PKCS#9的electronic-mailaddress,unstructured-name,andunstructured-address屬性。ASN.1表示法BERencoding.IA5stringBER編碼的串聯。例:根據長度字節的形式和采用簡單還是結構化編碼方式,\h"te\hst1@"BER160d7465737431407273612e636f6dDER168174longformoflength7273612e636f36constructedencoding:"test1"+"@"+636fDERencoding.簡單化編碼。ContentsoctetsBERIA5String類型值\h"te\hst1@isDER160d7465737431407273612e636fPKCS5PBEParameterX.509Certificate類型中表示版本號和序列號。ASN.1表示法INTEGER[{ identifiern(valuen)identifier1,……,identifiern是可選的不同識別符,value1,……,valuen是可Version::=INTEGER{v1988(0)v19880相關聯。X.509Certificatev1988Certificate::=versionVersionDEFAULTBERencoding.2256,最高位000字節。3BER編碼的例子(同時也是DER編碼的例子IntegerBER002010201020200020201-0201-0202FFDERencoding.BERASN.1表示法BERencoding.050581DERencoding.簡單編碼。內容為空。NULLDER0500OBJECTOBJECTIDENTIFIER類型表示一個對象識別符,由一列整數組件組成,用于識別一個對象,如算法、屬性類型、或定義了其他對象識別符的注冊機構。一個OBJECTOBJECTIDENTIFIER值由注冊機構指定其含義。每個注冊機構負責由一個指定序列OBJECTIDENTIFIER類型在PKCS7的ContentInfor類型中用于識別content,X.509AlgorithmIdenifierX.501Attribute和AttributeValueAssertionAttributePKCS#6,#7,#8,#9,and#10,AttributeValueAssertion類型用于X.501distinguishednames。OBJECTIDENTIFIERPKCS中定義。ASN.1表示法OBJECTOBJECTIDENTIFIERASN.1{[identifier]component1□□componentncomponenti=identifieri|identifieri(valuei)|identifieridentifier1,……,identifiern是識別符,value1,……,valuen是可選identifieridentifier的形式使用另一個對象identifier1,……,identifiern主要用于書寫,但是,{iso(1)member-body(2)840113549{128401135494列舉了一些對象識別符的值和它們的含義。Objectidentifier{12ISOmember{12840US{12840113549{128401135491RSADataSecurity,Inc.{25directoryservices{258Table4.SomeobjectidentifiervaluesandtheirBERencoding.value1,……,valuen表示在整個對象40×value1value2value1的值01,2value101value2039之間;根據1。RSADataSecurityInc.BER40×422a16。8406×16864811354967716d1686f70dBER06062a864886f7DERencoding.BEROCTETOCTETSTRINGOCTETSTRING值可以為任意長度,0string類型。ASN.1表示法OCTETSTRING[SIZE({size|sizesize1size2OCTETSTRINGSIZEsize)形式下,octetstringsizeoctetsOCTETSTRINGSIZEsize1..size2形式下,octetstringsize1size2octetsOCTETSTRING形式下,octetstring大小任意。PKCS#5PBEParameterOCTETSTRINGPBEParameter::=SEQUENCE{saltOCTETSTRINGSIZE(8),iterationCountINTEGERBERencoding.octetstringBER編碼的串聯。012345abcdefBER0423456789abcdDER0481080123456789abcd longformoflength24 constructedencoding:01...67+89...0404012345040489abcdDERencoding.簡單化編碼。ContentsoctetsBEROCTETSTRING0123456789abcdefDER04080123456789abcdA,B,□□,a,b,□□,0,1,□□,(space)'()+,-./:=stringPrintableStringPKCS#9challenge-passwordunstructuerd-address屬性,也用于幾個X.521distinguishednamesattributes.ASN.1表示法BERencoding.ASCII編碼根據長度字節的形式和采用哪種編碼方法,可打印字符串"TestUser1"BER編130b54657374205573657220 DER13810b54657374205573657220longformoflength33 constructedencoding:"Test"+"User13055465737413065573657220DERencoding.BER可打印字符流"TestUser1"DER130b54657374205573657220SEQUENCE類型表示一個或多個類型的有序集合。SEQUENCEPKCS和相關標準。ASN.1表示法:SEQUENCE[identifier1]Type1[{OPTIONAL|DEFAULT[identifiern]Typen[{OPTIONAL|DEFAULT這里identifier1,……,identifiern是可選的、針對不同組件不同的識別符,Type1,……,Typen是組件的類型,value1,……,valuen是組件的可選默認值。識別符Validity::=SEQUENCE{startUTCTime,endUTCTimeBERencoding.BER編碼按照定義的順序的串聯,OPTIONALDEFAULT識別符的組件需遵守下列規則:OPTIONALDEFAULTDERencoding.BERDEFAULT限定詞EQUENCESEQUENCEOF0SEQUENCEOFX.501distinguishednamesASN.1表示法SEQUENCEOFRDNSequence::=SEQUENCEOFBERencoding.結構化的編碼。ContentsoctetsBER編SETPKCSASN.1表示法SET[identifier1]Type1[{OPTIONAL|DEFAULT[identifiern]Typen[{OPTIONAL|DEFAULTBERencoding.結構化編碼。ContentsoctetssetBER編碼的串聯,可以是任意OPTIONALDEFAULT限定詞的組件需滿足下列規則:setOPTIONALDEFAULT限定詞的組件值未指定,則內容字節中BER編碼。BER編碼。DERencoding.BERSETSETOF0SETOFPKCS#6,#7,#8,#9and#10中表示屬性集,或信息摘要算法識別PKCS#7X.501distinguishednames。ASN.1表示法SETOFType例 的RelativeDistinguishedName類型由0個或多RelativeDistinguishedName::=SETOFAttributeValueAssertionBERencoding.BER編碼按任意順序的串BER編碼的最后一個字節BER編碼,直到出現差BER編碼。0string類型。T61String類型用于PKCS#9的unstructured-address和challenge-passwordattributes,,X.521attributes。ASN.1表示法BERencoding.T.61流形式ASCIIT.61BER編碼的串聯。例::根據長度字節的形式和采用哪種編碼方法,T61String類型值"clspubliques"(Frenchfor"publickeys")BER編碼可以為下列任一種:14636cDER207075626c69717565148163longformoflength207075626c6971756534constructedencoding:"cls"+""+656c69717565DERencoding.BERT61String類型值"clspubliques"DER140f636cc26573207075626c69717565
YY是年份的末兩位MM是月份(01to12)DD是日(01to31)hh是小時(00to23)mm是分鐘(00to59)ss是秒(00to59)Z表示本地時間是GMT,表示本地時間落后于GMT,-hh'是與GMTmm'是與GMTstringUTCTime類型用PKCS#9的signing-timeattribute的簽發時間和X.509的Validity類ASN.1表示法BERencoding.簡單化或結構化編碼。如果使用簡單化編碼,內容字節以流的形式給出UTCTime)4:45:40p.mPacificDaylightTimeonMay61991BER170d39313035303632333435343017113931303530363136343534302D3037DERencoding.BERASN.1DER編碼的例子:X.501typeName本節給出了X.501NameASN.1Name::=CHOICE{RDNSequenceRDNSequence::=SEQUENCEOFRelativeDistinguishedName::=SETOFAttributeValueAssertion::=SEQUENCEAttributeValueAttributeType::=OBJECTAttributeValue::=RDNSequence(X.500RDNSequenceX.500目錄中相對于根的路徑。RDNSequence是RelativeDistinguishedName類型為目錄樹中的一個對象指定了相對于其上級的SETOF類型。countrynamecommonname。AttributeValueAssertion是由兩個組件組成的SEQUENCE類型:AttributeTypeAttributeValue類型。DERNameDER編碼的例子,由下至上方式(workingfromthebottomup.)PKCSTestUser1Kal93]|||commonName="TestUser每層對應一個RelativeDistinguishedName,每層中出現的每項合起來組成了一個AttributeValueAssertion值。等號前為AttributeType值,等號后為AttributeValue值(指定屬性類型的可打印字符串。attributeTypeOBJECTIDENTIFIER{joint-iso-ccitt(2)ds(5)4countryNameOBJECTIDENTIFIER::={attributeType6}organizationNameOBJECTIDENTIFIER::={attributeType10}commonUnitNameOBJECTIDENTIFIER::={attributeType3AttributeTypeOCTETSTRINGDER編碼為簡單定長編碼Bits870universal類,bit6為"0"表示采用的是簡單編碼。長度字節部分采4;and6,10,or130255 13 "Example4578616d706c65204f7267616e697a74696f13 "TestUser54657374205573657220Bit60ASCII碼AttributeValueAssertionSEQUENCEDER編碼為結30 countryName=0603550413025530 organizationName="Example060355041314...6f30 commonName="TestUser06035504130b...20編碼,所以Bit6為1。長度字節部分采用短型,內容字節是attributeType和attributeValueDER編碼的串聯。RelativeDistinguishedNameSETOFDER編碼為結313009...5531301b...6f313012...20為1。長度字節部分采用短型。由于每個set中只有一個值,所以內容字節部分是各個AttributeValueAssertionDER編碼。300b...1d...14...RelativeDistinguishedNameDER編碼的串聯。30313006attributeType=13attributeValue=313006attributeType=13attributeValue="Example6d204f7267616e697a74696f313006035504 attributeType=13 attributeValue="TestUser54657374205573657220PKCS#1 RSALaboratories.PKCS#1:RSAEncryptionStandard.Version1.5,NovemberPKCS#3 RSALaboratories.PKCS#3:Diffie-HellmanKey-AgreementStandard.Version1.4,November1993.PKCS#5 RSALaboratories.PKCS#5:Password-BasedEncryptionStandard.Version1.5,November1993.PKCS#6 RSALaboratories.PKCS#6:Extended-CertificateSyntaxStandard.Version1.5,November1993.PKCS#7 RSALaboratories.PKCS#7:CryptographicMessageSyntaxStandard.Version1.5,November1993.PKCS#8 RSALaboratories.PKCS#8:Private-KeyInformationSyntaxStandard.Version1.2,November1993.PKCS#9 RSALaboratories.PKCS#9:SelectedAttributeTypes.Version1.1,NovemberPKCS#10RSALaboratories.PKCS#10:CertificationRequestSyntaxStandard.Version1.0,November1993. CCITT.RecommendationX.200:ReferenceModelofOpenSystemsInterconnectionforCCITTApplications.1984.CCITT.RecommendationX.208:SpecificationofAbstractSyntaxNotationOne(ASN.1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 設備耗材精準管理制度
- 設施廚房設備管理制度
- 設計公司設計管理制度
- 評析證券發行管理制度
- 診所醫保費用管理制度
- 診所藥品召回管理制度
- 試劑質量保障管理制度
- 財務資金預算管理制度
- 財政扶持項目管理制度
- 貨物快遞專區管理制度
- 2024年研究生考試考研植物生理學與生物化學(414)試題與參考答案
- 天津市南開區2023-2024學年六年級下學期期末數學試題
- 公司招聘保安合同模板
- 2024版上海應屆畢業生落戶協議離職賠錢
- 便利店門店運營與管理實務考核試卷
- 老年患者術后譫妄護理
- 2023年貴州遵義四中自主招生考試語文試卷真題(精校打印版)
- 光伏發電工程建設標準工藝手冊(2023版)
- MAM6090空壓 機微電腦控制器說明書
- 2024年中國東航行測筆試題庫
- 江西省贛州市2024-2025學年高一物理下學期期末考試試題
評論
0/150
提交評論