Homework #2
| Assigned: |
24 April 2003 |
| Due: |
Friday, 2 May 2003 at 11:59 PM |
Please read the homework guidelines for information
about how to work on the assignment and how to submit it.
- Problem 4.3 in Stallings.
- Problem 5.1 in Stallings.
- [Problem 5.3 in Stallings] Each entry in the PGP public key ring contains
an owner trust field that indicates the degree of trust associated
with this public key owner. Why is that not enough? That is, if this
owner is trusted and this is supposed to be the owner's public key,
why is that not trust enough to permit PGP to use this public key?
- For this problem, you're going to need to learn how to use PGP or GPG.
You can install a free GPG client if necessary, or you can use a PGP client—they're
interoperable (to some extent...).
- Create a public / private key pair for yourself using DSA and
El-Gamal. Submit the public key to the MIT key server (http://pgp.mit.edu/).
- Email a (short) signed message to elm@cs.ucsc.edu and lanxue@cs.ucsc.edu.
Include the phrase "CMPS 122" in the subject. This message
should not be encrypted, but must be signed by your private key.
- In a public key system using RSA, you intercept the ciphertext C=10
sent to a user whose public key is e=5, n=35. What is
the plaintext
M? You need to
explain how you got your answer, and include in your answer any simple
program(s) that you might have written.
- In a public key system using El Gamal, you have intercepted a ciphertext C={515,18}
sent to a user whose public key is <y=423,g=23,p=613>.
What is the plaintext message M, and the user's private key x?
HINT: you might want to write a simple program that computes
modular exponentiation, and incorporate into your brute-force algorithm.
If you do this in the naive way (gx MOD p)
on a calculator, you won't have sufficient accuracy. Instead, write
a small piece of code that does a single multiply mod p and
repeats this x times.
Also, remember that (a/b) MOD m = c means
that (b * c) MOD m = a. You need to
explain how you got your answer, and include in your answer any program(s)
that you might have written.
|