Наименование машины | Мощность (FLOPS) | 56 бит 7.2*Е16 | 64 бита 1.8*E19 | 80 бит 1.2*Е24 | 100 бит 1.26*Е30 | 128 бит 3.4*E38 |
Intel ASCI Red | 1.333*Е12 | 14 часов | 5 мес. | 28460 лет | 3.01*Е10 | 8.09*Е18 |
Hitachi/Tsukuba CP-PACS | 3.68*Е11 | 52 часа | 18 мес. | 102676 года | 1.09*Е11 | 2.93*Е19 |
SGI/Cray T3E | 2.65*Е11 | 69 часов | 51 мес. | 143256 года | 1.51*Е11 | 4.07*Е19 |
Fujitsu Numerical Wind Tunnel | 2.3*Е11 | 171 час | 60 мес. | 164592 года | 1.74*Е11 | 4.69*Е19 |
Hitachi SR2201 | 2.2*Е11 | 178 часов | 61 мес. | 172720 лет | 1.82*Е11 | 4.9*Е19 |
Таким образом с помощью указанной рабочей модели можно оценивать надежность проектируемых и эксплуатируемых систем шифрования. Алгоритм ГОСТ 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 миллионов долларов каждый, не в стоянии кардинально улучшить ситуацию.
|
|
Анализируя предельные значения второй тенденции, можно отметить, что увеличению количества процессоров в системе тоже есть свой предел.
Для нашей планеты естественным пределом является площадь земной поверхности. Если выразить поверхность земного шара (считая океаны, пустыни, Арктику с Антарктикой) в квадратных миллиметрах, и на каждый миллиметр поместить по миллиону таких процессоров, то в год мощность такого вычислительного устройства составит 5.1 * 1052 операций, что эквивалентно длине в 175-176 бит. Если исходить из предположения, что стойкость шифра должна составлять 100 лет, то за указанный период такая система сможет перебрать 5 *1054 ключей, что составит 181-182 бита. И это притом, что никакие вычислительные ресурсы процессоров не тратятся на согласование их взаимной работы в системе, на решение задачи дешифрования и т.д.
Таблица 2.3
Варианты перебора ключа раскладок клавиатуры
Раскладка | Символы | Варианты | Минимальная длина пароля |
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ | 68 | 2.11*Е18 | 10 |
ABCDEFGHIJKLMNOPQRSTUVWXYZ АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ | 58 | 2.49*Е19 | 11 |
0123456789АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ | 42 | 3.01*Е19 | 12 |
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ | 36 | 4.74*Е18 | 12 |
АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ | 32 | 3.67*Е19 | 13 |
ABCDEFGHIJKLMNOPQRSTUVWXYZ | 26 | 6.45*Е19 | 14 |
0123456789 | 10 | 1*Е19 | 19 |
Из проведенного нами исследования можно сделать вывод, что для обеспечения надежности достаточно использовать алгоритмы с длиной ключа не менее 64 битов, а применять и разрабатывать алгоритмы с длиной ключа более 128 бит экономически не выгодно. Однако, как правило, для генерации ключа используется пароль, который в свою очередь часто содержит лишь символы латинского алфавита. В таком случае для обеспечения необходимой защиты требуется использовать пароль не короче 12 символов, что соответствует 56-битному ключу. 16-символьный гарант пароль соответствует 75-битному ключу и гарантирует достаточную защиту от прямой атаки.
|
|
Разработка программы
На текущий момент имеется несколько языков программирования высокого уровня, позволяющих создавать полноценные программы, предназначенные для работы в среде Microsoft Windows 9x. Мы выбрали хорошо известный язык C++, который обладает следующими достоинствами: во-первых, C++ обладает универсальностью и может быть использован для создания программ любого уровня сложности, а во-вторых, эффективный машинный код обеспечивает высокую скорость работы программы, что особенно немаловажно. Применяемые библиотеки и разработанные программные функции описаны ниже:
Таблица 3.1
Использованные библиотеки
Stdio.h | Работа с файлами |
String.h | Работа со строками |
Stdlib.h | Вспомогательные процедуры |
Time.h | Время |
Dos.h | Прерывания |
Таблица 3.2