This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

Three-Party Integer Comparison and Applications

Jie Maa,b,c    Bin Qia,b,c    Kewei Lva,b,c,
aState Key Laboratory of Information Security
Institute of Information Engineering
Chinese Academy of Sciences
Beijing
   100093    China.
bData Assurance Communication Security Research Center
Chinese Academy of Sciences
Beijing
   100093    China.
cSchool of Cyber Security
University of Chinese Academy of Sciences
Beijing
   100093    China.
[email protected]
[email protected]
[email protected]
Abstract

Secure integer comparison has been a popular research topic in cryptography, both for its simplicity to describe and for its applications. The aim is to enable two parties to compare their inputs without revealing the exact value of those inputs.

In this paper, we highlight three-party integer comparison (TPIC), where a judge, with no private input, wants to know the comparison result, while two competitors hold secret integers to do privacy-preserving comparison. The judge actively obtains the result rather than passively waiting for it sent by a competitor. We give two TPIC constructions considering Mixed adversaries, who have with different capabilities. One is secure against a semi-honest adversary with low computation and communication cost, while the other is secure against a malicious adversary.

Basing on TPIC, we present multi-party comparisons through concrete applications, including a joint bidding scheme and a practical auction. Brief security proofs and analysis for the applications are presented. In comparison, our auction scheme is more efficient with lower cost, making it feasible in practice rather than a theoretical design. All the comparisons and application schemes run on top of blockchain requiring a constant number of rounds.

keywords:
Multi-Party Integer Comparison, Joint Bidding, Auction, Commitment, Constant-round, Blockchain
issue: XXI (2001)

Three-Party Integer Comparison and Applications

1 Introduction

Integer comparisons play an important role in the real life, a classic topic is the Millionaires problem [1], bringing researches on two-party comparison. A large number of solutions have been proposed employing various methods like garbled circuits [2, 3], oblivious transfers [4], and homomorphic encryption [5, 6, 7]. One approach is to decompose integers into bitwise representation and evaluate them in a boolean circuit. The communications and computations are inefficient requiring many rounds of interaction. In contrast to bitwise comparisons, more efficient protocols were given in [7, 8, 9, 10] to compare multiple bits simultaneously with a single ciphertext by a somewhat homomorphic encryption.

The general case related to secure integer comparison includes multi-party ranking [11], of which a concrete example is auction, such as English auction and uniform-price auction [12]. The dramatic development of internet of things, 5G and electronic commerce, etc, facilitates the research on online auctions [13, 6, 14, 15, 16, 17], which heavily rely on integer comparisons to determine one or more bidders with higher bids. Recently, the emergence of blockchain brings new idea to design comparison protocols as well auction schemes [13, 18, 19]. In the literature, Fischlin [5] proposed two-party bitwise comparison by boolean circuit, based on which, auction schemes were given considering semi-honest and malicious case. An oblivious third party A is required to provide a public/private key pair. All homomorphic computations in Fischlin’s protocol are then performed under A’s public key. Simulating A on the blockchain requires distributing the private key over multiple parties. As a result, one would need a secure and distributed computation of a Goldwasser-Micali key pair [20]. Even for the case of RSA, this is complex and requires more rounds to do interactions [21], making it impractical on blockchain. Blass and Kerschbaum [22] proposed StrainStrain, a protocol to implement auctions on top of blockchains that protects the bid privacy against fully-malicious parties. They improved the two-party comparison mechanism of Fischlin to achieve higher efficiency. Moreover, the authors mentioned that the proposed protocol leaks the order of bids to the public. Damgård et al. [6] gave auction schemes by homomorphic encryption. They considered the very different scenario of comparing a secret value mm with a public integer xx for the fully malicious version while the semi-honest version addresses comparing secret inputs mm and xx. They described their special case consisting of a server, an assisting server and a client with harsh condition that the client must be able to send his value and go offline, whereafter the other two parties should be able to do the computations together. The offline requirement is not very suitable for blockchain architecture pursuing freedom in joining and leaving the network at any time. The auction scheme [23] used the two-party multi-bit comparison in [7] considering a semi-honest adversary. Later, it was improved in [24], which, however, required help of the auctioneer to forward messages in more rounds.

We observe that two-party comparisons are pivots of most existing auctions. However, there are cases, where two-party protocols might not work well. Consider such a scenario: a buyer (with balance α\alpha) wants to buy a toy (of price β\beta) from a seller via blockchain. The buyer needs to convince the miners that αβ\alpha\!\geq\!\beta, while guaranteeing privacy of both α\alpha and β\beta. By a two-party comparison protocol, the buyer obtains the comparison result and sends it to the miners with a proof, resulting in additional complexity. Can we design a protocol to enable the miners to actively obtain the result rather than passively receiving it from the buyer?

Our contributions. In this paper, we highlight the above question and address it by three-party integer comparison (TPIC) protocols. In TPIC, two competitors hold their secret integers to perform comparisons, while a judge with no private input learns the comparison result. Two constant-round constructions are given against semi-honest and malicious adversary respectively. One is built on [7] for semi-honest competitors, and has low communication and computation cost (it can be improved by the method in [9, 10] to reduce one round), while the other is built on the technique of Fischlin [5] for malicious competitors. In both, the judge is assumed to be semi-honest and non-colluding with competitors to maintain the comparison result. As applications of TPIC, we give schemes for joint bidding and online auction, which run on top of blockchain in a constant number of rounds.

It is worth mentioning that the proposed joint bidding scheme runs in 4 blocks and is better than [23], where the number of rounds required is equal to the number of firms. Further, our auction has lower cost compared with related schemes [6, 5] and is feasible in practice. It runs in a constant number of rounds (4 blocks) and does not require an intermediary as in [24]. It also avoids the issue mentioned in [22]: the order of bids is revealed to all the participants. Indeed, the order of the private inputs is regarded as important information in some scenarios like joint bidding [25]. In our auction, the judge can obtain the results on its own initiative, and is the only party to get the order. Complexity analysis is given, while there is no analysis in [24].

Organization. This paper is organized as follows. In section 1, an introduction towards the research background as well as our contributions are presented. In section 2, we give a description for preliminaries including the ideal functionality, the adversary model, as well as the commitment scheme. In section 3, three-party integer comparison protocols are given. The applications to illustrate multi-party comparisons are given in section 4, consisting of joint bidding and auction schemes. The complexity analysis of the auction is shown in section 5. Finally, conclusions are given in section 6.

2 Preliminaries

In this section, we present the system model, ideal functionality and security definition, together with a commitment scheme used in the multi-party applications.

Convention. When we say someone “broadcasts” something, it means that he publishes his message on the blockchain via a transaction. We denote by λ\lambda as the security parameter involving in a cryptosystem.

2.1 System Model

We give a general model for comparisons in this paper. The participants are divided into two parts: one is called judge with no private input like the auctioneer in an auction, the other is called competitors which is a set of participants holding private inputs like bidders. The judge wants to obtain the sorted order of the secret inputs, which the owners does not wants to reveal. Assume there are NN (N2N\!\geq\!2) competitors and one judge in the following. In TPIC, N=2N\!=\!2.

Ideal Functionality. Our integer comparison scheme emulates a trusted third party (TTP) that first receives private inputs from all competitors by an authenticated channel. TTP then compares all the inputs and sends all the comparison results cmpi,jcmp_{i,j} to the judge. If a competitor 𝐁\mathbf{B} submits a complaint towards 𝐁\mathbf{B^{\prime}}, TTP reveals bid information of 𝐁\mathbf{B} to the judge and announces the re-comparison result between yy and yy^{\prime} to the public. The ideal functionality \mathcal{F} of a multi-party integer comparison protocol is presented in Algorithm 1.

for i=1i=1 to NN do
      Each competitor 𝐁𝐢\mathbf{B_{i}} sends his input yiy_{i} to TTP;
end for
for i,j=1i,j=1 to N,jiN,j\neq i do
      TTP computes cmpi,j=1cmp_{i,j}=1 if yiyjy_{i}\geq y_{j}; otherwise, cmpi,j=0cmp_{i,j}=0.
end for
TTP sends to the judge: {cmpi,j|i,j=1,,N,ij}\{cm\!p_{i,j}|i,\!j\!\!=\!\!1,\!\dots\!,N,i\!\!\neq\!\!j\}.
if A competitor 𝐁\mathbf{B} submits a complaint towards 𝐁\mathbf{B^{\prime}} then
      TTP sends yy to the judge, publishes cmpcm\!p to the judge and all competitors.
end if
Algorithm 1 Ideal Functionality \mathcal{F} of Comparisons

Adversary Model. It is assumed that all participants run in probabilistic polynomial time (PPT). Mixed adversary 𝒜=(𝒜1,𝒜2)\mathcal{A}\!=\!(\mathcal{A}_{1},\mathcal{A}_{2}) is considered corresponding to the participant roles. 𝒜1\mathcal{A}_{1} and 𝒜2\mathcal{A}_{2} are non-colluding and have different capabilities. 𝒜1\mathcal{A}_{1} is semi-honest and can corrupts the judge to eavesdrop the input privacy of the competitors. 𝒜2\mathcal{A}_{2} is either semi-honest or malicious (discussed separately) and can adaptively corrupt a subset of competitors. If 𝒜2\mathcal{A}_{2} is semi-honest, a corrupted competitor can: 1) attempt to obtain the inputs of the honest competitors but perform protocol correctly, 2) use false input, which means that the committed input is inconsistent with the input in the ciphertexts during the comparison, 3) submit a complaint towards the comparison result at any time, 4) quit the comparison during execution of the scheme at arbitrary time. We note here 𝒜2\mathcal{A}_{2}, when is semi-honest, is different from the general semi-honest assumption as some malicious behaviors are allowed, like submitting false complaints, quitting the protocol at any time.

Network Model. A weakly synchronous blockchain is used as an broadcast channel to publish messages. Each participant can timely access and put messages on the blockchain at any time.

Let 𝒫\mathcal{P} be a set of participants, who perform a protocol Π\Pi to compute an ideal function \mathcal{F} given inputs In𝒫In_{\mathcal{P}} and outputs Out𝒫Out_{\mathcal{P}}. For a corrupted subset II of 𝒫(I𝒫)\mathcal{P}(I\subseteq\mathcal{P}), the view of II is denoted by 𝐕𝐈𝐄𝐖IΠ(In𝒫,OutI,ϕI)\mathbf{VIEW}^{\Pi}_{I}(In_{\mathcal{P}},Out_{I},\phi_{I}), where ϕI\phi_{I} contains messages and random numbers selected by Pi,iIP_{i,i\in I} and related information during running Π\Pi. Let 𝐒𝐢𝐦I\mathbf{Sim}_{I} be a simulator that takes the inputs of all Pi,iIP_{i,i\in I} (InI)(In_{I}) and the outcome of \mathcal{F} received by PiP_{i} (OutI)(Out_{I}) to produce a transcript of the protocol.

Definition 2.1

A protocol Π\Pi is secure against 𝒜=(𝒜1,𝒜2)\mathcal{A}\!=\!(\mathcal{A}_{1},\mathcal{A}_{2}), if there exist a PPT simulator 𝐒𝐢𝐦I\mathbf{Sim}_{I} such that the distributions, 𝐒𝐢𝐦I\mathbf{Sim}_{I} and 𝐕𝐈𝐄𝐖IΠ\mathbf{VIEW}^{\Pi}_{I}, are computationally indistinguishable (simply denoted by symbol ‘c\approx_{c}’), that is,

𝐒𝐢𝐦I(InI,(In𝒫),OutI,ϕI)c𝐕𝐈𝐄𝐖IΠ(In𝒫,(In𝒫),OutI,ϕI).\mathbf{Sim}_{I}(In_{I},\mathcal{F}\!(In_{\mathcal{P}}),Out_{I},\phi_{I})\!\approx_{c}\!\!\mathbf{VIEW}^{\Pi}_{I}(In_{\mathcal{P}},\mathcal{F}\!(In_{\mathcal{P}}),Out_{I},\phi_{I}).

2.2 Commitment Scheme with Deposits

In our schemes, the blockchain-based commitment scheme (CS) with deposits in [26] is used to bind the input with its owner, forcing the owner to follow the protocol.

Assume a committer 𝐂\mathbf{C} wants to commit yy to a recipient 𝐑\mathbf{R} via blockchain. Initially, a hash function \mathcal{H} is negotiated by the committer 𝐂\mathbf{C} and recipient 𝐑\mathbf{R}. At the commitment phase, 𝐂\mathbf{C} computes h=(Sy)h=\mathcal{H}(S\|y) with some randomness SS as a commitment to yy. Then he broadcasts a transaction CS.CommitCS.Commit on blockchain revealing the commitment hh with some deposits vv, which is contained in some transaction possessed by 𝐂\mathbf{C}. The deposits will be redeemed by 𝐂\mathbf{C} during the opening phase with a transaction CS.OpenCS.Open if he opens the correct commitment. Otherwise, the deposits will be claimed by 𝐑\mathbf{R} as punishment for 𝐂\mathbf{C}. Afterwards, a transaction CS.FuseCS.Fuse is created by 𝐂\mathbf{C} and sent to 𝐑\mathbf{R} with his signature on it enabling 𝐑\mathbf{R} to claim the deposits.

At the opening phase, 𝐂\mathbf{C} reveals SS and yy via a transaction CS.OpenCS.Open to redeem his deposits. If the transaction CS.OpenCS.Open is not recorded on the blockchain after a deadline, then 𝐑\mathbf{R} broadcasts the transaction CS.FuseCS.Fuse to gain the deposits of 𝐂\mathbf{C}, or 𝐑\mathbf{R} learns SS and yy if CS.OpenCS.Open appears on the blockchain then 𝐂\mathbf{C} redeems his deposits.

For an honest committer, the deposits will be redeemed after opening the commitment. If the committer can not correctly open the commitment, then the recipient will claim the deposits. CS satisfies the bindingbinding property of a commitment scheme since hash function is collision-resistant while hidinghiding is guaranteed by unpredictability of the hash function.

3 Three-Party Integer Comparison Protocol

In this section, two TPIC protocols are given against semi-honest and malicious 𝒜2\mathcal{A}_{2}, respectively.

3.1 Semi-honest Competitors

In this subsection, a secure TPIC against semi-honest adversary 𝒜2\mathcal{A}_{2} is given. We improve the two-party integer comparison protocol in [7] and give security proofs. Assume that two competitors, P1P_{1} and P2P_{2}, holding α\alpha and β\beta, respectively, want to prove to a judge 𝐀\mathbf{A} which one of α\alpha and β\beta is larger without uncovering them.

The strategy involves three homomorphic public key encryption (PKE) schemes, by which to do computations under ciphertexts: 1)PKE1=(Gen1,Enc1,Dec1)PKE_{1}\!=\!(\textbf{Gen}_{1},\textbf{Enc}_{1},\textbf{Dec}_{1}) from [7] is semantically secure with threshold property that if m1+m2<dm_{1}\!+\!m_{2}\!<\!d, then Enc1(m1)bm2=Enc1(m1+m2)\textbf{Enc}_{1}(m_{1})^{b^{m_{2}}}\!=\!\textbf{Enc}_{1}(m_{1}\!+\!m_{2}), otherwise, Enc1(m1)bm2=Enc1(0)\textbf{Enc}_{1}(m_{1})^{b^{m_{2}}}\!=\!\textbf{Enc}_{1}(0). 2)PKE2=(Gen2,Enc2,Dec2)PKE_{2}\!=\!(\textbf{Gen}_{2},\textbf{Enc}_{2},\textbf{Dec}_{2}) with message space 2\mathcal{M}_{2} is multiplicatively homomorphic. 3)PKE3=(Gen,Enc,Dec)PKE_{3}\!=\!(\textbf{Gen}_{\oplus},\textbf{Enc}_{\oplus},\textbf{Dec}_{\oplus}) is semantically secure and additively homomorphic with message space \mathcal{M}_{\oplus} satisfying Enc()2\textbf{Enc}_{\oplus}(\mathcal{M}_{\oplus})\subseteq\mathcal{M}_{2}. An efficient candidate for PKE3PKE_{3} is [27] and proper candidates for PKE2PKE_{2} can be RSA or ElGamal encryption.

Let α=αk1dk1+αk2dk2++α1d+α0\alpha=\alpha_{k-1}d^{k-1}+\alpha_{k-2}d^{k-2}+\cdots+\alpha_{1}d+\alpha_{0} and β=βk1dk1+βk2dk2++β1d+β0\beta=\beta_{k-1}d^{k-1}+\beta_{k-2}d^{k-2}+\cdots+\beta_{1}d+\beta_{0}, where 0αi,βi<d0\leq\alpha_{i},\beta_{i}<d. If exactly one of the kk Boolean expressions below is True: (αk1>βk1)(\alpha_{k-1}>\beta_{k-1}), (αk1=βk1)(αk2>βk2)(\alpha_{k-1}=\beta_{k-1})\wedge(\alpha_{k-2}>\beta_{k-2}), (αk1=βk1)(αk2=βk2)(αk3>βk3)(\alpha_{k-1}=\beta_{k-1})\wedge(\alpha_{k-2}=\beta_{k-2})\wedge(\alpha_{k-3}>\beta_{k-3}), \cdots, (αk1=βk1)(αk2=βk2)(α0>β0)(\alpha_{k-1}=\beta_{k-1})\wedge(\alpha_{k-2}=\beta_{k-2})\wedge\cdots\wedge(\alpha_{0}>\beta_{0}), then α>β\alpha>\beta; otherwise αβ\alpha\leq\beta.

Specifically, Pi(i=1,2)P_{i}(i=1,2) runs 𝐆𝐞𝐧i(1λ)\mathbf{Gen}_{i}(1^{\lambda}) to generate the key pair (𝒫𝒦i,𝒮𝒦i)(\mathcal{PK}_{i},\mathcal{SK}_{i}) while the judge 𝐀\mathbf{A} runs Gen(1λ)\textbf{Gen}_{\oplus}(1^{\lambda}) to get the key pair (𝒫𝒦3,𝒮𝒦3)(\mathcal{PK}_{3},\mathcal{SK}_{3}). They publish their public keys 𝒫𝒦i\mathcal{PK}_{i} to each other where 𝒫𝒦1=(n,b,d,g,h,u)\mathcal{PK}_{1}=(n,b,d,g,h,u). In the following, let =k1,,0\ell=k-1,\dots,0 and the notation x$Sx\leftarrow_{\$}S denotes that a value xx is chosen uniformly at random from a set SS.

  1. 1.

    P1P_{1} selects r1,${1,,2u1}r_{1,\ell}\!\!\leftarrow_{\$}\!\!\{1,\dots,2^{u}\!-\!1\} and computes C=gb(dα1)hr1,C_{\ell}=g^{b^{(d-\alpha_{\ell}-1)}}h^{r_{1,\ell}}, then he publishes CC on blockchain, where C=(Ck1C\!\!=\!\!(C_{k-1}, ,C0)\dots,C_{0}).

  2. 2.

    P2P_{2} selects r2,${1,,2u1}r_{2,\ell}\!\!\leftarrow_{\$}\!\!\{1,\dots,2^{u}\!-\!1\}, s${1,,bd1}s_{\ell}\!\!\leftarrow_{\$}\!\!\{1,\dots,b^{d}\!-\!1\}, s.t.,s0modbs.t.,s_{\ell}\!\!\not\equiv\!\!0\bmod b and computes D=Cbβgshr2,D_{\ell}\!\!=\!\!C_{\ell}^{b^{\beta_{\ell}}}g^{s_{\ell}}h^{r_{2,\ell}}; A2,k1=Enc2(Enc(sk1))A_{2,k-1}=\textbf{Enc}_{2}(\textbf{Enc}_{\oplus}(s_{k-1})), A2,k2=Enc2(Enc(βk1sk2))A_{2,k-2}\!\!=\!\!\textbf{Enc}_{2}(\textbf{Enc}_{\oplus}(\beta_{k-1}\|s_{k-2})), \dots, A2,0=Enc2(Enc(βk1βk2s0))A_{2,0}\!\!=\!\!\textbf{Enc}_{2}(\textbf{Enc}_{\oplus}(\beta_{k-1}\|\beta_{k-2}\|\cdots\|s_{0})). She puts (D(D, A2)A_{2}) on blockchain, where D=(Dk1,,D0)D=(D_{k-1},\dots,D_{0}) and A2=(A2,k1A_{2}=(A_{2,k-1}, ,A2,0)\dots,A_{2,0}).

  3. 3.

    P1P_{1} computes w=Dec1(D)w_{\ell}\!\!=\!\!\textbf{Dec}_{1}(D_{\ell}); A1,k1=Enc2(Enc(wk1))A^{\prime}_{1,k-1}\!\!=\!\!\textbf{Enc}_{2}(\textbf{Enc}_{\oplus}(-w_{k-1}))\cdot A2,k1A_{2,k-1}, A1,k2=Enc2(Enc((αk1wk2)))A2,k2A^{\prime}_{1,k-2}=\textbf{Enc}_{2}(\textbf{Enc}_{\oplus}(-\\ (\alpha_{k-1}\|w_{k-2})))\cdot A_{2,k-2}, …, A1,0=Enc2(Enc((αk1αk2w0)))A2,0A^{\prime}_{1,0}=\textbf{Enc}_{2}(\textbf{Enc}_{\oplus}(-(\alpha_{k-1}\|\alpha_{k-2}\|\cdots\|w_{0})))\cdot A_{2,0}. Then he blinds A1,A_{1,\ell}^{\prime} by computing A1,=(A1,)rA_{1,\ell}\!=\!(A^{\prime}_{1,\ell})^{r_{\ell}} for 0r0\!\neq\!r_{\ell} $\leftarrow_{\$}\mathcal{M}_{\oplus}. He gets A1=(A1,k1,,A1,0)A_{1}=(A_{1,k-1^{\prime}},\dots,A_{1,0^{\prime}}) by shuffling (A1,k1,,A1,0)(A_{1,k-1},\dots,A_{1,0}) via a random permutation π1\pi_{1}. He puts A1A_{1} on blockchain.

  4. 4.

    P2P_{2} computes A0,=Dec2(A1,)A_{0,\ell}^{\prime}=\textbf{Dec}_{2}(A_{1,\ell}) and blinds A0,A_{0,\ell}^{\prime} by computing A0,=(A0,)rA_{0,\ell}=(A^{\prime}_{0,\ell})^{r_{\ell}^{\prime}} for 0r$0\neq r_{\ell}^{\prime}\leftarrow_{\$}\mathcal{M}_{\oplus}. Then, she shuffles (A0,k1,,A0,0)(A_{0,k-1},\dots,A_{0,0}) to A0=(A0,k1,,A0,0)A_{0}=(A_{0,k-1^{\prime}},\dots,A_{0,0^{\prime}}) by a random permutation π2\pi_{2}. She publishes A0A_{0} on blockchain.

  5. 5.

    𝐀\mathbf{A} computes m=Dec(A0,)m_{\ell}=\textbf{Dec}_{\oplus}(A_{0,\ell}). If for all \ell, m0m_{\ell}\neq 0, then, αβ\alpha\geq\beta; otherwise, α<β\alpha\!<\!\beta.

Note that the string βk1βk2s0\beta_{k-1}\|\beta_{k-2}\|\cdots\|s_{0} is regarded as an integer to be encrypted, which can be achieved by choosing appropriate message spaces.

Correctness. P1P_{1} computes w=(bdα1+β+s)modbdw_{\ell}\!\!=\!\!(b^{d-\alpha_{\ell}-1+\beta_{\ell}}\!+\!s_{\ell})\bmod b^{d}. If βα+1\beta_{\ell}\!\!\geq\!\!\alpha_{\ell}+1 holds, then w=sw_{\ell}\!\!=\!\!s_{\ell}. Since the encryptions, PKE2PKE_{2} and PKE3PKE_{3}, are homomorphic, we have A1,=Enc2[(Enc(βk1β+1s)A_{1,\ell}\!\!=\!\!\textbf{Enc}_{2}[(\textbf{Enc}_{\oplus}(\beta_{k-1}\|\!\cdots\!\|\beta_{\ell+1}\|s_{\ell})\cdot Enc((αk1α+1w)))r]\textbf{Enc}_{\oplus}(\!-(\alpha_{k-1}\|\!\!\cdots\!\!\|\alpha_{\ell+1}\|w_{\ell})))^{r_{\ell}}\!] and A0,=Enc[rr(βk1β+1sαk1α+1w)]A_{0,\ell}\!\!=\!\!\textbf{Enc}_{\oplus}[r_{\ell}r_{\ell}^{\prime}(\beta_{k-1}\|\!\cdots\!\|\beta_{\ell+1}\|s_{\ell}\!-\!\alpha_{k-1}\|\cdots\|\alpha_{\ell+1}\|w_{\ell})]. If there exists only one \ell, s.t.s.t., m=0m_{\ell}=0, then (αk1=βk1)(αk2=βk2)(α+1=β+1)(w=s)(\alpha_{k-1}=\beta_{k-1})\wedge(\alpha_{k-2}=\beta_{k-2})\wedge\cdots\wedge(\alpha_{\ell+1}=\beta_{\ell+1})\wedge(w_{\ell}=s_{\ell}) holds, and the \ell-th Boolean expressions is True, i.e.i.e., α<β\alpha<\beta. Otherwise, if m0m_{\ell}\neq 0 for all \ell, then αβ\alpha\geq\beta holds.

Theorem 3.1

Assume that the three PKEs are secure. Then, the above TPIC protocol is secure against mixed adversary 𝒜=(𝒜1,𝒜2)\mathcal{A}\!=\!(\!\mathcal{A}_{1},\mathcal{A}_{2}\!), where 𝒜1\mathcal{A}_{1} and 𝒜2\mathcal{A}_{2} are non-colluding and semi-honest, 𝒜1\mathcal{A}_{1} might corrupt the judge 𝐀\mathbf{A}, 𝒜2\mathcal{A}_{2} might corrupt a competitor P1P_{\!1} or P2P_{\!2}. I.e., the privacy, α\alpha and β\beta, of P1P_{\!1} and P2P_{\!2} respectively, is preserved.

Proof 3.2 (Sketch Proof)

By Definition 2.1, we construct simulators for the three PPT parties. Here Π\Pi is TPIC, and the ideal functionality \mathcal{F} computes the relationship between α\alpha and β\beta, i.e.,(α,β)=1,i.e.,\mathcal{F}(\alpha,\beta)=1, if α>β\alpha>\beta, otherwise (α,β)=0\mathcal{F}(\alpha,\beta)=0.

Given the public keys, 𝒮𝒦1\mathcal{SK}_{1} and α\alpha, 𝐒𝐢𝐦1\mathbf{Sim}_{1} encrypts α\alpha by PKE1PKE_{1} as CC which is identical to the real. Unknowing β\beta, 𝐒𝐢𝐦1\mathbf{Sim}_{1} just encrypts 0|C|0^{|C|} via PKE1PKE_{1} to get DsD_{s}. Since PKE1PKE_{1} is semantically secure, DsD_{s} is computationally indistinguishable from DD in the real. 𝐒𝐢𝐦1\mathbf{Sim}_{1} also encrypts numbers randomly chosen from \mathcal{M}_{\oplus} to obtain A2A_{2} which is indistinguishable from the real due to the (semantical) security of PKE3PKE_{3} and PKE2PKE_{2}. Then 𝐒𝐢𝐦1\mathbf{Sim}_{1} computes A1A_{1} as the real execution, which is also computationally indistinguishable. To simulate A0A_{0}, 𝐒𝐢𝐦1\mathbf{Sim}_{1} encrypts random numbers chosen from \mathcal{M}_{\oplus} by semantically secure PKE3PKE_{3}. Thus A0A_{0} is also computationally indistinguishable. So we have 𝐒𝐢𝐦1(α,𝒮𝒦1,ϕ1)c𝐕𝐈𝐄𝐖1Π((α,β),𝒮𝒦1,ϕ1)\mathbf{Sim}_{1}(\alpha,\mathcal{SK}_{1},\phi_{1})\!\!\approx_{c}\!\!\mathbf{VIEW}^{\Pi}_{1}((\alpha,\beta),\mathcal{SK}_{1},\phi_{1}). Note that P1P_{1} has no output.

𝐒𝐢𝐦2\mathbf{Sim}_{2} and 𝐒𝐢𝐦A\mathbf{Sim}_{A} can be constructed similarly to 𝐒𝐢𝐦1\mathbf{Sim}_{1}. Note that for 𝐒𝐢𝐦A\mathbf{Sim}_{A} given the comparison result (α,β)\mathcal{F}\!(\alpha,\beta), A0A_{0} should be consistent with the result. If α<β\alpha\!<\!\beta, there should exist only one ,s.t.,Dec(A0,)=0\ell,s.t.,\textbf{Dec}_{\oplus}(A_{0,\ell})\!=\!0. In this case, 𝐒𝐢𝐦A\mathbf{Sim}_{A} encrypts 0 and (1)(\ell\!\!-\!\!1) non-zero random numbers by PKE3PKE_{3}, then shuffles them. Otherwise, 𝐒𝐢𝐦A\mathbf{Sim}_{A} encrypts \ell non-zero random numbers then shuffles them. Similarly, we have 𝐒𝐢𝐦2(β,𝒮𝒦2,ϕ2)c𝐕𝐈𝐄𝐖2Π((α,β),𝒮𝒦2,ϕ2)\mathbf{Sim}_{2}(\beta,\mathcal{SK}_{2},\phi_{2})\!\!\approx_{c}\!\!\mathbf{VIEW}^{\Pi}_{2}((\alpha,\beta),\mathcal{SK}_{2},\phi_{2}) for P2P_{2} with no output, and 𝐒𝐢𝐦A((α,β),𝒮𝒦3,OutA,ϕ3)c𝐕𝐈𝐄𝐖1Π((α,β),𝒮𝒦3,OutA,ϕ3)\mathbf{Sim}_{A}(\mathcal{F}(\alpha,\beta),\mathcal{SK}_{3},Out_{A},\phi_{3})\approx_{c}\mathbf{VIEW}^{\Pi}_{1}(\mathcal{F}(\alpha,\beta),\mathcal{SK}_{3},Out_{A},\phi_{3}) for 𝐀\mathbf{A} who outputs the comparison result.

3.2 Malicious Competitors

Considering malicious 𝒜2\mathcal{A}_{2} who may corrupt P1P_{1} or P2P_{2}, we improve the comparison protocol of Fischlin [5], where Goldwasser-Micali (GM) [20] encryption is used. The public key is pk=(n,z)pk=(n,z) while the private key is sk=(p1)(q1)4sk\!=\!\frac{(p\!-\!1)(q\!-\!1)}{4}, where n=pqn\!=\!pq, pq3mod4p\!\equiv\!q\!\equiv\!3\bmod 4, z1modnz\!\equiv\!-1\bmod n. One can encrypt a bit bb by computing c=r2zbmodnc\!=\!r^{2}z^{b}\!\bmod\!n with randomly chosen rr from ZnZ_{n}^{\ast} and decrypt cc by computing 1cskmodn1\!-\!c^{sk}\!\bmod\!n. GM is homomorphic for encryptions of two bits b1b_{1} and b2b_{2}: Enc(b1)Enc(b2)=Enc(b1b2)Enc(b_{1})\cdot Enc(b_{2})\!=\!Enc(b_{1}\oplus b_{2}) (XOR), Enc(b1)z=Enc(1b1)Enc(b_{1})\cdot z\!=\!Enc(1\!-\!b_{1}) (NOT). For a GM ciphertext cc, re-encryption is ReEnc(c)=cEnc(0)ReEnc(c)\!=\!c\!\cdot\!Enc(0).

AND-homomorphic. GM encryption can be modified to support Boolean AND homomorphic following [28], by which, a single bit is encrypted to ι\iota-element sequence, where ι\iota is the soundness parameter. EncAND(1)=(Enc(0),,Enc(0))Enc^{AND}(1)\!=\!(Enc(0),\dots,Enc(0)) and EncAND(0)=(Enc(a1),,Enc(aι))Enc^{AND}(0)\!=\!(Enc(a_{1}),\dots,Enc(a_{\iota})) for ι\iota randomly chosen bits. The AND-decryption outputs 11 if each element in the sequence is decrypted to 0; otherwise, it outputs 0. This decryption is correct with probability 12ι1\!-\!2^{-\iota}. For two ciphertexts EncAND(b1)=(c1,,cι)Enc^{AND}(b_{1})\!=\!(c_{1},\dots,c_{\iota}) and EncAND(b2)=(c1,,cι)Enc^{AND}(b_{2})\!=\!(c^{\prime}_{1},\dots,c^{\prime}_{\iota}), EncAND(b1)EncAND(b2)=(c1c1,,cιcι)=EncAND(b1b2)Enc^{AND}(b_{1})\!\cdot\!Enc^{AND}(b_{2})\!=\!(c_{1}\!\cdot\!c^{\prime}_{1},\dots,c_{\iota}\!\cdot\!c^{\prime}_{\iota})\!=\!Enc^{AND}(b_{1}\!\wedge\!b_{2}) (AND). Re-encryption for AND-encryption is defined as ReEncAND(c1,,cι)=(ReEnc(c1),,ReEnc(cι))ReEnc^{AND}(c_{1},\dots,c_{\iota})\!=\!(ReEnc(c_{1}),\dots,ReEnc(c_{\iota})).

AND-embedding. An existing GM ciphertext cc of bit bb can be embedded to AND-ciphertext EncAND(b)=(c1,,cι)Enc^{AND}(b)\!=\!(c_{1},\dots,c_{\iota}) without decryption. For ι\iota randomly chosen bits a1,,aιa_{1},\dots,a_{\iota}, if ai=1a_{i}\!=\!1, then set ci=Enc(0)c_{i}\!=\!Enc(0); otherwise, set ci=Enc(0)czmodnc_{i}\!=\!Enc(0)\!\cdot\!c\!\cdot\!z\bmod n. Such embedding is correct with probability 12ι1\!-\!2^{-\iota}.

Fischlin [5] proposed secure protocol to compare two integers against semi-honest adversaries, which is a bit-wise comparison. Given η\eta-bit integers α\alpha and β\beta with bit representations α=α1αη\alpha\!=\!\alpha_{1}\dots\alpha_{\eta} and β=β1,,βη\beta\!=\!\beta_{1},\dots,\beta_{\eta}, one can compute α>β\alpha\!>\!\beta by evaluating Boolean circuit F==1η(α¬βu=+1η(αu=βu)).F\!=\!\bigvee_{\ell=1}^{\eta}(\alpha_{\ell}\!\wedge\!\neg\beta_{\ell}\wedge\bigwedge_{u=\ell+1}^{\eta}(\alpha_{u}\!=\!\beta_{u})). F=1F\!=\!1 if and only if α>β\alpha\!>\!\beta. =1η\bigvee_{\ell=1}^{\eta} is XOR operation and exactly one term will be 1 if α>β\alpha\!>\!\beta; otherwise, all terms will be 0. Moreover, (αu=βu)(\alpha_{u}\!=\!\beta_{u}) equals ¬(αuβu)\neg(\alpha_{u}\!\oplus\!\beta_{u}). Thus, FF can be homomorphically evaluated using GM encryption.

We improve the protocol of Fischlin [5] to be a secure three-party scheme against malicious P1P_{\!1} and P2P_{2}. 𝐀\mathbf{A} gets the comparison result, while P1P_{\!1} and P2P_{\!2} protect their private inputs α\alpha and β\beta. It is assumed that 𝐀\mathbf{A} will not collude with P1P_{1} or P2P_{2}. Except for GM encryption, RSA is also used in our scheme. 𝐀\mathbf{A} generates a GM key pair and publishes the public key before the comparison. For i=1,2i\!=\!1,2, PiP_{i} generates RSA public/ private key pair (ei,di)(e_{i},d_{i}). The private inputs are first encrypted by GM, then encrypted by RSA, such double encryption is called GM-RSA encryption in the following. Since, RSA is multiplicatively homomorphic, the homomorphic properties (NOT,XOR,AND) of GM will not be affected involving only multiplication. In the following, encrypting a sequence means encrypting each element separately.

  1. 1.

    PiP_{i} bit-wisely encrypts its private input by GM into Ci=(Ci,1,,Ci,η)C_{i}\!=\!(C_{i,1},\dots,C_{i,\eta}), then, encrypts CiC_{i} by RSA into Di=(Ci)eiD_{i}\!=\!(C_{i})^{e_{i}}. To prove the knowledge of the private input, a non-interactive zero-knowledge (NIZK) proof πi\pi_{i} given below is added. Finally, PiP_{i} publishes ei,Di,πi\langle e_{i},D_{i},\pi_{i}\rangle on blockchain.

  2. 2.

    P2P_{2} encrypts C2C_{2} into D2,1=C2e1D_{2,1}\!=\!C_{2}^{e_{1}} using e1e_{1} of P1P_{1} with a NIZK π^\hat{\pi} proving C2C_{2} is contained in D2D_{2} and D2,1D_{2,1}. P2P_{2} homomorphically computes all ¬(αuβu)\neg(\alpha_{u}\!\oplus\!\beta_{u}) and ¬β\neg\beta_{\ell}. P2P_{2} embeds C1C_{1} and C2C_{2} into AND-homomorphic GM by manipulating ciphertexts D1,D2,1D_{1},D_{2,1}. Specifically, P2P_{2} selects random coins and perform GM-RSA encryption on them, which then multiplied by D1,D2,1D_{1},D_{2,1}. P2P_{2} also attaches knowledge proofs π2,1\pi_{2,1} of the random coins following the construction of π\pi below. For each =1,,η\ell\!=\!1,\dots,\eta, P2P_{2} then computes a ciphertext c¯\bar{c}_{\ell} of b¯=α¬βu=+1η(αu=βu)\bar{b}\!=\!\alpha_{\ell}\!\wedge\!\neg\beta_{\ell}\wedge\bigwedge_{u=\ell+1}^{\eta}(\alpha_{u}\!=\!\beta_{u}). P2P_{2} randomly shuffles sequence (c¯1,,c¯η)(\bar{c}_{1},\dots,\bar{c}_{\eta}) to res¯2,1=shuffle(c¯1,,c¯η)\overline{res}_{2,1}\!=\!shuffle(\bar{c}_{1},\dots,\bar{c}_{\eta}) by a random permutation shuffleshuffle with a NIZK proof P2,1shuffleP_{2,1}^{shuffle} of shuffleshuffle following [29, 30]. Let proof P2,1eval=(D2,1,π^,π2,1,P2,1shuffle)P_{2,1}^{eval}\!=\!(D_{2,1},\hat{\pi},\pi_{2,1},P_{2,1}^{shuffle}). P2P_{2} encrypts P2,1evalP_{2,1}^{eval} into [P2,1eval][P_{2,1}^{eval}] by the public key of 𝐀\mathbf{A} such that the proof is visible only to 𝐀\mathbf{A}. P2P_{2} puts res¯2,1,[P2,1eval]\langle\overline{res}_{2,1},[P_{2,1}^{eval}]\rangle on blockchain. P1P_{\!1} performs operations similarly to P2P_{2} and publishes res¯1,2,[P1,2eval]\langle\overline{res}_{1,2},[P_{1,2}^{eval}]\rangle.

  3. 3.

    𝐀\mathbf{A} verifies P2,1eval,P1,2evalP_{2,1}^{eval},P_{1,2}^{eval} by checking the NIZK proofs. Then, 𝐀\mathbf{A} published the verification results on blockchain.

  4. 4.

    P1P_{1} decrypts res¯2,1\overline{res}_{2,1} by d1d_{1} into res2,1res_{2,1} and puts res2,1\langle res_{2,1}\rangle on the blockchain. Similarly, P2P_{2} publishes res1,2\langle res_{1,2}\rangle.

  5. 5.

    𝐀\mathbf{A} can verify correctness of res2,1res_{2,1} by re-encrypting (via e1e_{1}) before decrypting. If exactly one 11 is contained, then α>β\alpha\!>\!\beta. Otherwise, 𝐀\mathbf{A} decrypts res1,2res_{1,2}. If exactly one 11 is obtained, then α<β\alpha\!<\!\beta. Otherwise α=β\alpha\!=\!\beta.

NIZK-π\pi. For a GM public key (n,z)(n,z), a RSA public key (e,N)(e,N), a GM-RSA ciphertext C=ce=(r2zbmodn)emodNC\!=\!c^{e}\!=\!(r^{2}z^{b}\!\bmod\!n)^{e}\!\bmod\!N of a bit bb, a prover can prove the knowledge of bb in κ\kappa rounds as in [31]. The prover randomly chooses κ\kappa numbers {ri}i=1κ\{r_{i}\}_{i=\!1}^{\kappa}, and computes {Ai=ri4e}i=1κ\{A_{i}\!=\!r_{i}^{4e}\}_{i=\!1}^{\kappa}. With the help of a publicly known random oracle :{0,1}{0,1}κ\mathcal{H}\!:\!\{0,1\}^{\ast}\!\to\!\{0,1\}^{\kappa}, the prover computes challenges γ=(A1,,Aκ)\gamma\!=\!\mathcal{H}(A_{1},\dots,A_{\kappa}) regarded as a bit string. The prover concludes the proof by sending responses (γ,{Ri=(rγiri)e}i=1κ)(\gamma,\{R_{i}\!=\!(r^{\gamma_{i}}\!\cdot\!r_{i})^{e}\}_{i=\!1}^{\kappa}). A verifier computes all Ai=Ri4C2γiA_{i}^{\prime}\!=\!\frac{R_{i}^{4}}{C^{2\gamma_{i}}} and accepts if γ=(A1,,Aκ)\gamma\!=\!\mathcal{H}(A_{1}^{\prime},\dots,A_{\kappa}^{\prime}). The security relies on the security of RSA and the original proof of knowledge bb for GM ciphertext in [31].

NIZK-π^\hat{\pi}. For two RSA public keys e1,e2e_{1},e_{2}, public ciphertexts X1,X2X_{1},X_{2}, a prover can prove the knowledge of xx such that X1=xe1X2=xe2X_{1}\!=\!x^{e_{1}}\wedge X_{2}\!=\!x^{e_{2}}. The prover randomly chooses yy and computes Y1=ye1,Y2=ye2Y_{1}\!=\!y^{e_{1}},Y_{2}\!=\!y^{e_{2}}. Then, the prover computes challenges γ=(Y1,Y2)\gamma\!=\!\mathcal{H}(Y_{1},Y_{2}) regarded as an integer. The response is (γ,yxγ)(\gamma,yx^{\gamma}). A verifier computes Y1=(yxγ)e1X1γY_{1}^{\prime}\!=\!\frac{(yx^{\gamma})^{e_{1}}}{X_{1}^{\gamma}}, Y2=(yxγ)e2X2γY_{2}^{\prime}\!=\!\frac{(yx^{\gamma})^{e_{2}}}{X_{2}^{\gamma}}, and accepts if γ=(Y1,Y2)\gamma\!=\!\mathcal{H}(Y_{1}^{\prime},Y_{2}^{\prime}). For security of π^\hat{\pi}, one can refer to [32] for proving the knowledge of xx such that X=xeX\!=\!x^{e}.

Theorem 3.3

The above TPIC protocol is secure against mixed adversary 𝒜=(𝒜1,𝒜2)\mathcal{A}\!=\!(\!\mathcal{A}_{1},\mathcal{A}_{2}\!), where 𝒜1\mathcal{A}_{1} is semi-honest and can corrupt the judge 𝐀\mathbf{A}, 𝒜2\mathcal{A}_{2} is malicious and can corrupt P1P_{\!1} or P2P_{\!2}. I.e., the privacy, α\alpha and β\beta, of P1P_{\!1} and P2P_{\!2} respectively, is preserved.

Proof 3.4 (Sketch Proof)

Following Definition 2.1, we construct simulators for the three PPT parties with the help of the ideal functionality \mathcal{F}, which computes the relationship between α\alpha and β\beta, i.e.,(α,β)=1,i.e.,\mathcal{F}(\alpha,\beta)=1, if α>β\alpha>\beta, otherwise (α,β)=0\mathcal{F}(\alpha,\beta)=0. We denote by 𝐒𝐢𝐦π\mathbf{Sim}^{\pi} and 𝐒𝐢𝐦π^\mathbf{Sim}^{\hat{\pi}} the simulators of NIZK π\pi and π^\hat{\pi}.

Given (e1,d1)(e_{1},d_{1}) and α\alpha, 𝐒𝐢𝐦1\mathbf{Sim}_{1} computes e1,D1,π1\langle e_{1},D_{1},\pi_{1}\rangle as in the real. Then 𝐒𝐢𝐦1\mathbf{Sim}_{1} invokes 𝐒𝐢𝐦π\mathbf{Sim}^{\pi} to simulate behavior of P2P_{2}. This simulation is computationally indistinguishable from the real. In step 2, 𝐒𝐢𝐦1\mathbf{Sim}_{1} computes ciphertexts with the help of TTP and 𝐒𝐢𝐦π^\mathbf{Sim}^{\hat{\pi}}. Since the final ciphertexts res¯1,2\overline{res}_{1,2} will reveal the relationship between α\alpha and β\beta, 𝐒𝐢𝐦1\mathbf{Sim}_{1} can just encrypts random numbers according to F(α,β)F(\alpha,\beta). For D1,2D_{1,2}, if F(α,β)=1F(\alpha,\beta)\!=\!1, 𝐒𝐢𝐦1\mathbf{Sim}_{1} encrypts only one 11 and 0 for other η1\eta\!-\!1 elements; otherwise, it always encrypts 0 for all η\eta elements. Afterwards, it invokes 𝐒𝐢𝐦π^\mathbf{Sim}^{\hat{\pi}} to guarantee NIZK is acceptable. 𝐒𝐢𝐦1\mathbf{Sim}_{1} encrypts random bits and gives NIZK following π\pi to embed D2,D1,2D_{2},D_{1,2} to AND-homomorphic GM. Then it invokes the simulator for shuffleshuffle to shuffle the sequence. This simulation process is also computationally indistinguishable from the real computation. In step 4, 𝐒𝐢𝐦1\mathbf{Sim}_{1} does decryptions as in the real with the given private key d1d_{1}, which is identical to the real. One can construct 𝐒𝐢𝐦2\mathbf{Sim}_{2} as same as the construction of 𝐒𝐢𝐦1\mathbf{Sim}_{1}.

The judge 𝐀\mathbf{A}, who has no private input, only obtains RSA ciphertexts in step 1,2,3 and NIZK proofs. 𝐀\mathbf{A} can revoke 𝐒𝐢𝐦π\mathbf{Sim}^{\pi} and 𝐒𝐢𝐦π^\mathbf{Sim}^{\hat{\pi}}. With the help of TTP, the simulation should be consistent with F(α,β)F(\alpha,\beta) as discussed for 𝐒𝐢𝐦1\mathbf{Sim}_{1} in step 2, such that the resulting simulator is computationally indistinguishable from the real execution.

4 Applications

In this section, the applications based on three-party comparisons are given with the help of blockchain.

4.1 Joint bidding

The proposed comparison protocols can be used for joint bidding [25], which is a multi-party scenario. Joint bidding is a form of alliance and is used extensively in the construction and insurance industries, allowing a group of firms to collectively undertake a big project beyond any single. The logic is to take advantage of the collective size of the group. To choose proper partners, the project owner needs to check their financial assets which they do not like to uncover.

A solution is given and instantiated by the three-party comparison for malicious competitors. In our design, all the firms 𝐁𝐢\mathbf{B_{i}} run parallelized TPIC with the project owner 𝐀\mathbf{A}. At last, 𝐀\mathbf{A} learns the order of all assets to select needed partners. If the owner wants to choose partners possessing assets more that a prefer value xx, it can play a role of firm to compare all assets with xx. 𝐀\mathbf{A} then chooses firms whose assets is larger than xx whilst xx is not known to them.

At the beginning, 𝐀\mathbf{A} broadcasts the GM public key, all firms perform the following scheme.

  1. 1.

    Each firm 𝐁𝐢\mathbf{B_{i}} publishes ei,Di,πi\langle e_{i},D_{i},\pi_{i}\rangle on blockchain committing to assets yiy_{i}. If a prefer value xx is needed, 𝐀\mathbf{A} publishes e,D,π\langle e,D,\pi\rangle on chain committing to xx.

  2. 2.

    Each 𝐁𝐢\mathbf{B_{i}} computes res¯i,j,[Pi,jeval]\langle\overline{res}_{i,j},[P_{i,j}^{eval}]\rangle for all jij\!\neq\!i and puts them on blockchain.

  3. 3.

    𝐀\mathbf{A} verifies all NIZK proofs and publishes the verification results.

  4. 4.

    𝐁𝐢\mathbf{B_{i}} decrypts all res¯j,i\overline{res}_{j,i} into resj,ires_{j,i} and publishes them on blockchain.

  5. 5.

    𝐀\mathbf{A} decrypts resi,jres_{i,j} getting the order of all yiy_{i} (and xx). Then 𝐀\mathbf{A} can select proper partners according to the ranking of assets (larger than xx).

Here, the commitment with deposits can also be used to incentivize honest performance.

The security is guaranteed by theorem 3.3. One can refer to [22] for the time cost for GM encryption and related NIZK proofs. For primes |p|=|q|=768|p|\!=\!|q|\!=\!768, 32-bit integers, κ=ι=40\kappa\!=\!\iota\!=\!40 for soundness error 2402^{-40}, the total time is less than 1s. To guarantee RSA is compatible with GM, we test encryption and decryption time setting |p|=|q|=1152|p|\!=\!|q|\!=\!1152 on PC (AMD PRO A10-8770 R7, 10 COMPUTE CORES 4C+6G) running at 3.5GHz. The total RSA encryption time for 1280(=ηι)1280(=\eta\iota) times is less than 200ms while 6s for decryption. The time cost is acceptable in the real.

The scheme runs in 4 blocks and the per-firm communication cost in each step is given in table 1, where η\eta is bit length for the asset value, ι\iota is the soundness parameter in AND homomorphic of GM, κ\kappa is the soundness parameter in NIZK proofs, |p||p| is the prime size for RSA, NN is the number of firms. The communication coat in step 2 does not contain the ciphertexts [Pi,jeval][P_{i,j}^{eval}]. Pi,jevalP_{i,j}^{eval} can be encrypted by an alternative scheme instead of GM since GM is a bit-wise encryption, thus consumes much communication.

Table 1: Per-firm communication cost.
 – step 1 step 2 step 4
comm(bits) 2(η+κ)|p|2(\eta\!+\!\kappa)|p| 2(N1)ηι|p|2(N\!-\!1)\eta\iota|p| 2(N1)ηι|p|2(N\!-\!1)\eta\iota|p|

4.2 Auctions from TPIC

In this subsection, a general version of three-party comparison is presented by a privacy-preserving auction scheme running in a constant number of rounds. In an auction scenario, NN bidders submit bids hoping to win without revealing the bid information while the auctioneer expects to determine a winner with the highest bid. Traditional seal-bid scheme heavily relies on the auctioneer 𝐀\mathbf{A} who is assumed to be trusted since 𝐀\mathbf{A} learns all bid information. This dependence will however lead to unfairness as 𝐀\mathbf{A} may collude with a bidder or leak the bids of the honest to a malicious bidder. On the other hand, a bidder may perform badly to influence the outcome of the auction. In our instantiation, the commitment scheme (CS) with deposits is used to bind bid as well as the ciphertexts with each bidder. The deposits are used to punish bidders with bad behavior like inconsistent commitment or wrong complaint. The three-party protocol for semi-honest competitors is used to compare all bids under ciphertexts to preserve privacy.

Roughly, each bidder 𝐁𝐢\mathbf{B_{i}} is required to run CS to broadcast CS.CommitiCS.Commit_{i} on blockchain with some deposits committing to his bid yiy_{i} and its ciphertexts. He is also supposed to provide a transaction CS.FuseiCS.Fuse_{i} for the auctioneer 𝐀\mathbf{A} with his signature on it. Then, 𝐁𝐢\mathbf{B_{i}} runs TPIC to compare his bid with that of 𝐁𝐣\mathbf{B_{j}} for all jij\!\neq\!i in parallel. At the last round of TPIC, 𝐀\mathbf{A} gets all the comparison results and announces the highest bid holder to be the auction winner. The determined winner 𝐁𝐰\mathbf{B_{w}} should open his commitment on blockchain and other bidders can verify its soundness. A bidder 𝐁𝐢\mathbf{B_{i}} who loses the auction can redeem the deposits by CS.OpeniCS.Open_{i} which will disclose the bid information, thus an alternative CS.RefundiCS.Refund_{i} is used to return the deposits. CS.RefundiCS.Refund_{i} contains no bid information and is valid only signed by both 𝐁𝐢\mathbf{B_{i}} and 𝐀\mathbf{A}. If a complainer 𝐁\mathbf{B} submits a complaint towards 𝐁\mathbf{B^{\prime}}, 𝐁\mathbf{B} is required to open his commitment to 𝐀\mathbf{A} for consistency verification. Then they run TPIC again, after which 𝐀\mathbf{A} gets the result and penalizes the loser by broadcasting the transaction CS.FuseCS.Fuse on blockchain to confiscate his deposits before exclusion. The punishment is necessary to prevent bid information extraction from malicious comparisons by continuous complaint submission, because each comparison will reveal a lower or upper bound of the bid. Finally, 𝐀\mathbf{A} signs the transaction CS.RefundCS.Refund from the honest bidders and broadcasts them on blockchain to return their deposits.

Specifically, all bidders and the auctioneer negotiate a hash function \mathcal{H} and the deposits value used in the commitment. Each 𝐁𝐢\mathbf{B_{i}} runs both 𝐆𝐞𝐧1(1λ)\mathbf{Gen}_{1}(1^{\lambda}) and 𝐆𝐞𝐧2(1λ)\mathbf{Gen}_{2}(1^{\lambda}) to generate the key pairs (𝒫𝒦i1,𝒮𝒦i1)(\mathcal{PK}^{1}_{i},\mathcal{SK}^{1}_{i}) and (𝒫𝒦i2,𝒮𝒦i2)(\mathcal{PK}^{2}_{i},\mathcal{SK}^{2}_{i}) while 𝐀\mathbf{A} runs Gen(1λ)\textbf{Gen}_{\oplus}(1^{\lambda}) to get the key pair (𝒫𝒦3,𝒮𝒦3)(\mathcal{PK}_{3},\mathcal{SK}_{3}). They all publish their public keys, and then run the following parallelized TPIC, where NN is the number of bidders, i,j{1,2,,N},iji,j\!\in\!\{1,2,\dots,N\},i\!\neq\!j, and mi,jm_{i,j} denotes that the message mm in TPIC is computed by 𝐁𝐢\mathbf{B_{i}} and transferred to the target receiver 𝐁𝐣\mathbf{B_{j}}.

  1. 1.

    Each 𝐁𝐢\mathbf{B_{i}} encrypts yiy_{i} into CiC_{i} via PKE1PKE_{1}, and computes HyiCi=(yiCiSi)H_{y_{i}}^{C_{i}}\!=\!\mathcal{H}(y_{i}\|C_{i}\|S_{i}) with a random string SiS\!_{i} as his commitment. 𝐁𝐢\mathbf{B_{i}} creates two transactions (CS.Fusei,CS.Refundi)(CS.Fuse_{i},CS.Refund_{i}) and encrypts them by 𝒫𝒦3\mathcal{PK}_{\!3} of 𝐀\mathbf{A} into [CS.Fusei,CS.Refundi][CS.Fuse_{i},CS.Refund_{i}]. Finally, P1P_{\!1} broadcasts

    HyiCi,Ci,[CS.Fuse1,CS.Refund1]\langle H_{y_{i}}^{C_{i}},C_{i},[CS.Fuse_{1},CS.Refund_{1}]\rangle

    on blockchain by a transaction CS.CommitiCS.Commit_{i} with some deposits;

  2. 2.

    𝐁𝐢\mathbf{B_{i}} computes (D,A2)i,j(D,A_{2})_{i,j} for all jij\neq i and puts them on blockchain;

  3. 3.

    𝐁𝐢\mathbf{B_{i}} computes (A1)i,j(A_{1})_{i,j} for all jij\neq i and publishes them on blockchain;

  4. 4.

    𝐁𝐢\mathbf{B_{i}} computes (A0)i,j(A_{0})_{i,j} for all jij\neq i and posts them on blockchain;

  5. 5.

    For =k1,,0\ell=k-1,\dots,0, 𝐀\mathbf{A} computes (m)i,j=Dec((A0,)i,j)(m_{\ell})_{i,j}=\textbf{Dec}_{\oplus}((A_{0,\ell})_{i,j}). If i\exists i for ji,\forall j\neq i,\forall\ell, (m)i,j0(m_{\ell})_{i,j}\neq 0, then 𝐀\mathbf{A} determines 𝐁𝐢\mathbf{B_{i}} to be the winner who is required to open his commitment for public verification.

  6. 6.

    If a complainer 𝐁\mathbf{B} submits a complaint towards 𝐁\mathbf{B^{\prime}} on blockchain, then he is required to reveal yCSy\|C\|S to 𝐀\mathbf{A} for consistency verification. If it is not consistent, 𝐀\mathbf{A} penalizes 𝐁\mathbf{B} by broadcasting his CS.FuseCS.Fuse on blockchain confiscating his deposits. Otherwise, they run TPIC with the complained bidder, after which, 𝐀\mathbf{A} gets the result and penalizes the loser who is excluded from now on. Finally, 𝐀\mathbf{A} signs the transaction CS.RefundCS.Refund from the honest bidders and broadcasts them on blockchain to return their deposits.

In this scheme, we assume that there exists only one bidder holding the highest bid. If more than one bidders submit the same highest bid, then they can run TPIC to bid again.

Theorem 4.1

Our auction scheme is secure against mixed adversary (𝒜1,𝒜2)(\mathcal{A}_{1},\mathcal{A}_{2}), where 𝒜1\mathcal{A}_{1} may corrupt the auctioneer 𝐀\mathbf{A}, 𝒜2\mathcal{A}_{2} may corrupt one or more bidders. I.e., the bid privacy of honest bidders is preserved.

Proof 4.2 (Sketch Proof)

By the ideal functionality \mathcal{F}, we construct a simulator for each party. For each bidder 𝐁𝐢\mathbf{B_{i}}, we construct 𝐒𝐢𝐦i\mathbf{Sim}_{i} given the bid yiy_{i}, related public and private keys, and the output i\mathcal{F}_{i} of 𝐁𝐢\mathbf{B_{i}} receiving from TTP. Since the commitments is based on hash function, each simulator can hash a random string as simulated commitment for others which is computationally indistinguishable from the real one. In step 1, given yiy_{i}, 𝐒𝐢𝐦i\mathbf{Sim}_{i} directly computes CiC_{i}, CS.CommitiCS.Commit_{i}, CS.FuseiCS.Fuse_{i} and CS.RefundiCS.Refund_{i}. These are identical to the real. In step 2, 𝐁𝐢\mathbf{B_{i}} can read all Cj,jiC_{j},j\neq i on blockchain, 𝐒𝐢𝐦i\mathbf{Sim}_{i} computes CjC_{j} by encrypting zeros which is computationally indistinguishable since CjC_{j} is ciphertext encrypted by semantically secure PKE1PKE_{1}. 𝐒𝐢𝐦i\mathbf{Sim}_{i} can compute (D,A2)j,i(D,A_{2})_{j,i} for all jij\neq i with yiy_{i}. This is the same as the real. In step 3, 𝐁𝐢\mathbf{B_{i}} can read all (D,A2)i,j(D,A_{2})_{i,j} for jij\neq i on blockchain. Since DD is encrypted by PKE1PKE_{1}, 𝐒𝐢𝐦i\mathbf{Sim}_{i} computes DD by encrypting zeros which is indistinguishable. In the real, 𝐁𝐢\mathbf{B_{i}} can decrypts A2A_{2} by the private key of PKE2PKE_{2} obtaining the messages encrypted by PKE3PKE_{3} which is again semantically secure. 𝐒𝐢𝐦i\mathbf{Sim}_{i} computes A2A_{2} by encrypting random numbers selected from \mathcal{M}_{\oplus} via PKE2PKE_{2} and PKE3PKE_{3}, which is indistinguishable. 𝐒𝐢𝐦i\mathbf{Sim}_{i} decrypts all DD getting ww, and computes (A1)j,i(A_{1})_{j,i} by the blind and shuffle operation. Just as A2A_{2}, 𝐒𝐢𝐦i\mathbf{Sim}_{i} can compute A1A_{1} that is computationally indistinguishable. Note that A1A_{1}, as well as A0A_{0}, will indicate whether 𝐁𝐢\mathbf{B_{i}} is the winner or not, it should be simulated according to i\mathcal{F}_{i}. If 𝐁𝐢\mathbf{B_{i}} is a winner, 𝐒𝐢𝐦i\mathbf{Sim}_{i} computes (A1,)i,j(A_{1,\ell})_{i,j} by encrypting uniformly and randomly chosen non-zero numbers for every \ell and j,jij,j\neq i, then 𝐒𝐢𝐦i\mathbf{Sim}_{i} obtains (A1)i,j=((A1,k1)i,j,,(A1,0)i,j)(A_{1})_{i,j}=((A_{1,k-1})_{i,j},\dots,(A_{1,0})_{i,j}). Otherwise, for each j,jij,j\neq i, 𝐒𝐢𝐦i\mathbf{Sim}_{i} randomly chooses ζ{k1,,0}\zeta\in\{k-1,\dots,0\}, gets (A1,ζ)i,j(A_{1,\zeta})_{i,j} by encrypting 0, and computes (A1,)i,j,ζ(A_{1,\ell})_{i,j},\ell\neq\zeta by encrypting uniformly and randomly chosen non-zero numbers. In step 4, 𝐒𝐢𝐦i\mathbf{Sim}_{i} decrypts A1A_{1} and gets A0A_{0} after blinding and shuffling.

As for 𝐀\mathbf{A}, we construct 𝐒𝐢𝐦A\mathbf{Sim}_{A} given related public and private keys and the output A\mathcal{F}_{A} of 𝐀\mathbf{A} receiving from TTP. As discussed above, in the view of 𝐀\mathbf{A}, all messages communicated are ciphertexts encrypted by (semantically) secure PKE, thus they are simulatable by encrypting mud numbers, which are computationally indistinguishable. Since 𝐀\mathbf{A} will learn the comparison results from (A0)i,j(A_{0})_{i,j}, it should be simulated according to cmpi,jcmp_{i,j}. If yiyjy_{i}\geq y_{j}, then for all \ell, (A0,)i,j(A_{0,\ell})_{i,j} should not be decrypted to 0. In this case, 𝐒𝐢𝐦A\mathbf{Sim}_{A} encrypts \ell non-zero random numbers by PKE3PKE_{3} then shuffles them. Otherwise, there exists ζ\zeta such that Dec((A0,ζ)i,j)=0\textbf{Dec}_{\oplus}((A_{0,\zeta})_{i,j})=0. 𝐒𝐢𝐦A\mathbf{Sim}_{A} encrypts 0 and (1)(\ell\!-\!1) non-zero random numbers then shuffles them. For the winner, 𝐒𝐢𝐦A\mathbf{Sim}_{A} can perform similarly to the case (step 3) where above 𝐒𝐢𝐦i\mathbf{Sim}_{i} simulates that 𝐁𝐢\mathbf{B_{i}} is a winner.

For a complaint from 𝐁\mathbf{B} about 𝐁\mathbf{B^{\prime}}, in the real, 𝐀\mathbf{A} runs TPIC with 𝐁\mathbf{B} and 𝐁\mathbf{B^{\prime}}. The proof of this case is the same as Theorem 1. So we have

𝐒𝐢𝐦A((In𝒫),OutA,ϕA)c𝐕𝐈𝐄𝐖AΠ(In𝒫,(In𝒫),OutA,ϕA),\mathbf{Sim}_{A}(\mathcal{F}(In_{\mathcal{P}}),Out_{A},\phi_{A})\approx_{c}\mathbf{VIEW}^{\Pi}_{A}(In_{\mathcal{P}},\mathcal{F}(In_{\mathcal{P}}),Out_{A},\phi_{A}),

where 𝒫={𝐁𝐢:i=1,,N}\mathcal{P}=\{\mathbf{B_{i}}:i=1,\dots,N\} and Π\Pi denotes our scheme. Hence, our scheme is secure against adversary 𝒜1\mathcal{A}_{1} who may control the auctioneer.

For 𝒜2\mathcal{A}_{2} who may control more than one bidders denoted by set II, we construct 𝐒𝐢𝐦I\mathbf{Sim}_{I} as follows. Since the bidders are insulated in the real, they computes ciphertexts independently. 𝐒𝐢𝐦I\mathbf{Sim}_{I} does what 𝐒𝐢𝐦j\mathbf{Sim}_{j} does for all jIj\in I, such that

𝐒𝐢𝐦I(InI,(In𝒫),ϕI)c𝐕𝐈𝐄𝐖IΠ(In𝒫,(In𝒫),ϕI).\mathbf{Sim}_{I}(In_{I},\mathcal{F}(In_{\mathcal{P}}),\phi_{I})\approx_{c}\mathbf{VIEW}^{\Pi}_{I}(In_{\mathcal{P}},\mathcal{F}(In_{\mathcal{P}}),\phi_{I}).

Thus the scheme is also secure against adversary 𝒜2\mathcal{A}_{2}.

The complexity analysis and comparisons with related work are given in a followed section.

5 Complexity Analysis of the Auction

In this section, we analyse the performance of our auction scheme. It is assumed that the number of bidders is NN and the bids are η\eta bits, i.e., k=logd(2η),d>2k=\lceil\log_{d}(2^{\eta})\rceil,d>2.

Our auction scheme runs in 4 rounds (blocks) which is constant in both the length of the bid and the number of bidders. In the first round, each bidder just encrypts his bid to kk ciphertexts. In other rounds, a bidder computes k(N1)k(N\!-\!1) different ciphertexts comparing his bid with other N1N\!-\!1 bids in parallel, then he publishes them on blockchain. While PKE3PKE_{3} is more efficient over a fast elliptic curve, PKE1PKE_{1} and PKE2PKE_{2} are much time consuming performed over finite field. Referring to the experimental data in [7], we roughly estimate the time cost as shown in Table 2. The time is computed according to the time to compute one ciphertext since each bidder computes k(N1)k(N\!-\!1) different ciphertexts. To meet the cryptographic parameters in [7], we set b=2,d=8b=2,d=8, N=100N=100 for an auction with 100 bidders, and the bid with bit-length 30(|yi|=30|y_{i}|=30, a “billion” magnitude), thus k=10k=10. For 128-bit security level, set |n|=3072,|u|=256|n|=3072,|u|=256, and |n|=15360,|u|=512|n|=15360,|u|=512 for 256-bit security. For PKE3PKE_{3}, the exponential variant of ElGamal [27] is implemented over an elliptic curve. We refer the reader to the original paper [7] for more details about specific parameterizations.

Table 2: Performance analysis of our auction scheme.
 128-bit security  256-bit security
Round Com Time(s) Size(MB) Time(s) Size(MB)
#1 0 0.39 0.37 8.52 1.83
#2 k(N1)k(N\!-\!1) 1.14 0.73 15.66 3.66
#3 k(N1)k(N\!-\!1) 0.81 0.37 9.21 1.83
#4 k(N1)k(N\!-\!1) 0.14 0.12 2.13 0.25

The performance analysis of our auction scheme is given in Table 2. It shows the computation times of PKE2PKE_{2}(Com), encryption and decryption time of PKE1PKE_{1} and PKE3PKE_{3}(Time), the size of transferred messages(Size). In the table, we just list the computation times of PKE2PKE_{2}, to make it easier to be compared with the related comparison protocols, and fix PKE2PKE_{2} to be RSA. First, our scheme is practical for real-world application. In step 2,3, each bidder 𝐁𝐢\mathbf{B_{i}} needs to encrypt k(N1)k(N\!-\!1) numbers by RSA(PKE2PKE_{2}), but, in step 4, each 𝐁𝐢\mathbf{B_{i}} is supposed to decrypt k(N1)k(N\!-\!1) ciphertexts. For 128-bit security (|n|=3072|n|=3072), we test the RSA running time in Go language on PC (AMD PRO A10-8770 R7, 10 COMPUTE CORES 4C+6G) running at 3.5GHz, which shows that the RSA encryption time is about 230ms for k=10,N=100k=10,N=100 while about 9s is consumed to perform decryptions. Thus, the total time in each round is about 10 seconds, which is acceptable in reality even in permissionless blockchain architectures like Bitcoin and Ethereum requiring 10 minutes and 15s (on average) to produce a new block.

To illustrate the efficiency, we compare our scheme with the two closely related works, DGK [6] and Fischlin [5] protocols, which are secure against semi-honest adversary. These three schemes all use an RSA modulus for the encryption. It is certainly reasonable to use the same bit length of the modulus. We say our scheme is a bit faster than (or, at least, comparable to) the other two comparison protocols as claimed in [7] that their scheme (based on which we present our TPIC protocol) is faster about 3.5 times than the DKG protocol, which is roughly 10 times [6] faster than Fischlin protocol. To compare η\eta-bit numbers, our scheme needs to compute k=logd(2η)k\!=\!\lceil\log_{d}(2^{\eta})\rceil ciphertexts while the other two protocols require η\eta ciphertexts since they are per-bit comparisons. Moreover, to achieve ANDAND operation in Fischlin protocol, each ciphertext is expanded to a tuple with ι\iota elements where ι\iota is the soundness error, which adds the communication overhead. For round complexity, our scheme runs in 4 rounds, which is the same as DGK, while Fischlin protocol requires 6 rounds [22] to get the comparison results. We also note that StrainS\!train [22] even with all the NIZK related messages removed still requires a larger communication size. The performance comparison is shown in Table 3 including round complexity (round), the number of ciphertexts needed to compare two integers (C-num) and communication overhead (com(bits)). Besides, an instance is given in the com-eg row by setting η=30,b=2,d=8,k=10,N=100,|n|=3072,ι=40\eta=30,b=2,d=8,k=10,N=100,|n|=3072,\iota=40 to show the differences.

Table 3: Performance comparisons with related schemes.
 – Fischlin DGK StrainStrain Our scheme
round 6 4 4 4
C-num ηι\eta\iota η\eta ηι\eta\iota kk
com(bits) ηι|n|N\eta\iota|n|N η|n|N\eta|n|N ηι|n|N\eta\iota|n|N k|n|Nk|n|N
com-eg(KB) 45000 1125 45000 375

Here, we note that StrainS\!train is not suitable for a large auction scheme since it may need to create a transaction with heavy payload (not counting NIZK messages, 4MB for 10 bidders and 40MB for 100 bidders) while a light transaction less than 400KB is required in our scheme. An auction can be done in 5 blocks (an additional block to broadcast the winner) in several minutes considering there may be complaints submitted. If there is a complaint, the auctioneer 𝐀\mathbf{A} needs to handle it and publishes complaint result in another block wasting a block of time. At the beginning of the auction, the auctioneer 𝐀\mathbf{A} can set a deadline (e.g. several blocks in the future) for bidders to submit commitments and deposits similar to registration in the real. Then, each bidder 𝐁𝐢\mathbf{B_{i}} submits a commitment to his bid via a transaction transferring some deposits to 𝐀\mathbf{A}. The deposits can be redeemed by 𝐁𝐢\mathbf{B_{i}} revealing his bid or refunded by the auctioneer at the end of the auction. Since the auctioneer is assumed to be semi-honest, the honest bidders will not lose their deposits.

6 Conclusions

In this paper, three-party comparison protocols are given, which are executed among a judge and two competitors. The judge learns the comparison results and the ranking while protecting the private integers of competitors. As applications of three-party comparisons, multi-party integer comparisons including joint bidding and online auction, are presented. All schemes run in a constant number of blocks with the help of blockchain. Besides, blockchain-based commitment is used to encourage the competitors to perform correctly. Security proofs of the comparisons are also given. The complexity analysis of the auction shows that our scheme performs well with lower communication overhead and comparable time cost, compared with related designs.

References

  • [1] Yao AC. How to Generate and Exchange Secrets (Extended Abstract). In: 27th Annual Symposium on Foundations of Computer Science. IEEE Computer Society, 1986 pp. 162–167.
  • [2] Kolesnikov V, Sadeghi A, Schneider T. Improved Garbled Circuit Building Blocks and Applications to Auctions and Computing Minima. In: Cryptology and Network Security, CANS 2009, Proceedings, volume 5888. Springer, 2009 pp. 1–20.
  • [3] Applebaum B, Ishai Y, Kushilevitz E, Waters B. Encoding Functions with Constant Online Rate or How to Compress Garbled Circuits Keys. In: Advances in Cryptology - CRYPTO 2013 - Proceedings, volume 8043. Springer, 2013 pp. 166–184.
  • [4] Chou T, Orlandi C. The Simplest Protocol for Oblivious Transfer. In: LATINCRYPT 2015 - 4th International Conference on Cryptology and Information Security in Latin America, Proceedings, volume 9230. Springer, 2015 pp. 40–58.
  • [5] Fischlin M. A Cost-Effective Pay-Per-Multiplication Comparison Method for Millionaires. In: CT-RSA 2001, Proceedings, volume 2020. Springer, 2001 pp. 457–472.
  • [6] Damgård I, Geisler M, Krøigaard M. Efficient and Secure Comparison for On-Line Auctions. In: Information Security and Privacy, 12th Australasian Conference, ACISP 2007, Proceedings, volume 4586. Springer, 2007 pp. 416–430.
  • [7] Carlton R, Essex A, Kapulkin K. Threshold Properties of Prime Power Subgroups with Application to Secure Integer Comparisons. In: CT-RSA 2018 - Proceedings, volume 10808. Springer, 2018 pp. 137–156.
  • [8] Abspoel M, Bouman NJ, Schoenmakers B, de Vreede N. Fast Secure Comparison for Medium-Sized Integers and Its Application in Binarized Neural Networks. In: CT-RSA 2019 - Proceedings, volume 11405. Springer, 2019 pp. 453–472.
  • [9] Bourse F, Sanders O, Traoré J. Improved Secure Integer Comparison via Homomorphic Encryption. In: CT-RSA 2020 - Proceedings, volume 12006 of Lecture Notes in Computer Science. Springer, 2020 pp. 391–416.
  • [10] Eskeland S. Privacy-Preserving Greater-Than Integer Comparison without Binary Decomposition. In: Proceedings of the 17th International Joint Conference on e-Business and Telecommunications, ICETE 2020 - Volume 2: SECRYPT. ScitePress, 2020 pp. 340–348.
  • [11] Goldreich O, Micali S, Wigderson A. How to Play any Mental Game or A Completeness Theorem for Protocols with Honest Majority. In: Proceedings of the 19th Annual ACM Symposium on Theory of Computing, 1987, New York, New York, USA. ACM, 1987 pp. 218–229.
  • [12] Brandt F. Fully Private Auctions in a Constant Number of Rounds. In: Financial Cryptography, 7th International Conference, FC 2003, volume 2742. Springer, 2003 pp. 223–238.
  • [13] Galal HS, Youssef AM. Verifiable Sealed-Bid Auction on the Ethereum Blockchain. In: Financial Cryptography and Data Security - FC 2018 International Workshops, volume 10958. Springer, 2018 pp. 265–278.
  • [14] Tian Y, Song B, Ma T, Al-Dhelaan A, Al-Dhelaan M. Bi-Tier Differential Privacy for Precise Auction-Based People-Centric IoT Service. IEEE Access, 2021. 9:55036–55044.
  • [15] Teja PR, Mishra PK. Sealed Bid Single Price Auction Model (SBSPAM)-Based Resource Allocation for 5G Networks. Wirel. Pers. Commun., 2021. 116(3):2633–2650.
  • [16] Ni T, Chen Z, Xu G, Zhang S, Zhong H. Differentially Private Double Auction with Reliability-Aware in Mobile Crowd Sensing. Ad Hoc Networks, 2021. 114:102450.
  • [17] Sarenche R, Salmasizadeh M, Ameri MH, Aref MR. A secure and privacy-preserving protocol for holding double auctions in smart grid. Inf. Sci., 2021. 557:108–129.
  • [18] Sánchez DC. Raziel: Private and Verifiable Smart Contracts on Blockchains. CoRR, 2018. abs/1807.09484. URL http://arxiv.org/abs/1807.09484.
  • [19] Kosba AE, Miller A, Shi E, Wen Z, Papamanthou C. Hawk: The Blockchain Model of Cryptography and Privacy-Preserving Smart Contracts. In: IEEE Symposium on Security and Privacy, SP 2016. 2016 pp. 839–858.
  • [20] Goldwasser S, Micali S. Probabilistic Encryption and How to Play Mental Poker Keeping Secret All Partial Information. In: Proceedings of the 14th Annual ACM Symposium on Theory of Computing. ACM, 1982 pp. 365–377.
  • [21] Boneh D, Franklin MK. Efficient Generation of Shared RSA Keys (Extended Abstract). In: Advances in Cryptology - CRYPTO ’97, Proceedings, volume 1294. Springer, 1997 pp. 425–439.
  • [22] Blass E, Kerschbaum F. Strain: A Secure Auction for Blockchains. In: Computer Security - 23rd European Symposium on Research in Computer Security, ESORICS 2018, Proceedings, volume 11098. Springer, 2018 pp. 87–110.
  • [23] Ma J, Qi B, Lv K. Fully private auctions for the highest bid. In: Proceedings of the ACM Turing Celebration Conference - China, ACM TUR-C 2019. ACM, 2019 pp. 64:1–64:6.
  • [24] Ma J, Qi B, Lv K. Constant-round Auction with Insulated Bidders. SCIENCE CHINA Information Sciences. URL https://www.sciengine.com/publisher/scp/journal/SCIS/doi/10.1007/s11432-019-2666-8?slug=abstract.
  • [25] Lorange P, Contractor F. Cooperative Strategies In International Business. volume 14. 1989 pp. 465–467.
  • [26] Andrychowicz M, Dziembowski S, Malinowski D, Mazurek L. Secure Multiparty Computations on Bitcoin. In: 2014 IEEE Symposium on Security and Privacy, SP 2014. IEEE Computer Society, 2014 pp. 443–458.
  • [27] Schoenmakers B, Tuyls P. Practical Two-Party Computation Based on the Conditional Gate. In: Advances in Cryptology - ASIACRYPT 2004, Proceedings, volume 3329. Springer, 2004 pp. 119–136.
  • [28] Sander T, Young AL, Yung M. Non-Interactive CryptoComputing For NC1{}^{\mbox{1}}. In: 40th Annual Symposium on Foundations of Computer Science, FOCS ’99, 17-18 October, 1999, New York, NY, USA. IEEE Computer Society, 1999 pp. 554–567.
  • [29] Ogata W, Kurosawa K, Sako K, Takatani K. Fault tolerant anonymous channel. In: Information and Communication Security, First International Conference, ICICS’97, Proceedings, volume 1334. Springer, 1997 pp. 440–444.
  • [30] Reiter MK, Wang X. Fragile mixing. In: Proceedings of the 11th ACM Conference on Computer and Communications Security, CCS 2004. ACM, 2004 pp. 227–235.
  • [31] Katz J. Efficient and Non-malleable Proofs of Plaintext Knowledge and Applications. In: Advances in Cryptology - EUROCRYPT 2003, Proceedings, volume 2656. Springer, 2003 pp. 211–228.
  • [32] Guillou LC, Quisquater J. A Practical Zero-Knowledge Protocol Fitted to Security Microprocessor Minimizing Both Transmission and Memory. In: Advances in Cryptology - EUROCRYPT ’88, Proceedings, volume 330. Springer, 1988 pp. 123–128.