Разработка программы

Разработка программы. На текущий момент имеется несколько языков программирования высокого уровня, позволяющих создавать полноценные программы, предназначенные для работы в среде Microsoft Windows 9x. Мы выбрали хорошо известный язык C , который обладает следующими достоинствами во-первых, C обладает универсальностью и может быть использован для создания программ любого уровня сложности, а во-вторых, эффективный машинный код обеспечивает высокую скорость работы программы, что особенно немаловажно.

Применяемые библиотеки и разработанные программные функции описаны ниже Таблица 3.1 Использованные библиотекиStdio.h Работа с файлами String.h Работа со строками Stdlib.h Вспомогательные процедуры Time.h Время Dos.h Прерывания Таблица 3.2 Программные процедурыInit xor table Инициализация S-бокса Use xor table Гаммирование данных через S-бокс SwaBits Перестановка Init hash Инициализация хэширования Calc hash Хэширование Add hash Сложение данных в хэше Flush hash Очистка буффера хэша Make cryption table Работа S-бокса Error Декларация об ошибке LookUp Возврат номера символа в строке UpStr Перекодировка пароля LnTrim Обрезка строки после Read pwl file Чтение PWL-файла Dump pwl file Просмотр ресурсов PWL-файла Enum hdl Прерывание программы Voc pwl file Работа со словарем Try pwl file Подбор пароля Main Главная процедура Разработанная программа проводит криптоанализ на основе открытого текста. Так как имя пользователя всегда известно, то его можно использовать для проверки правильности расшифровки программа сравнивает дешифрованное имя пользователя с введенным именем.

При запуске в зависимости от ключей, заданных в командой строке, программа вызывает вспомогательные функции, перечисленные следующем параграфе.

Далее программа осуществляет чтение зашифрованного PWL-файла, после чего либо начинает его расшифровку, либо просмотр ресурсов. Для PWL-файлов, создаваемых операционной системой Microsoft Windows 95, программа позволяет определить нестойкие пароли, генерируемые по ниже описанному алгоритму.

Алгоритм генерации ключа по паролю в Microsoft Windows 95 Имеем ключ двойное слово и пароль до 20-и символов. 1 Обнулить ключ. 2 Привести пароль к верхнему регистру. 3 Для каждого символа пароля, начиная с первого а прибавить код символа к ключу б повернуть ключ влево 7 раз. Данный алгоритм слаб тем, что при выбранной длине ключа в двойное слово, множество различных ключей 232 оказывается неизмеримо меньше множества различных паролей.

Это означает, что существуют пароли, которые операционная система не различает.

Для PWL-файлов, создаваемых новыми версиями в операционных системах Microsoft Windows OSR2 и 98, программа осуществляет перебор ключей.

Алгоритм генерации ключа по паролю в Microsoft Windows OSR2 и 98 Имеем ключ двойное слово и пароль до 128-и символов. 1 Обнулить ключ. 2 Привести пароль к верхнему регистру. 3 Для каждого символа пароля, начиная с первого а прибавить код символа к ключу б повернуть ключ влево 16 раз. Далее программа перебирает пароли до тех пор, пока расшифрованное имя пользователя не совпадет с ранее введенным.

При совпадении работа заканчивается.

Таблица 3.3 Скорость работы программыИспользуемая машина Скорость работы в секунду для Windows 3.11 и Windows 95 без Service Pack Скорость работы в секунду для Windows 95 с Service Pack, OSR2 и 98 AMD K5 - 100 53000 29000 Intel Pentium - 120 61000 31000 Intel Pentium - 166 76000 39000 Pentium II -166 87000 45000 Intel Celeron - 400 153000 101000 Intel Celeron - 700 304000 192000 Рис. 6. Блок-схема основной программы. 3.3