To implement and improve the performance of Advanced Encryption Standard algorithm by using multicore systems and Open MP API extracting as much parallelism as possible from the algorithm in parallel implementation approach.
Heart Disease Prediction using machine learning.pptx
Â
Second phase report on "ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTION STANDARD ALGORITHM ON MULTICORE PROCESSOR "
1. ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTION STANDARD ALGORITHM ON MULTICORE PROCESSOR
DEPARTMENT OF COMPUTERSCIENCE AND ENGINEERING, BCE, SHRAVANABELAGOLA 1
CHAPTER 1
INTRODUCTION
1.1 AIM
To implement and improve the performance of Advanced Encryption Standard algorithm
by using multicore systems and Open MP API extracting as much parallelism as possible from
the algorithm in parallel implementation approach.
1.2 SCOPE
The requirement of information security on a network has become highly challenging.
Cryptography is a method to provide information confidentiality, authenticity and integrity. The
cryptography overcomes several challenges such as execution time, memory requirement, and
computation power. However, one cannot get desired outcomes by using sequential computation.
In this project, the introduction of parallel computation using multicore processors by
parallelizing the execution of the algorithm in multiple cores and also analyze the effectiveness
of the Advanced Encryption Standard (AES) algorithm on dual core processor by using Open
MP API to reduce the execution time. This process is validated using JAVA platform.
1.3 OBJECTIVES
ď‚· To facilitate encryption and decryption of large data.
ď‚· To reduce execution time by using multicore system.
ď‚· To compare the execution time of single core and multicore systems.
2. ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTION STANDARD ALGORITHM ON MULTICORE PROCESSOR
DEPARTMENT OF COMPUTERSCIENCE AND ENGINEERING, BCE, SHRAVANABELAGOLA 2
CHAPTER 2
METHODOLOGY
ď‚· The input is a text file consisting of n-blocks of data.
ď‚· The first n/2 blocks can be assigned to one core for encryption/decryption, while another
n/2 blocks can be assigned to another core for performing encryption/decryption.
ď‚· The encryption/decryption on multiple blocks of data is done simultaneously by using the
concept of simultaneous multithreading, some of the blocks by one core and some of the
blocks by another core. This process will continue until the end of the file.
3. ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTION STANDARD ALGORITHM ON MULTICORE PROCESSOR
DEPARTMENT OF COMPUTERSCIENCE AND ENGINEERING, BCE, SHRAVANABELAGOLA 3
Explanation of the flowchart
Step 1: The system starts execution.
Step 2: The user will be uploading the large file for the system. The system reads this large file
and stores in the program buffer.
Step 3: The large file will be divided into two equal parts. For example, if the input file is of
1GB, then it will be divided into two parts each with 500MB. In other words, if the input file has
10,000 lines, then the system will be dividing the file into two parts each having 5000 lines.
(Note: The efficiency of the system can even further be improved by dividing the input file into
more than two parts (like 4, 6, or 8 parts in case we have quad core, hexa core, or octa core
processor respectively.)
Step 4: Each of the input parts will be encrypted by an independent CPU core. For instance, first
part of the file will be encrypted by Core 0; second part of the file will be encrypted by core 1,
etc.
Step 5: Output of each CPU cores will be combined to form a single encrypted file.
Step 6: The total time taken from all the above steps are calculated.
Step 7: System stops execution.
4. ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTION STANDARD ALGORITHM ON MULTICORE PROCESSOR
DEPARTMENT OF COMPUTERSCIENCE AND ENGINEERING, BCE, SHRAVANABELAGOLA 4
CHAPTER 3
REQUIREMENT ANALYSIS
3.1 Introduction
A requirements specification for a software system is a complete description of the
behavior of a system to be developed. It includes functional requirements and non-functional
requirements. A functional requirement includes a set of use cases that describe all the
interactions the users will have with the software. Use cases are also known as functional
requirements. Non-functional requirements are requirements which impose constraints on the
design or implementation (such as performance engineering requirements, quality standards, or
design constraints).
3.2 Functional Requirements
Functional Requirements are those that refer to the functionality of the system, i.e., what
Services it will provide to the user.
1. User account operation provides the following functionalities with respect to the end
users of the system:
ď‚· Creating a new account.
ď‚· Login to an existing account.
ď‚· Logout from an account.
ď‚· Delete an Account.
ď‚· Change the password.
ď‚· Retrieve the password.
ď‚· Update the profile.
2. The keys component will provide following functionality:
ď‚· Generation of the key.
3. The encryption component will provide following functionalities:
ď‚· Uploading of a text file.
ď‚· Specifying the resultant path after encryption.
5. ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTION STANDARD ALGORITHM ON MULTICORE PROCESSOR
DEPARTMENT OF COMPUTERSCIENCE AND ENGINEERING, BCE, SHRAVANABELAGOLA 5
4. The decryption component will provide following functionalities:
ď‚· Uploading the encrypted file.
ď‚· Specifying the resultant path after decryption.
3.3 NONFUNCTIONALREQUIRMENTS
These are requirements that are not functional in nature, that is, these are constraints within
which the system must work.
Modifiability: The system design should allow modification of the existing functionality of the
application.
Extensibility: The system design of the application must be flexible enough, so that any further
implementations or enhancements are allowed.
Usability: The user must find it very easy to use the application.
Reusability: The system design should contain components or modules and classes which can
be used again to add new functionalities with slight or no modification.
Scalability: The application should function well even if it is changed in size or approach being
used to meet the user needs.
3.4 Input Requirement
ď‚· Input is given by the User as a text file.
3.5 Output Requirement
ď‚· The encryption component gives encrypted file of the input text file. This encrypted file
is fed as input to the decryption component which gives the original input text.
3.6 Hardware Requirements
ď‚· Processor : Intel core 2 Duo processor
ď‚· Hard Disk : 40 GB hard disk
ď‚· RAM : 2 GB RAM
6. ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTION STANDARD ALGORITHM ON MULTICORE PROCESSOR
DEPARTMENT OF COMPUTERSCIENCE AND ENGINEERING, BCE, SHRAVANABELAGOLA 6
3.7 Software Requirements
ď‚· Operating System : Windows 7
ď‚· Database : MySQL
ď‚· Language : core Java, advanced Java
ď‚· Development Kit : JDK 1.8
ď‚· Web Server : Apache tomcat 9
ď‚· Development Tool : Eclipse
7. ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTION STANDARD ALGORITHM ON MULTICORE PROCESSOR
DEPARTMENT OF COMPUTERSCIENCE AND ENGINEERING, BCE, SHRAVANABELAGOLA 7
CHAPTER 4
SYSTEM DESIGN
4.1 Data Flow Diagram
En
Fig. 4.1: DATA FLOW DIAGRAM
Create
account
Plain text file
Output folder
Identifier
Key
generation
Plain text file
Encrypted file
Output folder
Windows Builder
Plugins
MYSQL
AES-Encryption improved
AES-Decryption improved
Login/
Logout
Edit
Profile
Change
Password
Forgot
Password
Delete
Profile
Encryption
Decryption
Comparison
Keys
8. ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTION STANDARD ALGORITHM ON MULTICORE PROCESSOR
DEPARTMENT OF COMPUTERSCIENCE AND ENGINEERING, BCE, SHRAVANABELAGOLA 8
Explanation of the Data Flow Diagram
MySQL database
MySQL database is used for storing the user account information like email, password,
gender, mobile, first name, last name, address, etc.
User Account operation
User account operation provides the following functionalities with respect to the end
users of the system:
ď‚· Create a new account so that the user gets access to our system.
ď‚· Login to an existing account thus creating a new session.
ď‚· Logout from an account after performing various operations within the session.
ď‚· Delete an Account in case the user no longer needs access to the system.
ď‚· Change the password for an existing account.
ď‚· Retrieve the password for an account in email in case the user forgets the password.
ď‚· Update the profile by modifying the values provided during the registration step.
Keys
Using this component, the end user can generate a new Key used for performing
encryption operations by specifying a unique identifier as an input to this component.
Encryption
This component will be used by the end users to upload a new file which must be
encrypted. The user will also specify the path where the resultant file (after encryption) must be
stored. This component communicates the following components:
ď‚· It communicates with the Keys component to retrieve the keys that will be used for
encryption.
ď‚· It also communicates with AES-Encryption-Improved component to invoke the
algorithm.
9. ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTION STANDARD ALGORITHM ON MULTICORE PROCESSOR
DEPARTMENT OF COMPUTERSCIENCE AND ENGINEERING, BCE, SHRAVANABELAGOLA 9
Decryption
This component will be used by the end users to upload an encrypted file which must be
decrypted. The user will also specify the path where the resultant file (after decryption) must be
stored. This component communicates the following components:
ď‚· It communicates with the Keys component to retrieve the keys that will be used for
decryption. The keys used for encryption will be the same as the key that will be used for
decryption. Thus, AES is called as Symmetric Encryption.
ď‚· It also communicates with AES-Decryption-Improved component to invoke the inverse
of the algorithm.
AES-Encryption-Improved
This component will have the implementation of the improved encryption AES
algorithm. This component divides the input file into multiple parts and executes each of these
parts on a different CPU cores to achieve concurrency.
AES-Decryption-Improved
This component will have the implementation of the improved decryption AES
algorithm. This component divides the input file into multiple parts and executes each of these
parts on a different CPU cores to achieve concurrency.
Comparison
This component is used for comparing the performance of the proposed system with that
of an existing system. This component accepts a large file as an input and performs encryption
on the file using the proposed system and using existing approach. It records the time taken by
both the systems and outputs the results.
Windows Builder Eclipse Plugin
Windows builder eclipse plugins are the libraries used for developing Java swings and
AWT/SWT components which will be used for developing the frontend screen for the system.
10. ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTION STANDARD ALGORITHM ON MULTICORE PROCESSOR
DEPARTMENT OF COMPUTERSCIENCE AND ENGINEERING, BCE, SHRAVANABELAGOLA 10
4.2 Use Case Diagram
Fig. 4.2: Use Case Diagram
Account
operation
Keys
Encryption
Comparison
Decryption
Create account
Delete profile
Login/Logout
Edit profile
Forgot password
Change password
Identifier
Key generation
Plain text file
Output folder
Encrypted file
Output folder
Plain text file
Graph
11. ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTION STANDARD ALGORITHM ON MULTICORE PROCESSOR
DEPARTMENT OF COMPUTERSCIENCE AND ENGINEERING, BCE, SHRAVANABELAGOLA 11
CONCLUSION
The concept of parallel programming by using a multi-core processor is described and it
is shown how to efficiently and effectively implement the Advanced Encryption Algorithm by
using multicore systems and open MP API, extracting as much parallelism as possible from the
algorithm in parallel implementation approach. The execution time of the proposed system takes
less time when compare to the existing system for larger text files.
12. ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTION STANDARD ALGORITHM ON MULTICORE PROCESSOR
DEPARTMENT OF COMPUTERSCIENCE AND ENGINEERING, BCE, SHRAVANABELAGOLA 12
REFERENCES
[1] M. Nagendra and M. Chandra Sekhar ., “Performance Improvement of Advanced Encryption
Algorithm using Parallel Computation”, International Journal of Software Engineering and Its
Applications.
[2] Supachai Thongsuk1, Prabhas Chongstitvatana., “An implementation of AES algorithm on
multicore processors for high throughput”, Department of Computer Engineering Faculty of
Engineering, Chulalongkorn University Bangkok, Thailand.
[3] Nhat-Phuong Tran, Myungho Lee*, Sigwon Hong., “Parallel Execution of AES-CTR
Algorithm Using Extended Block Size”, Dept of Computer Science and Engineering, Myong Ji
University.
[4] Suresh Sharma, T S B Sudarshan., “Design of an Efficient Architecture for Advanced
Encryption Standard Algorithm Using Systolic Structures”, International Conference of High
Performance Computing.
[5] Sliman Arrag1, Abdellatif Hamdoun 2, Abderrahim Tragha 3 and Salah eddine Khamlich.,
“Design and Implementation A different Architectures of mixcolumn in FPGA”, Department of
Electronics and treatment of information UNIVERSITE HASSAN II MOHAMMEDIA,
Casablanca, Morocco.
[6] Juan C. Pichel, David E. Singh and Jes´us Carretero., “Reordering Algorithms for Increasing
Locality on Multicore Processors”, Computer Science Dpt. Universidad Carlos III de Madrid,
Spain.
13. ANALYZING THE EFFECTIVENESS OF THE ADVANCED ENCRYPTION STANDARD ALGORITHM ON MULTICORE PROCESSOR
DEPARTMENT OF COMPUTERSCIENCE AND ENGINEERING, BCE, SHRAVANABELAGOLA 13
Signature of Students:
Chethan B.M. 4BB13CS011 …………………..
Nikhil Jain C.S. 4BB13CS021 …………………..
Sharath M.S. 4BB13CS029 …………………..
Mrs. Kavitha C.R. Mr. Nagaraju S. Mrs. Kavitha C.R.
Asso. Prof. & Guide Asst. Prof. & Coordinator Asso. Prof. & HOD