MA 479 / CSSE 479: Cryptography
Homework 4 problems inspired by Computer Science

Rose-Hulman Institute of Technology
A joint effort of the
Department of Mathematics
and the Department of Computer Science & Software Engineering
Spring term, 2003-2004

For the programming problems: I am always open to other suggestions for programming projects. Come talk to me if you have one in mind that you don't see here.

The non-programming problems you may turn in to the drop boxes or on paper.

Drop box submissions are due at midnight on the due date. Paper submissions are due in class or in the box outside my office by 5:00 p.m.

  1. [8 points.] Write a simple four-function calculator in GF(24). You may use table lookups for the multiplicative inverses.

  2. [8 points.] Write a simple four-function calculator in GF(28). You should compute the multiplicative inverses on the fly.

  3. [16 points.] Create software that can encrypt and decrypt using S-AES. (I will give partial credit for software that correctly calculates and displays the results of various portions of the algorithm if the whole algorithm does not work.)

    Test data: as per the assignment in class, a binary plaintext of 0110 1111 0110 1011 encrypted with a binary key of 1010 0111 0011 1011 should give a binary ciphertext of 0000 0111 0011 1000less ecb). Decryption should work correspondingly.

  4. [20 points.] Create software that can encrypt and decrypt using AES. (I will try to give partial credit if the whole algorithm does not work, but I can't promise it — the algorithm may be too complicated!)

    Test data: a hex plaintext of 000102030405060708090A0B0C0D0E0F with a hex key of 000102030405060708090A0B0C0D0E0F should give a hex ciphertext of 0A940BB5416EF045F1C39458C653EA5A. Decryption should work correspondingly.

  5. [12 points.] Implement a differential cryptanalysis attack on 1-round S-AES.

  6. [16 points.] Implement a differential cryptanalysis attack on 2-round S-AES. (If you try this problem, stop by my office for a handout to get you going.)

  7. [20 points.] Implement a linear cryptanalysis attack on 1-round S-AES. (If you try this problem, stop by my office for a handout to get you going.)

  8. [20 points.] Implement a square attack cryptanalysis of 4-round S-AES. (If you try this problem, stop by my office for a handout to get you going.)