- •Теория алгоритмов (краткий курс лекций для самостоятельной работы)
- •Лекции по теории алгоритмов Введение
- •Предмет криптографии
- •Лекция №1
- •Краткие теоретические сведения
- •1 Шифр сцитала
- •2 Шифр вертикальной перестановки
- •3 Шифр поворотной решетки
- •4 Шифры с использованием магичных квадратов
- •5 Перестановка бит
- •Лекция №2
- •Краткие теоретические сведения
- •Варианты реализации шифров простой замены
- •1 Система шифрования Цезаря
- •2 Афинная система подстановок
- •3 Лозунговый шифр
- •4 Шифровальный квадрат Полибия
- •5 Шифровальная таблица Трисемуса
- •4Х8 «Сколько волка ни корми, он все в лес глядит »
- •Лекция №3
- •Краткие теоретические сведения
- •1 Биграммный шифр Плейфейера
- •2 Шифр с использованием омофонов
- •3 Шифр Гронсфельда
- •4 Система шифрования Вижинера
- •5 Шифр «Двойной квадрат Уитстона»
- •Общие сведения о блочных шифрах
- •Описание алгоритма des
- •Режимы реализации алгоритмов симметричного шифрования
- •Асимметричные криптоалгоритмы
- •Модулярная арифметика
- •Открытое распределение ключей
- •Криптосистема rsa
- •7 Самокорректирующиеся коды
- •7.1 Построение кодов Хемминга (описание алгоритма кодирования)
- •7.2 Обнаружение ошибок в кодах Хемминга
- •7.3 Декодирование
- •Примеры решения задач Задача № 3
- •Задача № 4
- •Алгоритм решения задачи следующий:
- •Литература
Примеры решения задач Задача № 3
Разработать самокорректирующийся код (код Хэмминга) в соответствии с вариантом для бинарных слов длины m и привести примеры декодирования искаженных элементарных кодов (для всех вариантов – источник помех может исказить не более одной позиции элементарного кода).
Таблица вариантов к задаче 3
|
Вариант |
m |
|
-- |
10 |
Р Е Ш Е Н И Е
1Определим длинуlэлементарных кодов
2k–1 ≤l , а2k l+1, где l = m + k (по условию задачиm = 10 )
Оба неравенства выполняются для k= 4 ( 8 ≤ 13, 1614), т.е для 10 информационных членов понадобятся 4 контрольных члена в элементарных кодах, общая длина которых будет равна 14.
2Контрольные члени элементарного кода будут вычисляться так:
Ряд 1 1 = 3+ 5 + 7 + 9 + 11 + 13 (mod 2),
Ряд 2 2 = 3+ 6 + 7 + 10 + 11 (mod 2
Ряд 3 4= 5+ 6 + 7 + 12 + 13 (mod 2),
Ряд 4 8= 9+ 10 + 11 + 12 + 13 (mod 2),
3Пример кодирования исходного элементарного сообщения (длина 10 позиций т.еm= 10)
В таблице ниже приведен пример определения контрольных членов элементарного кода (контрольный член равен 1, если число единиц соответствующего ему ряда нечетно и 0 – если четно). Значения контрольных членов в таблице выделены курсивом.
|
Номера позиций |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
|
Код сообщения |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
|
Ряд 1 |
1 |
|
1 |
|
1 |
|
1 |
|
0 |
|
1 |
|
1 |
|
|
Ряд 2 |
|
1 |
1 |
|
|
0 |
1 |
|
|
0 |
1 |
|
|
0 |
|
Ряд 3 |
|
|
|
0 |
1 |
0 |
1 |
|
|
|
|
1 |
1 |
0 |
|
Ряд 4 |
|
|
|
|
|
|
|
1 |
0 |
0 |
1 |
1 |
1 |
0 |
4Пример корректировки искаженного в одной позиции элементарного кода (пусть в процессе передачи по каналу связи элементарный код, представленный в строке 2 предыдущей таблицы искажен в позиции 5 вместо 1 получен 0 )
|
Номера позиций |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
Si |
|
Код сообщения |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
|
|
Ряд 1 |
1 |
|
1 |
|
0 |
|
1 |
|
0 |
|
1 |
|
1 |
|
1= S1 |
|
Ряд 2 |
|
1 |
1 |
|
|
0 |
1 |
|
|
0 |
1 |
|
|
0 |
0= S2 |
|
Ряд 3 |
|
|
|
0 |
0 |
0 |
1 |
|
|
|
|
1 |
1 |
0 |
1= S3 |
|
Ряд 4 |
|
|
|
|
|
|
|
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0= S4 |
В результате подсчета кода ошибки получен следующий результат:
S = S4 S3S2 S1 = 0101 (в бинарном представлении), что соответствует 5 (т.е. ошибка в позиции 5 и для корректировки нужно 0 (поз. 5) заменить на 1). Результат восстановления приведен ниже.
|
Номера позиций |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
|
Код полученного сообщения |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
|
Код сообщения после коррекции |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
|
Сообщение (удалены контрольные члены) |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
