RSA Cryptosystem - 检索m

时间:2014-11-21 21:25:39

标签: algorithm cryptography rsa

在RSA密码系统中,假设e = 3,我想知道如果我学习了d,我怎样才能检索m =(p-1)(q-1)。     换句话说,我认为它与一些数学主张有关,即我有3个和它的多个相反,我该如何检索该组?     N = pq(p,q primes)。     m =(p-1)(q-1)     gcd(e,m)= 1     d = e ^ -1 mod m

1 个答案:

答案 0 :(得分:2)

任意e的一般解决方案

由于d和e是模数逆的模数,因此对于某些常数c,你也有d e-1 = c m。

当gcd(k,n)= 1时,我们也有k ^ m = 1(mod n),因此k ^(de-1)= 1(mod n)。

m至少可被4整除(因为p和q是奇数)所以将d * e-1分成t * 2 ^ s,其中t奇数并计算k ^ t(mod n),当你对结果进行平方时时间(mod n)你最终会达到1,可能早于sarararings之后。

在达到1之前的中间结果可以是-1(mod n);如果发生这种情况,请尝试另一个k。

如果从另一个数字(例如x)到达1,我们发现x不是1或-1而x ^ 2 = 1(mod n)。换句话说,x ^ 2 -1 =(x-1)*(x + 1)= 0(mod n)并且gcd(x-1,n)是n的非平凡因子(比如q)。现在你已经找到q和p = n / q并且可以很容易地计算m。

e = 3

的特例

假设p,q> 3。

d和e = 3是模块化逆,所以3d-1 = cm。由于d <我们马上就知道c只能是1或2。

此外,由于e具有模逆,m因此p-1和q-1也不能被3整除。

p和q都不能被3整除,这只留下p和q与2(mod 3)一致的情况,因此p-1和q-1与1(mod 3)一致。但这也使得m一致于1(mod 3)

取等式3d-1 = cm modulo 3,我们得到0 * d-1 = c * 1(mod 3)或c = 2(mod 3)。由于c只有2种可能性,因此只剩下c = 2。

因此:m =(3d-1)/ 2