首页 > 编程知识 正文

sm9算法原理,sm9数字签名算法

时间:2023-05-04 19:42:30 阅读:179590 作者:290

身份基本解释图形(IBC )是基于传统PKI开发的,主要简化了在特定安全APP应用中交换大量数字证书的问题,使安全APP应用的部署和使用变得更加容易。

IBC密码技术使用非对称密码体系,加密和解密使用两个不同的密钥。 每个公钥都是他的id,如电子邮件地址、电话号码等。 私钥以数据的形式由用户自己掌握,密钥的管理相当简单,可以方便地解密数据信息。

IBC的基础技术包括数据加密、数字签名、数据完整性机制、数字信封、用户标识、用户认证等。

SM9标识加密算法是由国家秘密局发行的基于身份的加密(IBE )算法。 IBE算法以用户身份作为公钥,与数字证书无关。 国密SM9算法标准包括五个文档:

《GMT 0044-2016 SM9标识密码算法:第1部分 总则》

《GMT 0044-2016 SM9标识密码算法:第2部分 数字签名算法》

《GMT 0044-2016 SM9标识密码算法:第3部分 密钥交换协议》

《GMT 0044-2016 SM9标识密码算法:第4部分 密钥封装机制和公钥加密算法》

《GMT 0044-2016 SM9标识密码算法:第5部分 参数定义》

曲线参数

SM9基于256位BN椭圆曲线,使用素域Fp和有限域Fp2,而双线性对使用R-ate。 曲线参数主要包括:

椭圆曲线方程:y2=x3 b

方程参数b:05

参数t

60000000 0058F98A

基域特征q

b 64000002 a3 a6 f1 d 603 ab 4ff 58 EC 74521 f 2934 B1 a7aee db e56 F9 b 27 e 351457 d

群的阶N

b 64000002 a3 a6 f1 d 603 ab 4ff 58 EC 74449 f 2934 b 18 ea8 bee e56 ee 19 CD 69 ECF 25

知性的白云cf:1

组1的生成方p1=(XP1,yp1 ) :

坐标xp1

93de 051 d 62b f 718 ff F5 ed 0704487 d 01 D6 E1 e 4086909 DC 3280 E8 c4e 4817 c 66 dddd

坐标yp1

21fe8DDA 4f 21 e 607631065125 c 395 bb c1c 00 cbfa 6024350 c 464 c D70 a3ea 616

组2的生成源p2=(XP2,yp2 ) :

坐标xp2

(85 AEF 3d 078640 c 98597 b 6027 b 441 a 01 fff1DD 2c 190 F5 e 93 c 454806 c 11 d 8806141、

3722755292130 b 08 D2 aab 97 FD 34 EC 120 ee 265948 d 19 c 17 ab F9 b 7213 BAF 82 d65 b )

坐标yp2

(17509 b 092 e 845 c 1266 ba0d 262 cbee6ed 0736 a 96 fa 347 c8 BD 856 DC 76 b 84 ebeb 96,

a7cf 28 d 519 be 3da 65 f 3170153 d 278 ff 247 efba 98 a71 a 08116215 BBA 5c 999 a7c7)

SM9算法主要包括密钥部分和算法部分。

密钥部分包括主密钥对(公钥和私钥)和用户私钥

算法部分:包括签名验证算法、密钥解封装算法、加密解密算法和密钥交换算法

密钥部分

SM9算法的密钥可以由KGC (密钥生成中心)生成,所述KGC密钥主要包括KGC主密钥对和用户的私钥。

主密钥对为签名主密钥对和加密主密钥对

签名主密钥对:其私钥是[1,N-1]范围内的随机数; 公钥是G2群基点P2的倍点,倍数是私钥。

加密主密钥对:其私钥是[1,N-1]范围内的随机数; 公钥是G1群基点P1的倍点,倍数是私钥。

主密钥对的公钥用于不同的场景,而主私钥仅用于计算用户私钥。 主公钥由国安会公开,用于其他部分。 此外,签名主公钥仅用于签名和验证算法。 加密的主公钥用于密钥封装、加密和密钥交换。

用户私钥由KGC生成,包含签名私钥和加密私钥。

签名私钥:是G1群的基点P1的倍点。 签名私钥仅用于签名

加密私钥:是G2群基点P2的倍点。 加密的私钥用于解密、解密和密钥交换

KGC使用主私钥和用户ID (以下称为ID )生成用户的私钥。

算法部分

SM9算法包括签名验证、密钥解封装、加密解密和密钥交换四大部分。

签名算法:使用签名主公钥和签名者的签名私钥对数据进行签名

验签算法:签名使用主公钥和签名者ID验证签名

密钥封装算法:使用加密的主公钥和密钥的开封者(使用对称密钥的对方) ID封装对称密钥

密钥解封算法:使用加密的主公钥和密钥开封者ID来解密封装的对称密钥

加密算法:加密使用主公钥和解密者ID加密数据

解密算法:使用解密者的经加密私钥和解密者ID解密数据

密钥交换算法:密钥交换双方使用加密主公钥、自己的加密私钥和双方的ID协商共享密钥

用户身份标识符:ID

SM9算法的用户ID主要用于私钥的生成、验证、密钥解封装、加密解密和密钥交换。

主要APP应用程序的ID简单描述如下。

私钥生成:ID是秘密密钥所有者的ID

验签:ID是签名者的ID

密钥封装解封:ID是开封人的ID

加密解密:ID是解密者的ID

密钥交换:启动器和响应方都需要自己的ID和对方的ID

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。