This started off as a statement where I basically said, wouldn’t it be some crap if some of the LP had binary data of some kind. Of course, I was motivated to write something up for people to see what it could look like. A possible answer to a question no one asked. I figured I would write it up in case someone was going down this line in the future.
So, could we save binary data as rune text? Could Cicada 3301 have saved binary data as runes? Yes and no to both of these questions. Not that I have actually tried on any of the rune text, but I did write a couple of programs to get it in and out runes to demonstrate what it could look like.
If I take the text: “The LP2 is very hard to decrypt.” and put that in a text file, I could get the following runes back from the programs. I say “could” as the numbers are random as to give the look and feel of text. Anyway, here is a possible rune text, “ᛋᚠᚾ•ᛞᚳᚠ•ᚫ•ᚳᚷᚠ•ᛖᚩᚠ•ᚱᛖᚠ•ᚳᛄ•ᚻᚩᚠ•ᚣᚠ•ᚻᛚᚹ•ᚹᚱᚠ•ᛡᚱ•ᚫ•ᚢᛠᚠ•ᚻᚹᛖᚢᚩᚠ•ᚱᚠᚷᚠ•ᚻᛝᚠ•ᚪ•ᚷᚪ•ᛁᛖᚠ•ᚢᚾ•ᚻᚠᚠᚢᚻᛋᚢᚩ•ᛄᚢᛗ•ᚷᚳᚠ•ᛄᛒᚠ•ᚫ•ᛄᚹᛇᚠ•ᛈᛗ•ᛉᛁᚷᚢᚻ•ᚩᛏᛁᚳᚠ•ᚣᚳ•ᚩᚷᚷᚢᚠ•ᚢᚩ⊹”.
Another thing to note, you could do this randomly until you get a somewhat homogeneous distribution of runes and no/low doublets. If one so wanted in a workflow.
There are some downsides to the method in my programs. This will really only work for text files for the most part. If you take something like an image, it will have 0 and 1 in the byte array data. That cannot be converted to runes with a method like this. The program will run infinitely as the remainder value in the calculation will always get below 0. Also, 0 will just return nothing. Basically, you are limited to textual data that could be stored this way. It is not intended to be used as a general binary storage medium.
Second, it would be really easy to spot. Byte arrays are 0 through 255. Ergo, you will be able to see it in the text if they were using a method like this. Unless there was a need to remove any of the runes to make it work.
Third, it would make a massive sentence for larger binary data. In my mind that would make this possible, but not probable for anything more than a few words at a time.
Finally, this is not really a downside, but more of an explanation. In the decoder (rune2bin), there is this whole binary string manipulation. That is there in case someone tries to run it on LP2 rune data where the gem sum of a word is greater than 255. It will pad it out with zeros to get anything over an increment of 8 to the next increment of 8 in order to get it to fit evenly into bytes. It was either that or decrement the values by 255 until it was below 255.
You can see the source code to here:
https://github.com/cmbsolver/libergo/blob/main/cmd/bin2rune/main.go
and here
https://github.com/cmbsolver/libergo/blob/main/cmd/rune2bin/main.go
In conclusion, possible but I am leaning towards improbable. The type of data that could be stored would not really be worth it. It seems like one could store more text in a direct cipher method.