From f2aab6b9d433aed6d55cfa373b32b22cf97a7b7d Mon Sep 17 00:00:00 2001 From: Andrey Mayorov Date: Fri, 31 Aug 2018 14:07:25 +0300 Subject: [PATCH] Add lecture on asymmetric encryption schemes --- 02-01-number-theory.md | 77 +++++++++ 02-02-asymmetric.md | 371 +++++++++++++++++++++++++++++++++++++++++ assets/asymm.png | Bin 0 -> 51169 bytes assets/pkcs1v2.png | Bin 0 -> 67896 bytes outline.md | 28 ++++ 5 files changed, 476 insertions(+) create mode 100644 02-01-number-theory.md create mode 100644 02-02-asymmetric.md create mode 100644 assets/asymm.png create mode 100644 assets/pkcs1v2.png diff --git a/02-01-number-theory.md b/02-01-number-theory.md new file mode 100644 index 0000000..f4e24e7 --- /dev/null +++ b/02-01-number-theory.md @@ -0,0 +1,77 @@ +class: animation-fade +layout: true + +--- + +class: impact + +# Внезапная +## теория чисел + +--- + +# Модульная арифметика + +* Модуль + + $ 3 \cdot 4 = 5 \pmod 7 $ + +-- + +* Поле остатков по модулю $ N $ + + $ \mathbb{Z}\_N = \\{ 0, 1, 2 .. N-1 \\} $ + +-- + +* Обратный элемент $ x^{-1} $ + + $ x \cdot x^{-1} = 1 \pmod N $ + +-- + $ x^{-1} $ может и не существовать в $ \mathbb{Z}\_N $, в частности если $ gcd(x, N) \neq 1 $ + +-- + +* Группа обратимых остатков по модулю $ N $ + + $ \mathbb{Z}\_{N}^{*} = \\{ \forall x \in \mathbb{Z}\_{N} | x^{-1} \in \mathbb{Z}\_{N} \\} $ + +-- + Например, $ \mathbb{Z}\_{12}^{*} = \\{ 1, 5, 7, 11 \\} $ + +--- + +# Модульная арифметика + +* Группа обратимых остатков по простому модулю $ p $ + + $ \mathbb{Z}\_{p}^{*} = \\{ 1, 2, .. p-1 \\} = \mathbb{Z}\_{p} \backslash \\{ 0 \\} $ + +-- + +* Генератор группы $ g $ + + $ \exists g \in \mathbb{Z}\_{p}^{\*} | \mathbb{Z}\_{p}^{\*} = \\{ 1,g^1,g^2 .. g^{p-2} \\} $ + +-- + Например, для $ \mathbb{Z}\_{7}^{*} $ $ g = 3 $, потому как $ \\{ 1,3,3^2,3^3,3^4,3^5 \\} = \\{ 1,3,2,6,4,5 \\} $ + +-- + Однако, если $ g = 2 $, то $ \\{ 1,2,2^3,2^2,2^4,2^5 \\} = \\{ 1,2,4 \\} $ + +-- + +* Порядок $ g $ + + $ ord_p(g) = |\\{ 1,g^1,g^2 .. g^{p-2} \\}| $ + +-- + Например, $ ord_7(3) = 6 $, $ ord_7(2) = 3 $ + +--- + +class: impact + +# Это нам +## скоро пригодится diff --git a/02-02-asymmetric.md b/02-02-asymmetric.md new file mode 100644 index 0000000..e02e1de --- /dev/null +++ b/02-02-asymmetric.md @@ -0,0 +1,371 @@ +class: animation-fade +layout: true + +--- + +class: impact + +# Крипотная +## криптография + +--- + +# Асимметрия + +## Зачем? + +Предположим, что я хочу собрать у вас ответы к предыдущему практическому заданию, но только так, чтобы: + +-- +* я мог их прочитать, + +-- +* никто кроме меня не смог бы, даже если бы перехватил сообщения. + +--- + +# Асимметрия + +## В чём суть? + +Для этого вместо общего секретного ключа (shared secret) нам бы пригодилась пара ключей: + +* публичный ключ $ pk $, чтобы им _шифровать_ сообщения +-- +, но не расшифровывать! + +-- + +* секретный (приватный) ключ $ sk $, чтобы _расшифровывать_ им зашифрованные при помощи $ pk $ сообщения. + + + +--- + +# Асимметрия + +## Схема шифрования + +$ (G,E,D) $ + +* $ G $ – алгоритм генерации ключей + + $ (pk, sk) \xleftarrow{R} G() $ + + * Рандомизированный! + * Достаточно выполнить один раз для обмена ключами. + + Я генерирую пару ключей $ (pk,sk) $, $ sk $ оставляю себе, а $ pk $ публикую на общее обозрение. + +--- + +# Асимметрия + +## Схема шифрования + +$ (G,E,D) $ + +* $ E $ – алгоритм шифрования с публичным ключом + + $ c \in C \xleftarrow{R} E(pk,m) $ + + * Рандомизированный! $ c_1 \leftarrow E(pk,m), c_2 \leftarrow E(pk,m), c_1 \neq c_2 $ + +* $ D $ – алгоритм расшифровки с секретным ключом + + $ m \in M \cup \\{ \bot \\} \leftarrow D(sk,c) $ + + * Детерминированный! Иначе нет смысла. 🙄 + +--- + +# Асимметрия + +## Как построить? + +-- + +Ответ есть – trapdoor one-way functions. +-- +🤔 + +-- + +$ (G,F,F^{-1}) $ + +$ (pk, sk) \xleftarrow{R} G() $ + +$ y \leftarrow F(pk,x) $ + +$ x \leftarrow F^{-1}(sk,x) $ + +-- + +* $ F^{-1} $ – _эффективно вычислимая_ функция, только если $ sk $ известен. + +-- + +* $ sk $ – тот самый _trapdoor_. + +-- + +* _Надёжная_ TDF – вероятность определить $ x $ по $ y $ без $ sk $ _крайне мала_. + +--- + +# Асимметрия + +## RSA + +-- + +$ G_{RSA}(l,e) := $ + +1. Сгенерировать случайное простое число $ p $ длиной $ l $ бит, так чтобы $ gcd(e,p-1) = 1 $. + +2. Сгенерировать случайное простое число $ q $ длиной $ l $ бит, так чтобы $ gcd(e,q-1) = 1 $ и $ q \neq p $. + +3. $ n \leftarrow pq $ + +4. $ d \leftarrow e^{-1} \pmod{(p-1)(q-1)} = e^{-1} \pmod{\varphi(n)} $ + +5. Получаем $ sk = (n,d) $ и $ pk = (n,e) $ + +-- + +$ F_{RSA}((n,e),x) := x^e \pmod{n} $ + +-- + +$ F^{-1}_{RSA}((n,d),y) := y^d \pmod{n} $ + +--- + +# Асимметрия + +## RSA + +Как так? + +-- + +$ F^{-1}_{RSA}((n,d),y) $ + +$ = y^d \pmod{n} $ + +-- + +$ = x^{ed} \pmod{n} $ + +-- + +$ = x^{k\varphi(n)+1} \pmod{n} $ + +-- + +$ = {(x^{\varphi(n)})}^k \cdot x \pmod{n} $ + +-- + +$ = x \pmod{n} $ + +--- + +# Асимметрия + +## Надёжность RSA + +-- + +* Насколько сложно вычислить $ c^{1/e} \pmod{n} $? + +-- + +* Утверждают что настолько же сложно, насколько определить $ p $ и $ q $ такие, что $ n = p \cdot q $. + + Задача _факторизации_. + + Сложность лучшего известного алгоритма (NFS): $ \exp(\tilde{O}(\sqrt\[3\]{l})) $ для простого числа длиной $ l $ бит. + + Сложность напрямую несопоставима: + +| Длина ключа AES | | Длина $ n $ RSA | +| --------------- | - | --------------- | +| 80 | ~ | 1024 | +| 128 | ~ | 3072 | +| 256 | ~ | 15360 | + +--- + +# Асимметрия + +## Конструкции + +* Берём надёжную TDF $ F $, надёжную хэш-функцию $ H $ и надёжную к CCA схему шифрования $ (E_s,D_s) $. + +-- + +* Получаем _надёжную к CCA_ схему $ (E, D) $, где + +.col-6[ + +$ E(pk,m) := $ + +$ \\quad x \xleftarrow{R} X, y \leftarrow F(pk,x), k \leftarrow H(x) $ + +$ \\quad c \leftarrow E_s(k,m) $ + +$ \\quad (y, c) $ + +] + +.col-6[ + +$ D(sk,(y,c)) := $ + +$ \\quad x \leftarrow F^{-1}(sk,y), k \leftarrow H(x) $ + +$ \\quad m \leftarrow D_s(k,c) $ + +$ \\quad m $ + +] + +--- + +# Асимметрия + +## Конструкции + +### PKCS1 v2 + + + +* В качестве $ H, G $ можно использовать SHA256. + +--- + +# Асимметрия + +## Зачем ещё? + +Предположим, что я хочу установить канал для защищённого общения с кем-то из вас. + +Чтобы это сделать, мне нужно иметь общий секретный ключ (_shared secret_), но у меня нет его. + +-- + +Я должен суметь обменяться сообщениями так, чтобы: + +* у нас в результате появился общий секретный ключ, +* и никто из подслушивающих наше общение не смог бы узнать этот секретный ключ. + +-- + +Звучит фантастически, но это возможно. ✨ + +-- + +Задача для _схемы обмена ключами_ (_key exchange_ или просто _kex_). + +--- + +# Асимметрия + +## Diffie-Hellman + +Или просто DH. + +Предположим, что $ p $ – большое 2048-битное простое число, а $ q $ – большое 256-битное число, для простоты дискуссии тоже простое, а кроме того такое, что $ (p - 1) \mod q = 0 $. + +Это всё значит, что можно выбрать $ g \in \mathbb{Z}_{p}^{*} $ такой, что $ ord(g) = q $. + +-- + +Все значения $ p, q, g $ известны заранее, публичны, открыты, и этот факт не влияет на надёжность схемы. + +--- + +# Асимметрия + +## Diffie-Hellman + +1. Я выбираю случайное большое $ \alpha \in \mathbb{Z}\_{q} $, вычисляю $ u \leftarrow g^{\alpha} \pmod{p} $, которое и отправляю _партнёру по общению_. + +2. _Партнёр_ выбирает случайное большое $ \beta \in \mathbb{Z}\_{q} $, вычисляет $ v \leftarrow g^{\beta} \pmod{p} $ и отправляет его мне. + +3. Получив $ v $, я вычисляю $ w \leftarrow v^{\alpha} \pmod{p} = g^{\beta\alpha} \pmod{p} $. + +4. Получив $ u $, _партнёр_ вычисляет $ w \leftarrow u^{\beta} \pmod{p} = g^{\alpha\beta} \pmod{p} $. + +У нас с _партнёром_ на руках одно и то же значение $ w = g^{\alpha\beta} \pmod{p} $! + +--- + +# Асимметрия + +## Надёжность + +У подслушивающих нас лиц на руках остались только $ u = g^{\alpha} \pmod{p} $ и $ v = g^{\beta} \pmod{p} $. + +* Могут ли они вычислить $ g^{\alpha} \pmod{p} $? + +-- + +* Считается, что это столь же сложно, сколь сложна задача _факторизации_ сходной размерности. + + - Сложность лучшего известного алгоритма равна $ \exp(\tilde{O}(\sqrt\[3\]{l})) $ для простого числа $ p $ длиной $ l $ бит. + +-- + +* К сожалению, схема не гарантирует _аутентичности_ +-- +, значит злоумышленник может встать посередине (_man in the middle_), перехватывать и можифицировать сообщения. + +--- + +# Асимметрия + +## Конструкции + +Можно ли построить схему шифрования с публичным ключом? +-- +Можно. + +### ElGamal + +$ G(p,q) := $ + +$ \\quad g \xleftarrow{R} G, \alpha \xleftarrow{R} \mathbb{Z}\_{q}, h \leftarrow g^{\alpha} \pmod{p} $ + +$ \\quad sk = \alpha $, $ pk = (g,h) $ + +--- + +# Асимметрия + +### ElGamal + +$ E((g,h),m) := $ + +$ \\quad \beta \xleftarrow{R} \mathbb{Z}\_{q}, u \leftarrow g^{\beta} \pmod{p}, v \leftarrow h^{\beta} \pmod{p} $ + +$ \\quad k \leftarrow H(u,v) $ + +$ \\quad c \leftarrow E_s(k,m) $ + +$ \\quad (u,c) $ + +$ D(\alpha,(u,c)) := $ + +$ \\quad v \leftarrow u^{\alpha} \pmod{p} $ + +$ \\quad k \leftarrow H(u,v) $ + +$ \\quad m \leftarrow D_s(k,c) $ + +--- + +class: impact + +# Всё diff --git a/assets/asymm.png b/assets/asymm.png new file mode 100644 index 0000000000000000000000000000000000000000..7431745d7c96a192a8d116b3f4bb74a9f154bffa GIT binary patch literal 51169 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 DUE7i` literal 0 HcmV?d00001 diff --git a/assets/pkcs1v2.png b/assets/pkcs1v2.png new file mode 100644 index 0000000000000000000000000000000000000000..f94c228a1eeca10efe6497d2735ab7fb81c8f9f5 GIT binary patch literal 67896 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 ≈ Много минут + +1. Восстановление части сообщения у чучела SSHv2 сервера, уязвимого засчёт non-atomic decryption. ## Лекция 4 @@ -99,6 +102,31 @@ О чём: сложность проблем, обмен ключами, асимметричное шифрование +* number theory + - арифметика остатков + - обратный элемент + - генераторы и циклические группы + - порядок группы +* асимметрия + - зачем? + - пара ключей + - любой может сформировать ct +* схема асимметричного шифрования + - trapdoor one-way functions + - rsa + - сложность factors(n) + - rsa + hash + cca cipher +* задача обмена ключами + - trusted party – неудобно + - наивный diffie-hellman + - сложность dlog_g + - надёжность схемы + - нет authenticity + - elgamal +* кратко цифровых подписях + - rsa + - pki + ### Теория ### Практика