logo search
Дискретная математика / ДМиМЛ-1 часть

10.5. Кодирование с использованием циклических кодов и математического аппарата умножения и деления полиномов. Сигнатурный анализ

Циклический код.

Циклический код обязан своим названием особенности: если некоторая кодовая комбинация принадлежит множеству разрешённых комбинаций, то и комбинация, полученная циклической перестановкой разрядов тоже принадлежит множеству разрешённых комбинаций.

Существует соответствующий математический аппарат умножения и деления полиномов, основным понятием которого является полином, например, третьей степени:

G(x3)=x3+x+1.

Циклические коды позволяют обнаружить не только одиночные, но и групповые ошибки. Такие коды используются при тестировании цифровой аппаратуры, чтобы обнаружить отказы в схемах и при криптографической защите информации.

Идея построения циклического кода основана на понятии неприводимого многочлена, который делится только на себя и на единицу:

G(x2)=x2+x+1;

G(x)=x+1;

G(x16)=x16+x9+x7+x4+1.

По существу, используется так называемое поле Галуа – алгебра с двумя операциями: умножением и сложением по модулю 2 (GF(2)).

Умножение полиномов.

Некоторый полином x3+1 можно записать в развёрнутой форме:

Здесь коэффициенты принимают значения из бинарного множества.

Умножение производится по правилам обычной алгебры, например:

3+1)х=х4+х, т.е. получили:

Это сдвиг на один разряд вправо.

С учетом использования операции сложения по модулю 2, одинаковые разряды при сложении уничтожаются.

Рассмотрим пример умножения информационного полинома А=х3+1 на порождающий (образующий) полином G=х3+х+1.

Аналитически процесс умножения можно представить так:

Процесс умножения в развернутом виде показан в табл. 66.

Таблица 66

Умножение A на образующий полином G

х6

х5

х4

х3

х2

х

1

А1

х3

1

Аx

х4

х

Аx3

х6

х3

АG

х6

х4

х

1

Проведем умножение в двоичном коде:

х6пр х5пр х4пр х3пр х2пр хпр 1пр – порядок следования разрядов произведения (пр).

Получим уравнения для произведения многочленов, при условии, что множитель G «жестко задан», а полином А – любой, – степени три:

Амн3мн х2мн хмн 1мн – это переменные множимого (мн)-полинома

третьей степени.

G= 1 0 1 1 – множитель (образующий полином).

Процесс умножения в развернутом виде показан в табл. 67.

Таблица 67

0

х3мн

0

х2мн

х3мн

0

хмн

х3мн

х2мн

0

1мн

х2мн

хмн

0

хмн

1мн

1мн

х3мн

х2мн

х3мн Å хмн

х3мн Åх2мн Å1мн

х3мн Å хмн

хмн Å1мн

1мн

Умножение A на образующий полином G

х6пр х5пр х4пр х3пр х2пр хпр 1пр

Т.е. уравнения, описывающие значения разрядов произведения, в зависимости от значения разрядов множимого при условии «жестко заданного» множителя имеют вид:

Эти уравнения позволяют определить вид соответствующего устройства – умножителя полиномов, основанного на D-триггерах и элементах сложения по модулю 2.

Деление полиномов.

По аналогии с умножением вводится операция деления полиномов.

При делении необходима операция вычитания по модулю 2, однако результат этой операции совпадает с результатом суммы по модулю 2.

Например:

Здесь используется суммирование по модулю 2, поэтому х66=0, аналогично х44=0, х33=0, х+х=0, 1+1=0.

Деление полиномов можно выполнять последовательными вычитаниями по модулю 2.

Можно показать, что если А – делимое (дл), G – делитель, то разряды частного (чст) определяются так:

1чст3длÅх5длÅх6дл

хчст4длÅх6дл

х2чст5дл

х3чст6дл

Остаток:

1ост=1длÅх3длÅх5длÅх6дл

хостдлÅх3длÅх4длÅх5дл

х2ост2длÅх4длÅх5длÅх6дл

Нулевой остаток указывает на отсутствие ошибки. Такие уравнения позволяют построить схемы – делители на образующий полином.

Принципы контроля передачи информации.

Принцип 1.

Перед передачей информации канал связи исходящего полинома умножается на образующий полином (AG = K).

В канале связи на произведение К воздействует вектор ошибок Е: КÅЕ=К*.

В приёмнике выполняется деление: К*/G=A*. Если остаток нулевой, то ошибки нет, и принятое слово А* – это достоверная информация, а если остаток не равен нулю, то информацию использовать нельзя.

По виду остатка можно определить и вид ошибки.

Принцип 2.

Передаётся сам полином и следом – остаток от деления его на образующий полином.

А||R, R=A/G, где || – операция конкатенации (соединения).

Потом остатки сравниваются, – если они равны, то информацию можно использовать далее.

Имеются циклические коды, которые позволяют обнаружить:

1) одиночные ошибки;

2) групповые ошибки.

Существуют коды БЧХ, Файра для обнаружения групповых ошибок [14].

Кодеры, декодеры, использующие эти принципы, применяются для записи информации на магнитные и оптические диски. Узлы умножения и деления полиномов широко используются при криптографической защите данных. Дело в том, что информация, умноженная на образующий полином, может быть расшифрована только, если злоумышленник знает этот полином.

Сигнатурный анализ.

Сигнатура в переводе с латинского – подпись, запись. Это некоторый код, получение которого позволяет судить о работоспособности цифровых схем.

Используется при анализе работоспособности цифровых схем.

Чтобы получить сигнатуру работоспособной схемы для заданного вида отказа, нужно последовательность ее выходных сигналов, представляющую некоторый полином, разделить на образующий полином. При этом получится некоторый остаток от деления, который гораздо короче выходного полинома схемы. Этот остаток и есть сигнатура, которая для работоспособной схемы одна, а для схемы с отказом – другая. Путем определения сигнатур с помощью устройств – сигнатурных анализаторов, использующих узлы умножения и деления полиномов, определяют место отказа. Такой принцип используется в микропроцессорах при проверке работоспособности схем управления после включения питания. Узел имеет отказ, если входная сигнатура правильная, а выходная нет.