Whitfield Diffie and Martin Hellman's 1976 paper "New Directions in Cryptography" heralded a huge leap forward for the field of cryptography. The paper defined the concepts of public-key cryptosystems, one-way trapdoor functions, and digital signatures, and described a key-exchange method for securely sharing secrets over an insecure channel. Although these were independently discovered at GCHQ some years earlier, Diffie and Hellman were first to share this landmark knowledge with the world.
Although Diffie and Hellman's paper is legendary in cryptography, it was the RSA algorithm described a year later which was the first full public-key cryptosystem. This course gets you familiar with this extremely famous cryptosystem and all the concepts described above.
RSA's security is based on the difficulty of factoring large composite numbers, still considered a "hard problem", but in recent years the cryptosystem has received criticism for how easy it is to implement incorrectly. Major flaws have been found in common deployments, the most notorious of these being the ROCA vulnerability which led to Estonia suspending 760,000 national ID cards.
Our challenges first introduce you to the many footguns of RSA, and soon see you performing attacks which real software has been vulnerable to. Next, you look at Diffie-Hellman key exchange and explore how the core problem behind it, the discrete logarithm, differs from RSA factorisation. The course concludes with you performing man-in-the-middle attacks on two people trying to exchange encryption keys.
Category | Challenge | Points | |
RSA - Starter | Modular Exponentiation | 10 | |
RSA - Starter | Public Keys | 15 | |
RSA - Starter | Euler's Totient | 20 | |
RSA - Starter | Private Keys | 20 | |
RSA - Starter | RSA Decryption | 20 | |
RSA - Starter | RSA Signatures | 25 | |
RSA - Primes Part 1 | Factoring | 15 | |
RSA - Primes Part 1 | Monoprime | 30 | |
RSA - Primes Part 1 | Manyprime | 40 | |
RSA - Public exponent | Salty | 20 | |
RSA - Public exponent | Modulus Inutilis | 50 | |
Diffie-Hellman - Starter | Working with Fields | 10 | |
Diffie-Hellman - Starter | Generators of Groups | 20 | |
Diffie-Hellman - Starter | Computing Public Values | 25 | |
Diffie-Hellman - Starter | Computing Shared Secrets | 30 | |
Diffie-Hellman - Starter | Deriving Symmetric Keys | 40 | |
Diffie-Hellman - Man In The Middle | Parameter Injection | 60 | |
Diffie-Hellman - Man In The Middle | Export-grade | 100 |
You are now level Current level