使用NodeJS了解Diffie-Hellman

问题描述 投票:0回答:1
// 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实现,并获得了上面的代码来计算共享机密。问题是爱丽丝和鲍勃都在获得共享素数后生成了密钥。我需要它们生成各自的密钥对,而不必使用任何共享信息,而晚于可以使用共享信息来计算共享密钥。我看不到如何使用NodeJS加密库来完成。

node.js cryptography diffie-hellman
1个回答
0
投票

我看到你的困惑。

Diffie-Hellman质数表示您在其中执行DH功能的一组数字(循环组),但是不是每个人都随机生成的。

查看我的答案here

质数/组在生成密钥和静态之前是已知的。

仅使用了很少的组,有关更多信息,请参见here。>>

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

© www.soinside.com 2019 - 2024. All rights reserved.