Ⅰ. 서론
경매(auction)는 비즈니스 세계에서 많은 양의 거래를 협상하기 위한 규범들 중의 한가지이지만, 소비자 판매 또는 소량의 구매는 경매 이용으로 인한 오버헤드가 높기 때문에 보통 고정된 가격으로 거래된다. 하지만 인터넷상의 새로운 경제 형태는 소규모 거래에 경매의 적용을 가능하게 한다.
일반적으로 경매 형태에는 English open cry, Dutch open cry, sealed-bid, Vickrey 경매와 같은 다양한 형태의 기법들이 있으며, 이들 경매 기법들은 각기 다른 목적을 달성하기 위해 다양한 상황에서 적용되고 있다. 그 중에서 sealed-bid 경매기법은 입찰자(bidder)와 경매인(auctioneer)의 공모(collusion)로부터 개별적인 입찰자들의 이익을 보호하기 위해 보편적으로 사용되는 경매 형태이다. sealed-bid 경매는 광고된 상품에 대해 비밀입찰가(bid)가 제출되고, 입찰 기간이 종료되면 입찰가를 열어 공개된 경매 규칙에 의해 승리자가 결정되는 기법으로, sealed-bid 경매의 기본적인 안전성 요구 사항은 다음과 같다.
- 입찰가의 비밀성(secrecy of bids) : 승리자의 입찰가를 제외한 어떤 입찰가도 노출되지 말아야 한다.
- 검증 가능성 (verifiability) : 누구라도 경매의 결과를 검증할 수 있어야 한다.
- 부인 방지(nonTepudiation) : 입찰자는 자신의 입찰을 부인할 수 없어야 한다.
- 익명성(anonymity) : 승리자를 제외한 입찰자의 신분이 노출되지 말아야 하며, 입찰자와 입찰가의 관계가 알려지지 말아야 한다.
경매 프로토콜에 관한 초기 연구 중의 하나는 Franklin-Reiter⑹의 프로토콜이다. 이 기법은 프로토콜이 종료될 때까지만 입찰의 기밀성이 보장된다는 점에서 완전한 프라이버시(privacy)를 제공하지 않는다. 그리고 Harkavy-Tygar-Kikuchi⑻의기 법은 완전한 프라이버시를 제공하지만 입찰자의 과도한 참여 (intensive bidder involvement)를수반하며 다른 경매 형태로 쉽게 적용될 수 없다. Cachin(2)의 프로토콜은 두 개의 서버를 가지며 입찰자들 간의 통신을 요구하고. Sako"3)의 기법은 privacy-preserving Dutch-style 경매 프로토콜로 입찰자가 자신의 입찰가를 공개하는 형태이며 매우 높은 계산량을 가지고 다른 형태의 경매로 확장이 불가능하다. Jakobsson-Juels⑼ 프로토콜은 비트 단위 조작을 수반하는 함수(대표적인 예 : 경매) 에 대해 general secure multi-party computation 을 효율적으로 하는 것을 목적으로 하고, Baudron-Stern(1)의 기법은 하나의 서버만을 가지며 서버와경매인간에 공모가 없다는 조건 하에 안전성을 보장하지만 다소 많은 계산량을 가진다.
최근에 Naor-Pinkas-Sumner[11]에 의해 제안되고 구현된 경매 기법은 분산된 신뢰를 가진 실제적인 sealed-bid 경매 프로토콜 연구에 상당한 진전을 가져왔다. 이 기법은 경매 issuer라는 제3자(third party) A를 가지며. 판매자 S와 저]3자 A가 공모하지 않는다면 불필요한 정보는 노출되지 않는다. 이 기법은 Yao[14]의 secure two-party computation 모델에 기반하며, A는 암호화된 서킷 (garbled circuit) 을 구성하여 S에게 전달하며, S가 서킷을 계산하는 것을 돕는다. 서킷은 모든 가능한 안전성 요구 사항을 만족하도록 구성될 수 있다. 이 기법의 목적은 두 서버로 신뢰를 분산시키는 것이다. 하지만 이 기법의 단점은 4와 S간의 서킷 전송이 많은 통신 복잡도를 함축하며 부정한 제3자가 cut-and-choose 기법에 의해서만 검출될 수 있다는 것으로 이것은 프로토콜에 심각한 오버헤드를 초래한다. 또다른 단점은 서킷이 입찰자의 최대 수에 의존하므로 판매자는 경매 수행 전에 비교적 정확하게 입찰자의 수를 추정해야 한다는 것이다. 최근에 발견된 Naor-Pinkas-Sumner 기법의 안전성에서의 심각한 취약점은 A 가 입찰가의 임의의 비트를 수정할 수 있다는 것이고, 이 취약점을 개선한 기법이 Juels-Szydlo[10]에 의해 제안되어졌다.
본 논문에서는 두 서버 S와 A 를 가진 안전한 sealedbid 경매 프로토콜을 제안한다. 여기서 서버 S는 물품을 판매하기 위해 경매를 구성하는 개체이고, 서버 A는 다수의 S에 의해 수행되는 많은 경매를 제공할 수 있는 서비스 제공업자이다. 제안된 경매 프로토콜은 Crescenzo-Ostrovskey-Rajagopalan[4]의 Conditional Oblivious Transfer(COT) 프로토콜에 사용된 기술을 이용한다. COT 프로토콜은 추가적인 비밀 입력 d(전송자의 비밀)와 t(수신자의 비밀)에 대해 공유된 predicate가 만족되면 전송 자가수신자에게 비트 b를 전송하는 프로토콜로, 본 논문에서는 COT 프로토콜에 사용된 기술을 이용하여 기존의 경매 기법들에 비해 매우 낮은 계산 복잡도를 가지며 유사한 통신 오버헤드를 가지는 효율적인 경매 프로토콜을 구성한다. 제안된 프로토콜에서 서버 A는 신뢰되는 제3자가 아니고 서버 S와 공모하지 않는다고 가정한다. 이러한 가정하에서 제안된 프로토콜은 어느 개체들도 입찰가에 대한 어떠한 정보도 얻지 못하고 경매의 결과는 정확하다는 것을 보장한다. 그리고 제안된 기법의 통신 패턴은 일반적인 안전하지 않은 경매 프로토콜과 동일하다. 즉, 각 입찰자는 판매자 S에게만 메시지를 전송하고 서버 A 또는 다른 입찰자들과는 통신하지 않으며, 각 입찰자는, 에게 하나의 메시지만을 전송한다.
본 논문의 구성은 다음과 같다. 먼저 2장에서는 제안된 경매 프로토콜에 사용되는 기본적인 구성 요소들에 대해 기술하고 3장에서 새로운 경매 프로토콜을 제안하고 제안된 기법의 특징을 분석한다. 또한 계산량과 통신량 관점에서 기제안된 Naor-Pinkas-Sumner의 기법과 비교 분석한다. 마지막으로 4장에서는 결론을 맺는다.
Ⅱ. 구성 요소들
2.1 이차 잉여Quadratic Residuosity) 가정과 Goldwasser-Micali 암호화 기법
#를 x보다 작고 x와 서로 소인 양의 정수들의 곱셈 군(multiplicative group)이라고 하자. #가 법(modulo) x에 관한 이차 잉여(quadratic residue) 일 필요충분조건은 r2 = y mod X을 만족하는 # 이 존재하는 것이다. 그렇지 않다면 y를 법 x에 관한 이차 비잉여(quadratic non residue)라고 한다. 이차 잉여 predicate를 다음처럼 정의한다.
#
소수 P 에 대해 이차 잉여를 결정하는 문제는 Legendre 기호(symbol)를 계산하는 문제와 동치이다. 소수 p와 #에 대해 y mod p의 Legendre 기호 (y|p)는 다음처럼 정의되고, 이것은 Euler's criterion 을 사용하여 다항식 시간 안에 계산될 수 있다.
#
Euler's criterion과 다음의 사실에 의해 정수 x 의 소인수 분해가 알려져 있는 경우 법 x에 관한 이차 잉여를 결정하는 효율적인 알고리즘이 제공된다.
[사실 1]
y가 법 x에 관한 이차 잉여가 될 필요충분조건은 y가, 의 소인수 각각의 법에 대해 이차 잉여이다. 소인수 분해가 알려져 있지 않는 경우 이차 잉여에 관한 힌트가 Jacobi 기호 (y|x)에 의해 주어질 수 있으며, Jacobi 기호는 x의 소인수 분해가 알려져있지 않는 경우에도 다항식 시간 안에 계산될 수 있다. Jacobi 기호 (y|x) = -1 이면 y는 법 x에 관한 이차 비잉여이지만, Jacobi 기호가 +1 이면 이차 잉여를 결정하기 위한 효율적인 알고리즘은 알려져 있지 않다. 이 경우 가장 빠른 방법은 x를 소인수 분해한 후 QRx(y)를 계산하는 것이다.
#은 (y|x) = +1 인 정수 #의 집합이고, QRx와 NQRx는 각각 Jacobi 기호 + 1 을 가진 법 x 에 관한 이차 잉여와 법 X에 관한 이차 비잉여의 집합이다.
[정의 1] 이차 잉여 가정
각각의 효율적인 nonuniform 알고리즘 Q= (Qn), 모든 상수 d, 모든 충분히 큰 n에 대해,
#
즉, 어떤 효율적인 알고리즘도 랜덤 추측(random guessing)보다 좋은 확률로 이차 잉여 predicate의 값을 추측할 수 없다
여기서 BL은 Blum 정수(integer)의 집합을 나타내고, BL3을 길이 n의 Blum 정수들의 부분 집합이라고 한다.
Goldwasser-Micali(GM)171 암호화 기법은 1984 년에 제안된 확률적 암호화 기법으로 안전성이 정의 1의 이차 잉여 가정에 기반한다. 기본적인 GM 암호화 기법의 공개키는 같은 길이의 두 소수 와 g의 곱인 랜덤한 정수 x와 Jacobi 기호 +1을 가진 법 X에 관한 이차 비잉여인 y로 구성된다. 개인 복호화 키는 두 소수 p와 g로 구성된다. 암호화는 비트 단위로 수행된다. 즉, '0' 비트는 법 x에 관한 이차 잉여로 암호화되고, T 비트는 Jacobi 기호 +1을 가진 법 X에 관한 이차 비잉여로 암호화된다. 암호문의 각 비트의 이차 잉여 여부가 평문의 비트 값을 나타낸다.p와 g의 지식은 Zx에서 원소의 이차 잉여 여부에 대한 결정을 효율적으로 가능하게 한다. 정의 1의 이차 잉여 가정이 어렵다는 가정하에서 GM 암호화 기법은 의미론적 안전성(semantic security)를 제공한다.
GM_E(x, y, m)을 (x, y)를 사용하여 계산된 m 의 암호문을 반환하는 알고리즘이라 하고, GM_D(p, q, c)를 x의 소인수 p와 q를 사용하여 계산된 암호문 c의 복호된 값을 반환하는 알고리즘이라 한다.
2.2 Conditional Oblivious Transfer
Oblivious Transfer(OT)는 1982년 Rabin[12]에 의해 처음 제안되어졌다. OT는 두 다항식 시간 개체인 Alice와 Bob 사이의 게임으로, Alice는 Bob이 1/2의 확률로 메시지를 수신하도록 메시지를 전송하기 원하고, Alice는 Bob이 메시지를 수신했는지 하지 않았는지를 알 수 없다.
OT의 변형인 Conditional Oblivious Transfer (COT)는 1999년 Crescenzo-Ostrovskey-Raja-gopalan[4]에 의해 제안되었다. COT에서 Bob과 Alice는 각각 비밀 입력을 가지며, 비밀 입력으로 계산되고 다항식 시간안에 계산 가능한 공개된 predicate를 공유한다. Alice로부터 Bob으로의 비트 3의 COT는 다음의 요구 사항을 가진다. predicate가 성립하면, Bob은 성공적으로 비트 3를 수신하며, predicate가 성립하지 않으면, Bob은 비트 에 관한 어떤 정보도 얻지 못한다. 또한 프로토콜을 수행하는 동안 어떤 효율적인 전략도 Alice가 predicate의 실제 값을 계산하는데 도움을 주지 못한다.
k 비트의 두 sequence, t1,…,tk와 d1,…,dk가 주어지면, predicate GE는 다음처럼 정의된다: GE(t1, …,tk, d1,…,dk)=1일 필요 충분 조건은 (t1。…。tk) ≥ (d1。…。dk)이다. 여기서 。은 스트링의 연결을 나타내고 스트링 t1。…。tk 와 d1。…。dk는 정수로 해석된다.
[정의 2] Conditional Oblivious Transfer
Alice와 Bob은 시큐리티 파라메터(security parameter) n 에서 다항식 시간으로 동작하는 두 개의 확률적인 튜링 머신(probabilistic Turing machine) 이다.xA 와 xB는 각각 Alice와 Bob의 비밀 입력이다. b는 Alice가 Bob에게 전달하기 원하는 비밀 비트이다 g( . , . )는 다항식 시간안에 계산 가능한 predicate 이다. 다음을 만족하는 상수 c 가 존재하면 (Alice, Bob)은 predicate q 에 대한 conditional oblivious transfer 프로토콜이다.
ⅰ. 전송 검증: q(xA, xB) = 1이면, 각 b∈{0, 1}에 대해, 다음이 성립한다.
#
ⅱ. Bob에 대한 안전성 : q(xA, xB) = 0 이면, 임의의 Bob'에 대해 확률 변수 X0와 X1은 equally distributed이다 b∈{0, 1}에 대해,
#
ⅲ. Alice에 대한 안전성 : 임의의 Alice' 에 대해, 다음을 만족하는 효율적인 시뮬레이터 M이 존재한다 임의의 상수 c와 임의의 충분히 큰 n에 대해,|p0-p1|≤n-c 가 성립한다
#
#
predicate GE에 대한 COT 프로토콜은 다음과 같이 동작한다: 프로토콜 시작시에 Alice는 비밀키로 k-비트 스트링 t= (t1,…,tk)를 가지고, Bob은 비밀키로 S비트 스트링 d= (d1,…,dk)를 가진다. b는 Alice가 Bob에게 전송하기 원하는 비트이다. 먼저 Bob은 자신의 공개키로 Blum 정수 x와 k쌍 (tuple) (D1,…,Dk)를 계산한다. 여기서 Di= ri2 yd modx이고, ri는 # 에서 랜덤하게 선택된 값이고 di는 Bob의 비밀키의 비트이다. 유사하게 Alice는 자신의 공개키로 정수 ti,…,tk∈#을 계산한다. 여기서 Ti가 이차 비잉여일 필요충분조건은 ti = l이다. COT 프로토콜 (A , B)에서 정수 y의 역할을 하기 위해 적절히 계산된 Ti와 Di의 곱을 사용한다(부록 참고). 여기서 곱은 비트 스트링 상의 predicate GE를 표현하는 부울 표현(boolean expression)에 의해 계산된다. 이것의 구현은 θ(k2) 모듈러 곱셈(modular multiplication)을 요구한다.
COT 프로토콜의 상세한 사항은 부록에 기술된다. 이 COT 프로토콜은 정의 2에서의 3가지 성질, 즉 전송 검증, Bob과 Alice에 대한 안전성을 만족한다. 3절에서 Crescenzo-Ostrovskey-Rajagopalan의 COT에 사용된 기법을 적용한 효율적이면서 안전한 sealed-bid 경매 프로토콜을 제안한다.
Ⅲ. 두 서버를 가진 효율적인 sealed-bid 경매 프로토콜
이 장에서는 앞에서 기술된 COT를 응용한 효율적인 경매 프로토콜을 제안한다. 제안된 경매 프로토콜은 판매자 S와 제3자 A의 두 서버를 가지는 sealedbid 경매 프로토콜로써, 2절에서 언급한 COT에서 사용한 기술을 입찰가 비교 과정에 이용한다. 제안된 프로토콜에서 두 서버 A와 $는 각각 COT에서 Alice 와 Bob의 역할을 수행하며, COT에서 predicate GE가 만족되는지 판단하는 과정에 사용된 기술을 응용하여 원래의 입찰가를 노출하지 않고 암호화된 두 입찰가를 비교한다. 제안된 프로토콜은 두 서버가 공모하지 않는다면 어떤 개체도 입찰가에 대한 어떠한 정보도 얻을 수 없으며, 경매의 결과는 정확하다는 것이 보장된다.
제안된 프로토콜에서는 암호화된 두 입찰가를 비교하여 원래의 입찰가가 노출되는 것을 방지한다. 이를 위해 원래의 입찰가에 GM 암호화 기법을 적용하여 입찰가를 암호화한다.
3.1 제안된 경매 프로토콜
입찰자 B의 입찰가 b는 k비트 값, b=(b1,…,bk)이다. (NM_G, NM_E, NM_D)는 non-malleable 암호화 기법⑸이고 에 의해 암호화를 위한 비밀키와 공개키 쌍(NM_sk, NM_pk)이 생성된다. ( Gen, Sig, Ver)는 안전한 전자 서명 기법이고 Gen에 의해 서명 생성키와 서명 검증키 쌍 (s-sk, s-pk)이 생성된다.
3.1.1 경매 공고 및 초기화
서버 S는 판매할 물품. 서버 A의 ID, 경매 규칙 등을 공고한다. 각 입찰자 Bi는 Gen 을 수행하여 서명 생성키와 검증키 쌍 (Bs-ski, Bs-pki)를 생성하여 Bs-pki를 공개한다. 유사하게 서버 A는 알고리즘 NM_G를 수행하여(Nm)pk,NM_sk) 쌍을 생성하고, Gen 을 수행하여 서명 생성키와 검증키 쌍(As—sk, As-pk)를 생성하여 NM_pk와 As-pk를 공개한다. 서버 S는 p≡q≡3 mod 4인 두 개의 # 비트 소수 p와 q를 랜덤하게 선택하여 X = pq을 계산하고, Gen 을 수행하여 서명 생성키와 검증키 쌍( Ss-sk, Ss-pk)를 생성하여 x와 Ss-pk를 공개한다.
3.1.2 입찰가 제출
[단계 2.1]
입찰자 Bi는 k비트 입찰가 b=(b1,…,bk)를 S의 공개키로 GM 암호화 알고리즘을 이용하여 Di = (d1,…,dk)로 다음처럼 암호화한다.
#
[단계 2.2]
Di를 A의 공개키로 암호화하고, Di에 대한 서명을 생성한다.
#
[단계 2.3]
Bi는 (Ci, Sdi) 를 S에게 전송한다.
3.1.3 입찰가 비교
[단계 3.1]
S는 수신된 모든 G들을 랜덤한 순서로 서버 A 에게 전달하고 G의 리스트와 자신의 서명 Sig(Ss-sk, ( C1∥C2∥…∥Cm))을 공개한다. 여기서 m은 입찰자의 수를 나타낸다.
[단계 3.2]
A는 수신된 G들에 대한 서명 Sig(As-sh, (C1∥C2∥…∥Cm))을 공개한다. 각 Ci들을 복호화한다.
#
수신된 Ci들의 순서를 랜덤하게 치환시킨 후 치환된 순서를 비밀로 유지한다. A는 토너먼트 방식으로 입찰가들을 비교한다. m명의 입찰자들에 대해 [log 2m]번의 입찰가 비교 라운드를 수행한다. 첫 번째 라운드에서 처음 제시된 입찰가 중에서 두 개씩 선택하여 비교한다. 두 번째 라운드에서는 첫 번째 라운드에서의 승리자에 대해 비교 과정을 수행한다. 이 과정을 [ log2m ]번 수행한다. 라운드 회수 R을 1로 설정한다.
[단계 3.3]
R 번째 라운드에서 A는 /번째 입찰가 D=(d1,…,dk)와 j번째 입찰가 T=(ti,…,tk)를 선택한다. 여기서i,j∈1,…,[m/2R-1]), i≠j이다. 각 라운드에서i와 j는 한번만 선택된다. l을 1로 설정한다.
[단계 3.4]
A는 D와 T의, l번째 비트 비교를 위한 #을 계산하여 S에게 전송한다.
#
[단계 3.5]
S는 A에게 비교 결과인 flag를 전송한다.
#
[단계 3.6]
A는 수신된 flag에 따라 다음처럼 동작한다.
#
[단계 3.7]
S는 A 에게 비교 결과인 flag를 전송한다.
#
[단계 3.8]
4는 수신된 flag를 검사한다. 만약 flag가 'GT' 이면, j번째 입찰가 T가 i번째 입찰가 D보다 크다. 만약 flag가 'LT'이면, i번째 입찰가 D가, j번째 입찰가 T보다 크다. flag가 'Equal' 이면, 두 입찰가는 같다.
[단계 3.9]
A는 입찰가의 모든 (i,j) 쌍에 대해 단계 3.3 부터 반복 수행한다.
[단계 3.10]
R번째 라운드에서 승리한 입찰가들의 인덱스와 인덱스에 대한 서명을 S에게 전송한다. 여기서 입찰가들의 인덱스는 단계 3.2에서 A가 수신한 입찰가들의 순서에서 인덱스이다. A는 R=R+1 로 설정한 후 최종 승리자가 결정될 때까지 승리한 입찰가들에 대해 단계 3.3을 계속 수행한다.
3.1.4 승리자의 입찰가 공개
[단계 4.1]
A는 최종 승리자의 인덱스를 S에게 전송한다.
[단계 4.2]
S는 승리자 Bwin의 IDwin과 암호화된 입찰가의 서명 을 4에게 전송한다.
[단계 4.3]
A는 Dwin의 서명 Sdwin을 검증한 후 승리자의 암호화된 입찰가 Dwin과 자신의 서명 Sig(As-sk, (IDwin∥Dwin)을, s에게 전송한다.
[단계 4.4]
S는 Sig(As-sk, IDwin∥Dwin)) 와 Sdwin을 검증한 후에 Dwin을 복호화하여 bwin = (b1,…,bk)을 계산한다. S IDwin, bwin, Dwin, Sdwin, Sig(As-sk, (IDwin∥Dwin)), Sig(Ss-sk, (IDwin∥bwin))}를 공개한다.
두 개의 암호화된 입찰가 D=(d1,…,dk)와 T=(t1,…,tk)의 비교 과정에서, -dltl mod x가 법 x에 관한 이차 비잉여이면 두 암호화된 입찰가의 l번째 비트는 같다. 그리고 -(tl)2dl mod x가 법 x에관한 이차 비잉여이면 T의 l번째 비트가 D보다 크다. 그러므로 A 와 S는 원래의 입찰가를 노출하지 않고 암호화된 입찰가를 비교할 수 있다.
3.2 제안된 기법 분석
제안된 sealed-bid 경매 프로토콜은 다음과 같은 특징을 가진다.
- 통신 패턴 : 제안된 프로토콜의 통신 패턴은 안전하지 않은 일반적인 경매와 동일하다. 즉 입찰자는 경매인 S와만 통신하고 A 또는 다른 입찰자와 통신하지 않는다. 각 입찰자는 S에게 하나의 메시지만을 전송한다.
- 다른 형태의 경매로 적응성 (auction adaptability) : 제안된 경매 프로토콜은 작은 오버헤드로 Vickrey 경매와 같은 다른 형태의 경매로 적용가능하다.
- 프라이버시 : 제안된 프로토콜은 두 서버 중 한 서버와 임의의 수의 입찰자를 제어할 수 있는 공격자에 대해 프라이버시를 제공한다. 그러한 공격자에게 노출되는 정보는 경매의 결과이다. 입찰자는 자신의 입찰가를 GM_E()와 NM_E()로 이중암호화함으로써 입찰가를 숨긴다. S는 NM_E()로 암호화된 입 찰가를 수신하고 A는 GAf_E()로 암호화된 것을 수신하기 때문에. S와 A는 입찰가를 알지 못한다. 제안된 프로토콜에서 입찰가의 프라이버시는 GM 암호화 기법과 non-malleable 암호화 기법의 안전성에 의존한다. 그렇지만 S와 A는 입찰가의 비교 과정에서 입찰가에 대한 부분정보를 얻을 수 있다. 단계 3.5에서 -dltl mod x 가 법 x에 관한 이차 비잉여이면 두 암호화된 입찰가의 /번째 비트가 같다는 것을 안다. 그러나 l 번째 비트가 '1' 또는 '0'인지는 알지 못한다. 또한 단계 3.7에서 -(tl)2dl mod x가 법 x에 관한 이차 비잉여이면 tl이 dl보다 크다는 것을 알 수 있다. (이 경우 tl은 '1'이고 di은 '0'이다). 그렇지만 단계 3.7은 두 입찰가 비교 과정에서 단지 한번만 수행되므로l번째 비트를 제외한 나머지 비트에 관한 정보를 얻을 수 없다. 더욱이 단계 3.1에서 입찰가들이 랜덤한 순서로 A에게 전송되고 A 또한 랜덤하게 치환된 순서로 두 입찰가를 비교하므로, S와 A는 실제 입찰자와 부분 정보를 관련시킬 수 없다.
- 부인 방지 : 입찰자 Bi는 자신의 서명 Sdi로 인해 입찰을 부인할 수 없다.
- 검증 가능성 : 단계 3.1에서 S는 Ci의 리스트와 자신의 서명을 공개하고 A 또한 그 리스트의 서명을 공개한다. 그러므로 각 입찰자는 자신의 입찰가가 리스트에 포함되어 있는지를 검사할 수 있다. 더욱이 각 입찰자는 승리자의 입찰가와 자신의 입찰가를 비교함으로써 경매의 결과를 검증할 수 있다. 만약 자신의 입찰가가 더 높다면, 자신의 입찰가(b1,…,bk)와 이것의 암호화된 값 (d1,…,dk) 계산에 사용된 (r1,…,rk), Sdi를 공개하여 자신이 승리자라고 주장할 수 있다. S와 4는 단계 4.4에서 경매의 결과에 대해 서명을 하기 때문에 분쟁이 발생하면 자신들의 잘못을 부인할 수 없다.
- 익명성 : 제안된 프로토콜은 입찰자의 익명성을 제공하지 않는다. 하지만 입찰자가 경매 사이트에 등록한 후 경매에 참여하는 인터넷 상의 경매를 고려해보면, 제안된 프로토콜에서도 입찰자는 경매에 참여하기 전에 서버 A에 등록한 후 경매에 참여해야 한다. 이 등록 과정에서 입찰자는 실제 ID 대신 임시 ID를 얻어 경매에 참여할 수 있다. 이 경우 판매인 S는 입찰자에 관한 정보를 얻을 수 없게 된다. 하지만 이것은 서버 A에 대한 추가적인 신뢰를 요구하게 된다. 서버 4는 암호화된 입찰가를 가지므로 입찰자와 실제 입찰가를 관련시킬 수 없다.
- 암호화 기법의 안전성 : 입찰자가 non-malleable 암호화 기법을 사용하여 S에게 입찰가를 제출하는 것은 중요하다. 그러한 암호화 기법은 S가 암호문을 수정하여 평문에서 의미있는 변화를 유발하는 것을 방지한다⑸.
- 재연 공격 방지 : 이전에 수행된 경매로부터의 입찰가를 새로운 경매에 그대로 제출하는 재연 공격을 방지해야 한다. 이것은 경매에 판매자 S의 ID, 날짜와 같은 경매에 유일한 식별자을 추가함으로써 쉽게 처리될 수 있다. C, 계산시에 이 값을 추가하여 암호화한다. non-malleability 성질이 경매의 식별자가 수정될 수 없다는 것을 보장한다.
- 부정한 서버 검출 : S 또는 A가 입찰자와 공모하면, S 또는 A는 특정 입찰자를 항상 승리자로 만들거나 입찰가 비교 과정에서 부정확한 값을 전달함으로써 계산을 방해할 수 있다. 제안된 프로토콜에서 S는 이 어떤 입찰자에 관련되는지를 식별할 수 없기 때문에 S는 특정 입찰자를 승리자로 만들 수 없다. 또한 A는 S가 정확히 동작하고 있다는 것을 검증할 수 있다. 이를 위해 A는 랜덤하게 두 값 u=(u1,…,uk)와 v=(v1,…,vk)를 선택하여 비교 단계를 수행한다. A는 이 과정을 비교 단계에서 랜덤하게 적절한 회수로 수행한다. 한번이라도 부정이 검출된 S는 신뢰를 상실하게 되고 그 이후에 경매 참가가 제한된다. A가 3특정 입찰자Bi를 승리자로 만들기 위해서는 단계 3.8 에서의flag에 무관하게 를 승리자로 결정한다. 그렇지만 단계 3.10에서 A가 R 라운드에서의 승리자의 인덱스를 S에게 전달하기 때문에 이것이 검출된다. S는 자신은 승리자를 알 수 있게 랜덤하게 C, 들을 생성하여 A의 동작을 검증할 수 있다. S는 원래의 G들와 랜덤하게 선택된 G들 중에서 랜덤하게 선택하여 단계 3.1을 수행한다. 이것을 부정한 A가 검출되지 않은 확률이 충분히 작도록 적절한 회수만큼 수행한다. 한번이라도 부정이 검출된 4는 신뢰를 상실하게 되며 따라서 이러한 부정에 대한 A의 위험에 대한 이익 비율(risk-to-benefit ratio)이 매우 작기 때문에 두 번의 수행만으로도 충분한 것으로 보인다.
3.3 제안된 기법의 계산 복잡도와 통신 복잡도
제안된 기법의 계산 복잡도와 통신 복잡도를 분석한 후 Naor-Pinkas-Sumner[11]의 기법과 비교한다.
Naor-Pinkas-Sumner의 기법은 다음과 같이 동작한다. 경매 issuer A는 경매 프로토콜을 나타내는 암호화된 서킷(garbled circuit)을 구성하고, 경매인 S는 암호화된 입찰가를 사용하여 경매를 위한 서킷을 평가한다. 주어진 입찰가에서 비트 b에 대한 암호화된 입력을 얻기 위해 Proxy OT(Oblivious Transfer) 프로토콜을 수행한다. Proxy OT 프로토콜에서 입찰자는 선택자(Chooser), S는 대리인 (Proxy), A는 전송자(Sender)로 동작한다. 전송자는 입찰가에서 '0' 비트와 T 비트에 해당하는 서킷에 대해 암호화된 입력 (t0, t1)을 전송한다. 선택자는 자신의 입찰가에서 비트 b에 기반하여 tb를 선택하여 전송 프로토콜을 통해 그것을 대리인에게 전송한다. 모든 입찰가의 모든 비트에 대해 이 과정을 수행한 후, 대리인은 입력 입찰가에 관해 서킷을 평가하여 경매의 결과를 결정할 수 있다. Proxy OT의 프라이버시 성질은 대리인이 임의의 비트에 대한 b 또는 t1-b를 알지 못한다는 것을 보장한다. 그러므로 대리인은 입찰 정보에 관해 알지 못하며, 유사하게 전송자 역시 입찰가에 관해 알지 못한다. 대리인과 전송자가 공모하는 경우에만 입찰가에 대한 프라이버시가 손상된다.
제안된 기법의 계산량과 통신 오버헤드 분석을 위해 경매에 참여한 입찰자의 수를 m이라 하고, n은 제안된 기법에 사용된 공개키 암호(GM 암호화 기법, non-malleable 암호화 기법, 전자 서명)의 시큐리티 파라메터라고 하자. k는 입찰의 비트 길이다.
3.3.1 계산 복잡도
〔표 1〕은 제안된 기법과 Naor-Pinkas-Sumner의 기법의 계산 복잡도를 보여준다. 먼저 제안된 경매프로토콜의 계산 복잡도는 다음과 같다. 제안된 경매프로토콜에 m 명의 입찰자가 참가했을 경우 S와 A간의 입찰가 비교 과정은 토너먼트 방법을 사용하기 때문에 총 (m-1)번 수행된다.
[표 1] 제안된 기법과 Naor-Pinkas-Sumner 기법의 계산량 비교
제안된 프로토콜에서 입찰자 Bi의 계산 복잡도를 살펴보면,Bi는 단계 2.1에서 Di = (d1,…,dk) 계산을 위해 k번의 모듈러 제곱(modular square: MOD SQR) 연산을 수행해야 하고, 단계 2.2에서 C, 계산을 위해 k번의 NM_E 암호화 연산이 필요로 하고 Sdi계산을 위해 한번의 서명 생성 연산을 필요로한다.
서버 A는 단계 3.2에서 수신된 입찰가의 복호화를 위해 mk번의 NM_D 복호화 연산을 수행해야 한다. 그리고 S와 두 개의 입찰가를 비교하는 단계 3.4에서 단계 3.8의 과정에서 최악의 경우 k+1) 번의 모듈러 곱셈(modular multiplication: MOD MUL) 연산과 1번의 MOD SQR 연산을 요구한다. 토너먼트 방식에 의한 입찰가 비교 단계(단계 3.2에서 단계 3.9)가 (m-1)번 수행되므로 최종승리자 결정을 위해 총 (m-1) × (k+1) 번의 MOD MUL 연산과 (m-1) 번의 MOD SQR 연산을 요구한다. 마지막으로 단계 3.2에서 모든 Ci들을 수신했을 때 한번의 서명 생성 연산이 필요하고 승리자의 입찰가 공개 과정(단계 4.3)에서 한번의 서명 생성과 한번의 서명 검증 연산이 요구된다.
제안된 프로토콜에서 서버 S는 먼저 단계 3.1 에서 한 번의 서명 생성 연산을 수행한다. 그리고 A 와 두 개 입찰가 비교를 위해 단계 3.4에서 단계 3.8의 과정에서 최악의 경우 (k+1) 번의 GM_D 연산을 필요로하므로, 최종 승리자 결정을 위해 총 (m-1)×(k+1)번의 GM_D 연산을 수행한다. 승리자의 입찰가 공개를 위해 단계 4.4에서 2번의 서명 검증 연산과 k번의 GM_D 복호화 연산 그리고 한번의 서명 생성 연산을 필요로 한다.
Naor-Pinkas-Sumner의 기법에서 졔산 복잡도는 다음과 같다. 먼저 각 입찰자 Bi는 입찰가 제출을 위해k번의 Proxy OT 프로토콜을 수행하므로. 이를 위해k번의 모듈러 지수승(modular exponentiation: MOD EXP) 연산과 k번의 모듈러 나눗셈 (modular division: MOD DIV) 연산을 필요로 하며 2k번의 NM_E 암호화 연산을 수행해야 한다.
a개의 게이트(gate)를 가진 서킷으로 가정할 때 경매 issuer A는 경매를 위한 서킷 준비를 위해 2σ번의 유사랜덤 함수 F( .) 계산을 요구한다. 그리고 Proxy OT 프로토콜에서 전송자로 동작하므로 각 입찰자에 대해 k번의 MOD DIV 연산, 2k번의 ElGamal_E 공개키 암호화 연산, k번의 NM_D 복호화 연산을 필요로 한다.
마지막으로 판매자 S는 Proxy OT 프로토콜에서 대리인으로 동작하며, 이때 각 입찰자에 대해 2k번의 ElGamal_D 공개키 복호화 연산, k번의 NM_D 복호화 연산을 수행해야 한다. 그리고 서킷 평가를 위해 σ번의 유사랜덤 함수 계산을 필요로 한다.
비교를 위해 두 프로토콜에 사용된 기본 연산의 복잡도를 살펴보면, MOD MUL 연산과 MOD DIV 연산의 비트 복잡도는 약 O(m2)이고 MOD EXP 연산은 약 0(n3) 비트 연산의 수행 시간을 가진다. 그리고 GM_D 계산은 Jacobi 기호 계산과 같고 이것은 약 O(m2)의 비트 복잡도를 가진다. 또한 ElGamal_E 암호화는 2번의 MOD EXP 연산을 요구하고 ElGamal_D 복호화는 한번의 MOD EXP 연산, 한번의 MOD DIV 연산, 한번의 MOD MUL 연산을 필요로 한다. 따라서 ElGamaLD 복호화의 비트 복잡도는 약 O(m3)이다. MOD SQR 연산은 MOD MUL 연산보다 작기 때문에 k번의 MOD SQR 연산은 한번의 MOD EXP 연산보다 작은 복잡도를 가진다.
따라서, 〔표 1〕과 위의 기본 연산의 복잡도에 의해 제안된 기법이 입찰자의 계산 오버헤드 관점에서 Naor-Pinkas-Sumner의 기법보다 훨씬 효율적임을 알 수 있다. 그리고 서버 A의 계산량을 비교해보면 Naor-Pinkas-Sumner 기법은 제안된 기법보다 대략 2mk번의 ElGamaLE 암호화 연산을 더 필요로한다. 또한 서버 S의 계산량을 비교해보면, 제안된 기법에서 (mk+m)번의 GM_D 계산(O(m2))은 Naor-Pinkas-Sumner 기법에서 2mk번의 ElGamal_D 복호화 연산(O(n3))보다 훨씬 적은 비용이고, Naor-Pinkas-Sumner 기법은 추가적으로 mk번의 NM_D 연산을 더 요구한다. 따라서, 제안된 경매프로토콜이 계산량적인 관점에서 Naor-Pinkas-Sumner 기법보다 매우 효율적임을 알 수 있다.
3.3.2 통신 복잡도
먼저 제안된 기법의 통신 복잡도를 살펴보면, 제안된 프로토콜에서 각 입찰자 Bi는 입찰가 제출 과정에서만 S 에게 하나의 메시지를 전달하고 A 와는 통신을 하지 않으며, 그 이후의 과정에는 더 이상 참여하지 않는다. 이 과정에서 각 입찰자 Bi는 약 (k+22)n 비트를 S에게 전달해야 한다.
그리고 S와 A간의 통신 복잡도는 다음과 같다. 먼저 입찰가 비교를 위해 S는 nmk 비트를 A에게 전달하고, 최종 승리자를 결정하기까지 S 와 A는 (m-1)번의 통신 라운드를 수행한다. 두 개의 입찰가 비교를 위해 A는 S에게 최악의 경우 (k+1)번의 # 메시지를 전달하고, 각 # 메시지는 n 비트 메시지이므로 (k+1)n 비트가 전송된다. 또한 S는 최악의 경우 (k+1)번의 flag 메시지를 A에게 전송한다. 따라서 (m-1)번의 입찰가 비교 과정을 수행하기 위해 S와 A간에 전송되는 총 비트 수는 (m-1)×(k+1)×(n+g)비트이다. 여기서 g는 flag의 비트 길이다. 그리고 최종 승리자 공개 과정에서 두 서버간에 발생하는 통신 오버헤드는 (k+2)n+[log2m]+I 비트이다. 여기서 I는 입찰자 ID의 비트 길이다.
Naor-Pinkas-Sumner의 기법에서 통신 복잡도는 다음과 같다. 먼저 각 입찰자 Bi는 S에게 2kn비트 메시지를 전송한다. 그리고 4와 S간에 온라인 (online)으로 각 입찰자에 대해 (2k+ 1)n 비트 메시지 전송과 서킷 전송을 위해 오프라인(offline)으로 약 2400km 비트의 전송을 필요로 한다.
〔표 2〕은 두 기법의 통신 복잡도를 비교한다. 입찰자의 통신 오버헤드 관점에서 Naor-Pinkas-Sumner 의 기법은 제안된 기법에 비해 (k-l)n 비트를 추가적으로 더 전송해야 한다. 그리고, S와 A 사이의 통신량을 비교해보면 제안된 기법이 Naor-Pinkas-Sumner 기법보다 (gm(k_1)+n 비트를 추가적으로 더 전송해야 하지만, g가 작은 값(2 또는 4비트)이기 때문에 이 추가적인 전송량은 A 와 S 간에 발생하는 전체 전송량에서 작은 비율을 차지한다. 또한 Naor-Pinkas-Sumner의 기법은 오프라인으로 2400km 비트 전송을 요구한다.
[표 2] 제안된 기법과 Naor-Pinkas-Sumner 기법의 통신량 비교
좀더 구체적으로 두 기법의 통신 오버헤드를 비교하기 위해 m = 1000(#), k=10, n=1024, g=4라고 하자. 그러면 Naor-Pinkas-Sumner 기법에서 입찰자의 통신 오버헤드는 20,480 비트이고 제안된 기법은 11,264 비트이므로, 제안된 기법이 약 2배정도 효율적이다. 그리고 A와 S간의 온라인통신 오버헤드는 제안된 기법이 약 21,548,990 비트이고 Naor-Pinkas-Sumner 기법은 약 21,540,000 비트이다. 그렇지만 Naor-Pinkas-Sumner 기법은 오프라인으로 약 24Mbit를 더 전송해야 한다. 그러므로 제안된 기법은 온라인 통신량에서 Naor-Pinkas-Sumner 기법과 비슷하고 오프라인 통신을 요구하지 않기 때문에 통신 오버헤드 관점에서 효율적이다.
Ⅳ. 결론
본 논문에서는 Crescenzo-Ostrovskey-Raja-gopalari에 의해 제안된 Conditional Oblivious Transfer 프로토콜에 사용된 기술을 이용하여 두 개의 서버를 가진 효율적이고 안전한 sealed-bid 경매 프로토콜을 제안하였다. 제안된 프로토콜에서 제3자 A 와 경매인 S가 공모하지 않는다면 어떤 개체들도 입찰에 대한 어떠한 정보도 얻을 수 없으며, 경매의 결과는 정확하다는 것이 보장된다. 또한 제안된 프로토콜은 일반적인 경매 프로토콜과 동일한 통신 패턴을 가진다. 즉, 각 입찰자는 판매자 S에게만 메시지를 전송하고, 서버 A 또는 다른 입찰자들과는 통신하지 않는다. 그리고 제안된 기법은 최근까지 제안된 기법들 중에서 안전하면서 매우 효율적인 것으로 알려진 Naor-Pinkas-Summer의 기법보다 훨씬 적은 계산량을 가지며 유사한 통신 오버헤드를 가진다.
부록: COT 프로토콜
참고문헌
- Financial Cryptography'01 Non-interactive private auctions O. Baudron;J. Stern
- ACM CCS'99 Efficient private bidding and auctions with an oblivious third party C. Cachin
- Information and Computation v.121 Zero-Knowledge arguments and publickey cryptography G. De Santis;G. Di Crescenzo;G. Persiano https://doi.org/10.1006/inco.1995.1121
- Advances in Cryptography - Eurocrypt'99, LNCS 1592 Conditional oblivious transfer and timed-released encryption G. Di Crescenzo;R. Ostrovsky;S. Rajagopalan
- ACM Symp. on Theory of Computing Non-malleable cryptography D. Dolev;D. Dwork;M. Naor
- IEEE Trans. on Information Theory v.22 no.5 The design and implementation of a secure auction server M. Franklin;M. Reiter
- J. Comp. Sys. Sci. v.28 no.1 Probabilistic encryption S. Goldwasser;S. Micali https://doi.org/10.1016/0022-0000(84)90070-9
- 3rd USENIX Workshop on Electronic Commerce Electronic auctions with private bids M. Harkavy;J.D. Tygar;H. Kikuchi
- Advances in Cryptography - Asiacrypt'00, LNCS 1976 Mix and match Secure function evaluation via ciphertexts M. Jakobsson;A. Juels
- Financial Cryptography'02 A two-server sealed-bid auction protocol A. Juels;M. Szydlo
- ACM Conf. on Electronic Commerce Privacy preserving auctions and mechanism design M. Naor;B. Pinkas;R. Sumner
- Tech. Memo TR-81 How to exchange secrets by oblivious transfer M.O. Rabin
- PKC'00, LNCS 1751 An auction protocol which hides bids of losers K. Sako
- FOCS'82 Protocols for secure computations A.C. Yao