The project contains the implementation of the RSA cryptosystem in F#. RSA is an algorithm for public-key cryptography that is based on the presumed difficulty of factoring large integers.
The implementation uses the System.Numerics.BigInteger structure to represent messages that are encrypted with the RSA algorithm. This allowes one to use the RSA keys of arbitrary length. The message length must always be shorter than that of the public key.
Here is an example of RSA-1024 encryption:
let (publ, priv) = RSA.keys 1024 3 let encrypted = RSA.encrypt publ 178390940298736793320388860954139315768813865072985139606849995865068361101I- "Introduction to Algorithms" by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein
- "Art of Computer Programming, Volume 2: Seminumerical Algorithms" by Donald E. Knuth
- "Resource-effective computer algorithms" by Mikhail V. Ulianov