Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
all of DiskretMat.rtf
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
60.29 Mб
Скачать

6.11. Взлом защищенных файлов.

6.11.1. Атака на ключ

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

Допустим, ключ является числом меж­ду 0 и 100 000 000 000 (сто миллиардов). Атакующий берет шифротекст и передает его алгоритму шифрования вместе с предполагаемым ключом равным 0. Алгоритм делает свою работу и выдает результат. Если получен­ные данные имеют осмысленный вид, возможно, что 0 - это правильный ключ. Если данные выглядят бессмысленно, значит 0 не является правильным ключом. В этом случае нужно попробовать 1, затем 2, 3, 4 и т.д. (см. рис. 36).

Рис. 36 Атака методом прямого перебора

Помните, что алгоритм просто выполняет свои действия независимо от входных данных. У него нет способа узнать, является ли полученный ре­зультат правильным. Даже если значение близко к значению ключа,, быть может, отличается на 1, результат все равно будет бессмысленным. В связи с этим необходимо просматривать результаты, чтобы сказать, может ли быть использованное значение ключом. Искушенные атакующие пишут программы, просматривающие результат. Он представляет собой последо­вательность символов алфавита? Да? Передать этот ключ атакующему. Нет? Попробовать следующий ключ.

На пробу ключа обычно уходит достаточно мало времени. Атакующий может написать программу, которая перебирает за секунду большое коли­чество ключей. В конечном итоге, атакующий может попытаться испробо­вать каждое возможное число между 0 и 100 миллиардами, но это не обя­зательно потребуется. После того, как верный ключ найден, продолжать поиск не нужно. В среднем атакующий испробует половину всех возмож­ных ключей — в нашем примере, 50 миллиардов ключей, — прежде чем найдет правильный. Иногда это занимает больше времени, иногда меньше, но в среднем будет испробовано около половины всех возможных ключей.

Сколько времени потребуется атакующему, чтобы испробовать 50 мил­лиардов ключей? Три года? Три дня? Три минуты? Предположим, вы хо­тите сохранить ваш секрет по меньшей мере в течение трех лет, но атакую­щему понадобится всего три минуты, чтобы перебрать 50 миллиардов зна­чений. Что вы будете делать? Вы изберете больший диапазон значений ключей. Вместо того, чтобы выбирать число между 0 и 100 миллиардами, вы выберете число между 0 и 100 миллиардами миллиардов миллиардов миллиардов. Теперь атакующему придется испробовать в среднем гораздо больше ключей, прежде чем он найдет правильный.

Эта концепция диапазона возможных значений ключей известна как длина ключа.

Чем больше длина ключа, тем больше возможных значе­ний может иметь ключ Здесь важ­но, какое значе­ние, 0 или 1, имеет каждый бит в каж­дой позиции физических ключей измеряется в битах. Диапазон значений для 128-битного ключа столь велик, что проще будет сказать, что это 128-битный ключ. В самом деле,

40-битный ключ (шестнадцатеричное представление)

000000000000000000010000000002…6P5581D20C…FF FF FF FF FF

64-битный ключ (шестнадцатеричное представле­ние)

000000000000000000000000000000010000000000000002…59C671DD54E44092…FF FF FF FF FF FF FF

128-битный ключ (шестнадцатеричное представление)

000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000002…201486AE18845ACFE98098B2443C11D2 …FF FF FF FF FF FP FF FF FF FF FF FF FF FF FF FF

Каждый лишний бит в размере ключа в два раза увеличивает время, не­обходимое для выполнения атаки методом прямого перебора. Если на взлом 40-битного ключа потребуется 3 часа, то взлом 41-битного ключа займет 6 часов, 42-битного ключа — 12 часов и т.д. Почему? Каждый до­полнительный бит вдвое увеличивает число возможных значений ключей.

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

Следовательно, если вы хотите затруднить задачу атакующему, то выби­раете длинный ключ. Чем длиннее ключ, тем выше безопасность. Насколь­ко длинным должен быть ключ? В течение ряда лет RSA Laboratoriee предлагала принять участие в конкурсе. Первый человек или организация, которой удастся расшифровать определенное сообщение, получит денежный приз. Некоторые из таких конкурсов являлись своеобразными тестами для атак прямого перебора ключей. В 1997 г. 40-битный ключ был вскрыт за 3 часа, а 48-битный ключ — за 280 часов. В 1999 г. компании Electronic Frontier Foundation удалось определить 56-битный ключ за 24 часа. В каждом случае до того, как ключ был найден, было просмотрено более 56% ключей. В январе 1997 г. было предложено вскрыть 64-битный ключ. В де­кабре 2000 г. эта задача еще не была решена. Во всех этих случаях сотни или даже тысячи компьютеров совместно работали, чтобы взломать ключи. В действительности при взломе 56-битного ключа DES, который компания Electronic Frontier Foundation осуществила за 24 часа, один из этих компьютеров представлял собой специализированный взломщик DES. Такой компьютер делает только одно: проверяет ключи DES. Атакующий, который работает тайно, скорее всего, не может воспользоваться мощью сотен компьютеров и не будет иметь в своем распоряжении компьютера, специально созданного для взлома определенного алгоритма. Вот почему для большинства атакующих время, которое требуется для взлома ключа, будет существенно большим. С другой стороны, если атакующие работают в спецслужбе с огромными ресурсами, ситуация может быть иной.

Мы можем рассмотреть наихудший сценарий. Допустим, что просмотр 1% пространства ключей для 56-битного ключа занимает 1 секунду, а про­смотр 50% занимает 1 минуту (см. таблицу ??). Каждый раз, когда мы до­бавляем бит к длине ключа, время поиска удваивается.

Таблица ??. Наихудший сценарий. Сколько времени потребуется для взло­ма ключей различной длины при атаке, использующей прямой перебор

Количество битов

1% общего числа ключей

50% общего числа ключей

56

1 секунда

1 минута

57

2 секунды

2 минуты

58

4 секунды

4 минуты

64

4,2 минуты

4,2 часа

72

17,9 часов

44,8 дня

80

190,9 дней

31,4 лет

90

535 лет

321 век

108

140000 тысячелетий

8 миллионов тысячелетий

128

146 миллиардов тысячелетий

8 триллионов тысячелетий

На сегодняшний день наиболее распространенной длиной симметрично­го ключа является 128 битов. Если технические достижения будут этому способствовать, атакующие, использующие метод прямого перебора, смо­гут улучшить показатели (может быть, что им удастся сократить время на определение 128-битного ключа до нескольких лет), в этом случае придет­ся использовать 256-битные ключи.

Можно подумать, что раз компьютерная техника постоянно развивается, то постоянно придется увеличивать длину ключей. Не наступит ли время, когда потребуются ключи такой длины, что с ними станет слишком не­удобно работать. В ответ можно сказать, что вам почти наверняка никогда не придется использовать ключ длиной более 512 битов (64 байта). Вообра­зите, что каждый атом во Вселенной (всего их около 2300) является компь­ютером, и что каждый из этих компьютеров может проверить 2300 ключей в секунду. Для того чтобы просмотреть 1°/о ключей длиной 512 битов, по­требуется около 2162 тысячелетий. В настоящее время считается, что воз­раст Вселенной не превышает 224 тысячелетий. Другими словами, крайне маловероятно, что техника когда-нибудь разовьется до такой степени, что придется использовать слишком длинные ключи.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]