Last modified 12/1/99 --PR
Class home page
You can do this assignment in pairs, but not in groups larger than two.
15.3, 16.2-16.3, 17.1-17.3
Reading on load balancing from HotWired.
Let me review the textbook's notation here for your use in answering the following questions. Label any operation performed by the sender as an "encryption" operation, with a capital E, whether that operation is a signature (using a private key) or an actual encryption (using a public key or a shared key). Any operation performed by the receiver we'll call a decryption operation, with a capital D, whether that operation is verifying a signature or actually decrypting a message. The subscrip will indicate whose key is used and, for public key systems, whether it is the public or the private part of the key pair that is used. For example EASK(M) is encryption of the message M using Alice's secret key: this creates a signature on the messaage M.
"Simon says" is a children's game played in the United States. A leader stands at the front and speaks commands like:
Everyone in the audience is supposed to follow the leader's commands, but only if it is prefaced by "Simon says". Anyone who fails to follow commands 1-3 loses the game. Anyone who does follow command 4 loses the game.
Our version is a little different, so pay attention. The userID "Simon" initially has Simon privileges. You should follow any instruction that is signed by Simon's key. An instruction will tell you one or more of the following:
First, download the zipped file and unzip it in a directory accessible to you from your UNIX prompt. You should have the following files:
keys.txt pgpdoc1.txt pgpdoc2.txt simon1.txt simon2.txt simon3.txt simon4.txt simon5.txt simon6.txt simon7.txt simon8.txt simon9.txt simonkey.txt
You should initially trust that the key in simonkey.txt is associated with the initial userID "Simon". Here's some further information about the key:
Type bits/keyID Date User ID
pub 1024/9B9A2E39 1998/01/20 Simon
Key fingerprint = B1 AA
26 20 BD F6 78 12 BF 0F E1 16 74 AB 45 C6
To be really safe, you should check this against the "key fingerprint" I wrote on the whiteboard in class. That way, you can be sure that one of your classmates has not broken into the web server and changed this document to make her own key appear to be Simon's. One semester someone impersonating Simon made all the students write that they disliked the professor of SI540 and you certainly wouldn't want to say something like that by mistake. (Actually, I forgot to put this information up on the whiteboard in class, so you'll have to take risk that the fingerprint listed in this file is correct.)
You will need to add the Simon key to your ring and certify that the key really belongs to the user "Simon". To initiate this command, type:
login% pgp -ka simonkey.txt
If prompted, you should tell PGP not to treat Simon as an "ultimately trusted introducer", which is a status reserved for your private key. You should, however, indicate that you always trust Simon to introduce other people's keys to you (this is analogous to saying that you trust Simon as a CA).
By the way, the relevant portion of the PGP documentation for understanding the relationship between certification, trust, validity, and introducers is titled "How Does PGP Keep Track of Which Keys are Valid?". In briefYou will need to add keys from the keyring file, keys.txt. The file is signed with Simon's key, so first decrypt it:
login% pgp keys.txt
You may be prompted to add the keys to a keyring. If not, you'll need to separately add them to a keyring:
login% pgp -ka keys.txt [keyring]
Next, take a look at the 9 instruction files. Based on what's in them, and whether you think they're valid according to Simon's instructions, decide what text to include in the homework you turn in. For each of the 9 instruction files, say why you ignored it or followed its instruction.
Explain the idea of public-key encryption to someone else, making sure to explain what's public about it.