# Difference between Identity-based encryption and multiple key-pairs of public key encryption?

What is the difference between Identity-based encryption and multiple key-pairs of public key encryption scheme??

Suppose trusted key generator generates a bunch of public and private key pairs $$(k_{\texttt{public}}^{(1)}, k_{\texttt{private}}^{(1)}), (k_{\texttt{public}}^{(2)}, k_{\texttt{private}}^{(2)}),...,(k_{\texttt{public}}^{(m)}, k_{\texttt{private}}^{(m)})$$ , each of pairs is distributed to each of $$m$$-parties and all the public keys are public (any one can know it).

In this case, what's the potential difference of ID-based encryption and this instantiation? Both of them can do the same task where everyone can encrypts its data using one of the public keys such that only the corresponding private key owner can get the data.

What is the difference between Identity-based encryption and multiple key-pairs of public key encryption scheme?

It's all about the public key. You state, with your public-key based system:

… and all the public keys are public (any one can know it).

But if Alice wants to send Bob a message, how does she learn his public key? After all, any such public key is a long random looking bitstring. Now, there are possible ways:

• The trusted key generator could just send everyone's public key to everyone else (as you stated), but that really has serious scalability problems
• Alice could look it up in a public directory of everyone's public keys (but that still has scalability problems, but less bad ones than the previous idea)
• Bob could put his public key in a certificate, and so when Alice wants to send Bob an encrypted message, she asks him for his certificate first (but that requires Bob to be able to interact with Alice when she wants to send the encrypted message).

In contrast, with IBE, the public key could be anything; Bob's public key could be, for example, "bob@example.com"; and so if Alice knows Bob's email address (which she may need to send the message anyways, she then knows his public key).

• So, is IBE meant for scalable public key systems in terms of storage and communication? – mallea Mar 4 '19 at 14:33
• @mallea: yes; IBE can be seen as an alternative to certificates (which also try to solve the same problem); in the IBE case, the advantage it has over certificates is that it doesn't require a back channel. If you're doing encrypted email (where a back channel doesn't exist, because of the store-and-forward nature of SMTP), that's a win. For, say, authenticating TLS connections, that's less of an advantage. – poncho Mar 4 '19 at 15:10

The difference is about efficiency. You can implement an IBE with polynomially large, say N=poly(n), identity space by instantiating as many identities as copies of the PKE. In IBE, the length of the identity is usually polynomial, say n, so the identity space can be exponentially large, i.e., N=2^n.

IBE allows virtually generating up to exponentially many instances of PKE at the same time.