Открыть сервис

Алгоритм шифрования

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

История

Древние и классические шифры

Первые известные алгоритмы шифрования появились в древности. Шифр Цезаря (I век до н. э.) использовал циклический сдвиг букв алфавита на фиксированное число позиций. В Средние века применялись более сложные моноалфавитные и полиалфавитные подстановки (например, шифр Виженера, XVI век). Классические шифры, как правило, были уязвимы для частотного анализа и не имели строгого математического обоснования.

Эпоха механических шифров

В XX веке появились роторные шифровальные машины, такие как «Энигма» (Германия, 1920-е годы) и «Сигма» (СССР). Эти устройства реализовывали сложные алгоритмы подстановки с переменным ключом, что значительно повысило стойкость. Однако их взлом (например, британскими криптоаналитиками под руководством Алана Тьюринга) показал необходимость разработки более надёжных методов.

Современная криптография

Современная эра началась с публикации в 1949 году работы Клода Шеннона «Теория связи в секретных системах», заложившей математические основы криптографии. В 1970-х годах появились первые блочные шифры (DES, 1977), а также асимметричная криптография (RSA, 1977), основанная на сложности факторизации больших чисел. С 2000-х годов стандарты шифрования (AES, ГОСТ 28147-89, ГОСТ Р 34.12-2015) активно вытесняют устаревшие алгоритмы.

Классификация алгоритмов шифрования

По типу ключа

  • Симметричные алгоритмы — используют один и тот же ключ для шифрования и расшифрования. Примеры: AES, DES, 3DES, Blowfish, «Кузнечик» (ГОСТ Р 34.12-2015). Требуют безопасного канала для передачи ключа.
  • Асимметричные алгоритмы — используют пару ключей: открытый (для шифрования) и закрытый (для расшифрования). Примеры: RSA, ECC (эллиптическая криптография), ElGamal. Не требуют предварительного обмена секретом, но медленнее симметричных.

По способу обработки данных

  • Блочные шифры — шифруют данные блоками фиксированной длины (например, 128 бит для AES). Используют режимы работы (ECB, CBC, CTR, GCM) для обработки сообщений произвольной длины.
  • Поточные шифры — шифруют данные побайтно или побитно, генерируя ключевой поток (гамму). Примеры: RC4, ChaCha20, Salsa20. Обычно быстрее блочных, но могут быть менее стойкими при неправильном использовании.

По стойкости

  • Теоретически стойкие (абсолютно стойкие) — шифротекст не даёт никакой информации об открытом тексте, даже при неограниченных вычислительных ресурсах. Единственный пример — шифр Вернама (одноразовый блокнот), при условии, что ключ истинно случаен, не короче сообщения и используется однократно.
  • Вычислительно стойкие — взлом требует нереализуемых вычислительных затрат (например, перебор всех ключей). К ним относятся все современные алгоритмы (AES-256, RSA-2048, ChaCha20).

Устройство и принципы работы

Основные операции

Большинство современных симметричных алгоритмов (например, AES) основаны на подстановочно-перестановочной сети (SP-сеть). Типичные операции включают:

  • SubBytes (замена байтов по таблице — S-блок);
  • ShiftRows (циклический сдвиг строк);
  • MixColumns (смешивание столбцов с помощью матричного умножения);
  • AddRoundKey (наложение раундового ключа операцией XOR).

Асимметричные алгоритмы часто используют модульную арифметику (RSA) или операции над точками эллиптических кривых (ECC).

Режимы работы блочных шифров

Для шифрования сообщений, длина которых превышает размер блока, применяются режимы:

  • ECB (Electronic Codebook) — каждый блок шифруется независимо. Уязвим для атак по шаблону, не рекомендуется.
  • CBC (Cipher Block Chaining) — каждый блок XOR-ится с предыдущим шифротекстом. Требует инициализационного вектора (IV).
  • CTR (Counter) — шифрует счётчик, результат XOR-ится с открытым текстом. Позволяет параллельное шифрование.
  • GCM (Galois/Counter Mode) — обеспечивает одновременно шифрование и аутентификацию (проверку целостности).

Применение

Защита данных при передаче

  • Протоколы TLS/SSL (используют AES, ChaCha20, RSA, ECDHE) — шифрование интернет-трафика.
  • VPN (IPsec, OpenVPN) — шифрование туннелей.
  • Мессенджеры (Signal, Telegram) — сквозное шифрование на основе алгоритмов Signal Protocol (использует X3DH и AES/ChaCha20).

Защита данных при хранении

  • Шифрование дисков (BitLocker, LUKS, VeraCrypt) — AES-256.
  • Шифрование файлов и баз данных (PGP, SQLite Encryption Extension).
  • Архиваторы (7-Zip, WinRAR) — поддержка AES-256.

Аутентификация и электронная подпись

  • Цифровые подписи (RSA, ECDSA, ГОСТ Р 34.10-2012) — подтверждение авторства и целостности.
  • Хеш-функции (SHA-256, SHA-3, «Стрибог» по ГОСТ Р 34.11-2012) — часто используются вместе с алгоритмами шифрования.

Примеры алгоритмов

Симметричные

  • AES (Advanced Encryption Standard) — принят в 2001 году, размер блока 128 бит, ключи 128/192/256 бит. Является стандартом в США и широко применяется в мире.
  • ГОСТ Р 34.12-2015 — российский стандарт, включающий алгоритмы «Магма» (64-битный блок) и «Кузнечик» (128-битный блок). Обязателен для использования в государственных информационных системах РФ.
  • ChaCha20 — поточный шифр, разработанный Дэниелом Бернштейном. Используется в TLS и протоколе WireGuard.

Асимметричные

  • RSA — основан на сложности разложения больших чисел на множители. Длина ключа обычно 2048 или 4096 бит.
  • ECC (Elliptic Curve Cryptography) — использует свойства эллиптических кривых. Позволяет получать аналогичную стойкость при меньшей длине ключа (например, 256 бит ECC ≈ 3072 бит RSA).
  • ГОСТ Р 34.10-2012 — российский стандарт электронной подписи на основе эллиптических кривых.

Критика и ограничения

  • Квантовая угроза — алгоритмы RSA и ECC уязвимы для квантового компьютера, способного выполнять алгоритм Шора. В связи с этим разрабатываются постквантовые алгоритмы (например, CRYSTALS-Kyber, Dilithium).
  • Уязвимости реализации — даже стойкий алгоритм может быть взломан из-за ошибок в программной или аппаратной реализации (атаки по сторонним каналам, утечки ключей).
  • Закладки и бэкдоры — в некоторых алгоритмах (например, Dual_EC_DRBG) были обнаружены потенциальные закладки, что вызывает недоверие к стандартам, разработанным без публичного аудита.
  • Регулирование — в ряде стран (включая Россию) существуют ограничения на использование криптографии без лицензии ФСБ, а также требования к обязательной сертификации алгоритмов.

Интересные факты

  • Алгоритм DES (1977) имел ключ длиной 56 бит, что в 1990-х годах стало недостаточно для защиты от атак перебором. В 1998 году проект EFF взломал DES за 56 часов.
  • Шифр Вернама (одноразовый блокнот) является единственным доказанно абсолютно стойким, но его практическое применение ограничено из-за необходимости синхронизации огромных ключей.
  • В 2024 году NIST (США) выбрал три постквантовых алгоритма для стандартизации: CRYSTALS-Kyber (шифрование), CRYSTALS-Dilithium и FALCON (подписи).

Источники

  • Шеннон К. «Теория связи в секретных системах» (1949).
  • Федеральный закон РФ «О персональных данных» № 152-ФЗ (2006).
  • ГОСТ Р 34.12-2015 «Информационная технология. Криптографическая защита информации. Блочные шифры».
  • NIST FIPS 197 (AES) — Advanced Encryption Standard.
  • Бернштейн Д. «ChaCha20 and Poly1305 for IETF Protocols» (2015).
  • Menezes A., van Oorschot P., Vanstone S. «Handbook of Applied Cryptography» (1996).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →