# ChronoGrind

One team had solved it when the lab started. The key sat behind nine billion squarings.

HI Cyber Con CTF 2026. Cryptography. Published 2 November 2026. Challenge by Hidden Investigations.

## The brief

> Patience isn't a virtue here, it's the only exploit. The wearable sealed the coach's message, and the only key is the one you earn. state.dat is stubborn but honest, it keeps notes on itself. No bugs, no leaks, no shortcuts, and no, your cores won't save you. Bring a charger.

- state.dat, 1.3 KB
- flag.enc, 68 bytes

## In short

ChronoGrind is a time lock puzzle. Its key is the SHA-256 of a seed squared nine billion times modulo a 2048 bit number nobody can factor. The lab decoded the state file, ruled out every shortcut and ran all 9,000,000,000 squarings in order.

## A file that keeps notes on itself

state.dat opens with the magic CGD1 and then the byte 0x4C. Every byte after the magic is XORed with that one byte, and undoing it turns the tail of the file into plain English.

## Nine records and the full spec

The decoded file is a run of typed records with big numbers in base 241. It holds a 2048 bit modulus N, a seed, a cycle count of 9,000,000,000 and device notes that spell out the whole scheme.

## Square the seed nine billion times

The key is the SHA-256 of the seed squared 9,000,000,000 times modulo N. Each squaring needs the one before, so more cores do not help, and without the factors of N the exponent cannot be cut short.

## A decoy that looks like the answer

Record 0x66 holds a 2048 bit number that looks like a finished result. Its key fails the Poly1305 tag, so it is bait. N holds against Fermat, Pollard rho, p minus 1, p plus 1 and ECM.

## Ten million squarings per call

Raising the value to the power 2 to the ten millionth is one library call that runs ten million squarings at native speed. The lab chained 900 of them at about a million squarings a second, for two and a half hours.

## The tag verifies

After 9,000,000,000 squarings the value starts with 12506400094. Its SHA-256 is the ChaCha20-Poly1305 key, the tag verifies and the 35 byte message is the flag.

## The insight

A time lock has no clever way in. The win was reading the file honestly, closing every shortcut and running the one serial computation at full speed.

## The flag

hiCTF{n1c3_w0rk_n0w_t4k3_s0m3_r3$t}

## More from this benchmark

[HI Cyber Con CTF 2026](https://p4ndora.ai/benchmarks/hi-cyber-con-2026)
[All benchmarks](https://p4ndora.ai/benchmarks)
