KevsRobots Learning Platform


14% Percent Complete


What you'll learn in this course

By Kevin McAleer,    3 Minutes

Course Image

In this course you will learn about OctaPi and how to crack the Enigma machine using Python, a bunch of Raspberry Pi’s and a little bit of parallel computing.


  • Objective: Learn about OctaPi and use it, alongside Python, to crack the Enigma machine.
  • Key Component: OctaPi, a Raspberry Pi cluster designed for teaching parallel computing.

Encrypt with Py-Enigma

  • Focus: Installation and use of Py-Enigma, a Python package for Enigma machine encryption and decryption.
  • Enigma Machine Background: Detailed history and mechanics of the Enigma machine, including its components like rotors, plugboard, and reflector.
  • Practical Application: Steps to install py-enigma and examples to encrypt messages using Python.

Decrypting a Message

  • Instruction: How to reverse the encryption process using Py-Enigma to decrypt messages.
  • Example: Detailed Python code showcasing decryption with specific rotor, reflector, ring settings, and plugboard settings.

Encrypt Longer Messages

  • Explains the process of encrypting longer messages and the significance of replacing spaces with “X” as the Enigma machine lacked a spacebar.
  • Demonstrates Python code to encrypt and format messages for transmission, adhering to historical accuracy.

Brute Force Decryption

  • Concept: Introduction to brute force attacks as a method to crack encrypted codes by trying all possible combinations.
  • Application: Detailed approach to apply brute force to find correct Enigma machine settings using known plaintext (crib).

Parallelization with DisPy

  • Introduction to DisPy: Explains how to use the DisPy package for distributing Python code across multiple machines.
  • Advantages: Discusses the benefits of parallel computing, including speed, scalability, and fault tolerance.
  • Setup and Usage: Instructions on installing DisPy, setting up a cluster, and example code to distribute computational tasks.

Cracking Enigma with OctaPi

  • Practical Implementation: Guides on setting up an OctaPi cluster using Docker and cracking the Enigma cipher with parallel computing.
  • Python Example: Provides a Python script to perform a brute force decryption across a Raspberry Pi cluster, highlighting the efficiency and effectiveness of parallel computing in solving complex problems.

Overall, the course not only educates on the theoretical and practical aspects of parallel computing using Raspberry Pi clusters but also delves into the historical context and technical intricacies of the Enigma machine, providing a comprehensive learning experience through hands-on examples and real-world applications.

What is OctaPi?

OctaPi is the name for a Raspberry Pi Cluster that is used to teach students about parallel computing. This course will teach you how to build and program your own OctaPi cluster. You will learn how to install the software, and write programs that can run in parallel on the cluster.

This course introduces the concept of parallel computing using a Raspberry Pi cluster, referred to as OctaPi, and applies this knowledge to crack the Enigma machine cipher, a task historically significant due to its impact on World War II. The course is structured into lessons that sequentially build your understanding and skills in both computing and historical encryption methods.

Next >