A full-fledged application with server and front-end parts. Used to transfer files between users of any length. A key is required to upload/download to the server. The files are encrypted with the Twofish algorithm, written in C, and the key is encrypted with the ElGamal algorithm, written in python. The GUI is written in custom-tkinter. A 1 GB file is encrypted in approximately 10-15 seconds (when the server is local).