Cryptography 给定p、q和e的值,但gcd(e、phi)不是1,那么如何找到n&;RSA中的d?或者甚至有可能吗?

Cryptography 给定p、q和e的值,但gcd(e、phi)不是1,那么如何找到n&;RSA中的d?或者甚至有可能吗?,cryptography,rsa,Cryptography,Rsa,这些值是:p=19、q=23和e=3。 根据算法计算:n=437&phi=396。 但是我不认为RSA在这里是有效的,因为在这种情况下GCD(e,phi)不是1,因为GCD(3396)=3。 这意味着RSA算法不满意,不能进一步计算d,对吗 我想问由于GCD(e,phi)=1不满足,我假设p,q和e的给定值没有解是否正确 还是我做错了什么? 这是我正在解决的上一份试卷中出现的原始问题:(逐字) 我愿意假设这是一个棘手的问题,检查一个人是否知道算法(及其步骤)。请让我知道我的假设是否正确,提前谢谢

这些值是:p=19q=23e=3。 根据算法计算:n=437&phi=396。 但是我不认为RSA在这里是有效的,因为在这种情况下GCD(e,phi)不是1,因为GCD(3396)=3。 这意味着RSA算法不满意,不能进一步计算d,对吗

我想问由于GCD(e,phi)=1不满足,我假设p,q和e的给定值没有解是否正确

还是我做错了什么? 这是我正在解决的上一份试卷中出现的原始问题:(逐字)


我愿意假设这是一个棘手的问题,检查一个人是否知道算法(及其步骤)。请让我知道我的假设是否正确,提前谢谢!:)

你说得对。运行计算ModInv(3396)得到


因此,
d
没有值。(根据
lambda(n)
而不是
phi(n)
计算它也会产生“不可逆”,因为lambda只是phi/2,3是破坏事物的主要因素。)

谢谢您的确认。后来我在谷歌上搜索了一下,看看是否有办法使用一些内置Java函数进行交叉检查。使用BigInteger计算并尝试赋值:
BigInteger d=e.modInverse(phi)
导致算术异常,表示BigInteger不可逆。这证实了我的假设和你详细阐述的。再次感谢!:)
In RSA, given p=19, q=23 and e=3, find n and d.
ModInverse(3, 396)
  r=396, newR=3, t=0, newT=   1
  r=  3, newR=0, t=1, newT=-132

  newR == 0 && r > 0: Not Invertible.