Основы теории информации и криптографии
Вид материала | Учебное пособие |
СодержаниеПолиномиальные коды |
- «Основы криптографической защиты информации», 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. Использовать примитивный многочлен с корнем . Проверить, будут ли и корнями соответственно многочленов и .