Boneh–Franklin scheme

The Boneh–Franklin scheme is an identity-based encryption system proposed by Dan Boneh and Matthew K. Franklin in 2001.[1] This article refers to the protocol version called BasicIdent. It is an application of pairings (Weil pairing) over elliptic curves and finite fields.

Groups and parameters

As the scheme is based upon pairings, all computations are performed in two groups, G1{\displaystyle \textstyle G_{1}} and G2{\displaystyle \textstyle G_{2}}:

For G1{\displaystyle \textstyle G_{1}}, let p{\displaystyle \textstyle p} be prime, p2mod3{\displaystyle \textstyle p\equiv 2\mod 3} and consider the elliptic curveE:y2=x3+1{\displaystyle \textstyle E:y^{2}=x^{3}+1} over Z/pZ{\displaystyle \textstyle \mathbb {Z} /p\mathbb {Z} }. Note that this curve is not singular as 4a3+27b2=27=33{\displaystyle \textstyle 4a^{3}+27b^{2}=27=3^{3}} only equals 0{\displaystyle \textstyle 0} for the case p=3{\displaystyle \textstyle p=3} which is excluded by the additional constraint.

Let q>3{\displaystyle \textstyle q>3} be a prime factor of p+1{\displaystyle \textstyle p+1} (which is the order of E{\displaystyle \textstyle E}) and find a point PE{\displaystyle \textstyle P\in E} of order q{\displaystyle \textstyle q}. G1{\displaystyle \textstyle G_{1}} is the set of points generated by P{\displaystyle \textstyle P}: {nPn{0,,q1}}{\displaystyle \textstyle \left\{nP\|n\in \left\{0,\ldots ,q-1\right\}\right\}}

G2{\displaystyle \textstyle G_{2}} is the subgroup of order q{\displaystyle \textstyle q} of GF(p2){\displaystyle \textstyle GF\left(p^{2}\right)^{*}}. We do not need to construct this group explicitly (this is done by the pairing) and thus don't have to find a generator.

G1{\displaystyle \textstyle G_{1}} is considered an additive group, being a subgroup of the additive group of points of E{\displaystyle \textstyle E}, while G2{\displaystyle \textstyle G_{2}} is considered a multiplicative group, being a subgroup of the multiplicative group of the finite field GF(p2){\displaystyle \textstyle GF(p^{2})^{*}}.

Protocol description

Setup

The public key generator (PKG) chooses:

  1. the public groups G1{\displaystyle \textstyle G_{1}} (with generator P{\displaystyle \textstyle P}) and G2{\displaystyle \textstyle G_{2}} as stated above, with the size of q{\displaystyle \textstyle q} depending on security parameter k{\displaystyle \textstyle k},
  2. the corresponding pairing e{\displaystyle \textstyle e},
  3. a random private master-key Km=sZq{\displaystyle \textstyle K_{m}=s\in \mathbb {Z} _{q}^{*}},
  4. a public key Kpub=sP{\displaystyle \textstyle K_{pub}=sP},
  5. a public hash function H1:{0,1}G1{\displaystyle \textstyle H_{1}:\left\{0,1\right\}^{*}\rightarrow G_{1}^{*}},
  6. a public hash function H2:G2{0,1}n{\displaystyle \textstyle H_{2}:G_{2}\rightarrow \left\{0,1\right\}^{n}} for some fixed n{\displaystyle \textstyle n} and
  7. the message space and the cipher spaceM={0,1}n,C=G1×{0,1}n{\displaystyle \textstyle {\mathcal {M}}=\left\{0,1\right\}^{n},{\mathcal {C}}=G_{1}^{*}\times \left\{0,1\right\}^{n}}

Extraction

To create the public key for ID{0,1}{\displaystyle \textstyle ID\in \left\{0,1\right\}^{*}}, the PKG computes

  1. QID=H1(ID){\displaystyle \textstyle Q_{ID}=H_{1}\left(ID\right)} and
  2. the private key dID=sQID{\displaystyle \textstyle d_{ID}=sQ_{ID}} which is given to the user.

Encryption

Given mM{\displaystyle \textstyle m\in {\mathcal {M}}}, the ciphertext c{\displaystyle \textstyle c} is obtained as follows:

  1. QID=H1(ID)G1{\displaystyle \textstyle Q_{ID}=H_{1}\left(ID\right)\in G_{1}^{*}},
  2. choose random rZq{\displaystyle \textstyle r\in \mathbb {Z} _{q}^{*}},
  3. compute gID=e(QID,Kpub)G2{\displaystyle \textstyle g_{ID}=e\left(Q_{ID},K_{pub}\right)\in G_{2}} and
  4. set c=(rP,mH2(gIDr)){\displaystyle \textstyle c=\left(rP,m\oplus H_{2}\left(g_{ID}^{r}\right)\right)}.

Note that Kpub{\displaystyle \textstyle K_{pub}} is the PKG's public key and thus independent of the recipient's ID.

Decryption

Given c=(u,v)C{\displaystyle \textstyle c=\left(u,v\right)\in {\mathcal {C}}}, the plaintext can be retrieved using the private key:

m=vH2(e(dID,u)){\displaystyle \textstyle m=v\oplus H_{2}\left(e\left(d_{ID},u\right)\right)}

Correctness

The primary step in both encryption and decryption is to employ the pairing and H2{\displaystyle \textstyle H_{2}} to generate a mask (like a symmetric key) that is xor'ed with the plaintext. So in order to verify correctness of the protocol, one has to verify that an honest sender and recipient end up with the same values here.

The encrypting entity uses H2(gIDr){\displaystyle \textstyle H_{2}\left(g_{ID}^{r}\right)}, while for decryption, H2(e(dID,u)){\displaystyle \textstyle H_{2}\left(e\left(d_{ID},u\right)\right)} is applied. Due to the properties of pairings, it follows that:

H2(e(dID,u))=H2(e(sQID,rP))=H2(e(QID,P)rs)=H2(e(QID,sP)r)=H2(e(QID,Kpub)r)=H2(gIDr){\displaystyle {\begin{aligned}H_{2}\left(e\left(d_{ID},u\right)\right)&=H_{2}\left(e\left(sQ_{ID},rP\right)\right)\\&=H_{2}\left(e\left(Q_{ID},P\right)^{rs}\right)\\&=H_{2}\left(e\left(Q_{ID},sP\right)^{r}\right)\\&=H_{2}\left(e\left(Q_{ID},K_{pub}\right)^{r}\right)\\&=H_{2}\left(g_{ID}^{r}\right)\\\end{aligned}}}

Security

The security of the scheme depends on the hardness of the bilinear Diffie-Hellman problem (BDH) for the groups used. It has been proved that in a random-oracle model, the protocol is semantically secure under the BDH assumption.

Improvements

BasicIdent is not chosen ciphertext secure. However, there is a universal transformation method due to Fujisaki and Okamoto[2] that allows for conversion to a scheme having this property called FullIdent.

References

  1. ^Dan Boneh, Matthew K. Franklin, "Identity-Based Encryption from the Weil Pairing", Advances in Cryptology – Proceedings of CRYPTO 2001 (2001)
  2. ^Eiichiro Fujisaki, Tatsuaki Okamoto, "Secure Integration of Asymmetric and Symmetric Encryption Schemes", Advances in Cryptology – Proceedings of CRYPTO 99 (1999). Full version appeared in J. Cryptol. (2013) 26: 80–101