I'm currently reading up on the components of PGP and I am wondering what exactly the PRNG is used for. PGP uses ANSI X9.17 and entropy from a users keystrokes to generate a temporary key.

So, is this temporary key used for the public key encryption? Is it one of the keys in the key pairs? And how does PGP actually generate it's key pairs?


(Open)PGP is a hybrid encryption system, it uses both public/private and symmetric key encryption. Public/private key encryption is very inefficient for any kind of data but very small one, so when encrypting for some private key, usually you're only encrypting some block cipher which is then used to actually encrypt the data.

For generating this key, a random number generator is used.

  • $\begingroup$ Thanks for your reply. Would you be able to get into more detail as to how the Random Number Generator is used? Suppose that the private key is generated from Random Number Generator + user entropy. How is the other element of the pair (in this case, the public key) generated? $\endgroup$ – WhiteBit Dec 10 '13 at 14:57
  • $\begingroup$ When not creating a new public-private key pair, it is only used for block ciphers. such a block is an arbitrary random number of a given size. $\endgroup$ – Jens Erat Dec 10 '13 at 15:54
  • $\begingroup$ Thanks for explaining that public key encryption is used only to encrypt the block cipher of the symmetric key. The question that I asked is still unanswered though. $\endgroup$ – WhiteBit Dec 13 '13 at 16:03
  • $\begingroup$ You asked three questions, I answered the first two of them. I don't know the mathematical background well enough to further explain the third one, other can do better. $\endgroup$ – Jens Erat Dec 13 '13 at 18:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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