Practical Cryptology

advertisement
Practical Cryptology
Assignment 4
Due Day: Monday, May 1, 2006, in class
NO LATE ASSIGNMENTS!!
Problem 1 (20 points):
For the given sequence: 4, 8, 15, 29, 61, 125, 247, 500 (Problem 3, p. 273).
1. prove that the given sequence is superincreasing
2. choose the p = 1009 and w = 91 to generate the public key
3. use the public key that you just generated to encrypt the plaintext message:
10111001
4. find a multiplicative inverse of w mod 1009
5. decrypt the message that you got in 4 to get an original plaintext
Problem 2 (15 points):
Use the Feistel Function that was defined on page 224 to encrypt the message: MAN
with key = 001
Problem 3 (15 points):
Fk1k2k3(x1x2x3x4) = (x3x4) || (x1x2  fk1k2k3(x3x4))
is a Feistel Function where function fk1k2k3(x1x2) is defined as follows:
fk1k2k3(x1x2) = ((k1*k2*x1 + k1*x2*k2) mod 2)((k1*x1*x2 + k2 *x2) mod2)
Encrypt the following letter: C.
You would need to use ASCII values for the characters. The ASCII table is
on page 64 in your textbook.
Problem 4 (5 points):
Use Fermat's Little Theorem to find:


99^101 ( mod 101 )
94^66 ( mod 67 )
Explain your answer.
Problem 5 (25 points):
For p = 3 and q = 23 perform the required steps to create a public key, encrypt and
decrypt the message of your choice. What is the range limitation for your plaintext in this
case?
Problem 6 (20 points):
We will define the block cipher for 4-bit block as follows: suppose x1x2x3x4 is a
plaintext and k1k2k3 is a key, let
t1t2 = S(x1x2x1  k1k2k3), where function S is defined on page 222 of your textbook
u1u2 = x3x4  t1t2
E(x1x2x3x4, k1k2k3)=u1u2x1x2
The encryption formula will be y1y2y3y4 = E(E(E(E(x,k),k),k),k)
Use this block cipher to encrypt the message can using the keyword 110. You would
need to use ASCII values for the characters. The ASCII table is on page 64
in your textbook.
Download