Assignment Tasks
You are expected to complete the following tasks:
1. Stage 1
(a) Implement the cipher as a class which implements the provided interface.
• Implement the S-box functionality as a class
• Implement the permutation as a class which provides the required bit manipulation functions
(b) Test the cipher by constructing a JUnit test suite which con?rms that the cipher's methods operate correctly
(c) Implement a program which uses the cipher to encrypt and decrypt ?les.
Stage 2
(a) Implement a birthday paradox attack on a compression hash function