KR19990080819A - 오프라인 방식의 전자 지불 시스템 - Google Patents

오프라인 방식의 전자 지불 시스템 Download PDF

Info

Publication number
KR19990080819A
KR19990080819A KR1019980014345A KR19980014345A KR19990080819A KR 19990080819 A KR19990080819 A KR 19990080819A KR 1019980014345 A KR1019980014345 A KR 1019980014345A KR 19980014345 A KR19980014345 A KR 19980014345A KR 19990080819 A KR19990080819 A KR 19990080819A
Authority
KR
South Korea
Prior art keywords
bank
cash
customer
electronic
signature
Prior art date
Application number
KR1019980014345A
Other languages
English (en)
Inventor
이필중
이은정
황성운
Original Assignee
윤종용
삼성전자 주식회사
정명식
학교법인 포항공과대학교
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 윤종용, 삼성전자 주식회사, 정명식, 학교법인 포항공과대학교 filed Critical 윤종용
Priority to KR1019980014345A priority Critical patent/KR19990080819A/ko
Publication of KR19990080819A publication Critical patent/KR19990080819A/ko

Links

Abstract

본 발명은 이중사용 사전방지기능을 갖추어 암호학적으로 안전하고 효율적인 오프라인 방식의 전자 지불 시스템에 관한 것으로서, 본 발명에 의한 오프라인 방식의 전자 지불 시스템은 고객장치와의 협의에 의해 거래할 상점장치, 인출금액 및 유효기간이 결정된 전자현금 생성정보에 대해 서명하는 은행장치; 은행장치의 서명을 이용하여 전자현금을 생성하고 생성된 전자현금을 상기 상점장치에 지불하는 고객장치; 및 고객장치로부터 지불받은 상기 전자현금을 상기 은행장치에 예치하는 상점장치를 포함함을 특징으로 한다.
본 발명에 의하면, 고객장치에 관리자(observer)를 사용할 필요가 없고, 전자 현금의 인출, 지불, 결재 과정이 간결하여 경제적으로 구현할 수 있다.

Description

오프라인 방식의 전자 지불 시스템
본 발명은 오프라인 방식의 전자 지불 시스템에 관한 것으로서, 특히 인터넷 환경에서 사용할 수 있도록 이중사용 사전방지기능을 갖추어 암호학적으로 안전하고 효율적인 오프라인 방식의 전자 지불 시스템에 관한 것이다.
일반적으로, 전자 지불 시스템은 넓은 의미로는 전자 금융의 지불 수단이라는 측면에서 홈뱅킹, 텔레뱅킹 등도 포함시켜 말할 수 있지만, 좁은 의미로는 인터넷 상거래를 포함한 전자 상거래에서 사용할 수 있는 지불 시스템을 말한다. 전자 지불 시스템의 지불 수단으로는 디지털 수표, 직불 카드, 신용 카드, 가치 저장 카드(예를들어, 영국의 Mondex) 등과 같은 다양한 형태의 지불 수단이 등장하고 있다.
그런데, 전자 상거래처럼 금융과 관련된 네트워크 거래 처리에서는 송수신되는 메시지에 대한 자료 보안이 매우 중요하다. 자료 보안을 위해서는 통신 상대방이 항상 확인, 인증되어야 하고, 송신자와 수신자 사이의 책임 범위가 명확히 정의되어 송신자와 수신자 상호간 사후 부인 방지가 이루어져야 한다. 또, 제3자가 주고 받는 메시지를 불법 사용하거나 해독함으로써, 프라이버시가 침해되거나 금전적인 손실이 발생되는 것을 방지하여야 한다. 따라서, 전자 지불 시스템에서는 프라이버시(도청으로부터 보호), 인증(사용자에 대한 인증 및 메시지 무결성), 부인 방지(트랜잭션 수행을 나중에 부인 못하게 방지) 등의 안전성에 관한 특성들이 기본적으로 요구되고 있다.
본 발명에서 다루는 전자 지불 시스템에서 사용되는 지불 수단의 형태는 전자 현금(electronic cash)이다. 이름이 의미하듯이, 전자 현금는 우리 실세계의 화폐 시스템을 모델하여 구축된 전자 지불 시스템의 지불 수단이라고 볼 수 있다. 전자 현금 설계자들은 실제 화폐가 갖추고 있는 불추적성(untracibility)과 익명성(anonymity)을 전자 현금에서 유지하는데 초점을 맞추고 있다. 따라서, 전자 현금은 위에서 기술된 안전성에 관한 특성(프라이버시, 인증, 부인 방지)뿐만 아니라, 사용자 익명성 및 지불 불추적성을 제공하는 전자 지불 시스템의 지불 수단이라고 정의할 수 있다.
전자 현금의 안전성에 관한 또 하나의 특성으로 이중 사용 문제가 있다. 원래, 전자 현금은 디지털 데이터이므로 동일 현금을 용이하게 복사하여 여러번 사용할 수 있다.
온라인 지불 시스템에서는 고객이 지불할 때마다 은행이 개입하므로 이러한 이중 사용을 사전에 방지할 수 있다. 즉, 은행은 이미 사용된 현금에 대한 기록을 보관하는 방법(예를들면, Ecash,CAFE)을 사용하거나, 이미 발행되어 아직 사용되지 않은 현금에 대한 기록들을 보관하고 있다가 사용된 현금을 데이타베이스에서 삭제하는 방법(예를들면, NetCash)을 사용한다. 이렇게 전자 현금에 관한 데이터베이스를 유지함으로써 이중 사용을 사전에 방지할 수 있다.
그러나, 오프라인 지불 시스템에서는 사용자가 현금을 사용할 때 은행은 관여하지 않기 때문에, 온라인 지불 시스템에서와 같은 방식으로 이중 사용을 예방할 수 없다. 다만, 사용자가 사용한 현금이 상점으로부터 은행에 예치된 후 그 현금을 은행에 보관하는 데이타베이스와 비교함으로써, 사후에 추적할 수 있다. 사후 추적에 의해 이중 사용 사실을 파악할 수는 있으나, 이중 사용 문제를 근본적으로 해결하지는 못한다. 예를들어, 만약 어떤 사람이 많은 액수의 현금을 이중 사용하고 사라진다면, 그는 사후 추적 방식을 채택한 전자 지불 시스템을 성공적으로 속이는 것이 된다.
오프라인 지불 시스템에 있어서 이중 사용을 사전에 방지하는 또 하나의 방법으로는 일회 지불 금액에 상한값을 두어 이중 사용을 최소화하는 방법이 있다. 이 방법에 의하면, 이전에 이미 사용된 거액 현금을 받아들임으로써 발생되는 금전적 손해를 줄일 수는 있으나, 서로 다른 장소에서 동일한 소액 현금을 여러 번 사용하는 것을 막을 수는 없다.
최근에는 고객의 지불 장치 내에 "관찰자(observer)"라 불리는 은행이 발행하는 부정사용방지기(tamper-resistant device)를 장착함으로써 현금의 이중 사용을 사전에 방지하는 방법을 사용하고 있다. 이 방법에서는 관찰자의 협조가 있어야만 지불이 성공적으로 이루어지게 된다.
그런데, 부정사용방지기를 이용하는 방법에서는 하드웨어 장치인 부정사용방지기에 그 안전성을 전적으로 의존하는 문제점을 지니고 있다. 따라서 불법적인 사용자가 관찰자의 부정사용방지기능을 깨뜨리고 이중 사용하더라도 이를 사후 추적할 수 있는 메카니즘을 갖춘 시스템이 제안되고 있지만, 이러한 시스템에 의하더라도 상기 사후 방식에서의 문제점까지 완전하게 해결된 것은 아니다.
그리고, 관찰자는 현재 구현된 바는 없으나, 그 특성상 휴대하기가 용이해야 하고, 부정사용방지기능을 위한 복잡한 지수 계산을 수행할 수 있어야 하기 때문에 IC 카드 내에 구현되어야 할 것이다. 또한 관찰자가 장착된 고객의 지불 장치는 관찰자와는 별도로 사용자의 비밀 정보(비밀키 등)를 저장하여 사용자 인증, 전자 서명 및 암호화를 수행할 수 있는 구성요소를 포함한다. 따라서 관찰자에는 제한된 용량의 메모리와 제한된 성능의 연산기가 할당될 것이므로, 관찰자가 인출 및 지불 단계마다 복잡한 지수 계산을 수행하는 것도 부담이 아닐 수 없다.
또한, 관찰자를 사용하는 방법에 의하면 전자 현금 발행 기관에서 관찰자의 공급 비용을 부담해야 할 것이고, 이런 암호적인 엔진은 단순한 IC 카드에 비해서 가격이 비싸다는 경제적인 문제점도 발생한다.
은행이 누구의 돈이 어디서 사용되는 지를 알지 못하게 하기 위하여, 전자 지불 시스템은 지불시 지불자 익명성 및 지불 불추적성을 제공해야 한다. 이를 위해서는 은행에서 특정 인출을 특정 예치(결제)로 연결시키지 못하게 하는 것이 필요하다. 이것은 은닉 서명(blind signature)라 불리는 특정한 종류의 디지털 서명을 사용함으로써 가능하다.
여러 가지 은닉 서명 기법들이 소개되어 있다. 그러나 이런 은닉 서명들은 메시지와 그에 대한 서명의 쌍 사이에 완벽한 기밀성(confidentiality)을 제공하기 때문에, 서명자는 그 은닉된 메시지가 정확히 그가 원하는 정보를 담고 있는지를 확인할 수 없었다. 이 문제를 해결하기 위하여, 부분 은닉 서명(partially blind signature)라 불리는 은닉 서명 기법이 에이브(Abe)에 의해 제안되었다. 부분 은닉 서명 기법에서는 서명자와 서명을 받는 사람 모두에 의해 협상된(일치된) 정보는 서명 속에 명백한 형태로 들어 있고 기타 서명될 정보는 서명자로부터 숨겨지는 것을 확신할 수 있다는 잇점이 있다.
본 발명은 상기의 문제점을 해결하기 위하여 창작된 것으로서, 관찰자(observer)를 사용하지 않고 이중 사용 방지 기능을 갖춘 수신자 지정 오프라인 전자 지불 시스템을 제공함을 그 목적으로 한다.
또한, 상기 수신자 지정 오프라인 전자 지불 시스템에서 사용되는 구좌 개설방법, 전자 현금 인출방법, 전자 현금 지불방법 및 전자 현금 결제방법을 제공함을 그 목적으로 한다.
도 1은 본 발명에 의한 오프라인 전자 지불 시스템의 구성도이다.
도 2는 본 발명에 의한 전자 현금의 인출방법을 설명하기 위한 순서도이다.
도 3은 본 발명에 의한 전자 현금의 지불방법을 설명하기 위한 순서도이다.
도 4는 본 발명에 의한 전자 현금의 결재방법을 설명하기 위한 순서도이다.
상기의 목적을 달성하기 위한 본 발명에 의한 고객장치가 은행장치로부터 인증된 전자현금을 상점장치에 지불하는 전자 지불 시스템은 상기 고객장치와의 협의에 의해 거래할 상점장치, 인출금액 및 유효기간이 결정된 전자현금 생성정보에 대해 서명하는 은행장치; 상기 은행장치의 서명을 이용하여 전자현금을 생성하고 생성된 전자현금을 상기 상점장치에 지불하는 고객장치; 및 상기 고객장치로부터 지불받은 상기 전자현금을 상기 은행장치에 예치하는 상점장치를 포함함을 특징으로 한다.
상기의 다른 목적을 달성하기 위한 본 발명에 의한 전자 지불 시스템에서 고객장치가 구좌를 개설하는 방법은 (a) 고객장치가 상기 이산대수형 서명체계를 이용하여 고객의 비밀키 및 공개키를 생성하는 단계; (b) 고객장치가 상기 공개키를 은행장치에 전달하는 단계; 및 (c) 은행장치가 상기 공개키에 대한 인증서를 발급하는 단계를 포함함을 특징으로 한다.
상기의 또 다른 목적을 달성하기 위한 본 발명에 의한 전자 지불 시스템에서 전자 현금 인출방법은 (a) 고객장치가 인출금액, 유효기간이 결정된 전자현금 및 고객장치의 공개키에 대한 은행의 인증서를 포함하는 현금 생성정보 info를 생성하는 단계; (b) 고객장치가 거래할 상점장치에 대한 정보를 포함하는 서명 정보 M1을 계산하는 단계; (c) 고객장치가 상기 현금 생성정보 info 및 상기 서명 정보 M1에 대한 이산대수형 고객 서명 Σ를 계산하는 단계; (d) 고객장치가 상기 현금 생성정보 info, 상기 서명 정보 M1및 상기 이산대수형 고객 서명 Σ를 상기 은행장치에 전달하는 단계; (e) 은행장치가 상기 이산대수형 고객 서명 Σ를 확인하고, 이상이 없으면 은행 서명 Φ를 계산하여 상기 고객장치에 전달하는 단계; 및 (f) 고객장치가 은행 서명 Φ를 이용하여 전자현금 A를 생성하고, 상기 전자현금 A의 유효성을 인증하는 단계를 포함함을 특징으로 한다.
상기의 또 다른 목적을 달성하기 위한 본 발명에 의한 전자 지불 시스템에서 전자 현금 지불방법은 (a) 고객장치가 (es, ns)를 공개키로 갖는 상점장치에 현금 정보 {m,c,A}를 전달하는 단계; (b) 상점장치가 상기 현금 정보 {m,c,A}의 유효성을 인증하는 단계; (c) 상점장치가 상기 유효 기간을 확인하고, 효력이 상실하였으면 전자 현금 A의 입수를 거절하는 단계; (d) 상점장치에 구비된 데이터베이스를 탐색하여 전자 현금 A와 동일한 현금이 발견되면 전자 현금 A의 입수를 거절하는 단계; 및 (e) 상기 (c)단계 및 상기 (d)단계에서 거절되지 않은 전자 현금 A를 상점장치의 데이터베이스에 저장하는 단계를 포함함을 특징으로 한다.
상기의 또 다른 목적을 달성하기 위한 본 발명에 의한 전자 지불 시스템에서 전자 현금 결재방법은 (a) 상점장치가 은행장치에 현금 정보 {m,c,A}를 전달하는 단계; (b) 은행장치가 상기 현금 정보 {m,c,A}의 유효성을 인증하는 단계; (c) 은행장치가 상기 유효 기간을 확인하고, 유효기간이 경과하지 않은 전자 현금 A의 예치를 거절하는 단계; (d) 은행장치에 구비된 데이터베이스를 탐색하여 전자 현금 A와 동일한 현금이 발견되면 전자 현금 A의 예치를 거절하는 단계; 및 (e) 상기 (c)단계 및 상기 (d)단계에서 거절되지 않은 전자 현금 A를 은행장치의 데이터베이스에 저장하는 단계를 포함함을 특징으로 한다.
이하에서 첨부된 도면을 참조하여 본 발명을 상세히 설명한다.
도 1에 의하면, 본 발명에 의한 전자 지불 시스템은 은행장치(10), 고객장치(20), 및 상점장치(30)을 포함하여 구성된다.
은행장치(10)는 고객장치(20)와의 협의에 의해 결정된 거래할 상점장치(30)에 대한 정보, 인출금액 및 유효기간 등의 전자현금 생성정보에 대해 서명하고, 상점장치(30)로부터 전달받은 전자 현금의 유효성을 확인하여 확인된 전자 현금을 예치한다.
고객장치(20)는 은행장치(10)의 서명을 이용하여 전자현금을 생성하고, 생성된 전자현금의 유효성을 확인한 다음, 상기 거래의 대금으로서 그 전자 현금의 사용처로 미리 결정된 상점장치(30)에 지불한다.
상점장치(30)는 고객장치(20)로부터 전달받은 전자현금의 유효성을 확인한 후 접수하고, 접수된 전자현금을 그 유효기간이 경과한 후에 은행장치(10)에 예치한다.
즉, 본 발명의 가장 핵심적인 요지는 고객이 사용하는 전자 현금 내에 상점의 신원 정보와 유효기간을 넣었다는 점이다. 따라서, 본 발명에 의한 전자 현금은 유효 기간이 지나서는 사용될 수 없으며, 또한 오직 그 상점에게만 사용될 수 있다. 또한, 결제 단계에서 상점은 지불된 전자 현금을 바로 은행에 예치할 수 없고, 유효 기간동안 상점의 데이터베이스에 저장된다. 이렇게 함으로써, 만약 고객이 유효 기간 내에 동일 현금를 이중으로 사용하게 되면 상점은 이를 적발할 수 있게 된다. 따라서, 은행은 관리자(observer)를 사용하지 않고 기존에 있는 상점의 데이터베이스를 활용하여 고객의 이중 사용을 사전에 방지할 수 있다.
이하에서는 본 발명에 의한 전자 지불 시스템의 일실시예의 동작과정을 구체적으로 설명한다.
먼저, 본 발명에 의한 전자 지불 시스템의 초기화 단계는 다음과 같다.
● 은행장치(10)는 다음과 같은 시스템 파라미터와 해쉬 함수를 선택한다.
- p', q', p", q": 모두 소수이면서,p' = 2p" + 1, q' = 2q" + 1이 되면서 법p'·q'에 대한 곱셈 역원을 구하는 것이 어려울 정도로 충분히 커야 하고, 각각의 값은 512 비트 이상의 크기를 가지고 은행장치(10)에 의해 관리되는 비밀값이다.
- n b : 두 소수p'q'의 곱이다. 그리고, 알려진 소수 계산 알고리듬에 의해n b 로부터p', q' 구해지기 어려워야 한다.
-λ(n b ) :p'-1q'-1의 최소 공배수이다. 이 경우 λ(n b ) =2p"q"이 성립한다.
-c: 인출 단계 초기나 그 이전에 은행과 고객 사이에 협상되며 인출 금액, 유효 기간과 같은 정보를 포함한다.
- h(·): 임의의 비트 문자열을 입력받아k비트 출력을 생성하는 충돌회피성 일방향 해쉬함수이다(k≥ 160).
-t(·):c를 RSA 공개지수로 대응시키며 공개지수 생성함수라 불린다.t(·)t(c) = 2h(c) + 1로 계산되며 λ(n b )과 서로 소이며 다음 두 조건을 만족하도록 결정되어야 한다.
(조건 1)t(·)는 충돌 회피성 일방향함수이어야 한다.
이 조건은h(·)가 충돌회피성 일방향 해쉬함수이므로 자연히 만족된다.
(조건 2) ∀c i ≠c j : t(c i )는 Π j≠i t(c j )을 나누어 나머지를 만들지 않는다.
은행장치(10)는t(x) 이 조건들을 만족하는지를c의 전공간에서 검사해야 한다.
● 은행장치(10)는 고객장치(20)가 비밀키와 공개키를 생성하도록 이산대수형 서명체계를 채택한다. 본 발명의 일실시예에서 사용되는 이산대수형 서명체계로는 Schnorr, DSA, KCDSA 등이 있다. 서명을 만드는 알고리듬의 명시는 본 발명의 범위가 아니므로 이에 대한 설명은 생략한다.
● 은행장치(10)와 상점장치(30)는 다음과 같이 RSA 체계를 채택한다
(e s , n s )/d s ,(e b , n b )/d b 는 각각 다음 조건을 만족시키는 상점장치(30), 은행장치(10)의 공개키/비밀키 쌍이다.
e s d s = 1modλ(n s ), e b d b = 1modλ(n b ).
여기서n s <n b , e s > |n s | 조건을 만족해야 하며, |n s |는n s 의 비트수를 의미한다.
구좌의 개설과정은 다음과 같다.
고객장치(20)는 은행장치(10)가 정한 이산대수형 서명체계를 이용하여 160 비트 이상의 크기를 지닌 자신의 비밀키와 공개키를 생성한다. 고객장치(20)는 생성된 공개키를 은행장치(10)에 보내어 그에 대한 인증서(certificate)를 발급받는다.
도 2에 의하면, 인출 과정은 다음과 같다.
고객은 먼저 상점을 선택하고 상점장치(30)의 공개키 (e s , n s )를 얻는다. 그런 다음, 인출 금액(amount)과 유효 기간(time)이 포함된 공통 정보c에 대해서 은행과 협상한다(200 단계). 유효 기간(time)은 응용에 따라 다를 수 있다. 고객장치(20)는info라는 메시지를 구성한다(210 단계). 그것은c및 고객의 인증서(certificate)의 연접으로 구성된다. 거기에는 다른 데이타 항목이 추가될 수 있다. 은행은 공개지수 생성함수t(c)를 결정한 후에 이를 고객에게 공개한다(220 단계).
고객장치(20)는 nb보다 작은 자연수 중에서 임의의r, m를 선택하고 다음을 계산한다.
고객장치(20)는M 1 info에 대한 이산대수형 서명 Σ을 계산한다. 고객장치(20)는 {M 1 , Σ, info}를 은행장치(10)에 전송한다(230 단계).
은행장치(10)는info로부터c,certificate정보들을 얻고서 공통정보c를 이용하여 인출금액, 유효 기간을 확인한다. 그리고, 은행장치(10)는M 1 info에 대한 고객장치(20)의 서명 Σ를 확인한다. 위의 확인 과정이 모두 통과되면 은행장치(10)는 Φ=(M 1 ) 1/t(c) modn b 를 계산하고 Φ를 고객장치(20)에 전송한다(240 단계).
고객장치(20)는 Φ를 받아A = Φr -1 modn b 를 계산하고 다음 수식이 성립하는지 검사한다(250 단계).
정리 1.Φ가 위의 단계에 따라 계산된 서명값이고 조건n s < n b 이 성립하면, 수학식 1이 성립한다.
증명.
M S =Me s modn s 이라 하자. 조건n s < n b 에 의해서,M S modn b = M S 이 성립한다.
따라서 수학식 1이 성립한다. (증명끝)
도 3에 의하면, 지불 과정은 다음과 같다.
고객장치(20)는 현금 정보 {m, c, A}를 (e s , n s )를 공개키로 갖는 상점에 전송한다.
상점장치(30)는 다음 수식을 검사함으로써 인출 금액, 유효 기간, 은행장치(10)의 서명을 확인한다(300 단계).
상점장치(30)는 현금의 유효 기간을 확인한다(310 단계). 만약 유효 기간이 지났으면 상점은 그 현금을 거절한다(340 단계).
위의 과정이 모두 통과되면 상점장치(30)는 자신의 데이타베이스를 탐색하여 이전에 동일한 현금이 저장되었는지를 확인한다(320 단계). 동일한 현금이 발견되지 않으면 상점은 그 현금을 받아들이고 그렇지 않으면 거절한다(330, 350 단계).
상점장치(30)는 고객장치(20)로부터 받은 현금을 은행장치(10)에 바로 예치할 수 없고, 오직 그 현금의 유효 기간이 지난 이후에만 은행장치(10)에 예치할 수 있다.
앞에서 언급한 바와 같이 상점장치(30)는 자신의 데이터베이스를 관리하여 아직 예치되지 않은 현금을 보관한다. 상점장치(30)는 받은 현금을 그것의 유효 기간이 지날 때까지 은행장치(10)에 예치할 수 없다. 따라서, 상점장치(30)는 동일 현금이 이중 사용되는 지를 알 수 있다. 만약 동일한 현금이 발견되면, 그것은 그 현금이 이중 사용되었음을 의미한다. 그리고, 상점장치(30)는 유효기간이 지난 현금은 거절해야 한다. 따라서, 고객장치(20)는 유효 기간 내에 사용되지 않은 현금을 은행장치(10)와 협의하여 갱신하여야 한다. 이렇게 해서 상점은 고객에 의한 이중 사용을 사전에 막을 수 있다.
도 4에 의하면, 결제 과정은 다음과 같다.
상점장치(300)는 현금 정보{m, c, A}를 은행장치(10)에 전송한다.
은행장치(10)는 다음 수식이 성립되는지를 검사함으로써 인출 금액, 유효 기간, 은행장치(10) 자신의 서명을 확인한다(400 단계).
은행장치(10)는 현금의 유효 기간을 검사한다(410 단계). 은행장치(10)는 현금의 유효 기간이 지나지 않았으면 상점장치(30)로부터의 예치를 거절한다(440 단계).
위의 과정이 모두 통과되면 은행장치(10)는 동일한 현금이 저장되었는지를 검사하기 위해 자신의 데이타베이스를 검색한다(420 단계). 동일한 현금이 발견되지 않으면 은행장치(10)는 상점장치(30)로부터의 예치를 받아들이고 그렇지 않으면 이를 거절한다(430, 450 단계).
다음은 본 발명에 의한 전자 지불 시스템에 대하여 예상되는 공격들 및 그들 각각에 대한 안전성을 정리한 것이다.
(1) 은행장치(10)의c에 대한 고객 추적 정보 삽입 불가
은행장치(10)는 나중에 그 트랜잭션을 구별할 수 있는 숨겨진 정보를c에 넣을 수 없다. 상수c는 인출 프로토콜을 시작할 때나 시작 이전에 협상되고, 또 고객에게 명백하게 보이므로 은행장치(10)는 어떤 비밀 정보도c에 집어 넣을 수 없다. 만약 은행장치(10)가 어떤 비밀 정보를c에 집어넣기 위해서는 은행장치(10)는t(c) = t(c')를 만족하는c'를 찾아야 한다. 그러나 이것은t(·)가 위에서 기술된 조건 1을 만족하므로 불가능하다.
(2) 고객의 협상된c변경 불가
고객장치(20)는 은행장치(10)와 협상된 c 를 변경할 수 없다. 다음 두 가지 경우로 나누어 살펴본다.
(i) 지수t(c i )가 임의의 가능한t(c j )들의 다항식P로 표현될 수 있으면, 고객장치(20)는 상수c를 위조할 수 있다. 예를 들어, 고객장치(20)가 상수c-1에 대하여 메시지M에 받은 서명을S = M 1/t(c-1) 라 하자. 이때, 다음 수식
이 성립하므로 고객장치(20)는 기존의 공통 정보c-1과 메시지M에 대한 서명S로부터 새로운 공통 정보c와 메시지MS 2 에 대한 새로운 서명S'를 얻게 된다. 그러나 본 발명에 의한 전자 지불 시스템에서는, 은행장치(10)의 서명을 받는 메시지M를 일방향 해쉬 함수h를 사용하여m으로부터 만들기 때문에 이런 종류의 위조는 방지된다.
(ii) 고객장치(20)는 이전에 받은 서명에 서로 다른 상수들에 대해서 다중 서명(multiple signature)을 받아c를 변경하려고 시도할 수 있다. 이를 위해서 고객장치(20)는 메시지Mc j 에 대해서 은행장치(10)의 서명A j 를 받는다. 그리고 나서 고객장치(20)는 이전의 서명A j 에 다른c j '에 대해서 서명을 받는다. 모든j(≠ i)에 대해서 이를 반복하면, 고객장치(20)는Mc i 에 대해서 다음 식을 만족하는 유효한 서명A j 를 얻을 수 있다. 그러나, 이러한 위조는t(c i )가 만족하는 조건 2에 의해 방지된다.
(3) 은행의 서명 위조 불가
은행장치(10)를 제외한 그 무엇도 은행장치(10)의 서명을 위조할 수 없다. 위조하기 위해서는 식을 만족하는 (A, M, c)를 얻어야 한다. 주어진M에 대하여, 위의 식을 만족시키는A을 얻는 것은 RSA 체계를 깨는 것 만큼이나 어렵다.
(4) 동일 현금의 여러 상점에 사용 불가
고객장치(20)는 동일한 현금을 여러 상점장치(30)에 사용할 수 없다. 이것은 고객장치(20)가 메시지 속에 상점장치(30)의 공개키를 넣지 않고 메시지 자체에 은행장치(10)의 서명을 받아 이것(잘못된 현금)을 가지고 유효 기간 내에 여러 상점장치에 지불하려고 하는 경우를 생각할 수 있다. 고객장치(20)에 의해 이루어지는 시도는 다음 세 가지 경우로 나누어 볼 수 있다.
(i) 먼저 고객장치(20)는 난수m으로부터M = h(m)을 구하여 여기에 은행장치(10)의 서명을 받는다.A = M 1 / t(c) modn b 를 메시지M에 대한 은행장치(10)의 서명이라 하자. 이러한 종류의 이중 사용을 위해서, 고객장치(20)는 어떤 (e s ,n s )들에 대하여 다음 식
을 만족하는 현금A 1 을 얻기를 원한다. 이를 위해 고객장치(20)는A로부터 또는을 계산한다. 다음에 기술되는 정리 2에서는 고객장치(20)가를 계산하는 경우, 조건e s |n s | 때문에 이러한 잘못된 현금을 원천적으로 만들 수 없음을 증명한다.
정리 2.조건e s ≥ |n s | 이 성립하면,의 경우에 수학식 2는 성립하지 않는다.
증명.
우리는 수학식 2의 동치식을 다음 수식
과 같이 쓸 수 있다.
A는 0도 1도 아니므로,A ≥2이어야 한다.
만약e S |n s |이면,이 성립한다.
따라서 모든A에 대해서,를 얻는다.
부등식은 다음 식을 의미한다.
(증명끝)
다음에 기술되는 정리 3에서는 고객장치(20)가을 계산하여 수학식 2를 만족하도록 하는 것은 RSA 서명 체계를 깨는 것을 요구하기 때문에 역시 불가능함을 설명한다.
정리 3.고객장치(20)가 주어진M에 대하여A로부터를 계산했을 때, 수학식 2를 만족하는M을 구하기 어렵다.
증명.
수학식 2의 좌변은
수학식 2의 우변은n s <n b 때문에 다음이 성립한다.
(1)과 (2)가 같다고 가정하자.
그러면 다음 등식이 성립해야 한다.
그러나 이것은 동일한 메시지 M이 서로 다른 공개키에 의해 동일한 값으로 암호화되었음을 의미하므로 이것은 RSA체계를 깨뜨리는 것을 의미한다. 따라서, 고객장치(20)가 수학식 2를 만족하는M을 구하기 어렵다.
(증명끝)
(ii) 고객장치(20)가 수학식 2를 만족하는 M을 찾았다 하더라도 이로부터M = h(m)을 만족하는 m을 구하는 것은 계산적으로 매우 어렵다. 로 가정할 때, 주먹구구식 공격(bruteforce attack)에 의해서 m을 구하기 위해서는 번의 임의의 메시지 해슁이 요구된다. 초당 백만번의 해슁 능력을 갖는 기계를 돌렸을 때, 주어진 값으로 해슁되는 메시지를 찾는데는 적어도 2.5 x 1034 년 이상이 소요된다.
(iii) 고객장치(20)가 등식
At(c)modnb=(Mes modns)modnb=(Mesmodns)′modnb 을 만족시키는 (A, M, c)을 얻으려고 하는 경우를 생각할 수 있다( 단, (e s , n s ) ≠ (e s ', n s ') ). 그러나, 이것 또한 RSA 체계를 깨는 것 만큼이나 어렵다.
(5) 고객에 대한 누명 불가
고객을 이중 사용자로 누명을 씌우는 것은 불가능하다. 은행은 상점과 공모하더라도 고객을 이중 사용자로 누명을 씌울 수 없다. 이것은 발행된 전자 현금이 고객의 신원에 대한 어떤 정보도 포함하고 있지 않기 때문이다. 따라서, 은행은 상점과 결탁하더라도 고객이 이중 사용했다는 법적 효력을 갖는 증거를 제시할 수 없다.
본 발명에 의하면, 관리자(observer)를 사용할 필요가 없고, 전자 현금의 인출, 지불, 결재 과정이 간결하여 경제적으로 구현할 수 있다.
즉, 은행은 관리자 관련 비용을 절약할 수 있고, 고객장치는 사용자의 비밀 정보를 담고 있는 기존의 IC 카드 내에 구현할 수 있으며, 상점장치는 IC 카드에 의해 구현할 수 있다.
또한, 본 발명은 유효기간이 미리 정해지고 특정 상점에서 사용되는 전자 상품권 시스템으로도 응용될 수 있다.

Claims (19)

  1. 고객장치가 은행장치로부터 인증된 전자현금을 상점장치에 지불하는 전자 지불 시스템에 있어서,
    상기 고객장치와의 협의에 의해 거래할 상점장치, 인출금액 및 유효기간이 결정된 전자현금 생성정보에 대해 서명하는 은행장치;
    상기 은행장치의 서명을 이용하여 전자현금을 생성하고 생성된 전자현금을 상기 상점장치에 지불하는 고객장치; 및
    상기 고객장치로부터 지불받은 상기 전자현금을 상기 은행장치에 예치하는 상점장치를 포함함을 특징으로 하는 전자 지불 시스템.
  2. 제1항에 있어서, 상기 고객장치는
    IC 카드이고,
    상기 상점장치는
    IC 카드 단말기임을 특징으로 하는 전자 지불 시스템.
  3. 제1항에 있어서, 상기 고객장치는
    이산대수형 서명체계를 사용함을 특징으로 하는 전자 지불 시스템.
  4. 제3항에 있어서, 상기 이산대수형 서명체계는
    Schnorr임을 특징으로 하는 전자 지불 시스템.
  5. 제3항에 있어서, 상기 이산대수형 서명체계는
    DSA임을 특징으로 하는 전자 지불 시스템.
  6. 제3항에 있어서, 상기 이산대수형 서명체계는
    KCDSA임을 특징으로 하는 전자 지불 시스템.
  7. 제1항 또는 제3항에 있어서, 상기 은행장치 및 상기 상점장치는
    RSA 체계를 사용함을 특징으로 하는 전자 지불 시스템.
  8. 제7항에 있어서, 상기 RSA 체계는
    조건 esds= 1 mod λ(ns), ebdb= 1 mod λ(nb), es> |ns|에 만족하는 상기 은행장치 공개키/비밀키 쌍 (eb,nb)/db및 상기 상점장치의 공개키/비밀키 쌍 (es,ns)/ds를 선택하는 것을 특징으로 하는 전자 지불 시스템.
    (여기에서, nb는 소정의 소수 p', q'의 곱이고, λ(nb)는 p'-1과 q'-1의 최소공배수이고, ns는 소정의 소수 p", q"의 곱이고, λ(ns)는 p"-1과 q"-1의 최소공배수이고, ns< nb이고, |ns|는 ns의 비트수이다.)
  9. 제8항에 의한 전자 지불 시스템에서 고객장치가 구좌를 개설하는 방법에 있어서,
    (a) 고객장치가 상기 이산대수형 서명체계를 이용하여 고객의 비밀키 및 공개키를 생성하는 단계;
    (b) 고객장치가 상기 공개키를 은행장치에 전달하는 단계; 및
    (c) 은행장치가 상기 공개키에 대한 인증서를 발급하는 단계를 포함함을 특징으로 하는 전자 지불 시스템에서의 구좌 개설방법.
  10. 제8항에 의한 전자 지불 시스템에서 전자 현금을 인출하는 방법에 있어서,
    (a) 고객장치가 인출금액, 유효기간이 결정된 전자현금 및 고객장치의 공개키에 대한 은행의 인증서를 포함하는 현금 생성정보 info를 생성하는 단계;
    (b) 고객장치가 거래할 상점장치에 대한 정보를 포함하는 서명 정보 M1을 계산하는 단계;
    (c) 고객장치가 상기 현금 생성정보 info 및 상기 서명 정보 M1에 대한 이산대수형 고객 서명 Σ를 계산하는 단계;
    (d) 고객장치가 상기 현금 생성정보 info, 상기 서명 정보 M1및 상기 이산대수형 고객 서명 Σ를 상기 은행장치에 전달하는 단계;
    (e) 은행장치가 상기 이산대수형 고객 서명 Σ를 확인하고, 이상이 없으면 은행 서명 Φ를 계산하여 상기 고객장치에 전달하는 단계; 및
    (f) 고객장치가 은행 서명 Φ를 이용하여 전자현금 A를 생성하고, 상기 전자현금 A의 유효성을 인증하는 단계를 포함함을 특징으로 하는 전자 지불 시스템에서의 전자현금 인출방법.
  11. 제10항에 있어서, 상기 (a)단계는
    고객장치가 거래할 상점장치를 선택하고, 상점장치의 공개키(es,ns)를 얻는 단계;
    고객장치가 은행장치와의 협의에 의해 인출금액 및 유효기간을 포함한 공통정보 c를 결정하는 단계;
    은행장치는 공개지수생성함수 t(c)를 결정하여 고객장치에 전달하는 단계; 및
    고객장치가 상기 공통정보 c 및 고객장치의 공개키에 대한 은행의 인증서를 포함하는 현금 생성정보 info를 생성하는 단계를 포함함을 특징으로 하는 전자 지불 시스템에서의 전자현금 인출방법.
  12. 제10항에 있어서, 상기 (b)단계에서의 서명 정보 M1
    고객장치가 은행장치의 공개키 nb보다 작은 정수 중에서 소정의 수 r,m을 선택하고, 식
    에 의해 계산하는 것을 특징으로 하는 전자 지불 시스템에서의 전자현금 인출방법.
    (여기에서, h(·)은 임의의 비트열을 입력으로 받아 160 비트 이상의 소정의 크기의 비트 출력을 생성하는 충돌회피성 일방향 해쉬함수로서, t(·)=2h(·)+1의 관계에 있다.)
  13. 제10항에 있어서, 상기 (e)단계에서의 은행 서명 Φ는
    식 Φ = (M1)1/t(c)mod nb
    에 의해 계산하는 것을 특징으로 하는 전자 지불 시스템에서의 전자현금 인출방법.
  14. 제10항에 있어서, 상기 (f)단계에서의 전자 현금 A는
    A = Φr -1 modn b
    에 의해 계산하는 것을 특징으로 하는 전자 지불 시스템에서의 전자현금 인출방법.
  15. 제10항에 있어서, 상기 (f)단계에서 전자 정보 {m,c,A}의 유효성의 인증은
    이 성립하는지 여부를 확인하는 것에 의해 이루어짐을 특징으로 하는 전자 지불 시스템에서의 전자현금 인출방법.
  16. 제8항에 의한 전자 지불 시스템에서 전자 현금을 지불하는 방법에 있어서,
    (a) 고객장치가 (es, ns)를 공개키로 갖는 상점장치에 현금 정보 {m,c,A}를 전달하는 단계;
    (b) 상점장치가 상기 현금 정보 {m,c,A}의 유효성을 인증하는 단계;
    (c) 상점장치가 상기 유효 기간을 확인하고, 효력이 상실하였으면 전자 현금 A의 입수를 거절하는 단계;
    (d) 상점장치에 구비된 데이터베이스를 탐색하여 전자 현금 A와 동일한 현금이 발견되면 전자 현금 A의 입수를 거절하는 단계; 및
    (e) 상기 (c)단계 및 상기 (d)단계에서 거절되지 않은 전자 현금 A를 상점장치의 데이터베이스에 저장하는 단계를 포함함을 특징으로 하는 전자 지불 시스템에서의 전자현금 지불방법.
    (여기에서, m은 고객장치가 은행장치의 공개키 nb보다 작은 정수 중에서 선택한 소정의 수이고, c는 고객장치가 은행장치와의 협의에 의해 인출금액 및 유효기간을 포함한 공통정보이고, A는 고객장치가 은행 서명을 이용하여 생성한 전자 현금이다.)
  17. 제16항에 있어서, 상기 (b)단계에서 현금 정보 {m,c,A}의 유효성의 인증은
    이 성립하는지 여부를 확인하는 것에 의해 이루어짐을 특징으로 하는 전자 지불 시스템에서의 전자현금 지불방법.
    (여기에서, h(·)은 임의의 비트열을 입력으로 받아 160 비트 이상의 소정의 크기의 비트 출력을 생성하는 충돌회피성 일방향 해쉬함수이고, t(·)는 t(·) = 2h(·)+1의 관계에 있는 공개지수생성함수이다.)
  18. 제8항에 의한 전자 지불 시스템에서 전자 현금을 결재하는 방법에 있어서,
    (a) 상점장치가 은행장치에 현금 정보 {m,c,A}를 전달하는 단계;
    (b) 은행장치가 상기 현금 정보 {m,c,A}의 유효성을 인증하는 단계;
    (c) 은행장치가 상기 유효 기간을 확인하고, 유효기간이 경과하지 않은 전자 현금 A의 예치를 거절하는 단계;
    (d) 은행장치에 구비된 데이터베이스를 탐색하여 전자 현금 A와 동일한 현금이 발견되면 전자 현금 A의 예치를 거절하는 단계; 및
    (e) 상기 (c)단계 및 상기 (d)단계에서 거절되지 않은 전자 현금 A를 은행장치의 데이터베이스에 저장하는 단계를 포함함을 특징으로 하는 전자 지불 시스템에서의 전자현금 결재방법.
    (여기에서, m은 고객장치가 은행장치의 공개키 nb보다 작은 정수 중에서 선택한 소정의 수이고, c는 고객장치가 은행장치와의 협의에 의해 인출금액 및 유효기간을 포함한 공통정보이고, A는 고객장치가 은행 서명을 이용하여 생성한 전자 현금이다.)
  19. 제18항에 있어서, 상기 (b)단계에서 현금 정보 {m,c,A}의 유효성의 인증은
    이 성립하는지 여부를 확인하는 것에 의해 이루어짐을 특징으로 하는 전자 지불 시스템에서의 전자현금 결재방법.
    (여기에서, h(·)은 임의의 비트열을 입력으로 받아 160 비트 이상의 소정의 크기의 비트 출력을 생성하는 충돌회피성 일방향 해쉬함수이고, t(·)는 t(·) = 2h(·)+1의 관계에 있는 공개지수생성함수이다.)
KR1019980014345A 1998-04-22 1998-04-22 오프라인 방식의 전자 지불 시스템 KR19990080819A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980014345A KR19990080819A (ko) 1998-04-22 1998-04-22 오프라인 방식의 전자 지불 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980014345A KR19990080819A (ko) 1998-04-22 1998-04-22 오프라인 방식의 전자 지불 시스템

Publications (1)

Publication Number Publication Date
KR19990080819A true KR19990080819A (ko) 1999-11-15

Family

ID=65890646

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980014345A KR19990080819A (ko) 1998-04-22 1998-04-22 오프라인 방식의 전자 지불 시스템

Country Status (1)

Country Link
KR (1) KR19990080819A (ko)

Similar Documents

Publication Publication Date Title
Law et al. How to make a mint: the cryptography of anonymous electronic cash
US7505944B2 (en) Method and system of payment by electronic cheque
Camenisch et al. An efficient fair payment system
CA2229206C (en) Untraceable electronic cash
Jakobsson et al. Revokable and versatile electronic money
US7328338B1 (en) Transaction verification protocol for smart cards
EP1205889A1 (en) Returning of change in an electronic payment system
US6859795B1 (en) Method for carrying out transactions and device for realizing the same
KR20000014231A (ko) 오프라인 전자 거래 시스템 및 이를 이용한 전자 상거래 방법
Schoenmakers Basic security of the ecashTM payment system
Chaum et al. 'Minting'electronic cash
AU2011235531B2 (en) Message storage and transfer system
US6636969B1 (en) Digital signatures having revokable anonymity and improved traceability
Schoenmakers Security aspects of the Ecash™ payment system
Chida et al. Digital money–a survey
Schoenmakers Security Aspects of the Ecash™ Payment System
Paillès et al. Payment and privacy: A key for the development of NFC mobile
Luo et al. Offline transferable E-cash mechanism
Tewari et al. Reusable off-line electronic cash using secret splitting
Brands Electronic Cash.
Herzberg Micropayments
KR19990080819A (ko) 오프라인 방식의 전자 지불 시스템
KR100377352B1 (ko) 은닉성의 제어가 가능한 전자 서명 방법
Farsi Digital Cash
Mu et al. A new scheme of credit based payment for electronic commerce

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination