- •Информационная безопасность Криптографические методы защиты информации
- •Содержание
- •Глава 1. Основы криптографии……………………………………….5
- •Глава 2. Обзор криптографических методов…………………………9
- •Глава 3. Электронная цифровая подпись…………………………...45
- •Глава 4. Проблемы и перспективы криптографических систем ..83
- •Глава 1.
- •1.1. Терминология
- •1.2. Требования к криптосистемам
- •Классификация криптографических методов
- •Глава 2 обзор криптографических методов
- •2.1. Симметричные системы шифрования
- •2.1.1. Блочные шифры
- •Симметричные блочные шифры
- •Методы перестановки
- •Методы замены (подстановки)
- •Шифрование методом простой замены
- •Оценки вероятностей появления букв русского языка и пробела
- •Механизм шифрования заменой
- •Ключ шифрования
- •Механизм дешифрования
- •Механизм шифрования методом Цезаря
- •2.1.2. Потоковые шифры
- •Методы гаммирования
- •Лабораторная работа. Простейшие криптографические системы
- •Асимметричные системы шифрования
- •2.3.1. Алгоритм rsa
- •Полная таблица зашифрования
- •2.4. Сравнение симметричных и асимметричных систем шифрования
- •2.5. Лабораторная работа. Асимметричные методы шифрования данных
- •Глава 3. Электронная цифровая подпись
- •Проверка подлинности информации
- •3.1.1. Подпись документов при помощи симметричных криптосистем
- •3.1.2. Подпись документов при помощи криптосистем с открытыми ключами
- •3.2. Стандарты.
- •3.3. Атаки на цифровую подпись
- •3.4. Пакет pgp
- •3.5. Pgp: концепция безопасности и уязвимые места
- •Асимметричные криптографические алгоритмы
- •3.6. Лабораторная работа. Программные средства защиты
- •3.7. Лабораторная работа. Способы защиты электронной почты
- •Глава 4. Проблемы и перспективы криптографических систем
- •4.1. Шифрование больших сообщений и потоков данных
- •4.2. Использование блуждающих ключей
- •4.3. Шифрование, кодирование и сжатие информации
- •Виды преобразований
- •4.4. Реализация алгоритмов шифрования
- •Библиографический список
- •Информационная безопасность криптографические методы защиты информации
2.4. Сравнение симметричных и асимметричных систем шифрования
В асимметричных системах необходимо применять длинные ключи (512 битов и больше). Длинный ключ резко увеличивает время шифрования. Кроме того, генерация ключей весьма длительна, зато распределять ключи можно по незащищенным каналам.
В симметричных алгоритмах используют более короткие ключи, т. е. шифрование происходит быстрее. Но в таких системах сложно распределение ключей.
Поэтому при проектировании защищенной системы часто применяют и симметричные, и асимметричные алгоритмы. Так как система с открытыми ключами позволяет распределять ключи и в симметричных системах, можно объединить в системе передачи защищенной информации асимметричный и симметричный алгоритмы шифрования. С помощью первого рассылать ключи, вторым же - собственно шифровать передаваемую информацию [16, c. 53].
Обмен информацией можно осуществлять следующим образом:
получатель вычисляет открытый и секретный ключи, секретный ключ хранит в тайне, открытый же делает доступным;
отправитель, используя открытый ключ получателя, зашифровывает сеансовый ключ, который пересылается получателю по незащищенному каналу;
получатель получает сеансовый ключ и расшифровывает его, используя свой секретный ключ;
отправитель зашифровывает сообщение сеансовым ключом и пересылает получателю;
получатель получает сообщение и расшифровывает его.
Надо заметить, что в правительственных и военных системах связи используют лишь симметричные алгоритмы, так как нет строго математического обоснования стойкости систем с открытыми ключами, как, впрочем, не доказано и обратное.
2.5. Лабораторная работа. Асимметричные методы шифрования данных
ЦЕЛЬ: Изучение асимметричных методов преобразования информации.
РЕЗУЛЬТАТ ОБУЧЕНИЯ:
После успешного завершения занятия пользователь должен:
знать алгоритм шифрования RSA.
ИСПОЛЬЗУЕМЫЕ ПРОГРАММЫ:
Microsoft Word 2000,
Программная среда Delphi
ПЛАН ЗАНЯТИЯ:
1.1. Знакомство с алгоритмом шифрования RSA.
1.2. Задания к работе
Краткие сведения из теории
Алгоритм шифрования RSA основан на трудности разложения больших целых чисел на простые сомножители.
Основные понятия:
Простое число – это число, которое делится только на 1 и на самого себя;
Взаимно простые числа – это числа, которые не имеют ни одного общего делителя, кроме 1;
Результат операции i mod j – это остаток от целочисленного деления i на j.
Рассмотрим математические результаты, положенные в основу этого алгоритма.
Теорема 1. Малая теорема Ферма
Если p - простое число, то xp-1 = 1(mod p) (1)
для любого х, простого относительно p, и xp = (mod p) (2) для любого х.
Определение: Функцией Эйлера (n) называется число положительных целых, меньших n и простых относительно n.
n |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
(n) |
1 |
2 |
2 |
3 |
2 |
6 |
4 |
6 |
4 |
10 |
4 |
Теорема 2
Если n=pq, (p и q - отличные друг от друга простые числа), то
(n)=(p-1)(q-1).
Теорема 3
Если n=pq, (p и q - отличные друг от друга простые числа) и x - простое относительно p и q, то x(n) = 1 (mod n).
Следствие
Если n=pq, (p и q - отличные друг от друга простые числа) и е простое относительно (n), то отображение Еe,n: xxe (mod n) является взаимно однозначным на Zn.
Очевиден и тот факт, что если е - простое относительно (n), то существует целое d, такое, что ed = 1 (mod (n)). (3)
На этих математических фактах и основан популярный алгоритм RSA.
Пусть n=pq, где p и q - различные простые числа. Если e и d удовлетворяют уравнениям (1), (2) и (3), то отображения Еe,n и Еd,n являются инверсиями на Zn. Как Еe,n, так и Еd,n легко рассчитываются, когда известны e, d, p, q. Если известны e и n, но p и q неизвестны, то Еe,n представляет собой одностороннюю функцию; нахождение Еd,n по заданному n равносильно разложению n. Если p и q - достаточно большие простые числа, то разложение n практически не осуществимо. Это и заложено в основу системы шифрования RSA.
Чтобы использовать алгоритм RSA, надо сначала сгенерировать открытый и секретные ключи, выполнив следующие шаги:
1) Выберем два очень больших простых числа p и q.
2) Определим n, как результат умножения p на q (n= p*q).
3) Выберем большое случайное число, которое назовем d. Это число должно быть взаимно простым с результатом умножения (p-1)*(q-1).
4) Определим такое число е, для которого является истинным следующее соотношение (e*d) mod ((p-1)*(q-1))=1.
5) Hазовем открытым ключом числа e и n, а секретным ключом - числа d и n.
Теперь, чтобы зашифровать данные по известному ключу {e,n}, необходимо сделать следующее:
разбить шифруемый текст на блоки, каждый из которых может быть представлен в виде числа M(i)=0,1,2..., n-1 (т.е. только до n-1).
зашифровать текст, рассматриваемый как последовательность чисел M(i) по формуле C(i)=(M(i)e)mod n.
Чтобы расшифровать эти данные, используя секретный ключ {d,n}, необходимо выполнить следующие вычисления:
M(i) = (C(i)d) mod n.
В результате будет получено множество чисел M(i), которые представляют собой исходный текст.
Чтобы более наглядно представить алгоритм RSA, приведем следующий пример:
Зашифруем и расшифруем сообщение "САВ" по алгоритму RSA. Для простоты будем использовать небольшие числа.
1) Выберем p=3 и q=11.
2) Определим n= 3*11=33.
3) Hайдем (p-1)*(q-1)=20. Следовательно, d будет равно, например, 3: (d=3).
4) Выберем число е по следующей формуле: (e*3) mod 20=1. Значит, е будет равно, например, 7: (e=7).
5) Представим шифруемое сообщение как последовательность чисел в диапозоне от 0 до 32 (не забывайте, что кончается на n-1). Буква А =1, В=2, С=3.
Теперь зашифруем сообщение, используя открытый ключ {7,33}
C1 = (3^7) mod 33 = 2187 mod 33 = 9;
C2 = (1^7) mod 33 = 1 mod 33 = 1;
C3 = (2^7) mod 33 = 128 mod 33 = 29;
Расшифруем эти данные, используя закрытый ключ {3,33}
M1=(9^3) mod 33 =729 mod 33 = 3(С);
M2=(1^3) mod 33 =1 mod 33 = 1(А);
M3=(29^3) mod 33 = 24389 mod 33 = 2(В). Все данные расшифрованы.
Криптостойкость алгоритма RSA основывается на предположении, что исключительно трудно определить секретный ключ по известному, поскольку для этого необходимо решить задачу о существовании делителей целого числа.
Задания к работе
Зашифруйте произвольный текст с помощью криптосистемы RSA на алфавите, состоящем из букв русского языка (без буквы Ё) и пробела. Приведите примеры.
Дешифруйте сообщение "17 12 26 26 24 29 25 32 19 26 29 10 05 11 07 10 05 32 29 09 05 29 05 01 05 08 32 04 26 30 26 19 17 25 32 31 00 19 19 05 03 32 13 00 31 00 23 17", зашифрованное на открытом ключе: e=3, n=33. Исходное сообщение состоит из цифр от 0 до 32, которыми закодированы буквы в соответствии с таблицей 2.6.
Разложите на простые сомножители число 391, которое является произведением двух близких по значению простых чисел.
