64.19K
Категория: ПрограммированиеПрограммирование

Шифрование с помощью операции «исключающее или»

1.

Шифрование с помощью
операции «исключающее или»
Филатов Алексей Александрович,
учитель информатики и ИКТ
МАОУ «Лицей 44 » г. Липецка

2.

Свойства операции «исключающее
или» (XOR, ⊕)
A
0
0
1
1
B
0
1
0
1
A ⊕B ⊕B=A
A⊕B
0
1
1
0

3.

Задача
Зашифровать сообщение «A-b=c».
Маска: 27
Используем 8-битную кодировку ASCII

4.

1. Переведем маску в двоичный вид:
2710=000110112
2. Для каждого символа из сообщения определим
его код в десятичной и/или шестнадцатеричной
форме из таблицы ASCII, затем переведем его в
двоичный вид:
«A»
=6510=4116=010000012
«-»
=4510=2D16=001011012
«b»
=9810=6216=011000102
«=»
=6110=3D16=001111012
«c»
=9910=6316=011000112

5.

3.Выполним поразрядную операцию
«исключающее или» между кодом каждого
символа и маской.
«А» ⊕ 27=
⊕ 010000012
000110112
01011010 2 = 5A16=9010
5 А
4.По таблице ASCII определим символ, код
которого вычислили ранее.
5A16=9010=«Z»,
Т.е. символ «А» кодируется символом «Z»

6.

«-» ⊕ 27=
⊕ 001011012
000110112
00110110 2 = 3616=5410=«6»
3 6
Символ «-» кодируется символом«6».
«b» ⊕ 27=
⊕ 011000102
000110112
01111001 2 = 7916=12110=«y»
7 9
Символ «b» кодируется символом«y».

7.

Таким образом кодируем каждый символ.
Зашифрованное сообщение будет иметь вид
«Z6y&x»
Для восстановления исходного сообщения нужно
повторно применить операцию побитового
«исключающего или» с закодированными
символами и маской, которая использовалась
при шифровании.

8.

Восстановление сообщения
Маска:2710=000110112
«Z» =9010=5A16=010110102

010110102
000110112
01000001 2 = 4116=6510=«A»
4 1
Данные действия проводим с каждым
зашифрованным символом. В итоге мы получим
исходное сообщение.
English     Русский Правила