Современные криптографические методы
Министерство образования Российской Федерации
САМАРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ
УНИВЕРСИТЕТ
Кафедра прикладной математики и информатики
К У Р С О В А Я Р А Б О Т А
Современные криптографические методы
Студент IV-ИЭ-8 Альперт В. В.
Научный руководитель Пономарев В. П.
С а м а р а
2000
С О Д Е Р Ж А Н И Е
Стр.
TOC o "1-3" Введение в криптографию______________________________________________ h 3
Симметричные криптосистемы___________________________________________ h 5
Стандарт шифрования данных ГОСТ 28147-89_____________________________ h 6
Международный алгоритм шифрования данных IDEA_______________________ h 10
Алгоритм RSA_______________________________________________________ h 12
Оценка надежности криптосистем_______________________________________ h 14
ЗАКЛЮЧЕНИЕ_______________________________________________________ h 19
ЛИТЕРАТУРА________________________________________________________ h 20
Введение в криптографию
Бурное развитие криптографические системы получили в годы первой и второй мировых войн. Начиная с послевоенного времени и по нынешний день, появление вычислительных средств ускорило разработку и совершенствование криптографических методов.
Проблема использования криптографических методов в информационных системах стала в настоящий момент особо актуальна потому, что с одной стороны, расширилось использование компьютерных сетей, в частности глобальной сети Интернет, по которым передаются большие объемы информации государственного, военного, коммерческого и частного характера, не допускающего возможность доступа к ней посторонних лиц.
С другой стороны, появление новых мощных компьютеров, технологий сетевых и нейронных вычислений сделало возможным дискредитацию криптографических систем еще недавно считавшихся практически не раскрываемыми.
Проблемой защиты информации путем ее преобразования занимается криптология (kryptos - тайный, logos - наука). Криптология разделяется на два направления - криптографию и криптоанализ. Цели этих направлений прямо противоположны.
Криптография занимается поиском и исследованием математических методов преобразования информации.
Сфера интересов криптоанализа - исследование возможности расшифровывания информации без знания ключей.
Шифрование - преобразовательный процесс: исходный текст, который носит также название открытого текста, заменяется шифрованным текстом.
исходный текст |
шифрованный текст |
Криптографическая система |
КЛЮЧ |
Дешифрование - обратный шифрованию процесс. На основе ключа шифрованный текст преобразуется в исходный.
шифрованный текст |
исходный текст |
Криптографическая система |
КЛЮЧ |
Ключ - информация, необходимая для беспрепятственного шифрования и дешифрования текстов.
Криптосистемы разделяются на симметричные и системы с открытым ключом. В симметричных криптосистемах и для шифрования, и для дешифрования используется один и тот же ключ.
В системах с открытым ключом используются два ключа - открытый и закрытый, которые математически связаны друг с другом. Информация шифруется с помощью открытого ключа, который доступен всем желающим, а расшифровывается с помощью закрытого ключа, известного только получателю сообщения.
Электронной (цифровой) подписью называется присоединяемое к тексту его криптографическое преобразование, которое позволяет при получении текста другим пользователем проверить авторство и подлинность сообщения.
Криптостойкостью называется характеристика шифра, определяющая его стойкость к дешифрованию без знания ключа (т.е. криптоанализу). Имеется несколько показателей криптостойкости, среди которых:
·
·
Криптография в прошлом использовалась лишь в военных целях. Однако сейчас, с становлением информационного общества, она становится центральным инструментом для обеспечения конфиденциальности. По мере образования информационного общества, крупным государствам становятся доступны технологические средства тотального надзора за миллионами людей. Поэтому криптография становится одним из основных инструментов обеспечивающих конфиденциальность, доверие, авторизацию, электронные платежи, корпоративную безопасность и бесчисленное множество других важных вещей.
Симметричные криптосистемы
Все многообразие существующих криптографических методов можно свести к следующим классам преобразований:
Симметричные криптосистемы |
Гаммирование |
Подстановки |
Перестановки |
Блочные шифры |
Моно- и полиалфавитные подстановки.
Наиболее простой вид преобразований, заключающийся в замене символов исходного текста на другие (того же алфавита) по более или менее сложному правилу. Для обеспечения высокой криптостойкости требуется использование больших ключей.
Перестановки.
Также несложный метод криптографического преобразования. Используется, как правило, в сочетании с другими методами.
Гаммирование.
Этот метод заключается в наложении на исходный текст некоторой псевдослучайной последовательности, генерируемой на основе ключа.
Блочные шифры.
Представляют собой последовательность (с возможным повторением и чередованием) основных методов преобразования, применяемую к блоку (части) шифруемого текста. Блочные шифры на практике встречаются чаще, чем “чистые” преобразования того или иного класса в силу их более высокой криптостойкости. Российский и американский стандарты шифрования основаны именно на этом классе шифров.
Стандарт шифрования данных ГОСТ 28147-89
Российский стандарт шифрования является блочным, т. е. преобразование ведется по блокам. Он включает в себя режим замены и два режима гаммирования. Стандарт ГОСТ 28147-89 формировался с учетом мирового опыта, и в частности, были приняты во внимание недостатки и нереализованные возможности алгоритма DES, поэтому использование стандарта ГОСТ предпочтительнее. Эффективность данного стандарта достаточно высока. Системы, основанные на ГОСТ 28147-89, позволяют зашифровать в секунду до нескольких десятков Кбайт данных. В него заложен метод, с помощью которого можно зафиксировать необнаруженную случайную или умышленную модификацию зашифрованной информации.
Введем ассоциативную операцию конкатенации. Если L и R – последовательность бит, то LR обозначает конкатенацию последовательностей, то есть LR - последовательность бит с размерностью равной сумме размерностей L и R, причем биты R следуют за битами L. Кроме того, будем использовать следующие операции сложения:
·
если A+B=>2, то A^B=А+B-2
если A+B<2 , то A^B=А+B, где A и B 1-битные числа.
· 32;
если A+B=>232, то A[+]B=A+B-232
если A+B<232 , то A[+]B=A+В, где A и B 32-битные числа.
· 32-1;
если A+B=>232-1, то A{+}B=A+B-232+1
если A+B<232-1 , то A{+}B=A+B, где A и B 32-битные числа.
Алгоритм криптографического преобразования предусматривает три режима работы. В стандарте ГОСТ используется ключ W длиной 256 бит, представляемый в виде восьми 32-разрядных чисел x(i).
W=X(7)X(6)X(5)X(4)X(3)X(2)X(1)X(0)
Самый простой из возможных режимов - замена.
Пусть открытые блоки разбиты на блоки по 64 бит в каждом, которые обозначим как T(j).
Очередная последовательность бит T(j) разделяется на две последовательности B(0) и A(0) по 32 бита (правый и левый блоки). Далее выполняется итеративный процесс шифрования, описываемый следующими формулами, вид который зависит от i.
·
A(i) = f(A(i-1) [+] X(j)) ^ B(i-1)
B(i) = A(i-1)
·
A(i) = f(A(i-1) [+] X(j)) ^ B(i-1)
B(i) = A(i-1)
·
A(32) = A(31)
B(32) = f(A(31) [+] X(0)) ^ B(31).
Для дешифрования используется тот же ключ, но процесс дешифрования является инверсным по отношению к исходному.
·
A(31) = A(32)
B(31) = f(A(32) [+] X(0)) ^ B(32).
·
A(i-1) = B(i)
B(i-1) = f(B(i) [+] X(j)) ^ A(i)
·
A(i-1) = B(i)
B(i-1) = f(B(i) [+] X(j)) ^ A(i)
Полученные A(0), B(0) – расшифрованный текст.
Здесь i обозначает номер итерации. Функция f – функция шифрования.
Функция шифрования состоит из операции подстановки К применяемой к 32-разрядному аргументу. 64-разрядный аргумент разбивается на два 32-разрядных вектора. Блок подстановки K состоит из 8 узлов замены К(1).....К(8) с памятью 64 бит каждый. Поступающий на блок подстановки 4-разрядный вектор разбивается на 8 последовательно идущих 4-разрядных векторов, каждый из которых преобразуется в 4-разрядный вектор соответствующим узлом замены, представляющим таблицу из 16 целых чисел в диапазоне 0...15. Входной вектор определяет адрес строки в таблице, число из которой является выходным вектором. Затем 4-разрядные векторы последовательно объединяются в 32-разрядный выходной.
Остальные блоки открытых данных в режиме простой замены зашифровываются аналогично.
Следует учитывать, что данный режим шифрования обладает ограниченной криптостойкостью.
Другой режим шифрования называется режимом гаммирования.
Открытые данные, разбитые на 64-разрядные блоки T(i) (i=1,2,...,m) (m определяется объемом шифруемых данных), зашифровываются в режиме гаммирования путем поразрядного сложения по модулю 2 с гаммой шифра Гш, которая вырабатывается блоками по 64 бит, т.е.
Гш = (Г(1),Г(2),....,Г(m)).
Уравнение шифрования данных в режиме гаммирования может быть представлено в следующем виде:
Ш(i) = (f(Y(i) , f(Z(i)) ^ T(i)=Г(i) ^ T(i)
В этом уравнении Ш(i) обозначает 64-разрядный блок зашифрованного текста, f - функцию шифрования в режиме простой замены (аргументами этой функции являются два 32-разрядных числа). C1 и C2 - константы, заданные в ГОСТ 28147-89. Величины Y(i) и Z(i) определяются итерационно по мере формирования гаммы следующим образом:
(Z(0), Y(0)) = f(S), где S - 64-разрядная двоичная последовательность
Y(i) =Y(i-1) [+] C1, Z(i) = Z(i-1) {+} C2, i=1, 2, ..., m.
64-разрядная последовательность, называемая синхропосылкой, не является секретным элементом шифра, но ее наличие необходимо как на передающей стороне, так и на приемной.
Режим гаммирования с обратной связью очень похож на режим гаммирования. Как и в режиме гаммирования открытые данные, разбитые на 64-разрядные блоки T(i), зашифровываются путем поразрядного сложения по модулю 2 с гаммой шифра Гш, которая вырабатывается блоками по 64 бит:
Гш=(Г(1), Г(2), ..., Г(m)).
Уравнение шифрования данных в режиме гаммирования с обратной связью выглядят следующим образом:
Ш(1) = f(S) ^ T(1) = Г(1) ^ T(1),
Ш(i) = f(Ш(i-1)) ^ T(i) = Г(i)^T(i), i=2, 3, ..., m.
В ГОСТ 28147-89 определяется процесс выработки имитовставки, который единообразен для всех режимов шифрования. Имитовставка - это блок из р бит (имитовставка Ир), который вырабатывается либо перед шифрованием всего сообщения либо параллельно с шифрованием по блокам. Параметр р выбирается в соответствии с необходимым уровнем имитозащищенности.
Для получения имитовставки открытые данные представляются также в виде блоков по 64 бит. Первый блок открытых данных Т(1) подвергается преобразованию, соответствующему первым 16 циклам алгоритма режима простой замены. В качестве ключа используется тот же ключ, что и для шифрования данных. Полученное 64-разрядное число суммируется побитно с открытым блоком Т(2) и сумма вновь подвергается 16 циклам шифрования для режима простой замены. Данная процедура повторятся для всех блоков сообщения. Из полученного 64-разрядного числа выбирается отрезок Ир длиной р бит.
Имитовставка передается по каналу связи после зашифрованных данных. На приемной стороне аналогичным образом из принятого сообщения выделяется имитовставка и сравнивается с полученной. В случае несовпадения имитовставок сообщение считается ложным.
КОНСТАНТЫ C1=1538417 341, C2=2591989193
СИНХРОПОСЫЛКА S=134987665736005221
ТАБЛИЦА ПОДСТАНОВОК Kij
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
|
K(1) |
1 |
0 |
0 |
1 |
5 |
9 |
8 |
4 |
6 |
5 |
2 |
3 |
13 |
12 |
7 |
4 |
K(2) |
0 |
3 |
8 |
1 |
11 |
13 |
6 |
10 |
2 |
15 |
7 |
4 |
14 |
5 |
12 |
9 |
K(3) |
4 |
7 |
13 |
5 |
0 |
3 |
12 |
1 |
9 |
8 |
10 |
14 |
6 |
2 |
11 |
15 |
K(4) |
10 |
15 |
2 |
12 |
9 |
14 |
7 |
6 |
8 |
4 |
0 |
13 |
3 |
11 |
5 |
1 |
K(5) |
6 |
1 |
4 |
10 |
2 |
12 |
0 |
15 |
8 |
13 |
3 |
11 |
5 |
9 |
14 |
7 |
K(6) |
8 |
11 |
7 |
14 |
15 |
5 |
12 |
2 |
0 |
9 |
10 |
1 |
6 |
13 |
3 |
4 |
K(7) |
11 |
5 |
9 |
4 |
3 |
1 |
15 |
8 |
7 |
2 |
14 |
0 |
13 |
12 |
10 |
6 |
K(8) |
4 |
13 |
15 |
5 |
0 |
3 |
12 |
7 |
10 |
11 |
8 |
9 |
6 |
1 |
14 |
2 |
Международный алгоритм шифрования данных IDEA
Шифр IDEA (International Data Encryption Algorithm) был разработан Лэй и Мэсси из ETH в Цюрихе. Этот шифр, наряду с RSA, применяется в популярной компьютерной криптосистеме PGP (Pretty Good Privacy).
IDEA представляет собой блочный шифр, использующий 128 битный ключ, для преобразования открытых 64 битных текстовых блоков.
Графическая схема алгоритма IDEA
64 битный текстовый блок подвергается в ходе шифрования следующим процедурам:
·
если A+B=>2, то A^B=А+B-2
если A+B<2 , то A^B<А+B, где A и B 1-битные числа.
· 16;
если A+B=>216, то A(+)B=A+B-216
если A+B<216 , то A(+)B=A+В, где A и B 16-битные числа.
· 16+1;
если A* B=>216+1, то A(*)B=A*B-216-1
если A* B<216+1 , то A(*)B=A*B, где A и B 16-битные числа.
Процесс шифрования представляет собой цикл из восьми шагов:
На первом шаге:
p1 (*) s1 --> d1 p2 (+) s2 --> d2 p3 (+) s3 --> d3 p4 (*) s4 --> d4
d1 ^ d3 --> d5 d2 ^ d4 --> d6
d5 (*) s5 --> d7 d6 (+) d7 --> d8 d8 (*) s6 --> d9 d7 (+) d9 --> d10
d1 ^ d9 --> d11 d3 ^ d9 --> d12 d2 ^ d10 --> d13 d4 ^ d10 --> d14
p1, p2, p3, p4 – четыре 16 битных блока, на которые разбиваются один блок исходного текста
s1, s2, s3, s4, s5, s6 – шесть 16 битных подключей.
На следующем шаге в качестве p1, p2, p3, p4 используют d11, d13, d12, d14 и новые шесть подключей. Полученные четыре последние 16 битных блока и есть зашифрованный текст. Процесс дешифрования осуществляется аналогично.
Шифрование и дешифрование отличаются только подключами. Первые восемь подключей определяются с помощью 128 битного ключа, который разделяется на восемь частей. Новые восемь подключей определяются следующим образом: начальный ключ смещается на 25 бит, и разделяется на восемь частей.
Подключи для дешифрования определяются таблицей:
1 шаг s49* s50# s51# s52* s47 s48
2 шаг s43* s45# s44# s46* s41 s42
3 шаг s37* s39# s38# s39* s35 s36
4 шаг s31* s33# s32# s34* s29 s30
5 шаг s25* s27# s26# s28* s23 s24
6 шаг s19* s21# s20# s22* s17 s18
7 шаг s13* s15# s14# s16* s11 s12
8 шаг s7* s9# s8# s10* s5 s6
Последнее преобразование s1* s2# s3# s4*
sXX* = мультипликативная инверсия sXX по модулю 216+1
sXX# = аддитивная инверсия sXX по модулю 216
Алгоритм RSA
Как бы ни были сложны и надежны криптографические системы - их слабое место при практической реализации - проблема распределения ключей. Для того чтобы был возможен обмен конфиденциальной информацией между двумя субъектами ИС, ключ должен быть сгенерирован одним из них, а затем, в конфиденциальном порядке, передан другому. Т.е. в общем случае для передачи ключа опять же требуется использование какой-то криптосистемы.
Для решения этой проблемы на основе результатов, полученных классической и современной алгеброй, были предложены системы с открытым ключом.
Суть их состоит в том, что каждым адресатом ИС генерируются два ключа, связанные между собой по определенному правилу. Один ключ объявляется открытым, а другой закрытым. Открытый ключ публикуется и доступен любому, кто желает послать сообщение адресату. Секретный ключ сохраняется в тайне.
Исходный текст шифруется открытым ключом адресата и передается ему. Зашифрованный текст в принципе не может быть расшифрован тем же открытым ключом. Дешифрование сообщение возможно только с использованием закрытого ключа, который известен только самому адресату.
исходный текст |
Система с открытым ключом |
Открытый ключ |
исходный текст |
Система с открытым ключом |
Закрытый ключ |
Шифрованный текст |
Отправитель |
Адресат |
Асимметричные криптографические системы используют так называемые необратимые или односторонние функции, которые обладают следующим свойством: при заданном значении x относительно просто вычислить значение f(x), однако если y=f(x), то нет простого пути для вычисления значения x.
Алгоритмы шифрования с открытым ключом получили широкое распространение в современных информационных системах. Так, алгоритм RSA стал мировым стандартом де-факто для открытых систем.
Алгоритмы криптосистем с открытым ключом можно использовать в 3 назначениях.
1. Как самостоятельные средства защиты передаваемых и хранимых данных.
2. Как средства для распределения ключей.
3. Средства аутентификации пользователей.
Алгоритмы криптосистем с открытым ключом более трудоемки, чем традиционные криптосистемы, поэтому использование их в качестве самостоятельных средств защиты нерационально.
Поэтому на практике рационально с помощью криптосистем с открытым ключом распределять ключи, объем которых как информации незначителен. А потом с помощью обычных алгоритмов осуществлять обмен большими информационными потоками.
Несмотря на довольно большое число различных криптосистем с открытым ключом, наиболее популярна - криптосистема RSA, разработанная в 1977 году и получившая название в честь ее создателей: Ривеста, Шамира и Эйдельмана.
Ривест, Шамир и Эйдельман воспользовались тем фактом, что нахождение больших простых чисел в вычислительном отношении осуществляется легко, но разложение на множители произведения двух таких чисел практически невыполнимо. Доказано (теорема Рабина), что раскрытие шифра RSA эквивалентно такому разложению. Поэтому для любой длины ключа можно дать нижнюю оценку числа операций для раскрытия шифра, а с учетом производительности современных компьютеров оценить и необходимое на это время.
Пусть n=p*q, где p и q - различные простые числа, и e и d удовлетворяют уравнению
e*d (mod (p-1)*(q-1))= 1
Если p и q - достаточно большие простые числа, то разложение n практически не осуществимо. Это и заложено в основу системы шифрования RSA.
{e,n} образует открытый ключ, а {d,n} - закрытый (можно взять и наоборот).
Открытый ключ публикуется и доступен каждому, кто желает послать владельцу ключа сообщение, которое зашифровывается указанным алгоритмом. После шифрования, сообщение невозможно раскрыть с помощью открытого ключа. Владелец же закрытого ключа без труда может расшифровать принятое сообщение.
Шифрование осуществляется по формуле: Sшифр = Se mod N
Шифрование осуществляется по формуле: S = Sdшифр mod N
Где S – исходный текст, Sшифр – преобразованный текст, при этом S < N
Оценка надежности криптосистем
Группа известных специалистов-криптографов, созданная под эгидой Альянса производителей программного обеспечения для бизнеса (промышленной организации, препятствующей незаконному использованию программного обеспечения), пришла к выводу, что необходимая длина ключа в настоящее время должна быть не менее 75 битов с дальнейшим увеличением в течение последующих 20 лет до 90 битов. Проверим данное утверждение.
Проблема поиска ключей симметричной криптосистемы путем перебора всех возможных ключей относится к классу задач, допускающих распараллеливание. Применение распределенных вычислений для организации перебора таких ключей позволяет эффективно решать трудоемкие задачи в этой области. Экспоненциальная динамика роста с течением времени производительности вычислительных систем (10 раз за 5 лет) оказывает еще более существенное влияние на рост производительности системы в целом. Таким образом, прогресс в этой области возможен за счет:
1) использования достижений научно-технического прогресса и применения технологических новинок для увеличения производительности отдельного устройства;
2) увеличения количества таких устройств в системе.
C физической точки зрения тот тип транзистора, который является основой современной интегральной схемы, может быть уменьшен еще примерно в 10 раз, до размера 0,03 мк. За этой гранью процесс включения/выключения микроскопических переключателей станет практически невозможным. Таким образом максимальное быстродействие составит - 1016 операций/секунду, а предел роста наступит приблизительно в 2030 г.
Других способов повышения вычислительной мощности нет. Таким образом, с точки зрения защиты информации криптографическими методами, анализ потенциальных возможностей метода распределенных вычислений представляет как для криптоаналитиков, так и для разработчиков криптографических систем значительный интерес. Попробуем, поэтому, проанализировать предельные значения двух указанных тенденций.
Из списка, появившегося летом 1999 года, следует, что по быстродействию суперкомпьютеры распределились следующим образом:
с мощностью порядка 1012 FLOPS 3 экз.;
с мощностью порядка 1011 FLOPS 54 экз.;
с мощностью порядка 1010 FLOPS 428 экз.;
с мощностью порядка 109 FLOPS 251 экз.
Десять самых мощных суперкомпьютеров в мире по состоянию на июль 1999 г.
PRIVATEРейтинг |
Наименование машины |
Страна-обладатель |
Фирма-производитель |
Количество процессоров |
Мощность (GFLOPS) |
1 |
Intel ASCI Red |
США |
Intel (США) |
9125 |
1333 |
2 |
Hitachi/Tsukuba CP-PACS |
Япония |
Hitachi/Tsukuba (Япония) |
2048 |
368 |
3 |
SGI/Cray T3E |
Великобритания |
Cray (США) |
696 |
265 |
4 |
Fujitsu Numerical Wind Tunnel |
Япония |
Fujitsu (Япония) |
167 |
230 |
5 |
Hitachi SR2201 |
Япония |
Hitachi (Япония) |
1024 |
220 |
6 |
SGI/Cray T3E |
Германия |
Cray (США) |
512 |
176 |
7 |
SGI/Cray T3E |
США |
Cray (США) |
512 |
176 |
8 |
SGI/Cray T3E |
Германия |
Cray (США) |
512 |
176 |
9 |
SGI/Cray T3E |
США |
Cray (США) |
512 |
176 |
10 |
SGI/Cray T3E |
США |
Cray (США) |
512 |
176 |
Первое место в мире по количеству суперкомпьютеров занимают США 254 (51%). За ними следуют Япония 87 (17,5%), Германия 45 (9%), Великобритания 24 (4,8%), Франция 18 (3,6%), Корея 8 (1,6%), Канада 7 (1,4%), Швеция, Швейцария и Норвегия по 6 (1,2%). Россия упомянута в этом списке лишь один раз: на 156-ом месте находится компьютер HPC Ultra 10000 (пиковая производительность 16600 MFLOPS), произведенный фирмой SUN и установленный в Национальном Резервном Банке России. Интересная деталь: в США отсутствуют компьютеры иностранного производства американцы работают только на отечественных машинах и к тому же снабжают ими весь остальной мир.
Количество установок суперкомпьютеров возрастает год от года в геометрической прогрессии, причем основной объем опять же приходится на США. Статистика по годам сложилась следующая:
1999 786 установок
1998 638 установок
1997 207 установок
1996 168 установок
1995 52 установки
1994 45 установок
1993 16 установок
1992 10 установок
Допустим, что рассматриваемые нами алгоритмы шифрования идеальны, то есть оптимальным методом их взлома будет прямой перебор всех возможных ключей данного алгоритма. Очевидно, что в этом случае стойкость криптосистем будет определяться длиной ключа. При проведении данного исследования предполагалось, что криптоаналитик противной стороны обладает всей информацией относительно алгоритма шифрования, за исключением данных о секретном ключе, и ему доступен для анализа шифрованный текст сообщения. По определению предполагается, что идеальный алгоритм лишен каких-либо недостатков, снижающих его криптостойкость. Для шифров ГОСТ-28147-89 и IDEA существенных недостатков в настоящее время не выявленно.
Предположим также, что генерация ключа компьютером происходит за один такт его работы, а операция дешифрования мгновенно. Определив отношение количества ключей к быстродействию самого мощного компьютера, мы получим нижнюю оценку сложности дешифрования сообщения для идеального алгоритма.
Время, необходимое в настоящий момент самым мощным суперкомпьютерам для полного перебора ключей
PRIVATEНаименование машины |
Мощность (FLOPS) |
56 бит 7.2*Е16 |
64 бита 1.8*E19 |
70 бит 1.18*Е21 |
75 бит 3.78*Е22 |
128 бит 3.4*E38 |
256 бит 1.15*Е77 |
Intel ASCI Red |
1.333*Е12 |
14 часов |
5 мес. |
28 лет |
899 года |
8.09*Е18 |
2.72*Е57 |
Hitachi/Tsukuba CP-PACS |
3.68*Е11 |
52 часа |
18 мес. |
102 года |
3257 лет |
2.93*Е19 |
9.9*Е57 |
SGI/Cray T3E |
2.65*Е11 |
69 часов |
51 мес. |
141 года |
4523 года |
4.07*Е19 |
1.37*Е58 |
Fujitsu Numerical Wind Tunnel |
2.3*Е11 |
171 час |
60 мес. |
162 года |
5211 года |
4.69*Е19 |
1.58*Е58 |
Hitachi SR2201 |
2.2*Е11 |
178 часов |
61 мес. |
170 лет |
5448 лет |
4.9*Е19 |
1.66*Е58 |
Таким образом с помощью указанной рабочей модели можно оценивать надежность проектируемых и эксплуатируемых систем шифрования. Алгоритм ГОСТ 28147-89 использует таблицу подстановок размером 512 бит. Общее число возможных таблиц составляет 1.33*Е36 и полное время перебора составляет 3.162*Е16 лет. Для алгоритма IDEA длина ключа составляет 128 бит и полное время перебора составляет 8.09*Е18 лет. Даже если будет использован суперкомпьютер состоящий из ста тысяч процессоров с максимально возможной скоростью в 1016 операций/секунду для расшифровки ГОСТа понадобится 4.21*Е7 лет, а для IDEA - 1.08*Е10 лет. Очевидно, что даже применение нескольких сотен суперкомпьютеров Intel ASCI Red, стоимостью по 55 миллионов долларов каждый, не в стоянии кардинально улучшить ситуацию.
алгоритм RSA
Оценки трудоемкости разложения простых чисел (1994 год)
N |
Число операций |
Длина |
Примечания |
E50 |
1.4*1010 |
166 бит |
Раскрываем на суперкомпьютерах |
E100 |
2.3*1015 |
332 бит |
На пределе современных технологий |
E200 |
1.2*1023 |
664 бит |
За пределами современных технологий |
E300 |
2.7*1034 |
996 бит |
Требует существенных изменений в технологии |
E500 |
1.3*1051 |
1660 бит |
Не раскрываем |
Оценки трудоемкости разложения простых чисел (2000 год)
N |
Число операций |
Длина |
Максимальное время дешифровки на суперкомпьютере Intel ASCI Red |
E50 |
1.4*1010 |
166 бит |
0.01 сек. |
E100 |
2.3*1015 |
332 бит |
29 сек. |
E200 |
1.2*1023 |
664 бит |
2854 года |
E300 |
2.7*1034 |
996 бит |
6.425*Е14 лет |
E500 |
1.3*1051 |
1660 бит |
3.092*Е31 лет |
В конце 1995 года удалось практически реализовать раскрытие шифра RSA для 500-значного ключа. Для этого с помощью сети Интернет было задействовано 1600 компьютеров. Сами авторы RSA рекомендуют использовать следующие размеры модуля N:
·
·
·
Немаловажный аспект реализации RSA - вычислительный. Ведь приходится использовать аппарат длинной арифметики. Если используется ключ длиной k бит, то для операций по открытому ключу требуется О(k2) операций, по закрытому ключу - О(k3) операций, а для генерации новых ключей требуется О(k4) операций. В связи с развитием вычислительной технике оценки, данные Шроппелем, устарели, так шифр RSA длиной 100 знаков дешифровывается в течение нескольких секунд на суперкомпьютере Intel ASCI Red. В отличие от симметричных криптосистем, надежность которых с увеличением длина ключа возрастает экспоненциально, для метода RSA надежность возрастает лишь логарифмически. Преобразование информации по методу RSA осуществляется значительно медленнее. Недавно разработан новый тип атак, основанный на последовательном измерении времен, затрачиваемых на выполнение операции возведения в степень по модулю целого числа. Ей подвержены по крайней мере следующие шифры: RSA, Диффи-Хеллман (вычисление дискретного логарифма) и метод эллиптических кривых. Также RSA подвержен атаке с заданным текстом (Для известного текста, зашифрованного известным открытым ключом, подбираются закрытые ключи).
Таким образом метод RSA в ближайшее время перестанет использоваться и будет заменен более надежными криптосистемами.
Предположим, что размер процессора равен размеру атома. Тогда в наших обозначениях быстродействие гипотетического процессора выразится формулой F = Vc/Ra = 3 * 1018 операций в секунду, где Vc = 3 * 10 8 м/с скорость света в вакууме, а Ra = 10-10 м - размеры атомов. Столько раз за 1 секунду свет пройдет размеры атома. Поскольку период обращения Земли вокруг Солнца составляет 365,2564 суток или 31 558 153 секунд, то за один год такой процессор выполнит 94 674 459 * 1018 » 1026 операций.
Этому процессору понадобится 1.15*Е51 лет для перебора 256 битного ключа. Более быстрый процессор в нашей вселенной невозможен в принципе, поэтому более быстро производить дешифрование методом тотального перебора ключей принципиально невозможно. Таким образом, прогноз будущего силовой атаки на основе распределенных вычислений неутешителен. Cиловая атака на криптосистемы бесперспективна. Однако, недостатки алгоритмов могут существенно сократить число вариантов перебора. Использование в качестве ключей осмысленных слов позволяет применять атаку по словарю. Следовательно, в дальнейшее развитие криптографии будет происходить в области криптоанализа.
ЗАКЛЮЧЕНИЕ
Хотелось бы отметить, что шифрование и дешифрование востребованы в обществе не сами по себе, а лишь потому, что они могут принести прибыль или позволяют избежать убытков, поэтому всегда необходимо знать какова же стоимость одного знака шифрованной и дешифрованной информации и во что это обходится? Являются ли рентабельными те организации, занимающиеся перехватом и дешифровкой информации, или они заведомо убыточны? Наиболее интересен сравнительный анализ данных с целью научного обоснования доли затрат на защиту информации. При этом также необходимо учитывать, что значительное число атак осуществляется изнутри сотрудниками учреждений, от которых защитится гораздо сложнее. В частности, проблема хранения ключей является в настоящее время наиболее острой и, если использование открытых ключей позволяет решить проблему распределения ключей и аутентификации пользователей, то более эффективного способа хранения ключей, чем запоминание, не найдено, а использование запоминающихся паролей позволяет применить атаку по словарю. Кроме того, использование надежных криптографических методов не гарантирует защиты от программных атак. Следовательно, при создании компьютерных криптосистем необходимо обеспечить безопасность на уровне операционной системы, что является более сложной задачей, чем создание самой криптосистемы.
ЛИТЕРАТУРА
1. Баричев С. Криптография без секретов. М., 1998
2. Брассар Дж. Современная криптология. 1988
3. Жельников В. Криптография от папируса до компьютера. М., 1996
4. Йолнен Тату. Введение в криптографию. 1999
5. Спесивцев А. В. Защита информации в персональных ЭВМ. М., 1992
6. Шнайер Брюс. Прикладная криптография. 1994