发明名称 一种基于超对数难题的轻量级数字签名方法
摘要 一种基于超对数难题的轻量级数字签名方法,属于密码技术和计算机技术领域;包括密钥生成、数字签名和身份验证三个部分;其发送方用户拥有两个密钥,即一个私钥和一个公钥,且从公钥不能推导出私钥;发送方的私钥用于生成消息的名鉴,发送方的公钥用于接收方验证相应消息的名鉴;该方法能有效抵御现有分析手段的攻击,具有模长小于96比特、计算速度快、技术可公开等特点,可用于手机、计算机和通信网络中任何消息的签名与验证,也可用于电子金融、电子商务、电子政务中的身份认证与内容确认,还可用于票据、证书和高档商品的防伪。
申请公布号 CN102307102A 申请公布日期 2012.01.04
申请号 CN201110297654.1 申请日期 2011.10.08
申请人 苏盛辉;吕述望;蔡吉人 发明人 苏盛辉;吕述望;蔡吉人
分类号 H04L9/32(2006.01)I;H04L9/30(2006.01)I 主分类号 H04L9/32(2006.01)I
代理机构 代理人
主权项 1.一种基于超对数难题的轻量级数字签名方法,由密钥生成、数字签名和身份验证三个部分组成,第一部分用来生成发送方的一对私钥和公钥,第二部分供发送方使用自己的私钥对消息进行签名,第三部分供接收方使用发送方的公钥来验证名鉴,假设T、<img file="FSA00000586140300011.GIF" wi="112" he="36" />是两两互素的整数、hash是一单向散列函数,其特征在于·密钥生成部分采用了下列步骤:1)随机产生互素序列{A<sub>1</sub>,...,A<sub>n</sub>}且每个A<sub>i</sub>≤P2)找到一个素数M满足<img file="FSA00000586140300012.GIF" wi="515" he="47" />3)随机选择S<sup>-1</sup>≥5为小整数且<maths num="0001"><![CDATA[<math><mrow><mi>gcd</mi><mrow><mo>(</mo><msup><mi>S</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>,</mo><mover><mi>M</mi><mo>&OverBar;</mo></mover><mo>)</mo></mrow><mo>=</mo><mn>1</mn><mo>,</mo></mrow></math>]]></maths>随机选择W,δ使得<maths num="0002"><![CDATA[<math><mrow><mi>gcd</mi><mrow><mo>(</mo><mi>&delta;</mi><mo>,</mo><mover><mi>M</mi><mo>&OverBar;</mo></mover><mo>)</mo></mrow><mo>=</mo><mn>1</mn></mrow></math>]]></maths>且<img file="FSA00000586140300015.GIF" wi="213" he="67" />4)随机选取l(1),...,l(n)∈Ω且<maths num="0003"><![CDATA[<math><mrow><mo>&ForAll;</mo><mi>i</mi><mo>&NotEqual;</mo><mi>j</mi><mo>,</mo></mrow></math>]]></maths>有l(i)≠l(j)5)计算<maths num="0004"><![CDATA[<math><mrow><mi>&alpha;</mi><mo>&LeftArrow;</mo><msup><mi>&delta;</mi><mrow><mrow><mo>(</mo><msup><mi>&delta;</mi><mi>n</mi></msup><mo>+</mo><mi>&delta;</mi><msup><mi>W</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msup><mo>)</mo></mrow><mi>T</mi></mrow></msup><mo>%</mo><mi>M</mi><mo>,</mo><mi>&beta;</mi><mo>&LeftArrow;</mo><msup><mi>&delta;</mi><mrow><msup><mi>W</mi><mi>n</mi></msup><mi>T</mi></mrow></msup><mo>%</mo><mi>M</mi><mo>,</mo></mrow></math>]]></maths><img file="FSA00000586140300018.GIF" wi="619" he="57" />6)计算序列{C<sub>1</sub>,C<sub>2</sub>,...,C<sub>n</sub>|C<sub>i</sub>←(A<sub>i</sub>W<sup>l(i)</sup>)<sup>δ</sup>mod M}最后,以({A<sub>i</sub>}、{l(i)}、W、δ、<img file="FSA00000586140300019.GIF" wi="178" he="47" />)为私钥,({C<sub>i</sub>}、α、β)为公钥,n、S、T、M共用;·数字签名部分采用了下列步骤:发送方以自己的私钥({A<sub>i</sub>}、{l(i)}、W、δ、<img file="FSA000005861403000110.GIF" wi="182" he="47" />)作为签名密钥,针对消息F做(1)令H←hash(F),其二进制形式是b<sub>1</sub>...b<sub>n</sub>(2)置<maths num="0005"><![CDATA[<math><mrow><munder><mi>k</mi><mo>&OverBar;</mo></munder><mo>&LeftArrow;</mo><mi>&delta;</mi><msubsup><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></msubsup><msub><mi>b</mi><mi>i</mi></msub><mi>l</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>%</mo><mover><mi>M</mi><mo>&OverBar;</mo></mover><mo>,</mo><msub><mi>G</mi><mn>0</mn></msub><mo>&LeftArrow;</mo><msup><mrow><mo>(</mo><msubsup><mi>&Pi;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></msubsup><msup><msub><mi>A</mi><mi>i</mi></msub><mrow><mo>&Not;</mo><msub><mi>b</mi><mi>i</mi></msub></mrow></msup><mo>)</mo></mrow><mi>&delta;</mi></msup><mo>%</mo><mi>M</mi></mrow></math>]]></maths>(3)选择<maths num="0006"><![CDATA[<math><mrow><mover><mi>a</mi><mo>&OverBar;</mo></mover><mo>&Element;</mo><mrow><mo>(</mo><mn>1</mn><mo>,</mo><mover><mi>M</mi><mo>&OverBar;</mo></mover><mo>)</mo></mrow></mrow></math>]]></maths>使得<img file="FSA000005861403000113.GIF" wi="148" he="47" />和<img file="FSA000005861403000114.GIF" wi="285" he="47" />其中,<img file="FSA000005861403000115.GIF" wi="568" he="57" />(4)计算<img file="FSA000005861403000116.GIF" wi="883" he="67" /><img file="FSA000005861403000117.GIF" wi="886" he="57" />(5)任选<img file="FSA000005861403000118.GIF" wi="241" he="71" />使得<img file="FSA000005861403000119.GIF" wi="552" he="56" />其中,<maths num="0007"><![CDATA[<math><mrow><mi>U</mi><mo>&equiv;</mo><mover><mi>U</mi><mo>&OverBar;</mo></mover><msup><mover><mi>g</mi><mo>&OverBar;</mo></mover><mi>r</mi></msup><mrow><mo>(</mo><mo>%</mo><mi>M</mi><mo>)</mo></mrow></mrow></math>]]></maths>(6)若<img file="FSA000005861403000121.GIF" wi="714" he="58" />转至(5)最后,得到名鉴(Q、U),其可附在消息F后面发送给接收方;·身份验证部分采用了下列步骤:接收方以发送方的公钥({C<sub>i</sub>}、α、β)作为验证密钥,针对消息F和名鉴(Q、U)做①令H←hash(F),其二进制形式是b<sub>1</sub>...b<sub>n</sub>②计算<maths num="0008"><![CDATA[<math><mrow><mover><mi>G</mi><mo>&OverBar;</mo></mover><mo>&LeftArrow;</mo><msubsup><mi>&Pi;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></msubsup><msubsup><mi>C</mi><mi>i</mi><msub><mi>b</mi><mi>i</mi></msub></msubsup><mo>%</mo><mi>M</mi></mrow></math>]]></maths>③计算<maths num="0009"><![CDATA[<math><mrow><mi>X</mi><mo>&LeftArrow;</mo><msup><mrow><mo>(</mo><mi>&alpha;</mi><msup><mi>Q</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>)</mo></mrow><mi>QUT</mi></msup><msup><mi>&alpha;</mi><msup><mi>Q</mi><mi>n</mi></msup></msup><mo>%</mo><mi>M</mi><mo>,</mo></mrow></math>]]></maths><maths num="0010"><![CDATA[<math><mrow><mi>Y</mi><mo>&LeftArrow;</mo><msup><mrow><mo>(</mo><msup><mover><mi>G</mi><mo>&OverBar;</mo></mover><mi>Q</mi></msup><msup><mi>U</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>)</mo></mrow><mi>UST</mi></msup><msup><mi>&beta;</mi><mrow><mrow><mo>(</mo><msup><mi>Q</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msup><mo>+</mo><mi>US</mi><mo>)</mo></mrow><mi>H</mi><mo>+</mo><msup><mi>H</mi><mi>n</mi></msup></mrow></msup><mo>%</mo><mi>M</mi></mrow></math>]]></maths>④若X≡Y,则签名者身份正确且F未被修改,否则,签名者身份无效或者F在传输已被修改。
地址 100037 北京市海淀区甘家口24号楼1508房