Encryption 对于RSA加密,在给定p、q和e的情况下查找d?
如果Encryption 对于RSA加密,在给定p、q和e的情况下查找d?,encryption,rsa,Encryption,Rsa,如果p=7、q=11、e=3,我将如何找到d 有许多类似的问题,但他们要求你计算你自己的e。如果e=11或e=17,这将是一个微不足道的解决方案,但我不确定具体如何处理e=3 我的理解是: d=e-1mod(p-1)(q-1) d=3-1mod(6)(10) d*3==1模60 然而,这导致3不是可逆的模60,因为3不是60的相对素数。如果e=3,是否有解决方案?谢谢您的帮助。(回答标题中的问题)。在我的算法中,我使用: d =(1+(z* ϕ(N)))/e 私钥d必须是一个整数,因此z应从1
p=7、q=11、e=3
,我将如何找到d
有许多类似的问题,但他们要求你计算你自己的e。如果e=11
或e=17
,这将是一个微不足道的解决方案,但我不确定具体如何处理e=3
我的理解是:
d=e-1mod(p-1)(q-1)
d=3-1mod(6)(10)
d*3==1模60
然而,这导致3不是可逆的模60,因为3不是60的相对素数。如果e=3,是否有解决方案?谢谢您的帮助。(回答标题中的问题)。在我的算法中,我使用:
d =(1+(z* ϕ(N)))/e
私钥d必须是一个整数,因此z
应从1
开始,递增1
,直到它是一个整数。
ν(N)
是Euler的toticent函数
ϕ(N) = (p-1)*(q-1)
编辑:当我在代码中插入这些素数时,我得到e=7
要正确地查找e
:e
必须是一个数字,其中e
和ν(N)
的最大公约数等于1
所以
e
从1
开始,然后递增1
,直到最大公约数也是1
我的计算器说没有解决方案。(所有值均以10为基数)
=n
=p*q
77
=phi(n)
=(p-1)*(q-1)
60
- 尝试计算ModInv(3,60)并意识到没有解,因为3平均除以60
为了好玩,我用“假设输入是(合理地)十六进制的”重新运行了它,使得
q=17
,而且它也是不可解的,因为phi(n)
是96,它也可以被3整除。这不是一个真正的编程问题,但是RSA需要p-1和q-1的e互质(或者等价的phi(n)或lambda(n))。看看,也许谢谢你的回答!原来我的教授只是打了个错字,用e=7更正了,这是正确的答案;我的教授输入了一个错误,并用e=7进行了更正。然后使用扩展欧几里德,d=43。谢谢你写了e从1开始,然后递增,直到gcd为1。这是否意味着e只能是7,或者其他互质值可以有效?RSA的原始方法是随机选取p
和q
,选取任何d
,它相对于phi(n)
(GCD==1),生成e
(第七节(C))。现在它可以任意选择e
,可能是0x010001
,随机选择p
和q
,派生d
;如果不起作用,请选择一个新的p
和q
。。。因为它使公钥操作更快。另外,FWIW,d
的“最佳”答案是0x0D。但是43是有效的,而且人们花了一段时间才观察到0x0D更好;也许您的类将在以后的某个日期讨论:)。@palcoi其他值可能有效,例如,您可以使e=8
,然后将其递增。