Attacchi RSA
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.
Triage rapido
Raccogli:
n,e,c(e qualsiasi ciphertext aggiuntivo)- Qualsiasi relazione tra i messaggi (stesso plaintext? modulo condiviso? plaintext strutturato?)
- Any leaks (partial
p/q, bit did,dp/dq, padding noto)
Poi prova:
- Controllo fattorizzazione (Factordb /
sage: factor(n)per n relativamente piccoli) - Pattern di basso esponente (
e=3, broadcast) - Modulo comune / primi ripetuti
- Metodi di lattice (Coppersmith/LLL) quando qualcosa è quasi noto
Common RSA attacks
Common modulus
Se due ciphertext c1, c2 cifrano lo stesso messaggio sotto lo stesso modulo n ma con esponenti diversi e1, e2 (e gcd(e1,e2)=1), puoi recuperare m usando l’algoritmo euclideo esteso:
m = c1^a * c2^b mod n dove a*e1 + b*e2 = 1.
Schema di esempio:
- Calcola
(a, b) = xgcd(e1, e2)così chea*e1 + b*e2 = 1 - Se
a < 0, interpretac1^acomeinv(c1)^{-a} mod n(idem perb) - Moltiplica e riduci modulo
n
Shared primes across moduli
Se hai più moduli RSA dallo stesso challenge, verifica se condividono un primo:
gcd(n1, n2) != 1implica un fallimento catastrofico nella generazione delle chiavi.
Questo capita spesso nei CTF: “we generated many keys quickly” o “bad randomness”.
Håstad broadcast / low exponent
Se lo stesso plaintext è inviato a più destinatari con piccolo e (spesso e=3) e senza padding adeguato, puoi recuperare m tramite CRT e radice intera.
Condizione tecnica:
Se hai e ciphertext dello stesso messaggio sotto moduli a coppie coprimi n_i:
- Usa CRT per recuperare
M = m^esul prodottoN = Π n_i - Se
m^e < N, alloraMè la vera potenza intera, em = integer_root(M, e)
Wiener attack: small private exponent
Se d è troppo piccolo, le frazioni continue possono recuperarlo da e/n.
Textbook RSA pitfalls
Se noti:
- Nessun OAEP/PSS, sola esponenziazione modulare
- Cifratura deterministica
allora attacchi algebrici e abusione di oracle diventano molto più probabili.
Tools
- RsaCtfTool: https://github.com/Ganapati/RsaCtfTool
- SageMath (CRT, roots, CF): https://www.sagemath.org/
Related-message patterns
Se vedi due ciphertext sotto lo stesso modulo con messaggi algebraicamente correlati (es., m2 = a*m1 + b), cerca attacchi “related-message” come Franklin–Reiter. Questi tipicamente richiedono:
- stesso modulo
n - stesso esponente
e - relazione nota tra i plaintext
In pratica questo si risolve spesso con Sage impostando polinomi modulo n e calcolando un GCD.
Lattices / Coppersmith
Ricorri a questo quando hai bit parziali, plaintext strutturato, o relazioni ravvicinate che rendono l’incognito piccolo.
I metodi di lattice (LLL/Coppersmith) compaiono ogni volta che hai informazioni parziali:
- Plaintext parzialmente noto (messaggio strutturato con suffisso incognito)
p/qparzialmente noti (bit alti leakati)- Piccole differenze sconosciute tra valori correlati
Cosa riconoscere
Indizi tipici nei challenge:
- “We leaked the top/bottom bits of p”
- “The flag is embedded like:
m = bytes_to_long(b\"HTB{\" + unknown + b\"}\")” - “We used RSA but with a small random padding”
Tooling
In pratica userai Sage per LLL e un template noto per l’istanza specifica.
Buoni punti di partenza:
- Sage CTF crypto templates: https://github.com/defund/coppersmith
- A survey-style reference: https://martinralbrecht.wordpress.com/2013/05/06/coppersmiths-method/
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.


