使用Erlang生成RSA密钥对?

Nuv*_*ous 8 erlang cryptography rsa public-key private-key

Erlang有一个加密函数,可以生成公共私钥(下面复制的文档).但是文档看起来很模糊,我找不到任何描述如何生成共享素数或生成器的示例代码.有人可以发布一个生成公钥/私钥对的示例吗?在此先感谢您的帮助!

dh_generate_key(DHParams) -> {PublicKey,PrivateKey} 
dh_generate_key(PrivateKey, DHParams) -> {PublicKey,PrivateKey} 
Run Code Online (Sandbox Code Playgroud)

类型:DHParameters = [P,G] P,G = Mpint其中P是共享素数,G是共享发生器.PublicKey,PrivateKey = Mpint()生成Diffie-Hellman PublicKey和PrivateKey(如果没有给出).

Tad*_*mas 7

您不为Diffie-Hellman生成共享素数或生成器.看到:

http://en.wikipedia.org/wiki/Diffie-Hellman_key_exchange

参数P和G由双方提前商定.使用维基百科文章的符号,crypto:dh_generate_key用于生成a/ A&b/的步骤2和3 B,然后crypto:dh_compute_key用于步骤4和5来计算共享秘密s.

对于RSA,我不知道生成公钥/私钥对的标准库函数.从我记忆中生成素数是一个相当复杂的算法; 我强烈建议你不要自己编写代码.Diffie-Hellman密钥对不适合与RSA一起使用; 它们是用于不同目的的不同算法.

通常,您不需要在运行时生成这些,因为您可以重用密钥对.您可以使用任意数量的其他来源来实际生成它.(也许ssh-keygen可以工作?而且总是有OpenSSL.)要使用你创建的密钥对,你可以使用这些crypto:rsa_ public/private _ encrypt/decrypt函数.