在 Ruby 中为 Diffie-Hellman 生成大素数
我正在用 ruby 为我的大学课程的一个项目编写 diffie-hellman 密钥交换的实现。我需要生成至少 500 位长度的大(安全)素数。有什么想法吗?我应该使用 OpenSSL 库吗?如果是这样,您会推荐哪些功能?
I'm writing an implementation of a diffie-hellman key exchange in ruby for a project for one of my university classes. I need to generate large (secure) prime numbers of at least 500 bits length. Any ideas? Should I use the OpenSSL library? If so, what functions would you recommend?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用 openssl gem
OpenSSL::BN::rand
您可以指定所需的大小 - 就像这样 OpenSSL::BN::rand(212)
Use the openssl gem
OpenSSL::BN::rand
You can specify the size you need - like so 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打开 SSL 文档
OpenSSL::BN::generate_prime(500)
will do it, like abdollar said.Make sure to put
require 'openssl'
at the top to include it in your ruby fileTo check it is the correct number of bits you can print out the binary by just running
OpenSSL::BN::generate_prime(500).to_i.to_s(2).length
and it will print out 500, and the leading bit will be a 1Open SSL Documentation