Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Commitment scheme

From Wikipedia, the free encyclopedia
Cryptographic scheme
This articleneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Commitment scheme" – news ·newspapers ·books ·scholar ·JSTOR
(October 2014) (Learn how and when to remove this message)

Acommitment scheme is acryptographic primitive that allows one to commit to a chosen value (or chosen statement) while keeping it hidden to others, with the ability to reveal the committed value later.[1] Commitment schemes are designed so that a party cannot change the value or statement after they have committed to it: that is, commitment schemes arebinding. Commitment schemes have important applications in a number ofcryptographic protocols including secure coin flipping,zero-knowledge proofs, andsecure computation.

A way to visualize a commitment scheme is to think of a sender as putting a message in a locked box, and giving the box to a receiver. The message in the box is hidden from the receiver, who cannot open the lock themselves. Since the receiver has the box, the message inside cannot be changed—merely revealed if the sender chooses to give them the key at some later time.

Interactions in a commitment scheme take place in two phases:

  1. thecommit phase during which a value is chosen and committed to
  2. thereveal phase during which the value is revealed by the sender, then the receiver verifies its authenticity

In the above metaphor, the commit phase is the sender putting the message in the box, and locking it. The reveal phase is the sender giving the key to the receiver, who uses it to open the box and verify its contents. The locked box is the commitment, and the key is the proof.

In simple protocols, the commit phase consists of a single message from the sender to the receiver. This message is calledthe commitment. It is essential that the specific value chosen cannot be extracted from the message by the receiver at that time (this is called thehiding property). A simple reveal phase would consist of a single message,the opening, from the sender to the receiver, followed by a check performed by the receiver. The value chosen during the commit phase must be the only one that the sender can compute and that validates during the reveal phase (this is called thebinding property).

The concept of commitment schemes was perhaps first formalized byGilles Brassard,David Chaum, andClaude Crépeau in 1988,[2] as part of various zero-knowledge protocols forNP, based on various types of commitment schemes.[3][4] But the concept was used prior to that without being treated formally.[5][6] The notion of commitments appeared earliest in works byManuel Blum,[7]Shimon Even,[8] andAdi Shamir et al.[9] The terminology seems to have been originated by Blum,[6] although commitment schemes can be interchangeably calledbit commitment schemes—sometimes reserved for the special case where the committed value is abit. Prior to that, commitment via one-way hash functions was considered, e.g., as part of, say,Lamport signature, the original one-time one-bit signature scheme.

Applications

[edit]

Coin flipping

[edit]

SupposeAlice and Bob want to resolve some dispute viacoin flipping. If they are physically in the same place, a typical procedure might be:

  1. Alice "calls" the coin flip,
  2. Bob flips the coin,
  3. If Alice's call is correct, she wins, otherwise Bob wins.

If Alice and Bob are not in the same place a problem arises. Once Alice has "called" the coin flip, Bob can stipulate the flip "results" to be whatever is most desirable for him. Similarly, if Alice doesn't announce her "call" to Bob, after Bob flips the coin and announces the result, Alice can report that she called whatever result is most desirable for her. Alice and Bob can use commitments in a procedure that will allow both to trust the outcome:

  1. Alice "calls" the coin flip but only tells Bob acommitment to her call,
  2. Bob flips the coin and reports the result,
  3. Alice reveals what she committed to,
  4. Bob verifies that Alice's call matches her commitment,
  5. If Alice's revelation matches the coin result Bob reported, Alice wins.

For Bob to be able to skew the results to his favor, he must be able to understand the call hidden in Alice's commitment. If the commitment scheme is a good one, Bob cannot skew the results. Similarly, Alice cannot affect the result if she cannot change the value she commits to.

A real-life application of this problem exists, when people (often in media) commit to a decision or give an answer in a "sealed envelope", which is then opened later. "Let's find out if that's what the candidate answered", for example on a game show, can serve as a model of this system.

Zero-knowledge proofs

[edit]

One particular motivating example is the use of commitment schemes inzero-knowledge proofs. Commitments are used in zero-knowledge proofs for two main purposes: first, to allow the prover to participate in "cut and choose" proofs where the verifier will be presented with a choice of what to learn, and the prover will reveal only what corresponds to the verifier's choice. Commitment schemes allow the prover to specify all the information in advance, and only reveal what should be revealed later in the proof.[10] Second, commitments are also used in zero-knowledge proofs by the verifier, who will often specify their choices ahead of time in a commitment. This allows zero-knowledge proofs to be composed in parallel without revealing additional information to the prover.[11]

Signature schemes

[edit]

TheLamport signature scheme is adigital signature system that relies on maintaining two sets of secretdata packets, publishingverifiable hashes of the data packets, and then selectively revealing partial secret data packets in a manner that conforms specifically to the data to be signed. In this way, the prior public commitment to the secret values becomes a critical part of the functioning of the system.

Because the Lamport signature system cannot be used more than once, a system to combine many Lamport key-sets under a single public value that can be tied to a person and verified by others was developed. This system uses trees ofhashes to compress many published Lamport-key-commitment sets into a single hash value that can be associated with the prospective author of later-verified data.

Verifiable secret sharing

[edit]

Another important application of commitments is inverifiable secret sharing, a critical building block ofsecure multiparty computation. In asecret sharing scheme, each of several parties receive "shares" of a value that is meant to be hidden from everyone. If enough parties get together, their shares can be used to reconstruct the secret, but even a malicious cabal of insufficient size should learn nothing. Secret sharing is at the root of many protocols forsecure computation: in order to securely compute a function of some shared input, the secret shares are manipulated instead. However, if shares are to be generated by malicious parties, it may be important that those shares can be checked for correctness. In a verifiable secret sharing scheme, the distribution of a secret is accompanied by commitments to the individual shares. The commitments reveal nothing that can help a dishonest cabal, but the shares allow each individual party to check to see if their shares are correct.[12]

Defining the security

[edit]

Formal definitions of commitment schemes vary strongly in notation and in flavour. The first such flavour is whether the commitment scheme provides perfect or computational security with respect to the hiding or binding properties. Another such flavour is whether the commitment is interactive, i.e. whether both the commit phase and the reveal phase can be seen as being executed by acryptographic protocol or whether they are non-interactive, consisting of two algorithmsCommit andCheckReveal. In the latter caseCheckReveal can often be seen as a derandomised version ofCommit, with the randomness used byCommit constituting the opening information.

If the commitmentC to a valuex is computed asC:=Commit(x,open) withopen being the randomness used for computing the commitment, thenCheckReveal (C,x,open) reduces to simply verifying the equationC=Commit (x,open).

Using this notation and some knowledge aboutmathematical functions andprobability theory we formalise different versions of the binding and hiding properties of commitments. The two most important combinations of these properties are perfectly binding and computationally hiding commitment schemes and computationally binding and perfectly hiding commitment schemes. Note that no commitment scheme can be at the same time perfectly binding and perfectly hiding – a computationally unbounded adversary can simply generateCommit(x,open) for every value ofx andopen until finding a pair that outputsC, and in a perfectly binding scheme this uniquely identifiesx.

Computational binding

[edit]

Letopen be chosen from a set of size2k{\displaystyle 2^{k}}, i.e., it can be represented as ak bit string, and letCommitk{\displaystyle {\text{Commit}}_{k}} be the corresponding commitment scheme. As the size ofk determines the security of the commitment scheme it is called thesecurity parameter.

Then for allnon-uniformprobabilistic polynomial time algorithms that outputx,x{\displaystyle x,x'} andopen,open{\displaystyle open,open'} of increasing lengthk, the probability thatxx{\displaystyle x\neq x'} andCommitk(x,open)=Commitk(x,open){\displaystyle {\text{Commit}}_{k}(x,open)={\text{Commit}}_{k}(x',open')} is anegligible function ink.

This is a form ofasymptotic analysis. It is also possible to state the same requirement usingconcrete security: A commitment schemeCommit is(t,ϵ){\displaystyle (t,\epsilon )} secure, if for all algorithms that run in timet and outputx,x,open,open{\displaystyle x,x',open,open'} the probability thatxx{\displaystyle x\neq x'} andCommit(x,open)=Commit(x,open){\displaystyle {\text{Commit}}(x,open)={\text{Commit}}(x',open')} is at mostϵ{\displaystyle \epsilon }.

Perfect, statistical, and computational hiding

[edit]

LetUk{\displaystyle U_{k}} be the uniform distribution over the2k{\displaystyle 2^{k}} opening values for security parameterk. A commitment scheme is respectively perfect, statistical, or computational hiding, if for allxx{\displaystyle x\neq x'} theprobability ensembles{Commitk(x,Uk)}kN{\displaystyle \{{\text{Commit}}_{k}(x,U_{k})\}_{k\in \mathbb {N} }} and{Commitk(x,Uk)}kN{\displaystyle \{{\text{Commit}}_{k}(x',U_{k})\}_{k\in \mathbb {N} }} are equal,statistically close, orcomputationally indistinguishable.

Impossibility of universally composable commitment schemes

[edit]

It is impossible to realize commitment schemes in theuniversal composability(UC) framework. The reason is that UC commitment has to beextractable, as shown by Canetti and Fischlin[13] and explained below.

The ideal commitment functionality, denoted here byF, works roughly as follows. CommitterC sends valuem toF, whichstores it and sends "receipt" to receiverR. Later,C sends "open" toF, which sendsm toR.

Now, assume we have a protocolπ that realizes this functionality. Suppose that the committerC is corrupted. In the UC framework, that essentially means thatC is now controlled by the environment, which attempts to distinguish protocol execution from the ideal process. Consider an environment that chooses a messagem and then tellsC to act as prescribed byπ, as if it has committed tom. Note here that in order to realizeF, the receiver must, after receiving a commitment, output a message "receipt". After the environment sees this message, it tellsC to open the commitment.

The protocol is only secure if this scenario is indistinguishable from the ideal case, where the functionality interacts with a simulatorS. Here,S has control ofC. In particular, wheneverR outputs "receipt",F has to do likewise. The only way to do that is forS to tellC to send a value toF. However, notethat by this point,m is not known toS. Hence, when the commitment is opened during protocol execution, it is unlikely thatF will open tom, unlessS can extractm from the messages it received from the environment beforeR outputs the receipt.

However a protocol that is extractable in this sense cannot be statistically hiding. Suppose such a simulatorS exists. Now consider anenvironment that, instead of corruptingC, corruptsR instead. Additionally it runs a copy ofS. Messages received fromC are fed intoS, and replies fromS are forwarded toC.

The environment initially tellsC to commit to a messagem. At some point in the interaction,S will commit to a valuem′. This message is handed toR, who outputsm′. Note that by assumption we havem' = mwith high probability. Now in the ideal process the simulator has to come up withm. But this is impossible, because at this point the commitment has not been opened yet, so the only messageR can have received in the ideal process is a "receipt" message. We thus have a contradiction.

Construction

[edit]

A commitment scheme can either be perfectly binding (it is impossible for Alice to alter her commitment after she has made it, even if she has unbounded computational resources); or perfectly concealing (it is impossible for Bob to find out the commitment without Alice revealing it, even if he has unbounded computational resources); or formulated as an instance-dependent commitment scheme, which is either hiding or binding depending on the solution to another problem.[14][15] A commitment scheme cannot be both perfectly hiding and perfectly binding at the same time.

Bit-commitment in the random oracle model

[edit]

Bit-commitment schemes are trivial to construct in therandom oracle model. Given ahash function H with a 3k bit output, to commit thek-bit messagem, Alice generates a randomk bit stringR and sends Bob H(R ||m). The probability that anyR′,m′ exist wherem′m such that H(R′ ||m′) = H(R ||m) is ≈ 2k, but to test any guess at the messagem Bob will need to make 2k (for an incorrect guess) or 2k-1 (on average, for a correct guess) queries to the random oracle.[16] We note that earlier schemes based on hash functions, essentially can be thought of schemes based on idealization of these hash functions as random oracle.

Bit-commitment from any one-way permutation

[edit]

One can create a bit-commitment scheme from anyone-way function that isinjective. The scheme relies on the fact that every one-way function can be modified (via theGoldreich-Levin theorem) to possess a computationallyhard-core predicate (while retaining the injective property).

Letf be an injective one-way function, withh a hard-core predicate. Then to commit to a bitb Alice picks a random inputx and sends the triple

(h,f(x),bh(x)){\displaystyle (h,f(x),b\oplus h(x))}

to Bob, where{\displaystyle \oplus } denotes XOR,i.e., bitwise addition modulo 2. To decommit, Alice simply sendsx to Bob. Bob verifies by computingf(x) and comparing to the committed value. This scheme is concealing because for Bob to recoverb he must recoverh(x). Sinceh is a computationally hard-core predicate, recoveringh(x) fromf(x) with probability greater than one-half is as hard as invertingf. Perfect binding follows from the fact thatf is injective and thusf(x) has exactly one preimage.

Bit-commitment from a pseudo-random generator

[edit]

Note that since we do not know how to construct a one-way permutation from any one-way function, this section reduces the strength of the cryptographic assumption necessary to construct a bit-commitment protocol.

In 1991Moni Naor showed how to create a bit-commitment scheme from acryptographically secure pseudorandom number generator.[17] The construction is as follows. IfG is a pseudo-random generator such thatG takesn bits to 3n bits, then if Alice wants to commit to a bitb:

  • Bob selects a random 3n-bit vectorR and sendsR to Alice.
  • Alice selects a randomn-bit vectorY and computes the 3n-bit vectorG(Y).
  • Ifb=1 Alice sendsG(Y) to Bob, otherwise she sends the bitwiseexclusive-or ofG(Y) andR to Bob.

To decommit Alice sendsY to Bob, who can then check whether he initially receivedG(Y) orG(Y){\displaystyle \oplus }R.

This scheme is statistically binding, meaning that even if Alice is computationally unbounded she cannot cheat with probability greater than 2n. For Alice to cheat, she would need to find aY', such thatG(Y') =G(Y){\displaystyle \oplus }R. If she could find such a value, she could decommit by sending the truth andY, or send the opposite answer andY'. However,G(Y) andG(Y') are only able to produce 2n possible values each (that's 22n) whileR is picked out of 23n values. She does not pickR, so there is a 22n/23n = 2n probability that aY' satisfying the equation required to cheat will exist.

The concealing property follows from a standard reduction, if Bob can tell whether Alice committed to a zero or one, he can also distinguish the output of the pseudo-random generatorG from true-random, which contradicts the cryptographic security ofG.

A perfectly binding scheme based on the discrete log problem and beyond

[edit]

Alice chooses aring of prime orderp, with multiplicative generatorg.

Alice randomly picks a secret valuex from0 top − 1 to commit to and calculatesc =gx and publishesc. Thediscrete logarithm problem dictates that fromc, it is computationally infeasible to computex, so under this assumption, Bob cannot computex. On the other hand, Alice cannot compute ax <>x, such thatgx =c, so the scheme is binding.

This scheme isn't perfectly concealing as someone could find the commitment if he manages to solve thediscrete logarithm problem. In fact, this scheme isn't hiding at all with respect to the standard hiding game, where an adversary should be unable to guess which of two messages he chose were committed to - similar to theIND-CPA game. One consequence of this is that if the space of possible values ofx is small, then an attacker could simply try them all and the commitment would not be hiding.

A better example of a perfectly binding commitment scheme is one where the commitment is the encryption ofx under asemantically secure, public-key encryption scheme with perfect completeness, and the decommitment is the string of random bits used to encryptx. An example of an information-theoretically hiding commitment scheme is the Pedersen commitment scheme,[18] which is computationally binding under the discrete logarithm assumption.[19]Additionally to the scheme above, it uses another generatorh of the prime group and a random numberr. The commitment is setc=gxhr{\displaystyle c=g^{x}h^{r}}.[20]

These constructions are tightly related to and based on the algebraic properties of the underlying groups, and the notion originally seemed to be very much related to the algebra. However, it was shown that basing statistically binding commitment schemes on general unstructured assumption is possible, via the notion of interactive hashing for commitments from general complexity assumptions (specifically and originally, based on any one way permutation) as in.[21]

A perfectly hiding commitment scheme based on RSA

[edit]

Alice selectsN{\displaystyle N} such thatN=pq{\displaystyle N=p\cdot q}, wherep{\displaystyle p} andq{\displaystyle q} are large secret prime numbers. Additionally, she selects a primee{\displaystyle e} such thate>N2{\displaystyle e>N^{2}} andgcd(e,ϕ(N2))=1{\displaystyle gcd(e,\phi (N^{2}))=1}. Alice then computes a public numbergm{\displaystyle g_{m}} as an element of maximum order in theZN2{\displaystyle \mathbb {Z} _{N^{2}}^{*}} group.[22] Finally, Alice commits to her secretm{\displaystyle m} by first generating a random numberr{\displaystyle r} fromZN2{\displaystyle \mathbb {Z} _{N^{2}}^{*}} and then by computingc=megmr{\displaystyle c=m^{e}g_{m}^{r}}.

The security of the above commitment relies on the hardness of the RSA problem and has perfect hiding and computational binding.[23]

Additive and multiplicative homomorphic properties of commitments

[edit]

The Pedersen commitment scheme introduces an interesting homomorphic property that allows performing addition between two commitments. More specifically, given two messagesm1{\displaystyle m_{1}} andm2{\displaystyle m_{2}} and randomnessr1{\displaystyle r_{1}} andr2{\displaystyle r_{2}}, respectively, it is possible to generate a new commitment such that:C(m1,r1)C(m2,r2)=C(m1+m2,r1+r2){\displaystyle C(m_{1},r_{1})\cdot C(m_{2},r_{2})=C(m_{1}+m_{2},r_{1}+r_{2})}. Formally:

C(m1,r1)C(m2,r2)=gm1hr1gm2hr2=gm1+m2hr1+r2=C(m1+m2,r1+r2){\displaystyle C(m_{1},r_{1})\cdot C(m_{2},r_{2})=g^{m_{1}}h^{r_{1}}\cdot g^{m_{2}}h^{r_{2}}=g^{m_{1}+m_{2}}h^{r_{1}+r_{2}}=C(m_{1}+m_{2},r_{1}+r_{2})}

To open the above Pedersen commitment to a new messagem1+m2{\displaystyle m_{1}+m_{2}}, the randomnessr1{\displaystyle r_{1}} andr2{\displaystyle r_{2}} has to be added.

Similarly, the RSA-based commitment mentioned above has a homomorphic property with respect to the multiplication operation. Given two messagesm1{\displaystyle m_{1}} andm2{\displaystyle m_{2}} with randomnessr1{\displaystyle r_{1}} andr2{\displaystyle r_{2}}, respectively, one can compute:C(m1,r1)C(m2,r2)=C(m1m2,r1+r2){\displaystyle C(m_{1},r_{1})\cdot C(m_{2},r_{2})=C(m_{1}\cdot m_{2},r_{1}+r_{2})}. Formally:C(m1,r1)C(m2,r2)=m1egmr1m2egmr2=(m1m2)egmr1+r2=C(m1m2,r1+r2){\displaystyle C(m_{1},r_{1})\cdot C(m_{2},r_{2})=m_{1}^{e}g_{m}^{r_{1}}\cdot m_{2}^{e}g_{m}^{r_{2}}=(m_{1}\cdot m_{2})^{e}g_{m}^{r_{1}+r_{2}}=C(m_{1}\cdot m_{2},r_{1}+r_{2})}.

To open the above commitment to a new messagem1m2{\displaystyle m_{1}\cdot m_{2}}, the randomnessr1{\displaystyle r_{1}} andr2{\displaystyle r_{2}} has to be added. This newly generated commitment is distributed similarly to a new commitment tom1m2{\displaystyle m_{1}\cdot m_{2}}.

Partial reveal

[edit]

Some commitment schemes permit a proof to be given of only a portion of the committed value. In these schemes, the secret valueX{\displaystyle X} is a vector of many individually separable values.

X=(x1,x2,...,xn){\displaystyle X=(x_{1},x_{2},...,x_{n})}

The commitmentC{\displaystyle C} is computed fromX{\displaystyle X} in the commit phase. Normally, in the reveal phase, the prover would reveal all ofX{\displaystyle X} and some additional proof data (such asR{\displaystyle R} insimple bit-commitment). Instead, the prover is able to reveal any single value from theX{\displaystyle X} vector, and create an efficient proof that it is the authentici{\displaystyle i}th element of the original vector that created the commitmentC{\displaystyle C}. The proof does not require any values ofX{\displaystyle X} other thanxi{\displaystyle x_{i}} to be revealed, and it is impossible to create valid proofs that reveal different values for any of thexi{\displaystyle x_{i}} than the true one.[24]

Vector hashing

[edit]

Vector hashing is a naive vector commitment partial reveal scheme based on bit-commitment. Valuesm1,m2,...mn{\displaystyle m_{1},m_{2},...m_{n}} are chosen randomly. Individual commitments are created by hashingy1=H(x1||m1),y2=H(x2||m2),...{\displaystyle y_{1}=H(x_{1}||m_{1}),y_{2}=H(x_{2}||m_{2}),...}. The overall commitment is computed as

C=H(y1||y2||...||yn){\displaystyle C=H(y_{1}||y_{2}||...||y_{n})}

In order to prove one element of the vectorX{\displaystyle X}, the prover reveals the values

(i,y1,y2,...,yi1,xi,mi,yi+1,...,yn){\displaystyle (i,y_{1},y_{2},...,y_{i-1},x_{i},m_{i},y_{i+1},...,y_{n})}

The verifier is able to computeyi{\displaystyle y_{i}} fromxi{\displaystyle x_{i}} andmi{\displaystyle m_{i}}, and then is able to verify that the hash of ally{\displaystyle y} values is the commitmentC{\displaystyle C}. Unfortunately the proof isO(n){\displaystyle O(n)} in size and verification time. Alternately, ifC{\displaystyle C} is the set of ally{\displaystyle y} values, then the commitment isO(n){\displaystyle O(n)} in size, and the proof isO(1){\displaystyle O(1)} in size and verification time. Either way, the commitment or the proof scales withO(n){\displaystyle O(n)} which is not optimal.

Merkle tree

[edit]

A common example of a practical partial reveal scheme is aMerkle tree, in which a binary hash tree is created of the elements ofX{\displaystyle X}. This scheme creates commitments that areO(1){\displaystyle O(1)} in size, and proofs that areO(log2n){\displaystyle O(\log _{2}{n})} in size and verification time. The root hash of the tree is the commitmentC{\displaystyle C}. To prove that a revealedxi{\displaystyle x_{i}} is part of the original tree, onlylog2n{\displaystyle \log _{2}{n}} hash values from the tree, one from each level, must be revealed as the proof. The verifier is able to follow the path from the claimed leaf node all the way up to the root, hashing in the sibling nodes at each level, and eventually arriving at a root node value that must equalC{\displaystyle C}.[25]

KZG commitment

[edit]

A Kate-Zaverucha-Goldberg commitment usespairing-based cryptography to build a partial reveal scheme withO(1){\displaystyle O(1)} commitment sizes, proof sizes, and proof verification time. In other words, asn{\displaystyle n}, the number of values inX{\displaystyle X}, increases, the commitments and proofs do not get larger, and the proofs do not take any more effort to verify.

A KZG commitment requires a predetermined set of parameters to create apairing, and a trusted trapdoor element. For example, aTate pairing can be used. Assume thatG1,G2{\displaystyle \mathbb {G} _{1},\mathbb {G} _{2}} are the additive groups, andGT{\displaystyle \mathbb {G} _{T}} is the multiplicative group of the pairing. In other words, the pairing is the mape:G1×G2GT{\displaystyle e:\mathbb {G} _{1}\times \mathbb {G} _{2}\rightarrow \mathbb {G} _{T}}. LettFp{\displaystyle t\in \mathbb {F} _{p}} be the trapdoor element (ifp{\displaystyle p} is the prime order ofG1{\displaystyle \mathbb {G} _{1}} andG2{\displaystyle \mathbb {G} _{2}}), and letG{\displaystyle G} andH{\displaystyle H} be the generators ofG1{\displaystyle \mathbb {G} _{1}} andG2{\displaystyle \mathbb {G} _{2}} respectively. As part of the parameter setup, we assume thatGti{\displaystyle G\cdot t^{i}} andHti{\displaystyle H\cdot t^{i}} are known and shared values for arbitrarily many positive integer values ofi{\displaystyle i}, while the trapdoor valuet{\displaystyle t} itself is discarded and known to no one.

Commit

[edit]

A KZG commitment reformulates the vector of values to be committed as a polynomial. First, we calculate a polynomial such thatp(i)=xi{\displaystyle p(i)=x_{i}} for all values ofxi{\displaystyle x_{i}} in our vector.Lagrange interpolation allows us to compute that polynomial

p(x)=i=0n1xi0j<n,jixjij{\displaystyle p(x)=\sum _{i=0}^{n-1}x_{i}\prod _{0\leq j<n,j\neq i}{\frac {x-j}{i-j}}}

Under this formulation, the polynomial now encodes the vector, wherep(0)=x0,p(1)=x1,...{\displaystyle p(0)=x_{0},p(1)=x_{1},...}. Letp0,p1,...,pn1{\displaystyle p_{0},p_{1},...,p_{n-1}} be the coefficients ofp{\displaystyle p}, such thatp(x)=i=0n1pixi{\textstyle p(x)=\sum _{i=0}^{n-1}p_{i}x^{i}}. The commitment is calculated as

C=i=0n1piGti{\displaystyle C=\sum _{i=0}^{n-1}p_{i}Gt^{i}}

This is computed simply as adot product between the predetermined valuesGti{\displaystyle G\cdot t^{i}} and the polynomial coefficientspi{\displaystyle p_{i}}. SinceG1{\displaystyle \mathbb {G} _{1}} is an additive group with associativity and commutativity,C{\displaystyle C} is equal to simplyGp(t){\displaystyle G\cdot p(t)}, since all the additions and multiplications withG{\displaystyle G} can be distributed out of the evaluation. Since the trapdoor valuet{\displaystyle t} is unknown, the commitmentC{\displaystyle C} is essentially the polynomial evaluated at a number known to no one, with the outcome obfuscated into an opaque element ofG1{\displaystyle \mathbb {G} _{1}}.

Reveal

[edit]

A KZG proof must demonstrate that the revealed data is the authentic value ofxi{\displaystyle x_{i}} whenC{\displaystyle C} was computed. Lety=xi{\displaystyle y=x_{i}}, the revealed value we must prove. Since the vector ofxi{\displaystyle x_{i}} was reformulated into a polynomial, we really need to prove that the polynomialp{\displaystyle p}, when evaluated ati{\displaystyle i}, takes on the valuey{\displaystyle y}. Simply, we just need to prove thatp(i)=y{\displaystyle p(i)=y}. We will do this by demonstrating that subtractingy{\displaystyle y} fromp{\displaystyle p} yields a root ati{\displaystyle i}. Define the polynomialq{\displaystyle q} as

q(x)=p(x)yxi{\displaystyle q(x)={\frac {p(x)-y}{x-i}}}

This polynomial is itself the proof thatp(i)=y{\displaystyle p(i)=y}, because ifq{\displaystyle q} exists, thenp(x)y{\displaystyle p(x)-y} is divisible byxi{\displaystyle x-i}, meaning it has a root ati{\displaystyle i}, sop(i)y=0{\displaystyle p(i)-y=0} (or, in other words,p(i)=y{\displaystyle p(i)=y}). The KZG proof will demonstrate thatq{\displaystyle q} exists and has this property.

The prover computesq{\displaystyle q} through the above polynomial division, then calculates the KZG proof valueπ{\displaystyle \pi }

π=i=0n1qiGti{\displaystyle \pi =\sum _{i=0}^{n-1}q_{i}Gt^{i}}

This is equal toGq(t){\displaystyle G\cdot q(t)}, as above. In other words, the proof value is the polynomialq{\displaystyle q} again evaluated at the trapdoor valuet{\displaystyle t}, hidden in the generatorG{\displaystyle G} ofG1{\displaystyle \mathbb {G} _{1}}.

This computation is only possible if the above polynomials were evenly divisible, because in that case the quotientq{\displaystyle q} is a polynomial, not arational function. Due to the construction of the trapdoor, it is not possible to evaluate a rational function at the trapdoor value, only to evaluate a polynomial using linear combinations of the precomputed known constants ofGti{\displaystyle G\cdot t^{i}}. This is why it is impossible to create a proof for an incorrect value ofxi{\displaystyle x_{i}}.

Verify

[edit]

To verify the proof, the bilinear map of thepairing is used to show that the proof valueπ{\displaystyle \pi } summarizes a real polynomialq{\displaystyle q} that demonstrates the desired property, which is thatp(x)y{\displaystyle p(x)-y} was evenly divided byxi{\displaystyle x-i}. The verification computation checks the equality

e(π,HtHi) =? e(CGy,H){\displaystyle e(\pi ,H\cdot t-H\cdot i)\ {\stackrel {?}{=}}\ e(C-G\cdot y,H)}

wheree{\displaystyle e} is the bilinear map function as above.Ht{\displaystyle H\cdot t} is a precomputed constant,Hi{\displaystyle H\cdot i} is computed based oni{\displaystyle i}.

By rewriting the computation in the pairing groupGT{\displaystyle \mathbb {G} _{T}}, substituting inπ=q(t)G{\displaystyle \pi =q(t)\cdot G} andC=p(t)G{\displaystyle C=p(t)\cdot G}, and lettingτ(x)=e(G,H)x{\displaystyle \tau (x)=e(G,H)^{x}} be a helper function for lifting into the pairing group, the proof verification is more clear.

e(π,HtHi)=e(CGy,H){\displaystyle e(\pi ,H\cdot t-H\cdot i)=e(C-G\cdot y,H)}
e(Gq(t),HtHi)=e(Gp(t)Gy,H){\displaystyle e(G\cdot q(t),H\cdot t-H\cdot i)=e(G\cdot p(t)-G\cdot y,H)}
e(Gq(t),H(ti))=e(G(p(t)y),H){\displaystyle e(G\cdot q(t),H\cdot (t-i))=e(G\cdot (p(t)-y),H)}
e(G,H)q(t)(ti)=e(G,H)p(t)y{\displaystyle e(G,H)^{q(t)\cdot (t-i)}=e(G,H)^{p(t)-y}}
τ(q(t)(ti))=τ(p(t)y){\displaystyle \tau (q(t)\cdot (t-i))=\tau (p(t)-y)}

Assuming that the bilinear map is validly constructed, this demonstrates thatq(x)(xi)=p(x)y{\displaystyle q(x)(x-i)=p(x)-y}, without the validator knowing whatp{\displaystyle p} orq{\displaystyle q} are. The validator can be assured of this because ifτ(q(t)(ti))=τ(p(t)y){\displaystyle \tau (q(t)\cdot (t-i))=\tau (p(t)-y)}, then the polynomials evaluate to the same output at the trapdoor valuex=t{\displaystyle x=t}. This demonstrates the polynomials are identical, because, if the parameters were validly constructed, the trapdoor value is known to no one, meaning that engineering a polynomial to have a specific value at the trapdoor is impossible (according to theSchwartz–Zippel lemma). Ifq(x)(xi)=p(x)y{\displaystyle q(x)(x-i)=p(x)-y} is now verified to be true, thenq{\displaystyle q} is verified to exist, thereforep(x)y{\displaystyle p(x)-y} must be polynomial-divisible by(xi){\displaystyle (x-i)}, sop(i)y=0{\displaystyle p(i)-y=0} due to thefactor theorem. This proves that thei{\displaystyle i}th value of the committed vector must have equaledy{\displaystyle y}, since that is the output of evaluating the committed polynomial ati{\displaystyle i}.

Why the bilinear map pairing is used

The utility of the bilinear map pairing is to allow the multiplication ofq(x){\displaystyle q(x)} byxi{\displaystyle x-i} to happen securely. These values truly lie inG1{\displaystyle \mathbb {G} _{1}}, where division is assumed to be computationally hard. For example,G1{\displaystyle \mathbb {G} _{1}} might be anelliptic curve over a finite field, as is common inelliptic-curve cryptography. Then, the division assumption is called theelliptic curve discrete logarithm problem[broken anchor], and this assumption is also what guards the trapdoor value from being computed, making it also a foundation of KZG commitments. In that case, we want to check ifq(x)(xi)=p(x)y{\displaystyle q(x)(x-i)=p(x)-y}. This cannot be done without a pairing, because with values on the curve ofGq(x){\displaystyle G\cdot q(x)} andG(xi){\displaystyle G\cdot (x-i)}, we cannot computeG(q(x)(xi)){\displaystyle G\cdot (q(x)(x-i))}. That would violate thecomputational Diffie–Hellman assumption, a foundational assumption inelliptic-curve cryptography. We instead use apairing to sidestep this problem.q(x){\displaystyle q(x)} is still multiplied byG{\displaystyle G} to getGq(x){\displaystyle G\cdot q(x)}, but the other side of the multiplication is done in the paired groupG2{\displaystyle \mathbb {G} _{2}}, so,H(ti){\displaystyle H\cdot (t-i)}. We computee(Gq(t),H(ti)){\displaystyle e(G\cdot q(t),H\cdot (t-i))}, which, due to thebilinearity of the map, is equal toe(G,H)q(t)(ti){\displaystyle e(G,H)^{q(t)\cdot (t-i)}}. In this output groupGT{\displaystyle \mathbb {G} _{T}} we still have thediscrete logarithm problem, so even though we know that value ande(G,H){\displaystyle e(G,H)}, we cannot extract the exponentq(t)(ti){\displaystyle q(t)\cdot (t-i)}, preventing any contradiction with discrete logarithm earlier. This value can be compared toe(G(p(t)y),H)=e(G,H)p(t)y{\displaystyle e(G\cdot (p(t)-y),H)=e(G,H)^{p(t)-y}} though, and ife(G,H)q(t)(ti)=e(G,H)p(t)y{\displaystyle e(G,H)^{q(t)\cdot (t-i)}=e(G,H)^{p(t)-y}} we are able to conclude thatq(t)(ti)=p(t)y{\displaystyle q(t)\cdot (t-i)=p(t)-y}, without ever knowing what the actual value oft{\displaystyle t} is, let aloneq(t)(ti){\displaystyle q(t)(t-i)}.

Additionally, a KZG commitment can be extended to prove the values of any arbitraryk{\displaystyle k} values ofX{\displaystyle X} (not just one value), with the proof size remainingO(1){\displaystyle O(1)}, but the proof verification time scales withO(k){\displaystyle O(k)}. The proof is the same, but instead of subtracting a constanty{\displaystyle y}, we subtract a polynomial that causes multiple roots, at all the locations we want to prove, and instead of dividing byxi{\displaystyle x-i} we divide byixi{\textstyle \prod _{i}x-i} for those same locations.[26]

Quantum bit commitment

[edit]

It is an interesting question inquantum cryptography ifunconditionally secure bit commitment protocols exist on the quantum level, that is, protocols which are (at least asymptotically) binding and concealing even if there are no restrictions on the computational resources. One could hope that there might be a way to exploit the intrinsic properties ofquantum mechanics, as in the protocols forunconditionally secure key distribution.

However, this is impossible, as Dominic Mayers showed in 1996(see this citation:[27] for the original proof). Any such protocol can be reduced to a protocol where the system is in one of two pure states after the commitment phase, depending on the bit Alice wants to commit. If the protocol is unconditionally concealing, then Alice can unitarily transform these states into each other using the properties of theSchmidt decomposition, effectively defeating the binding property.

One subtle assumption of the proof is that the commit phase must be finished at some point in time. This leaves room for protocols that require a continuing information flow until the bit is unveiled or the protocol is cancelled, in which case it is not binding anymore.[28] More generally, Mayers' proof applies only to protocols that exploitquantum physics but notspecial relativity. Kent has shown that there exist unconditionally secure protocols for bit commitment that exploit the principle ofspecial relativity stating that information cannot travel faster than light.[29]

Commitments based on physical unclonable functions

[edit]

Physical unclonable functions (PUFs) rely on the use of a physical key with internal randomness, which is hard to clone or to emulate. Electronic, optical and other types of PUFs[30] have been discussed extensively in the literature, in connection with their potential cryptographic applications including commitment schemes.[31][32]

See also

[edit]

References

[edit]
  1. ^Oded Goldreich (2001).Foundations of Cryptography: Volume 1, Basic Tools. Cambridge University Press.ISBN 0-521-79172-3.: 224 
  2. ^Gilles Brassard, David Chaum, and Claude Crépeau,Minimum Disclosure Proofs of Knowledge, Journal of Computer and System Sciences, vol. 37, pp. 156–189, 1988.
  3. ^Goldreich, Oded; Micali, Silvio; Wigderson, Avi (1991)."Proofs that yield nothing but their validity".Journal of the ACM.38 (3):690–728.CiteSeerX 10.1.1.420.1478.doi:10.1145/116825.116852.S2CID 2389804.
  4. ^Russell Impagliazzo, Moti Yung: Direct Minimum-Knowledge Computations. CRYPTO 1987: 40-51
  5. ^Naor, Moni (1991)."Bit commitment using pseudorandomness".Journal of Cryptology.4 (2):151–158.doi:10.1007/BF00196774.S2CID 15002247.
  6. ^abClaude Crépeau,Commitment, Cryptography and Quantum Information Lab,McGill University School of Computer Science, accessed April 11, 2008
  7. ^Manuel Blum,Coin Flipping by Telephone, Proceedings ofCRYPTO 1981, pp. 11–15, 1981, reprinted in SIGACT News vol. 15, pp. 23–27, 1983,Carnegie Mellon School of Computer Science.
  8. ^Shimon Even.Protocol for signing contracts. InAllen Gersho, ed.,Advances in Cryptography (proceedings of CRYPTO '82), pp. 148–153, Santa Barbara, CA, US, 1982.
  9. ^A. Shamir,R. L. Rivest, and L. Adleman, "Mental Poker". InDavid A. Klarner, ed.,The Mathematical Gardner (ISBN 978-1-4684-6686-7), pp. 37–43. Wadsworth, Belmont, California, 1981.
  10. ^Oded Goldreich,Silvio Micali, andAvi Wigderson,Proofs that yield nothing but their validity, or all languages in NP have zero-knowledge proof systems,Journal of the ACM, 38: 3, pp. 690–728, 1991
  11. ^Oded Goldreich andHugo Krawczyk,On the Composition of Zero-Knowledge Proof Systems,SIAM Journal on Computing, 25: 1, pp. 169–192, 1996
  12. ^Gennaro; Rosario; Rabin, Michael O.; Rabin, Tal. "Simplified VSS and fast-track multiparty computations with applications to threshold cryptography".Proceedings of the Seventeenth Annual ACM Symposium on Principles of Distributed Computing. 1998, June.
  13. ^R. Canetti and M. Fischlin.Universally Composable Commitments.
  14. ^Shien Hin Ong and Salil Vadhan (1990). Perfect zero knowledge in constant round, In Proc. STOC, p. 482–493, cited in Shien Hin Ong and Salil Vadhan (2008). An Equivalence between Zero Knowledge and Commitments, Theory of Cryptography.
  15. ^Toshiya Itoh, Yiji Ohta, Hiroki Shizuya (1997). A language dependent cryptographic primitive, In J. Cryptol., 10(1):37-49, cited in Shien Hin Ong and Salil Vadhan (2008). An Equivalence between Zero Knowledge and Commitments, Theory of Cryptography.
  16. ^Wagner, David (2006),Midterm Solution, p. 2, retrieved26 October 2015
  17. ^"Citations: Bit Commitment using Pseudorandom Generators - Naor (ResearchIndex)". Citeseer.ist.psu.edu. Retrieved2014-06-07.
  18. ^Pedersen, Torben Pryds (1992). "Non-Interactive and Information-Theoretic Secure Verifiable Secret Sharing".Advances in Cryptology – CRYPTO '91. Lecture Notes in Computer Science. Vol. 576. Berlin, Heidelberg: Springer Berlin Heidelberg. pp. 129–140.doi:10.1007/3-540-46766-1_9.ISBN 978-3-540-55188-1.
  19. ^Metere, Roberto; Dong, Changyu (2017). "Automated cryptographic analysis of the pedersen commitment scheme".International Conference on Mathematical Methods, Models, and Architectures for Computer Network Security. Springer. pp. 275–287.
  20. ^Tang, Chunming; Pei, Dingyi; Liu, Zhuojun; He, Yong (16 August 2004)."Pedersen: Non-interactive and information-theoretic secure verifiable secret sharing"(PDF).Cryptology ePrint Archive. Advances in Cryptology CRYPTO 1991 Springer. Archived fromthe original(PDF) on 11 August 2017. Retrieved2 February 2019.
  21. ^Moni Naor, Rafail Ostrovsky, Ramarathnam Venkatesan, Moti Yung:Perfect Zero-Knowledge Arguments for NP Using Any One-Way Permutation. J. Cryptology 11(2): 87–108 (1998)[1]
  22. ^Menezes, Alfred J; Van Oorschot, Paul C; Vanstone, Scott A (2018).Handbook of applied cryptography. CRC press.
  23. ^Mouris, Dimitris; Tsoutsos, Nektarios Georgios (26 January 2022)."Masquerade: Verifiable Multi-Party Aggregation with Secure Multiplicative Commitments"(PDF).Cryptology ePrint Archive.
  24. ^Catalano, Dario; Fiore, Dario (2013)."Vector Commitments and Their Applications".Public-Key Cryptography – PKC 2013. Lecture Notes in Computer Science. Vol. 7778. Springer Berlin Heidelberg. pp. 55–72.doi:10.1007/978-3-642-36362-7_5.ISBN 978-3-642-36362-7.Catalano, Dario; Fiore, Dario (2013)."Vector Commitments and Their Applications"(PDF).International Association for Cryptologic Research.
  25. ^Becker, Georg (2008-07-18)."Merkle Signature Schemes, Merkle Trees and Their Cryptanalysis"(PDF). Ruhr-Universität Bochum. p. 16. Archived fromthe original(PDF) on 2014-12-22. Retrieved2013-11-20.
  26. ^Kate, Aniket; Zaverucha, Gregory; Goldberg, Ian (2010)."Constant-size commitments to polynomials and their applications"(PDF).International Conference on the Theory and Application of Cryptology and Information Security.
  27. ^Brassard, Crépeau, Mayers, Salvail:A brief review on the impossibility of quantum bit commitment
  28. ^A. Kent:Secure classical Bit Commitment using Fixed Capacity Communication Channels
  29. ^Kent, A. (1999). "Unconditionally Secure Bit Commitment".Phys. Rev. Lett.83 (7):1447–1450.arXiv:quant-ph/9810068.Bibcode:1999PhRvL..83.1447K.doi:10.1103/PhysRevLett.83.1447.S2CID 8823466.
  30. ^McGrath, Thomas; Bagci, Ibrahim E.; Wang, Zhiming M.; Roedig, Utz; Young, Robert J. (2019-02-12)."A PUF taxonomy".Applied Physics Reviews.6 (1): 011303.Bibcode:2019ApPRv...6a1303M.doi:10.1063/1.5079407.
  31. ^Rührmair, Ulrich; van Dijk, Marten (2013-04-01). "On the practical use of physical unclonable functions in oblivious transfer and bit commitment protocols".Journal of Cryptographic Engineering.3 (1):17–28.doi:10.1007/s13389-013-0052-8.hdl:1721.1/103985.ISSN 2190-8516.S2CID 15713318.
  32. ^Nikolopoulos, Georgios M. (2019-09-30). "Optical scheme for cryptographic commitments with physical unclonable keys".Optics Express.27 (20):29367–29379.arXiv:1909.13094.Bibcode:2019OExpr..2729367N.doi:10.1364/OE.27.029367.ISSN 1094-4087.PMID 31684673.S2CID 203593129.

External links

[edit]
Retrieved from "https://en.wikipedia.org/w/index.php?title=Commitment_scheme&oldid=1318450859"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp