身份基本解释图形(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