ScholarGate
Ассистент

Поточные шифры

Поточные шифры шифруют данные путем генерации псевдослучайного ключевого потока из секретного ключа и его объединения с открытым текстом, обычно по одному биту или байту за раз, имитируя идеально безопасный одноразовый блокнот с коротким ключом.

Найти тему в PaperMindСкороFind papers & topics
Tools & resources
Скачать слайды
Learn & explore
ВидеоСкоро

Definition

Поточный шифр — это схема симметричного шифрования, которая генерирует длинный псевдослучайный ключевой поток из секретного ключа (и обычно одноразового кода) и шифрует путем объединения ключевого потока с открытым текстом, чаще всего с помощью побитового исключающего ИЛИ.

Scope

Эта тема охватывает проектирование и анализ поточных шифров: генераторы ключевого потока, построенные на регистрах сдвига с линейной обратной связью, комбинаторные и фильтровые конструкции, а также современные программно-ориентированные разработки, такие как ChaCha20 и портфолио eSTREAM. В ней рассматривается связь с одноразовым блокнотом, критическое требование никогда не использовать повторно ключевой поток, а также атаки, возникающие из-за повторного использования ключевого потока или слабых генераторов. Она исключает блочные шифры, хотя блочный шифр в режиме счетчика фактически функционирует как поточный шифр.

Core questions

  • Как короткий ключ может быть растянут в длинный, непредсказуемый ключевой поток, имитирующий одноразовый блокнот?
  • Почему повторное использование ключевого потока является катастрофическим, и как одноразовые коды предотвращают это?
  • Что делает генератор ключевого потока криптографически стойким, а не просто статистически случайным?
  • Как современные поточные шифры, такие как ChaCha20, достигают высокой скорости без специализированного оборудования?
  • Какие классические атаки (корреляционные, алгебраические) взламывают слабые конструкции на основе LFSR?

Key concepts

  • ключевой поток
  • одноразовый блокнот
  • регистр сдвига с линейной обратной связью
  • одноразовый код и вектор инициализации
  • повторное использование ключевого потока (двукратный блокнот)
  • ChaCha20 и Salsa20
  • корреляционные атаки
  • синхронные против самосинхронизирующихся шифров

Key theories

Одноразовый блокнот и совершенная секретность
Шифрование путем XOR с истинно случайным ключом такой же длины, как и сообщение, обеспечивает совершенную секретность по Шеннону; поточные шифры аппроксимируют это, заменяя непрактичный истинно случайный блокнот псевдослучайным ключевым потоком.
Генерация ключевого потока и криптографическая псевдослучайность
Безопасный поточный шифр является псевдослучайным генератором: его ключевой поток должен быть вычислительно неотличим от случайного, так что ни один эффективный противник не может предсказать будущие биты ключевого потока даже после наблюдения многих.

Mechanisms

Синхронный поточный шифр инициализирует внутреннее состояние из ключа и одноразового кода, затем многократно обновляет состояние и выдает выходной ключевой поток независимо от открытого текста. Ключевой поток объединяется с открытым текстом с помощью операции XOR для шифрования и с зашифрованным текстом для дешифрования. Конструкции, основанные на регистрах сдвига с линейной обратной связью, быстры в аппаратной реализации, но требуют нелинейных комбинаторов для противодействия алгебраическим атакам; программные шифры, такие как ChaCha20, используют операции сложения-вращения-XOR (ARX) на большом состоянии для скорости и безопасности.

Clinical relevance

ChaCha20 (с аутентификатором Poly1305) широко используется в TLS 1.3, OpenSSH, WireGuard и мобильных мессенджерах, где он предпочтительнее AES на устройствах без аппаратного ускорения AES. Поточные шифры хорошо подходят для потокового мультимедиа и каналов с низкой задержкой. Исторически поточный шифр RC4 защищал ранние версии SSL/TLS и WEP Wi-Fi, пока его недостатки не привели к его устареванию.

Evidence & guidelines

ChaCha20-Poly1305 стандартизирован в RFC 8439 и одобрен для TLS. RC4 запрещен в TLS согласно RFC 7465 из-за смещений ключевого потока. Проект eSTREAM (2004-2008) создал проверенное портфолио поточных шифров. Кардинальное правило для всех стандартов заключается в том, что пара (ключ, одноразовый код) никогда не должна использоваться повторно.

History

Поточные шифры произошли от шифра Вернама (1917) и одноразового блокнота. Военные системы времен холодной войны использовали генераторы ключевого потока, основанные на регистрах сдвига. RC4, разработанный Роном Ривестом в 1987 году, получил огромное распространение, но в конечном итоге был взломан в своих протокольных применениях. Конкурс eSTREAM и семейство Salsa20/ChaCha20 Дэниела Бернштейна (2008) определили современное, удобное для программной реализации поколение, которое сейчас предпочитают в интернет-протоколах.

Key figures

  • Claude Shannon
  • Daniel J. Bernstein
  • Ronald Rivest
  • Adi Shamir

Related topics

Seminal works

  • shannon1949
  • katz2020
  • menezes1996

Frequently asked questions

Что произойдет, если ключевой поток поточного шифра будет использован повторно?
Операция XOR двух зашифрованных текстов, зашифрованных одним и тем же ключевым потоком, отменяет ключевой поток, оставляя XOR двух открытых текстов, что часто раскрывает оба сообщения. Вот почему каждое шифрование должно использовать новый одноразовый код, чтобы ключевой поток никогда не повторялся при фиксированном ключе.
Являются ли поточные шифры менее безопасными, чем блочные шифры?
Не обязательно. Современные поточные шифры, такие как ChaCha20, считаются такими же безопасными, как AES, и иногда быстрее в программной реализации. Небезопасность возникает из-за неправильного использования (повторное использование ключевого потока) или слабых устаревших конструкций, таких как RC4, а не из-за самой концепции поточного шифра.

Methods for this concept

Related concepts