rsa implementation question
Heiko Wundram
heikowu at ceosg.de
Wed Aug 11 08:52:57 CEST 2004
Am Mittwoch, 11. August 2004 07:08 schrieb Ajay:
> just like to know how the RSA implementation in the pcrypto package works.
> Does it operate in blocks, if yes, what is the size of the blocks?
RSA (Rivest-Shamir-Adleman encryption) never works in "blocks", as there is no
notion of blocks in public key cryptography, there's only the notion of doing
an operation on plaintext modulo a large prime n.
Now, you could call (log2 n)/8 the block size in bytes of RSA for a certain
encryption prime, but I'd never talk of block sizes with RSA, as normally you
don't use RSA (or public-key cryptography in general) to encrypt plaintext a
block at a time, but rather to encrypt a random string of bytes [len(s) <=
(log2 n)/8 for the modulo prime of the algorithm], which is used as the key
for a normal symmetric encryption algorithm, to which you feed the blocks.
Thus, the receiver (and also the sender) only has to make one expensive
calculation (retrieving the key from the encrypted RSA packet), whereas
decrypting the cyphertext (or encrypting it) is done using a symmetric
cypher, which has the advantage of being much faster to compute than a
public-key cypher.
Anyway, if you're interested in how symmetric and/or public-key cryptography
work, read up on:
http://www.cacr.math.uwaterloo.ca/hac/
especially chapters 7 and 8.
Heiko.
More information about the Python-list
mailing list