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

Post on 09-Apr-2017

106 views 2 download

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

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

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