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.


Cryptix
Raif S. Naffah
Chatswood, 13 July 1997.

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