- •Содержание
- •Раздел 1. Коммерческие информационные системы
- •Раздел 2 защита коммерческих информационных систем
- •Раздел 3. Введение в криптографию. Симметричные криптосистемы
- •Введение
- •Раздел 2 защита коммерческих информационных систем
- •Раздел 3. Введение в криптографию. Симметричные криптосистемы
- •1. Пояснительная записка
- •2 Содержание учебного материала
- •Введение.
- •Раздел 1. Коммерческие информационные сиcтемы
- •Раздел 2. Защита коммерческих информационных систем
- •Предмет и объект защиты. Определение кис
- •.2. Методы обеспечения информационной безопасности кис
- •1.3. Политика информационной безопасности кис
- •Глава 31 «Преступления против информационной безопасности:
- •Раздел 2 защита коммерческих информационных систем
- •2.1. Сети электронной коммерции
- •2.2. Атаки на сети электронной коммерции
- •2.2.1.Снифферы пакетов .
- •2.2.3. Отказ в обслуживании.
- •2.2.4. Парольные атаки
- •2.2.5. Атаки типа «Man-in-the-Middle»
- •2.2.6. Атаки на уровне приложений
- •2.2.7. Сетевая разведка
- •2.2.8. Злоупотребление доверием
- •2.2.9. Переадресация портов
- •2.2.10. Несанкционированный доступ
- •2.2.11. Борьба с вирусами
- •2.3. Протоколы безопасности
- •2.3.1. Протокол ppp chap
- •2.3.2. Протокол ssl
- •2.3.3. Протокол ssh
- •2.3.4. Протокол https
- •2.3.5. Протокол iPsec
- •2.4. Программно-аппаратные средства обеспечения безопасности
- •Раздел 3. Введение в криптографию. Симметричные криптосистемы
- •3.1. Введение в криптографию
- •3.1.1. История криптографии.
- •3.1.2.Современный период развития криптографии
- •3.1.3. Правило Киркхгофа. Понятие криптоанализа.
- •3.1.4. Современные стандарты криптосистем
- •3.2. Симметричные алгоритмы
- •Принцип симметричного шифрования с секретным ключом
- •Шифры перестановок
- •3.2.3. Шифры замены
- •Шифры сложной замены
- •Поточное шифрование
- •3.3.1. Каналы перехвата информации
- •3.3.4. Скремблеры.
- •Раздел 4. Сети фейстеля
- •Блочные шрифты
- •4.2.Сеть фейстеля. Функция f
- •4.3 Сети фейстеля с 4-мя ветвями
- •Шифр rc6
- •Раздел 5 симметричный алгоритм шифрования des
- •5.1. Начальная перестановка
- •5.2 16 Циклов шифрования в сети фейстеля
- •5.3 Режимы применения des.
- •5.4.Достоинства и недостатки des
- •Криптостойкость алгоритма des
- •Раздел 6 стандарт симметричного шифрования гост 28147-89
- •6.1 Общие характеристики
- •6.2 Режим простой замены
- •6.3 Гаммирование
- •6.4 Гаммирование с обратной связью
- •6.5.Режим выработки имитовставки
- •6.6 Достоинства гост
- •Раздел 7 асимметричные криптосистемы
- •7.1 Базовые определения
- •8.2. Алгоритм rsa
- •Технологии цифровых подписей
- •Национальный алгоритм выработки и проверки эцп
- •3.Лабораторный практикум
- •3.2Лабораторная работа шифр цезаря.
- •Класс Alphabet
- •Класс Ceasar
- •Тестовый запуск
- •Введение
- •Раздел 1. Коммерческие информационные системы (кис).
- •Раздел 2. Защита коммерческих информационных систем
- •Раздел 3. Введение в криптографию. Симметричные криптосистемы
- •1. Пояснительная записка
- •2 Содержание учебного материала Введение.
- •Раздел 1. Коммерческие информационные сиcтемы
- •Раздел 2
- •Раздел 3
- •Раздел 4
- •Раздел 5
- •Раздел 6
- •Раздел 7
8.2. Алгоритм rsa
Алгоритм RSA стоит у истоков асимметричной криптографии. Он был предложен тремя исседователями-математиками Рональдом Ривестом (R.Rivest), Ади Шамиром (A.Shamir) и Леонардом Адльманом (L.Adleman) в 1977-78 годах.
Первым этапом любого асимметричного алгоритма является создание пары ключей: открытого и личного и распространение открытого ключа "по всему миру". Для алгоритма RSA этап создания ключей состоит из следующих операций:
Выбираются два простых (!) числа p и q.
Вычисляется их произведение n(=p*q).
Выбирается произвольное число e (e<n), такое, что
НОД(e,(p-1)(q-1))=1, то есть e должно быть взаимно простым с числом (p-1)(q-1) (НОД – наименьший общий делитель).
Методом Евклида решается в целых числах (!) уравнение
e*d++(p-1)(q-1)*y=1.
Здесь неизвестными являются переменные d и y – метод Евклида как раз и находит множество пар (d,y), каждая из которых является решением уравнения в целых числах.
5.Два числа (e,n) – публикуются как открытый ключ.
6. Число d хранится в строжайшем секрете – это и есть личный ключ, который позволит читать все послания, зашифрованные с помощью пары чисел (e,n).
Как же производится собственно шифрование с помощью этих чисел:
Отправитель разбивает свое сообщение на блоки, равные k=[log2(n)] бит, где квадратные скобки обозначают взятие целой части от дробного числа.
Подобный блок, может быть интерпретирован как число из диапазона (0;2k-1). Для каждого такого числа (назовем его mi) вычисляется выражение ci=((mi)e)mod n. Блоки ci и есть зашифрованное сообщение Их можно спокойно передавать по открытому каналу, поскольку операция возведения в степень по модулю простого числа, является необратимой математической задачей. Обратная ей задача носит название "логарифмирование в конечном поле" и является на несколько порядков более сложной задачей. То есть даже если злоумышленник знает числа e и n, то по ci прочесть исходные сообщения mi он не может никак, кроме как полным перебором mi.
А вот на приемной стороне процесс расшифрования все же возможен, и поможет нам в этом хранимое в секрете число d. Достаточно давно была доказана теорема Эйлера, частный случай которой утвержает, что если число n представимо в виде двух простых чисел p и q, то для любого x имеет место равенство (x(p-1)(q-1))mod n = 1. Для расшифрования RSA-сообщений воспользуемся этой формулой. Возведем обе ее части в степень
(-y) : (x(-y)(p-1)(q-1))mod n = 1(-y) = 1.
Теперь умножим обе ее части на
x : (x(-y)(p-1)(q-1)+1)mod n = 1*x = x.
А теперь вспомним как мы создавали открытый и личный ключи. Мы подбирали с помощью алгоритма Евклида d такое, что e*d+(p-1)(q-1)*y=1, то есть e*d=(-y)(p-1)(q-1)+1. А следовательно в последнем выражении предыдущего абзаца мы можем заменить показатель степени на число (e*d). Получаем (xe*d)mod n = x. То есть для того чтобы прочесть сообщение ci=((mi)e)mod n достаточно возвести его в степень d по модулю
m : ((ci)d)mod n = ((mi)e*d)mod n = mi.
На самом деле операции возведения в степень больших чисел достаточно трудоемки для современных процессоров, даже если они производятся по оптимизированным по времени алгоритмам. Поэтому обычно весь текст сообщения кодируется обычным блочным шифром (намного более быстрым), но с использованием ключа сеанса, а вот сам ключ сеанса шифруется как раз асимметричным алгоритмом с помощью открытого ключа получателя и помещается в начало файла.
Общая схема асимметричной криптосистемы изображена на рисунке 8.1. По структуре она практически идентична симметричной криптосистеме с ключом сеанса.
Приведем простой пример использования метода RSA для шифрования сообщения «CAB». Для простоты будем использовать очень маленькие числа (на практике используются намного большие числа)
Выберем р =3 и q = 11.
Определим п = 3 * 11 = 33.
Найдем (p — 1) * (q — 1) = 20. Следовательно, в качестве d выберем любое число, которое является взаимно простым с 20, например d = 3.
Выберем число е. В качестве такого числа может быть взято любое число, для которого удовлетворяется соотношение {е * 3) mod 20 = 1, например 7.
Представим шифруемое сообщение как последовательность целых чисел в диапазоне 0... 32. Пусть буква А изображается числом 1, буква В — числом 2, а буква С — числом 3. Тогда сообщение можно представить в виде последовательности чисел 3 1 2. Зашифруем сообщение, используя ключ {7, 33}:
С1 = (З**7) mod 33 = 2187 mod 33 = 9,
С2 = (l**7) mod 33 = 1 mod 33 = 1,
СЗ = (2**7) mod 33 = 128 mod 33 = 29.
Попытаемся расшифровать сообщение {9, 1, 29}, полученное в результате зашифрования по известному ключу, на основе секретного ключа {3, 33}:
Ml = (9**3) mod 33 = 729 mod 33 = 3,
М2 = (l**3) mod 33 = 1 mod 33 = 1,
МЗ=(29**3) mod 33 = 24389 mod 33 = 2.
Таким образом, в результате расшифрования сообщения получено исходное сообщение «CAB».
Криптостойкость алгоритма RSA основывается на предположении, что исключительно трудно определить секретный ключ по известному, поскольку для этого необходимо решить задачу о существовании делителей целого числа. Данная задача является NP-полной и, как следствие этого факта, не допускает в настоящее время эффективного (полиномиального) решения
Существенным недостатком асимметричных методов шифрования является их низкое быстродействие, поэтому данные методы приходится сочетать с симметричными (асимметричные методы на 3 – 4 порядка медленнее). Так, для решения задачи эффективного шифрования с передачей секретного ключа, использованного отправителем, сообщение сначала симметрично зашифровывают случайным ключом, затем этот ключ зашифровывают открытым асимметричным ключом получателя, после чего сообщение и ключ отправляются по сети.
