Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_Kachestvo_Vyichislitelnyih_i_informatsionnyih_sistem.doc
Скачиваний:
5
Добавлен:
28.06.2024
Размер:
359.42 Кб
Скачать

Помехозащищенное кодирование информации

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

В технических системах корректирующие коды получили чрезвычайно широкое применение: в настоящее время, вероятно, нет ни одной эффективно функционирующей сложной технической информационной системы, где бы многократно не использовались эти коды. В современных компьютерах, например, на основе кодов с обнаружением и кодов с автоматическим исправлением ошибок, строится весьма разветвленный контроль достоверности многих блоков (ранее уже упоминалось об использовании в накопителях CD и DVD корректирующих кодов Рида-Соломона, в дисковых массивах RAID — циклических кодов с исправлением ошибок, в технологии SMART и в модулях оперативной памяти – кодов Хэмминга с исправлением ошибок и т.д.).

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

Познакомимся кратко с основами построения корректирующих кодов в произвольной системе счисления.

По общности построения корректирующих кодов все операции по преобразованию информации можно разделить на два класса.

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

  • Преобразования информации, в которых входные и выходные слова в общем случае не совпадают: арифметические и логические операции над информацией.

Для разработчиков и пользователей ИС наибольший интерес представляют корректи­рующие коды для преобразований 1-го класса, так как преобразования 2-го класса почти все выполняются внутри компьютера, где для обеспечения достоверности используются двоичные корректирующие коды, в том числе и арифметические. Во внемашинной сфере более предпочтительны недвоичные корректирующие коды, десятичные и буквенно-цифровые, в частности.

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

Корректирующая способность кода, также как и метода контроля, определяется условными вероятностями (коэффициентами необнаружения, обнаружения, искажения или исправления) соответствующего класса ошибок: Кно, Кобн, Киск, Киспр.

Основная идея обнаружения и исправления ошибок преобразования информации с использованием корректирующих кодов состоит в следующем.

При обнаружении ошибок все множество входных и выходных слов ИС преобразо­вания разбивается на две категории: разрешенных слои множества и запрещенных слов множества. Если в результате преобразования получаем выходное слово, относящееся к категории разрешенных слов, считаем, что операция выполнена правильно; если выходное слово относится к категории запрещенных слов, значит, при выполнении преобразования была допущена ошибка.

Используем понятие кодового расстояния между словами (кодовыми словами). Кодовое расстояние – d – между двумя словами равно числу разрядов, в которых рассматриваемые слова различаются между собой. Для обнаружения однократной ошибки (ошибки в одном разряде) достаточно выбрать такие разрешенные слова, которые отличаются друг от друга как минимум в двух разрядах, то есть кодовое расстояние между разрешенными кодовыми словами должно быть d≥2.

В общем случае для возможности обнаружения ошибки кратности lобн (ошибки, исказившей lобн символов в кодовом слове) минимальное кодовое расстояние между разрешенными кодовыми словами должно быть

dмин = lобн +1

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

Для исправления однократной ошибки достаточно выбрать разрешенные кодовые слова так, чтобы они находились друг от друга на кодовом расстоянии d≥3, а разрешенным кодовым словам поставить в соответствие все запрещенные слова, находящиеся от них на кодовом расстоянии d=1 (действительно, однократная ошибка изменяет в слове только один символ, следовательно, может переместить искаженное слово только на расстояние d=1 от правильного). В общем случае, для возможности исправления всех ошибок кратности не больше, чем lиспр необходимо иметь минимальное кодовое расстояние между разрешенными кодовыми словами:

dмин = 2 * lиспр +1

Существуют коды, позволяющие автоматически исправлять все ошибки кратности не больше lиспр и, одновременно, обнаруживать все ошибки кратности не больше lобн, причем lобн ≥ lиспр. В этом случае необходимо иметь следующее кодовое расстояние между разрешенными кодовыми словами:

dмин = lиспр + lобн + 1.

Многие алгоритмы построения различных корректирующих кодов (в том числе и циклических, и итеративных) рассмотрены в работах [6.8]. Ниже познакомимся лишь с несколькими конкретными корректирующими кодами с обнаружением и исправлением ошибок, предварительно заметив, что однократные ошибки в ИС обычно встречаются гораздо чаще двукратных, а последние – чаще трехкратных и т.д. При независимости возникновения искажений в символах вероятность появления однократной ошибки подчиняется биномиальному закону так, что соотношение частот появления однократных и двукратных ошибок лежит в пределах 500-1000. Из этого следует, что наиболее эффективны для информационных систем коды, обнаруживающие и исправляющие ошибки малой кратности и, в частности, однократные ошибки.