Автор работы: Пользователь скрыл имя, 23 Апреля 2013 в 15:16, лабораторная работа
Система шифрования Цезаря с ключевым словом является одноалфавитной системой подстановки. Особенностью этой системы является использование ключевого слова для смещения и изменения порядка символов в алфавите подстановки. Выберем некоторое число k, , и слово или короткую фразу в качестве ключевого слова. Желательно, чтобы все буквы ключевого слова были различными.
Теперь мы имеем подстановку для каждой буквы произвольного сообщения. Исходное сообщение SEND MORE MONEY шифруется как HZBY TCGZ TCBZS. Следует отметить, что требование о различии всех букв ключевого слова не обязательно.
Матрица 1 :
|
Умножим ключ на матрицу по правилам
булевой алгебры.
0 Å 0 = 0
0 Å 1 = 1
1 Å 0 = 1
1 Å 1 = 0
Вычислим элементы
матрицы :
c1,1 = a1,1b1,1+a1,2b2,1+a1,3b
c1,2 = a1,1b1,2+a1,2b2,2+a1,3b
c1,3 = a1,1b1,3+a1,2b2,3+a1,3b
c1,4 = a1,1b1,4+a1,2b2,4+a1,3b
c1,5 = a1,1b1,5+a1,2b2,5+a1,3b
c1,6 = a1,1b1,6+a1,2b2,6+a1,3b
c1,7 = a1,1b1,7+a1,2b2,7+a1,3b
c1,8 = a1,1b1,8+a1,2b2,8+a1,3b
c1,1 = |
1 |
* |
1 |
+ |
0 |
* |
1 |
+ |
1 |
* |
1 |
+ |
0 |
* |
1 |
+ |
1 |
* |
1 |
+ |
0 |
* |
1 |
+ |
0 |
* |
0 |
+ |
1 |
* |
0 |
= |
1 |
+ |
0 |
+ |
1 |
+ |
0 |
+ |
1 |
+ |
0 |
+ |
0 |
+ |
0 |
= |
1 |
c1,2 = |
1 |
* |
0 |
+ |
0 |
* |
1 |
+ |
1 |
* |
1 |
+ |
0 |
* |
1 |
+ |
1 |
* |
0 |
+ |
0 |
* |
0 |
+ |
0 |
* |
0 |
+ |
1 |
* |
0 |
= |
0 |
+ |
0 |
+ |
1 |
+ |
0 |
+ |
0 |
+ |
0 |
+ |
0 |
+ |
0 |
= |
1 |
c1,3 = |
1 |
* |
0 |
+ |
0 |
* |
1 |
+ |
1 |
* |
0 |
+ |
0 |
* |
0 |
+ |
1 |
* |
1 |
+ |
0 |
* |
0 |
+ |
0 |
* |
0 |
+ |
1 |
* |
1 |
= |
0 |
+ |
0 |
+ |
0 |
+ |
0 |
+ |
1 |
+ |
0 |
+ |
0 |
+ |
1 |
= |
0 |
c1,4 = |
1 |
* |
1 |
+ |
0 |
* |
0 |
+ |
1 |
* |
0 |
+ |
0 |
* |
1 |
+ |
1 |
* |
0 |
+ |
0 |
* |
1 |
+ |
0 |
* |
1 |
+ |
1 |
* |
0 |
= |
1 |
+ |
0 |
+ |
0 |
+ |
0 |
+ |
0 |
+ |
0 |
+ |
0 |
+ |
0 |
= |
1 |
c1,5 = |
1 |
* |
1 |
+ |
0 |
* |
1 |
+ |
1 |
* |
1 |
+ |
0 |
* |
1 |
+ |
1 |
* |
0 |
+ |
0 |
* |
1 |
+ |
0 |
* |
1 |
+ |
1 |
* |
0 |
= |
1 |
+ |
0 |
+ |
1 |
+ |
0 |
+ |
0 |
+ |
0 |
+ |
0 |
+ |
0 |
= |
0 |
c1,6 = |
1 |
* |
1 |
+ |
0 |
* |
1 |
+ |
1 |
* |
1 |
+ |
0 |
* |
1 |
+ |
1 |
* |
1 |
+ |
0 |
* |
0 |
+ |
0 |
* |
1 |
+ |
1 |
* |
0 |
= |
1 |
+ |
0 |
+ |
1 |
+ |
0 |
+ |
1 |
+ |
0 |
+ |
0 |
+ |
0 |
= |
1 |
c1,7 = |
1 |
* |
0 |
+ |
0 |
* |
0 |
+ |
1 |
* |
1 |
+ |
0 |
* |
0 |
+ |
1 |
* |
0 |
+ |
0 |
* |
0 |
+ |
0 |
* |
1 |
+ |
1 |
* |
0 |
= |
0 |
+ |
0 |
+ |
1 |
+ |
0 |
+ |
0 |
+ |
0 |
+ |
0 |
+ |
0 |
= |
1 |
c1,8 = |
1 |
* |
1 |
+ |
0 |
* |
1 |
+ |
1 |
* |
1 |
+ |
0 |
* |
0 |
+ |
1 |
* |
1 |
+ |
0 |
* |
1 |
+ |
0 |
* |
1 |
+ |
1 |
* |
1 |
= |
1 |
+ |
0 |
+ |
1 |
+ |
0 |
+ |
1 |
+ |
0 |
+ |
0 |
+ |
1 |
= |
0 |
В результате получим закодированное сообщение :
|
Далее полученный результат умножим на матрицу 2 (обратная) для раскодирования. В результате чего получим исходный ключ.
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
*10001101
11111110
01101111
01010001
10110110
10000100
00001111
01101110
c1,1 = |
1 |
* |
1 |
+ |
1 |
* |
1 |
+ |
0 |
* |
0 |
+ |
1 |
* |
0 |
+ |
0 |
* |
1 |
+ |
1 |
* |
1 |
+ |
1 |
* |
0 |
+ |
0 |
* |
0 |
= |
1 |
+ |
1 |
+ |
0 |
+ |
0 |
+ |
0 |
+ |
1 |
+ |
0 |
+ |
0 |
= |
1 |
c1,2 = |
1 |
* |
0 |
+ |
1 |
* |
1 |
+ |
0 |
* |
1 |
+ |
1 |
* |
1 |
+ |
0 |
* |
0 |
+ |
1 |
* |
0 |
+ |
1 |
* |
0 |
+ |
0 |
* |
1 |
= |
0 |
+ |
1 |
+ |
0 |
+ |
1 |
+ |
0 |
+ |
0 |
+ |
0 |
+ |
0 |
= |
0 |
c1,3 = |
1 |
* |
0 |
+ |
1 |
* |
1 |
+ |
0 |
* |
1 |
+ |
1 |
* |
0 |
+ |
0 |
* |
1 |
+ |
1 |
* |
0 |
+ |
1 |
* |
0 |
+ |
0 |
* |
1 |
= |
0 |
+ |
1 |
+ |
0 |
+ |
0 |
+ |
0 |
+ |
0 |
+ |
0 |
+ |
0 |
= |
1 |
c1,4 = |
1 |
* |
0 |
+ |
1 |
* |
1 |
+ |
0 |
* |
0 |
+ |
1 |
* |
1 |
+ |
0 |
* |
1 |
+ |
1 |
* |
0 |
+ |
1 |
* |
0 |
+ |
0 |
* |
0 |
= |
0 |
+ |
1 |
+ |
0 |
+ |
1 |
+ |
0 |
+ |
0 |
+ |
0 |
+ |
0 |
= |
0 |
c1,5 = |
1 |
* |
1 |
+ |
1 |
* |
1 |
+ |
0 |
* |
1 |
+ |
1 |
* |
0 |
+ |
0 |
* |
0 |
+ |
1 |
* |
0 |
+ |
1 |
* |
1 |
+ |
0 |
* |
1 |
= |
1 |
+ |
1 |
+ |
0 |
+ |
0 |
+ |
0 |
+ |
0 |
+ |
1 |
+ |
0 |
= |
1 |
c1,6 = |
1 |
* |
1 |
+ |
1 |
* |
1 |
+ |
0 |
* |
1 |
+ |
1 |
* |
0 |
+ |
0 |
* |
1 |
+ |
1 |
* |
1 |
+ |
1 |
* |
1 |
+ |
0 |
* |
1 |
= |
1 |
+ |
1 |
+ |
0 |
+ |
0 |
+ |
0 |
+ |
1 |
+ |
1 |
+ |
0 |
= |
0 |
c1,7 = |
1 |
* |
0 |
+ |
1 |
* |
1 |
+ |
0 |
* |
1 |
+ |
1 |
* |
0 |
+ |
0 |
* |
1 |
+ |
1 |
* |
0 |
+ |
1 |
* |
1 |
+ |
0 |
* |
1 |
= |
0 |
+ |
1 |
+ |
0 |
+ |
0 |
+ |
0 |
+ |
0 |
+ |
1 |
+ |
0 |
= |
0 |