Потоковый шифр
Потоковый шифр объединяет открытый текст с псевдослучайным ключевым потоком, полученным из секретного ключа и nonce.
Определение
Потоковый шифр генерирует псевдослучайную гамму из секретного ключа и обычно nonce, а затем объединяет её с открытым текстом, часто операцией XOR. Для расшифрования та же гамма объединяется с шифротекстом. Современный пример — ChaCha20.
Повтор гаммы
Одну гамму нельзя применять к разным сообщениям. Повтор пары ключ–nonce раскрывает XOR открытых текстов и может позволить восстановить оба. Поэтому каждому шифрованию с ключом назначают уникальный nonce.
Целостность
Базовый потоковый шифр скрывает данные, но не обнаруживает изменения: инверсия бита шифротекста предсказуемо меняет открытый текст. Современные системы используют аутентифицированные схемы вроде ChaCha20-Poly1305.
Нет. Потоковый создаёт гамму, блочный переставляет блоки фиксированного размера. Некоторые режимы блочного шифра ведут себя как потоковые.
Обычно да. Для данного ключа он должен быть уникальным; секретность обычно не нужна.
Гамма повторяется и сокращается при сравнении шифротекстов, напрямую связывая открытые сообщения.