5. История криптографии
● с 3-го тысячелетия до н. э. — шифры подстановки
● с IX века на Ближнем Востоке — полиалфавитные шифры
● с начала и до середины XX века — электромеханические
средства
● с середины XX века до 70-х годов — переход к мат.
криптографии 5
10. Криптография == XOR
Y =
0, p1
1, p2
X =
0, p = 1/2
1, p = 1/2
X ⨁ Y =
0, p = 1/2
1, p = 1/2
X Y X ⨁ Y p
0 0 0 p1
/ 2
1 1 0 p2
/ 2
0 1 1 p2
/ 2
1 0 1 p1
/ 2
10
11. Шифр Вернама (OTP)
E(k, m) = m ⨁ k = c D(k, c) = c ⨁ k
D(k, c) = c ⨁ k = m ⨁ k ⨁ k = m ⨁ 0 = m
11
12. Блочный шифр
E, D
m block (n bits)
k (k bits)
c block (n bits)
3DES: n = 64 bits, k = 168 bits
AES: n = 128 bits, k = 128, 192, 256 bits
12
21. Обмен ключами - Merkle Puzzles
Alice Bob
puzzle1
, puzzle2
, … puzzleN
xj
Alice: O(n)
Bob: O(n)
Криптоаналитик: O(n2
) ~264
21
22. Протокол Диффи-Хеллмана
p - 600-знаковое простое число
g ∈ {1, …, p}
Alice: a ∈ {1, …, p-1} Bob: b ∈ {1, …, p-1}
Alice Bob
A = ga
(mod p)
B = gb
(mod p)
Ba
(mod p) = (gb
)a
= kAB
= gab
(mod p) = (ga
)b
= Ab
(mod
p) 22
23. RSA (Rivest, Shamir, Adleman)
1. p, q случайные простые числа по +1024 бита
2. n = p · q модуль
3. (n) = (p - 1) · (q - 1)функция Эйлера
4. e ∈ (1, ... , (n)) взаимно простое с (n)
5. вычисляется d: d · e = 1 (mod (n))
{e, n} = RSA public key
{d, n} = RSA private key
me
(mod n) = c
cd
= mde
(mod n) = m (n)·k + 1
(mod n) = m
23