Требуют ли алгоритмы шифрования внутренний алгоритм хеширования? - PullRequest
1 голос
/ 20 мая 2010

Когда я использую C # для реализации шифра симметричного шифрования AES, я заметил:

PasswordDeriveBytes derivedPassword = new PasswordDeriveBytes(password, saltBytesArray, hashAlgorithmName, numPasswordIterations);

Зачем мне использовать алгоритм хеширования для шифрования AES? Разве они не отделены? Или алгоритм хеширования используется только для создания безопасного ключа?

Алгоритм AES не использует внутренний алгоритм хеширования, не так ли?

Ответы [ 2 ]

2 голосов
/ 20 мая 2010

PasswordDeriveBytes не является частью AES. Он реализует алгоритм для получения ключей шифрования из пароля. Алгоритм предполагает использование алгоритма хеширования.

0 голосов
/ 12 ноября 2010

PasswordDeriveBytes используется для получения симметричного ключа, а также IV, который вы собираетесь использовать для шифрования / дешифрования. PasswordDeriveBytes будет брать пароль (пароль в вашем случае), добавлять соль (saltBytesArray в вашем случае) и хэшировать его (с предоставленным вами алгоритмом, например, SHA или MD5) 'n' много раз (numPasswordIterations в вашем случае) и давать Вы результирующий байтовый массив.

Этот метод используется только для получения ключа, это никак не связано с расшифровкой шифрования, скажем.

...