Один из основных параметров стойкости криптосистемы – размерность ключевого пространства. Он обеспечивает защиту от силовой атаки, основанной на полном переборе всех возможных ключей. Например, DES использует 56-битовый ключ. Если любая правильно заданная последовательность из 56 бит может быть ключом, то существует 256 (1016) возможных ключей. В таблице 8.1 приведены оценки размерности ключевого пространства для наиболее часто встречающихся алфавитов.
В таблице 8.2 приведено время, необходимое для осуществления силовой атаки при производительности один миллион ключей в секунду. При такой производительности возможно раскрыть ключи, состоящие из цифр и символов нижнего регистра длиной до 8 байтов, алфавитно-цифровые ключи до 7 байтов, ключи из печатаемых символов и ASCII-символов до 6 байтов и ключи из 8-битовых ASCII-символов длиной до 5 байтов.
Пространство ключей | 4 байта | 5 байтов | 6 байтов | 7 байтов | 8 байтов |
Строчн. буквы (26) | 4.6 105 | 1.2 107 | 3.1 108 | 8.0 109 | 2.1 1011 |
Строчн. буквы и цифры (36) | 1.7 106 | 6.0 107 | 2.2 109 | 7.8 1010 | 2.8 1012 |
Алф. и цифр, символы (62) | 1.5 107 | 9.2 108 | 5.7 1010 | 3.5 1012 | 2.2 1014 |
Печати, символы (95) | 8.1 107 | 7.7 109 | 7.4 1011 | 7.0 1013 | 6.6 1015 |
ASCII (128) | 2.7 108 | 3.4 1010 | 4.4 1012 | 5.6 1014 | 7.2 1016 |
8-битовые ASCII (256) | 4.3 109 | 1.1 1012 | 2.8 1014 | 7.2 1016 | 1.8 1019 |
Таблица 8.1. Оценки мощности ключевого пространства
|
|
Пространство ключей | 4 байта | 5 байтов | 6 байтов | 7 байтов | 8 байтов |
Строчн. буквы (26) | 0.5 сек | 12 сек | 5 мин | 2.2 час | 2.4 дня |
Строчн. буквы и цифры(36) | 1.7 сек | 1 мин | 36 мин | 22 час | 33 дня |
Алф. и цифр, символы (62) | 15сек | 15 мин | 16 час | 41 день | 6.9 года |
Печати, символы (95) | 1.4 мин | 2.1час | 8.5 дня | 2.2 года | 210 лет |
ASCII (128) | 4.5 мин | 9.5час | 51 день | 18 лет | 2300 лет |
8-битовые ASCII (256) | 1.2 час | 13 дней | 8.9 года | 2 300 лет | 580000 лет |
Таблица 8.2. Трудоемкость силовой атаки при произв. 1 млн. ключей в секунду
Случайные ключи
Не стоит использовать неслучайные ключи с целью легкости их запоминания. В серьезных ИС используются специальные аппаратные и программные методы генерации случайных ключей.
Хорошими ключами являются последовательности случайных битов, созданные некоторым автоматическим процессом. Идеальным генераторами являются устройства на основе "натуральных" случайных процессов. Например, генерация ключей на основе белого радиошума. Другим случайным объектом – математическим - являются десятичные знаки иррациональных чисел, например p или е, которые вычисляются с помощью стандартных математических методов.
Как правило, используют датчики псевдослучайных чисел (ПСЧ). Однако степень случайности их генерации должна быть достаточно высокой. В ИС со средними требованиями защищенности вполне приемлемы программные генераторы ключей, которые вычисляют ПСЧ как сложную функцию от текущего времени и (или) числа, введенного пользователем. Все возможные ключи при этом должны быть равновероятны.
|
|
Для генерации ключей важно использовать хороший генератор случайных чисел, но гораздо важнее использовать надежные процедуры управления и проверки ключей. Некоторые алгоритмы шифрования имеют ключи, обладающие рядом специфических свойств, облегчающих их раскрытие. Если эти ключи известны, необходимо выполнять их проверку в процессе генерации. В случае обнаружения слабого ключа генерируется новый ключ. У DES существует 16 «слабых» ключей на 256 возможных, так что вероятность получения такого ключа достаточно мала.
Генерация ключей для асимметричных криптосистем сложнее; часто ключи должны обладать определенными математическими свойствами (возможно, они должны быть простыми числами, квадратичными вычетами и т.д.). Стартовые последовательности для генераторов ключей должны быть случайными.