Cryptography - Securing the Internet

This lesson focuses on the modern cryptographic systems that are used to secure the Internet. It describes how the Diffie-Hellman algorithm solves the key exchange problem, a crucial step in making the Internet possible. Without the ability to securely exchange secret keys, it would be impossible to conduct financial transactions over a network. As we shall see, it is the intractability of solving a certain one-way math function that makes Diffie-Hellman possible.

It also describes the Rivest-Shamir-Adleman (RSA) public key algorithm. In this case we'll see that it's the intractability of the prime factorization problem that makes RSA possible.

The lesson concludes by describing the handshake that takes place between your browser and a web server whenever a secure transaction is involved. Secure transactions include accessing a Web page through the HTTPs protocol. Or exchanging information through the Internet's Secure Socket Level (SSL). As we will see both symmetric and public key algorithms are used in this process.

The lesson will also describe the Internet's trust model -- i.e., a model that uses digital certificates to ensure that your browser can trust Google or Amazon when their servers share their public keys with the browsers.

The system that guarantees the security of the Internet is an amazingly complex and fascinating system that pulls together many of the concepts we've been studying in this course.

Part 1: Diffie-Hellman Key Exchange (VIDEO)

This video includes video clips from Brit Cruise's excellent explanation of the Diffie-Hellman key exchange algorithm. You may wish to pause the video where suggested to try the hands-on color-mixing demo below.

Activity: Diffie-Hellman Exchange Secret Color Demo

This Web app provides an implementation of the color-mixing analogy presented in the Brit Cruise video. You can select a shared public color and then your own private (secret) color. When you click "Show Shared Secret!" the app will display the secret color that it shares with you.

The app will also give you an opportunity to use the hexadecimal number system that we talked back in Unit 2. Colors are represented in an RGB system -- i.e., by mixing Red (R), Green (G), and Blue (B) primary colors in varying quantities. The mixtures are represented by 6-digit hexadecimal numbers, where the first two digits represent the amount of red, the next two represent the amount of green, and the last two represent the about of blue. For example, pure red is FF0000. In this case FF is the maximum amount of red (equal to 255 in decimal). The hex number 00FF00 would represent pure green. If you mix lots of blue and green, 00FFFF, you should get aqua. If you mix lots of red with some green, FF8500, you should get orange.

Give it a try. Just your hex numbers into the text boxes and click the "Show Shared Secret!" button.

Part 2: RSA and HTTPs (VIDEO)

Reflection

Answers the following questions on Google Classroom:

  1. Explain in your own words how public key encryption is not symmetric.
  2. Cryptography relies on open standards - protocol or standard that is publicly available. Why are open standards necessary?

Posted in apcsp