gpt4 book ai didi

python - 以编程方式从 `d` 和 `p` (RSA) 生成 `q`

转载 作者:太空宇宙 更新时间:2023-11-04 10:57:07 24 4
gpt4 key购买 nike

我有两个数字,pq。我知道我可以获得 phi = (p-1)*(q-1) 并且 ed = 1 (mod phi)... 但我不是我当然明白这意味着什么。

我写了一些 Python:

p = NUM
q = NUM
e = NUM
phi = (p-1)*(q-1)
d = (1 % phi)/float(e)

但我得到的总是小数,d 应该是一个整数。我做错了什么?

编辑:我可能只是不了解 RSA。现在,我正在查看此页面:http://www.di-mgt.com.au/rsa_alg.html

最佳答案

你对数学的理解是错误的。等式

ed ≡ 1 (mod φ)

表示 ed 除以 φ 的余数等于 1,即在 Python 中,

>>> (e*d) % phi
1

例如,如果 φ = (7 - 1)(11 - 1) = 60,并且 e = 17,那么如果我们选择 d = 53,那么我们会得到

>>> e = 17
>>> d = 53
>>> phi = 60
>>> (e*d) % phi
1

我们称 de 的模乘逆。

要从eφ 生成d,通常使用扩展欧氏算法。请阅读http://en.wikipedia.org/wiki/Modular_multiplicative_inversehttps://stackoverflow.com/search?q=python+%22multiplicative+inverse%22&submit=search了解更多信息

关于python - 以编程方式从 `d` 和 `p` (RSA) 生成 `q`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8884076/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com