|
Project Information
Featured
|
This mcrypto library is aimed at students who are studying public-key cryptography. The library is written in C and should be complied on any Unix-based operating systems with a GNU C compiler. The library currently includes - A multi-precision library: these routines are taken from the BIGDIGITS library originally written by David Ireland and used with permission (http://www.di-mgt.com.au/ contains BIGDIGITS multiple-precision arithmetic code originally written by David Ireland, copyright (c) 2001-8 by D.I. Management Services Pty Limited). I took the version 1.0 and extended a little bit. Thank the the authors of BIGDIGITS library for posting their code online.
- Elliptic curve on finite fields: Currently, prime fields, GF(p), and binary fields GF(2n), are supported. GF(pk) support is there but needs more work.
- PKCS#1 implementation include RSA-OAEP public-key encryption and RSA-PSS digital signature. I also include some public-domain hash implementation for this.
- Tate pairing implementation: initial code is there but not functioning. I need to get the algebra right first.
Note that, since the goal of this library is for study purpose. I have tried to make the code easy to read (e.g., algorithms taken straight from textbook), easy to use and easy to modify. That's why I took the BIGDIGITS library in the first place. If speed is your goal, please look at GNU MP library, Crypto++ by Wei Dai, etc. There is no license associated with this library (although I have to select BSD license as code.google.com forced me to) except the respective licenses of included hash implementation. Anyway, if you use it, it would be nice if you drop me and David Ireland a line to say thank. I welcome any comment/suggestion/contribution so that I can make this library a more complete tool for students to experiment with public-key cryptography.
|