CryptoMessageInABottle/PublicSecretCrypto
Georges 022cd79bee added/changed instructions after the event experience 2017-11-13 18:19:53 +01:00
..
PubliSecretKeyLockPrototype.jpg Pictures of material and prototype 2017-10-22 19:27:40 +02:00
README.md added/changed instructions after the event experience 2017-11-13 18:19:53 +01:00

README.md

Build a mechanical representaiton of encryption and signing via public/secret key systems

Inspired from https://blog.vrypan.net/2013/08/28/public-key-cryptography-for-non-geeks/ create a lock with 2 keys of which one can only unlock and the other can only lock

There are 2 lock cylinders, as can be found on normal doors, located in a padlock style device. It allows to close a box, envelope or be attached to items. The first trials with a prototype were a success. People are amazed.

How to run this workshop

Asymetric cryptography adresses the problem of key transmission.

You have a public key which everyone knows and a secret key which only the reciever knows.

The keys are generated by the reciever who then publishes the public key in a "phonebook"

Introduction

  • explain that in 1977 matematicians deviced an algorithm which only goes one way. The representation for this is the one way locking cylinder. Give the cylinder to people to try. This is the whole secret behind asymetric encryption systems. With one key you can only go in one direction, and never back.

  • show the padlocks with the 2 locks. One cylinder goes one way, the other the other way.

  • Chose kids (or groups of kids) who play Alice and Bob

  • There are 3 Alice padlocks and 3 Bob padlocks

  • The exercise can be done 6 times, by sending 3 messages from Alice to Bob and 3 from Bob to Alice. But this may complicate the explanations. In the following, only the direction Alice to Bob will be detailed.

Encryption

  • Bob wants to recieve encrypted messages. He creates keys. One secret and several public. Put the public keys on the table. Glue the secret key (on a chain) to Bob's side of the table. Insiste that the secret key should never be given to anyone.

  • Alice wants to send Bob a secret message and puts it in an envelope. close the envelope by using the padlock and public key.

    • but which key to use? Remember, the keys are created by the reciever. So we need to use Bob's public key.
    • insist that the padlocks and public keys are accessible to anyone. Only the secret keys are... secret
  • Bob recieves the envelope, and can unlock the padlock with his secret key.

    • he is happy for the message
    • but who wrote it? It says Alice, but anyone could write that, then use Bob's public key and send it to him

Signing

  • Alice wants to prove that the message comes from her.
    • She generates a secret key and public keys. The public key go on the table. The secret is chainde to her position on the table.
    • Show that the padlocks have a second function. If you use the secret key first.
    • Alice writes her message, then attaches a padlock to it and closes it with her secret key. only she has that key. So she is the only one who is able to close the padlock that way.
    • Alice puts the message with the padlock-signature into a box and encrypts it with the reciever's (Bob) public key.
    • Bob recieves the box, and opens it (decrpyt) with his secret key
    • He sees the message with Alice signature
    • He can now verify the signature with alice's public key. But who is Alice? Who made that key? So many people are called Alice!
    • But where does this public key of Alice come from? How do we know it's Alice? Can be anyone...
    • One could explain that it's technically possible to sign, making the message unreadable (but easily made readable with the public key) or to sign by leaving the message in clear text.

Certification authorities

  • Transform one or two padlocks into Cert padlocks (change cylinders and stickers)
  • You can verify a signature, but for that you need a public key. Anyone in the world coud say "I am Alice, here is my key". So we are back to starting square.
    • Some higher instance needs to prove that the public key is the one of Alice. That is called a certification authority.
    • Alice takes her passpoer and public key and goes to the certification authority.
    • The certification authority signs the public key. This creates a certificate. It certifies that the CA has seen Alice and that it's really her key.
    • Demonstrate by attaching the CA's padlock using the CA's secret key (signing) to alice's public key (not to her padlock)
    • This certificate is put into the Internet (put it on the table)
    • Bob takes the certificate and uses the CA's public key to verify it's valid.
    • Being sure of Alice's public key, he now verifies her signature by unlocking the lock on the message and can be sure that the signature is by the true Alice.
    • It works! So that proves that the message comes from her.

Certificate chains

* But who signs the certification authority's public key?
* another certification authority, and so on... at some point you need to trust some authority. 
* Demonstrate by attaching another padlock-signature to the CA's public key. => "keychain"
* Web browsers come with built-in certification authorities which the browser trusts. That's how the websites prove that they are who they say. Show a webbrowser's CA list.
* Show how a website's certificate is signed by a row of CAs.

securing the secret key

* The secret key is secured in an envelope by attaching a combination code padlock. And the code is put in your head.