- •Теория алгоритмов методические указания для самостоятельной подготовки к контролю знаний
- •«Компьютерные науки»
- •С о д е р ж а н и е
- •Перечень тем
- •Тема 1 Шифры перестановки. Разновидности реализации шифров перестановки Краткие теоретические сведения
- •1 Шифр сцитала
- •2 Шифр вертикальной перестановки
- •3 Шифр поворотной решетки
- •4 Шифры с использованием магичных квадратов
- •5 Перестановка бит
- •Задание
- •Варианты заданий темы 1 для самостоятельной подготовки
- •Вопросы по теории темы 1 для самостоятельной подготовки
- •Тема 2 Шифры простой замены. Разновидности реализации шифров простой замены Краткие теоретические сведения
- •Варианты реализации шифров простой замены
- •1 Система шифрования Цезаря
- •2 Афинная система подстановок
- •3 Лозунговый шифр
- •4 Шифровальный квадрат Полибия
- •5 Шифровальная таблица Трисемуса
- •4Х8 «Сколько волка ни корми, он все в лес глядит »
- •Задание
- •Варианты заданий темы 2 для самостоятельной подготовки
- •Вопросы по теории темы 2 для самостоятельной подготовки
- •Тема 3 Шифры сложной замены. Разновидности реализации шифров сложной замены Краткие теоретические сведения
- •1 Биграммный шифр Плейфейера
- •2 Шифр с использованием омофонов
- •3 Шифр Гронсфельда
- •4 Система шифрования Вижинера
- •5 Шифр «Двойной квадрат Уитстона»
- •Задание
- •Варианты заданий темы 3 для самостоятельной подготовки
- •Вопросы по теории темы 3 для самостоятельной подготовки
- •Приложение
- •Открытое распределение ключей
- •Протокол обмена ключами Диффи–Хеллмана
- •Варианты заданий 2 темы 5 для самостоятельной подготовки
- •Задание 2
- •Решение Алгоритм решения задачи следующий:
- •Варианты заданий 1, 2 темы 6 для самостоятельной подготовки
- •Вопросы по теории темы 6 для самостоятельной подготовки
- •Варианты задания 1 темы 7 для самостоятельной подготовки
- •Литература
Варианты заданий 2 темы 5 для самостоятельной подготовки
Таблица вариантов к заданию 2
|
Вариант |
p |
|
1 |
23 |
|
2 |
29 |
|
3 |
31 |
|
4 |
37 |
|
5 |
41 |
|
6 |
43 |
|
7 |
47 |
|
8 |
53 |
|
9 |
19 |
|
0 |
17 |
Вопросы по теории темы 5 для самостоятельной подготовки
1 Теоретические основания асимметричных схем шифрования (сведения из теории чисел и модулярной арифметики).
2 Алгоритм возведения целого числа в степень по модулю.
3 Протокол обмена ключами Диффи-Хеллмана.
4 Алгоритм RSA, подготовка открытого и секретного ключа; порядок действий при обмене информацией.
5 Каковы достоинства и недостатки асимметричных криптоалгоритмов ?
Тема 6
Кодирование информации. Построение кодов с минимальной избыточностью(коды Хаффмана). Примеры построения кодов с минимальной избыточностью с учетом и без учета информации о вероятности появления символов в исходных текстах.
Краткие теоретические сведения
(см.лекции)
Задание 1
Разработать схемы алфавитного кодирования с минимальной избыточностью (коды Хаффмана) для случая, когда появление букв в сообщении равновероятно
Построить кодовые деревья. Получить схемы кодирования, определить l(увеличение длины закодированного сообщения над исходным)
|
r |
q |
|
9 |
4 |
РЕШЕНИЕ
1 Для конкретных значений q и rвсегда можно подобрать значение m, удовлетворяющее этому неравенству).
q m r q m+1, (1)
2 Обобщенный алгоритм поиска кода (схемы кодирования) с минимальной избыточностью:
для построения элементарных кодов использовать только mиm+1ярусы кодового дерева;
переходить на m+1 ярус только после исчерпания всех возможностейm–го яруса.
Для реализации этого алгоритма необходимо представить rв виде уравнения:
r =(qm– n )+ q n – t , (2)
где n– количество неконцевых вершин ярусаm(эти вершины будут ветвиться вm+1 ярус кодового дерева);
t(t q).– количество вершинm+1 яруса, которые не будут задействованы при построении кода (n, t – целые неотрицательные числа).
3 Формула для определения lбудет иметь следующий вид:
l = [( q m– n) m + (q n – t)( m+1)]/ r (3)
q =4; r = 9 в соответствии с формулой (1)m = 1.Для кодирования будет достаточно 1–го и 2–го ярусов обобщенного кодового дерева (см. рис. 1).
r =( qm – n)+ q n – t, 9= (4 –n)+ 4 n – t (подбираем целые n и t)
Равенство выполняется для n = 2 и t= 1.

4 Определим l для полученной схемы по формуле (3)
l = [( q m– n) m + (q n – t)( m+1)]/ r
l = (( 4-2) х 1 + (4х2 – 1) (1+1)) / 9 = 16/9 = 1,78.
Задание 2
Разработать схемы алфавитного кодирования с минимальной избыточностью (коды Хаффмана) для случая, когда вероятности появления букв в сообщении заданы
Построить кодовые деревья. Получить схемы кодирования, определить l(увеличение длины закодированного сообщения над исходным)
|
r |
q |
p1, p2, …p12 |
|
10 |
4 |
0,34; 0,18; 0,15; 0,05;… 0,05; 0,04; 0,04 |
Решение Алгоритм решения задачи следующий:
1 Определить qопо формуле (4).
k = r/ (q –1)(остаток от деления)
(4)
k = 10/3 = 1; q0 = 4.
2 Упорядоченный по убыванию список вероятностей p1, p2, …prзаменяют новым упорядоченным списком вида:p1, p2,.. pj, p,…pr–qo,гдеp =pr–qo+1+ …+ pr(т.е. суммируют последниеqоштук элементов списка и создают новый упорядоченный список, в который входит полученная сумма); процесс суммирования и упорядочивания (но уже суммируют последниеq штук элементов) продолжается до тех пор, пока в списке вероятностей останется ровноq элементов.
Упорядоченный список 1 (10 чисел) 0,34; 0,18; 0,15; 0,05;… 0,05; 0,04; 0,04
Упорядоченный список 2 (7 чисел) 0,34; 0,18; 0,18; 0,15; 0,05; 0,05; 0,05
Упорядоченный список 3 (4 числа) 0,34; 0,3; 0,18; 0,18;
3 Для последнего свернутого в п.2 списка строится одноярусное кодовое дерево (из начальной вершины выходит qребер, каждому из которых приписывается буква алфавитаO, а каждой вершине 1–го яруса вероятности из последнего свернутого списка).
4 Построить 2–й, 3–й и другие ярусы кодового дерева, на которых развернуть просуммированные вероятности последнего, предпоследнего и т.д. списков(вершины, которым приписаны вероятности букв входного алфавита на любом ярусе, становятся концевыми); в результате таких действий получим кодовое дерево, в котором rконцевых вершин и каждой из которых приписана вероятностьpj.Выписав цепи из нулевой вершины к концевым (перечень ребер), получим схему кодирования с минимальной избыточностью.

Величина среднего превышения длины закодированного сообщения над длиной самого сообщения определим по формуле:
=
0,34 + 0,18 + (0,3+0,18)х2 =1,48.
