Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

125 Кібербезпека / 4 Курс / 4.2_Управління інформаційною безпекою / Лiтература / V_P_Babak_A_A_Kliuchnykov-Teoreticheskye_osnovy_zashchity_informat

...pdf
Скачиваний:
132
Добавлен:
23.10.2019
Размер:
21.85 Mб
Скачать

ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ЗАЩИТЫ ИНФОРМАЦИИ

Для того, чтобы указать, что кодированная последовательность начинается с нуля, прибавим в начале кодового слова префиксный символ 0. В результате получим кодовое слово

B (r) (0100011010110101101011001110100100)

длиной 34 бит. Тогда результирующая скорость R будет составлять 34/64 или немного больше, чем 0,5 бит на элемент изображения. При сжатии изображений большего размера и повторении элементов, содержащих множество, эффективность сжатия может быть существенно выше.

Дальше приведен другой пример использования кодирования длин повторений, когда в цифровых данных случаются участки с большим количеством нулевых значений. Каждый раз, когда в потоке данных случается «нуль», он кодируется двумя числами. Первое - нуль, который является показателем начала кодирования длинны потока нулей, и второе - равняется количеству нулей в очередной группе. Если среднее количество нулей в группе больше двух, имеем сжатие. Тем не менее, большое количество отдельных нулей может привести даже к увеличению размера кодированного файла

(рис. 7.18).

6

8

64

0

0

0

11

5

15

0

35

58

0

0

0

0

0

0

3

57

0

0

0

9...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

8

64

0

3

11

5

15

0

1

35

58

0

6

3

57

0

3

9 ...

 

 

 

 

Рис. 7.18 . Графическое изображение алгоритма кодирования по длине повторов нулей

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

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

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

Просканируем 8-битовое (256-уровневое) цифровое изображение, при этом 10 последовательных пикселей будут равняться 144, 147, 150, 146, 141, 142, 138, 143, 145, 142.

520

Глава 7. Кодирование информации

Закодировав эти данные последовательно пиксель за пикселем некоторым кодом без памяти, который использует 8 бит на пиксель изображения, получим кодовое слово, которое содержит 80 бит.

Предположим теперь, что прежде чем подвергать отсчеты изображения кодированию, мы вычислим разности между соседними пикселями. Эта процедура даст нам последовательность, приведенную на рис. 7.19.

144,

147,

150,

146,

141,

142,

138,

143,

145,

142.

144,

3,

3,

- 4,

- 5,

1,

- 4,

5,

2

-3.

Рис. 7.19. Алгоритм дифференциального кодирования

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

144, 144+3, 147+3, 150–4, 146–5, 141+1, 142–4, 138+5, 143+2, 145-3

144, 147, 150, 146, 141, 142, 138, 143, 145, 142.

Рис. 7.20. Алгоритм дифференциального декодирования

Для кодирования первого числа из полученной последовательности разностей отсчетов, как и раньше, понадобится 8 бит, остаток чисел можно закодировать 4-битовыми словами (1 знаковый бит и 3 бита на кодирование модуля числа). Таким образом, в результате кодирования получим кодовое слово длиной 8 9 4 44 бит, т.е. почти вдвое короче, чем при индивидуаль-

ном кодировании отсчетов.

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

7.2. Помехоустойчивое кодирование

Искажение информации, т.е. нарушение ее целостности, возможно на любом этапе ее циркуляции в информационно-телекоммуникационных сетях: при хранении, передаче или обработке.

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

521

ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ЗАЩИТЫ ИНФОРМАЦИИ

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

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

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

Задача помехоустойчивого корректирующего кодирования - обеспе-

чить целостность информационных сообщений с применением помехоустойчивых корректирующих кодов.

Помехоустойчивым корректирующим кодированием называется та-

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

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

1. Использование избыточности информации относительно кодового слова. Закодированные цифровые сообщения всегда содержат дополнительные (избыточные) символы. Их используют для того, чтобы сделать более выразительным индивидуальность каждого сообщения, устанавливая правило или алгоритм восстановления целостности информации. Эти символы выби-

522

Глава 7. Кодирование информации

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

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

Корректирующим называется такой код, который дает возможность обнаруживать или и обнаруживать, и исправлять ошибки при приеме сооб-

щений. Существует много корректирующих кодов, которые различаются как по принципам построения, так и основными характеристиками (рис. 7.21).

Помехоустойчивое корректирующее кодирование

Блочное

Сверточное

кодирование

кодирование

 

Линейное

Систематическое

кодирование

кодирование

Полиномное

Не систематическое

кодирование

кодирование

Циклическое

 

кодирование

 

Рис. 7.21. Классификация помехоустойчивого кодирования

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

Исправление ошибки при таком кодировании по обыкновению происходит путем повторения обезображенных сообщений. Запрос о повторении передается по каналу обратной связи.

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

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

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

Базовым алгоритмом для всех корректирующих кодов является использование избыточности для исправления ошибок, которые могут возникнуть в

523

ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ЗАЩИТЫ ИНФОРМАЦИИ

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

Кодовое слово, сформированное за процедурой блочного кодирования, изображено на рис. 7.22.

 

n символов

Информация

Избыточность

k символов

n-k символов

Рис. 7.22. Систематическое блочное кодирование для исправления ошибок

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

ляет ошибки.

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

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

Сверточным кодированием (циклическо-замкнутым) называется ал-

горитм кодирования, согласно которому кодер зависит не только от информационных символов в данный момент, а и от предыдущих символов на его входе или выходе (кодирование с памятью).

Чтобы упростить объяснение, мы начнем с изучения структурных свойств блочных кодов. Множество свойств является общим для обоих типов кодов. Заметим, что на самом деле блочные коды имеют память, если рассматривать кодирование как побитовый процесс в пределах кодового слова.

Принципы помехоустойчивого кодирования. В теории помехоустой-

чивого кодирования важным является вопрос об использовании чрезмерности для корректирования ошибок, которые возникают при передаче.

Для равномерных кодов, которые являются основными для помехоустойчивого кодирования, количество возможных комбинаций M 2n , где n - значительность кода. В обычном некорректирующем коде без чрезмерности

524

Глава 7. Кодирование информации

(например, в коде Бодо) количество комбинаций M выбирается таким, которое равняется количеству сообщений алфавита источника M0 , причем все

комбинации используются для передачи информации. Корректирующие коды строятся так, чтобы количество комбинаций M превышало количество сообщений источника M0 . Тем не менее в этом случае лишь M 0 комбинаций

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

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

Расстоянием между комбинациями называют количество символов,

которыми различаются переданные комбинации равномерного кода. Расстояние dij между двумя комбинациями Ai и Aj определяется количеством

единиц в сумме комбинаций по модулю два. Например:

110011 Аi

010110 Аj

100101 dij 3

Кодовым расстоянием d для любого кода dij n называется мини-

мальное расстояние между разрешенными комбинациями в этом коде.

Расстояние между комбинациями Ai и Aj условно обозначено на рис.

7.23, а, где изображены промежуточные комбинации, которые отличаются одна от другой одним символом.

В общем случае некоторая пара разрешенных комбинаций Ap1 и Ap 2 ,

разделенных кодовым расстоянием d , изображается на прямой (см. рис. 7.23, б), где точками обозначаются запрещенные комбинации. Для того чтобы в результате ошибки комбинация Ap1 превратилась в другую разрешенную

комбинацию Ap 2 , должны исказиться d символов.

В случае искажения меньшего количества символов комбинация Ap1 пе-

рейдет в запрещенную комбинацию и ошибку будет обнаружено.

Ошибка всегда обнаруживается, если ее кратность, т.е. количество искаженных символов в кодовой комбинации

g d 1.

(7.9)

Если g d, то некоторые ошибки также обнаруживаются. Тем не менее, полной гарантии обнаружения ошибок здесь нет, поскольку ошибочная ком-

525

ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ЗАЩИТЫ ИНФОРМАЦИИ

бинация в этом случае может совпасть с какой-нибудь разрешенной комбинацией.

a

110011

010011

010111

010110

 

Ai

 

 

Aj

 

 

dij

3

 

б

d0

 

 

 

Ap

 

 

Ap2

 

A0

 

 

1

 

 

 

 

 

 

в

 

d

 

 

du

 

 

da

 

 

 

Ap1 Ap2 d

Рис. 7.23. Геометрическое представление разрешенных и запрещенных кодовых комбинаций

Минимальное кодовое расстояние, при котором обнаруживаются любые одиночные ошибки, d 2.

Процедура исправления ошибок в процессе декодирования сводится к определению переданной комбинации при известной принятой. Расстояние между переданной разрешенной комбинацией и принятой запрещенной комбинацией d0 равняется кратности ошибок g. Если ошибки в символах ком-

бинации случаются независимо одна от другой, то вероятность искажения некоторых g символов в п-значной комбинации

Pg (1 P )n g ,

(7.10)

0

0

 

где Р0 - вероятность искажения одного символа. Поскольку по обыкновению P0 1, то вероятность многократных ошибок уменьшается с увеличением их

кратности, при этом вероятнее меньшее расстояние d1 чи d.

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

Например: пусть образовалась запрещенная комбинация A0 (рис. 7.23, б), тогда принимается решение, что была передана комбинация A1. Это пра-

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

526

Глава 7. Кодирование информации

меньше всего отличается от принятого (см. гл. 6). При таком правиле декодирования будут исправлены все кратные ошибки:

g

d 1

.

(7.11)

 

2

 

 

Минимальное значение d , при котором еще возможно исправление любых одиночных ошибок, равно 3.

Возможно также построение кодов, в которых часть ошибок исправляется, а часть только обнаруживается. Так, согласно рис. 7.23, в ошибки, кратные g dâèï , исправляются, а ошибки, кратность которых лежит в пределах

dâèï ï d dâèÿâ только обнаруживаются, тем не менее, при их исправлении принимается ошибочное решение - считается переданной комбинация Ap1 вместо Ap 2 , или наоборот.

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

Корректирующая способность кода возрастает с увеличением

d.

При

фиксированном количестве M 0 разрешенных комбинаций увеличить d

воз-

можно лишь за счет роста количества запрещенных комбинаций

 

 

M M

0

2n 2k ,

(7.12)

 

 

 

 

что, в свою очередь, нуждается в чрезмерном количестве символов r n k, где k - количество символов в комбинации кода без избыточности. Можно ввести понятие избыточности кода, количественно определив ее как

 

n k

1

log2 M0

.

(7.13)

 

 

 

n

 

log2 M

 

В случае независимых ошибок вероятность появления g

ошибочных

символов в n-значной кодовой комбинации выражается формулой (7.10), а количество всех возможных появлений g ошибочных символов в n-значной

комбинации зависит от ее длины и определяется известной комбинаторной формулой

 

C g

 

n!

.

 

 

 

 

 

 

 

 

 

 

 

 

n

 

g! (n g)!

 

 

 

 

 

 

 

Отсюда полная вероятность ошибки кратности g, которая учитывает все

возможные появления ошибочных символов, описывается выражением

 

Р

Сg Рg 1 Р

n g .

(7.14)

0g

 

n 0

0

 

 

527

ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ЗАЩИТЫ ИНФОРМАЦИИ

Используя формулу (7.14), можно определить вероятность отсутствия ошибок в кодовой комбинации, т.е. вероятность правильного приема

 

 

 

P

(1 P )n ,

 

 

 

 

 

пр

0

 

 

 

и вероятность правильного корректирования ошибок

 

 

 

P

P

C g Pg

(1 P )n g .

 

 

кор

 

0 g

n 0

0

 

 

 

 

g

 

g

 

 

 

Здесь суммирование выполняется по всем значениям кратности ошибок

g, которые обнаруживаются и исправляются. Таким образом,

вероятность

некорректированных ошибок

 

 

 

 

 

 

P

1 P P

1 (1 P )n

C g Pg

(1 P )n g .

(7.15)

ош

пр

кор

 

0

n 0

0

 

 

 

 

 

 

g

 

 

Анализ выражения (7.15)

показывает,

что при малом значении P0 и

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

Вероятность Pпом , избыточность и количество n символов являют-

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

Общая задача, которая возникает при создании кода, заключается в достижении наименьших значений Pпом и . Целесообразность применения

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

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

Расстояние Хэмминга и свойства корректирования. Рассмотрим дво-

ичный код C, который исправляет ошибки. Если не все из 2n возможных двоичных векторов длины n будут передавать по каналу связи, то этот код может иметь свойство помехоустойчивости. Действительно, код С является подмножеством n-измеримого двоичного векторного пространства

528

Глава 7. Кодирование информации

V 0,1 n , таким,

при котором его элементы максимально отдалены один от

2

 

 

 

 

 

 

 

 

 

 

 

 

другого.

 

 

 

 

 

 

 

 

 

 

 

 

Кодовое расстояние в двоичном пространстве V2

определяется как ко-

личество позиций,

на котором два кодовых вектора x1

x1,0 , x1,1,..., x1, n и

x2 x2,0 , x2,1 ,..., x2, n

в этом пространстве не сохраняются.

Расстояние

Хэмминга между векторами

x1

и

x2 , обозначаемое как

dH (x1, x2 ), определяется выражением

 

 

 

 

 

 

 

d

H

(x , x )

 

i :x

x

, 0 i n

 

,

(7.16)

 

 

 

 

 

1 2

 

 

1,i

2,i

 

 

 

 

где вертикальные черточки, которые охватывают запись множества в правой части неравенства (7.16), означают, что берется количество элементов в этом множестве.

Минимальное расстояние

Хэмминга для заданного кода C определя-

ется как минимум расстояния

Хэмминга по всем возможным парам разных

кодовых слов:

 

 

 

 

dmin min dH (v1 ,v2 )

 

v1 v2 .

(7.17)

 

v1 ,v2 C

 

 

 

Запись (n, k, dmin ) означает, что рассматривается блочный код длинны

n, который используется для кодирования сообщений длины k

и имеет ми-

нимальное расстояние Хэмминга dmin . Считается, что количество кодовых слов этого кода равняется C 2k.

Пример 7.10. Простым примером является код-повторение длины 3. Каждый информационный бит повторяется трижды. Таким образом, сообщение «0» кодируется вектором (000), а сообщение «1» — вектором (111). Поскольку эти два вектора различаются тремя позициями, хэмминговое расстояние между ними равно 3. Графическое изображение этого кода приведено на

рис. 7.24. Трехмерное двоичное векторное пространство соответствует 23 8 вершинам трехмерного единичного куба.

X 2

X 0

X 1

Рис. 7.24. (3,1,3) код-повторение в трехмерном векторном пространстве

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

529