Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Breaking The Enigma

Breaking The Enigma

Many years ago, the world was at war. The very best minds were focussed on out-smarting the "other side", all without the aid of our modern computational tools.

The key was in communication, and the Nazis had devised a simple and effective way to relay orders to the battlefront. They were using one of the most famous forms of electronic encryption: the Enigma.

Breaking this Enigma was a victory built on the tireless work of many people, not least of all the persecuted and brilliant Alan Turing.

In this talk we will learn how the enigma worked, and how it was broken.

Christopher Pitt

May 21, 2015
Tweet

More Decks by Christopher Pitt

Other Decks in Programming

Transcript

  1. $automaton = new Automaton( 1, // initial state [2], //

    acceptable, final states new Rulebook([ new Rule(1, "a", 1), new Rule(1, "b", 2), new Rule(2, "b", 2), new Rule(2, "a", 1), ]) )
  2. new Rulebook([ new Rule(1, "a", 1), new Rule(1, "b", 2),

    new Rule(2, "b", 2), new Rule(2, "a", 1), ]) Given&the&sequence&ababb: Start%in%state%1 Read%a%and%stay%in%state%1 Read%b%and%move%to%state%2 Read%a%and%move%to%state%1 Read%b%and%move%to%state%2 Read%b%and%stay%in%state%2
  3. $machine = new Machine( [ new Rotor( "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "EKMFLGDQVZNTOWYHXUSPAIBRCJ", 0

    ), new Rotor( "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "AJDKSIRUXBLHWTMCQGZNPYFVOE", 0 ), new Rotor( "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "BDFHJLCPRTXVZNYEIWGAKMUSQO", 0 ) ], new Reflector( "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "FVPJIAOYEDRZXWGCTKUQSBNMHL" ) );