Fall 2009

91.561 Homework Assignments and Projects

 

FAQ: Programming Assignments and Projects Submissions

 

HW1; Due 9/15, Tuesday

 

1. 1.1

2. 1.2

3. 1.3

4. 1.4

5. 1.5

6. 1.7

7. 1.10

8. 1.13

9. 1.14

 

For your convenience, the ciphertext in Ex. 1.5 is listed below:

 

NTCGPDOPANFLHJINTOOFITOVJHJCTMMHIHEMTCPFDWTSOFSHTOGFWTE

TTJJTBTOOFSZOVEOCHCVCHPJHOCGTOHNQMTOCNTCGPDCGFCSTQMFBTO

FBGFSFBCTSHJCGTQMFHJCTYCXHCGFAHYTDDHAATSTJCBGFSFBCTSHJC

GTBHQGTSCTYCCGHONTCGPDQSTOTSWTOCGTMTCCTSASTRVTJBZHJCGTQ

MFHJCTYCFJDOPPJTBFJOTFSBGAPSCGTQMFHJCTYCASPNFIHWTJBHQGT

SCTYCEZBPNQFSHJICGTASTRVTJBZPATFBGMTCCTSFIFHJOCCGTLJPXJ

BPNNPJASTRVTJBZHJCGTVJDTSMZHJIMFJIVFIT

 

HW2: Due 9/22, Tuesday

 

2.1 (a), (b)

2.2

2.4

2.8

2.12

2.13

2.25

 

HW3: Due 9/29, Tuesday

 

2.26

2.27

2.28

2.29 (b), (d)

2.31

2.32

2.33

 

Project 1: Due 10/19, Monday, midnight

 

Write a network application program using Socket API to implement a simple end-to-end encryption and decryption application. Suppose Alice wants to send a confidential file to Bob over an open network. Using this program, the file will first be encrypted using the AES-128 encryption algorithm by the client program, and the encrypted document (in binary) will then be transmitted to Bob.  The server program in Bob’s machine will read the encrypted file, decrypt the file, and then store that file in a fixed directory in Bob’s machine.

In other words, you are asked to do 2.23, 2.35, 3.7, and 3.9, and put them together into a single application.

  1. (30 points) Write a client/server application just to send and read files.
  1. (30 points) Incorporate the AES-128 encryption/decryption into your program.
  1. (40 points) Use Diffie-Hellman Key Exchange Algorithm to exchange keys between Alice and Bob. When the client first makes a request for connection, each side will use BBS to generate its own pseudorandom numbers, and then use Diffie-Hellman to obtain a common secrete key between the client and the server. If the secrete key contains less than 128 bits, use Diffie-Hellman again to obtain another common secrete key and concatenate it to the previous key. Repeat this process until you obtain a key that contains at least 128 bits. If the key contains more than 128 bits, discard a few prefix bits to chunk it to 128 bits. Please use parameters p = 1223 and a = 5 for Diffie-Hellman. Since a random sequence generated using BBS may not be an integer, you need to make it to an integer in order to use Diffie-Hellman. A simple way to do so is to add 1 at the beginning if the first digit in the sequence generated by BBS is 0. That is, if we generate 011001 using BBS, then use 1011001 as the random number.

S-Box of AES:

63  7c  77  7b  f2  6b  6f  c5  30  01  67 2b  fe  d7  ab  76

ca  82  c9  7d  fa  59  47  f0  ad  d4  a2 af  9c  a4  72  c0

b7  fd  93  26  36  3f  f7  cc  34  a5  e5 f1  71  d8  31  15

04  c7  23  c3  18  96  05  9a  07  12  80 e2  eb  27  b2  75

09  83  2c  1a  1b  6e  5a  a0  52  3b  d6 b3  29  e3  2f  84

53  d1  00  ed  20  fc  b1  5b  6a  cb  be 39  4a  4c  58  cf

d0  ef  aa  fb  43  4d  33  85  45  f9  02 7f  50  3c  9f  a8

51  a3  40  8f  92  9d  38  f5  bc  b6  da 21  10  ff  f3  d2

cd  0c  13  ec  5f  97  44  17  c4  a7  7e 3d  64  5d  19  73

60  81  4f  dc  22  2a  90  88  46  ee  b8 14  de  5e  0b  db

e0  32  3a  0a  49  06  24  5c  c2  d3  ac 62  91  95  e4  79

e7  c8  37  6d  8d  d5  4e  a9  6c  56  f4 ea  65  7a  ae  08

ba  78  25  2e  1c  a6  b4  c6  e8  dd  74 1f  4b  bd  8b  8a

70  3e  b5  66  48  03  f6  0e  61  35  57 b9  86  c1  1d  9e

e1  f8  98  11  69  d9  8e  94  9b  1e  87 e9  ce  55  28  df

8c  a1  89  0d  bf  e6  42  68  41  99  2d 0f  b0  54  bb  16

The reverse S-Box of AES

52  09  6a  d5  30  36  a5  38  bf  40  a3 9e  81  f3  d7  fb

7c  e3  39  82  9b  2f  ff  87  34  8e  43 44  c4  de  e9  cb

54  7b  94  32  a6  c2  23  3d  ee  4c  95 0b  42  fa  c3  4e

08  2e  a1  66  28  d9  24  b2  76  5b  a2 49  6d  8b  d1  25

72  f8  f6  64  86  68  98  16  d4  a4  5c cc  5d  65  b6  92

6c  70  48  50  fd  ed  b9  da  5e  15  46 57  a7  8d  9d  84

90  d8  ab  00  8c  bc  d3  0a  f7  e4  58 05  b8  b3  45  06

d0  2c  1e  8f  ca  3f  0f  02  c1  af  bd 03  01  13  8a  6b

3a  91  11  41  4f  67  dc  ea  97  f2  cf ce  f0  b4  e6  73

96  ac  74  22  e7  ad  35  85  e2  f9  37 e8  1c  75  df  6e

47  f1  1a  71  1d  29  c5  89  6f  b7  62 0e  aa  18  be  1b

fc  56  3e  4b  c6  d2  79  20  9a  db  c0 fe  78  cd  5a  f4

1f  dd  a8  33  88  07  c7  31  b1  12  10 59  27  80  ec  5f

60  51  7f  a9  19  b5  4a  0d  2d  e5  7a 9f  93  c9  9c  ef

a0  e0  3b  4d  ae  2a  f5  b0  c8  eb  bb 3c  83  53  99  61

17  2b  04  7e  ba  77  d6  26  e1  69  14 63  55  21  0c  7d

 

AES-128 encryption/decryption sample:

 

Key = ce13a99f76f4c9cb93312d1f3114a052

 

Plaintext:

 

Methods of making messages unintelligible to adversaries have

been necessary. Substitution is the simplest method that replaces a

character in the plaintext with a fixed different character in the

ciphertext. This method preserves the letter frequency in the

plaintext and so one can search for the plaintext from a given

ciphertext by comparing the frequency of each letter against the

known common frequency in the underlying language.

 

Ciphertext:

 

The ciphertext is in binary, which can be found at http://www.cs.uml.edu/~wang/cs561/AEScipher

 

 

HW 4, due 10/6, Tuesday

 

3.1

3.13

 

HW5, due 10/15, Thursday

 

3.16

3.18

3.21

4.2

4.3

4.8

 

HW6, due 10/29, Thursday

 

4.9 (a)

4.22

4.26

4.27

4.32

4.34

 

HW7, due 11/10, Tuesday

 

5.4

5.8

5.12

5.15

5.24

5.26

5.28

 

Project 2, Due 12/3, Thursday, midnight

 

This project familiarizes you with the Microsoft Internet Explorer options on security, privacy, content filtering, and the advanced settings. Open Internet Explorer, click Tools and then click Internet Options. You will see the following four tags, among other things: Security, Privacy, Content, and Advanced.

 

1.     Explore the Internet Explorer Security options on Trusted Sites and Restricted Sites. Explain what they mean and how to configure them.

 

2.     Explore the Internet Explorer Privacy option. Explain what it means and how to configure it.

 

3.     Explore the Internet Explorer content filtering (i.e. content advisor) and password protect the content filtering settings.  Explain what they mean and how to configure them.

 

4.     Explore Internet Explorer Advanced Security Settings and protect your information related to Web browsing. Explain what they mean and how to configure them.

 

HW8, Due 11/17, Tuesday, in class

1.     6.1

2.     6.4

3.     6.9

4.     6.12

5.     6.21

 

HW9, due 11/24, Tuesday, in class

 

1.     7.2

2.     7.6

3.     7.8

4.     7.14

5.     7.18

6.     7.22

7.     7.28

8.     7.32