|
|
1
7
让我们从波利格·赫尔曼背后的主要思想开始。假设我们得到y,g和p,我们想找到x,这样
K (mod p)是k=p-1。 "Baby-step giant-step" 需要O(p 0.5 Pohlig和Hellman提出的是求解这个方程
如果我们把对数取为两边的基g,这和
n可以分为
因此x==z(mod r)。 这是一个改进,因为我们只需要搜索范围0。。对于z的解r-1。再次“婴儿步-巨人步”可以用来改进对z的搜索。显然,这样做一次还不是一个完整的解决方案。即对p-1的每个素因子r重复上述算法,然后利用中国剩余定理从部分解中求x。如果p-1是无平方的,这就很好地工作了。 如果p-1可被素数幂整除,则可以使用类似的概念。例如,假设p-1=mq K . 在第一步中,我们计算z,使得x==z(mod q),如上所示。接下来我们要把它推广到解x==z'(mod q) ). 例如,如果p-1=mq 这就意味着我们必须找到这样的z'
因为我们已经知道z'==z(mod q),z'必须在集合{z,z+q,z+2q,…,z+(q-1)q}中。同样,我们可以做一个彻底的搜索z'或改进搜索与“婴儿步巨人步”。对q的每个指数重复这个步骤,这是因为知道x mod q 我 我+1 . |
|
|
2
1
我正在自己编写代码(JAVA)。我用Pollard-Rho求p-1的小素因子,然后用Pohlig-Hellman解DSA私钥。y=g^x。我也有同样的问题。。 更新:“更具体地说,我不明白下面是怎么计算的:现在用7531除以a^c0得到7531(a^2)=6735 mod p。” 如果你找到^c0的倒数,那就有意义了
|
|
|
Muhammad Umer · 为什么这个随机数猜谜游戏模拟产生5.8 1 年前 |
|
|
Alisa Petrova · 在有向图中更改一对顶点以创建循环 1 年前 |
|
|
D W · Python-将浮点数从2转换为10到100位小数 1 年前 |
|
|
Bartol · 确定python龟图形中的角度 2 年前 |
|
|
randomAlgo · 将弹簧设置为相同长度的成本最低 2 年前 |
|
Fyodor · 在C中使用sin和cos计算数学表达式不正确? 2 年前 |
|
Sergio · python中大量数字的乘法 2 年前 |