给定2个密文和1位公钥不同时,在RSA中查找原始消息

时间:2019-03-04 16:12:31

标签: cryptography rsa

使用RSA, 知道这一点:

  • K_1-公钥
  • K_2-公钥
  • C_1 = E(M,K_1)-密文
  • C_2 = E(M,K_2)-密文
  • 键K_1和K_2只是一位不同(我们不知道哪一位)。

如何找到原始的纯文本M? 注意:不能使用暴力破解。

我在某处读到 r*K_1 + s*K_2 = 1 modN,r(或s)也可能为负。

因此,可以这样找到M ((C_1 )^-1)^-r * (C_2)^s = M

注意((C_1 )^-1)可以从C_1计算得出,因此M可以计算出来。

问题:谁说gcd(K_1,K_2) = 1,,那么r*K_1 + s*K_2 = 1 modN怎么可能是真的?

第二,如果该解决方案不正确,任何人都可以告诉我他如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

假设K_1和K_2是合法密钥,则应该存在以下内容:

gcd(K_1, φ(φ(N))=1gcd(K_2, φ(N))=1,其中φ是Euler的totient函数。

鉴于此,我们知道K_1和K_2必须奇数。根据这些键仅相差1位的信息,我们知道gcd(K_1, K_2)=1。这意味着存在r s,例如rK_1 + sK_2 = 1gcd的定义)。

我们知道C_1 = E(M,K_1)C_2 = E(M,K_2)

让我们将C_1^r乘以C_2^s来看看我们得到了什么:

C_1^r * C_2^s = (M^K_1)^r * (M^K_2)^s = M^(rK_1 + sK_2) = M^1 = M

我们找到了原始消息M。