发明名称 基于代数的对消息匿名环签名的方法
摘要 本发明公开了一种基于代数的对消息匿名环签名的方法,该方法按照以下步骤实施,生成系统参数,密钥生成,环签名生成,环签名的验证。基于传统密码体制的环签名方法,在量子计算机下其安全性受到威胁,而本发明基于多变量公钥密码体制的环签名方法解决了现有的环签名体制在量子计算下不安全的缺陷。本发明的方法既具有安全性又具有计算效率高的优点。
申请公布号 CN102006167A 申请公布日期 2011.04.06
申请号 CN201010544635.X 申请日期 2010.11.11
申请人 西安理工大学 发明人 王尚平;马瑞
分类号 H04L9/32(2006.01)I;H04L9/08(2006.01)I;H04L9/30(2006.01)I 主分类号 H04L9/32(2006.01)I
代理机构 西安弘理专利事务所 61214 代理人 罗笛
主权项 1.基于代数的对消息匿名环签名的方法,其特征在于,该方法按照以下步骤实施:步骤1.生成系统参数1)设置k=GF(q)是有限域,其中q=p<sup>l</sup>,p是一个素数,l是一个正整数;2)令m为多变量方程组中方程的个数,n为变量的个数;3)选择H:{0,1}<sup>*</sup>→k<sup>n</sup>为密码学安全的哈希函数,系统参数为(k,q,p,l,n,m,H);步骤2.密钥生成1)假设环中有t个用户,设为U={u<sub>0</sub>,u<sub>1</sub>,…,u<sub>t-1</sub>};2)选择一个安全的多变量公钥密码签名体制,根据该体制,每个用户u<sub>i</sub>(0≤i≤t-1)选择F<sub>i</sub>是从k<sup>n</sup>到k<sup>m</sup>的可逆映射,Fi满足:a)F<sub>i</sub>(x<sub>1</sub>,…,x<sub>n</sub>)=(f<sub>i1</sub>,…,f<sub>im</sub>),其中f<sub>ij</sub>∈k[x<sub>1</sub>,…,x<sub>n</sub>],j=1,…,m;b)任何方程F<sub>i</sub>(x<sub>1</sub>,…,x<sub>n</sub>)=(y′<sub>1</sub>,…,y′<sub>m</sub>)都易于求解;3)每个用户u<sub>i</sub>(0≤i≠t-1)随机选择L<sub>1i</sub>是从k<sup>m</sup>到k<sup>m</sup>的一个可逆仿射变换L<sub>1i</sub>(x<sub>1</sub>,…,x<sub>m</sub>)=M<sub>1i</sub>·(x<sub>1</sub>,…,x<sub>m</sub>)<sup>T</sup>+a<sub>1i</sub>,其中M<sub>1i</sub>是有限域k上的一个m×m的可逆矩阵,a<sub>1i</sub>是有限域k上的一个m×1的列向量;4)每个用户u<sub>i</sub>(0≤i≤t-1)随机选择L<sub>2i</sub>是从k<sup>n</sup>到k<sup>n</sup>的一个可逆仿射变换L<sub>2i</sub>(x<sub>1</sub>,…,x<sub>n</sub>)=M<sub>2i</sub>·(x<sub>1</sub>,…,x<sub>n</sub>)<sup>T</sup>+a<sub>2i</sub>,其中M<sub>2i</sub>是有限域k上的一个n×n的可逆矩阵,a<sub>2i</sub>是有限域k上的一个n×1的列向量;5)每个用户u<sub>i</sub>(0≤i≤t-1)公布其公钥<img file="FSA00000346102500021.GIF" wi="431" he="57" /><maths num="0001"><![CDATA[<math><mrow><msub><mover><mi>F</mi><mo>&OverBar;</mo></mover><mi>i</mi></msub><mrow><mo>(</mo><msub><mi>x</mi><mn>1</mn></msub><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><msub><mi>x</mi><mi>n</mi></msub><mo>)</mo></mrow><mo>=</mo><mrow><mo>(</mo><msub><mover><mi>f</mi><mo>&OverBar;</mo></mover><mrow><mi>i</mi><mn>1</mn></mrow></msub><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><msub><mover><mi>f</mi><mo>&OverBar;</mo></mover><mi>im</mi></msub><mo>)</mo></mrow></mrow></math>]]></maths>其中每一个<img file="FSA00000346102500023.GIF" wi="43" he="66" />都是k[x<sub>1</sub>,…,x<sub>n</sub>]中的多项式;6)每个用户u<sub>i</sub>(0≤i≤t-1)保密其私钥SK<sub>i</sub>={L<sub>1i</sub>,F<sub>i</sub>,L<sub>2i</sub>};7)环中的t个用户的公钥集记为<img file="FSA00000346102500024.GIF" wi="395" he="69" />步骤3.环签名生成设签名者u<sub>π</sub>(0≤π≤t-1)代表环中所有成员U={u<sub>0</sub>,u<sub>1</sub>,…,u<sub>t-1</sub>}对消息M∈{0,1}<sup>*</sup>进行环签名,环中的t个用户的公钥集记为<img file="FSA00000346102500025.GIF" wi="357" he="61" />利用其私钥SK<sub>i</sub>={L<sub>1i</sub>,F<sub>i</sub>,L<sub>2i</sub>},签名步骤如下:1)签名者u<sub>π</sub>随机选取u∈k<sup>n</sup>,计算<maths num="0002"><![CDATA[<math><mrow><msub><mi>c</mi><mrow><mi>&pi;</mi><mo>+</mo><mn>1</mn><mrow><mo>(</mo><mi>mod</mi><mi>t</mi><mo>)</mo></mrow></mrow></msub><mo>=</mo><mi>H</mi><mrow><mo>(</mo><mi>L</mi><mo>|</mo><mo>|</mo><mi>M</mi><mo>|</mo><mo>|</mo><msub><mover><mi>F</mi><mo>&OverBar;</mo></mover><mi>&pi;</mi></msub><mrow><mo>(</mo><mi>u</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>;</mo></mrow></math>]]></maths>2)对于i=π+1,π+2,…,t-1,0,1,..,π-1,依次随机选取s<sub>i</sub>∈k<sup>n</sup>,计算<maths num="0003"><![CDATA[<math><mrow><msub><mi>c</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn><mrow><mo>(</mo><mi>mod</mi><mi>t</mi><mo>)</mo></mrow></mrow></msub><mo>=</mo><mi>H</mi><mrow><mo>(</mo><mi>L</mi><mo>|</mo><mo>|</mo><mi>M</mi><mo>|</mo><mo>|</mo><msub><mover><mi>F</mi><mo>&OverBar;</mo></mover><mi>i</mi></msub><mrow><mo>(</mo><msub><mi>c</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>+</mo><msub><mover><mi>F</mi><mo>&OverBar;</mo></mover><mi>i</mi></msub><mrow><mo>(</mo><msub><mi>s</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>)</mo></mrow><mo>;</mo></mrow></math>]]></maths>3)计算<img file="FSA00000346102500028.GIF" wi="797" he="69" />4)输出消息M关于环<img file="FSA00000346102500029.GIF" wi="329" he="61" />的环签名为σ=(c<sub>0</sub>,s<sub>0</sub>,s<sub>1</sub>,…s<sub>t-1</sub>);步骤4.环签名的验证给定消息M关于环<img file="FSA000003461025000210.GIF" wi="331" he="60" />的环签名σ=(c<sub>0</sub>,s<sub>0</sub>,s<sub>1</sub>,…,s<sub>t-1</sub>),任何验证者对该签名正确性的验证如下:1)对于i=0,1,…,t-1,计算<maths num="0004"><![CDATA[<math><mrow><msub><mi>c</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>=</mo><mi>H</mi><mrow><mo>(</mo><mi>L</mi><mo>|</mo><mo>|</mo><mi>M</mi><mo>|</mo><mo>|</mo><msub><mover><mi>F</mi><mo>&OverBar;</mo></mover><mi>i</mi></msub><mrow><mo>(</mo><msub><mi>c</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>+</mo><msub><mover><mi>F</mi><mo>&OverBar;</mo></mover><mi>i</mi></msub><mrow><mo>(</mo><msub><mi>s</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>)</mo></mrow><mo>;</mo></mrow></math>]]></maths>2)验证c<sub>t</sub>=c<sub>0</sub>是否成立,如果成立,则接受该环签名,否则,拒绝该环签名。
地址 710048 陕西省西安市金花南路5号