NAME
Crypt::RSA - RSA public-key cryptosystem.
VERSION
$Revision: 1.19 $ (Beta)
$Date: 2001/03/07 02:49:38 $
DESCRIPTION
Crypt::RSA is a pure-perl, cleanroom implementation of the RSA public-key cryptosystem, written atop the blazingly fast number theory library PARI. As far as possible, Crypt::RSA conforms with PKCS #1, RSA Cryptography Specifications v2.1[13].
This implementation is structured as a bundle of modules that provide key pair generation and management, plaintext-aware encryption and digital signatures with appendix. Crypt::RSA is a DWIM wrapper around the other modules in the bundle.
WARNINGS
This is beta, and largely untested, software. Please use at your own risk!
Due to the lack of a suitable ASN.1 encoder in perl, ASN.1 encoded formats are not supported yet.
MODULES
As of this writing, Crypt::RSA is just a placeholder for the wrapper code, which will appear soon. In the meantime, please use the following modules directly:
- Crypt::RSA::Key
-
RSA key pair generator.
- Crypt::RSA::Key::Public
-
RSA Public Key Management.
- Crypt::RSA::Key::Private
-
RSA Private Key Management.
- Crypt::RSA::EME::OAEP
-
Plaintext-aware encryption with RSA.
- Crypt::RSA::SSA::PSS
-
Probablistic Signature Scheme based on RSA.
ERROR HANDLING
All modules in the Crypt::RSA bundle use the same error handling method. When a method fails it returns a non-true value and sets $self->errstr to a string that explains the reason for the error. Private keys and plaintext representations passed to the method in question are wiped from memory.
AUTHOR
Vipul Ved Prakash, <mail@vipul.net>
ACKNOWLEDGEMENTS
Thanks to Ilya Zakharevich for answering even the goofiest of my questions regarding Math::Pari with unwavering paitence. Shizukesa on #perl for clueing me into the error handling method used in this module and a-mused for good advice.
LICENSE
Copyright (c) 1998-2001, Vipul Ved Prakash. All rights reserved. This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
SEE ALSO
Crypt::RSA::Primitives(3), Crypt::RSA::DataFormat(3), Crypt::RSA::Errorhandler(3), Crypt::RSA::Debug(3), Crypt::Primes(3), Crypt::Random(3), Crypt::CBC(3), Crypt::Blowfish(3), Tie::EncryptedHash(3), Math::Pari(3).
BIBLIOGRAPHY
(Chronologically sorted.)
- 1 R. Rivest, A. Shamir, L. Aldeman. A Method for Obtaining Digital Signatures and Public-Key Cryptosystems (1978).
- 2 U. Maurer. Fast Generation of Prime Numbers and Secure Public-Key Cryptographic Parameters (1994).
- 3 M. Bellare, P. Rogaway. Optimal Asymmetric Encryption - How to Encrypt with RSA (1995).
- 4 M. Bellare, P. Rogaway. The Exact Security of Digital Signatures - How to sign with RSA and Rabin (1996).
- 5 B. Schneier. Applied Cryptography, Second Edition (1996).
- 6 A. Menezes, P. Oorschot, S. Vanstone. Handbook of Applied Cryptography (1997).
- 7 D. Boneh. Twenty Years of Attacks on the RSA Cryptosystem (1998).
- 8 D. Bleichenbacher, M. Joye, J. Quisquater. A New and Optimal Chosen-message Attack on RSA-type Cryptosystems (1998).
- 9 B. Kaliski, J. Staddon. Recent Results on PKCS #1: RSA Encryption Standard, RSA Labs Bulletin Number 7 (1998).
- 10 B. Kaliski, J. Staddon. PKCS #1: RSA Cryptography Specifications v2.0, RFC 2437 (1998).
- 11 SSH Communications Security. SSH 1.2.7 source code (1998).
- 12 S. Simpson. PGP DH vs. RSA FAQ v1.5 (1999).
- 13 RSA Laboratories Draft I, PKCS #1 v2.1: RSA Cryptography Standard (1999).
- 14 E. Young, T. Hudson, OpenSSL Team. OpenSSL 0.9.5a source code (2000).
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 118:
=over without closing =back