node.js - 使用 NodeJS 了解 Diffie-Hellman

标签 node.js cryptography diffie-hellman

// node.js 0.5 Diffie-Hellman example
var crypto = require("crypto");

// the prime is shared by everyone                                              
var server = crypto.createDiffieHellman(512);
var prime = server.getPrime();

// sharing secret key on a pair                                                 
var alice = crypto.createDiffieHellman(prime);
alice.generateKeys();
var alicePub = alice.getPublicKey();

var bob = crypto.createDiffieHellman(prime);
bob.generateKeys();
var bobPub = bob.getPublicKey();

var bobAliceSecret = bob.computeSecret(alicePub);
var aliceBobSecret = alice.computeSecret(bobPub); 

我试图了解如何使用 NodeJS 加密库进行 diffie-hellman 实现,并获得上述代码来计算共享 secret 。问题是爱丽丝和鲍勃在获得共享素数后都生成了各自的 key 。我需要他们生成各自的 key 对,而不必使用任何共享信息,然后才能使用共享信息来计算共享 secret 。我无法了解如何使用 NodeJS 加密库来完成此操作。

最佳答案

我看到你的困惑。

Diffie-Hellman 素数代表您在内部执行 DH 函数的一组数字(循环组),但它不是为每个人随机生成的。

看看我的回答 here .

素数/群在 key 生成和静态之前已知。

仅使用了很少的组,请参阅here了解更多。

需要明确的是,为了生成相同的 key ,您只需确保两个 ppl 都在具有相同 DH 参数的同一组内运行。

关于node.js - 使用 NodeJS 了解 Diffie-Hellman,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60858632/

相关文章:

node.js - 在 Node 中使用 request 和express 制作代理

javascript - Express:在 304 Not Modified 上发送 Content-Type

python - 解密 MD5 哈希

c - 我的加密是否像 openPGP/SMIME 一样安全?

java - 为什么 iOS 5 无法连接到运行 JDK 1.6 而不是 JDK 1.5 的服务器

java - 将 P-256 DH java 字符串转换为 java PublicKey

javascript - 有没有办法在 node.js 中创建延迟?

node.js - 使用 azure 函数 nodejs 创建缩略图

c++ - 在 Crypto++ 中使用 RSA 加密对称 AES key

java - Diffie-Hellman 在 BouncyCaSTLe 中设置生成器参数