2K_programuvanna / Шифр Уинстона Вариант Курсовой
.doc"Шифры сложной замены. Двойной квадрат Уитстона"
Цель:
Выработать у студента умения и навыки шифрования информации с помощью шифра сложной замены "Двойной квадрат Уитстона".
Задание.
1. Ознакомиться с теоретическими сведениями о шифре "Двойной квадрат Уитстона"
2. Выполнить программную реализацию шифрования и дешифрование данных с помощью шифра "Двойной квадрат Уитстона" на любом алгоритмическом языке , согласно своему варианту.
3. Протестировать работу программы.
4. Оформить отчёт.
Программа должна выполнят следующее:
-
Генерировать с помощью псевдослучайной функции 2 квадрата Уитстона размером Size, заполненный символами алфавита A, согласно вашего варианта (Ваш вариант=(Номер в списке группы) mod 25)
-
Производить зашифрование данных с помощью шифра "Двойной квадрат Уитстона" , используя сгенерированные квадраты, на 1 шаге
-
Производить расшифрование данных зашифрованных с помощью шифра "Двойной квадрат Уитстона", используя сгенерированные квадраты, на 1 шаге
-
Если при шифровании в сообщении встречаются символы, не входящие в алфавит то вывести на экран ошибку и прекратить дальнейшие действия
-
В программе должно быть предусмотрено 2 режима получения ключа – генерация и ввод с помощью клавиатуры или файла
-
Выводить результаты работы программы на экран. В качестве результата должны быть выведены:
-
сгенерированный алфавит
-
размер квадрата
-
сгенерированные 2 квадрата Уитстона, расположенные один возле другого
-
открытый и зашифрованный тексты, разбитый на биграммы
-
зашифрованный и расшифрованный тексты, разбитый на биграммы
-
-
Если используется консольная программа, то должна быть предусмотрена возможность зашифрования/расшифрования производить произвольное количество раз, а не только один раз
Таблица 1. Варианты заданий.
№ в-та |
А |
Size |
1 |
5 случайных заглавных английских букв,11 случайных строчных английских букв, спецсимволы :;()[]<>+ |
5x5 |
2 |
Заглавные английские буквы, строчные русские буквы, спецсимволы !?,.:;() |
8x8 |
3 |
Цифры,10 случайных заглавных английских букв, 16 случайных строчных русских букв. |
6x6 |
4 |
Цифры, 15 случайных строчных английских букв |
5x5 |
5 |
Строчные английские буквы, числа из диапазона 0..5, спецсимволы !?,.:;()[]<>+-*/– |
7x7 |
6 |
Чётные числа из диапазона 0..9, строчные русские буквы, строчные английские буквы, спецсимвол * |
8x8 |
7 |
Заглавные буквы английского алфавита, чётные числа из диапазона 0..9, спецсимволы <>+-* |
6x6 |
8 |
Строчные английские буквы, нечётные числа из диапазона 0..9, 18 случайных строчных букв английского алфавита |
7x7 |
9 |
9 строчных английских букв, цифры, 6 строчных русских букв |
5x5 |
10 |
Строчные английские буквы, заглавные русские буквы, спецсимволы ,.:;()[] |
8x8 |
11 |
Заглавные русские буквы, чётные числа из диапазона 0..9, 12 случайных заглавных английских букв |
7x7 |
12 |
Нечётные числа из диапазона 0..9, 12 случайных заглавных русских букв, спецсимволы ;()[]<>+-* |
5x5 |
13 |
Цифры,14 случайных строчных английских букв, 12 случайных строчных русских букв. |
6x6 |
14 |
17 случайных строчных букв английского алфавита, строчные буквы русского алфавита. |
7x7 |
15 |
Цифры, заглавные русские буквы, 5 случайных строчных английских букв, спецсимволы !?,.:;()[]<>+-*/– |
8x8 |
16 |
7 случайных строчных английских букв,9 случайных строчных английских букв, спецсимволы []<>+-*/– |
5x5 |
17 |
Заглавные русские буквы, строчные английские буквы, числа из диапазона 0..7 |
8x8 |
18 |
нечётные числа из диапазона 0..9, заглавные русские буквы, 12 случайных заглавных английских букв |
7x7 |
19 |
10 случайных заглавных русских букв, чётные числа из диапазона 0..9, 15 случайных строчных английских букв, спецсимволы !?,.:; |
6x6 |
20 |
15 случайных строчных русских букв, цифры |
5x5 |
21 |
5 случайных заглавных английских букв,11 случайных заглавных украинских символов, спецсимволы :;()[]{}- |
5x5 |
22 |
Заглавные буквы английского алфавита, нечётные цифры из диапазона 0..9, спецсимволы <>%@* |
6x6 |
23 |
строчные английские буквы, строчные украинские буквы, спецсимволы !%,^:;[) |
8x8 |
24 |
Цифры,10 случайных строчных украинских букв, 16 случайных английских букв. |
6х6 |
25 |
Заглавные английские буквы, числа из диапазона 5..9, спецсимволы !&,.:;(){}%>+-*/– |
7x7 |
фффффффффффффффф
Теоретический материал
Шифр "двойной квадрат" Уитстона
В 1854 г. англичанин Чарльз Уитстон разработал новый метод шифрования биграммами, который называют "двойным квадратом". Свое название этот шифр получил по аналогии с полибианским квадратом. Шифр Уитстона открыл новый этап в истории развития криптографии. В отличие от полибианского шифр "двойной квадрат" использует сразу две таблицы, размещенные по одной горизонтали, а шифрование идет биграммами, как в шифре Плейфейра. Эти не столь сложные модификации привели к появлению на свет качественно новой криптографической системы ручного шифрования. Шифр "двойной квадрат" оказался очень надежным и удобным и применялся Германией даже в годы Второй мировой войны.
Поясним процедуру шифрования этим шифром на примере. Пусть имеются две таблицы со случайно расположенными в них русскими алфавитами (рис.1). Эти две таблицы будут ключами и должны хранится в секрете. Перед шифрованием исходное сообщение разбивают на биграммы. Каждая биграмма шифруется отдельно. Первую букву биграммы находят в левой таблице, а вторую букву - в правой таблице. Затем мысленно строят прямоугольник так, чтобы буквы биграммы лежали в его противоположных вершинах. Другие две вершины этого прямоугольника дают буквы зашифрованной биграммы.
Рисунок 1 - Две таблицы со случайно расположенными символами русского алфавита для шифра "двойной квадрат"
Предположим, что шифруется биграмма исходного текста ИЛ. Буква И находится в столбце 1 и строке 2 левой таблицы. Буква Л находится в столбце 5 и строке 4 правой таблицы. Это означает, что прямоугольник образован строками 2 и 4, а также столбцами 1 левой таблицы и 5 правой таблицы. Следовательно, в биграмму шифртекста входят буква О, расположенная в столбце 5 и строке 2 правой таблицы, и буква В, расположенная в столбце 1 и строке 4 левой таблицы, т.е. получаем биграмму шифртекста ОВ.
Если обе буквы биграммы сообщения лежат в одной строке, то и буквы шифртекста берут из этой же строки. Первую букву биграммы открытого текста ищут в левой таблице, а соответствующая ей буква зашифрованной биграммы берётся из правой таблицы, в томже столбце, в котором находится символ открытого сообщения. Вторую букву биграммы открытого текста ищут в правой таблице, а соответствующая ей буква зашифрованной биграммы берётся из левой таблице в том же столбце, что и открытый символ биграммы. Поэтому биграмма сообщения ТО превращается в зашифрованную биграмму ЖБ. Аналогичным образом шифруются все биграммы сообщения:
Сообщение ПР ИЛ ЕТ АЮ Ш ЕС ТО ГО
Шифртекст ПЕ ОВ ЩН ФМ ЕШ РФ ЖБ ДЦ
Расшифрование происходит аналогично зашифрованию, только таблицы, которые применялись при шифровании, меняются местами
Шифрование методом "двойного квадрата" дает весьма устойчивый к вскрытию и простой в применении шифр. Взламывание шифртекста "двойного квадрата" требует больших усилий, при этом длина сообщения должна быть не менее тридцати строк.
Контрольные вопросы
-
Сколько генерируются таблиц?
-
Каким образом заполняются таблицы?
-
Что у нас выступает в качестве ключа?
-
Каким образом происходит зашифрования данных?
-
Каким образом происходит расшифрования данных?