Simulation Environment and Discussion

This simulation uses the provided classes in .NET environment to simulate the performance of DES, 3DES and AES (Rijndael). In this Triple Data Encryption Standard implementation used here under the name Cryptograph.NET. This implementation is thoroughly tested and is optimized to give the maximum performance for the algorithm. The implementation uses managed wrappers for DES, 3DES and Rijndael available in System.Security.Cryptography that wraps unmanaged implementations available in CryptoAPI. TDESCryptoServiceProvider, TripleDESCryptoServiceProvr and Rijndael Managed respectively. There is only a pure managed implementation of Rijndael available in System.Security.Cryptography, which was used in the tests.


Performance Evaluation Methodology

This section describes the techniques and simulation choices made to evaluate the performance of the compared algorithms. In addition to that, we will discuss the methodology related parameters like: system parameters, experiment factor(s), and experiment initial settings.


Simulation Procedure

Consider the different sizes of data blocks (0.5MB to 20MB) the algorithms were evaluated in terms of the time required to encrypt and decrypt the data block. All the implementations were exact to make sure the accurate results The Simulation program accepts three inputs: 

a. Algorithm, 
b. Cipher Mode and 
c. Data block size.


After a successful execution, the data generated, encrypted, and decrypted are shown in the Figure 5.1. Note: Most of the characters cannot appear since they do not have character representation. Another comparison is made after the successful encryption/decryption process to make sure that all the data are processed in the right way by comparing the generated data (the original data blocks) and the decrypted data block generated from the process.

Figure 5.1: GUI Environment Simulation Program

Figure 5.1: GUI Environment Simulation Program


Simulation Results

This section show the results obtained from running the simulation program using different data loads. The results show the impact of changing data load on each algorithm and the impact of Cipher Mode (Encryption Mode) used.


Performance Results with ECB 

The first set of experiments were conducted using ECB mode, the results are shown below in Figure 5.2. The results show the superiority of DES algorithm over other algorithms in terms of the processing time. It shows also that AES consumes more resources when the data block size is relatively big. The results shown here are different from the results, since the data block sizes used here are much larger than the ones used in their experiment. Note: here 3DES requires always more time than DES because of its triple phase encryption characteristic. DES and 3DES are known to have worm holes in their security mechanism, Blowfish and AES, on the other hand, do not have any so far. These results have nothing to do with the other loads on the computer since each single experiment was conducted multiple times resulting in almost the same expected result. DES, 3DES and AES implementation in .NET is to be best. 

Figure 5.2: Performance Results with ECB Mode

Figure 5.2: Performance Results with ECB Mode


Performance Results with CBC

In CBC requires more processing time than ECB because of its key-chaining nature. The results show in Figure 5.3 indicates also that the extra time added is not significant for many applications, knowing that CBC is much better than ECB in terms of protection. The difference between the two modes is hard then the results showed that the average difference between ECB and CBC is 0.059896 seconds, which is relatively small. 

Figure 5.3: Performance Results with CBC Mode

Figure 5.3: Performance Results with CBC Mode

This section showed the simulation results obtained by running the four compared encryption algorithms using different Cipher Modes. Different load have been used to determine the processing power and performance of the compared algorithm.