Skip to content

Build a secure platform of file sharing using FTP and multiple ciphers encryption. A file owner can upload an encrypted file to an FTP server. users can download the file from the server and then request the encryption keys of the file using their public keys, hence only the users granted this key can decrypt the downloaded file

Notifications You must be signed in to change notification settings

Nouran-saad/Secure-Shared-File-Storage-Using-Hybrid-Cryptography-and-FTP

Repository files navigation

Secure-Shared-File-Storage-Using-Hybrid-Cryptography-and-FTP

Project Requirments:

File Storage:

  1. Dividing the file to upload into N parts. (N depends on the file size)
  2. Generate m keys randomly, where m is the number of symmetric ciphers used (at least 3 ciphers including DES and AES, and you may choose a third one or even your own cipher)
  3. Encrypting all the parts of the file using one of the selected algorithms (Algorithm is changed with every part in round robin fashion). And the parts are put together in a single file as ordered.
  4. The keys for cryptography algorithms are then grouped in a key file and encrypted using a different algorithm and the key for this algorithm is also generated randomly and is called the file master key.
  5. The data file and the key file are than uploaded to the FTP server
  6. A copy of the master key is kept in a local file with the file name to be shared. This has to be done through a GUI APP with the entire process encapsulated in a single use-case that is “Secure Upload”.

File Retrieval:

  1. A user requesting the master key must provide his public key to the owner
  2. The owner then encrypts the master key of the requested file with the requesting user public key and sends it to him
  3. The user can then download the data file and the key file, decrypts the master key with his private key and then decrypts the data file Requesting the master key can be done outside your app, but the encrypted master key must be imported to the application of the file retriever and used to decrypt the file

Sceenshots of the GUI:

image

Test Cases

There are 3 test cases to encrypt and decrypt 3 different text files (input(small-size file) , input2 (medium-size file) , input3 (large-size file)with different sizes and python file (min_temp_dataframe.py).

Example of one of the testcases ( input(small-size file) )

When press the upload button

image image image image image image image image

When Press Download

image image image

Press Stop button To destroy the window

image

About

Build a secure platform of file sharing using FTP and multiple ciphers encryption. A file owner can upload an encrypted file to an FTP server. users can download the file from the server and then request the encryption keys of the file using their public keys, hence only the users granted this key can decrypt the downloaded file

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages