IAIK Cryptography Benchmark Environment

What is CBM | What CBM can test | How to work with CBM | Adding providers | Properties file features | Screenshots | ©

What is CBM

IAIK CBM is a cryptography benchmark environment for cryptography providers. CBM tests the speed and functionality of single algorithms of a provider. Two or more providers can thus be compared regarding the speed and correctness of an algorithm's implementation. A summary of the test results is given providing the necessary overview for the comparison. Errors, namely the exceptions thrown, are display and thus brought to the user's attention.

What CBM can test

CBM has tests implemented for the following types of algorithms:
  1. Symmetric and asymmetric ciphers
  2. Message digests
  3. Key generation for symmetric ciphers
  4. Key pair generation for asymmetric ciphers
The user interface provides means to choose all available algorithms of a provider. If two or more providers are selected the intersection of the respective available algorithms is taken, so that there can be chosen only those algorithms that are actually available for all providers to be compared.

How to work with CBM

CBM provides a more or less self explanatory GUI. The GUI is made up by a tabbed pane which holds four panels: One to specify the providers, to be tested, one for the algorithm and algorithm parameters to be used, one for the input data of the respective algorithm (if applicable) and the last panel for the results to be displayed. Components which are currently not available appear disabled (grayed out), e.g. modes of operation and padding modes when a key generation is selected.

Screenshot: File Menu A user can reset all panels and thus create a new test run by selecting the New... option from the file menu. Test runs, i.e. the current data of the input components and the results table, can be saved for re-use by choosing Save Testrun As... from the file menu. Saved test runs can then be restored with the Load Testrun... option from the file menu.

It is at user's option to use the [<< Previous] and [Next >>] buttons as alternative to clicking the tabbed pane's tabs to switch to the previous and next panel. When all necessary data has been filled in the [Start] button will be enabled and can be pressed to initiate the test run.

All current results are displayed in the results table during the run. The results will appear sorted by completion time in ascending order. In the event of an exception an error window will pop up to inform the user about what went wrong. The respective entry in the results table will be marked with an "Error!" flag.

Adding Providers

CBM has user interface support to add your own custom providers you want to test. The appropriate interface is provided by the preferences dialog which can be opened by invoking Providers... from the Options menu.

To add a provider to the JRE dynamically the user must specify the full package and class name of the Provider class. The user has to make sure, however, that the classpath is set correctly in order for CBM to be able to find the corresponding package. If the package can not be found or any other error occurs a warning message will be issued.

Screenshot: Preferences Dialog

Of course, provider names can be changed by marking a provider in the list and changing its name in the text field below. Clicking the [Update] button will update the marked item with the new value. Similarly, clicking [Add] will add a new provider to the provider list. To remove a provider simply mark it and hit the [Remove] button. The settings are not applied (and stored to the properties file) until you hit the [ OK ] or [Apply] button.

Properties file features

CBM saves all its program settings into a file called cbm.properties in the path the program is started from.

Screenshot: Options Menu Generally there is no explicit need to edit CBM's properties file. All major features can be controlled by the Settings and Providers Dialog which can be invoked via the Options Menu. There are certain program features, however, that are less likely to need your interference and thus can be controlled only by editing in the properties file. The following is a list of these tags and their respective default values:

Values in such a definition can be separated by an arbitrary number of commas, blanks or tab characters.


  1. Providers have to be selected for the test run:

    Screenshot: Providers - Click to see next picture!

  2. Algorithm parameters must be specified:

    Screenshot: Algorithm - Click to see next picture!

  3. Input data has to be specified: (if applicable)

    Screenshot: Input Data - Click to see next picture!

  4. Results are shown in the results table:

    Screenshot: Results - Click to see first picture!

Copyright notices

IAIK Cryprography Benchmark Environment was written for a project/seminar at Graz University of Technology.
Copyright (c) 2001 by IAIK, Graz University of Technology.
The program was written by Peter Bittner (peter.bittner@gmx.net).

Mr. Bittner used Borland JBuilder 4 Foundation to develop the CBM application. You can find information about JBuilder on the web at: http://www.borland.com/jbuilder/