Расшифровка сообщения, принятого от оппонента

Цель практического занятия

Практическое занятие посвящено изучению механизма ассиметричного шифрования и расшифровки сообщений. Конечно, для практических целей используются высокоорганизованные алгоритмы работы с большими двоичными числами. Кроме того с помощью длинных ключей можно конвертировать в шифр длинные отрезки сообщения. Но для учебных целей достаточно понять последовательность операций кодирования и шифрования, поэтому:

1. Работаем в десятичном исчислении в таблице Excel, числа берем небольшие, чтобы не происходило переполнения разрядной сетки.

2. Шифруем отдельно каждую литеру сообщения. При этом получаем простой подстановочный шифр (каждой литере соответствует постоянная замена, например литера «е» в исходном сообщении всегда заменяется литерой «э» в зашифрованном). В реальных криптосистемах этого, конечно не происходит за счет воздействия ключа шифрования не на отдельные литеры, а на длинные отрезки исходного сообщения.

 

Порядок выполнения работы

Студентам необходимо разделиться на группы по 2 человека: «оппонент А» ­- «оппонент Б». На первом этапе каждому необходимо сгенерировать открытый и секретный ключи шифрования. Обменяться открытыми ключами. Далее создать сообщение (длиной не менее 20 литер, считая пробелы, пробелы вводить явно с клавиатуры, пустые ячейки не оставлять), перевести его в числовой код с помощью таблицы кодирования (Табл. 1), зашифровать открытым ключом своего оппонента и перевести в зашифрованное текстовое сообщения с помощью таблицы раскодирования (Табл. 2). Отправить оппоненту зашифрованное сообщение. В свою очередь, получить зашифрованное Вашим открытым ключом сообщение от оппонента. Его следует перевести в числовой код, расшифровать своим секретным ключом и раскодировать – перевести в алфавит с помощью соответствующей таблицы. Напоминаю, что пробел тоже литера, ее код в таблице -0.

 

Генерация ключей

Общий алгоритм генерации открытого и секретного ключей:

§ возьмем два простых числа p и q. Оппонент А выбирает p = 3; q = 11. Оппонент Б: p = 5; q = 7;

§ определим N, как результат умножения N= p*q;

§ определим M, как результат умножения M = (p-1)*(q-1);

§ выберем простое число, которое назовем d. Это число должно быть взаимно простым (не иметь ни одного общего делителя, кроме 1) с числом M;

§ определим такое число b, для которого является истинным следующее соотношение (b*d) mod M = 1;

§ назовем открытым ключем пару чисел {b; N }, а секретным – {d; N };

§ пары чисел внесем в соответствующие таблички на листе Excel.

       

Шифрование сообщения

Создать сообщение – фразу из 2-3- слов. Для того, чтобы зашифровать сообщение открытым ключом оппонента {b, N }, выполнить следующие действия:

§ разбить шифруемый текст на блоки (в нашем случае – на отдельные буквы) и вписать сообщение в столбец «Текст» таблицы «Шифрование своего сообщения», размещая в каждой ячейке по одной букве;

§ перевести буквы в числовой код (в компьютере все данные циркулируют в числовом виде). Для этого необходимо в первой строке столбца «Код» (ячейка I13) вставить функцию =ВПР(Буква;Таблица1;2;0), где первый аргумент – ссылка на букву; второй – абсолютная ссылка на таблицу кодировки, третий – указание на второй столбец этой таблицы; ноль указывает, что таблица не структурирована. Следует помнить, абсолютная ссылка не смещается вслед за размножаемой формулой и создается с помощью знаков $. Например A1 – относительная ссылка, $A$1 – абсолютная. Она создается из относительной нажатием клавиши F4.

Внимание! Все ссылки выполняются ТОЛЬКО щелчками мышкой по соответствующим ячейкам.

Расположение аргументов функции ВПР на листе определите самостоятельно.

§ Зашифровать свой числовой код текста, рассматриваемый как последовательность чисел Xi, по формуле Ci = ( Xi ^ b) mod N. Для этого в первой строке столбца «Шифр» той же таблицы вставить функцию =ОСТАТ(Код ^ b;N), где первая ссылка указывает на код шифруемой буквы, это число возводится в степень b (абсолютная ссылка) – часть открытого ключа оппонента; вторая абсолютная ссылка указывает на число N –вторая часть того же ключа. Фунция  ОСТАТ вычисляет остаток от деления первого аргумента на второй;

§ в столбце «Сообщение» производится перевод чисел-шифра в буквы-шифр с помощью таблицы «Раскодирование» (Табл. 2);

§ три последних формулы размножить до конца текста в таблице «Шифрование» и полученное зашифрованное сообщение передать оппоненту.

            

Расшифровка сообщения, принятого от оппонента

Чтобы расшифровать сообщение оппонента, используя свой секретный ключ {d,N}, необходимо выполнить следующие вычисления:

§ ввести побуквенно полученное сообщение в столбец «Сообщение» таблицы «Расшифровка полученного сообщения»;

§ выполнить в этой таблице действия, аналогичные предыдущим, используя для расшифровки сообщения свой секретный ключ;

§ сверить с оппонентом расшифрованные сообщения.


Дата добавления: 2020-04-25; просмотров: 159; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!