Автор работы: Пользователь скрыл имя, 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
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 = (γ, δ), адресат В должен выполнить следующее.
γ a = (3 0 0)2 = (3х2)2 (mod f(x)) = 3х2 = (3 0 0),
γ – a = (γ a ) – 1 = (3 12) .
m1 = (9 8 7)31 = 5*352 + 76*32 + 3 = 877810 = (5 76 3)27 , откуда текст
t =KAL.
Вычислить
и проверить подпись под
m = 3. Неприводимый полином над р взять из задачи 27. В качестве исходного текста взять слова своего полного имени: фамилия, имя, отчество.
6х3
+ 6, р = 31,
m = 3, t =
KMN.
Решение:
Схема электронной цифровой
Алгоритм вычисления хэш – функции публикуется.
Криптографическая стойкость
При использовании схемы
Вычисление ключей. Каждый адресат создает свой открытый ключ и ему соответствующий секретный ключ. Далее адресат должен выполнить следующее.
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 должен выполнить следующее.
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 должен выполнить следующее.
Схема электронной (цифровой) подписи
ЭльГамаля с мультипликативной группой
конечного поля |Fpm
, р = 31, m
= 3. Пусть для удобства элемент поля
а2
х2
+ а1
х + а0
представляется р – ричной стрингом
(а2
а1
а0).
Адресат А подписывает свой текст
t = KAL. Любой адресат В
может проверить подпись А.
Вычисление ключей. Адресат А выполняет следующее.
1. Выбирает мультипликативную
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. Адресат А выполняет следующее.
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.
v1 = yh(r) rm = (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).
DSA (Digital Signature Algorithm) — алгоритм с использованием открытого ключа для создания электронной подписи, но не для шифрования (в отличие от RSA и схемы Эль-Гамаля). Подпись создается секретно, но может быть публично проверена. Это означает, что только один субъект может создать подпись сообщения, но любой может проверить её корректность. Алгоритм основан на вычислительной сложности взятия логарифмов в конечных полях.
(Задача 29.6)
Вычислить и проверить подпись
под сообщением с помощью
р = 324733, q = 27061,
t = KAL
Вычисление ключей. Каждый адресат создает свой открытый ключ и ему соответствующий секретный ключ. Адресат должен выполнить следующее.
Вычисление подписи. Адресат А подписывает свой текст t (произвольной длины). Любой адресат В может проверить подпись А под текстом t с помощью открытого ключа адресата А. Адресат А выполняет следующее.