You are on page 1of 3

Kingdom of Saudi Arabia ‫المملكة العربية السعودية‬

Ministry of Education ‫وزارة التعليم‬


Jouf University
Faculty of Computer and ‫جامعة الجوف‬
Information Sciences
‫كلية علوم الحاسب والمعلومات‬

IS 461
Information Security

Assignment -2

Objective:
In this assignment you will learning symmetric encryption algorithms including streaming
and block cipher.

Instructions:
Assignment tools: this text file containing additional data.

Due date: Monday April 25th, 2022 at 11:59pm.

Turn in your solution using the blackboard emailing system use the title
(Assig_2_''your name_ID").

What to turn in:


Please turn in PDF file of your answers and source code file.

"No code will be accepted in the answer file"

Today date is : Sunday, April 11th, 2022


1. This problem deals with a Feistel Cipher.
 Give the definition of a Feistel Cipher.
 Is DES a Feistel Cipher?
 Is AES a Feistel Cipher?
 Why is the Tiny Encryption Algorithm, TEA, "almost" a Feistel Cipher?

2. This problem deals with the DES cipher. Please fill in the table.

How many bits in each plaintext block?


How many bits in each ciphertext block?
How many bits in the key?
How many bits in each subkey?
How many rounds?
How many S-boxes?
An S-box requires how many bits of input?
n S-box generates how many bits of output?

3. AES consists of four functions in three layers.

 Which of the four functions are primarily for confusion and which are
primarily for diffusion? Justify your answer.
 Which of the three layers are for confusion and which are for diffusion?
Justify your answer.

4. Recall that for a block cipher, a key schedule algorithm determines the
subkey for each round, based on the key K. Let K = (k 1 k 2 k 3 … .. k 55) be a 56-bit
DES key.

1. List the 48 bits for each of the 16 DES subkeys K 1 K 2 K 3 … .. K 16, in


terms of the key bits k i.

Page 2 of 3
2. Make a table that contains the number of subkeys in which each key
bit k iis used.
3. Can you design a DES key schedule algorithm in which each key bit
is used an equal number of times?

5. Using Java or Python languages, implement the A5/1 algorithm. Suppose


that, after a particular step, the values in the registers are

X = ( x 1 , x 2 , x 3 … . x 18) = (1010101010101010101)
Y = ( y 1 , y 2 , y 3 … . y 21) = (1100110011001100110011)
Z = ( z 1 , z 2 , z 3 … . z 22) = (11100001111000011110000)

 List the next 32 keystream bits and give the contents of X, Y, and Z
after these 32 bits have been generated.
 Submit the implementation code source file as a separate file.

Page 3 of 3

You might also like