
- •Оглавление
- •Глава 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.
Примеры решения задач
Найдите размерность поля многочленов GF(х3+1) над числовым полем GF(2), множество всех многочленов этого поля и произведение двух произвольных элементов поля по mod х3+1.
Решение. Характеристика числового поля GF(2) р=2. Она определяет размерность поля многочлена GF(х3+1): q= pn=23=8 (3 – степень многочлена х3+1). Т.о., множество всех многочленов этого поля состоит из 8-ми элементов: {0, 1, x, x+1, x2, x2+1, x2+x, x2+x+1 }. Каждому элементу этого множества можно поставить в соответствие либо двоичное число: {000,001,010,011,100,101,110,111}, либо десятичное {0,1,2,3,4,5,6,7}.
Перемножим два произвольных элемента:
(x2+1) x2= x4+ x2= x4+ x2+0 =x4+ x2+2х= x4+х+x2+х=х(x3+1)+(x2+х)=x2+х.
Задачи для самостоятельного решения
Найдите размерность поля многочленов GF(х2+х+1) над числовым полем GF(2), множество всех многочленов этого поля и произведение двух произвольных элементов поля по mod х2+х+1.
Найдите размерность поля многочленов GF(х4+х3+1) над числовым полем GF(2), множество всех многочленов этого поля, сумму и произведение двух произвольных элементов поля по mod х4+х3+1.
Построить таблицы сложения и умножения для поля многочленов GF(х2+х+1) над числовым полем GF(2).
Построить таблицы сложения и умножения для поля многочленов GF(х3+1) над числовым полем GF(2).
Найдите размерность поля многочленов GF(х2+х+2) над числовым полем GF(3), множество всех многочленов этого поля и составьте таблицы сложения и умножения для элементов этого поля.
7.2.4.Поиск неприводимых многочленов поля gf(g(X)) над полем gf(р)
Пусть дано некоторое поле многочленов GF(q(х)) над числовым полем с характеристикой р, причем многочлен q(х) степени n. Обозначим через g1(x), g2(x), …, gq-1(x) различные неприводимые многочлены, отвечающие примитивным корням: с1, с2, …, сq-1.
Утверждение. Существует единственно возможное разложение многочлена xq-1-1 на множители gi(x); или, что одно и то же, каждый элемент сi является корнем многочлена xq-1-1; или, наконец, любой приводимый многочлен этого поля можно представить в виде произведения порождающего g(x) и проверочного h(x) многочленов.
где
Для проверочного многочлена h(x) берутся те степени сj, которые не вошли в многочлен g(x).
Если с – примитивный корень многочлена g(x), то g(с)=g0+g1c+g2c2+…+gncn=0. Выразим из неё gncn (учитываем, что gn=1). Получим формулу, с помощью которой можно найти степени корней cn, cn+1 и т.д.:
cn=g0+g1c+g2c2+…+gn-1cn-1,
cn+1=c cn= g0c+g1c2+g2c3+…+gn-1cn.
Алгоритм построения неприводимых многочленов в заданном поле.
Записать порождающий многочлен g(x) в виде произведения
, где с – примитивный корень, р – характеристика числового поля, q=pn, n – степень многочлена модуля q(x).
В таблицу неприводимых многочленов, которую мы создаем, напротив степеней
записываем многочлен q(x) и выражаем все остальные степени сi через с1, с2, …, сn-1.
Ищем неприводимые множители. Для этого:
Берем произвольный корень a=ci, niq-1, тогда
(*).
Находим выражение
через ci и подставляем в (*).
Раскрываем скобки, приводим подобные слагаемые (все действия выполнятся в поле многочленов по заданному модулю), в результате получим некоторый неприводимый многочлен степени не выше n и запишем его в таблицу против корней .
Пункты а-с продолжаем выполнять до тех пор, пока не заполним всю таблицу.
Выполним проверку:
.