Sybren A. Stüvel | c1c455d | 2011-08-01 23:04:30 +0200 | [diff] [blame^] | 1 | Introduction & history |
Sybren A. Stüvel | aa28c04 | 2011-07-30 23:48:00 +0200 | [diff] [blame] | 2 | ================================================== |
| 3 | |
| 4 | Python-RSA's history starts in 2006. As a student assignment for the |
| 5 | University of Amsterdam we wrote a RSA implementation. We chose Python |
| 6 | for various reasons; one of the most important reasons was the |
| 7 | `unlimited precision integer`_ support. |
| 8 | |
Sybren A. Stüvel | c1c455d | 2011-08-01 23:04:30 +0200 | [diff] [blame^] | 9 | .. _`unlimited precision integer`: |
| 10 | http://docs.python.org/library/stdtypes.html#numeric-types-int-float-long-complex |
Sybren A. Stüvel | aa28c04 | 2011-07-30 23:48:00 +0200 | [diff] [blame] | 11 | |
| 12 | It started out as just a module for calculating large primes, and RSA |
| 13 | encryption, decryption, signing and verification using those large |
| 14 | numbers. It also included generating public and private keys. There |
| 15 | was no functionality for working with byte sequences (such as files) |
| 16 | yet. |
| 17 | |
Sybren A. Stüvel | c1c455d | 2011-08-01 23:04:30 +0200 | [diff] [blame^] | 18 | Version 1.0 did include support for byte sequences, but quite clunky, |
| 19 | mostly because it didn't support 0-bytes and thus was unsuitable for |
| 20 | binary messages. |
| 21 | |
| 22 | Version 2.0 introduced a lot of improvements by Barry Mead, but still |
| 23 | wasn't compatible with other RSA implementations and used no random |
| 24 | padding. |
| 25 | |
| 26 | Version 3.0 introduced PKCS#1 v1.5 functionality, which resulted in |
| 27 | compatibility with OpenSSL and many others implementing the same |
| 28 | standard. Random padding was introduced that considerably increased |
| 29 | security, which also resulted in the ability to encrypt and decrypt |
| 30 | binary messages. |
| 31 | |
| 32 | Key generation was also improved in version 3.0, ensuring that you |
| 33 | really get the number of bits you asked for. At the same time key |
| 34 | generation speed was greatly improved. The ability to save and load |
| 35 | public and private keys in PEM and DER format as also added. |
| 36 | |
Sybren A. Stüvel | aa28c04 | 2011-07-30 23:48:00 +0200 | [diff] [blame] | 37 | |
| 38 | |