Как решаются вопросы дополнения при использовании алгоритмов шифрования?
Заинтересовался этой темой и столкнулся с двумя схожими вопросами при использовании блочных алгоритмов:
1. Как на практике дополняется до требуемой длины шифруемый блок данных?
2. Как дополняется ключ, поданный пользователем до нужной длины? Например, пользователь хочет использовать AES-256, но указал ключ длиной <256 бит. Что делается в таком случае? Первое, что приходит в голову - сделать хеш ключа, тогда он уж точно будет 256 бит (если, конечно, использован соответствующий алгоритм хеширования). Но я не знаю, делается ли так на практике
Для современного шифра с доказанной стойкостью нет разницы, какие данные превращать в фарш, поэтому недостающую длину обычно добивают нулями или другим постоянным значением. Нет, на криптостойкость это не влияет.
Это называется буквально "Растягивание ключа" и осуществляется в том числе путем хэширования пароля, возможно - многократного.