ECE 487/587: Advanced Topics in Wireless Security Homework 2
Due Tuesday Feb. 14, 2019
Note: Matlab is recommended, but you can choose whatever language you prefer. Please submit your code through Isidore.
Submission: Please submit screenshots of your results, and your scripts on Isidore.
Problem 1. (Design and Program) Design and implement a block cipher based on Feistel Cipher. Please see the requirements as follows:
Determine the important components before implementation
Block size: 64-bit is recommended, you are free to choose any block size no
smaller than 64 bits.
Key size: 128-bit is recommended, you are free to choose any block size no smaller than 64 bits.
Number of rounds: you can pick it on your own.
Subkey generation algorithm: design an algorithm to generate subkeys based on the secret key.
Round function: design a round function which takes in the right half of the input
and the subkey.
Implement your block cipher
Show a demo by doing one encryption
The input is one block of all 1s (i.e., 64-bit 111111…. if your block size is 64-bit).
The secret key is set as all 1s.(i.e., 111111…)
Do the decryption correspondingly.
Performance preliminary analysis
Encrypt a block for 1,000 times and record the computational time.
Report your computer configurations (CPU clock speed, RAM, programming language, etc.)
Feel free to change running iterations to get a good evaluation on
computational time.
Show the avalanche effect in your design by
changing the first bit of the plaintext to 0,
and then do the encryption again.
Record the number of different bits in the two cipher texts.