Cryptographic algorithms have nowadays serious impact on many fields of modern life. A good
example is the SSL technology, that consists of both symmetric as well as asymmetric cryptography.
It is used in thousands of websites like online banking websites to secure transfered data.
For the developers of such applications the performance of employing cryptography may be a
crucial factor to the success of the complete product. Normally a software developer utilizes
cryptographic operations by the usage of precast cryptographic libraries. Therefore, it is interesting
to analyze the speed of cryptographic libraries which implement abstract cryptographic
algorithms. In the following, we describe our benchmarking of various cryptoalgorithms in different
cryptolibraries in different languages on a 32-bit system. In the first part, we outline our
preparatory work and our considerations on setting up a fitting benchmarking environment. With
this test environment we conducted the benchmarking of seven JAVA cryptolibraries, namely
SUN-JCE, Flexiprovider, Bouncy Castle, Cryptix Crypto, IAIK-JCE, GNU crypto and RSA
JSafe. Additionally, we benchmarked RSA BSafe, a cryptographic library, which is written
in C++, to isolate the influence of the JAVA virtual machine abstraction layer on cryptographic
performance. In the second part, we present a condensed illustration of the benchmarking results
and our interpretation, for symmetric cryptography, asymmetric cryptography, the generation of
hash based massage authentication codes and digital signatures. These results reveal remarkable
differences in speed between the algorithms as well as between the different implementations.
Also the choice of the underlying operating system has influence on the execution speed of the
cryptographic code. In this work we demonstrated that software developers could gain a multiple
of the execution speed of the cryptography utilizing parts of their programs just by a wise selection
of cryptographic algorithms and libraries. Furthermore our work can help as a guideline for
developing a generic benchmarking model for cryptoalgorithms.
Inhaltsverzeichnis (Table of Contents)
- Introduction
- Objectives of this paper
- Related work
- SETUP of Cryptobenchmarking
- Security Levels
- Selecting the candidates for benchmarking
- The test environment
- Hardware platform
- Operating Systems
- Software Environment
- Performance measuring in modern systems
- The bench code for JAVA
- RESULTS of Cryptobenchmarking
- Results JAVA
- Key Setup for symmetric cryptography
- Key Generation for asymmetric cryptography
- Symmetric Encryption and Decryption
- Asymmetric Encryption and Decryption
- Hash Generation and MAC Generation with HMac
- Signing and verifying with asymmetric cryptography
- Comparison JAVA to C++
- Results JAVA
- Conclusion
Zielsetzung und Themenschwerpunkte (Objectives and Key Themes)
This paper presents a comprehensive benchmarking study of various cryptographic algorithms and libraries, with a focus on performance analysis. The primary objective is to analyze the speed of different cryptographic libraries across multiple platforms and languages. By comparing the performance of various libraries and algorithms, the authors aim to provide valuable insights for developers seeking to optimize the execution speed of cryptographic operations within their applications. Key themes explored in the paper include:- Benchmarking of cryptographic algorithms and libraries
- Performance analysis of symmetric and asymmetric cryptography
- Influence of operating system and programming language on cryptographic performance
- Comparison of different cryptographic libraries, including JAVA and C++ implementations
- Developing a generic benchmarking model for cryptoalgorithms
Zusammenfassung der Kapitel (Chapter Summaries)
The paper begins with an introduction that outlines the objectives and related work in the field of cryptographic benchmarking. Chapter 2 focuses on the setup and methodology used for the benchmarking process, detailing the security levels, candidate algorithms, test environment (hardware, operating systems, and software), and performance measuring techniques. Chapter 3 presents the results of the benchmarking study for various cryptographic operations, including symmetric and asymmetric encryption/decryption, hash generation, and digital signatures. The chapter provides a detailed analysis of the performance differences between different libraries and algorithms, highlighting the impact of operating system and language choices on cryptographic speed. Finally, the paper concludes with a summary of the findings and potential implications for developers seeking to optimize cryptographic performance within their applications.Schlüsselwörter (Keywords)
Cryptographic algorithms, benchmarking, performance analysis, symmetric cryptography, asymmetric cryptography, cryptographic libraries, JAVA, C++, operating system, security levels, software environment.- Quote paper
- Christian Stegerer (Author), Stefan Risse (Author), 2008, Benchmarking of Java Cryptoalgorithms, Munich, GRIN Verlag, https://www.grin.com/document/126115