Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

3. Лабораторное задание. 5. Контрольные вопросы. Лабораторная работа № 7. Моделирование хэш-функции. 1. Цель работы. 2. Основные теоретические сведения




3. Лабораторное задание

Составить макровирус для редактора Microsoft Word, реализующий функции шифрования и дешифрования исходного текста, одним из криптографических алгоритмов: замены, перестановок или их модификаций. Макровирус не должен заражать файл глобальных макросов Normal. dot, а реализовывать свои функции на примере документа пользователя, не проводя деструктивных действий над компьютером.

4. Содержание отчета:

· название и цель лабораторной работы;

· описание алгоритма и блок-схемы функционирования макровируса;

· результаты действия макровируса: исходный, зашифрованный и дешифрованный текст;

· вывод, отражающий проблему защиты от макровирусов.

5. Контрольные вопросы

1. Раскройте понятие «макровирус».

2. Сформулируйте условия существования макровирусов.

3. Каково содержание вирусов семейства Macro. Word?

4. Каковы проявления вирусов семейства Macro. Word?

5. Какие средства защиты от макровирусов известны?

Лабораторная работа № 7

Моделирование хэш-функции

1. Цель работы

1. Изучить принципы и методы построения хэш-функций.

2. Смоделировать алгоритм реализации хэш-функции.

2. Основные теоретические сведения

Хэш-функция – это преобразование, получающее из данных произвольной длины некое значение (свертку) фиксированной длины. Простейшими примерами являются контрольные суммы (например, crc32). Бывают криптографические и программистские хэши. Криптографический хэш отличается от программистского следующими двумя свойствами: необратимостью и свободностью от коллизий. Обозначим m – исходные данные, h(m) – хэш от них. Необратимость означает, что если известно число h0, то трудно подобрать m такое, что h(m) = h0. Свободность от коллизий означает, что трудно подобрать такие m1 и m2, что m1¹ m2, но h(m1) = h(m2).

Криптографические хэш-функции разделяются на два класса:

· хэш-функции без ключа (MDC (Modification (Manipulation) Detect Code) - коды),

· хэш-функции c ключом (MАC (Message Authentication Code) - коды).

Хэш-функции без ключа деляться на два подкласса:

· слабые хэш-функции,

· сильные хэш-функции.

Слабой хэш-функцией называется односторонняя функция H(x), удовлетворяющая следующим условиям:

1) аргумент х может быть строкой бит произвольной длины;

2) значение H(x) должно быть строкой бит фиксированной длины;

3) значение H(x) легко вычислить;

4) для любого фиксированного x вычислительно невозможно найти другой x' ¹ x, такой что H(x')=H(x). Пара x' ¹ x, когда H(x')=H(x), называется коллизией хэш-функции.

Сильной хэш-функцией называется односторонняя функция H(x), удовлетворяющая условиям 1-3 для слабой хэш-функции и свойству 4':

4')    вычислительно невозможно найти любую пару x' ¹ x, такую

что H(x')=H(x).

Поскольку из свойств 1-2 следует, что множество определения хэш-функции значительно шире множества значений, то коллизии должны существовать. Свойство 4 требует, чтобы найти их для заданного значения х было практически невозможно. Требование 4' говорит о том, что у сильной хэш-функции вычислительно невозможно вообще найти какую-либо коллизию.

Хэш-функцией с ключом (MAC) называется функция H(k, x) удовлетворяющая свойствам:

1) аргумент х функции H(k, x) может быть строкой бит произвольной длины;

2) значение H(k, x) должно быть строкой бит фиксированной длины;

3) при любых k и x легко вычислить H(k, x);

4) для любого х должно быть трудно вычислить H(k, x) не зная k;

5) должно быть трудно определить k даже при большом числе неизвестных пар {x, H(k, x)} при выбранном наборе х или вычислить по этой информации        H(k, x') для x' ¹ x.

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

2. 1   Методики определения хэш-функций

2. 1. 1.     Функция хэширования SHA

Алгоритм безопасного хэширования SHA (Secure Hash Algorithm) принят в качестве стандарта США в 1992 г. и предназначен для использования совместно с алгоритмом цифровой подписи, определенным в стандарте DES. При вводе сообщения M алгоритм вырабатывает 160-битовое выходное сообщение, называемое сверткой (Message Digest), которая и используется при выработке ЭЦП.

Рассмотрим работу алгоритма подробнее. Прежде всего исходное сообщение дополняется так, чтобы его длина стала кратной 512 битам. При этом сообщение дополняется даже тогда, когда его длина уже кратна указанной. Процесс происходит следующим образом: добавляется единица, затем столько нулей, сколько необходимо для получения сообщения, длина которого на 64 бита меньше, чем кратная 512, и затем добавляется 64-битовое представление длины исходного сообщения. Далее инициализируются пять 32-битовых переменных следующими шестнадцатеричными константами: A=67452301 B= EFCDAB89 C = 98BADCFE D = 10325476 E = C3D2E1F0. Далее эти пять переменных копируются в новые переменные a, b, c, d и e соответственно. Операции в главном цикле сводятся к вычислению функции хэширования. После окончания главного цикла значения a, b, c, d и e складываются с содержимым A, B, C, D и E соответственно и осуществляется переход к обработке следующего 512-битового блока расширенного сообщения. Выходное значение хэш-функции является конкатенацией значений A, B, C, D и E.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...