安全素数的产生

发布于 2024-10-24 18:02:13 字数 559 浏览 3 评论 0原文

我需要生成一个安全素数,其形式为 2p + 1,其中 p 也是某个素数 位长度(假设 1024 位)。它用于 DH 密钥交换。

执行此操作

我相信 openssl 可以通过openssl gendh 1024

,但是返回的是 base64 pem 格式

-----BEGIN DH PARAMETERS-----
MIGHAoGBANzQ1j1z7RGB8XUagrGWK5a8AABecNrovcIgalv1hQdkna2PZorHtbOa
wYe1eDy1t/EztsM2Cncwvj5LBO3Zqsd5tneehKf8JoT35/q1ZznfLD8s/quBgrH8
es2xjSD/9syOMMiSv7/72GPJ8hzhLrbTgNlZ+kYBAPw/GcTlYjc7AgEC
-----END DH PARAMETERS-----
  • 如何从这个 base64 pem 中提取安全素数?

    如何
  • 用我自己的代码生成我自己的安全素数是否更容易?

我如何测试素数是否“安全”并且具有一定的位长度。

I need to generate a safe prime which has the form 2p + 1 where p is also prime of a certain
bit length (lets say 1024 bits). It is to be used in a DH key exchange.

I believe openssl can do this via

openssl gendh 1024

however this return's a base64 pem format

-----BEGIN DH PARAMETERS-----
MIGHAoGBANzQ1j1z7RGB8XUagrGWK5a8AABecNrovcIgalv1hQdkna2PZorHtbOa
wYe1eDy1t/EztsM2Cncwvj5LBO3Zqsd5tneehKf8JoT35/q1ZznfLD8s/quBgrH8
es2xjSD/9syOMMiSv7/72GPJ8hzhLrbTgNlZ+kYBAPw/GcTlYjc7AgEC
-----END DH PARAMETERS-----
  • How can I extract the safe prime number from this base64 pem?

  • is it easier to generate my own safe prime with my own code?

how can i test that a prime is 'safe' and of a certain bit length.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

眼睛会笑 2024-10-31 18:02:13

@GregS 有一种方法可能适合你。根据你告诉我的内容,我只需创建一个 C 二进制文件并利用 OpenSSL 中的 BN_generate_prime(...) 函数。这消除了所有中间解析,尽管在混合中添加了单独的二进制文件,但它可能比您要走的路更容易。

@GregS has an approach that will probably work for you. Based on what you have told me, I would just create a C binary and leverage the BN_generate_prime(...) function in OpenSSL. That cuts out all of the intermediate parsing and despite adding a separate binary into the mix, it's probably easier than the road you are headed down.

半透明的墙 2024-10-31 18:02:13

我同意@Luke 的评论。但是,如果由于某种原因您必须使用 openssl 命令行,有一些选项,但它们只能让您到目前为止。这些都不会为你做任何重要的算术;他们不会检索 (p-1)/2 并检查它的素数。

您可以使用 openssl dh 命令并解析输出。尝试使用和不使用 -C 选项,看看哪个更适合您。例子。

openssl gendh -out testdh.pem 1024
openssl dh -in testdh.pem -noout -C
openssl dh -in testdh.pem -noout

如果您可以处理或更喜欢二进制,那么您可以解析 DER 编码的 DH 结构的二进制输出。

openssl dh -in testdh.pem -outform der -out testdh.der

另一个选项是解析 ans1parse 命令的输出:

openssl asn1parse -in testdh.pem

I agree with the comments made by @Luke. However, if for some reason you must use openssl command lines there are a few options but they'll only get you so far. None of these will do any significant arithmetic for you; they won't retrieve (p-1)/2 and check it for primality.

You can use the openssl dh command and parse the output. Try it with and without the -C option to see which works better for you. Examples.

openssl gendh -out testdh.pem 1024
openssl dh -in testdh.pem -noout -C
openssl dh -in testdh.pem -noout

If you can handle or prefer binary then you can parse the binary output for the DER-encoded DH structure.

openssl dh -in testdh.pem -outform der -out testdh.der

Another option is to parse the output of the ans1parse command:

openssl asn1parse -in testdh.pem
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文