- •1. Перевод чисел из одной системы счисления в другую
- •1.1. Правила перевода целых чисел
- •1.2. Правила перевода правильных дробей
- •1.2.1. Перевод из десятичной системы счисления – в двоичную и шестнадцатеричную:
- •0,1101 – Результирующее число.
- •1.3. Правило перевода дробных чисел
- •2. Построение прямых кодов и кодирование дискретного сигнала
- •3. Построение кодов с учетом частоты символов и кодирование дискретного сигнала
- •4. Построение кода Грея и кодирование дискретного сигнала
- •5. Криптографическое кодирование дискретного сигнала методом простой подстановки
- •6. Криптографическое кодирование дискретного сигнала методом Виженера
- •7. Построение эффективных кодов методом Шеннона-Фано и кодирование дискретного сигнала
- •8. Построение эффективных кодов методом Хаффмена и кодирование дискретного сигнала
- •9. Измерение дискретного сигнала
- •10. Сложение вещественных чисел в обратных кодах
- •Нормализация
- •Размещение в разрядных сетках
- •11. Сложение вещественных чисел в дополнительных кодах
5. Криптографическое кодирование дискретного сигнала методом простой подстановки
Задание к работе: выполнить криптографическое кодирование исходного текста методом простой подстановки. Исходным алфавитом принять алфавит из задания 2. В качестве символов кодирования принять l-разрядные двоичные кодовые комбинации (величина l определена в задании 2), значение которых находится в пределах от 0 до двоичного эквивалента числа N-1, где N – мощность исходного алфавита.
Решение задачи
для построения кода составим таблицу соответствия между символами исходного алфавита (графа 1 таблицы 5.1), их произвольными номерами в пределах от 0 до 12 (графа 2 таблицы 5.1) (назначение номера выполнено случайным образом, но номера не должны повторяться) и 4-разрядными кодами этих номеров (графа 3 таблицы 5.1). В графе 4 укажем прямые коды символов исходного алфавита из таблицы 2.1:
Таблица 5.1
Символы исходного алфавита |
Произвольный номер символа |
Коды |
Прямой код |
1 |
2 |
3 |
4 |
а |
9 |
1001 |
0000 |
в |
11 |
1011 |
0001 |
е |
12 |
1100 |
0010 |
и |
1 |
0001 |
0011 |
л |
10 |
1010 |
0100 |
н |
6 |
0110 |
0101 |
о |
7 |
0111 |
0110 |
п |
0 |
0000 |
0111 |
р |
2 |
0010 |
1000 |
с |
3 |
0011 |
1001 |
т |
4 |
0100 |
1010 |
ч |
5 |
0101 |
1011 |
ь |
8 |
1000 |
1100 |
для кодирования исходного текста вначале запишем исходный текст с помощью кодов из графы 3 таблицы 5.1. Получаем:
петров 0000 1100 0100 0010 0111 1011
иван 0001 1011 1001 0110
васильевич 1011 1001 0011 0001 1010 1000 1100 1011 0001 0101
Теперь заменим каждую кодовую комбинацию соответствующим символом, сообразуясь с данными графы 4 таблицы 5.1. Получаем:
петров аьлепч
иван вчсо
васильевич чсивтрьчвн
6. Криптографическое кодирование дискретного сигнала методом Виженера
Задание к работе: выполнить криптографическое кодирование исходного текста методом Виженера. Исходным алфавитом принять множество символов из задания 2. В качестве ключа кодирования использовать имя собственное.
Решение задачи
для построения кода пронумеруем символы исходного алфавита, начиная с 0. Получим таблицу соответствия (таблица 6.1),
Таблица 6.1
символы исходного алфавита |
а |
в |
е |
и |
л |
н |
о |
п |
р |
с |
т |
ч |
ь |
номера символов |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
для кодирования выполняем шаги:
выписываем исходный текст (строка 1 таблицы 6.2),
формируем номера символов исходного текста из таблицы 5.1 (строка 2 таблицы 6.2),
многократно записываем ключ под исходным текстом (строка 3 таблицы 6.2),
заполняем номера символов ключа из таблицы 5.1 (строка 4 таблицы 6.2),
складываем по модулю 13 (это мощность алфавита) номера символов (строка 5 таблицы 6.2),
заменяем полученные числа символами исходного алфавита из таблицы 6.1 (строка 6 таблицы 6.2). Таким образом, получаем строку, соответствующую исходному тексту:
тиоасеиоиовньлллнеии
Таблица 6.2
Номер строки |
Результаты выполнения кодирования |
|||||||||||||||||||
1 |
п |
е |
т |
р |
о |
в |
и |
в |
а |
н |
в |
а |
с |
и |
л |
ь |
е |
в |
и |
ч |
2 |
7 |
2 |
10 |
8 |
6 |
1 |
3 |
1 |
0 |
5 |
1 |
0 |
9 |
3 |
4 |
12 |
2 |
1 |
3 |
11 |
3 |
и |
в |
а |
н |
и |
в |
а |
н |
и |
в |
а |
н |
и |
в |
а |
н |
и |
в |
а |
н |
4 |
3 |
1 |
0 |
5 |
3 |
1 |
0 |
5 |
3 |
1 |
0 |
5 |
3 |
1 |
0 |
5 |
3 |
1 |
0 |
5 |
5 |
10 |
3 |
10 |
0 |
9 |
2 |
3 |
6 |
3 |
6 |
1 |
5 |
12 |
4 |
4 |
4 |
5 |
2 |
3 |
3 |
6 |
т |
и |
о |
а |
с |
е |
и |
о |
и |
о |
в |
н |
ь |
л |
л |
л |
н |
е |
и |
и |
Получаем результат (отдельно закодирована фамилия, имя и отчество):
петров тиоасе
иван иоио
васильевич вньлллнеии