在Ruby中为Diffie-Hellman生成大素数

时间:2010-09-28 23:04:05

标签: ruby cryptography diffie-hellman

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

2 个答案:

答案 0 :(得分:2)

使用openssl gem

OpenSSL :: BN :: rand

您可以指定所需的大小 - 例如OpenSSL :: BN :: rand(212)

答案 1 :(得分:0)

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

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

Open SSL Documentation