- •Министерство образования и науки Российской Федерации
- •В.И. Аверченков, м.Ю. Рытов, с.А. Шпичак
- •Брянск Издательство бгту
- •Isbn 978-5-89838-596-5
- •Редактор издательства т.И. Королева
- •Темплан 2011г., п. 57
- •1. Введение в криптографию 10
- •2. Стойкость криптографических систем 34
- •3. Принципы построения симметричных криптографических алгоритмов 61
- •4. Принципы построения асимметричных криптографических алгоритмов 98
- •5. Криптографические хэш-функции и электронно-цифровая подпись 133
- •6. Организация сетей засекреченной связи 160
- •7.Криптоанализ и перспективные направления в криптографии 183
- •Предисловие
- •1. Введение в криптографию
- •1.1. Краткая история развития криптографических методов.
- •1.2. Основные понятия криптографии
- •1.2.1. Термины и определения
- •1.2.2. Классификация шифров
- •1.2.3. Характер криптографической деятельности
- •Контрольные вопросы
- •2. Стойкость криптографических систем
- •2.1. Модели шифров и открытых текстов
- •2.1.1. Алгебраические модели шифров.
- •2.1.2. Вероятностные модели шифров.
- •2.1.3. Математические модели открытых сообщений.
- •2.2. Криптографическая стойкость шифров
- •2.2.1. Теоретико-информационный подход к оценке криптостойкости шифров
- •2.2.2. Практическая стойкость шифров.
- •2.3. Имитостойкость и помехоустойчивость шифров
- •2.3.1. Имитостойкость шифров. Имитация и подмена сообщения
- •2.3.2. Способы обеспечения имитостойкости
- •2.3.3. Помехостойкость шифров
- •2.3.4. Практические вопросы повышения надежности.
- •Контрольные вопросы
- •3. Принципы построения симметричных криптографических алгоритмов
- •3.1. Виды симметричных шифров. Особенности программной и аппаратной реализации.
- •3.2. Принципы построения блочных шифров
- •3.2.1. Базовые шифрующие преобразования
- •3.2.2. Сеть Файстеля
- •3.3. Современные блочные криптоалгоритмы
- •3.3.1. Основные параметры блочных криптоалгоритмов.
- •3.3.2. Алгоритм des
- •3.3.3. Блочный шифр tea
- •Var key:tLong2x2;
- •Var y,z,sum:longint; a:byte;
- •Inc(sum,Delta);
- •3.3.4. Международный алгоритм idea
- •3.3.5. Алгоритм aes (Rijndael)
- •InverseSubBytes(s);
- •InverseShiftRows(s);
- •InverseSubBytes(s) End;
- •3.4. Принципы построения поточных шифров
- •3.4.1. Синхронизация поточных шифрсистем
- •3.4.2. Структура поточных шифрсистем
- •3.4.3.Регистры сдвига с обратной связью
- •3.4.4. Алгоритм Берленкемпа-Месси
- •3.4.5. Усложнение линейных рекуррентных последовательностей
- •3.5. Современные поточные криптоалгоритмы
- •3.5.1. Алгоритм Гиффорда
- •3.5.2. Алгоритм a5
- •3.6. Режимы использования шифров
- •Контрольные вопросы
- •4. Принципы построения асимметричных криптографических алгоритмов
- •4.1. Математические основы асимметричной криптографии
- •4.1.1. Свойства операций
- •4.1.2. Функция Эйлера. Поле. Теоремы Эйлера - Лагранжа и Ферма
- •4.1.3. Конечные поля
- •4.1.4. Основные алгоритмы
- •Алгоритм разложения чисел на простые множители.
- •4.1.5. Алгоритмы нахождения нод и мультипликативного обратного по модулю
- •4.1.6. Китайская теорема об остатках
- •4.1.7. Символы Лежандра и Якоби. Извлечение корней
- •4.2. Примеры современных асимметричных шифров
- •4.2.1. Криптосистема rsa
- •4.2.2. Взаимосвязь компонентов rsa
- •Слабые моменты реализации rsa
- •4.2.3. Криптосистема Эль-Гамаля
- •4.2.4. Криптосистема Рабина
- •4.2.5. Рюкзачные криптосистемы
- •4.2.6. Шифрсистема Мак-Элиса
- •Контрольные вопросы
- •5. Криптографические хэш-функции и электронно-цифровая подпись
- •5.1. Криптографические хэш-функции
- •5.1.1. Блочно-итерационные и шаговые функции
- •5.1.2. Ключевые функции хэширования
- •5.1.3 Бесключевые функции хэширования
- •5.1.4. Схемы использования ключевых и бесключевых функций
- •5.2. Электронно-цифровая подпись
- •5.2.1. Задачи и особенности электронно-цифровой подписи
- •5.2.2. Асимметричные алгоритмы цифровой подписи на основе rsa
- •5.2.3. Алгоритм цифровой подписи Фиата – Фейге – Шамира
- •5.2.4. Алгоритм цифровой подписи Эль-Гамаля
- •5.2.5. Алгоритм цифровой подписи Шнорра
- •5.2.6. Алгоритм цифровой подписи Ниберга-Руппеля
- •5.2.7. Алгоритм цифровой подписи dsa
- •5.2.8. Симметричные (одноразовые) цифровые подписи
- •Контрольные вопросы
- •6. Организация сетей засекреченной связи
- •6.1. Протоколы распределения ключей
- •6.1.1. Передача ключей с использованием симметричного шифрования
- •6.1.2. Передача ключей с использованием асимметричного шифрования
- •6.1.3. Открытое распределение ключей
- •6.1.4. Предварительное распределение ключей
- •6.1.5. Схемы разделения секрета
- •6.1.6. Способы установления ключей для конференц-связи
- •6.2. Особенности использования вычислительной техники в криптографии
- •6.2.1. Методы применения шифрования данных в локальных вычислительных сетях
- •6.2.2. Обеспечение секретности данных при долгосрочном хранении.
- •6.2.4. Обеспечение секретности ключей при долгосрочном хранении
- •6.2.5. Защита от атак с использованием побочных каналов
- •7.1.2. Атаки на хэш-функции и коды аутентичности
- •7.1.3. Атаки на асимметричные криптосистемы
- •7.2. Перспективные направления в криптографии
- •7.2.1. Эллиптические кривые
- •7.2.2. Эллиптические кривые над конечными полями
- •7.2.3. Алгоритм цифровой подписи ec-dsa
- •7.2.4. Квантовая криптография
- •Контрольные вопросы
- •Приложение
- •Заключение
- •Список использованной и рекомендуемой литературы
- •Учебное издание
- •Аверченков Владимир Иванович Рытов Михаил Юрьевич Шпичак Сергей Александрович
4.1.6. Китайская теорема об остатках
Для двух cравнений.
Система cравнений
при НОД(m, n) = 1 имеет единственное решение по модулю m · n, которое определяется по формулам:
Пример.
T = 7-1(mod 5) = 2-1 (mod 5) = 3 (mod 5),
u = (3 – 4) · 3 (mod 5) = 4 · 3 (mod 5) = 2 (mod 5),
x (mod 35) = 4 + 2 · 7 = 18.
Общий случай КТО.
Пусть m1, ..., mr и a1, ..., ar – целые числа, причем все mi попарно взаимно просты.
Нужно найти такой x по модулю M = m1·m2·...·mr, что
x = ai (mod mi) для всех i.
Решение единственно и равно:
где .
Пример.
M1 = 143, y1 = 5,
M2 = 91, y2 = 4,
M3 = 77, y3 = 12.
4.1.7. Символы Лежандра и Якоби. Извлечение корней
Пусть p – простое число, большее 2. Рассмотрим отображение
,
сопоставляющее каждому элементу поля его квадрат. На множестве ненулевых элементов поля Fp это отображение в точности «два-в-один», то есть если из ненулевого элемента x Fp можно извлечь квадратный корень, то таких корней у него ровно 2 и, кроме того, ровно половина элементов из являются полными квадратами. Полные квадраты в называются квадратичными вычетами по модулю p. Множество всех квадратичных вычетов по модулю p является подгруппой порядка (p – 1)/2 в мультипликативной группе . Элементы мультипликативной группы из которых нельзя извлечь квадратный корень, называются квадратичными невычетами.
Для выявления полных квадратов по модулю p вводится символ Лежандра
Он равен 0, если a делится на p, +1, если a – квадратичный вычет по модулю p, и – 1, если a – квадратичный невычет.
Символ Лежандра легко вычисляется по формуле
Но использование этой формулы сопряжено с вычислениями больших степеней и на практике предпочитают пользоваться законом квадратичной взаимности
Иначе говоря
При вычислении символа Лежандра большую помощь оказывают следующие дополнительные формулы:
Пример. С использованием разложения на множители вычислим символ Лежандра.
Извлечение квадратного корня из квадратичного вычета a по модулю p при помощи алгоритма Шенкса.
Выбрать наугад такое n, что
Пусть e, q – целые числа с нечетным q, удовлетворяющие соотношению p – 1 = 2eq.
Положим y = nq (mod p), r = e, x = a(q – 1)/2 (mod p).
Положим b = ax2 (mod p), x = ax (mod p).
Пока b 1 (mod p) делать:
найти наименьшее число m, такое, что
положить
положить
Вывести x.
Если p = 3 (mod 4), то для извлечения квадратного корня из a можно использовать формулу
формула дает правильный ответ потому, что
.
Символ Лежандра определен только в случае простого знаменателя. Если же знаменатель составной, то вводится символ Якоби, обобщающий символ Лежандра.
Пусть n – нечетное число, большее 2 и
.
Символ Якоби определяется через символы Лежандра простых делителей числа n следующим образом
Символ Якоби можно вычислять так же, как и символ Лежандра, опираясь на тождество, выведенное из закона квадратичной взаимности:
где a = 2ea1 и a1 нечетно. Полезно помнить еще несколько формул, справедливых при нечетном n:
Это дает быстрый алгоритм вычисления символа Якоби и, соответственно, символа Лежандра, как его частный случай, без разложения на множители. Единственное, что нужно сделать – выделить максимальную степень двойки.
Пример.
Символ Лежандра сообщает нам, является ли a полным квадратом по модулю простого числа p. Символ Якоби ничего не утверждает о возможности извлечения квадратного корня из a по модулю составного числа n. Если a в действительности квадрат по модулю n, то символ Якоби будет равен +1. Однако из равенства нельзя сделать вывод о том, что a – полный квадрат. Не смотря на благоприятное равенство, квадратный корень из a может не извлекаться.
Извлечение корня из числа по модулю составного n = p · q в предположении, что разложение n на простые множители известно и a – полный квадрат по модулю n, то есть
Сначала извлекается корень из a по модулю p и обозначается через sp (таких корней два, как будет показано позже). Затем извлекается квадратный корень из a по модулю q и обозначается sq (таких корней также два). Наконец, для вычисления искомого корня применяем китайскую теорему об остатках к системе
Пример. Вычислим корень из a = 217 по модулю n = 221 = 13 · 17.
Квадратные корни из a по модулям 13 и 17 соответственно равны s13 = 3 и s17 = 8. Опираясь на китайскую теорему об остатках, получаем s = 42. Проверим правильность данного решения: s2 = 422 ≡ 217 (mod 221).
Существуют еще три квадратных корня из a = 217 по модулю n = 221, поскольку n имеет два простых делителя. Для их отыскания применим КТО к трем системам с коэффициентами:
s13 = 10, s17 = 8;
s13 = 3, s17 = 9;
s13 = 10, s17 = 9
и получить полный ответ: 42, 94, 127, 179.