1.一种从CLC环境到IBC环境的在线离线签密方法,其特征在于,包括以下步骤:(1)系统参数初始化;所述系统参数包括可信第三方需要设置的系统参数模块、基于CLC环境的公钥和私钥生成模块和基于IBC环境的公钥和私钥生成模块;
(2)CLC环境的发送端提交身份信息IDs给密钥生成中心,密钥生成中心根据系统参数和身份信息IDs生成部分私钥Ds并发送给发送端,发送端随机选择一个秘密值xs,根据秘密值xs与部分私钥Ds设置完全私钥SKs和公钥PKs:(3)IBC环境的接收端提交身份信息IDr给密钥生成中心,密钥生成中心根据系统参数和身份信息IDr生成公钥Qr和私钥SKr并发送给接收端;
(4)CLC环境的发送端根据系统参数和发送端的私钥SKs进行离线签密,得到离线签密密文δ;根据离线签密密文δ、消息m、发送端的身份信息IDs、公钥PKs和接收端的身份信息IDr进行在线签密,得到在线签密密文σ并发送给IBC环境的接收端;
(5)IBC环境的接收端根据系统参数、发送端的身份IDs、公钥PKs、接收端的私钥SKr和在线签密密文σ,输出消息m或拒绝该密文;
所述步骤(1)实现过程如下:
给定安全参数k,设G1为由P生成的循环加法群,阶p为素数,P为G1的生成元;定义四个安全n的哈希函数H1: H2: H3:G2→{0,1},H4:其中,n表示消息m的长度;密钥生成中心KGC随机选择一个主密钥 并计算其相应的主公钥Ppub=sP,KGC公开系统参数params={G1,G2,k,P,Ppub,p,g,H1,H2,H3,H4},并且保密主私钥s,其中g=e(P,P);
所述步骤(2)实现过程如下:
基于CLC环境的发送端发送它的身份信息IDs到KGC,KGC计算其对应的部分私钥并把Ds发送给发送端;具有身份IDs的发送端随机选择 阼为秘密值并设置公钥PKs=xs(H1(IDs)P+Ppub);给定部分私钥Ds和秘密值xs,发送端设置其全私钥为P为G1的生成元,Ppub表示KGC主公钥;
所述步骤(4)包括以下步骤:
x
(41)选择随机数x,α,β,γ,根据离散对数问题计算承诺值r=g;其中,(42)利用随机数α和发送端的私钥SKs得到数字签名S′=αSKs;
(43)利用随机数x,β和公开系统参数P和Ppub,计算盲化值T’=x(βP+Ppub);
(44)利用随机数x,γ和公开系统参数P,计算盲化值W=xγP;
‑1 ‑1
(45)根据消息m和离线签密密文δ=(x,α ,β,γ ,r,S′,T’,W),将Hash值H3(r)作为密钥,利用对称加密算法加密消息m,得到密文c;
(46)计算Hash值h=H4(c,IDs,PKs,r,S′,T’,W)和盲化值θ和η,得到在线签密密文σ=‑1 ‑1 n(c,θ,η,S′,T’,W);其中,θ=(x+h)α mod p;η=γ (H1(IDs)+β)mod p,c是消息m∈{0,1}的密文, 只能使用接收者的私钥SKr恢复,S′是发送者私钥的盲化值,T′和W也是盲化值;
(47)发送在线签密密文σ=(c,θ,η,S′,T′,W)和身份IDs以及公钥PKs给接收端;
所述步骤(5)包括以下步骤:
(51)利用盲化值T′,η和W,计算盲化值T=T′+ηW;
(52)利用盲化值T和接收端的私钥SKr,计算双线性对r=e(T,SKr);
(53)利用密文c和r的hash值H3(r)得到消息(54)计算Hash值h=H4(c,IDs,PKs,r,S′,T’,W);
‑h
(54)利用θ和S′计算签名S=θS′,并验证等式r=e(S,PKS+H2(PKS)(H1(IDS)P+Ppub))g 是否成立;如果等式成立,则输出明文消息m,否则,拒绝该密文。
2.根据权利要求1所述的从CLC环境到IBC环境的在线离线签密方法,其特征在于,所述步骤(3)实现过程如下:基于IBC环境的接收端发送它的身份IDr到KGC,KGC计算其公钥Qr=H1(IDr)和对应的私钥 并发送给接收端。
3.根据权利要求1所述的从CLC环境到IBC环境的在线离线签密方法,其特征在于,步骤(2)至步骤(4)所述公钥在初始化阶段全部公开。