ID-PKC This Identity Based Encryption method was invented by Cliff Cocks See http://www.cesg.gov.uk/technology/id-pkc/index.htm for more details. This demonstration implementation consists of four programs that implement each of the four steps in the algorithm. The source code is intended to be read in conjunction with the academic paper which describes the method. The clarity of C++ makes the code very readable, and easy to associate with the mathematical description. NOTE: This method is patented! Do not deploy before checking with the patent holders. This is just a demonstration of the method, and lacks some functionality in its current state. Tested with MS C++, Borland C++ and the DJGPP port of gcc Function: SETUP Source File: ipk_set.cpp This program generates suitable random global domain parameters, and stores them in the file common.ipk. The Master key is stored in master.ipk Compile as (for example with MS C++) cl /O2 ipk_set.cpp big.cpp miracl.lib Function: EXTRACT Source File: ipk_ext.cpp This program extracts a private (secret) key from the proffered identity string, and stores it in the file private.ipk Compile as cl /O2 ipk_ext.cpp big.cpp crt.cpp miracl.lib Function: ENCRYPT Source File: ipk_enc.cpp This program accepts the identity of the recipient (which is his public key), and encrypts a file. Compile as cl /O2 ipk_enc.cpp big.cpp miracl.lib Function: DECRYPT Source File: ipk_dec.cpp This program decrypts a file using the private key from private.ipk Compile as (for example with MS C++) cl /O2 ipk_dec.cpp big.cpp miracl.lib Run the four programs in the order above, and encrypt a file to yourself!