1.一种从CLC环境到PKI环境的在线离线签密方法,其特征在于,包括以下步骤:(1)系统参数初始化;所述系统参数包括基于CLC环境的在线离线签密模块、基于PKI环境的解签密模块及可信第三方模块所需要设置的系统参数;
(2)CLC环境的发送端提交身份信息IDS给密钥生成中心,密钥生成中心根据系统参数和身份信息IDS生成部分私钥SIDs和部分公钥Rs并发送给用户,用户随机选择一个秘密值xs,根据秘密值xs与部分私钥SIDs设置完全私钥SKs=(SIDs,xs)和公钥Ps=(PKs,Rs);
(3)PKI环境的接收端随机选择私钥β,并计算其对应的公钥PKr,公钥与CA颁发的证书绑定,输出公钥PKr=βP、私钥SKr=β;
(4)CLC环境的发送端根据系统参数、发送端的身份IDS与私钥SKs、接收端的公钥PKr进行离线签密,得到离线签密密文δ;由离线阶段得到的离线签密密文δ,根据系统参数、消息m进行在线签密,得到在线签密密文σ并发送给PKI环境的接收端;
(5)PKI环境的接收端根据系统参数、发送端的身份IDS、公钥Ps、接收端的私钥SKr和在线签密密文σ,输出消息m或拒绝该密文;
所述步骤(1)实现过程如下:
给定安全参数k,设G1为由P生成的循环加法群,阶q为素数,P为G1的生成元;定义三个安全的哈希函数H1: H2: H3: 密钥生成中心KGC随机选择一个主密钥 并计算其相应的主公钥Ppub=sP,KGC公开系统参数params={G1,k,P,Ppub,q,H1,H2,H3}并且保密主私钥s;
所述步骤(4)包括以下步骤:
(41)选择随机数k,t并根据离散对数问题计算承诺K1,K2;
(42)利用随机数t和发送端的私钥SKs=(SIDs,xs)得到数字签名d,从而得到离线签密密文δ=(k,t,K1,K2,d);
(43)根据消息m和离线签密密文δ=(k,t,K1,K2,d),将Hash值H2(Rs,K1,K2,IDs,PKs)作为密钥,利用对称加密体制加密消息m,得到密文c;
(44)计算Hash值h=H3(m,Rs,K1,K2,IDs,PKs,d,c)和消息认证码v,得到在线签密密文σ=(c,Rs,K1,d,v);其中,c是消息m的密文,只能使用接收者的私钥β恢复,v是消息的认证码,Rs是发送者的部分公钥,K1是承诺,d是数字签名;
(45)发送在线签密密文σ=(c,Rs,K1,d,v)和身份IDS给接收端;
所述步骤(5)包括以下步骤:
(51)利用在线签密密文σ、接收端的私钥β,计算K2和Hash值H2(Rs,K1,K2,IDs,PKs),将Hash值H2(Rs,K1,K2,IDs,PKs)作为密钥,利用对称算法解密密文c,得到消息m;
(52)计算Hash值h,验证消息vd(K1+hp)=Rs+H1(Rs,IDs)Ppub+PKs的有效性,如果等式成立,则是密文对应的明文,否则拒绝该密文。
2.根据权利要求1所述的从CLC环境到PKI环境的在线离线签密方法,其特征在于,步骤(2)至步骤(4)所述公钥在初始化阶段全部公开。