DOI QR코드

DOI QR Code

A New Offline Check System with Spendable Refunds

남은 금액을 재사용할 수 있는 오프라인 전자수표시스템

  • 김상진 (한양대학교 컴퓨터공학과) ;
  • 오희국 (한양대학교 컴퓨터공학과)
  • Published : 2001.12.01

Abstract

In an offline system, the bank does not participate in payments. As a result, it is difficult to make the refund spendable. Due to this, current offline systems do not provide spendable refunds. In these systems, a check consists of two parts: a spendable part and a refund part. A client uses the spendable part during the payment phase, and uses the refund part to get the refund for the remainder of the check. Therefore, a client cannot reuse the remaining and must always refund it. Moreover, the relationship between the spent amount and the refund amount can be used to guess which check the client used when the client refunds the remaining. To remedy these problems, we propose a new offline system which allow clients to reuse the remaining values of the check. This system provides unlinkability of the payments made by using a single check. It also provides mechanisms to detect and identify clients who perform misconduct such as double spending and over spending. The required overall computational cost to withdraw, spend and refund a check in our system is lower than using several checks in other offline systems.

오프라인 시스템은 은행의 참여 없이 지불을 처리하기 때문에 그 과정에서 발생한 거스름이 화폐의 기능을 갖도록 만드는 것은 어렵다. 대부분의 오프라인 수표시스템은 거스름의 재사용을 고려하지 않고 수표를 두 부분으로 구성하여 하나는 지불에 사용하고 다른 하나는 은행에서 잔액을 환불받을 때 사용하도록 되어있다. 그러나 이 방식은 남은 잔액을 다시 쓸 수 없다는 불편함이 있고, 지불액과 환불액의 보수관계 때문에 수표의 익명성을 저해하는 요인이 있다. 이 논문에서는 수표의 잔액을 다시 쓸 수 있는 오프라인 시스템을 제안한다. 이 시스템은 같은 수표가 사용된 지불행위를 서로 연관시킬 수 없도록 하였으며, 이중사용과 초과사용 등의 부정행위가 발생하면 그 책임자를 밝혀낼 수 있도록 고안하였다. 또한 인출에서 환불가지 소요되는 전체 연산비용은 기존의 수표시스템에서 여러 개의 수표를 인출하여 사용하는 경우보다 적게 들도록 하였다.

Keywords

Ⅰ.서론

전자화폐(electronic cash)는 쓰임새에 따라 분류 하는 방법이 다양하다. 이러한 분류 가운데 전자화 폐를 전자동전(electronic coin)방식"'과 전자수표 (electronic check) 방식'”枝으로 분류하는 것이 있다. 히 가지고 있더라도 지불대금에 정확하게 맞추지 못 할 경우에는 지불할 수 없는 불편함을 지니고 있다. 이와는 달리 수표방식에서는 시스템이 정해놓은 지 정된 금액의 수표 또는 고객이 원하는 금액의 수표 를 인출 받아 사용한다. 이 방식에서는 수표의 액면 가보다 적은 금액에 대해서는 항상 지불이 가능하므 로 동전방식보다 편리하게 지불할 수 있다. 또한 보 통 하나의 수표를 이용하여 지불하게 되므로 액수에 상관없이 교환되는 정보의 양이나 연산의 양이 일정 하다는 장점이 있다.

수표방식이 편리한 지불 수단임에도 불구하고 활 성화되지 못한 것에는 두 가지 이유가 있다. 첫째. 거스름에 대한 처리가 복잡하고 제한적이다. 수표의 액면가와 지불대금은 언제나 일치할 수는 없다. 이런 경우가 발생하면 고객은 지불한 수표에 대한 거 스름을 돌려 받아야 한다. 이와 같은 거스름은 보통 은행에 전달되어 환불받게 된다. 거스름은 지불대금 에 따라 다양한 금액이 될 수 있기 때문에 액면가 표현방법이 동전방식에 비해 복잡해진다. 또한 거스 름을 통해 먼저 사용된 고객의 수표를 알 수 없도록 거스름과 수표 사이에는 어떠한 연관관계도 없어야 한다. 거스름의 또 다른 문제점은 재사용성이다. 만 약 거스름을 지불에 다시 사용할 수 있다면 수표시스템은 보다 편리한 지불 수단이 될 것이다. 그러나 거스름이 다시 사용되려면 수표와 동등한 조건이 요 구되며 그와 같은 거스름 메커니즘을 제공하기란 쉽 지 않다. 현재까지 제안된 대부분의 수표방식은 시 스템이 정해놓은 고정된 금액의 수표만을 인출할 수 있으며 액면가 표현방법의 한계 때문에 지불과정에서 발생한 거스름을 은행을 통해 환불받거나 일부 제한된 금액에 대해서만 다시 사용할 수 있다.'"丄"8) 최근에 본 연구진은 이 문제에 대한 해결책으로 수 표의 액수 제한을 없애고, 온라인 상에서 은행이 새로운 수표를 거스름으로 발행해 주는 시스템을 제안한 바 있다.(4)

둘째, 전자화폐는 궁극적으로 오프라인 방식이 되 어야 하지만 지불과정에서 수표 발행기관인 은행이 참여하지 않으므로 온라인 방식처럼 그 과정에서 발생한 거스름이 화폐의 기능을 갖도록 만드는 것은 어렵다. 현재까지 제안된 오프라인 시스템E 幻은 지 불과정에서 화폐 기능을 가진 거스름을 생성하지 않고 수표를 두 부분으로 구성하여 사용하는 방식을 택하고 있다. 두 부분 중 하나는 지불에 사용되고 다른 하나는 은행에 전달되어 지불 후에 발생한 거 스름 액수만큼 환불받게 된다. 수표의 액면가가 고 정되어 있으므로 지 불에 사용된 부분과 은행 에 전달 된 부분은 금액면에서 서로 보수 관계를 지니게 되 며. 이것이 고객의 익명성을 저해하는 요인이 된다. 뿐만 아니라 수표를 한 번밖에 사용할 수 없기 때문에 나머지 잔액은 항상 다시 입금되어야 하는 불편 한 형태의 지불방식이 된다. 이것은 온라인 방식처 럼 지불과정에서 거스름을 발행하지 않고 분할 가능한 화폐⑼처럼 화폐를 분할하여 사용하는 형태이기 때문이다.

이 논문에서는 한 번 사용하고 남은 금액을 다시 사용할 수 있는 오프라인 수표시스템을 제안한다. 이 시스템은 같은 수표가 사용된 지불행위를 서로 연관시킬 수 없도록 하였으며. 이중사용과 초과사용 등의 부정 행위가 발생하면 그 책임자를 찾을 수 있도록 고안하였다. 익명의 수표가 범죄에 악용되는 것 에 방지 하기 위해 신뢰 기관을 통한 화폐 추적 과 인출자 추적 기능을 제공한다. 또한 인출에서 환불 까지 소요되는 전체 연산비용은 기존의 시스템에서 여러 개의 수표를 인출하여 사용하는 경우보다 적다’ 따라서 기존보다 적은 연산 비용을 사용하 면서도 지불의 편리성과 고객의 익명성을 동시에 향상시켰다. 그러나 액면가 표현방법의 한계 때문에 수표의 남은 금액에 대해 자유롭게 지불할 수 있게 하려면 추가적인 연산이 들어가야 하는 단점이 있다.

이 논문의 구성은 다음과 같다. 2장에서 이 논문 의 이해를 위해 필요한 수학적 배경을 간략히 소개 하고, 3장에서는 기존의 오프라인 수표시스템의 특 성과 문제점을 분석한다. 4장에서는 이 논문에서 제 안하는 새 시스템을 상세히 서술한다’ 5장에서는 새 시스템의 안전성을 분석하고, 새 시스템에 대한 몇 가지 변형을 저】시한다. 끝으로 6장에서 결론과 향후 연구 방향에 대해 서술한다.

Ⅱ. 수학적 배경

이 논문에 있는 모든 수학 연산은 군(group)의 위수(order)가 매우 큰 소수 <?인 G, 군에서 이루어 진다. 이 군은 먼저 매우 큰 소수 力를 선택하고 》-1의 소인수 중 하나인 @를 선택하여 구성된다. 따라서 G.군은 乙의 부분군이 되며. 이 군에서 1을 제외한 모든 수는 군의 생성자(generator)가 된다. 시스템의 안전성은 이 군에서 이산대수(discrete logarithm)를 계산하는 것은 계산적으로 용이하지 않다는 것에 기반한다. 이 논문에서 이루어지는 모든 연산의 법(modulo)은 P또는 <?가 된다. 지수 (exponent) 요소와 관련된 연산은 법 0에서 이루 어지고. 나머지 모든 연산은 법 P 에서 이루어진다. 문맥에서 연산의 법을 유추할 수 있으므로 이 논문에서는 생략한다.

2.1 이산대수 관련 영지식 증명

기저 g에 대한 y의 이산대수를 알고 있음을 영지 식(zero knowledge)으로 증명하는 프로토콜은 [그림 1〕과 같다*°)이 프로토콜에서 y=g‘이고. 확인자(verifier)는 g와 y 를 알고 있다.[그림 1〕에 기술된 프로토콜은 도전과 응답(challenge-and- response)을 통해 이루어지지만 c를 c= H(g\\y\\a) 로 증명자(prover)가 직접 계산하여 상호작용이 없는 프로토콜로 변경할 수 있다. 상호작용이 없는 프 로토콜 버 전을 ZKProof (log & y)로 표현한다. 여기서 은 비트 결합을 나타내며. H는 {0, 1}*를 입력받아 乙의 임의의 원소로 매핑 해주는 충돌회피 (collision- resistant) 해쉬함수이다. 이 프로토콜에서 증명자 가 부정할 수 있는 확률은 확인자가 제시할 c를 올 바르게 추측할 수 있는 확률 1/2"과 같다. 이 증명 은 인출과정에서 고객을 인증하기 위해 사용된다’

(그림 1) 기저 g에 대한 y의 이산대수를 영지식으로 증명하는 프로토콜

       #임을 영지식으로 증명하는 프로 토콜은 [그림 2〕와 같다.“u[그림 2〕에서 叫 = 好 이고. % = 이다. c를 c=H(幻 川)시"시 1边로 증명자가 계산하여 사용하면 이 프로토콜도 상호작 용이 없는 프로토콜로 변경할 수 있다. 상호작용이 없는 프로토콜 버전을 ZKProof(logS1 知 = log 也 所) 로 표기한다. 이 프로토콜에서 증명자가 부정할 수 있는 확률도 1/2"이다. 이 증명은 익명성 제어 기능을 제공하기 위해 사용된다.

(그림 2) log" 力 = log”, 处임을 영지식으로 증명하는 프로토콜

2.2 표현 문제

표현 문제(representation problem)란 이산대 수 문제를 응용한 것으로 여러 개의 생성자로 만든 어떤 값이 있을 때, 이 값을 만들기 위해 사용한 생 성자의 색인(index)값을 알아내는 것이 계산적으로 어렵다는 것에 바탕을 두고 있다. 표현 문제와 관련된 정의와 정리 중 이 논문의 이해를 위해 필요한 내용만 소개하면 다음과 같다

[정의 1]

길이가 /(H)인 생성자 튜플은        #을 말하며, 이 때         #는 G, 의 생성자이며 温顶 이면 g, 丰 g, 이다. 생성자 튜플 (幻, ..., 幻)에 대한 华人阳 의 표현은 = y인 색인 튜플 (幻, ..., X, )을 말하며, 이때 “이다.

[정리 1]

(命에서 이산대수를 계산하는 것이 용이하지 않다 고 가정하면 모든 yw <金 -{1}에 대해 임의로 선택한 생성자 튜플 (幻, ..., 幻)을 입력하였을 때, 어느 정도 성공할 수 있는 확률을 가지고 y의 표현을 출력 할 수 있는 다항시간 알고리즘은 존재하지 않는다.

[따름정리 1]

(命에서 이산대수를 계산하는 것이 용이하지 않다 고 가정하면 임의로 선택한 생성자 튜플 (幻, ..., 幻) 을 입력하였을 때. 어느 정도 성공할 수 있는 확률 을 가지고 어떤 수 yuG。-"}와 y의 서로 다른 두 가지 표현을 출력할 수 있는 다항시간 알고리즘 은 존재하지 않는다.

정리 1과 따름정리 1에 대한 증명은 이산대수가 정을 이용하여 쉽게 증명할 수 있다.'亿 이 논문에서는 표현문제를 이용하여 수표를 구성하였고. 수표 를 나타내는 값의 표현을 알고 있는 고객만 지불할 수 있도록 고안하였다.

어떤 값에 대한 표현을 알고 있음을 영지식으로 증명하는 프로토콜은[그림 3〕과 같다. 여기서 증명 자는 (幻, …, gQ에 대한 y의 표현 (为, …, 旳)를 알고 있음을 증명하고 있다. c를       # 로 증명자가 직접 계산하여 이 프로토콜을 상호작용이 없는 프로토콜로 변경할 수 있다. 이 프로토콜도 증명 자가 부정할 수 있는 확률은 1/2»이다. 이 프로토콜 의 상호작용이 없는 버전을 ZKProof(幻, ..., g, , y)로 표기한다.

(그림 3) 표현을 영지식으로 증명하는 프로토콜

2.2 제한적 은닉서명

제한적 은닉서명 (restrictive blind signature) 이란 용어는 Chaum과 Pedersen0] 제안한 서명 기법U"을 Brands가 응용하면서 처음으로 사용되었다.(1) 제한적 은닉서명 기법은 기존의 cut-and- choose 기법을 사용하지 않고 서명 받는 사람이 부 정을 못하게 하는 은닉서명 기법이다. 이 논문에서 사용하는 제한적 은닉서명은 Brands가 제안한 서 명 기법을 de Solages와 Traore가 변형한 서명 기법이다.® 이 서명 기법은[그림 4〕에 기술되어 있다. 여기서 서명자의 서명키는 xm 이며. 확인키는 y=gx 이다. 수신자는 메시지 에 대해 서명을 받기 위해 을 은닉한 疔을 서명자에게 전달하여 프로토콜을 시작한다. 이 프로토콜이 정상적으로 종료되면 수신자 는 메시지 ""게 대한 서명 SigS) = (z, c, s)을 얻 는다. 이때 서명값 mx. c, s는 다음 식을 만족 한다.

[그림 4) 제한적 은닉서명 BlindSig(M, m)

#(1)

서명 확인은 위 식을 이용한다. 이때 Afe 서명할 때 수신자가 서명과 연관시키기 위해 서명에 포함시 키는 값이다. 이것은 값을 명시(commit)하는 것과 같으며, 필요가 없으면 사용하지 않아도 된다. 이 서명에 관한 몇 가지 정리는 다음과 같다. 각 정리 에 대한 증명은 이미 있으므로(2) 이 논문에서는 증명에 대한 개략적인 설명만 한다.

[정리 2] (정확성)

수신자가 증명을 인정하면 Sig(m)은 m에 대한 올바른 서명이다.

서명은 식 (1)을 이용하여 확인하므로 양자 모두 서명 프로토콜을 충실하게 수행하였다면 a = g'y°이 고        #임을 보이면 된다.®E

[정리 3] (은닉성)

수신자가 프로토콜을 중실하게 수행하면 서명자는 也과 Sig(m)에 대한 어떤 정보도 얻을 수 없다.

수신자와 서명자가 모두 중실하게 서명을 수행하 였으면 수신자는 m, z, c. s를 얻으며. 서명자는        #를 얻게 된다. 이 두 값을 연결시키 기 위해 알아야 하는 값은 은닉요소 역할을 하는 r. u. u이다. 이 값들은 임의로 선택되고 이산대수가 정에 의해 직접 계산할 수 없으므로 서명자는 얻을 수 없다. 따라서 두 집합의 값을 연결시키는 r. u. ◎ 는 오직 한 종류밖에 없음을 보임으로써 다른 방법으로 두 집합의 값을 연관시킬 수 없음을 증명할 수 있다.'"1''1

[정리 4] (위조불가능성)

BlindSig를 여러 번 수행(병행 또는 순차적으로) 한다고 하여 원래 얻을 수 있는 서명 쌍을 외에는 추가적인 서명 쌍을 얻을 수 없다. 뿐만 아니라 프 로토콜의 수행을 통해 서명자의 서명키 X에 대한 어떤 정보도 노출되지 않는다.

정리 4는 전자화폐에서는 가장 중요한 정리이다. 이것이 보장된다는 것은 화폐를 위조할 수 없음을 증명하는 것이 되기 때문이다. Schnorr는 이산대수 기반 은닉서명에 대한 새로운 일반 병행 공격 방법을 제시하였다」(2) 이 공격은 다항시간 해결법이 아직 알려져 있지 않은 ROS 문제E"에 의존한다. 즉. ROS 문제를 해결할 수 있으면 Schnorr 은닉서명에 대한 (/, /+1) 위조 존재 (existential forgery) 공격 이 가능하다. (/, /+1) 위조란 어떤 정수 세 대해 공격자가 서명자와, 번 서명 프로토콜을 수행하여 /+1 개의 서명을 얻는 공격을 말한다. 마찬가지로 이 프 로토콜에 대한 (Z./+1) 위조 공격도 ROS 문제를 해결할 수 있으면 가능하다. 따라서 이 프로토콜도 Schnorr가 제시한 공격 방법으로 (Z./+1) 위조 존재 공격을 하는 것은 계산적으로 어렵다’

[정리 5] (은닉 제한)

수신자가 论을 BlindSig에 입력으로 사용하면 생 성자 g외에 다른 생성자를 이용하여 서명받을 메시 지 沮을 결정할 수 없다.

수신자는 다른 생성자 幻를 이용하여 遍에서 은닉 요소를 제거하기 위해서는 서명자로부터 받은 扌와 b 에서 각각 제거할 수 있거나 기저 g에 대한 幻의 이산대수를 알아야 한다. 두 경우 보두 이산대수가 정에 의해 계산적으로 용이하지 않다. 따라서 서명 해줄 메시지에 특정 고객 신원정보가 포함되는 것과 같은 보장이 필요하면 舟에 대한 표현 증명을 하도 록 하는 등 다른 조치를 취하여야 한다.

Ⅲ. 기존 오프라인 수표시스템

Chaum 등은 최초로 오프라인 방식의 수표시스템을 발표하였다 ⑸ 이 시스템에서 수표는 도전 항목. 액면가 항목. 환불 항목, 세 가지 요소로 구성된다. 도전 항목은 이중사용을 방지하기 위해 사용되고. 액면가 항목은 수표의 액면가를 나타내기 위해 사용 된다. 환불 항목은 수표를 사용하고 남은 금액을 환 불받기 위해 사용된다’ 이 항목들은 고객의 익명성 을 보장하기 위해 은닉되어 전달되며. 은행은 각 항 목들이 제대로 구성되어 있는지 확인하기 위해 비용이 많이 드는 cut-and-choose 기법을 사용한다. 뿐만 아니라 인출할 수 있는 수표의 액면가가 고정되어 있으며. 남은 금액을 다시 사용할 수 없고 반드시 환불받아야 한다.

이 시스템에서 인출자는 cut-and-choose 과정을 수행하기 위해 실제 수표를 구성하는 항의 개수보다 두 배 많은 개수의 항을 전달하고. 은행은 그 중 확 인하지 않은 절반의 항을 이용하여 수표를 구성한 匸k 따라서 한 개의 잘못된 항이 발견되지 않고 통 과될 확률은 높다. 도전항목을 한 개 잘못 구성하여 수표를 인출받더라도 수표를 이중사용할 수 있는 확 률은 매우 적다. 그러나 액면가 항목 중 하나를 잘 못 구성하여 인출받으면 고객은 실제 환불받아야 하는 금액보다 많은 금액을 환불받을 수 있다. Hirsch- feld는 이 문제를 발견하고 그것을 보완한 시스템을 발표하였다.⑹ 그러나 Hirschfeld 시스템은 여전히 cut-and-choose를 사용하므로 Chaum 등의 시스템의 근본 문제인 효율성을 개선하지는 못하였다.

Brands는 처음.으~로" cut-and-choose 기법을 사 용하지 않는 오프라인 수표시스.템을 발표하였다.⑺ 이 시스템은 표현 문제를 이용하여 수표의 액면가를 표현하며. cut-and-choose 기법을 사용하지 않아 도 고객의 부정을 예방할 수 있는 제한적 은닉서명 기법을 이용한다. Brands 시스템을 설명하기 앞서 표현 문제를 이용한 수표시스템의 기본 개념은 다음과 같다. 이 개념은 이 논문에서 제안하는 시스템의 기본이기도 흐}.다.

은행은 길이가 7(22)인 생성자 튜플        #를 선택하여 공개한다. 이때 각 생성자 g, 는 2, ^1xl00 원의 액면가를 나타내기 위해 사용된다. 따라서 길이 가 /인 생성자 튜플을 사용하여 수표의 액면가를 표 현하면 인출하는 수표의 액면가는 항상 (2'-1)x100원 이 된다. 고객은 길이가 /인 색인 튜플         #를 임의로 생성하여 成을 계산한다. 이 m이 수표가 되며. 은행으로부터 에 대한 서명 Sig(m) 을 받아 사용하게 된다. /를 지불대금에 해당하는 색인 위치들의 집합이라고 하면 고객은 m. Sig(m), dj(jvj、)을 상점에게 전달하여 지불한다. 예를 들 어 500원을 지불하고자 하면 100원을 나타내는 dx 과 400원을 나타내는 弘를 전달한다. 지불과정에서 고객은 전달한 %들이 m을 만들 때 사용한 색인 값 임을 증명하여야 한다. 이 증명은 표현 문제를 이용하여 이루어진다’ 사용하고 남은 금액은 m과 % (丿 V {1, — 를 은행에 전달하여 환불받는다. 물론 지금까지 소개한 기본 개념에는 익명성. 이 중 사용 등에 대한 고려가 없지만 여기에 그런 문제를 고려하여 설계하면 효율적인 오프라인 수표시스템을 만들 수 있다.

Brands의 오프라인 시스템은 표현 문제를 이용한 최초의 수표시스템으로서 사용하는 수표의 모습 은 다음과 같다.

#

여기서 g, . gii. 劉, .는 G, 의 생성자이다. 이 중 幻 과 幼는 고객의 신원정보를 나타내기 위해 사용되고. g”와 g負는 수표의 액면가를 나타내기 위해 사용되 며 . g3과 幻는 포함된 고객 신원정보와 액면가 정보를 식별하지 못하도록 하기 위해 사용된다. 고객 은 이렇게 구성한 값 c에 대해 제한적 은닉서명을 받아 사용하게 된다. de Solages와 Traore가 제안한 시스템⑻은 Brands가 제안한 시스템과 거의 유사한 시스템이지만 익명성 제어 기능을 추가하였 으며. 요구되는 연산의 양을 줄여서 효율성도 높였 다. 그러나 서론에서 소개한 바와 같이 이 장에서 설명한 4개의 오프라인 시스템에서 수표는 두 부분 으臣 구성되어 있으며. 두 부분은 가격측면에서 서로 보수관계를 지니고 있다. 뿐만 아니라 수표를 한번 밖에 사용할 수 없으므로 항상 남은 잔액을 입금하여 환불받아야 한다. 이러한 제한 때문에 사 용하기가 불편함은 물론 고객의 익명성을 해칠 수도 있다.

Ⅳ. 새 오프라인 수표시스템

이 장에서는 기존의 오프라인 수표시스템이 가지고 있는 제한을 부분적으로 해결하여 고객이 좀 더 편 리하게 사용할 수 있도록 고안한 새로운 시스템을 제안한다. 이 시스템은 수표의 남은 잔액을 다시 사용할 수 있도록 하기 위해 수표를 인출할 때 두 개의 값에 은행으로부터 은닉서명을 받는다. 그 가운 데 하나는 수표를 처음 지불할 때 사용되고. 다른 하나는 이미 사용한 값에 따라 남은 금액을 다른 것 에 지불할 때 사용된다. 새 시스템은 표현 문제를 이용하여 수표의 액면가를 나타내며. 제한적 은닉서 명을 사용한다.

4.1 시스템 설정

은행은 계정을 관리하며. 고객과 상점은 다음 절에 설명된 방법으로 은행에 계정을 개설하여야 지불에 참여할 수 있다. 신뢰기관은 익명의 수표가 범죄에 악용되는 것을 방지하기 위한 화폐 추적과 인출자 추적 기능을 제공하는 기관이다. 은행과 신뢰기관은 시스템을 설정하기 위해 우선 g | 0—1 인 두 개의 매우 큰 소수 /), <?를 선택하여 사용할 G, 군을 설정한다. 그 다음에 은행은 /+1 개의 G.군 생성자 幻, …, g5를 임의로 선택한다. 幻부터 幻은 액면가를 표현하기 위한 생성자이며 , 은 액면가 표현을 숨기기 위해 사용된다. 따라서 이 시스템에서 수표의 액면가는 (2'—1)x100원이다. 이들 생성자 외에 세 개의 G, 군 생성자 gb. gu. g、를 임의로 선택한다. 勤는 은행의 서명키와 확인키를 위한 생성자이며. 务와 幻는 각각 고객과 상점의 신원을 나타내기 위해 사용된다. 은행은 서명키 外£ 乙■, 를 임의로 선택하고 대응되는 확인키 x(, = g;' 를 계산한다. 은행은 P. H. g[..... gb. g„. 母“ %를 공개한다. 은행은 이중사용 과 초과사용을 방지하기 위한 입금 데이터베이스와 색인목록(index list)을 유지하며, 부정한 방법으로 환불을 요청할 수 없도록 인출 데이터베이스를 유지 한다. 데이터베이스와 목록은 추적을 위해서도 필요하다. 신뢰기관은 G군 생성자 幻를 임의로 선택하고. 화폐 추적을 위한 개인키 在产 乙와 인출자 추적을 위한 개인키 乙를 임의로 선택한다. 그 다음에 대응되는 각 공개키        # 를 계산한다. 신뢰기관은 g, . yct, %广를 공개한다.

4.2 계정 개설

고객은 자신의 비밀신원정보 *“ 后乙를 임의로 선택하여 자신의 공개신원정보 y" = g:를 계산하고 此를 은행에 전달한다. 고객은 log" 를 알고 있 음을[그림 1〕의 기술된 프로토콜을 이용하여 은행 에 증명한다. 은행은 %를 해당 고객의 식별자로 기 록해 놓는다. 이 증명을 통해 은행이 応를 확인하지 않으면 고객은 Chan 등이 제시한 공격을 하여 수 표를 이중사용할 수 있다."" 상점도 고객과 유사하 게 x, w 乙를 임의로 선택하여 y°=g"를 계산하고 y, 를 은행에 전달하여 계정을 개설한다. 상점도 고객과 같은 방법으로 Io恥"、를 알고 있음을 증명 한다.

4.3 인출 프로토콜

새 시스템의 인출 프로토콜은[그림 5〕와 같다. 고객은 은행에 등록되어 있는 자신의 식별자 応를 은행에 전달하고 log;, y“를 알고 있음을 영지식으로 증명한다. 이때 시간정보를 증명에 포함하여 공격자가 이 증명을 다시 사용할 수 없도록 한다. 자신의 신원 을 입증하였으면 고객은 사용할 두 개의 은닉요소 七 과 纪를 선택한다. 이 요소로 화폐 추적을 위한 정보 = 를 계산한다. 이 값을 이용하여 화폐 추적이 가능함을 증명하기 위해 E[=(、gh 备'广를 계산하고. 이산대수 등가증명 ZKProof (log Ei= log CT, ) 를 구성한다. 또한 수표의 액면가 표현인 R을 만든 匸" Re 임의로 선택한 dr부터 i까지 /+1개의 색인을 이용하여 구성한다. i을 제외한 나머지 색인은 지불 또는 환불과정에서 모두 공개된다. 따라서 마지막 색인 们”은 R을 구성하는 다른 모든 색인이 공개되더라도 이를 이용하여 7?을 식별할 수 없도록 하기 위한 조치이다. 이 Re 나중에 남은 금액을 환불받을 때에도 사용된다.

(그림 5) 인출 프로토콜

고객은 수표의 액면가 표현 R. 화폐 추적을 위한 정보 CT, . 수표에 포함할 추적정보 E, . CT, 를 통해 화폐가 추적 가능함을 보이기 위한 Proof(CT, )를 은행에게 전달한다. 은행은 증명을 확인하여 CT', 를 통해 나중에 수표에 대한 화폐 주적을 할 수 있음을 확인한다. 확인이 끝나면 CT, 와 人을 고객과 인출 데이터베이스에 연관시켜 놓는다. 고객은 인출자 추 적을 위한 정보。T, 와 이 값을 통해 인출자 추적이 가능하다는 것을 증명할 때 사용할 B, . 그리고 지불 과정에서 상점의 도전에 대한 응답을 계산할 때 사용할 A, 을 계산한다. 인출자 추적에 대한 확인은 상점이 지불과정에서 하게 되며. A, 을 통해 응답을 계산하도록 제한하는 것은 이중사용이 발생했을 때 고객의 비밀신원정보를 계산할 수 있도록 하기 위함 이다.

고객과 은행은 각자 인출할 수표의 은닉된 형태 R = RE, 를 계산한다. 여기서 為는 고객의 공개 신원정보이고. Re 수표의 액면가 정보이며. E는 추적을 위한 정보이다. 은행은 이렇게 스스로 은닉 된 형태를 만들어 제한적 은닉서명을 수행하므로 나중에 고객이 얻게 되는 수표의 형태가 올바르다는 것을 확신할 수 있으며. 각 U에 같은 고객 정보와 같은 액면가 정보가 포함되어 있음을 확신할 수 있다. 고객과 은행은 각 U에 대해 BlmdSig(/l, ||B, ||OT, R)을 수행한다. 이렇게 하여 프로토콜이 종료되면 고객 은 각 = 에 대한 은행의 서 명 Sig(C, ) = 를 얻게 되며. z, = C, ”, 今, s<는 다음을 만족한다.

#

고객은 이렇게 얻은 서명 중 하나를 먼저 사용하고 남은 금액에 대해서는 다른 하나를 사용하게 된다. 또한 두 서명을 모두 사용하고 남은 금액에 대해서는 은행으로부터 환불받을 수 있다. 물론 하나의 서 명만 사용하고 나머지 금액에 대해 환불받을 수도 있다.

4.4 지볼 프로토콜

고객은[그림 6〕에 기술된 프로토콜을 이용하여 지불한다. 고객은 인출을 통해 얻은 두 개의 서명 중 하나를 선택하여 먼저 사용하고, 나머지 서명은 첫 번째 서명을 사용할 때 지불한 대금에 따라 남은 금액에 대해 사용한다. 그러나 남은 금액에 대해 자 유롭게 지불할 수 없고, 일부 금액에 대해서만 지불 할 수 있는 문제점을 지니고 있다. 예를 들어 길이 가 4인 생성자 튜플을 이용하여 액면가를 표현한다. 고 하자. 그러면 인출한 수표의 액면가는 1500원이 되며, 이 때의 색인 튜플을 ( 払, d2, d3, 爲 )라 하자. 첫 번째 지불에서 600원을 지불하였다면. 이는 고객 이 첫 번째 지불에서 勿과 必를 공개하였다는 것을 의미하며, 두 번째 지불에서는 원래 수표의 액면가 와 이미 지불한 금액의 차액 900원을 지불할 수 있다. 그러나 必와 仏을 이용하여 지불해야 하므로 두 번째 지불에서는 900원, 800원, 또는 100원밖에 지불할 수 없다. 이 문제점에 대해서는 다음 장에서 해결방안을 제시한다.

(그림 6) 지불 프로토콜

새 시스템의 지불 프로토콜은 크게 두 단계로 구성되어 있다. 첫 번째 단계는 수표에 대한 은행의 서명을 확인하는 단계이고, 두 번째 단계는 지불대 금에 해당하는 색인을 고객이 알고 있는지 확인하는 단계이다. 이중사용, 초과사용 등이 발생하였을 때 책임자를 밝혀내기 위해서는 수표를 인출한 고객만이 그 수표를 이용하여 지불할 수 있어야 한다. 제안된 시스템은 표현문제를 이용한 기존 오프라인 화 폐시스템과 마찬가지로 화폐를 나타내는 값의 표현 을 알고 있는 고객만이 지불할 수 있도록 하였다. 고객이 G를 이용하여 지불하는 과정을 자세히 설명 하면 다음과 같다. 앞으로 Le 집합 를 나타내며. 집합 /은乙의 부분집합으로서 지불대금을 나타내기 위해 사용한 색인위치들의 집합을 나타낸다. 또한 "는 乙-/집합을 나타낸다.

[단계 1]

고객은        # 지불대금을 나 타내기 위한 색인 d, , 그리고 C, 에 포함된 나머지 색인을 알고 있음을 증명할 때 사용할 W를 생성하여 상점에게 전달한다. 상점은 서명을 확인하고 수신한 d;를 이용하여[그림 6〕처럼 C를 구성한다. 계속해 서 C„ B, . W, 상점 식별자 y, . 지불시간 7;를 이용하여 만든 도전값 c 를 고객에게 전달한다. 상점 이 전달할。값을 고객이 미리 예측하여 자신에게 유리하도록(예를 들어 이중사용하여도 신원이 들어 나지 않도록 또는 인출자 추적이 가능하지 않도록) A, 와 乱을 인출 과정에서 조작할 수 없도록 c를 만들 때 A, 와 를 반드시 포함시켜야 한다. 같은 이유에서 W도 포함시켜야 한다. 또한 贝는 이 수표 를 입금하여 돈을 청구할 수 있는 상점을 제한하기 위해 필요하다.

[단계 2]

고객은 도전값 C 에 대한 응답으로, W 7에 대해 S>= 3厂 cd, 를 계산하고, (g“, 幻)에 대한 기의 표 현 (a, , "을 이용하여 기과 72를 계산하여 상점에 게 전달한다. 상점은 수신한 응답값을 확인함으로써 단계 1에서 수신한 색인이 올바른 색인임을 확인하 게 됨은 물론 전달된 색인을 제외한 나머지 색인도 고객이 알고 있음을 확인하게 된다. 또한 * 를 이용하여 OT, 를 확인하여 이 수표에 대한 인출자 추적이 가능함을 확인한다. 고객에게 A, 의 표현을 이용하여 门 과 *를 계산하도록 한 것은 C, 를 지불할 때 계 산되는 응답값을 제한하여 이중사용 하였을 때 고객 의 신원을 밝히기 위함이다.

4.5 입금 프로토콜

수표를 인출할 때 은행으로부터 받은 두 개의 서명 값은 보통 각각 서로 다른 지불에 사용된다. 은행은 고객이 각 값을 이중사용 하였는지 여부와 두 개의 서명을 이용하여 지불한 총액이 수표의 액면가를 초 과했는지 검사하여야 한다.

상점은        #). 지불대금을 나타내기 위한 색인 d, . W. Ts. 그리고 고객이 전달 한 응답값 s” Z1, 论를 은행에 전달하여 지불대금을 청구한다. 은행은 먼저 도전값 c를 스스로 만들고 상점이 했던 방식대로 수신한 트랜스크립트의 이상 여부를 확인한다. 은행이 도전값을 스스로 만들어 확인하는 것은 이 수표에 대한 돈을 청구할 수 있는 상점을 확인하기 위함이다.

정당한 수표임이 확인되면 입금된 C, 가 입금 데 이터베이스에 있는지 검사한다. 만약 같은 C, 가 있 으면 먼저 입금될 때 전달된 트랜스크립트와 현재의 트랜스크립트를 비교한다. 이 비교를 하기 위해 트 랜스크립트 전체를 보관할 필요는 없고. 필요한 최 소 정보만 보관하면 된다. 만약 서로 같은 트랜스크 립트로 밝혀지면 상점이 이중청구하는 것이 되고. 반대로 서로 다르면 고객이 이중사용한 것이다. 만 약 입금된 C, 가 입금 데이터베이스에 없는 새로운 것이면 초과사용을 하였는지 검사하여야 한다. 이를 위해 은행은 색인목록에 입금 또는 환불된 力를 위치 별로 보관한다. 색인목록에 있는 %와 현재 입금된 d, 를 비교하여 같은 값이 존재하면 액면가를 초과해서 지불한 것이 된다.

어떤 고객 U가 아래와 같은 수표를 인출하였다고 가정하고. 이중사용과 초과사용이 발생하였을 때 고 객의 신원을 알아내는 과정을 설명하면 다음과 같다. 이때 시스템은 길이가 4인 생성자 튜플을 사용하여 액면가를 표현한다고 가정한다. 즉. 인출할 수 있는 수표의 액면가가 고정되어 있으므로 모든 수표의 액면가는 1500원이 된다.

#

#

만약 고객 U가 G을 이용하여 500원을 지불하고, 0를 이용하여 1000원 지불하면〔표 1〕과 같은 값을 상점에게 전달하여야 한다. 이 값들은 표현문제를 이용하여 확인하므로 고객은 잘못된 값을 전달할 수 없다. 만약에 고객 C/가 G을 이중사용하면 각 지불 마다 다른 도전값에 대해 응답을 하여야 한다. G 을 이용한 두 번째 지불에서 사용된 도전값이 c” 이라 하자. 은행은 나중에 상점이 입금요청을 하면 다음 두 식을 입금된 각 지불 트랜스크립트로부터 얻을 수 있다.

(표 1] C1 과 C2를 지불할 때 교환되는 값

#

이 연립방정식을 풀면 *“를 얻을 수 있으며, 은행은 y" = g;‘를 계산하여 이중사용한 고객을 밝혀낸다.

만약에 Ci 과 G 를 사용하여 지불한 총액이 수표의 액면가를 초과했다면 두 지불에서 중복되는 색인이 최소한 하나 존재하게 된다. 이런 중복된 색인이 있 으면 은행은 초과사용한 것으^로 판단하고 각 수표에 대한 인출자 추적을 신뢰기관에게 요청한다.

4.6 익명성 제어

익명의 화폐는 실물화폐처럼 돈세탁. 협박. 불법 구매와 같은 범죄에 악용될 수 있다. 따라서 이중사 용되지 않은 화폐도 필요하면 익명성을 철회할 수 있어야 한다. 보통 익명성 철회는 신뢰기관을 이용 하며 화폐 추적과 인줄자 추적 두 가지 형태로 제공 된다. 화폐 추적은 인출과정에서 얻은 정보로부터 그 과정에서 인출된 화폐를 구성할 수 있도록 하여 그 화폐가 나중에 입금되면 식별할 수 있게 해준다. 인출자 추적은 입금된 화폐에서 고객의 신원 정보를 계산할 수 있게 해준다.

[화폐 추적]

은행은 인출과정에서 확인한 를 신뢰기관에게 전달하여 화폐 추적을 요청한다. 신뢰기관은 법원의 승인이 있으면 화폐 추적을 위한 개인키 兀, 를 이용하여 를 계산하고. 이 값을 은행에게 돌려 준다. 은행은 받은 값과 액면가 정보 R. 그리고 고객 의 신원 정보 %를 이용하여 다음과 같이 인출된 수 표를 구성할 수 있다.

#

[인출자 추적]

은행은 입금된 수표의 0T, 를 신뢰기관에게 전달 하여 인출자 추적을 요청한다. 신뢰기관은 법원의 승인이 있으면 인출자 추적을 위한 개인키 L, 를 이용하여 = = CT, 를 계산하고. 이 값을 은행에게 돌려준다’ 은행은 CT, 를 인출 데이터베이스에서 검 색하여 이 수표의 인출자를 찾는다.

4.7 환불 프로토콜

고객은 수표를 사용하고 남은 잔액을 은행으로부터 환불받을 수 있다. 이때 사용하는 프로토콜을 환불 프로토콜이라 하며[그림 7〕에 기술되어 있다. 고객은 지불에 사용한 색인에 대해서는 임의의 값 結를 선 택하여[그림 7〕에 있는 것처럼 "를 계산한다. 고객은 자신의 식별자 y„. 환불받고자 하는 수표의 액면 가 표현 R t를 제외한 지불에 사용하지 않은 R 의 색인 d, 들. 그리고 계산한 W를 은행에 전달하여 환불을 요청한다. 은행은 인출 데이터베이스에서 R 이 요청한 고객에 등록되어 있는 값인지를 확인하 다. 이것을 확인하는 이유는 고객이 임의의 값을 만 들어 청구하는 것을 막기 위함이다. 은행은 또한 R 을 이용하여 이전에 환불받은 적은 없는■지 확인한다. 다음에 색인목록에서 d, 가 이미 사용된 값은 아 닌지 확인하여 환불해줄 금액을 확인한다. 확인되면 [그림 7〕처 럼 C를 계산하고 도전값 c를 생성하여 고객에게 전달한다. 고객은 전달한 색인이 7?을 만 들 때 사용한 올바른 색인임을 은행에게 증명한다. 올바른 승명을 수신하면 은행은 수신된 刁/늘을 환불 목록에 등록한다. 이때 고객의 신원과 0들을 연관 시켜 놓아야 한다. 이것은 고객이 환불을 먼저 요청 한 후에 수표를 지불하여 이득을 얻지 못하도록 하기 위함이다.

[그림 7) 환불 프로토콜

서로 다른 수표의 액면가 표현 중에서 특정 위치에 있는 색인 값이 우연히 일치할 수도 있지만 문제가 될 정도의 확률을 가지려면 매우 많은 수의 수표를 인출해야 한다. 뿐만 아니라 유효기간이 만료된 수 표의 색인은 다시 사용할 수 있어서 현실적으로 문제를 일으킬 가능성은 매우 작다. 자세한 분석은 다음 장에서 다룬다.

V. 시스템 분석

이 장에서는 제안된 시스템의 안전성을 분석하고, 기존 시스템과 비교하여 장단점을 분석한다. 또한 제안된 시스템의 문제점을 보완하기 위한 몇 가지 변형에 대해서도 논한다.

5.1 안전성

[위조불가능성]

은행을 제외한 어느 누구도 은행의 서명키를 알 수 없으므로 서명을 직접적으로 위조할 수 없다. 제한적 은닉서명은 정리 4에 의해 적응적 선택(adaptive chosen) 메시지 공격 하에서도 (/, 7+1) 위조가 계산 적으로 어려우므로 이 시스템에서 수표를 위조한다는 것은 계산적으로 용이하지 않다. 정리 5에 서명의 입력값 <5가 결정된 후에는 생성자 幻만을 이용하여 G의 서명을 얻을 수 있다. 또한 기저 g(, 에 대한 다른 생성자의 이산 대수를 계산하는 것이 어려우므 로 다른 생성자로 표현되는 고객의 신원정보나 추적 정보를 고객이 자신에게 유리하도록 은닉서명 과정에서 변경할 수 없다.

[익명성]

은행은 인출과정에서 R. C„ Proof (CT, ). Et. CT, 를 얻으며. 고객은 와 Sig(C\)를 얻게 된다. 정리 3에 의해 은행은 서명과정에서 얻은 정보로부터 메시 지나 서명 결과에 대해 어떤 정보도 얻을 수 없다. 뿐만 아니라 은행은 은닉서명 전에 수신한 Proof (CT, ). E„ CT;로부터 나중에 C, 을 식별할 수 있는 어떤 정보도 얻을 수 없다. 이것은 이산대수 가정에 의해 logwCT, 를 계산할 수 없기 때문이다. 또한 은닉 서명을 받을 때 포함한 4“ B„ OT, 를 보지 못하匸 로 고객의 익명성은 보장된다.

[연결불가능성]

고객은 수표를 인출할 때 받은 C] 과 C? 를 다른 지불에 사용할 수 있다. 이렇게 사용된 G과가 은행에 입금되어도 은행은 이것을 서로 연관시킬 수 없다. 그것은 두 지불의 트랜스크립트에서 두 값을 연결시킬 수 있는 정보가 없기 때문이다. 금액정보 나 공개된 액면가 색인을 이용하여도 연결할 수 없다. 그 이유는 환불까지 진행되어도 G과 G에 있는 액면가 정보 R의 표현 중 a"】 은 공개되지 않기 때문이匸" 또한 두 값에 같은 外 (또는 7?)가 포함되어 있음을 증명하기 위해서는 C, 에서 & (또는 R)를 나눈 결과값의 표현을 알고 있어야 한다. 그러나 정리 1에 의해 G 를 만든 고객을 제외하고는 어느 누구도 그것의 표현을 다항시간 내에 알아낼 수 없다. 따라서 이 방법으로 G 과 C?를 연관시키기는 것은 계산 적으로 용이하지 않다.

[이중사용]

고객은 C, 에 대한 서로 다른 여러가지 표현을 알고 있으면 자신의 신원을 노출하지 않고 C, 를 여러 번 사용할 수 있다. 그러나 따름정리 1에 의해 어떤 값에 대한 서로 다른 두 가지 표현을 알아내는 것은 계산적으로 용이하지 않다. 또한 고객은 각 C, 마다 미리 명시한, 4, 를 이용하여 도전에 대한 응답 을 해야 하기 때문에 은행은 이중사용한 고객의 신 원을 밝혀낼 수 있다. 한편 은행은 C, 의 표현을 모 르기 때문에 고객에게 이중사용에 대한 누명을 씌울 수 없다. 그렇게 하려면 수신한 트랜스크립트와 다른 유효한 트랜스크립트를 만들어야 하지만 이는 C, 의 표현을 알아야만 가능하다. 그러나 정리 1에 의해 고객을 제외한 어느 누구도 알 수 없으므로 누명 을 씌울 수 없다.

[초과사용]

초과사용은 G 과 0를 사용하였을 때 중복되는 색인이 최소한 하나 이상 존재하게 된다는 사실을 이용하여 고안하였다. 초과사용된 경우에는 인출자 추적을 통해 부정을 한 고객을 밝혀낸다. 그러나 이 중사용처럼 직접 두 지불의 드랜스크립트를 이용하여 고객의 공개신원정보를 계산할 수 없기 때문에 신뢰기관을 통해서만 책임자를 밝혀낼 수 있다는 문제가 있다. 그러나 이런 메커니즘이 있다는 것만으 로 많은 고객은 초과사용을 하.지 않을 것이다. 초과 사용도 은행은 C, 의 표현을 모르기 때문에 고객에게 누명을 씌울 수 없다.

[중복 색인]

서로 다른 수표의 액면가 표현 중에서 특정 위치의 값이 우연하게 일치할 수도 있다. 만약 일치하면 아 무런 부정을 하지 않았음에도 불구하고 초과사용 또는 이중으로 환불요청을 한 깃처럼 돈]다. "개의 수 표를 인출하고 길이가 / 인 생성자 튜플을 이용하여 액면가를 표현한다고 하자. 이때 서로 다른 수표의 액면가 표현 중에서 특정 위치의 값이 우연하게 일 치할 확률은 <7개의 공이 들어있는 항아리에서 복원 추출하여 행렬을 채울 때, /개의 열 중에 중복 되는 값이 있는 열이 있을 확률과 같다. 열에 중복 되는 값이 하나도 없을 확률은 다음과 같다.

#

그런데 «厂*=1-* + ;『/2! —^73! + ...가 성립하므로 *가 매우 작은 수이면 1-*次厂로 근사화할 수 있다. 따라서 식 (2)는 다음으로 근사화할 수 있다.

#

그러므로 중복되는 값이 있는 열이 하나도 없을 확 률은 다음과 같다.

#

이 확률이 8라 하면 다음이 성립한다.

#

위 식에서 处항을 무시하고, £= .5이고 /=10 이면 다음이 성립한다.

#

q는 보통 2啲이상이므로 ”이 2〃이상 되어야 중복 되는 것이 있을 확률이 50%가 넘는다. 즉. 이 정도의 수표를 인출하여야 중복된 것이 있을 수 있다는 것이다. 이 논리는 해쉬함수에서 충돌 가능성을 분 석하는 것과 같다. 따라서 특정 위치의 색인값이 우 연히 일치할 가능성은 매우 희박하다.

5.2 두 번 사용과 두 개 사용의 차이

제안한 시스템은 한 번 사용된 수표의 잔액에 대해 다시 사용할 수 있도록 개선한 것이다. 새 시스템이 기존 수표시스템에서 두 개의 수표를 인줄하는 것과 비교하였을 때 어떤 장단점을 지니고 있는지 비교하 면 다음과 같다. 먼저 연산량 측면에서 비교하면 새 시스템에서는 수표를 인출할 때 두 개 값에 은닉서 명을 수행하므로 기존에 두 개의 수표를 인줄하는 것과 유사한 비용이 소요된다. 지불 과정에서 새 시스템은 기존 시스템과 같은 수준의 연산량이 소요되며. 환불 프로토콜의 수행을 한 번 줄여주는 효과가 있으므로 전체적으로 요구되는 연산은 기존보다 적다고 할 수 있다. 또한 수표의 활용 측면에서 보면 새 시스템은 한 번 쓰고 남은 수표를 다시 한 번 쓸 수 있으므로 수 표의 유용성이 향상되었다. 더욱이 새 시스템에서는 기존 시스템과는 다르게 지불한 금액과 환불받는 금 액간에 직접적인 보수관계가 성립하지 않으므로 서로 연관시키는 것을 어렵게 만들어 익명성을 높였다.

5.3 시스템 변형

새 시스템의 이런 장점에도 불구하고 수표를 두 번째 사용할 때에는 지불대금에 대한 제약이 있다. 이것은 Chaum의 온라인 수표시스템에서 거스름의 재사용이 제한적인 것과 동일하다. 이것을 해결하기 위한 세 가지 방법을 생각할 수 있다.

방법 1]

이 방법은 액면가를 나타내기 위해 사용하는 생성 자 튜플의 길이를 기존 보다 두 배로 늘리고 수표의 액면가도 두 배로 증가하여 사용하는 방법이다. 이때 상위 절반의 색 인은 Ci 을 지 불할 때 사용하고. 나머지 색 인은 C? 를 지 불할 때 사용하도록 한다. 이 방법은 지불대금에 대한 제약 문제를 해결할 수 있으나 기존 시스템에서 두 개의 수표를 인출하여 사용하는 경우와 비교하면 환불 과정만 한번으로 축소 된다는 것 외에는 좋아지는 점이 없다.

방법 2]

이 방법은 액면가를 나타내는 각 생성자가 최소 금액 100원을 나타내도록 변경하는 방법이다. 즉, 액면가를 나타내는 생성자 튜플의 길이가 /이면 수 표의 액면가는/X100원이 된다. 이렇게 하면 색인 이 길이가 길어진다는 것을 제외하고는 모든 문제가 해결된다.

[방법 3]

이 방법은 액면가를 나타내는 생성자 튜플의 길이를 기존 보다 세 배로 늘려 사용하는 대신 방법 1과 달리 액면가는 기존과 동일하게 사용하는 방법이다. 예제를 통해 이 방식에 대해 설명하면 다음과 같다. 먼저 /=4라 하자. 그러면 0板부터 払까지 액면가 표현을 위해 사용하게 된다. 이것을 세 부분으로 나 누어《2부터 %까지는 환불받기 위해 사용하고. 弘 부터 必까지는 두 번째 지불에서 사용하며, (爲부터 力까지는 첫 번째 지불에서 사용한다. 두 번째 지불 은 부정을 방지하기 위해 첫 번째 지불보다 많은 정보를 전달하여야 한다. 예를 들어 첫 번째 지불에서 는 700원을 지불한다고 하자. 그러면 d;, . d>, d[을 이용하여 지불을 하게 된다. 두 번째 지불에서는 첫 번째 지불에서 사용하고 남은 금액에 대해 자유롭게 지불할 수 있다. 두 번째에서 600원을 지불한다면 S과 &뿐만 아니라 첫 번째 지불에서 700원을 사 용하였음을 나타내고 거스름을 200원밖에 받을 수 없도록 하기 위해 </]2. d}[. dg. d3, d2. dr을 공개한다. 상점은 반드시 이들을 확인하여 수표의 액면가 를 초과해서 지불되고 있지 않음을 확인하여야 한다. 이 방법에서 부정한 책임자를 찾는 방법은 기존 과 동일하다. 이 방법도 제약 문제를 해결하지만 첫 번째 지불과 두 번째 지불이 상호 연결된다는 것과 색인의 길이가 증가한다는 단점이 있다.

새 시스템은 수표를 인출할 때 두 개의 값에 서명 을 받아 사용한다. 이것을 확장하여 "개의 값에서 명을 받아 "회까지 다시 사용할 수 있도록 확장할 수도 있다. 그러나 "이 증가하면 할수록 인출비용이 증가하는 문제점이 있을 뿐만 아니라 사용하지 않는 값들이 많으면 불필요한 오버헤드가 많아진다.

虬 결 론

오프라인 시스템은 은행의 참여 없이 지불을 처리 하기 때문에 그 과정에서 발생한 거스름이 화폐의 기능을 갖도록 만드는 것은 어렵다. 따라서 기존 시스템은 거스름의 재사용을 고려하지 않고 수표를 두 부분으로 구성하여 사용하고 있다. 수표의 두 부분 중 한 부분은 지불에 사용되고, 다른 한 부분은 지 불 후 발생된 거스름 금액만큼 환불받기 위해 사용 된다. 그런데 인출하는 수표의 액면가가 고정되어 있으므로 지불에 사용된 부분과 환불받기 위해 사용된 부분은 금액가치 측면에서 서로 보수 관계가 성 립된다. 이 관계는 고객의 익명성을 저해하는 요인 이 된다. 뿐만 아니라 수표를 한 번밖에 사용할 수 없기 때문에 나머지 잔액은 항상 다시 입금되어야 하는 불편한 형태의 지불방식이 된다. 이 논문에서는 이런 문제점을 개선하고자 수표의 잔액을 다시 쓸 수 있는 오프라인 시스템을 제안하였다.

이 논문에서 제안한 시스템은 표현 문제를 이용하여 수표의 액면가를 표현하며. 제한적 은닉서명을 사용하여 수표를 인출한다. 이렇게 인출된 수표는 쓰고 남은 금액에 대해 다시 지불할 수 있으며, 같은 수표가 사용된 지불행위를 서로 연관시킬 수 없 도록 하였다. 뿐만 아니라 이중사용과 초과사용 등의 부정행위가 발생하면 그 책임자를 찾을 수 있도록 고안하였다. 이를 위해 표현 문제와 이산 대수 문제를 기반으로 하는 영지식 증명을 이용하고 있다. 또한 익명의 수표가 범죄에 악용되는 것을 방지 하기 위한 익명성 제어 기능도 제공한다. 인출에서 환불까지 소요되는 전체 연산비용은 기존 수표시스 템에서 여러 개의 수표를 인출하여 사용하는 경우보다 적은 수준의 비용이 요구된다. 따라서 한번 쓰 고 나머지는 반납해야 하는 기존의 수표와는 달리 보다 적은 비용으로 수표의 잔액을 다시 쓸 수 있어서 편리함과 활용도를 높이고 동시에 고객의 익명 성을 향상시켰다. 그러나 액면가 표현방법의 한계 때문에 수표의 남은 금액에 대해 자유롭게 지불할 수 있게 하려면 추가적인 연산이 들어가야 하는 단 점이 있다. 앞으로 적은 비용으로 남은 금액에 대해 자유롭게 사용할 수 있는 효율적인 액면가 표현방법에 대한 연구가 필요하다.

References

  1. Advances in Cryptology, Crypto Untraceable Off-Line Cash in Wallets with Observers S. Brands
  2. Advances in Cryptology, Eurocrypt Online Cash Checks D. Chaum
  3. Proc. of the 4th ACM Conf. on Computer and Communications Security A New On-Line Cash Check Scheme R.H. Deng;Y. Han;A.B. Jeng;T. Ngair
  4. Proc. of the 2nd Int. Workshop on Information Security Applications Making Electronic Refunds Reusable S. Kim;H. Oh
  5. Advances in Cryptology, Eurocrypt Efficient Offline Electronic Checks D. Chaum;B. den Boer;E. van Heyst;S. Mjoelsnes;A. Steenbeek
  6. Advances in Cryptology, Crypto Making Electronic Refunds Safer R. Hirschfeld
  7. CWI(Centrum voor Wiskunde en Informatica) Technical Report An Efficient Off-Line Electronic Cash System based on the Representation Problem S. Brands
  8. Proc. of the 2nd Int. Conf. on Financial Cryptography, FC 1998 An Efficient Fair Off-Line Electronic Cash System with Extensions to Checks and Wallets with Observers A. de Solages;J. Traore
  9. Advances in Cryptology, Crypto Universal Electronic Cash T. Okamoto;K. Ohta
  10. Advances in Cryptology, Crypto Demonstrating Possession of a Discrete Logarithm without Revealing it D. Chaum;J. Evertse;J. van de Graaf;R. Peralta
  11. Advances in Cryptology, Crypto 1992` Wallet Databases with Observers D. Chaum;T.P. Pedersen
  12. Proc. of the 3rd Int. Conf. on Information and Communications Security, ICICS 2001 Security of Blind Discrete Log Signatures Against Interactive Attacks C.P. Schnorr
  13. Proc. of the 29th ACM Symp. on Theory of Computing Some Optimal Inapproximability Results J. Hastad
  14. Advances in Cryptology, Asiacrypt 1996 Mis-representation of Identities in E-cash Schemes and how to Prevent it A.H. Chan;Y. Frankel;P.D. Mackenzie;Y. Tsiounis