
- •Введение в высшую алгебру.
- •Группы.
- •Кольца.
- •Подгруппыи смежные классы.
- •Идеалы и классы вычетов.
- •Классы вычетов.
- •Идеалы и классы вычетов целых чисел.
- •Изоморфность.
- •Мультипликативная группа поля Галуа.
- •Основные положения теории чисел
- •Теорема Ферма.
- •Функция Эйлера.
- •Теорема Эйлера.
- •Классификация методов шифрования.
- •Пример обмена информацией по методу Эль-гамаля.
- •Алгоритм обмена сообщениями по Эль-гамалю (модификация дифи).
- •Алгоритм rsa
- •Алгоритм Диффи-Хеллмана. Открытое распределение ключей.
- •Вычислительные алгоритмы для криптологии. Алгоритм Евклида.
- •Расширенный алгоритм Евклида.
- •Модульные алгоритмы.
- •Модульное возведение в степень.
- •Нахождение числа, обратного по модулю.
- •Двоичный алгоритм Евклида.
- •Парадокс дней рождения.
- •Факторизация.
- •Вычисление числа по его вычетам.
- •АлгоритмМиллера-Рабина:
- •Вычисление длины периода последовательности (метод Флойда)
- •Полиномы.
- •Алгебра классов вычетов многочленов.
- •Поля галуа.
- •Поле Галуа для полиномов.
- •Свойства неприводимых многочленов.
- •Линейные переключательные схемы.
- •АлгоритмCrc:
- •Наиболее популярные магические полиномы:
- •Выбор полинома.
- •Типы ошибок:
- •Генераторы случайных последовательностей.
- •Постулаты случайности последовательностей Голомба.
- •Регистр с обратной связью.
- •Шифрование при помощи случайной последовательности (гамма-последовательности).
- •Потоковые шифры.
- •Генератор Греффе.
- •Генератор с нелинейным фильтром.
- •Сжимающий генератор.
- •Система блочного шифрования.
- •Информационная безопасность.
- •Подотчетность.
- •Гарантированность.
Вычисление длины периода последовательности (метод Флойда)
Методы вычисления длины последовательности, которые не загромождают память.
Имеется случайная функция
,
где
–произведение
двух простых чисел.
Мы не знаем, когда начался цикл.
Будем вычислять 2 последовательности:
1)
2)
Т.е. берем значения через шаг и через 2
шага. Вскоре
обгонит
.
Пока они находятся в хвосте, это не
страшно. В круге значения рано или поздно
совпадут. Мы запоминаем этот момент и
продолжаем вычисление. Пока 1 обежит
круг 1 раз, второй – 2 раза. Посчитав,
сколько шагов сделал
мы получим длину периода.
Из лаб: имеется два 16-битных регистра. Поэтому используем 2 цикла: с шагом 1 и шагом 2. Во время каждой итерации производим сдвиг каждого регистра влево на количествово бит равное числу шагов и запоминаем младший бит каждого регистра. Второй цикл вскоре начнет обгонять первый цикл и в определённые момент времени значения регистров совпадут. Определив сей факт, ждём повторного совпадения значений регистров.
Метод Брента немного эффективнее, но сложнее.
Полиномы.
F(x) – это многочлен (полином) от одной переменной x с коэффициентами из некоторого поля F.
.
Определения:
Степень многочлена – это наибольшая степень x при слагаемом с ненулевым коэффициентом. Степень нулевого многочлена равна 0 по определению.
– многочлен степени
.
Многочлен - нормированный, если коэффициент при наибольшей степени X = 1.
Многочлены можно складывать и умножать обычным путем - они образуют кольцо.
Многочлены - аддитивная абеллева группа.
Определено произведение многочленов.
Выполняется ассоциативность
Имеет место дистрибутивность
Если многочлены с R(x), S(x), T(x) и выполняется
, говорят, что R(x) – делитель многочлена T(x).
Неприводимый– многочлен P(x) степени n, который не делится ни на какой многочлен степени <n, но больше нуля.
НОД 2х многочленов – нормированный (иначе их могло быть много) многочлен наибольшей степени, который является делителем обоих многочленов.
2 многочлена взаимнопросты, если их НОД = 1.
Многочлен P(x) двойственный многочлену Q(x), если его коэффициенты расположены в обратном порядке.
Двойственный многочлен неприводимого полинома неприводим.
Примечание: если смотреть таблицы полиномов, то там приводятся либо тот, либо другой, чтобы не удваивать объем.
Степень произведения двух многочленов равна сумме их степеней.
Ненулевой полином степени 0 – элемент поля коэффициентов.
Не существует многочленов больше 0, которые имели бы обратный элемент.
Многочлен степени 0 обязательно имеет обратный элемент.
Если S(x) делится на R(x), а R(x) делится на S(x), то они отличаются самое большее – множителем из поля коэффициентов.
Доказательство:
S(x) = q(x) *R(x),
R(x) = b(x)*S(x).
У них степени равны =>степени a(x) и b(x) = 0 – это некие множители из поля коэффициентов. Т.е. это просто коэффициенты.
Для любой пары многочленов существует пара многочленов Q(x) и R(x) таких, что
– это алгоритм деления Евклида. Здесь можно выполнять деление столбиком. Степень полинома R(x) меньше, чем у D(x).
Если делитель имеет первую степень D(x) = x – a , то
.
А остаток имеет меньшую степень (степень меньше, чем 1).
Это свойство – теорема об остатке.
Если F(a)=0, т.е. a – корень многочлена F(x)=0, то R = 0 и многочлен F(a) – множитель многочлена F(x). Это теорема Безу.
Следствие к теореме Безу: т.к. степень произведения многочленов = сумме степеней сомножителей, то степень полинома F(x) по крайней мере не меньше числа корней многочлена F(x).
Следствие можно прочитать и задом наперед – количество корней полинома не больше, чем его степень.
НОД D(x) двух многочленов всегда можно представить в виде
. Это один из вариантов теоремы Безу. Следствие из алгоритма Евклида.
Сходство колец для числовых полей с этими свойствами: соотношения для чисел «<» или «>» надо заменить на соотношения для степеней полиномов.
Совокупность многочленов образует идеал тогда и только тогда, когда она содержит все многочлены, кратные некоторому многочлену. Такой идеал многочленов обозначается, как J{F(x)} в фигурных скобках.
Теорема: Каждый класс вычетов по модулю многочлена содержит либо 0, либо многочлен степени, меньшей n. 0 – элемент идеала, а многочлены степеней меньше, чем n принадлежат к различным классам вычетов.
Теперь нужно распространить модульную арифметику на полиномы.