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

Автор работы: Пользователь скрыл имя, 01 Мая 2012 в 11:33, курсовая работа

Описание работы

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

Содержание работы

ВВЕДЕНИЕ 2
1. КРИПТОГРАИЧЕСКАЯ СИСТЕМА RSA 2
1.1. Криптосистема RSA 2
1.2. Электронная цифровая подпись RSA с возвратом сообщения 2
1.3. Электронная цифровая подпись RSA с hash-функцией 2
2. КРИПТОГРАФИЧЕСКАЯ СИСТЕМА ЭЛЬ-ГАМАЛЯ С ПРОСТЫМ ПОЛЕМ ГАЛУА 2
2.1. Шифросистема Эль-Гамаля с простым полем Галуа 2
2.2. Электронная цифровая подпись Эль-Гамаля с простым полем Галуа 2
3. КРИПТОГРАФИЧЕСКАЯ СИСТЕМА ЭЛЬ ГАМАЛЯ С ОБЩИМ ПОЛЕМ ГАЛУА 2
3.1. Шифросистема Эль-Гамаля с общим полем полем Галуа 2
3.2. Электронная цифровая подпись Эль-Гамаля с общим полем Галуа 2
4. КРИПТОГРАФИЧЕСКАЯ СИСТЕМА DSA 2
4.1. Электронная цифровая подпись DSA 2
5. MATHCAD ПРОГРАММНЫЙ ПРОЦЕССОР 2
6. ПРИМЕРЫ ИСПОЛЬЗУЕМЫХ MATHCAD-ПРОГРАММ 2
6.1. Криптосистема RSA 2
6.2. Электронная цифровая подпись RSA с возвратом сообщения 2
6.3. Электронная цифровая подпись RSA с hash-функцией 2
6.4. Шифросистема Эль-Гамаля с простым полем Галуа 2
6.5. Электронная цифровая подпись Эль-Гамаля с простым полем Галуа 2
6.6. Шифросистема Эль-Гамаля с общим полем полем Галуа 2
6.7. Электронная цифровая подпись Эль-Гамаля с общим полем Галуа 2
6.8. Электронная цифровая подпись DSA 2
ЛИТЕРАТУРА 2

Файлы: 1 файл

Курсовик криптография.docx

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

     2.  Выбрать произвольное число  a, 1 ≤ a р – 1.

     3.  Вычислить y = αa (mod p).

     4. Открытый ключ адресата есть  тройка чисел (p, α, y). Секретный ключ адресата есть число a. 

     Вычисление подписи. Адресат А подписывает свой текст t (произвольной длины). Любой адресат B может проверить подпись адресата A под его текстом t. Адресат A должен выполнить следующее.

  1. Вычислить значение хэш – функции h(t).

     2. Выбрать случайное секретное  целое число k из [1, p – 2] такое, что нод(k, p – 1) = 1.

     3.  Вычислить k – 1 (mod (p – 1)).

     4.  Вычислить r = αk (mod p).

     5.  Вычислить s = k – 1 (h(t) ar) (mod (p – 1)).

     6.  Подпись адресата А под его текстом t есть пара (r, s). 

     Проверка подписи. Чтобы проверить подпись (r, s) адресата A под его текстом t, адресат B должен выполнить следующее.

  1. Вычислить значение хэш – функции h(t).
  2. Получить открытый ключ (p, α, y) адресата А.
  3. Проверить, что r [1, p – 1]; если нет, отвергнуть подпись.
  4. Вычислить v1 = yr rs (mod p).
  5. Вычислить v2 = αh(m)(mod p).
  6. Принять подпись, если v1 = v2 и опровергнуть в противном случае.
 

    Решение:

    Адресат А подписывает свой текст t. Любой адресат В может проверить подпись А.

Вычисление  ключей. Адресат А выполняет следующее.

     1.  Выбирает простое число  p = 5783  и находит генератор α = 7 мультипликативной группы  *р целых чисел по модулю р.

     2.  Выбрать случайное целое  a = 3564, 1 ≤ a р – 1.

     3.  Вычисляет y = αa (mod p) = 73564 (mod 5783) = 1366.

     4. Открытый ключ адресата A есть тройка чисел (p = 5783, α = 7, y = 1366). Секретный ключ адресата A есть число a =3564. 

Вычисление  подписи. Адресат А подписывает свой текст t и для этого выполняет следующее.

  1. Вычисляет значение хэш – функции h(t). Пусть h(t) =8058.

     2. Выбрать случайное секретное  целое число k = 1577 из [1, p – 2] такое, что нод(k, p – 1) = 1.

     3.  Вычислят k – 1 (mod (p – 1)) = 1577 – 1 (mod 5783) = 111.

     4.  Вычисляет r = αk (mod p) = 71577 (mod 5783) = 605.

     5.  Вычисляет s = k – 1 (h(t) ar) (mod (p – 1)) = 1252

    6.  Подпись адресата А есть пара (r = 605, s = 1252). 

     Проверка подписи. Чтобы проверить подпись (r = 605, s = 1252) адресата A под его текстом t, адресат B должен выполнить следующее.

  1. Вычисляет значение хэш – функции h(t). Если текст t не изменялся, то h(t) =8058.
  2. Получает открытый ключ ((p = 5783, α = 7, y = 1366)адресата А.
  3. Проверяет, что r  = 605 [1, p – 1] = [1, 5783].
  4. Вычисляет число v1 = yr rs (mod p) = 13665032 6053825 (mod 5783) = 2311.
  5. Вычисляет число v2 = αh(t)(mod p) = 78058  (mod 5783) = 2311.
  6. Принимает подпись, ибо если v1 = v2 .
 

         Для Криптографической стойкости  рекомендуется брать р длиной между 512 бит (лучше 768) и 1024 бит включительно.

    Все вышеперечисленные вычисления и  рассуждения отражены в пункте 5.5, который представляет собой код  соответствующей MathCAD – программы. 
     

    1. КРИПТОГРАФИЧЕСКАЯ СИСТЕМА ЭЛЬ ГАМАЛЯ С ОБЩИМ ПОЛЕМ  ГАЛУА
      1. Шифросистема Эль-Гамаля с общим полем полем Галуа

Зашифровать и расшифровать сообщение с помощью (обобщенной) криптосистемы ЭльГамаля над (конечным) полем Галуа GF(pm). Взять простое число р = 31, натуральное m = 3. Неприводимый полином над р определяется номером варианта. В качестве исходного текста взять три первые латинские буквы своей фамилии.

   23х3 + 6,   р = 31,     m = 3,    t =KAL. 

Решение:

     Числовая схема шифрования ЭльГамаля может быть обобщена для работы в любой конечной циклической группе G . Криптографическая стойкость схемы ЭльГамеля в группе G основана на трудности решения проблемы дискретного логарифма в G. Группа G должна удовлетворять следующим условиям.

  1. Эффективность, то есть групповые операции в G должны вычисляться относительно просто. 
  2. криптографическая стойкость, то есть решение проблемы дискретного логарифма в G должно быть практически неосуществимой.

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

     1.  Мультипликативная группа  *р целых чисел по модулю простого числа р.

     2.  Мультипликативная группа  *2s конечного поля  2s характеристики два.

     3.  Группа точек эллиптической  кривой над конечным полем.

     4.  Мультипликативная группа  *q конечного поля |Fq , где q = p s , р есть простое число, s есть положительное простое число.

     5.  Группа обратимых элементов  *n , где n есть составное целое число. 

     6.  Якобиан гиперэллиптической  кривой над конечным полем.

     7.  Класс групп мнимого квадратичного  числового поля (imaginary quadratic number field). 

Адресат А шифрует свой текст t и отсылает шифротекст адресату В. В дешифрует сообщение от А и получает исходный текст t. 

Вычисление  ключей. Каждый адресат создает свой открытый ключ и ему соответствующий секретный ключ. Далее адресат должен выполнить следующее.

     1. Выбрать подходящую (мультипликативную)  циклическую группу G порядка n.

     2.  Найти генератор α группы G.

     3.  Выбрать случайное целое  число a, 1 ≤ a n – 1.

     4.  Вычислить элемент y = αa группы G.

     5. Открытый ключ адресата есть  пара чисел (α, y) элементов группы G. Открыто также описание умножения элементов в G. Секретный ключ адресата есть число a. 

Шифрование. Адресат А шифрует свой текст t и отправляет шифротекст адресату В. Адресат А должен выполнить следующее.

     1. С помощью какого – либо  метода М, который публикуется, представить свое письмо t как элемент m группы G.

     2. Получить открытый ключ (α, y) адресата В.

     3. Выбрать случайное целое число  k, 1 ≤ kn – 1.

     4. Вычислить γ = αk и δ = m · yk .

     5. Отправить свой шифротекст c = (γ, δ) адресату В.

 

Дешифрование. Чтобы получить исходный текст t по c = (γ, δ), адресат В должен выполнить следующее.

  1. Взять свой секретный ключ a и вычислить целое число γ – a и найти γ – a = (γ a ) – 1.
  2. Вычислить m = (γ – a · δ).
  3. Вычислить исходный текст t от А с помощью метода M.
 

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

     Адресат А подписывает свой текст t = KAL и отправляет шифротекст адресату В. В дешифрует сообщение от А и получает исходный текст t. 

Вычисление  ключей. Адресат В выполняет следующее.

     1. Выбирает мультипликативную группу  G конечного поля (Е331 , {+, }), элементы которого представляются полиномами из 31 [х] над 31  степени меньше 3 и умножение в котором выполняется по модулю неприводимого полинома f(x) = (23  0  0  6) = 23х3 + 6 из 35 [х]. Группа G имеет порядок

n = pm – 1 = 313 – 1 = 2196.

     2.  Находит генератор α = х + 5 = (0  1  5) группы G.

     3.  Выбрать случайное целое  число a = 2, 1 ≤ a n – 1.

     4.  Вычислить элемент y = αa (mod f(x)) = (х + 5)2 (mod f(x)) = х2 + 10х + 12 = (1  10  12) группы G.

     5. Открытый ключ адресата для В есть пара чисел (α = (0  1  5),

y = (1  10  12)) вместе с полиномом f(x), который определяет умножение в G, если f(x) и α не есть параметры, общие всем адресатам. Секретный ключ для В есть число a = 2. 

Шифрование. Адресат А шифрует свой текст t и отправляет шифротекст адресату В. Адресат А должен выполнить следующее.

     1. Представляет свой текст  t = KAL как элемент m1 группы G. Чтобы зашифровать письмо t, адресат А кодирует текст t каким – либо способом, например, в 27 – ричной системе счисления 10 – ричным числом

u = 5 * 272 + 76 * 27 + 3 = 877810 , а затем вычисляет 31 – ричное представление числа u в виде сообщения m1 = (3 8 8 11)31 , рассматриваемом как полином 5х2 + 76х + 3из 31 [х].

     2. Получить открытый ключ (α = (0  1  5), y = (1  10  12)) адресата В.

     3. Выбрать случайное целое число  k = 2134, 1 ≤ kn – 1.

     4. Вычислить γ = αk = (х + 5) 2134 (mod f(x)) = 12х2 + 7х + 3 = (12  6  3),

Информация о работе Криптография с открытым ключом