Файл: 2.1.4.1 - Защита информации от случайных помех.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 15.02.2021

Просмотров: 218

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

е

1

= 0 + 1 + 1 + 0 = 0    

mod 2 

е

2

 = 

1 + 1 + 1 + 0 = 1    

mod 2

Набор

значений

е

2

е

1

е

0

= 1 0 1 

является

двоичной

записью

числа

  "

пять

", 

т

.

е

указывает

именно

на

пятую

позицию

  (

на

символ

β

5

), 

где

собственно

и

произошла

ошибка

.

Приведенная

схема

Р

Хэмминга

по

конструированию

кода

обнару

-

живающего

и

исправляющего

одиночную

ошибку

универсальна

и

аналогичный

код

может

быть

построен

для

произвольной

пары

значений

т

и

х

удовлетворяющих

уравнению

m

x

x

=

1

2

   

(4.16)

Заметим

также

что

вовсе

не

обязательно

чтобы

набор

из

т

информационных

символов

представлял

собой

код

какой

-

то

определенной

буквы

как

это

имело

место

в

только

что

рассмотренном

примере

На

практике

сначала

можно

осуществить

оптимальное

  (

или

близкое

к

оптимальному

кодирование

текста

Затем

уже

закодированный

текст

можно

делить

на

блоки

по

т

двоичных

символов

в

каждом

причем

из

возможных

значений

1

2

=

x

m

x

(

х

 = 

3, 4, ...) 

его

конкретное

значение

следует

выбирать

исходя

из

эксплуатационной

необходимости

При

прочих

равных

условиях

значение

т

должно

быть

тем

меньшим

чем

больше

значимость

информации

и

чем

больше

уровень

помех

После

выбора

конкретного

значения

т

каждый

блок

из

т

информационных

символов

следует

наращивать

х

 = 

х

  (

т

контрольными

символами

пред

-

назначенными

для

обнаружения

и

исправления

одиночных

ошибок

в

рамках

данного

блока

.

А

теперь

вернемся

к

рассмотрению

вопроса

о

том

почему

Р

Хэмминг

в

качестве

контрольных

берет

именно

символы

индексы

которых

равны

целым

степеням

двойки

т

.

е

. 1, 2, 4, 8, 16,.... 

Во

-

первых

как

уже

об

этом

говорилось

выше

при

таком

выборе

контрольная

матрица

всегда

оказывается

равной

единице

т

.

е

фактически

снимается

вопрос

решения

системы

 (4.8

б

) -:- (4.10

б

относительно

контрольных

символов

так

как

ее

 "

решение

сводится

к

простому

переписыванию

соответствующих

уравнений

Но

это

не

главное

так

как

систему

(4.8

б

) -:- (4.10

б

приходится

решать

только

один

раз

и

далее

при

каждом

акте

кодирования

мы

пользуемся

лишь

системой

 (4.5

а

) -:- (4.7

а

) - 

решением

системы

(4.8

б

) -:- (4.10

б

относительно

контрольных

символов

При

реализации

процедур

кодирования

и

декодирования

на

ЭВМ

сам

факт

что

контрольные

символы

разобщены

 (

не

следуют

подряд

друг

за

другом

), 

создает

определенные

неудобства

при

каждом

акте

кодирования

и

декодирования

Естественно

поэтому

желание

выбрать

контрольные

символы

таковыми

чтобы

они

следовали

подряд

друг

за

другом

пусть

даже

ценою

того

чтобы

один

раз

решить

систему

 (4.8

б

) -:- (4.10

б

). 

Именно

так

поступали

мы

когда

вопреки

рекомендации

Р

Хэмминга

взять

в

качестве

контрольных

символы

β

β

β

4

2

1

,

,

взяли

в

качестве

таковых

символы

β

β

β

7

6

5

,

,

Хотя

это

и

вынудило

нас

решить

систему

 (4.8

в

) -:- (4.10

в

относительно

переменных

β

β

β

7

6

5

,

,

но

зато

при

каждом

акте

кодирования

и

декодирования

мы

смогли

оперировать

  "

пачками

контрольных

символов

а

не

  "

выковыривать

их

среди

информационных

символов

.


background image

Возникает

вопрос

а

всегда

ли

при

любом

числе

информационных

символов

мы

смогли

бы

поступать

аналогичным

образом

Нет

не

смогли

бы

если

по

-

прежнему

хотим

чтобы

двоичный

набор

символов

е

x-1

е

x-2

,…

е

0

указывал

на

адрес

ошибки

Потому

что

уже

когда

число

контрольных

символов

больше

трех

мы

не

имеем

права

взять

в

качестве

контрольных

последние

х

символов

Легко

убедиться

что

при

этом

контрольная

матрица

непременно

оказалась

бы

вырожденной

т

.

е

значение

ее

детерминанта

оказалась

бы

равным

нулю

Более

того

даже

в

рассмотренном

нами

случае

когда

число

контрольных

символов

равно

трем

мы

не

смогли

бы

в

качестве

контрольных

взять

например

первые

три

символа

Во

всех

этих

случаях

определители

контрольных

матриц

 (

вспомним

что

столбцы

этой

матрицы

суть

двоичные

записи

номеров

выбранных

нами

контрольных

символов

оказываются

равными

нулю

Пусть

например

мы

выбрали

в

качестве

контрольных

не

пачку

символов

β

β

β

7

6

5

,

,

а

символы

β

β

β

3

2

1

,

,

.

Тогда

нам

пришлось

бы

иметь

дело

с

квадратной

матрицей

третьего

порядка

столбцы

которой

являются

двоичными

формами

записи

чисел

 1, 2 

и

 3:

0

0

0

1

1

0

1

0

1

=

C

Равенство

нулю

детерминанта

этой

матрицы

свидетельствует

о

том

что

систему

 (4.86) -:- (4.106) 

нельзя

решить

относительно

переменных

β

β

β

3

2

1

,

,

.

Таким

образом

при

выборе

среди

т

 + 

х

символов

х

контрольных

следует

заботиться

о

том

чтобы

определитель

контрольной

матрицы

порядка

х

столбцы

которой

представляют

собой

двоичные

записи

номеров

выбранных

символов

не

оказался

равным

нулю

Именно

чтобы

избавиться

от

этих

забот

Р

Хэмминг

рекомендует

в

качестве

контрольных

взять

символы

с

индексами

 1, 2, 4, 

и

т

.

д

Легко

обнаружить

что

при

таком

выборе

контрольных

символов

мы

всегда

 (

независимо

от

их

числа

будем

иметь

дело

с

единичной

матрицей

.

Кроме

зависимости

 (4.1

а

), 

на

рис

. 1 

приведена

также

зависимость

относительной

избыточности

  (

l

ср

/

δ

). 100% 

от

т

Легко

заметить

что

с

увеличением

т

требуемый

процент

избыточности

для

обнаружения

и

исправления

одиночной

ошибки

резко

уменьшается

Столь

неестественный

результат

является

следствием

искусственного

далекого

от

реальности

допущения

что

в

рамках

каждого

кодового

набора

независимо

от

его

длины

т

 + 

х

может

произойти

не

более

одной

ошибки

Если

же

допустить

возможность

двух

и

более

ошибок

то

задача

их

обнаружения

и

тем

более

исправления

усложняется

Построить

для

этих

случаев

коды

столь

же

элегантные

как

код

Р

Хэмминга

для

одиночной

ошибки

пока

не

удалось

Геометрический

подход

Выше

был

представлен

алгебраический

подход

к

кодам

с

исправлением

ошибок

Другой

эквивалентный

подход

использует

n

 - 

мерную

геометрию

В

этой

модели

последовательность

из

нулей

и

единиц

рассматривается

как

точка

n

-


background image

мерного

пространства

Каждый

символ

задает

значение

соответствующей

координаты

в

n

-

мерном

пространстве

, (

предполагается

что

длина

закодированного

сообщения

в

точности

равна

п

.

битам

). 

Таким

образом

имеется

куб

в

n

-

мерном

пространстве

каждая

вершина

которого

представлена

последовательностью

из

n

нулей

и

единиц

Пространство

состоит

только

из

2n

вершин

и

кроме

них

в

пространстве

всех

возможных

сообщений

ничего

нет

Это

пространство

иногда

называют

векторным

Каждая

вершина

является

возможным

принятым

сообщением

однако

лишь

некоторые

выбранные

вершины

 — 

это

посылаемые

сообщения

Одиночная

ошибка

в

сообщении

передвигает

точку

соответствующую

сообщению

вдоль

ребра

воображаемого

куба

в

соседнюю

вершину

Если

потребовать

чтобы

любое

посылаемое

сообщение

находилось

на

расстоянии

,

по

крайней

мере

двух

ребер

от

любого

другого

возможного

сообщения

то

ясно

что

любая

одиночная

ошибка

сдвинет

сообщение

вдоль

ребра

и

принятое

сообщение

выйдет

из

множества

посылаемых

сообщений

Если

минимальное

расстояние

между

посылаемыми

сообщениями

равно

трем

ребрам

куба

то

любая

одиночная

ошибка

оставит

принятое

сообщение

ближе

к

посланному

чем

к

любому

другому

посылаемому

сообщению

так

что

код

будет

исправлять

одиночные

ошибки

Фактически

введено

расстояние

,

равное

минимальному

числу

ребер

куба

по

которым

нужно

пройти

чтобы

дойти

от

одной

точки

до

другой

Это

расстояние

равно

также

числу

бит

которыми

отличаются

последовательности

соответствующие

двум

вершинам

Таким

образом

расстояние

можно

рассматривать

как

логическую

сумму

двоичных

символов

двух

точек

Эта

величина

действительно

является

расстоянием

поскольку

она

обладает

  

следующими

тремя

свойствами

1. 

Расстояние

от

любой

точки

до

самой

себя

равно

0

2. 

Расстояние

от

точки

х

до

отличной

от

нее

точки

у

совпадает

с

расстоянием

от

точки

у

до

точки

х

и

является

положительным

числом

3. 

Выполнено

неравенство

треугольника

т

е

сумма

длин

двух

сторон

треугольника

 (

расстояние

от

а

до

с

плюс

расстояние

от

 c 

до

 b) 

не

меньше

длины

третьей

стороны

 (

расстояние

от

а

до

b). 

Это

расстояние

обычно

называется

расстоянием

Хэмминга

.

Оно

приспособлено

для

двоичного

белого

шума

Используя

это

расстояние

можно

определить

различные

объекты

в

пространстве

В

частности

поверхность

сферы

с

центром

в

некоторой

точке

представляет

собой

множество

точек

находящихся

на

заданном

расстоянии

от

центра

Поверхность

сферы

радиуса

1

с

центром

 (

0, 0, ..., 0

) — 

это

множество

всех

вершин

пространства

находящихся

на

расстоянии

1

т

е

множество

всех

вершин

имеющих

только

один

символ

1

в

координатной

записи

  (

рис

. 4.1). 

Число

таких

точек

равно

С

(n, 1).

Минимальное

расстояние

между

вершинами

множества

посылаемых

сообщений

можно

выразить

в

терминах

корректирующих

свойств

Для

однозначности

кода

минимальное

расстояние

должно

быть

по

меньшей

мере

равно

1

 (

табл

4

.

1

).  


background image

Минимальное

расстояние

 2 

дает

обнаружение

одиночных

ошибок

Минимальное

расстояние

 3 

дает

исправление

одиночных

ошибок

каждая

одиночная

ошибка

оставляет

точку

расположенную

ближе

к

первоначальному

положению

чем

к

любому

другому

посылаемому

сообщению

Ясно

что

код

с

этим

минимальным

расстоянием

может

использоваться

также

для

обнаружения

двойных

ошибок

Минимальное

расстояние

4

дает

исправление

одиночных

ошибок

а

также

обнаружение

двойных

ошибок

Минимальное

расстояние

5

дает

исправление

двойных

ошибок

Обратно

,

для

того

чтобы

обнаруживать

или

исправлять

ошибки

соответствующей

кратности

код

должен

иметь

соответствующее

минимальное

расстояние

Таблица

  4.1.  

Смысл

минимального

расстояния

Минимальное

расстояние

Интерпретация



 
 

5

Однозначность

  

Обнаружение

одиночных

ошибок

  

Исправление

одиночных

ошибок

 (

или

обнаружение

двойных

ошибок

)  

Исправление

одиночных

ошибок

дополнительно

к

этому

обнаружение

двойных

ошибок

  (

или

вместо

всего

этого

обнаружение

тройных

ошибок

)  

Исправление

двойных

ошибок

 
 
 
 
 
.  
 
 
 
 

Рис

. 4.1. 

При

исправлении

одиночной

ошибки

  (

минимальное

расстояние

 3) 

каждое

сообщение

можно

окружить

единичной

сферой

и

эти

сферы

не

перекрываются

Шар

радиуса

 1 

состоит

из

центра

и

n

точек

по

одной

для

каждой

измененной

координаты

таким

 o6p

азом

объем

шара

равен

1+n

Объем

всего

n

-

мерного

пространства

т

е

число

всех

точек

в

нем

равен

очевидно

2n

Поскольку

  

шары

не

пересекаются

максимальное

число

посылаемых

сообщений

должно

удовлетворять

условию

сфер

число

е

минимально

ва

пространст

всего

объем

сферы

объем

(0,1,1)

(1,1,1)

(1,1,0)

(1,0,1)

(0,1,0)

(1,0,0)

(0,0,0)

(0,0,1)


background image

или

2

1

2

k

n

n

+

   

(4.2) 

Поскольку

n=m+k

,

то

   

)

1

(

2

2

+

+

n

k

k

m

или

1

2

+

n

m

Именно

это

неравенство

было

получено

при

использовании

алгебраического

подхода

Можно

доказать

что

двоичный

код

C

с

минимальным

кодовым

расстоянием

d

min

может

исправлять

все

комбинации

от

1

до

t

ошибок

и

может

обнаруживать

все

комбинации

от

t+1

до

t+s

ошибок

тогда

и

только

тогда

когда

s

t

d

+

2

min

При

прочих

равных

условиях

чем

больше

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

текста

тем

легче

осуществить

его

несанкционированное

декодирование

точнее

дешифровку

В

этом

смысле

оптимально

закодированные

тексты

характеризуются

большей

защищенностью

В

то

же

время

эти

тексты

абсолютно

беззащитны

к

случайным

и

/

или

умышленно

введенным

ошибкам

 - 

достаточно

хоть

одной

ошибки

на

уровне

какого

-

либо

двоичного

символа

оптимально

закодированного

текста

и

уже

не

только

  "

противник

", 

но

и

  "

свой

адресат

лишится

возможности

декодировать

 - 

восстановить

исходный

текст

Чтобы

предоставить

адресату

хоть

какую

-

то

возможность

обнаружить

а

тем

более

исправить

имеющие

место

ошибки

приходится

отказаться

от

предельного

сжатия

текста

и

ввести

некоторую

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

Но

эта

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

должна

быть

специально

сконструирована

т

.

е

она

должна

быть

нацелена

на

обнаружение

а

если

это

возможно

то

и

исправление

ошибок