Brief solution ideas to the least solved Crypto CTF challenges.
Tag: python
Jun 27
Midnight CTF 2018 Finals – Snurre128
In this challenge we have a stream cipher based on LFSR and nonlinear filtering function. It has 128-bit LFSR secret state and we are also given 1600 keystream bits. Our goal is simply to recover the key which is the initial state. Here is the nonlinear filtering function: f(v) = v[0] ^ v[1] ^ v[2] …
Apr 02
0CTF 2018 Quals – zer0C5 (Crypto 785)
0ops Cipher 4, hope you enjoy it:) zer0C4.zip nc 202.120.7.220 1234 Summary: related-key attack on weakened variant of RC4
Apr 02
0CTF 2018 Quals – zer0SPN (Crypto 550)
0ops SPN, hope you enjoy it:) zer0SPN.zip Summary: linear cryptanalysis on toy block cipher
Apr 02
0CTF 2018 Quals – zer0TC (Crypto 916)
0ops Toy Cipher, hope you enjoy it:) zer0TC.zip Summary: meet-in-the-middle and key-schedule constraints
Sep 04
TWCTF 2017 – Solutions for BabyPinhole, Liar’s Trap, Palindrome Pairs Challenge
Scripts with short explanations: BabyPinhole (crypto 163) Liar’s Trap (crypto/ppc 281) Palindrome Pairs – Challenge Phase (ppc 63+337)
Jul 09
Polictf 2017 – Lucky Consecutive Guessing (Crypto)
We implemented a random number generator. We’ve heard that rand()’s 32 bit seeds can be easily cracked, so we stayed on the safe side. nc lucky.chall.polictf.it 31337 chall.py Summary: breaking truncated-to-MSB LCG with top-down bit-by-bit search.
Jun 19
Google CTF 2017 Quals – BLT (Bleichenbacher’s Lattice Task – Insanity Check)
A slow descent into the dark, into madness, futility, and despair. BLT.jar (not necessary) STDOUT Flag.java Summary: DSA with short secrets, lattice + meet-in-the-middle attack.
Jun 19
Google CTF 2017 Quals – Crypto writeups
Scripts with short explanations for all crypto tasks (except RSA) from Google CTF Quals 2017: Crypto Backdoor Introspective CRC Shake It RSA CTF Challenge (no writeup, but I think it’s similar to this old one) Rubik Bleichenbacher’s Lattice Task (full writeup here)
Mar 20
0CTF 2017 Quals – Zer0llvm
Talent Yang loves to customize his own obfuscator. Unfortunately, he lost his seed when he was watching Arsenal’s UEFA game. What a sad day! His team and his seed were lost together. To save him, could you help him to get back his seed? We can not save the game, but we may be able …
Mar 20
0CTF 2017 Quals – OneTimePad 1 and 2
I swear that the safest cryptosystem is used to encrypt the secret! oneTimePad.zip Well, maybe the previous one is too simple. So I designed the ultimate one to protect the top secret! oneTimePad2.zip Summary: breaking a linear and an LCG-style exponential PRNGs.
Mar 20
33C3 CTF 2016 – beeblebrox (Crypto 350)
Make bad politicians resign! nc 78.46.224.72 2048 files Summary: factorization-based attack on a signature method
Oct 11
HITCON CTF QUALS 2016 – Reverse (Reverse + PPC 500)
At least our ETA is better than M$. http://xkcd.com/612/ reverse.bin Summary: optimizing an algorithm using Treap data structure and CRC32 properties.
Oct 10
HITCON CTF QUALS 2016 – PAKE / PAKE++ (Crypto 250 + 150)
pake1.rb pake2.rb Summary: attacking password-based key exchange schemes based on SPEKE with MITM.
Oct 03
TUM CTF 2016 – Shaman (Crypto 500)
Oh great shaman! Somehow the village idiot got his hands on this fancy control machine controlling things. Obviously, we also want to control things (who wouldn’t?), so we reverse-engineered the code. Unfortunately, the machine is cryptographically protected against misuse. Could you please maybe spend a few seconds of your inestimably valuable time to break that …