Bird's-eye view of cryptography theory
Go to file
2018-10-23 15:46:47 +03:00
assets Replace leftover images with inline LaTeX 2018-10-23 14:38:18 +03:00
bleach Publish Baby Bleichenbacher victim toy server 2018-08-31 20:05:44 +03:00
lenex Add toy length extension victim server 2018-08-22 11:17:39 +03:00
nossh Disable packet dumping 2018-08-29 17:58:13 +03:00
pador Add first lection + padding oracle server 2018-08-20 19:24:47 +03:00
template Properly state copyright on backslide template 2018-10-23 15:46:25 +03:00
01-01-symmetric.md Replace leftover images with inline LaTeX 2018-10-23 14:38:18 +03:00
01-02-integrity.md Add lecture on message integrity 2018-08-22 11:18:06 +03:00
01-03-authenticated-encryption.md Publish lection on authenticated encryption 2018-08-29 17:26:18 +03:00
02-01-number-theory.md Add lecture on asymmetric encryption schemes 2018-08-31 14:07:25 +03:00
02-02-asymmetric.md Publish Baby Bleichenbacher victim toy server 2018-08-31 20:05:44 +03:00
CREDITS.md Publish credits on assets 2018-10-23 15:34:25 +03:00
LICENSE Switch to MIT license before it's too late 2018-10-23 15:33:56 +03:00
README.md Merge outline with minimal README 2018-10-23 15:46:47 +03:00

Creepy Crypto

Экстремально короткий курс по основам и инструментам современной криптографии.

Установка

Для работы с лекциями нужен Backslide.

Для работы со слайдами в браузере:

bs serve

План лекций

Лекция 1

Теория

≈ 75 минут

О чём: задачи, теоретические инструменты, симметричное шифрование, контроль целостности

  • one time pad
    • конфиденциальность
    • грааль perfect security
    • размер ключа ≥ размер сообщения
  • stream ciphers
    • csprngs
    • semantic security
      • вероятностная модель
      • игра отличить одно от другого
      • практически допустимые границы вероятностей
    • игра отличи случайный поток бит от выхлопа алгоритма со случайным сидом
    • coa
    • не более одного сообщения с одним ключом
  • block ciphers
    • блоки определённого размера
    • prp
    • более сильные
    • ecb и semantic security
    • prf
    • det ctr / аналогия с stream cipher
    • cpa / probabilistic algos / randomization
    • cbc / iv / rand ctr
    • malleability + cca

Практика

≈ 240 минут

  1. Получение plaintext с помощью CCA на сервер, использующий AES-CBC с padding oracle.

Лекция 2

Теория

≈ 45 минут

О чём: контроль целостности

  • message integrity
    • плюс authenticity
    • не confidentiality!
    • нужен ключ, иначе нет authenticity
    • игра попробуй подделать подпись
    • AES в CBC-MAC
    • хэши как PRF
      • one way
      • collision resistance
    • HMAC

Практика

≈ 240 минут

  1. Изменение статуса пользователя с помощью length extension attack на доморощенный алгоритм подписи вида H(secret || message), используемый в чучельном сервисе.

Лекция 3

≈ 45 минут

Теория

О чём: аутентифицированное шифрование

  • схема шифрования с bottom
    • confidentiality + integrity
    • можем не расшифровать невалидный ct
    • security under cca
      • пример с перехватом почты
      • равно cpa security + ciphertext integrity
      • что такое ciphertext integrity
        • попробуй сформировать валидный ct
    • скомбинировать cpa secure cipher + unforgeable mac
      • mac-then-encrypt
      • encrypt-then-mac
      • encrypt-and-mac
    • сформулировать схему aead
      • authentcated data

Практика

≈ Много минут

  1. Восстановление части сообщения у чучела SSHv2 сервера, уязвимого засчёт non-atomic decryption.

Лекция 4

≈ 75 минут

О чём: сложность проблем, обмен ключами, асимметричное шифрование

Теория

  • number theory
    • арифметика остатков
    • обратный элемент
    • генераторы и циклические группы
    • порядок группы
  • асимметрия
    • зачем?
    • пара ключей
    • любой может сформировать ct
  • схема асимметричного шифрования
    • trapdoor one-way functions
    • rsa
    • сложность factors(n)
    • rsa + hash + cca cipher
  • задача обмена ключами
    • trusted party неудобно
    • наивный diffie-hellman
    • сложность dlog_g
    • надёжность схемы
    • нет authenticity
    • elgamal
  • кратко цифровых подписях
    • rsa
    • pki

Практика

≈ 240 минут

  1. Восстановление сообщения у чучела TLS сервера, уязвимого к Baby Bleichenbacher attack.