发明名称 基于多变量密码体制的无证书多接收者签密方法
摘要 本发明公开了一种基于多变量密码体制的无证书多接收者签密方法,用于解决现有的无证书签密方法安全性差的技术问题。技术方案是首先由密钥生成中心生成系统参数,再选择安全的多变量加密算法生成部分密钥;用户U获取密钥生成中心的系统部分私钥生成用户密钥,身份为IDA的用户Alice将签密消息m发送给用户组L={ID1,ID2,...,IDt},通过解签密接受或拒绝密文σ。由于采用基于多变量的密码体制,实现了抗量子计算的高安全性,面对量子计算机的攻击,本发明依然保持安全性;相对于背景技术,本发明方法计算量小、安全性高;另外,本发明具有完备性、机密性、不可伪造性、前向安全性、后向安全性、保护接收者隐私等特点,能够抗击现有的已知攻击。
申请公布号 CN102811125A 申请公布日期 2012.12.05
申请号 CN201210292422.1 申请日期 2012.08.16
申请人 西北工业大学 发明人 李慧贤;陈绪宝;王楠;庞辽军;胡金顺;杨亚芳
分类号 H04L9/32(2006.01)I;H04L9/30(2006.01)I 主分类号 H04L9/32(2006.01)I
代理机构 西北工业大学专利中心 61204 代理人 王鲜凯
主权项 1.一种基于多变量密码体制的无证书多接收者签密方法,其特征在于包括以下步骤:步骤一、密钥生成中心选择秘密正整数参数s,产生大素数p和正整数l;选择阶为q的有限域G,其中q=p<sup>l</sup>;令G<sup>n</sup>是有限域G的n次扩张;令正整数g为多变量方程组中方程的个数;选择H<sub>1</sub>∶G×G×G<sup>n</sup>→G<sup>n</sup>,H<sub>2</sub>∶G→G<sup>n</sup>为密码学安全的抗碰撞单向不可逆哈希函数,生成系统参数{G,l,g,n,q,p,H<sub>1</sub>,H<sub>2</sub>};步骤二、密钥生成中心选择安全的多变量加密算法,其核心变换F为G<sup>n</sup>→G<sup>n</sup>上的可逆二次变换,并在G<sup>n</sup>→G<sup>n</sup>上随机选择两个可逆的仿射变换T和V,生成密钥生成中心的系统公钥<img file="FDA00002022576700011.GIF" wi="305" he="52" />系统私钥<img file="FDA00002022576700012.GIF" wi="325" he="61" />密钥生成中心在G<sup>n</sup>→G<sup>n</sup>上随机选择两个可逆的仿射变换T<sub>0</sub>和V<sub>0</sub>,计算<img file="FDA00002022576700013.GIF" wi="330" he="63" />则系统部分公钥为<img file="FDA00002022576700014.GIF" wi="73" he="64" />系统部分私钥为<img file="FDA00002022576700015.GIF" wi="501" he="62" />最后,密钥生成中心通过秘密信道将系统部分私钥传递给合法用户,密钥生成中心公开自己的系统公钥;当有用户退出时,密钥生成中心需重新生成系统部分公钥和系统部分私钥;增加新用户则不需重新生成系统部分公钥和系统部分私钥;步骤三、用户U获取密钥生成中心的系统部分私钥,然后计算系统部分私钥,随机选择G<sup>n</sup>→G<sup>n</sup>上的仿射变换T<sub>u</sub>和V<sub>u</sub>,合成自己的私钥<img file="FDA00002022576700016.GIF" wi="670" he="62" />并计算自己的公钥<img file="FDA00002022576700017.GIF" wi="351" he="63" />生成用户U的公钥为F<sub>u</sub>,用户U的私钥为<img file="FDA00002022576700018.GIF" wi="667" he="62" />用户U将自己的公钥F<sub>u</sub>传递给密钥生成中心,并且秘密保存自己的私钥<img file="FDA00002022576700019.GIF" wi="101" he="62" />步骤四、身份为ID<sub>A</sub>的用户Alice将签密消息m∈G发送给用户组L={ID<sub>1</sub>,ID<sub>2</sub>,…,ID<sub>t</sub>},首先通过向密钥生成中心查询得到用户组L的公钥信息,然后进行如下计算;选择随机数r∈G<sup>n</sup>,r<sub>1</sub>∈Gn<sup>-1</sup>,将消息m和r<sub>1</sub>链接得到M=m||r<sub>1</sub>,并依次计算<maths num="0001"><![CDATA[<math><mrow><mi>X</mi><mo>=</mo><mi>E</mi><mrow><mo>(</mo><mover><mi>F</mi><mo>&OverBar;</mo></mover><mo>,</mo><mi>r</mi><mo>)</mo></mrow><mo>,</mo></mrow></math>]]></maths>Y=H<sub>1</sub>(m,ID<sub>A</sub>,X),<maths num="0002"><![CDATA[<math><mrow><mi>S</mi><mo>=</mo><mi>D</mi><mrow><mo>(</mo><msubsup><mi>F</mi><mi>A</mi><mrow><mo>-</mo><mn>1</mn></mrow></msubsup><mo>,</mo><mi>Y</mi><mo>)</mo></mrow><mo>;</mo></mrow></math>]]></maths>对于ID<sub>i</sub>,i=1,2,...,t,计算q<sub>i</sub>=H<sub>2</sub>(ID<sub>i</sub>),<img file="FDA000020225767000112.GIF" wi="653" he="57" />对于用户组L,将L和r<sub>1</sub>链接得到L<sub>1</sub>=L||r<sub>1</sub>,计算<img file="FDA000020225767000113.GIF" wi="309" he="64" />最后生成密文σ={S,W<sub>1</sub>,W<sub>2</sub>,...,W<sub>t</sub>,L′};步骤五、用户ID<sub>i</sub>,i=1,2,...,t,收到密文σ后,进行如下计算;获取身份列表,<img file="FDA00002022576700021.GIF" wi="343" he="64" />L<sub>1</sub>的第一维元素即用户组身份列表L,提取ID<sub>i</sub>对应的密文信息{S,W<sub>i</sub>};依次计算Y′=E(F<sub>A</sub>,S),q<sub>i</sub>=H<sub>2</sub>(ID<sub>i</sub>),<img file="FDA00002022576700022.GIF" wi="377" he="61" /><img file="FDA00002022576700023.GIF" wi="527" he="61" />M′的第一维元素即消息m′;验证等式Y′=H<sub>1</sub>(m′,ID<sub>A</sub>,X′)是否成立;若等式成立,则接受密文σ;否则拒绝密文σ,并输出⊥。
地址 710072 陕西省西安市友谊西路127号