CyberGlossary

Криптография

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

Определение

Симметричный шифр, шифрующий данные побитно или побайтно через XOR с псевдослучайной ключевой последовательностью, выработанной из ключа и nonce.

Поточный шифр формирует псевдослучайную ключевую последовательность из секретного ключа и nonce, а затем побайтно складывает её по XOR с открытым текстом. Расшифрование заново порождает ту же последовательность и применяет XOR к шифротексту. Поточные шифры удобны для потоковых данных и устройств с ограниченными ресурсами, так как не имеют границ блоков и хранят немного состояния. Современные конструкции ChaCha20 и Salsa20 быстрые в программе, работают за постоянное время и стойки; устаревшие, такие как RC4, считаются взломанными и запрещены в TLS, WPA и большинстве стандартов. Главное правило — никогда не использовать одну и ту же пару (ключ, nonce): два сообщения с одной ключевой последовательностью раскрывают свой XOR, чего обычно достаточно для восстановления обоих текстов. Поэтому их применяют в аутентифицированных режимах вроде ChaCha20-Poly1305.

Примеры

  • ChaCha20-Poly1305 — ведущий современный AEAD на основе поточного шифра в TLS 1.3 и QUIC.
  • RC4 ранее применялся в WEP и SSL/TLS, но теперь запрещён.

Связанные термины