Шифрование: симметричное и асимметричное — в чём разница
Проверено экспертной редакцией SecRadar · по первоисточникам ФСТЭК / ФСБ / Банка России
Шифрование — это обратимое преобразование данных в нечитаемый вид с помощью ключа и криптографического алгоритма: прочитать данные обратно может только тот, у кого есть правильный ключ для расшифровки. Материал разбирает разницу между симметричным шифрованием, где один ключ шифрует и расшифровывает (AES, российский ГОСТ Р 34.12-2015 «Кузнечик» и «Магма»), и асимметричным, где работает пара ключей — открытый и закрытый (RSA, ECC, ГОСТ Р 34.10-2012), а также то, как оба типа сочетаются в гибридных схемах вроде TLS/HTTPS и применяются в VPN и СКЗИ.
Кратко
- Что это
- Обратимое преобразование данных ключом и алгоритмом; расшифровка возвращает исходные данные при наличии правильного ключа.
- Симметричное
- Один ключ на шифрование и расшифровку — быстрое, но требует безопасно передать ключ обеим сторонам. AES, ГОСТ «Кузнечик», «Магма».
- Асимметричное
- Пара ключей — открытый и закрытый — снимает проблему обмена ключом, но работает намного медленнее. RSA, ECC, ГОСТ Р 34.10-2012.
- Гибридная схема
- Асимметричным алгоритмом передают симметричный сессионный ключ, дальше данные шифрует быстрый симметричный алгоритм — так устроен TLS/HTTPS.
- ГОСТ-криптография
- ГОСТ Р 34.12-2015 (симметричное), ГОСТ Р 34.10-2012 (асимметричное, электронная подпись) — применение в сертифицированных СКЗИ регулирует ФСБ России.
- Где применяется
- TLS/HTTPS, VPN и криптошлюзы, шифрование дисков и баз данных, электронная подпись.
Что такое шифрование
Шифрование — это обратимое преобразование данных в нечитаемый вид с помощью ключа и алгоритма: прочитать исходные данные обратно можно только расшифровкой с правильным ключом. Это ключевое отличие от хеширования и от простого кодирования, с которыми шифрование часто путают.
Шифрование vs хеширование. Шифрование двустороннее: зашифрованные данные превращаются обратно в исходные, если есть правильный ключ. Хеширование необратимо по конструкции — хеш-функция не хранит данные и не позволяет восстановить их обратно, она только формирует проверяемый отпечаток фиксированной длины для сверки. Спутать эти два понятия легко на слух, но задачи у них разные: шифрование защищает конфиденциальность, хеширование подтверждает целостность или проверяет пароль без хранения его в открытом виде.
Шифрование vs кодирование. Кодирование, например Base64, вообще не про безопасность — это способ представить данные в другом формате для передачи или хранения, и оно обратимо без всякого ключа: раскодировать Base64 может кто угодно, у кого есть сама строка. Шифрование без знания ключа обратить вычислительно невозможно — в этом и состоит его защитная функция.
Симметричное шифрование: AES, «Кузнечик», «Магма»
Симметричное шифрование использует один и тот же ключ для шифрования и расшифровки данных. Это делает его быстрым и экономичным по вычислениям, но создаёт проблему: обе стороны должны заранее получить один и тот же ключ по каналу, который сам по себе безопасен, — а такого канала может и не быть.
AES международный стандарт
Advanced Encryption Standard — блочный шифр с длиной ключа 128, 192 или 256 бит, принятый NIST в 2001 году взамен устаревшего DES. Основной симметричный алгоритм в TLS, дисковом шифровании, VPN и большинстве коммерческого софта за пределами требований к ГОСТ-криптографии.
ГОСТ Р 34.12-2015 «Кузнечик» реестр РФ
Российский блочный шифр с длиной блока 128 бит и ключом 256 бит, один из двух алгоритмов, описанных стандартом ГОСТ Р 34.12-2015. Развивает линию отечественной криптографии, применяется там, где требуется соответствие требованиям ФСБ России к криптографической защите.
«Магма» реестр РФ
Второй алгоритм ГОСТ Р 34.12-2015 — блочный шифр с блоком 64 бита, наследующий более старый ГОСТ 28147-89. Используется в задачах, где нужна обратная совместимость с ранее развёрнутыми системами на ГОСТ 28147-89.
Блочные vs потоковые шифры. Блочный шифр (AES, «Кузнечик», «Магма») делит данные на блоки фиксированной длины и шифрует каждый блок по отдельности с учётом режима работы алгоритма. Потоковый шифр обрабатывает данные последовательно, бит за битом или байт за байтом, без деления на блоки — это удобно для потокового трафика реального времени, где данные приходят непрерывно, а не заранее известным объёмом.
Главный практический минус симметричного шифрования — не в математике, а в логистике: если ключ нужно передать десяткам или тысячам получателей, безопасная доставка каждому становится отдельной задачей. Именно эту проблему решает асимметричное шифрование.
Асимметричное шифрование: RSA, ECC, ГОСТ Р 34.10-2012
Асимметричное шифрование работает с парой математически связанных ключей — открытым и закрытым. Данные, зашифрованные открытым ключом, расшифровывает только соответствующий закрытый ключ, и наоборот. Открытый ключ можно свободно передавать по незащищённому каналу — секретность держится не на канале передачи, а на закрытом ключе, который никогда его не покидает.
↔ таблицу можно прокрутить вбок
| Алгоритм | Тип | Статус | Где применяется |
|---|---|---|---|
| RSA | Факторизация больших чисел | Действующий стандарт, ключи от 2048 бит | TLS/HTTPS, электронная подпись, обмен ключами |
| ECC (эллиптические кривые) | Задача дискретного логарифма на кривой | Действующий стандарт, короче ключи при той же стойкости, что у RSA | TLS, мобильные и встраиваемые устройства с ограниченными ресурсами |
| ГОСТ Р 34.10-2012 | Эллиптические кривые (отечественные параметры) | Действующий российский стандарт, заменил ГОСТ Р 34.10-2001 | Электронная подпись по 63-ФЗ на ГОСТ-алгоритмах, сертифицированные СКЗИ |
Асимметричное шифрование решает проблему обмена ключом, но платит за это скоростью: операции с большими числами или точками на эллиптической кривой требуют на порядки больше вычислений, чем подстановки и перестановки битов в симметричном шифре. Поэтому асимметричные алгоритмы почти никогда не шифруют весь объём данных целиком — их используют для двух задач: безопасно передать симметричный сессионный ключ и создать электронную подпись, где закрытым ключом подписывают не документ целиком, а его хеш.
Гибридные схемы и применение в РФ
На практике симметричное и асимметричное шифрование почти всегда работают вместе: асимметричным алгоритмом один раз безопасно передают симметричный ключ сессии, а весь дальнейший трафик или файл шифрует уже быстрый симметричный алгоритм. Это и называется гибридной схемой — она берёт скорость от симметричного шифрования и снятие проблемы обмена ключом от асимметричного.
- TLS/HTTPS. При установке защищённого соединения браузер и сервер асимметричным алгоритмом (обычно на основе ECC) согласуют общий симметричный ключ сессии, а весь дальнейший трафик страницы шифрует уже AES или аналогичный симметричный шифр — асимметричная часть используется только на этапе рукопожатия.
- VPN и криптошлюзы. Защищённый туннель между узлами устроен по той же логике: обмен ключами через асимметричную криптографию, шифрование самого трафика — симметричным алгоритмом. Российские криптошлюзы и VPN-решения для гостребований используют схему выработки общего ключа (ВКО) на параметрах ГОСТ Р 34.10-2012 (рекомендация Р 50.1.113-2016) и ГОСТ Р 34.12-2015 для шифрования трафика. Сам ГОСТ Р 34.10-2012 — стандарт формирования и проверки электронной подписи, а не шифрования данных.
- СКЗИ и ГОСТ-криптография. Средства криптографической защиты информации, которые подпадают под требования ФСБ России, — сертифицированные криптопровайдеры, криптошлюзы, средства электронной подписи — обязаны использовать отечественные алгоритмы там, где это установлено регуляторикой, а не международные AES или RSA.
Частые вопросы
Чем симметричное шифрование отличается от асимметричного?
Что надёжнее — симметричное или асимметричное шифрование?
Какое шифрование быстрее — симметричное или асимметричное?
Какие ГОСТ-алгоритмы шифрования действуют в России?
Что такое шифрование данных простыми словами?
Зачем нужны гибридные схемы шифрования, если есть асимметричное?
Словарь ИБ на SecRadar
Разбор терминов криптографии и защиты данных без вендорной привязки — что стоит за понятием, как оно связано со смежными темами и какие классы СЗИ закрывают конкретную задачу.