Бинарные операции над матрицами

Автор работы: Пользователь скрыл имя, 23 Апреля 2013 в 15:16, лабораторная работа

Описание работы

Система шифрования Цезаря с ключевым словом является одноалфавитной системой подстановки. Особенностью этой системы является использование ключевого слова для смещения и изменения порядка символов в алфавите подстановки. Выберем некоторое число k, , и слово или короткую фразу в качестве ключевого слова. Желательно, чтобы все буквы ключевого слова были различными.
Теперь мы имеем подстановку для каждой буквы произвольного сообщения. Исходное сообщение SEND MORE MONEY шифруется как HZBY TCGZ TCBZS. Следует отметить, что требование о различии всех букв ключевого слова не обязательно.

Файлы: 1 файл

бинарные матрицы.docx

— 60.30 Кб (Скачать файл)

Система Цезаря с ключевым словом.

Система шифрования Цезаря с ключевым словом является одноалфавитной системой подстановки. Особенностью этой системы является использование ключевого слова для смещения и изменения порядка символов в алфавите подстановки. Выберем некоторое число k, , и слово или короткую фразу в качестве ключевого слова. Желательно, чтобы все буквы ключевого слова были различными. Пусть выбраны слово DIPLOMAT в качестве ключевого слова и число k = 5. Ключевое слово записывается под буквами алфавита, начиная с буквы, числовой код которой совпадает с выбранным числом k:

  

 

  

 

  

 

  

 

10 

  

 

  

 

  

 

  

 

15 

  

 

  

 

  

 

  

 

20 

  

 

  

 

  

 

  

 

25

А 

Е 

Н 

К 

М 

Р 

Х 

Z

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

 

 

 

Оставшиеся  буквы алфавита подстановки записываются после ключевого слова в алфавитном порядке:

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

 

 

А 

Е 

Н 

К 

М 

Р 

Х 

Z

Х 

U


 

Теперь мы имеем подстановку для каждой буквы произвольного сообщения. Исходное сообщение SEND MORE MONEY шифруется  как HZBY TCGZ TCBZS. Следует отметить, что  требование о различии всех букв ключевого  слова не обязательно. Можно просто записать ключевое слово (или фразу) без повторения одинаковых букв. Например, ключевая фраза: КАК ДЫМ ОТЕЧЕСТВА  НАМ СЛАДОК И ПРИЯТЕН

и число k=3 порождают  следующую таблицу подстановок:

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

  

 

 

 

А  

Б 

В 

Г 

Д 

Е 

Ж 

З 

И 

Й 

К 

Л 

М 

Н 

О 

П 

Р 

С 

Т 

У 

Ф 

Х 

Ц 

Ч 

Ш 

Щ 

Ь 

Ы 

Ъ 

Э 

Ю 

Я

Ъ 

Э 

Ю 

К 

А 

Д 

Ы 

М 

О 

Т 

Е 

Ч 

С 

В 

Н 

Л 

И 

П 

Р 

Я 

Б 

Г 

Ж 

З 

Й 

У 

Ф 

Х 

Ц 

Ш 

Щ 

Ь


 

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

 

 

 

 

Описание  основных операций булевой алгебры

 

Булевой алгеброй называется произвольное множество  элементов  a, b, c, ... , для которых определены две операции - сложение и умножение, сопоставляющие каждым двум элементам a и b их сумму a + b и произведение a b ; определена операция "отрицание", сопоставляющая каждому элементу  a новый элемент (-a) ; имеются два "особых" элементов 0 и   1 и выполняются следующие правила:

 

Аксиомы:

 

Свойства логических операций:

1. Коммутативность: x

y = y
x,
{&,
}.

2. Идемпотентность: x

x = x,
{&,
}.

3. Ассоциативность: (x

y)
z = x
(y
z),
{&,
}.

4. Дистрибутивность конъюнкций  и дизъюнкции относительно дизъюнкции, конъюнкции и суммы по модулю  два соответственно:

5. Законы де Моргана:

6. Законы поглощения:

7. Другие (1):

8. Другие (2):

 

9. Другие (3) (Дополнение  законов де Моргана):

 

 

x

y

0

x↓y

x←y

x

x→y

y

x⊕y

0

0

0

1

0

1

0

1

0

0

1

0

0

1

1

0

0

1

1

0

0

0

0

0

1

1

1

1

1

0

0

0

0

0

0

0


 

 

x|y

x & y

x ≡ y

y

x→y

x

x←y

x ∨ y

1

1

0

1

0

1

0

1

0

1

1

0

0

1

1

0

0

1

1

1

0

0

0

0

1

1

1

1

0

1

1

1

1

1

1

1

1


 

x

0

x

1

0

0

1

0

1

1

0

0

1

1


 

 

 

Шифрование методом "исключающего или"

 

Основная идея алгоритма состоит в том, что если у нас есть некая величина, есть некий шифровальный ключ (другая величина), то можно зашифровать исходные данные через этот ключ, применив операцию XOR побитно. Т.е. если у нас есть исходная фраза a и ключ k, то x = a ^ k. Теперь, если к шифру x опять применить ключ, то получим исходную фразу, т.е. a` = x ^ k, где a` = a.

 

Принцип в примере:

 

#include <iostream>

using namespace std;

int main()

{

// Кодируемая информация

const int Source = 333;

// Ключ шифрования

const int Key=5;

 

int coded = Source ^ Key;

int decoded = coded ^ Key;

 

cout << "Source data: " << Source << endl << endl;

cout << "Code key: " << Key << endl << endl;

cout << "Coded: " << coded << endl<< endl;

cout << "Decoded: " << decoded << endl<< endl;

 

system("PAUSE");

return 0;

}

Шифрование и  дешифрование умножением на бинарные матрицы

 

Ключ 

Матрица 1

Матрица 2

1

10101001

10011101

11101101

11001111

11011100

10100101

10011001

00011111

00100001

10001101

11111110

01101111

01010001

10110110

10000100

00001111

01101110


 

Ключ :

 

1

0

1

0

1

0

0

1


 

Информация о работе Бинарные операции над матрицами