
- •Оглавление
- •Глава 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.
Примеры решения задач
Определить среднее количество информации на одно сообщение о результатах забега на 100 метров пяти школьников (учеников 1-го, 2-го, 3-го 4-го и 10-го классов) (для не равновероятных состояний):
xi |
x1 |
x2 |
x3 |
x4 |
x5 |
P(xi) |
0.9 |
0.01 |
0.02 |
0.03 |
0.04 |
Решение. Найдем логарифм по основанию 2 для каждой вероятности.
pi |
0.9 |
0.01 |
0.02 |
0.03 |
0.04 |
Log(P(xi) |
-0,152003 |
-6,6438562 |
-5,643856 |
-5,058894 |
-4,64385619 |
pi* Log(P(xi) |
-0,136803 |
-0,0664386 |
-0,112877 |
-0,151767 |
-0,185754248 |
=-(-0,136803-0,0664386-0,112877-0,151767-0,185754248)=0,6536395280,654
5.1.3.Единицы измерения количества информации
Полученная Шенноном формула позволила вывести единицы измерения количества информации. Для этого приравняем выражение для энтропии системы к единице:
В это выражение входят следующие переменные: число возможных состояний системы n, основание логарифма a, распределение вероятностей pi. Для решения уравнения необходимо задаться из каких-либо соображений двумя переменными и вычислить третью.
Рассмотрим
физическую систему с двумя равновероятными
состояниями (n=2
и
).
Количество информации равное единице
может быть получено, если в формуле
Шеннона взять логарифм по основанию 2.
.
Следовательно, в данном случае единицей энтропии служит энтропия системы с двумя равновероятными состояниями, вычисленная с помощью логарифма с основанием два. Полученная единица количества информации, представляющая собой выбор из двух равновероятных событий (положительным и отрицательным импульсами, импульсом и паузой и т.п.), получила название двоичной единицы, или бита. Название bit образовано из двух начальных и последней букв английского выражения binary unit, что значит двоичная единица.
Бит - единица количества информации, содержащейся в одном дискретном сообщении источника равновероятных сообщений с объемом алфавита, равного двум.
Возьмем
основание логарифма равным 10-ти и
рассмотрим физическую систему с числом
n равновероятных
состояний. Определим, чему должна быть
равна переменная n,
чтобы количество информации в формуле
Шеннона было равно единице
.
Тогда
.
Поскольку отсюда следует, что
,
тогда число состояний n=10.
Итак, дит – это энтропия системы с десятью равновероятными состояниями, вычисленная с помощью логарифма с основанием десять.
Можно заметить, что основание логарифма равно числу состояний. Это – важно! Перейдем теперь к рассмотрению виртуальной системы с количеством состояний, равным натуральной единице е.
Если взять физическую систему с е состояниями, получим натуральную единицу количества информации, называемую нитом, при этом основание логарифма в формуле Шеннона равно е=2,7.
Нит - единица количества информации, содержащейся в одном дискретном сообщении источника равновероятных сообщений с объемом алфавита, равного натуральному числу e.
Взаимосвязь между единицами количества информации:
Если надо передать количество информации I, то оно может быть передано с помощью определенного количества символов. Минимальное количество символов, которое может потребоваться для передачи всей информации, обозначим nr, а реальное количество символов – n. Тогда коэффициент сжатия
,
<1 всегда.
Вместо этого коэффициента часто используются коэффициент избыточности:
.
Если с ростом n избыточность кода не меняется, то это свидетельствует об эффективности кода.
Примеры решения задач
Сколько бит информации содержится в одной букве русского алфавита?
Решение. Для упрощения положим, что всего букв 32:
log232=log225=5бит
Задачи для самостоятельного решения
Сколько бит информации содержится в одной букве латинского алфавита?
5.2. Кодирование информации
5.2.1.Код Шеннона-Фано
Под энтропией (степенью неопределённости), связанной с одним символом, подразумевается взвешенный логарифм вероятности встречи этого символа в сообщении. Для конечного множества событий (букв алфавита) X = {x1, x2, …, xn}, наступающих с вероятностью p1, p2, …, pn (pi=1), Энтропия наступления одного события (получения одного символа) равна:
Hi = -pi ln pi
Для независимых событий, энтропия последовательного наступления нескольких событий равна сумме энтропии этих событий.
Для случая отсутствия статистической взаимосвязи между буквами конструктивные методы построения эффективных кодов были даны впервые Шенноном и Фано. Их методики существенно не отличаются, и поэтому соответствующий код получил название кода Шеннона-Фано.
Рассмотрим алфавит из 8 букв. Ясно, что при обычном кодировании (не учитывающем статистических характеристик) для представления каждой буквы требуется 3 символа.
Наибольший эффект сжатия получается в случае, когда вероятности представляют собой отрицательные целочисленные степени двойки. Среднее число символов на букву в этом случае точно равно энтропии. В более общем случае для алфавита из 8 букв среднее число символов на букву будет меньше 3, но больше энтропии алфавита Н(А).
Код строится следующим образом: буквы алфавита сообщений выписываются в таблицу в порядке убывания вероятностей. Затем разделяем их на две группы так, чтобы суммы вероятностей в каждой из групп были по возможности одинаковы. Всем буквам одной половины в качестве первого символа записывается 1, а всем другой - 0. Каждая из полученных групп, в свою очередь, разбивается на две подгруппы с одинаковыми суммарными вероятностями и т.д. Процесс повторяется до тех пор, пока в каждой подгруппе не останется по одной букве.
Рассчитаем среднюю длину полученных кодовых слов по формуле:
.
Найдем также минимальную среднюю длину кодового слова по формуле:
.
Сравнивая эти два значения, можно заметить, что некоторая избыточность в последовательностях символов осталась. Из теории Шеннона следует, что эту избыточность можно устранить, если перейти к кодированию достаточно большими блоками.
Теоретический минимум Н(А) может быть достигнут при кодировании блоков, включающих бесконечное число букв.
Рассмотренная методика Шеннона-Фано не всегда приводит к однозначному построению кода, так как, разбивая на подгруппы иначе, код может оказаться не самым лучшим.
Расшифровка текста производится однозначно. В связи с этим данный код называется префиксным. Никакое кодовое слово префиксного кода не является началом другого кодового слова.