Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

Небольшой экскурс по основным методам и алгоритмам, применяемым в криптографии.

Deep Refactoring

July 28, 2016
Tweet

More Decks by Deep Refactoring

Other Decks in Technology

Transcript

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

    шифры подстановки • с IX века на Ближнем Востоке — полиалфавитные шифры • с начала и до середины XX века — электромеханические средства • с середины XX века до 70-х годов — переход к мат. криптографии 5
  2. Шифр подстановки k = A C B X C U

    …... A D B E C F …… Z A 6
  3. Современные алгоритмы Data Encryption Standard (DES) (1977) 3DES (1998) RSA

    (1978) Blowfish (1993) Advanced Encryption Standard (AES) (2001) 9
  4. Криптография == XOR Y = 0, p 1 1, p

    2 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 p 1 / 2 1 1 0 p 2 / 2 0 1 1 p 2 / 2 1 0 1 p 1 / 2 10
  5. Шифр Вернама (OTP) E(k, m) = m ⨁ k =

    c D(k, c) = c ⨁ k D(k, c) = c ⨁ k = m ⨁ k ⨁ k = m ⨁ 0 = m 11
  6. Блочный шифр 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
  7. Сеть Фейстеля R 0 L 0 f 1 R 1

    L 1 f 2 R 2 L 2 R d-1 L d-1 f d R d L d ... n bits n bits 13
  8. DES = 16 блоков сети Фейстеля 64 bits IP 16

    блоков сети Фейстеля -IP 64 bits k 1 k 2 k 16 ... k m c n= 64 bits, k = 168 bits, k 1 ..k 16 = 48 bits 14
  9. f1 .. f16 x, 32 bits 48 bits ki, 48

    bits S1 S2 S3 S4 S5 S8 S6 S7 48 bits 6 bits 32 bits 32 bits P 4 bits 15
  10. 3DES 3E(k 1 , k 2 , k 3 ,

    m) = E(k 1 , D(k 2 , E(k 3 , m)) key = 3×56 = 168 bits (~112 bits) DES: 1998, 3 дня 3DES: PGP, Microsoft OneNote, Microsoft Outlook 2007 16
  11. AES i n p u t S2 S3 S4 S1

    S6 S7 S8 S5 k 1 S2 S3 S4 S1 S6 S7 S8 S5 k 2 S2 S3 S4 S1 S6 S7 S8 S5 k n o u t p u t ... AES: n = 10, key = 16 bytes, m = 16 bytes 17
  12. AES 7zip, 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
  13. Hash MD5 ("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
  14. Обмен ключами - Merkle Puzzles Alice Bob puzzle 1 ,

    puzzle 2 , … puzzle N x j Alice: O(n) Bob: O(n) Криптоаналитик: O(n2) ~264 21
  15. Протокол Диффи-Хеллмана 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 = k AB = gab (mod p) = (ga)b = Ab (mod p) 22
  16. 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