CS 4363 -- Cryptography
Final Exam
Wednesday, 7 May 2002, 8 am - 10:15 am
Part I: RSA Cryptosystem
- In detail, give the steps needed to create an instance of RSA,
assuming encryption exponent 3. At the end, explain what the
following are: the encryption function,
the decryption function, the
public key, and the private key.
Assume that Alice and Bob have RSA key pairs
(EA, DA), and
(EB, DB), where
E is the encryption key (= algorithm)
and D is the decryption key.
- Explain how Alice makes a message m
secret and sends it to Bob and how Bob recovers
the message.
- Explain how Alice sends Bob a signed message
m and how Bob verifies the signature.
- Explain how Alice could use a secure one-way hash function
to quickly sign an arbitrarily long message.
Part II: Advanced Encryption
Standard
Here is a table of "exponentials" with base 03.
The entry E(rs) is the field element given
by 03rs, where these are hex numbers,
and the initial ``0x'' is left off for simplicity.
| Table of ``exponentials'': E(rs) = 03^rs |
| E(rs) | s |
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f |
| r |
| 0 | 01 | 03 | 05 | 0f | 11 | 33 | 55 | ff | 1a | 2e | 72 | 96 | a1 | f8 | 13 | 35 |
| 1 | 5f | e1 | 38 | 48 | d8 | 73 | 95 | a4 | f7 | 02 | 06 | 0a | 1e | 22 | 66 | aa |
| 2 | e5 | 34 | 5c | e4 | 37 | 59 | eb | 26 | 6a | be | d9 | 70 | 90 | ab | e6 | 31 |
| 3 | 53 | f5 | 04 | 0c | 14 | 3c | 44 | cc | 4f | d1 | 68 | b8 | d3 | 6e | b2 | cd |
| 4 | 4c | d4 | 67 | a9 | e0 | 3b | 4d | d7 | 62 | a6 | f1 | 08 | 18 | 28 | 78 | 88 |
| 5 | 83 | 9e | b9 | d0 | 6b | bd | dc | 7f | 81 | 98 | b3 | ce | 49 | db | 76 | 9a |
| 6 | b5 | c4 | 57 | f9 | 10 | 30 | 50 | f0 | 0b | 1d | 27 | 69 | bb | d6 | 61 | a3 |
| 7 | fe | 19 | 2b | 7d | 87 | 92 | ad | ec | 2f | 71 | 93 | ae | e9 | 20 | 60 | a0 |
| 8 | fb | 16 | 3a | 4e | d2 | 6d | b7 | c2 | 5d | e7 | 32 | 56 | fa | 15 | 3f | 41 |
| 9 | c3 | 5e | e2 | 3d | 47 | c9 | 40 | c0 | 5b | ed | 2c | 74 | 9c | bf | da | 75 |
| a | 9f | ba | d5 | 64 | ac | ef | 2a | 7e | 82 | 9d | bc | df | 7a | 8e | 89 | 80 |
| b | 9b | b6 | c1 | 58 | e8 | 23 | 65 | af | ea | 25 | 6f | b1 | c8 | 43 | c5 | 54 |
| c | fc | 1f | 21 | 63 | a5 | f4 | 07 | 09 | 1b | 2d | 77 | 99 | b0 | cb | 46 | ca |
| d | 45 | cf | 4a | de | 79 | 8b | 86 | 91 | a8 | e3 | 3e | 42 | c6 | 51 | f3 | 0e |
| e | 12 | 36 | 5a | ee | 29 | 7b | 8d | 8c | 8f | 8a | 85 | 94 | a7 | f2 | 0d | 17 |
| f | 39 | 4b | dd | 7c | 84 | 97 | a2 | fd | 1c | 24 | 6c | b4 | c7 | 52 | f6 | 01 |
Similarly, here is a table of ``logarithms'', where the entry
L(rs) is the field element that satisfies
rs = 03L(rs), where these are hex numbers,
and again the initial ``0x'' is left off.
| Table of ``logarithms'': rs = 03^L(rs) |
| L(rs) | s |
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f |
| r |
| 0 | | 00 | 19 | 01 | 32 | 02 | 1a | c6 | 4b | c7 | 1b | 68 | 33 | ee | df | 03 |
| 1 | 64 | 04 | e0 | 0e | 34 | 8d | 81 | ef | 4c | 71 | 08 | c8 | f8 | 69 | 1c | c1 |
| 2 | 7d | c2 | 1d | b5 | f9 | b9 | 27 | 6a | 4d | e4 | a6 | 72 | 9a | c9 | 09 | 78 |
| 3 | 65 | 2f | 8a | 05 | 21 | 0f | e1 | 24 | 12 | f0 | 82 | 45 | 35 | 93 | da | 8e |
| 4 | 96 | 8f | db | bd | 36 | d0 | ce | 94 | 13 | 5c | d2 | f1 | 40 | 46 | 83 | 38 |
| 5 | 66 | dd | fd | 30 | bf | 06 | 8b | 62 | b3 | 25 | e2 | 98 | 22 | 88 | 91 | 10 |
| 6 | 7e | 6e | 48 | c3 | a3 | b6 | 1e | 42 | 3a | 6b | 28 | 54 | fa | 85 | 3d | ba |
| 7 | 2b | 79 | 0a | 15 | 9b | 9f | 5e | ca | 4e | d4 | ac | e5 | f3 | 73 | a7 | 57 |
| 8 | af | 58 | a8 | 50 | f4 | ea | d6 | 74 | 4f | ae | e9 | d5 | e7 | e6 | ad | e8 |
| 9 | 2c | d7 | 75 | 7a | eb | 16 | 0b | f5 | 59 | cb | 5f | b0 | 9c | a9 | 51 | a0 |
| a | 7f | 0c | f6 | 6f | 17 | c4 | 49 | ec | d8 | 43 | 1f | 2d | a4 | 76 | 7b | b7 |
| b | cc | bb | 3e | 5a | fb | 60 | b1 | 86 | 3b | 52 | a1 | 6c | aa | 55 | 29 | 9d |
| c | 97 | b2 | 87 | 90 | 61 | be | dc | fc | bc | 95 | cf | cd | 37 | 3f | 5b | d1 |
| d | 53 | 39 | 84 | 3c | 41 | a2 | 6d | 47 | 14 | 2a | 9e | 5d | 56 | f2 | d3 | ab |
| e | 44 | 11 | 92 | d9 | 23 | 20 | 2e | 89 | b4 | 7c | b8 | 26 | 77 | 99 | e3 | a5 |
| f | 67 | 4a | ed | de | c5 | 31 | fe | 18 | 0d | 63 | 8c | 80 | c0 | f7 | 70 | 07 |
- Use the above tables to calculate (22)*(7e).
- Show how 22 and 7e
are represented as polynomials. Show the steps necessary to
multiply them as field elements, using the "magic" polynomial
m(x) = x8 + x4 +
x3 + x + 1, without actually carrying
out the operations.
- In the simplest version of the AES, what are the sizes of:
the key, the plaintext, and the
ciphertext? What are the number of rounds in
the AES algorithm (again shortest version)?
- What is a secure one-way hash function?
How can the AES be used to provide such a function?
(Unless the AES gets broken somehow.)
Part III: Threshold Schemes
- Give the definition of a (3, 3)-threshold scheme.
- What does it mean for such a scheme to be perfect?
- Show how to use sources of true random bits and exclusive-or
to create a perfect (3, 3)-threshold scheme.
- Give the definition of a (3, n)-threshold scheme.
What must be true about the number n?
- In Shamir's scheme, if the "secret" is 47 and you want
a (3, 10)-threshold scheme, show how you would construct it
(but not how your would recover the secret, which is more
elaborate).
Part IV: Verification
Protocol
Protocol. A and B verify
that they possess a common key K, using a
public one-way function h.
- A sends h(h(K)) to B.
- B verifies that the received value is correct.
- B sends h(K) to A.
- A verifies that the received value is correct.
|
|
- What is a one-way function?
- Why not have A send h(K)
to B
and then have B send h(h(K))
to A?
- What keeps C from intercepting A's
transmission of h(h(K)) and
then sending h(K)
back to A (assuming C doesn't
know K)?
Part V: Zero Knowledge
Scheme
- Steps i. to iv. resemble another protocol that we studied.
What is it, and what is it used for?
- If the S that A uses
is the same as the S that B
uses, how do you know that the K's
calculated by A and
B will be the same.
- Suppose A is a computer user, and suppose
B is the computer system that A uses.
What could the shared secret S be and
how might one use this protocol?
Note: A and B can convince one
another that they share the same secret S, but
if B doesn't know A's secret,
it will not be revealed.