Post by mortlach on Oct 30, 2016 9:48:00 GMT
Introduction:
Parts 1 2 and 3 introduced some basic tools and methods of analysis that solved the first pages of the Liber Primus. Here is a summary of some things we have learnt and important assumptions we have made:
• The Runes form an ordered set
• Runes can be combined to give a new rune
• Look for patterns
• Brute-force many / all different possibilities
• Possibilities can be scored and ranked
• We know the number of runes in each word
The next set of 58 pages form the basis of the currently unsolved pages. These pages can be easily labelled by their original filename, 0.jpg, 1.jpg … 57.jpg. Of those pages only two have been publicly solved, 57.jpg and 56.jpg. Things are starting to get more difficult.
57.jpg
57.jpg can be solved by direct replacement of the runes with letters from the Gematria to give:
P,A,R,A,B,L,E , L,I,C,E , TH,E , I,N,S,T,A,R , T,U,N,N,E,L,(I)NG , T,O , TH,E , S,U,R,F,A,C,E , W,E , M,U,S,T , S,H,E,D , O,U,R , O,W,N , C,I,R,C,U,M,F,E,R,E,N,C,E,S , F,I,N,D , TH,E , D,I,U,I,N,I,T,Y , W,I,TH,I,N , A,N,D , E,M,E,R,G,E
56.jpg
This page presents us with some problems. The Cipher Text (CT) is only 85 runes. This is short and means that statistical measures (such as index of coincidence) have large associated errors. For example, if there was a long repeating key the IoC values would probably not clearly show the pattern because there are only a handful of runes in each slice of CT. The IoC vs key length shows a chaotic pattern with high frequency oscillations:
{Key Length, mean sliced IoC}:
{1, 0.942}, {2, 0.939}, {3, 0.975}, {4, 0.978}, {5, 0.939}, {6, 0.867}, {7, 0.798}, {8, 0.798}, {9, 0.912}, {10, 1.368}, {11, 1.317}, {12, 1.122}, {13, 1.296}, {14, 0.414}, {15, 0.774}, {16, 0.786}, {17, 1.023}, {18, 0.645}, {19, 1.221}, {20,1.596}, {21, 1.152}, {22, 1.539}, {23, 0.42}, {24, 1.008}, {25, 0.966}, {26, 1.302}, {27, 0.717}, {28, 0.345}, {29,0.666}, {30, 0.966}
To solve this page we still use the same basic steps that we have developed, only this time we will change the order in which we do them. The first two CT words are:
ᚫᛂ , ᛟᛋᚱ = {AE, J} {OE, S, R } = {25, 11} {22, 15, 4}
a two rune word and a three rune word. Our dictionary contains 85 two rune words and 885 three rune words, giving 75 225 possible combinations. Assuming the original message words are in our dictionary : one of this set of 75 225 phrases must be the original message. We call each possible phrase a crib.
75 225 is a low enough number of cribs to brute-force every possibility. Before we do that we must first choose an encryption method. The most obvious starting place is to carry on with the Vigenère cipher, based on the concept of adding a Key to MT:
CT = MT + Key
Rune Subtraction, the Additive Inverse
We know the CT, we assume we know the MT, and so to find the key we must find the inverse of the Vigenère cipher, the inverse of adding a Key. For addition this is simple, the inverse is subtraction. Using this re-arranged formula:
Key = CT – MT
We can find every Key for the Vigenère cipher. For example:
MT = A,H , A,A,H = 24, 8, 24, 24, 8
Key = CT – MT = {25, 11, 22, 15, 4} – {24, 8, 24, 24, 8}
Key = {25 – 24, 11 – 8, 22 – 24, 15 – 24, 4 – 8}
Key = 1, 3, -2, -9, -4
We can convert the negative numbers to positive numbers by using our cipher disc . A negative number would mean we shift the cipher disc in the opposite direction. As this disc is a ring with 29 elements shifting it clockwise N runes is the same as shifting it counter-clockwise 29-N runes:
-1 = 28, -2 = 27, -3 = 26, ...
This is another feature of modular arithmetic and we can now represent the key with numbers in the range 0,28:
Key = 1, 3, 27, 20, 25
It must be stressed when we represent CT, MT and keys with runes, negative numbers, letters, positive numbers etc. we are just using symbols. There are many consistent and equivalent notations.
Brute-Forcing
We have chosen an encryption method and defined the inverse operation of the encryption method enabling us to find the key from the CT and (assumed) MT. We can try all the phrases from our dictionary, giving 75 225 keys. In some sense every one of these keys is ‘correct.’ We don’t know what the message is, perhaps it really is AH AAH and the correct key is 1, 3, 27, 20, 25. We must now extend the key to decrypt the next CT word.
The next CT word is ᛗᚣᛚᚩᚻ, there are 6853 words with 5 runes in our dictionary and so we could carry on finding all the keys for those words. We would now have 515 516 925 different keys for all combinations of the first three words, and yet we would be no closer to finding The Solution, all we have is All The Solutions (for these cribs and this encryption method). We need to simplify things by cutting possibilities.
One method is to cut the number of cribs. Many (most) of the 515 516 925 different 3 word combinations will be nonsensical and so we could only choose ones that occur in natural language. This helps reduce the number of possible keys and reduces the amount of computations we must do, but it still won’t tell us the answer. What we must do is look for a pattern in the keys and see if we can spot something that helps us extend the key in a reasonable manner.
Patterns in Keys
Previously we looked for patterns and then brute-forced possibilities. Now we have brute-forced possibilities and are going to look for a pattern. Looking for patterns in keys is much more difficult that than looking for patterns in text. This is because we have very good models on what text looks like, (IoC, log probabilities, dictionary words etc). A pattern in a key could be anything.
There is a theorem that states that any finite sequence has an infinite number of ways of extending it. That means that every possible key is ‘correct’ – but what we hope to find is a key that is ‘more’ correct than all the others. To do this we can try cutting the list of keys based on some assumption and looking at the reduced list. For example, we could select all the keys that are ascending and look for ones that are interesting. There are 614 ascending keys, and this one near the top of our list looks interesting:
A,N, E,N,D 1,2,4,6,10
The crib makes sense and the key is the first few numbers of the prime sequence -1. (It is also the Euler Totient function of the primes and can be derived with the Möbius function, maybe there are other ways of arriving it?) We have found a key that has meaning: previous pages contained the following phrases:
THE PRIMES ARE SACRED, THE TOTIENT FUNCTION IS SACRED
We can extend this key and try applying it to the rest of the 56.jpg CT runes:
AN, END, WITHIN, THE, DEEP, WEB, THERE, EXISTS, A, PAGE, THAT, HASHES, TO, … IT, IS, THE, DUTY, OOE, TAXTHT, EAGETHMRN, XEA, NIEOEA, EAAH, IOTHC, JXREO
We find that F has been used as an interrupter again, skipping over the offending rune gives:
AN, END, WITHIN, THE, DEEP, WEB, THERE, EXISTS, A, PAGE, THAT, HASHES, TO, … IT, IS, THE, DUTY, OF, EUERY, PILGRIM, TO, SEEC, OUT, THIS, PAGE
Summary
The difficulty of the puzzle has increased. To solve 56.jpg page has required assuming the encryption method, finding the inverse of this method, brute-forcing cribs, and pattern matching. This enabled us to find a key that is more correct than the others, within the context of this puzzle it had meaning and decrypted the text to a meaningful phrase.
We have finished describing ways to decrypt all the publicly solved pages.
Throughout these guides we have tried to show techniques for solving the runes. Perhaps more importantly, we have also discussed general ways of thinking and strategies that we can try applying to solving.
*Comments, questions, suggestions, omissions etc ? please try #cicadasolvers
MSGA