Scientific Paper

If you are Interested in technicality check out our paper here


Methodology

Crypto Ghost is software for File Encryption. The Idea behind its design is that password memorized by the user and this password will be the master password (Finger Print) for the user to encrypt and decrypt the files. Crypto Ghost will user a symmetric Encryption (one key to encrypt and decrypt) and this key will be stored in the application so the user will not have to enter it manually. Crypto Ghost will use the “AES” Algorithm in GCM mode with 256-bit key length..


Overview

When first opened. Crypto Ghost asks the user for a passphrase to enter which will be used to derive the user’s private key. The application will store the fingerprint in the application. Crypto Ghost will refuse weak passphrases and passphrase under 10 characters completely until User enter a good passphrase. Then the main application will open, and in the main screen user will insert the file that he want to encrypt then he will find 2 options. Option number one will ask the user if he want to encrypt the file for himself by his (Finger Print} so no one can decrypt the file except the user. Option number two will ask the user to enter a new password to encrypt the file with “in case if he Want to encrypt the file for his friends “so he can send the encrypted file and the password (not in the same channel), and the other person will decrypt the file whiten the password that he got. And note that every file will have 16 bytes and it will count as a nonce for every file So every file will have its own nonce and this Nonce will be different every time so if the same file encrypted twice the result will be different every time.


User Flow

This section will give an example of user flow in order to help demonstrate how Crypto Ghost is supposed to help people.


Scenario 1

Alice wants to encrypt a file for herself so she will open the Crypto Ghost software and insert the file and she will check the options that she want, Then she will have the file encrypted in her device in a folder called “Crypto Ghost” and when she want to decrypt it she will open the Application and insert the encrypted file and press decrypt and the file will be decrypted and saved in the “Crypto Ghost - Encrypted Files “folder


Scenario 2

Alice wants to send a file to her Friend Bob like (Financial Paper) so Alice will open Crypto Ghost and insert the file and check the option number 2 and then she will enter a password for her friend (Password can’t be less than 10 characters) and encrypt the file for him and she will send the encrypted file and the password (not in the same channel) to Bob in order for him to decrypt the file.

Algorithm

Crypto Ghost uses AES algorithm with 256-bit key in GCM mode, Crypto Ghost uses authenticated encryption with associated data “AEAD” so it will provide Confidentiality and Integrity.

Key Derivation

Crypto Ghost uses AES with 256 bit key size and user can enter a passphrase minimal to 10 characters (80 bits) and email address and then the password and the email will be hashed inside Blake2 hash function this will produce 512-bit output this output it will be injected inside a “scrypt” and it’s password based key derivation function it will provide salts for the password, so whole equation will be like this scrypt(Blake2(password || email))

Key Derivation Performance

Architecture :

Code