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

Теория Информации / 07 Кодирование в дискретном канале без шума

.pdf
Скачиваний:
111
Добавлен:
29.03.2015
Размер:
275.53 Кб
Скачать

11

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

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

Каждая буква алфавита нумеруется. Например, буквам английского алфавита ставятся в соответствие цифры от 0 (А = 0) до 25 (Z = 25):

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

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

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

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

Шифрование гаммированием. В процессе шифрования цифровые эквиваленты знаков криптографически закрываемого сообщения складываются с псевдослучайной последовательностью чисел, именуемой гаммой, и приводятся по модулю k, где k — объем алфавита знаков. Таким образом, псевдослучайная последовательность выполняет здесь роль ключа.

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

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

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

12

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

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

Рис. 7.2. Схема операций шифрования и дешифрования

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

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

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

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

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

13

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

7.5. Экономное кодирование сообщений в отсутствие шума

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

эффективным (или экономным).

Очевидно, что эффективное кодирование должно обеспечивать:

1)при заданной статистике источника сообщений формирование кодированных сигналов с оптимальными статистическими характеристиками, при которых достигается наибольшая скорость передачи информации;

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

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

Пусть алфавит системы состоит из m символов. Средствами этого

алфавита требуется представить любой из М возможных сигналов {xi}, i = 1, М, вероятности которых {p(xi)} заданы. Обычно М > m, поэтому каждый из сигналов, подлежащих передаче, невозможно обозначить только одним символом и приходится ставить им в соответствие некоторые последовательности символов; назовем их кодовыми словами. Так как возможна последовательная передача разных кодовых слов, то они не только должны различаться для разных xi, но и не должны быть продолжением других, более коротких. Пусть сигналу xi соответствует кодовое слово длинойi символов.

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

n

 

L = iP(xi ) ,

(7.11)

i=1

где i – длина кодового слова, сопоставляемая xi сообщению.

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

14

кодировании не могут быть уменьшены. Установим эти оптимальные границы для L из следующих соображений. Во-первых, количество информации, несомое кодовым словом, не должно быть меньше количества информации, содержащегося в соответствующем сообщении, иначе при кодировании будут происходить потери в передаваемой информации. Во-вторых, кодирование будет тем более экономичным, чем большее количество информации будет содержать в себе каждый кодовый символ; это количество информации максимально, когда все кодовые символы равновероятны, и равно log m. При этом i-е кодовое слово будет нести количество информации, равное i logm .

Таким образом,

log P(xi ) ≤ µi logm,

 

откуда

 

 

 

µ

i

log P(xi ) .

(7.12)

 

logm

 

 

 

 

Умножив обе части последнего равенства на P(xi) и просуммировав по всем i от 1 до п, получим

H(X )

Lmin logm .

Так как правая часть неравенства (7.12), как правило, не является целым числом, для достижения знака равенства в нем (с учетом экономности кода) необходимо, чтобы

log P(x )

µi < − i +1, (7.13)logm

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

H(X )

Lmin < +1.logm

Таким образом,

H(X )

L

<

H(X )

+1.

(7.14)

 

 

logm

min

 

logm

 

Так, из общих соображений находим нижние границы для L и µi.

В теории информации доказываются теоремы об условиях достижимости этих границ.

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

Приведем без доказательства фундаментальную теорему Шеннона о кодировании при отсутствии шума:

15

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

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

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

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

1. Код ШеннонаФано. Для составления этого кода все сообщения хi (i = 1, 2, ..., п) выписываются в порядке убывания их вероятностей (табл. 7.1).

 

 

 

 

 

 

 

 

Таблица 7.1

 

 

 

 

 

 

 

 

 

 

xi

P(xi)

Разбиение сообщений на подгруппы

Код

µi

 

x1

0,35

1

1

11

2

 

x2

0,15

1

0

10

2

 

x3

0,13

0

1

1

011

3

 

x4

0,09

0

1

0

010

3

 

x5

0,09

0

0

1

1

0011

4

 

x6

0,08

0

0

1

0

0010

4

 

x7

0,05

0

0

0

1

0001

4

 

x8

0,04

0

0

0

0

1

00001

5

 

x9

0,02

0

0

0

0

0

00000

5

 

Записанные так сообщения затем, разбиваются на две по возможности равновероятные подгруппы. Всем сообщениям, входящим в первую подгруппу, приписывают цифру 1 в качестве первого кодового символа, а сообщениям, входящим во вторую подгруппу, – цифру 0. Аналогичное деление на подгруппы продолжается до тех пор, пока в каждую подгруппу не попадет по одному сообщению.

Убедимся, что таким образом найденный код весьма близок к оптимальному. В самом деле, энтропия сообщений

16

6

H(X) = P(xi)logP(xi) 2,75, а средняя длина кодового слова: L =

i=1

6

i P(xi) = 2,84, что находится в соответствии с оптимальным характером

i=1

этого кода.

Заметим, что описанный метод построения эффективного кода Шэннона-Фано может быть распространен и на коды с основанием больше двух.

2. Код Хаффмана. Для получения кода Хаффмана все сообщения выписывают в порядке убывания вероятностей. Две наименьшие вероятности объединяют скобкой (табл. 6.2) и одной из них приписывают кодовый символ 1, а другой 0. Затем эти вероятности складывают, результат записывают в промежутке между ближайшими вероятностями. Процесс объединения двух сообщений с наименьшими вероятностями продолжают до тех пор, пока суммарная вероятность двух оставшихся сообщений не станет равной единице. Код для каждого сообщения строится при записи двоичного числа справа налево путем обхода по линиям вверх направо, начиная с вероятности сообщения, для которого строится код.

Средняя длина кодового слова при кодировании методом Хаффмана (см. табл. 7.2) L = 2,82, что несколько меньше, чем в методе Шеннона–Фано (L = 2,84).

Таблица 7.2

xi

P(xi)

 

 

 

 

 

 

 

 

 

 

Объединение сообщений

1

 

 

Код

Pi

x1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,35

 

 

 

0,35

 

0,35

 

0,35

 

 

0,35

 

 

0,35

 

 

 

 

0,371

 

 

0,63

 

1,0

 

11

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,15

 

 

 

0,15

 

0,15

 

 

 

0,17

 

 

 

 

0,20

 

 

 

 

0,281

 

 

0,35

 

 

0,37

0

 

 

101

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,13

 

 

 

0,13

 

0,13

 

 

0,13

 

 

 

0,17

 

1

 

0,20

 

 

 

0,28

0

 

 

 

 

 

 

100

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x4

0,09

 

 

 

0,09

 

 

 

0,11

 

 

0,13 1

 

0,15

 

 

0,17

 

 

 

 

 

 

 

 

 

 

 

 

 

010

3

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,09

 

 

 

0,09

 

 

0,09

 

 

0,11

 

 

 

0,13

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

001

3

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,08

 

 

 

0,08 1

 

0,09

 

 

0,09

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

000

3

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,05

 

 

 

 

 

0,06

 

 

0,08

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0110

4

 

1

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,04

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x8

 

0,05

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

01111

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x9

0,02

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

01110

5

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Согласование источника с двоичным каналом путем статистического кодирования по методу Хаффмена позволяет повысить эффективность передачи по сравнению с методом Шеннона–Фано.

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

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

17

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

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

7.6. Основная теорема Шеннона для дискретного канала без шумов

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

Теорема 2. Если поток информации, вырабатываемой источником,

равен

 

H (X ) = CC − ε ,

(7.15)

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

I

= CC − ε .

(7.16)

Обратное утверждение заключается в том, что невозможно обеспечить длительную передачу всех сообщений источника, у которого H (X ) > CC .

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

суть.

_

Если τ и - средняя длительность одного сообщения, то при достаточно

большом Т возможна передача М = Т_ различных сообщений.

τ и

Из (6.12а) следует, что число типичных последовательностей хТ сообщений длительностью Т равно

 

 

T

 

Nx

≈ 2τи H

= 2H T .

 

T

 

В то же время на основании (7.7) можно утверждать, что число различных последовательностей кодированных сигналов уТ длительностью Т при большом Т равно Nc(T) ≈ 2СсT или, учитывая (7.15),

 

 

 

H +ε T

 

 

 

 

> Nx .

NC (T)≈ 2

 

 

 

 

 

T

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

18

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

Нетрудно убедиться в справедливости обратного утверждения теоремы. Если Н(Х) > С, то число различных последовательностей сигналов оказывается недостаточным для кодирования типичных последовательностей сообщений.

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

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

достигать 2Т.

Контрольные вопросы

1.Назовите основные характеристики дискретного канала.

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

3.Какие требования предъявляются к современным методам криптографического закрытия информации?

4.В чем суть эффективного статистического кодирования?

5.Сформулируйте и поясните основную теорему Шеннона о кодировании для канала без помех.

6.За счет чего при эффективном кодировании уменьшается средняя длина кодовой комбинации?

7.До какого предела может быть уменьшена средняя длина кодовой комбинации при эффективном кодировании?

8.В чем преимущество методики построения эффективного кода, предложенной Хаффменом, по сравнению с методикой Шеннона-Фэно?

9.Каким основным условиям должны удовлетворять эффективные

коды?

10.Перечислите сложности, возникающие при использовании эффективных кодов?