【问题标题】:Generating Large Prime Numbers for Diffie-Hellman in Ruby在 Ruby 中为 Diffie-Hellman 生成大素数
【发布时间】:2017-10-14 04:26:31
【问题描述】:

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

【问题讨论】:

    标签: ruby cryptography diffie-hellman


    【解决方案1】:

    使用 openssl gem

    OpenSSL::BN::rand

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

    【讨论】:

    • 太棒了,谢谢!我在哪里可以找到这方面的文档?我检查了 ruby​​-doc.org,但我只能找到 OpenSSL::HMAC 和其他一些内容。
    • 另外,有没有确保它是素数的功能?
    • 也可以试试 OpenSSL::BN::generate_prime(500)
    • 在文档方面查看 openssl 文档而不是 gem
    • 我在 ruby​​ openssl gem 中看不到 BN_is_prime。您可以提交一个错误来添加它或自己将它添加到 gem 中。
    【解决方案2】:

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-12
      • 1970-01-01
      • 2017-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多