// 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/