Hacker News new | past | comments | ask | show | jobs | submit login
An Enigma cipher machine implemented in an Excel spreadsheet by a non-programmer (williamedwardscoder.tumblr.com)
103 points by willvarfar on March 26, 2012 | hide | past | favorite | 23 comments



If you've written a working computer program, you're (now) a programmer.


If you've written a working computer program, you're probably in the top 50% of the industry...


It looks very good! Don't say he's not a programmer... He is, but doesn't know it yet.


One of us! One of us!


He may not be a programmer by day, but he certainly has the mentality of one. This definitely is not the kind of macro that can be recorded and works immediately. For someone who is a "non-programmer" it's pretty impressive to figure out how to use nested loops for such an obscure task. How has nobody mentioned how cool this is?!

VBA is an awesome tool. It has saved me hundreds of hours of tedious calculations and copy/pasting sessions.


Whoa...that's awesome. Definitely a programmer. I don't care what you think of VBA...it is a great tool. I've seen some truly impressive programs written in it.


It's funny how Excel allows non-programmers to end up programming without knowing it.

Reminds me of http://news.ycombinator.com/item?id=3374431


I agree, Excel is how I first got into programming and I think I'm not alone in that.


Microsoft Access assignments at my community college inspired me to work with databases.


That is an incredibly impressive feat, especially considering there's no VBA involved.


There's a VBA module. Your security settings may have disabled it.


is there much in it? or is it recorded macro kind of stuff?


From a quick look (so I may be mistaken), the "Enigma" worksheet has everything it needs to encode a single letter using worksheet formulae.

The VBA just loops through the input text, feeding it into the worksheet character by character and incrementing the step counts, which are referred to by the worksheet formulae. It also looks up the initial rotor positions from the "Settings" table from the "keys" on the main interface worksheet.

That's for encryption - there are another 30 lines of code for decryption which I haven't looked at. It looks hand-coded rather than recorded, but most of the VBA is either incrementing counters or calling worksheet functions, so the VBA isn't doing the heavy lifting.

Your friend may not call himself a programmer but I do Excel/VBA work as part of my job, along with more hacker-approved languages, and I'm very impressed. One of us indeed!


For another Enigma machine see https://launchpad.net/ubenigma


Besides those the author recommends (which seem more general), can anyone recommend a book on WW2 cryptography?


"The Code Book: The Science of Secrecy from Ancient Egypt to Quantum Cryptography" http://www.amazon.com/The-Code-Book-Science-Cryptography/dp/... has a chapter about the Enigma. This book is easy to read as a nice intro to many crypto topics.

"Alan Turing: The Enigma" http://www.amazon.com/Alan-Turing-Enigma-Andrew-Hodges/dp/08... , supposedly the best biography of Turing, I enjoyed it. There's quite a bit on his work on the Enigma but not technical.


"The Code Book" is great. Very good read and very insightful in the toppic.


Not a book, but if you're interested in codes and codebreaking, it's worth a trip to the "National Cryptologic Museum", located right outside the NSA headquarters at Ft. Meade, Maryland (between Baltimore and DC). It's a relatively small place that's open daily and seems to be a labor of love by retired NSA codebreakers.

The museum has a four-rotor Enigma machine, which is about the size of a typewriter. It is packed into a wooden case and deployable into the field.

The museum also has a "Bombe", the Enigma codebreaking machine devised originally by Polish mathematicians, and improved by Alan Turing and others, and fabricated in quantity by the British and the Americans during the war. This an electromechanical device the size of several refrigerators.

So nice to see them both together. Of course, I have today's simple and compact encryption technology in my phone, and right across the parking lot from the museum, there is an acreage of computers (Ft. Meade) which is probably able to decrypt what I send, if desired. Same as it ever was.


Not really; I've never done any cryptography so I wouldn't know if I liked it. I thought I'd see if I liked it by learning about it for a WW2 class. Thanks for the suggestion, though.


(blogger)

if you haven't read The Code Book by Simon Singh (as I recommended), you'll be surprisingly pleased by its depth. Everyone loves it. It was the book that inspired that spreadsheet; it clearly contains enough info to go and try and implement an Engima machine :) It also covers Lorenz (http://en.wikipedia.org/wiki/Lorenz_cipher) and such. It covers lots of both older and newer systems too, and even has a puzzles section.

If you want more of the human side, "Code Breakers: The Inside Story of Bletchley Park" is a dry non-technical memoirs by a those who were actually there.

I would like to know more about Dilly's attacks on Spanish Enigma - http://www.schneier.com/blog/archives/2012/03/rare_spanish_e... - anyone know a book with any detail? Anything on his earlier work too, even?


Thanks for everyone shabble, fduran and willvarfar's responses; I didn't realize The Code Book's depth and am really excited to see the positive responses here.


Apart from Singh's incredibly famous one, I also quite enjoyed _Colossus: The secrets of Bletchley Park_[1] for technical history.

The autobiography of Leo Marks: _Between Silk & Cyanide_[2] was a good (although I suspect quite heavily dramatised & exaggerated) read about the more human elements and flaws of pen & paper crypto used by the allied resistance groups.

[1] http://www.amazon.co.uk/Colossus-secrets-Bletchley-code-brea...

[2] http://www.amazon.com/Between-Silk-Cyanide-Codemakers-1941-1...


What's the threshold for being considered a programmer, really? For example, I don't consider myself one, even though I have created scripts in PowerShell and Bash.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: