$ cat writeup.md…
$ cat writeup.md…
ASIS CTF 2026
Task: a permutation-group vault encodes each flag bit as a random word over {a,b}; intended path is generator key recovery. Solution: training samples self-describe the encoding (bit 1 iff word ends in b), so the verbatim ciphertext from menu 2 decodes bit by bit without group theory.
$ cat /etc/rate-limit
Rate limit reached (20 reads/hour per IP). Showing preview only — full content returns at the next hour roll-over.
"Our lead cryptographer hackel proudly announced a 'revolutionary post-quantum vault' guarded by intricate algebraic group presentations. With a search space boasting over 1.6 quadrillion states, they confidently declared: 'No supercomputer on Earth could brute-force our permutations before the heat death of the universe!' Well... brute force is for amateurs. Armed with a fresh cup of coffee, a notebook, and a touch of modern group theory, can you reconstruct the secret representation, unlock the vault, and claim the flag?"
English summary: an interactive TCP service (nc 65.109.208.91 3771) presents a degree-11 permutation group "vault". The flag is encoded as a sequence of words over the two-letter alphabet {a, b}. The intended path is to recover an equivalent generator assignment (a "key") satisfying the published group presentation and submit it. In practice the ciphertext surface is printed verbatim and its encoding rule is fully disclosed by training samples, so the flag decodes directly.
The attachment contains the complete server source (Hackel/hackel.py, minus the flag module).
Group presentation (dressing). Two generator sets, uppercase A..E and lowercase a..e, are built identically over degree n = 11:
A = a 10-cycle conjugated by a random permutation, B = an 11-cycle conjugated by a random permutation, C = AB, D = A⁻¹BC, E = CD.A^10 = 1, B^11 = 1, AB = C, AD = BC, CD = E, ABD = E, AC = A²B, DE = DCD, CB = AB², ED = CDD (mirrored for lowercase).Aa = aA, Bb = bB, Ab = a·b·a⁹·A, Ba = b·a¹⁰·b·B....
$ grep --similar