Программные процедуры

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: