
- •Оглавление
- •Глава 5. Основы математической теории информации 58
- •Глава 6. Элементы теории чисел 74
- •6.2.1. Основные определения 83
- •Глава 7. Алгебраические структуры 87
- •Введение
- •Глава 1.Введение
- •1.1.Основные понятия криптографии
- •1.1.1.История развития криптографии
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •1.1.2.Сложность алгоритмов
- •1.1.3.Стойкость криптографических систем
- •Глава 2.Элементы теории множеств
- •2.1.Основные понятия теории множеств
- •2.1.1.Обозначения и способы задания множеств
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •2.1.2.Операции над множествами
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •2.1.3.Прямое произведение множеств
- •П римеры решения задач
- •Задачи для самостоятельного решения
- •2.2.Отношения между множествами
- •2.2.1.Определение бинарных отношений
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •2.2.2.Представление бинарных отношений в виде графа, матрицы
- •Примеры решения задач
- •Построенная таблица есть таблица бинарного отношения. Задачи для самостоятельного решения
- •2.2.3.Свойства бинарных отношений, отношение эквивалентности
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •Вопросы для повторения
- •Глава 3.Булева алгебра
- •3.1.Булевы функции
- •3.1.1.Понятие булевой функции
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •3.1.2.Суперпозиция функций
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •3.1.3.Двойственные функции
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •3.1.4.Логические схемы
- •Примеры решения задач
- •3.2.Нормальные формы
- •3.2.1.Разложение функций по переменным
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •3.2.2.Минимизация нормальных форм, карты Карно
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •Полиномы Жегалкина, алгоритм их построения для произвольных функций
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •3.3.Полные системы функций
- •3.3.1.Полнота множества функций
- •Примеры решения задач
- •Глава 4.Элементы теории графов
- •4.1.Основные понятия теории графов
- •4.1.1.Способы задания графов, основные определения
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •4.1.2.Числовые характеристики графов
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •4.1.3.Операции с графами
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •4.1.4.Изоморфизм графов
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •4.1.6.Расстояния в графе, центры графа
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •4.1.7.Эйлеровы циклы
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •4.1.8.Алгоритм построения Эйлерова цикла
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •4.1.9.Гамильтоновы циклы
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •4.1.10.Алгоритм построения гамильтонова цикла в графе
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •4.2.2.Алгоритм Краскала для построения минимального остовного дерева
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •4.2.3.Обходы дерева
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •Задачи для повторения
- •Вопросы для повторения
- •Глава 5.Основы математической теории информации
- •5.1.Меры информации
- •5.1.1.Мера Хартли
- •Примеры решения задач
- •5.1.2.Мера Шеннона
- •Примеры решения задач
- •5.1.3.Единицы измерения количества информации
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •5.2.2.Код Хаффмана
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •5.3. Помехоустойчивое кодирование
- •5.3.1. Код с проверкой на четность
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •5.3.2.Коды с повторением
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •5.3.3.Групповой код Хемминга
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •5.3.4.Помехозащищенность кода
- •Примеры решения задач
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •6.1.2.Теорема о делении с остатком. Алгоритм Евклида
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •6.1.3.Отношение сравнимости
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •6.1.4.Алгебра вычетов
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •6.1.5.Решение сравнений вида ахb(mod m)
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •6.1.6.Применение алгебры вычетов к простейшим шифрам
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •6.1.7.Построение и использование хеш-функций
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •Задачи для повторения
- •6.2.Алгебра многочленов
- •6.2.1.Основные определения
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •6.2.2.Нод многочленов
- •Примеры решения задач
- •Задачи для самостоятельного решения.
- •6.2.3.Разложение многочлена на множители
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •Вопросы для повторения
- •Глава 7.Алгебраические структуры
- •7.1.Основные понятия и свойства алгебраических структур
- •7.1.1.Алгебра
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •7.1.2.Группа
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •7.1.3.Кольцо
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •7.1.4.Поле
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •7.1.5.Конечные поля
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •7.2.Многочлены над конечными полями
- •7.2.1.Каноническое разложение многочлена
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •7.2.2.Порядок многочлена над конечным полем
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •7.2.3.Сравнение многочленов по данному модулю
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •7.2.4.Поиск неприводимых многочленов поля gf(g(X)) над полем gf(р)
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •7.3.Генераторы псевдослучайных последовательностей
- •7.3.1.Понятие псевдослучайной последовательности чисел
- •7.3.2.Практические методы получения псевдослучайных чисел
- •Задачи для самостоятельного решения
- •7.3.3.Понятие линейной последовательности
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •7.3.4. Периодичность линейных рекуррентных последовательностей
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •7.3.5.Связь линейных рекуррентных последовательностей над конечными полями с многочленами
- •Примеры решения задач
- •Задачи для самостоятельного решения
- •Вопросы для повторения
- •214018, Г. Смоленск, проспект Гагарина, 56, т.: (0812) 55 – 41 – 04.
7.1.5.Конечные поля
Для простого числа Р обозначим через FP множества {0,1,2,...,P -1} целых чисел. Тогда множество FP со структурой поля, называется полем Галуа порядка P. (Такое поле еще обозначают GF(p) – аббревиатура от слов Galois и Field(поле)).
Особенный интерес представляют неприводимые многочлены степени n, у которых коэффициенты взяты из числового поля GFp, где p – простое число.
Французский математик Эварист Галуа (1811 -1832гг) создал теорию (теорию поля Галуа), доказывающую существование неприводимых многочленов сколь угодно большой степени, но поиск таких многочленов - очень сложная задача, и криптографические службы всего мира ведут активную работу по поиску таких многочленов, но эти работы засекречены. Известен неприводимый многочлен степени 61: x61+ x3+1.
В связи с использованием для вычислений ЭВМ не менее важным является поле Галуа из элементов {0,1}, обозначаемое GF(2N) и соответствующее строкам данных длиной N бит. Такие строки бит удобно рассматривать в виде многочленов. Например, байт из 8 бит можно представить (10010101)=x7+x4+x2+1.
Существует связь между отсутствием или несуществованием корней и неприводимостью многочленов. Если f(x) - неприводимый многочлен степени n2, то он не имеет корней в поле F. Обратное утверждение справедливо только для многочленов степени 2 и 3.
Примеры решения задач
Найдите сумму и произведение многочленов а(х)=х3+х+1 и b(х)=х2+х+1 в поле GF(2).
Решение. Не забывайте, что все коэффициенты, полученный при обычном сложении и умножении многочленов, рассматриваются по модулю 2:
а(х)+ b(х)= х3+х2; а(х) b(х)= х5+х4+1.
Найдите неприводимые многочлены степени 2 и 3 над конечным полем F2.
Решение. Можно найти неприводимые многочлены степени 2 и 3 над конечным полем F2, путем исключения из всей совокупности многочленов указанной степени, тех многочленов, которые имеют корни в поле F2.
Напомним, что элементами поля F2 являются {0,1}. Тогда многочлены степени 2: f1=x2+1, f2=x2+x, f3=x2+x+1. Подставляя в них вместо x элементы поля GF(r), т.е. 0 или 1, получим: f1=0 при x=1,
f2=0 при x=1 и x=0,
f30 при любом x{0,1}.
У f3 корней нет, значит он неприводим.
Тоже самое и для многочленов степени 3: f1=x3+x2+x+1, f2=x3+x2+1, f3=x3+x+1, f4=x3+x2+x, f5=x3+x 2…
Ответ: имеется только один неприводимый многочлен степени 2: f(x)=x2+x+1 и два неприводимых многочлена степени 3: f(x)=x3+x+1, x3+x2+1.
Задачи для самостоятельного решения
Найдите сумму, произведение и частное многочленов а(х)=х3+1 и b(х)=х4+х+1 в поле GF(2) и GF(3).
Найдите сумму, произведение и частное многочленов а(х)=3х4+х3+1 и b(х)=2х4+2х2+3х+1 в поле GF(4)и GF(5).
Найти НОД и НОК двух многочленов с коэффициентами из числового поля GF(3): а(х)=х6+2х3+х2+2х+1 и b(х)=х5+х4+х3+х2+х+1.
Примечание: НОК(а, b)=(а b)/НОД(а, b).
7.2.Многочлены над конечными полями
7.2.1.Каноническое разложение многочлена
Для
любого многочлена f(x)
положительной степени с коэффициентами
из Fq
существует каноническое разложение
.
где
- различные нормированные неприводимые
делители многочлена f(x);
е1, е2,…еk
- натуральные числа.
Для этого, применяя алгоритм Евклида, найдем многочлен, d(x)=НОД(f(x),f /(x)) т.е. наибольший общий делитель f(x) и его производной f /(x).
Если d(x)=1, то известно, что f(x) не имеет кратных сомножителей (существует соответствующая теорема, доказывающая этот факт).
Если
d(x)=f(x),
то очевидно (т.к. f /(x)<
f(x))
f /(x)=0,
а это значит, что f(x)=g(x)p
для некоторого многочлена g(x),
где р - характеристика поля Fq.
Указанную процедуру редукции можно
при необходимости повторить и для g(x)
пока не получим представление
,
где h/(x)0.
Если d(x) отличен от 1 и от f(x) он является нетривиальным делителем f(x) и тогда многочлен f(x)/d(x) не имеет кратных неприводимых сомножителей. Мы придем к разложению f(x), разложив по отдельности многочлены меньшей степени d(x) и f(x)/d(x). Если d(x) все еще имеет кратные сомножители, для него повторяем указанный процесс редукции.
Таким образом, применяя описанную процедуру, нужное число раз, мы сведем исходную задачу к задаче разложения некоторого числа многочленов, не имеющих кратных неприводимых сомножителей. Канонические разложения этих многочленов сразу приведут к каноническому разложению исходного многочлена f(x).