25
Основы криптографии Ковалев Денис 1

Основы криптографии

Embed Size (px)

Citation preview

Page 1: Основы криптографии

Основы криптографииКовалев Денис

1

Page 2: Основы криптографии

Я ничего не шифрую

2

Page 3: Основы криптографии

Cryptography I by Stanford Universityhttps://www.coursera.org/learn/crypto

8 августа 2016

3

Page 4: Основы криптографии

Симметричное шифрование

E Dm D(k, c) = m

k k

E(k, m) = c

Alice Bob

4

Page 5: Основы криптографии

История криптографии● с 3-го тысячелетия до н. э. — шифры подстановки

● с IX века на Ближнем Востоке — полиалфавитные шифры

● с начала и до середины XX века — электромеханические

средства

● с середины XX века до 70-х годов — переход к мат.

криптографии

● с 70-х годов — криптография с открытым ключом

5

Page 6: Основы криптографии

Шифр подстановки

k =

A CB XC U…...

A DB EC F……Z A

6

Page 7: Основы криптографии

Шифр Виженера (XVI в.)

k = CRYPTOCRYPTOCRYPT...

m = WHATANICEDAYTODAY...

c = ZZZJUCLUDTUNWGCQS...

(+ mod 26)

7

Page 8: Основы криптографии

Enigma (20-е года XX в.)

8

Page 9: Основы криптографии

Современные алгоритмы

Data Encryption Standard (DES) (1977)

3DES (1998)

RSA (1978)

Blowfish (1993)

Advanced Encryption Standard (AES) (2001)9

Page 10: Основы криптографии

Криптография == 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

Page 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

Page 12: Основы криптографии

Блочный шифр

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

Page 13: Основы криптографии

Сеть Фейстеля

R0

L0

f1

R1

L1

f2

R2

L2

Rd-1

Ld-1

fd

Rd

Ld

...

n bits

n bits

13

Page 14: Основы криптографии

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

Page 15: Основы криптографии

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

Page 16: Основы криптографии

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

Page 17: Основы криптографии

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

Page 18: Основы криптографии

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

Page 19: Основы криптографии

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

Page 20: Основы криптографии

Обмен ключами

KA KB

KAB

Alice Bob

KAB

KAB

TTP

KA KB

20

Page 21: Основы криптографии

Обмен ключами - Merkle Puzzles

Alice Bobpuzzle1, puzzle2, … puzzleN

xj

Alice: O(n)Bob: O(n)Криптоаналитик: O(n2) ~264

21

Page 22: Основы криптографии

Протокол Диффи-Хеллмана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

Page 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

Page 24: Основы криптографии

SSL Certificates

RSAkey CSR

CA

.crt

CAkey

24

Page 25: Основы криптографии

Спасибо за внимание

25