All right, if you follow me over on Twitter, you’ll have seen, over the past few weeks, a puzzle I presented there (with hints and historical digressions) that ended with the successful decipherment of what I can now tell you is called the Serpentine Cipher – this particular word is just the word SERPENTINE. And you will certainly see that each sign certainly is serpentine-looking:
This text is super short and decipherment is certainly a challenge without hints and without some additional information. It starts with the numerical notation used by Johann Joachim Becher in his 1661 Character pro notitia linguarum universali. This was, as the Latin name suggests, one of many 17th century ‘universal language’ schemes, meant to encode concepts rather than words tied to any specific language. Becher’s system used a different number for each of 10,000 concepts, distinguished with lines and dots around a frame:
Becher’s notation wasn’t completely original to him, though. It’s a variant of the Cistercian numerals described in David King’s magisterial 2001 book, Ciphers of the Monks. The system became better known in 2020 via the Numberphile Youtube channel:
King’s book shows how this local development, in parallel to Indo-Arabic / Western ciphered-positional numerals (the digits 0-9), spread throughout European intellectual life into strange places, from volume markings on Belgian wine barrels to modern German nationalist runology. But among the more notable places you find this kind of numeration is in various ciphers, universal language schemes, and other sorts of semi-cryptic efforts to encode language in the 16th and 17th centuries. Although we now know, very firmly, that the Cistercian numerals were a medieval European invention, they were often described as ‘Chaldean’ and/or assigned considerable antiquity / mysticism.
My own contribution to this reception literature was in a post here a few years ago, Cistercian number magic of the Boy Scouts, showing how it ended up in 20th century Scouting literature:
Anyway, the Serpentine Cipher isn’t based on any of that, but is taken directly from Becher. But you can’t just use Becher’s universal cipher at this point, because a ‘universal language’ of 10,000 individual concepts is pretty damn useless. Instead, to solve it, you needed to convert the five glyphs to numbers, and then those to specific pairs of letters – so that five glyphs produces a plaintext of ten letters.
So if you got that far, you found that the five glyphs were five numerals written quasi-positionally, without a zero, in a mixture of base 5 and 10: 737, 3233, 473, 1633, and 473. The fact that the third and fifth glyphs are identical is important, but also potentially misleading. By the way, the reason you don’t need a zero is that the ‘place values’ aren’t linear, but oriented on the same frame, so you can simply leave one blank to indicate an empty space. It’s a kind of ‘orientational’ or ‘rotational’ zero-less place-value. The downside is that unlike a linear phrase it isn’t infinitely extendable.
Next, you needed to notice that each number is the product of exactly two prime factors. By the Fundamental Theorem of Arithmetic, every number is the product of some unique set of prime factors. So there’s no ambiguity: 737 is *only* 11 x 67. And by chance, there are 25 primes below 100, so, borrowing Z = 101, we can associate each prime with a letter:
- A = 2
- B= 3
- C = 5
- D = 7
- E = 11
- F = 13
- G = 17
- H = 19
- I = 23
- J = 29
- K = 31
- L = 37
- M = 41
- N = 43
- O = 47
- P = 53
- Q = 59
- R = 61
- S = 67
- T = 71
- U = 73
- V = 79
- W = 83
- X = 89
- Y = 97
- Z = 101
Thus, each glyph can be treated as a product, and thus as a two letter sequence. 737 = 11 (E) x 67 (S), the 5th and 19th primes. (For words like PIZZA that would use the ZZ glyph (101 x 101 = 10201) you have some different options for that fifth place-value, but these are rare enough to ignore for now). Then all you have to do is ‘serpentine’ between the two letter-pair combinations for each number to figure out which pairs lead to the solution. Voila!:
An added bonus of using the word SERPENTINE is that it illustrates one of the key (mildly) confounding properties of the cipher, namely that an identical glyph (473) always has two readings, both of which occur in this one word.
Now, note that the only glyphs that will have even values are ones that use A=2, because the product of odd numbers is always odd. This would have provided a hint – if I’d given you a word with any As in it. (You can also use A=3 … Z=103 if you like, but there will be more products >10000 then.)
Really, once you see all those 11s, it’s not a bad guess that those 11s are Es – but of course, without knowing exactly what their position is, it makes deciphering such a short text tricky. But I don’t pretend that this would stand up to serious cryptanalysis as-is.
Finally, if you have a ‘straggler’ odd letter left out at the end of a word or phrase you can either multiply three letters into a product (though that gets unwieldy, e.g., WRY = 83 X 61 X 97 = 491,111) or just have a single number (a prime) at the end. Either one of these might tip you off as to a word boundary. Of course, you don’t have to stop at word boundaries, so you can SP LI TU PT HE WO RD SI NT OP AI RS LI KE TH IS.
Anyway, thanks to all who played along. I think this is a bunch of fun, doesn’t need much more than basic arithmetic, and provides a neat digression into the history of number systems and early modern cryptography. Paul Leyland was the first correct decipherer and is thus a winner of a copy of my book, Reckonings: Numerals, Cognition, and History, which, while it is not really about ciphers at all, does have a lot of stuff relevant to number systems and early modern history.
Finally, this cipher is presented in memory of my dear friend Victor Henri Napoleon, who was one of the original decipherers of an early/experimental version of the Serpentine in 2017, and who passed away suddenly last week at the age of N (43). You will be missed, Vic!