Стандартный шифр сша. Des,
Исходный текст, представленный в 2-ом коде, разбивается на группы по 64 бита. В каждой группе символы сообщения представляются в определенном порядке. Переставленная последовательность разбивается на левую и правую часть по 32 бита. Затем идет процесс шифрования для правой и левой части:
-
1
2
3
.
.
.
64
L-32
R-32
L (i)= R (i-1), i= 1, 2…32
R (i)= L (i-1) + f (R (i-1), K (i)), i= 1, 2…32
K (i) – специальный 48- битный ключ, получаемый по специальным правилам из 64- битного ключа
f – получается также по специальным правилам
Получим L|R затем части переставляются, и получается одно 64-битное сообщение R|L.
Расшифровка производится в инверсном порядке:
-
1
2
3
.
.
.
64
L-32
R-32
R (i-1)= L (i), i= 1, 2…32
L (i-1)= R (i) + f (L (i), K (i)), i= 1, 2…32
L R R L
Шифрование с открытым ключом
В этих системах используется 2 ключа. Один – для шифровки – несекретный, другой – дешифровки – секретный.
Метода RSA River, Shamir, Adleman.
Под простым числом будем понимать число, которое делится только на 1 и на само себя.
Взаимно простые числа – числа, не имеющие общий делитель, кроме 1.
Под результатом i mod j будем подразумевать остаток от целочисленного деления i на j.
Алгоритм генерации открытых и закрытых ключей.
Выбирают 2 очень больших взаимно простых числа p и q.
Выбирают число n, как результат умножения p на q: n= p * q
Выбирают большое случайное число d, оно должно быть взаимно простым с результатом умножения (p-1)*(q-1)
Определяем такое число е, для которого истинным будет соотношение: (e*d)mod(p-1)*(q-1)= 1.
Назовем открытым ключом числа {e, n}, а секретным ключом - {d, n},
Шифрование
Разбить шифруемый текст на блоки, каждый из которых можно представить в виде последовательности M (i)= a1…a(n-1).
Зашифровать данный текст, как последовательность чисел M(i) по формуле C (i)= (M (i) e) mod n
Дешифрование
Вычисляют M (i)= (C (i) d) mod n
Пример
Алгоритм
p= 3, q= 11
n= p * q= 33
(p-1)(q-1) = 2* 10= 20: d= 3
(e*3) mod 20 =1: e= 7
{7,33} – открытый ключ; {3,33} – закрытый ключ
Шифрование CAB (каждая буква - группа) САВ=3,1,2, шифруем при ключе {7,33}.
С (1)=(37) mod 33 = 2187 mod 33 = 9
С (2)=(17) mod 33 = 1 mod 33 = 1
С (3)=(27) mod 33 = 128 mod 33 = 29
Дешифрование при ключе {3,33}.
M
CAB
(1)=(93) mod 33 = 729 mod 33 = 3M (2)=(13) mod 33 = 1 mod 33 = 1
M (3)=(293) mod 33 = 24389 mod 33 = 2