计算机是否部署了预先计算的素数列表

Are computers deployed with a list of precomputed prime numbers

根据我对 public 密钥加密的理解,服务器从两个大质数 p[=63= 的乘积生成 public 密钥] 和 q,生成 n.

n 然后发送到希望安全连接到服务器的客户端。

客户端选择一个随机数x并计算x^3 modulo n并将其传回服务器.

然后服务器使用p[=11计算x =] 然后 x 被用作加密所有流量的私钥,客户端和服务器都知道这一点,而不会暴露它。


问题

对于每个想要连接到服务器的客户端,服务器需要为每个连接创建一个 public 密钥。在繁忙的服务器上,这将需要生成许多 pq

虽然计算机很快,但如果pq都是大数2^1024 确定这些数字是否为质数需要很多努力,如果与服务器建立大量连接(考虑 Google、Facebook 等),则需要反复努力。

此外,如果 pq 的随机选择结果是非素数, 然后服务器需要选择另一个随机数并确定该数字是否为素数。这看起来可能浪费了很多计算时间。

因此服务器不必为每个连接计算两个随机素数,can/does服务器从安装在服务器上的预先计算的素数列表中选择?如果是这样,我们可以相信这些质数实际上是质数,并且是随机选择的吗?

您误解了 PKI,服务器不会为每个客户端和连接创建新的 public 密钥。

此外,WRT 创建 RSA 素数请参阅 Rob Napier 对问题的评论:

"generating large primes is not nearly as expensive as you likely think."
and his link generating large prime numbers for RSA.