Современная криптография

Автор работы: Пользователь скрыл имя, 15 Января 2013 в 17:00, курсовая работа

Краткое описание

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

Вложенные файлы: 1 файл

Современная криптография.doc

— 255.00 Кб (Скачать файл)

Как видно, при всей простоте алгоритма Диффи-Хелмана, его недостатком является отсутствие гарантированной нижней оценки трудоемкости раскрытия ключа.

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

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

 возможность отказа от центра распределения ключей;

 взаимное подтверждение подлинности участников сеанса;

 подтверждение достоверности сеанса механизмом запроса-ответа,

 использование для этого программных или аппаратных средств;

 использование при обмене ключами минимального числа сообщений.

Иерархические схемы распределения ключей.

Рассмотрим следующую  задачу.

Пусть абоненты сети связи не равноправны между собой, а разделены на "классы безопасности" C1,C2,…,Cn. На множестве этих классов определен некоторый частичный порядок; если Cj < Ci, то говорят, что Ci доминирует Cj , т.е. имеет более высокий уровень безопасности, чем Cj . Задача состоит в том, чтобы выработать секретные ключи ki для каждого класса Ci таким образом, чтобы абонент из Ci мог вычислить kj в том и только в том, когда Ci ³ Cj.

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


Для случая, когда частичный  порядок      является деревом, имеется схема Сандху [San], которая позволяет добавлять новые классы безопасности без изменения ключей существующих классов.


Приведем описание иерархической  схемы распределения ключей, предложенной Ву и Чангом для случая, когда  частичный порядок   является деревом.


Пусть p – большое простое число,  V = Zp ´ Zp ´Zp – множество всех трехмерных векторов над Zp . Если i Î Zp , X = (x1,x2,x3), Y = (y1,y2,y3) Î V, то определим следующие векторы из V:

Предположим, что  каждому классу безопасности сопоставлен идентификатор

i Î Zp \ {0}; класс с идентификатором i мы будем обозначать через Ci . Ввиду того, что частичный порядок на множестве классов безопасности является деревом, для описания протокола достаточно описать процедуры выработки секретного ключа для корневого класса безопасности (т.е. класса с наиболее высоким уровнем безопасности) и для произвольного класса  Cj при условии, что секретный ключ для класса Ci , непосредственно доминирующего Cj (т.е. такого, что Cj < Ci и не существует класса Cr такого, что Cj < Cr < Ci), уже выработан.

Для корневого класса безопасности (например C1) выбирается произвольный секретный ключ  Ki Î V \ {(0,0,0)}.

Пусть класс Ci доминирует класс Cj и для Ci уже выработан секретный ключ Ki Î V. Тогда в качестве секретного ключа для Cj выбирается вектор



где Pj – вектор из V, выбранный случайно так, чтобы было  определено.

После чего вектор Pj делается общедоступным.

Таким образом, в процессе выполнения протокола для каждого  класса безопасности Ci вырабатывается секретный ключ Ki и открытый ключ Pj (кроме корневого класса). Если теперь Cj < Ci, то абонент из Ci может вычислить Kj следующим образом.

Существует  цепь классов безопасности Ci = Cro>Cr1>…>Crn = Cj, где Cl-1 непосредственно доминирует Cl для всех L = 1,…,n. Абонент Ci, зная Ki и Pr1, вычисляет по формуле (**), затем, зная Kr1 и Pr2, вычисляет Kr2 по той же формуле и т.д.; после n шагов будет вычислен Krn = Kj.

Электронная подпись

В чем состоит  проблема аутентификации данных?

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

Во-первых, получатель имеет возможность убедиться в истинности письма,

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

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

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

Итак, пусть имеются два  пользователя Александр и Борис.

От каких нарушений  и действий злоумышленника должна защищать система аутентификации.

Отказ (ренегатство).

Александр заявляет, что  он не посылал сообщение Борису, хотя на самом деле он все-таки посылал.

Для исключения этого нарушения  используется электронная (или цифровая) подпись.

Модификация (переделка).

Борис изменяет сообщение  и утверждает, что данное  (измененное) сообщение послал ему Александр.

Подделка.

Борис формирует сообщение  и утверждает, что данное  (измененное) сообщение послал ему Александр.

Активный перехват.

Владимир перехватывает  сообщения между Александром  и Борисом с целью их скрытой  модификации.

Для защиты от модификации, подделки и маскировки используются цифровые сигнатуры.

Маскировка (имитация).

Владимир посылает Борису сообщение от имени Александра .

В этом случае для защиты также используется электронная  подпись.

Повтор.

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

Наиболее действенным  методом защиты от повтора являются

 использование имитовставок,

 учет входящих сообщений.

Протоколы электронной подписи

Протоколы (схемы) электронной  подписи являются основными криптографическим  средством обеспечения целостности  информации.

Схема  Эль Гамаля.

Пусть обоим участникам протокола  известны некоторое простое число p, некоторой порождающей g группы Z*p и некоторая хэш-функция h.

Подписывающий выбирает секретный  ключ x ÎR Z*p-1 и вычисляет открытый ключ   y = g-x mod p. Пространством сообщений в данной схеме является Zp-1 .

Для генерации  подписи нужно сначала выбрать uÎR Zp-1. Если uÏR Z*p-1 (что проверяется эффективно), то необходимо выбрать новое u. Если же u ÎR Z*p-1 , то искомой подписью для сообщения m является пара (r,s), где r = gu mod p и

s = u-1(h(m) +xr) mod (p-1). Параметр u должен быть секретным и может быть уничтожен после генерации подписи.

Для проверки подписи (r,s) для  сообщения m необходимо сначала проверить  условия r Î Z*p и s Î Zp-1 . Если хотя бы одно из них ложно, то подпись отвергается. В противном случае подпись принимается и только тогда, когда    gh(m) º yrrs(mod p ).

Вера в стойкость схемы Эль Гамаля основана на (гипотетической) сложности задачи дискретного логарифмирования по основанию g.

Схема Фиата – Шамира.

Для ее обеспечения центр  обеспечения безопасности должен выбрать  псевдослучайную функцию f, криптографическую хэш-функцию h, а также выбрать различные большие простые числа p, q и вычислить n = pq. Число n и функции f и h являются общедоступными и публикуются центром, а числа p и q должны быть секретными. Кроме того, схема использует два натуральных параметра l и t.

Для каждого пользователя центр обеспечения безопасности генерирует идентификационную информацию I, содержащую, например, имя пользователя, его адрес, идентификационный номер и т. п., и для каждого j = 1,…,l вычисляет

yi = f(I,j), отбирает среди них квадратичные вычеты по модулю n (изменив обозначения, мы считаем, что yi для всех j = 1,…,l являются квадратичными вычетами по млдулю n), и вычисляет xi – наименьший квадратичный корень по модулю n из yi-1 mod n. Числа yi играют роль открытого ключа, а xi – секретного. Так как эти ключи вычисляются с использованием I, схема Фивта – Шамира относится к схемам, основанным на идентификационной информации (identity based). В другом варианте схемы Фиата – Шамира сразу выбираются (псевдослучайным образом) параметру yi. На практике идентификационная информация I и/или открытый ключ (y1,…,yl) каждого пользователя помещаются в некоторый справочник, доступный всем пользователям для чтения, но не доступный для записи. Для обеспечения аутентичности, данные в этом справочнике заверяются подписью центра обеспечения безопасности. Секретный ключ (x1,…,xl) и идентификационная информация I могут быть помещены на интеллектуальную карточку пользователя.

Для генерации подписи  для обеспечения m подписывающий

выбирает uiÎR Zn (каждое ui – независимо друг от друга) и вычисляет ri = ui2 mod n для i = 1,…,t;

вычисляет h(m,r1,…,rt) и полагает биты eij(i = 1,…,t, j = 1,…,t) равными первым lt битам h(m,r1,…,rt);


 

вычисляет для i = 1,…,t.

Искомой подписью для сообщения m является набор (eij, vi | i = 1,…,t, j = 1,…,l)

Для проверки подписи (eij, vi | i = 1,…,t, j = 1,…,l) для сообщения m подписывающий

вычисляет vj = h(I,j) для j = 1,…,l или берет их из общедоступного справочника и сравнивает их с имеющимися в подписи (если обнаружено несовпадение – подпись отвергается);


 

вычисляет для i = 1,…,t.

Подпись принимается тогда  и только тогда, когда первые lt битов h(m,z1,…,zt) равны eij.

Несомненным достоинством схемы  Фмата – Шамира является отсутствие дискретного экспонентрирования, что  делает схему весьма эффективной. Но с другой стороны, в этой схеме длины ключей и подписи значительно больше, чем в схемах типа Эль Гамаля.

Схема стандарта электронной  подписи ANSI США (DSA)

Эта схема аналогична схеме  Эль Гамаля, но несколько эффективнее, так как в ней порядок g меньше, чем в схеме Эль Гамаля. Пусть в открытом доступе имеются некоторые простые числа p,q такие, что q | p-1, а также элемент g порядка q группы Z*q и хэш-функция h, действующая из пространства сообщений в Z*q .Параметры p,q,g и хэш-функция h могут быть выбраны центром обеспечения безопасности. Подписывающий выбирает секрктный ключ x ÎR Zq и вычисляет открытый ключ      y = gx mod p. Для генерации подписи для сообщения m нужно выбрать u ÎR Z*q \{1} и вычислить r = gu mod p mod q и s = u-1 (h(m) +xr) mod q. Параметр u должен быть секретным и может быть уничтожен после вычисления r и s. Если r = 0 или s = 0, то выбираются новое значение  u и процесс генерации подписи повторяется. В противном случае (r,s) – искомая подпись для сообщения m.

Для проверки подписи (r,s) для сообщения m необходимо сначала проверить условие 0 < r < q и 0 < s <q. Если хотя бы одно из них ложно, то подпись отвергается. В противном случае подпись принимается тогда и только тогда, когда          

gvh(m)yvr mod p mod q = r, где v = s-1 mod q.

Схема стандарта  электронной подписи ГОСТ.

Пусть p,q,g,h,x,y имеют тотже смысл, что и в схеме DSA. Для генерации подписи для сообщения m нужно выбрать u ÎR Z*q \{1} и вычислить

r = gu mod p mod q и s = u-1 (h(m) +xr) mod q. Параметр u должен быть секретным и может быть уничтожен после вычисления r и s. Если r = 0 или s = 0, то выбираются новое значение  u и процесс генерации подписи повторяется. В противном случае (r,s) – искомая подпись для сообщения m.

Для проверки подписи (r,s) для сообщения m необходимо сначала проверить условие 0 < r < q и 0 < s <q. Если хотя бы одно из них ложно, то подпись отвергается. В противном случае подпись принимается тогда и только тогда, когда          

gwsy-wr mod p mod q = r, где w = h(m)-1 mod q.

Схема RSA .

В схеме RSA подписывающий выбирает два различных больших простых числа p и q, которые играют роль секретного ключа, и публикует открытый ключ (n,e), где

n = pq, а e – некоторое число, взаимно простое с j(n) = (p-1)(q-1) (j - функция Эйлера). Подписью для сообщения m является s(m) = h(m)d mod n , где

d = e-1 mod j(n)(очевидно, что, зная p и q, можно эффективно вычислить d) и h – хэш-функция. Проверка подписи s для сообщения m состоит в проверке сравнения

se º h(m) (mod n) .

Схема RSA достаточно эффективна и широко используется на практике. Вера в стойкость схемы основана на (гипотетической) трудности задачи факторизации целых чисел.

Глава 3. Хэш-функции.

Хэш-функции  являются необходимым элементом  ряда криптографических схем. Под этим термином понимаются функции, отображающие сообщения произвольной длинны (иногда длинна сообщения ограничена, но достаточно большим числом)  в значения фиксированной длинны. Последние часто называют хэш-кодами. Таким образом, у всякой хэш-функции h имеется большое количество коллизий, т.е. пар значений x ¹ y таких, что h(x) = h(y). Основное требование, предъявляемое к хеш-функциям, состоит в отсутствии эффективных алгоритмов поиска коллизий.

В ряде криптографических  приложений, особенно в схемах электронной цифровой подписи, необходимым элементом является криптографически стойкая

хэш-функция.

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

Информация о работе Современная криптография