Architecture

 

The modules that make up the CPKtec cryptography toolkit are shown in the diagram below, along with the dependencies between them.

modules and their dependencies

For example, the rsa module depends on the mur module, which in turn depends on the ari module.

The diagram does not show the random number generation modules, which make use of various other cryptography depending on the particular generator.

What do the modules do?

We shall look briefly at each module in turn, in roughly left-to-right and top-to-bottom order in the diagram above.

The top-level module is cpk. This provides a convenient and stable interface to all the functions of the toolkit.

The rsa module implements RSA encryption and decryption. It calls the multiply-and-reduce module mur which carries out modulo arithmetic operations with the help of the fundamental `bignumber' arithmetic routines provided by ari. The key generator module kyg, along with pap (`primes in arithmetic progression'), is responsible for generating RSA keys.

gag (`generated algebraic groups') is a general-purpose module for carrying out exponentiation, calling the Diffie-Hellman module dih or the elliptic curve modules ecp and ece as appropriate. ecp and mod together perform Elliptic Curve Cryptography (ECC) in characteristic p using mur and ari to perform the necessary arithmetic, while ece implements ECC in characteristic 2, using fld to provide the field arithmetic functions.

The dsa module implements the Digital Signature Algorithm using gag and dhs. It also calls ari directly.

The dhs module provides a simple interface to the various hash functions available, which include sha (the SHA-1 Secure Hash Algorithm) and mdf (the MD5 algorithm). Likewise, the sym module provides an interface to the symmetric ciphers, including aes (the Advanced Encryption Standard) and des (the Data Encryption Standard, including triple-DES).

Return to Technology page

 


Copyright © Cambridge Public Key Technology Ltd 2002-2006 CPKtec logo