Как объединить закрытый ключ и открытый ключ для общего секрета в Java

Я читаю википедию о криптографии с открытым ключом с открытым ключом ( http: // en. wikipedia.org/wiki/Public-key_cryptography) и в нем говорится:

В схеме обмена ключами Диффи – Хеллмана каждая сторона генерирует пару открытого / закрытого ключей и распространяет открытый ключ ... После получения подлинные копии открытых ключей друг друга, Алиса и Боб могут вычислить общий секрет в автономном режиме. Общий секрет может использоваться, например, как ключ для симметричного шифра.

Мне интересно, как этого добиться в Java? то есть, учитывая произвольный открытый ключ и произвольный частный ключ, как сгенерировать из него общий секрет?

Чтобы было понятнее:

У Алисы есть пара открытого / закрытого ключей key_pair_alice ,

У Боба есть пара открытого / закрытого ключей key_pair_bob ,

Если я правильно понимаю, должен существовать метод common_keys () , чтобы:

combine_keys(key_pair_alice.private, key_pair_bob.public) == 
    combine_keys(key_pair_alice.public, key_pair_bob.private) 

Мой вопрос - как реализовать метод comb_keys () в Java.

Спасибо.

7
задан shonky linux user 21 June 2016 в 03:12
поделиться