[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR20180089951A - 전자화폐 거래 방법 및 시스템 - Google Patents

전자화폐 거래 방법 및 시스템 Download PDF

Info

Publication number
KR20180089951A
KR20180089951A KR1020170014724A KR20170014724A KR20180089951A KR 20180089951 A KR20180089951 A KR 20180089951A KR 1020170014724 A KR1020170014724 A KR 1020170014724A KR 20170014724 A KR20170014724 A KR 20170014724A KR 20180089951 A KR20180089951 A KR 20180089951A
Authority
KR
South Korea
Prior art keywords
public key
module
receiving
transmitting
issuing
Prior art date
Application number
KR1020170014724A
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 KR1020170014724A priority Critical patent/KR20180089951A/ko
Publication of KR20180089951A publication Critical patent/KR20180089951A/ko

Links

Images

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/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • 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/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/363Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes with the personal data of a user
    • 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/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3823Payment protocols; Details thereof insuring higher security of transaction combining multiple encryption tools for a transaction
    • 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/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

네트워크에 연결된 서버를 이용하지 않고서도 P2P간의 전자화폐의 이동을 안전하면서도 수월하게 행할 수 있도록 하는 전자화폐 거래 방법 및 시스템을 제시한다. 제시된 방법은, 수신측 모듈이, 요구할 전자화폐의 금액을 지정하고 난수를 생성하는 단계; 수신측 모듈이, 상기 금액 및 상기 난수를 근거로 제 1 암호문을 생성하는 단계; 송신측 모듈이, 상기 제 1 암호문을 근거로 제 2 암호문을 생성하는 단계; 발행측 모듈이, 상기 제 2 암호문을 송신측 공개키와 수신측 공개키로 복호화하는 단계; 상기 발행측 모듈이, 상기 제 2 암호문을 근거로 제 3 암호문을 생성하는 단계; 상기 수신측 모듈이, 상기 제 3 암호문을 송신측 공개키와 발행측 공개키로 복호화하는 단계; 및 상기 수신측 모듈이, 상기 제 3 암호문을 복호화한 결과가 상기 금액 및 상기 난수와 일치하는 지를 판단하는 단계;를 포함한다. 상기 송신측 공개키와 상기 발행측 공개키 및 상기 수신측 공개키는 F함수에 의해 홀수로 생성된다.

Description

전자화폐 거래 방법 및 시스템{Method and system for processing transaction of electronic cash}
본 발명은 전자화폐 거래 방법 및 시스템에 관한 것으로, 보다 상세하게는 P2P거래에 있어서 전자화폐를 보다 간편하게 사용할 수 있도록 하는 전자화폐 거래 방법 및 시스템에 관한 것이다.
비트코인의 보안기술로 알려진 블록체인(Block Chain)은 공공거래 장부라고도 불리우며, 전자화폐(가상화폐)로 거래할 때 발생할 수 있는 해킹을 막는 기술이다.
기존의 전자화폐 송금/지불 방식은 중앙서버에서 모든 거래 기록을 보관하는 중앙집중식인데 반면에, 블록체인은 거래에 참여하는 모든 사용자에게 거래내역을 보내주며 이를 대조하여 데이터 위조를 막는 방식을 사용하고 있다.
상술한 기존의 전자화폐 송금/지불 방식은 장부 관리가 필요하며, 네트워크를 통해 중앙서버에서 총괄 처리되어야 한다. 장부 관리는 데이터저장소의 리소스를 반드시 필요로 하고, 중앙서버에서 총괄 처리되도록 하기 위해서는 네트워크에 연결된 서버 시스템이 반드시 필요하다.
한편, 블록체인을 이용하는 각각의 사용자는 자신의 거래내역 뿐만 아니라 거래에 참여하는 다른 모든 사용자들의 거래내역도 함께 저장해 두어야 하므로, 저장공간의 문제가 발생되었다. 그래서, 중간 서버를 활용하는 경우가 있는데, 이 경우에는 네트워크에 연결된 중간 서버를 별도로 두어야 한다.
그리고, 블록체인은 개개인의 분산된 원장을 사용하는 것이므로, 거래가 발생하였을 경우 모든 분산 원장에 해당 거래에 대한 기록내역을 업데이트시켜야 한다. 이때, 블록체인을 이용하는 사용자의 수가 많으면 많을수록 모든 사용자의 원장에 기록내역을 업데이트 완료시키기까지의 시간이 더욱 길어지게 되고, 완료되기까지 많은 시간을 기다려야 하는 문제가 발생되고 있다.
한편, 기존의 선불 충전 카드는 수취하는 측에서 암호키를 가져야 하므로 SAM(Secure Access Module)과 같은 하드웨어 장치가 반드시 필요하다. 그런데, 현재의 SAM은 모든 카드에 접근하여 화폐를 취득할 수 있는 문제가 있다.
선행기술 1 : 대한민국 등록특허 제10-1637854호(블록체인을 기반으로 하는 공인인증서 발급시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 발급방법 및 블록체인을 기반으로 하는 공인인증서 인증시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 인증방법) 선행기술 2 : 대한민국 등록특허 제10-1233925호(아이디 기반 암호화 및 서명 장치 및 방법, 비밀키 발급 서버 및 방법) 선행기술 3 : 대한민국 등록특허 제10-1660627호(암호화 화폐의 거래를 보호하는 방법 및 장치) 선행기술 4 : 대한민국 등록특허 제10-0358426호(전자현금거래방법)
본 발명은 상기한 종래의 문제점을 해결하기 위해 제안된 것으로, 네트워크에 연결된 서버를 이용하지 않고서도 P2P간의 전자화폐의 이동을 안전하면서도 수월하게 행할 수 있도록 하는 전자화폐 거래 방법 및 시스템을 제공함에 그 목적이 있다.
상기와 같은 목적을 달성하기 위하여 본 발명의 바람직한 실시양태에 따른 전자화폐 거래 방법은, 발행측 모듈이 발행하는 전자화폐에 대해 수신측 모듈이 요구하고 송신측 모듈이 지불하는 거래 방법으로서, 수신측 모듈이, 요구할 전자화폐의 금액을 지정하고 난수를 생성하는 단계; 수신측 모듈이, 상기 금액 및 상기 난수를 근거로 제 1 암호문을 생성하는 단계; 송신측 모듈이, 상기 제 1 암호문을 근거로 제 2 암호문을 생성하는 단계; 발행측 모듈이, 상기 제 2 암호문을 송신측 공개키와 수신측 공개키로 복호화하는 단계; 상기 발행측 모듈이, 상기 제 2 암호문을 근거로 제 3 암호문을 생성하는 단계; 상기 수신측 모듈이, 상기 제 3 암호문을 송신측 공개키와 발행측 공개키로 복호화하는 단계; 및 상기 수신측 모듈이, 상기 제 3 암호문을 복호화한 결과가 상기 금액 및 상기 난수와 일치하는 지를 판단하는 단계;를 포함하고, 상기 송신측 공개키와 상기 발행측 공개키 및 상기 수신측 공개키는 F함수에 의해 홀수로 생성된다.
상기 F함수는 모든 입력값에 대해 홀수를 출력하는 단사함수 또는 해쉬함수일 수 있다.
상기 송신측 공개키와 상기 발행측 공개키 및 상기 수신측 공개키는 상호 동일한 공통 인자(N)(N = p*q, p = 2p' + 1, q = 2q' + 1(p' 및 q'는 소수이고, p 및 q는 서로 다른 소수))를 사용할 수 있다.
상기 제 2 암호문을 송신측 공개키와 수신측 공개키로 복호화하는 단계는, 복호화에 따른 금액을 추출하여 상기 발행측 모듈내의 금액 저장부의 정보를 갱신하는 단계;를 포함할 수 있다.
상기 제 3 암호문은 상기 송신측 모듈을 거쳐 상기 수신측 모듈에게로 전달될 수 있다.
상기 제 3 암호문을 복호화한 결과가 상기 금액 및 상기 난수와 일치하는 지를 판단하는 단계는, 상기 제 3 암호문을 복호화한 결과가 상기 금액 및 상기 난수와 일치하면 상기 복호화에 따른 금액을 근거로 상기 수신측 모듈내의 금액 저장부의 정보를 갱신하는 단계;를 포함할 수 있다.
그리고, 본 발명의 바람직한 실시양태에 따른 전자화폐 거래 시스템은, 발행측 모듈이 발행하는 전자화폐에 대해 수신측 모듈이 요구하고 송신측 모듈이 지불하는 거래 시스템으로서, 상기 수신측 모듈은, 난수를 생성하는 난수 생성부; 수신측 비밀키를 저장하는 수신키 저장부; 및 상기 요구한 금액 및 상기 난수를 상기 수신측 비밀키로 암호문을 생성하여 상기 송신측 모듈에게로 전송하고, 상기 암호문이 상기 송신측 모듈 및 상기 발행사 모듈을 거치면서 순차적으로 암호화됨에 따른 최종의 암호문을 수신하여 송신측 공개키 및 발행측 공개키로 복호화하고, 상기 최종의 암호문을 복호화한 결과가 상기 금액 및 상기 난수와 일치하는 지를 판단하는 프로세스 처리부;를 포함하고, 상기 송신측 공개키 및 상기 발행측 공개키는 F함수에 의해 홀수로 생성된다.
상기 송신측 공개키 및 상기 발행측 공개키는 상호 동일한 공통 인자(N)(N = p*q, p = 2p' + 1, q = 2q' + 1(p' 및 q'는 소수이고, p 및 q는 서로 다른 소수))를 사용할 수 있다.
상기 발행측 모듈은, 상기 수신측 모듈에서의 암호문이 상기 송신측 모듈에서 재차 암호화됨에 따라 상기 재차 암호화된 암호문을 송신측 공개키 및 수신측 공개키로 복호화하여 금액을 추출하되,상기 수신측 공개키는 F함수에 의해 홀수로 생성되고, 상기 F함수는 모든 입력값에 대해 홀수를 출력하는 단사함수 또는 해쉬함수이고, 상기 수신측 공개키는 상기 송신측 공개키 및 상기 발행측 공개키가 사용하는 공통 인자(N)를 사용할 수 있다.
상기 수신키 저장부는, 해당 수신측 모듈의 USIM(universal subscriber identity module) 또는 트러스트존(trust zone)에 위치할 수 있다.
그리고, 본 발명의 다른 바람직한 실시양태에 따른 전자화폐 거래 시스템은, 발행측 모듈이 발행하는 전자화폐에 대해 수신측 모듈이 요구하고 송신측 모듈이 지불하는 거래 시스템으로서, 상기 발행측 모듈은, 발행측 비밀키를 저장하는 발행키 저장부; 및 상기 수신측 모듈에서 요구한 금액 및 상기 수신측 모듈에서 생성된 난수를 근거로 하는 제 1 암호문이 상기 송신측 모듈에서 제 2 암호문으로 암호화되어 수신됨에 따라 상기 제 2 암호문을 송신측 공개키와 수신측 공개키로 복호화하고, 상기 제 2 암호문을 상기 발행측 비밀키로 제 3 암호문을 생성하여 상기 송신측 모듈을 거쳐 상기 수신측 모듈에게로 전송하는 프로세스 처리부;를 포함하고, 상기 송신측 공개키 및 상기 수신측 공개키는 F함수에 의해 홀수로 생성된다.
상기 프로세스 처리부는 상기 송신측 모듈 및 상기 수신측 모듈에서 공통으로 사용가능한 공통 인자를 생성하여 제공하고, 상기 송신측 공개키 및 상기 수신측 공개키는 상기 공통 인자를 동일하게 사용하되, 상기 공통 인자는 N = p*q, p = 2p' + 1, q = 2q' + 1(p' 및 q'는 소수이고, p 및 q는 서로 다른 소수, N은 공통 인자)로 구해질 수 있다.
상기 수신측 모듈은 상기 제 3 암호문을 송신측 공개키와 발행측 공개키로 복호화한 결과가 상기 금액 및 상기 난수와 일치하는 지를 판단하고, 상기 발행측 공개키는 F함수에 의해 홀수로 생성되고, 상기 F함수는 모든 입력값에 대해 홀수를 출력하는 단사함수 또는 해쉬함수이고, 상기 발행측 공개키는 상기 송신측 공개키 및 상기 수신측 공개키가 사용하는 공통 인자를 사용할 수 있다.
상기 발행키 저장부는, 해당 발행측 모듈의 USIM(universal subscriber identity module) 또는 트러스트존(trust zone)에 위치할 수 있다.
이러한 구성의 본 발명에 따르면, 수신측에서 지불받을 금액을 지정하고 그에 대한 난수를 생성하여 거래를 시작한다. 즉, 거래의 시발점이 송신측 및 발행측이 아니라 수신측이다.
또한, 상호간의 거래에 있어서 발행측 공개키와 송신측 공개키 및 수신측 공개키는 상호 동일한 공통 인자(N)를 이용하므로, 검증을 위해 CA(CA; Certification Authority)(인증기관), RA(Registration Authority)와 같은 서버와 통신할 일도 없다. 다시 말해서, 쌍방간 확실한 신원증명을 위해 신원기반암호(ID-based Cryptography)를 사용함으로써, 키의 유효성을 검증하기 위해 CA(CA; Certification Authority)(인증기관), RA(Registration Authority)와 같은 서버에 의존하지 않고서도 단말기에서 직접 검증할 수 있으므로 매우 효율적이라 할 수 있다. 이와 같이 쌍방간 확실한 신원증명을 위해 신원기반암호(ID-based Cryptography)를 사용함으로써 전통적인 공개키암호방식에서 공개키 교환에 따른 사기행위를 원천차단할 수 있다.
그리고, 모든 금액에 대하여 난수가 일대일로 대응되어 있으므로, 수신측에서 복호화한 결과 해당 금액에 대한 난수가 처음 생성하였던 난수와 비교하여 상이하면 거래를 하지 않으므로, 금액에 대한 인증이 수월할 뿐만 아니라 이중 지불의 문제를 해결할 수 있다.
도 1은 본 발명의 실시예에 따른 전자화폐 거래 시스템의 구성도이다.
도 2는 본 발명의 실시예에 따른 전자화폐 거래 방법을 설명하기 위한 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예에 따른 전자화폐 거래 시스템의 구성도이다.
본 발명의 실시예에 따른 전자화폐 거래 시스템은, 발행사 단말기(10), 송신측 단말기(20), 및 수신측 단말기(30)를 포함한다. 여기서, 발행사 단말기(10), 송신측 단말기(20), 및 수신측 단말기(30)는 발행측 모듈 또는 발행측 모듈부, 송신측 모듈 또는 송신측 모듈부, 수신측 모듈 또는 수신측 모듈부로 표현되어도 무방하다. 한편으로, 발행사 단말기(10), 송신측 단말기(20), 및 수신측 단말기(30)는 전자화폐 거래 장치가 될 수 있다.
도 1에서, 발행사 단말기(10)와 송신측 단말기(20)는 네트워크(도시 생략)로 연결되고, 송신측 단말기(20)와 수신측 단말기(30)는 네트워크(도시 생략)로 연결되어 있다.
발행사 단말기(10)와 송신측 단말기(20)는 서로 데이터 통신을 수행할 수 있고, 송신측 단말기(20)와 수신측 단말기(30)는 서로 데이터 통신을 수행할 수 있다.
네트워크는 유선 통신망 및 무선 통신망을 모두 포함하는 개념으로서, 이에 한정되지 않고 데이터를 주고받을 수 있는 여타의 통신망이 될 수 있다.
발행사 단말기(10)는 P2P간에 전자화폐를 거래할 수 있는 어플리케이션(앱)을 제공해 주는 발행사(서비스 공급사)의 단말기이다.
발행사 단말기(10)는 전자화폐를 발행할 수 있다. 여기서, 발행사는 신뢰할 수 있는 것으로 한다.
발행사 단말기(10)는 송신측 단말기(20) 및 수신측 단말기(30)에서 공통으로 사용가능한 공통 인자(N)를 생성할 수 있다. 발행사 단말기(10)는 생성한 공통 인자(N)를 송신측 단말기(20) 및 수신측 단말기(30)에게로 보낸다.
예를 들어, 발행사 단말기(10)는 소수 p = 2p' + 1, 소수 q = 2q' + 1(여기서, p' 및 q'은 소수이고, p 및 q는 서로 다른 소수)를 생성한다. 여기서, 공통 인자(N) = p*q로 할 수 있다. 다시 말해서, 서로 다른 두 소수(p, q)를 곱한 것을 공통 인자(N)라고 할 수 있다. 공통 인자(N)는 송신측 단말기(20) 및 수신측 단말기(30)에 저장되어 암호화, 복호화 및 인증단계에서 사용될 수 있다. 그리고, (p-1)*(q-1)의 값은 Φ(phi)(N)이 될 수 있다. Φ(phi)(N)은 비밀키 생성 인자가 될 수 있다.
발행사 단말기(10)는 송신측 단말기(20)에서 생성된 암호문을 수신하여 복호화할 수 있다. 여기서, 송신측 단말기(20)에서 생성된 암호문은 수신측 단말기(30)에서 생성된 암호문을 해당 송신측 단말기(20)의 송신측 비밀키로 암호화함에 따라 생성된 것이다. 그리고, 수신측 단말기(30)에서 생성된 암호문은 해당 수신측 단말기(30)가 요구하는 금액(A)과 난수(R)를 연접(concatenation)시킨 데이터(A∥R)(즉, 시퀀스)를 수신측 비밀키로 암호화함에 따라 생성된 것이다. 따라서, 수신측 단말기(30)에서 생성된 암호문을 제 1 암호문 또는 1차 암호문이라고 할 수 있고, 송신측 단말기(20)에서 생성된 암호문을 제 2 암호문 또는 2차 암호문이라고 할 수 있다.
발행사 단말기(10)는 송신측 단말기(20)에서 생성된 암호문(제 2 암호문)을 복호화함에 있어서, 제 2 암호문을 송신측 비밀키에 상응하는 송신측 공개키(e2, N) 및 수신측 비밀키에 상응하는 수신측 공개키(e1, N)로 복호화할 수 있다.
발행사 단말기(10)는 제 2 암호문을 복호화하여 금액을 추출하여 내부의 금액 저장부를 갱신한다.
또한, 발행사 단말기(10)는 제 2 암호문을 해당 발행사 단말기(10)의 발행사 비밀키로 암호화한 제 3 암호문(또는 3차 암호문)을 생성할 수 있다.
발행사 단말기(10)는 제 3 암호문을 송신측 단말기(20)에게로 전송한다.
상술한 발행사 단말기(10)는 발행키 저장부(11), 금액 저장부(12), 프로세스 처리부(13), 및 인터페이스부(14)를 포함할 수 있다.
발행키 저장부(11)는 발행사 단말기(10)의 비밀키를 저장한다.
금액 저장부(12)는 수신측 단말기(30)에서 송신측 단말기(20)에게로 요구한 금액을 저장한다. 즉, 발행사 단말기(10)는 송신측 단말기(20)에서 생성된 암호문( 제 2 암호문; 수신측 단말기(30)에서 생성한 제 1 암호문을 송신측 비밀키로 암호화한 결과)을 복호화할 수 있다. 금액 저장부(12)는 이러한 복호화를 거쳐 추출된 금액(즉, 송신측 단말기(20)에게로 요구한 금액)을 저장한다.
또한, 금액 저장부(12)는 추출된 금액을 근거로 갱신될 수 있다.
필요에 따라, 발행키 저장부(11) 및 금액 저장부(12)는 해당 발행사 단말기(10)의 USIM(universal subscriber identity module) 또는 트러스트존(trust zone)에 위치시키는 것이 바람직하다. USIM 또는 트러스트존은 사용자가 접근불가능한 메모리 영역이라고 할 수 있다. 발행측 비밀키 및 금액은 보안에 민감한 정보이다. 발행키 저장부(11) 및 금액 저장부(12)를 USIM 또는 트러스트존에 위치시키게 되면 발행측 비밀키 및 금액에 대한 해커 등의 접근을 차단할 수 있다.
프로세스 처리부(13)는 발행사 단말기(10)의 전체적인 동작을 제어한다.
프로세스 처리부(13)는 송신측 단말기(20) 및 수신측 단말기(30)에서 공통으로 사용가능한 공통 인자(N)를 생성하고, 공통 인자(N)를 인터페이스부(14)를 통해 송신측 단말기(20) 및 수신측 단말기(30)에게로 보낼 수 있다.
프로세스 처리부(13)는 발행측 비밀키를 생성할 수 있다. 프로세스 처리부(13)는 발행측 비밀키를 발행키 저장부(11)에 저장한다. 물론, 프로세스 처리부(13)가 발행측 비밀키를 생성하는 것과는 다르게, 해당 발행사 단말기(10)의 설계 단계에서 발행측 비밀키가 미리 설정되어 있을 수도 있다.
프로세스 처리부(13)는 금액 저장부(12)내의 금액을 증감시키는 등의 연산을 수행할 수 있다.
프로세스 처리부(13)는 송신측 단말기(20)로부터의 제 2 암호문을 송신측 비밀키에 상응하는 송신측 공개키(e2, N) 및 수신측 비밀키에 상응하는 수신측 공개키(e1, N)로 복호화할 수 있다. 이를 위해, 프로세스 처리부(13)는 송신측 공개키 및 수신측 공개키를 저장할 수 있다.
수신측 단말기(30)에서 생성된 제 1 암호문은 해당 수신측 단말기(30)가 요구하는 금액(A)과 난수(R)를 연접(concatenation)시킨 데이터(A∥R)(즉, 시퀀스)를 수신측 비밀키로 암호화한 것이다. 송신측 단말기(20)에서의 제 2 암호문은 상술한 제 1 암호문을 송신측 비밀키로 암호화한 것이다. 그에 따라, 프로세스 처리부(13)는 먼저 송신측 비밀키에 상응하는 송신측 공개키로 제 2 암호문을 복호화한 후에 재차 수신측 비밀키에 상응하는 수신측 공개키로 복호화를 실시한다.
이러한 복호화에 의해 프로세스 처리부(13)는 제 2 암호문내의 금액을 추출할 수 있고, 추출한 금액을 근거로 금액 저장부(12)를 갱신할 수 있다. 이와 같은 복호화 수순을 통해, 프로세스 처리부(13)는 수신측 단말기(30)가 송신측 단말기(20)에게 요구한 금액을 정확히 파악할 수 있게 된다.
또한, 프로세스 처리부(13)는 제 2 암호문을 해당 발행사 단말기(10)의 발행사 비밀키로 암호화하여 제 3 암호문을 생성하고, 제 3 암호문을 인터페이스부(14)를 통해 송신측 단말기(20)에게로 전송할 수 있다. 이때, 수신측 단말기(30)에서의 난수(R)는 예측할 수 없는 난수이므로, 프로세스 처리부(13)는 수신측 단말기(30)에서 생성된 난수(R)와 동일한 난수를 생성할 수 없다. 그에 따라, 프로세스 처리부(13)는 수신측 단말기(30)에서 최초 생성한 시퀀스(금액(A)∥난수(R))에 대한 위변조를 할 수 없다. 위변조를 한다고 하더라도 난수가 다르게 되므로, 수신측 단말기(30)에서는 해당 금액을 수취하지 않을 것이다. 이로 인해 이중 지불 문제를 해결할 수 있다.
인터페이스부(14)는 송신측 단말기(20)와의 유무선 통신을 수행할 수 있다.
인터페이스부(14)는 송신측 단말기(20)로부터의 제 2 암호문을 수신하여 프로세스 처리부(13)에게로 인가할 수 있다.
또한, 인터페이스부(14)는 프로세스 처리부(13)로부터의 제 3 암호문을 송신측 단말기(20)에게로 전송할 수 있다.
여기서, 인터페이스부(14)는 송신측 단말기(20)와 와이파이 통신, 블루투스 통신, NFC(Near Field Communication; NFC) 등의 통신을 수행할 수 있는 통신모듈(도시 생략) 등을 포함한다. 한편, 인터페이스부(14)는 제 3 암호문을 QR코드를 이용하여 전송할 수도 있다.
도 1에서는 프로세스 처리부(13) 및 인터페이스부(14)를 각각 독립되게 구성시켰으나, 필요에 따라서는 인터페이스부(14)가 프로세스 처리부(13)에 포함되는 것으로 하여도 무방하다.
송신측 단말기(20)는 수신측 단말기(30)에서 생성된 암호문(즉, 제 1 암호문)을 암호화할 수 있다. 송신측 단말기(20)에서의 암호화시, 송신측 단말기(20)는 해당 송신측 단말기(20)의 송신측 비밀키로 제 1 암호문을 암호화하여 제 2 암호문을 생성할 수 있다.
송신측 단말기(20)는 생성한 제 2 암호문을 발행사 단말기(10)에게로 전송한다.
송신측 단말기(20)는 발행사 단말기(10)로부터의 제 3 암호문을 수신측 단말기(30)에게로 전달한다.
수신측 단말기(30)의 입장에서는 송신측 단말기(20)만을 상대하므로, 수신측 단말기(30)의 입장에서 보면 송신측 단말기(20)가 소정 금액의 전자화폐를 해당 수신측 단말기(30)에게로 지불하는 수단이 될 수 있다.
송신측 단말기(20)는 발행사 단말기(10) 또는 수신측 단말기(30)와 와이파이 통신, 블루투스 통신, NFC(Near Field Communication; NFC) 등으로 통신할 수 있다. 그에 따라, 송신측 단말기(20)는 발행사 단말기(10) 또는 수신측 단말기(30)와의 통신을 위한 통신 모듈 등을 포함할 수 있다. 필요에 따라서, 송신측 단말기(20)는 제 2 암호문을 QR코드를 이용하여 전송할 수도 있다.
송신측 단말기(20)는 휴대성과 이동성이 보장되는 무선 통신 장치로서, 스마트폰, 스마트 노트, 태블릿 PC 등과 같은 각종의 스마트 기기일 수도 있다.
상술한 송신측 단말기(20)는 송신키 저장부(21), 프로세스 처리부(22), 및 인터페이스부(23)를 포함할 수 있다.
송신키 저장부(21)는 송신측 단말기(20)의 비밀키를 저장한다.
필요에 따라, 송신키 저장부(21)는 해당 송신측 단말기(20)의 USIM(universal subscriber identity module) 또는 트러스트존(trust zone)에 위치시키는 것이 바람직하다. USIM 또는 트러스트존은 사용자가 접근불가능한 메모리 영역이라고 할 수 있다. 송신측 비밀키는 보안에 민감한 정보이다. 송신키 저장부(21)를 USIM 또는 트러스트존에 위치시키게 되면 송신측 비밀키에 대한 해커 등의 접근을 차단할 수 있다.
프로세스 처리부(22)는 송신측 단말기(20)의 전체적인 동작을 제어한다.
프로세스 처리부(22)는 송신측 비밀키를 생성할 수 있고, 생성한 송신측 비밀키를 송신키 저장부(21)에 저장한다. 물론, 프로세스 처리부(22)가 송신측 비밀키를 생성하는 것과는 다르게, 해당 송신측 단말기(20)의 설계 단계에서 송신측 비밀키가 미리 설정되어 있을 수도 있다.
프로세스 처리부(22)는 수신측 단말기(30)에서 생성된 암호문(즉, 제 1 암호문)을 암호화할 수 있다. 즉, 프로세스 처리부(22)는 송신측 비밀키로 제 1 암호문을 암호화하여 제 2 암호문을 생성할 수 있다. 이때, 수신측 단말기(30)에서의 난수(R)는 예측할 수 없는 난수이므로, 프로세스 처리부(22)는 수신측 단말기(30)에서 생성된 난수(R)와 동일한 난수를 생성할 수 없다. 그에 따라, 프로세스 처리부(22)는 수신측 단말기(30)에서 최초 생성한 시퀀스(금액(A)∥난수(R))에 대한 위변조를 할 수 없다. 위변조를 한다고 하더라도 난수가 다르게 되므로, 수신측 단말기(30)에서는 해당 금액을 수취하지 않을 것이다. 이로 인해 이중 지불 문제를 해결할 수 있다.
프로세스 처리부(22)는 생성한 제 2 암호문을 인터페이스부(23)를 통해 발행사 단말기(10)에게로 전송한다.
또한, 프로세스 처리부(22)는 발행사 단말기(10)로부터의 제 3 암호문을 수신측 단말기(30)에게로 전달될 수 있도록 인터페이스부(23)를 제어한다.
인터페이스부(23)는 발행사 단말기(10) 및 수신측 단말기(30)와의 유무선 통신을 수행할 수 있다.
인터페이스부(23)는 프로세스 처리부(22)에서 생성한 제 2 암호문을 발행사 단말기(10)에게로 전송하고, 발행사 단말기(10)로부터의 제 3 암호문을 수신측 단말기(30)에게로 전달할 수 있다.
여기서, 인터페이스부(23)는 발행사 단말기(10) 및 수신측 단말기(30)와 와이파이 통신, 블루투스 통신, NFC(Near Field Communication; NFC) 등의 통신을 수행할 수 있는 통신모듈(도시 생략) 등을 포함한다. 한편, 인터페이스부(23)는 제 3 암호문을 QR코드를 이용하여 전송할 수도 있다.
도 1에서는 프로세스 처리부(22) 및 인터페이스부(23)를 각각 독립되게 구성시켰으나, 필요에 따라서는 인터페이스부(23)가 프로세스 처리부(22)에 포함되는 것으로 하여도 무방하다.
수신측 단말기(30)는 난수를 생성한다. 이때, 난수는 발행사 단말기(10) 및 송신측 단말기(20)에서 예측할 수 없는 값을 가진다.
기존의 비트코인과 같은 전자화폐의 경우, 보내는 측이 한 사람에게만 소정 금액의 전자화폐를 지불할려고 하였는데 실수로 또 다른 사람에게도 재차 소정 금액의 전자화폐를 지불하는 이중 지불의 문제가 발생할 수 있다.
즉, 기존의 방식에서는 보내는 사람이 거래 시작의 주체가 되어 소정 금액의 전자화폐를 송금하였다. 이로 인해 상술한 바와 같은 이중 지불의 문제가 발생한다.
그러나, 본 발명의 실시예에서는 수신측 단말기(30)가 거래 시작의 주체가 된다. 즉, 수신측 단말기(30)가 받을 금액을 지정하고 난수를 생성하고, 지정된 금액 및 난수를 근거로 제 1 암호문을 생성하여 송신측 단말기(20)에게로 전송한다. 이후, 송신측 단말기(20)는 제 1 암호문을 암호화하여 제 2 암호문으로 만들어 발행사 단말기(10)에게로 보내고, 발행사 단말기(10)는 제 2 암호문을 암호화하여 제 3 암호문으로 만들어 수신측 단말기(30)에게로 보낸다. 수신측 단말기(30)에서는 제 3 암호문을 복호화한 결과에 따른 금액 및 난수가 제 1 암호문을 만들때 사용하였던 금액과 난수와 동일하면 정상적인 거래인 것으로 판단하여 거래를 완료(즉, 전자화폐 수취)를 할 수 있다. 그러나, 제 3 암호문을 복호화한 결과에 따른 금액 및 난수가 제 1 암호문을 만들때 사용하였던 금액과 난수와 동일하지 않으면 비정상적인 거래인 것으로 판단하여 거래를 하지 않게 된다(즉, 전자화폐 불수취).
상술한 바와 같이, 수신측 단말기(30)가 난수를 생성하여 암호문에 활용하게 되면, 이중 지불의 문제를 효과적으로 해소할 수 있다.
이와 같이, 수신측 단말기(30)는 송신측 단말기(20)로부터 지불받아야 할 금액과 소정의 난수를 해당 수신측 단말기(30)의 수신측 비밀키로 암호화하여 제 1 암호문을 생성할 수 있다.
수신측 단말기(30)는 제 1 암호문을 송신측 단말기(20)에게로 전송한다.
수신측 단말기(30)는 송신측 단말기(20)를 통해 수신한 발행사 단말기(10)로부터의 제 3 암호문을 복호화할 수 있다. 이때, 수신측 단말기(30)는 제 3 암호문을 발행측 비밀키에 상응하는 발행측 공개키(e3, N) 및 수신측 비밀키에 상응하는 수신측 공개키(e1, N)로 복호화한다. 그리고, 수신측 단말기(30)는 복호화한 결과(예컨대, 복호문)에 포함된 금액 및 난수가 제 1 암호문 생성시 사용하였던 금액 및 난수와 일치하는지를 판단한다. 판단 결과에 따라 수신측 단말기(30)는 금액 저장부를 갱신하여 거래를 완료할 수 있다.
수신측 단말기(30)는 송신측 단말기(20)와 와이파이 통신, 블루투스 통신, NFC(Near Field Communication; NFC) 등으로 통신할 수 있다. 그에 따라, 수신측 단말기(30)는 송신측 단말기(20)와의 통신을 위한 통신 모듈 등을 포함할 수 있다. 필요에 따라서, 수신측 단말기(30)는 QR코드에 실린 암호문을 QR코드 스캐너로 스캔하여 디코딩할 수 있게 하여도 무방하다.
수신측 단말기(30)는 가맹점에 설치되는 단말기일 수 있다. 필요에 따라, 수신측 단말기(30)는 스마트폰, 스마트 노트, 태블릿 PC 등과 같은 각종의 스마트 기기일 수도 있다.
상술한 본 발명의 실시예에서, 송신측 공개키(e2, N)와 발행측 공개키(e3, N) 및 수신측 공개키(e1, N)는 F함수에 의해 홀수로 생성됨이 바람직하다. 즉, 모든 종류의 식별자를 공개키의 키값으로 사용할 수 있게 하기 위해서, 송신측 공개키와 발행측 공개키 및 수신측 공개키는 홀수로 생성하는 것이 바람직하다. F함수는 모든 입력값에 대해 홀수를 출력하는 단사함수 또는 해쉬함수이다.
예를 들어, 송신측 공개키(e2, N)와 발행측 공개키(e3, N) 및 수신측 공개키(e1, N)는 각각 하기의 방식으로 생성될 수 있다. 먼저, 소수 p = 2p' + 1, 소수 q = 2q' + 1(여기서, p' 및 q'은 소수이고, p 및 q는 서로 다른 소수)를 생성한다. 그리고, N(공통 인자) = p*q로 하고, Φ(phi)(N)= (p-1)*(q-1)로 한다. 이때, 각각의 공개키의 지수 e1, e2, e3는 1보다 크고 Φ(phi)(N) 보다 작은 정수중에서 파이(N)과 서로소(여러개의 수 사이에 1을 제외한 공약수가 없음을 지칭함)가 되고 모든 데이터(예컨대, 식별자)를 키값으로 사용할 수 있도록 하기 위해 홀수로 하는 것이 바람직하다. 이와 같이 지수 e1, e2, e3를 홀수로 하게 되면 모든 종류의 식별자를 공개키로 사용할 수 있게 된다.
물론, 선택된 지수 e1, e2, e3로부터, d = 1/e mod Φ(phi)(N)을 만족하는 수 d를 계산한다. 이와 같이 하여 계산된 d는 비밀키(개인키)가 된다. 즉, e1을 근거로 만들어진 d는 수신측 단말기(30)의 비밀키가 될 수 있고, e2를 근거로 만들어진 d는 송신측 단말기(20)의 비밀키가 될 수 있고, e3를 근거로 만들어진 d는 발행사 단말기(10)의 비밀키가 될 수 있다.
공개키가 홀수이어야 하는 이유에 대해 다시 한번 설명하면 다음과 같다. N = p*q(p=2*p'+1, q=2*q'+1), Φ(phi)(N) = (p-1)*(q-1) 에서, 공개키 e(e1, e2, e3)는 반드시 Φ(phi)(N)과 "서로 소"인 관계가 있어야만 한다(RSA암호의 원리). 비밀키(개인키) d는 공개키 e의 역수 즉, d = 1/e mod Φ(phi)(N)으로 정의되는데, e와 Φ(phi)(N)이 서로 소의 관계에 없으면 수학적으로 역수 (1/e)이 나오지 않게 된다.
상기의 예시에서 p=2*p'+1, q=2*q'+1로 예시를 했으므로, Φ(phi)(N)을 다시 구해보면, Φ(phi)(N) = (p-1)*(q-1) = (2*p'+1-1)*(2*q'+1-1) = (2*p')*(2*q') = 4*p'*q' 이 된다. 즉, Φ(phi)(N)은 항상 4의 배수가 나오게 된다. 따라서, Φ(phi)(N)과 항상 "서로 소"가 되게 하는 공개키 e를 선택하기 위해 e를 홀수로 만드는 것이다. e가 F함수에 의해 홀수가 되면 항상 4의 배수인 Φ(phi)(N)과 "서로 소"가 되기 때문이다.
그리고, 단사함수는 모든 조건에서, 그리고 해시함수는 특정 조건에서 x1 != x2 ==> F(x1) != F(x2)가 되게 하는 함수이다. 즉, 공개키(e)가 사용자의 식별자마다 다르게 만드는 것이다. 사용자 식별자가 다른데 공개키가 동일하면 서로 다른 사용자임을 식별할 수 없게 된다. 예를 들어, F(x) = x2 (단사함수 아님) 이라고 하면 A의 식별자가 -1, B의 식별자가 1일 경우, 공개키가 1로 같게 되어 버리므로 사용을 못하게 된다. 홀수로 만드는 단사함수로는 F(x)=2*x + 1, F(X) = 2*logx + 1, F(x)=2*x^2 + 1 (단, x>0) 등으로 정의할 수 있다.
상술한 수신측 단말기(30)는 난수 생성부(31), 수신키 저장부(32), 금액 저장부(33), 프로세스 처리부(34), 및 인터페이스부(35)를 포함한다.
난수 생성부(31)는 난수(R)를 생성할 수 있다. 여기서, 난수(R)를 생성하는 방법은 종래의 각종 난수 생성 방식 중 어느 하나 이상을 이용할 수 있다.
수신키 저장부(32)는 수신측 단말기(30)의 비밀키를 저장한다.
금액 저장부(33)는 송신측 단말기(20)에게로 요구하거나 요구할 금액 정보 및 송신측 단말기(20)로부터 소정의 금액을 수취함에 따른 갱신 정보 등을 저장한다.
필요에 따라, 수신키 저장부(32) 및 금액 저장부(33)는 해당 수신측 단말기(30)의 USIM(universal subscriber identity module) 또는 트러스트존(trust zone)에 위치시키는 것이 바람직하다. USIM 또는 트러스트존은 사용자가 접근불가능한 메모리 영역이라고 할 수 있다. 수신측 비밀키 및 금액은 보안에 민감한 정보이다. 수신키 저장부(32) 및 금액 저장부(33)를 USIM 또는 트러스트존에 위치시키게 되면 수신측 비밀키 및 금액에 대한 해커 등의 접근을 차단할 수 있다.
프로세스 처리부(34)는 수신측 단말기(30)의 전체적인 동작을 제어한다.
프로세스 처리부(34)는 송신측 단말기(20)로부터 지불받아야 할 금액(A)을 지정하고, 지정된 금액(A)과 난수 생성부(31)로부터의 난수(R)를 연접(concatenation)시킨 데이터(A∥R)를 수신측 비밀키로 암호화하여 제 1 암호문을 생성할 수 있다.
프로세스 처리부(34)는 인터페이스부(35)를 통해 제 1 암호문을 송신측 단말기(20)에게로 전송한다.
한편, 프로세스 처리부(34)는 송신측 단말기(20)를 거쳐 인터페이스부(35)를 통해 수신한 발행사 단말기(10)로부터의 제 3 암호문을 복호화할 수 있다. 이때, 프로세스 처리부(34)는 제 3 암호문을 발행측 비밀키에 상응하는 발행측 공개키 및 수신측 비밀키에 상응하는 수신측 공개키로 복호화한다.
그리고, 프로세스 처리부(34)는 복호화한 결과(예컨대, 복호문)의 금액(A') 및 난수(R')가 제 1 암호문 생성시 사용하였던 금액(A) 및 난수(R)와 일치하는지를 판단한다.
프로세스 처리부(34)는 판단 결과에 따라 금액 저장부(33)를 갱신하여 거래를 완료할 수 있다.
인터페이스부(35)는 송신측 단말기(20)와의 유무선 통신을 수행할 수 있다.
인터페이스부(35)는 프로세스 처리부(34)에서 생성한 제 1 암호문을 송신측 단말기(20)에게로 전송하고, 송신측 단말기(20)를 거친 제 3 암호문을 수신할 수 있다.
여기서, 인터페이스부(35)는 송신측 단말기(20)와 와이파이 통신, 블루투스 통신, NFC(Near Field Communication; NFC) 등의 통신을 수행할 수 있는 통신모듈(도시 생략) 등을 포함한다. 한편, 인터페이스부(35)는 제 1 암호문을 QR코드를 이용하여 전송할 수도 있다.
도 1에서는 프로세스 처리부(34) 및 인터페이스부(35)를 각각 독립되게 구성시켰으나, 필요에 따라서는 인터페이스부(35)가 프로세스 처리부(34)에 포함되는 것으로 하여도 무방하다.
이번에는, 본 발명의 실시예에 따른 전자화폐 거래 방법에 대해 도 2의 흐름도를 참조하여 설명한다.
일단, 수신측 단말기(30)가 송신측 단말기(20)로부터 지불받아야 할 금액(A)을 지정하고, 그에 대한 난수(R)를 생성한다(S10).
이후, 수신측 단말기(30)는 금액(A)과 난수(R)를 연접(concatenation)시킨 데이터(A∥R)(즉, 시퀀스)를 수신측 비밀키로 암호화하여 제 1 암호문(E1)을 생성한다(S12). 제 1 암호문(E1)을 생성할 때 공통 인자(N)가 이용될 것이다.
그리고 나서, 수신측 단말기(30)는 제 1 암호문(E1)을 송신측 단말기(20)에게로 전달한다(S14).
그에 따라, 송신측 단말기(20)는 수신한 제 1 암호문(E1)을 송신측 비밀키로 암호화하여 제 2 암호문(E2)를 생성한다(S16). 제 2 암호문(E2)을 생성할 때 공통 인자(N)가 이용될 것이다.
그리고 나서, 송신측 단말기(20)는 제 2 암호문(E2)을 발행사 단말기(10)에게로 전달한다(S18).
그에 따라, 발행사 단말기(10)는 제 2 암호문(E2)을 송신측 공개키와 수신측 공개키로 복호화한다. 즉, 발행사 단말기(10)는 먼저 송신측 비밀키에 상응하는 송신측 공개키로 제 2 암호문(E2)을 복호화하고, 그 복호화 결과(예컨대, 복호문)를 재차 수신측 비밀키에 상응하는 수신측 공개키로 복호화한다. 이와 같은 복호화에 의해 발행사 단말기(10)는 제 2 암호문(E2)에 대한 복호문내의 금액(A)을 추출할 수 있고, 추출한 금액(A)을 근거로 금액 저장부(12)를 갱신한다. 이와 같은 복호화 수순을 통해, 발행사 단말기(10)는 수신측 단말기(30)가 송신측 단말기(20)에게 요구한 금액을 정확히 파악할 수 있게 된다. 그리고, 발행사 단말기(10)는 제 2 암호문(E2)을 해당 발행사 단말기(10)의 발행사 비밀키로 암호화하여 제 3 암호문(E3)을 생성한다(S20). 제 3 암호문(E3)을 생성할 때 공통 인자(N)가 이용될 것이다.
상기의 단계 S20에서, 송신측 공개키 및 수신측 공개키는 F함수에 의해 홀수로 생성된 것으로 한다. 즉, 모든 종류의 식별자를 공개키의 키값으로 사용할 수 있게 하기 위해서, 송신측 공개키 및 수신측 공개키는 홀수로 생성하는 것이 바람직하다. F함수는 모든 입력값에 대해 홀수를 출력하는 단사함수 또는 해쉬함수이다.
이후, 발행사 단말기(10)는 제 3 암호문(E3)을 송신측 단말기(20)에게로 전송한다(S22).
송신측 단말기(20)는 제 3 암호문(E3)을 수신측 단말기(30)에게로 전달한다(S24).
수신측 단말기(30)는 제 3 암호문(E3)을 복호화한다. 이때, 수신측 단말기(30)는 제 3 암호문(E3)을 송식측 비밀키에 상응하는 송신측 공개키 및 발행측 비밀키에 상응하는 발행측 공개키로 복호화한다. 즉, 수신측 단말기(30)는 먼저 송신측 비밀키에 상응하는 송신측 공개키로 제 3 암호문(E3)을 복호화하고, 그 복호화 결과(예컨대, 복호문)를 재차 발행측 비밀키에 상응하는 발행측 공개키로 복호화한다. 그리고, 수신측 단말기(30)는 최종적으로 복호화한 결과에 포함된 금액(A') 및 난수(R')가 제 1 암호문 생성시 사용하였던 금액(A) 및 난수(R)와 일치하는지를 판단한다. 판단 결과, 모두 일치하면 금액 저장부(33)를 갱신한 후 거래를 완료한다(S26). 여기서, 금액 저장부(33)의 갱신 및 거래 완료라 함은 해당 금액을 수취하고 금액 저장부(33)의 금액 정보를 갱신함을 의미할 수 있다.
상기의 단계 S26에서, 송신측 공개키 및 발행측 공개키는 F함수에 의해 홀수로 생성된 것으로 한다. 즉, 모든 종류의 식별자를 공개키의 키값으로 사용할 수 있게 하기 위해서, 송신측 공개키 및 발행측 공개키는 홀수로 생성하는 것이 바람직하다. F함수는 모든 입력값에 대해 홀수를 출력하는 단사함수 또는 해쉬함수이다.
한편으로, 수신측 단말기(30)에서의 복호화한 결과에 포함된 금액(A') 및 난수(R')가 제 1 암호문 생성시 사용하였던 금액(A) 및 난수(R)와 일치하지 않으면 해당 금액을 수취하지 않게 된다.
상술한 본 발명의 실시예에 따르면, 수신측에서 지불받을 금액(A)을 지정하고 그에 대한 난수를 생성하여 거래를 시작할 수 있다.
즉, 거래의 시발점이 발행사 단말기(10) 및 송신측 단말기(20)가 아니라, 수신측 단말기(30)가 거래의 시발점이 되어 거래를 위한 정보를 생성하고, 발행측 공개키와 송신측 공개키 및 수신측 공개키는 동일한 공통 인자(N)를 이용하므로, 검증을 위해 CA(CA; Certification Authority)(인증기관), RA(Registration Authority)와 같은 서버에 공개키 인증을 문의할 필요도 없고, 단말기에서 즉각적으로 검증할 수 있으므로 매우 효율적이라고 할 수 있다.
그리고, 모든 금액(A)에 대하여 난수가 일대일로 대응되어 있으므로, 수신측에서 복호화한 결과 해당 금액(A)에 대한 난수가 처음 생성하였던 난수와 비교하여 상이하면 거래를 하지 않으므로, 금액에 대한 인증이 수월할 뿐만 아니라 이중 지불의 문제를 해결할 수 있다.
또한, 상술한 본 발명의 전자화폐 거래 방법은, 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플라피디스크, 광데이터 저장장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 상기 방법을 구현하기 위한 기능적인(function) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
이상에서와 같이 도면과 명세서에서 최적의 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로, 본 기술 분야의 통상의 지식을 가진자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10 : 발행사 단말기
11 : 발행키 저장부
12, 33 : 금액 저장부
13, 22, 34 : 프로세스 처리부
14, 23, 35 : 인터페이스부
20 : 송신측 단말기
21 : 송신키 저장부
30 : 수신측 단말기
31 : 난수 생성부
32 : 수신키 저장부

Claims (18)

  1. 수신측 모듈이, 요구할 전자화폐의 금액을 지정하고 난수를 생성하는 단계;
    상기 수신측 모듈이, 상기 금액 및 상기 난수를 근거로 제 1 암호문을 생성하는 단계;
    송신측 모듈이, 상기 제 1 암호문을 근거로 제 2 암호문을 생성하는 단계;
    발행측 모듈이, 상기 제 2 암호문을 송신측 공개키와 수신측 공개키로 복호화하는 단계;
    상기 발행측 모듈이, 상기 제 2 암호문을 근거로 제 3 암호문을 생성하는 단계;
    상기 수신측 모듈이, 상기 제 3 암호문을 송신측 공개키와 발행측 공개키로 복호화하는 단계; 및
    상기 수신측 모듈이, 상기 제 3 암호문을 복호화한 결과가 상기 금액 및 상기 난수와 일치하는 지를 판단하는 단계;를 포함하고,
    상기 송신측 공개키와 상기 발행측 공개키 및 상기 수신측 공개키는 F함수에 의해 홀수로 생성되는 것을 특징으로 하는 전자화폐 거래 방법.
  2. 청구항 1에 있어서,
    상기 F함수는 모든 입력값에 대해 홀수를 출력하는 단사함수 또는 해쉬함수인 것을 특징으로 하는 전자화폐 거래 방법.
  3. 청구항 1에 있어서,
    상기 송신측 공개키와 상기 발행측 공개키 및 상기 수신측 공개키는 상호 동일한 공통 인자(N)(N = p*q, p = 2p' + 1, q = 2q' + 1(p' 및 q'는 소수이고, p 및 q는 서로 다른 소수))를 사용하는 것을 특징으로 하는 전자화폐 거래 방법.
  4. 청구항 1에 있어서,
    상기 제 2 암호문을 송신측 공개키와 수신측 공개키로 복호화하는 단계는,
    복호화에 따른 금액을 추출하여 상기 발행측 모듈내의 금액 저장부의 정보를 갱신하는 단계;를 포함하는 것을 특징으로 하는 전자화폐 거래 방법.
  5. 청구항 1에 있어서,
    상기 제 3 암호문은 상기 송신측 모듈을 거쳐 상기 수신측 모듈에게로 전달되는 것을 특징으로 하는 전자화폐 거래 방법.
  6. 청구항 1에 있어서,
    상기 제 3 암호문을 복호화한 결과가 상기 금액 및 상기 난수와 일치하는 지를 판단하는 단계는,
    상기 제 3 암호문을 복호화한 결과가 상기 금액 및 상기 난수와 일치하면 상기 복호화에 따른 금액을 근거로 상기 수신측 모듈내의 금액 저장부의 정보를 갱신하는 단계;를 포함하는 것을 특징으로 하는 전자화폐 거래 방법.
  7. 청구항 1 내지 청구항 6 중 어느 하나의 청구항에 기재된 전자화폐 거래 방법을 수행하기 위한 컴퓨터 프로그램이 기록된 컴퓨터 판독가능한 기록매체.
  8. 청구항 1 내지 청구항 6 중 어느 하나의 청구항에 기재된 전자화폐 거래 방법을 수행하기 위한 컴퓨터 판독가능한 기록매체에 저장된 컴퓨터 프로그램.
  9. 발행측 모듈이 발행하는 전자화폐에 대해 수신측 모듈이 요구하고 송신측 모듈이 지불하는 거래 시스템으로서,
    상기 수신측 모듈은,
    난수를 생성하는 난수 생성부;
    수신측 비밀키를 저장하는 수신키 저장부; 및
    상기 요구한 금액 및 상기 난수를 상기 수신측 비밀키로 암호문을 생성하여 상기 송신측 모듈에게로 전송하고, 상기 암호문이 상기 송신측 모듈 및 상기 발행사 모듈을 거치면서 순차적으로 암호화됨에 따른 최종의 암호문을 수신하여 송신측 공개키 및 발행측 공개키로 복호화하고, 상기 최종의 암호문을 복호화한 결과가 상기 금액 및 상기 난수와 일치하는 지를 판단하는 프로세스 처리부;를 포함하고,
    상기 송신측 공개키 및 상기 발행측 공개키는 F함수에 의해 홀수로 생성되는 것을 특징으로 하는 전자화폐 거래 시스템.
  10. 청구항 9에 있어서,
    상기 F함수는 모든 입력값에 대해 홀수를 출력하는 단사함수 또는 해쉬함수인 것을 특징으로 하는 전자화폐 거래 시스템.
  11. 청구항 9에 있어서,
    상기 송신측 공개키 및 상기 발행측 공개키는 상호 동일한 공통 인자(N)(N = p*q, p = 2p' + 1, q = 2q' + 1(p' 및 q'는 소수이고, p 및 q는 서로 다른 소수))를 사용하는 것을 특징으로 하는 전자화폐 거래 시스템.
  12. 청구항 11에 있어서,
    상기 발행측 모듈은,
    상기 수신측 모듈에서의 암호문이 상기 송신측 모듈에서 재차 암호화됨에 따라 상기 재차 암호화된 암호문을 송신측 공개키 및 수신측 공개키로 복호화하여 금액을 추출하되,
    상기 수신측 공개키는 F함수에 의해 홀수로 생성되고, 상기 F함수는 모든 입력값에 대해 홀수를 출력하는 단사함수 또는 해쉬함수이고,
    상기 수신측 공개키는 상기 송신측 공개키 및 상기 발행측 공개키가 사용하는 공통 인자(N)를 사용하는 것을 특징으로 하는 전자화폐 거래 시스템.
  13. 청구항 9에 있어서,
    상기 수신키 저장부는,
    해당 수신측 모듈의 USIM(universal subscriber identity module) 또는 트러스트존(trust zone)에 위치하는 것을 특징으로 하는 전자화폐 거래 시스템.
  14. 발행측 모듈이 발행하는 전자화폐에 대해 수신측 모듈이 요구하고 송신측 모듈이 지불하는 거래 시스템으로서,
    상기 발행측 모듈은,
    발행측 비밀키를 저장하는 발행키 저장부; 및
    상기 수신측 모듈에서 요구한 금액 및 상기 수신측 모듈에서 생성된 난수를 근거로 하는 제 1 암호문이 상기 송신측 모듈에서 제 2 암호문으로 암호화되어 수신됨에 따라 상기 제 2 암호문을 송신측 공개키와 수신측 공개키로 복호화하고, 상기 제 2 암호문을 상기 발행측 비밀키로 제 3 암호문을 생성하여 상기 송신측 모듈을 거쳐 상기 수신측 모듈에게로 전송하는 프로세스 처리부;를 포함하고,
    상기 송신측 공개키 및 상기 수신측 공개키는 F함수에 의해 홀수로 생성되는 것을 특징으로 하는 전자화폐 거래 시스템.
  15. 청구항 14에 있어서,
    상기 F함수는 모든 입력값에 대해 홀수를 출력하는 단사함수 또는 해쉬함수인 것을 특징으로 하는 전자화폐 거래 시스템.
  16. 청구항 14에 있어서,
    상기 프로세스 처리부는 상기 송신측 모듈 및 상기 수신측 모듈에서 공통으로 사용가능한 공통 인자를 생성하여 제공하고,
    상기 송신측 공개키 및 상기 수신측 공개키는 상기 공통 인자를 동일하게 사용하되, 상기 공통 인자는 N = p*q, p = 2p' + 1, q = 2q' + 1(p' 및 q'는 소수이고, p 및 q는 서로 다른 소수, N은 공통 인자)로 구해지는 것을 특징으로 하는 전자화폐 거래 시스템.
  17. 청구항 16에 있어서,
    상기 수신측 모듈은 상기 제 3 암호문을 송신측 공개키와 발행측 공개키로 복호화한 결과가 상기 금액 및 상기 난수와 일치하는 지를 판단하고,
    상기 발행측 공개키는 F함수에 의해 홀수로 생성되고, 상기 F함수는 모든 입력값에 대해 홀수를 출력하는 단사함수 또는 해쉬함수이고,
    상기 발행측 공개키는 상기 송신측 공개키 및 상기 수신측 공개키가 사용하는 공통 인자를 사용하는 것을 특징으로 하는 전자화폐 거래 시스템.
  18. 청구항 14에 있어서,
    상기 발행키 저장부는,
    해당 발행측 모듈의 USIM(universal subscriber identity module) 또는 트러스트존(trust zone)에 위치하는 것을 특징으로 하는 전자화폐 거래 시스템.
KR1020170014724A 2017-02-02 2017-02-02 전자화폐 거래 방법 및 시스템 KR20180089951A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170014724A KR20180089951A (ko) 2017-02-02 2017-02-02 전자화폐 거래 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170014724A KR20180089951A (ko) 2017-02-02 2017-02-02 전자화폐 거래 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR20180089951A true KR20180089951A (ko) 2018-08-10

Family

ID=63229662

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170014724A KR20180089951A (ko) 2017-02-02 2017-02-02 전자화폐 거래 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR20180089951A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111476572A (zh) * 2020-04-09 2020-07-31 财付通支付科技有限公司 基于区块链的数据处理方法、装置、存储介质及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100358426B1 (ko) 1998-08-18 2003-01-29 한국전자통신연구원 전자현금거래방법
KR101233925B1 (ko) 2011-05-31 2013-02-15 삼성에스디에스 주식회사 아이디 기반 암호화 및 서명 장치 및 방법, 비밀키 발급 서버 및 방법
KR101637854B1 (ko) 2015-10-16 2016-07-08 주식회사 코인플러그 블록체인을 기반으로 하는 공인인증서 발급시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 발급방법 및 블록체인을 기반으로 하는 공인인증서 인증시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 인증방법
KR101660627B1 (ko) 2015-02-03 2016-09-28 한양대학교 에리카산학협력단 암호화 화폐의 거래를 보호하는 방법 및 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100358426B1 (ko) 1998-08-18 2003-01-29 한국전자통신연구원 전자현금거래방법
KR101233925B1 (ko) 2011-05-31 2013-02-15 삼성에스디에스 주식회사 아이디 기반 암호화 및 서명 장치 및 방법, 비밀키 발급 서버 및 방법
KR101660627B1 (ko) 2015-02-03 2016-09-28 한양대학교 에리카산학협력단 암호화 화폐의 거래를 보호하는 방법 및 장치
KR101637854B1 (ko) 2015-10-16 2016-07-08 주식회사 코인플러그 블록체인을 기반으로 하는 공인인증서 발급시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 발급방법 및 블록체인을 기반으로 하는 공인인증서 인증시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 인증방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111476572A (zh) * 2020-04-09 2020-07-31 财付通支付科技有限公司 基于区块链的数据处理方法、装置、存储介质及设备
CN111476572B (zh) * 2020-04-09 2024-03-19 财付通支付科技有限公司 基于区块链的数据处理方法、装置、存储介质及设备

Similar Documents

Publication Publication Date Title
US11856104B2 (en) Methods for secure credential provisioning
US11588637B2 (en) Methods for secure cryptogram generation
CN106664206B (zh) 用于已认证的通信的高效方法
US9338163B2 (en) Method using a single authentication device to authenticate a user to a service provider among a plurality of service providers and device for performing such a method
TWI497336B (zh) 用於資料安全之裝置及電腦程式
CN102017578B (zh) 用于在令牌与验证器之间进行认证的网络助手
CN107358441B (zh) 支付验证的方法、系统及移动设备和安全认证设备
US10044684B2 (en) Server for authenticating smart chip and method thereof
KR101468626B1 (ko) 밴사 서버와의 키교환을 이용한 스마트폰 카드결제 시스템
CN101300808A (zh) 安全认证的方法和设置
JP2004247799A (ja) 公開鍵証明書を利用したアクセス制御を行う情報システム
Kisore et al. A secure SMS protocol for implementing digital cash system
EP3185504A1 (en) Security management system for securing a communication between a remote server and an electronic device
KR20180089951A (ko) 전자화폐 거래 방법 및 시스템
JP7211519B2 (ja) 所有者同一性確認システム、端末および所有者同一性確認方法
WO2021019782A1 (ja) 所有者同一性確認システムおよび所有者同一性確認方法
EP3035589A1 (en) Security management system for authenticating a token by a service provider server
WO2021019781A1 (ja) 所有者同一性確認システム、認証局サーバおよび所有者同一性確認方法
KR20180089952A (ko) 전자화폐 거래 방법 및 시스템
KR100649858B1 (ko) 공중전화 스마트 카드 발급/인증 시스템 및 그 방법
JP7259578B2 (ja) 認証システム及び認証方法
Oliveira Dynamic QR codes for Ticketing Systems
CN115310976A (zh) 非接触式交易处理方法、装置及系统
JP2005038222A (ja) Icカードを利用した金融システム
EP3270344A1 (en) Payment device adapted to establish a secure messaging channel with a remote server for a payment transaction and associated remote server

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application