Ashraf Abusharekh Kris Gaj Department of Electrical & Computer Engineering George Mason University



Similar documents
Public Key Cryptography. Performance Comparison and Benchmarking

Computer and Network Security

Adobe LiveCycle ES Update 1 System Requirements Adobe LiveCycle ES Foundation-based solution components

IMPLEMENTATION AND PERFORMANCE ANALYSIS OF ELLIPTIC CURVE DIGITAL SIGNATURE ALGORITHM

High-Performance Modular Multiplication on the Cell Processor

Overview of Public-Key Cryptography

A blind digital signature scheme using elliptic curve digital signature algorithm

Table of Contents. Bibliografische Informationen digitalisiert durch

COMPARISON AND EVALUATION OF DIGITAL SIGNATURE SCHEMES EMPLOYED IN NDN NETWORK

Cryptography & Network-Security: Implementations in Hardware

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

Study of algorithms for factoring integers and computing discrete logarithms

NEW DIGITAL SIGNATURE PROTOCOL BASED ON ELLIPTIC CURVES

PC Business Banking. Technical Requirements

Evaluation of Digital Signature Process

Digital Signature. Raj Jain. Washington University in St. Louis

Cryptographic Algorithms and Key Size Issues. Çetin Kaya Koç Oregon State University, Professor

Implementing Network Security Protocols

Digital Signatures. (Note that authentication of sender is also achieved by MACs.) Scan your handwritten signature and append it to the document?

Software Implementations of Elliptic Curve Cryptography

Determining the Optimal Combination of Trial Division and Fermat s Factorization Method

Hardware Implementations of RSA Using Fast Montgomery Multiplications. ECE 645 Prof. Gaj Mike Koontz and Ryon Sumner

High-speed high-security cryptography on ARMs

Figure 1: Application scheme of public key mechanisms. (a) pure RSA approach; (b) pure EC approach; (c) RSA on the infrastructure

A FAST IMPLEMENTATION OF THE RSA ALGORITHM USING THE GNU MP LIBRARY

Faster polynomial multiplication via multipoint Kronecker substitution

Library (versus Language) Based Parallelism in Factoring: Experiments in MPI. Dr. Michael Alexander Dr. Sonja Sewera.

A New secure scheme Using Digital Signature with S/MIME

ECE 842 Report Implementation of Elliptic Curve Cryptography

Digital Signature Standard (DSS)

CERTIFICATE MAINTENANCE and REVIEW RECORD

ARCHIVED PUBLICATION

Embedded Operating Systems in a Point of Sale Environment. White Paper

Textbooks: Matt Bishop, Introduction to Computer Security, Addison-Wesley, November 5, 2004, ISBN

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

Implementation of Elliptic Curve Digital Signature Algorithm

Runtime and Implementation of Factoring Algorithms: A Comparison

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

Microsoft Windows Server 2003 with Internet Information Services (IIS) 6.0 vs. Linux Competitive Web Server Performance Comparison

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

Operating System Compiler Bits Part Number CNL 6.0 AMD Opteron (x86-64) Windows XP x64 Intel C Microsoft Platform SDK 64 P10312

ANALYSIS OF RSA ALGORITHM USING GPU PROGRAMMING

The Department of Computer Science and Engineering established in 2002 offers the following academic programmes:

A New Efficient Digital Signature Scheme Algorithm based on Block cipher

Haswell Cryptographic Performance

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

RSA Digital Certificate Solution

Efficient and Robust Secure Aggregation of Encrypted Data in Wireless Sensor Networks

Trend Micro OfficeScan 10.6 SP3 System Requirements

Signature Schemes. CSG 252 Fall Riccardo Pucella

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

Performance Investigations. Hannes Tschofenig, Manuel Pégourié-Gonnard 25 th March 2015

Trend Micro OfficeScan 10.6 SP2 System Requirements

Frequently Asked Questions

Certicom Security for Government Suppliers developing client-side products to meet the US Government FIPS security requirement

A New Generic Digital Signature Algorithm

Trend Micro OfficeScan 11.0 System Requirements

The Mathematics of the RSA Public-Key Cryptosystem

Discrete Mathematics, Chapter 4: Number Theory and Cryptography

Lytec 2014 Hardware and Software Requirements. Lytec Single-User Hardware and Software Requirements

Thanks, But No Thanks

IBM Unica PredictiveInsight Version Publication Date: June 7, Recommended Software Environments and Minimum System Requirements

The operating system requirements listed in this document include the most current patches and service packs.

IMPROVED SECURITY MEASURES FOR DATA IN KEY EXCHANGES IN CLOUD ENVIRONMENT

Public Key Cryptography in Practice. c Eli Biham - May 3, Public Key Cryptography in Practice (13)

Elements of Applied Cryptography Public key encryption

Computer Security: Principles and Practice

Computer Performance. Topic 3. Contents. Prerequisite knowledge Before studying this topic you should be able to:

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

PERFORMANCE ENHANCEMENTS IN TreeAge Pro 2014 R1.0

HULFT7e for i5os(ver.7.3.0) Effective on 3 Apr HULFT7e for UNIX-M(Ver.7.3.0) HULFT7e for UNIX-L(Ver.7.3.0) Effective on 3 Apr.

Security Policy for Oracle Advanced Security Option Cryptographic Module

İSTANBUL AYDIN UNIVERSITY

Practical Invalid Curve Attacks on TLS-ECDH

Computer Architectures

Elliptic Curve Cryptography

CRYPTOGRAPHY IN NETWORK SECURITY

2014 IBM Corporation

Giac/Xcas, a swiss knife for mathematics

Lecture 3: One-Way Encryption, RSA Example

Enfinity Suite 6.3 System Requirements Sheet

Two Binary Algorithms for Calculating the Jacobi Symbol and a Fast Systolic Implementation in Hardware

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

Network Security. Security Attacks. Normal flow: Interruption: 孫 宏 民 Phone: 國 立 清 華 大 學 資 訊 工 程 系 資 訊 安 全 實 驗 室

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

Outline. Performance comparisons of elliptic curve systems in software. Goals. 1. Elliptic curve digital signature algorithm (ECDSA)

CERTIFICATE AUTHORITY SCHEMES USING ELLIPTIC CURVE CRYPTOGRAPHY, RSA AND THEIR VARIANTS- SIMULATION USING NS2

Cryptography and Key Management Basics

RSA Question 2. Bob thinks that p and q are primes but p isn t. Then, Bob thinks Φ Bob :=(p-1)(q-1) = φ(n). Is this true?

How To Login To Webex Online

A PERFORMANCE EVALUATION OF COMMON ENCRYPTION TECHNIQUES WITH SECURE WATERMARK SYSTEM (SWS)

Transcription:

COMPARATIVE ANALYSIS OF SOFTWARE LIBRARIES FOR PUBLIC KEY CRYPTOGRAPHY Ashraf Abusharekh Kris Gaj Department of Electrical & Computer Engineering George Mason University 1

OBJECTIVE Evaluation of Multi-precision Arithmetic Libraries for Use in Public Key Cryptography Practical Recommendations Which library is best for a particular application? 2

PUBLIC KEY SCHEMES OPERATIONS(1) Signature Scheme RSA DSA ECDSA System Parameters N/A Primality Testing EC Generation Point Counting Key Generation Modular Exponentiation Multiplication GCD xgcd Modular Exponentiation Scalar Multiplication Signature Generation Modular Exponentiation Addition Multiplication Modular Exponentiation xgcd Scalar Multiplication Addition Multiplication xgcd Signature Verification Modular Exponentiation Multiplication Modular Exponentiation xgcd Scalar Multiplication Multiplication xgcd Point Addition3

PUBLIC KEY SCHEMES OPERATIONS(2) Large Integers (768 2048) Addition, Multiplication, Modular Exponentiation, GCD, xgcd, Primality Testing Elliptic Curve Points (140 224) Elliptic Curve Point Addition and Scalar Multiplication Problem: Operations are difficult to implement. Solution: Use existing libraries. 4

LIBRARIES Many arithmetic and number theoretic libraries, commercial and in the public domain have been developed to perform these multi-precision arithmetic operations efficiently Beecrypt, BIGNUM, Botan, bnlib, CLN, cryptolib, CryptoPP, freelip, GMP, Libgcrypt, LiDIA, linteger, MIRACL, nettle, NTL, OpenSSL, PARI, PIOLOGIE, zen.. Problem: Which one to use? 5

EVALUATED LIBRARIES 6

PLATFORMS Processor/hardware 2.00 GHz Pentium IV Processor, 512 MB RAM Sun: 2x 400 MHz UltraSPARC-Solaris-II, 4-MB E-cache, 2048 MB RAM Operating System Windows XP Cygwin RedHat Linux 9.0 Solaris 5.8 Compiler GNU C/C++ 3.3.1 GNU C/C++ 3.3.1 GNU C/C++ 2.95.2 7

EVALUATION CRITERIA PRIMARY Performance of Primitive Operations Support for Public Key Cryptosystems Primitive Operations Public Key Schemes SECONDARY Documentation & Ease of Use Supported Compilers 8

Evaluation Criteria Documentation & Ease of Use Sufficient Documentation GMP LiDIA MIRACL NTL CLN PIOLOGIE Best Insufficient Worst CryptoPP OpenSSL Hard Ease of use Easy 9

SUN WorkShop C++ Evaluation Criteria Supported Compilers MIPSpro C++ MSVC KAI C++ VisualAge C++ IBM CSet++ IBM C++ HP C++ HP ac++ GNU C/C++ MSVC MSVC Digital C++ Intel C/C++ Microsoft embedded Visual C++ MSVC front end GNU C/C++ GNU C/C++ Intel C/C++ Borland C/C++ Sun WorkShop, Forte C++ DEC C GNU C/C++ Apogee C++ CodeWarrior Pro CodeWarrior Pro Borland C/C++ MSVC Watcom C++ Borland Builder C++ Borland C/C++ ARM C GNU C/C++ GNU C/C++ GNU C/C++ GNU C/C++ PIOLOGIE CryptoPP OpenSSL MIRACL NTL CLN GMP 10 LiDIA

OPERATIONS, OPERAND SIZES Large Integers (768/1024/2048) Multiplication, Modular Exponentiation, GCD, xgcd, Primality Testing E(F P ) (162/224/384) Addition, Point Scalar Multiplication E(F 2^n ) (163/233/409) Addition, Scalar Multiplication 11

METHODOLOGY(1) Measuring Performance of Operations RDTSC Method: Clock Cycles Pentium IV: RDTSC Instruction Timing Method: Milliseconds UltraSPARC-II, gettimeofday() 100 execution times for each operation 12

METHODOLOGY(2) Operands Large Integers: Random I n, J n, K n, n = {768, 1024, 2048} Random Primes P n (j), n = {768, 1024, 2048}, j = [0, 9] E(F 2^n ) SEC 2 recommended 163, 233, 409. Random Points T n, S n, n = {163, 233, 409} E(F P ) Random, 162, 226, 386. Random Points T n, S n, n = {162, 226, 386} 13

METHODOLOGY(3) Operation Ranking P4-WinXP/MULTIPLICATION(Clock Cycles) Library result 768 result 1024 result 2048 CLN 8,940 11,763 29,133 CryptoPP 38,432 37,928 78,755 GMP 3,423 5,364 17,605 LiDIA 3,573 6,047 18,722 MIRACL 10,974 18,613 71,512 NTL 3,381 5,426 17,722 OpenSSL 9,055 15,218 48,438 Piologie 29,910 41,163 113,977 Min n 3,381 5,364 17,605 Library P4-WinXP/MULTIPLICATION Ranking R 768 R 1024 R 2048 CLN 2.64 2.19 1.65 CryptoPP 11.37 7.07 4.47 GMP 1.01 1.00 1.00 LiDIA 1.06 1.13 1.06 MIRACL 3.25 3.47 4.06 NTL 1.00 1.01 1.01 OpenSSL 2.68 2.84 2.75 Piologie 8.85 7.67 6.47 Rank 2.12 7.11 1.00 1.08 3.58 1.01 2.75 7.60 Operation Rank/Lib/OS= 3 n=768,1024,2048 R n where R n = result n Min n 14

METHODOLOGY(4) Library Ranking X 1 X 2 X 3 X 4 X 5 X 6 Library MUL E = 3 E = 65537 Large E GCD xgcd P4-WinXP Rank CLN 2.12 2.23 2.25 2.79 1.34 1.37 1.95 CryptoPP 7.11 15.17 4.71 4.04 464.90 9.99 14.56 GMP 1.00 1.00 1.00 1.00 1.01 1.08 1.01 LiDIA 1.08 1.45 1.08 1.65 1.03 1.10 1.21 MIRACL 3.58 22.40 4.56 2.62 5.15 3.15 5.00 NTL 1.01 1.42 1.17 1.18 1.00 1.00 1.12 OpenSSL 2.75 8.07 2.65 2.33 8.31 12.17 4.90 PIOLOGIE 7.60 7.40 6.63 10.65 16.41 213.30 15.51 Library Rank/OS= N N k=1 X k 15

RESULTS LARGE INTEGERS RESULTS P4-WinXP RESULTS RedHat 18.00 12.00 16.00 14.00 10.00 12.00 8.00 Rank 10.00 8.00 6.00 Rank 6.00 4.00 4.00 2.00 2.00 0.00 GMP NTL LiDIA CLN OpenSSL MIRACL CryptoPP Piologie 0.00 GMP NTL LiDIA CLN MIRACL OpenSSL Piologie CryptoPP Library Library RESULTS UltraSPARC-Solaris 40.00 35.00 30.00 25.00 Rank 20.00 15.00 10.00 5.00 0.00 GMP NTL LiDIA CLN OpenSSL PIOLOGIE MIRACL CryptoPP Library 16

Results Operations On Large Integers Fast Medium Slow GMP WinXP/Solaris RH RH/Solaris WinXP NTL 4.9 OpenSSL 4.4 MIRACL 4.5 9.2 PIOLOGIE 7.0 CryptoPP 14.6 LiDIA 5.0 MIRACL 7.3 OpenSSL 4.9 9.8 CryptoPP 35.0 PIOLOGIE15.5 CLN Free 17

RESULTS E(F p ) RESULTS P4-WinXP RESULTS RedHat Rank 5.00 4.50 4.00 3.50 3.00 2.50 2.00 1.50 1.00 0.50 0.00 OpenSSL Miracl LiDIA CryptoPP Rank 4.00 3.50 3.00 2.50 2.00 1.50 1.00 0.50 0.00 OpenSSL LiDIA Miracl CryptoPP Library Library RESULTS UltraSPARC-Solaris 4.00 3.50 3.00 2.50 Rank 2.00 1.50 1.00 0.50 0.00 OpenSSL LiDIA Miracl CryptoPP Library 18

RESULTS E(F 2^n ) RESULTS P4-WinXP RESULTS RedHat Rank 5.00 4.50 4.00 3.50 3.00 2.50 2.00 1.50 1.00 0.50 0.00 Miracl LiDIA CryptoPP Rank 10.00 9.00 8.00 7.00 6.00 5.00 4.00 3.00 2.00 1.00 0.00 LiDIA Miracl CryptoPP Library Library RESULTS UltraSPARC-Solaris 18.00 16.00 14.00 12.00 Rank 10.00 8.00 6.00 4.00 2.00 0.00 LiDIA Miracl CryptoPP Library 19

Results Operations On EC Points EC2 ECP WinXP RH/Solaris WinXP RH/Solaris 1.0 MIRACL 1.0 LiDIA 1.0 OpenSSL OpenSSL 1.4 1.0 1.0 1.3 LiDIA 1.4 MIRACL 1.2 1.5 MIRACL 1.25 LiDIA 1.3 CryptoPP CryptoPP 4.5 9.1 16.9 2.6 LiDIA 1.8 MIRACL 2.0 4.7 CryptoPP 3.6 CryptoPP 8.2 Free 20

FACTORS AFFECTING PERFORMANCE Low level routines Targeting Pentium 4 and UltraSPARC Algorithms Choice of algorithm and algorithm parameters Different implementations 21

Factors Affecting Performance Examples 768bit 1024bit 2048bit P4-WinXP/MULTIPLICATION (Clock Cycles) Piologie Library result 768 result 1024 result 2048 Libraries OpenSSL MIRACL GMP/LiDIA/NTL SPARC GMP/LiDIA/NTL PIV Classic Karatsuba Karatsuba-Comba CLN CryptoPP GMP LiDIA MIRACL NTL 8,940 38,432 3,423 3,573 10,974 3,381 11,763 37,928 5,364 6,047 18,613 5,426 29,133 78,755 17,605 18,722 71,512 17,722 CryptoPP OpenSSL 9,055 15,218 48,438 CLN Piologie Min n 29,910 3,381 41,163 5,364 113,977 17,605 22

SUPPORT FOR PUBLIC KEY CRYPTOSYSTEMS PIOLOGIE OpenSSL NTL MIRACL LiDIA GMP CryptoPP CLN Support for Primitive Large Integers Operations Support for Primitive E(F p ) Operations Support for Primitive E(F 2^n ) Operations EC Generation and Point Counting EC2/ECP 23

Which library is best for implementing PK Schemes operating on LARGE INTEGERS? High Performance GMP,NTL, LiDIA CLN PIOLOGIE OpenSSL MIRACL Best Low Worst CryptoPP Low Primitives Schemes High Support 24

CONCLUSION(1) Support for operations on large integers, Group A) {GMP(fastest), NTL, LiDIA, CLN}: best performance under all platforms tested. Trade off: amount of time and effort needed for implementation. Group B) {OpenSSL, MIRACL} trail libraries from group A in terms of overall performance. Support implementations of cryptographic schemes => faster development. {CryptoPP} is the best choice for the fast development based on the wide range of cryptographic schemes implemented. Trade off: performance as compared to other libraries. 25

Which library is best for implementing PK Schemes operating on LARGE INTEGERS? High Performance : A lot of time devoted for development (low support) Free Use GMP. Medium Performance/Medium Time Devoted For Development : Free Use OpenSSL. High Support/Not Enough Time to Develop Free Use CryptoPP. 26

High Performance Which library is best for implementing PK Schemes operating on ECP? OpenSSL LiDIA MIRACL Best Low Worst CryptoPP Low Primitives Schemes High Support 27

High Which library is best for implementing PK Schemes operating on EC2? Best Performance LiDIA MIRACL Low Worst CryptoPP Low Primitives Schemes High Support 28

CONCLUSION(2) Support for E(F 2^n ), LiDIA has the best performance under Pentium IV- RedHat 9.0 and UltraSPARC-Solaris. Under Pentium IV, Windows XP, MIRACL has the best performance. CryptoPP is the slowest under all platforms. Support for E(F p ), OpenSSL has the best performance under all platforms, LiDIA performance is better than MIRACL on Pentium IVRedHat 9.0 and UltraSPARC-Solaris, while under Pentium IV-Windows XP, MIRACL is better than LiDIA. CryptoPP is the slowest. 29

Which library is best for implementing PK Schemes operating on ECP? High Performance : A lot of time devoted for development (low support) Free Use OpenSSL. Medium Performance/Good Support Not Free Use MIRACL. High Support/Not Enough Time to Develop Free Use CryptoPP. 30

Which library is best for implementing PK Schemes operating on EC2? High Performance : A lot of time devoted for development (low support) Not Free Use LiDIA. Medium Performance/Good Support Not Free Use MIRACL. High Support/Not Enough Time to Develop Free Use CryptoPP. 31

Thank You 32