Основы теории информации и криптографии
| Вид материала | Учебное пособие |
СодержаниеПолиномиальные коды |
- «Основы криптографической защиты информации», 173.19kb.
- О спектральных свойствах дискретного преобразования фурье, 34.99kb.
- Задача надежной защиты информации от несанкционированного доступа является одной, 269.92kb.
- Методические указания по изучению теоретической части Чебоксары 2009, 330.7kb.
- Программа дисциплины теоретические основы информатики (дпп. Ф. 08) для специальности, 125.07kb.
- Рабочей программы учебной дисциплины (модуля) Основы математической обработки информации, 44.43kb.
- Темы курсовых работ по дисциплине «Криптографические методы защиты информации», 14.86kb.
- Примерная программа наименование дисциплины: «Теоретико-числовые методы в криптографии», 222.72kb.
- «Основы обработки графической информации с помощью пк. Графический редактор Paint», 95.66kb.
- Учебная программа по дисциплине криптографические методы защиты информации федосеев, 33.76kb.
Полиномиальные коды
При полиномиальном кодировании каждое сообщение отождествляется с многочленом, а само кодирование состоит в умножении на фиксированный многочлен. Полиномиальные коды - блочные и отличаются от рассмотренных ранее только алгоритмами кодирования и декодирования.
Пусть
- двоичное сообщение. Тогда сопоставим ему многочлен
. Все вычисления происходят в поле классов вычетов по модулю 2, т. е. от результата любой арифметической операции берется остаток от его деления на 2. Например, последовательности 10011 при
соответствует многочлен
.Зафиксируем некоторый многочлен степени
, 
Полиномиальный код с кодирующим многочленом
кодирует слово сообщения
многочленом
или кодовым словом из коэффициентов этого многочлена
. Условия
и
необходимы, потому что в противном случае
и
не будут нести никакой информации, т.к. они всегда будут нулями. Пример. Рассмотрим кодирующий многочлен
. Сообщение 01011, отвечающее многочлену
, будет закодировано коэффициентами многочлена
, т.е.
.Полиномиальный код с кодирующим многочленом
степени
является матричным кодом с кодирующей матрицей
размерности
: 
Т е. ненулевые элементы в
-й строке - это последовательность коэффициентов кодирующего многочлена, расположенных с
-го по
-й столбцах. Например,
-код с кодирующим многочленом
отвечает матрице 
или отображению:
;
;
;
;
;
;
;
. Полиномиальные коды являются групповыми.
Это следует из того, что коды, получаемые матричным кодированием, - групповые.
Рассмотрим
-код с кодирующим многочленом
. Строка ошибок
останется необнаруженной в том и только в том случае, если соответствующий ей многочлен
делится на
.Действительно,
делится на
тогда и только тогда, когда
делится на
. Поэтому любая ошибка, многочлен которой не делится на
, будет обнаружена и, соответственно, любая ошибка, многочлен которой делится на
, не может быть обнаружена.Таким образом, обнаружение ошибки при использовании полиномиального кода с кодирующим многочленом
может быть реализовано при помощи алгоритма деления многочленов с остатком: если остаток ненулевой, то при передаче произошло искажение данных.Коды Хэмминга можно строить как полиномиальные, например, кодирующий многочлен
определяет совершенный
-код, отличный от рассмотренного ранее. Вообще же, если кодирующий многочлен
, порождающий соответствующий
-код, не является делителем ни одного из многочленов вида
при
, то минимальное расстояние между кодовыми словами порожденного им кода не меньше 3.Пусть
- минимальное расстояние между кодовыми словами, оно равно минимуму среди весов ненулевых кодовых слов. Предположим
. Тогда существует
такой, что
и степень
не больше
. Вес
равен 2, поэтому
и
. Следовательно,
, что означает, что
должен делиться на
, а это невозможно по условию. Если предположить, что
, то это приведет к утверждению о том, что
должен делиться на
, что тоже противоречит условию. Итак,
.Кодирующий многочлен
определяет совершенный
-код Голея (Golay) с минимальным расстоянием между кодовыми словами 7. В 1971 году финскими и советскими математиками было доказаноссылка скрыта, что кроме кодов Хэмминга и Голея других совершенных кодов нет.
Наиболее интересными среди полиномиальных кодов являются циклические коды, в которых вместе с любым кодовым словом вида
есть кодовое слово
. Упражнение 43 По кодирующему многочлену
построить полиномиальные коды для двоичных сообщений 0100, 10001101, 11110. Упражнение 44 Принадлежат ли коду Голея кодовые слова 10000101011111010011111 и 11000111011110010011111?
10. Лекция: Понятие о кодах Боуза-Чоудхури-Хоккенгема
Рассказывается методика построения кодов, минимальное расстояние между кодовыми словами которых равно заданному числу. Математическое обосновании кодов Боуза-Чоудхури-Хоккенгема, упражнения для самопроверки. Рассматриваются циклические избыточные коды(CRC) и их применение на практике
Остался открытым вопрос о методике построения кодов, минимальное расстояние между кодовыми словами которых равно заданному числу. В 1960 году независимо Боуз (Bose), Чоудхури (Chaudhuri) и Хоккенгем (Hocquengem) открыли способ построения полиномиальных кодов, удовлетворяющих таким требованиям. Эти коды получили названия кодов Боуза-Чоудхури-Хоккенгема или БЧХ-кодов (BCH codes). БЧХ-коды могут быть не только двоичными, например, на практике достаточно широко используются недвоичные коды Рида-Соломона (Reed, Solomon), но далее будут рассматриваться только двоичные.
Многочлен
степени
называется примитивным, если
делится на
без остатка для
и не делится ни для какого меньшего значения
.Например, многочлен
примитивен: он делит
, но не делит
при
. Примитивен также многочлен
- он делит
, но не делит
при
.Кодирующий многочлен
для БЧХ-кода, длина кодовых слов которого
, строится так. Находится примитивный многочлен минимальной степени
такой, что
или
. Пусть
- корень этого многочлена, тогда рассмотрим кодирующий многочлен
, где
- многочлены минимальной степени, имеющие корнями соответственно
.Построенный кодирующий многочлен производит код с минимальным расстоянием между кодовыми словами, не меньшим
, и длиной кодовых слов n [1].Пример. Нужно построить БЧХ-код с длиной кодовых слов
и минимальным расстоянием между кодовыми словами
. Степень примитивного многочлена равна
и сам он равен
. Пусть
- его корень, тогда
и
- также его корни. Минимальным многочленом для
будет
. Следовательно, 

Степень полученного многочлена равна 8, следовательно, построенный БЧХ-код будет
-кодом. Слово 1000100 или
будет закодировано кодовым словом
или 111001100000100. Можно построитьссылка скрыта двоичный БЧХ-код с кодовыми словами длины
и нечетным минимальным расстоянием
, у которого число контрольных символов не больше
.Первый БЧХ-код, примененный на практике, был
-кодом, исправляющим ошибки кратности до 5, но наиболее широкое распространение получил
-код, обнаруживающий ошибки кратности до 6.БЧХ-коды умеренной длины не слишком далеки от совершенных или квазисовершенных кодов. Коды Хэмминга, например, являются БЧХ-кодами, а БЧХ-коды с минимальным весом кодового слова 5 - квазисовершенны. Но с ростом длины кодовых слов качество БЧХ-кодов падает. Код Голея, например, - это не код БЧХ.
Упражнение 45 Найти кодирующий многочлен БЧХ-кода
с длиной кодовых слов 15 и минимальным расстоянием между кодовыми словами 7. Использовать примитивный многочлен
с корнем
. Проверить, будут ли
и
корнями соответственно многочленов
и
. 