Upload
denis-kovalev
View
106
Download
2
Embed Size (px)
Citation preview
Основы криптографииКовалев Денис
1
Я ничего не шифрую
2
Cryptography I by Stanford Universityhttps://www.coursera.org/learn/crypto
8 августа 2016
3
Симметричное шифрование
E Dm D(k, c) = m
k k
E(k, m) = c
Alice Bob
4
История криптографии● с 3-го тысячелетия до н. э. — шифры подстановки
● с IX века на Ближнем Востоке — полиалфавитные шифры
● с начала и до середины XX века — электромеханические
средства
● с середины XX века до 70-х годов — переход к мат.
криптографии
● с 70-х годов — криптография с открытым ключом
5
Шифр подстановки
k =
A CB XC U…...
A DB EC F……Z A
6
Шифр Виженера (XVI в.)
k = CRYPTOCRYPTOCRYPT...
m = WHATANICEDAYTODAY...
c = ZZZJUCLUDTUNWGCQS...
(+ mod 26)
7
Enigma (20-е года XX в.)
8
Современные алгоритмы
Data Encryption Standard (DES) (1977)
3DES (1998)
RSA (1978)
Blowfish (1993)
Advanced Encryption Standard (AES) (2001)9
Криптография == XOR
Y =0, p1
1, p2
X =0, p = 1/2
1, p = 1/2X ⨁ 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
Шифр Вернама (OTP)
E(k, m) = m ⨁ k = c D(k, c) = c ⨁ k
D(k, c) = c ⨁ k = m ⨁ k ⨁ k = m ⨁ 0 = m
11
Блочный шифр
E, Dm block (n bits)
k (k bits)
c block (n bits)
3DES: n = 64 bits, k = 168 bitsAES: n = 128 bits, k = 128, 192, 256 bits
12
Сеть Фейстеля
R0
L0
f1
R1
L1
f2
R2
L2
Rd-1
Ld-1
fd
Rd
Ld
...
n bits
n bits
13
DES = 16 блоков сети Фейстеля
64 bits IP
16 блоков сети Фейстеля
-IP 64 bits
k1 k2 k16...
k
m cn= 64 bits, k = 168 bits, k1..k16 = 48 bits
14
f1 .. f16x, 32 bits
48 bits
ki, 48 bits
S1 S2 S3 S4 S5 S8S6 S7
48 bits6 bits
32 bits
32 bitsP
4 bits
15
3DES3E(k1, k2, k3, m) = E(k1, D(k2, E(k3, m))
key = 3×56 = 168 bits (~112 bits)
DES: 1998, 3 дня
3DES: PGP, Microsoft OneNote, Microsoft Outlook
2007 16
AES
input
S2
S3
S4
S1
S6
S7
S8
S5
k1
S2
S3
S4
S1
S6
S7
S8
S5
k2
S2
S3
S4
S1
S6
S7
S8
S5
kn
output
...
AES: n = 10, key = 16 bytes, m = 16 bytes 17
AES7zip, RAR, WinZip, NTFS, FileVault,
Wi-Fi WPA2, GPG, IPsec, KeePass, LastPass
60 MB/s (1.7 GHz Pentium M)
700 MB/s (Intel Core i3/i5/i7)
AES-256: 2009, атака 299
18
HashMD5 ("hello world") = 5eb63bbbe01eeed093cb22bb8f5acdc3
MD5 ("hello world.") = 3c4292ae95be58e0c58e4e5511f09647
function Digest (bits) Speed (MB/s) Attack time
SHA-1 160 153 251
SHA-256 256 111 2128
SHA-512 512 99 2256
19
Обмен ключами
KA KB
KAB
Alice Bob
KAB
KAB
TTP
KA KB
20
Обмен ключами - Merkle Puzzles
Alice Bobpuzzle1, puzzle2, … puzzleN
xj
Alice: O(n)Bob: O(n)Криптоаналитик: O(n2) ~264
21
Протокол Диффи-Хеллманаp - 600-знаковое простое числоg ∈ {1, …, p}
Alice: a ∈ {1, …, p-1} Bob: b ∈ {1, …, p-1}
Alice BobA = ga (mod p)
B = gb (mod p)
Ba (mod p) = (gb)a = kAB = gab (mod p) = (ga)b = Ab (mod p) 22
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
SSL Certificates
RSAkey CSR
CA
.crt
CAkey
24
Спасибо за внимание
25