国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

SM2國密算法證書解析

2019-11-10 20:29:13
字體:
來源:轉載
供稿:網友

from http://www.jonllen.com/jonllen/work/174.aspx

一、數字證書的組成

1)證書數據結構

數字證書使用ASN.1編碼,證書文件以二進制或Base64格式存放,數據格式使用TLV(Tag Length Value)形式,T代表類型標識符,L是長度值標識符,V代表值編碼。數字證書中的每一項都有個對應的類型T。一個數字證書就是一個大的TLV序列,然后V又由多個TLV組合而成。

SM2證書數據和RSA算法證書一樣,包含證書版本、序列號、頒發(fā)者、使用者主體信息、使用者公鑰、有效期、證書擴展項等,只不過SM2證書的公鑰算法是使用ECC算法的Oid標識(1.2.840.10045.2.1),然后公鑰參數使用SM2國密算法的Oid標識(1.2.156.10197.1.301)。

2)簽名算法

SM2證書配套的簽名算法是基于SM3的SM2簽名算法,算法Oid標識為1.2.156.10197.1.501,另外SM2國密算法還定義基于SHA_1、SHA_256的簽名,以及使用SM3算法的RSA的簽名,只不過簽名算法Oid標識不一樣。

3)簽名數據

SM2的簽名數據由2個BigInteger大數組成,再使用Der編碼存放簽名數據。證書的簽名數據由根證書私鑰進行簽名,使用根證書公鑰驗證,頂級根證書使用自己的證書公鑰驗證。

二、數字證書的對象標識符

數字證書的每項都有對象標識Oid,SM2數字證書的主要區(qū)別就是公鑰算法、公鑰參數、簽名算法標識不一樣,其余的都是X509里標準項。數字證書常見得對象標識有如下:

對象標識符名稱OID
rsaEncryptionRSA算法標識1.2.840.113549.1.1.1
sha1withRSAEncryptionSHA1的RSA簽名1.2.840.113549.1.1.5
ECCECC算法標識1.2.840.10045.2.1
SM2SM2算法標識1.2.156.10197.1.301
SM3WithSM2SM3的SM2簽名1.2.156.10197.1.501
sha1withSM2SHA1的SM2簽名1.2.156.10197.1.502
sha256withSM2SHA256的SM2簽名1.2.156.10197.1.503
sm3withRSAEncryptionSM3的RSA簽名1.2.156.10197.1.504
commonName主體名2.5.4.3
emailAddress郵箱1.2.840.113549.1.9.1
cRLDistributionPointsCRL分發(fā)點2.5.29.31
extKeyUsage擴展密鑰用法2.5.29.37
subjectAltName使用者備用名稱2.5.29.17
CP證書策略2.5.29.32
clientAuth客戶端認證1.3.6.1.5.5.7.3.2

三、數字證書的解析

數字證書的解析主要是根據ASN.1語法和對象標識符來獲取值,然后再是證書的有效期、頒發(fā)機構根證書、CRL吊銷狀態(tài)和使用目的等驗證。RSA證書是標準算法大部分平臺都可以解析,而SM2國密算法證書的解析就不是那么通用的。在Windows的一些較高版本打開SM2證書會顯示“驗證信任關系時,系統(tǒng)層上出現了一個錯誤”,這是因為Windows還不支持SM2算法證書驗證,不能識別SM2簽名的算法標識,因此需要自行驗證SM2證書的簽名數據,可基于BouncyCastle開源加密庫來實現SM2驗證簽名,詳細參見我的國密算法SM2證書制作。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 荥阳市| 营口市| 阿巴嘎旗| 吉木乃县| 桑植县| 黑龙江省| 老河口市| 宝丰县| 钟山县| 东丽区| 合水县| 昆山市| 台安县| 木兰县| 五大连池市| 通河县| 容城县| 海晏县| 会宁县| 安阳县| 庆安县| 教育| 青川县| 珲春市| 虞城县| 保定市| 阿鲁科尔沁旗| 吕梁市| 辉南县| 华安县| 扶余县| 黎城县| 彭水| 剑阁县| 宝清县| 台北市| 鲁山县| 邻水| 墨脱县| 涿州市| 乌苏市|