Crypto Analysis Skill
Quick Workflow
Progress:
- Try Ciphey auto-decrypt first
- Identify crypto type (RSA/AES/XOR/classical)
- Check for known weaknesses
- Implement attack
- Decrypt flag
Step 1: Auto-Decrypt (Try First!)
ciphey -t "ENCODED_TEXT" # Auto-detects and decrypts ciphey -f encrypted.txt # From file
Step 2: Identify Crypto Type
Pattern Crypto Type Reference
n, e, c variables RSA reference/rsa-attacks.md
16/32 byte key, IV AES reference/aes-attacks.md
XOR operations XOR/Stream reference/classical.md
Polynomial mod Lattice reference/lattice.md
RSA Attack Decision Tree
├── e small (≤5)? → Direct eth root ├── e very large? → Wiener's Attack ├── Multiple n,e,c? → Hastad's Broadcast ├── Same n, diff e? → Common Modulus ├── GCD(n1,n2) > 1? → Common Factor ├── p ≈ q? → Fermat Factorization ├── dp/dq leaked? → Partial Key Recovery └── Default → FactorDB / yafu
Full implementations: reference/rsa-attacks.md
Quick Commands
Auto-decrypt
ciphey -t "text"
XOR analysis
xortool encrypted.bin xortool -c 20 encrypted.bin # Expect spaces
Factor large n
yafu "factor(<n>)"
RSA tool
python3 RsaCtfTool.py -n <n> -e <e> --uncipher <c>
Lattice (SageMath)
sage solve.sage
Reference Files
-
RSA Attacks: Small e, Wiener, Hastad, Common Modulus, Fermat, FactorDB
-
AES Attacks: ECB detection, CBC flip, Padding Oracle
-
Classical/XOR: Ciphey, xortool, frequency analysis, Vigenère
-
Lattice: Coppersmith, LLL, HNP