I’m taking a swing at the cipher challenges found in the book aptly named ‘The Code Book’ by Simon Singh. Unfortunately, I’m about a quarter of a century too late to collect any sort of bounty on it but we’re still going to do it. There are 10 challenges all up but I’m thinking of just tackling the first four at least for now.
Challenge 1: Simple Monoalphabetic Substitution Cipher
BT JPX RMLX PCUV AMLX ICVJP IBTWXVR CI M LMT’R PMTN, MTN YVCJX CDXV MWMBTRJ JPX AMTNGXRJBAH UQCT JPX QGMRJXV CI JPX YMGG CI JPX HBTW’R QMGMAX; MTN JPX HBTW RMY JPX QMVJ CI JPX PMTN JPMJ YVCJX. JPXT JPX HBTW’R ACUTJXTMTAX YMR APMTWXN, MTN PBR JPCUWPJR JVCUFGXN PBL, RC JPMJ JPX SCBTJR CI PBR GCBTR YXVX GCCRXN, MTN PBR HTXXR RLCJX CTX MWMBTRJ MTCJPXV. JPX HBTW AVBXN MGCUN JC FVBTW BT JPX MRJVCGCWXVR, JPX APMGNXMTR, MTN JPX RCCJPRMEXVR. MTN JPX HBTW RQMHX, MTN RMBN JC JPX YBRX LXT CI FMFEGCT, YPCRCXDXV RPMGG VXMN JPBR YVBJBTW, MTN RPCY LX JPX BTJXVQVXJMJBCT JPXVXCI, RPMGG FX AGCJPXN YBJP RAM
Here I wanted to start off with having a clean visual tool for uncovering the substitution cipher and my mind immediately went to ratatui. Not that I’ve used ratatui before or that I’m experienced at all with building TUIs. I suppose the interest boiled down to being quite bullish on Rust and TUIs particularly lazygit. I have to say though that I just didn’t enjoy using ratatui for the brief amount of time spent with it. I thought maybe it wasn’t ratatui but TUIs in general so I attempted a similar thing in bubbletea instead. Again disaster struck - it’s the goddamn TUIs - I just couldn’t get the UI down and I didn’t have the patience nor the interest to get good at developing this particular skill. After about a day of licking my wounds, the fyne project crept into focus. Fyne was fine after all… check out the super basic GUI I created to help solve this challenge. Not to state the obvious but the feed has been sped up considerably so hold back the genius comparisons.

Challenge 2: Caesar Shift Cipher
MHILY LZA ZBHL XBPZXBL MVYABUHL HWWPBZ JSHBKPBZ JHLJBZ
KPJABT HYJHUBT LZA ULBAYVU
Not yet attempted.
Challenge 3: Monoalphabetic Cipher with Homophones
IXDVMUFXLFEEFXSOQXYQVXSQTUIXWFFMXYQVFJFXEFQUQX JFPTUFXMXISSFLQTUQXMXRPQEUMXUMTUIXYFSSFIMXKFJ FFMXLQXTIEUVFXEQTEFXSOQXLQXVFWMTQTUQXTITXKIJF MUQXTQJMVXQEYQVFQTHMXLFVQUVIXMXEIXLQXWITLIXE QTHGXJQTUQXSITEFLQVGUQXGXKIEUVGXEQWQTHGXDGUFXTIT XDIEUQXGXKFKQVXSIWQXAVPUFXWGXYQVXEQJPFVXKFVUPUQXQX SGTIESQTHGXFXWFQFXSIWYGJTFXDQSFIXEFXGJPUFXSITXRPQEUG XIVGHFITXYFSSFICXCXSCWWFTIXSOQXCXYQTCXYIESFCXFXCKV QFXVFUQTPUFXQXKIUCXTIEUVCXYIYYCXTQXWCUUFTIXLQFXVQW FXDCSQWWIXCFXCXDIQXKIIXEQWYVQXCSRPFEUCTLIXLCXC UIXWCTSFTIXUPUUQXQXEUQQXJFCXLQXCUVIXYIIXKQLQCXCX TIUUQXQXXTIEUVIXUCTUIXACEEIXSOQXTITXEPVJQCXDPIVXLQX WCVFTXEPIIXSFTRPQXKIUQXVCSSQEIXQXUCTUIXSCEEIXIXPWQ XQVZXLFXEIUUIXLZXZXPTZXYIFXSOQXTUVZUFXQVZKZWXTQX_Z_ UIXYZEEIRPZTLIXTZYYZVKQXPTZXWITUZJTZXAVPTZXYQVXZXLFEUZT HZXQXYZVKQWFXZUZXUZTUIXRPZTUIXKQLPUZXTITXZKQZ XZSPTZXTIFXSFXZ**QJVNWWIXQXUIEUIXUIVTIXFTXYFNTUIXS OQXLQXNXTIKNXUQVVNXPTXUPVAIXTNSRPQXQXYQVSIEE QXLQXQJTIXFXYVFWIXSNTUIXUVQXKIUQXFXDQXJFVBVXSI TXUPUUQXBSRPQXBXBXRPBVUBXQKBVXBXYIYYBXFTXEPEIXQX BXYVIVBXFVQXFTXJFPXSIWBUVPFXYFBSRPQFTDFTXSOQXXWBVXDP XEIYVBXTIFXVFSOFPEIXXBXYBVIBXFTXSILFSQXQXQRPBUIV
Not yet attempted.
Challenge 4: Vigenere Cipher
K Q O W E F V J P U J U U N U K G L M E K J I N M W U X F Q M K J B G W R L F N F G H U D W U U M B S V L P S N C M U E K Q C T E S W R E E K O Y S S I W C T U A X Y O T A P X P L W P N T C G O J B G F Q H T D W X I Z A Y G F F N S X C S E Y N C T S S P N T U J N Y T G G W Z G R W U U N E J U U Q E A P Y M E K Q H U I D U X F P G U Y T S M T F F S H N U O C Z G M R U W E Y T R G K M E E D C T V R E C F B D J Q C U S W V B P N L G O Y L S K M T E F V J J T W W M F M W P N M E M T M H R S P X F S S K F F S T N U O C Z G M D O E O Y E E K C P J R G P M U R S K H F R S E I U E V G O Y C W X I Z A Y G O S A A N Y D O E O Y J L W U N H A M E B F E L X Y V L W N O J N S I O F R W U C C E S W K V I D G M U C G O C R U W G N M A A F F V N S I U D E K Q H C E U C P F C M P V S U D G A V E M N Y M A M V L F M A O Y F N T Q C U A F V F J N X K L N E I W C W O D C C U L W R I F T W G M U S W O V M A T N Y B U H T C O C W F Y T N M G Y T Q M K B B N L G F B T W O J F T W G N T E J K N E E D C L D H W T V B U V G F B I J G Y Y I D G M V R D G M P L S W G J L A G O E E K J O F E K N Y N O L R I V R W V U H E I W U U R W G M U T J C D B N K G M B I D G M E E Y G U O T D G G Q E U J Y O T V G G B R U J Y S
Not yet attempted.