## Public-Key Cryptography

### Overview

intermediate
RSA
Diffie-Hellman

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.

• Public key encryption enables a user, Alice, to distribute a public key and others can use that public key to encrypt messages to her. Alice can then use her private key to decrypt the messages.
• Digital signatures enable Alice to use her private key to "sign" a message. Anyone can use Alice's public key to verify that the signature was created with her corresponding private key, and that the message hasn't been tampered with.

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.

11457 Players Solving
2335 Players Completed
550 Points to Earn

### Contents

 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

### Level Up

You are now level Current level