I'm reading this paper, at page 5 you can find:

We apply a public key cryptographic algorithm in this work, similar to the one used by Digital Signature. To simplify the description, we use PBA to represent this public key algorithm. Its encryption and decryption can be described with the following formats: PBA.encrypt ( m , k ) for encrypting a message m with the public key k, and PBA. decrypt ( m , k ) for decrypting a message m with the private key k.

This seems a classic public key approach. However, all over the paper, the encrypt method is called using private key, while decrypt by using public key. Isn't it the opposite?


The proxy credential is sent directly, while the random message CA_Rand and the user session are encrypted with the private key MN_Prv that was generated in Phase II: MN_Rand = PBA . encrypt ( CA_Rand , MN_Prv ) MN_U _Session = PBA . encrypt ( U _Session , MN_Prv )

Is that an error (very frequent error!) or am I missing something?

  • Technically encryption can be accomplished by using either public key or private key. The difference is in the result. When you encrypt with public key and decrypt with private you will get data privacy or confindentiality. When you encrypt with private key and decrypt with public, you will get data integrity. You should check the context (when keys are applied for privacy or integrity).
    – Crypt32
    Commented Jun 11, 2017 at 12:23
  • "smilar to the one used by Digital Signature" - For digital signatures you can reverse the roles of public and private key.
    – Arminius
    Commented Jun 11, 2017 at 12:25
  • @Crypt32 thanks for your comment. What do you mean by integrity in this context?
    – user6321
    Commented Jun 11, 2017 at 12:29
  • By integrity, he means that you know who sent the message; only the person with the private key could have encrypted the message that can be decrypted by the public key.
    – Pak
    Commented Jun 11, 2017 at 13:32
  • @Pak, it is non-repudiation, another feature of signature. Integrity is a control mechanism that identifies whether the data was modified (or not) after it was signed: en.wikipedia.org/wiki/Digital_signature
    – Crypt32
    Commented Jun 11, 2017 at 14:03

1 Answer 1


As commenters have said, technically you can use either the public or private key for either capacity; the distinction helps prevent you from accidentally distributing both publicly at some point, which would be a catastrophic failure.

PGP provides good examples of reasons to do it both ways. If I want to send you a sensitive message, I will encrypt it with your public key, which means that you will decrypt it with your private key. However, if I want to prove that an email comes from me, I can "sign" the message, which involves encrypting some data with my private key; anyone who has my public key can decrypt it, which allows them to verify that the person sending the message had access to my private key (and presumably then is me).

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .