В настоящее время я работаю над протоколом, который использует Диффи-Хеллмана для обмена ключами.Я получаю пакет, который состоит из зашифрованной части aes-128 и 128-битного открытого ключа DH.
На последнем шаге протокола ключ aes отправляется другому узлу в сети.Этот aes-ключ должен быть зашифрован с помощью шифра с использованием 128-битного секретного ключа.
Я планирую использовать Blowfish (также может быть другим шифром, на самом деле проблема не имеет)
Теперь, чтобы зашифровать ключ aes, скажем, с помощью blowfish, мне нужно создать секретный ключ для шифрования с классом SecretKeySpec (я использую javax.crypto stuff), который использует byteArray в конструкторе для построения secretKey.
Общий ключ от DH - это 128-битный BigInteger.Что ж, теперь я могу интерпретировать свой общий ключ как byteArray (который дает мне еще 128 бит в 16 байтах [где числа интерпретируются как кадры 8-битных данных])
Итак, мой вопрос, насколько силенмой ключ действительно?
Есть ли какое-либо влияние, потому что я использую числа только как входные данные для byteArray (так ли это ограничивает пространство клавиш в любом случае?)
Я думаю, что это не так,но я не уверен на 100%.Может быть, кто-то может сделать математику и доказать, что я прав или нет.
Если я ошибаюсь, какой размер ключа для общего ключа подскажет мне, наконец, получить 128Bit SecretKey для шифрования?