(please note that only this page is translated)
After some standby the ArduinoAfternoon group is back.
For the centenary of Turing (June 23, 2012) we decided to build something related to the Bletchley Park effort during WWII. We created a simplified Enigma machine using Arduino, we connected it to the Internet and now it's available online to be “cracked”.
How the original Enigma works.
The physical device is on display at our University lab.
“Enigmaduino” is online at enigmaduino.silab.dsi.unimi.it on port 571. Please do not use a browser since Enigmaduino does not use HTTP.
On Windows: use netcat for Windows.
If you connect without writing anything (just a CR) you'll get the current encrypted message.
The cleartext message is programmed from the outside periodically (see below).
Your goal is to find a RIPRODUCIBLE method to get the celartext message. It's not enough to guess a single message out of luck, you should create a technique to crack every message, as they did in Bletchley Park during WWII.
If you want to try and guess you just enter your cleartext and Enigmaduino will answer telling you if you got right.
Example (prompt GNU/Linux):
$ echo myproposedsolution | nc enigmaduino.silab.dsi.unimi.it 571
If you succeed in devising a technique you can come at the workshop and present your work to the audience. We just require that all material (texts, presentations, source code) must be distributed under a free licence.
The cleartext message is programmed from the outside periodically (10 minutes), with a script:
#!/bin/bash # gets a tweet, no timestamp, no author RIGA=$(echo '/search XXXXXXXXXXXX'|ttytter -script -anonymous -sync |tail -n 1|cut -f2 -d'>') RIGAFILTRATA=$(echo $RIGA|tail -n 1|tr -dc '[[:alpha:]]'|tr '[[:upper:]]' '[[:lower:]]'|cut -c-60) echo adminpassword$RIGAFILTRATA|nc enigmaduino.silab.dsi.unimi.it 571
I.e., a tweet (you may guess what's the hashtag) is extracted, filtered (only lowercase alpha chars), cut to 60 chars (we had problems in Arduino over 60 chars) and programmed into the Enigmaduino.