Backward differentiation formula: Difference between revisions
en>ChrisGualtieri m General Fixes using AWB |
|||
Line 1: | Line 1: | ||
The '''Boneh/Franklin scheme''' is an [[Identity based encryption]] system proposed by [[Dan Boneh]] and [[Matthew K. Franklin]] in 2001.<ref>Dan Boneh, Matthew K. Franklin, Identity-Based Encryption from the Weil Pairing ''Advances in Cryptology - Proceedings of CRYPTO 2001'' (2001)</ref> This article refers to the protocol version called '''BasicIdent'''. It is an application of [[Pairing#Pairings_in_cryptography|pairings]] ([[Weil pairing]]) over [[elliptic curves]] and [[finite fields]]. | |||
==Groups and parameters== | |||
As the scheme bases upon [[pairing#Pairings_in_cryptography|pairings]], all computations are performed in two groups <math>\textstyle G_1</math> and <math>\textstyle G_2</math>: | |||
For <math>\textstyle G_1</math>, let <math>\textstyle p</math> be prime, <math>\textstyle p \equiv 2 \mod 3</math> and consider the [[elliptic curve]] <math>\textstyle E: y^2 = x^3 + 1</math> over <math>\textstyle \mathbb{Z}/p\mathbb{Z}</math>. Note that this curve is not singular as <math>\textstyle 4a^3+27b^2 = 27 = 3^3</math> only equals <math>\textstyle 0</math> for the case <math>\textstyle p = 3</math> which is excluded by the additional constraint. | |||
Let <math>\textstyle q > 3</math> be a prime factor of <math>\textstyle p + 1</math> (which is the order of <math>\textstyle E</math>) and find a point <math>\textstyle P \in E</math> of order <math>\textstyle q</math>. <math>\textstyle G_1</math> is the set of points generated by <math>\textstyle P</math>: <math>\textstyle \left\{nP \| n \in \left\{0,\ldots,q-1\right\} \right\}</math> | |||
<math>\textstyle G_2</math> is the subgroup of order <math>\textstyle q</math> of <math>\textstyle GF\left(p^2\right)^*</math>. We do not need to construct this group explicitly (this is done by the pairing) and thus don't have to find a generator. | |||
==Protocol description== | |||
===Setup=== | |||
The Private Key Generator (PKG) chooses: | |||
# the public groups <math>\textstyle G_1</math> (with generator <math>\textstyle P</math>) and <math>\textstyle G_2</math> as stated above, with the size of <math>\textstyle q</math> depending on security parameter <math>\textstyle k</math>, | |||
# the corresponding pairing <math>\textstyle e</math>, | |||
# a random private master-key <math>\textstyle K_m = s \in \mathbb{Z}_q^*</math>, | |||
# a public key <math>\textstyle K_{pub} = sP</math>, | |||
# a public hash function <math>\textstyle H_1: \left\{0,1\right\}^* \rightarrow G_1^*</math>, | |||
# a public hash function <math>\textstyle H_2: G_2 \rightarrow \left\{0,1\right\}^n</math> for some fixed <math>\textstyle n</math> and | |||
# the [[message space]] and the [[cipher space]] <math>\textstyle \mathcal{M} = \left\{0,1\right\}^n, \mathcal{C} = G_1^* \times \left\{0,1\right\}^n</math> | |||
===Extract=== | |||
To create the public key for <math>\textstyle ID \in \left\{0,1\right\}^*</math>, the PKG computes | |||
# <math>\textstyle Q_{ID} = H_1\left(ID\right)</math> and | |||
# the private key <math>\textstyle d_{ID} = sQ_{ID}</math> which is given to the user. | |||
===Encrypt=== | |||
Given <math>\textstyle m \in \mathcal{M}</math>, the ciphertext <math>\textstyle c</math> is obtained as follows: | |||
# <math>\textstyle Q_{ID} = H_1\left(ID\right) \in G_1^*</math>, | |||
# choose random <math>\textstyle r \in \mathbb{Z}_q^*</math>, | |||
# compute <math>\textstyle g_{ID} = e\left(Q_{ID}, K_{pub}\right) \in G_2</math> and | |||
# set <math>\textstyle c = \left(rP, m \oplus H_2\left(g_{ID}^r\right)\right)</math>. | |||
Note that <math>\textstyle K_{pub}</math> is the PKG's public key and thus independent of the recipient's ID. | |||
=== Decrypt === | |||
Given <math>\textstyle c = \left(u, v\right) \in \mathcal{C}</math>, the plaintext can be retrieved using the private key: | |||
<math>\textstyle m = v \oplus H_2\left(e\left(d_{ID}, u\right)\right)</math> | |||
===Correctness=== | |||
The primary step in both en- and decryption is to employ the pairing and <math>\textstyle H_2</math> 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 <math>\textstyle H_2\left(g_{ID}^r\right)</math>, while for decryption, <math>\textstyle H_2\left( e\left(d_{ID}, u\right) \right)</math> is applied. Due to the properties of pairings, it follows that: | |||
<math> | |||
\begin{align} | |||
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{align} | |||
</math> | |||
==Security== | |||
The security of the scheme depends on the hardness of the [[Bilinear Diffie Hellman Problem|Bilinear Diffie-Hellman Problem]] (BDH) for the groups used. It has been proved that in a [[random oracle|random-oracle model]], the protocol is [[semantically secure]] under the BDH assumption. | |||
==Improvements== | |||
'''BasicIdent''' is not [[Adaptive chosen ciphertext attack|chosen ciphertext secure]]. However, there is a universal transformation method due to [[Eiichiro Fujisaki|Fujisaki]] and [[Tatsuaki Okamoto|Okamoto]] that allows for conversion to a scheme having this property called '''FullIdent'''. | |||
==References== | |||
<references/> | |||
==External links== | |||
* [http://www.crypto.rub.de/its_seminar_ws0708.html Seminar 'Cryptography and Security in Banking'/'Alternative Cryptology', Ruhr University Bochum] | |||
* [http://crypto.stanford.edu/pbc/ P(airing) B(ased) C(ryptography) library, designed by Ben Lynn et al.] | |||
{{DEFAULTSORT:Boneh Franklin Scheme}} | |||
[[Category:Public-key encryption schemes]] | |||
[[Category:Pairing-based cryptography]] | |||
[[Category:Identity-based cryptography]] | |||
[[Category:Elliptic curve cryptography]] |
Revision as of 04:38, 25 October 2013
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 bases upon pairings, all computations are performed in two groups and :
For , let be prime, and consider the elliptic curve over . Note that this curve is not singular as only equals for the case which is excluded by the additional constraint.
Let be a prime factor of (which is the order of ) and find a point of order . is the set of points generated by :
is the subgroup of order of . We do not need to construct this group explicitly (this is done by the pairing) and thus don't have to find a generator.
Protocol description
Setup
The Private Key Generator (PKG) chooses:
- the public groups (with generator ) and as stated above, with the size of depending on security parameter ,
- the corresponding pairing ,
- a random private master-key ,
- a public key ,
- a public hash function ,
- a public hash function for some fixed and
- the message space and the cipher space
Extract
To create the public key for , the PKG computes
Encrypt
Given , the ciphertext is obtained as follows:
Note that is the PKG's public key and thus independent of the recipient's ID.
Decrypt
Given , the plaintext can be retrieved using the private key:
Correctness
The primary step in both en- and decryption is to employ the pairing and 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 , while for decryption, is applied. Due to the properties of pairings, it follows that:
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 that allows for conversion to a scheme having this property called FullIdent.
References
- ↑ Dan Boneh, Matthew K. Franklin, Identity-Based Encryption from the Weil Pairing Advances in Cryptology - Proceedings of CRYPTO 2001 (2001)