Simulating the Turing-Welchman Bombe With A Pi
Written by Historian   
Saturday, 10 October 2015

If you are looking for a weekend software/hardware project how about buidling your own working replica of that most iconic of machines, the Turing Bombe?  Simon Jensen's reverse engineering project uses C++, a Raspberry Pi and an Arduino.

The Bombe was the electro-mechanical device used by British codebreakers to crack the Enigma codes during World War II.

Over the course of their operation Bletchley Park  210 Bombes helped decode up to 5,000 intercepted message per day. Although attributed to Alan Turing with a refinement later added by Gordon Welchman, the initial design came from Polish cryptographers who handed over copies of the Enigma machines together with details of their "bomba kryptologiczna" prior to the German invasion of Poland. 

At the end of the war all the Bombes were dismantled.

However a fully-functioning replica was completed in 2007 and is on display at Bletchley Park as shown in this video:

 

You'll notice that this replica is big, occupying quite a lot of floor space. By contrast Simon Jensen's simulator is small and sits neatly on a table top. Nevertheless it provides a neat demonstration of how the Bombe worked, as explained in this video.

 

 

Prior  to embarking on the Bombe, Jensen had  built a three-rotor Enigma machine wrist watch - a fully functioning version of the type of machine used by German Wermacht in WW2 for encoding messages.

On his Asciimation website Jensen has provided details of both projects and his post announcing Turing-Welchman Bombe completed he writes:

My Turing-Welchman Bombe machine makes use of some software I wrote in C++ running on a Raspberry Pi 2. I figured out for myself how the Bombe worked then wrote my own software version, initially in BASIC of all things to run on my homemade 6502 computer Orwell. With the general algorithm worked out I ported it to C++.

The Raspberry Pi 2 connects to an Arduino which then drives three stepper motors, via driver boards, to turn the three indicator drums on the front of the machine. These drums mimic the three indicators on the real Bombe. The Arduino reports back the position of the drums to the Pi as a series of pulses then the Pi can tell the drums when to stop. An LCD screen on the side of the machine mimics the original Bombe mechanical indicator unit as well as providing a basic user interface. Start and Stop button are provided on the front of the machine as on the real Bombe.

The machine runs in real time (although the next stop is pre-calculated) so a Bombe run should take the same amount of time as a real Bombe run at Bletchley Park.

He goes on to provide details of the casing.

 

bombeproj

 

If you are interested in the the way the project unfolded there is a 10-part set of posts covering the entire build which was started in June. This video comes from early in the project:

 

 

Jensen also offers to share his C++ code with other enthusiasts!

 

More Information

Asciimation

Turing-Welchman Bombe completed

Archive for the 'Turing-Welchman Bombe' project

Related Articles

Codebreaking and Colossus

GCHQ Builds A Raspberry Pi Cluster

 

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

 

Banner


.NET 9 Released
18/11/2024

.NET 9 has been released with a number of performance improvements and new features designed to help developers use AI.



IBM Updates Granite Models
28/10/2024

IBM has released new Granite models that it says provide state-of-the-art performance relative to model size. The Granite 3.0 collection includes a new, instruction-tuned, dense decoder-only LLM.


More News

 

espbook

 

Comments




or email your comment to: comments@i-programmer.info

 

 

 

 

Last Updated ( Saturday, 22 September 2018 )