Que fait techniques-d-attaque-rsa ?
Recueil d'attaques RSA pour CTF et cryptanalyse réelle. À utiliser lorsqu'on dispose des paramètres RSA (n, e, c) et qu'on doit retrouver le texte clair en exploitant des clés faibles, des petits exposants, des facteurs communs ou des oracles de padding.
Comment utiliser ce skill
- Préparez les paramètres RSA : Assurez-vous d'avoir
n(le module),e(l'exposant public) etc(le ciphertext). - Choisissez la technique : En fonction des propriétés suspectées (par exemple
etrès petit, clé privée faible, plusieurs modules partageant des facteurs), sélectionnez l'attaque appropriée dans le répertoire. - Exécutez le script : Lancez l'attaque en fournissant les paramètres via l'interface de ligne de commande ou l'API.
- Analysez le résultat : Le skill retourne le texte clair (
m) ou un message d'échec expliquant pourquoi le déchiffrement n'a pas été possible.
Techniques incluses
- Attaque par petit exposant public : Exploite
etrès petit (souvent 3) via l'attaque de Coppersmith ou les racines cubiques. - Attaque de Hastad : Utilise plusieurs ciphertexts avec le même
emais des modules différents (diffusion abusive). - Attaque de Wiener : Exploite un exposant privé
dtrop petit. - Attaque par facteurs communs : Cherche des facteurs premiers partagés entre plusieurs modules
n. - Attaque par oracle de padding : Exploite un oracle qui révèle si le padding est valide ou non.
- Attaque par oracle de LSB : Utilise la parité du texte clair (dévoilée par un oracle) pour reconstruire
m.
Exemple d'utilisation (Yaklang)
// Exemple d'attaque par petit exposant (e = 3)
attack = rsa.small_e_attack(
n=0xa1b2c3...,
e=3,
c=0xd4e5f6...
)
println(attack.plaintext)
Notes importantes
- Tous les paramètres
n,e,cdoivent être fournis sous forme hexadécimale ou entière. - Les attaques sont purement algorithmiques et ne nécessitent pas de données supplémentaires, sauf pour les attaques avec oracle.
- Pour les attaques avec oracle, un endpoint ou une fonction callback doit être fourni.
Licence
Ce skill est distribué sous la licence MIT. Voir le fichier LICENSE pour plus de détails.