发明名称 一种抵抗伪造签名攻击的多变量签名方法
摘要 本发明为一种抵抗伪造签名攻击的多变量签名方法,通过增加一个称之为签名附加值的量,使得签名验证时,增加一个关于内部信息的验证条件,使得可有效抵抗伪造攻击,具体包括数据的预处理、签名的生成以及签名的验证三个阶段,本发明是以多变量公钥密码体制为理论基础,通过有限域上多个变量的多项式方程组而构建的一种消息签名和验证方案,解决了现有的多变量签名方案的模型缺陷,使得在抗量子攻击的条件下,签名验证不仅依赖于公钥验证,还涉及用户合法私钥,能为量子计算机时代的信息安全和信任体系的建立提供基础技术支撑,适用于量子计算机时代的安全的数字签名,同时由于其具有较高的效率和安全性,特别适用于存储空间和运算时间受限的场合。
申请公布号 CN106209376A 申请公布日期 2016.12.07
申请号 CN201610511412.0 申请日期 2016.07.01
申请人 陕西科技大学 发明人 王鑫;李健;吴华;张永斌
分类号 H04L9/32(2006.01)I;H04L9/00(2006.01)I 主分类号 H04L9/32(2006.01)I
代理机构 西安智大知识产权代理事务所 61215 代理人 段俊涛
主权项 一种抵抗伪造签名攻击的多变量签名方法,其特征在于,包括如下步骤:步骤1,选择系统参数取一个有限域<img file="FDA0001038223270000011.GIF" wi="66" he="46" />正整数n和m,<img file="FDA0001038223270000019.GIF" wi="41" he="45" />的n次扩域记为<img file="FDA0001038223270000012.GIF" wi="158" he="47" />的m次扩域记为<img file="FDA0001038223270000013.GIF" wi="86" he="46" />取<img file="FDA0001038223270000014.GIF" wi="54" he="46" />到<img file="FDA0001038223270000015.GIF" wi="61" he="46" />上的一组多变量二次多项式方程q<sub>1</sub>(x<sub>1</sub>,…,x<sub>n</sub>),…,q<sub>m</sub>(x<sub>1</sub>,…,x<sub>n</sub>),记为Q,则Q就表示多变量公钥密码体制的中心映射,其中输入变量为n个,输出变量为m个,用Q<sup>‑1</sup>表示多项式Q的逆多项式,Q<sup>‑1</sup>为合法用户所有,另取<img file="FDA0001038223270000016.GIF" wi="58" he="45" />和<img file="FDA0001038223270000017.GIF" wi="62" he="45" />上可逆仿射变换S和T为秘密钥,其逆多项式分别记为S<sup>‑1</sup>和T<sup>‑1</sup>,再随机选取<img file="FDA0001038223270000018.GIF" wi="53" he="45" />上的一组n个n元二次多变量多项式方程组(g<sub>1</sub>(x<sub>1</sub>,…,x<sub>n</sub>),…,g<sub>n</sub>(x<sub>1</sub>,…,x<sub>n</sub>)),该多项式向量记为G,即G(x<sub>1</sub>,…,x<sub>n</sub>)=(g<sub>1</sub>(x<sub>1</sub>,…,x<sub>n</sub>),…,g<sub>n</sub>(x<sub>1</sub>,…,x<sub>n</sub>)),以及一个单向不可逆的多项式方程组H,用户的秘密钥由S、T、G三部分构成,H为可信第三方秘密选取,但仅用于公钥的产生,其中G的逆多项式表示为G<sup>‑1</sup>,对应的公钥也由三个多项式构成,分别为:P=TοQοS,HοG<sup>‑1</sup>οS,HοS,其中运算符ο表示运算的合成,即从右向左依次进行代入计算;步骤2,签名的产生已知消息M的编码为向量(u<sub>1</sub>,…,u<sub>m</sub>),记做u,签名按以下步骤生成:(2.1)产生前向签名(2.1a)由秘密钥T<sup>‑1</sup>,将消息M的编码u=(u<sub>1</sub>,…,u<sub>m</sub>)代入到T<sup>‑1</sup>中,得到(y<sub>1</sub>,…,y<sub>m</sub>),记为y;(2.1b)将所得结果y代入到中心映射Q的逆变换Q<sup>‑1</sup>中,得到(x<sub>1</sub>,…,x<sub>n</sub>),记为x;(2.1c)将所得结果x代入到秘密钥S的逆S<sup>‑1</sup>中,得到(v<sub>1</sub>,…,v<sub>n</sub>),记为v,则v即为消息M的编码u的前向签名;(2.2)产生后向签名(2.2a)将所得结果x代入到秘密钥G中,得到G(x<sub>1</sub>,…,x<sub>n</sub>)=(g<sub>1</sub>(x<sub>1</sub>,…,x<sub>n</sub>),…,g<sub>n</sub>(x<sub>1</sub>,…,x<sub>n</sub>))=(g<sub>1</sub>,…,g<sub>n</sub>),记为g;(2.2b)将所得结果g代入到秘密钥S的逆S<sup>‑1</sup>中,得到S<sup>‑1</sup>(g)=S<sup>‑1</sup>οG(x)=(v<sub>g1</sub>,…,v<sub>gn</sub>),记为v<sub>g</sub>,则v<sub>g</sub>即为消息M的编码u的后向签名;(2.3)前向签名和后向签名的级联v||v<sub>g</sub>即为消息M的编码u的签名;步骤3,签名的验证(3.1)利用公钥P进行验证(3.1a)将前向签名v=(v<sub>1</sub>,…,v<sub>n</sub>)代入公钥P中,得到P(v<sub>1</sub>,…,v<sub>n</sub>)=(p<sub>1</sub>(v<sub>1</sub>,…,v<sub>n</sub>),…,p<sub>m</sub>(v<sub>1</sub>,…,v<sub>n</sub>)),其结果记为v′=(v′<sub>1</sub>,…,v′<sub>n</sub>);(3.1b)判断v′是否和原消息M的编码u相等;(3.2)利用公钥HοS和HοG<sup>‑1</sup>οS进行验证(3.2a)将前向签名v=(v<sub>1</sub>,…,v<sub>n</sub>)代入到公钥HοS中,得到HοS(v)=HοS(v<sub>1</sub>,…,v<sub>n</sub>)=H(S(v<sub>1</sub>,…,v<sub>n</sub>)),其结果记为h=(h<sub>1</sub>,…,h<sub>n</sub>);(3.2b)将后向签名v<sub>g</sub>=(v<sub>g1</sub>,…,v<sub>gn</sub>)代入到公钥HοG<sup>‑1</sup>οS中,得到<img file="FDA0001038223270000021.GIF" wi="1368" he="98" />其结果记为h′=(h′<sub>1</sub>,…,h<sub>n</sub>′);(3.2c)判断h和h′是否相等;若(3.1b)和(3.2c)均成立,则v||v<sub>g</sub>即为消息M的编码u的合法签名,否则为无效签名,拒绝。
地址 710021 陕西省西安市未央区大学园区陕西科技大学