【问题标题】:RSA Algorithm key generationRSA算法密钥生成
【发布时间】:2013-03-16 18:01:46
【问题描述】:

我目前正在努力处理RSA encryption algorythm

我的问题位于public/private 密钥生成,这是我的步骤:

 1. -Generate 2 prime numbers p, q with p > q and nbBits(p) == nbBits(q)
             using the miller-rabin algorythm this was done succesfully
 2. -compute n = p*q
 3. -compute fi(n) = (p-1)*(q-1)

麻烦来了:我需要用q < e < fi(n) 找到一个整数e。这个整数需要有某种素数。

我的问题是:e 必须是原始的(不能被除自身或 1 以外的任何数字除)还是原始的 WITH fi(n) (gcd(e, fi(n)) = 1) 或两者兼而有之?

我确实有一些问题要弄清楚(我的消息来源明确指出需要欧几里德算法(gcd),但由于英语不是我的母语,我在数学英语方面遇到了一些问题)

可能是一个愚蠢的问题,但我找不到清楚的解释(至少对我来说足够清楚)。

感谢阅读,更感谢您的回答。

【问题讨论】:

    标签: encryption key rsa


    【解决方案1】:

    加密指数e需要与phi(n)互质,即gcd(e,phi(n)) = 1。 这个条件是必要的,因为否则,您将无法(通过欧几里德的扩展算法)构造指数d(解密指数),使得e*d = 1 mod phi(n)

    【讨论】:

    • 非常感谢!这真的很有帮助