2015-04-12 2 views
-1

Я нуждается в некоторых объяснений по соответствующей линии, которые я не понимаю:Почему метод generateKey из алгоритма DES умножает ключ на 8?

KeyGenerationParameters kgp = new KeyGenerationParameters(sr,(DESParameters.DES_KEY_LENGTH) * 8); 

бы он перестанет работать, если я, например, число 6 вместо 8?

+0

Вы читали javadoc для занятий, о которых вы упоминаете? http://bouncycastle.org/docs/docs1.5on/org/bouncycastle/crypto/KeyGenerationParameters.html использует биты как единицы длины. –

+1

"* Прекрати работать, если ... *": Почему бы вам не попробовать эту операцию? – mins

+0

Возможно, потому что константа определена в байтах, а класс KeyGenerationParameters хочет ее в терминах * bits * –

ответ

0

Он умножается на 8, потому что он в байтах в противном случае. Код требует бит.

0

прочность - размер, в битах, ключей, которые мы хотим произвести.

Это от javadoc для KeyGenerationParameters. DESPArameters.DES_KEY_LENGTH сохраняет значение 8 (длина ключа DES в байтах), но KeyGenerationParameters требует длину ключа в битах. 8 байт * 8 = 64 бит в случае KeyGenerationParameters. Вы можете просто поставить постоянное значение 64.

Этот класс может быть использован для случайной генерации ключей для любого алгоритму, например, для генерации ключа DES вы должны использовать значение 64, чтобы генерировать 3DES ключ 128 или 192.

Смежные вопросы