# RSA
1) Введение ~ 15 мин
- ~~Шифрование с закрытым ключом~~
~~XOR, Виженер, AES~~
- Шифрование с открытым ключом
RSA, но есть много вещей кроме RSA, просто она самая хайповая
- Модульная арифметика
2) Матеша - ~~по желанию~~ ~
- Группа
- У нас есть модуль и множество вычетов по нему. Как мы сделаем мультипликативную группу?
- Взять конкретный модуль (9)
- https://ru.wikipedia.org/wiki/Мультипликативная_группа_кольца_вычетов
- $\phi(n)$
- https://ru.wikipedia.org/wiki/Теорема_Эйлера_(теория_чисел)
3) RSA
- Не забыть про сигнатуры
`pow(e, -1, phi(n))`
`from gmpy2 import invert`
http://crypto.stanford.edu/~dabo/pubs/papers/RSA-survey.pdf
http://factordb.com/
https://shadowservants.ru/contests/15
keker:kek
## Атаки
1) Факторизация чисел -- долго
- https://en.wikipedia.org/wiki/Fermat%27s_factorization_method
$N = a^2 - b^2$
Возьмем за А ceil(sqrt(N))
$a^2 - N -$ Квадрат. Получив квадрат, получим b
2) Blinding
RSA ctf tool: https://github.com/Ganapati/RsaCtfTool