加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

求解离散对数的一个新思路------魔氏离散对数算法

(2014-09-16 00:23:11)
标签:

it

分类: 数学物理

    唉,终于被我找到了一个离散对数的新的算法,不管该算法是否是有效算法,但真的不容易啊。


解离散对数的一个新思路:

已知离散对数:a mod b=c。其中只有x属于未知数,而b是质数。那么通过演算,求得:adx+d-1  mod b= axmod b=c,其中d=2n。其中n通过演算是已知的数值。那么则有(d-1x+d-1 mod b-1=0,显然化简这个剩余式:即求(d-1x+d-1=yb-1=2n-1 x+2n -1,这个二元不定方程yb-1=2n-1x+2n -1中的未知数是xy,而nb是已知数。所以求得xy的值,则即把离散对数解出来。这种解法把离散对数的难度和确定n的值挂钩,解离散对数的难度取决于n值在演算中推导难易度。下面用实例来演算这个解法。

解离散对数:13x  mod  19 =10。(预知x=7.

我们演算:

132x+1  mod  19 = 13*13x *13x  mod  19=10*10*13 mod  19=8

继续演算:为了方便简便易懂,我们令2x+1=e。有

132e+1  mod  19 = 13*13e *13e  mod  19=8*8*13 mod  19=15

2e+1=f,有:132f+1  mod  19 = 13*13f *13f  mod  19=15*15*13 mod  19=18

2f+1=g,有:13g+1  mod  19 = 13*13g *13g  mod  19=18*18*13 mod  19=13

2g+1=h,有:13h+1  mod  19 = 13*13h *13h  mod  19=13*13*13 mod  19=12

2h+1=i,有:132i+1  mod  19 = 13*13i *13i  mod  19=12*12*13 mod  19=10

演算到此结束(这里用了六步运算,所以n的值等于6.)。

可以求知

132i+1 -13x  mod  19 =0

通过上面演算得知2i+1=64x+63,其中64=2n =26。代入上式有:1364x+63 -13x  mod  19 =0

化简:13x  1363x+63 -1mod  19 =0。因为13x  mod  19 ≠0

所以有(1363x+63 -1mod  19 =0

又有:(1318 -1mod  19 =0

显然因为18是模19的周期函数,

所以这里则有:63x+63 18的整数倍,即63x+63 mod 18=0,转化为:63x+1=18y。解这个方程有:x=18t+7y=28+63utu可以取任意非负整数。

由以上可以看出,所有离散对数均与2的指数n有关。这种方法属于运气算法,有时候只有寥寥的若干步骤就可算出来,有时候需要很多步骤才能算出来。比如求解211  mod  19 =15,仅需要两步(n=2)就计算出来了。演算此例时怕就怕在n=10。这里笔者的一个猜测:x有很大可能性是x=jn+1,其中j为正整数。比如717  mod  31 =18的演算中n=4,而17=4*4+1.当然这个猜测,笔者只是仅通过几个例子大胆猜测的,很大的概率不是准确的,比如把17换成偶一个偶数时,则不一定正确。

实际上离散对数的难度等同于求解三元不定方程组:yb-1=d-1x+d -1d=2n

为了更容易求解,我们不妨把2的指数换成3的指数,4的指数,5的指数等,计算结果又如何呢?

 补充:因为这个算法属于概率算法,所以单纯的运用这个算法并不一定会成功。这里我们有必要提高算法的几率。通过观察上述算法:我们算法的实质就是要构造一个同底数同模数等余数且指数中含有x的离散对数。而构造这类型的离散对数上述方法并不是唯一的。比如把2的指数换成3的指数,或者把x无限次平方、立方甚至n次方也可以构造这类型的离散对数。上述例子进行6步得出了剩余数为10,才构造成功。实际上我们可能不会用求到剩余数为10,就能找到一个我们需要的类型的离散对数。打个比方:手里有多台计算机,

一台用2的指数来构造,

一台用3的指数来构造,

一台用4指数来构造,

一台用5指数来构造,

一台用x的无限次平方构造,

一台用x的无限次立方构造,

一台用x的无限次五次方构造。

这样同时联网运算,假如2指数运行了2步,得到了剩余数15,而x的五次方运行了3步,得到了剩余数15,,而其余的计算机在3步之内还没得到剩余数15.此时我们联立2指数和五次方得到的离散对数(因为同底数同模数等余数15),这样也可以求得类似于(1363x+63 -1mod  19 =0这样的结果。显然两台计算机加起来才总共运行了5步,而比单独使用2指数构造还少了一步。这种方法笔者管其叫做离散对数的并行计算等余碰撞算法。

这种并行算法比单纯的运用某种算法要几率大些。这种算法虽说不一定就能在有效的时间内破解离散对数,但是对其应用离散对数的公钥系统造成了很大的威胁性。因为公钥使用者选取x时,不可能先用并行计算法来验证一下x是否安全而不能被破解。也可以这么说,一个密码破解专家和一个数学爱好者运用并行算法破解同一个离散对数时,密码破解专家未必就会比数学爱好者破解的快,因为选取的参数不同(假如一个选取2的指数,一个选取3的指数),造成了破解时间上的差异化。所以离散对数在并行算法面前并非牢不可破,需因人而异。这点和shor算法相似,一个充分大的合数,shor算法理论上是需要量子计算机才能破解的,但是如果选取合适参数,经典计算机也可以破解这个充分大的合数的。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有