Cryptography Stack Exchange is a question and answer site for software developers, mathematicians and others interested in cryptography. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I was reading about block ciphers and most articles state they are being used in symmetric key cryptography. Are they also being used in public key cryptography? if not, what alternative pkc use?


share|improve this question

First, some public key algorithms such as RSA are technically block ciphers, capable of encrypting a block of as many bits as the size of the modulus - commonly 1024, 2048, or 4096 bits, dependent on the key.

The problem is that most public key algorithms require a very large amount of CPU cycles to encrypt one block of data. In the case of RSA, the larger the modulus (the block size), the more CPU cycles are required. RSA can take thousands or millions of times as many CPU cycles as a symmetric cipher to encrypt the same amount of data. The slowdown is so significant that public key cryptography is often the limiting factor of a system such as a web server. If encrypting every block of data required that amount of CPU, the computer requirements for encrypting a stream of data would be prohibitive.

By comparison, symmetric key block cyphers are much more efficient. Given the amount of CPU it takes to encrypt 512 bytes of data with RSA, a symmetric block cipher such as AES could encrypt megabytes of data.

But as you're no doubt learning, the problem with symmetric algorithms is that of storing the keys securely, and the difficulty of exchanging keys with other people without the risk of interception. Public key algorithms and public key infrastructures help solve the problems of key management and distribution.

Because of this relationship, asymmetric and symmetric algorithms are commonly joined in a hybrid approach. The public key algorithm is used only one time to encrypt a symmetric algorithm's key (using a key exchange protocol such as Diffie Hellman), and the symmetric algorithm is then used to encrypt the data. The performance problems of public key cryptography are suffered only once to exchange the keys, and the volumes of data are efficiently encrypted with a symmetric cipher.

share|improve this answer

Yes, block ciphers are used in public key cryptography, though typically as auxiliary building blocks rather than as the heart of the public key scheme by themselves.

One example is in digital signatures: many use a hash such as SHA-1, to digest the message being signed into a short cryptogram, and/or as part of a Mask Generating Function (loosely speaking: used as a randomizer before applying a public-key primitive). And in turn many hashes, including SHA-1, use a compression function built from a block cipher. Sometime, the function of a Mask Generating Functions is directly performed by a block cipher, as in this proposal.

Also, as rightly pointed in this other answer, block ciphers are often used in combination with public key cryptography, to form a hybrid cryptosystem.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.