发明名称 基于无证书的椭圆曲线混合签密方法
摘要 一种基于无证书的椭圆曲线混合签密方法,由系统初始化、生成用户的私钥和公钥、生成用户的部分公钥和部分私钥、签密、解签密步骤组成。该方法克服了传统公钥基础设施中证书产生、存储、分发、撤销以及验证证书的计算费用等问题,消除了身份密码学中固有的密钥托管问题,无需安全信道,可以同时达到保密并认证的效果,可以签密任意长度的消息。本发明具有安全性好、运算效率高、通信成本低等优点,可用于资源受限的无线传感器网络。
申请公布号 CN104811302B 申请公布日期 2016.08.17
申请号 CN201510249520.0 申请日期 2015.05.15
申请人 陕西师范大学;青海师范大学 发明人 俞惠芳;杨波
分类号 H04L9/30(2006.01)I;H04W84/18(2009.01)I;H04L9/08(2006.01)I 主分类号 H04L9/30(2006.01)I
代理机构 西安永生专利代理有限责任公司 61201 代理人 申忠才
主权项 一种基于无证书的椭圆曲线混合签密方法,其特征在于它是由下述步骤组成: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。
地址 710062 陕西省西安市长安南路199号