a form of public-key encryption, where sender can use public parameters of an entity to encrypt a message which can be decrypted only by a private key that is generated by a central authority.

then it's not that beneficial, right? you have to trust a central authority which can be adversary itself?

Third party entity called PRG (Private Key Generator) is responsible for creating public and private keys and assigning them to participants. PRG has a master private/public key pair which it uses to create new public/private key pair for any other participant. Any public entity can contact PRG to create a private key pair for itself and public key can be generated by combining master public key and self’s public ID.

so PRG is a single point of failure. PRG can't get compromised. also how does PRG at the time generating the private key authenticates identity of the entity?

It’s mentioned in the wikipedia article that IBE doesn’t concern with the need of security (integrity, authentication, confidentiality)

actor Alice
participant PRG
actor Bob
note over PRG:1. generate a master <br/> private/public key pair
note over Alice:2. generate a private key
Alice->>PRG:3. Obtain master public key
Note over Alice:4. create public key from master public key
Alice->>PRG:5. send request to create a private key
PRG->>Alice:6. send private key for Alice
note over Alice:7. use Bob's ID to generate <br/> Bob's public key and encrypt message
Alice->>Bob:8. send ciphertext
Bob->>PRG:9. obtain master public key
Bob->>PRG:10.send request to create private key
PRG->>Bob:11. send private key for Bob
note over Bob:12. decrypt ciphertext for message m

Formal Protocol:

  • : takes security parameter and outputs public parameters (message space and ciphertext space ), and master key .
  • : generates user’s private key. takes public parameter, master key, user public ID and outputs user private key .
  • : encrypts a message to ciphertext .
  • : decrypts a message encrypted by user’s public key using private key as decryption key.

Practical Protocols:

Boneh-Franklin scheme

Assume existence of hash function that can map element to .

  • \textsf{Setup}(1^{\lambda})$$: sample a bilinear group \mathcal{P}:\mathbb{G},p,g,eK_{m}=xs \xleftarrow{$}\mathbb{Z}_{p}pk:(\mathcal{P},h=g^{x})$.
  • : output
  • : samples r\xleftarrow{\}\mathbb{Z}_{p}u=g^{r}v=m\times e(H(\textsf{ID}),u)c=(u,v)$
  • : parse , computes , outputs .

things that I am liking about IBE:

  • in a network where key escrows are necessary, it’s perfect use case for setting up PKI.
  • doesn’t require bootstrapping of public key infrastructure
  • sender can control the properties of ciphertext. For example: can encode expiration in public key identifier like bob@hotmail.com || current-year, which PRG can use to deny private key generation for the receiver.
  • PRG can control entities inside the system using expiration of keys. can produce static or ephemeral keys.

A corporation PKI is perfect use case for IBE.


  • PKG is a single point of failure, as if it gets compromised, all the keys being used in the system are compromised and adversary can spoof anyone.

Is standard public-key encryption (PKE) semantic security enough?

what’s the meaning of semantic security? if the notion of semantic security is satisfied even when encryption algorithm ignores identities and everyone has same secret key, then what is it use case because obviously, stricter algorithm will satisfy it as well, i.e. everyone having different secret keys?

Security of any public key encryption scheme is based on the notion of semantic security wherein an adversary knowing the public key cannot tell the difference between for message of its own choice.

Security which is considered for IBE, will allow to obtain secret keys of and has to break semantic security for . Let’s define an attack game between challenger and adversary :

  • : outputs and is given to .
  • samples secret key queries for any identity and get
  • outputs challenge id and messages and get .
  • can sample additional secret key queries.
  • has to output for message that was chosen for encryption.

wins if and never queries for secret key of . An IBE scheme is deemed secure if for any PPT adversary,

Let’s define other variations of IBE with varying security guarantees:

  • Adaptively secure IBE: adversary can make series of queries to challenger, queries being key queries or encryption query. at the end of game, adversary has to output bit .
  • Private IBE (anonymous IBE): stricter assumption, an eavesdropper who has and cannot learn the identity of the target recipient.
    • the attack game is modified where in encryption query, adversary sends: tuple: .
    • In the end, adversary has to output bit such that .
  • Selectively secure IBE: weaker notion of IBE security where adversary needs to select challenge identity before key queries.
    • to model the security proof, we first select a hash function which will be modelled as a random oracle.
    • choose an adversary that will wrap around adversary and play the attack game with the challenger.
    • can at most make random oracle queries for and key queries.
    • chooses a \omega \xleftarrow{\}\left{1,\dots,Q_{RO}+1\right}\mathsf{ID}{ch}\xleftarrow{$}\mathcal{ID}\mathsf{ID}{ch}mpk\mathcal{E}’_{id}$.
    • Now, starts querying random oracle of and maps each query to random identity in and sends value of . for query number , it maps that to that it sent to challenger.
    • then, starts key queries. for jth query, if then sends the key query to challenger and send response back to . if it’s equal to , then can’t send to challenger and aborts with random bit.
    • issues its single encryption query for , first checks if , if its not, sends the query to challenger, gets and send that to , for which outputs the bit . if , then aborts with random bit.

Some questions regarding the security of this scheme:

  • why is modified to ?
  • why use a hash function to map ?

Security of Boneh-Franklin scheme