Криптографія з відкритим ключем
Tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Більшість складних CTF-криптозадач потрапляє сюди: RSA, ECC/ECDSA, lattices і проблеми з випадковістю.
Рекомендовані інструменти
- SageMath (LLL/lattices, модульна арифметика): https://www.sagemath.org/
- RsaCtfTool (універсальний інструмент): https://github.com/Ganapati/RsaCtfTool
- factordb (швидкі перевірки факторизації): http://factordb.com/
RSA
Починайте тут, коли у вас є n,e,c та якийсь додатковий натяк (shared modulus, low exponent, partial bits, related messages).
ECC / ECDSA
Якщо задіяні підписи, спочатку перевірте проблеми з nonce (reuse/bias/leaks) перш ніж припускати складну математику.
ECDSA nonce reuse / bias
Якщо два підписи повторно використовують той самий nonce k, приватний ключ можна відновити.
Навіть якщо k не ідентичний, bias/leakage бітів nonce між підписами може вистачити для відновлення через lattices (поширена тема в CTF).
Технічне відновлення при повторному використанні k:
ECDSA signature equations (group order n):
r = (kG)_x mod ns = k^{-1}(h(m) + r*d) mod n
Якщо той самий k використовується для двох повідомлень m1, m2, які дають підписи (r, s1) і (r, s2):
k = (h(m1) - h(m2)) * (s1 - s2)^{-1} mod nd = (s1*k - h(m1)) * r^{-1} mod n
Invalid-curve attacks
Якщо протокол не перевіряє, що точки знаходяться на очікуваній кривій (або в правильній subgroup), атакуючий може змусити операції у слабкій групі і відновити секрети.
Технічна нотатка:
- Перевіряйте, що точки знаходяться on-curve і в правильній subgroup.
- Багато CTF задач моделюють це як “server multiplies attacker-chosen point by secret scalar and returns something.”
Інструменти
- SageMath для арифметики кривих / lattices
ecdsaPython library для розбору/перевірки
Tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.


