KR100376118B1 - 이중 해쉬 체인을 이용한 전자 지불 시스템 - Google Patents

이중 해쉬 체인을 이용한 전자 지불 시스템 Download PDF

Info

Publication number
KR100376118B1
KR100376118B1 KR10-2001-0009416A KR20010009416A KR100376118B1 KR 100376118 B1 KR100376118 B1 KR 100376118B1 KR 20010009416 A KR20010009416 A KR 20010009416A KR 100376118 B1 KR100376118 B1 KR 100376118B1
Authority
KR
South Korea
Prior art keywords
store
user
value
computer
payment
Prior art date
Application number
KR10-2001-0009416A
Other languages
English (en)
Other versions
KR20020069070A (ko
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 KR10-2001-0009416A priority Critical patent/KR100376118B1/ko
Publication of KR20020069070A publication Critical patent/KR20020069070A/ko
Application granted granted Critical
Publication of KR100376118B1 publication Critical patent/KR100376118B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • G06Q20/4016Transaction verification involving fraud or risk level assessment in transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

본 발명은 전자 지불 시스템, 특히 초소액 전자 지불 시스템에 있어서, 효율성, 안전성, 분쟁해결성이 모두가 우수한 초소형 전자 지불 시스템을 제공하는 것이다.
효율성, 안전성을 달성하기 위해 본 발명에서는 이중 해쉬 체인 방식을 사용한다.
본 발명에서는, 사용자는 상점에 물품을 구매하기 이전에 브로커에게 쿠폰 묶음 생성 인증서를 구매한다. 사용자는 쿠폰 사용 이전에 쿠폰 묶음 생성 인증서를 이용하여 생성한 쿠폰 묶음을 상점에게 등록하는 추가적인 절차를 거친다. 상점은 사용자로부터 받은 쿠폰과 사용자의 쿠폰 묶음 생성 인증서를 이용하여 일정 시점이 지난 후, 브로커에게 쿠폰의 개수에 대응하는 대금을 청구한다. 브로커는 상점이 요구가 있을 경우 요구받은 금액만큼 사용자의 계좌(account)를 감소시키고, 상점의 계좌를 증가시킨다.

Description

이중 해쉬 체인을 이용한 전자 지불 시스템{Electronic Payment System Using Double Hash Chain}
본 발명은 전자 지불 시스템에 관한 것이고, 특히 초소액 지불에 적합한 전자 지불 시스템에 관한 것이다.
전자적으로 돈을 지불하는 시스템(전자 지불 시스템)을 이용하는 경우는 신용카드, 지하철표, 전화카드, 버스카드 등의 예가 있다.
그런데, 이러한 전자 지불 시스템 중에서 지불 관련 처리 비용을 최소화하여 상대적으로 적은 금액의 지불, 예를들면 1만원 이하의 지불에 사용하기에 적합하도록 설계된 것을 초소액 지불 시스템(MicroPayment System)이라고 하고, 이러한 초소액 지불 시스템을 이용하여 구매할 수 있는 대표적인 상품에는 네트워크 상에서의 각종 정보(유료로 제공되는 주식정보, 금융정보 등), 네트워크의 음악 및 그림 파일이 있다.
이러한 초소액 지불 시스템 중에서 대표적인 것들로서는 μ-iKP, NetCard, PayWord, CAFE(phone call), MPTP, NetCheque, 그리고 Millicent이 알려져 있다.
그런데 , 이러한 시스템들은 초소액 지불 시스템에 적합하게 지불관련 비용이 최소화 되도록 설계 되었지만, 분쟁해결성이 부족하여 실제로 분쟁이 발생시 이를 해결하기 위한 비용이 많이 들어, 전체적으로 볼 때 개별 거래의 처리비용이 증가되게 되는 단점이 있다.
이러한 문제점을 해결하기 위해 NetBill, Mini-Pay 등의 시스템이 제안 되었지만, NetBill의 경우에는 안전성 및 분쟁해결성에서는 우수하지만 효율성이 나쁘고, Mini-Pay는 분쟁해결성이 NetBill에 비하여 떨어진다. 다시말하면, Netbill과 Mini-Pay는 안전성, 효율성, 분쟁해결성 모두에 대하여 우수한 성능을 발휘하지 못하고 있다.
따라서, 본 발명에서는 안전성, 효율성, 분쟁해결성 모두가 우수한 소형 전자 지불 시스템을 제공하고자 한다.
이제, 이러한 본 발명의 초소액 지불 시스템에서 만족시켜야 하는 요구조건인 효율성, 안전성, 그리고 분쟁해결성을 만족시키기 위하여 본 발명에서 구체적으로 어떠한 것들 고려 했는지 살펴 보도록 한다.
먼저 효율성에 대해 살펴 보면 아래와 같다.
초소액 지불 시스템의 가장 큰 목적은 거래 처리비용의 최소화이다. 일반적인 지불 시스템의 경우, 시스템 수수료 등으로 인하여 특정 금액 이상의 상품 구입에만 처리가 가능하다. 그러나 초소액 지불 시스템에서 사용하는 쿠폰이 하나의 상점에만 사용이 가능하다면 쿠폰 묶음이 등록되었을 경우, 등록된 쿠폰은 하나의 상점에서 모두 사용해야만 한다는 단점을 갖는다. 또한 사용하고 남은 금액을 브로커가 환불해 준다고 하더라도 일반적인 지불 시스템의 사용 횟수의 증가로 인해 거래 처리 비용이 증가하게 된다. 따라서 브로커로부터 구입한 쿠폰 묶음을 여러 상점에 대해 사용할 수 있도록 하는 것이 바람직하다.
- Req. 1(여러상점) : 브로커로부터 구입한 하나의 쿠폰 묶음을 여러 상점에 사용할 수 있어야 한다.
또한, 쿠폰 사용 과정에서 모든 거래에 대해 브로커가 실시간으로 개입할 경우, 서버 부담이 증가하게 되어 서버의 처리 속도가 떨어지게 된다. 서버 부담의 증가는 전체 거래계정 처리에 있어 병목현상을 초래할 위험이 크므로 이를 줄일 수 있도록 전체 지불 시스템이 설계되어져야 한다.
- Req. 2(오프라인 시스템) : 중앙 서버의 병목 현상을 줄일 수 있도록 자체적으로 거래 데이터의 유효성을 판별할 수 있어야 한다.
초소액 지불 시스템은 안전성 획득을 위하여 여러 암호 함수들을 사용한다. 그러나 암호 함수들은 각각 다른 처리 속도를 갖는다. 암호화 해쉬 함수의 연산 및 비밀키 암호 알고리즘에 의한 암호화의 경우에는 처리 속도가 공개키 암호 연산에 비해 매우 빠르므로 전체 시스템 성능에는 영향을 주지 않는다. 전자 서명 알고리즘의 경우는 보다 복잡한 성능 특성을 갖는다.
- Req. 3(암호 함수 사용시 유의 사항) : 공개키 서명 알고리즘의 적절한 사용 및 사용 횟수를 최소화해야 한다.
지불 시스템의 효율성과 관련하여 마지막으로 고려해야 할 요소는 거래 정보를 저장할 데이터 베이스(Data Base, DB)의 크기 문제이다. DB 크기가 지속적으로 증가할 경우, 지불 처리비용이 증가하므로 이를 막을 수 있어야 한다.
- Req. 4(데이터 베이스 크기) : 중앙 서버 및 상점이 관리해야 할 DB 크기는 사용자 또는 상점의 전체 개수에만 비례하여야 하고, 시간 및 개별 지불 횟수와는 관련이 없어야 한다.
다음으로 안전성에 대하여 살펴 보도록 한다.
암호 프로토콜은 시스템의 안전성을 향상시키기 위하여 암호 함수를 사용한다. 그러나, 그 사용의 부적절성으로 인하여 많은 공격 방법들이 제안되었다. 이러한 공격 방법들 중, 일부는 전자 지불 시스템을 공격하기 위하여 사용될 수 있다. 전자 지불 시스템은 금액의 전달이 주목적이므로 공격자가 프로토콜에 대한 공격을 통하여 자신에 원하는 상품을 구매할 수 없도록 해야 하고, 이를 위해서는 다음의 3가지 위험성에 대하여 안전해야 한다.
- Risk 1 : 사용자가 사용한 데이터를 도청하였다가 다시 사용하는 행위.
- Risk 2 : 공격자가 상점인 것처럼 가장하여 데이터를 얻는 행위.
- Risk 3 : 사용자가 보낸 지불 데이터를 상점에 전달하지 않고, 가로채어 사용하는 행위.
또한, 전자 지불 시스템이 암호 프로토콜과 다른 가장 큰 특성은 이중사용 방지이다. 암호 프로토콜의 경우 정당한 사용자가 인증을 위하여 같은 값을 두 번 사용하는 것은 문제가 되지 않는다. 그러나 전자 지불 시스템을 고려할 경우, 이는 한번의 지불로써 두 번의 구매를 할 수 있다는 것을 의미한다.
- Risk 4 : 사용자가 같은 쿠폰을 두 번 사용하는 행위
그리고, 전자 지불 시스템은 대면 접촉을 통한 금액의 지불이 아닌 네트워크를 통한 금액의 지불에 사용되므로 금액을 지불하는 자와 받는 자 사이에서 분쟁이 발행할 가능성이 높다. 그러나 지금까지 제안된 많은 전자 지불 시스템이 이를 고려하지 않는 경우가 많았다. 본 발명은 다음의 분쟁유형들을 고려한다.
- Risk 5 : 사용자가 물품을 구매하였을 때, 사용자 계좌의 감소분과 상점 계좌의 증가분이 다름.
- Risk 6 : 사용자가 상점으로부터 상품을 받고 대금을 지불하지 아니함.
- Risk 7 : 사용자로부터 상품 금액을 받고 상점이 상품을 제공하지 아니함.
- Risk 8 : 사용자가 구매한 상품과 받은 상품이 상이함.
- Risk 9 : 사용자가 상점으로부터 상품을 받은 다음 새로운 상품의 구매를 위하여 받지 않았다고 주장함.
위에서 지적한 본 발명의 목적을 달성하기 위해 본 발명에서는 해쉬 체인을 변형한 이중 해쉬 체인 구조를 사용하는데, 이하에서는 해쉬 함수(hash function)와 해쉬 체인(hash chain)에 대하여 살펴보기로 한다.
해쉬 함수란 임의의 크기의 입력값을 받아서 고정된 크기의 출력값을 내어주는 함수를 말한다. 암호학적 해쉬 함수(cryptographic hash function)란 해쉬 함수중, 다음의 성질을 만족하는 것을 가리킨다(h는 해수 함수이다).
- 약한 충돌 회피성(weak collision freeness) : 특정 값a에 대해서h(a)값이 주어졌을 때,h(b)=h(a)를 만족하는a와 다른b를 찾기 어렵다.
- 단방향 성질(one-wayness) :h(a) 값을 알 때,a값을 알기 어렵다.
이러한 성질을 만족하는 대표적인 해쉬 함수로는 SHS(National Institute for Standard and Technology (NIST), Secure Hash Standard(SHS), FIPS 180-1, Apr. 1995))와 MD5(R. L. Rivest, The MD5 message-digest algorithm. Internet Request for Comments, RFC 1321, Apr. 1992)가 있다.
다음으로, 키를 갖는 해쉬 함수(keying hash function)는 암호학적 해쉬 함수에 기밀성을 가질 수 있도록 만든 함수이다. 키를 갖는 해쉬 함수는 암호학적 해쉬 함수의 조합으로 구성되며 대표적인 구성 방식으로는 HMAC(M. Bellare, R. Canetti, and H. krawczyk, Keying Hash Functions for Message Authentication, Advances in Cryptology - CRYPTO' 96, LNCS 1109, 1996)가 있다. 키를 갖는 해쉬함수는 다음의 성질을 만족한다.
- 기밀성 : 키K AB 를 모를 경우 특정 값 m에 대해서값을 계산할 수 없다.
- 약한 충돌 회피성 : 키K AB 를 모를 경우 특정 값a에 대해서값이 주어졌을 때,를 만족하는a와 다른b를 찾기 어렵다.
- 단방향 성질 :값을 알 때,a값 및K AB 을 알기 어렵다.
이제 해쉬 체인(hash chain)에 대하여 설명하도록 한다. 해쉬 체인의 기본 구조는 L. Lamport(L. Lamport, Password Authentication with Insecure Communication, CACM, v. 24, n. 11. pp. 770-772, 1981)에 의해 제안되었다. 암호학적 해쉬 함수h를 사용한 해쉬 체인의 구조는 다음과 같다.
초소액 지불 시스템은 다음과 같이 이러한 해쉬 체인을 사용할 수 있다. 우선 사용자는Seed를 랜덤하게(random) 생성하고,Chain(n,Seed)을 계산한다. 그리고 서버에게 w0값을 제공한다. 이 과정을 쿠폰 묶음 등록 절차라 한다. 실제적으로 해쉬 체인을 사용하기 위해서 만일 j번째 사용하는 경우라면 j번째의 쿠폰, 즉 wj값을 서버에게 주면 된다. 서버는 이 값을 받은 다음에 그 이전에 사용자로부터 받은 값인w j -1을 사용하여w j 가 식w j -1=h(w j)를 만족하는지를 검사한다. 이 방식은 매번 접속시마다 사용되는 키 값이 바뀌므로 일회용 패스워드라 불리기도 한다.
이 방식은 암호학적 해쉬 함수의 단방향 성질로부터w j 를 알아도 그 이후의 해쉬 체인 값들(w j +1,....,Seed)을 알 수 없으므로 도청에 안전하다. 해쉬 체인을 이용한 방법은 지불 처리과정에서 암호학적 해쉬 함수 연산만을 사용하므로 매우 효율적이다. 그러나 이 방식은 사용자가 보낸 지불데이타(w j )를 암호화 하지 않기 때문에, 위에서 지적한 Risk 3에 취약(안전성 취약)하다는 단점을 갖는다.
본 발명에서는 위에서 지적한 해쉬 체인의 효율성을 유지하면서 안전성을 높이기 위하여 이중 해쉬 체인구조를 사용한다. 이중 해쉬 체인 구조는 두개의 해쉬체인으로 이루어진다. 하나는 일반적인 암호학적 해쉬 함수를 사용한 해쉬 체인이 고, 다른 하나는 키를 갖는 해쉬 함수를 사용하여 이 해쉬 체인의 데이터를 암호화하기 위한 해쉬 체인이다.
이제, 본 발명의 3개의 구성원인 사용자, 상점, 브로커의 관계를 도 2를 참고로 하여 살펴 보기로 한다.사용자, 상점, 브로커 사이의 동작이 결국 사용자 컴퓨터, 상점 컴퓨터, 브로커 컴퓨터에 의해 이루어지기 때문에, 이하에서는 사용자, 상점, 브로커가 사용자 컴퓨터, 상점 컴퓨터, 브로커 컴퓨터에 대응한다. 다시 말하면, 도 2 및 이하의 설명에서는 사용자(1), 상점(2), 브로커(3)는 사용자 컴퓨터(1), 상점 컴퓨터(2), 브로커 컴퓨터(3)에 대응한다.
사용자(1)와 상점(2)은 실제 상거래가 이루어지는 구성원이다. 브로커 (3)(broker)는 이들 사이에서 전체 지불을 관리하는 기관이다. 본 발명의 시스템은 Req. 1, 및 Req. 2를 만족하기 위하여 사용자(1)는 상점(2)에 물품을 구매하기 이전에 브로커(3)에게 쿠폰 묶음 생성 인증서를 구매한다. 사용자(1)는 쿠폰 사용 이전에 쿠폰 묶음 생성 인증서를 이용하여 생성한 쿠폰 묶음을 상점(2)에게 등록하는 추가적인 절차를 거친다. 상점(2)은 사용자(1)로부터 받은 쿠폰과 사용자(1)의 쿠폰 묶음 생성 인증서를 이용하여 일정 시점이 지난 후, 브로커(3)에게 쿠폰의 개수에 대응하는 대금을 청구한다. 브로커(3)는 상점(2)이 요구가 있을 경우 요구받은 금액만큼 사용자(1)의 계좌(account)를 감소시키고, 상점(2)의 계좌를 증가시킨다.
이제, 각 구성원 간의 관계를 보다 구체적으로 설명하도록 한다.
먼저, 사용자(1)와 브로커(3)의 관계를 구체적으로 살펴 보도록 한다.
사용자(1)가 브로커(3)로부터 쿠폰묶음 생성 인증서를 받는 절차는 연동되는 일반적인 지불 시스템별로 다르다. 그러나 이들 시스템이 암호화 전송 및 전자서명 생성을 지원한다고 가정할 때, 사용자(1)는 브로커(3)에게 자신이 생성한 난수인 사용자(1) 유사 개인 식별번호(Pseudo-ID,PsID U )와, 각 상점(2)에 대한 쿠폰묶음 등록에 사용할 사용자(1)의 공개키(PK U )를 암호화하고 전자서명하여 전송하고, 브로커(3)가 일반적인 지불 시스템에서 상품 구매에 대한 영수증을 지급하는 과정에서 사용자(1)의 쿠폰묶음 생성 인증서(C U )가 암호화 되어 전송된다고 가정한다.
CertData는 브로커(3) 개인 식별번호(ID Broker ), 사용자(1) 유사 개인 식별번호(Pseudo-ID,PsID U ), 사용자(1) 공개키(PK U ), 인증서 유효기간(), 분쟁해결 가능기간(), 그리고 구매할 수 있는 최대 금액(MAX)으로 구성되어 있다.
그리고 쿠폰묶음 생성 인증서(C U )는CertData에 대한 브로커(3)의 서명이다. 그리고 브로커(3)는를 DB에 저장한다. 사용자(1)는 쿠폰묶음 생성 인증서를 이용하여 여러 상점(2)과 거래를 할 수 있으나 전체 사용 금액은MAX를 넘지 않아야 한다.
다음으로 사용자(1)와 상점(2)간의 관계를 구체적으로 살펴 보도록 한다.
사용자(1)가 쿠폰 묶음을 상점(2)에서 사용하는 절차는 두 단계로 나뉘어 진다. 하나는 쿠폰묶음 생성 인증서를 이용하여 상점(2)에 쿠폰 묶음을 등록하는 절차이고, 다른 하나는 실제적으로 상품의 구매를 위하여 쿠폰을 사용하는 절차이다.
쿠폰 등록 : 사용자(1)는 상점(2)에 쿠폰을 등록하기 위해 해쉬 체인을 생성하고, 해쉬 체인을 상점(2)에 보내어 등록한다. 사용자(1)가 상점(2)에 쿠폰을 등록하는 과정은 다음과 같다.
step 1. 사용자(1)는 두 개의 난수SeedSec를 랜덤(random)하게 생성한다.
step 2. 사용자(1)는 이 두 값을 이용하여Chain1,Chain2의 두 개의 해쉬 체인을 생성한다.
step 3. 사용자(1)는Chain2를 사용하기 위한 값인Sec는 상점(2)의 공개키를 사용하여 암호화 한다.
step 4. 사용자(1)는Chain1을 사용하기 위한 값인 w0와 다른 관련 값들, 즉 사용자(1)의 인증서(C U ), 상점(2) 개인 식별번호(ID V ), 그리고Sec의 해쉬 값(h(Sec))을 브로커(3)로부터 인증 받은 키로 서명한다. 서명된 데이터는 다음과 같다.
step 5. 사용자(1)는 다음의 데이터를 상점(2)에 전달한다.
step 6. 상점(2)은Sec값 추출을 위하여를 복호화 한다.
step 7. 상점(2)은값이 맞는지를 검사한다.보다 구체적으로 설명하면 검사를 위해서 상점(2)은h(Sec) 값을 계산하고, 이 값과 사용자(1)로부터 받은값을 이용하여값을 계산한다. 그리고 이 값과,를 사용자(1)의 공개키로 복호화 한 값이 맞는지를 검사한다. 이 값이 일치할 경우, 사용자(1)의 서명은 올바른 것이다. 그리고 인증서 유효기간()과 분쟁해결 가능 기간()이 지나지 않았는지를 검사한다.
step 8. step 7.이 맞을 경우 상점(2)은C U 로부터PsID U ,MAX값을 얻는다.
step 9. 상점(2)은PsID U , w0,Sec, 0,MAX값을 DB에 기록한다(상점(2)이 관리해야 할 DB의 크기는 자신에게 등록된 쿠폰묶음의 개수에 비례한다). 여기서 0은 쿠폰을 사용하지 않았음을 의미하며 사용할 때마다 그 값이 증가하고, 이 값은 지금까지 사용한 쿠폰 개수를 의미한다.
쿠폰 사용 : 사용자(1)는 상품을 선택한 후, 등록된 쿠폰을 사용하여 상품을 구입할 수 있다. 쿠폰의 사용은 이중 해쉬 체인 구조를 사용한 challenge-response방식이다. 사용자(1)가 쿠폰을 사용하는 과정은 다음과 같다. 사용자(1)는 쿠폰 등록후,i개의 쿠폰을 사용했고, 현재 지불해야 할 쿠폰은k개라 가정한다(j=i+k).
step 1. 사용자(1)는 상점(2) 서버에 접속하여 상품을 선택한다.
step 2. 사용자(1)는 자신의 개인 식별번호(PsID U ) 및 선택한 상품의 ID (IDitem)를 상점(2)에 전달한다.
step 3. 상점(2)은 인증서 유효기간() 과 분쟁해결 가능 기간(Ex DH )이 지나지 않았을 경우, 사용자(1)에게 발급할 거래인식 ID(TransID)를 계산한다. 이 값은 사용자(1)의 식별번호(PsID U ), 상품 ID(IDitem), 그리고 현재 시각인 타임 스탬프(time stamp,T) 값을Sec를 키로 하여 Keyed MAC 함수(h)를 계산한 값이다.
step 4. 상점(2)은 사용자(1)가 지금까지 사용한 쿠폰의 마지막 값(w i )과, 사용자(1)가 주문한 상품의 금액(k), 거래인식 ID(TransID), 상품 ID(IDitem), 그리고 타임스템프(T)에 대한 서명을 생성한다.
step 5. 상점(2)은 거래인식 ID(TransID), 타임스템프(T), 그리고 step 4에서 생성한 서명을 사용자(1)에게 전달한다.
step 6. 사용자(1)는 타임 스탬프가 유효한지를 검사한다.
step 7. 사용자(1)는 거래인식 ID(TransID)가 올바른 값인지를 검사한다.
step 8. 사용자(1)는 상점(2)의 서명 확인키를 이용하여
값을 검사한다.
step 9. 사용자(1)는 거래인식 ID(TransID)를 사용하여CR j 를 생성한다.
step 10. 사용자(1)는 j번째 지불을 위한 값,w j 를 생성하고, 이 값을CR j 와 XOR 함수를 사용하여 암호화 한 값()을 계산한다.
step 11. 사용자(1)는 상점(2)에게Pay j 를 전달한다.
step 12. 상점(2)은 이 값을 받은 다음Sec값을 사용하여CR j 를 생성한다. 그리고 이 값을Pay j 와 XOR하여w j 를 복호화 한다.
step 13. 상점(2)은 DB에 기록된w i 값 및 index(i)을 이용하여,w j 값이 상품의 금액만큼의 가치를 갖는지를 검사한다. 상품의 금액이k일 경우w i =h k (w j )를 만족해야 한다.
step 14. 상점(2)은 사용자(1)에게 상품을 전달한다.
step 15. 상점(2)은 DB에 기록되어 있는 값,w i 와 index(i)를 각각w j 및 index(j)로 변경한다(이 경우, 쿠폰 사용과 관련하여 상점(2)이 관리해야 할 DB의 크기는 증가하지 않는다).
그러나 이러한 쿠폰 사용시의 프로토콜은 모든 분쟁해결 기능이 브로커(3)를 통해서 얻어진다는 단점을 갖는다. 분쟁의 유형 중에서 사용자(1) 또는 상점(2)이 의도적으로 상대방을 속이는 경우에는 브로커(3)를 통한 해결이 필수적이다. 그러나 네트워크 오류로 인하여 이러한 분쟁이 발생할 수 있고, 모든 종류의 분쟁을 브로커(3)를 통해 해결하는 것은 브로커(3)에게 많은 부담을 줄 수 있으므로 이러한 문제에 대한 해결책이 요구된다.
본 발명에서는 사용자(1)는 금액을 전달했으나 네트워크 오류등으로 인하여 상품이 전달되지 않는 경우를 해결하기 위하여 다음의 보조 프로토콜을 쿠폰 사용시에 사용할 수 있다.
step 1. 사용자(1)는 자신의 공개키를 이용하여 자신의 식별번호(PsID U ), 상품 ID(IDitem),
거래과정에서 얻은 상점(2)의 서명값,
그리고 현재 시간(T current )에 대한 서명값을 생성한다.
step 2. 사용자(1)는 개인식별번호(PsID U ), 상품 ID(IDitem),
를 상점(2)에 전달한다.
step 3. 상점(2)은 DB에서w j 값을 얻는다.
step 4. 상점(2)은 상품 ID(IDitem)에서 상품의 금액(k)을 확인한 후,w i =h k (w j )를 계산한다.
step 5. 상점(2)은 거래인식 ID(TransID)를 계산하고, 사용자(1)의 서명이 맞는지를 검사한다.
step 6. 상점(2)은 위의 모든 결과가 맞을 경우 상품을 전달한다.
이 프로토콜은 상품 전달상의 오류를 브로커(3)의 도움 없이 1차적으로 해결할수 있다는 장점을 갖는다.
다음으로, 본 발명의 경우 쿠폰 사용시 항상 전자서명이 요구되므로 Req. 3은 만족하지 못한다. 이를 위해서 실제 서비스 운용에 있어 다음의 정책을 택할 수 있다.
서버가 사용자(1)의 전자서명 검증을 필요로 하는 경우는w j 가 2번 이상 사용되었을 경우에 대한 부정사용 색출을 위해서이다. 본 발명에서 이 사건은 모든 거래는 완결되었으나 사용자(1)가 의도적으로 서비스를 방해하기 위하여 상품을 받지 않았다고 할 경우에만 발생한다. 그러나 이러한 사용자(1) 수는 전체 사용자(1) 수에 비해서 매우 적다고 가정할 수 있으므로 전체 시스템의 성능 저하에는 큰 영향을 끼치지 않는다.
따라서 시스템 효율성에 영향을 미치는 것은 거래과정에서 발생하는 상점(2)의 전자서명 생성이고 이는 잠재적으로 상점(2) 서버의 병목현상을 초래할 수 있다. 따라서 상점(2) 서버가 거래 과정에서 생성하는 전자서명인,를 효율적으로 생성하는 것이 요구된다.
그런데, 서버가 서명할 때, 사용할 수 있는 알고리즘은 여러 가지가 있을 수 있다. 그리고 이러한 알고리즘들은 서명 생성에 필요한 계산방식 측면에서 볼때, 크게 RSA 유형의 전자서명과 DSA 유형의 전자서명으로 구분할 수 있다. 또한, 이러한 종류의 알고리즘에 대해서 상점(2) 서버의 구현이 다음의 방향을 따를 경우 서버의 병목현상을 최소화 할 수 있음이 알려져 있다.
RSA 유형의 서명을 사용할 경우 : RSA 유형의 전자서명은 서명 생성과정에서 사전 계산을 할 수 없다는 단점이 있다. 이를 해결하기 위한 방법 중, 대표적인 것은 SASC(Server Aided Secret Computation)을 사용하는 것이다. SASC를 사용할 경우, 서버 혼자 서명을 생성하는 것에 비해 10배 이상의 효율성 향상을 가질 수 있다(Seong-Min Hong, Jun-Bum Shin, H.Lee-Kwang and Hyunsoo Yoon, "A new approach to server-aided secret computation", International Conference on Information Security and cryptology, Seoul, 1998 참고).
DSS 유형의 서명을 사용할 경우 : DSS 유형의 전자서명은 사전 계산을 통하여 서명 생성시간을 줄일 수 있다는 장점이 있다. 그러나 전자서명 알고리즘의 특성상 사전 계산된 데이터가 한번 사용되었다면 다음에는 사용할 수 없으므로 실제구현시에는 사전 계산이 특별한 효과를 얻지 못할 수도 있다. 이를 해결하기 위한 방법으로 다음의 두 가지 방법을 사용할 수 있다.
방법 1 : 모듈러 멱승 연산을 효과적으로 수행할 수 있는 방법을 사용한다. 모듈러 멱승 연산의 고속 수행을 위한 방법은 여러 가지가 연구되어 있다. DSS와 같이 이산대수에 기반한 알고리즘은 여러 계산에 있어 공통적으로 사용 가능한 사전계산값을 이용할 수 있다. 이러한 방법을 사용할 경우, 일반적으로 계산하는 방식에 비해 3배 이상의 효율성 향상을 얻을 수 있다 (E. F. Brickell, D. M. Gordon, K. S. Mccurley, and D. B. Wilson, "Fast exponentiation with precomputation", Advances in Cryptography - EUROCRYPT'92(LNCS 658), pp. 200-207, 1993. 참고).
방법 2 : 사전계산값이 들어가 있는 큐(queue)를 사용한다. 큐는 고정된 길이를 가지며 생성된 값이 고정 길이를 모두 채우게되면 큐에 새로운 데이터를 집어넣는 것을 중지한다. 이는 서버가 한가할 때에 사전계산을 수행하기 위한 것이다. 최근 시스템의 경우 메모리 값은 매우 싸므로 큐를 크게 잡을 경우, 사전 계산 효과를 충분히 얻을 수 있다. 큐에 넣을 사전계산값의 계산은 서버 구현시 다중 스레드를 이용하여 처리할 수 있다.
이제, 상점(2)과 브로커(3) 간의 관계에 대하여 자세히 살펴 보도록 한다.
상점(2)은 유효기간이 지난 쿠폰 묶음에 대해서는 브로커(3)에게 해당 금액을 모두 지급 받고, DB에서 삭제한다. 그리고 유효기간이 지나지 않았다고 하더라도 브로커(3)로부터 금액을 지불 받고 싶을 경우, 상점(2)은 사용자(1)로부터 받은 쿠폰을 이용하여 브로커(3)에 대금 지불을 요구한다. 이 과정은 서버가 한가한 특정 시간에 수행된다. 상점(2)이 사용자(1) U로부터 j개의 쿠폰을 받았을 경우 상점(2)은 브로커(3)에게 다음의 자료를 전송한다.
w i 는 상점(2)이 이 해쉬 체인에 브로커(3)에게 지불을 요구한 마지막 값이고,w j 는 새로이 지불을 요구할 값이다. 하나의 해쉬 체인에 대해서 처음 지불을 요구할 경우w i =w 0이다. 브로커(3)는 이 값을 받은 다음C U 의 유효성을 검증하고,로부터 상점(2)의 ID(ID V ) 및 상점(2)이 이 해쉬 체인에 대하여 이전에 받은 금액을 계산한다. 브로커(3)는 처음 지불이 요구되는 쿠폰 묶음에 대해서는C u ,ID V ,w j 에 대한 새로운 DB를 생성한다. 그리고 이전에 지불이 요구된 적이 있는 쿠폰 묶음에 대해서는 데이터 베이스에 기록되어 있는w i 값을w j 값으로 바꾼다. 그리고 상점(2)에게 해당 금액을 지불한다. 이 경우, 브로커(3)는 사용자(1)의 쿠폰묶음 생성 인증서인C U 이용해서 생성한 쿠폰묶음 들에 대해서 전체 사용 금액이C U 에 명시된 상품 구입 가능 최대값인MAX를 초과하였는지를 검사하고, 만일 초과하였을 경우, 해당 사용자(1)를 부정 사용자(1)로 고발한다.
브로커(3)는 유효기간이 지난 쿠폰 묶음 인증서는 DB에서 삭제한다.
다음으로 본 발명의 초소액 지불 시스템이 위에서 언급한 Req.1 - 4를 만족하고, Risk 1 - 6 에 대하여 효과적으로 대처할 수 있는지 살펴 보도록 한다.
- Req. 1 : 본 발명은 브로커(3)로부터 구입한 하나의 쿠폰 묶음 사용 인증서를 이용하여 여러 상점(2)과의 거래가 가능하기 때문에, Req. 1을 만족한다.
- Req. 2 : 본 발명은 쿠폰묶음 등록 과정 및 쿠폰 사용과정에서 브로커(3)의 개입을 필요로 하지 않는 완전-오프라인 시스템이므로, Req. 2를 만족한다.
- Req. 3 : 본 발명은 지불 과정에서 항상 전자서명이 이용되지만, 위에서 설명한 방법들을 사용하면 전체 시스템의 성능 저하를 방지할 수 있다.
- Req. 4 : 본 발명의 DB 크기는 브로커(3)와 상점(2)으로 나누어 생각할 수 있다. 브로커(3)가 저장하여야 할 DB의 크기는 자신이 발급한 쿠폰묶음 사용 인증서와, 그 인증서를 이용하여 생성된 쿠폰 묶음의 개수에 비례한다(쿠폰 사용 횟수와는 무관함). 결국, 브로커(3)는 유효기간 이내의 인증서와 그에 해당하는 쿠폰 묶음에 대한 데이터만을 보관하면 된다. 따라서 전체 시스템으로 볼 때, 개별 사용자(1)가 구입한 쿠폰 사용 인증서의 개수 및 등록된 쿠폰 묶음의 개수는 일정 시간이 지나게 되면 일정한 값을 갖게 되므로 브로커(3)가 저장해야 할 DB의 크기는 사용자(1) 또는 상점(2)의 수가 증가하지 않을 경우 일정하다. 상점(2)이 저장해야 할 DB의 크기는 자신에게 등록된 쿠폰 묶음의 개수에만 비례하고, 쿠폰 사용 횟수와는 무관하다. 따라서 상점(2)의 경우 역시 효율적인 DB 관리가 가능하게 되어 Req. 4를 만족한다.
- Risk 1 : 본 발명은 사용자(1)가 쿠폰을 사용할 때마다 지불하는 쿠폰(Pay)이 다르다. 따라서 공격자가 사용자(1)가 사용했던 쿠폰을 안다고 하더라도 그 쿠폰을 자신의 상품 주문을 위하여 사용할 수 없다. 따라서 Risk.1은 성립하지 않는다.
- Risk 2 : 사용자(1)가 쿠폰 묶음을 등록할 때, 사용자(1)는 상점(2)의 고유번호가 명시된 전자서명을 사용한다. 상점(2)이 브로커(3)에게 대금을 청구할 때, 브로커(3)는 사용자(1)의 전자 서명을 기반으로 어느 상점(2)에게 금액을 지급할 것인지를 판단하므로 쿠폰 등록과정에서 사용자(1)가 지명한 상점(2)이 아닌 다른 자는 브로커(3)로부터 금액을 받을 수 없다. 쿠폰 사용과정에서는 공격자가 상점(2)인 것처럼 가장해서 사용자(1)로부터 지불 데이터를 받을 수 있다. 그러나 공격자가 자신이 원하는 상품을 주문하기 위해서는값을 계산해야 한다. 그러나 공격자는Sec j 를 모르므로값을 계산할 수 없다. 따라서 공격자는 자신이 원하는 상품에 대한Pay j 값을 계산할 수 없다. 따라서 본 발명은 Risk 2에 대해 안전하다.
- Risk 3 : 본 발명의 이중 해쉬 체인은 양측이 공유하는 값인CR j 와, j번째 쿠폰w j 를 XOR 함으로써 쿠폰w j 를 암호화 하는 방식을 사용한다. 이 방식은 상품 ID인ID item 를 고정하기 위한 challenge-response 방식을 사용하였으므로 공격자가 이 값을 가로챈다고 하더라도 이 값을 가지고 자신이 원하는 상품을 선택할 수 없다. 따라서, 이러한 이중 해쉬 체인 구조는 위에서 지적한 Risk 3에 대해 안전하게 된다.
- Risk 4 : 본 발명은 쿠폰 사용시 사용자(1)와 상점(2) 모두가 쿠폰 인덱스를 검사한다. 따라서 사용자(1)가 같은 쿠폰을 두 번 사용할 경우 상점(2)은 그 쿠폰을 인정하지 않는다. 따라서 본 발명은 Risk 4를 허용하지 않는다.
- Risk 5. : 브로커(3)는 사용자(1)와 상점(2)의 계좌 변동을 상점(2)이 제시한 값, 즉 사용자(1)가 사용한 마지막 해쉬 체인의 쿠폰(w j )으로부터 판단한다. 해쉬 체인의 성질로부터 상점(2)이w j 를 제시하였다면 사용자(1)는 최소한 j개의 쿠폰을 사용한 것임을 알 수 있다. 따라서 분쟁 발생시 브로커(3)는w j 값에 의거하여 분쟁을 해결한다.
- Risk 6 : 본 발명은 사용자(1)가 금액을 지불한 후, 상품을 제공한다. 따라서 사용자(1)의 서비스 거부는 성립하지 않는다.
- Risk 7 : 사용자(1)는 현재 거래가 있기 전l-1개의 쿠폰을 사용하였다고 가정한다. 따라서 상점(2)은w l -1값을 알고 있다. 상점(2)의 서비스 거부는 상점(2)이 사용자(1)로부터 받은Pay l 을 이용하여w l 값은 알았으나 상점(2)은 이 금액에 해당하는 상품을 제공하지 않은 경우이다. 이와 같은 경우 사용자(1)는를 이용하여 상점(2)을 브로커(3)에게 고발할 수 있다. 브로커(3)는 이 값을 받은 후, 상점(2)의 서명이 올바른지 여부를 확인한다. 맞을 경우에는 상점(2)에게w l 값을 보내고IDitem에 해당하는 상품을 사용자(1)에게 보낼 것을 요구한다.
- Risk 8 : 사용자(1)는 상점(2)으로부터 받은 서명을 이용하여 상점(2)이 보내는 상품이 자신이 선택한 상품과 동일한 것인지를 확인할 수 있다. 만일 실제로 받은 상품과 주문한 상품이 다른 경우에는 Risk 7과 같은 방법으로 대응한다. 이 경우는 상점(2)이 상품을 잘못 보낸 것이므로 상품의 중복 전달이 생긴다고 하더라도 이는 전적으로 상점(2)의 책임이다.
- Risk 9 : 사용자(1)의 허위 고발 : 사용자(1)는 지불 후, 상품을 받았으나 상점(2)에 해를 끼칠 의도로 상점(2)을 허위 고발할 수 있다. 본 발명에서는 사용자(1)의 상점(2)에 대한 고발 과정은 사용자(1)가 Risk 7에서와 같이 상점(2)에게서 받은 서명값을 브로커(3)에게 보내는 방식을 사용한다. 따라서 사용자(1)가 상점(2)에게서 상품을 받았음에도 불구하고 허위로 고발을 할 경우에 대해서도 사용자(1)는 상점(2)으로부터 원래 받은 상품 이외의 상품은 받을 수 없다.
또한 일반적으로 실제 물건을 중복해서 보내는 경우에는 상품의 가격에 해당하는 추가적인 비용 및 추가적인 상품의 운송에 따른 비용이 초래되지만, 초소액 지불 시스템을 통하여 구입하는 상품은 디지털 형태의 데이터 자체이기 때문에, 상점(2)은 사용자(1)가 정상적으로 구매한 상품을 사용자(1)에게 중복해서 보낸다고 하더라도, 그 보내는 수단이 인터넷등의 전산망을 이용하므로 비용적 손실이 없다.
위에서는 본 발명의 설명의 편의상 어느 정도 특정한 실시예의 형태로 기재하였으나, 이러한 기재 사항은 오직 실시 예로서 제시된 것이고, 당업자라면 본 발명의 정신과 범위를 벗어나지 않고 본 발명과 유사한 효과를 가지는 다양한 변형이 가능함을 알 수 있을 것이다.
.
도 1은 일반적인 초소액 전자 지불 시스템의 개략도.
도 2는 본 발명에 따른 초소액 전자 지불 시스템에 있어서의 사용자, 상점, 브로커 간의 관계도.
.
본 발명은 효율성, 안전성, 분쟁해결성이 모두 우수한 초소형 전자 지불 시스템을 제공할 수 있기 때문에, 지불 관련 처리 비용이 저렴하게 되고, 외부의 공격자로부터 안전하며, 지불 과정에서 발생하는 분쟁에 효과적으로 대처할 수 있게 된다.

Claims (20)

  1. 물품 구매에 대한 전자적인 지불을 가능하게 하기 위하여 네트워크로 상호 연결된 사용자용 컴퓨터와 브로커용 컴퓨터와 상점용 컴퓨터로 구성된 전자 지불용 컴퓨터 장치에 있어서,
    사용자가 상점에서 물품을 구매하기 전에 브로커에게, 사용자 식별번호 (PsIDU)와 사용자의 공개키(PKU)를 포함한 브로커의 전자서명으로 형성되는 구폰 묶음 인증서(CU)를 구매하도록 처리하는 사용자용 컴퓨터와 브러커(3)용 컴퓨터상의 제1 처리장치;
    사용자만 가지는 난수(Seed)를 변수로 하여 암호학적 해쉬 함수를 사용하여 형성되는 지불값()의 체인을 형성하는 제1 해쉬 체인과, 사용자와 상점이 공유하는 난수(Sec)를 변수로 하여 키를 갖는 해쉬 함수를 사용하여 형성되는 값(Secj)의 체인을 형성하는 제2 해쉬 체인으로 구성되는 이중 해쉬 체인을 이용하여 쿠폰 묶음 인증서(CU)의 쿠폰 묶음을 사용자가 상점에 등록하도록 처리하는 사용자용 컴퓨터와 상점용 컴퓨터상의 제2 처리장치;
    물품 구매에 대한 지불을 하고자 할 때, 거래 인식 ID(TransID)와 구매하고자 하는 상품의 ID(IDitem)를 변수하고, 지불하고자 하는 값(wj)에 대응하는 제2 해쉬 체인 값(Secj)을 키로 하여 생성되는 값(CRj)과 지불을 위한 값()을 암호화한 값(Payj)을 사용자가 상점에 전달하며, 상점이 적어도 상품 ID(IDitem)를 포함하는 값들을 이용하여 상점이 서명한 값을 사용자에게 전달하도록 처리하는 사용자용 컴퓨터와 상점용 컴퓨터상의 제3 처리장치를 포함하는 것을 특징으로 하는 전자 지불용 컴퓨터 장치.
  2. 제1항에 있어서, 상기 상점의 서명은 적어도 거래 인식 ID(TransID)와 거래시간(T)을 더 포함하는 값들을 이용한 서명인 것을 특징으로 하는 전자 지불용 컴퓨터 장치.
  3. 제1항 또는 제2항에 있어서, 상기 상점이 사용자에게 전달하는 값은 적어도 거래 인식 ID(TransID)와 거래시간(T)을 더 포함하는 것을 특징으로 하는 초소형 전자 지불 시스템.
  4. 제1항에 있어서, 상기 쿠폰 묶음 인증서(CU)는 브로커의 개인 식별번호(IDBroker)를 더 포함하는 것을 특징으로 하는 전자 지불용 컴퓨터 장치.
  5. 제4항에 있어서, 상기 쿠폰 묶음 인증서(CU)는 인증서 유효기간(ExCu)과 분쟁해결 가능기간(ExDH)를 더 포함하는 것을 특징으로 하는 전자 지불용 컴퓨터 장치.
  6. 제5항에 있어서, 상기 쿠폰 묶음 인증서(CU)는 구매할 수 있는 최대금액(MAX)을 더 포함하는 것을 특징으로 하는 전자 지불용 컴퓨터 장치.
  7. 제1항에 있어서, 상기 제2 처리장치는 사용자가 적어도 제1 해쉬 체인의 처음값(w0), 쿠폰 묶음 인증서(CU), 상점의 식별번호(IDV), 난수(Sec)의 해쉬 값(h(sec))을 브로커로부터 인증받은 공개키(PKU)로 전자 서명한 값을 상점에 전달하도록 처리하는 것을 특징으로 하는 전자 지불용 컴퓨터 장치.
  8. 제7항에 있어서, 상기 제2 처리장치는 사용자가 적어도 제1 해쉬 체인의 처음값(w0), 쿠폰 묶음 인증서(CU), 상점의 식별번호(IDV)를 상점에 전달하도록 처리하는 것을 특징으로 하는 전자 지불용 컴퓨터 장치.
  9. 제1항에 있어서, 상기 제3 처리장치에서의 거래 인식 ID(TransID)는 구매시 사용자가 상점에 전달한 사용자 식별번호(PsIDU)와, 구매하고자 하는 상품의 ID(IDitem)와, 구매시간(T)를 변수로 하여 난수(Sec)를 키로 하는 해쉬 함수에 의해, 인증서 유효기간(ExCu)과 분쟁해결 가능기간(ExDH)이 만료되지 않은 경우에, 계산을 하는 것을 특징으로 하는 전자 지불용 컴퓨터 장치.
  10. 제1항 또는 제2항에 있어서, 상기 상점용 컴퓨터는 난수(Sec)를 사용하여 값(CRj)을 생성하고 이 생성된 값(CRj)과 전달된 값(Payj)으로부터 지불을 위한 값(wj)을 복호화 하는 것을 특징으로 하는 전자 지불용 컴퓨터 장치.
  11. 제10항에 있어서, 상기 상점용 컴퓨터는 데이터 베이스에 있는 복호화된 지불을 위한 값(wj)을 근거로 해쉬 함수를 반복적으로 형성하여 이전의 지불값(wi)이 되는지를 검사하는 것을 특징으로 하는 전자 지불용 컴퓨터 장치.
  12. 제11항에 있어서, 상기 상점용 컴퓨터는 데이터 베이스에 있는 복호화된 지불을 위한 값(wj)을 근거로 해쉬 함수를 반복적으로 형성하여 이전의 마지막 지불값(wi)이 되는지를 검사하는 것을 특징으로 하는 전자 지불용 컴퓨터 장치.
  13. 제11항에 있어서, 상기 검사가 맞으면 상점이 이전의 마지막 지불값(wi)과 인덱스(i)를 새로운 지불값(wj)과 인덱스(j)로 변경하는 것을 특징으로 하는 전자 지불용 컴퓨터 장치.
  14. 제12항에 있어서, 상기 검사가 맞으면 상점이 이전의 마지막 지불값(wi)과 인덱스(i)를 새로운 지불값(wj)과 인덱스(j)로 변경하는 것을 특징으로 하는 전자 지불용 컴퓨터 장치.
  15. 제1항에 있어서, 상품 구매에 대한 지불을 위하여, 상점용 컴퓨터는 브로커용 컴퓨터에게 쿠폰 묶음 인증서(CU)와 새로운 지불값(wj)을 포함하는 데이터를 보내고, 브로커용 컴퓨터는 쿠폰 묶음 인증서(CU)의 유효성을 검증하고, 전체사용금액(MAX)을 초과하지 않는 경우 해당금액을 지불하며, 데이터 베이스에 기록된 이전의 마지막 지불값(wi)을 새로운 지불 값(wj)으로 갱신하는 것을 특징으로 하는 전자 지불용 컴퓨터 장치.
  16. 제1항에 있어서, 상기 제3 처리장치에서의 처리는 적어도 사용자 식별번호(PsIDU), 상품 ID(IDitem)를 이용하여 사용자가 서명한 값을 상점에 전달하는 것을 특징으로 하는 전자 지불용 컴퓨터 장치.
  17. 제2항에 있어서, 상기 제3 처리장치에서의 처리는 적어도 사용자 식별번호(PsIDU), 상품 ID(IDitem), 상기 상점이 서명한 값을 이용하여 사용자가 서명한 값을 상점에 전달하는 것을 특징으로 하는 전자 지불용 컴퓨터 장치.
  18. 물품 구매에 대한 전자적인 지불을 가능하게 하기 위하여 네트워크로 사용자용 컴퓨터와 브로커용 컴퓨터와 상호 연결된 상점용 컴퓨터 장치에 있어서,
    사용자가 상점에서 물품을 구매하기 전에 브로커에게, 사용자 식별번호 (PsIDU)와 사용자의 공개키(PKU)를 포함한 브로커의 전자서명으로 형성되는 구폰 묶음 인증서(CU)를 구매하여 생성되는 쿠폰 묶음 인증서(CU)의 쿠폰 묶음을,
    사용자만 가지는 난수(Seed)를 변수로 하여 암호학적 해쉬 함수를 사용하여 형성되는 지불값()의 체인을 형성하는 제1 해쉬 체인과, 사용자와 상점이 공유하는 난수(Sec)를 변수로 하여 키를 갖는 해쉬 함수를 사용하여 형성되는 값(Secj)의 체인을 형성하는 제2 해쉬 체인으로 구성되는 이중 해쉬 체인을 이용하여 사용자가 상점에 등록하도록 처리하는 제1 처리장치와;
    물품 구매에 대한 지불을 하고자 할 때, 거래 인식 ID(TransID)와 구매하고자 하는 상품의 ID(IDitem)를 변수하고, 지불하고자 하는 값(wj)에 대응하는 제2 해쉬 체인 값(Secj)을 키로 하여 생성되는 값(CRj)과 지불을 위한 값()을 암호화한 값(Payj)을 사용자가 상점에 전달하며, 상점이 적어도 상품 ID(IDitem)를 포함하는 값들을 이용하여 상점이 서명한 값을 사용자에게 전달하도록 처리하는 제2 처리장치를 포함하는 것을 특징으로 하는 전자 지불용 상점용 컴퓨터.
  19. 물품 구매에 대한 전자적인 지불을 가능하게 하기 위하여 네트워크로 상호 연결된 사용자용 컴퓨터와 브로커용 컴퓨터와 상점용 컴퓨터로 구성된 전자 지불용 컴퓨터 장치의 처리방법에 있어서,
    사용자가 상점에서 물품을 구매하기 전에 브로커에게, 사용자 식별번호 (PsIDU)와 사용자의 공개키(PKU)를 포함한 브로커의 전자서명으로 형성되는 구폰 묶음 인증서(CU)를 구매하도록 처리하는 사용자용 컴퓨터와 브로커용 컴퓨터간의 제1 처리단계;
    사용자만 가지는 난수(Seed)를 변수로 하여 암호학적 해쉬 함수를 사용하여 형성되는 지불값()의 체인을 형성하는 제1 해쉬 체인과, 사용자와 상점이 공유하는 난수(Sec)를 변수로 하여 키를 갖는 해쉬 함수를 사용하여 형성되는 값(Secj)의 체인을 형성하는 제2 해쉬 체인으로 구성되는 이중 해쉬 체인을 이용하여 쿠폰 묶음 인증서(CU)의 쿠폰 묶음을 사용자가 상점에 등록하도록 처리하는 사용자용 컴퓨터와 상점용 컴퓨터상간의 제2 처리단계;
    물품 구매에 대한 지불을 하고자 할 때, 거래 인식 ID(TransID)와 구매하고자 하는 상품의 ID(IDitem)를 변수하고, 지불하고자 하는 값(wj)에 대응하는 제2 해쉬 체인 값(Secj)을 키로 하여 생성되는 값(CRj)과 지불을 위한 값()을 암호화한 값(Payj)을 사용자가 상점에 전달하며, 상점이 적어도 상품 ID(IDitem)를 포함하는 값들을 이용하여 상점이 서명한 값을 사용자에게 전달하도록 처리하는 사용자용 컴퓨터와 상점용 컴퓨터간의 제3 처리단계를 포함하는 것을 특징으로 하는 전자 지불용 컴퓨터 장치의 처리방법.
  20. 물품 구매에 대한 전자적인 지불을 가능하게 하기 위하여 네트워크로 사용자용 컴퓨터와 브로커용 컴퓨터와 상호 연결된 상점용 컴퓨터 장치의 처리방법에 있어서,
    사용자가 상점에서 물품을 구매하기 전에 브로커에게, 사용자 식별번호 (PsIDU)와 사용자의 공개키(PKU)를 포함한 브로커의 전자서명으로 형성되는 쿠폰 묶음 인증서(CU)를 구매하여 생성되는 쿠폰 묶음 인증서(CU)의 쿠폰 묶음을,
    사용자만 가지는 난수(Seed)를 변수로 하여 암호학적 해쉬 함수를 사용하여 형성되는 지불값()의 체인을 형성하는 제1 해쉬 체인과, 사용자와 상점이 공유하는 난수(Sec)를 변수로 하여 키를 갖는 해쉬 함수를 사용하여 형성되는 값(Secj)의 체인을 형성하는 제2 해쉬 체인으로 구성되는 이중 해쉬 체인을 이용하여 사용자가 상점에 등록하도록 처리하는 제1 처리단계;
    물품 구매에 대한 지불을 하고자 할 때, 거래 인식 ID(TransID)와 구매하고자 하는 상품의 ID(IDitem)를 변수하고, 지불하고자 하는 값(wj)에 대응하는 제2 해쉬 체인 값(Secj)을 키로 하여 생성되는 값(CRj)과 지불을 위한 값()을 암호화한 값(Payj)을 사용자가 상점에 전달하며, 상점이 적어도 상품 ID(IDitem)를 포함하는 값들을 이용하여 상점이 서명한 값을 사용자에게 전달하도록 처리하는 제2 처리단계를 포함하는 것을 특징으로 하는 전자 지불용 상점용 컴퓨터의 처리방법.
KR10-2001-0009416A 2001-02-23 2001-02-23 이중 해쉬 체인을 이용한 전자 지불 시스템 KR100376118B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-0009416A KR100376118B1 (ko) 2001-02-23 2001-02-23 이중 해쉬 체인을 이용한 전자 지불 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0009416A KR100376118B1 (ko) 2001-02-23 2001-02-23 이중 해쉬 체인을 이용한 전자 지불 시스템

Publications (2)

Publication Number Publication Date
KR20020069070A KR20020069070A (ko) 2002-08-29
KR100376118B1 true KR100376118B1 (ko) 2003-03-17

Family

ID=27695425

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0009416A KR100376118B1 (ko) 2001-02-23 2001-02-23 이중 해쉬 체인을 이용한 전자 지불 시스템

Country Status (1)

Country Link
KR (1) KR100376118B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102322605B1 (ko) * 2017-07-12 2021-11-05 덕성여자대학교 산학협력단 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법

Also Published As

Publication number Publication date
KR20020069070A (ko) 2002-08-29

Similar Documents

Publication Publication Date Title
US11687924B2 (en) Cryptocurrency infrastructure system
Bellare et al. iKP-A Family of Secure Electronic Payment Protocols.
USRE38070E1 (en) Cryptography system and method for providing cryptographic services for a computer application
US5999625A (en) Method for electronic payment system with issuer control
EP0995177B1 (en) Symmetrically-secured electronic communication system
US6023509A (en) Digital signature purpose encoding
US20170161734A1 (en) Methods and systems of using a cryptocurrency system to manage payments and payment alternatives
Hwang et al. A simple micro-payment scheme
WO2007092577A2 (en) A point-of-sale terminal transactions using mutating identifiers
CN103716154A (zh) 一种终端主密钥tmk安全下载方法及系统
CN116802661A (zh) 基于令牌的链外交互授权
US9171324B2 (en) Hybrid virtual account and token-based digital cash protocols
Sekhar et al. Secure lightweight mobile payment protocol using symmetric key techniques
KR100468031B1 (ko) 자기앞 전자수표 발행 및 결제방법
Lin et al. A new quantum payment protocol based on a set of local indistinguishable orthogonal product states
Luo et al. Offline transferable E-cash mechanism
Mazumdar et al. On-line electronic payment system using signcryption
KR19980048462A (ko) 신용카드 기반 전자 지불방법
Lee et al. Traceability of double spending in secure electronic cash system
KR100376118B1 (ko) 이중 해쉬 체인을 이용한 전자 지불 시스템
Kungpisdan Accountability in centralized payment environments
KR100376119B1 (ko) 초소형 지불 시스템
Elkamchouchi An Improvement to the SET Protocol Based On Signcryption
San et al. Efficient offline micropayment protocol for multi-vendor
Myers An efficient commerce system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20100304

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee