
- •230105.65 – Программное обеспечение вычислительной техники и автоматизированных систем
- •Оглавление
- •Модель сетевой безопасности .Классификация сетевых атак
- •I. Пассивная атака
- •II. Активная атака
- •Создание ложного потока (фальсификация)
- •Сервисы безопасности
- •2 Классическая задача криптографии. Угрозы со стороны злоумышленника и участников процесса информационного взаимодействия.
- •3 Шифры замены и перестановки. Моно- и многоалфавитные подстановки. Шифры Цезаря, Виженера, Вернама. Методы дешифрования.
- •Перестановочные шифры Простой столбцевой перестановочный шифр
- •Перестановочный шифр с ключевым словом
- •Подстановочные шифры
- •Шифр Цезаря
- •Шифр Цезаря с ключевым словом
- •Шифр Вернама
- •Шифр Виженера
- •Шифр Виженера с перемешанным один раз алфавитом.
- •Шифр c автоключом
- •Методы анализа многоалфавитных систем
- •3.2 Классификация методов дешифрования. Модель предполагаемого противника. Правила Керкхоффа.
- •3.3 Совершенная секретность по Шеннону. Примеры совершенно секретных систем. Шифр Вернама. Понятие об управлении ключами.
- •Поточные шифры
- •Алгоритм des Принципы разработки
- •Шифрование. Начальная перестановка
- •Последовательность преобразований отдельного раунда
- •Создание подключей
- •Дешифрование
- •Проблемы des
- •5 Алгоритм гост 28147
- •Алгоритм гост 28147-89 - Режим гаммирования
- •6 Стандарт криптографической защиты 21 века (aes). Алгоритмы Rijndael т rc6. Математические понятия, лежащие в основе алгоритма Rijndael. Структура шифра. Алгоритм Rijndael
- •Поле gf(28)
- •Полиномы с коэффициентами из gf
- •Обоснование разработки
- •Спецификация алгоритма
- •Состояние, ключ шифрования и число раундов
- •Преобразование раунда
- •Создание ключей раунда
- •Алгоритм шифрования
- •Преимущества алгоритма
- •Расширения. Различная длина блока и ключа шифрования
- •7 Теория сложности вычислений. Классификация алгоритмов.
- •2. Сложность алгоритмов.
- •3. Сложность задач.
- •8 Алгоритм rsa. Математическая модель алгоритма. Стойкость алгоритма.
- •Описание алгоритма
- •Вычислительные аспекты
- •Шифрование/дешифрование
- •Создание ключей
- •9 Криптосистема Эль-Гамаля.
- •9 Электронная подпись. Варианты электронной подписи на основе алгоритмов rsa и Эль-Гамаля. Электpонная подпись на основе алгоpитма rsa
- •Простые хэш-функции
- •"Парадокс дня рождения"
- •Использование цепочки зашифрованных блоков
- •Обобщенная модель электронной цифровой подписи. Схема Диффи-Хеллмана, схема Эль-Гамаля. Общая схема цифровой подписи
- •Цифровая подпись на основе алгоритма rsa
- •Подход dss
- •Протоколы аутентификации
- •Взаимная аутентификация
- •Использование шифрования с открытым ключом
- •Односторонняя аутентификация
- •Виды протоколов.
- •Вскрытие "человек в середине"
- •Протокол "держась за руки" (Interlock protocol)
- •13 Сертификация ключей с помощью цифровых подписей. Разделение секрета. Метки времени. Пример протокола защиты базы данных. Обмен ключами с помощью цифровых подписей
- •Метки времени
- •Типовые методы криптоанализа классических алгоритмов .Метод встречи посередине .
- •15 Криптосистемы на эллиптических кривых. Математические понятия
- •Аналог алгоритма Диффи-Хеллмана обмена ключами
- •Алгоритм цифровой подписи на основе эллиптических кривых ecdsa
- •Шифрование/дешифрование с использованием эллиптических кривых
- •Литература
Вычислительные аспекты
Рассмотрим сложность вычислений в алгоритме RSA при создании ключей и при шифровании/дешифровании.
Шифрование/дешифрование
Как шифрование, так и дешифрование включают возведение целого числа в целую степень по модулю n. При этом промежуточные значения будут громадными. Для того, чтобы частично этого избежать, используется следующее свойство модульной арифметики:
[(a mod n) · (b mod n)] mod n = (a · b) mod n
Другая оптимизация состоит в эффективном использовании показателя степени, так как в случае RSA показатели степени очень большие. Предположим, что необходимо вычислить х16. Прямой подход требует 15 умножений. Однако можно добиться того же конечного результата с помощью только четырех умножений, если использовать квадрат каждого промежуточного результата: х2, х4, х8, х16.
Создание ключей
Создание ключей включает следующие задачи:
Определить два простых числа р и q.
Выбрать е и вычислить d.
Прежде всего, рассмотрим проблемы, связанные с выбором р и q. Так как значение n = p · q будет известно любому потенциальному противнику, для предотвращения раскрытия р и q эти простые числа должны быть выбраны из достаточно большого множества, т.е. р и q должны быть большими числами. С другой стороны, метод, используемый для поиска большого простого числа, должен быть достаточно эффективным.
В настоящее время неизвестны алгоритмы, которые создают произвольно большие простые числа. Процедура, которая используется для этого, выбирает случайное нечетное число из требуемого диапазона и проверяет, является ли оно простым. Если число не является простым, то опять выбирается случайное число до тех пор, пока не будет найдено простое.
Были разработаны различные тесты для определения того, является ли число простым. Это тесты вероятностные, то есть тест показывает, что данное число вероятно является простым. Несмотря на это они могут выполняться таким образом, что сделают вероятность близкой к 1. Если n "проваливает" тест, то оно не является простым. Если n "пропускает" тест, то n может как быть, так и не быть простым. Если n пропускает много таких тестов, то можно с высокой степенью достоверности сказать, что n является простым. Это достаточно долгая процедура, но она выполняется относительно редко: только при создании новой пары (KU, KR).
На сложность вычислений также влияет то, какое количество чисел будет отвергнуто перед тем, как будет найдено простое число. Результат из теории чисел, известный как теорема простого числа, говорит, что простых чисел, расположенных около n в среднем одно на каждые ln (n) чисел. Таким образом, в среднем требуется проверить последовательность из ln (n) целых, прежде чем будет найдено простое число. Так как все четные числа могут быть отвергнуты без проверки, то требуется выполнить приблизительно ln (n)/2 проверок. Например, если простое число ищется в диапазоне величин 2200, то необходимо выполнить около ln (2200) / 2 = 70 проверок.
Выбрав простые числа р и q, далее следует выбрать значение е так, чтобы gcd(Φ(n), e) = 1 и вычислить значение d, d = e-1 mod Φ(n). Cуществует единственный алгоритм, называемый расширенным алгоритмом Евклида, который за фиксированное время вычисляет наибольший общий делитель двух целых и если этот общий делитель равен единице, определяет инверсное значение одного по модулю другого. Таким образом, процедура состоит в генерации серии случайных чисел и проверке каждого относительно Φ(n) до тех пор, пока не будет найдено число, взаимнопростое с Φ(n). Возникает вопрос, как много случайных чисел придется проверить до тех пор, пока не найдется нужное число, которое будет взаимнопростым с Φ(n). Результаты показывают, что вероятность того, что два случайных числа являются взаимнопростыми, равна 0.6.