发明名称 基于互素序列和杠杆函数的多变量公钥加密方法
摘要 基于互素序列和杠杆函数的多变量公钥加密方法,属于密码技术和计算机技术领域;包括密钥生成、加密和解密三个部分;其用户拥有两个密钥,一个只能私有,叫私钥,一个可以公开,叫公钥,它从C<SUB>i</SUB>≡(A<SUB>i</SUB>W<SUP>l(i)</SUP>)<SUP>δ</SUP>(mod M)得来,且从它不能推导出私钥({A<SUB>i</SUB>}、W、δ);公钥用于把明文转换成密文(加密),私钥用于把密文还原成明文(解密);该方法具有模数小、安全性高、计算速度较快、技术可以公开等特点,可用于手机、计算机和通信网络中任何文件、数据的保密存储与传输。
申请公布号 CN101267300A 申请公布日期 2008.09.17
申请号 CN200810093631.7 申请日期 2008.04.17
申请人 苏盛辉;吕述望;蔡吉人 发明人 苏盛辉;吕述望;蔡吉人
分类号 H04L9/30(2006.01);H04L9/08(2006.01) 主分类号 H04L9/30(2006.01)
代理机构 代理人
主权项 1、基于互素序列和杠杆函数的多变量公钥加密方法,由密钥生成、加密和解密三个部分组成,密钥生成部分供第3方权威机构产生用户的一对私钥和公钥,加密部分供发送方使用接收方的公钥把明文转换为密文,解密部分供接收方使用自己的私钥把密文还原成明文,其特征在于·密钥生成部分采用了下列步骤:(1)随机生成一个奇互素序列<maths num="0001"><![CDATA[<math><mrow><mfenced open='{' close='}'><mtable><mtr><mtd><msub><mi>A</mi><mn>1</mn></msub><mo>,</mo></mtd><mtd><msub><mi>A</mi><mn>2</mn></msub><mo>,</mo></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo></mtd><mtd><msub><mi>A</mi><mover><mi>n</mi><mo>~</mo></mover></msub></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths>且<img file="A20081009363100022.GIF" wi="205" he="40" />(2)找到一个素整数M满足<maths num="0002"><![CDATA[<math><mrow><mi>M</mi><mo>></mo><msubsup><mi>&Pi;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mover><mi>n</mi><mo>~</mo></mover></msubsup><msub><mi>A</mi><mi>i</mi></msub><mo>,</mo></mrow></math>]]></maths>且不是太大(3)选择正整数<maths num="0003"><![CDATA[<math><mrow><mover><mi>n</mi><mo>~</mo></mover><mo>&lt;</mo><mi>&delta;</mi><mo>&lt;</mo><mi>M</mi></mrow></math>]]></maths>使得gcd(δ,M-1)=1(4)随机选择正整数W<M,计算W<sup>-1</sup>(5)顺序划分<maths num="0004"><![CDATA[<math><mfenced open='{' close='}'><mtable><mtr><mtd><mn>5</mn><mo>,</mo></mtd><mtd><mn>6</mn><mo>,</mo></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo></mtd><mtd><mover><mi>n</mi><mo>~</mo></mover><mo>+</mo><mn>4</mn></mtd></mtr></mtable></mfenced></math>]]></maths>为<img file="A20081009363100026.GIF" wi="79" he="35" />个单元,赋任意空闲单元的一排列到{l(3j-2),l(3j-1),l(3j)},对<maths num="0005"><![CDATA[<math><mrow><mi>j</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><mover><mi>n</mi><mo>~</mo></mover><mo>/</mo><mn>3</mn></mrow></math>]]></maths>(6)计算C<sub>i</sub>←(A<sub>i</sub>W<sup>l(i)</sup>)<sup>δ</sup>mod M,对<maths num="0006"><![CDATA[<math><mrow><mi>i</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><mover><mi>n</mi><mo>~</mo></mover><mo>,</mo></mrow></math>]]></maths>结束最后,以({C<sub>i</sub>}、M)为公钥,以({A<sub>i</sub>}、W<sup>-1</sup>、δ、M)为私钥,且私钥只能由用户私自拥有;·加密部分采用了下列步骤:发送方以接收方的公钥({C<sub>i</sub>}、M)作为加密密钥,针对n比特的明文分组b<sub>1</sub>b<sub>2</sub>…b<sub>n</sub>做(1)置<maths num="0007"><![CDATA[<math><mrow><mover><mi>G</mi><mo>^</mo></mover><mo>&LeftArrow;</mo><mn>1</mn><mo>,</mo><mi>i</mi><mo>&LeftArrow;</mo><mn>1</mn></mrow></math>]]></maths>(2)若b<sub>2i-1</sub>b<sub>2i</sub>=01,则<maths num="0008"><![CDATA[<math><mrow><mover><mi>G</mi><mo>^</mo></mover><mo>&LeftArrow;</mo><mover><mi>G</mi><mo>^</mo></mover><msub><mi>C</mi><mrow><mn>3</mn><mi>i</mi><mo>-</mo><mn>2</mn></mrow></msub><mi>mod</mi><mi>M</mi><mo>,</mo></mrow></math>]]></maths>否则若b<sub>2i-1</sub>b<sub>2i</sub>=10,则<maths num="0009"><![CDATA[<math><mrow><mover><mi>G</mi><mo>^</mo></mover><mo>&LeftArrow;</mo><mover><mi>G</mi><mo>^</mo></mover><msub><mi>C</mi><mrow><mn>3</mn><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mi>mod</mi><mi>M</mi><mo>,</mo></mrow></math>]]></maths>否则若b<sub>2i-1</sub>b<sub>2i</sub>=11,则<maths num="0010"><![CDATA[<math><mrow><mover><mi>G</mi><mo>^</mo></mover><mo>&LeftArrow;</mo><mover><mi>G</mi><mo>^</mo></mover><msub><mi>C</mi><mrow><mn>3</mn><mi>i</mi><mo>-</mo><mn>0</mn></mrow></msub><mi>mod</mi><mi>M</mi></mrow></math>]]></maths>(3)令j←i+1,若j≤n/2,转至(2),否则结束最后,得到密文<img file="A200810093631000213.GIF" wi="48" he="44" />它将被发送给接收方;·解密部分采用了下列步骤:接收方以自己的私钥({A<sub>i</sub>}、W<sup>-1</sup>、δ、M)作为解密密钥并计算出<img file="A200810093631000214.GIF" wi="391" he="48" />针对密文<img file="A200810093631000215.GIF" wi="38" he="42" />做(1)计算<maths num="0011"><![CDATA[<math><mrow><mover><mi>G</mi><mo>^</mo></mover><mo>&LeftArrow;</mo><msup><mover><mi>G</mi><mo>^</mo></mover><mrow><mn>1</mn><mo>/</mo><mi>&delta;</mi></mrow></msup><mi>mod</mi><mi>M</mi></mrow></math>]]></maths>(2)重复<maths num="0012"><![CDATA[<math><mrow><mover><mi>G</mi><mo>^</mo></mover><mo>&LeftArrow;</mo><mover><mi>G</mi><mo>^</mo></mover><msup><mi>W</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mi>mod</mi><mi>M</mi></mrow></math>]]></maths>直到<img file="A200810093631000218.GIF" wi="42" he="46" />为奇数且<maths num="0013"><![CDATA[<math><mrow><mover><mi>G</mi><mo>^</mo></mover><mo>&le;</mo><msub><mover><mi>G</mi><mo>&CenterDot;</mo></mover><mrow><mi>n</mi><mo>/</mo><mn>2</mn></mrow></msub></mrow></math>]]></maths>(3)置<maths num="0014"><![CDATA[<math><mrow><msub><mi>b</mi><mn>1</mn></msub><msub><mi>b</mi><mn>2</mn></msub><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><msub><mi>b</mi><mi>n</mi></msub><mo>&LeftArrow;</mo><mn>0</mn><mo>,</mo><mi>G</mi><mo>&LeftArrow;</mo><mover><mi>G</mi><mo>^</mo></mover><mo>,</mo><mi>i</mi><mo>&LeftArrow;</mo><mi>n</mi><mo>/</mo><mn>2</mn><mo>,</mo><mi>j</mi><mo>&LeftArrow;</mo><mn>0</mn></mrow></math>]]></maths>(4)若A<sub>3i-j</sub>|G,则b<sub>2i-1</sub>b<sub>2i</sub>←3-j和G←G/A<sub>3i-j</sub>,否则j←j+1,且若j≤2,转至(4)(5)令i←i-1,若i≥1且<maths num="0015"><![CDATA[<math><mrow><mn>1</mn><mo>&lt;</mo><mi>G</mi><mo>&le;</mo><msub><mover><mi>G</mi><mo>&CenterDot;</mo></mover><mi>i</mi></msub><mo>,</mo></mrow></math>]]></maths>则j←0并转至(4)(6)若G≠1,则转至(2),否则结束最后,接收方恢复出发送方的原始明文b<sub>1</sub>b<sub>2</sub>…b<sub>n</sub>。
地址 100037北京市海淀区甘家口24号楼1508房