我目前在学习与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),但由于英语不是我的母语,我在数学英语方面有些困难)
可能是一个愚蠢的问题,但我找不到一个清晰的解释(至少对我来说不够清晰)。
感谢阅读,更感谢回答。