Перейти к содержимому

Ключ шифрования

Ключ шифрования — секретное значение, без которого зашифрованные данные нельзя прочитать. Алгоритм открыт, секретен только ключ, а его длина задаёт число вариантов для перебора.

Алгоритм открыт, секретен только ключ

Принцип сформулировал в 1883 году Керкгоффс в работе «La cryptographie militaire» («Военная криптография»). Из шести его требований к шифрам главным считают второе: система не должна требовать секретности и может без неудобств попасть в руки противника. Через 66 лет, в 1949-м, Клод Шеннон выразил то же короче: противник знает систему. Поэтому AES описан в открытом стандарте FIPS 197, и тайной остаётся лишь ключ. Открытый алгоритм может проверить любой специалист, а его утечка ничего не ломает: при компрометации достаточно сменить ключ.

Длина ключа и число вариантов

Ключ у каждого шифра свой: у Цезаря это сдвиг, у Виженера слово, у AES строка бит. От длины зависит, сколько вариантов придётся перебрать.

ШифрКлючЧисло вариантов
Шифр Цезаря, 33 буквыСдвиг от 1 до 3232
Шифр Цезаря, латиницаСдвиг от 1 до 2525
DES56 бит72 057 594 037 927 936
AES-128128 бит340 282 366 920 938 463 463 374 607 431 768 211 456
AES-256256 бит2256, число из 78 цифр

Каждый лишний бит удваивает число вариантов. В 1998 году специализированная машина Deep Crack, собранная меньше чем за 250 тысяч долларов, вскрыла DES за 56 часов: она проверяла больше 90 миллиардов ключей в секунду. Допустим, у вас миллион таких машин. Полный перебор 2128 ключей займёт около 1,2·1014 лет, примерно в 8700 раз дольше возраста Вселенной (около 13,8 млрд лет).

Большое число вариантов — условие необходимое, но не достаточное. У произвольной замены на 33 буквах 33! ≈ 8,7·1036 ключей, около 2122,7, сопоставимо с AES-128, а вскрывается она частотным анализом без перебора. На практике шифры ломают мимо перебора: через утёкший ключ, слабый пароль или ошибку реализации.

Ключ и пароль: в чём разница

Ключ — случайная строка бит нужной длины. Пароль придумывает и запоминает человек, поэтому случайности в нём меньше. Чтобы зашифровать файл паролем, программа вырабатывает ключ специальной функцией: PBKDF2 (RFC 8018, 2017) или Argon2 (RFC 9106, 2021). Но слабый пароль даёт слабый ключ: 8 случайных символов из 95 печатных знаков дают около 52,6 бита, меньше, чем 56 у DES. Откуда берутся эти биты, объясняет энтропия информации.

С ключом путают и другие секреты. Пароль Wi-Fi Windows называет «ключом безопасности сети», но это пароль: в WPA2-Personal из него функция PBKDF2 вырабатывает 256-битный ключ (имя сети служит солью, итераций HMAC-SHA1 — 4096). Гостям пароль можно отдать через QR-код для Wi-Fi, но запишется он там открытым текстом. ПИН-код тоже не ключ: на пути в банк его шифруют ключами, а как он устроен, описано в термине про ПИН-код. Поле «ключ проверки» в коде маркировки (группа 91) — только номер открытого ключа, которым проверяют подпись; секрета в нём нет.

Какие бывают ключи

  • Симметричный. Один ключ шифрует и расшифровывает, его знают обе стороны.
  • Асимметричный. Пара из открытого и закрытого ключа: открытым шифруют или проверяют подпись, закрытым расшифровывают или подписывают. Закрытый ключ не покидает владельца.

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

Частые вопросы

Что такое ключ шифрования простыми словами?

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

Какой длины бывает ключ шифрования?

Зависит от алгоритма. AES допускает ключи в 128, 192 и 256 бит, российские «Кузнечик» и «Магма» используют 256-битный ключ, устаревший DES — 56 бит. Длины асимметричных ключей другие, и сравнивать их с симметричными напрямую нельзя.

Что будет, если потерять ключ шифрования?

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

Пароль Wi-Fi — это ключ шифрования?

Нет. Пароль сети вводите вы, а ключ шифрования вырабатывается из него автоматически и в явном виде не показывается. В настройках Windows пароль подписан как «ключ безопасности сети», отсюда путаница. Слабый пароль сделает слабым и выведенный из него ключ.