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. Основы криптографии
    Ковалев Денис
    1

    View Slide

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

    View Slide

  3. Cryptography I by Stanford University
    https://www.coursera.org/learn/crypto
    8 августа 2016
    3

    View Slide

  4. Симметричное шифрование
    E D
    m D(k, c) = m
    k k
    E(k, m) = c
    Alice Bob
    4

    View Slide

  5. История криптографии
    ● с 3-го тысячелетия до н. э. — шифры подстановки
    ● с IX века на Ближнем Востоке — полиалфавитные шифры
    ● с начала и до середины XX века — электромеханические
    средства
    ● с середины XX века до 70-х годов — переход к мат.
    криптографии
    5

    View Slide

  6. Шифр подстановки
    k =
    A C
    B X
    C U
    …...
    A D
    B E
    C F
    ……
    Z A
    6

    View Slide

  7. Шифр Виженера (XVI в.)
    k = CRYPTOCRYPTOCRYPT...
    m = WHATANICEDAYTODAY...
    c = ZZZJUCLUDTUNWGCQS...
    (+ mod 26)
    7

    View Slide

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

    View Slide

  9. Современные алгоритмы
    Data Encryption Standard (DES) (1977)
    3DES (1998)
    RSA (1978)
    Blowfish (1993)
    Advanced Encryption Standard (AES) (2001)
    9

    View Slide

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

    View Slide

  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

    View Slide

  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

    View Slide

  13. Сеть Фейстеля
    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

    View Slide

  14. 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

    View Slide

  15. 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

    View Slide

  16. 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

    View Slide

  17. 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

    View Slide

  18. 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

    View Slide

  19. 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

    View Slide

  20. Обмен ключами
    K
    A
    K
    B
    K
    AB
    Alice Bob
    K
    AB
    K
    AB
    TTP
    K
    A
    K
    B
    20

    View Slide

  21. Обмен ключами - Merkle Puzzles
    Alice Bob
    puzzle
    1
    , puzzle
    2
    , … puzzle
    N
    x
    j
    Alice: O(n)
    Bob: O(n)
    Криптоаналитик: O(n2) ~264
    21

    View Slide

  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 = k
    AB
    = gab (mod p) = (ga)b = Ab (mod
    p) 22

    View Slide

  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

    View Slide

  24. SSL Certificates
    RSA
    key
    CSR
    CA
    .crt
    CA
    key
    24

    View Slide

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

    View Slide