- •Способы криптографической защиты информации в радиосвязи методические указания
- •090102 “Компьютерная безопасность”, 090105 “Комплексное обеспечение информационной безопасности
- •Введение
- •Шифрование данных в группе симметричных блочных алгоритмов redoc.
- •Теоретическое введение
- •Алгоритм redoc III
- •Алгоритм зашифрования redoc III
- •Создание таблицы ключей
- •Алгоритм расшифрования redoc III
- •Шифрование данных с помощью генератора Геффе.
- •Теоретическое введение
- •Обобщенный генератор Геффе
- •Описание алгоритма решения задачи Решение данной задачи можно разбить на следующие этапы.
- •Хеширование данных с помощью алгоритма md5.
- •Теоретическое введение
- •Присоединение заполняющих (дополнительных) битов
- •Добавление длины
- •Инициализация md буфера
- •Обработка сообщения в блоках по 16 слов
- •Шифрование данных с помощью алгоритма a5.
- •Теоретическое введение
- •Шифр а5/0.
- •Шифр а5/1
- •Шифр а5/2.
- •Шифр а5/3
- •Шифрование данных с помощью алгоритма Blowfish.
- •Теоретическое введение Функциональное преобразование f(X) сети Фейстеля:
- •Алгоритм шифрования 64-битного блока с известным массивом p и f(X)
- •Алгоритм Blowfish
- •Выбор начального значения p-массива и таблицы замен
- •Шифрование данных с помощью алгоритма seal.
- •Теоретическое введение Обозначения.
- •Длина выхода.
- •Отображение ключа в таблицы.
- •Описание функции генерации таблиц.
- •Псевдослучайная функция.
- •Алгоритм seal (отображение 32-битного индекса в l бит).
- •Процедура инициализации seal.
- •Шифрование данных с помощью алгоритма rc2.
- •Теоретическое введение Структура алгоритма
- •Процедура расширения ключа
- •Шифрование данных с помощью алгоритма cast.
- •Теоретическое введение
- •Библиографический список
- •Содержание
- •Способы криптографической защиты
- •090102 “Компьютерная безопасность”, 090105 “Комплексное обеспечение информационной безопасности
- •394026 Воронеж, Московский просп., 14
Хеширование данных с помощью алгоритма md5.
Цель работы: изучить методы хеширования данных в алгоритме MD5 и освоить их практическое применение.
Теоретическое введение
MD5 – это однонаправленнная хэш-функция, алгоритм для входного сообщения выдает 128-битовое хэш-значение, или краткое изложение сообщения.
MD5 (Message Digest 5) – это улучшенная версия MD4. Хотя она сложнее MD4, их схемы похожи, и результатом MD5 также является 128-битовое хэш-значение.
После некоторой первоначальной обработки MD5 обрабатывает входной текст 512-битовыми блоками, разбитыми на 16 32-битовах подблоков. Выходом алгоритма является набор из четырех 32-битовых блоков, которые объединяются в единое 128-битовое хэш-значение.
Вначале допускаем, что имеем на входе сообщение из b бит, и что мы желаем найти Message Digest этой последовательности бит. Число b является произвольным неотрицательным целым; b может быть равным нулю, оно не обязательно должно быть множителем 8, и оно может быть произвольно большим. Представим последовательность бит сообщения как:
m_0 m_1 m_2 . . . . . . m{b-1}
Следующие пять операций выполняются для подсчета Message Digest сообщения.
Присоединение заполняющих (дополнительных) битов
Сообщение расширяется так, чтобы его длина (в битах) совпадала с 448, по модулю 512. Дополнение всегда выполняется, даже если длина сообщения - уже совпадает с 448 по модулю 512. Дополнение выполняется следующим образом: одиночный "1" бит добавляется к сообщению, и далее "0" биты добавляются так что длина в битах заполняемого сообщения соответствует 448 по модулю 512. В общем случае, минимум один бит и максимум 512 бит добавляется.
9
Добавление длины
64-битное представление входной последовательности b (длина сообщения перед расширением дополнительными битами) присоединяется к результату предыдущего этапа. Маловероятно, что длина b будет больше, чем 264 поэтому и используется 64-разрядная величина для хранения длины b. Эти биты добавляются как два 32-разрядных слова, младшее заносится первым.
В этом месте окончательное сообщение (после выполнения первого и второго этапов) имеет длину, кратную 512 битам, т.е. сообщение имеет длину, которая точно кратна 16-ти словам. Последовательность М[0 . . . . N-1] является словами окончательного сообщения, где N кратно 16.
Инициализация md буфера
Буфер на 4-е слова (A, B, C, D) используется для подсчета Message Digest. Каждое из A, B, C, D является 32-битным регистром. Эти регистры инициализируются следующими шестнадцатиричными значениями, где первым следует самый младший байт:
A: 01 23 45 67
B: 89 ab cd ef
C: fe dc ba 98
D: 76 54 32 10
Разработчики из RSA Data Security, Inc. назвали их магическими константами.
Обработка сообщения в блоках по 16 слов
Сначала определяются четыре вспомогательных функции, каждая из которых имеет на входе три 32-битных слова и производит одно 32-битное слово на выходе.
F(X, Y, Z) = (X Y) ((X) Z)
G(X, Y, Z) = (X Z) (Y (Z))
H(X, Y, Z) = X Y Z
I(X, Y, Z) = Y (X (Z))
В каждой битовой позиции функция F действует как условный оператор: если X то Y иначе Z. Функция F могла бы определяться с использованием операции “+” вместо ””, так как выражение (X Y) ((X) Z) никогда не будет иметь 1 в одинаковых битовых позициях. Если биты X, Y и Z независимы и несмещены, то каждый бит после выполнения F(X, Y, Z) будет независим и несмещен.
Ф
10
Далее следует главный цикл обработки сообщения (рис.2). Главный цикл состоит из четырех очень похожих этапов (у MD4 было только три этапа). На каждом этапе 16 раз используются различные операции. Каждая операция представляет собой нелинейную функцию над тремя аргументами из a, b, c и d (рис. 3). Затем она добавляет этот результат к четвертой переменной, подблоку текста и константе. Далее результат циклически сдвигается вправо на переменное число битов и добавляет результат к одной из переменных a, b, c и d. Наконец результат заменяет одну из переменных a, b, c и d. Существуют четыре нелинейных функции, используемые по одной в каждой операции (для каждого этапа – другая функция).
Рис.2. Главный цикл MD5
Вывод
В результате выполнения предыдущих действий Message Digest производит на выходе числа A, B, C, D, общая длина которых 128 бит.
Задание:
И
11
Рис.3. Одна операция MD5
Порядок выполнения работы:
написать на языке программирования функцию хеширования, в которую в качестве параметров передается ключ и символ (или строка символов) исходного текста.
написать функцию проверки целостности, в которую в качестве параметров передается ключ и символ (или строка символов) зашифрованного текста.
Оформление отчета:
В отчете следует привести краткие теоретические сведения. Кроме того, должны быть представлены: краткая блок-схема, текст программы, шифруемый набор символов, результаты выполнения программы.
Контрольные вопросы:
В чем заключается суть метода шифрования MD5?
Какой характерной особенностью обладает инициализация MD буфера?
Из скольких этапов состоит главный цикл обработки сообщения?
12
ЛАБОРАТОРНАЯ РАБОТА №4