Программная реализация методы шифрования Цезаря и Вижинера

Автор работы: Пользователь скрыл имя, 23 Декабря 2013 в 20:24, курсовая работа

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

Историческим примером шифра замены является шифр Цезаря (1 век до н.э.), описанный историком Древнего Рима Светонием. Гай Юлий Цезарь использовал в своей переписке шифр собственного изобретения. Применительно к современному русскому языку он состоял в следующем. Выписывался алфавит: А, Б, В, Г, Д, Е, ..., ; затем под ним выписывался тот же алфавит, но со сдвигом на 3 буквы влево.
Таким образом, можно утверждать, что основы криптологии были заложены еще в древности и, естественно, после многовекового развития нашли широкое применение в современной жизни.

Содержание

1. ВВЕДЕНИЕ……………………………………………………………………………………..3
1.1. Исторические основы криптологии………………………………………………… 4
1.2. Криптология в современном мире………………………………………………………..5
2. Криптология 7
2.1. Основные понятия криптологии 7
2.2. Требования к криптосистемам . 9
2.3. Симметрические криптосистемы………………………………………………………...10
2.3.1. Метод Цезаря………………………………………………………………………….12
2.3.2. Системы шифрования Вижинера…………………………………………………… 13
2.3.3. Гаммирование………………………………………………………………………….14
2.4. Криптография с открытым ключом………………………………………………………15
2.4.1. Система RSA…………………………………………………………………………..17
2.4.1.1. Генерация ключа………………………………………………………………….17
2.4.1.2. Шифрование/дешифрование……………………………………………………..18
2.4.2. Алгоритм Эль-Гамаля…………………………………………………………….…..19
2.4.2.1. Общие сведения…………………………………………………………………..19
2.4.2.2. Шифрование сообщений…………………………………………………………20
3. ПРАКТИЧЕСКОЕ ПРИМЕНЕНИЕ КРИПТОЛОГИИ…………………………………21
3.1. Цифровая подпись………………………………………………………………………...21
3.1.1. Общие положения…………………………………………………………………….21
3.1.2. Алгоритм DSA………………………………………………………………………...23
3.2. Алгоритм DES………………………………………………………………………….…25
3..2.1. Генерация ключа……………………………………………………………………..25
4. ПОСТАНОВКА И РЕШЕНИЕ ЗАДАЧИ………………………………………………….26
4.1. Краткая характеристика среды Visual Studio 2010………………………………….....26
4.2. Алгоритм решения задачи…………………………………………………………….....27
4.2.1. Модуль программы…………………………………………………………………..27
4.2.2. Модуль шифровании/дешифрования……………………………………………….27
4.2.3. Процедура кодирования символа…………………………………………………...30
4.3. Результаты работы программы……………………………………… ………………….31
ЗАКЛЮЧЕНИЕ…………………………………………………………………………………33
СПИСОК ЛИТЕРАТУРЫ……………………………………………………………………..34

Прикрепленные файлы: 1 файл

Программная реализация методы шифрования.doc

— 2.41 Мб (Скачать документ)

 

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

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

 следующие общепринятые требования:

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

Блочные шифры  представляют собой последовательность (с возможным повторением и чередованием) основных методов преобразования, применяемую к блоку (части) шифруемого текста. Блочные шифры на практике встречаются чаще, чем “чистые” преобразования того или иного класса в силу их более высокой криптостойкости, а также потому, что этот метод позволяет шифровать тексты практически любой длины, разбивая их на блоки. Российский и американский стандарты шифрования основаны именно на этом классе шифров.

 

2.3.1. Метод Цезаря

Метод Цезаря является самым  простым вариантом шифрования.

Он назван по имени римского императора Гая Юлия Цезаря, который поручал Марку Туллию Цицерону составлять послания с использованием 50-буквенного алфавита, сдвигая его на 3 символа вперед.

Подстановка определяется по таблице замещения, содержащей пары соответствующих букв “исходный текст – шифрованный текст”.

Например, ВЫШЛИТЕ_НОВЫЕ_УКАЗАНИЯ посредством подстановки  преобразуется  в

еюыолхиврсеюивцнгкгрлб.

 

Таблица 1.1: Применение подстановки  Цезаря.

Аàг

Йàм

Тàх

Ыàю

Бàд

Кàн

Уàц

Ьàя

Вàе

Лàо

Фàч

Эà_

Гàж

Мàп

Хàш

Юàа

Дàз

Нàр

Цàщ

Яàб

Еàи

Оàс

Чàъ

_àв

Жàй

Пàт

Шàы

 

Зàк

Рàу

Щàь

 

Иàл

Сàф

Ъàэ

 

 

При своей несложности  система легко уязвима. Если злоумышленник  имеет 

1) шифрованный и соответствующий  исходный текст или 

2) шифрованный текст  выбранного злоумышленником исходного текста,

то определение ключа  и дешифрование исходного текста тривиальны.

Эту систему не представляет труда взломать с помощью современной  вычислительной

техники, используя простой  перебор. Поэтому криптостойкость этого метода не велика.

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

 

2.3.2. Системы шифрования Вижинера

Метод Вижинера является следствием подстановки Цезаря. В  системе Вижинера задается некая конечная последовательность ключа

k = (k0 ,k1 ,...,kn),

которая называется ключом пользователя, она продолжается до бесконечной последовательности, повторяя цепочку. Таким образом, получается  рабочий ключ

Например, при ключе  пользователя 15 8 2 10 11 4 18 рабочий ключ будет периодической последовательностью:

15 8 2 10 11 4 18 15 8 2 10 11 4 18 15 8 2 10 11 4 18 ...

Таким образом: 

При длине пользовательского ключа  R

1) исходный текст x делится на R фрагментов 

xi = (xi , xi+r , ..., xi+r(n-1)), 0 £ i < r;

2) i-й фрагмент исходного  текста xi шифруется при помощи подстановки Цезаря в зависимости от пользовательского ключа :

(xi , xi+r , ..., xi+r(n-1)) ® (yi , yi+r , ..., yi+r(n-1)),

Очень распространена плохая с точки зрения секретности практика использовать слово или фразу в качестве ключа для того, чтобы k=(k0 ,k1 ,...,kк-1) было легко запомнить. В информационных системах для обеспечения безопасности информации это недопустимо. Для получения ключей должны использоваться программные или аппаратные средства случайной генерации ключей.

Пример. Преобразование текста с помощью подстановки  Вижинера (r=4)

Исходный текст (ИТ1):

НЕ_СЛЕДУЕТ_ВЫБИРАТЬ_НЕСЛУЧАЙНЫЙ_КЛЮЧ

Ключ: КЛЮЧ

Разобьем исходный текст  на блоки по 4 символа:

НЕ_С ЛЕДУ ЕТ_В ЫБИР АТЬ_ НЕСЛ УЧАЙ НЫЙ_ КЛЮЧ

и наложим на них ключ (используя таблицу Вижинера):

H+К=Ч, Е+Л=Р и т.д.

Получаем зашифрованный (ЗТ1) текст:

ЧРЭЗ ХРБЙ ПЭЭЩ ДМЕЖ КЭЩЦ ЧРОБ ЭБЮ_ ЧЕЖЦ ФЦЫН

Криптостойкость метода резко убывает с уменьшением  длины ключа.

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

 

2.3.3. Гаммирование

Гаммирование является также широко применяемым криптографическим  преобразовани-

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

Принцип шифрования гаммированием заключается в генерации гаммы шифра с помощью

 датчика псевдослучайных  чисел и наложении полученной  гаммы на открытые данные обратимым образом.

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

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

Метод гаммирования становится бессильным, если злоумышленнику становится известен фрагмент исходного текста и соответствующая ему шифрограмма. Простым вычитанием по модулю получается отрезок ПСП и по нему восстанавливается вся последовательность. Злоумышленники может сделать это на основе догадок о содержании исходного текста. Так, если большинство посылаемых сообщений начинается со слов “СОВ.СЕКРЕТ-НО”, то криптоанализ всего текста значительно облегчается. Это следует

 учитывать при создании  реальных систем информационной  безопасности.

2.4. Криптография с  открытым ключом

В 1976 г. У. Диффи и М. Хеллманом был предложен новый тип криптографической системы - система с открытым ключом [public keycryptosystem]. В схеме с открытым ключом имеется два ключа, открытый [public] и секретный [private, secret], выбранные таким образом, что их последовательное применение к массиву данных оставляет этот массив без изменений. Шифрующая процедура использует открытый ключ, дешифрующая - секретный. Дешифрование кода без знания секретного ключа практически неосуществимо; в частности, практически неразрешима задача вычисления секретного ключа по известному открытому ключу. Основное преимущество криптографии с открытым ключом - упрощенный механизм обмена ключами. При осуществлении коммуникации по каналу связи передается только открытый ключ, что делает возможным использование для этой цели обычного канала и устраняет потребность в специальном защищенном канале для передачи ключа.

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

Информация о работе Программная реализация методы шифрования Цезаря и Вижинера