Понимание Diff ie -Hellman с NodeJS - PullRequest
1 голос
/ 26 марта 2020
// 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 для реализации diff ie -hellman, и получил приведенный выше код для вычисления общего секрета. Проблема в том, что Алиса и Боб генерируют свои ключи после получения общего простого числа. Мне нужно, чтобы они генерировали свои соответствующие пары ключей без необходимости использования какой-либо общей информации, позже, чем можно использовать общую информацию для вычисления общего секрета. Я не могу понять, как это можно сделать с помощью криптографической библиотеки NodeJS.

1 Ответ

2 голосов
/ 26 марта 2020

Я вижу ваше замешательство.

Простое Diff ie -Hellman представляет некоторую группу чисел (cycli c group), внутри которой вы выполняете функцию DH, однако она не генерируется случайным образом для каждого человека. .

Ознакомьтесь с моим ответом здесь .

Простое число / группа известны до генерации ключа и состояния c.

Есть только используется несколько групп, см. здесь .

Для ясности, чтобы сгенерировать одинаковые ключи, вам просто нужно убедиться, что оба ppl работают внутри одной группы с одинаковыми DH params.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...