Image and Text Encryption using AES, RSA, BLOWFISH and Hybrid

Project Methodology

This section holds handy information about the how the system is analyze, which prototype has been used and the entire design, coding and Testing of the system as well. Numerous software processing steps was conducted and perform for this sections. It is very important to implement project methodology carefully as this stage defines the real function and interface of the system.

Analysis

Among different method of software development I find prototype method as one of the best development model because of its popularity and the stage where user are actively engaged with the system which helps a system to be bug free as it can be identified before the development of the system. Moreover being this project related to cryptography it is best to recognize bug before the completion of development.

Metris of using prototype system development model

  • Earlier detection of various errors and confusing function, help development process to be smoother.
  • As users are actively participated in the development phase it helps to get easy feedback quickly.
  • The improvement of quality of requirement and specifications as this approach is based on requirements.
  • Refining can be easy and done earlier with user evaluation which makes a final product healthy and productive.

Following is the illustration of different phase of prototype system development method. A development should undergo mentioned phase while building the application.

Figure 3: Prototyping Development Model Phases

  1. Gathering Requirements

The first that was undertaken while designing and building the proposed system is Requirement Gathering. This phase consists of broad requirements and all the requirements are explained here. The proposed project is not a client based project so it was not necessary to conduct different phases inside requirements such as interview and questionnaires. Anyway the requirements of the project have been pointed out below:

  • User can Encrypt and type of file they want
  • Providing user a platform to add and save their file in encrypted form
  • Use of different encryption method such as AES, RSA, Blow Fish
  • Use of hybrid encryption method as multi-encryption
  • User can create account and sign in for their dashboard
  • User can see their encrypted file inside their dashboard
  • User can see all the history of encryption
  • A proper utilization of cryptography
  • Only authenticated user can decrypted their file and download it back to their local pc

 

  1. Quick Design

A designing of any system or project is very important as a design is an interface where user can enroll and post their value, content or their speech. The design must be attractive and easy to use. The design process is started after gathering requirements. Below design table will give any individual a brief idea on the design of the system.

Requirements of Design

Explanation

Homepage

The homepage design includes redirection to all the features that a proposed system can provide to user such as encryption, decryption, dashboard, history and if the user is logged in it will have an option of logout other they can sign in or sign up.

Encryption Page

This page consists of actual function to encrypt file. It has various option as per the requirements of proposed system i.e. encryption with AES, RSA, Blow Fish or with all Multi encryption.

Decryption Page

This page consists of a field for password and decrypt option. You can only decrypt file after encryption of the file and you should choose the method of encryption while decrypting the file.

Portal (Dashboard)

A portal or a dashboard is the page where user can view their entire data i.e. added file, moreover they can also encrypt file using different method of encryption.

Sign In page

The sign in page simply include few fields for authentication. Only authentic user can sign in.

Sign Up page

The sign up page is for creating a new account for sign up. After sign up user can enter into dashboard using their credential

History Page

This page includes all the history of user file encryption with date and time.

Table 4: System Design

  1. Build Prototype

After completion of designing requirement phase, this phase is one of the key phases for development of the project as all the function and method is mentioned and discussed here. Different algorithm is carried out during this phase. For any development it is very essential to have a proper algorithm so that development of the function can be based with working algorithm.

  • Algorithm for Adding File for encryption

Step 1: Start

Step 2: Select File to encrypt and add Specific name for it

Step 3: Select Encryption Method

Step 4: Add Password for encryption

Step 5: Encrypt and add file to database

Step 6: Stop

  • Algorithm of AES encryption method

Step 1: Start

Step 2: Create file object

Step 3: Add round key to cipher key

Step 4: Change state of object to sub bytes

Step 5: Shift Rows

Step 6: Get final state

 

  • Algorithm of RSA encryption method

Step 1: Start

Step 2: Select random large number which is prime number as p and q

Step 3: Compute n:

Step 4: Use this method to compute n: pq and (n) = (p-1)(q-1).

Step 5: Get an integer e, 1 < e < n

Step 6: Compute ed = 1(mod(n))

Step 7: (n,d) = private key and (n,e) = public key

Step 8: Generate Cypher key using ‘C = Me

Step 9: Stop

  • Algorithm of Blow Fish encryption method

Step 1: Start

Step 2: Create a variable x/2 with xL and xR

Step 3: If I < 16

                      xL = xl XOR PI and xR = F(xL) XOR xR

          else

                      Xr = xR XOR P17 and xL = xL XOR P18

Step 5: Swap xL and xR

Step 6: Recombine xL and xR

Step 7: End

 

  • Algorithm of Multi Encryption Method

Step 1: Start 

Step 2: Get File

Step 3: Convert to Byte

Step 4: Encrypt with AES (using above algorithm)

Step 5: Encrypt the encrypted file with RSA (using above algorithm) with public and private key

Step 6: Finally encrypt the same file with Blow fish algorithm.

Step 7:  Stop

 

  • Algorithm of Decrypting file

Step 1: Start

Step 2: Select File to decrypt

Step 3: Choose encrypted method

Step 4: Add Password

          If Password is incorrect

                      Return to same page

          Else:

                      Decrypt and Download file

Step 5: Stop

Flowchart

A flowchart is a graphical depiction or symbolic representation of a system's process. A flowchart represents each phase with a separate symbol, each with its own significance. According to Pete from techtarget.com “The aim of creating flowchart is to provide client or respective people with a common language or reference point while dealing with a project or process” (Anon., 2016)

System Design

Figure 4 Flow chart of proposed system

Description:

The given flowchart depicts how the secure file storage in cloud protocol flows in the entire system when user open website, user needs to sign up for creating their account and after creating an account they can login to their dashboard where they can encrypt file with different encryption method such as AES, RSA, Blow Fish and Multi-encryption as well. After choosing encryption or decryption user can encrypt and decrypt file respectively as shown in the given flow chart.

AES Encryption:

Figure 5: Flowchart of AES

Explanation:

The process start with adding the round key to a provided input and the data is covert to byte unit. After that rows of the plain data will be shifted and columns will be mixed. After adding round key again the same process will take place having an encrypted data an outcome.

RSA Encryption:

Figure 6: Flowchart of RSA

Explantion:

The process of this algorithm start with choosing very high random prime number which is denoted as p and q. after that the number n is calculated using (n):n = pq and (n) = (p-1)(q-1). Then the process needs to compute d i.e, ed = 1(mod (n)). Finally, the private key is (n, d) and the public key is (n, e), with the values of p, q, and (n) being private, e being the private exponent, and d being the decryption exponent. The cipher text is generated with the equation n “C = Me mod n” where M is the initial data.

Blow Fish Encryption

Figure 7: Flowchart of Blowfish

Explanation:

The fixed string of hexadecimal digits of pi is used to initialize the P-array and S-boxes. Until the entire component in the array are manipulate with the key bits the initial element of array will be manipulated with the first 32 bits of key and the process goes on. After that the strings are encrypted and both arrays are replaced by the outcome.

Use case Diagram

A use case diagram depicts the most basic system or software requirements for every newly produced software application. The use case graphic is straightforward; it does not depict all of the application's intricacies. However, it only highlights a few of the connections between systems, actors and use cases. The use case diagram for the proposed web application is shown below:

Figure 8: Use Case Diagram

 

Description:

Given Illustrated use-case diagram shows the relationship between user and system function. The figure ease demonstrates what kind of task a user can perform within the design and developed web application. In the given case diagram we can see user can perform different function from sign up to encrypting and decrypting file with different sort of encryption method.

Class Diagram

A static view of an application is defined as a class diagram. This diagram depicts the system's structure by displaying the system classes, their attributes, and their relationships. The suggested website classifications and properties are represented in the figure below.

Figure 9: Class Diagram

Above design diagram show the structure of the system and also explain different function of the proposed system. The given figure shows the features and different class and function that have been used in the system to make it work out. As we can see the system has its relationship to different other functions such as encrypting with different method, decrypting file and authentication function. Moreover there are also some other minor function that has not been presented in the figure.

ER Diagram

An entity diagram is a data modeling tool for describing a database's structure. The relationship between distinct entity sets is shown by an ER-diagram. Entity, characteristics, and relationship sets make up the diagram. The entity relationship diagram for the proposed web application is shown below.

Figure 10: ER Diagram

Description:

The above given ER diagram is refers as an entity relationship diagram which clearly shows the relationship between different entities that has been used in a database. The system has three different entities like User, which will have file and its history. Basically any user will have different entities for their file and history.

Project Methodology

This section holds handy information about the how the system is analyze, which prototype has been used and the entire design, coding and Testing of the system as well. Numerous software processing steps was conducted and perform for this sections. It is very important to implement project methodology carefully as this stage defines the real function and interface of the system.

Analysis

Among different method of software development I find prototype method as one of the best development model because of its popularity and the stage where user are actively engaged with the system which helps a system to be bug free as it can be identified before the development of the system. Moreover being this project related to cryptography it is best to recognize bug before the completion of development.

Metris of using prototype system development model

  • Earlier detection of various errors and confusing function, help development process to be smoother.
  • As users are actively participated in the development phase it helps to get easy feedback quickly.
  • The improvement of quality of requirement and specifications as this approach is based on requirements.
  • Refining can be easy and done earlier with user evaluation which makes a final product healthy and productive.

Following is the illustration of different phase of prototype system development method. A development should undergo mentioned phase while building the application.

Figure 3: Prototyping Development Model Phases

  1. Gathering Requirements

The first that was undertaken while designing and building the proposed system is Requirement Gathering. This phase consists of broad requirements and all the requirements are explained here. The proposed project is not a client based project so it was not necessary to conduct different phases inside requirements such as interview and questionnaires. Anyway the requirements of the project have been pointed out below:

  • User can Encrypt and type of file they want
  • Providing user a platform to add and save their file in encrypted form
  • Use of different encryption method such as AES, RSA, Blow Fish
  • Use of hybrid encryption method as multi-encryption
  • User can create account and sign in for their dashboard
  • User can see their encrypted file inside their dashboard
  • User can see all the history of encryption
  • A proper utilization of cryptography
  • Only authenticated user can decrypted their file and download it back to their local pc

 

  1. Quick Design

A designing of any system or project is very important as a design is an interface where user can enroll and post their value, content or their speech. The design must be attractive and easy to use. The design process is started after gathering requirements. Below design table will give any individual a brief idea on the design of the system.

Requirements of Design

Explanation

Homepage

The homepage design includes redirection to all the features that a proposed system can provide to user such as encryption, decryption, dashboard, history and if the user is logged in it will have an option of logout other they can sign in or sign up.

Encryption Page

This page consists of actual function to encrypt file. It has various option as per the requirements of proposed system i.e. encryption with AES, RSA, Blow Fish or with all Multi encryption.

Decryption Page

This page consists of a field for password and decrypt option. You can only decrypt file after encryption of the file and you should choose the method of encryption while decrypting the file.

Portal (Dashboard)

A portal or a dashboard is the page where user can view their entire data i.e. added file, moreover they can also encrypt file using different method of encryption.

Sign In page

The sign in page simply include few fields for authentication. Only authentic user can sign in.

Sign Up page

The sign up page is for creating a new account for sign up. After sign up user can enter into dashboard using their credential

History Page

This page includes all the history of user file encryption with date and time.

Table 4: System Design

  1. Build Prototype

After completion of designing requirement phase, this phase is one of the key phases for development of the project as all the function and method is mentioned and discussed here. Different algorithm is carried out during this phase. For any development it is very essential to have a proper algorithm so that development of the function can be based with working algorithm.

  • Algorithm for Adding File for encryption

Step 1: Start

Step 2: Select File to encrypt and add Specific name for it

Step 3: Select Encryption Method

Step 4: Add Password for encryption

Step 5: Encrypt and add file to database

Step 6: Stop

  • Algorithm of AES encryption method

Step 1: Start

Step 2: Create file object

Step 3: Add round key to cipher key

Step 4: Change state of object to sub bytes

Step 5: Shift Rows

Step 6: Get final state

 

  • Algorithm of RSA encryption method

Step 1: Start

Step 2: Select random large number which is prime number as p and q

Step 3: Compute n:

Step 4: Use this method to compute n: pq and (n) = (p-1)(q-1).

Step 5: Get an integer e, 1 < e < n

Step 6: Compute ed = 1(mod(n))

Step 7: (n,d) = private key and (n,e) = public key

Step 8: Generate Cypher key using ‘C = Me

Step 9: Stop

  • Algorithm of Blow Fish encryption method

Step 1: Start

Step 2: Create a variable x/2 with xL and xR

Step 3: If I < 16

                      xL = xl XOR PI and xR = F(xL) XOR xR

          else

                      Xr = xR XOR P17 and xL = xL XOR P18

Step 5: Swap xL and xR

Step 6: Recombine xL and xR

Step 7: End

 

  • Algorithm of Multi Encryption Method

Step 1: Start 

Step 2: Get File

Step 3: Convert to Byte

Step 4: Encrypt with AES (using above algorithm)

Step 5: Encrypt the encrypted file with RSA (using above algorithm) with public and private key

Step 6: Finally encrypt the same file with Blow fish algorithm.

Step 7:  Stop

 

  • Algorithm of Decrypting file

Step 1: Start

Step 2: Select File to decrypt

Step 3: Choose encrypted method

Step 4: Add Password

          If Password is incorrect

                      Return to same page

          Else:

                      Decrypt and Download file

Step 5: Stop

Flowchart

A flowchart is a graphical depiction or symbolic representation of a system's process. A flowchart represents each phase with a separate symbol, each with its own significance. According to Pete from techtarget.com “The aim of creating flowchart is to provide client or respective people with a common language or reference point while dealing with a project or process” (Anon., 2016)

System Design

Figure 4 Flow chart of proposed system

Description:

The given flowchart depicts how the secure file storage in cloud protocol flows in the entire system when user open website, user needs to sign up for creating their account and after creating an account they can login to their dashboard where they can encrypt file with different encryption method such as AES, RSA, Blow Fish and Multi-encryption as well. After choosing encryption or decryption user can encrypt and decrypt file respectively as shown in the given flow chart.

AES Encryption:

Figure 5: Flowchart of AES

Explanation:

The process start with adding the round key to a provided input and the data is covert to byte unit. After that rows of the plain data will be shifted and columns will be mixed. After adding round key again the same process will take place having an encrypted data an outcome.

RSA Encryption:

Figure 6: Flowchart of RSA

Explantion:

The process of this algorithm start with choosing very high random prime number which is denoted as p and q. after that the number n is calculated using (n):n = pq and (n) = (p-1)(q-1). Then the process needs to compute d i.e, ed = 1(mod (n)). Finally, the private key is (n, d) and the public key is (n, e), with the values of p, q, and (n) being private, e being the private exponent, and d being the decryption exponent. The cipher text is generated with the equation n “C = Me mod n” where M is the initial data.

Blow Fish Encryption

Figure 7: Flowchart of Blowfish

Explanation:

The fixed string of hexadecimal digits of pi is used to initialize the P-array and S-boxes. Until the entire component in the array are manipulate with the key bits the initial element of array will be manipulated with the first 32 bits of key and the process goes on. After that the strings are encrypted and both arrays are replaced by the outcome.

Use case Diagram

A use case diagram depicts the most basic system or software requirements for every newly produced software application. The use case graphic is straightforward; it does not depict all of the application's intricacies. However, it only highlights a few of the connections between systems, actors and use cases. The use case diagram for the proposed web application is shown below:

Figure 8: Use Case Diagram

 

Description:

Given Illustrated use-case diagram shows the relationship between user and system function. The figure ease demonstrates what kind of task a user can perform within the design and developed web application. In the given case diagram we can see user can perform different function from sign up to encrypting and decrypting file with different sort of encryption method.

Class Diagram

A static view of an application is defined as a class diagram. This diagram depicts the system's structure by displaying the system classes, their attributes, and their relationships. The suggested website classifications and properties are represented in the figure below.

Figure 9: Class Diagram

Above design diagram show the structure of the system and also explain different function of the proposed system. The given figure shows the features and different class and function that have been used in the system to make it work out. As we can see the system has its relationship to different other functions such as encrypting with different method, decrypting file and authentication function. Moreover there are also some other minor function that has not been presented in the figure.

ER Diagram

An entity diagram is a data modeling tool for describing a database's structure. The relationship between distinct entity sets is shown by an ER-diagram. Entity, characteristics, and relationship sets make up the diagram. The entity relationship diagram for the proposed web application is shown below.

Figure 10: ER Diagram

Description:

The above given ER diagram is refers as an entity relationship diagram which clearly shows the relationship between different entities that has been used in a database. The system has three different entities like User, which will have file and its history. Basically any user will have different entities for their file and history.