
Практические работы Часть 2 / Практическая работа 2 / ПР №2 Шифр Вижинера - Задание
.doc
Практическая работа №2
«Шифр Виженера»
Цель: знакомство с методами криптографической защиты информации и с алгоритмами шифрования. Научить кодировать информацию с помощью «Шифра Виженера»
В качестве второго примера симметричной криптосистемы рассмотрим классическую криптосистему на основе шифра Виженера, по фамилии французского криптографа шестнадцатого столетия Блеза де Виженера. Шифр Виженера строится по следующему алгоритму: 1) заменить каждую букву английского языка цифрой согласно следующим таблицам:
a |
b |
c |
d |
e |
f |
g |
h |
i |
j |
k |
l |
m |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
n |
o |
p |
q |
r |
s |
t |
u |
v |
w |
x |
y |
z |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
2) в качестве ключа рассмотреть любую последовательность букв английского языка; 3) заменить ключ последовательностью цифр согласно пункту 1; 4) заменить открытый текст последовательностью цифр согласно пункту 1 (пробелы при замене не учитывать); 5) записать под последовательностью цифр открытого текста последовательность цифр ключа, при этом последовательность цифр ключа записать необходимое число раз; 6) сложить попарно эти две последовательности, при этом если сумма равна или больше 26, то вычесть 26; 7) заменить полученные цифры буквами английского языка согласно пункту 1.
Например, зашифруем открытый текст meetmeatcentralpark с помощью шифра Виженера с помощью ключа cipher. Тогда согласно алгоритму (пункты 4. и 5.) ключ cipher заменяется последовательностью цифр (2,8,15,7,4,17), а открытый текст meetmeatcentralparkзаменяется последовательностью цифр (12,4,4,19,12,4,0,19,2,4,13,19,17,0,11,15,0,17,10). Тогда согласно алгоритму (пункт 6.) получим следующую таблицу:
12 |
4 |
4 |
19 |
12 |
4 |
0 |
19 |
2 |
4 |
13 |
19 |
17 |
0 |
11 |
15 |
0 |
17 |
10 |
2 |
8 |
15 |
7 |
4 |
17 |
2 |
8 |
15 |
7 |
4 |
17 |
2 |
8 |
15 |
7 |
4 |
17 |
2 |
Сложив попарно эти две последовательности с возможной заменой (согласно пункту 6. алгоритма), получим последовательность (14,12,19,0,16,21,2,1,17,11,17,12,19,8,0,22,4,8,12). Следовательно, согласно пункту 7. алгоритма в качестве шифра исходного открытого текста получим последовательность omtaqvcbrlrmtiaweim.
Шифр Виженера можно применить и к русскому алфавиту. Мы с вами увидели, что шифр Виженера более трудный для построения (по сравнению с шифром Цезаря), но он и более трудный для взлома. Шифр Виженера был невзламываемым до середины 19 века, но в 1863 году прусский офицер Касисский нашёл простой теоретико-числовой метод поиска длины ключа.
Задание 1:
Заполните Лист 1. Переименуйте лист и дайте ему имя Шифр
|
|
|
|
|
|
|
|
|
ШифрВиженера |
||||||||
Ключ |
b |
a |
n |
k |
b |
a |
n |
k |
Сдвиг |
2 |
1 |
14 |
11 |
2 |
1 |
14 |
11 |
Исходный текст |
g |
e |
o |
m |
e |
t |
r |
y |
Зашифрованный текст |
|
|
|
|
|
|
|
|
-
Ячейки А 2 - I2 объедините ячейки и запишите слово Шифр Виженера
-
В ячейку А 3 запишите Ключ
-
В ячейку А 4 запишите Сдвиг
-
В ячейку А 5 запишите Исходный текст
-
В ячейку А 6 запишите Зашифрованный текст
Заполните ячейки Лист 2 по указанным формулам. Переименуйте лист и дайте ему имя Формулы.
|
|
|
Шифр Виженера |
||
Ключ |
b |
|
Сдвиг |
=КОДСИМВ(B3)-КОДСИМВ("a")+1 |
|
Исходный текст |
g |
|
Зашифрованныйтекст |
=СИМВОЛ(КОДСИМВ("a")+ОСТАТ(КОДСИМВ(B5)КОДСИМВ("a")+B4;26)) |
В ячейку B3 введите формулу =КОДСИМВ(B3)-КОДСИМВ("a")+1
В ячейку B5 введите формулу =СИМВОЛ(КОДСИМВ("a")+ОСТАТ(КОДСИМВ(B5)-КОДСИМВ("a")+B4;26))
В ячейку C3 введите формулу =КОДСИМВ(C3)-КОДСИМВ("a")+1
В ячейку C5 введите формулу =СИМВОЛ(КОДСИМВ("a")+ОСТАТ(КОДСИМВ(C5)-КОДСИМВ("a")+C4;26))
В ячейку D3 введите формулу =КОДСИМВ(D3)-КОДСИМВ("a")+1
В ячейку D5 введите формулу =СИМВОЛ(КОДСИМВ("a")+ОСТАТ(КОДСИМВ(D5)-КОДСИМВ("a")+D4;26))
В ячейку E3 введите формулу =КОДСИМВ(E3)-КОДСИМВ("a")+1
В ячейку E5введите формулу =СИМВОЛ(КОДСИМВ("a")+ОСТАТ(КОДСИМВ(E5)-КОДСИМВ("a")+E4;26))
В ячейку F3 введите формулу =КОДСИМВ(F3)-КОДСИМВ("a")+1
В ячейку F5 введите формулу =СИМВОЛ(КОДСИМВ("a")+ОСТАТ(КОДСИМВ(F5)-КОДСИМВ("a")+F4;26))
В ячейку G3 введите формулу =КОДСИМВ(G3)-КОДСИМВ("a")+1
В ячейку G5 введите формулу =СИМВОЛ(КОДСИМВ("a")+ОСТАТ(КОДСИМВ(G5)-КОДСИМВ("a")+G4;26))
В ячейку H3=КОДСИМВ(H3)-КОДСИМВ("a")+1
В ячейку H5=СИМВОЛ(КОДСИМВ("a")+ОСТАТ(КОДСИМВ(H5)-КОДСИМВ("a")+H426))
В ячейку I3=КОДСИМВ(I3)-КОДСИМВ("a")+1
В ячейку I5=СИМВОЛ(КОДСИМВ("a")+ОСТАТ(КОДСИМВ(I5)-КОДСИМВ("a")+I4;26))
Самостоятельно, с помощью ключевого слова bank закодировать слова discovod, computer, keyboard, aktivity, systemic, hersonal, register. |
Задание 2: реализуйте с помощью Windows Form (C#) приложение для реализации шифра Вижинера.