主权项 |
一种基于无证书的椭圆曲线混合签密方法,其特征在于它是由下述步骤组成:A、系统初始化(A1)密钥生成中心选择一个k比特的素数p和一个定义在有限域F<sub>p</sub>上的椭圆曲线E,G是加法循环群G<sub>p</sub>的一个生成元;(A2)密钥生成中心选择密码学安全的Hash函数H<sub>1</sub>~H<sub>4</sub>;(A3)密钥生成中心选择主密钥z∈<sub>R</sub> Z<sub>p</sub><sup>*</sup>并计算系统公钥y=zG∈G<sub>p</sub>;(A4)密钥生成中心公开系统参数<img file="FDA0000996663610000011.GIF" wi="651" he="66" />保密主密钥z;B、生成用户的私钥和公钥(B1)身份为id<sub>a</sub>的发送方Alice随机选择私钥x<sub>a</sub>∈Z<sub>p</sub><sup>*</sup>并计算其公钥y<sub>a</sub>=x<sub>a</sub>G∈G<sub>p</sub>;(B2)身份为id<sub>b</sub>的接收方Bob随机选择私钥x<sub>b</sub>∈Z<sub>p</sub><sup>*</sup>并计算其公钥y<sub>b</sub>=x<sub>b</sub>G∈G<sub>p</sub>;C、生成用户的部分公钥和部分私钥(C1)密钥生成中心和身份为id<sub>a</sub>的发送方Alice通过交互协议生成Alice的部分公钥u<sub>a</sub>和部分私钥s<sub>a</sub>,生成过程如下:密钥生成中心选择一个随机数<img file="FDA0000996663610000012.GIF" wi="187" he="67" />计算Alice的部分公钥<img file="FDA0000996663610000013.GIF" wi="195" he="55" />和部分私钥<img file="FDA0000996663610000014.GIF" wi="531" he="63" />密钥生成中心计算<img file="FDA0000996663610000015.GIF" wi="343" he="62" />并发送(s<sub>a</sub>,u<sub>a</sub>,Y<sub>a</sub>)给Alice,Alice通过下面等式验证部分公钥u<sub>a</sub>和部分私钥s<sub>a</sub>的真实性:s<sub>a</sub>G=u<sub>a</sub>‑H<sub>1</sub>(id<sub>a</sub>)y和s<sub>a</sub>G=Y<sub>a</sub>‑x<sub>a</sub>u<sub>a</sub>;(C2)密钥生成中心和身份为id<sub>b</sub>的接收方Bob通过交互协议生成部分公钥u<sub>b</sub>和部分私钥s<sub>b</sub>,生成过程如下:密钥生成中心选择一个随机数<img file="FDA0000996663610000016.GIF" wi="187" he="68" />计算Bob的部分公钥<img file="FDA0000996663610000017.GIF" wi="195" he="56" />和部分私钥<img file="FDA0000996663610000018.GIF" wi="539" he="63" />密钥生成中心计算Y<sub>b</sub>=s<sub>b</sub>G+υ<sub>b</sub>y<sub>b</sub>并发送(s<sub>b</sub>,u<sub>b</sub>,Y<sub>b</sub>)给Bob,Bob通过下面等式验证部分公钥u<sub>b</sub>和部分私钥s<sub>b</sub>的真实性:s<sub>b</sub>G=u<sub>b</sub>‑H<sub>1</sub>(id<sub>b</sub>)y和s<sub>b</sub>G=Y<sub>b</sub>‑x<sub>b</sub>u<sub>b</sub>;D、签密(D1)身份为id<sub>a</sub>的发送方Alice选择一个随机数η∈Z<sub>p</sub><sup>*</sup>,计算r=ηG,t=η(u<sub>b</sub>+H<sub>1</sub>(id<sub>b</sub>)y),κ=H<sub>2</sub>(t,ηy<sub>b</sub>),c=DEM.Enc(κ,m);(D2)Alice用自己的私钥生成对消息m的签名(e,n,s),通过如下步骤实现:(D21)Alice计算γ=H<sub>4</sub>(t,ηy<sub>b</sub>);(D22)Alice计算u=ηγ;(D23)Alice计算e=γ(s<sub>a</sub>+x<sub>a</sub>);(D24)Alice计算n=H<sub>3</sub>(id<sub>a</sub>,id<sub>b</sub>,m,r,γ,u);(D25)Alice计算s=η+n(s<sub>a</sub>+x<sub>a</sub>)modp;式中r=ηG,t=η(u<sub>b</sub>+H<sub>1</sub>(id<sub>b</sub>)y);(D3)Alice通过公开信道将生成的密文C←(r,c,e,n,s)发送给身份为id<sub>b</sub>的接收方Bob;E、解签密(E1)身份为id<sub>b</sub>的接收方Bob收到密文C后,计算t=s<sub>b</sub>r和κ=H<sub>2</sub>(t,x<sub>b</sub>r),恢复出明文m=DEM.Dec(κ,c);(E2)Bob计算γ=H<sub>4</sub>(t,x<sub>b</sub>r)和u=sγ‑enmodp;(E3)Bob计算n'=H<sub>3</sub>(id<sub>a</sub>,id<sub>b</sub>,m,r,γ,u);(E4)Bob验证n'=n是否成立,如果验证不通过,Bob拒绝接收Alice发给他的密文,即密文无效;否则,接收恢复出的消息m。 |