1.一种抵抗有界敏感信息泄露的无证书密钥封装方法,其特征在于由下述步骤组成:(1)系统初始化
1)运行群生成算法生成相应的元组(q,G,P),其中G是阶为大素数q的加法循环群,P是群G的生成;
2)选择安全的哈希函数H、哈希函数H′、密码衍射函数KDF:其中ID是用户的身份标识, 为q阶整数群;
3)从q阶整数群 中随机选择有限整数a作为系统的主私钥并保密,设定系统的主公钥Ppub,全局参数params,并公开:Ppub=a·P
params={q,G,P,Ppub,H,H′,KDF}其中a为有限的整数;
(2)生成用户密钥
用户的身份标识ID的用户密钥生成过程如下:
1)用户确定公开参数Xid:其中, 和 是从q阶整数群 中随机选择的有限整数;
将用户的身份标识ID和公开参数Xid发送给密钥生成中心;
2)密钥生成中心收到用户的身份标识ID和公开参数Xid后,密钥生成中心从q阶整数群中随机选择有限整数rid,将用户的部分公钥Yid和用户的部分私钥yid通过安全信道发送给用户;
Yid=rid·P
yid=rid+a·H(id,Xid,Yid)
3)用户收到部分公钥Yid和部分私钥yid,检查式(1)是否成立yid·P=Yid+Ppub·H(id,Xid,Yid) (1)若式(1)成立,设置用户的私钥SKid并保密和用户的公钥PKid并公开;若式(1)不成立,输出失败信息,终止协议并退出;
其中,SKid为 PKid为(Xid,Yid);
(3)封装
1)用户从q阶整数群 中均匀随机选择有限整数r、r1、r2,设定部分封装密文c0、部分封装密文c1、部分封装密文c2:c0=r·P
c1=r1·P
c2=r2·P
2)给定哈希函数H′的输入值c0、c1、c2,得到相对应的输出值μ:μ=H′(c0,c1,c2)
3)设定密码衍射函数KDF的输入值W:W=r1·Xid+r2·μ·(Yid+Ppub·H(id,Xid,Yid))
4)设定密码衍射函数KDF的输出值t1、输出值t2:(t1,t2)=KDF(W)
5)设定部分封装密文c3、封装密文C和封装密钥k,并输出封装密文C和封装密钥k:c3=r·t1+r1·t2
C=(c0,c1,c2,c3)k=r2·Xid+r1·(Yid+Ppub·H(id,Xid,Yid));
(4)解封装
1)接受者设定哈希函数H′的输出值μ,密码衍射函数KDF的输入值W,密码衍射函数KDF的输出值t′1、输出值t′2:μ=H′(c0,c1,c2)(t′1,t′2)=KDF(W)
2)如果等式(2)成立,则输出封装密钥k;否则输出⊥,表示解封装失败:c3·P=t′1·c0+t′2·c1 (2)