The Python 🐍 problem-solving bootcamp πŸš€ is starting soon. Join the second cohort now!

Dip your toes in the world of cryptography and cryptanalysis with this gentle introduction to these topics.

The Python 🐍 problem-solving bootcamp is starting soon. Join the second cohort now!

Photo by FLY:D on Unsplash.


The aim of this workshop is to teach basic working knowledge of cryptographic and cryptanalytic concepts, such as basic encoding techniques and basic techniques to crack encoded messages.


This workshop was designed to have people experiment with the concepts they learn:

  1. first they are taught an encryption method and are asked to encrypt small words with it;
  2. then they are taught two techniques to crack messages and are then asked to decode some prepared sentences;
  3. a more advanced method is then taught and explained with as much maths as the audience allows (there is not much maths to it, trust me!);
  4. the audience is then taught a more advanced technique to decypher messages and then applies it to a bigger text message, usually working together.

I have given this workshop many times and the contents can easily be adapted to the age of the audience/their prior knowledge. With younger kids I usually stick to pen and paper and that was how this workshop originally started; with older kids we can use some programming to automate things.

More basic versions of this workshop are suitable for kids as young as 12 but kids with 14 years or more will appreciate the workshop more.

For college-level students or people with more knowledge of programming the basic structure is the same, but we work with more advanced methods.

This workshop ends up being fun because of the engagement one builds with the audience while cracking the messages.

Past sessions

  • On the 1st of March of 2019 I gave this workshop to college students, as one of the activities of the national meetup of physics students.
  • I have given this workshop about 12 times to high-school students in the years 2016, 2017, and 2019 (if memory serves me right).

Previous Post

Blog Comments powered by Disqus.