
- •Оглавление
- •Глава 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(q(х)) по модулю неприводимого многочлена g(x)=х3+х+1 над числовым полем GF(2) составить таблицу неприводимых многочленов, записать порождающий многочлен, проверочный многочлен, каноническое разложение многочлена х7+1 и неканоническое в виде g(x)h(x).
Решение.
g(x)=х3+х+1
– многочлен
3 степени, т.е. n=3.
Характеристика числового поля р=2. Тогда
q=23=8,
а неприводимый многочлен g(x)=
,
где с – примитивный
корень.
Запишем
в таблицу неприводимых многочленов
напротив степеней
многочлен g(x)=х3+х+1.
Выразим остальные степени через :
Обший вид многочлена g(х)=g0+g1х+g2х2+g3х3, т.е. g0=1, g1=1, g2=0, g3=1.
Воспользуемся формулами:
cn=g0+g1c+g2c2+…+gn-1cn-1,
cn+1=c cn.
c3=g0+g1c+g2c2=1+1 с+0 с=с+1;
с4= g0c+g1c2+g2c3=1 с+1 с2+0 с3= с2+с;
с5= g0c2+g1c3+g2c4=1 с2+1 с3+0 с4= с3+с2=с2+(с+1), т.к. c3=с+1;
с6= g0c3+g1c4+g2c5=1 с3+1 с4+0 с5= с4+с3=(с2+с)+(с+1)=с2+1;
с7= g0c4+g1c5+g2c6=1 с4+1 с5+0 с6= с5+с4=(с2+с+1)+(с2+с)=1;
сi |
Выражение сi через : |
gi(x) |
c1 |
c |
х3+х+1 |
c2 |
c2 |
х3+х+1 |
c3 |
с+1 |
|
c4 |
с2+с |
|
c5 |
с2+с+1 |
|
c6 |
с2+1 |
|
c7 |
1 |
|
Ищем остальные неприводимые множители:
Пусть а=с3= с+1, тогда а2=(с3)2 mod 7=c6= с2+1.
a4=(с3)4 mod 7=c12-7=c5= с2+с+1.
Тогда
можно записать
=
=(х2-х(c6+с3)+с9)(х-с5)=(х2-хс2-хс3)+с9-7)(х-с5)=(х2-хс2-хс3+с2)(х-с5)=х3-х2с5-х2с6+хс6с5-х2с3+хс3с5+хс2-с7=х3-х2(с5+с6+с3)+х(с11+с8+с2)-с7=х3-х2(с2+с+1+с2+1+с+1)+х(с2+с+с+с2)-с7=
х3-х2-1.
Следовательно, против корней 3, 5, 6 ставим
неприводимый многочлен х3+х2+1.
Пусть а=с4= с2+с, тогда а2=(с4)2 mod 7=c8-7=с.
a4=(с4)4 mod 7=c16-27=c2.
Тогда
можно записать
=
=(х2-хс-хс4+с5)(х-с2)=х3-х2с2-х2с+хсс2-х2с4+хс4с2+хс5-с7=х3-х2(с2+с+с4)+х(с3+с6+с5)-с7=х3-х2(с2+с+с2+с)+х(с+1+с2+1+с2+с+1)-с7=
х3+х-1.
Следовательно, против корней 1, 2, 4 ставим
неприводимый многочлен х3+х+1.
Число -1 mod
2=1.
Для с7 многочлен легко подобрать, нужен такой многочлен, чтобы при подстановке туда значения 1 получить ноль. Это х+1.
В итоге, получаем таблицу:
сi |
Выражение сi через : |
gi(x) |
c1 |
c |
х3+х+1 |
c2 |
c2 |
х3+х+1 |
c3 |
с+1 |
х3+х2+1 |
c4 |
с2+с |
х3+х+1 |
c5 |
с2+с+1 |
х3+х2+1 |
c6 |
с2+1 |
х3+х2+1 |
c7 |
1 |
х+1 |
Каноническое разложение многочлена:
х7+1=(х+с)(х+с2)(х+с3)(х+с4)(х+с5)(х+с6)(х+с7).
Неканоническое (разложение на простые, неприводимые множители):
х7+1=(х3+х+1)(х3+х2+1)(х+1).
Разложение в виде двух сомножителей g(x) и h(x) выглядит так:
х7+1=(х3+х+1)(х4+х2+х+1).