Шифрование перестановкой в матрице (транслитерация).
ВАРИАНТЫ ЗАДАНИЙ К ПРАКТИЧЕСКИМ РАБОТАМ РАБОТАМ
ПО ДИСЦИПЛИНЕ «ЗАЩИТА ИНФОРМАЦИИ»
ДЛЯ РАЗРАБОТКИ ПРОГРАММЫ ШИФРОВАНИЯ ДАННЫХ
Равновесный код «2 из 5» в методе гаммирования.
Таблицы Вижинера с символьным ключом.
Таблицы Вижинера с цифровым ключом.
Двоичные коды Хоффмана.
Метод аналитического преобразования по правилу алгебры матриц.
Универсальный метод моноалфавитной подстановки.
Маршруты Гамильтона.
Шифрование гаммированием.
Шифрование перестановкой в матрице (транслитерация).
Шифрование методом аналитических преобразований в матрице по особым зависимостям.
G - контурная многоалфавитная матрица.
Генераторы псевдослучайных чисел для формирования цифровых ключей заданной длины.
Шифрование перестановкой в треугольнике.
Шифр Ривеста – Шамира – Алдемана.
Шифр ЭльГамаля.
Коды Шеннона – Фано.
Метод Гронсфельда.
Шифрование транспозициями по типу «частокола».
Частотный анализ символьных строк.
Равновесный код «2 из 5» в методе гаммирования.
Десятичные цифры | Код «2 из 5» | 8 4 2 1 | Символ проверки на чётность |
0 | 0 0 0 1 1 | 0 0 0 0 | 0 |
1 | 0 0 1 0 1 | 0 0 0 1 | 1 |
2 | 0 0 1 1 0 | 0 0 1 0 | 1 |
3 | 0 1 0 0 1 | 0 0 1 1 | 0 |
4 | 0 1 0 1 0 | 0 1 0 0 | 1 |
5 | 0 1 1 0 0 | 0 1 0 1 | 0 |
6 | 1 0 0 0 1 | 0 1 1 0 | 0 |
7 | 1 0 0 1 0 | 0 1 1 1 | 1 |
8 | 1 0 1 0 0 | 1 0 0 0 | 1 |
9 | 1 1 0 0 0 | 1 0 0 1 | 0 |
Одним из способов представления десятичных чисел в виде двоичных последовательностей является код «два из пяти», показанный в таблице.
|
|
Любая из цифр в этом коде представляется в виде двоичной последовательности длины 5, в которой два из пяти символов всегда равны 1 (заметим, что (5 2)=10).
Необходимо разработать программу шифрующую/ дешифрующую исходный текст сообщения с использованием метода гаммирования. Гамма задаётся пользователем в виде цифрового десятичного ключа, преобразуемого в двоичную последовательность равновесным кодом «2 из 5».
Таблицы Вижинера с символьным ключом.
Разработать программу, преобразующую вводимый текст сообщения методом замены по таблице с символьным ключом. Таблица Вижинера представляет собой квадратную матрицу с числом элементов К, где К — количество символов в алфавите. В первой строке матрицы записываются буквы в порядке очередности их в алфавите. В первый столбец таблицы записываются символы ключа (неповторяющиеся). Во второй строке таблицы — та же последовательность букв, но со сдвигом влево на позицию, соответствующую позиции буквы ключа, в третьей – то же самое и т. д. до последнего символа ключа. Для дешифрования необходимо знать длину ключа и сам ключ, который может быть введен пользователем.
|
|
Таблицы Вижинера с цифровым ключом.
Усовершенствованный метод подстановки по таблице Вижинера заключается в следующем:
• во всех (кроме первой) строках таблицы буквы алфавита располагаются в произвольном порядке;
• выбирается десять (не считая первой) строк, пронумерованных натуральными числами от 0 до 9;
• в качестве ключа используются величины, выраженные бесконечным рядом чисел (например, основание натуральных логарифмов е=2,7182818285..., число p = 3,14159..., но с учётом, что цифры ключа не должны повторяться).
Необходимо разработать программу, шифрующую/ дешифрующую исходное сообщение подстановкой по таблице Вижинера с цифровым ключом, формируемым пользователем.
Двоичные коды Хоффмана.
Строка двоичных кодов Хоффмана единственным образом разлагается на составные части, т.к. она представляется двоичным деревом знаков, обозначающих соответствующие буквы:
Буква | Код Хоффмана | Буква | Код Хоффмана |
E | 100 | M | 00011 |
T | 001 | U | 00010 |
A | 1111 | G | 00001 |
O | 1110 | Y | 00000 |
N | 1100 | P | 110101 |
R | 1011 | W | 011101 |
I | 1010 | B | 011100 |
S | 0110 | V | 1101001 |
H | 0101 | K | 110100011 |
D | 11011 | X | 110100001 |
L | 01111 | J | 110100000 |
F | 01001 | Q | 1101000101 |
C | 01000 | Z | 1101000100 |
|
|
Разработать программу, которая преобразуют исходное сообщение, вводимое пользователем, в последовательность двоичных символов при помощи кодов Хоффмана. Результирующую последовательность представить в виде строки блоками по 8 бит. При дешифровании передать ключ - последовательность цифр, значениями которых является длина двоичной последовательности каждого исходного символа. Например, при исходном тексте SNOW, значение ключа = 4446.
Метод аналитического преобразования по правилу алгебры матриц.
Это правило, как известно, заключается в следующем:
В соответствии с этим правилом матрицу можно использовать в качестве основы для шифрования, знаками вектора bi могут быть символы шифруемого текста, а знаками вектора результата ci — символы зашифрованного текста.
Для шифрования буквенных сообщений необходимо, прежде всего, заменить знаки алфавита их цифровыми эквивалентами, которым может быть порядковый номер буквы в алфавите.
Для дешифрования используются те же правила умножения матрицы на вектор, только в качестве основы берется обратная матрица, а в качестве умножаемого вектора — соответствующее количество чисел шифрованного текста. Цифрами вектора-результата будут цифровые эквиваленты знаков исходного текста.
|
|
6. Универсальный метод моноалфавитной подстановки.
Работу данного метода можно представить как числовые преобразования букв исходного текста, рассматриваемых как числа. Каждая буква в тексте умножается на некоторое число (называемое десятичным коэффициентом) и прибавляется к некоторому другому числу (коэффициенту сдвига):
Получающееся число уменьшается по правилу вычитания модуля А, где А — размер алфавита, и зашифрованный текст формируется из соответствующих ему алфавитных эквивалентов.
Маршруты Гамильтона.
Написать программу, реализующую алгоритм метода перестановки по маршрутам для преобразования исходного сообщения. Маршруты Гамильтона – это восьмиэлементная таблица, обладающая совокупностью маршрутов. Последовательность заполнения таблицы каждый раз соответствует нумерации ее элементов. Если длина шифруемого текста не кратна числу элементов, то при последнем заполнении в свободные элементы заносится произвольный символ (в данном случае, выбранный символ для кодирования пробела). Выборка из таблицы для каждого заполнения может выполняться по своему маршруту, при этом маршруты могут использоваться как последовательно, так и в порядке, задаваемом ключом.
Шифрование гаммированием.
Гаммирование — наложение на исходный текст некоторой последовательности кодов, называемой гаммой. Процесс наложения осуществляется следующим образом:
• символы исходного текста и гамма представляются в двоичном коде и располагаются один под другим;
• каждая пара двоичных знаков заменяется одним двоичным знаком шифрованного текста в соответствии с принятым алгоритмом;
• полученная последовательность двоичных знаков шифрованного текста заменяется символами алфавита в соответствии с выбранным кодом.
Поясним это на простом примере цифрового текста, закрытого цифровым кодом ключа методом гаммирования:
1. Закрытое многозначное число 1001 1000 1011 1010 1101 1100 получено путем поразрядного сложения по модулю 2 числа Х1Х2ХзХ4Х5Хб с однозначным числом К, т. е. шифрование числа Х1Х2Х3Х4Х5Х6 ключом К можно представить в виде системы уравнений:
2. Исходя из условия, что Х принимает десятичные значения от 0 до 9, для поиска неизвестного К определим все возможные значения Xi и К, сумма которых по модулю 2 приводит к результату 1001:
3. Аналогично определим К для чисел 1000, 1011, 1101 и 1100.
4. Анализируя полученные значения К для каждого из чисел и исключая значения более 9, определим значение, которое присутствует в каждом из десятков результатов.
Это значение будет равно 1001, т. е. в десятичном счислении 9. Следовательно, код ключа К = 9, а искомое число: 012345.
Шифрование перестановкой в матрице (транслитерация).
При транслитерации для перемешивания символов сообщения используются прямоугольные матрицы. Например, можно вписать алфавит в прямоугольник, расположив буквы следующим образом:
1 А Д З Л П У Ч Ы Я
2 Б Е И М Р Ф Ш Ь
3 В Ё Й Н С Х Щ Э
4 Г Ж К О Т Ц Ъ Ю
Шифрование осуществляется путём последовательной выборки элементов из строк матрицы в определённом порядке. Например, если выбираются элементы строк 2, 4, 3, 1 , получается следующее зашифрованное сообщение:
БЕИМР ФШЬГЖ КОТЦЪ ЮВЁЙН СХЩЭА ДЗЛПУ ЧЫЯ
Ключом в данном случае являются размеры прямоугольника и порядок перестановки строк. Напишите программу для кодирование и декодирования сообщений этим методом.
Дата добавления: 2019-01-14; просмотров: 1301; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!