Эфемерный обмен ключами Java Диффи-Хеллмана - PullRequest
2 голосов
/ 24 сентября 2019

Это мой первый пост на stackoverflow.Я всегда находил то, что мне было нужно, но сегодня я должен задать вопрос.

Я пишу программу, в которой я хочу подключиться к серверу.Сервер шифрует данные с помощью алгоритма Диффи-Хеллмана.

А вот серверный код [C ++]

///// SEND KEY
Integer p("0xB10B8F96A080E01DDE92DE5EAE5D54EC52C99FBCFB06A3C6"
"9A6A9DCA52D23B616073E28675A23D189838EF1E2EE652C0"
"13ECB4AEA906112324975C3CD49B83BFACCBDD7D90C4BD70"
"98488E9C219A73724EFFD6FAE5644738FAA31A4FF55BCCC0"
"A151AF5F0DC8B4BD45BF37DF365C1A65E68CFDA76D4DA708"
"DF1FB2BC2E4A4371");

Integer g("0xA4D1CBD5C3FD34126765A442EFB99905F8104DD258AC507F"
"D6406CFF14266D31266FEA1E5C41564B777E690F5504F213"
"160217B4B01B886A5E91547F9E2749F4D7FBD7D3B9A92EE1"
"909D0D2263F80A76A6A24C087A091F531DBF0A0169B6A28A"
"D662A4D18E73AFA32D779D5918D08BC8858F4DCEF97C2A24"
"855E6EEB22B3B2E5");

Integer q("0xF518AA8781A8DF278ABA4E7D64B7CB9D49462353");

AutoSeededRandomPool asrp;

dh_.AccessGroupParameters().Initialize(p, q, g);

p = dh_.GetGroupParameters().GetModulus();
q = dh_.GetGroupParameters().GetSubgroupOrder();
g = dh_.GetGroupParameters().GetGenerator();

Integer v = ModularExponentiation(g, q, p);

SecByteBlock spubkey(dh2_.StaticPublicKeyLength());
SecByteBlock epubkey(dh2_.EphemeralPublicKeyLength());

sprivkey.New(dh2_.StaticPrivateKeyLength());
eprivkey.New(dh2_.EphemeralPrivateKeyLength());

dh2_.GenerateStaticKeyPair(asrp, sprivkey, spubkey);
dh2_.GenerateEphemeralKeyPair(asrp, eprivkey, epubkey);

send(spubkey, epubkey);


///////// KEY AGREE
//buf = recived keys [spubkey+epubkey]
const size_t spub_key_length = dh2_.StaticPublicKeyLength();
shared_.New(dh2_.AgreedValueLength());
dh2_.Agree(shared_, sprivkey, eprivkey, buf, buf + spub_key_length)

Теперь я хочу обменяться ключами с программой на JAVA.

Я не очень понимаю, как это сделать.И все примеры в JAVA не включают параметр q и эфемерный ключ.

Stackoverflow.Я надеюсь, что вы мне поможете!Я сижу на нем несколько хороших дней ...

Спасибо

...