Длина ключа и безопасность 1

Не важно, какие алгоритмы и насколько длинные ключи используются; секреты, которые хранятся в памяти пользователя, беззащитны сами по себе.

Ключ, сгенерированный случайным образом, намного лучше, но проблемы остаются. Генератор случайных чисел должен создавать ключи с максимальной энтропией. Недостатки генератора случайных чисел – те же, что привели к сбоям системы шифрования в Netscape Navigator 1.1. Хотя генератор случайных чисел применяли для создания 128-битовых ключей, максимальная энтропия достигала примерно 20 бит. То есть алгоритм был не лучше, чем если бы использовался 20-битовый ключ.

Второй предмет заботы – это качество алгоритма шифрования. Все предыдущие расчеты предполагали, что алгоритм получал ключи при помощи вычислений и использовал их совершенным образом. Если в алгоритме есть слабые места, доступные для атаки, это существенно снижает энтропию ключей. Например, алгоритм А5/1, используемый европейской сетью сотовых телефонов GSM, имеет 64-битовый ключ, но может быть взломан за время, требующееся для взлома 30-битового ключа при помощи атаки «в лоб». Это значит, что хотя у алгоритма имеется ключ с 64-битовой энтропией, он задействует для ключа только 30 бит энтропии. Вы можете с тем же успехом использовать хороший алгоритм с 30-битовым ключом.

По этой причине проходит довольно много времени, прежде чем шифровальщики начинают доверять новому алгоритму. Когда кто-то предлагает новый алгоритм, у него есть определенная длина ключа. Но обеспечивает ли алгоритм реально ту энтропию, которая заявлена? Может потребоваться несколько лет анализа, прежде чем мы поверим, что он это делает. И даже тогда мы можем легко ошибиться: возможно, кто-то придумает новые математические подходы, которые понизят энтропию алгоритма и сломают его. Поэтому рекламу программ, в которых обещаются тысячебитовые ключи, трудно воспринимать серьезно – ее создатели не имеют понятия, как работают ключи и энтропия.

Похожая проблема существует и для физических ключей и замков. Принято думать, что слесарь возит в своем грузовике огромное кольцо с ключами от машин. Может потребоваться 10 000 ключей, чтобы открыть все замки, но в реальности несколько дюжин ключей откроют любой из них. Иногда слесарю достаточно просто взять другой ключ, отличающийся от предыдущего на 1-2 «бита», – отметим, что это комбинация анализа и лобовой атаки – и этого уже достаточно. Да, процесс долгий, но совсем не такой, как проверка всех 10 000 возможных ключей (старые замки – четырехштырьковые). Действительная надежность дверного замка существенно отличается от теоретической.

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

Сказанное здесь заставляет очень внимательно подходить к выбору алгоритма. Мы еще обсудим это более детально в конце этой главы.