Cryptography II
VCSG-706
Spring 2012

Assignment 1, due Monday, March 26

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:


Assignment 2, due Wednesday, April 11

Part I

The goal of this exercise is to explore experimentally the structure of cyclic multiplicative subgroups in Zp, Zp2, and GF(p2), for p=131.

  1. 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).
  2. 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).
  3. 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:

Part II

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.


Assignment 3, due Wednesday, April 25

Some exercises on elliptic curves.

  1. Solve exercise 6.13 page 278.
  2. Solve exercise 6.16 page 279.
  3. Solve exercise 6.17 page 279.
  4. Solve exercise 6.18 page 279. In (a) show the intermediate values of variables.

  5. 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


Assignment 4, due Wednesday, May 9

NAF

  1. Solve exercise 6.19 page 279* (for volunteers, extra credit).

Digital signatures

  1. Solve exercise 7.1 page 318.
  2. Solve exercise 7.6 page 319.
  3. Solve exercise 7.7 page 319.
  4. Solve exercise 7.9 page 320.
    In the SHA-3 competition NIST requested that the new hash has to be 0-preimage resistant.
  5. Solve exercise 7.13 page 320.


Student presentations, May


Final exam, Wednesday, May 23, 6-8pm, 76-1155


Back to the course page