A SOFTWARE COMPARISON OF RSA AND ECC



Similar documents
The Mathematics of the RSA Public-Key Cryptosystem

CRYPTOGRAPHY IN NETWORK SECURITY

Mathematics of Internet Security. Keeping Eve The Eavesdropper Away From Your Credit Card Information

Software Tool for Implementing RSA Algorithm

Secure Network Communication Part II II Public Key Cryptography. Public Key Cryptography

Network Security. Computer Networking Lecture 08. March 19, HKU SPACE Community College. HKU SPACE CC CN Lecture 08 1/23

NEW DIGITAL SIGNATURE PROTOCOL BASED ON ELLIPTIC CURVES

Cryptography and Network Security Chapter 9

Cryptography and Network Security

Notes on Network Security Prof. Hemant K. Soni

SECURITY IMPROVMENTS TO THE DIFFIE-HELLMAN SCHEMES

CSCE 465 Computer & Network Security

Lecture Note 5 PUBLIC-KEY CRYPTOGRAPHY. Sourav Mukhopadhyay

Outline. Computer Science 418. Digital Signatures: Observations. Digital Signatures: Definition. Definition 1 (Digital signature) Digital Signatures

Applied Cryptography Public Key Algorithms

Number Theory and Cryptography using PARI/GP

Elements of Applied Cryptography Public key encryption

Computer Security: Principles and Practice

Overview of Public-Key Cryptography

Forward Secrecy: How to Secure SSL from Attacks by Government Agencies

The application of prime numbers to RSA encryption

Cryptography and Network Security Chapter 10

Principles of Public Key Cryptography. Applications of Public Key Cryptography. Security in Public Key Algorithms

An Efficient and Secure Key Management Scheme for Hierarchical Access Control Based on ECC

Elliptic Curve Cryptography

Split Based Encryption in Secure File Transfer

ANALYSIS OF RSA ALGORITHM USING GPU PROGRAMMING

Network Security. Chapter 2 Basics 2.2 Public Key Cryptography. Public Key Cryptography. Public Key Cryptography

Implementation of Elliptic Curve Digital Signature Algorithm

A Factoring and Discrete Logarithm based Cryptosystem

RSA Attacks. By Abdulaziz Alrasheed and Fatima

CIS 5371 Cryptography. 8. Encryption --

The science of encryption: prime numbers and mod n arithmetic

An Efficient Data Security in Cloud Computing Using the RSA Encryption Process Algorithm

Lecture 6 - Cryptography

A New Efficient Digital Signature Scheme Algorithm based on Block cipher

Number Theory and the RSA Public Key Cryptosystem

Final Exam. IT 4823 Information Security Administration. Rescheduling Final Exams. Kerberos. Idea. Ticket

International Journal of Information Technology, Modeling and Computing (IJITMC) Vol.1, No.3,August 2013

CIS 6930 Emerging Topics in Network Security. Topic 2. Network Security Primitives

Discrete Mathematics, Chapter 4: Number Theory and Cryptography

CS 758: Cryptography / Network Security

SFWR ENG 4C03 - Computer Networks & Computer Security

Public Key Cryptography Overview

Mathematical Model Based Total Security System with Qualitative and Quantitative Data of Human

MATH 168: FINAL PROJECT Troels Eriksen. 1 Introduction

Public Key (asymmetric) Cryptography

Lecture 9: Application of Cryptography

7! Cryptographic Techniques! A Brief Introduction

Public Key Cryptography: RSA and Lots of Number Theory

FAREY FRACTION BASED VECTOR PROCESSING FOR SECURE DATA TRANSMISSION

Shor s algorithm and secret sharing

AN IMPLEMENTATION OF HYBRID ENCRYPTION-DECRYPTION (RSA WITH AES AND SHA256) FOR USE IN DATA EXCHANGE BETWEEN CLIENT APPLICATIONS AND WEB SERVICES

Embedding more security in digital signature system by using combination of public key cryptography and secret sharing scheme

ECE 842 Report Implementation of Elliptic Curve Cryptography

Implementing Network Security Protocols

CS 348: Computer Networks. - Security; 30 th - 31 st Oct Instructor: Sridhar Iyer IIT Bombay

Breaking The Code. Ryan Lowe. Ryan Lowe is currently a Ball State senior with a double major in Computer Science and Mathematics and

Cryptography: Motivation. Data Structures and Algorithms Cryptography. Secret Writing Methods. Many areas have sensitive information, e.g.

Review of methods for secret sharing in cloud computing

Number Theory. Proof. Suppose otherwise. Then there would be a finite number n of primes, which we may

Computer Networks. Network Security 1. Professor Richard Harris School of Engineering and Advanced Technology

Cryptographic hash functions and MACs Solved Exercises for Cryptographic Hash Functions and MACs

Security Strength of RSA and Attribute Based Encryption for Data Security in Cloud Computing

Simple Encryption/Decryption Application

Public Key Cryptography. Performance Comparison and Benchmarking

A NOVEL STRATEGY TO PROVIDE SECURE CHANNEL OVER WIRELESS TO WIRE COMMUNICATION

Software Implementation of Gong-Harn Public-key Cryptosystem and Analysis

Basic Algorithms In Computer Algebra

Module: Applied Cryptography. Professor Patrick McDaniel Fall CSE543 - Introduction to Computer and Network Security

Symmetric Key cryptosystem

Chapter 10. Network Security

Advanced Cryptography

Table of Contents. Bibliografische Informationen digitalisiert durch

Cryptography and Network Security Department of Computer Science and Engineering Indian Institute of Technology Kharagpur

Cryptography & Network Security. Introduction. Chester Rebeiro IIT Madras

Cryptography: Authentication, Blind Signatures, and Digital Cash

Multi-Layered Cryptographic Processor for Network Security

IMPLEMENTATION AND PERFORMANCE ANALYSIS OF ELLIPTIC CURVE DIGITAL SIGNATURE ALGORITHM

Public Key Cryptography. c Eli Biham - March 30, Public Key Cryptography

Capture Resilient ElGamal Signature Protocols

2. Cryptography 2.4 Digital Signatures

An Approach to Shorten Digital Signature Length

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

CUNSHENG DING HKUST, Hong Kong. Computer Security. Computer Security. Cunsheng DING, HKUST COMP4631

COMPARISON AND EVALUATION OF DIGITAL SIGNATURE SCHEMES EMPLOYED IN NDN NETWORK

THE ADVANTAGES OF ELLIPTIC CURVE CRYPTOGRAPHY FOR WIRELESS SECURITY KRISTIN LAUTER, MICROSOFT CORPORATION

Public Key Cryptography of Digital Signatures

A New Generic Digital Signature Algorithm

One Time Pad Encryption The unbreakable encryption method

HASH CODE BASED SECURITY IN CLOUD COMPUTING

Network Security CS 5490/6490 Fall 2015 Lecture Notes 8/26/2015

Digital Signatures. Meka N.L.Sneha. Indiana State University. October 2015

Outline. CSc 466/566. Computer Security. 8 : Cryptography Digital Signatures. Digital Signatures. Digital Signatures... Christian Collberg

Dr. Jinyuan (Stella) Sun Dept. of Electrical Engineering and Computer Science University of Tennessee Fall 2010

Secure Network Communication Based on Text-to-Image Encryption

Java Coding Ground With Security Editor

Keywords- Cloud Computing, Android Platform, Encryption, Decryption, NTRU, RSA, DES, throughput.

SE 4472a / ECE 9064a: Information Security

A Novel Approach to combine Public-key encryption with Symmetric-key encryption

Transcription:

International Journal Of Computer Science And Applications Vol. 2, No. 1, April / May 29 ISSN: 974-13 A SOFTWARE COMPARISON OF RSA AND ECC Vivek B. Kute Lecturer. CSE Department, SVPCET, Nagpur 9975549138 vivek_kute@rediffmail.com ABSTRACT To meet a user s needs cryptographic algorithm needs to be selected on the basis of attributes like security and performance. One of the tasks of a cryptosystem designer is to weigh the advantages and disadvantages and select the algorithmic tools that best address the problem to be solved. RSA is the most popular public-key cryptosystem today but longterm trends such as the proliferation of smaller, simpler devices and increasing security needs will make continued reliance on RSA more challenging over time. Hence Elliptic Curve Cryptography (ECC) is a suitable alternative. This paper focuses on performance attribute of public key cryptosystems. The algorithms studied and compared are RSA, ECC. We have implemented these algorithms in Java in order to perform software tests so that we may gain insight into the relative performance of each algorithm and its associative parameters. Software based tests are performed to yield an overall analysis of key generation, message encryption and decryption. Implementations are in Java and executable in the Windows environment. Each algorithm is tested for key generation and encryption/decryption of ordinary but large files. Categories and Subject Descriptors Network Security General Terms Algorithms, Security. Keywords Cryptographic Algorithms, Elliptic curve cryptography, RSA, Encryption / Decryption, Public Key Cryptography. 1 INTRODUCTION Public key cryptography is based on the creation of mathematical puzzles that are difficult to solve without certain knowledge about how they were created. The creator keeps that knowledge secret (the private key) and publishes the puzzle (the public key). A Class of puzzle involves solving the equation a b = c for b when Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Copyright 28 Research Publications, Chikhli, India P. R. Paradhi Lecturer, CSE Department, RKNEC, Nagpur 982349376 praful_pardhi@rediffmail.com G. R. Bamnote Sr. Lecturer, CSE Department, PRMIT, Badnera, 9421741516 grbamnote@rediffmail.com a and c are known. Such equations involving real or complex numbers are easily solved using logarithms. However, in a large finite group, finding solutions to such equations is quite difficult and is known as the discrete logarithm problem.[1,2,5,8,11] This paper focuses on implementation aspects of 2 public key cryptography algorithms: RSA and ECC and evaluate the algorithms with respect to time required for key generation, encryption and decryption. Ron Rivest, Adi Shamir and Leon Adleman invented the RSA system in 1977. It is based on the assumption that it is easy to multiply two prime numbers, but difficult to divide the result again into the two prime numbers. Neil Koblitz invented elliptic curve cryptography in 1987.Elliptic curve cryptography works with points on a curve. The security of this type of public key cryptography depends on the elliptic curve discrete logarithm problem. The main advantage of elliptic curve cryptography is that the keys can be much smaller. Recommended key sizes are in the order of 16 bits rather than 124 bits for RSA.[1,11] 2 PUBLIC KEY ALGORITHMS In this section we discus issues about the two public key algorithms RSA and ECC. 2.1 A Public Key Algorithm: RSA In cryptology, RSA is an algorithm for public-key encryption. It was the first algorithm known to be suitable for signing as well as encryption, and one of the first great advances in public key cryptography. RSA is still widely used in electronic commerce protocols, and is believed to be secure given sufficiently long keys and the use of up-to-date implementations. Operation: RSA involves a public and private key. The public key can be known to everyone and is used for encrypting messages. Messages encrypted with the public key can only be decrypted using the private key. The public key consists of the modulus n and the public (or encryption) exponent e. The private key consists of the modulus n and the private (or decryption) exponent d which must be kept secret. Encrypting messages: Alice transmits her public key ( n & e ) to Bob and keeps the private key secret. Bob then wishes to send message M to Alice. He first turns M into a number m < n by using an agreed-upon reversible protocol known as a padding scheme. He then computes the ciphertext c corresponding to: c = m e mod n c This can be done quickly using the method of exponentiation by squaring. Bob then transmits c to Alice. Published by Research Publications, Chikhli, India 61

International Journal Of Computer Science And Applications Vol. 2, No. 1, April / May 29 ISSN: 974-13 Decrypting messages:alice can recover m from c by using her private key d in the following procedure: m = c d mod n Given m, she can recover the original message M. The decryption procedure works because first c d (m e ) d m ed (mod n). 2.2 A public Key Algorithm: ECC Elliptic curve cryptography (ECC) is an approach to public-key cryptography based on the algebraic structure of elliptic curves over finite fields. Elliptic curves are also used in several integer factorization algorithms that have applications in cryptography, such as, for instance, Lenstra elliptic curve factorization, but this use of elliptic curves is not usually referred to as "elliptic curve cryptography." Public key cryptography is based on the creation of mathematical puzzles that are difficult to solve without certain knowledge about how they were created. The creator keeps that knowledge secret (the private key) and publishes the puzzle (the public key). The puzzle can then be used to scramble a message in a way that only the creator can unscramble. Early public key systems, such as the RSA algorithm, used products of two large prime numbers as the puzzle: a user picks two large random primes as her private key, and publishes their product as her public key. The difficulty of factoring ensures that no one else can derive the private key (i.e., the two prime factors) from the public one. However, due to recent progress in factoring, RSA public keys must now be thousands of bits long to provide adequate security. Another class of puzzle involves solving the equation a b = c for b when a and c are known. Such equations involving real or complex numbers are easily solved using logarithms. However, in a large finite group, finding solutions to such equations is quite difficult and is known as the discrete logarithm problem. [1,2,5,8,11] An elliptic curve is a plane curve defined by an equation of the form y 2 = x 3 + a x + b. The set of points on such a curve (i.e., all solutions of the equation together with a point at infinity) can be shown to form an abelian group (with the point at infinity as identity element). If the coordinates x and y are chosen from a large finite field, the solutions form a finite abelian group. The discrete logarithm problem on such elliptic curve groups is believed to be more difficult than the corresponding problem in (the multiplicative group of nonzero elements of) the underlying finite field. Thus keys in elliptic curve cryptography can be chosen to be much shorter for a comparable level of security. 3 IMPLEMENTATION Its not difficult to find a cryptographic algorithms. Varity of options are available. The developer will have to analyze the algorithm for its suitability to his system. For this he has to implement cryptographic algorithms and select the efficient one. So in this project we have implemented the standard cryptographic algorithms and compared them. The algorithms we have implemented are RSA and ECC. Software based tests are performed to yield an overall analysis of key generation, message encryption and decryption. Implementations are in Java and executable in the Windows environment. Each algorithm is tested for performing the following functions using ordinary but large files. of private and public keys Encryption using public/private keys Decryption using public/private keys 3.1 The Algorithm RSA Each entity creates an RSA public Key and corresponding private Key. Each entity has to select two large prime numbers and will create public key and private key. The selected two prime numbers should be large and of same size. Then we will calculate their product and choose a random number. This random number and the product will be the public key. Compute a unique number using Extended Euclidean Algorithm. This number and the random number should be congruent to modulo product of prime numbers. This unique number will be the private key. Now public key and private keys are generated. Each entity will publish the public key to all and will keep the private key secret. If any entity A wants to send message to entity B, then A have to use B s public key to encrypt the message and send the encrypted message to B. B in turn will use its private key to decrypt the encrypted message. Any entity wanting to send something to other entity it have to encrypt the message using other entities public key which the receiver entity can only decrypt using its private key. 3.1.1 PROCESS OF ENCRYPTION AND DECRYPTION The message will be some text or image data. We need to find its binary representation and divide the message into blocks so that the binary digits should be in the range from to the product of prime numbers minus 1.Now each such binary block of message will be considered m and the entity B will apply the encryption algorithm on it. So each such block will be encrypted and a file of encrypted message will be created which will be sent to entity A. Entity A takes the encrypted file finds its binary representation and divides it into blocks. It applies the decryption algorithm on each block. Ultimately it creates the decrypted file, which will be nothing but the actual message. Published by Research Publications, Chikhli, India 62

International Journal Of Computer Science And Applications Vol. 2, No. 1, April / May 29 ISSN: 974-13 3.2 The Algorithm ECC At first we will take a curve in the form Y^2=X^3+aX+b. where a and b are curve parameters We then choose a prime number. Using point adding and point doubling we compute the points on the curve. Select a generating point out of those points whose order should be large. Then take a random number less than order of generating point as a private number for each entity. This will be a secret key. This entity will then generate its public key by multiplying the generating number with the secret number and will publish the point.. 3.2.1 PROCESS OF ENCRYPTION AND DECRYPTION The first task in this system is to encode the plaintext message m to be sent as an x-y point Pm. It will be the point Pm that will be encrypted as a cipher text and subsequently decrypted. As with the key exchange system, an encryption/decryption system requires a point G and an elliptic group Ep(a,b) as parameters. Each user A selects a private key na and generates a public key PA= na X G. To encrypt and send a message Pm to B, A chooses a random positive integer x and prduces the cipher text Cm consisting to the pair of points Cm = {xg, Pm + xpb}. (A uses B s public key PB to encrypt the message.) To decrypt the cipher text, B multiplies the first point in the pair by B s secret key and subtracts the result from the second point : Pm + xpb nb(xg) = Pm + x(nbg) nb(xg) = Pm A has masked the message Pm by adding xpb to it. Nobody but A knows the value of x, so even though PB is a public key, nobody can remove the mask xpb. However, A also includes a clue,which is enough to remove the mask if one knows the private key nb. For an attacker to recover the message, the attacker have to compute x given G and xg which is hard. 4 IMPLEMENTATION RESULTS We have tested the implementation of RSA and ECC separately. The tests are done for comparing the time required for key generation, encryption and decryption in both algorithms. The results are shown by following tables and graphs. Tables and graphs for RSA : Table. 1. Key generation time Prime N b Public Key Private Key generation 8 47 16 16 31 15 Table 2.Enc/Dec using 8 bit Prime Number File Size (in KB) Encryptionn Decryption 22 1197 12438 87 1828 14219 174 1762 1636 2 12 1 8 6 4 2 15 1 5 Fike size(kb) Table 3.Enc/Dec using 16 bit Prime Number 22 3782 4328 87 4297 4188 174 4265 439 Published by Research Publications, Chikhli, India 63

International Journal Of Computer Science And Applications Vol. 2, No. 1, April / May 29 ISSN: 974-13 8 6 4 2 25 2 15 1 5 7 6 5 4 3 2 1 Tables and graphs for ECC : Table. 4. Key generation time Prime Number (size bits) in Curve Point A s key A s key 8 79 16 3378766 12323 122922 Table 5.Enc/Dec using 8 bit Prime Number 22 32937 1346 87 99922 38734 174 199484 7725 1 8 6 4 2 Table 6.Enc/Dec using 16 bit Prime Number 22 51391 24187 87 93741 7542 174 113947 115137 12 1 8 6 4 2 Published by Research Publications, Chikhli, India 64

International Journal Of Computer Science And Applications Vol. 2, No. 1, April / May 29 ISSN: 974-13 14 12 1 8 6 4 2 From above tables we reach to the following conclusion Table 7 Concluding Table RSA ECC Key generation FAST LESS FAST Encryption VERY FAST LESS FAST Decryption LESS FAST FAST 5 CONCLUSIONS In today s digital world there is a tremendous growth in the usage of the Internet. A day will come when almost all the work can be made possible with Internet. Behind one software generator there are hundreds of hackers. So, a fraction of second will be enough to destroy the world Internet. Hence we require strong algorithms, which secure the Internet works. From the implementation of RSA and ECC algorithms we now can conclude that operations in RSA are comparatively faster than ECC. In RSA key generation and encryption are faster whereas decryption is slower. On the other hand in ECC key generation and encryption are slower whereas the decryption is faster. From this conclusion RSA is faster but it is said that security wise ECC is stronger than RSA. 6 REFERENCES [1] Menzer, Alfred et al, Handbook of Applied Cryptography(2/e,CRC press 1996). [2] William Stallings, Cryptography and Network Security( 4/e, Pearson Education). [3] Bruce Schneier, Applied Cryptograph y(2/e, John Willey and Sons, INC.,1996). [4] William Stallings, Network Security Essentials, Applications and Standards (2/e, Pearson Education) [5] Alfred J. Menezes, Paul C. van Oorschot, and Scott A. Vanstone, Handbook of Applied Cryptography [6] Koblitz, N. (1987), Elliptic Curve Cryptosystems, Mathematics of Computation, ( Vol. 48) [7] Stallings W. (1999), Cryptography and Network Security: Principles and Practice ( 2nd ed., Prentice) [8] Atul Kahate, Cryptography and Network Security ( Tata McGraw-Hill) [9] Behrouz A Forouuzan, Data Communication and Networking ( 4/e, Tata McGraw-Hill ) [1] Kostas zotos, Andreas litke, Cryptography and Encryption (department of applied mathematics University of Macedonia) [11] http://www.iusmentis.com/technology/encryption/ellipticcurves/#introduction, Introduction [12] http://en.wikipedia.org/wiki/cryptography, History of Cryptography [13] Phil Zimmermann, Introduction to Cryptography chapter 1 Basics of Cryptography [14] http://en.wikipedia.org/wiki/elliptic_curve_cryptography [15] http://en.wikipedia.org/wiki/rsa [16] Robert Zuccherato, Elliptic Curve Cryptography Support in Entrust (v-1,may 9 2) [17] High-Speed RSA Implementation. Technical report, RSA Laboratories TR21, November 1994. [18] Lenka and Jozef, Practical Cryptogrphy-The Key Size Problem :PGP after years 21 Dec 21 [19] RSA Scheme With MRF And ECC For Data Encryption Chaur-Chin Chen [2] http://www.certicom.com/index.php?action=ecc, Published by Research Publications, Chikhli, India 65