Home  •  Research  •  Résumé (PDF/DOC/TEXT)  •  Teaching  •  Photos  •  FunStuff  •  Contact  •  SPACE 2016

M.Tech. in Information Security
CS6160: Cryptology, Fall2013

Monday 11:30am-12:55pm, Classroom 123
Tuesday 2:30pm-3:55pm, Classroom 123

Instructor: Vishal Saraswat, E-mail: vishal.saraswat@gmail.com
Office Hours: Mondays, 10:00am - 11:15am or by appointment
(Visiting Faculty Room / Server Room)

Course URL: http://www.math.umn.edu/~math-sa-sara0050/teaching/13f/

Feedback Form (Anonymous)

Back to Class Page


End-sem exam is on Monday, 18 November 2013 from 9:00am-11:00am in LH1
Homework 12 and 13 solutions are now available
Homework 9, 10 and 11 solutions are now available
Homework 13 submission deadline is Friday 08-Nov 11:59pm
Homework 12 submission deadline is Sunday 03-Nov 11:59pm
Slides updated (Covers lectures upto 08-Oct and HW 11).
Homework 8 solutions uploaded
Homework 8 submission deadline extended again (to Sunday 06-Oct 11:59pm)
Homework 7 submission deadline extended again (to Wednesday 02-Oct 11:59pm)
Midterm info available
Slides updated.
Midterm is on Friday, 27 September 2013, from 3:00pm-5:00pm
Homework 8 submission deadline extended to Wednesday 02-Oct 11:59pm
Homework 7 submission deadline extended to Tuesday 01-Oct 11:59pm
Solutions to Homework 6
Test Vectors for HW 1-3.
Slides updated.
Slides uploaded.
Homework 3 info updated.
Grading policy and exam schedule updated in the syllabus.
Welcome to Cryptology: Fall 2013.

Back to Class Page


All the programming assignments are to be done in C or C++. Submit one single text (.c or .cpp) file with the "readme" section on the top. The name of the file must be of the format "id1-id2-id3-hw1.c" or "id1-id2-id3-hw1.cpp". The file should be emailed to me by the submission deadline with heading "Cryptology Homework #".

Homework 1: (Due Tuesday 13-Aug 11:59pm)
Implement Euclidean and extended Euclidean algorithm to find the inverse, if any, of an integer a modulo another integer m.
Your program should take as user inputs a and m and output a-1 mod m.
Homework 2: (Due Tuesday 20-Aug 11:59pm)
Implementation of Vigenere Cipher.
Your program should do both encryption and decryption. It should take as user inputs, the task to be performed, a key k and a text m and output the encryption or decryption e.
The input case could be upper or small or mixed. Convert all and output in upper case for encryption and in lower case for decryption.
Homework 3: (Due Monday 2-Sep 11:59pm)
Implement the Euclidean algorithm to find the GCD of two polynomials f and g with integers coefficients. Your program should take as user inputs f and g and output a polynomial h = gcd(f,g).
Extra Credit: Same as above but for polynomials with coefficients from Zm for some integer m > 1.
  1. The greatest common divisor (GCD) of two integers a and b is an integer d > 0, denoted d = gcd(a,b) with the following properties:
    • d divides a and b.
    • c divides a and bc divides d.
  2. The definition of the GCD, h, of two polynomials, f and g, is similar to that for integers with the exception that the condition 'h > 0' is not there.
  3. The GCD of two polynomials is not unique BUT it is unique upto a multiplication by an invertible element. That is, if both h1 and h2 satisfy the conditions for gcd, then h1 = d1h2 and h2 = d2h1 for some polynomials d1 and d2 so that d1d2 = 1, implying that both d1 and d2 are invertible polynomials.
For your main homework,
  1. For an integer polynomial f let df denote the gcd of the integer coefficients of f and let f = dffd.
  2. Find the GCD HQ of the two polynomials fd and gd as if you were working over rationals (so division is allowed).
  3. Convert the rational coefficients of HQ to integer coefficients by multiplying a suitable integer and call this polynomial H.
  4. Let H = dHHd where dH is the gcd of the coefficients of H.
  5. Finally, h = gcd(f,g) = gcd(df,dg) Hd where gcd(df,dg) is the GCD of integers.
Homework 4: (Due Tuesday 3-Sep 11:59pm)
Write a comparative report on the five modes of operation of block ciphers.
Homework 5: (Due Tuesday 10-Sep 11:59pm)
  1. Write a report on the meet-in-the-middle attack on DDES.
  2. Write a report on the security of two key 3DES.
Homework 6: (Due Tuesday 17-Sep 11:59pm)
  1. Assume that function f: {0,1}m → {0,1}m is bijective, but one-way. Let h: {0,1}2m → {0,1}m as follows. Given x ∈ {0,1}2m, we can write x = xl || xr, where xl and xr are in {0,1}m. We define h(x) = f(xlxr). Prove or disprove: h is second preimage resistant.
  2. When there is a lot of data to encrypt, using DES ECB mode is insecure because of the block permutation attack. In other words, blocks of encrypted data can be swapped without the receiver (decryptor) noticing. Suggest a secure way to address these issues.
  3. Let DESK(m) represent the encryption of plaintext m with key K using the DES cryptosystem. Suppose y=DESK(m) and y′=DESc(K) (c(m)), where c(·) denotes the bitwise complements of its argument. Prove that y′ = c(y)
  4. Consider the following ways to "strengthen" DES:
    • (i) DES1: EK2(K1M)
    • (ii) DES2: K1EK2(M)
    where K1 and K2 are two different keys - K1 is a 64 bit key and K2 is a 56 bit key.
    Show that both these proposals do not increase the work needed to break the cryptosystem using brute-force key search. That is, show how to break these schemes using on the order of 256 DES encryptions/decryptions. You may assume that you have a moderate number of (plaintext, ciphertext) pairs.
Homework 7: (Due Wednesday 02-Oct 11:59pm)
Homework 7
Homework 8: (Due Sunday 06-Oct 11:59pm)
Homework 8
Homework 9: (Due Tuesday 08-Oct 11:59pm)
Homework 9
Homework 10: (Due Tuesday 15-Oct 11:59pm)
Homework 10
Homework 11: (Due Tuesday 22-Oct 11:59pm)
Homework 11
Homework 12: (Due Sunday 03-Nov 11:59pm)
Homework 12
Homework 13: (Due Friday 08-Nov 11:59pm)
Homework 13

Back to Class Page


End-sem exam is on Monday, 18 November 2013 from 9:00am-11:00am in LH1
Midterm solution sketch
The scores on the exam are as follows The average was 15.40 and the median was 15.25.
Midterm is on Friday, 27 September 2013, from 3:00pm-5:00pm

Back to Class Page

Useful Links

CSCI 5471 - Modern Cryptography
Handbook of Applied Cryptography