Я пытаюсь реализовать протокол обмена ключами Диффи Хеллмана. На данный момент я зациклился на генерации общих параметров.
Каждый раз, когда я запускаю программу, параметры p и g одинаковы (хотя в документации по методу указано «Это будет генерировать новую пару ключей каждый раз, когда она вызывается»).Почему общие параметры Diffie Hellman одинаковы при каждом исполнении?
Может ли кто-нибудь объяснить мне, что мне здесь не хватает?
KeyPairGenerator kpg;
try
{
kpg = KeyPairGenerator.getInstance("DiffieHellman");
kpg.initialize(512, new SecureRandom());
KeyPair dkp = kpg.generateKeyPair();
DHParameterSpec params =
((javax.crypto.interfaces.DHPublicKey) dkp.getPublic()).getParams();
BigInteger p = params.getP();
BigInteger a = params.getG();
System.out.println(p);
} catch (Exception e)
{
e.printStackTrace();
}
реализации платформы Java требуется только для реализации DiffieHellman с 1024 ключевых размеров. Хотя это практически не влияет на реализацию, можете ли вы попытаться инициализировать с размером ключа 1024 и посмотреть, что произойдет? Также попробуйте не вызывать инициализацию вообще (она будет использовать инициализацию по умолчанию) – SirRichie