Криптология. Методы шифрования информации

Автор работы: Пользователь скрыл имя, 14 Февраля 2012 в 20:44, курсовая работа

Описание

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

Содержание

1 Введение 2
1.1 Исторические основы криптологии 2
1.2 Криптология в современном мире 3
2 Криптология 4
2.1 Основные понятия криптологии 4
2.2 Требования к криптосистемам 7
2.3 Симметрические криптосистемы 8
2.3.1 Метод Цезаря 9
2.3.2 Системы шифрования Вижинера 11
2.3.3 Гаммирование 12
2.4 Криптосистемы с открытым ключом 13
2.4.1 Система RSA 15
2.4.2 Алгоритм Эль-Гамаля 17
3 Практическое применение криптологии 19
3.1 Цифровая подпись 19
3.1.1 Общие положения 19
3.1.2 Алгоритм DSA 20
3.2 Алгоритм DES 22
4 Постановка задачи 24
5 Реализация задачи 24
5.1 Краткая характеристика среды Delphi 7 24
5.2 Алгоритм решения задачи 24
5.2.1 Модули программы 25
5.2.2 Модуль шифровки/дешифровки 25
5.2.3 Процедура кодирования символа 26
5.3 Таблица сообщений 26
6 Заключение 26
7 Список литературы: 28

Работа состоит из  1 файл

КурсОВАЯ.doc

— 187.50 Кб (Скачать документ)
  1. Практическое  применение криптологии
    1. Цифровая  подпись
      1. Общие положения

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

  • Гарантирование истинности письма путем сличения подписи с имеющимся образцом;
  • Гарантирование авторства документа ( с юридической точки зрения)

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

  • подпись аутентична, то есть с ее помощью получателю документа можно доказать, что она принадлежит подписывающему;
  • подпись неподделываема; то есть служит доказательством, что только тот человек, чей автограф стоит на документе, мог подписать данный документ, и никто иной.
  • Подпись непереносима, то есть является частью документа и поэтому перенести ее на другой документ невозможно.
  • Документ с подписью является неизменяемым.
  • Подпись неоспорима.
  • Любое лицо, владеющее образцом подписи может удостовериться, что документ подписан владельцем подписи.
  • Развитие современных средств безбумажного документооборота, средств электронных платежей немыслимо без развития средств доказательства подлинности и целостности документа. Таким средством является электронно-цифровая подпись (ЭЦП), которая сохранила основные свойства  обычной подписи.

      Существует несколько методов  построения ЭЦП, а именно:

  • шифрование электронного документа (ЭД)  на основе симметричных  алгоритмов. Данная схема предусматривает наличие в системе третьего лица – арбитра, пользующегося доверием обеих сторон. Авторизацией документа в данной схеме является сам факт шифрования ЭД секретным ключом и передача его арбитру.
  • Использование ассиметричных алгоритмов шифрования. Фактом подписания документа является шифрование его на секретном ключе отправителя.
  • Развитием  предыдущей идеи стала наиболее распространенная схема ЭЦП – шифрование окончательного результата обработки ЭД хеш-функцией при помощи ассиметричного алгоритма.

    Кроме перечисленных, существуют и другие методы построения схем ЭЦП

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

      1. Алгоритм  DSA

    В 1991 г. в США был опубликован  проект федерального стандарта цифровой подписи - DSS (Digital Signature Standard, [DSS91], описывающий систему цифровой подписи DSA (Digital Signature Algorithm). Одним из основных критериев при создании проекта была его патентная чистота.

    Предлагаемый  алгоритм DSA, имеет, как и RSA, теоретико-числовой характер, и основан на криптографической системе Эль-Гамаля в варианте Шнорра. Его надежность основана на практической неразрешимости определенного частного случая задачи вычисления дискретного логарифма. Современные методы решения этой задачи имеют приблизительно ту же эффективность, что и методы решения задачи факторизации; в связи с этим предлагается использовать ключи длиной от 512 до 1024 бит с теми же характеристиками надежности, что и в системе RSA. Длина подписи в системе DSA меньше, чем в RSA, и составляет 320 бит.

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

    Функции DSA ограничены только цифровой подписью, система принципиально не предназначена  для шифрования данных. По быстродействию система DSA сравнима с RSA при формировании подписи, но существенно (в 10-40 раз) уступает ей при проверке подписи.

        1. Генерация ЭЦП

    При генерации  ЭЦП используются параметры  трех групп:

    общие параметры

    секретный ключ

    открытый  ключ

    Общие параметры необходимы для функционирования системы в целом. Секретный ключ используется для формирования ЭЦП, а открытый – для проверки ЭЦП. Общими параметрами системы являются простые целые числа p,q,g, удовлетворяющие следующим условиям:

      p: 2^511<p<2^512

    q: простой делитель числа (p-1), который  удовлетворяет условию 

    2^159<q<2^160

    g: так называемый генератор, удовлетворяющий 

    равенству g=h^((p-1)/q)mod p >1.

    Параметры p,q,g публикуются для всех участников обмена  ЭД  с ЭЦП.

    Секретный ключ x случайно выбирается из диапазона [1,q] и держится в секрете.

    Открытый  ключ вычисляется:  y=g^x mod p.

    Также при описании данной схемы будут  использоваться следующие обозначения  и дополнительные параметры: m –  входное сообщение пользователя для схемы с ЭЦП;  k -  случайное число, удовлетворяющее условию  0<k<q, хранящееся в секрете и меняющееся от одной подписи к другой; H – хэш-функция, h – хэш-код сообщения.

    Процесс генерации ЭЦП состоит из нескольких этапов:

    1.Вычисляется  хэш-код сообщения m h=H(m)

    2.Из  диапазона [1,q] случайным образом выбирается значение k и вычисляется r= (g^k mod p) mod q

    3. Вычисляется S= (k^-1(h+xr)) mod q, где k^-1 удовлетворяет условию

      (k^-1*k) mod q =1

    Значения r,s являются ЭЦП сообщения m  и  передаются вместе с ним по каналам  связи.

        1. Проверка ЭЦП

    Пусть принято сообщение m1 и его подпись s1,r1.

    Проверка  ЭЦП происходит следующим образом:

  • проверяется выполнение условий 0<r1<q, 0<s1<q, и если хотя бы одно из них нарушено, подпись отвергается.
  • Вычисляются значения:

    w= s1^-1 mod q

    u1 = (H(m1)w) mod q

    u2 = ((r1/w) mod q

    v = (( g^u1y^u2) mod p ) mod q

  • проверяется равенство v = r1

    Если  последнее равенство выполняется, то подпись принимается. В данном стандарте специфицируется также  процедура генерации основных параметров системы и проводится доказательство того, что если v=r1, то m1=m, r1=r, s1=s.

    1. Алгоритм  DES

    Принятие  стандарта шифрования DES явилось  мощным толчком к широкому применению шифрования в коммерческих системах. Введение этого стандарта - отличный пример унификации и стандартизации средств защиты. Примером системного подхода к созданию единой крупномасштабной системы защиты информации является директива Министерства финансов США 1984 года, согласно которой все общественные и частные организации, ведущие дела с правительством США, обязаны внедрить процедуру шифрования DES; крупнейшие банки Citibank,Chase Manhattan Bank, Manufaktures Hannover Trust, Bank of America, Security Pacific Bank также внедрили эту систему.

    Министерство  энергетики США располагает более  чем 30 действующими сетями, в которых используется алгоритм DES, Министерство юстиции устанавливает 20000 радиоустройств, располагающих средствами защиты на базе DES. Стандартизация в последнее время приобретает международный характер, подтверждение тому - международный стандарт 1987 года ISO 8372, разработанный на основе криптоалгоритма DES.

    В качестве стандартной аппаратуры шифрования можно назвать устройство Cidex-НХ, базирующееся на алгоритме DES; скорость шифрования - от 56 Кбит/с до 7 Мбит/с. Серийно выпускается автономный шифровальный блок DES 2000, в нем также используется процедура шифрования DES; скорость шифрования - от 38,4 Кбит/с до 110 Кбит/с. В различных секторах коммерческой деятельности используется процессор шифрования/дешифрования данных FACOM 2151А на основе алгоритма DES; скорость - от 2,4 Кбит/с до 19,2 Кбит/с. С распространением персональных компьютеров наиболее эффективными для них стали программные средства защиты. Так, разработан пакет программ для шифрования/дешифрования информации СТА (Computer Intelligence Access), реализующий алгоритм DES. Этот же алгоритм использован в пакете SecretDisk (C F Systems) для исключения несанкционированного доступа к дискам.

    Таким образом, алгоритм DES представляет собой  основной механизм, применявшийся частными и государственными учреждениями США для защиты информации. В то же время Агентство национальной безопасности, выступающее как эксперт по криптографическим алгоритмам, разрабатывает новые алгоритмы шифрования данных для массового использования. В 1987 году Национальное бюро стандартов после обсуждения подтвердило действие DES; его пересмотр намечалось провести не позднее января 1992 года, и на сегодняшний день действие DES ограничивается исключительно коммерческими системами.

  1. Постановка  задачи

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

  1. Реализация  задачи
    1. Краткая характеристика среды  Delphi 7

    Среда программирования Delphi 7 позволяет реализовать поставленную задачу со всеми необходимыми требованиями. В среде используется язык Object Pascal. Delphi 7 является объектно-ориентированной средой, что упрощает создание единообразного интерфейса и ввод-вывод информации из файла.

    1. Алгоритм  решения задачи

    Программа представляет собой шифровщик и дешифровщик одновременно.

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

Берутся первые цифры из 1-го, 2-го,3-го блоков, и в зависимости от 3-го блока  над ними производятся операции сложения или умножения. Затем берется  следующая цифра 3-го блока, после полного завершения цикла по 3-му блоку берется следующая цифра из второго блока и т.д. Гаммирование завершается после прохождения по циклу последней цифры 1-го блока. Результатом является код, состоящий из 1000 независимых, неповторяющихся и незакономерных цифр. Шифр, возможно, вскрыть только полным перебором, что обеспечивает достаточную криптоустойчивость.

      1.  Модули  программы

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

     Опишем  лишь модули, отвечающие непосредственно за шифрование.

      1. Модуль  шифровки/дешифровки
 
 

       
 
 

      
 
 
 
 
 
 
 
 
 
 

s1:=memo1.Text;

  k:=length(s);

  k1:=length(s1);

  k3:=length(s3);

  k5:=length(s5);

  m:=1;

  m3:=1; m5:=1;

  for i:=1 to k1 do

  begin

   q:=false; 

   i5:=strtoint(s[m]);

   i2:=strtoint(s3[m3]);

   i3:=strtoint(s5[m5]);

   i1:=kod(i5,i2,i3);

   if i1=0 then i1:=10;

   case s1[i] of

   'a'..'z':begin c1:=perevod(s1[i],i1,96,122); q:=true; end;

   'A'..'Z':begin c1:=perevod(s1[i],i1,64,90); q:=true; end;

   'А'..'Я':begin c1:=perevod(s1[i],i1,191,223); q:=true; end;

Информация о работе Криптология. Методы шифрования информации