Sike: the post-quantum scheme that fell to a laptop
SIDH was one of the last key-exchange schemes standing in NIST's post-quantum competition. Then a classical laptop recovered its secret key in an hour. How it works, the one formula that forces it to leak, and the two-dimensional trick that breaks it — with the actual math — plus a challenge so you can watch it fall.

In the summer of 2022, isogeny-based cryptography was having a good year. SIDH —
Supersingular Isogeny Diffie–Hellman — had been studied for over a decade, and
SIKE, the key-encapsulation scheme built on it, was one of the last few
candidates standing in NIST's post-quantum competition. It was the elegant one:
tiny keys, security resting on a problem with no known efficient solution,
classical or quantum.
Then, on July 30th, Wouter Castryck and Thomas Decru posted An efficient key recovery attack on SIDH, with a few hundred lines of Magma attached. On one core of an ordinary laptop, it recovered the secret key of the top SIKE parameter set in about an hour. Re-implementations got that to minutes, then seconds. No quantum computer was involved at any point. The scheme was dead inside a month.
I think this is one of the most instructive failures in modern cryptography, so I turned it into a challenge. This post is the background — and this time I'll write the math out, because the break is genuinely beautiful and you can't feel it from prose alone. The challenge is at the bottom; I won't spoil it.
First, the objects
Everything lives over the field , with a prime of the shape
Fix a supersingular elliptic curve . Supersingularity buys one very clean fact about the group of points:
So for any the -torsion is fully rational and is free of rank two:
In particular and each have a two-element basis. That rank-two structure is the whole game.
An isogeny is a non-constant morphism of curves with ; it is automatically a group homomorphism. A separable isogeny is pinned down by its kernel: for any finite subgroup there is a curve and a map
unique up to isomorphism of the target and computable from by Vélu's formulas. "Walking the graph" means repeatedly quotienting by a small cyclic subgroup: the vertices are supersingular curves up to isomorphism (tagged by their -invariant), the edges are degree- isogenies, and the graph is a -regular Ramanujan expander — walks mix fast and look random.
SIDH, written out
The public parameters are , a basis of , and a basis of .
Alice picks a secret and walks the 2-isogeny whose kernel is one cyclic subgroup of :
Bob picks and walks the 3-isogeny:
Now the subtlety that the cartoon version skips. To finish, Alice has to push her kernel through Bob's isogeny — she needs . She never sees , only the curve . But an isogeny is a homomorphism, so it commutes with the group law:
That one identity is the reason SIDH publishes torsion-point images. If Bob hands over and , Alice can evaluate the right-hand side for her own secret without ever knowing . So the public keys are
Each side re-walks on the other's curve,
and because both quotients equal up to isomorphism, the two parties land on the same curve. The shared secret is its fingerprint:
Hold onto that identity . The torsion images are the gear that makes SIDH turn — and the crack the whole thing splits along.
Why it looked hard
Breaking Bob means solving the supersingular isogeny problem with torsion: given , , and the images , recover (equivalently ). The secret lives in a space of size , and the best generic method is a meet-in-the-middle / claw-finding walk from both endpoints, which costs
At SIKE's sizes () that is — out of reach. No quantum algorithm did meaningfully better once you account for memory. For ten years, was the security level, and the torsion images — published in plain sight the whole time — were assumed to be harmless.
The break, in two dimensions
Castryck and Decru's move is to stop searching for and instead certify guesses about it, by building a higher-dimensional object that only fits together when the guess is right.
The engine is Kani's lemma (Ernst Kani, 1997), a statement about when a 2-dimensional isogeny between abelian surfaces is "reducible." Set and pick an auxiliary power
Kani packages , together with a complementary isogeny of degree , into a single -isogeny of abelian surfaces
whose kernel is essentially the graph of on the -torsion:
where is an endomorphism realizing the complementary degree, . Two things make this computable:
- You can write down only because are public. The attack's input is the helper data.
- Building needs expressed as a norm in — e.g. and when is an explicit endomorphism. This is why CD needs a starting curve with known endomorphism ring (the SIKE base, or , where is a map you can apply to points). On a random supersingular curve you would not have .
Because is a power of two, factors into a chain of -isogenies between principally polarized abelian surfaces — each step an explicit Richelot isogeny on a genus-2 curve. And here is the punchline. A principally polarized abelian surface is exactly one of two things:
Kani's criterion says the chain splits into a product of elliptic curves precisely when the diamond closes — i.e. when the piece of you fed in is the real one. That boolean,
is an oracle for correctness. Now turn it into key recovery. Write Bob's secret in base 3,
guess the top handful of digits, assemble the corresponding -chain from the torsion images, and ask whether it splits. Correct guesses split; wrong ones do not. Peel off digits a few at a time (a refinement by Oudompheng recovers the rest directly from the first split). Each test is a fixed-length chain of Richelot steps — polynomial in — and there are of them:
The wall is gone. The irony is exact: the data that made the key exchange possible
is the data that makes the attack possible. The one delicate point is the
inequality ; SIKE's most balanced sets ( vs
) sit a hair on the wrong side, repaired by a short
auxiliary isogeny. Within weeks, Maino–Martindale and Robert generalized the whole
thing to provably polynomial time in every case. SIKE was withdrawn.
"Quantum-safe" was never the whole promise
The part I keep coming back to: SIKE's quantum resistance was real. There was no good quantum algorithm for the underlying problem, and there still isn't. It fell to a classical attack nobody had found in ten years — one that climbed the scheme's algebraic structure, not its key size.
- Security isn't the size of the search space; it's whether that space has structure an attacker can exploit. SIDH had a lot of it.
- Any helper data you publish to make a protocol work is part of the attack surface, modeled or not. SIDH's torsion images were both at once.
- "Resistant to attack " quietly gets read as "secure." They are not the same sentence.
None of this was obvious in advance. The torsion images had been published for a decade and studied by experts. The break needed a tool — Kani's lemma, genus-2 isogenies — that simply wasn't in the average cryptographer's kit. It wasn't a bug; it was a bridge between two fields that hadn't been crossed yet.
A challenge: SIKE!
I built a challenge around exactly this, and it's live on Dreamhack: SIKE!.
It hands you one complete run of the key exchange — both public keys, the torsion images , and a flag sealed under . The parameters are real-SIKE-sized: large enough that the brute-force instincts (guess , meet in the middle at ) are hopeless, small enough that the right attack finishes in seconds. (An earlier version of mine was small enough to meet-in-the-middle — which missed the entire point, because the torsion images went untouched, the one part that actually matters. So I grew it until the only door left was the structure.)
I won't tell you which attack. If you read this far, you already know its name, and you've seen the shape of the oracle it's built on. The real work is the part this post skipped: going from "I know this break exists" to "I made it run on these numbers." That gap is most of applied cryptanalysis, and it's a genuinely satisfying one to cross.
Go break it. It won't even take an afternoon.