Abstract
Auctions have a long history, having been recorded as early as 500 B.C. [Auction Theory, Academic Press, San Diego, USA, 2002]. Nowadays, electronic auctions have been a great success and are increasingly used in various applications, including high performance computing [Concurrency and Computation: Practice and Experience
Introduction
Auctions are a simple method to sell goods and services. Typically a seller offers a good or a service, and the bidders make offers. Depending on the type of auction, the offers might be sent using sealed envelopes which are opened simultaneously to determine the winner (the “sealed-bid” auction), or an auctioneer could announce prices decreasingly until one bidder is willing to pay the announced price (the “dutch auction”). Additionally there might be several rounds, or offers might be announced publicly directly (the “English” or “shout-out” auction). The winner usually is the bidder submitting the highest bid, but in some cases he might only have to pay the second highest offer as a price (the “second-price”- or “Vickrey”-Auction). In general a bidder wants to win the auction at the lowest possible price, and the seller wants to sell his good at the highest possible price. For more information on different auction methods see [20]. To address this huge variety of possible auction settings and to achieve different security and efficiency properties numerous protocols have been developed, e.g. [5,13,22–26] and references therein.
One of the many applications of auctions lies is in the context of distributed scheduling of jobs for high performance computing grids [1,7]. In this and other applications, one of the key security requirements of electronic auction (e-Auction) protocols is privacy, i.e. the bids of losing bidders remain private as they can contain sensitive information. For example, in the case of a grid shared between multiple companies, the job meta-data (length, resource requirements, as well as the offered payment) can leak sensitive information to competitors about the nature, content or importance of the computation: if the job is very important, a company might be willing to pay more even for a small job, or changes in the job types might indicate that the company is developing new computation methods. Moreover, the offered prices might leak information about the bidders’ strategies (in particular in multi-round auctions) or their financial status.
Brandt proposed a first-price sealed-bid auction protocol [3–5] and claimed that it is fully private, i.e. it leaks no information apart from the winner, the winning bid, and what can be deduced from these two facts (for example that the other bids were lower).
Our contributions. The protocol is based on an algorithm that computes the winner using bids encoded as bit vectors. In this paper we show that the implementation using the homomorphic property of a distributed ElGamal encryption proposed in the original paper suffers from a weakness. In fact, we prove that any two different inputs (i.e. different bids) result in different outcome values, which are only hidden using random values. We show how a dishonest participant can remove this random noise, if malleable interactive zero-knowledge proofs are used. The seller can then efficiently compute the bids of all bidders, hence completely breaking privacy. We provide a parallel implementation for the protocol and the attack, and show that the computations are efficient in practice. We also discuss two problems with verifiability, and how the lack of authentication enables attacks on privacy even if the above attack is prevented via non-malleable non-interactive proofs. Additionally we show attacks on non-repudiation and fairness, and propose solutions to all discovered flaws in order to recover a fully resistant protocol.
A preliminary version of this paper was presented in [14], with a theoretical attack of complexity
Outline. In the next section, we recall the protocol of Brandt. Then, in the following sections, we present our attacks in several steps. In Section 3, we first study the protocol using interactive zero-knowledge proofs and without random noise. Then we show how a dishonest participant can remove the noise, thus mount the attack on the protocol with noise, and discuss countermeasures. Finally, in Section 4, we discuss verifiability and in Section 5 we discuss attacks on fairness, non-repudiation and privacy exploiting the lack of authentication.
The protocol
The protocol of Brandt [5] was designed to ensure full privacy in a completely distributed way. It exploits the homomorphic properties of a distributed ElGamal encryption scheme [15] for a secure multi-party computation of the winner. Then it uses zero-knowledge proofs of knowledge of discrete logarithms to ensure correctness of the bids while preserving privacy. We first give a high level description of the protocol and then present details on its main cryptographic primitives.
Informal description
The participating n bidders and the seller communicate essentially using broadcast messages. The latter can for example be implemented using a bulletin board, i.e. an append-only memory accessible to everybody. The bids are encoded as k-bit-vectors where each entry corresponds to a price. If the bidder a wants to bid the price
Mathematical description (Brandt [5])
Let
Key generation
Each bidder a, whose bidding price is chooses a secret chooses randomly publishes using all the published
Bid encryption
Each bidder a knows the public value Y and for all publishes proves that for all j,
Outcome computation
Each bidder a computes and publishes for all i and j:
Outcome decryption
Each bidder a sends
Winner determination
Everybody can now compute If
Malleable proofs of knowledge and discrete logarithms
In the original paper [5] the author suggests using zero-knowledge proofs of knowledge to protect against active adversaries. The basic protocols he proposes are interactive and malleable, but can be converted into non-interactive proofs using the Fiat–Shamir heuristic [16], as advised by the author. We first recall the general idea of such proofs, then we expose the man-in-the-middle attacks on the interactive version of the zero-knowledge proofs, which we will use as part of our first attack on Brandt’s protocol in Section 3.1.
Let PDL denote a proof of knowledge of a discrete logarithm. A first scheme for PDL was developed in 1986 by Chaum et al. [9]. In the original auction paper [5] Brandt proposes to use a non-interactive variant of PDL as developed by Schnorr [27], which are malleable. Unfortunately, interactive malleable PDL are subject to man-in-the-middle attacks [19]. Many PDL’s are obtained via three-move structure protocols (commitment, challenge and response) called Σ-protocols. We first recall the classic Σ-protocol for PDL, on a group with generator g and order q [2,6,8]: Peggy and Victor know v and g, but only Peggy knows x, so that (commitment) Peggy chooses r at random and sends (challenge) Victor chooses a challenge c at random and sends it to Peggy. (response) Peggy sends Victor checks that
Generalization of Katz’ man-in-the-middle attack on interactive PDL
Suppose Peggy possesses some secret discrete logarithm x. We present here first the man-in-the-middle attack of [19], and then generalize it to any affine transform of a secret discrete logarithm. In this attack, an attacker can pretend to have knowledge of any affine combination of the secret x, even providing the associated proof of knowledge, without breaking the discrete logarithm. To prove this possession to say Victor, the attacker will start an interactive proof knowledge session with Peggy and another one with Victor. The attacker will transform Peggy’s outputs and forward Victor’s challenges to her. The idea of [19] is to use the proof of possession of Peggy’s x, to prove possession of

Man-in-the-middle PDL of
Now we show in Lemma 1 that it is possible to adapt the attack to make it work in the generic settings of [6,21] or of Σ-protocols [12]. We use this generalization to prevent possible countermeasures of our first attack in Section 3.7.
We let
In the general case also, upon demand of proof by Victor, Mallory starts a proof with Peggy. The secret of Peggy is x, and the associated witness v is

Man-in-the-middle attack proving knowledge of any affine transform of a secret discrete logarithm in the generic setting.
In the generalized man-in-the-middle attack described above
Indeed,
We let EQDL denote a proof of equality of several discrete logarithms. Any PDL can in general easily be transformed to an EQDL by applying it k times on the same witness. It is often more efficient to combine the application in one as in [10,11], or more generally as composition of Σ-protocols, here with two logarithms and two generators Peggy chooses r at random and sends Victor chooses a challenge c at random and sends it to Peggy. Peggy computes Victor tests if
This protocol remains malleable, and the previous attacks are still valid since the response remains of the form
Countermeasures
Direct countermeasures to the above attacks are to use non-interactive and/or non-malleable proofs:
An interactive protocol can be converted into a non-interactive one using the Fiat–Shamir heuristic [16]. In this case the challenge is computed as a cryptographic hash of all previous values, and is not submitted by the verifier. This makes it impossible for Mallory to choose the challenge according to his needs (since for him the previous values and hence the hash are different), which prevents the attack.
Also the first PDL by [9] uses bit-flipping, and more generally non-malleable protocols like [18] could be used.
We will show in the following that if the proofs proposed in the original paper are not converted into non-interactive proofs, there is an attack on privacy. Note that even if non-interactive non-malleable zero-knowledge proofs are used, a malicious attacker in control of the network can nonetheless recover any bidder’s bid as the messages are not authenticated, as we show in Section 5.
Attacking the fully private computations
The first attack we present uses some algebraic properties of the computations performed during the protocol execution. More precisely, it relies on the fact that the outcome computation function is invertible, apart from some added random noise. In the following, we prove that the function without random noise is injective, and give an algorithm to invert it. Then we show that an attacker can actually remove the random noise, and that this is unnoticeable to the other participants if malleable zero-knowledge proofs are used. Finally we give a detailed description of the attack, and discuss countermeasures.
Analysis of the outcome computation
The idea is to analyze the computations done in Step (3) of the protocol. Consider the following example with three bidders and three possible prices. Then the first bidder computes
nobody submitted a higher bid (the first block) and bidder 2 did not bid a lower bid (the second block) and no bidder with a lower index submitted the same bid (the third block).
If we ignore the exponentiation by
Assume for now that we know all
By abuse of notation we write
An upper triangular matrix representing all bigger bids.
On the block diagonal we add a lower triangular matrix representing a lower bid by the same bidder.
In the lower left half we add an identity matrix representing a bid at the current price by a bidder with a lower index.
Let
By abuse of notation we use I, L and U to denote respectively
The matrix U (resp. L) are called strictly upper (lower) triangular and are defined such as for all
Matrices
We only do the proof for a strictly upper triangular matrix U, the proof for a strictly lower triangular matrix is similar. We prove by induction that Base case: Induction step: We assume that
Let
First note that since
For
If
As discussed above, we can represent the function f as a matrix multiplication. Let M be the following square matrix of size
(f in the case of two bidders and two prices).
In the case of two bidders and two possible prices, we obtain the following matrix M:
In general, we can prove the following theorem stating that f is injective.
f is injective on valid bid vectors
Let u and v be two correct bid vectors such that Case Base case Inductive step Inductive step Base case Inductive step
This theorem shows that if there is a constellation of bids that led to certain values
Our aim is to solve the following linear system:
Using Lemma 3, with
This gives us a formula to compute the values of
The idea is to project the above Eq. (3) on the tth coordinate. Then, the tth row of U has ones only starting at index

Bids recovery
To obtain all values, we have to apply the above formula (4) for each
Either the location of the bid for the rth bidder, i.e. the non-zero value in
Or
From this remark, one sees that either we already know the
Algorithm 1is correct and its arithmetic cost can be bounded by
The correctness follows from the analysis in the beginning of this section. Then for each entry in the output vector, we have to compute two additions, one test and potentially a counter increment. □
This is two orders of magnitude less than the number of operations required just to compute all the encrypted bids.
In the previous section we showed that knowing the
However the protocol requires Mallory to prove that
In the original paper [5] the malleable interactive proof of [10], presented in Section 2.3, is used to prove the correctness of
Proof of equality of the presented outcomes
Note that we can rewrite
Efficiency of the attack
In order to measure the practicability of the attack we have implemented the protocol in C++ using the Givaro library2
Parallel Brandt for 8192 bids with OpenMP on an Intel Xeon E5-4620, 32×2.2 GHz
Next we also show in the log scale Fig. 3 that the arithmetic complexity bounds given in Section 3.3.2 are indeed tight: quadratic in the number of bids and bidders for the setting-up and the previous attack; only linear for the novel attack.

Parallel Brandt for 32 bidders with OpenMP on an Intel Xeon E5-4620, 32×2.2 GHz. (Colors are visible in the online version of the article;
Putting everything together, the attack works as follows:
The bidders set up the keys as described in the protocol. They encrypt and publish their bids. They compute Mallory, who is a bidder himself, waits until all other bidders have published their values. He then computes his values as defined above, and publishes them. If he is asked for a proof, he can proceed as explained above in Section 3.5. The bidders (including Mallory) jointly decrypt the values. The seller obtains all Once he has all values, he can invert the function f as explained above. He obtains all bidders bids. To counteract the removal of the noise of Section 3.4, the bidders could check whether the product of the As mentioned above, another countermeasure is the use of non-interactive, non-malleable proofs of knowledge. In this case, we will show in Section 5 that it is still possible to attack a targeted bidder’s privacy.
Again, note that for all honest bidders, this execution will look normal, so they might not even notice that an attack took place. To prevent this attack, one could perform the following actions:
Attacking verifiability
Brandt claims that the protocol is verifiable as the parties have to provide zero-knowledge proofs for their computations, however there are two problems.
Exceptional values
First, a winning bidder cannot verify if he actually won. To achieve privacy, the protocol hides all outputs of
Note that the protocol contains a mechanism to resolve ties, i.e. there should always be exactly one entry equal to 1, even in the presence of ties.
A solution to this problem could work as follows: when computing the
Second, the paper does not precisely specify the proofs that have to be provided in the joint decryption phase. If the bidders only prove that they use the same private key on all decryptions and not also that it is the one they used to generate their public key, they may use a wrong one. This will lead to a wrong decryption where with very high probability no value is “1”, as they will be random. Hence all bidders will think that they lost, thus allowing a malicious bidder to block the whole auction, as no winner is determined. Hence, if we assume that the verification test consists in verifying the proofs, a bidder trying to verify that he lost using the proofs might perform the verification successfully, although the result is incorrect and he actually won – since he would have observed a “1” if the vector had been correctly decrypted.
This problem can be addressed by requiring the bidders to also prove that they used the same private key as in the key generation phase.
Attacks using the lack of authentication
The protocol as described in the original paper does not include any authentication of the messages. This means that an attacker in control of the network can impersonate any party, which can be exploited in many ways. However, the authors supposed in the original paper a “reliable broadcast channel, i.e. the adversary has no control of communication” [5]. Yet even under this assumption dishonest participants can impersonate other participants by submitting messages on their behalf. Additionally, this assumption is difficult to achieve in asynchronous systems [17]. In the following we consider an attacker in control of the network, however many attacks can also be executed analogously by dishonest parties (which are considered in the original paper) in the reliable broadcast setting.
Another attack on privacy
Our first attack on privacy only works in the case of malleable interactive proofs. If we switch to non-interactive non-malleable proofs, Mallory cannot ask the other bidders for proofs using a challenge of his choice.
However, even with non-interactive non-malleable zero-knowledge proofs, the protocol is still vulnerable to attacks on a targeted bidder’s privacy if an attacker can impersonate any bidder of his choice as well as the seller, which is the case for an attacker controlling the network due to the lack of authentication. In particular, if he wants to know Alice’s bid he can proceed as follows:
Mallory impersonates all other bidders. He starts by creating keys on their behalf and publishes the values Alice also creates her secret keyshare and publishes Alice and Mallory compute the public key y. Alice encrypts her bid and publishes her Mallory publishes Alice and Mallory execute the computations described in the protocol and publish They compute The seller publishes the
Since all submitted bids are equal, the seller (which might also be impersonated by Mallory) will obtain Alice’s bid as the winning price, hence it is not private any more. This attack essentially simulates a whole instance of the protocol to make Alice indirectly reveal a bid that was intended for another, probably real auction. To counteract this it is not sufficient for Alice to check that the other bids are different: Mallory can produce different
Note that the same attack also works if dishonest bidders collude with the seller: they simply re-submit the targeted bidders bid as their own bid.
Attacking fairness, non-repudiation and verifiability
The lack of authentication obviously entails that a winning bidder can claim that he did not submit his bid, hence violating non-repudiation (even in the case of reliable broadcast). Additionally, this also enables an attack on fairness: an attacker in control of the network can impersonate all bidders vis-à-vis the seller, submitting bids of his choice on their behalf and hence completely controlling the winner and winning price. This also causes another problem with verifiability: it is impossible to verify if the bids were submitted by the registered bidders, or by somebody else.
Countermeasures
The solution to these problems is simple: all the messages need to be authenticated, e.g. using signatures or Message Authentication Codes (MACs). This requires a trust anchor, for example a Public Key Infrastructure (PKI) that verifies the identities of the participants and certifies their keys.
Conclusion
In this paper we analyzed the protocol of Brandt [5] from various angles. We showed that the underlying computations have a weakness which can be exploited by malicious bidders to break privacy if malleable interactive zero-knowledge proofs are used. Using an implementation of the protocol and the attack we illustrated its practical efficiency. We also identified two problems with verifiability and proposed solutions. Finally we showed how the lack of authentication can be used to mount different attacks on privacy, verifiability as well as fairness and non-repudiation. Again we suggested a solution to address the discovered flaws.
So sum up, the following countermeasures have to be implemented:
Use of non-interactive or non-malleable zero-knowledge proofs.
All messages have to be authenticated, e.g. using a Public-Key Infrastructure (PKI) and signatures.
In the outcome computation step: when computing the
In the outcome decryption step: the bidders have to prove that the value
The attacks show that properties such as authentication can be necessary to achieve other properties like for instance privacy, which might appear to be unrelated at first sight. It also points out that there is a difference between computing the winner in a fully private way, and ensuring privacy for the bidders: in the second attack we use modified inputs to break privacy even though the computations themselves are secure. Additionally our analysis highlights that the choice of interactive or non-interactive, malleable or non-malleable proofs is an important decision in any protocol design.
As for possible generalizations of our attacks, of course the linear algebra part of our first attack is specific to this protocol. Yet the man-in-the-middle attack on malleable proofs as well as the need of authentication for privacy are applicable to any protocol. Similarly, checking all exceptional cases and ensuring that the same keys are used all along the process are also valid insights for other protocols.
As future work we would like to realize a full formal security proof of the fixed protocol.
Footnotes
Acknowledgments
This work was partly supported by the ANR projects ProSe (decision ANR-2010-VERS-004-01), HPAC (ANR-11-BS02-013) and the support of the “Digital Trust” Chair from the University of Auvergne Foundation. We also thank Dorian Arnaud, Jean-Baptiste Gheeraert, Maud Lefevre, Simon Moura and Jérémy Pouzet for spotting an error in the description of our first attack in [
].
