• The probabilistic key generation algorithm KG
takes as input an entity ψ ∈ {1, . . . , n} ∪ {A, S}
and a sting 1
k
, where k ∈ N is the security param-
eter, and returns a (Public key, Private key) pair.
• The probabilistic bidding algorithm Bidder takes
the following as input: As local input, Bidder re-
ceives a (Public key, Private key) pair and a nu-
meric bid value bid. Bidder also receives pub-
lic information (that may consist of the auction-
eer’s public key, details about the planned auction,
etc.). Additional information (such as the supervi-
sor’s public key) is received off-band. Bidder then
outputs a vector message that consists of mes-
sage.encoded
bid and message.id such that mes-
sage.encoded bid encodes bid while message.id
contains additional information (bidder’s identi-
fication information, commitment to pay for the
item in case the bidder won the auction, etc.).
Generating message.encoded
bid may require bid
and a secret key. In addition, the encoding string
may hide the numeric value of bid (i.e. may be the
output of an encryption process). The encoding is
reversible, namely bid can be retrieved from mes-
sage.encoded
bid by the Decode algorithm (see
below).
• The deterministic decoding algorithm Decode
takes as input a key Dec and a string en-
coded
bid and outputs the numeric value bid that
was used by Bidder to generate encoded
bid,
or ⊥ if no such bid exists. Formally, Decode
outputs bid such that for any auction
details,
bidder’s public and secret keys (pk, sk), nu-
meric bid value bid, auctioneer’s public key
A.pk, and supervisor’s public key S.pk and key
pair (Enc, Dec), if (message.encoded
bid, mes-
sage.id) ← Bidder(auction details, S.pk, A.pk,
pk, sk, Enc, bid) then bid ← Decode(Dec, mes-
sage.encoded
bid), otherwise ⊥ ← Decode(Dec,
message.encoded
bid).
We note that the Decode algorithm is mainly for
defining and proving the security requirements
(see Sections 2.5 and 4), and does not necessar-
ily need to be implemented in a real auction.
• The probabilistic auctioneering algorithm Auc-
tioneer takes as local input a (Public key, Private
key) pair. Furthermore, Auctioneer receives pub-
lic keys (such as the bidders’ or supervisor’s), and
may receive additional public or private informa-
tion (e.g. encoded bids) and a stage stg ∈ {‘init’,
‘receive’,‘outcome’}. If stg = ‘init’ the algorithm
outputs details about a planned auction. If stg =
‘receive’ the algorithm outputs state information
to be used later. If stg = ‘outcome’ the algorithm
outputs an auction’s outcome (i.e. the winning
bidder and the clearing price).
• The probabilistic auction supervising algorithm
Supervisor takes as input a (Public key, Private
key) pair, public information (that may consist
of the auctioneer’s public keys), additional in-
put from the auctioneer (such as auction details
or outcome), a probability α, and a stage stg ∈
{‘sign’, ‘generate’, ‘verify’}. If stg = ‘sign’ the
algorithm outputs a signature on the auction de-
tails input. If stg = ‘generate’ the algorithm out-
puts a (Public key, Private key) pair of a non-
malleable CPA-secure encryption scheme. If stg
= ‘verify’ it outputs either the string ‘Verified out-
come’ or a proof that the auctioneer cheated and
an amount fine the auctioneer needs to pay.
• The deterministic winner finding algorithm Win-
ner takes as input bids, a vector of bidders’ bids
and messages, a vector containing outputs of
the Bidder algorithm (namely, a vector of (en-
coded
bid, id) pairs) such that bidder i’s bid is
bids.i, and her encoded bid and identity informa-
tion is messages.i.encoded
bid and messages.i.id,
respectively. The algorithm outputs the winning
bidder ψ
winner
according to the auction rules (i.e.
ψ
winner
is the bidder that bid the highest bid. In
case more than one bidder bid the highest bid the
algorithm outputs the bidder whose encoded bid
has lexicographic precedence).
2.5 Requirements
An auction scheme is required to be secure, as defined
below.
Definition 1. An auction scheme is secure iff it is
valid, correct for a rational auctioneer, preserves se-
crecy, and non-malleable (as detailed below).
2.5.1 Validity
An auction scheme is said to be valid if, when the
supervisor checks the auction’s outcome, in case the
auctioneer deviated from the protocol he will be
caught with overwhelming probability. Formally, for
any auction scheme AUC = (KG, Bidder, Decode,
Auctioneer, Supervisor, Winner), adversary Adv and
k ∈ N we associate Experiment 1. In it, Adv has four
stages: init, details, encode and cheat. In the init stage
Adv is given a unary string 1
k
and outputs n ∈ N, the
number of participating bidders. In the details stage,
after a public and private key pair was issued to each
entity (the bidders, the auctioneer and the supervisor),
SecureSecondPriceAuctionswithaRationalAuctioneer
163