Алгоритм шифрования блочный шифр и потоковый шифр
В чем разница между потоковым шифром и блочным шифром? Как в блочном шифре данные находятся в чаках, а в потоковом шифре - побитовое шифрование, так сколько данных вводится в потоковый шифр?
1 ответ
Поток в Stream Cipher ссылается на ключ, а не на данные. В блочном шифре ключ шифрует блок данных (обычно 8 или 16 байтов) за раз, и обычно режим шифрования используется для изменения ключа от блока к блоку. В потоковом шифре некоторый механизм используется для генерации ключевого потока, и тогда данные, как правило, только XOR-редактируются с ключевым потоком. Поток ключей может быть одноразовой временной панелью, заранее известной отправителю и получателю, или выходным сигналом генератора случайных чисел с начальным состоянием, известным отправителю и получателю. Даже большинство блочных шифров могут использоваться в режиме CTR или OFB, поэтому они эффективно становятся потоковыми шифрами.
Зачем использовать потоковый шифр? Ну, последняя операция - это простой XOR, который очень быстрый. Поток ключей может быть вычислен независимо, даже заранее. Поэтому потоковые шифры популярны там, где необходимо шифрование в реальном времени, например, для зашифрованной телефонии.
Почему бы не использовать потоковый шифр? Ну, а последняя операция - это простой XOR, что означает, что злоумышленник может использовать обычные шаблоны в потоке ключей. Необходимо позаботиться о том, чтобы поток ключей никогда не повторялся, используя числа, использованные один раз, и другие механизмы, гарантирующие уникальность. Для блочных шифров это условие не так важно: хотя в режиме CBC предпочтительным является случайный вектор инициализации, постоянные IV не так опасны, как в потоковых шифрах.