Cryptography II
VCSG-706
Spring 2013
Assignment 1, due Monday, March 18
Decrypt the ElGamal
ciphertext from the table 6.3 page 278.
The parameters of the system are p = 31847 = 1 + 2*15923 (15923
is prime), alpha=5, a=7899
and beta=18074. Each element of Zp represents three
alphabetic characters as in Exercise 5.12 page 227.
You may use parts of the code from previous quarter assignments.
What are the secret values of parameter k used for encryption?
Use both Shanks' algorithm and brute force (for verification) to find them.
Note, that k's are not needed for the decryption (In this
toy example they can be found with the help of any discrete logarithm
algorithm). Find the first 30 values of k.
Submit the following:
- brief explanations what you did
- hardcopy of the source code of your programs
- original plaintexts
- list of recovered values of k
Assignment 2, due Wednesday, April 3 (extended to Monday, April 8)
Part I
Solve by hand exercises 6.10 and 6.11 page 277.
Some software for checking can be used but the point
of this exercise is to discover the details of the
computational steps.
Part II
The goal of this exercise is to explore experimentally the structure
of cyclic multiplicative subgroups in Zp,
Zp2, and GF(p2), for p=127.
-
Use naive algorithm to compute orders of all elements in
Z*p. Identify all primitive elements,
and find the number of elements of each order.
Show a complete isomorphism from (Z*p,*) to
(Zp-1,+) using the smallest primitive element
(i.e. simply list all powers of this generator in order).
-
Use naive algorithm to find the number of elements
of each order in Zp2,
and list 15 smallest primitive elements. Illustrate
the computations of discrete logarithm of 103 in Zp2
with base equal to the smallest primitive element (generator) using
Pohlig-Hellman algorithm (similarly to example 6.4 p. 243).
-
First show that (x2+1) is irreducible in
Zp[x]. Next, represent GF(p2)
by polynomials modulo (x2+1). Use naive algorithm
to find the number of elements of each order in
GF(p2), and list 15 smallest monic primitive (generators
with coefficient 1 in the highest degree term) elements.
Illustrate the computation of discrete logarithm of (x+101) with base
equal to the smallest such generator using Shanks' algorithm.
algorithm.
Submit the following:
- printed data as requested in 1, 2 and 3 above
- explanations what you did for each item
- hardcopy of the source code of your programs
(only new ones written for this assignment)
Assignment 3, due Monday, April 22
Some exercises on elliptic curves.
- Solve exercise 6.13 page 278.
- Solve exercise 6.16 page 279.
- Solve exercise 6.17 page 279.
- Solve exercise 6.18 page 279.
In (a) show the intermediate values of variables.
- Proving associativity of point addition on elliptic curves is
quite complicated. In this exercise you will do just a special
case of it. Suppose that points P=(p1,p2) and Q=(q1,q2), p1 not equal to q1,
are on an elliptic curve E (either real or modular).
It is obvious that ((-P) + P) + Q = Q.
Prove that (-P) + (P + Q) = Q by
- using geometric reasoning on the plane
- using only algebraic transformations defining point addition
Assignment 4, due Friday, May 10
NAF
- Solve exercise 6.19 page 279* (for volunteers, extra credit).
Digital signatures
- Solve exercise 7.1 page 318.
- Solve exercise 7.6 page 319.
- Solve exercise 7.7 page 319.
- Solve exercise 7.9 page 320.
In the SHA-3 competition NIST requested
that the new hash has to be 0-preimage resistant.
Student presentations: 4/29, 5/1, 5/6, 5/8
Final exam, Monday, May 13, 6-8pm, 70-2455
Back to the course page