The Chaocipher

In 1918, John F. Byrne devised a novel cipher system (“The Chaocipher“) that he claimed produces the “annihilation of order and design in written language” – an indecipherable cipher. Though “crude”, Byrne’s working model fitted inside a tiny box that had contained “fifty small Havana cigars”. However, even though he apparently managed to get his invention looked at by all the great American cryptographers / cryptanalysts of the day, it was never used by the US (or, in fact, by anyone else). So – was this a huge missed opportunity or merely a grand delusion?

The Chaocipher certainly existed – you can see one of the ciphertext/plaintext pairs below (#3), and there is a complete set of ct/pt pairs on Moshe Rubin’s site. Though we can tell from this that it is certainly a clever system, the details of the Chaocipher’s mechanics are still not in the public domain, and hence it is not known whether it is truly as unbreakable as Byrne believed.

What might be inside Byrne’s cigar box? A series of articles in Cryptologia and elsewhere have helped to rule out most of the more exotic possibilities that have been suggested over the years: much as you’d expect from a pre-Computer Era device, it now seems most likely to have consisted simply of an ingenious set of rotors, where the internal rotor positions retain some kind of state information between processed characters.

As an example of this kind of thing, Moshe Rubin has proposed that (for example) the state of the Chaocipher might hold a kind of variable offset (say, +1, +2, or +3) that is affected in some non-obvious way by each character.

My own key observation is simply that, even though Byrne’s Chaocipher’s prototype fitted in a tiny cigar box, a production unit would have been far more complex: and so the prototype probably required the user to do some of the work by hand that the final machine would have done automatically. I would therefore predict that the prototype required that the encipherer read some figure from a dial or rotor and advance a different rotor by hand according to that figure. That is, perhaps the rotors in the prototype were not physically connected but were only algorithmically connected: a system that could be followed by a (literate & numerate) “ten-year-old”… or rather, by that particular sequential device which did not yet exist but which was just beginning to grow in the collective scientific imagination, the Computer.

As a specific example, perhaps each character spins one cipher rotor by a certain amount to produce a character and a separate rotor by a different amount to produce an offset: and the user then advances the first cipher rotor by that offset by hand. Though this seems trivial to us now, I suspect that in 1918 it would have appeared radical and edgy. In C:-

#define ROTOR_A_SIZE 26
#define ROTOR_B_SIZE 23   // or whatever, probably non-coprime with 26?
char rotor_A[ROTOR_A_SIZE] = { ‘Q’, ‘F’, ‘G’, …etc… };
signed char rotor_B[ROTOR_B_SIZE] = { +1, +3, +2, +3, +1, +3, +1, …etc… };
int A_state = 0; // in range [0…ROTOR_A_SIZE-1];
int B_state = 0; // in range [0…ROTOR_B_SIZE-1];
char chaocipher_encipher(char input)
{
   int a = (int) (input – ‘A’);  // convert letter to rotor position
   A_state = (A_state + rotor_B[B_state]) % ROTOR_A_SIZE;
   B_state = (B_state + rotor_B[B_state]) % ROTOR_B_SIZE;
   return rotor_A[A_state];
}

How you’d decipher this kind of thing is another matter. But I leave that to the reader to work out. 🙂

The best online resource for the Chaocipher is without doubt Moshe Rubin’s “Chaocipher Clearing House“, which includes a scan of Chapter 21 of Byrne’s memoirs “Silent Years” (with Albert Einstein’s marginalia!) As is so often the case with cipher history, Wikipedia’s entry is embarrassingly poor, not even meriting a link here. 🙁

Plaintext #3

THEHISTORYOFWARTEEMSWITHOCCASIONSWHERETHEINTERCEPT
IONOFDISPATCHESANDORDERSWRITTENINPLAINLANGUAGEHASR
ESULTEDINDEFEATANDDISASTERFORTHEFORCEWHOSElNTENTIO
NSTHUSBECAMEKNOWNATONCETOTHEENEMTHEHISTORYOFWARTEE
MSWITHOCCASIONSWHERETHEINTERCEPTIONOFDISPATCHESAND
ORDERSWRITTENINPLAINLANGUAGEHASRESULTEDINDEFEATAND
DISASTERFORTHEFORCEWHOSElNTENTIONSTHUSBECAMEKNOWNA
TONCETOTHEENEMTHEHISTORYOFWARTEEMSWITHOCCASIONSWHE
RETHEINTERCEPTIONOFDISPATCHESANDORDERSWRITTENINPLA
INLANGUAGEHASRESULTEDINDEFEATANDDISASTERFORTHEFORC
EWHOSElNTENTIONSTHUSBECAMEKNOWNATONCETOTHEENEMTHEH
ISTORYOFWARTEEMSWITHOCCASIONSWHERETHEINTERCEPTIONO
FDISPATCHESANDORDERSWRITTENINPLAINLANGUAGEHASRESUL
TEDINDEFEATANDDISASTERFORTHEFORCEWHOSElNTENTIONSTH
USBECAMEKNOWNATONCETOTHEENEMTHEHISTORYOFWARTEEMSWI
THOCCASIONSWHERETHEINTERCEPTIONOFDISPATCHESANDORDE
RSWRITTENINPLAINLANGUAGEHASRESULTEDINDEFEATANDDISA
STERFORTHEFORCEWHOSElNTENTIONSTHUSBECAMEKNOWNATONC
ETOTHEENEM

Ciphertext #3

ODHSTOCOCPBHRSLTANURICIAVZDQWOCPRIWFLQXQPBGRNSJKZY
RHONXXQHRTVNHNCOXOQQLOUNFBWDGSRHBESVACZKKCXQKEVTOV
QBFLBNNAYBYGMNUIUEXTNVIJDLBQTIISKPPQVMFFBBMPMHSPSX
RILKIJDTNCHBXOBLYVVFTPPTGNNJVFLOCLXREZMNXZTUUWLGSW
UEJHYKRWVBQSVKVLPGBEVOQKPNVLLWABXRDZODVGBCRJOEXSHB
TLXCRJJUKACMVTEFENSRXYTOLPLEGGRZRTNFOGGABNLVAKMSKP
KTDIBFTWDFREWOSUABUYIGRSUQCAINGKSBRKWYVVSQLFGGMGVJ
MDFAZDFQXMSEGIVVVQMDWHFJPWAGPAMANHSFYYLFYBFIXQLHTF
KKEFVEAKUIXMSXSZQNPLDVPHAFLQNZRXGRHXZEBWQPYHISNYTL
FUHFSMKPOWDGFDLYQRHIVVUJHFBISOPFKKLZTAYYVAGNTQQECS
FDBVTTMAPOMFNSFLTNMUPTUHJPUORZTISYCMQXEPTKFBSXUJAA
PGZNORYXNUGTUESBABJZVTMDLRYUPSAWCUQXPWEIYGFCCPYNLR
PMYZSLMHAROCPYFNQDDVLEGPISKXASBHMLANCJAUKMYWRSUWNR
IOCHZTXEGWWOROPGJQIGNHJLWDUNRPOGLOWGGREHMFDPVCTKQP
YSAOBNXXUCJGVJEIZCPGEKWHGUKVNJLWQMFGHZKZRPKKDQIKNO
LKTMPKVBZMYQRSPEASAZBNKGQYPWVJEPNQOWRQFBSKKYCJOYFC
PRVJBYYGFSBQEUKIYJELJZKPHHLSXKNHXWBOBIBRGACMUVTZYT
QNJWCJFFSVNIXPBJCSUUOUDSWAGODEXPBXKNSGQVZYKCJLPEKX
PXSREXQLKY

One thought on “The Chaocipher

  1. Pingback:  | ferndaledrive.com

Leave a Reply

Your email address will not be published. Required fields are marked *