【发布时间】:2020-07-06 13:50:31
【问题描述】:
// 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 实现,并获得上述代码来计算共享密钥。问题是 Alice 和 Bob 在获得共享素数后都生成了他们的密钥。我需要他们生成各自的密钥对,而不必使用任何共享信息,然后才能使用共享信息来计算共享秘密。我无法看到如何使用 NodeJS 加密库来完成。
【问题讨论】:
-
嗯?在您的代码中,密钥对是在共享密钥之前创建的,对吧?
-
是的,它们是在计算共享密钥之前创建的,只是为了生成它们的密钥,我必须生成一个共享素数。在现实世界中,我希望首先生成密钥对,然后再使用任何共享变量来计算共享密钥。
-
var alice = crypto.createDiffieHellman(1024);alice.generateKeys();var alicePub = alice.getPublicKey();var bob = crypto.createDiffieHellman(1024);bob.generateKeys();var bobPub = bob.getPublicKey();var bobAliceSecret = bob.computeSecret(alicePub);var aliceBobSecret = alice.computeSecret(bobPub);以上不允许 alice 和 bob 计算相同的共享密钥。
标签: node.js cryptography diffie-hellman