Интеллект сервис

 

 

 

Краткое описание работы:

Курсовая работа по курсу: "Информационная безопасность" на тему: «Разработка программы, реализующей алгоритм шифрования, основанный на хэшировании, MD5»


Содержание
Реферат - 3 -
Обозначения и сокращения - 4 -
Введение - 5 -
1. Краткий теоретический материал. - 6 -
1.1. Что такое криптография - 6 -
1.2. Наиболее распространенные механизмы криптографии - 7 -
1.2.1. Сертификация - 7 -
1.2.3. Восстановление ключа - 8 -
1.2.4. Доступ к ресурсам - 8 -
2 Краткое описание ГОСТ 28147-89 - 9 -
2.1. Логика построения шифра и структура ключевой информации ГОСТа. - 9 -
2.2. Основной шаг криптопреобразования. - 10 -
3 Описание решения - 12 -
4 Описание работы программы - 17 -
5 Руководство пользователя - 17 -
6 Программа и методика испытаний - 21 -
Заключение - 23 -
Библиография - 25 -
Приложение 1. Листинг программы. - 26 -



Реферат
Пояснительная записка содержит 37 листов, 13 рисунков, 1 таблицу, включает 6 частей, 5 источников литературы, 1 приложение.
Ключевые слова: шифрование, хэш-функция, криптография, защита данных, программа, безопасность информации.
Объектом разработки является алгоритм шифрования для защиты информации.
Цель работы – разработать и реализовать программу на языке Delphi, реализующую алгоритм шифрования, основанный на хэшировании
Для выполнения задания необходимо реализовать следующие задачи:
1. Проработать теоретический материал.
2. Провести анализ предметной области.
3. Разработать структуру программы решения задачи.
4. Разработать интерфейсы программного решения.
5. Реализовать в среде Delphi программу.
6. Разработать руководство пользователя программы
7. Создать блок-схему решения.
В результате были разработаны: алгоритм цифровой подписи, интерфейс программы, исходный текст программы, руководство пользователя программы.

Обозначения и сокращения
В пояснительной записке используются следующие обозначения и сокращения:
Открытый текст - собственно, это и есть та информация, которую мы будем пытаться защитить от несанкционированного доступа. "Открытый текст" - это вовсе не обязательно именно текст, это также могут быть двоичные данные, программный код, и т.д.
Шифрованный текст - результат преобразования открытого текста, с использованием криптографических алгоритмов и дополнительного параметра (ключа) недоступный для восприятия.
Шифрование - процесс создание шифрованного текста при наличии открытого текста и ключа.
Дешифрование - процесс восстановления открытого текста из шифрованного при помощи ключа.
Ключ - параметр шифра, необходимый для шифрования и/или дешифрования.
Хэш-функция - это такая функция, значение которой является необратимым преобразованием исходного значения. Другими словами, пусть у нас есть число A. Вычислим Y=H(A). Функция H будет необратимой, если зная значение Y восстановить A будет не-возможно. Такому условию удовлетворяет, например, простейшая контрольная сумма, однако к хэш-функциям есть еще одно серьезное требование: очень сложной задачей должно являться нахождение такого числа B не равного A, что H(B) также будет равняться Y (такие случаи называются коллизиями). Число Y называют дайджестом или отпечатком сообщения.


Введение
Объектом разработки является алгоритм шифрования для защиты информации.
Цель работы – разработать и реализовать программу на языке Delphi, реализующую алгоритм шифрования, основанный на хэшировании, разработать систему шифрования отдельных дисковых файлов. Программа должна позволять: как шифровать исходные файлы, так и восстанавливать их обратно с помощью вводимого пользователем пароля шифрования. Зашифрованный файл не должен изменяться в размерах относительно исходного или изменяться незначительно.
Для выполнения задания необходимо реализовать следующие задачи:
1. Проработать теоретический материал.
2. Провести анализ предметной области.
3. Разработать структуру программы решения задачи.
4. Разработать интерфейсы программного решения.
5. Реализовать в среде Delphi программу.
6. Разработать руководство пользователя программы
В результате были разработаны: алгоритм шифрования, интерфейс программы, исходный текст программы, руководство пользователя программы.

Криптография – наука о защите информации от прочтения ее посторонними. Защита достигается шифрованием, т.е. преобразованием, делая труднораскрываемым по входным данным, без знания защищенных входных данных специальной ключевой информации – ключа. Под ключом понимается легко изменяемая часть криптосистемы, шифрованное преобразование, хранящаяся в тайне и определяющая возможные случаи. Крипто-графическими средствами защиты информации называются специальные методы и средства преобразования информации в результате, которых маскируется ее содержание. Желательно, чтобы методы шифрования обладали минимум двумя свойствами:
- расшифровать законный получатель сможет, выполнив обратное преобразование сообщения;
- восстановить по нему не сможет исходное сообщение криптоаналитик противника, перехвативший сообщение, которые сделают эту работу нецелесообразной.
С широким pаспpостpанением в современном мире электронных форм документов (в том числе и конфиденциальных) и средств их обработки особо актуальной стала проблема установления подлинности и авторства электронной документации.


1. Краткий теоретический материал.

1.1. Что такое криптография

На сегодняшний день криптографию можно определить как изучение методов и приложений, основанных на трудноразрешимых задачах. Криптоанализ - это изучение способов раскрытия криптографических алгоритмов. Криптология (от греч. kryptos и logos - скрытое слово) - дисциплина, объединяющая криптографию и криптоанализ. Большинство пользователей применяют методы криптографии для защиты коммуникаций - как раньше, так и сейчас это одна из основных областей применения криптографии.
Шифрование - это преобразование данных в вид, недоступный для чтения без соответствующей информации (ключа шифрования). Задача состоит в том, чтобы обеспечить конфиденциальность, скрыв информацию от лиц, которым она не предназначена, даже если они имеют доступ к зашифрованным данным. Расшифровывание - процесс, обратный шифрованию, т.е. преобразование зашифрованных данных в открытый вид.
Иногда алгоритмы шифрования подразделяют на собственно шифры и коды. Шиф-ры работают с отдельными битами, буквами и символами. Коды оперируют лингвистиче-скими элементами (слоги, слова, фразы).
Для шифрования и расшифровывания требуется некоторая секретная информация - ключ.
Некоторые алгоритмы шифрования используют один и тот же ключ, как для шифрования, так и для расшифровывания. Другие алгоритмы используют для шифрования и расшифровывания различные ключи.
Однако сегодня методы криптографии используются не только для шифрования. Важной задачей также является установление подлинности - аутентификация (например, при подписании документов). Поскольку все большее значение приобретают электронные документы, то возникает необходимость в электронных методах установления подлинности, которые предлагает криптография. Цифровая подпись связывает подписанный документ с владельцем определенного ключа, а цифровая дата связывает документ со временем его создания. Эти криптографические методы уже используются в финансовых операциях, а также и для многих других задач.
Криптография применяется и в других областях. Из нескольких основных крипто-графических методов созданы сложные схемы и протоколы, которые, например, позволяют доказать обладание некоторой информацией, не раскрывая ее обеспечивают разделение тайны с возможностью ее восстановления по некоторым частям. Криптографические методы также обеспечивают обращение электронных денег.
На сегодняшний день все криптографические механизмы основаны на трудноразрешимых задачах. Задача считается трудноразрешимой (или трудной), если для ее решения требуется некоторая секретная информация (например, для расшифровывания требуется ключ), а также если задачу вообще трудно решить (например, найти исходное сообщение по значению хэш-функции.

.......................ЧАСТЬ ТЕКСТА ПРОПУЩЕНА..........................

Краткое описание алгоритма MD5

Вначале допускаем, что имеем на входе сообщение из b-бит, и что мы желаем найти Message Digest этой последовательности бит. Число b является произвольным неотрицательным целым; b может быть равным нулю, оно не обязательно должно быть множителем 8, и оно может быть произвольно большим. Представим последовательность бит сообщения как:

 

m0 m1 m2 . . . . . . m{b-1}

 

Следующие пять этапов выполняются для подсчета Message Digest сообщения.

 

Этап 1. Присоединение заполняющих (дополнительных) битов.

Сообщение расширяется так, чтобы его длина (в битах) совпадала с 448, по модулю 512. Дополнение всегда выполняется, даже если длина сообщения - уже совпадает с 448 по модулю 512. Дополнение выполняется следующим образом: одиночный "1" бит добавляется к сообщению, и далее "0" биты добавляются так что длина в битах заполняемого сообщения соответствует 448 по модулю 512. В общем случае, минимум один бит и максимум 512 бит добавляется.

 

Этап 2. Добавление длины

64-битное представление входной последовательности b (длина сообщения перед расширением дополнительными битами) присоединяется к результату предыдущего этапа. Маловероятно, что длина b будет больше, чем 264 поэтому и используется 64-х разрядная величина для хранения длины b. (Эти биты добавляются как два 32-х разрядных слова, младшее заносится первым).

В этом месте окончательное сообщение(после выполнения первого и второго этапов) имеет длину, кратную 512 битам, т. е. сообщение имеет длину, которая точно кратна 16-ти словам. Последовательность М[0 . . . . N-1] является словами окончательного сообщения, где N кратно 16.

 

Этап 3. Инициализация MD буфера.

Буфер на 4-е слова (A, B, C, D) используется для подсчета Message Digest. Каждое из A, B, C, D является 32-х битным регистром. Эти регистры инициализируются следующими шестнадцатиричными значениями, где первым следует самый младший байт:

 

word A: 01 23 45 67

word B: 89 ab cd ef

word C: fe dc ba 98

word D: 76 54 32 10

 

Этап 4. Обработка сообщения в блоках по 16 слов.

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

 

F(X, Y, Z) = XY v not(X) Z

G(X, Y, Z) = XZ v Y not(Z)

H(X, Y, Z) = X xor Y xor Z

I(X, Y, Z) = Y xor (X v not(Z))

 

В каждой битовой позиции функция F действует как условный опреатор : если X то Y иначе Z. Функция F могла бы определяться с использованием операцию + вместо v, так как выражение XY and not(X)Z никогда не будет иметь 1 в одинаковых битовых позициях.

Если биты X, Y и Z независимы и несмещены, то каждый бит после выполнения F(X, Y, Z) будет независим и несмещен.

.......................ЧАСТЬ ТЕКСТА ПРОПУЩЕНА..........................


 

Скачать полную версию в архиве>>>

Стоимость работы 200 рублей. укажите тему работы и способ оплаты (Банковским переводом, Яндекс деньги, Веб мани):Заказать

Интеллект сервис

Hosted by uCoz