目录
1. 无证书公钥密码体制
在这种密码体制中,用户私钥由两个秘密因素决定: 一个是由用户自己生成的密钥,另外一个是从密钥生成中心 (Key Generation Center, KGC) 获取的与用户身份 (以及可能的用户密钥信息) 相关的密钥。从一个秘密因素不能计算另一个,即密钥生成中心不能计算出用户生成的部分密钥, 用户也计算不出密钥生成中心生成的部分密钥。因此无证书密码系统没有密钥托管的功能。
2. 基于SM2的无证书加密算法
- 系统参数初始化
(1)KGC生成主私钥;
(2)KGC选择系统参数,包括椭圆曲线相关参数及生成元,计算主公钥。
- 用户自己生成部分密钥
(1)生成部分私钥;
(2)计算部分公钥。
- KGC计算用户的密钥重构数据
(1);
(2)生成随机数;
(3)计算倍点;
(4)计算KGC为用户生成的部分公钥;
(5)计算杂凑值;
(6)计算KGC为用户生成的部分私钥。
- 生成用户密钥对
(1)计算用户私钥;
(2)计算用户公钥。
- 验证密钥有效性的方法
(1)用户自身计算,若,则说明密钥有效;
(2)其他人根据、、是否满足,来验证密钥的合法性。
3. 参考文献
[1]程朝辉. 基于SM2的无证书加密算法 [J]. 密码学报, 2021, 8 (01): 87-95. DOI:10.13868/j.cnki.jcr.000422.