RSA算法密钥生成

5

我目前在学习与RSA加密算法有关的内容。

我的困难在于公钥/私钥生成,以下是我的步骤:

 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)

这里有个麻烦:我需要找到一个整数e,使得q < e < fi(n)。这个整数需要具有某种素性质。
我的问题是:e必须是素数(除了1和它本身不能被任何其他数整除)OR与fi(n) (gcd(e, fi(n)) = 1)具有素性质 OR 两者都要满足吗?
我真的很难弄清楚(我的来源明确说明需要欧几里得算法(gcd),但由于英语不是我的母语,我在数学英语方面有些困难)
可能是一个愚蠢的问题,但我找不到一个清晰的解释(至少对我来说不够清晰)。
感谢阅读,更感谢回答。
1个回答

3

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接