Автор работы: Пользователь скрыл имя, 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
Шифрование. Адресат A шифрует свой текст t и отправляет его адресату B. B дешифрует сообщение от A и получает исходный текст t. Адресат A должен выполнить следующее:
Дешифрование. Чтобы извлечь текст t из шифротекста c, адресат B должен выполнить следующее:
Пример.
Адресат A пишет письмо t = KAL адресату B.
Вычисление ключей. Адресат B выполняет следующее:
Шифрование. Адресат А выполняет следующее:
пробел | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
U | V | W | X | Y | Z |
21 | 22 | 23 | 24 | 25 | 26 |
Текст KAL представляется в виде числа m = 12 * 272 + 1 * 27 +12 = 8059
Дешифрование. Чтобы дешифровать шифротекст c от A, адресат B выполняет следующее:
Замечание. Криптографическая стойкость криптосистемы RSA основана на трудной практической осуществимости проблемы факторизации больших чисел. На практике для криптографической стойкости модуль n задаётся двоичным числом с 1024 и более двоичными разрядами.
Текст t в компьютере
представляется бинарным массивом, который
рассматривается как бинарная запись
некоторого числа m. Предложенный выше
способ представления текста числом носит
иллюстративный характер и выбран из желания
оперировать небольшими числами.
Все вышеперечисленные
вычисления и рассуждения отражены
в пункте 5.1, который представляет
собой код соответствующей
Зашифровать и расшифровать сообщение с помощью криптосистемы RSA (R. Rivest, A. Shamir, L. Adleman) с электронной подписью. Простые числа p и q взять из задачи 29. В качестве исходного текста взять три первых латинских буквы своей фамилии.
p = 324733, q = 27061, t = KAL.
Алгоритм:
Вычисление ключей. Каждый адресат создает открытый ключ и ему соответствующий секретный ключ. Адресат должен выполнить следующее.
1. Выбрать два больших различных случайных простых числа p и q примерно одного размера.
2. Найти n = p ∙ q и функцию Эйлера φ = φ(n) = (p − 1)(q − 1).
3. Взять случайное число e, 1 < e < φ, такое, что нод(e, φ) = 1.
4. Найти такое целое a (1, φ), что ea ≡ 1 (mod φ). С помощью расширенного алгоритма Евклида найти то единственное целое a, 1 < d < φ, для которого ea ≡ 1 (mod φ).
5. Открытый ключ адресата есть
пара чисел (n,
e). Секретный ключ адресата есть число
a.
Вычисление подписи. Адресат А подписывает свой текст t. Любой адресат B может проверить подпись A и извлечь из нее текст t. Адресат A должен выполнить следующее.
R : [0, n – 1] → MR , где MR есть некоторое числовое множество, например,
R(m) = m*m, где a*b есть результат приписывания слова b к слову a. Тогда MR = {w = m*m: m [0, n – 1]}.
3. Найти число s = w a(mod n).
4. Отправить подписанный шифротекст
s адресату В.
Проверка подписи и вычисление сообщения. Чтобы проверить подпись s адресата A и извлечь из нее сообщение m, адресат B должен выполнить следующее.
Решение:
Адресат A подписывает свой текст t. Любой адресат B может проверить подпись A.
Вычисление ключей. Адресат А выполняет следующее.
1. Выбирает разные простые числа p = 324733, q = 27061.
2. Находим n = p ∙ q = 324733 * 27061 = 8787599713 и функцию Эйлера
φ = φ(n) = (p − 1)(q − 1) = 324732 * 27060 = 8787247920.
3. Выбирает случайное число e = 23, 1 < e < φ, с нод(e, φ) = 1.
4. С помощью расширенного
5. Открытый ключ для А есть пара (n = 8787599713, e = 23). Секретный ключ для А есть число a = 1910271287.
Вычисление подписи. Адресат А подписывает свой текст t = KAL и выполняет следующее.
m = 11 * 272 +1 * 27 + 12 = 8058.
Нумеруются
буквы алфавита:
пробел | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
S | T | U | V | W | X | Y | Z |
19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
3. Вычисляет подпись
s = w a(mod n) = 805880581910271287 (mod 8787599713) = 4604486656.
4. Отправляет подписанный шифротекст
s адресату В.
Проверка подписи и вычисление сообщения. Адресат B получает от A подписанный шифротекст s и делает следующее.
w = s e(mod n) = 460448665623 (mod 13374982717) = 80588058.
подпись А.
m = (11 1 13)27 и получает исходный текст t = KAL.
Все вышеперечисленные
вычисления и рассуждения отражены
в пункте 5.2, который представляет
собой код соответствующей
Теоретическое введение:
Криптографическая хэш-функция h — это функция, определенная на битовых строках произвольной длины со значениями в строках битов фиксированной длины. Ее значение часто называют хэш-кодом или хэш-значением. В информатике тоже используются своего рода хэш-функции, но важное отличие криптографических хэш-функций от стандартных состоит в том, что первые должны быть односторонними. Другими словами, должно быть невозможно в вычислительном отношении по элементу Y из множества значений хэш-функции подобрать такой х из области определения, при котором h(x) = Y. Другая характеризация односторонних хэш-функций — сказать о них, что они защищены от восстановления прообразов. Применение криптографических хэш-функций позволяет создать схему подписи RSA без восстановления сообщения, что намного эффективней для длинных сообщений.
Задача №24.6
Зашифровать и расшифровать сообщение с помощью криптосистемы RSA (R. Rivest, A. Shamir, L. Adleman) хэш-функцией. Простые числа p и q взять из задачи 29. В качестве исходного текста взять три первых латинских буквы своей фамилии.