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

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

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

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

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

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

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

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

Введение

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

Священные книги Древнего Египта, Древней Индии тому примеры.

С широким распространением письменности криптография стала формироваться как самостоятельная наука. Первые криптосистемы встречаются уже в начале нашей эры. Так, Цезарь в своей переписке использовал уже более менее систематический шифр, получивший его имя.

Бурное развитие криптографические  системы получили в годы первой и  второй мировых войн. Начиная с послевоенного времени и по нынешний день появление вычислительных средств ускорило разработку и совершенствование  криптографических методов.

Почему проблема использования  криптографических методов в  информационных системах (ИС) стала в настоящий момент особо актуальна?

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

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

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

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

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

В четвертой главе будет  рассказано о модернизации электронной  подписи Эль Гамаля и задаче дискретного  логарифмирования.

Глава 1. Основные понятия современной  криптографии

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

Криптография занимается поиском и исследованием математических методов преобразования информации.

Сфера интересов криптоанализа -  исследование возможности расшифровывания информации без знания ключей.

В этой работе  основное внимание будет уделено криптографическим методам.

Современная криптография включает в себя четыре крупных раздела:

Симметричные криптосистемы.

Криптосистемы с открытым ключом.

Системы электронной подписи.

Управление ключами.

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

Криптография  дает возможность преобразовать  информацию таким образом, что ее прочтение (восстановление) возможно только при знании ключа.

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

Алфавит - конечное множество используемых для кодирования информации знаков.

Текст - упорядоченный набор из элементов алфавита.

В качестве примеров алфавитов, используемых в современных ИС можно  привести следующие:

 алфавит Z33 - 32 буквы русского алфавита и пробел;

 алфавит Z256 - символы, входящие в стандартные коды ASCII и КОИ-8;

 бинарный алфавит - Z2 = {0,1};

 восьмеричный алфавит или шестнадцатеричный алфавит;

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

Дешифрование - обратный шифрованию процесс. На основе ключа шифрованный  текст преобразуется в исходный.

Ключ - информация, необходимая для беспрепятственного шифрования и дешифрования текстов.

Криптографическая система  представляет собой семейство T преобразований открытого текста. Члены этого семейства индексируются, или обозначаются символом k; параметр k является ключом. Пространство ключей K - это набор возможных значений ключа. Обычно ключ представляет собой последовательный ряд букв алфавита.

Криптосистемы разделяются  на симметричные и с открытым ключом.

В симметричных криптосистемах и для шифрования, и для дешифрования используется один и тот же ключ.

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

Электронной (цифровой) подписью называется присоединяемое к тексту его криптографическое преобразование, которое позволяет при получении текста другим пользователем проверить авторство и подлинность сообщения.

Криптостойкостью называется характеристика шифра, определяющая его стойкость к дешифрованию без знания ключа (т.е. криптоанализу). Имеется несколько показателей криптостойкости, среди которых:

количество всех возможных  ключей;

среднее время, необходимое  для криптоанализа.

Преобразование Tk определяется соответствующим алгоритмом и значением параметра k. Эффективность шифрования с целью защиты информации зависит от сохранения тайны ключа и криптостойкости шифра.

Требования к криптосистемам

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

Для современных криптографических систем защиты информации сформулированы следующие общепринятые требования:

зашифрованное сообщение  должно поддаваться чтению только при  наличии ключа;

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

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

знание алгоритма шифрования не должно влиять на надежность защиты;

незначительное изменение  ключа должно приводить к существенному  изменению вида зашифрованного сообщения даже при использовании одного и того же ключа;

структурные элементы алгоритма  шифрования должны быть неизменными;

дополнительные биты, вводимые в сообщение в процессе шифрования, должен быть полностью и надежно  скрыты в шифрованном тексте;

длина шифрованного текста должна быть равной длине исходного  текста;

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

любой ключ из множества  возможных должен обеспечивать надежную защиту информации;

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

Глава 2. Протоколы распределения криптографических  ключей и протоколы электронной подписи.

Системы с открытым ключом.

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

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

Суть их состоит в том, что каждым адресатом ИС генерируются два ключа, связанные между собой  по определенному правилу. Один ключ объявляется открытым, а другой закрытым. Открытый ключ публикуется и доступен любому, кто желает послать сообщение адресату. Секретный ключ сохраняется в тайне.

Исходный текст шифруется  открытым ключом адресата и передается ему. Зашифрованный текст в принципе не может быть расшифрован тем же открытым

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

Криптографические системы с открытым ключом используют так называемые  необратимые  или односторонние функции, которые обладают следующим свойством: при заданном значении x относительно просто вычислить значение f(x), однако если y=f(x), то нет простого пути для вычисления значения x.

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

В самом определении необратимости  присутствует неопределенность. Под  необратимостью понимается не теоретическая  необратимость, а практическая невозможность вычислить обратное значение используя современные вычислительные средства за обозримый интервал времени. Поэтому чтобы гарантировать надежную защиту информации, к системам с открытым ключом (СОК) предъявляются два важных и очевидных требования:

1. Преобразование исходного  текста должно быть необратимым  и исключать его восстановление  на основе открытого ключа.

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

Алгоритмы шифрования с открытым ключом получили широкое распространение  в современных информационных системах. Так, алгоритм RSA стал мировым стандартом де-факто для открытых систем и рекомендован МККТТ.

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

Разложение больших чисел  на простые множители.

Вычисление логарифма  в конечном поле.

Вычисление корней алгебраических уравнений.

Алгоритм  Диффи-Хеллмана.

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

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

Если y=ax,, 1 < x < p-1, где  - фиксированный элемент поля GF(p), то x=loga y над GF(p). Имея x, легко вычислить y. Для этого потребуется 2 ln(x+y) операций умножения.

Обратная задача вычисления x из y будет достаточно сложной. Если p выбрано достаточно правильно, то извлечение логарифма потребует вычислений, пропорциональных

L(p) = exp { (ln p  ln ln p)0.5 }

Для обмена информацией первый пользователь выбирает случайное число x1, равновероятное из целых 1,...,p-1. Это число он держит в секрете, а другому пользователю посылает число

y1 = ax1 mod p

Аналогично поступает  и второй пользователь, генерируя x2 и вычислив y2, отправляя его первому пользователю.

В результате этого они  могут вычислять  k12 = ax1x2 mod p.

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

Не зная x1  и x2, злоумышленник может попытаться вычислить k12, зная только перехваченные y1  и y2. Эквивалентность этой проблемы проблеме вычисления дискретного логарифма есть главный и открытый вопрос в системах с открытым ключом. Простого решения до настоящего времени не найдено. Так, если для прямого преобразования 1000-битных простых чисел требуется 2000 операций, то для обратного преобразования (вычисления логарифма в поле Галуа) - потребуется около 1030 операций.

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