
- •Министерство образования и науки Российской Федерации
- •В.И. Аверченков, м.Ю. Рытов, с.А. Шпичак
- •Брянск Издательство бгту
- •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.2. Функция Эйлера. Поле. Теоремы Эйлера - Лагранжа и Ферма
Одна из центральных задач арифметики остатков - решение сравнения:
a · x b (mod n)
- Если НОД (a, n) = 1, то существует ровно одно решение, и оно находится с помощью a-1: так как
a · a-1 1 (mod n),
то, домножив обе части сравнения на a-1, получим
x b · a-1 (mod n).
- Если НОД (a, n) = g 1 и g | b, то сравнение имеет g решений. Чтобы их найти нужно разделить исходное сравнение на g:
a’ · x’ b’ (mod n’),
где a’ = a / g, b’ = b / g, n’ = n / g. Если x’ – решение полученного сравнения, то решение исходного сравнения - любое число вида
x = x’ + i · n’,
где i = 0, 1, ..., g – 1.
- В других случаях решений нет.
Пример:
7 · x 3 (mod 143) – одно решение,
11 · x 3 (mod 143) – решений нет,
11 · x 22 (mod 143) – 11 решений.
Ситуация с единственным решением наиболее интересна для криптологии, поэтому важно знать количество элементов кольца, взаимно простых с его модулем. Оно дается функцией Эйлера и равно (n). Значение (n) можно легко найти по разложению числа n на простые множители. Если
,
где pi – различные простые числа, то
Функция Эйлера для любого n > 2 имеет четное значение.
-
наибольшее подмножество элементов,
образующих группу по умножению #
= (n).
(количество элементов мультипликативной
группы кольца вычетов по модулю n
равно (n)).
Особый интерес представляют частные случаи:
Если p простое, то (p) = p – 1.
Если p и q – простые и p q, то (p · q) = (p – 1)(q – 1).
Если p - простое число, то любой элемент в Zp (или Z/pZ) обладает мультипликативным обратным. Кольца с такими свойствами называются полями.
Определение. Полем называется множество (F, ·, +) с двумя операциями, обладающее свойствами:
- (F, +) – абелева группа с нейтральным элементом 0,
- (F \ {0}, ·) – абелева группа с нейтральным элементом 1,
- (F, ·, +) удовлетворяет закону дистрибутивности (умножение дистрибутивно относительно сложения).
Поле
– коммутативное кольцо, в котором каждый
ненулевой элемент обратим.
Каждый ненулевой элемент кольца Zp
взаимно прост с p,
так как p
простое и, следовательно, обратим. Значит
Zp
– конечное поле, которое обычно называют
полем вычетов по модулю p
и обозначают Fp
= {0, 1, ..., p
– 1}. Мультипликативная группа
=
{1, ..., p
– 1} поля вычетов содержит все ненулевые
элементы Fp.
Теорема
Лагранжа.
.
Обобщение
Эйлера для малой теоремы Ферма.
,
при НОД(x,
n)
= 1.
Малая
теорема Ферма.
.
4.1.3. Конечные поля
Целые числа по простому модулю – не единственный пример конечных полей. Более общий тип полей используется при рассмотрении таких криптосистем как AES, поточных шифров на основе РСЛОС и криптосистем, на основе эллиптических кривых.
Рассмотрим множество многочленов от переменной x с коэффициентами из Fp. Это множество обозначается через Fp[x] и образует кольцо относительно естественных операций суммы и умножения многочленов. Особый интерес представляет случай p = 2.
Пример. В кольце F2[x] выполнены равенства:
Зафиксируем многочлен f(x) и будем рассматривать остальные элементы кольца Fp[x] по модулю f(x). Как и натуральные числа по модулю n, возможные остатки от деления на многочлен f(x), будут образовывать кольцо. Оно обозначается через Fp[x]/f(x)Fp[x] (по аналогии с Z/nZ).
Пример. f(x) = x4 + 1 и p = 2. Тогда
так как
По аналогии с целыми числами по модулю n, где рассматривалось сравнение
a · x b (mod n)
можно поставить аналогичный вопрос и для многочленов. Пусть a, b и f – многочлены из Fp[x]. Существование решения уравнения
a · b (mod f)
также зависит от НОД (a, f) и также возможны три ситуации. Наиболее интересна ситуация, когда НОД (a, f) = 1.
Многочлен называется неприводимым, если у него нет делителей, отличных от него самого и констант. Неприводимость многочленов - то же самое, что и простота целых чисел. Кольцо Fp[x]/f(x)Fp[x] является конечным полем тогда и только тогда, когда многочлен f(x) неприводим.
Рассмотрим два неприводимых многочлена над полем F2
и
.
Возникают два конечных поля
F1 = Fp[x]/f1(x)Fp[x] и F2 = Fp[x]/f2(x)Fp[x],
каждое состоит из 27 двоичных многочленов (каждый имеет ровно 7 коэффициентов равных 1 или 0), степень которых не превосходит 6. Сложение в обоих полях выглядит одинаково, поскольку при вычислении суммы складываются коэффициенты многочленов по модулю 2. А вот умножаются элементы этих полей по разному:
Действительно ли различны поля F1 и F2 или это только кажущееся различие?
Изоморфны ли поля F1 и F2?
Изоморфизм: отображение : F1 F2, удовлетворяющее двум требованиям:
Для построения изоморфизма между F1 и F2 достаточно показать как выражается корень f2(x) в виде многочлена от корня f1(x).
Изоморфизм существует между любыми двумя конечными полями с одинаковым числом элементов. Все конечные поля совпадают либо с целыми числами по простому модулю, либо с многочленами по модулю неприводимого многочлена.
Теорема. Существует единственное (с точностью до изоморфизма) конечное поле с числом элементов равным степени простого числа.
Конечное поле из q = pd элементов обозначается символом Fq или GF(q) (поле Галуа из q элементов).
Любое конечное поле K содержит в себе экземпляр поля целых чисел по некоторому простому модулю p, который называется простым подполем поля K. Число элементов простого подполя называется характеристикой поля и обозначается через char K. В частности char Fp = p. На конечном поле характеристики p можно определить отображение Фробениуса:
Ф: Fq Fq, Ф() = (p)
которое является автоморфизмом (изоморфизмом поля с самим собой). Множество элементов из Fq, остающихся неподвижными при действии Ф, совпадает с его простым подполем:
{ Fq| p = } = Fp.
Это утверждение – обобщение малой теоремы Ферма на случай любых конечных полей.
Ненулевые
элементы конечного поля составляют
конечную абелеву циклическую группу
.
Образующая этой группы называется
примитивным
элементом
конечного поля. Примитивный элемент
есть в любом конечном поле, их может
быть и несколько. Всегда можно найти
такой элемент g
Fq,
что любой ненулевой элемент
Fq
будет представляться в виде
= gx
при некотором целом показателе x.
Пример. В поле из восьми многочленов
.
В нем существует 7 ненулевых элементов, а именно
1, , + 1, 2, 2 + 1, 2 + , 2 + + 1,
где - корень многочлена x3 + x + 1 (искусственно введенный элемент, удовлетворяющий соотношению 3 + + 1 = 0, в котором все действия выполняются по модулю 2).
Тогда:
1 = ,
2 = 2,
3 = + 1,
4 = 2 + ,
5 = 2 + 1,
6 = 2 + + 1,
7 = 1
и
- примитивный элемент поля
.
Целые числа по модулю p
также имеют примитивный элемент, так
как Fp
– конечное поле.