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

Breaking The Enigma → php[tek]

Breaking The Enigma → php[tek]

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. All in live code!

Christopher Pitt

May 27, 2016
Tweet

More Decks by Christopher Pitt

Other Decks in Technology

Transcript

  1. SUM of all parts ▸ cpu ▸ ram ▸ hard

    drive ▸ keyboard, mouse, network
  2. SUM of all parts ▸ cpu ▸ ram ▸ hard

    drive ▸ keyboard, mouse, network ▸ display, speakers, network
  3. SUM of all parts ▸ cpu hard-coded rules ▸ ram

    ▸ hard drive ▸ keyboard, mouse, network ▸ display, speakers, network
  4. SUM of all parts ▸ cpu hard-coded rules ▸ ram

    1 variable ▸ hard drive ▸ keyboard, mouse, network ▸ display, speakers, network
  5. SUM of all parts ▸ cpu hard-coded rules ▸ ram

    1 variable ▸ hard drive ▸ keyboard, mouse, network ▸ display, speakers, network
  6. SUM of all parts ▸ cpu hard-coded rules ▸ ram

    1 variable ▸ hard drive ▸ keyboard, mouse, network stream of symbols ▸ display, speakers, network
  7. SUM of all parts ▸ cpu hard-coded rules ▸ ram

    1 variable ▸ hard drive ▸ keyboard, mouse, network stream of symbols ▸ display, speakers, network successful completion
  8. $rotor1 = new Rotor( "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "EKMFLGDQVZNTOWYHXUSPAIBRCJ", 1 ); $rotor2 =

    new Rotor( "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "AJDKSIRUXBLHWTMCQGZNPYFVOE", 2 ); $rotor3 = new Rotor( "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "BDFHJLCPRTXVZNYEIWGAKMUSQO", 3 );
  9. A → K → L → V → B →

    A → A → T T → A → A → B → V → L → K → A
  10. STARTING configurations ▸ 3 rotors from a set of 5

    ▸ 26 positions per rotor ▸ plugboard with 10 connected pairs
  11. STARTING configurations ▸ 3 rotors from a set of 5

    ▸ 26 positions per rotor ▸ plugboard with 10 connected pairs ▸ 158,962,555,217,826,360,000
  12. cipher text ! J Y P D O M Q

    N J C O S G A W H L E I H Y S O position 1 ! K E I N E B E S O N D E R E N E R E I G N I S cipher text ! J Y P D O M Q N J C O S G A W H L E I H Y S O position 2 ! K E I N E B E S O N D E R E N E R E I G N I cipher text ! J Y P D O M Q N J C O S G A W H L E I H Y S O position 3 ! K E I N E B E S O N D E R E N E R E I G N