Автор: Пользователь скрыл имя, 05 Ноября 2011 в 16:51, контрольная работа
В курсовой работе требуется разработать сайт на тему «Криптографические методы защиты информации» в системе Денвер, состоящий из следующих страниц:
Главная (описывает назначение сайта, обеспечивает навигацию, даёт возможность выбрать отдельные методы криптографической защиты для подробного просмотра);
Страница шифрования/дешифрования заданным методом;
Страница ссылок на источники в Интернет;
Об авторе.
Введение………………………………………………………………………………...3
1 Криптографическая защита информации и этапы её развития ………………….4
2 Методы криптографического преобразования данных…………………………...9
2.1 Шифрование заменой…………………………………………………..9
2.2 Монофоническая замена………...........................................................10
2.3 Шифрование перестановкой………………………………………….11
2.4 Шифрование методом гаммирования ……………………………….12
2.5 Шифрование с помощью аналитического метода………………….13
2.6 Системы с открытым ключом………………………………..............16
2.7 Электронная цифровая подпись………………..................................18
3 Шифрование и дешифрование……………………………………….....................24
3.1 Описание алгоритмов шифрования и дешифрования………….......25
3.2 Текст программ шифрования и дешифрования.................................26
4 Описание проекта……………………………………….........................................28
Заключение …………………………………………..………………….....................32
Библиографический список…
2. 7 Электронная цифровая подпись.
В конце любого письма мы привыкли ставить подпись с тем, чтобы уведомить получателя о том, кто является отправителем данного документа. Кроме того, подпись ответственного лица придает документу юридическую силу. По мере внедрения электронных средств доставки документов (факс и электронная почта) проблема их достоверности обрела крайнюю актуальность. Ведь копирование любой последовательности битов или пикселей не представляет никакой трудности. Современные телекоммуникационные каналы уязвимы для перехвата и искажения пересылаемых документов.
Рассмотрим сначала то, от каких действий злоумышленника должна защищать система идентификации.
Отказ от выполненных действий. Субъект утверждает, что он не посылал некоторый документ, хотя на самом деле он его послал.
Модификация документа. Получатель модифицирует полученный документ и утверждает, что именно такую версию документа он и получил.
Подделка. Субъект фабрикует сообщение и утверждает, что оно ему прислано.
Перехват. Злоумышленник С перехватывает сообщение, посланное А к В с целью модификации.
Маскировка. Посылка сообщения от чужого имени.
Повтор. Злоумышленник С посылает повторно сообщение от А к Б, перехваченное им ранее.
Решение
практически всех этих проблем может
быть реализовано с помощью
Пусть имеются секретные коды d, p и q, а также открытые e и n=pq. Пусть также А передает сообщение DATA адресату Б. Электронная подпись отправителя А базируется на его секретном ключе и открытом ключе получателя Б. Сначала отправитель с помощью хэш-функции (SHS - Secure Hash Standard) генерирует дайджест своего сообщения длиной 160 бит (5 слов). Затем с помощью своего секретного ключа он формирует электронную подпись. При этом, А не может отказаться от того, что именно он послал сообщение, так как только он знает свой секретный ключ. Электронную подпись нельзя использовать повторно и подписанный документ нельзя модифицировать, так как любые модификации неизбежно изменят его дайджест, а, следовательно, и электронную подпись. Получатель с помощью открытого ключа дешифрует код электронной подписи, а затем с использованием дайджеста проверяет ее корректность.
Национальный институт стандартов США принял стандарт DSS (Digital Signature Standard), в основу которого легли алгоритмы Эль-Гамаля и RSA.
Рассмотрим алгоритмы вычисления дайджеста сообщения, электронной подписи и идентификации отправителя. Начнем с алгоритма SHA (Secure Hash Algorithm).
Сначала сообщение разбивается на блоки длиной 512 бит. Если длина сообщения не кратна 512, к последнему блоку приписывается справа 1, после чего он дополняется нулями до 512 бит. В конец последнего блока записывается код длины сообщения. В результате сообщение приобретает вид n 16-разрядных двоичных слов M1,M2,…,Mn. M1 содержит первый символ.
Алгоритм
SHA использует 80 логических функций f0,f1,…,f79,
которые производят операции над тремя
32-разрядными словами (B,C,D):
ft(B,C,D) = (B AND C) OR ((NOT B) AND D) | для 0 ≤t≤ 19 |
ft(B,C,D) = B XOR C XOR D | для 20 ≤ t ≤ 39 |
ft(B,C,D) = (B AND C) OR (B AND D) OR (C AND D) | для 40 ≤ t ≤ 59 |
ft(B,C,D) = B XOR C XOR D | для 60 ≤ t ≤ 79 |
В алгоритме используется также 80 констант K1,K2,…, K79:
Kt = 5A827999 | для 0 ≤ t ≤ 19 |
Kt = 6ED9EBA1 | для 20 ≤ t ≤ 39 |
Kt = 8F1BBCDC | для 40 ≤ t ≤ 59 |
Kt = CA62C1D6 | для 60 ≤ t ≤ 79 |
Вводится 5 переменных Hi инициализируемых как:
H0 = 67452301
H1 = EFCDAB89
H2 = 98BADCFE
H3 = 10325476
H4 = C3D2E1F0
Делим массив M на группы из 16 слов W0, W1,…,W15 (W0 самое левое слово).
Для t = 16 - 79 wt = S1(Wt-3 XOR Wt-8 XOR Wt-14 XOR Wt-16)
Ak означает операцию циклического сдвига влево на k разрядов.
Пусть
теперь A = H0, B = H1, C = H2,
D = H3, E = H4. for t = 0 to 79 do TEMP = S5(A)
+ ft(B,C,D) + E + Wt + Kt. (TEMP -
временная переменная). E = D; D = C; C = S30(B);
B = A; A = TEMP;
Пусть H0 = H0 + A; H1 = H1
+ B; H2 = H2 + C; H3 = H3
+ D; H4 = H4 + E.
В результате обработки массива М будет получено 5 слов H0, H1, H2, H3, H4 с общей длиной 160 бит, которые и образуют дайджест сообщения. Полученная кодовая последовательность с высокой степенью уникальности характеризует сообщение. Любое редактирование сообщения практически неизбежно приведет к изменению дайджеста. Поскольку алгоритм вычисления дайджеста общеизвестен, он не может рассматриваться как гарантия предотвращения модификации сообщения. Смысл вычисления дайджеста заключается в уменьшении объема данных, подлежащих шифрованию. Для того чтобы превратить дайджест в электронную подпись надо воспользоваться секретным ключом. Схема реализации алгоритма DSA (Digital Signature Standard) показана на Рисунке 1.
Рисунок 1 - Схема вычисления и верификации электронной подписи (DSA)
DSA использует следующие параметры:
p
- простое число, которое при 512£ L £ 1024 удовлетворяет условию
2L-1 < p < 2L, L кратно 64. q
- простой делитель p-1, где 2159
< q < 2160.
g = h(p-1)/q mod p, где h
любое целое, для которого 1 < h < p-1
и h(p-1)/q mod p > 1.
x равно случайному или псевдослучайному
целому числу, для которого 0 < x < q.
y = gx mod p.
k
равно случайному или
Целые p, q и g могут быть общедоступными и использоваться группой пользователей. Секретным и открытым ключами являются х и у, соответственно. Параметры х и k используются только для формирования электронной цифровой подписи и должны храниться в секрете. Параметр k генерируется для каждой подписи.
Подпись сообщения M представляет собой два числа r и s, вычисленные согласно формулам:
r = (gk mod p) mod q s = (k-1(SHA(M) + xr)) mod q. (здесь k-1 величина обратная k).
SHA(M) - представляет собой дайджест сообщения M (160-битовая строка). После вычисления r и s следует проверить, не равно ли одно из них нулю.
Для
верификации электронной
Пусть M`, r` и s` представляют собой полученное сообщение и электронную подпись. Получатель начинает верификацию с проверки условия 0 < r` < q и 0 < s` < q. Если хотя бы одно из условий не выполнено, электронная подпись некорректна. Далее производится вычисление:
w
= (s`)-1 mod
q u1 = ((SHA(M`)w) mod q u2 = ((r`)w)
mod q
v = (((g)u1 (y)u2)
mod p) mod q.
Если
v = r`, верификация подписи завершилась
успешно и получатель может с высокой
вероятностью быть уверен, что он получил
сообщение от партнера, владеющего секретным
ключом х, соответствующим открытому
ключу у. Если же v не равно r`,
то сообщение было модифицировано или
подписано самозванцем. В ссылке 3 на предыдущей
странице можно найти описание алгоритма
нахождения (проверки) простых чисел и
генерации псевдослучайных чисел.
3. Шифрование
и дешифрование.
Информация,
которая может быть прочитана
и понятна без каких-либо специальных
мероприятий, называется открытым
текстом (plaintext). Метод маскировки
открытого текста таким образом, чтобы
скрыть его суть, называется шифрованием.
Шифрование открытого текста приводит
к его превращению в непонятную тарабарщину,
именуемую зашифрованным
текстом (ciphertext). Шифрование применяется
для того, чтобы скрыть информацию от тех,
для кого она не предназначается, даже
если они могут видеть сам зашифрованный
текст. Противоположный процесс по обращению
зашифрованного текста в его оригинальный
вид называется дешифрованием.
Рисунок
2 - Шифрование и дешифрование
В качестве примера демонстрации одного из методов шифрования/дешифрования текста был выбран метод перестановок.
Шифрование
перестановкой заключается в
том, что символы шифруемого текста
переставляются по какому-то правилу
в пределах какого-то блока этого
текста. При достаточной длине
блока, в пределах которого осуществляется
перестановка, и сложном и неповторяющемся
порядке перестановки можно достигнуть
достаточной для практических приложений
в автоматизированных системах стойкости
шифрования.
3.1.Описание алгоритмов
шифрования и дешифрования.
Для демонстрации метода перестановок в качестве шифруемого текста взяли слово «Шифровщик (файл «Демонстрация метода шифрования перестановкой» имеет название k.html).
В пустую строку (name = “text”) вводим шифруемое слово от 2-х до 9 символов без пробела, после чего напротив надписи «Зашифровать» в окошке “Checkbox” для продолжения процедуры шифрования ставим галку. Для перехода к этому процессу следует нажать по кнопке «Показать» (type = “Submit”). (Рисунок 3):
Рисунок
3 - Ввод шифруемого слова
Текст программы ввода шифруемого слова см. Приложении 4.
При нажатии по кнопке, происходит ссылка на файл bar09.php, который содержит php – коды для процедур шифрования и дешифрования (вывод на экран зашифрованного/дешифрованного слов происходит с помощью команды ECHO, введённого в коде программы).
В результате, на экране мы
увидим (Рисунок 4):
Рисунок 4 - Шифрование/дешифрование слова
Текст программ шифрования и дешифрования находятся в одном PHP – файле на диске под именем bar09.php:
<head><title>
<center> <h1>Криптографические методы защиты информации </h1></center>
<table bgcolor="#FFFFFF" align="center" height="37" style="font-size:18px; font-weight:bold; " width="100%">
<tr>
<td bgcolor="#12adea" align="center" style="color:#CFFFFF;
"><a href="index.html" style="text-decoration:none;
color:#CFFFFF;">Главная</a></
<td bgcolor="#12adea" align="center" style="color:#CFFFFF;
"><a href="k.html" style="text-decoration:none;
color:#CFFFFF;">Демонстрация метода перестановки</a></td>
<td bgcolor="#12adea" align="center" style="color:#CFFFFF; "><a href="Ssilki.php" style="text-decoration:none; color:#CFFFFF;">Ссылки на источники</a></td>