Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаб 2 защита ценной информации.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
693.76 Кб
Скачать

Диалоговые окна приложения.

Программы на Visual Basic могут вызывать все диалоговые окна, существующие в программах MS Office. Однако эти диалоговые окна действуют не так, как описанные выше, и возвращают программе на Visual Basic без изменений какой-либо таблицы или ячейки. Если Вы вызываете диалоговое окно, то оно не возвращает значения программе Visual Basic, а осуществляет свои нормальные функции.

В связи с тем, что диалоговые окна приложения применяются к текущему отображаемому объекту, не отображайте диалоговое окно вне контекста: так как это приведет к ошибке выполнения.

Для вызова диалогового окна приложения пользуйтесь набором Dialogs объекта Application. Для поиска доступных диалоговых окон и констант воспользуйтесь Object Browser, выбрав объект Constants из библиотеки MS Office (нужные константы начинаются с xlDialog).

Следующая процедура отображает диалоговое окно FormatNumber:

Sub TestDialog2()

Application.Dialogs(xlDialogFormatNumber).Show

End Sub

Чтобы выполнить эту процедуру, запишите ее на странице модуля, переключитесь на MS Office, укажите директиву Tools/Macro, выберите процедуру TestDialog2(), затем нажмите кнопку Run.

Принцип работы программы последовательного перебора паролей.

Программа, использованная в лабораторной работе, последовательно перебирает

символы заданного алфавита (заданы цифры от 0 до 5) и подставляет их в четыре разряда, начиная с младшего. То есть получается последовательность паролей:

0000, 0001,0002,0003,0004,0005,0010,0011,0012,0013…5555

в количестве n=64=1296 вариантов.

Как только встретиться пароль, совпадающий с исходным, процесс подбора останавливается и выдается результат подбора, а также открывается документ с подобранным паролем.

Программа работает с ограниченным набором символов алфавита и количеством разрядов пароля. При необходимости возможно доработать программу под любой размер пароля. Необходимо помнить, что VBA обладает невысокой скоростью обработки и увеличение размеров пароля и его алфавита сильно замедлит скорость выполнения программы. Поэтому современные подобные программы написаны на машинных языках низкого уровня (Assembler) выполняются при использовании всех ядер центрального и видеопроцессоров.

Принцип работы программы криптозащиты методом симметричного ключа.

Программа кодирует текст, написанный русскими прописными и строчными буквами (32 буквы (используется только е)) в набор символов русского алфавита, лишенного смысловой нагрузки (хаотичный набор) по введенной парольной фразе. Аналогично происходит дешифрация из кодированного текста в первоначальный текст по этой же парольной фразе (симметричный ключ).

Программа представляет собой два основных блока:

  1. Шифратор (Кодер) - подпрограмма замены основного алфавита на вспомогательный.

  2. Дешифратор (Decoder)-подпрограмма замены вспомогательного алфавита на основной.

При шифрации используется парольная фраза. Она же используется при дешифрации (то есть симметричный ключ) .

Рассмотрим пример:

Пусть дан текст “Телефон для Ивана Ивановича.”

Выбираем произвольно парольную фразу (из книг или Интернета)

“В моей душе покоя нет. Весь день я жду кого-то.”

Программа формирует вспомогательные алфавиты для строчных и прописных букв. Вначале выбираются все неповторяющиеся буквы из парольной фразы, а потом дописываются все оставшиеся в основном алфавите. Формируется вспомогательный алфавит до 32 символов:

Основной строчный алфавит ="абвгдежзийклмнопрстуфхцчшщъыьэюя"

Вспомогательный строчный алфавит="моейдушпкянтсьжгабвзилрфхцчщъыэю"

Основной прописной алфавит="АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"

Вспомогательный прописной алфавит= "BАБГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"

Из основного текста выбираются последовательно буквы, определяется их номер по счету в основном алфавите и подменяется буквой из вспомогательного алфавита с тем же номером.

Например, у нас последняя буква в тексте “а”- строчная с номером 1 основного алфавита. В вспомогательном алфавите под номером значиться буква “в” . Вот и ее подставляем в текст.

В результате получаем следующий текст:

“Тутуижь дтю Иемьм Иемьжекфм”

Дешифрация происходит наоборот. За основу берется вспомогательный алфавит.

Из зашифрованного текста выбираются последовательно символы, определяется их номер во вспомогательном алфавите. После этого по номеру, но уже в основном алфавите подставляется символ. Исходный текст восстанавливается.

Программа работает с ограниченным набором символов алфавита (только русские строчные и прописные буквы). При необходимости возможно расширить программу под любой алфавит (например латинский).

Порядок выполнения программы последовательного подбора паролей (brute force).

Программа последовательно перебирает пароли из заданной длины кодового слова и алфавита (в учебной программе используются 4 цифры от 0 до 5, например “1234”).

Порядок работы следующий:

Запустить пользовательскую форму кнопкой на панели быстрого доступа (верхний левый угол экрана).

Активизируется пользовательское меню (рис 1). Нажать на кнопку “Запуск подбора”.

Появиться окно выбора закодированного файла→указать на закодированный файл→ OK.

Программа подбора начнет выполняться, появиться окно выполнения программы (progressbar). По выполнению задачи progressbar исчезнет. Вместо него появиться окно с указанием подобранного пароля и временем подбора в секундах.

Также откроется в новом окне содержимое распароленного файла Word.

При выполнении программы подбора возможны зависания окна progressbar (информация на нем может не меняться), но сама программа подбора будет продолжать выполняться. Это происходит из-за срабатывания системы защиты самой программы Word. На конечный результат подбора пароля это не влияет. В итоге после некоторого ожидания появится окно с паролем и затраченным временем выполнения.

Так как количество вариантов довольно большое →N=64=6*6*6*6=1296, при этом система защиты Word и язык программирования VBA тормозят опрос вариантов, поэтому скорость перебора невелика.

Вычислить ее возможно из следующих соображений. После выполнения контрольного примера снятия пароля с файла (пароль “1234”) в окне выполнения появиться открытый пароль “1234” и время его нахождения T в секундах.

Зная количество вариантов var=n1*n1*n3*n4, (где n-число вариантов чисел в одном разряде (у нас var=2*3*4*5=120) , можно найти скорость перебора R=T/var.

Нетрудно посчитать общее время при переборе всех вариантов tобщ=R*N.

Попробуем рассчитать, сколько возможных паролей при этом может существовать, учитывая, что в качестве символа можно использовать спецсимволы (30 символов), цифры (10 символов), а также заглавные и строчные буквы как английского (52 символа), так и локализованного алфавита (66 символов). Итого, количество возможных символов — 30 + 10 + 52 + 66 = 158. При максимальной длине пароля в 40 символов получим возможных комбинаций N=15840. Число это огромно, и с задачей перебора всех возможных паролей за приемлемое время не справится компьютер.