# Comparing implementation of 6 symmetric block ciphers

(Cryptix Application Note #2 --July 1997)

Return to the Application Notes Index or the FAQ or the Overview

The following tables summarise the main pure-Java implementation characteristics of six symmetric block cipher algorithms. The test (source in `TestBCs`) measures the encryption times for processing 1 MB on a Pentium 133MHz using the JDK 1.1.3 with and without the JIT compiler included in the JDK Performance Pack. Since all ciphers are symmetric, these times are/should be the same for Decryption also.

At this stage I am not usre if all these implementations will be included in the cryptix.security package. So, for the sake of completeness, I am including the sources here.

Finally, note that these speed tests address only Java-related implementation issues and not cryptographic features and/or strength of the included algorithms.

Table-1: Implementation characteristics summary
|  | Without JIT compiler | With JIT compiler
| Class size | Time (millis.) | Encryption rate | Time (millis.) | Encryption rate
Algorithm | (KB) | Key generation* | Encrypting 1MB | (Kbits/sec) | Key generation* | Encrypting 1MB | (Kbits/sec)
--- | --- | --- | --- | --- | --- | --- | ---
Blowfish | 17 | 30,070 | 10,820 | 757 | 2,860 | 1,710 | 4,790
LOKI91 | 5 | 30 | 14,440 | 567 | 0 | 2,190 | 3,740
RC2 | 5 | 330 | 19,550 | 419 | 110 | 2,250 | 3,640
CAST5 | 34 | 525 | 13,020 | 629 | 300 | 2,470 | 3,316
IDEA | 3 | 300 | 21,200 | 385 | 80 | 3,190 | 2,568
SAFER | 5 | 850 | 27,350 | 299 | 195 | 3,380 | 2,445

* Key generation times are obtained by generating 1,000 pairs of encryption and decryption session-keys.

Copyright © 1996-1997 Systemics Ltd
on behalf of the Cryptix Development Team.
All rights reserved.
Cryptix is a trademark of Systemics Ltd.