Криптография с открытым ключом. 2
Национальный исследовательский университет
МОСКОВСКИЙ ЭНЕРГЕТИЧЕСКИЙ ИНСТИТУТ
(ТЕХНИЧЕСКИЙ
УНИВЕРСИТЕТ)
КУРСОВАЯ РАБОТА
ПО КУРСУ
«Криптография
с открытым ключом»
| Студент: | Калмыков А.В. |
| Группа: | А-4-10 |
| Преподаватель: | Набебин А.А. |
Москва 2012
Оглавление
ВВЕДЕНИЕ 3
1. КРИПТОГРАИЧЕСКАЯ СИСТЕМА RSA 5
1.1. Криптосистема RSA 5
1.2. Электронная цифровая подпись RSA с возвратом сообщения 6
1.3. Электронная цифровая подпись RSA с hash-функцией 8
2. КРИПТОГРАФИЧЕСКАЯ СИСТЕМА ЭЛЬ-ГАМАЛЯ С ПРОСТЫМ ПОЛЕМ ГАЛУА 9
2.1. Шифросистема Эль-Гамаля с простым полем Галуа 9
2.2. Электронная цифровая подпись Эль-Гамаля с простым полем Галуа 11
3. КРИПТОГРАФИЧЕСКАЯ СИСТЕМА ЭЛЬ ГАМАЛЯ С ОБЩИМ ПОЛЕМ ГАЛУА 12
3.1. Шифросистема Эль-Гамаля с общим полем полем Галуа 12
3.2. Электронная цифровая подпись Эль-Гамаля с общим полем Галуа 15
4. КРИПТОГРАФИЧЕСКАЯ СИСТЕМА DSA 17
4.1. Электронная цифровая подпись DSA 17
5. MATHCAD ПРОГРАММНЫЙ ПРОЦЕССОР 20
6. ПРИМЕРЫ ИСПОЛЬЗУЕМЫХ MATHCAD-ПРОГРАММ 24
6.1. Криптосистема RSA 24
6.2. Электронная цифровая подпись RSA с возвратом сообщения 25
6.3. Электронная цифровая подпись RSA с hash-функцией 26
6.4. Шифросистема Эль-Гамаля с простым полем Галуа 27
6.5. Электронная цифровая подпись Эль-Гамаля с простым полем Галуа 28
6.6. Шифросистема Эль-Гамаля с общим полем полем Галуа 29
6.7. Электронная цифровая подпись Эль-Гамаля с общим полем Галуа 30
6.8. Электронная цифровая подпись DSA 32
ЛИТЕРАТУРА 32
ВВЕДЕНИЕ
От истоков криптографии до самых современных времен, криптосистемы строились на основе элементарных преобразований: подстановки и перестановки. Ручной труд, на протяжении тысяч лет, был сменен механическими, а далее и электромеханическими шифровальными и дешифровальными машинами, которые открыли новую эру в области защиты информации. Дальнейшее изобретение компьютеров, послужило новым толчком, развитию средств не только шифрования, но и криптоанализа. Одним из таких достижений, является алгоритм LUCIFER компании IBM, который был положен в основу всем хорошо известного алгоритма DES. Однако, основу всех алгоритмов продолжали составлять, все те же, подстановки и перестановки, которые производились как отправителем, так и получателем. Другими словами, отправитель и получатель обязаны обладать одним и тем же ключом, отсюда вытекает одно из ограничений симметричных криптосистем – распространение (распределение) ключей. Указанный недостаток послужил толчком к поиску подходов к построению криптосистем способных исключить защищенный канал передачи ключей и обеспечивая защиту передаваемых сообщений по незащищенному каналу, без дополнительных преобразований. На рис. 1, показан процесс двустороннего обмена между отправителем и получателем (абонентами), при этом злоумышленник выполняет пассивную роль слушателя. В отличие от обычных систем (с секретным ключом), системы, допускающие открытую передачу (открытой) части ключа по незащищенному каналу связи, называют системами с открытым ключом. В таких системах открытый ключ (ключ шифрования), отличается от личного ключа (ключа расшифровывания), поэтому их иногда называют ассиметричными системами или двуключевыми системами.
Впервые, публично, Диффи и Хеллман в 1976 году изложили идею
разработанного метода на национальной компьютерной конференции и
опубликована в том же году в основополагающей работе "Новые направления в криптографии". Предложенный метод решает задачу: распределения ключей и цифровой подписи. Она радикально отличалась от известных ранее подходов, за всю историю криптографии. К числу отцов-основателей следует отнести также и Ральфа Меркля, который
независимо от Диффи и Хеллмана пришел к тем же конструкциям, однако
опубликовал свои результаты только в 1978 году. Криптография с открытм ключем. Текущее состояние Однако, истинную точку отсчета криптографии с открытым ключом, следует отнести к более раннему времени. Известно несколько независимых источников, которые отдают пальму первенства, в разработке криптографии с открытым ключем, Агентству национальной безопасности США (National Security Agency - NSA).
По словам адмирала Бобби Инман (Bobby Inmann), занимал пост главы Агентства, метод криптографических преобразований с открытым ключом разработан NSA еще в середине 60-х годов. Первое документальное подтверждение этому, появилось в 1970 году в закрытом отчете Джеймса Эллиса (James Ellis) из Группы
защиты электронных коммуникаций Службы безопасности Великобритании.
И так, в основе преобразований с открытым ключом лежит теоретико-числовой подход к определению стойкости криптоанализа, т.е. проблема обоснования стойкости криптографической схемы свелась к доказательству отсутствия полиномиального алгоритма, который решает задачу, стоящую перед злоумышленником. Из этого следует, что на данный момент стойкость
криптографических схем может быть установлена лишь с привлечением каких-либо недоказуемых предположений. Поэтому, основное направление
исследований состоит в поиске наиболее слабых достаточных условий для
существования стойких схем каждого типа. В основном рассматриваются
предположения двух типов – общие (или теоретико-сложностные) и теоретико-числовые, т.е. предположения о сложности конкретных теоретико-числовых задач.
На основе указанных принципов была предложена трудноразрешимая задача
факторизации большого числа, которая была положена в основу первой, реально используемой, системы шифрования – RSA [2].
Далее рассмотрим основные направления применения криптосистем с открытым ключом.
Применение криптосистем с открытым ключом.
Двигателем данного направления криптографии является, в первую очередь,
практика. Стремительное развитие информационных систем ставит все новые и новые задачи перед разработчиками криптографических алгоритмов (протоколов).
Классифицируем наиболее существенные побудительные мотивы развития
криптографии с открытым ключом (не претендует быть исчерпывающей):
• Развитие телекоммуникационных систем и сетей различного назначения.
• Развитие глобальной сети Интернет.
• Развитие банковских систем, в том числе и пластиковых карт.
• Потребность мыслящего человека к познанию.
Выделяют следующие основные (глобальные, в самом широком смысле)
направления применения
криптографических
ключом:
• зашифровывание и расшифровывание;
• выработка общего секрета или обмен ключами;
• наложение и проверка электронной цифровой подписи;
• аутентификация;
• «электронные деньги».
Каждому, из перечисленных направлений, присуща собственная процедура
применения открытого или личного кличей.
В современных условиях, для решения задач защиты информации могут
применяться криптографические алгоритмы, которые могут решать как одну, так и
несколько задач (из выше перечисленных). Алгоритм RSA [2], например, с
успехом позволяет решать задачи шифрования, обмена ключами и цифровой
подписи. Однако все универсальное не лишено недостатков. Для успешного
противостояния криптоаналитикам и повышения эффективности алгоритма, были
предложены различные модификации RSA [ ], решающие указанные задачи по
отдельности
- КРИПТОГРАИЧЕСКАЯ СИСТЕМА RSA
- Криптосистема RSA
Зашифровать и расшифровать сообщение с помощью криптосистемы RSA (R. Rivest, A. Shamir, L. Adleman). Простые числа p и q определяются вариантом задания. В качестве исходного текста взять три первых латинских буквы своей фамилии.
Вычисление ключей. Каждый адресат вычисляет свой открытый ключ и ему соответствующий секретный ключ. Адресат должен выполнить следующее:
- Выбрать два больших различных простых числа p и q примерно одного размера.
- Найти n = pq и функцию Эйлера φ = φ(n) = (p - 1)(q - 1).
- Взять случайное число e, 1<e< φ такое, что нод(e, φ) = 1.
- Найти такое целое a (1, φ), что ea ≡ 1 (mod φ). Для этого с помощью расширенного алгоритма Евклида найти такие целые a, x, что ea + φx = 1. Тогда ea ≡ 1 (mod φ). Пусть произвольное k Z. Сложив ea ≡ 1 (mod φ) и ekφ ≡ 0 (mod φ), получим e(a + kφ) ≡ 1 (mod φ). Если a (1, φ), то найти такое целое k, что a + kφ (1, φ), и в качестве a взять a + kφ.
- Открытый ключ адресата есть пара чисел (n,e). Секретный ключ адресата есть число a.
Шифрование. Адресат A шифрует свой текст t и отправляет его адресату B. B дешифрует сообщение от A и получает исходный текст t. Адресат A должен выполнить следующее:
- Получить открытый ключ (n,e) адресата B.
- С помощью какого-либо метода M, который публикуется, представить своё письмо t как сообщение в виде натурального числа m из сегмента [0, n-1].
- Вычислить шифротекст c = me (mod n).
- Отправить свой шифротекст c адресату B.
Дешифрование. Чтобы извлечь текст t из шифротекста c, адресат B должен выполнить следующее:
- Взять свой секретный ключ a и вычислить сообщение m = ca (mod n).
- Вычислить текст t адресата A с помощью метода M.
Пример.
Адресат A пишет письмо t = KAL адресату B.
Вычисление ключей. Адресат B выполняет следующее:
- Выбирает два разных простых числа p = 5783, q = 5647.
- Вычисляет n = pq =32656601 и функцию Эйлера φ = (p - 1)(q - 1) = 32645172.
- Выбирает случайное число e = 3051835 (1, φ) с нод(e, φ) = 1.
- С помощью расширенного алгоритма Евклида находит такое a = 13331995 (1, φ), что ea ≡ 1 (mod φ).
- Открытый ключ адресата B есть пара чисел (n = 32656601, e = 3051835). Секретный ключ адресата B есть число a =13331995 .
Шифрование. Адресат А выполняет следующее:
- Получает открытый ключ (n = 32656601, e = 3051835) адресата B.
- Представляет свой текст t = KAL в виде натурального числа m из [0, n-1] с помощью 27-ричной системы счисления следующим образом. Нумеруются буквы алфавита:
| пробел | 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
- Шифрует своё сообщение m = 8059 числом c = me (mod n) = 80593051835 (mod 32656601) = 726893.
- Посылает свой шифротекст c адресату B.
Дешифрование. Чтобы дешифровать шифротекст c от A, адресат B выполняет следующее:
- Находит (с помощью своего секретного ключа a) число m = ca (mod n) = 72689313331995 (mod 32656601) = 8059.
- Представляет число m в 27-ричной системе счисления: m = (11 1 12)27 и получает исходный текст KAL.
Замечание. Криптографическая стойкость криптосистемы RSA основана на трудной практической осуществимости проблемы факторизации больших чисел. На практике для криптографической стойкости модуль n задаётся двоичным числом с 1024 и более двоичными разрядами.
Текст t в компьютере
представляется бинарным массивом, который
рассматривается как бинарная запись
некоторого числа m. Предложенный выше
способ представления текста числом носит
иллюстративный характер и выбран из желания
оперировать небольшими числами.
Все вышеперечисленные
вычисления и рассуждения отражены
в пункте 5.1, который представляет
собой код соответствующей
- Электронная цифровая подпись RSA с возвратом сообщения
Зашифровать и расшифровать сообщение с помощью криптосистемы 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 должен выполнить следующее.
- Каким – либо методом M (который публикуется) представить свой текст t в виде целого числа m, 1 < m < n – 1.
- Найти число w = R(m) с помощью открытой функции
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 должен выполнить следующее.
- Получить открытый ключ (n, e) адресата A.
- Найти число w = s e(mod n).
- Проверить, что w MR . Если нет, отвергнуть подпись s.
- Найти число m = R–1(w).
- С помощью метода M найти отправленный текст t.
Решение:
Адресат 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 и выполняет следующее.
- Представим свой текст t = KAL числом каким – либо методом M, например, в 27 – ричной системе счисления числом
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 |
- Вычисляет w = R(m) = R(8058) = 8058*8058 =80588058.
3. Вычисляет подпись
s = w a(mod n) = 805880581910271287 (mod 8787599713) = 4604486656.
4. Отправляет подписанный шифротекст
s адресату В.
Проверка подписи и вычисление сообщения. Адресат B получает от A подписанный шифротекст s и делает следующее.
- Получить открытый ключ (n = 8787599713, e = 23) адресата A.
- С помощью открытого ключа (n, e) адресата А вычисляет:
w = s e(mod n) = 460448665623 (mod 13374982717) = 80588058.
- Так как w =80588058=8058*8058 и MR , то B принимает
подпись А.
- Вычисляет m = R–1(w) = 8058.
- Представляет число m = (8058)10 в 27 – ричной системе счисления
m = (11 1 13)27 и получает исходный текст t = KAL.
Все вышеперечисленные
вычисления и рассуждения отражены
в пункте 5.2, который представляет
собой код соответствующей
- Электронная цифровая подпись RSA с hash-функцией
Теоретическое введение:
Криптографическая хэш-функция h — это функция, определенная на битовых строках произвольной длины со значениями в строках битов фиксированной длины. Ее значение часто называют хэш-кодом или хэш-значением. В информатике тоже используются своего рода хэш-функции, но важное отличие криптографических хэш-функций от стандартных состоит в том, что первые должны быть односторонними. Другими словами, должно быть невозможно в вычислительном отношении по элементу Y из множества значений хэш-функции подобрать такой х из области определения, при котором h(x) = Y. Другая характеризация односторонних хэш-функций — сказать о них, что они защищены от восстановления прообразов. Применение криптографических хэш-функций позволяет создать схему подписи RSA без восстановления сообщения, что намного эффективней для длинных сообщений.
Задача №24.6
Зашифровать и расшифровать сообщение с помощью криптосистемы RSA (R. Rivest, A. Shamir, L. Adleman) хэш-функцией. Простые числа p и q взять из задачи 29. В качестве исходного текста взять три первых латинских буквы своей фамилии.

- Криптография с открытым ключом
- Криптология
- Криптология. Методы шифрования информации
- Криптология. Реализация алгоритмов шифрования в Delphi
- Криптосистема "открытый ключ"
- Криптосистемы с открытым ключом. Алгоритм шифрования RSA
- Криптоспоридіоз телят
- Криптография
- Криптография
- Криптография, введение в предмет
- Криптография в России
- Криптография и шифрование
- Криптографиялық кілттермен басқару
- Криптографияның негізгі есептері