Ключ шифрования
Ключ шифрования — секретное значение, без которого зашифрованные данные нельзя прочитать. Алгоритм открыт, секретен только ключ, а его длина задаёт число вариантов для перебора.
Алгоритм открыт, секретен только ключ
Принцип сформулировал в 1883 году Керкгоффс в работе «La cryptographie militaire» («Военная криптография»). Из шести его требований к шифрам главным считают второе: система не должна требовать секретности и может без неудобств попасть в руки противника. Через 66 лет, в 1949-м, Клод Шеннон выразил то же короче: противник знает систему. Поэтому AES описан в открытом стандарте FIPS 197, и тайной остаётся лишь ключ. Открытый алгоритм может проверить любой специалист, а его утечка ничего не ломает: при компрометации достаточно сменить ключ.
Длина ключа и число вариантов
Ключ у каждого шифра свой: у Цезаря это сдвиг, у Виженера слово, у AES строка бит. От длины зависит, сколько вариантов придётся перебрать.
| Шифр | Ключ | Число вариантов |
|---|---|---|
| Шифр Цезаря, 33 буквы | Сдвиг от 1 до 32 | 32 |
| Шифр Цезаря, латиница | Сдвиг от 1 до 25 | 25 |
| DES | 56 бит | 72 057 594 037 927 936 |
| AES-128 | 128 бит | 340 282 366 920 938 463 463 374 607 431 768 211 456 |
| AES-256 | 256 бит | 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 пароль подписан как «ключ безопасности сети», отсюда путаница. Слабый пароль сделает слабым и выведенный из него ключ.