PKCS#1规范阅读笔记2--------公私钥ASN.1结构
PKCS#1種介紹了哈希算法的OID等的ASN.1結(jié)構(gòu),因?yàn)槭褂肁SN.1的解碼工具(比如:ASN1View)時(shí),會(huì)自動(dòng)顯示出各OID的含義,所以這里就不說(shuō)明了。下面就只簡(jiǎn)單摘抄一下RSA公私鑰的ASN.1的結(jié)構(gòu)。
ASN.1的編碼回頭會(huì)專門介紹,為了便于理解:SEQUENCE,暫時(shí)就理解為C語(yǔ)言里面的結(jié)構(gòu)體就好;INTEGER,理解為正數(shù)類型就好。
RSA公鑰:
RSAPublicKey :: = SEQUENCE{
modulus INTEGER, ------ n(模長(zhǎng),正整數(shù))
publicExponent INTEGER ------ e (指數(shù),3~n-1范圍內(nèi)的正整數(shù))
}
RSA公鑰的ASN.1結(jié)構(gòu),可以表述為:名為RSAPublicKey的這個(gè)結(jié)構(gòu)呢,就可以用來(lái)表述一個(gè)RSA公鑰了。它有兩個(gè)INTEGER型變量:modulus和publicExponent。
RSA私鑰:
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(當(dāng)version為0時(shí),不存在;當(dāng) version為1時(shí),必須有)
}
Version :: = INTEGER{ two-prime(0), multi(1)}
版本號(hào)的ASN.1結(jié)構(gòu)可以表述為:名為Version的結(jié)構(gòu)體,用于描述版本信息。它類似于枚舉類型,其變量類型為INTEGER,取值為0或1。
OtherPrimeInfos :: = SEQUENCE SIZE(1..MAX) OF OtherPrimeInfo
OtherPrimeInfos 是由 OtherPrimeInfo組成的數(shù)組
OtherPrimeInfo :: = SEQUENCE {
prime INTEGER, --- ri
exponent INTEGER, --- di
coefficient INTEGER --- ti
}
推薦一篇專門介紹ASN.1編碼的文章:《ASN.1/BER/DER 編碼子集入門指南》
總結(jié)
以上是生活随笔為你收集整理的PKCS#1规范阅读笔记2--------公私钥ASN.1结构的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: amr是什么格式?amr文件用什么打开?
- 下一篇: IIS配置文件隐患