A study project of Security of Computer Systems.
- The GUI interface must allow to type and send a text message to the other user. Besides the text also an ability of sending any files (e.g. *.txt, *.png, *.mp3, *.avi, itp.), with any size (from 1kB to more that 100 MB) must be implemented. A test files are given by the teacher.
- It is obligatory to implement one of the block ciphers (AES, 3DES).
- It is obligatory to implement all four modes of operation of the block ciphers (ECB, CBC, CFB, OFB), one mode will be selected by the user in the GUI.
- For the CFB and OFB modes the size of the size of the block must be the power of 2.
- It is obligatory to implement a progress bar presenting the progress of sending the large files.
- For large files a method of data division must be implemented before sending them via the Ethernet interface.
- A UDP (User Datagram Protocol) or TCP (Transmission Control Protocol) communication protocol must be used to send the data between the mashines.
- When the UDP protocol was used a data loss exceptions must be handled.
- A pseudorandom generator must be used to generate the session key. The input data for the generator must be taken “from the environment” (system time, HDD disk sector, mouse position).
- The session key must be encrypted by using the RSA public key of the receiving person and send to the receiving person.
- The public and private keys must be stored separately (e.g. in a different directories). The keys must be encrypted by using the block cipher operating in the CBC mode. The encryption key is the hash (generated by using the SHA-1, SHA-256 function) of the user-friendly password.
- It is allowed to use the available implementations of the block ciphers, RSA encryption.
- In a case of unauthorized decryption (e.g. using an incorrect password) the decryption process should be done with no notification to the user and as a result of the decryption process a pseudorandom data will be obtained.
- In the report the results of performer tests must be included.