IAIK Cryptography Benchmark Environment
What is CBM |
What CBM can test |
How to work with CBM |
Adding providers |
Properties file features |
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:
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.
- Symmetric and asymmetric ciphers
- Message digests
- Key generation for symmetric ciphers
- Key pair generation for asymmetric ciphers
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.
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.
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.
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.
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.
- Cipher.AsymmetricCiphers=RSA DSA ElGamal DH
... specifies the ciphers which will be recognized as asymmetric ciphers,
which need a key pair instead of a single key. All other ciphers will be
assumed to be symmetric.
- Cipher.ModesOfOperation=ECB CBC CFB OFB PCBC
... defines the modes of operation which are available on the GUI.
(Since there is no way to find out which modes are available for a cipher
they have to be specified this way.)
- Cipher.PaddingModes=PKCS5Padding PKCS7Padding PKCS1Padding SSLPadding
... defines the padding modes for a cipher which are available on the GUI.
(Same as before.)
- Input.RandomDataMBSizes=1 2 5 10 20 30
... specifies the items to be available on the GUI for the size of random
data. It is not recommended to use values greater than 30 for this list.
(Random data will be created online when a testrun is started thus will
fill the JRE's memory which makes CBM or the algorithm run out of memory.
And: Remember that the total size in bytes will be size
* 1024 * 1024 and must be with the range of an Integer.)
Providers have to be selected for the test run:
Algorithm parameters must be specified:
Input data has to be specified: (if applicable)
Results are shown in the results table:
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 (firstname.lastname@example.org).
Mr. Bittner used Borland JBuilder 4 Foundation to develop the CBM application.
You can find information about JBuilder on the web at: