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

Автор работы: Пользователь скрыл имя, 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 Кб (Скачать файл)
  1. Вычисляет значение хэш – функции h(t).
  2. Выбрать произвольное секретное число k, 0 < k < q.
  3. Вычислить k – 1 (mod q).
  4. Вычислить r = (αk (mod p)) (mod q).
  5. Вычислить s = k – 1 (h(t) + ar) (mod q).
  6. Подпись адресата А есть пара чисел (r, s).

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

  1. Вычислить значение хэш – функции h(t).
  2. Взять открытый ключ (p, q, α, y) адресата А.
  3. Проверить, что 0 < r < q  и 0 < s < q. Если нет, то отвергнуть подпись.
  4. Вычислить w = s – 1 (mod q)  и h(m).
  5. Вычислить u1 = w · h(m) (mod q)  и  u2 = r w (mod q).
  6. Вычислить v = (α uy u2 (mod p)) (mod q).
  7. Принять подпись, если v = r и отвергнуть в противном случае.

Решение:

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

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

1.  Выбрать  простое число q = 27061.

  1. Выбрать простое число р = 324733, для которого q делит (p – 1). Пусть (p – 1)/ q = 12.
  2. Выбрает случайное число g=2012 *р и вычисляет α = g(p – 1)/q (mod p) = 201212 (mod 324733) = 84103. Так как α ≠ 1, то α есть генератор для единственной циклической подгруппы порядка q в группе *р . (Если α = 1, то следует выбрать другое g).
  3. Выбрать случайное число а = 115 [1, q – 1].
  4. Вычислить y = α a (mod p) = 84103115 (mod 324733) = 97053.
  5. Открытый ключ адресата есть (p = 324733, q = 270619, α = 84103,

y = 97053); секретный ключ адресата А есть число а = 115.

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

  1. Вычисляет значение хэш – функции h(t). Пусть для примера h(t) =8058.
  2. Выбирает случайное секретное число k = 57 [0, q].
  3. Вычисляет k – 1 (mod q) = 25162.
  4. Вычисляет r = (αk (mod p)) (mod q) = (8410357 (mod 324733))

(mod 27061)=16682.

  1. Вычисляет s = k – 1 (h(t) + ar) (mod q) = 16682 (8058 + 115 25061)

(mod 12) = 2939.

  1. Подпись адресата А под его текстом t есть пара чисел (r = 16682,

s = 2939).

  1. Проверка подписи. Чтобы проверить подпись (r = 16682, s = 2939)

адресата А под его текстом t, адресат В должен выполнить следующее.

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

h(t) = 8058.

  1. Берет открытый ключ адресата А: (p = 324733, q = 270619, α = 84103,   y = 97053).
  2. Проверяет, что r = 16682 [0, q] = [0, 27061] и s = 2939 [0, q] =

= [0, 27061]. Если проверка не проходит, то  подпись отвергнут.

  1. Вычисляет w = s – 1 (mod q) = 26573.
  2. Вычисляет u1 = w · h(t) (mod q) = 26573 8058(mod 27061) = 18602,  

                         u2 = r w (mod q) = 16682 26573 (mod 27061) = 4545.

  1. Вычисляет v = (α uy u2 (mod p)) (mod q) = (45970618602 1696354545

(mod 324733))(mod 27061) = 16682.

  1. Так как v = 16682 = r , то В принимает подпись А.

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

 

    1. MATHCAD ПРОГРАММНЫЙ ПРОЦЕССОР

PACKET OF MATHCAD PROGRAMS FOR CRYPTOGRAPHY WITH PUBLIC KEY 

Polynoms are given by the vector of coefficients with the decreasing order of exponents: P(x) =   =

Factoring n

 

Representation of 10-based natural numbers as h-based ones

 Modular exponentiation m^e mod n

 

Extended Euclidean algorithm to find d=gcd(a,b)

and u, v  for integers such that d=au+bv

 

The quotient and the remaider at division of product polynomials P(x),Q(x)

in Zp[x] modulo irreducible polynomial F(x) in Zp[x]

 
 
 
 
 
 
 
 
    1. ПРИМЕРЫ ИСПОЛЬЗУЕМЫХ MATHCAD-ПРОГРАММ
      1. Криптосистема RSA
 

      CRYPTOSYSTEM RSA

      Key generation

      Public key for B is the pair of numbers (n, e)

      Private key for B is the number a,

      where

      Encryption

      The text t=KAL

      Decryption

      The text t = KAL

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

      1. Электронная цифровая подпись RSA с возвратом сообщения
    1. DIGITAL SIGNATURE RSA with recovering the message
    1. Key generation
    1. Public key for B is the pair of numbers (n, e)
    2. Private key for B is the number a
    1. where
    1. Signature generation
    1. The text t=KAL
    1. Signature verification
    1. Signature is accepted
    1. The text t = KAL
 
 
 
 
 
 
 
 
 
 
 
 

 

    1. Электронная цифровая подпись RSA с hash-функцией

    DIGITAL SIGNATURE RSA with hash-function h(t)

    Key generation

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

    Public key for A is the pair of numbers (n, e)

    Private key for A is the number a,

    where

    Signature generation

    The text t=KAL

    Hash function

    Signature is the number

    S=8058

    Signature verification

    t = KAL

    If text t is changed, then m1 is other number. For instance,

 

    1. Шифросистема Эль-Гамаля с простым полем Галуа

    ELGAMAL CRYPTOSYSTEM IN SIMPLE GALOIS FIELD 

    Key generation

    Public key for B is three numbers (p,,y),

    Private key for B is the number a,

    where

    Encryption

    The text t=KAL

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