首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安全素数的生成

安全素数的生成
EN

Stack Overflow用户
提问于 2011-03-21 15:56:55
回答 2查看 4.4K关注 0票数 6

我需要生成一个安全素数,它的形式是2p +1,其中p也是一个特定位长的素数(比如1024位)。它将用于DH密钥交换。

我相信openssl可以通过

openssl gendh 1024

然而,此返回是base64 pem格式

代码语言:javascript
复制
-----BEGIN DH PARAMETERS-----
MIGHAoGBANzQ1j1z7RGB8XUagrGWK5a8AABecNrovcIgalv1hQdkna2PZorHtbOa
wYe1eDy1t/EztsM2Cncwvj5LBO3Zqsd5tneehKf8JoT35/q1ZznfLD8s/quBgrH8
es2xjSD/9syOMMiSv7/72GPJ8hzhLrbTgNlZ+kYBAPw/GcTlYjc7AgEC
-----END DH PARAMETERS-----

  • 如何从这个base64 pem提取安全素数?
  • 是否更容易用我自己的代码生成自己的安全素数?

我如何测试一个质数是‘安全’和一定的位长。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-22 14:44:19

@GregS有一种可能对你有用的方法。基于您告诉我的内容,我只需创建一个C二进制文件,并在BN_generate_prime(...)中使用OpenSSL函数。这就省去了所有的中间解析,尽管在混合中添加了一个单独的二进制,但它可能比前面的道路更容易。

票数 7
EN

Stack Overflow用户

发布于 2011-03-22 14:05:57

我同意卢克的评论。但是,如果出于某种原因,您必须使用openssl命令行,那么有几个选项,但它们只能提供给您。所有这些都不会为您做任何重要的算法;它们不会检索(p-1)/2并检查它是否为素数。

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

代码语言:javascript
复制
openssl gendh -out testdh.pem 1024
openssl dh -in testdh.pem -noout -C
openssl dh -in testdh.pem -noout

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

代码语言:javascript
复制
openssl dh -in testdh.pem -outform der -out testdh.der

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

代码语言:javascript
复制
openssl asn1parse -in testdh.pem
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5380218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档