【发布时间】:2017-10-14 04:26:31
【问题描述】:
我正在为我的一个大学课程的一个项目编写一个用 ruby 进行 diffie-hellman 密钥交换的实现。我需要生成至少 500 位长度的大(安全)素数。有任何想法吗?我应该使用 OpenSSL 库吗?如果是,您会推荐哪些功能?
【问题讨论】:
标签: ruby cryptography diffie-hellman
我正在为我的一个大学课程的一个项目编写一个用 ruby 进行 diffie-hellman 密钥交换的实现。我需要生成至少 500 位长度的大(安全)素数。有任何想法吗?我应该使用 OpenSSL 库吗?如果是,您会推荐哪些功能?
【问题讨论】:
标签: ruby cryptography diffie-hellman
使用 openssl gem
OpenSSL::BN::rand
你可以指定你需要的大小——比如 OpenSSL::BN::rand(212)
【讨论】:
OpenSSL::BN::generate_prime(500) 会做到的,就像 abdollar 所说的那样。
确保将require 'openssl' 放在顶部以将其包含在您的 ruby 文件中
要检查它的位数是否正确,您可以通过运行OpenSSL::BN::generate_prime(500).to_i.to_s(2).length 打印出二进制文件,它将打印出 500,前导位将是 1
【讨论】: