Разработка современных защищенных систем — будь то бэкенд веб-сервиса, банковский клиент или мессенджер — опирается на фундаментальные примитивы криптографии. Зачастую в технической документации разработчики сталкиваются с терминологией: AES-256-GCM, RSA-4096, ECDHE, ГОСТ Р 34.12-2018.
Любая задача по защите данных в сети сводится к выбору между симметричным и асимметричным шифрованием, а чаще всего — к их грамотной комбинации в рамках гибридной криптосистемы. Понимание механики работы этих двух подходов, их вычислительных ограничений и законодательных рамок в Рунете необходимо для построения отказоустойчивых и безопасных систем.
- Что такое симметричное шифрование: принцип работы и внутреннее устройство
- Блочные и потоковые шифры: в чем разница (AES vs ChaCha20)
- Блочные шифры
- Потоковые шифры
- Зачем нужен вектор инициализации (IV) и режимы шифрования
- Как устроено асимметричное шифрование: фундаментальная математика и пара ключей
- Алгоритм RSA и криптография на эллиптических кривых (ECC)
- RSA (Rivest-Shamir-Adleman)
- Эллиптические кривые
- Механизм электронной цифровой подписи (ЭЦП)
- Сравнительный анализ: симметричное vs асимметричное шифрование
- Гибридное шифрование в реальных протоколах: TLS 1.3, SSH и PGP
- Протокол Диффи-Хеллмана и концепция Perfect Forward Secrecy (PFS)
- Криптографические стандарты в РФ и мире (ГОСТ vs NIST)
- Требования регуляторов к шифрованию персональных данных (152-ФЗ, ФСБ)
- Постквантовая угроза: почему классическая криптография под угрозой и что делать
- Алгоритм Шора против асимметрии
- Алгоритм Гровера против симметрии
- Переход на постквантовые стандарты ML-KEM и ML-DSA
- Заключение
Что такое симметричное шифрование: принцип работы и внутреннее устройство
Симметричное шифрование — это исторически первый и математически наиболее прямой способ защиты информации. Его определяющая черта: один и тот же секретный ключ используется как для превращения открытого текста в шифротекст, так и для обратной расшифровки.
Схематично процесс выглядит следующим образом:

Главное достоинство симметричных алгоритмов — чрезвычайно высокая скорость. Современные процессоры архитектуры x86 и ARM поддерживают аппаратные инструкции (AES-NI), что позволяет зашифровывать и расшифровывать данные на скоростях порядка нескольких гигабайт в секунду на одно ядро ЦПУ при минимальных задержках.
Главная проблема симметричной криптографии — проблема распределения ключей. Если Вася хочет отправить Пете защищенное сообщение, им нужно заранее передать друг другу ключ K. Но если у них уже есть защищенный канал для передачи ключа, то непонятно, зачем им вообще шифровать само сообщение.
Блочные и потоковые шифры: в чем разница (AES vs ChaCha20)
Все симметричные алгоритмы делятся на две ключевые архитектурные группы: блочные и потоковые.
Блочные шифры
Блочный шифр разбивает входной поток данных на фрагменты фиксированной длины — блоки (обычно 64 или 128 бит) — и применяет математическое преобразование к каждому блоку.
- AES: Мировой стандарт. Опирается на архитектуру SP-сети. Работает с блоками 128 бит и длинами ключей 128, 192 или 256 бит.
- ГОСТ Р 34.12-2018 («Кузнечик»): Российский стандарт. Размер блока — 128 бит, длина ключа — 256 бит. В основе лежит SP-сеть с 10 раундами преобразований.
- ГОСТ Р 34.12-2018 («Магма»): Обновленная версия советского ГОСТ 28147-89. Размер блока — 64 бит, ключ — 256 бит. Построена на 32-раундовой сети Фейстеля.
Из практики: При проектировании высоконагруженных сервисов стандартным выбором для симметричной защиты дисков и БД является AES-256 («Кузнечик»). Выбор 128-битного блока актуальнее, так как 64-битные блоки («Магма», DES) подвержены атакам по коллизиям блоков при шифровании больших объемов данных в рамках одного ключа.
Потоковые шифры
Потоковый шифр генерирует непрерывную псевдослучайную последовательность бит — гамму, которая затем складывается по модулю 2 (\oplus, XOR) с исходным текстом.
\text{Ciphertext}_i = \text{Plaintext}_i \oplus \text{Keystream}_i
- ChaCha20 (RFC 8439): Создан Дэниелом Бернштейном. Работает с 256-битным ключом и 96-битным одноразовым числом. Не требует таблиц поиска в памяти, что полностью защищает его от атак по сторонним каналам. ChaCha20 демонстрирует более высокую скорость, чем AES, на мобильных процессорах без специализированных аппаратных блоков ускорения AES-NI.
Зачем нужен вектор инициализации (IV) и режимы шифрования
Шифровать данные «в лоб» (блок за блоком) строго запрещено. Такой базовый режим называется ECB. В нем одинаковые блоки открытого текста дают одинаковые блоки шифротекста. Наглядный пример — «пингвин Tux»: зашифрованный в ECB-режиме рисунок полностью сохраняет свои контуры.

Чтобы избежать этого, используются продвинутые режимы работы блочных шифров, требующие вектор инициализации:
- CBC (Cipher Block Chaining): Каждый блок перед шифрованием складывается по XOR с предыдущим зашифрованным блоком. Для первого блока используется IV. Уязвим к атакам класса Padding Oracle при неправильной обработке ошибок дополнения.
- CTR (Counter Mode): Превращает блочный шифр в потоковый. Шифруется не сам текст, а счетчик, инкрементируемый для каждого блока, после чего результат накладывается по XOR на открытый текст.
- GCM (Galois/Counter Mode) — Стандарт AEAD: Режим аутентифицированного шифрования с присоединяемыми данными. GCM не только шифрует данные (режим CTR), но и вычисляет имитовставку (аутентификационный тег) на основе умножения в полях Галуа
\mathbb{GF}(2^{128}).
⚠️ Критически важно: Повторное использование пары Ключ + IV в режиме GCM или CTR приводит к полному раскрытию открытого текста. Повтор IV разрушает свойства псевдослучайности гаммы:
(\text{P1} \oplus \text{G}) \oplus (\text{P2} \oplus \text{G}) = \text{P1} \oplus \text{P2}, что позволяет атаковать шифротекст методами частотного анализа.
Как устроено асимметричное шифрование: фундаментальная математика и пара ключей
Асимметричная криптография (криптография с открытым ключом) была предложена Уитфилдом Диффи и Мартином Хеллманом в 1976 году. В ее основе лежит идея использования двух разных, но математически связанных ключей:
- Открытый ключ (Public Key): Используется для шифрования данных или проверки электронной подписи. Может свободно передаваться по незащищенным каналам.
- Закрытый ключ (Private / Secret Key): Используется для расшифровки данных или создания электронной подписи. Хранится у владельца.

Математической основой асимметрии являются односторонние функции с секретом. Это функции, которые легко вычислить в одну сторону y = f(x), но крайне сложно вычислить в обратную сторону x = f^{-1}(y), если только не известен секрет.
Алгоритм RSA и криптография на эллиптических кривых (ECC)
RSA (Rivest-Shamir-Adleman)
Безопасность RSA строится на вычислительной сложности задачи факторизации больших целых чисел (разложения произведения двух больших простых чисел n = p \cdot qна множители).
- Выбираются два больших простых числа
p и q. - Вычисляется модуль
n = p \cdot qи функция Эйлера\varphi(n) = (p-1)(q-1). - Выбирается открытая экспонента
e(обычно65537). - Вычисляется секретная экспонента
d, такая чтоd \cdot e \equiv 1 \pmod{\varphi(n)}.
- Шифрование:
C = M^e \pmod n - Расшифровка:
M = C^d \pmod n
Чтобы расшифровать текст без знающего d, злоумышленнику необходимо разложить n на простые множители p и q, что при длине модуля n в 2048 или 4096 бит на классических компьютерах требует миллиардов лет вычислений.
Эллиптические кривые
Стойкость ECC базируется на проблеме дискретного логарифмирования в группе точек эллиптической кривой (ECDLP). Уравнение кривой над конечным полем обычно задается в форме Вейерштрасса:
y^2 = x^3 + ax + b \pmod p
Сложение точек на эллиптической кривой — операция, геометрически и алгебраически детерминированная. Умножение точки Gна скаляр k(вычисление P = k \cdot G) выполняются быстро. Однако зная базовую точку G и итоговую точку P, найти скаляр k вычитанием или делением невозможно за приемлемое время.

Главное преимущество ECC перед RSA — габариты ключа при аналогичной стойкости:
| Стойкость (в битах) | Длина ключа RSA (бит) | Длина ключа ECC / ГОСТ (бит) | Выигрыш в размере |
| 112 | 2048 | 224-255 | ~8 раз |
| 128 | 3072 | 256 | ~12 раз |
| 256 | 15360 | 512 | ~30 раз |
В Рунете аналогом международных алгоритмов ECDSA является ГОСТ Р 34.10-2012, который также использует криптографию на эллиптических кривых над простыми полями с длинами ключей 256 и 512 бит.
Механизм электронной цифровой подписи (ЭЦП)
Асимметричное шифрование решает не только задачу конфиденциальности, но и задачу аутентификации и неотказуемости с помощью ЭЦП.
При создании ЭЦП роли ключей меняются местами:
- Отправитель берет исходный документ и вычисляет его криптографический хэш.
- Полученный хэш шифруется закрытым ключом отправителя. Это и есть цифровая подпись
S = D(\text{Private Key}, \text{Hash}). - Получатель расшифровывает подпись открытым ключом отправителя:
\text{Hash}' = E(\text{Public Key}, S). - Получатель самостоятельно вычисляет хэш полученного документа
\text{Hash}_{fact}. Если\text{Hash}' == \text{Hash}_{fact}, документ аутентичен и не подвергался изменениям.
Сравнительный анализ: симметричное vs асимметричное шифрование
Для наглядного сопоставления фундаментальных различий подходов сведем их характеристики в единую таблицу.
| Критерий | Симметричное шифрование | Асимметричное шифрование |
| Используемые ключи | Один секретный ключ на обе стороны | Пара: публичный (открытый) и приватный (закрытый) |
| Скорость работы | Очень высокая (гигабайты в секунду, AES-NI) | Низкая (в 1000–10000 раз медленнее симметрии) |
| Размер ключей | 128, 256 бит | 2048–4096 бит (RSA), 256–512 бит (ECC/ГОСТ) |
| Основные алгоритмы | AES, ChaCha20, «Кузнечик», «Магма» | RSA, ECDSA, Ed25519, ГОСТ Р 34.10-2012 |
| Основная задача | Конфиденциальное хранение и передача крупных массивов данных | Передача симметричных ключей, аутентификация, ЭЦП |
| Масштабируемость | Плохая для сети: для Nучастников нужно N(N-1)/2ключей |
Отличная: для N участников нужно всего N пар ключей |
| Стойкость к квантовому взлому | Высокая (AES-256 устойчив к алгоритму Гровера) | Нулевая (RSA и ECC полностью ломаются алгоритмом Шора) |
Гибридное шифрование в реальных протоколах: TLS 1.3, SSH и PGP
Из сравнения очевиден компромисс: симметричное шифрование работаeт быстро, но страдает от проблемы передачи ключа. Асимметричное решаeт проблему передачи ключа, но непригодно для прокачки больших объемов трафика из-за нагрузок на ЦПУ.
Решением стала гибридная криптосистема.

Принцип работы гибридной схемы:
- Асимметричная фаза: С помощью криптографии с открытым ключом или протокола обмена ключами стороны аутентифицируют друг друга и генерируют случайный одноразовый сессионный ключ (Session Key).
- Симметричная фаза: Весь последующий массив данных шифруется быстрым симметричным шифром с использованием этого сессионного ключа.
Именно по такой гибридной схеме устанавливаются соединения в современных корпоративных VPN-сетях (OpenVPN, IPsec). Однако на практике инженеры часто совершают архитектурную ошибку, применяя тотальное сетевое шифрование там, где оно не требуется. Если ваша задача — не защита банковской транзакции, а автоматизация парсинга, работа с антидетект-системами или обход DPI, тяжелая криптография создаст лишь бессмысленный оверхед и привлечет внимание антифрод-фильтров. В нашем техническом разборе разницы между VPN и прокси мы подробно показываем, в каких случаях от шифрования на уровне L3 стоит отказаться в пользу чистой маршрутизации (L7).
Протокол Диффи-Хеллмана и концепция Perfect Forward Secrecy (PFS)
В современных протоколах (TLS 1.3, SSH) запрещено использовать статический RSA для прямой передачи сессионных ключей. Вместо этого применяется протокол ECDHE.
Алгоритм Диффи-Хеллмана позволяет двум сторонам, имеющим свои пары ключей, сформировать общее секретное число по открытому каналу, при этом сам секрет по каналу никогда не передается:
- Петя выбирает приватное число
a, вычисляет публичную точкуA = a \cdot Gи отправляет Васе. - Вася выбирает приватное число
b, вычисляет публичную точкуB = b \cdot Gи отправляет Пете. - Петя вычисляет общую точку:
S = a \cdot B = a \cdot (b \cdot G). - Вася вычисляет общую точку:
S = b \cdot A = b \cdot (a \cdot G).
Благодаря сочетательному закону a \cdot (b \cdot G) = b \cdot (a \cdot G), Петя и Вася получают идентичную точку S, из координаты xкоторой методом KDF извлекается симметричный сессионный ключ.
Буква «E» в ECDHE означает Ephemeral (эфимерный). Для каждого нового соединения создаются новые временные ключи a и b. Это гарантирует свойство Perfect Forward Secrecy (PFS):
Если злоумышленник в будущем запишет весь зашифрованный трафик компании, а через 5 лет украдет долгосрочный закрытый ключ сервера, он не сможет расшифровать ни одну из прошлых сессий, так как эфимерные ключи a и b существовали только в оперативной памяти в момент установления соединения и были сразу уничтожены.
Криптографические стандарты в РФ и мире (ГОСТ vs NIST)
При проектировании архитектуры шифрования необходимо принимать во внимание юрисдикцию и требования законодательства.

В мировом сегменте регулятором выступает американский NIST (в сотрудничестве с IETF). В РФ стандартизацию осуществляет Технический комитет по стандартизации «Криптографическая защита информации» (ТК 26), а сертификацию средств криптографической защиты информации (СКЗИ) ведут ФСБ России и ФСТЭК России.
Требования регуляторов к шифрованию персональных данных (152-ФЗ, ФСБ)
Согласно требованиям 152-ФЗ «О персональных данных» и Приказа ФСБ России № 378, при обработке ПДн в информационных системах (ИСПДн) уровней защищенности УЗ-1, УЗ-2 и УЗ-3 обязательным является применение сертифицированных СКЗИ (КриптоПро CSP или ViPNet), реализующих отечественные ГОСТы.
Использование исключительно зарубежных криптопровайдеров (стандартный OpenSSL с AES/RSA) в государственном секторе, банковских системах (в рамках требований ЦБ РФ № 719-П) и при работе с критической информационной инфраструктурой (КИИ, 187-ФЗ) влечет риски регуляторных санкций и непрохождения аттестации.
Постквантовая угроза: почему классическая криптография под угрозой и что делать
Главный технологический вызов для криптографии — прогресс в создании квантовых компьютеров.
Алгоритм Шора против асимметрии
В 1994 году Питер Шор создал квантовый алгоритм, позволяющий находить период функции за полиномиальное время O((\log N)^3). Это означает, что квантовый компьютер с несколькими тысячами стабильных кубитов сможет:
- Выполнить факторизацию целых чисел в алгоритме RSA за минуты.
- Вычислить дискретный логарифм в ECC и ГОСТ Р 34.10-2012 за считанные секунды.
Таким образом, вся классическая асимметричная криптография (RSA, ECC, Diffie-Hellman, ГОСТ) окажется полностью скомпрометирована.
Алгоритм Гровера против симметрии
В отличие от асимметрии, симметричное шифрование страдает значительно меньше. Квантовый алгоритм Гровера ускоряет перебор неструктурированных баз данных и ключей квадратично — с O(N)до O(\sqrt{N}).
Это эффективно уменьшает стойкость симметричного ключа вдвое:
- AES-128 превращается по стойкости в AES-64 (что небезопасно и поддается перебору).
- AES-256 и «Кузнечик» (256 бит) превращаются в 128 бит стойкости, что остается абсолютным и недостижимым порогом для взлома на ближайшие десятилетия.
Переход на постквантовые стандарты ML-KEM и ML-DSA
Для защиты от квантовой угрозы NIST утвердил стандарты постквантовой криптографии:
- FIPS 203 (ML-KEM / CRYSTALS-Kyber): Механизм инкапсуляции ключей (KEM) на основе задачи обучения с ошибками в модульных решетках.
- FIPS 204 (ML-DSA / CRYSTALS-Dilithium): Алгоритм цифровой подписи на решетках.
В России ТК 26 ведет аналогичную работу по созданию гибридных постквантовых ГОСТ-стандартов, сочетающих эллиптические кривые (ГОСТ Р 34.10-2012) с алгебраическими решетками, чтобы обеспечить плавную миграцию инфраструктуры PKI.
Заключение
Выбор между симметричным и асимметричным шифрованием — это не поиск «самого сильного алгоритма», а правильная комбинация инструментов под конкретную задачу.
Чтобы не ошибиться при проектировании архитектуры защищенного сервиса, ориентируйтесь на следующие прикладные правила:
-
Для шифрования файлов, БД и основного сетевого трафика используйте симметричные шифры (AES-256-GCM или «Кузнечик»). На мобильных устройствах или IoT без аппаратного ускорения AES-NI используйте ChaCha20-Poly1305.
-
Для обмена ключами и работы с ЭЦП переходите с RSA на эллиптические кривые (ECDSA, Ed25519, ГОСТ Р 34.10-2012). Это даст аналогичный уровень стойкости при ключах в 8–12 раз меньшего размера.
-
В сетевом взаимодействии (TLS/SSH) всегда задействуйте гибридные схемы с ECDHE. Одноразовые эфимерные ключи гарантируют, что утечка приватного ключа сервера в будущем не позволит расшифровать архив прошлых сессий.
-
Строго следите за вектором инициализации (IV): никогда не используйте повторно комбинацию
Key + IVв режимах CTR и GCM — это разрушает математическую защиту и приводит к утечке открытого текста. -
Учитывайте законодательство РФ: при работе с персональными данными (152-ФЗ), объектами КИИ (187-ФЗ) и в госзакупках заранее закладывайте поддержку сертифицированных СКЗИ (КриптоПро CSP, ViPNet) и стандартов ГОСТ.
-
Готовьтесь к квантовой угрозе: выбирайте симметричные ключи длиной 256 бит (запас против алгоритма Гровера) и закладывайте в архитектуру криптографическую гибкость (crypto-agility), чтобы в будущем безболезненно заменить алгоритмы подписи на постквантовые (ML-KEM, ML-DSA).








