|
|
(504 intermediate revisions by more than 100 users not shown) |
Line 1: |
Line 1: |
| '''ID-based encryption''' (or '''identity-based encryption (IBE)''') is an important primitive of [[ID-based cryptography]]. As such it is a type of [[public-key encryption]] in which the [[public key]] of a user is some unique information about the identity of the user (e.g. a user's email address). This can use the text-value of the name or domain name as a key or the physical IP address it translates to. | | This is a preview for the new '''MathML rendering mode''' (with SVG fallback), which is availble in production for registered users. |
|
| |
|
| The first implementation of an email-address based PKI was developed by [[Adi Shamir]] in 1984,<ref name="iseca.org">Adi Shamir, [http://www.iseca.org/modules/mydownloads/visit.php?cid=56&lid=33 Identity-Based Cryptosystems and Signature Schemes]. ''Advances in Cryptology: Proceedings of CRYPTO 84, Lecture Notes in Computer Science'', 7:47--53, 1984</ref> which allowed users to verify [[digital signature]]s using only public information such as the user's identifier.
| | If you would like use the '''MathML''' rendering mode, you need a wikipedia user account that can be registered here [[https://en.wikipedia.org/wiki/Special:UserLogin/signup]] |
| | * Only registered users will be able to execute this rendering mode. |
| | * Note: you need not enter a email address (nor any other private information). Please do not use a password that you use elsewhere. |
|
| |
|
| ID-based encryption was proposed by [[Adi Shamir]] in 1984.<ref name="iseca.org"/> He was however only able to give an instantiation of [[ID-based cryptography|identity-based signatures]]. Identity-based encryption remained an open problem for many years. One example of the research leading up to identity-based encryption is provided in Maurer.<ref>Ueli M. Maurer: Protocols for Secret Key Agreement by Public Discussion Based on Common Information. CRYPTO 1992: 461-470</ref>
| | Registered users will be able to choose between the following three rendering modes: |
|
| |
|
| The [[pairing-based cryptography|pairing]]-based [[Boneh–Franklin scheme]]<ref>Dan Boneh, Matthew K. Franklin, Identity-Based Encryption from the Weil Pairing ''Advances in Cryptology - Proceedings of CRYPTO 2001'' (2001)</ref> and [[Cocks IBE scheme|Cocks's encryption scheme]]<ref>Clifford Cocks, [http://groups.csail.mit.edu/cis/crypto/classes/6.876/papers/cocks-IBE.pdf An Identity Based Encryption Scheme Based on Quadratic Residues], ''Proceedings of the 8th IMA International Conference on Cryptography and Coding'', 2001</ref> based on [[quadratic residue]]s both solved the IBE problem in 2001.
| | '''MathML''' |
| | :<math forcemathmode="mathml">E=mc^2</math> |
|
| |
|
| ==Usage==
| | <!--'''PNG''' (currently default in production) |
| Identity-based systems allow any party to generate a public key from a known identity value such as an ASCII string. A trusted third party, called the [[Private Key Generator]] (PKG), generates the corresponding private keys. To operate, the PKG first publishes a master public key, and retains the corresponding '''master private key''' (referred to as ''master key''). Given the master public key, any party can compute a public key corresponding to the identity ''ID'' by combining the master public key with the identity value. To obtain a corresponding private key, the party authorized to use the identity ''ID'' contacts the PKG, which uses the master private key to generate the private key for identity ''ID''.
| | :<math forcemathmode="png">E=mc^2</math> |
|
| |
|
| As a result, parties may encrypt messages (or verify signatures) with no prior distribution of keys between individual participants. This is extremely useful in cases where pre-distribution of authenticated keys is inconvenient or infeasible due to technical restraints. However, to decrypt or sign messages, the authorized user must obtain the appropriate private key from the PKG. A caveat of this approach is that the PKG must be highly trusted, as it is capable of generating any user's private key and may therefore decrypt (or sign) messages without authorization. Because any user's private key can be generated through the use of the third party's secret, this system has inherent [[key escrow]]. A number of variant systems have been proposed which remove the escrow including [[certificate-based encryption]],<ref>Craig Gentry [http://eprint.iacr.org/2003/183.pdf Certificate-Based Encryption and the Certificate Revocation Problem] ''Advances in Cryptology - Proceedings of EUROCRYPT 2003'' (2003)</ref> [[secure key issuing cryptography]]<ref>{{cite conference | first1 = Byoungcheon | last1 = Lee | first2 = Colin | last2 = Boyd | first2 = Ed | last2 = Dawson | first3 = Kwangjo | last3 = Kim | first4 = Jeongmo | last4 = Yang | first5 = Seungjae | last5 = Yoo | id = {{citeseerx|10.1.1.6.337}} | title = Secure Key Issuing in ID-based Cryptography | copnference = ACS Conferences in Research and Practice in Information Technology - Proceedings of the Second Australian Information Security Workshop-AISW 2004 | year = 2004 }}</ref> and [[certificateless cryptography]].<ref>SS Al-Riyami, KG Paterson [http://www.springerlink.com/index/4WC47ELK7FP8XWTY.pdf Certificateless Public Key Cryptography] ''Advances in Cryptology - Proceedings of ASIACRYPT 2003'' (2003)</ref>
| | '''source''' |
| The steps involved are depicted in this diagram:[[Image:ID Based Encryption.png|center|thumb|600px|ID Based Encryption: Offline and Online Steps]]
| | :<math forcemathmode="source">E=mc^2</math> --> |
|
| |
|
| ==Protocol framework== | | <span style="color: red">Follow this [https://en.wikipedia.org/wiki/Special:Preferences#mw-prefsection-rendering link] to change your Math rendering settings.</span> You can also add a [https://en.wikipedia.org/wiki/Special:Preferences#mw-prefsection-rendering-skin Custom CSS] to force the MathML/SVG rendering or select different font families. See [https://www.mediawiki.org/wiki/Extension:Math#CSS_for_the_MathML_with_SVG_fallback_mode these examples]. |
| [[Dan Boneh]] and [[Matthew K. Franklin]] defined a set of four algorithms that form a complete IBE system: | |
| * '''Setup''': This algorithm is run by the PKG one time for creating the whole IBE environment. The master key is kept secret and used to derive users' private keys, while the system parameters are made public. It accepts a [[security parameter]] <math>\textstyle k</math> (i.e. binary length of key material) and outputs:
| |
| # A set <math>\textstyle \mathcal{P}</math> of system parameters, including the [[message space]] and [[ciphertext space]] <math>\textstyle \mathcal{M}</math> and <math>\textstyle \mathcal{C}</math>, | |
| # a master key <math>\textstyle K_m</math>. | |
|
| |
|
| * '''Extract''': This algorithm is run by the PKG when a user requests his private key. Note that the verification of the [[Authentication|authenticity]] of the requestor and the secure transport of <math>\textstyle d</math> are problems with which IBE protocols do not try to deal. It takes as input <math>\textstyle \mathcal{P}</math>, <math>\textstyle K_m</math> and an identifier <math>\textstyle ID \in \left\{0,1\right\}^*</math> and returns the private key <math>\textstyle d</math> for user <math>\textstyle ID</math>.
| | ==Demos== |
|
| |
|
| * '''Encrypt''': Takes <math>\textstyle \mathcal{P}</math>, a message <math>\textstyle m \in \mathcal{M}</math> and <math>\textstyle ID \in \left\{0,1\right\}^*</math> and outputs the encryption <math>\textstyle c \in \mathcal{C}</math>.
| | Here are some [https://commons.wikimedia.org/w/index.php?title=Special:ListFiles/Frederic.wang demos]: |
|
| |
|
| * '''Decrypt''': Accepts <math>\textstyle d</math>, <math>\textstyle \mathcal{P}</math> and <math>\textstyle c \in \mathcal{C}</math> and returns <math>\textstyle m \in \mathcal{M}</math>.
| |
|
| |
|
| ===Correctness constraint===
| | * accessibility: |
| In order for the whole system to work, one has to postulate that:
| | ** Safari + VoiceOver: [https://commons.wikimedia.org/wiki/File:VoiceOver-Mac-Safari.ogv video only], [[File:Voiceover-mathml-example-1.wav|thumb|Voiceover-mathml-example-1]], [[File:Voiceover-mathml-example-2.wav|thumb|Voiceover-mathml-example-2]], [[File:Voiceover-mathml-example-3.wav|thumb|Voiceover-mathml-example-3]], [[File:Voiceover-mathml-example-4.wav|thumb|Voiceover-mathml-example-4]], [[File:Voiceover-mathml-example-5.wav|thumb|Voiceover-mathml-example-5]], [[File:Voiceover-mathml-example-6.wav|thumb|Voiceover-mathml-example-6]], [[File:Voiceover-mathml-example-7.wav|thumb|Voiceover-mathml-example-7]] |
| | ** [https://commons.wikimedia.org/wiki/File:MathPlayer-Audio-Windows7-InternetExplorer.ogg Internet Explorer + MathPlayer (audio)] |
| | ** [https://commons.wikimedia.org/wiki/File:MathPlayer-SynchronizedHighlighting-WIndows7-InternetExplorer.png Internet Explorer + MathPlayer (synchronized highlighting)] |
| | ** [https://commons.wikimedia.org/wiki/File:MathPlayer-Braille-Windows7-InternetExplorer.png Internet Explorer + MathPlayer (braille)] |
| | ** NVDA+MathPlayer: [[File:Nvda-mathml-example-1.wav|thumb|Nvda-mathml-example-1]], [[File:Nvda-mathml-example-2.wav|thumb|Nvda-mathml-example-2]], [[File:Nvda-mathml-example-3.wav|thumb|Nvda-mathml-example-3]], [[File:Nvda-mathml-example-4.wav|thumb|Nvda-mathml-example-4]], [[File:Nvda-mathml-example-5.wav|thumb|Nvda-mathml-example-5]], [[File:Nvda-mathml-example-6.wav|thumb|Nvda-mathml-example-6]], [[File:Nvda-mathml-example-7.wav|thumb|Nvda-mathml-example-7]]. |
| | ** Orca: There is ongoing work, but no support at all at the moment [[File:Orca-mathml-example-1.wav|thumb|Orca-mathml-example-1]], [[File:Orca-mathml-example-2.wav|thumb|Orca-mathml-example-2]], [[File:Orca-mathml-example-3.wav|thumb|Orca-mathml-example-3]], [[File:Orca-mathml-example-4.wav|thumb|Orca-mathml-example-4]], [[File:Orca-mathml-example-5.wav|thumb|Orca-mathml-example-5]], [[File:Orca-mathml-example-6.wav|thumb|Orca-mathml-example-6]], [[File:Orca-mathml-example-7.wav|thumb|Orca-mathml-example-7]]. |
| | ** From our testing, ChromeVox and JAWS are not able to read the formulas generated by the MathML mode. |
|
| |
|
| <math> \forall m \in \mathcal{M}, ID \in \left\{0,1\right\}^*: Decrypt\left(Extract\left(\mathcal{P}, K_m, ID\right), \mathcal{P}, Encrypt\left(\mathcal{P}, m, ID \right) \right) = m </math>
| | ==Test pages == |
|
| |
|
| ==Encryption schemes==
| | To test the '''MathML''', '''PNG''', and '''source''' rendering modes, please go to one of the following test pages: |
| The most efficient identity-based encryption schemes are currently based on [[Pairing|bilinear pairings]] on [[elliptic curves]], such as the [[weil pairing|Weil]] or [[Tate pairing|Tate]] pairings. The first of these schemes was developed by [[Dan Boneh]] and [[Matthew K. Franklin]] (2001), and performs [[probabilistic encryption]] of arbitrary ciphertexts using an [[ElGamal encryption|Elgamal]]-like approach. Though the [[BonehFranklinScheme|Boneh-Franklin scheme]] is [[Provable security|provably secure]], the security proof rests on relatively new assumptions about the hardness of problems in certain elliptic curve groups.
| | *[[Displaystyle]] |
| | *[[MathAxisAlignment]] |
| | *[[Styling]] |
| | *[[Linebreaking]] |
| | *[[Unique Ids]] |
| | *[[Help:Formula]] |
|
| |
|
| Another approach to identity-based encryption was proposed by [[Clifford Cocks]] in 2001. The [[Cocks IBE scheme]] is based on well-studied assumptions (the [[quadratic residuosity problem|quadratic residuosity assumption]]) but encrypts messages one bit at a time with a high degree of [[ciphertext expansion]]. Thus it is highly inefficient and impractical for sending all but the shortest messages, such as a session key for use with a [[symmetric cipher]].
| | *[[Inputtypes|Inputtypes (private Wikis only)]] |
| | | *[[Url2Image|Url2Image (private Wikis only)]] |
| == Advantages == | | ==Bug reporting== |
| One of the major advantages of any identity-based encryption scheme is that if there are only a finite number of users, after all users have been issued with keys the third party's secret can be destroyed. This can take place because this system assumes that, once issued, keys are always valid (as this basic system lacks a method of [[key revocation]]). The majority of derivatives of this system which have key revocation lose this advantage.
| | If you find any bugs, please report them at [https://bugzilla.wikimedia.org/enter_bug.cgi?product=MediaWiki%20extensions&component=Math&version=master&short_desc=Math-preview%20rendering%20problem Bugzilla], or write an email to math_bugs (at) ckurs (dot) de . |
| | |
| Moreover, as public keys are derived from identifiers, IBE eliminates the need for a public key distribution infrastructure. The [[Authentication|authenticity]] of the public keys is guaranteed implicitly as long as the transport of the private keys to the corresponding user is kept secure ([[Authentication#Computer_security|Authenticity]], [[Data integrity|Integrity]], [[Confidentiality]]).
| |
| | |
| Apart from these aspects, IBE offers interesting features emanating from the possibility to encode additional information into the identifier. For instance, a sender might specify an expiration date for a message. He appends this timestamp to the actual recipient's identity (possibly using some binary format like X.509). When the receiver contacts the PKG to retrieve the private key for this public key, the PKG can evaluate the identifier and decline the extraction if the expiration date has passed. Generally, embedding data in the ID corresponds to opening an additional channel between sender and PKG with authenticity guaranteed through the dependency of the private key on the identifier.
| |
| | |
| == Drawbacks == | |
| * If a Private Key Generator (PKG) is compromised, all messages protected over the entire lifetime of the public-private key pair used by that server are also compromised. This makes the PKG a high value target to adversaries. To limit the exposure due to a compromised server, the master private-public key pair could be updated with a new independent key pair. However, this introduces a key-management problem where all users must have the most recent public key for the server.
| |
| * Because the Private Key Generator (PKG) generates private keys for users, it may decrypt and/or sign any message without authorisation. This implies that IBE systems cannot be used for [[non-repudiation]]. This may not be an issue for organizations that host their own PKG and are willing to trust their system administrators and do not require non-repudiation.
| |
| * The issue of implicit key escrow does not exist with the current [[Public key infrastructure|PKI]] system wherein private keys are usually generated on the user's computer. Depending on the context key escrow can be seen as a positive feature (e.g., within Enterprises). A number of variant systems have been proposed which remove the escrow including [[certificate-based encryption]], [[secret sharing]], [[secure key issuing cryptography]] and [[certificateless cryptography]].
| |
| * A secure channel between a user and the Private Key Generator (PKG) is required for transmitting the private key on joining the system. Here, a [[Secure Sockets Layer|SSL]]-like connection is a common solution for a large-scale system. It is important to observe that users that hold accounts with the PKG must be able to authenticate themselves. In principle, this may be achieved through username,password or through public key pairs managed on smart cards.
| |
| * IBE solutions may rely on cryptographic techniques that are insecure against code breaking [[quantum computer]] attacks (see [[Shor's algorithm]])
| |
| | |
| ==See also==
| |
| *[[ID-based cryptography]]
| |
| | |
| ==References==
| |
| {{Reflist}}
| |
| | |
| ==External links==
| |
| * [http://www.crypto.rub.de/its_seminar_ws0708.html Seminar 'Cryptography and Security in Banking'/'Alternative Cryptology', Ruhr University Bochum]
| |
| * [http://www.ietf.org/rfc/rfc5091.txt RFC 5091 - the IETF RFC defining two common IBE algorithms]
| |
| * [http://www.hpl.hp.com/techreports/2003/HPL-2003-21.pdf HP Role-Based Encryption]
| |
| * [http://www.larc.usp.br/~pbarreto/pblounge.html The Pairing-Based Crypto Lounge]
| |
| * [http://www.voltage.com/vsn The Voltage Security Network - IBE encryption web service]
| |
| * [http://vsn.visus-it.com VSN Fully Managed Email Encryption Service - UK based IBE encryption web service]
| |
| * [http://www.ferris.com/2006/05/30/the-total-cost-of-ownership-for-voltage-identity-based-encryption-solutions/ Analyst report on the cost of IBE versus PKI]
| |
| | |
| {{DEFAULTSORT:Id-Based Encryption}}
| |
| [[Category:Public-key cryptography]]
| |
| [[Category:Identity-based cryptography]]
| |
| | |
| [[fr:Schéma basé sur l'identité]]
| |
| [[ko:신원 기반 암호]]
| |
| [[ja:IDベース暗号]]
| |