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

Автор работы: Пользователь скрыл имя, 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 Кб (Скачать файл)

      yk = (х2 + 10х + 12) 2134  (mod f(x)) = 3х2 =(3  0  0)

      δ = m1 · yk = (3 8 8 11)· (3  0  0)=  6х2 + 3х + 8 = (6 3 8).

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

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

  1. Пользуясь своим секретным ключом a, адресат В вычисляет следующие элементы группы

γ a = (3 0 0)2 = (3х2) (mod f(x)) = 3х2 = (3  0  0),

γ – a = (γ a ) – 1 = (3  12) .

  1. Вычислить m1 = (γ – a · δ) == 11х2 + 17х + 9 = (9 8 7)
  2. Чтобы получить текст t по элементу m, адресат В производит следующие вычисления.

m1 = (9 8 7)31 = 5*352 + 76*32 + 3 = 877810 = (5  76  3)27  , откуда текст

t =KAL. 
 

      1. Электронная цифровая подпись  Эль-Гамаля с общим полем Галуа

Вычислить и проверить подпись под сообщением с помощью (обобщенной) криптосистемы  ЭльГамаля для электронной подписи над (конечным) полем Галуа GF(pm). Взять простое число р = 31, натуральное

m = 3. Неприводимый полином над р взять из задачи 27. В качестве исходного текста взять слова своего полного имени: фамилия, имя, отчество.

   6х3 + 6,   р = 31,     m = 3,    t = KMN. 

Решение:

     Схема электронной цифровой подписи  ЭльГамаля, основанная на мультипликативной группе *р , может быть обобщена на любую конечную абелеву группу G. Алгоритм подписи использует криптографическую хэш – функцию h: {0, 1}*→ n , где n есть число элементов в G. Предполагается, что каждый элемент r из G может быть представлен в бинарной записи f(r) c тем, чтобы можно было вычислить значение хэш – функции h(f(r)).

     Алгоритм вычисления хэш – функции публикуется.

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

     При использовании схемы цифровой  подписи ЭльГамаля по тексту письма t вычисляется значение хэш – функции h(t), которое затем используется при вычислении и проверке цифровой подписи под текстом письма. 

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

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

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

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

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

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

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

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

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

     3.  Вычислить целое число  k – 1 (mod (n)).

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

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

     6.  Вычислить число m = k – 1 (h(t) ar(r)) (mod (n)).

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

 

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

  1. Вычислить значение хэш – функции h(t).
  2. Получить открытый ключ (α, y) для адресата А.
  3. Вычислить значение хэш – функции h(r).
  4. Вычислить в группе G элементы: v1 = yh(r) rm, v2 = αh(t).
  5. Принять подпись, если v1 = v2 и опровергнуть в противном случае.
 

     Схема электронной (цифровой) подписи  ЭльГамаля с мультипликативной группой конечного поля |Fpm , р = 31, m = 3. Пусть для удобства элемент поля а2 х2 + а1 х + а представляется р – ричной стрингом (а2 а1 а0). 

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

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

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

     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х + 25 = (1  10  25) группы G.

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

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

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

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

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

     3.  Вычисляет целое число  k – 1 (mod (n)) = 1579 – 1 (mod 923520) = 5869.

     4.  Вычисляет в группе G элемент r = αk = (0 1 5)1579 = (х + 5)1579 (mod f(x)) = = (2  0  10).

     5.  Вычисляет значение хэш – функции h(r), например, следующим образом. По r = (2  0  10) вычисляет в n 10-ричное число (2  0  10)31 = 2х2 + 0х + 10 = 2*312 + 0*31 + 10 = 355210. Пусть для примера h(r) = 193210.

     6.  Вычисляет в  n число m = k – 1 (h(t) ah(r)) (mod (n)) = 1579 – 1 · (1550 – - 2*3552) (mod (n)) = 23624.

    7.  Подпись адресата А под его текстом t есть пара(r=(3 21 18), m=2362410). 

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

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

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

   3.  Вычислить значение хэш – функции h(r). Если вектор r не менялся, то h(r) = 193210.

  1. Вычислить в группе G элементы:

v1 = yh(r) r= (28 15 26)3552 (2 0 10)23624 =(28х2 + 15х +26)3552 · (2х2 + 0х + 10)23624   (mod (f(x))) = (21  8  12),

v2 = αh(t) = (0  1  5)1550  = (x + 5)1550  (mod (f(x))) = (21  6  27).

  1. Так как v1 = v2 , то В принимает подпись адресата А.
    1. КРИПТОГРАФИЧЕСКАЯ СИСТЕМА DSA
      1. Электронная цифровая подпись DSA

DSA (Digital Signature Algorithm) — алгоритм с использованием открытого ключа для создания электронной подписи, но не для шифрования (в отличие от RSA и схемы Эль-Гамаля). Подпись создается секретно, но может быть публично проверена. Это означает, что только один субъект может создать подпись сообщения, но любой может проверить её корректность. Алгоритм основан на вычислительной сложности взятия логарифмов в конечных полях.

(Задача  29.6)

     Вычислить и проверить подпись  под сообщением с помощью криптосистемы  DSA (Digital Signature Algorithm) для электронной подписи. Простые числа p и q определяются вариантом задания. В качестве исходного текста взять слова своего полного имени: фамилия, имя, отчество.

     р = 324733,     q = 27061,     t = KAL 

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

  1. Выбрать простое число q, 2159  < q < 2160 .
  2. Выбрать число t, 0 ≤ t ≤ 8, и простое число р, 2511 + 64 t  < p < 2512 + 64 t  такое, что q делит p – 1.
  3. Найти генератор α *р для циклической подгруппы порядка q в группе *р . Для этого адресат должен выполнить следующее.
    1. Выбрать элемент g *р и найти α = g(p – 1)/q (mod p).
    2. Если α = 1, то перейти к шагу 3.1 с другим g.
  4. Выбрать произвольное число а, 1 ≤ а ≤ q – 1.
  5. Вычислить y = α a (mod p).
  6. Открытый ключ адресата есть (p, q, α, y); секретный ключ адресата есть число а.
 

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

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