5

我正在为我的一个大学课程的一个项目编写一个 diffie-hellman 密钥交换的 ruby​​ 实现。我需要生成至少 500 位长度的大(安全)素数。有任何想法吗?我应该使用 OpenSSL 库吗?如果是这样,您会推荐哪些功能?

4

2 回答 2

2

使用 openssl gem

OpenSSL::BN::rand

你可以指定你需要的大小——比如 OpenSSL::BN::rand(212)

于 2010-09-28T23:28:46.133 回答
0

OpenSSL::BN::generate_prime(500)会做到的,就像abdollar所说的那样。确保放在require 'openssl'顶部以将其包含在您的 ruby​​ 文件中

要检查它的位数是否正确,您只需运行即可打印出二进制文件,OpenSSL::BN::generate_prime(500).to_i.to_s(2).length它将打印出 500,前导位将是 1

打开 SSL 文档

于 2017-10-13T20:26:31.680 回答