Конспект лекций для студентов, магистров и аспирантов всех специальностей

Вид материалаКонспект

Содержание


Защита информации от случайных помех. Код Р. Хэмминга.
Из истории криптографии.
Математические основы шифрования.
Оказалось, что даже в очень сложных шифрах в качестве типичных компонентов можно выделить такие простые шифры как шифры замены,
Шифр перестановки.
Подобный материал:
1   2   3   4
^

Защита информации от случайных помех. Код Р. Хэмминга.



Рассмотрим некоторый алфавит, в котором n=2 m букв. Если буквы появляются в текстах равновероятно, то минимальное количество двоичных символов на одну букву совпадает с H бит на символ и равно m (максимально плотная кодировка). При сбое декодировать такой текст невозможно. Чтобы контролировать ошибки, вводим x дополнительных двоичных позиций под каждую букву. События – ошибок в коде буквы нет, ошибка в первой позиции, ошибка во второй позиции, и так далее, ошибка в позиции m+x – считаем равновероятными. Тогда минимальное количество символов под кодирование одной буквы с контрольными символами x должно определиться количеством информации

H=log2 (1+m+x).

Но чтобы получить информацию об ошибках после кодирования буквы (или после передачи по каналу связи) нужно иметь информацию в x бит, которая была бы не менее количества информации H:

x  log 2 (1+m+x).

Из этого неравенства вытекает, что должно быть


2x – x –1  m.


Например, если x=3, то m можно выбрать равным четырём. Итого имеем семь двоичных позиций под букву, из них четыре позиции – информационные, а три – контрольные. Обозначим эти позиции

b1 b2 b3 b4 b5 b6 b7

По Р. Хэммингу позиции

b1 b2 b4

нужно выбрать контрольными (мнемоническое правило: номера контрольных позиций это целые степени двойки 0, 1, 2), а позиции b3 b5 b6 b7 - информационными. Содержимое контрольных позиций должно определяться содержимым информационных позиций. По Р. Хэммингу контрольные позиции заполняются по правилу:


b 1 = b 3+b 5+b 7 mod 2


b 2 = b 3 +b 6 +b 7 mod 2 (Х1)


b 4 = b 5 +b 6 +b 7 mod 2


Тогда (s1 s2 s3) будет двоичным кодом той ячейки, где содержится ошибка, и этот код должен вычисляться по правилу:


s1 = b 4 + b 5 +b 6 +b 7 mod 2


s2 = b 2 + b 3 +b 6 +b 7 mod 2 (Х2)


s 3 = b 1 + b 3+b 5+b 7 mod 2


Если ошибки нет, то (s1 s2 s3)= (0 0 0) .


Если в уравнениях (Х2) заменить символы

b1 b2 b3 b4 b5 b6 b7

номерами их позиций в двоичной кодировке:


1 (001) 2(010) 3(011) 4(100) 5(101) 6(110) 7(111) ,


то получим, что (s1 s2 s3)= (0 0 0) . В этом случае из уравнений (Х2) вытекают уравнения (Х1) на правило заполнения контрольных позиций.

Пример:

Пусть некоторая буква алфавита имеет код:


b3 b5 b6 b7 = 1 0 0 1


Находим контрольные символы по формулам (Х1):


b 1 b 2 b 4 = 0 0 1


Тогда расширенная кодировка буквы имеет вид:


b1 b2 b3 b4 b5 b6 b7 = 0 0 1 1 0 0 1 (X3)


Подсчитываем s1 , s2 , s3 по формулам (Х2) . Получаем, что (s1 s2 s3)= ( 0 0 0 ).


Допустим, что в третьей позиции кода Х(3) возникла по какой-то причине ошибка, и код стал таким:


b1 b2 b3 b4 b5 b6 b7 = 0 0 0 1 0 0 1 (Х4)


Вычисляем s1 ,s2, , s3 для кода (Х4) по формулам ( Х2). В результате имеем:


s1 = ( b 4 + b 5 +b 6 +b 7 mod 2 ) = 0


s2 = ( b 2 + b 3 +b 6 +b 7 mod 2 ) = 1


s 3 = ( b 1 + b 3+b 5+b 7 mod 2 ) = 1


Получили, что (s1 s2 s3)= (011) – это двоичный адрес третьей ячейки, где возникла ошибка. Таким образом, код Р. Хэмминга позволяет прогнозировать и исправить одиночную ошибку. Код Р. Хэмминга обобщается на произвольные алфавиты и позволяет исправлять не только одиночные ошибки кодов отдельных букв, но и кратные ошибки. Кроме того, дополнительные биты в схеме Р. Хэмминга

используют и для шифрования информации. Это отдельное направление защиты информации, которое мы не рассматриваем.


^ Из истории криптографии.


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

Свой след в истории криптографии оставили многие хорошо известные исторические личности. Приведём наиболее яркие примеры. Первые сведения об использовании шифров в военном деле связаны с именем спартанского полководца Лисандра (шифр “Сцитала”). Цезарь использовал в переписке шифр, который вошёл в историю как шифр “Цезаря”. В более поздние времена шифров было изобретено очень много и мы на них не останавливаемся.

Шифр “Сцитала” известен со времён войны Спарты против Афин в V веке до н. э. Для его реализации использовалась сцитала – жезл, имеющий форму цилиндра. На сциталу виток к витку наматывалась узкая папирусная лента (без просветов и нахлёстов), а затем на этой ленте вдоль оси сциталы записывался открытый текст. Лента разматывалась и получалось (для непосвящённых), что поперёк ленты в беспорядке написаны какие-то буквы. Затем лента отправлялась адресату. Адресат брал такую же сциталу, таким же образом наматывал на неё полученную ленту и читал сообщение вдоль оси сциталы. Отметим, что в этом шифре преобразование открытого текста в зашифрованный заключается в определённой перестановке букв открытого текста. Поэтому класс шифров, к которым относится и шифр «Сцитала», называется шифрами перестановки.

Шифр Цезаря реализует следующее преобразование открытого текста: каждая буква открытого текста заменяется третьей после неё буквой в алфавите, который считается написанным по кругу, т. е. после буквы «z» следует буква «а». Отметим, что Цезарь заменял букву третьей после неё буквой, но можно заменять и какой-нибудь другой. Главное, чтобы тот, кому посылается шифрованное сообщение, знал эту величину сдвига. Класс шифров, к которым относится и шифр Цезаря, называется шифрами замены.


^ Математические основы шифрования.


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

Принято считать, что теория информации как наука родилась в 1948 году после публикации работы К. Шеннона «Математическая теория связи». В своей работе «Теория связи в секретных системах» Клод Шеннон обобщил накопленный до него опыт разработки шифров.


^ Оказалось, что даже в очень сложных шифрах в качестве типичных компонентов можно выделить такие простые шифры как шифры замены, шифры перестановки или их сочетания.


Шифр замены.


Легко дать математическое описание шифра замены.

Пусть X и Y – два алфавита (открытого и шифрованного текстов соответственно), состоящие из одинакового числа символов. Пусть также g: X  Y – взаимно однозначное отображение X в Y. Тогда шифр замены действует так: открытый текст



x 1 x 2...x n

преобразуется в шифрованный текст


g ( x )g (x 2)...g(x n ).


^ Шифр перестановки.


Шифр перестановки, как видно из названия, осуществляет преобразование перестановки букв в открытом тексте. Типичным примером шифра перестановки является шифр «Сцитала». Обычно открытый текст разбивается на отрезки равной длины и каждый отрезок шифруется независимо. Пусть, например, длина отрезков равна n и  - взаимнооднозначное отображение множества {1, 2, …,n} в себя. Тогда шифр перестановки действует так: отрезок открытого текста


x 1 x 2 ... x n преобразуется в отрезок шифрованного текста


x , x , …, x .

σ(1) σ(2) σ(n)


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