For our last C++ programming assignment, we’ve had to program an Enigma machine! This was a German invention, used by the Nazis during WW2 to send scrambled/encrypted messages to each other via radio. The enigma machine was special in that it ensured a polyalphabetic substitution cipher (basically the bee’s knees of encryption at the time), and was considered unbreakable until some clever English people invented computers to help break the cypher (slightly oversimplified history here, the actual story is quite interesting!).

As Talulah Banks rightfully pointed out, it should be in my blood to program this thing, and I think I’ve actually finished it (with 1.5 weeks to go until hand-in)!! It’s been quite fun and a welcome change to the seriously uninspiring Computer Architecture and Operating Systems classes.

Funnily enough the internal workings of the Enigma machine are so complex that it’s stupidly difficult to test whether the encryption is correct or not! So I may just have to build an actual model out cardboard to verify the results…