PKCS#1規範閱讀筆記2--------公私鑰ASN.1結構

     PKCS#1種介紹了哈希算法的OID等的ASN.1結構,由於使用ASN.1的解碼工具(好比:ASN1View)時,會自動顯示出各OID的含義,因此這裏就不說明了。下面就只簡單摘抄一下RSA公私鑰的ASN.1的結構。算法

     ASN.1的編碼回頭會專門介紹,爲了便於理解:SEQUENCE,暫時就理解爲C語言裏面的結構體就好;INTEGER,理解爲正數類型就好。數組

 

     RSA公鑰:工具

     RSAPublicKey :: = SEQUENCE{編碼

         modulus              INTEGER,   ------ n(模長,正整數)ci

         publicExponent    INTEGER    ------ e (指數,3~n-1範圍內的正整數)io

      }入門

     RSA公鑰的ASN.1結構,能夠表述爲:名爲RSAPublicKey的這個結構呢,就能夠用來表述一個RSA公鑰了。它有兩個INTEGER型變量:modulus和publicExponent。變量

 

     RSA私鑰:im

     RSAPrivateKey :: = SEQUENCE{語言

         version                 Version,

         modulus               INTEGER,   ------ n

         publicExponent     INTEGER,   ------ e

         privateExponent    INTEGER,   ------ d

         prime1                 INTEGER,   ------ p

         prime2                 INTEGER,   ------ q

         exponent1            INTEGER,   ------ d mod (p -1)

         exponent2            INTEGER,   ------ d mod (q -1)

         coefficient            INTEGER,   ------- (inverse of q) mod p

         otherPrimeInfos    OtherPrimeInfos   ------ OPTIONAL(當version爲0時,不存在;當 version爲1時,必須有)

     }

     Version :: = INTEGER{ two-prime(0), multi(1)}

     版本號的ASN.1結構能夠表述爲:名爲Version的結構體,用於描述版本信息。它相似於枚舉類型,其變量類型爲INTEGER,取值爲0或1。

 

     OtherPrimeInfos :: = SEQUENCE SIZE(1..MAX) OF OtherPrimeInfo

     OtherPrimeInfos 是由 OtherPrimeInfo組成的數組

 

     OtherPrimeInfo :: = SEQUENCE {

        prime          INTEGER,   --- ri

        exponent     INTEGER,   --- di

        coefficient    INTEGER    --- ti

     }

     推薦一篇專門介紹ASN.1編碼的文章:《ASN.1/BER/DER 編碼子集入門指南》

相關文章
相關標籤/搜索