This Pokemon Team Is My Roman Empire

by tulip
๐Ÿšฉ CTFs DawgCTF 2025 cryptography
This Pokemon Team Is My Roman Empire / DawgCTF 2025
This Pokemon Team Is My Roman Empire

Description

I was on a really sleep deprived tumble, so I decided to hide the key string to my bank account in a Pokemon Team. I know nothing about Pokemon, so I asked a friend and he said the movesets "looked really weird". Can you help find my key string? It should consist of unseparated letters, and be in all caps.

Letโ€™s check out this website.

website

Cool. The description said something about the movesets of the pokemon:

9 (Zarude) @ Leftovers  
Ability: Leaf Guard  
Tera Type: Steel  
EVs: 252 Atk / 4 SpD / 252 Spe  
Jolly Nature  
- Roar  
- Close Combat  
- Bullet Seed  
- Jungle Healing  

The challenge title also hints โ€œRoman Empireโ€. Time for a shot in the dark.

Taking that as a caesar shift, what if we tried taking the first letter of each move, and reverse caesar shifting by the level of the pokemon? e.g.

9 (Zarude) @ Leftovers  
Ability: Leaf Guard  
Tera Type: Steel  
EVs: 252 Atk / 4 SpD / 252 Spe  
Jolly Nature  
- Roar -> R
- Close Combat -> C  
- Bullet Seed -> B
- Jungle Healing -> J

We would take the corresponding ciphertext is RCBJ, and the shift as 9. So letโ€™s reverse it. \[ \operatorname{caesar}_{-9}(\mathrm{RCBJ}) = \mathrm{ITSA} \]

Next one:

16 (Archaludon) @ Leftovers  
Ability: Stamina  
Tera Type: Ghost  
EVs: 252 HP / 116 Def / 36 SpA / 104 SpD  
Sassy Nature  
- Heavy Slam  
- Electro Shot  
- Stealth Rock  
- Aura Sphere  

\[ \operatorname{caesar}_{-16}(\mathrm{HESA}) = \mathrm{ROCK} \]

We keep doing this, until we reach the last pokemon. Here is the list of ciphers with their corresponding shifts.

RCBJ : 09 -> ITSA
HESA : 16 -> ROCK
EAXU : 12 -> SOLI
RDCY : 14 -> DPOK
DLNM : 25 -> EMON
BMIU : 08 -> TEAM

Flag: ITSAROCKSOLIDPOKEMONTEAM

Share this writeup

Contribute

Found an issue or want to improve this writeup?

Edit on GitHub