Битлента
Словарь терминов3 мин чтения·

Симметричное шифрование: один ключ на двоих

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

Один секрет для обеих сторон

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

Общие понятия вы найдёте на странице shifrovanie, сравнение с двухключевой схемой на asimmetrichnoe-shifrovanie.

Блочные и потоковые шифры

Блочный шифр обрабатывает данные порциями фиксированной длины. Самый известный представитель AES работает с блоком в 128 бит и ключом длиной 128, 192 или 256 бит; ему посвящена страница aes-shifrovanie. Потоковый шифр вырабатывает псевдослучайную последовательность и накладывает её на данные; примером служит ChaCha20, который часто выбирают там, где нет аппаратной поддержки AES, например на части мобильных устройств. Старый алгоритм DES с ключом в 56 бит считается устаревшим и легко подбирается.

Сам по себе шифр лишь преобразует один блок. Что делать с длинным сообщением, определяет режим работы.

Обратите внимание на размер ключа при выборе параметров: 128 бит подходит для большинства задач, а 256 бит выбирают, когда важен запас прочности на долгий срок хранения данных. Длина ключа влияет на скорость лишь незначительно, а вот ошибки в режиме и хранении ключа влияют на безопасность куда сильнее.

Режимы и целостность

Режим шифрования решает, как связать блоки между собой. Простейший ECB шифрует каждый блок независимо: одинаковые блоки открытого текста дают одинаковые блоки шифротекста, поэтому узоры в данных остаются видимыми, и режим считают непригодным. Режимы с вектором инициализации, такие как CBC и CTR, скрывают повторения. Современный выбор — режимы с проверкой подлинности, например GCM: они не только шифруют, но и позволяют обнаружить подмену данных. Вектор инициализации не секретен, но не должен повторяться с одним ключом, а ошибка с этим нарушает защиту.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно

Главная трудность: как передать ключ

Если ключ нужно передать по тому же каналу, который хочется защитить, возникает замкнутый круг. Кроме того, число ключей растёт: для группы из многих участников, каждый из которых общается с каждым, потребуется отдельный ключ на каждую пару. Эту проблему решают асимметричные методы: пара участников договаривается об общем секрете при помощи схемы вроде diffie-hellman, после чего дальнейший обмен идёт симметрично. Такой гибридный подход лежит в основе TLS. Ключи, выработанные заново для каждого сеанса, дают свойство, которое описано на странице pfs-sovershennaya-pryamaya-sekretnost.

Где встречается и как отличить хорошее от плохого

Симметричное шифрование работает в защите Wi-Fi, в шифровании диска, в паролях менеджеров паролей, в архивах с паролем, в мессенджерах. Признаки надёжной реализации: известный, проверенный алгоритм, ключ достаточной длины, случайно созданный или выработанный из пароля специальной медленной функцией, режим с проверкой подлинности, уникальные векторы. Тревожные признаки: собственные шифры, короткие ключи, режим ECB, ключ, зашитый в программу. Если вы выбираете настройку, оставляйте значения по умолчанию у зрелых библиотек и программ.

Ключ из пароля и типичные ошибки

Когда ключ нужен из пароля, его не берут напрямую: пароль пропускают через функцию выработки ключа, вроде PBKDF2 или Argon2, добавляя соль и большое число повторений. Так замедляется подбор. Если использовать пароль как ключ без такой функции, слабая парольная фраза оказывается единственной преградой, а подбор идёт быстро.

Среди ошибок реализации: повтор вектора инициализации при одном ключе, хранение ключа рядом с данными, использование устаревших алгоритмов ради совместимости, отсутствие проверки целостности, из-за чего злоумышленник может незаметно менять зашифрованные данные. Поэтому самодельные решения на основе базовых блоков рискованны, а готовые проверенные библиотеки и программы, которые выбирают режимы правильно по умолчанию, надёжнее. Так что применяйте готовое и обновляйте его.

Если нужно проверить настройки на своих устройствах, посмотрите, какой набор алгоритмов согласуется в защищённом соединении: он указывается в сведениях о соединении браузера и описан на странице shifrovalnyy-nabor-cipher-suite.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно
шифрованиеaesключ

Часто задаваемые вопросы

Читайте также