- •Основы информационной безопасности и введение в современную криптологию
- •8 Глава 129
- •Предисловие
- •Введение
- •Формальная криптография;
- •Математическая криптография;
- •1. Криптографические системы «докомпьютерной эры» и проблемы современной криптографии
- •1.1 Криптография древнего мира. Шифр Цезаря и его криптостойкость
- •1.2 Шифр Атбаш и его модификации
- •1.3 Тарабарская грамота как аналог шифра Атбаш
- •1.4 Шифр Плейфера
- •1.5 Шифр adfgvx
- •1.6 Шифр Виженера
- •1.7 Формальная криптография
- •1.8 Математическая криптография
- •1.9 Современная компьютерная криптография и ее основные проблемы
- •2 Режимы шифрования для симметричных алгоритмов.
- •2.1 Режимы простой замены (электронная кодовая книга ecb)
- •2.2 Режим сцепления блоков (Cipher Block Chaining (cbc))
- •2.2 Режимы гаммирования
- •2.3 Режим гаммирования с обратной связью
- •Функции шифрования симметричных криптосистем
- •3.1 Стандарт шифрования данных des. Data Encryption Standard
- •3.2 Преобразования Сетью Фейстеля
- •3.3 Режимы работы алгоритма des
- •3.4.1Алгоритм гост – 28147-89
- •3.4.2Ключи в кзу
- •3.4.3В блоке подстановки k
- •3.5.1Описание алгоритма
- •4.Глава
- •4.1Хэш - функция
- •4.2Коллизия
- •4.4Пример простого хеширования
- •4.3Современные виды хеширования
- •5.Глава Элементы алгебры и теории чисел
- •5.1Быстрое возведение в степень.
- •5.2Нахождение простого числа
- •5.3Метод Шермана — Лемана
- •5.3Метод Раббина-Миллера
- •5.4Нахождение обратного элемента по модулю
- •5.5Теорема ферма, Эйлера
- •5.6Алгоритм Эвклида
- •5.7Расширенный алгоритм Эвклида
- •5.8 Китайская теорема об остатках
- •5.11 Нахождение с помощью расширенного алгоритма Евклида
- •5.11Квадратичные вычеты
- •5.11Нахождение генераторов
- •6. Глава
- •6.1 Алгоритм Диффи – Хеллмана
- •6.2Описание алгоритма
- •6.3Алгоритм Диффи — Хеллмана с тремя и более участниками
- •6.7Криптографическая стойкость
- •6.8Rsa алгоритм
- •6.10Алгоритм шифрования rsa
- •6.11Алгоритм подписи rsa
- •7.16Эль-Гамаля
- •6.13История dsa
- •6.14Алгоритм цифровой подписи dsa
- •6.15 Алгоритм цифровой подписи гост р 3410-94
- •7.1Эллиптическая кривая
- •7.2 Эллиптические кривые в криптографии
- •7.3 Метрика операций на эк
- •7.3.1Сложение различных точек
- •7.3.2Удвоение
- •7.7Порядок эллиптической кривой
- •7.6Теорема Хассе
- •7.5 Порядок точки на эллиптической кривой
- •7.8Порядок точки на эллиптической кривой (Теория, можешь не читат)
- •7.9Криптография на эллиптических кривых
- •7.10Пример эллиптической кривой над конечным полем.
- •7.11Кратные точки.
- •7.12Безопасность криптографии с использованием эллиптических кривых.
- •7.13Алгоритм Диффи-Хелмана на эллиптической кривой
- •7.14Алгоритм dsa на эллиптической кривой
- •7.14.1Алгоритм эцп на основе эллиптических кривых (ecdsa)
- •7.15Алгоритм Эль-Гамала на эллиптической кривой
- •Литература
- •8 Глава
- •8.1Криптоанализ
- •8.2Классический криптоанализ.
- •8.3 Современный криптоанализ
- •8.4Универсальные методы криптоанализа.
- •8.4.1Метод полного перебора
- •8.4.2Атака по ключам
- •8.4.3Частотный анализ
- •8.4.4Метод "встречи посередине"
- •8.4.5Криптоанализ симметричных шифров
- •8.4.6Дифференциальный криптоанализ
- •8.4.7Дифференциальный анализ на основе сбоев.
- •8.4.8Дифференциальный метод криптоанализа des.
- •8.4.9Линейный криптоанализ .
- •8.4.10Криптоанализ асимметричных шифров
- •8.4.11Метод безключевого чтения rsa.
- •8.4.12Криптоанализ хеш-функций
- •8.4.13Криптоанализ по побочным каналам
- •8.5Нанотехнологии в криптоанализе
5.2Нахождение простого числа
Вес базис современной ассиметричной криптографии состоит из простых чисел. Основополагающим теории простых чисел в группах для криптографии является великий французский математик Эварист Галуа. Чтобы знать современную криптографию, необходимо тонко понимать сущность простых чисел, и уметь с ними работать.
Положительные целые числа могут быть разделены на три группы:
Положительные
целые числа
Число 1
Простые
Составные
Точно один Точно два Более, чем два
делитель делителя
Положительное простое число это целые натуральные числа больше единицы, которые имеют ровно 2 натуральных делителя (только 1 и самого себя), т.е. не делится ни на одно другое число, кроме самого себя и единицы. Составное число — положительное целое число больше с чем двумя делителями. Наименьшее простое число — 2, оно делится без остатка на 2 (само на себя) и 1. Обратите внимание, что целое число 1 — не простое число согласно определению, потому что простое число должно быть делимо без остатка двумя различными целыми числами, не больше и не меньше. Целое число 1 делимо без остатка только на себя; поэтому 1 — это не простое число. Число простых чисел бесконечно.
Маленькие простые числа p можно проверить, поделив это число на все числа до p-1. Если на всех итерациях остается остаток, то такое число простое. Большие числа грубым перебором невозможно проверит. Только проверка 1000 битного простого числа методом деления, займет миллионы лет. Поэтому большие простые числа находятся методом теста. До сих пор не найден алгоритм, который бы позволил со 100% гарантией сказать, что заданное число является простым, если это число большое. Поэтому большие простые числа, научно более правильно говорить, что они псевдопростые (возможно и не простые).
Один из алгоритмов нахождения, числа на то, что число простое или составное.
Берется нечетное большое число скажем, р=1001…2141
Берется новое случайное число, а = RANDOM(p), где 2<a<p-1
Вычисляется
Если результат пункта 3 не равен 1 или не равен р -1, то число р из первого пункта 100% составное.
Если результат 3 пункта равен 1 или р -1, то число р из первого пункта простое с вероятностью
, и надо тест начинать заново с пункта
2(goto
2), где k=
сколько раз проходил тест
Пример 1
р=2147
а = 458, а = RANDOM(p), где 2<a<p-1
Ответ равен 661, значить число 2147 составное
Пример 2
р=3559
а = 48, а = RANDOM(p), где 2<a<p-1
Ответ равен р-1=3558, значить число р=3559 прошло первое испытание и вероятность того что оно простое равно
.
Но невозможно гарантировать со 100%
вероятностью, что это число простое.
Обратно обращаемся ко 2 пункту и берем, другое, а = 667, и вычисляем
.
Ответ опять равен р–1=3558,
значить число
р=3559
прошло уже второе испытание и вероятность
того что оно простое равно
Обратно обращаемся ко 2 пункту и берем, а = 5, и вычисляем
.
На этот раз ответ равен 1,
значить число
р=3559
прошло уже третье испытание и вероятность
того что оно простое равно
.
С каждым удачным испытанием вероятность,
что число простое приближается к 1, но
никогда не будет равен 1.Если наше число р=3559, пройдет испытание 2-го пункта 300 раз и ответы всегда будут или 1 или 3558, то можно говорит что это число с очень большой долей вероятности будет простым и вероятность его будет равна
Если р=3559 действительно простое, то результатом всегда будет 1 или р-1. Просто для достоверности надо много раз проводит тест.
