Skip to main content
 首页 » 编程设计

python之RSA,从列表中计算值(value)

2025年05月04日9lyhabc

我正在编写脚本来为我提供 RSA 公钥和私钥。我正在尝试计算“e”和“d”的值,其中 ed = 1mod64。我知道这些值将是 e=5 和 d=13。我有两个最多 64 个素数列表,我想将这些列表相乘以计算“e”和“d”。我确信它会涉及一个 while 循环,以便在值不是 65 时继续进行。然而,我正在努力编写这段代码,因为我不确定如何让列表不并行计算。如果有人问到这个问题,我深表歉意,但我已经在原地打转了很长一段时间,如果有人问过这个问题,请只发布链接,我将删除这个问题。

请您参考如下方法:

我是 itertools 模块的粉丝,所以这里有一个使用它的例子。

python :

import itertools 
primes = [2, 3, 5, 7] 
for p, q in itertools.combinations(primes,2): 
    print ((p,q)) 

输出是:

(2, 3) 
(2, 5) 
(2, 7) 
(3, 5) 
(3, 7) 
(5, 7) 

python :

primes = [2, 3, 5, 7, 11, 13, 17, 19] 
for e, d in itertools.combinations(primes,2): 
    if (e*d) % 64 == 1: 
        print ((e,d)) 

输出:

(5,13) 

请注意,一般来说,这是一种非常低效的求模逆算法。对于任何大于玩具大小的参数,您应该改用扩展欧几里德算法的某个版本。