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

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

Info

Publication number
KR20180089952A
KR20180089952A KR1020170014725A KR20170014725A KR20180089952A KR 20180089952 A KR20180089952 A KR 20180089952A KR 1020170014725 A KR1020170014725 A KR 1020170014725A KR 20170014725 A KR20170014725 A KR 20170014725A KR 20180089952 A KR20180089952 A KR 20180089952A
Authority
KR
South Korea
Prior art keywords
public key
transmitting
receiving
module
issuing
Prior art date
Application number
KR1020170014725A
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 KR1020170014725A priority Critical patent/KR20180089952A/ko
Publication of KR20180089952A publication Critical patent/KR20180089952A/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
    • 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/22Payment schemes or models
    • 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/32Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
    • G06Q20/322Aspects of commerce using mobile devices [M-devices]
    • G06Q20/3224Transactions dependent on location of M-devices
    • 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/32Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
    • G06Q20/322Aspects of commerce using mobile devices [M-devices]
    • G06Q20/3229Use of the SIM of a M-device as secure element
    • 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

Abstract

네트워크에 연결된 서버를 이용하지 않고서도 P2P간의 전자화폐의 이동을 안전하면서도 수월하게 행할 수 있도록 하는 전자화폐 거래 방법 및 시스템을 제시한다. 제시된 방법은, 발행측 모듈에서 발행되는 전자화폐에 대해 수신측 모듈이 요구하고 송신측 모듈이 지불하는 거래 방법으로서, 상기 수신측 모듈이, 요구할 금액을 지정하고 난수를 생성하는 단계; 상기 수신측 모듈이, 상기 금액 및 상기 난수를 근거로 제 1 암호문을 생성하는 단계; 송신측 모듈이, 상기 제 1 암호문을 수신측 공개키로 복호화하는 단계; 상기 송신측 모듈이, 상기 제 1 암호문을 송신측 복합 비밀키로 제 2 암호문을 생성하는 단계; 상기 수신측 모듈이, 상기 제 2 암호문을 송신측 공개키와 발행측 공개키로 복호화하는 단계; 및 상기 수신측 모듈이, 상기 제 2 암호문을 복호화한 결과가 상기 금액 및 상기 난수와 일치하는 지를 판단하는 단계;를 포함한다. 상기 송신측 복합 비밀키는 상기 송신측 공개키에 상응하는 송신측 비밀키 및 상기 발행측 공개키에 상응하는 발행측 비밀키의 모듈러의 곱으로 생성되고, 상기 송신측 공개키와 상기 발행측 공개키 및 상기 수신측 공개키는 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 암호문을 수신측 공개키로 복호화하는 단계; 상기 송신측 모듈이, 상기 제 1 암호문을 송신측 복합 비밀키로 제 2 암호문을 생성하는 단계; 상기 수신측 모듈이, 상기 제 2 암호문을 송신측 공개키와 발행측 공개키로 복호화하는 단계; 및 상기 수신측 모듈이, 상기 제 2 암호문을 복호화한 결과가 상기 금액 및 상기 난수와 일치하는 지를 판단하는 단계;를 포함하고, 상기 송신측 복합 비밀키는 상기 송신측 공개키에 상응하는 송신측 비밀키 및 상기 발행측 공개키에 상응하는 발행측 비밀키의 모듈러의 곱으로 생성되고, 상기 송신측 공개키와 상기 발행측 공개키 및 상기 수신측 공개키는 F함수에 의해 홀수로 생성된다.
상기 F함수는 모든 입력값에 대해 홀수를 출력하는 단사함수 또는 해쉬함수일 수 있다.
상기 송신측 공개키와 상기 발행측 공개키 및 상기 수신측 공개키는 상호 동일한 공통 인자(N)(N = p*q, p = 2p' + 1, q = 2q' + 1(p' 및 q'는 소수이고, p 및 q는 서로 다른 소수))를 사용할 수 있다.
상기 제 1 암호문을 수신측 공개키로 복호화하는 단계는, 복호화에 따른 금액을 추출하여 상기 송신측 모듈내의 금액 저장부의 정보를 갱신하는 단계;를 포함할 수 있다.
상기 제 2 암호문을 복호화한 결과가 상기 금액 및 상기 난수와 일치하는 지를 판단하는 단계는, 상기 제 2 암호문을 복호화한 결과가 상기 금액 및 상기 난수와 일치하면 상기 복호화에 따른 금액을 근거로 상기 수신측 모듈내의 금액 저장부의 정보를 갱신하는 단계;를 포함할 수 있다.
그리고, 본 발명의 바람직한 실시양태에 따른 전자화폐 거래 시스템은, 발행측 모듈에서 발행되는 전자화폐에 대해 수신측 모듈이 요구하고 송신측 모듈이 지불하는 거래 시스템으로서, 상기 수신측 모듈은, 난수를 생성하는 난수 생성부; 수신측 비밀키를 저장하는 수신키 저장부; 및 상기 요구한 금액 및 상기 난수를 상기 수신측 비밀키로 제 1 암호문을 생성하여 상기 송신측 모듈에게로 전송하고, 상기 송신측 모듈로부터 상기 제 1 암호문을 송신측 복합 비밀키로 암호화시킨 제 2 암호문을 수신하여 송신측 공개키 및 발행측 공개키로 복호화하고, 상기 제 2 암호문을 복호화한 결과가 상기 금액 및 상기 난수와 일치하는 지를 판단하는 프로세스 처리부;를 포함하고, 상기 송신측 복합 비밀키는 상기 송신측 공개키에 상응하는 송신측 비밀키 및 상기 발행측 공개키에 상응하는 발행측 비밀키의 모듈러의 곱으로 생성되고, 상기 송신측 공개키 및 상기 발행측 공개키는 F함수에 의해 홀수로 생성된다.
상기 송신측 공개키 및 상기 발행측 공개키는 상호 동일한 공통 인자(N)(N = p*q, p = 2p' + 1, q = 2q' + 1(p' 및 q'는 소수이고, p 및 q는 서로 다른 소수))를 사용할 수 있다.
상기 송신측 모듈은, 상기 제 1 암호문을 수신측 공개키로 복호화하여 금액을 추출하되, 상기 수신측 공개키는 F함수에 의해 홀수로 생성되고, 상기 F함수는 모든 입력값에 대해 홀수를 출력하는 단사함수 또는 해쉬함수이고, 상기 수신측 공개키는 상기 송신측 공개키 및 상기 발행측 공개키가 사용하는 공통 인자(N)를 사용할 수 있다.
상기 수신키 저장부는, 해당 수신측 모듈의 USIM(universal subscriber identity module) 또는 트러스트존(trust zone)에 위치할 수 있다.
그리고, 본 발명의 다른 바람직한 실시양태에 따른 전자화폐 거래 시스템은, 발행측 모듈에서 발행되는 전자화폐에 대해 수신측 모듈이 요구하고 송신측 모듈이 지불하는 거래 시스템으로서, 상기 송신측 모듈은, 송신측 복합 비밀키를 저장하는 송신키 저장부; 및 상기 수신측 모듈로부터 금액 및 난수를 근거로 하는 제 1 암호문을 수신함에 따라, 상기 제 1 암호문을 수신측 공개키로 복호화하고, 상기 제 1 암호문을 상기 송신측 복합 비밀키로 제 2 암호문을 생성하여 상기 수신측 모듈에게로 전송하는 프로세스 처리부;를 포함하고, 상기 송신측 복합 비밀키는 송신측 공개키에 상응하는 송신측 비밀키 및 발행측 공개키에 상응하는 발행측 비밀키의 모듈러의 곱으로 생성되고, 상기 송신측 공개키와 상기 발행측 공개키 및 상기 수신측 공개키는 F함수에 의해 홀수로 생성된다.
상기 수신측 모듈은 상기 제 2 암호문을 상기 송신측 공개키와 상기 발행측 공개키로 복호화한 결과가 상기 금액 및 상기 난수와 일치하는 지를 판단할 수 있다.
상기 송신키 저장부는, 해당 송신측 모듈의 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은 본 발명의 실시예에 따른 전자화폐 거래 시스템의 구성도이다.
도 1에 도시된 본 발명의 실시예에 따른 전자화폐 거래 시스템은, 발행사 단말기(도시 생략; 발행측 모듈 또는 발행측 모듈부)가 발행하는 전자화폐에 대해 수신측 단말기(200)가 요구하고 송신측 단말기(100)가 지불하는 형태의 시스템이다.
여기서, 송신측 단말기(100), 및 수신측 단말기(200)는 송신측 모듈 또는 송신측 모듈부, 수신측 모듈 또는 수신측 모듈부로 표현되어도 무방하다. 한편으로, 송신측 단말기(100), 및 수신측 단말기(200)는 전자화폐 거래 장치가 될 수 있다.
도 1에서, 송신측 단말기(100)와 수신측 단말기(200)는 네트워크(도시 생략)로 연결되어 있다.
송신측 단말기(100)와 수신측 단말기(200)는 서로 데이터 통신을 수행할 수 있다.
네트워크는 유선 통신망 및 무선 통신망을 모두 포함하는 개념으로서, 이에 한정되지 않고 데이터를 주고받을 수 있는 여타의 통신망이 될 수 있다.
발행사 단말기(도시 생략)는 P2P간에 전자화폐를 거래할 수 있는 어플리케이션(앱)을 제공해 주는 발행사(서비스 공급사)의 단말기이다.
발행사 단말기(도시 생략)는 전자화폐를 발행할 수 있다. 여기서, 발행사는 신뢰할 수 있는 것으로 한다.
송신측 단말기(100)는 송신측 단말기(100) 및 수신측 단말기(200)에서 공통으로 사용가능한 공통 인자(N)를 생성할 수 있다. 송신측 단말기(100)는 생성한 공통 인자(N)를 수신측 단말기(200)에게로 보낸다.
예를 들어, 송신측 단말기(100)는 소수 p = 2p' + 1, 소수 q = 2q' + 1(여기서, p' 및 q'은 소수이고, p 및 q는 서로 다른 소수)를 생성한다. 여기서, 공통 인자(N) = p*q로 할 수 있다. 다시 말해서, 서로 다른 두 소수(p, q)를 곱한 것을 공통 인자(N)라고 할 수 있다. 공통 인자(N)는 송신측 단말기(100) 및 수신측 단말기(200)에 저장되어 암호화, 복호화 및 인증단계에서 사용될 수 있다. 그리고, (p-1)*(q-1)의 값은 Φ(phi)(N)이 될 수 있다. Φ(phi)(N)은 비밀키 생성 인자가 될 수 있다.
물론, 필요에 따라서 공통 인자(N)는 발행사 단말기(도시 생략)에서 생성되는 것으로 할 수도 있다.
송신측 단말기(100)는 수신측 단말기(200)에서 생성된 암호문(즉, 제 1 암호문 또는 1차 암호문)(E1)을 수신하여 복호화할 수 있다. 여기서, 수신측 단말기(200)에서 생성된 암호문은 해당 수신측 단말기(200)가 요구하는 금액(A)과 난수(R)를 연접(concatenation)시킨 데이터(A∥R)(즉, 시퀀스)를 수신측 비밀키로 암호화함에 따라 생성된 것이다. 따라서, 수신측 단말기(30)에서 생성된 암호문을 제 1 암호문 또는 1차 암호문이라고 할 수 있다.
송신측 단말기(100)는 수신측 단말기(200)에서 생성된 암호문(즉, 제 1 암호문)을 복호화함에 있어서, 제 1 암호문을 수신측 비밀키에 상응하는 수신측 공개키(e1, N)로 복호화할 수 있다.
그리고, 송신측 단말기(100)는 제 1 암호문을 복호화하여 금액을 추출하여 내부의 금액 저장부를 갱신한다.
또한, 송신측 단말기(100)는 제 1 암호문을 해당 송신측 단말기(100)의 송신측 복합 비밀키로 암호화하여 제 2 암호문(또는 2차 암호문)(E2)을 생성할 수 있다.
송신측 단말기(100)는 제 2 암호문을 수신측 단말기(200)에게로 전송한다.
상술한 송신측 단말기(100)는 송신키 저장부(110), 금액 저장부(120), 프로세스 처리부(130), 및 인터페이스부(140)를 포함할 수 있다.
송신키 저장부(11)는 해당 송신측 단말기(100)의 송신측 복합 비밀키를 저장한다.
송신측 복합 비밀키는 송신측 공개키(e2, N)에 상응하는 송신측 비밀키 및 발행측 공개키(e3, N)에 상응하는 발행측 비밀키의 모듈러 곱으로 정의될 수 있다. 여기서, 모듈러 곱이란, 모듈러 n에 대해 a, b의 모듈러 곱은 (a mod n) * (b mod n) = ( (a * b) mod n )으로 정의되는 수학적 정의이다. 여기서, a는 발행측 ID를 의미하고, b는 송신측 ID를 의미할 수 있다. 반대로, a는 송신측 ID를 의미하고, b는 발행측 ID를 의미할 수 있다.
송신측 공개키(e2, N)와 발행측 공개키(e3, N) 및 후술할 수신측 공개키(e1, N)는 F함수에 의해 홀수로 생성됨이 바람직하다. 즉, 모든 종류의 식별자를 공개키의 키값으로 사용할 수 있게 하기 위해서, 송신측 공개키(e2, N)와 발행측 공개키(e3, N) 및 후술할 수신측 공개키(e1, N)는 홀수로 생성하는 것이 바람직하다. 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는 수신측 단말기(200)의 비밀키가 될 수 있고, e2를 근거로 만들어진 d는 송신측 단말기(100)의 비밀키가 될 수 있고, e3를 근거로 만들어진 d는 발행측 비밀키가 될 수 있다.
공개키가 홀수이어야 하는 이유에 대해 다시 한번 설명하면 다음과 같다. 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) 등으로 정의할 수 있다.
금액 저장부(120)는 수신측 단말기(200)에서 송신측 단말기(100)에게로 요구한 금액을 저장한다. 즉, 송신측 단말기(100)는 수신측 단말기(200)에서 생성된 암호문(제 1 암호문(E1))을 복호화할 수 있다. 금액 저장부(120)는 이러한 복호화를 거쳐 추출된 금액을 저장한다.
또한, 금액 저장부(120)는 추출된 금액을 근거로 갱신될 수 있다.
필요에 따라, 송신키 저장부(110) 및 금액 저장부(120)는 해당 송신측 단말기(100)의 USIM(universal subscriber identity module) 또는 트러스트존(trust zone)에 위치시키는 것이 바람직하다. USIM 또는 트러스트존은 사용자가 접근불가능한 메모리 영역이라고 할 수 있다. 송신측 복합 비밀키 및 금액은 보안에 민감한 정보이다. 송신키 저장부(110) 및 금액 저장부(120)를 USIM 또는 트러스트존에 위치시키게 되면 송신측 복합 비밀키 및 금액에 대한 해커 등의 접근을 차단할 수 있다.
프로세스 처리부(130)는 송신측 단말기(100)의 전체적인 동작을 제어한다.
프로세스 처리부(130)는 송신측 단말기(100) 및 수신측 단말기(200)에서 공통으로 사용가능한 공통 인자(N)를 생성하여 저장함과 더불어, 공통 인자(N)를 인터페이스부(140)를 통해 수신측 단말기(200)에게로 보낼 수 있다.
프로세스 처리부(130)는 송신측 복합 비밀키를 생성할 수 있다. 예를 들어, 프로세스 처리부(130)는 송신측 공개키(e2, N)에 상응하는 송신측 비밀키 및 발행측 공개키(e3, N)에 상응하는 발행측 비밀키를 생성한 후에, 송신측 비밀키와 발행키 비밀키의 모듈러 곱으로 송신측 복합 비밀키를 생성할 수 있다.
프로세스 처리부(130)는 송신측 복합 비밀키를 송신키 저장부(110)에 저장한다. 물론, 프로세스 처리부(130)가 송신측 복합 비밀키를 생성하는 것과는 다르게, 해당 송신측 단말기(100)의 설계 단계에서 송신측 복합 비밀키가 미리 설정되어 있을 수도 있다.
프로세스 처리부(130)는 금액 저장부(120)내의 금액을 증감시키는 등의 연산을 수행할 수 있다.
프로세스 처리부(130)는 수신측 단말기(200)로부터의 제 1 암호문(E1)을 수신측 비밀키에 상응하는 수신측 공개키(e1, N)로 복호화할 수 있다. 이를 위해, 프로세스 처리부(130)는 수신측 공개키를 저장할 수 있다.
수신측 단말기(200)에서 생성된 제 1 암호문은 해당 수신측 단말기(200)가 요구하는 금액(A)과 난수(R)를 연접(concatenation)시킨 데이터(A∥R)(즉, 시퀀스)를 수신측 비밀키로 암호화한 것이다. 그에 따라, 프로세스 처리부(130)는 제 1 암호문을 수신측 비밀키에 상응하는 수신측 공개키로 복호화를 실시한다.
이러한 복호화에 의해 프로세스 처리부(130)는 제 1 암호문에 대한 복호문내의 금액을 추출할 수 있고, 추출한 금액을 근거로 금액 저장부(120)를 갱신할 수 있다. 이와 같은 복호화 수순을 통해, 프로세스 처리부(130)는 수신측 단말기(200)가 요구한 금액을 정확히 파악할 수 있게 된다.
또한, 프로세스 처리부(130)는 제 1 암호문을 송신측 복합 비밀키로 암호화하여 제 2 암호문(E2)을 생성하고, 제 2 암호문을 인터페이스부(140)를 통해 수신측 단말기(200)에게로 전송할 수 있다. 이때, 수신측 단말기(200)에서의 난수(R)는 예측할 수 없는 난수이므로, 프로세스 처리부(130)는 수신측 단말기(200)에서 생성된 난수(R)와 동일한 난수를 생성할 수 없다. 그에 따라, 프로세스 처리부(130)는 수신측 단말기(200)에서 최초 생성한 시퀀스(금액(A)∥난수(R))에 대한 위변조를 할 수 없다. 위변조를 한다고 하더라도 난수가 다르게 되므로, 수신측 단말기(200)에서는 해당 금액을 수취하지 않을 것이다. 이로 인해 이중 지불 문제를 해결할 수 있다.
인터페이스부(140)는 수신측 단말기(200)와의 유무선 통신을 수행할 수 있다.
인터페이스부(140)는 수신측 단말기(200)로부터의 제 1 암호문을 수신하여 프로세스 처리부(130)에게로 인가할 수 있다.
또한, 인터페이스부(140)는 프로세스 처리부(130)로부터의 제 2 암호문을 수신측 단말기(200)에게로 전송할 수 있다.
여기서, 인터페이스부(140)는 수신측 단말기(200)와 와이파이 통신, 블루투스 통신, NFC(Near Field Communication; NFC) 등의 통신을 수행할 수 있는 통신모듈(도시 생략) 등을 포함한다. 한편, 인터페이스부(140)는 제 2 암호문을 QR코드를 이용하여 전송할 수도 있다.
도 1에서는 프로세스 처리부(130) 및 인터페이스부(140)를 각각 독립되게 구성시켰으나, 필요에 따라서는 인터페이스부(140)가 프로세스 처리부(130)에 포함되는 것으로 하여도 무방하다.
수신측 단말기(200)는 난수를 생성한다. 이때, 난수는 송신측 단말기(100)에서 예측할 수 없는 값을 가진다.
기존의 비트코인과 같은 전자화폐의 경우, 보내는 측이 한 사람에게만 소정 금액의 전자화폐를 지불할려고 하였는데 실수로 또 다른 사람에게도 재차 소정 금액의 전자화폐를 지불하는 이중 지불의 문제가 발생할 수 있다.
즉, 기존의 방식에서는 보내는 사람이 거래 시작의 주체가 되어 소정 금액의 전자화폐를 송금하였다. 이로 인해 상술한 바와 같은 이중 지불의 문제가 발생한다.
그러나, 본 발명의 실시예에서는 수신측 단말기(200)가 거래 시작의 주체가 된다. 즉, 수신측 단말기(200)가 받을 금액을 지정하고 난수를 생성하고, 지정된 금액 및 난수를 근거로 제 1 암호문(E1)을 생성하여 송신측 단말기(100)에게로 전송한다. 이후, 송신측 단말기(100)는 제 1 암호문을 암호화하여 제 2 암호문(E2)으로 만들어 수신측 단말기(200)에게로 보낸다. 수신측 단말기(200)에서는 제 2 암호문을 복호화한 결과에 따른 금액 및 난수가 제 1 암호문을 만들때 사용하였던 금액과 난수와 동일하면 정상적인 거래인 것으로 판단하여 거래를 완료(즉, 전자화폐 수취)를 할 수 있다. 그러나, 제 2 암호문을 복호화한 결과에 따른 금액 및 난수가 제 1 암호문을 만들때 사용하였던 금액과 난수와 동일하지 않으면 비정상적인 거래인 것으로 판단하여 거래를 하지 않게 된다(즉, 전자화폐 불수취).
상술한 바와 같이, 수신측 단말기(200)가 난수를 생성하여 암호문에 활용하게 되면, 이중 지불의 문제를 효과적으로 해소할 수 있다.
이와 같이, 수신측 단말기(200)는 송신측 단말기(100)로부터 지불받아야 할 금액과 소정의 난수를 해당 수신측 단말기(200)의 수신측 비밀키로 암호화하여 제 1 암호문을 생성할 수 있다.
수신측 단말기(200)는 제 1 암호문을 송신측 단말기(100)에게로 전송한다.
수신측 단말기(200)는 송신측 단말기(100)로부터의 제 2 암호문을 복호화할 수 있다. 이때, 수신측 단말기(200)는 제 2 암호문을 송신측 복합 비밀키에 상응하는 송신측 공개키(e2, N) 및 발행측 공개키(e3, N)로 복호화한다. 그리고, 수신측 단말기(200)는 복호화한 결과(예컨대, 복호문)에 포함된 금액 및 난수가 제 1 암호문 생성시 사용하였던 금액 및 난수와 일치하는지를 판단한다. 판단 결과에 따라 수신측 단말기(200)는 금액 저장부를 갱신하여 거래를 완료할 수 있다.
수신측 단말기(200)는 송신측 단말기(100)와 와이파이 통신, 블루투스 통신, NFC(Near Field Communication; NFC) 등으로 통신할 수 있다. 그에 따라, 수신측 단말기(200)는 송신측 단말기(100)와의 통신을 위한 통신 모듈 등을 포함할 수 있다. 필요에 따라서, 수신측 단말기(200)는 QR코드에 실린 암호문을 QR코드 스캐너로 스캔하여 디코딩할 수 있게 하여도 무방하다.
수신측 단말기(200)는 가맹점에 설치되는 단말기일 수 있다. 필요에 따라, 수신측 단말기(200)는 스마트폰, 스마트 노트, 태블릿 PC 등과 같은 각종의 스마트 기기일 수도 있다.
상술한 수신측 단말기(200)는 난수 생성부(210), 수신키 저장부(220), 금액 저장부(230), 프로세스 처리부(240), 및 인터페이스부(250)를 포함한다.
난수 생성부(210)는 난수(R)를 생성할 수 있다. 여기서, 난수(R)를 생성하는 방법은 종래의 각종 난수 생성 방식 중 어느 하나 이상을 이용할 수 있다.
수신키 저장부(220)는 수신측 단말기(200)의 비밀키를 저장한다.
금액 저장부(230)는 송신측 단말기(100)에게로 요구하거나 요구할 금액 정보 및 송신측 단말기(100)로부터 소정의 금액을 수취함에 따른 갱신 정보 등을 저장한다.
필요에 따라, 수신키 저장부(220) 및 금액 저장부(230)는 해당 수신측 단말기(200)의 USIM(universal subscriber identity module) 또는 트러스트존(trust zone)에 위치시키는 것이 바람직하다. USIM 또는 트러스트존은 사용자가 접근불가능한 메모리 영역이라고 할 수 있다. 수신측 비밀키 및 금액은 보안에 민감한 정보이다. 수신키 저장부(220) 및 금액 저장부(230)를 USIM 또는 트러스트존에 위치시키게 되면 수신측 비밀키 및 금액에 대한 해커 등의 접근을 차단할 수 있다.
프로세스 처리부(240)는 수신측 단말기(200)의 전체적인 동작을 제어한다.
프로세스 처리부(240)는 송신측 단말기(100)로부터 지불받아야 할 금액(A)을 지정하고, 지정된 금액(A)과 난수 생성부(210)로부터의 난수(R)를 연접(concatenation)시킨 데이터(A∥R)를 수신측 비밀키로 암호화하여 제 1 암호문(E1)을 생성할 수 있다.
프로세스 처리부(240)는 인터페이스부(250)를 통해 제 1 암호문을 송신측 단말기(100)에게로 전송한다.
한편, 프로세스 처리부(240)는 송신측 단말기(100)로부터의 제 2 암호문(E2)을 복호화할 수 있다. 이때, 프로세스 처리부(240)는 제 2 암호문을 송신측 복합 비밀키에 상응하는 송신측 공개키 및 발행측 공개키로 복호화한다.
그리고, 프로세스 처리부(240)는 복호화한 결과(예컨대, 복호문)에 포함된 금액(A') 및 난수(R')가 제 1 암호문 생성시 사용하였던 금액(A) 및 난수(R)와 일치하는지를 판단한다.
프로세스 처리부(240)는 판단 결과에 따라 금액 저장부(230)를 갱신하여 거래를 완료할 수 있다.
인터페이스부(250)는 송신측 단말기(100)와의 유무선 통신을 수행할 수 있다.
인터페이스부(250)는 프로세스 처리부(240)에서 생성한 제 1 암호문을 송신측 단말기(100)에게로 전송하고, 송신측 단말기(100)로부터의 제 2 암호문을 수신할 수 있다.
여기서, 인터페이스부(250)는 송신측 단말기(100)와 와이파이 통신, 블루투스 통신, NFC(Near Field Communication; NFC) 등의 통신을 수행할 수 있는 통신모듈(도시 생략) 등을 포함한다. 한편, 인터페이스부(250)는 제 1 암호문을 QR코드를 이용하여 전송할 수도 있다.
도 1에서는 프로세스 처리부(240) 및 인터페이스부(250)를 각각 독립되게 구성시켰으나, 필요에 따라서는 인터페이스부(250)가 프로세스 처리부(240)에 포함되는 것으로 하여도 무방하다.
이번에는, 본 발명의 실시예에 따른 전자화폐 거래 방법에 대해 도 2의 흐름도를 참조하여 설명한다.
먼저, 수신측 단말기(200)가 송신측 단말기(100)로부터 지불받아야 할 금액(A)을 지정하고, 그에 대한 난수(R)를 생성한다(S100).
이후, 수신측 단말기(200)는 금액(A)과 난수(R)를 연접(concatenation)시킨 데이터(A∥R)(즉, 시퀀스)를 수신측 비밀키로 암호화하여 제 1 암호문(E1)을 생성한다(S110). 제 1 암호문(E1)을 생성할 때 공통 인자(N)가 이용될 것이다.
그리고 나서, 수신측 단말기(200)는 제 1 암호문(E1)을 송신측 단말기(100)에게로 전달한다(S120).
그에 따라, 송신측 단말기(100)는 제 1 암호문(E1)을 수신측 비밀키에 상응하는 수신측 공개키로 복호화한다. 이와 같은 복호화에 의해 송신측 단말기(100)는 제 1 암호문(E1)에 대한 복호문내의 금액(A)을 추출할 수 있고, 추출한 금액(A)을 근거로 금액 저장부(120)를 갱신한다. 이와 같은 복호화 수순을 통해, 송신측 단말기(100)는 수신측 단말기(200)가 송신측 단말기(100)에게 요구한 금액을 정확히 파악할 수 있게 된다. 그리고, 송신측 단말기(100)는 제 1 암호문(E1)을 송신측 복합 비밀키로 암호화하여 제 2 암호문(E2)을 생성한다(S130). 제 2 암호문(E2)을 생성할 때 공통 인자(N)가 이용될 것이다.
상기의 단계 S130에서, 수신측 공개키는 F함수에 의해 홀수로 생성된 것으로 한다. 즉, 모든 종류의 식별자를 공개키의 키값으로 사용할 수 있게 하기 위해서, 수신측 공개키는 홀수로 생성하는 것이 바람직하다. F함수는 모든 입력값에 대해 홀수를 출력하는 단사함수 또는 해쉬함수이다.
이후, 송신측 단말기(100)는 제 2 암호문(E2)을 수신측 단말기(200)에게로 전송한다(S140).
이어, 수신측 단말기(200)는 제 2 암호문(E2)을 복호화한다. 이때, 수신측 단말기(200)는 제 2 암호문(E2)을 송신측 복합 비밀키에 상응하는 송신측 공개키 및 발행측 공개키로 복호화한다. 그리고, 수신측 단말기(200)는 복호화한 결과에 포함된 금액(A') 및 난수(R')가 제 1 암호문 생성시 사용하였던 금액(A) 및 난수(R)와 일치하는지를 판단한다. 판단 결과, 모두 일치하면 금액 저장부(230)를 갱신한 후 거래를 완료한다(S150). 여기서, 금액 저장부(230)의 갱신 및 거래 완료라 함은 해당 금액을 수취하고 금액 저장부(230)의 금액 정보를 갱신함을 의미할 수 있다.
상기의 단계 S150에서, 송신측 공개키 및 발행측 공개키는 F함수에 의해 홀수로 생성된 것으로 한다. 즉, 모든 종류의 식별자를 공개키의 키값으로 사용할 수 있게 하기 위해서, 송신측 공개키 및 발행측 공개키는 홀수로 생성하는 것이 바람직하다. F함수는 모든 입력값에 대해 홀수를 출력하는 단사함수 또는 해쉬함수이다.
한편으로, 수신측 단말기(200)에서의 복호화한 결과에 포함된 금액(A') 및 난수(R')가 제 1 암호문 생성시 사용하였던 금액(A) 및 난수(R)와 일치하지 않으면 해당 금액을 수취하지 않게 된다.
상술한 본 발명의 실시예에 따르면, 수신측에서 지불받을 금액(A)을 지정하고 그에 대한 난수를 생성하여 거래를 시작할 수 있다.
즉, 거래의 시발점이 송신측 단말기(100)가 아니라, 수신측 단말기(200)가 거래의 시발점이 되어 거래를 위한 정보를 생성하고, 발행측 공개키와 송신측 공개키 및 수신측 공개키는 동일한 공통 인자(N)를 이용하므로, 검증을 위해 CA(CA; Certification Authority)(인증기관), RA(Registration Authority)와 같은 서버에 공개키 인증을 문의할 필요도 없고, 단말기에서 즉각적으로 검증할 수 있으므로 매우 효율적이라고 할 수 있다.
그리고, 모든 금액(A)에 대하여 난수가 일대일로 대응되어 있으므로, 수신측에서 복호화한 결과 해당 금액(A)에 대한 난수가 처음 생성하였던 난수와 비교하여 상이하면 거래를 하지 않으므로, 금액에 대한 인증이 수월할 뿐만 아니라 이중 지불의 문제를 해결할 수 있다.
또한, 상술한 본 발명의 전자화폐 거래 방법은, 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플라피디스크, 광데이터 저장장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 상기 방법을 구현하기 위한 기능적인(function) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
이상에서와 같이 도면과 명세서에서 최적의 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로, 본 기술 분야의 통상의 지식을 가진자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100 : 송신측 단말기
110 : 송신키 저장부
120, 230 : 금액 저장부
130, 240 : 프로세스 처리부
140, 250 : 인터페이스부
200 : 수신측 단말기
210 : 난수 생성부
220 : 수신키 저장부

Claims (18)

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

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (1)

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

Family

ID=63229674

Family Applications (1)

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

Country Status (1)

Country Link
KR (1) KR20180089952A (ko)

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 주식회사 코인플러그 블록체인을 기반으로 하는 공인인증서 발급시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 발급방법 및 블록체인을 기반으로 하는 공인인증서 인증시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 인증방법

Similar Documents

Publication Publication Date Title
AU2021203815B2 (en) Methods for secure cryptogram generation
US11856104B2 (en) Methods for secure credential provisioning
CN103714639B (zh) 一种实现对pos终端安全操作的方法及系统
CN106664206B (zh) 用于已认证的通信的高效方法
TWI497336B (zh) 用於資料安全之裝置及電腦程式
CN107358441B (zh) 支付验证的方法、系统及移动设备和安全认证设备
CN103716168A (zh) 密钥管理方法及系统
EP3422275A1 (en) Electronic payment method and electronic device using id-based public key cryptography
US10044684B2 (en) Server for authenticating smart chip and method thereof
Kisore et al. A secure SMS protocol for implementing digital cash system
KR20180089951A (ko) 전자화폐 거래 방법 및 시스템
WO2021019782A1 (ja) 所有者同一性確認システムおよび所有者同一性確認方法
EP3035589A1 (en) Security management system for authenticating a token by a service provider server
KR20180089952A (ko) 전자화폐 거래 방법 및 시스템
JP4148465B2 (ja) 電子価値流通システムおよび電子価値流通方法
CN115310976A (zh) 非接触式交易处理方法、装置及系统
CN117745289A (zh) 支付方法、装置、非易失性存储介质及计算机设备
CN117709958A (zh) 支付方法、装置、非易失性存储介质及计算机设备
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