Editing Arbitrated Quantum Digital Signature
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
The Arbitrated Quantum Signature protocol is quantum digital signature scheme where the public and private keys are classical in nature, however the signature cipher has a quantum nature. This is based directly on the public-key cryptography where the signer's identity is used to generate the public-key and One-Time Pad protocol generates the private key. | |||
</br></br> | </br></br> | ||
'''Tags:''' [[Quantum Digital Signature]], Public key cryptography, [[:Category: Specific Task| | '''Tags:''' [[Quantum Digital Signature]], Public key cryptography, [[:Category: Specific Task|Specific Task]] | ||
==Assumptions== | ==Assumptions== | ||
* The protocol assumes perfect state preparation, transmissions | * The protocol assumes perfect state preparation, transmissions and measurements. | ||
* Private-key generation (PKG) is a trusted | * Private-key generation (PKG) is the arbitrator which is a trusted party. The master key and the identity of the Signer is kept secret by PKG. | ||
* In the signing process, the | * item In the signing process, the quantum one way function used to create the quantum digest is assumed to take polynomial time to compute and is hard to invert. | ||
==Outline== | ==Outline== | ||
The entire protocol is broken in three phases: Key Generation, Signature and Verification. This scheme is presented between PKG, a Signer and a Verifier. The total number of qubits used in this protocol is equal to the total number of qubits in the message.</br> | |||
* '''Key Generation''': In this | * '''Key Generation''': In this method, the PKG generates a private key for the Signer and sends the same. This transaction can take place on both secure and insecure channels. | ||
** | ** Using identity-based encryption, Signer's public key is generated using their personal public information like email or ID card. This public key is accessible on open channels. | ||
** | ** PKG acquires the Signer's public key through the open channels. | ||
** | ** A quantum one way function is secretly and randomly selected by the PKG as the master key and along with that a random OTP number is also selected to denote Signer's different signature, thus acting as the identity. Using this identity and master key, a private key is generated for the Signer by the PKG. | ||
** In the case of an insecure channel between the PKG and Signer, a secret key is shared in advance between them. PKG uses the shared key to encrypt the private key using the quantum Vernam cipher (Link here). Hence the Signer receives their private key. | |||
** | |||
* ''' | * '''Signature''': In this method, the Signer generates a signature quantum state using the message they want send, their public and private keys. The Signer also selects a quantum one way function publicly to generate the quantum digest. | ||
** The | ** The Signer selects two random strings and generates a quantum state of the message using these random strings. | ||
** | ** The public and the private key are used to generate the signature quantum state from the state produced in the previous step. | ||
** | ** The Signer then generates a private key state using the two selected random numbers and the private key. Along with that a basis state is generated, which is a set of basis of each qubit in the private key state. | ||
** Signer then generates a quantum digital digest using the quantum one way function with the message and private key state as input. This process is repeated several times to generate few copies of the quantum digest. | |||
** The shared key with PKG is used to encrypt the quantum digest using the quantum Vernam cipher and then it is delivered to PKG. | |||
** PKG decrypts the received ciphertext state and announces publicly that the messages are ready for the Verifier to download and verify. | |||
** Signers sends the signature to Verifier which includes the signature quantum state, plain text message, timestamp and basis state. | |||
* '''Verify''': In this method, the verifier checks the authenticity of the signature. | |||
** The Verifier uses Signer's public key and the signature sent to generate a quantum state. According to the Basis state set, the Verifier measures this quantum state and the result of this measurement is converted to a set of classical 2-bit string. | |||
** One of the randomly selected string by the Signer can be easily inferred by the Verifier from the state after the measurement. The Verifier is then able to generate their own copy of quantum digital digest using the publicly announced quantum one way function. | |||
** Verifier now publicly gains the timestamp and quantum digital digest from PKG and verifies that state with the produced quantum digital digest in the above step with the SWAP test. As the SWAP test has a probabilistic result, it is performed several times with the copies of quantum digital digest and then verified. | |||
** If the test is passed the message from the Signer would be valid otherwise it is rejected. | |||
==Notation== | ==Notation== | ||
* <math>n</math>: Total number of qubits of message. | * <math>n</math>: Total number of qubits of message. | ||
* <math>k_{pub}</math>: Signer's public key, where <math>k_{pub} \in \{0,1\}^n</math>. | |||
* <math>k_{pub}</math>: | * <math>k_{pri}</math>: Signer's private, where <math>k_{pri} \in \{0,1\}^n</math>. | ||
* <math>k_{pri}</math>: | * <math>k_r</math>: Random OTP number selected by PKG to denote each of Signer's signatures, where <math>k_{r} \in \{0,1\}^n</math>. | ||
* <math>k_r</math>: Random OTP number selected by PKG to denote each of | * <math>k_{at}</math>: Shared key between the Signer and PKG where <math>k_{at} \in \{0,1\}^n</math>. | ||
* <math>k_{at}</math>: Shared key between the | |||
* <math>E_{k_{at}}</math>: Quantum Vernam cipher encrypted state which uses <math>k_{at}</math>. | * <math>E_{k_{at}}</math>: Quantum Vernam cipher encrypted state which uses <math>k_{at}</math>. | ||
* <math>G</math>: PKG's master key which is a one way function where <math>\{0,1\}^n \xrightarrow{}\{0,1\}^n</math> . | * <math>G</math>: PKG's master key which is a one way function where <math>\{0,1\}^n \xrightarrow{}\{0,1\}^n</math> . | ||
* <math>F</math>: Public quantum one way function selected by | * <math>F</math>: Public quantum one way function selected by Signer to generate quantum digest. | ||
* <math>m</math>: Message sent by | * <math>m</math>: Message sent by Signer to the Verifier, where <math>m \in \{0,1\}^n</math>. | ||
* <math>s</math>: Random string of uniform distribution selected by the | * <math>s</math>: Random string of uniform distribution selected by the Signer, where <math>s \in \{0,1\}^n</math>. | ||
* <math>t</math>: Random string of uniform distribution selected by the | * <math>t</math>: Random string of uniform distribution selected by the Signer, where <math>t \in \{0,1\}^n</math>. | ||
* <math>|\phi\rangle_{a_l,b_l}</math>: Quantum state which is defined by | * <math>|\phi\rangle_{a_l,b_l}</math>: Quantum state which is defined by | ||
<math>|\phi\rangle_{a_l,b_l} := H^{a_l}U_{\frac{\pi}{4}}H^{b_l}|0\rangle</math> | <math>|\phi\rangle_{a_l,b_l} := H^{a_l}U_{\frac{\pi}{4}}H^{b_l}|0\rangle</math> | ||
* <math>|\phi\rangle_{a_l,b_l,c_l}</math>: Quantum state which is defined by | * <math>|\phi\rangle_{a_l,b_l,c_l}</math>: Quantum state which is defined by | ||
<math>|\phi\rangle_{a_l,b_l,c_l} := Y^{c_l}|\phi\rangle_{a_l,b_l}</math> | <math>|\phi\rangle_{a_l,b_l,c_l} := Y^{c_l}|\phi\rangle_{a_l,b_l}</math> | ||
* <math>|S\rangle_{k_{pri},m}</math>: Signature quantum state for message | * <math>|S\rangle_{k_{pri},m}</math>: Signature quantum state for message $m$ which is the quantum state | ||
<math>|S\rangle_{k_{pri},m} = \bigotimes^{n}_{l=1} H^{k_{pub_l}\oplus k_{pri_l}} |\phi\rangle_{s_l,t_l\oplus m_l, m_l}</math> | <math>|S\rangle_{k_{pri},m} = \bigotimes^{n}_{l=1} H^{k_{pub_l}\oplus k_{pri_l}} |\phi\rangle_{s_l,t_l\oplus m_l, m_l}</math> | ||
* <math>|P\rangle</math>: Private key quantum state where <math>|P\rangle \in \{|+\rangle, |-\rangle, |1\rangle, |0\rangle\}^n</math> and it is the quantum state: | * <math>|P\rangle</math>: Private key quantum state where <math>|P\rangle \in \{|+\rangle, |-\rangle, |1\rangle, |0\rangle\}^n</math> and it is the quantum state: | ||
<math>|P\rangle := H^{k_{pri}}|\phi\rangle_{s, t\oplus m}</math> | <math>|P\rangle := H^{k_{pri}}|\phi\rangle_{s, t\oplus m}</math> | ||
* <math>P</math>: Classical 2n-bit for <math>n</math>-qubit <math>|P\rangle</math> where <math>|+\rangle</math> is encoded to 10, <math>|-\rangle</math> to 11, <math>|1\rangle</math> to 00 and <math>|0\rangle</math> is encoded to 01. | * <math>P</math>: Classical 2n-bit for <math>n</math>-qubit <math>|P\rangle</math> where <math>|+\rangle</math> is encoded to 10, <math>|-\rangle</math> to 11, <math>|1\rangle</math> to 00 and <math>|0\rangle</math> is encoded to 01. | ||
* <math> | * <math>B_P</math>: This is the set of the basis of each qubit state in <math>|P\rangle</math>. | ||
<math> | <math> B_P = Basis(|P\rangle) \in \{+,\times \}</math> | ||
* <math>|F\rangle</math>: Quantum digital digest received by PKG. | * <math>|F\rangle</math>: Quantum digital digest received by PKG. | ||
* <math>|F\rangle'</math>: Quantum digital digest generated by | * <math>|F\rangle'</math>: Quantum digital digest generated by Verifier. | ||
* <math>u</math>: The most number of | * <math>u</math>: The most number of verifiers in this scheme. | ||
* <math>w</math>: Safety parameter threshold for acceptance. | * <math>w</math>: Safety parameter threshold for acceptance. | ||
* <math>w_0</math>: Security threshold decided in advance. | * <math>w_0</math>: Security threshold decided in advance. | ||
Line 70: | Line 65: | ||
<math>|V\rangle_{m, k_{pub},S} := Y^m H^{k_{pub}}|S\rangle_{k_{pri}, m}</math> | <math>|V\rangle_{m, k_{pub},S} := Y^m H^{k_{pub}}|S\rangle_{k_{pri}, m}</math> | ||
This state is also expressed as <math>\beta|\phi\rangle_{k_{pri}\oplus s, t\oplus m}</math> where <math>\beta \in \{1, -1, \iota, -\iota\}</math> | This state is also expressed as <math>\beta|\phi\rangle_{k_{pri}\oplus s, t\oplus m}</math> where <math>\beta \in \{1, -1, \iota, -\iota\}</math> | ||
* <math>|Q\rangle</math>: Result of Verifier's measurement of <math>|V\rangle_{m, k_{pub},S}</math>. | |||
* <math>Q</math>: Classical bit string denoted as <math>Q \in \{00, 01, 10, 11\}^n</math>. It is proven that <math>P=Q</math>. | * <math>Q</math>: Classical bit string denoted as <math>Q \in \{00, 01, 10, 11\}^n</math>. It is proven that <math>P=Q</math>. | ||
* <math>\delta</math>: <math>\langle F|F\rangle'</math>, where <math>\delta \in [0,1)</math>. | * <math>\delta</math>: <math>\langle F|F\rangle'</math>, where <math>\delta \in [0,1)</math>. | ||
==Hardware Requirements== | ==Hardware Requirements== | ||
* | * Secure quantum channel between Signer and Verifier | ||
* | * Quantum channel between Signer and PKG | ||
* Private database for both Signer and PKG | |||
* Measurement devices for the Verifier. | |||
==Properties== | ==Properties== | ||
* The protocol assumes the PKG to be a trusted party. | |||
* This protocol cannot be broken even if the adversary had unlimited computing power. | * This protocol cannot be broken even if the adversary had unlimited computing power. | ||
* In this protocol, it is proven that no adversary can break the secrecy of the | * In this protocol, it is proven that no adversary can break the secrecy of the Signer's signature private key. | ||
* The quantum digital signature | * The quantum digital signature produces in this protocol is impossible to repudiate and cannot be forged in any condition. | ||
* In the protocol the public and the private key | * In the protocol the public and the private key belong to the classical bits, only the signature cipher has quantum nature. | ||
* No Certificate Authority is required to manage digital public-key certificate of | * No Certificate Authority is required to manage digital public-key certificate of Signers. | ||
* If <math>|F\rangle = |F\rangle'</math>, the measuring result <math>|0\rangle</math> occurs with probability 1, otherwise it occurs with probability <math>\frac{1+\delta^2}{2}</math>. Hence, when repeated for <math>w</math> times, the probability of equality is at least 1-<math>(\frac{1+\delta^2}{2})^w</math>. | * If <math>|F\rangle = |F\rangle'</math>, the measuring result <math>|0\rangle</math> occurs with probability 1, otherwise it occurs with probability <math>\frac{1+\delta^2}{2}</math>. Hence, when repeated for <math>w</math> times, the probability of equality is at least 1-<math>(\frac{1+\delta^2}{2})^w</math>. | ||
== | ==Pseudocode== | ||
'''Stage 1''': Key Generation </br> | |||
''' | '''Output''': Signer receives <math>k_{pri}</math> from the PKG. | ||
'''Output''': | |||
* <math>k_{pub}</math> is generated on the basis of Signer's public identity information like email or person ID-card. | |||
* PKG aquires <math>k_{pub}</math> through open channels. | |||
* PKG selects <math>G</math> randomly as its master key. | |||
* PKG selects <math>k_{r}</math> randomly. | |||
* PKG calculates <math>k_{pri}</math> as | |||
<div style="text-align: center;"><math>k_{pri} := G(k_{pub}) \oplus k_{r} </math></div> | |||
* PKG uses <math>k_{at}</math> to encrypt <math>k_{pri}</math> and transmits <math>E_{k_{at}}</math> to Signer. | |||
* Signer decrypts <math>E_{k_{at}}</math> using <math>k_{at}</math> and receives <math>k_{pri}</math>. | |||
'''Stage 2''': Signature</br> | |||
'''Output''': PKG receives the quantum digest <math>|F\rangle</math> and the Verifier receives the Signature <math>(ts, m, B_P,|S\rangle_{k_{pri}, m})</math> from the Signer. | |||
* Signer wants to sign the message <math>m</math>. | |||
* Signer selects <math>s</math> and <math>t</math>. | |||
* For <math>l = 1, 2, ...n</math>: | |||
** Signer generates the state <math>|\phi\rangle_{s_l,t_l\oplus m_l, m_l}</math>, which is: | |||
<div style="text-align: center;"><math> |\phi\rangle_{s_l,t_l\oplus m_l, m_l} = Y^{m_l}H^{s_l}U_{\frac{\pi}{4}}H^{t_l\oplus m_l}|0\rangle</math></div> | |||
* For <math>l = 1, 2, ...n</math>: | |||
** Signer generates the Signature quantum state <math>|S\rangle_{{k_{pri}}_l,m_l}</math>, which is | |||
<div style="text-align: center;"><math> |S\rangle_{{k_{pri}}_l,m_l} = H^{k_{pub_l}\oplus k_{pri_l}}|\phi\rangle_{s_l,t_l\oplus m_l, m_l}</math></div> | |||
* For <math>l = 1, 2, ...n</math>: | |||
** Signer generates the private key quantum state <math>|P\rangle_l</math>, which is | |||
<div style="text-align: center;"><math>|P\rangle_l = H^{k_{pri_l}} |\phi\rangle_{s_l, t_l\oplus m_l}</math></div> | |||
** The classical <math>P_l</math> is calculated based on <math>|P\rangle_l</math>. | |||
** The basis set is formed by Signer is: | |||
<div style="text-align: center;"><math> B_{P_l} = Basis(|P\rangle_l) \in \{+,\times \} </math></div> | |||
* For <math>k = 1, 2, ...u w</math>: Different copies of the quantum digital digest state is prepared. | |||
** For <math>l = 1, 2, ...n</math>: | |||
# | # The quantum digital digest state <math>|F\rangle_l</math> is prepared by Signer, where: | ||
<div style="text-align: center;"><math> |F\rangle_l = |F(t_l||m_l||P_l|| t_l s_l)\rangle_l</math></div> | |||
* Signer encrypts <math>|F\rangle</math> using quantum Vernam cipher and sends <math>E_{k_{at}}(ts, \otimes^{uw}_{l=1}|F\rangle)</math> to PKG. | |||
* PKG decrypts <math>E_{k_{at}}(ts, \otimes^{uw}_{l=1}|F\rangle)</math> using <math>k_{at}</math> and gets <math>(ts, \otimes^{uw}_{l=1}|F\rangle)</math>. | |||
* PKG announces publicly that the quantum digest is ready. | |||
* Signer transmits <math>(ts, m, B_P, |S\rangle_{k_{pri}, m})</math> to Verifier, which is the signature. | |||
'''Stage 3''': Verification</br> | |||
''' | '''Output''': <math>m</math> is considered valid or is rejected by the Verifier. | ||
* Verifier receives <math>|k\rangle_{pub}</math> from open channels. | |||
* Verifier generates the state <math>|V\rangle_{m, k_{pub},S}</math>. | |||
* For <math>l = 1, 2, ... w</math>: | |||
** Verifier measure the state <math>|V\rangle_{{(m, k_{pub},S)}_{l}}</math> according to the basis (diagonal or horizontal) in <math>B_{P_l}</math>. | |||
** The result of the measurement is recorded as <math>|Q\rangle_l</math>, which is converted to <math>Q_l</math>. | |||
* <math>t</math> is inferred by the Verifier using <math>Q</math> | |||
* Verifier gains <math>(ts, \otimes^{w}_{l=1} |F\rangle)</math> from PKG. | |||
* For <math>k = 1, 2, ... w'</math>: | |||
** Verifier generates <math>|F\rangle'</math> using <math>F</math> by the calculation | |||
<div style="text-align: center;"><math> |F\rangle' = |F(t||m||Q||t s)\rangle</math></div> | |||
** Verifier gains <math>(ts, |F\rangle)</math> from PKG. | |||
** Verifier performs SWAP test between <math>|F\rangle</math> and <math>|F\rangle'</math>. | |||
* If <math>w'>w_0</math> and measurement result everytime = <math>|0\rangle'</math>: | |||
** Verifier counts the message <math>m</math> as valid. | |||
* else: | |||
** <math>m</math> is rejected by the Verifier. | |||
==Further Information== | ==Further Information== | ||
<div style='text-align: right;'>''*contributed by Rhea Parekh''</div> | |||
<div style='text-align: right;'>''*contributed by Rhea Parekh |