Cicada Solvers

Your Headquarters for Everything Cicada 3301


Thoughts on Runes

An Analysis

Introduction

I was a little unsure about my Latin to rune transposer so I decided to write come unit tests to help me test things out. This may be something others have noticed, but I wanted to document it to get it out there.

Test Description

The tests take the sentences from Liber Primus and converts them into Latin characters. Then it converts the Latin characters back to Runes. This is performed on paragraphs in the sections at a time. Not on the individual pages.

Expectations and Reality

When I ran the unit tests, there were some that passed and most of them failed. This worked fine on page 57 as this was a direct translation that was transposed into runes. That let’s me know my Latin to Rune transposer worked fine.

However, for the ones that failed, there was a couple of character difference. I will use the first section as a demonstration.

Input Text

“ᛋᚻᛖᚩᚷᛗᛡᚠ•ᛋᚣᛖᛝᚳ␍ᚦᛄᚷᚫ•ᚠᛄᛟ•ᚩᚾᚦ•ᚾᛖᚹᛒᚪᛋᛟᛇᛁᛝᚢ•ᚾᚫᚷᛁᚦ•ᚻᛒᚾᛡ•ᛈᛒᚾ•ᛇᛄᚦ•ᚪᛝᚣᛉ•ᛒᛞᛈ

•ᛖᛡᚠᛉᚷᚠ•ᛋᛈᛏᚠᛈᚢᛝᚣᛝᛉᛡ•ᚣᚻ•ᛒᚢ•ᚷᚩᛈ•ᛝᚫᚦ•ᛁᚫᚻᛉᚦᛈᚷ•ᚣᚠᛝᚳᛄ•ᚦᚪᛗᛁᛝᛁᛡᚣ•ᚻᛇ•ᛏᚻᚫᛡ•ᛉᚣ•

ᛖᚢᛝ•ᚳᚠᚾ•ᛇᚦᛄᛁᚦ•ᚦᛈ•ᚣᛝᛠ•ᚣᚾᛖᚣ•ᛞᛉᛝᚹ•ᛒᚳᛉᛞᛒᚠ•ᛗᛏᚾᛖ•ᛠᛄᚾᛚᚷᛒ•ᛉᚷᚦ⊹ᚣᛁᛞᚪ•ᛝᚷᛗᛄᚱᚩᛚᛇ•

ᚣᛏᛈᛁᚦᛞᛄ•ᛟᚻᛚ•ᛠ•ᚠᛉᚫᛈᚷᛉ•ᚠᛚᚹᛇᛏᚫ•ᚠᚷᚾ•ᛗᛇᛚᚾ•ᛝᛗᚠᚱᛡ•ᚪᛋ•ᛠᛗᛝᛉᛉᛇᛞᛒ•ᛟᛞᛗᚩ•ᛠᛇᚻ•ᛞᛝ

ᚷ•ᛟᛝᛚᚢᚱᚾᛏ•ᚫᛋᚣᚢᚻᚱᛏ•ᚻᚳ•ᛋᛟᛏᛟᛝᚢᚱ•ᛋ•ᚠᚩᛖᚹᛠᛟᛚᚠᚫ•ᛗᚱᛝ•ᛞᚪᛗᚱ•ᚹᚪᛁᛗᛋᚾ•ᛋᛟᚱᚢᚹᛋᛚᛡ⊹

ᛟᚪᚫᛝᛋᛞᛈᛏ•ᚳᚱᚦᛡ•ᚱᛒᚩᛞᚦᚠ•ᚣᛉᛁᛏ⊹ᛟᛁ•ᚠᛚᚩ•ᚠᛠ•ᚱᚩᛟᛗᚻᛗᚷᛈᚻ•ᚫᚻᚾᚩᚻᚣ•ᛟᛋᛚ•ᚾᚷ•ᚫᚣ•ᛟᚳᛒᛚ

ᛄ•ᛝᛚᛟ•ᚫᛄᛠᚹ•ᛠᚦᚩ•ᛒᛟᚣ•ᚳᚠᚳᛄ•ᛚᚫ⊹ᚾ•ᚦᛈ•ᚢᛉ•ᛟᛉᚷ•ᛈᚠᛋᛇᚫᛟ•ᛝᛈᛇᚩᛖᚪ•ᚷᚫᛡᛝᚦᚩ•ᛈᚪᛟᚦᚱᛝᚫ•ᚳᛋ

ᛒᛇᚣᚻ•ᛏᛉᛖᛚᚱ⊹ᚷᚹᚣ•ᛄᚠᛁᚾᛡᚳᚣᛠᛁᛡ•ᚩᚦ•ᛖᚳᚫᚳᛉᛡᛠ•ᚩᛚᚳ•ᚠᚱᛞᛝᛖᚢ•ᛞᚳᛚᛠᛋᛉᚳᚷᛡ⊹ᚹᛋᚦ•ᚠᛞᛝ•ᛁ

ᛡᛗᚪᚫᚷ•ᚹᛋ•ᚾᛞ•ᚳᛈᚦᛉᛈᛠᛠ•ᚹᚢ•ᛠᚹ•ᚠᚹᛄᚣ•ᛉᛞᚹᚳᚷᚳᛟ•ᛞᛉᛟ•ᚱᛡᚷ•ᚾᛈᚪᚣᛈ•ᚳᚣᚻ•ᚠᛖᛄᛠᚾ•ᛟᚫ•ᚢᚪ•

ᚻᚱ•ᛖᛠᚦᚠᛄᚪ•ᛚᛉᛋᛏ•ᛗᚠᛚᚠᛏ•ᚷᛁᚦ•ᚢᛚᚷ•ᛉᛠᛏᛋᛚᛄᛈ•ᛚᛉᛁᛟᛗ•ᚢ⊹ᚻᛏ•ᛒᛇᛚᛞᚻᛒᛗ•ᛠᚱᛒ•ᚾᚻᛒᛖᚷᛇ•

ᛞᛚᚹᛇᛡᛈᚩ•ᚻᛖᛠ•ᚹᛁᚱᛁᚻ•ᚢᚦᚻᚣ•ᚾᛉᛒᚷᛄᛈᚢ•ᛝᛠᚠᚾᛁᛖᛞᛡᛝᚱ•ᛞᛒᛄᛡᛟᛗᛁ•ᚠᛏ•ᛄᛞᛁᚦᚱᛚᛋ•ᛖᛇᚩᚷᛒᛏᛞ

•ᚦᚪᚾᚳᚣ•ᛡᛋᚦᛞ•ᛝᚠᛚᛖᚷᚻᚳ•ᛖᚩᛁᛏᚾᛉ•ᛈᛏᚠᚻᚱᛞᛖᚠᛏ•ᚫᚹᚻ•ᛒᚳ•ᚠ•ᛈᚪᛚᚢᛠᚾᛚᛄ•ᛄᚳᛚᚹᛠᛞᚢᛞᛇ•ᛠᛉ

ᛞᚹᚻᛠ•ᚦᛡᚫᚳᛚᛏᚹᛖᛁᚳ•ᛈᛟᛞᚳ•ᚾᚻᚪ•ᚱᛁᚷᚦᛠᛖᛏᚷ•ᚦᚻᚩᛡᚹᚫᛄᛖ•ᛝᛠᛞ•ᚩᚫ•ᚪᛚ•ᛒᛄᚳᚢᛉᛏᚪᛒᛄᛈ•ᚠᛠ•ᚻ

ᛞᚾᛡᚢᛈᛋᚢᚹ␍”

Latin Character Output

“SHEOGMIOF SYEINGC␍THJGAE FJOE ONTH NEWBASOEEOIINGU NAEGITH HBNIO PBN EOJTH AINGYX BDP EIOFXGF SPTFPUINGYINGXIO YH BU GOP INGAETH IAEHXTHPG YFINGCJ THAMIINGIIOY HEO THAEIO XY EUING CFN EOTHJITH THP YINGEA YNEY DXINGW BCXDBF MTNE EAJNLGB XGTH.YIDA INGGMJROLEO YTPITHDJ OEHL EA FXAEPGX FLWEOTAE FGN MEOLN INGMFRIO AS EAMINGXXEODB OEDMO EAEOH DINGG OEINGLURNT AESYUHRT HC SOETOEINGUR S FOEWEAOELFAE MRING DAMR WAIMSN SOERUWSLIO.OEAAEINGSDPT CRTHIO RBODTHF YXIT.OEI FLO FEA ROOEMHMGPH AEHNOHY OESL NG AEY OECBLJ INGLOE AEJEAW EATHO BOEY CFCJ LAE.N THP UX OEXG PFSEOAEOE INGPEOOEA GAEIOINGTHO PAOETHRINGAE CSBEOYH TXELR.GWY JFINIOCYEAIIO OTH ECAECXIOEA OLC FRDINGEU DCLEASXCGIO.WSTH FDING IIOMAAEG WS ND CPTHXPEAEA WU EAW FWJY XDWCGCOE DXOE RIOG NPAYP CYH FEJEAN OEAE UA HR EEATHFJA LXST MFLFT GITH ULG XEATSLJP LXIOEM U.HT BEOLDHBM EARB NHBEGEO DLWEOIOPO HEEA WIRIH UTHHY NXBGJPU INGEAFNIEDIOINGR DBJIOOEMI FT JDITHRLS EEOOGBTD THANCY IOSTHD INGFLEGHC EOITNX PTFHRDEFT AEWH BC F PALUEANLJ JCLWEADUDEO EAXDWHEA THIOAECLTWEIC POEDC NHA RIGTHEAETG THHOIOWAEJE INGEAD OAE AL BJCUXTABJP FEA HDNIOUPSUW␍”

Conversion back to Runes

“ᛋᚻᛇᚷᛗᛡᚠ•ᛋᚣᛖᛝᚳ␍ᚦᛄᚷᚫ•ᚠᛄᛟ•ᚩᚾᚦ•ᚾᛖᚹᛒᚪᛋᛟᛇᛁᛝᚢ•ᚾᚫᚷᛁᚦ•ᚻᛒᚾᛡ•ᛈᛒᚾ•ᛇᛄᚦ•ᚪᛝᚣᛉ•ᛒᛞᛈ•

ᛖᛡᚠᛉᚷᚠ•ᛋᛈᛏᚠᛈᚢᛝᚣᛝᛉᛡ•ᚣᚻ•ᛒᚢ•ᚷᚩᛈ•ᛝᚫᚦ•ᛡᛖᚻᛉᚦᛈᚷ•ᚣᚠᛝᚳᛄ•ᚦᚪᛗᛁᛝᛁᛡᚣ•ᚻᛇ•ᚦᚫᛡ•ᛉᚣ•ᛖ

ᚢᛝ•ᚳᚠᚾ•ᛇᚦᛄᛁᚦ•ᚦᛈ•ᚣᛝᛠ•ᚣᚾᛖᚣ•ᛞᛉᛝᚹ•ᛒᚳᛉᛞᛒᚠ•ᛗᛏᚾᛖ•ᛠᛄᚾᛚᚷᛒ•ᛉᚷᚦ⊹ᚣᛁᛞᚪ•ᛝᚷᛗᛄᚱᚩᛚᛇ•ᚣ

ᛏᛈᛁᚦᛞᛄ•ᛟᚻᛚ•ᛠ•ᚠᛉᚫᛈᚷᛉ•ᚠᛚᚹᛇᛏᚫ•ᚠᚷᚾ•ᛗᛇᛚᚾ•ᛝᛗᚠᚱᛡ•ᚪᛋ•ᛠᛗᛝᛉᛉᛇᛞᛒ•ᛟᛞᛗᚩ•ᛠᛇᚻ•ᛞᛝᚷ•

ᛟᛝᛚᚢᚱᚾᛏ•ᚫᛋᚣᚢᚻᚱᛏ•ᚻᚳ•ᛋᛟᛏᛟᛝᚢᚱ•ᛋ•ᚠᛟᚹᛠᛟᛚᚠᚫ•ᛗᚱᛝ•ᛞᚪᛗᚱ•ᚹᚪᛁᛗᛋᚾ•ᛋᛟᚱᚢᚹᛋᛚᛡ⊹ᛟᚪ

ᚫᛝᛋᛞᛈᛏ•ᚳᚱᚦᛡ•ᚱᛒᚩᛞᚦᚠ•ᚣᛉᛁᛏ⊹ᛟᛁ•ᚠᛚᚩ•ᚠᛠ•ᚱᚩᛟᛗᚻᛗᚷᛈᚻ•ᚫᚻᚾᚩᚻᚣ•ᛟᛋᛚ•ᛝ•ᚫᚣ•ᛟᚳᛒᛚᛄ•ᛝᛚ

ᛟ•ᚫᛄᛠᚹ•ᛠᚦᚩ•ᛒᛟᚣ•ᚳᚠᚳᛄ•ᛚᚫ⊹ᚾ•ᚦᛈ•ᚢᛉ•ᛟᛉᚷ•ᛈᚠᛋᛇᚫᛟ•ᛝᛈᛇᛟᚪ•ᚷᚫᛡᛝᚦᚩ•ᛈᚪᛟᚦᚱᛝᚫ•ᚳᛋᛒᛇᚣᚻ•

ᛏᛉᛖᛚᚱ⊹ᚷᚹᚣ•ᛄᚠᛁᚾᛡᚳᚣᛠᛁᛡ•ᚩᚦ•ᛖᚳᚫᚳᛉᛡᛠ•ᚩᛚᚳ•ᚠᚱᛞᛝᛖᚢ•ᛞᚳᛚᛠᛋᛉᚳᚷᛡ⊹ᚹᛋᚦ•ᚠᛞᛝ•ᛁᛡᛗᚪᚫᚷ

•ᚹᛋ•ᚾᛞ•ᚳᛈᚦᛉᛈᛠᛠ•ᚹᚢ•ᛠᚹ•ᚠᚹᛄᚣ•ᛉᛞᚹᚳᚷᚳᛟ•ᛞᛉᛟ•ᚱᛡᚷ•ᚾᛈᚪᚣᛈ•ᚳᚣᚻ•ᚠᛖᛄᛠᚾ•ᛟᚫ•ᚢᚪ•ᚻᚱ•ᛖᛠ

ᚦᚠᛄᚪ•ᛚᛉᛋᛏ•ᛗᚠᛚᚠᛏ•ᚷᛁᚦ•ᚢᛚᚷ•ᛉᛠᛏᛋᛚᛄᛈ•ᛚᛉᛡᛖᛗ•ᚢ⊹ᚻᛏ•ᛒᛇᛚᛞᚻᛒᛗ•ᛠᚱᛒ•ᚾᚻᛒᛖᚷᛇ•ᛞᛚᚹᛇᛡ

ᛈᚩ•ᚻᛖᛠ•ᚹᛁᚱᛁᚻ•ᚢᚦᚻᚣ•ᚾᛉᛒᚷᛄᛈᚢ•ᛝᛠᚠᚾᛁᛖᛞᛡᛝᚱ•ᛞᛒᛄᛡᛟᛗᛁ•ᚠᛏ•ᛄᛞᛁᚦᚱᛚᛋ•ᛖᛇᚩᚷᛒᛏᛞ•ᚦᚪᚾᚳ

ᚣ•ᛡᛋᚦᛞ•ᛝᚠᛚᛖᚷᚻᚳ•ᛇᛁᛏᚾᛉ•ᛈᛏᚠᚻᚱᛞᛖᚠᛏ•ᚫᚹᚻ•ᛒᚳ•ᚠ•ᛈᚪᛚᚢᛠᚾᛚᛄ•ᛄᚳᛚᚹᛠᛞᚢᛞᛇ•ᛠᛉᛞᚹᚻᛠ•ᚦ

ᛡᚫᚳᛚᛏᚹᛖᛁᚳ•ᛈᛟᛞᚳ•ᚾᚻᚪ•ᚱᛁᚷᚦᛠᛖᛏᚷ•ᚦᚻᚩᛡᚹᚫᛄᛖ•ᛝᛠᛞ•ᚩᚫ•ᚪᛚ•ᛒᛄᚳᚢᛉᛏᚪᛒᛄᛈ•ᚠᛠ•ᚻᛞᚾᛡᚢᛈᛋ

ᚢᚹ␍”

Differences

For the most part, they look the same, but it was failing the unit test as the string lengths did differ. This is because there was one subtle difference between the two rune input and rune conversion. Please see the below list of the original versus the conversion. In the Liber Primus, there are many times in which they do not use the combo character in the runic text.

Liber Primus

1 – ᛁᚫᚻᛉᚦᛈᚷ = IAEHXTHPG

2 – ᛏᚻᚫᛡ = THAEIO

4 – ᚠᚩᛖᚹᛠᛟᛚᚠᚫ = FOEWEAOELFAE

5 – ᚾᚷ = NG

6 – ᛝᛈᛇᚩᛖᚪ = INGPEOOEA

7 – ᛚᛉᛁᛟᛗ = LXIOEM

8 – ᛖᚩᛁᛏᚾᛉ = EOITNX

Latin to Rune Conversion

1 – ᛡᛖᚻᛉᚦᛈᚷ = IAEHXTHPG

2 – ᚦᚫᛡ = THAEIO

4 – ᚠᛟᚹᛠᛟᛚᚠᚫ = FOEWEAOELFAE

5 – ᛝ = NG

6 – ᛝᛈᛇᛟᚪ = INGPEOOEA

7 – ᛚᛉᛡᛖᛗ = LXIOEM

8 – ᛇᛁᛏᚾᛉ = EOITNX

Conclusion

Due to the differences, I can think if a couple of explanations to this and could also explain the lack of doublets.

Possibilities

1. They are converting from Latin Characters to Runes in an inconsistent manner. If that is the case, then we need to figure out how to solve it based on the clues we have or we need. Frequency analysis will not work with this method. The inconsistency messes up the letter distribution.

2. They are working with it in the “How I think this is working” section of the conclusion. I think this could be the most likely scenario. This could leave the Liber Primus open to frequency analysis if we look at the sections as a whole and not on a page by page basis. Otherwise, the text is too short to get a letter distribution.

The other reason I think this may be the method is actually due to the lack of bi-grams in the text. Since the Intermediary Rune Latin condenses the English Alphabet from 26 characters to 22 characters. Then there are 29 runes, there is a good possibility that there are multiple runes to represent a single character.

How I think this is working

The way that I can conclude that if they are encoding and encrypting, it follows the following process.

Latin → Intermediary Rune Latin

Intermediary Rune Latin → Rune

Rune → Encryption

3. Their program doing the conversion could be doing something more advanced like making sure the values of the runes in a word come out to a prime number or something similar.

Reference Material

Source code: https://github.com/cmbsolver/cmbcidada3301