1.一种从无证书到公钥基础设施的在线离线签密方法,其特征在于,包括以下步骤:S1:系统初始化:给定安全参数k,设定加法群G1、乘法群G2,两个群有相同的阶q且q为素数,P是群G1生成元,e:G1×G1→G2为一个双线性映射;定义四个安全的密码哈希函数nH3:G2→{0,1} , 其中,n
表示消息m的长度, 表示不包括0的整数群;密钥生成中心KGC随机选择一个主密钥并计算其相应的主公钥Ppub=sP,KGC公开系统参数params={G1,G2,P,Ppub,g,H1,H2,H3,H4}并且保密主私钥s,其中g=e(P,P);
S2:生成无证书环境的发送端公钥和完全私钥:在生成公钥和完全私钥过程中,先利用身份生成部分私钥 其中IDs为发送端身份,利用部分私钥生成发送端公钥PKIDs,最终利用发送端部分私钥和公钥生成发送端完全私钥SIDs,具体如下:S2.1:部分私钥生成:发送端向KGC发送身份IDs,KGC计算其对应的部分私钥并将DIDs发送给发送端;
S2.2:公钥生成:具有身份IDs的发送端随机选择 作为秘密值,并设置公钥PKIDs=xIDs(H1(IDs)P+Ppub);
S2.3:完全私钥生成:发送端根据秘密值xIDs,再结合部分私钥DIDs、公钥PkIDs,计算完全私钥S3:生成基于公钥基础设施环境的密钥:接收端选择随机数 计算公钥PKr=drP,私钥 然后接收端向PKI发送相应的身份IDr和公钥PKr,PKI利用相应的签名算法为接收端公钥生成数字证书,最后PKI将数字证书发送给接收端;
S4:无证书环境的发送端向基于公钥基础设施环境的接收端发送消息m,并进行离线签x密:无证书环境的发送端选择随机数 计算双线性对值r,r=g,利用接收端公钥PKr计算承诺值T,T=xPKr,利用发送端完全私钥SIDs得到签名S,S=αSIDs,最后无证书环境的发送端生成离线签密密文η=(x,α,r,S,T);
S5:无证书环境的发送端根据离线签密密文η=(x,α,r,S,T)向基于公钥基础设施环境的接收端发送消息m,并进行在线签密,生成在线签密密文δ;
S5.1:无证书环境的发送端使用H3(r)作为加密密钥,利用对称加密体制加密消息m,得到密文c, 其中, 是异或运算;
S5.2:无证书环境的发送端计算m、IDs、r、PKIDs、S、T的哈希值h,h=H4(m,IDs,r,PKIDs,S,T);
‑1
S5.3:无证书环境的发送端根据随机值x、α和哈希值h计算承诺值θ,θ=(x+h)α mod q;
S5.4:最后无证书环境的发送端生成在线签密密文δ=(c,θ,S,T);
S6:基于公钥基础设施环境的接收端根据系统参数、发送端的身份IDs、公钥PKIDs、接收端的私钥SKr和在线签密密文δ,输出消息m或拒绝该密文;
S6.1:基于公钥基础设施环境的接收端根据私钥SKr、承诺值T计算双线性对值r,r=e(T,SKr);
S6.2:基于公钥基础设施环境的接收端将H3(r)作为解密密钥,利用对称加密体制解密密文c,得到消息m, 其中, 是异或运算;
S6.3:基于公钥基础设施环境的接收端计算m,IDs、r、PKIDs、S、T的哈希值h,h=H4(m,IDs,r,PKIDs,S,T);
S6.4:基于公钥基础设施环境的接收端已知信息验证r=e(θS,PKIDs+H2(PKIDs)(H1(IDs)‑hP+Ppub)g 是否成立,如果等式成立,则输出明文消息m,否则,拒绝该密文。
2.根据权利要求1所述的从无证书到公钥基础设施的在线离线签密方法,其特征在于,所述主公钥Ppub、发送端公钥PKIDs、接收端公钥PKr和数字证书在初始化阶段全部公开。
3.根据权利要求1所述的从无证书到公钥基础设施的在线离线签密方法,其特征在于,n所选择消息m∈{0,1},表示消息m的长度为n。