73 lines
1.6 KiB
Plaintext
73 lines
1.6 KiB
Plaintext
|
|
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!
|
|
|
|
|