A small Python experiment for exploring the rune alphabet used in Cicada 3301's Liber Primus. It prints a direct rune-to-Latin transliteration, an Atbash mapping, and an experimental shifted result.
This is a puzzle-study project. It does not provide secure encryption or claim to solve Liber Primus.
decrypt.py: an interactive script with a 29-rune alphabet and corresponding Latin letter groupskey.txt: the repository's reference fileliber_primus_full/: page images and accompanying reference material
Use Python 3 in a terminal that supports UTF-8. There are no third-party Python imports in the script.
git clone https://github.com/VinnyMo/cicadaCrypt.git
cd cicadaCrypt
python3 decrypt.pyAt the first prompt, enter runes from the script's RUNES list. At the second, enter an integer shift. For a small example, enter ᚠ-ᚢ/ᚦ and then 0.
The input convention is:
| Input | Meaning |
|---|---|
| A supported rune | Look up its Latin letter group |
- |
A space within an output line |
/ or . |
End the current output line |
Ordinary spaces and unsupported characters are not accepted by the rune lookup. The script prints Python lists for the direct and Atbash results.
- Direct transliteration: use the rune's index to select an entry from
LETTERS - Atbash: reverse that position in the 29-entry alphabet
- Shifted Atbash: attempt a modular shift over the Atbash output
The final stage operates character by character even though some entries in LETTERS are multi-character groups, such as TH or V(U). It can therefore raise ValueError for otherwise supported rune input. The first two stages are useful to inspect independently; the shifted stage needs further work.
The code is a compact, interactive experiment with hard-coded mappings. There is no command-line argument parser, input-validation layer, automated test suite, or general-purpose decryption pipeline. The page images are reference material; the script does not read them or perform OCR.
No license file is included in this repository. Check permissions before redistributing code or bundled reference material.