# Popular demonstration of cryptographic tools

I'm looking for an activity for highschoolers/college-freshmen that will demonstrate crypto topics (e.g., encryption, signatures, zero-knowledge), and will be fun and motivating. It is supposed consist of small tasks that the audience can do by themselves (=no complicated math).

I vaguely remember seeing a website with suggestions for such activities, but I cannot find any information now. Any suggestions / ideas?

• Welcome to Computer Science Educators. You've found the right community :) Do these kids have any programming background? Or is this just a general population?
– Ben I.
Commented Jan 19, 2018 at 20:10
• @BenI. general population, high school math can be assumed. Commented Jan 19, 2018 at 22:11
• Have you looked at Khan Academy's offering? Commented Jan 21, 2018 at 21:56
• There are two zero-knowledge demonstrations, "Two balls and the color-blind friend" and "Ali Baba's Cave," described in the relevant Wikipedia article. The first can be easily demonstrated in a classroom. en.wikipedia.org/wiki/Zero-knowledge_proof Commented Mar 5, 2018 at 19:22
• @Buffy It's impossible to write a tag wiki until the edit to create the tag has been accepted. Commented Mar 9, 2018 at 15:09

There are some engaging lessons on encryption in Unit 4 of the AP Computer Science Principles curriculum from Code.org. Lessons 5, 6 & 7 take students from the concept of encryption using a caesar cypher, to a vigenere cypher, and then through the concepts of public key encryption. Students usually have fun with the widgets that interactively demonstrate the caesar cypher (https://studio.code.org/s/csp4/stage/5/puzzle/2 ) and vigenere cypher (https://studio.code.org/s/csp4/stage/6/puzzle/2 ). There are lesson plans with student worksheets and videos that support and extend the ideas the students are exposed to when they play with the widgets (https://curriculum.code.org/csp/unit4/ ). The materials are free to access.

• Welcome to Computer Science Educators! It would be preferable to include some of the examples from the resources you refer to in your answer. Commented Jan 22, 2018 at 15:55

I thoroughly recommend Cryptool2. It's an open-source GUI where you can drag and drop different algorithms, inputs and outputs and see the results in real time.

It can be used to show very basic caesar cypers to customizing advanced encryption and hashing techniques.

• Welcome to Computer Science Educators. Take a look around, I expect you'll find lots of places to contribute. :)
– Ben I.
Commented Jan 24, 2018 at 17:46

Have you considered a practical example like teaching PGP email encryption?

Keybase.io has a browser based crypto solution for doing encryption / decryption and while I don't recommend for "real" crypto, it is a great convenience tool for showing how public/private key encryption works without the need to address pgp tools installed on a machine or access to a key server.

An example lesson based scenario would look like:

1. Explain the basics of PGP and Key based Cryptography - the "Art of the Problem" video linked elsewhere on the answers I agree is the definitive explanation of the Diffie-Hellman Key Exchange theory. This should be sufficient to work practically with encrypting /decrypting with PGP.
2. Students create a set of keys: public key for sharing, private key for keeping.
3. Students share their public keys in a place where everyone can see them and know who's is who's. This is where Keybase would be useful, but you could also just put them all in a public gist or paste bin. It is safe to share a public key.
4. Students can now use the public keys to send messages to each other and publish the encrypted messages in another public place (same pastebin, eg) or via email.

Some interesting activities and discussions:

• How can I decrypt a message meant for me?
• What happens if I take a message encrypted for someone else and use my private key to decrypt?
• What practical use cases could this type of encryption (key exchange) solve? (TLS/SSL probably the easiest reach).
• What challenges does this type of technology create for law enforcement and regulators to protect against fraud or other nefarious activities (terrorism, money laundering, etc). How can this type of activity improve the transparency and accuracy of information (PGP signatures of code commits on open source projects, eg). If there are both nefarious and good uses of this technology, how do you decide if it should be legal, or illegal to use it?
• Welcome to Computer Science Educators! This answer is wonderful. If you can give an explanation\example regarding this tool from a teaching perspective, it would be considerably better. Either way, welcome. I sure hope we'll see more quality content from you :) Commented Mar 5, 2018 at 18:22
• Sure, I can expand the answer. Commented Mar 5, 2018 at 18:25

When it comes to explaining asymmetric cryptography, I've seen an incredibly simple yet potent analogy used time and time again. This analogy can be found in this Art of the Problem video around 2:40.

This simple example could easily be done in the classroom, and can explain the basic principles of asymmetric cryptography without the usual requisite mathematics background.

• I would love to upvote this; it's probably a great answer! But it brings up one very important housekeeping issue. Can you describe enough of the approach so that, even if the link goes dead, this answer won't also go dead? (There is an "edit" link just under your answer that you can use.)
– Ben I.
Commented Jan 23, 2018 at 19:00
• Welcome to Stack Exchange. This is a question and answer site, not a link collection. Please take a minute to familiarize yourself with how to answer. “There's an answer in this video” is not an answer. Commented Jan 24, 2018 at 8:00