I. INTRODUCTION. Manisha N. Kella * 1 and Sohil Gadhiya2.

Similar documents
FPGA Implementation of High Speed AES Algorithm for Improving The System Computing Speed

BLOWFISH ALGORITHM ON ITS OWN CLOUD COMPUTER PERFORMANCE AND IMPLEMENTATION

Data Encryption Standard (DES)

Presented by: Kevin Hieb May 2, 2005

Encryption Details COMP620

Efficient Hardware Design and Implementation of AES Cryptosystem

FPGA Can be Implemented Using Advanced Encryption Standard Algorithm

Content of this part

Delineation of Trivial PGP Security

FPGA CAN BE IMPLEMENTED BY USING ADVANCED ENCRYPTION STANDARD ALGORITHM

Implementation of Full -Parallelism AES Encryption and Decryption

Introduction to Cryptography and Security Mechanisms: Unit 5. Public-Key Encryption

Channel Coding and Cryptography Part II: Introduction to Cryptography

Introduction to Cryptography and Security Mechanisms. Abdul Hameed

Cryptography and Network Security

Secret Key Cryptography

Computer Security. 08. Cryptography Part II. Paul Krzyzanowski. Rutgers University. Spring 2018

Computer Security 3/23/18

Understanding Cryptography by Christof Paar and Jan Pelzl. Chapter 4 The Advanced Encryption Standard (AES) ver. October 28, 2009

FPGA BASED CRYPTOGRAPHY FOR INTERNET SECURITY

Hybrid Key Encryption using Cryptography for Wireless Sensor Networks V-Algorithm

Key Exchange. Secure Software Systems

Outline. Data Encryption Standard. Symmetric-Key Algorithms. Lecture 4

FPGA Based Design of AES with Masked S-Box for Enhanced Security

ECE596C: Handout #7. Analysis of DES and the AES Standard. Electrical and Computer Engineering, University of Arizona, Loukas Lazos

Symmetric Cryptography. CS4264 Fall 2016

3 Symmetric Key Cryptography 3.1 Block Ciphers Symmetric key strength analysis Electronic Code Book Mode (ECB) Cipher Block Chaining Mode (CBC) Some

Parallelizing Cryptography. Gordon Werner Samantha Kenyon

Cryptography and Network Security. Sixth Edition by William Stallings

Crypto Basics. Recent block cipher: AES Public Key Cryptography Public key exchange: Diffie-Hellmann Homework suggestion

128 Bit ECB-AES Crypto Core Design using Rijndeal Algorithm for Secure Communication

CPSC 467b: Cryptography and Computer Security

Area Optimization in Masked Advanced Encryption Standard

Computer Security: Principles and Practice

Cryptography Functions

Winter 2011 Josh Benaloh Brian LaMacchia

Design of an Efficient Architecture for Advanced Encryption Standard Algorithm Using Systolic Structures

CHAPTER 1 INTRODUCTION

page 1 Introduction to Cryptography Benny Pinkas Lecture 3 November 18, 2008 Introduction to Cryptography, Benny Pinkas

Kernel level AES Acceleration using GPUs

ISSN: Page 320

CPSC 467b: Cryptography and Computer Security

ANALYSIS OF AES ENCRYPTION WITH ECC

Cryptography. Submitted to:- Ms Poonam Sharma Faculty, ABS,Manesar. Submitted by:- Hardeep Gaurav Jain

Public-key encipherment concept

Optimized AES Algorithm Using FeedBack Architecture Chintan Raval 1, Maitrey Patel 2, Bhargav Tarpara 3 1, 2,

6 Cryptographic Techniques A Brief Introduction

Encryption. INST 346, Section 0201 April 3, 2018

Vertex Magic Total Labeling of Complete Graphs and their application for Public-Key Cryptosystem

Cryptography MIS

AES algorithm using advance key implementation in MATLAB

A New Symmetric Key Algorithm for Modern Cryptography Rupesh Kumar 1 Sanjay Patel 2 Purushottam Patel 3 Rakesh Patel 4

EEC-484/584 Computer Networks

A High-Performance VLSI Architecture for Advanced Encryption Standard (AES) Algorithm

Implementation of the block cipher Rijndael using Altera FPGA

RSA (material drawn from Avi Kak Lecture 12, Lecture Notes on "Computer and Network Security" Used in asymmetric crypto.

ENHANCED AES ALGORITHM FOR STRONG ENCRYPTION

Cryptographic Algorithms - AES

MODIFIED RECURSIVE MODULO 2 N AND KEY ROTATION TECHNIQUE (MRMKRT) Rajdeep Chakraborty* 1, Avishek Datta 2, J.K. Mandal 3

Cryptography Symmetric Cryptography Asymmetric Cryptography Internet Communication. Telling Secrets. Secret Writing Through the Ages.

Advanced Encryption Standard and Modes of Operation. Foundations of Cryptography - AES pp. 1 / 50

TABLE OF CONTENTS CHAPTER NO. TITLE PAGE NO.

Block Ciphers. Lucifer, DES, RC5, AES. CS 470 Introduction to Applied Cryptography. Ali Aydın Selçuk. CS470, A.A.Selçuk Block Ciphers 1

Public Key Cryptography

Security against Timing Analysis Attack

Hardware Implementation of Cryptosystem by AES Algorithm Using FPGA

Security+ Guide to Network Security Fundamentals, Third Edition. Chapter 11 Basic Cryptography

Issues in Information Systems Volume 18, Issue 2, pp , 2017

AES Advanced Encryption Standard

Some Stuff About Crypto

Applied Cryptography and Computer Security CSE 664 Spring 2018

Cryptography and Network Security

Syrvey on block ciphers

Public Key Algorithms

Analysis of Cryptography and Pseudorandom Numbers

Hybrid Public Key Cryptosystem Combining RSA & DES Algorithms

AES Cryptosystem Acceleration Using Graphics Processing Units. Ethan Willoner Supervisors: Dr. Ramon Lawrence, Scott Fazackerley

Cryptography (DES+RSA) by Amit Konar Dept. of Math and CS, UMSL

GPU Programming Using NVIDIA CUDA

Vortex: A New Family of One-way Hash Functions Based on AES Rounds and Carry-less Multiplication

Network Security Essentials

Introduction to Cryptographic Systems. Asst. Prof. Mihai Chiroiu

Chapter 9. Public Key Cryptography, RSA And Key Management

Goals for Today. Substitution Permutation Ciphers. Substitution Permutation stages. Encryption Details 8/24/2010

ENCRYPTION USING LESTER HILL CIPHER ALGORITHM

Cryptography III. Public-Key Cryptography Digital Signatures. 2/1/18 Cryptography III

An overview and Cryptographic Challenges of RSA Bhawana

Computer and Data Security. Lecture 3 Block cipher and DES

Comparison of Performance of AES Standards Based Upon Encryption /Decryption Time and Throughput

A SIMPLIFIED IDEA ALGORITHM

Symmetric-Key Cryptography

Fundamentals of Cryptography

IMPORTANCE OF NUMBER THEORY IN CRYPTOGRAPHY

International Journal of Advance Engineering and Research Development

Davenport University ITS Lunch and Learn February 2, 2012 Sneden Center Meeting Hall Presented by: Scott Radtke

CPSC 467b: Cryptography and Computer Security

VLSI Implementation of Advanced Encryption Standard for secured Electronic Voting Machine

Monte Carlo Scheme: Cryptography Application

The Application of Elliptic Curves Cryptography in Embedded Systems

STATE OF THE ART PARALLEL APPROACHES FOR RSA PUBLIC KEY BASED CRYPTOSYSTEM

Transcription:

2018 IJSRSET Volume 4 Issue 4 Print ISSN: 2395-1990 Online ISSN : 2394-4099 Themed Section : Engineering and Technology A Survey on AES (Advanced Encryption Standard) and RSA Encryption-Decryption in CUDA Manisha N. Kella * 1 and Sohil Gadhiya2 *1 Computer Engineering, C.U. Shah University, Wadhwan, Gujarat, India manishakella111@gmail.com 2 Computer Engineering, C.U. Shah University, Wadhwan, Gujarat, India manishakella111@gmail.com ABSTRACT CPUs and GPUs have fundamentally different design philosophies, but combining their characteristics could avail better performance and throughput. In this paper, we will study the technologies of GPU parallel computing and its optimized design for cryptography. The advent of the Compute Unified Device Architecture (CUDA) from NVIDIA Technology has shifted Graphics Processing Units (GPUs) from primarily graphics enabling devices to general-purpose stream processing devices. Cryptography is the study of techniques focused on security. Two algorithms are selected for investigation AES and RSA in CUDA. The designs of most cryptographic algorithms are such that they can benefit considerably from parallel computing, which consumer GPUs can provide inexpensively and economically. Parallelization of these security algorithms in order to distribute the complex computational part among the various cores available with the processors today, will achieve higher performance and also be more energy efficient. Hence, combination of both algorithms will help to provide better security and efficiency. Keywords: GPU, CPU, CUDA, AES, RSA, Cryptography I. INTRODUCTION Parallel computing involves simultaneous use of multiple compute resources to solve a large computational problem. The performance and energy benefits of parallelism are key drivers for the growth in parallel computing. Parallelization of security algorithms in order to distribute the complex computational part among the various cores available with the processors today, will achieve higher performance and also be more energy efficient. Cryptography is the study of techniques focused on security. Typically, an implementation of cryptography is computationally heavy, leading to performance issues on general purpose system. General-purpose computing on graphics processing units (GPGPU) is the use of a graphics processing unit (GPU), which typically handles computation only for computer graphics, to perform computation in applications traditionally handled by the central processing unit (CPU). Encryption and decryption are increasingly important. In order to protect the security of individuals, corporations and even governments, information needs to be secured against potential threats. Since AES on large blocks is computationally intensive and largely byte-parallel. Certain modes of AES are more IJSRSET1841212 Received : 03 April 2018 Accepted : 15 April 2018 March-April-2018 [(4) 4 : 1026-1030] 1026

easily parallelizable and these are ideal candidates for parallelization on GPUs. Also, using GPU resources as co-processors allows better utilization of the central processing unit. Analysis of RSA algorithm is also discussed. II. PARALLEL PROGRAMMING WITH CUDA The Graphics Processing Unit (GPU) has been an integral part of today s mainstream computing systems. The modern GPU is not only a powerful graphics engine but also a highly parallel programmable processer featuring peak arithmetic. And NVIDIA provides CUDA framework which is a general purpose parallel computing platform and programming model. With CUDA, programmers can parallel many computations easily. Figure 1. CPU Architecture The processor architecture differs considerably from that of the GPU because of the CPU main scope. The CPU has a purpose of multiple tasks and multiple types of computations. The GPU has a single purpose of mathematical computation in order to display graphics. III. PERFORMANCE OF GPU OVER CPU As a kind of computing device, GPU is featured of parallel computing compared with traditional CPU that is serial computing. The reason behind the discrepancy in computing mode between CPU and GPU is that GPU is specialized for compute-intensive, highly parallel computation exactly what graphics rendering is about and therefore designed such that more transistors are devoted to data processing rather than data caching and flow control. For parallel computing, the user can define threads which run on GPU in parallel using standard instructions we are familiar with within the field of general purpose programming. The user declares the number of threads which must be run on a single SM by specifying a block size. The user also defines multiple blocks of threads by declaring a grid size. A grid of threads makes up a single kernel of work which can be sent to GPU and when finished, in its entirety, is sent back to the host and made available to the application. Figure 2. GPU architecture IV. TRADITIONAL AES ALGORITHM AES algorithm is a symmetric key cryptography. The AES standard comprises three block ciphers, i.e. AES- 128, AES-192 and AES-256. The encryption of AES is carried out in blocks with a fixed block size of 128 bits each. The AES cipher calculation is specified as a number of repetitions of transformation rounds that convert the input plaintext into the final output of cipher text. Each round consists of several processing steps, including one that depends on the encryption key. A set of reverse rounds are applied to transform the cipher text back into the original plaintext using the same encryption key. From this figure, we can see that the AES-algorithm is iterative and several rounds. The input is a block of data and the initial key. Each 1027

round operates on the intermediate result of the previous round and is a sequence of the four transformations, namely Sub Bytes, Shift Rows, Mix Columns and Add Round-Key. The intermediate result of any step is called the state. The final round is slightly different and the output after several rounds is the block of encrypted data. 1. Key Expansion: Key expansion takes the input key of 128, 192 or 256 bits and produces an expanded key for use in the subsequent stages. The expanded key s size is related to the number of rounds to be performed. For 128-bit keys, the expanded key size is 352 bits. For 192 and 256 bit keys, the expanded key size is 624 and 960 bits. It is the expanded key that is used in subsequent phases of the algorithm. During each round, a different portion of the expanded key is used in the Add Round Key step. conjunction with the Shift Rows step, provides diffusion in the original message, spreading out any non-uniform patterns. At the end of the algorithm, the original message is encrypted. The decryption implementation results are similar to the encryption implementation. The key expansion module is modified in the reverse order. In which last round key is treated as the first round and decreasing order follows. 2. Add Round Key: During this stage of the algorithm, the message is combined with the state using the appropriate portion of the expanded key. 3. Sub Bytes: During this stage, the block is modified by using an 8- bit substitution, or S-Box. This is a non-linear transformation used to help avoid attacks based on algebraic manipulation. 4. Shift Rows: This stage of the algorithm shifts cyclically shifts the bytes of the block by certain offsets. Blocks of 128 and 192 bits leave the first 32-bits alone, but shift the subsequent 32-bit rows of data by 1, 2 and 3 bytes respectively. Figure 3: AES algorithm V. PRINCIPLE OF AES PARALLELISM In the traditional implementation of AES, the computation of data blocks is performed serially in GPU. Therefore, the efficiency and speed is poor. Figure illustrates the principle of AES parallelism. 5. Mix Columns: This stage takes the four bytes of each column and applies a linear transformation to the data. The column is multiplied by the coefficient polynomial c(x) = 3x3+x2+x+2 (modulo x4+1). This step, in Figure 4. Principle of AES parallelism 1028

From this figure, we can see that in GPU, it includes three components: the thread execution manager, the block manager and multiple threads. After CPU calls the kernel function executed in GPU, GPU will enable the block manger active through the thread execution manager. The block manager will then divide plaintext into multiple blocks. Then, each block will be computed in individual thread. Finally, the encrypted block will be outputted to CPU, which will be assembled into the cipher text. Since GPU allows the number of thread in parallel to be the magnitude of one hundred thousand. Therefore, the AES encryption on GPU has high efficiency of parallel computing. VI. EXISTING RSA ALGORITHM RSA is a algorithm for public-key cryptography developed by Ronald Rivest, Adi Shamir, and Leonard Adleman in 1977. It is suitable for both signing and encryption. Sufficiently long keys and up-to-date implementation of RSA is considered more secure to use. RSA is an asymmetric key encryption scheme which makes use of two different keys for encryption and decryption. The public key that is known to everyone is used for encryption. The messages encrypted using the public key can only be decrypted by using private key. The key generation process of RSA algorithm is as follows: The public key is comprised of a modulus n of specified length (the product of primes p and q), and an exponent e. The length of n is given in terms of bits, thus the term 8-bit RSA key" refers to the number of bits which make up this value. The associated private key uses the same n, and another value d such that d*e = 1 mod φ (n) where φ (n) = (p - 1)*(q - 1) [3]. For a plaintext M and cipher text C, the encryption and decryption is done as follows: C= M^e mod n M = C^d mod n. VII. PARALLELIZATION OF RSA ALGORITHM This novel parallelized implement of RSA algorithm can run parallel in two levels, thread level and the computer level, as we can see in below figure. Figure 5. Parallelization of RSA In the thread level, the parallel RSA algorithm is realized with CUDA framework. RSA algorithm divides the plaintext or the cipher text into several packets with the same length, the same encrypt or decrypt operation will be done for each packet. Here we suppose each packet is an array with the same element number, then the encrypt and the decrypt process can be done with multiple threads, each thread only need to gain the elements which are assigned to it, and run the same encrypt or decrypt function for these elements. CUDA user can get the thread and block index of the thread call it in the function running on device, so we can use the index to control the offset of the element and assign the right elements to the certain threads. In this level, the CUDA Multi-threaded programming model will dramatically enhanced the speed of RSA algorithm. CUDA user can get the thread and block index of the thread call it in the function running on device, so we can use the index to control the offset of the element and assign the right elements to the certain threads. In this level, the CUDA Multi-threaded programming model will dramatically enhance the speed of RSA algorithm. And if the plaintext needs to be encrypted or the cipher text needs to be decrypted is too large to be process on single computer, we can use distributed 1029

file system to distribute the text to a cluster system. Each node of the cluster system will run this parallel RSA algorithm. This is the computer level parallel. In this cluster environment, each node get a part of the plaintext or the cipher text, and then divides the part into several strings, run the RSA algorithm function in multiple threads just like the thread level does. VIII. CONCLUSION AND FUTURE WORK In this paper, an efficient way to enhance the encryption/decryption of AES and RSA using GPU s is proposed. This report presents the most efficient, currently known approaches in encryption and decryption of text with AES and RSA on programmable graphics processing units, achieving up to a great speed on a comparable CPU. If the amount of data is large, the encryption/decryption time required is greatly reduced, if it runs on a graphics processing environment. Future work will explore this concept and a combination of algorithms will be applied to setup a more secure environment for data storage and retrieval. [7]. GPU Computing By John D. Owens, Mike Houston, David Luebke, Simon Green, John E. Stone, and James C. Phillips. [8]. Best Practice Guide GPGPU Momme Allalen, Leibniz Supercomputing Centre Vali Codreanu, SURFsara Nevena Ilieva-Litova, NCSA Alan Gray, EPCC, The University of Edinburgh Anders Sjöström, LUNARC. [9]. http://www.tomshardware.com/reviews/nvidiacuda-gpu,1954-7.html [10]. The RSA Algorithm R. L. Rivest, A. Shamir, and L. Adleman. A method for obtaining digital signatures and publickey cryptosystems. Communications of the ACM, 21(2):120{126, 1978. [11]. International Journal of Innovative Research in Computer and Communication Engineering Vol. 4, Issue 4, April 2016 IX. REFERENCES [1]. Jason Sanders, Edward Kandrot, "Cuda by Example" Nvidia. [2]. J. Nickolls, I. Buck, M. Garland, and K. Skadron, Mar.2008.-Scalable Parallel Programming with CUDA. [3]. Mahajan, Sonam, and Maninder Singh. "Analysis of RSA algorithm using GPU programming.", 2014. [4]. National Institute of Standards and Technology(NIST), "FIPS 197: Advanced Encryption Standard(AES)," 2001. [5]. NVIDIA Corp. NVIDIA CUDA Programming Guide 2.3, 2009. [6]. J. Daemen, V. Rijmen, "AES Proposal: Rijndael". Original AES Submission to NIST, 1999. 1030