KR20180089951A - Method and system for processing transaction of electronic cash - Google Patents

Method and system for processing transaction of electronic cash 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
Korean (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 KR1020170014724A priority Critical patent/KR20180089951A/en
Publication of KR20180089951A publication Critical patent/KR20180089951A/en

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

Disclosed are an electronic cash transaction method and a system thereof, capable of safely and easily performing a peer-to-peer (P2P) electronic cash movement without using a server connected to a network. According to the present invention, the method comprises: a step in which a receiving side module designates an amount of electronic cash to be requested and generates a random number; a step in which the receiving side module generates a first cryptogram based on the amount and the random number; a step in which a transmitting side module generates a second cryptogram based on the first cryptogram; a step in which an issuing side module decrypts the second cryptogram with a transmitting side public key and a receiving side public key; a step in which the issuing side module generates a third cryptogram based on the second cryptogram; a step in which the receiving side module decrypts the third cryptogram with the transmitting side public key and an issuing side public key; and a step in which the receiving side module determines whether a result of decrypting the third cryptogram is equal to the amount and the random number, wherein the transmitting side public key, the issuing side public key and the receiving side public key are generated as an odd number by an F function.

Description

전자화폐 거래 방법 및 시스템{Method and system for processing transaction of electronic cash}BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an electronic money transaction method and system,

본 발명은 전자화폐 거래 방법 및 시스템에 관한 것으로, 보다 상세하게는 P2P거래에 있어서 전자화폐를 보다 간편하게 사용할 수 있도록 하는 전자화폐 거래 방법 및 시스템에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an electronic money transaction method and system, and more particularly, to an electronic money transaction method and system that enable electronic money to be used more easily in P2P transactions.

비트코인의 보안기술로 알려진 블록체인(Block Chain)은 공공거래 장부라고도 불리우며, 전자화폐(가상화폐)로 거래할 때 발생할 수 있는 해킹을 막는 기술이다.Block Chain, also known as bit coin security technology, is also called a public transaction book, and is a technique to prevent hacking that may occur when trading with electronic money (virtual currency).

기존의 전자화폐 송금/지불 방식은 중앙서버에서 모든 거래 기록을 보관하는 중앙집중식인데 반면에, 블록체인은 거래에 참여하는 모든 사용자에게 거래내역을 보내주며 이를 대조하여 데이터 위조를 막는 방식을 사용하고 있다.The traditional electronic money transfer / payment method is centralized to keep all transaction records on the central server, while the block chain sends transaction details to all users participating in the transaction and contrasts them to prevent data tampering have.

상술한 기존의 전자화폐 송금/지불 방식은 장부 관리가 필요하며, 네트워크를 통해 중앙서버에서 총괄 처리되어야 한다. 장부 관리는 데이터저장소의 리소스를 반드시 필요로 하고, 중앙서버에서 총괄 처리되도록 하기 위해서는 네트워크에 연결된 서버 시스템이 반드시 필요하다.The existing electronic money transfer / payment method described above requires book management and should be processed in a central server through a network. Book management requires the resources of the data store, and a server system connected to the network is necessary to be processed at the central server.

한편, 블록체인을 이용하는 각각의 사용자는 자신의 거래내역 뿐만 아니라 거래에 참여하는 다른 모든 사용자들의 거래내역도 함께 저장해 두어야 하므로, 저장공간의 문제가 발생되었다. 그래서, 중간 서버를 활용하는 경우가 있는데, 이 경우에는 네트워크에 연결된 중간 서버를 별도로 두어야 한다.On the other hand, each user using the block chain has to store not only his / her transaction history but also transaction details of all other users involved in the transaction, thus causing storage space problems. So, in some cases, an intermediate server may be utilized. In this case, an intermediate server connected to the network must be separately provided.

그리고, 블록체인은 개개인의 분산된 원장을 사용하는 것이므로, 거래가 발생하였을 경우 모든 분산 원장에 해당 거래에 대한 기록내역을 업데이트시켜야 한다. 이때, 블록체인을 이용하는 사용자의 수가 많으면 많을수록 모든 사용자의 원장에 기록내역을 업데이트 완료시키기까지의 시간이 더욱 길어지게 되고, 완료되기까지 많은 시간을 기다려야 하는 문제가 발생되고 있다.In addition, since the block chain uses individual distributed ledgers, when a transaction occurs, it is necessary to update the record of the transactions in all the distributed ledgers. At this time, as the number of users using the block chain increases, the time required to update the record details in all the users' ledgers becomes longer, and a problem occurs that a lot of time is required to be completed.

한편, 기존의 선불 충전 카드는 수취하는 측에서 암호키를 가져야 하므로 SAM(Secure Access Module)과 같은 하드웨어 장치가 반드시 필요하다. 그런데, 현재의 SAM은 모든 카드에 접근하여 화폐를 취득할 수 있는 문제가 있다.On the other hand, since the existing prepaid charging card must have a cryptographic key on the receiving side, a hardware device such as a SAM (Secure Access Module) is necessarily required. However, the present SAM has a problem in that it can acquire money by accessing all the cards.

선행기술 1 : 대한민국 등록특허 제10-1637854호(블록체인을 기반으로 하는 공인인증서 발급시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 발급방법 및 블록체인을 기반으로 하는 공인인증서 인증시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 인증방법)Prior Art 1: Korean Patent No. 10-1637854 (a public key certificate-based issuing system based on a block chain, an authorized certificate issuing method based on a block chain using the same, and a public key certificate authentication system based on a block chain) Authorized certificate authentication method based on block chain) 선행기술 2 : 대한민국 등록특허 제10-1233925호(아이디 기반 암호화 및 서명 장치 및 방법, 비밀키 발급 서버 및 방법)Prior Art 2: Korean Registration No. 10-1233925 (ID-based encryption and signing device and method, secret key issuing server and method) 선행기술 3 : 대한민국 등록특허 제10-1660627호(암호화 화폐의 거래를 보호하는 방법 및 장치)Prior Art 3: Korean Patent No. 10-1660627 (Method and Apparatus for Protecting Encrypted Money Transactions) 선행기술 4 : 대한민국 등록특허 제10-0358426호(전자현금거래방법)Prior Art 4: Korean Patent No. 10-0358426 (Electronic Cash Transaction Method)

본 발명은 상기한 종래의 문제점을 해결하기 위해 제안된 것으로, 네트워크에 연결된 서버를 이용하지 않고서도 P2P간의 전자화폐의 이동을 안전하면서도 수월하게 행할 수 있도록 하는 전자화폐 거래 방법 및 시스템을 제공함에 그 목적이 있다.Disclosure of Invention Technical Problem [8] The present invention has been proposed in order to solve the above-described problems of the related art, and provides an electronic money transaction method and system that can safely and easily move electronic money between P2Ps without using a server connected to a network. There is a purpose.

상기와 같은 목적을 달성하기 위하여 본 발명의 바람직한 실시양태에 따른 전자화폐 거래 방법은, 발행측 모듈이 발행하는 전자화폐에 대해 수신측 모듈이 요구하고 송신측 모듈이 지불하는 거래 방법으로서, 수신측 모듈이, 요구할 전자화폐의 금액을 지정하고 난수를 생성하는 단계; 수신측 모듈이, 상기 금액 및 상기 난수를 근거로 제 1 암호문을 생성하는 단계; 송신측 모듈이, 상기 제 1 암호문을 근거로 제 2 암호문을 생성하는 단계; 발행측 모듈이, 상기 제 2 암호문을 송신측 공개키와 수신측 공개키로 복호화하는 단계; 상기 발행측 모듈이, 상기 제 2 암호문을 근거로 제 3 암호문을 생성하는 단계; 상기 수신측 모듈이, 상기 제 3 암호문을 송신측 공개키와 발행측 공개키로 복호화하는 단계; 및 상기 수신측 모듈이, 상기 제 3 암호문을 복호화한 결과가 상기 금액 및 상기 난수와 일치하는 지를 판단하는 단계;를 포함하고, 상기 송신측 공개키와 상기 발행측 공개키 및 상기 수신측 공개키는 F함수에 의해 홀수로 생성된다.In order to achieve the above object, an electronic money transaction method according to a preferred embodiment of the present invention is a transaction method which is requested by a receiving side module for electronic money issued by a issuing side module and paid by a transmitting side module, The module designating an amount of electronic money to be requested and generating a random number; The receiving module generating a first ciphertext based on the amount and the random number; The transmitting module generating a second cipher text based on the first cipher text; The issuing side module decrypting the second cipher text with the transmitting public key and the receiving public key; The issuer-side module generating a third ciphertext based on the second ciphertext; The receiving module decrypting the third cipher text with a transmitting public key and a issuing public key; And a step in which the receiving module decides whether the result of decoding the third cipher text matches the amount and the random number, and wherein the transmitting side public key, the issuing side public key, and the receiving side public key Are generated in an odd number by the F function.

상기 F함수는 모든 입력값에 대해 홀수를 출력하는 단사함수 또는 해쉬함수일 수 있다.The F function may be a single function or a hash function that outputs an odd number for all input values.

상기 송신측 공개키와 상기 발행측 공개키 및 상기 수신측 공개키는 상호 동일한 공통 인자(N)(N = p*q, p = 2p' + 1, q = 2q' + 1(p' 및 q'는 소수이고, p 및 q는 서로 다른 소수))를 사용할 수 있다.The transmitting side public key, the issuing side public key, and the receiving side public key have the same common factor N (N = p * q, p = 2p '+ 1, q = 2q' + 1 Is a prime number, and p and q are different prime numbers).

상기 제 2 암호문을 송신측 공개키와 수신측 공개키로 복호화하는 단계는, 복호화에 따른 금액을 추출하여 상기 발행측 모듈내의 금액 저장부의 정보를 갱신하는 단계;를 포함할 수 있다.The step of decrypting the second cipher text with the transmission side public key and the reception side public key may include extracting the amount corresponding to the decryption and updating the information of the amount storage unit in the issuing side module.

상기 제 3 암호문은 상기 송신측 모듈을 거쳐 상기 수신측 모듈에게로 전달될 수 있다.The third ciphertext may be passed to the receiver module via the transmitter module.

상기 제 3 암호문을 복호화한 결과가 상기 금액 및 상기 난수와 일치하는 지를 판단하는 단계는, 상기 제 3 암호문을 복호화한 결과가 상기 금액 및 상기 난수와 일치하면 상기 복호화에 따른 금액을 근거로 상기 수신측 모듈내의 금액 저장부의 정보를 갱신하는 단계;를 포함할 수 있다.Wherein the step of determining whether the decryption result of the third ciphertext matches the amount and the random number includes the step of determining whether the decryption result of the third ciphertext matches the amount and the random number, And updating the information of the amount storage unit in the side module.

그리고, 본 발명의 바람직한 실시양태에 따른 전자화폐 거래 시스템은, 발행측 모듈이 발행하는 전자화폐에 대해 수신측 모듈이 요구하고 송신측 모듈이 지불하는 거래 시스템으로서, 상기 수신측 모듈은, 난수를 생성하는 난수 생성부; 수신측 비밀키를 저장하는 수신키 저장부; 및 상기 요구한 금액 및 상기 난수를 상기 수신측 비밀키로 암호문을 생성하여 상기 송신측 모듈에게로 전송하고, 상기 암호문이 상기 송신측 모듈 및 상기 발행사 모듈을 거치면서 순차적으로 암호화됨에 따른 최종의 암호문을 수신하여 송신측 공개키 및 발행측 공개키로 복호화하고, 상기 최종의 암호문을 복호화한 결과가 상기 금액 및 상기 난수와 일치하는 지를 판단하는 프로세스 처리부;를 포함하고, 상기 송신측 공개키 및 상기 발행측 공개키는 F함수에 의해 홀수로 생성된다.An electronic money transaction system according to a preferred embodiment of the present invention is a transaction system that is requested by a receiving side module for an electronic money issued by a issuing side module and paid by a transmitting side module, A random number generator for generating a random number; A receiving key storage unit for storing a receiving side secret key; And generating a ciphertext using the receiving secret key and transmitting the ciphertext to the transmitting module, and transmitting the final ciphertext corresponding to the ciphertext sequentially encrypted through the transmitting module and the issuer module And a process processor for decrypting the decrypted cipher text with the transmission side public key and the issuing side public key and determining whether the result of decoding the final cipher text matches the amount and the random number, The public key is generated in an odd number by the F function.

상기 송신측 공개키 및 상기 발행측 공개키는 상호 동일한 공통 인자(N)(N = p*q, p = 2p' + 1, q = 2q' + 1(p' 및 q'는 소수이고, p 및 q는 서로 다른 소수))를 사용할 수 있다.The transmitting side public key and the issuing side public key have the same common factor N (N = p * q, p = 2p '+ 1, q = 2q' + 1 And q may be different prime numbers).

상기 발행측 모듈은, 상기 수신측 모듈에서의 암호문이 상기 송신측 모듈에서 재차 암호화됨에 따라 상기 재차 암호화된 암호문을 송신측 공개키 및 수신측 공개키로 복호화하여 금액을 추출하되,상기 수신측 공개키는 F함수에 의해 홀수로 생성되고, 상기 F함수는 모든 입력값에 대해 홀수를 출력하는 단사함수 또는 해쉬함수이고, 상기 수신측 공개키는 상기 송신측 공개키 및 상기 발행측 공개키가 사용하는 공통 인자(N)를 사용할 수 있다.Side module, the issuing-side module decrypts the encrypted ciphertext again with the transmitting-side public key and the receiving-side public key in accordance with the cipher text in the receiving-side module being re-encrypted in the transmitting-side module, Is an odd function generated by an F function, the F function is a single function or a hash function that outputs an odd number for all input values, and the receiving side public key is a function of the transmitting side public key and the issuing side public key A common factor (N) can be used.

상기 수신키 저장부는, 해당 수신측 모듈의 USIM(universal subscriber identity module) 또는 트러스트존(trust zone)에 위치할 수 있다.The receiving key storage unit may be located in a universal subscriber identity module (USIM) or a trust zone of the receiving module.

그리고, 본 발명의 다른 바람직한 실시양태에 따른 전자화폐 거래 시스템은, 발행측 모듈이 발행하는 전자화폐에 대해 수신측 모듈이 요구하고 송신측 모듈이 지불하는 거래 시스템으로서, 상기 발행측 모듈은, 발행측 비밀키를 저장하는 발행키 저장부; 및 상기 수신측 모듈에서 요구한 금액 및 상기 수신측 모듈에서 생성된 난수를 근거로 하는 제 1 암호문이 상기 송신측 모듈에서 제 2 암호문으로 암호화되어 수신됨에 따라 상기 제 2 암호문을 송신측 공개키와 수신측 공개키로 복호화하고, 상기 제 2 암호문을 상기 발행측 비밀키로 제 3 암호문을 생성하여 상기 송신측 모듈을 거쳐 상기 수신측 모듈에게로 전송하는 프로세스 처리부;를 포함하고, 상기 송신측 공개키 및 상기 수신측 공개키는 F함수에 의해 홀수로 생성된다.An electronic money transaction system according to another preferred embodiment of the present invention is a transaction system that is requested by a receiving side module for an electronic money issued by a issuing side module and paid by a transmitting side module, A issuing key storage unit for storing a side secret key; And a first ciphertext based on the amount requested by the receiving module and a random number generated by the receiving module, the second ciphertext being encrypted with a second ciphertext in the transmitting module, And a process processor for generating a third cipher text by using the issuing secret key and transmitting the second cipher text to the receiving module via the transmitting module, The receiving side public key is generated by an F function in an odd number.

상기 프로세스 처리부는 상기 송신측 모듈 및 상기 수신측 모듈에서 공통으로 사용가능한 공통 인자를 생성하여 제공하고, 상기 송신측 공개키 및 상기 수신측 공개키는 상기 공통 인자를 동일하게 사용하되, 상기 공통 인자는 N = p*q, p = 2p' + 1, q = 2q' + 1(p' 및 q'는 소수이고, p 및 q는 서로 다른 소수, N은 공통 인자)로 구해질 수 있다.Wherein the process processing unit generates and provides a common factor that can be commonly used in the transmitting module and the receiving module, and the transmitting public key and the receiving public key use the same common factor, (P 'and q' are prime numbers, p and q are different prime numbers, and N is a common factor).

상기 수신측 모듈은 상기 제 3 암호문을 송신측 공개키와 발행측 공개키로 복호화한 결과가 상기 금액 및 상기 난수와 일치하는 지를 판단하고, 상기 발행측 공개키는 F함수에 의해 홀수로 생성되고, 상기 F함수는 모든 입력값에 대해 홀수를 출력하는 단사함수 또는 해쉬함수이고, 상기 발행측 공개키는 상기 송신측 공개키 및 상기 수신측 공개키가 사용하는 공통 인자를 사용할 수 있다.Wherein the receiving side module determines whether the result of decoding the third cipher text by the transmitting side public key and the issuing side public key matches the amount and the random number, the issuing side public key is generated in an odd number by the F function, The F function is a single function or a hash function that outputs an odd number for all input values, and the issuing public key can use a common factor used by the transmitting public key and the receiving public key.

상기 발행키 저장부는, 해당 발행측 모듈의 USIM(universal subscriber identity module) 또는 트러스트존(trust zone)에 위치할 수 있다.The issue key storage unit may be located in a universal subscriber identity module (USIM) or a trust zone of the issuer-side module.

이러한 구성의 본 발명에 따르면, 수신측에서 지불받을 금액을 지정하고 그에 대한 난수를 생성하여 거래를 시작한다. 즉, 거래의 시발점이 송신측 및 발행측이 아니라 수신측이다.According to the present invention having such a configuration, the amount to be paid at the receiving side is specified, and a random number is generated to start the transaction. That is, the starting point of the transaction is not the sender and the issuer but the receiver.

또한, 상호간의 거래에 있어서 발행측 공개키와 송신측 공개키 및 수신측 공개키는 상호 동일한 공통 인자(N)를 이용하므로, 검증을 위해 CA(CA; Certification Authority)(인증기관), RA(Registration Authority)와 같은 서버와 통신할 일도 없다. 다시 말해서, 쌍방간 확실한 신원증명을 위해 신원기반암호(ID-based Cryptography)를 사용함으로써, 키의 유효성을 검증하기 위해 CA(CA; Certification Authority)(인증기관), RA(Registration Authority)와 같은 서버에 의존하지 않고서도 단말기에서 직접 검증할 수 있으므로 매우 효율적이라 할 수 있다. 이와 같이 쌍방간 확실한 신원증명을 위해 신원기반암호(ID-based Cryptography)를 사용함으로써 전통적인 공개키암호방식에서 공개키 교환에 따른 사기행위를 원천차단할 수 있다.Since the issuing public key, the transmitting public key, and the receiving public key use the same common factor (N) in mutual transactions, the CA (Certification Authority) (CA), the RA Registration Authority). In other words, by using ID-based cryptography for reliable identification between both parties, a server such as a CA (Certification Authority) (CA) or RA (Registration Authority) It can be verified directly by the terminal without being dependent on it. Thus, by using ID-based cryptography for authentic identity verification between both parties, it is possible to prevent fraud by public key exchange in the conventional public key cryptosystem.

그리고, 모든 금액에 대하여 난수가 일대일로 대응되어 있으므로, 수신측에서 복호화한 결과 해당 금액에 대한 난수가 처음 생성하였던 난수와 비교하여 상이하면 거래를 하지 않으므로, 금액에 대한 인증이 수월할 뿐만 아니라 이중 지불의 문제를 해결할 수 있다.Since the random numbers are associated with each other in a one-to-one correspondence with respect to all the amounts, if the random number of the corresponding amount is compared with the first generated random number as a result of decoding at the receiving end, the transaction is not performed. The problem of payment can be solved.

도 1은 본 발명의 실시예에 따른 전자화폐 거래 시스템의 구성도이다.
도 2는 본 발명의 실시예에 따른 전자화폐 거래 방법을 설명하기 위한 흐름도이다.
1 is a configuration diagram of an electronic money transaction system according to an embodiment of the present invention.
2 is a flowchart illustrating an electronic money transaction method according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다.While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail.

그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprises" or "having" and the like are used to specify that there is a feature, a number, a step, an operation, an element, a component or a combination thereof described in the specification, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the relevant art and are to be interpreted in an ideal or overly formal sense unless explicitly defined in the present application Do not.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In order to facilitate the understanding of the present invention, the same reference numerals are used for the same constituent elements in the drawings and redundant explanations for the same constituent elements are omitted.

도 1은 본 발명의 실시예에 따른 전자화폐 거래 시스템의 구성도이다.1 is a configuration diagram of an electronic money transaction system according to an embodiment of the present invention.

본 발명의 실시예에 따른 전자화폐 거래 시스템은, 발행사 단말기(10), 송신측 단말기(20), 및 수신측 단말기(30)를 포함한다. 여기서, 발행사 단말기(10), 송신측 단말기(20), 및 수신측 단말기(30)는 발행측 모듈 또는 발행측 모듈부, 송신측 모듈 또는 송신측 모듈부, 수신측 모듈 또는 수신측 모듈부로 표현되어도 무방하다. 한편으로, 발행사 단말기(10), 송신측 단말기(20), 및 수신측 단말기(30)는 전자화폐 거래 장치가 될 수 있다.The electronic money transaction system according to the embodiment of the present invention includes an issuer terminal 10, a transmitting terminal 20, and a receiving terminal 30. Here, the issuer terminal 10, the transmitting terminal 20, and the receiving terminal 30 are represented as a issuing module or a issuing module, a transmitting module or a transmitting module, a receiving module, or a receiving module It can be done. On the other hand, the issuer terminal 10, the transmitting terminal 20, and the receiving terminal 30 may be electronic money transaction devices.

도 1에서, 발행사 단말기(10)와 송신측 단말기(20)는 네트워크(도시 생략)로 연결되고, 송신측 단말기(20)와 수신측 단말기(30)는 네트워크(도시 생략)로 연결되어 있다. 1, the issuing company terminal 10 and the transmitting terminal 20 are connected by a network (not shown), and the transmitting terminal 20 and the receiving terminal 30 are connected by a network (not shown).

발행사 단말기(10)와 송신측 단말기(20)는 서로 데이터 통신을 수행할 수 있고, 송신측 단말기(20)와 수신측 단말기(30)는 서로 데이터 통신을 수행할 수 있다.The issuing company terminal 10 and the transmitting terminal 20 can perform data communication with each other and the transmitting terminal 20 and the receiving terminal 30 can perform data communication with each other.

네트워크는 유선 통신망 및 무선 통신망을 모두 포함하는 개념으로서, 이에 한정되지 않고 데이터를 주고받을 수 있는 여타의 통신망이 될 수 있다. The term " network " includes both a wired communication network and a wireless communication network. The term " communication network "

발행사 단말기(10)는 P2P간에 전자화폐를 거래할 수 있는 어플리케이션(앱)을 제공해 주는 발행사(서비스 공급사)의 단말기이다. The issuer terminal 10 is a terminal of an issuer (service provider) for providing an application (app) capable of trading electronic money between P2Ps.

발행사 단말기(10)는 전자화폐를 발행할 수 있다. 여기서, 발행사는 신뢰할 수 있는 것으로 한다. The issuer terminal 10 can issue electronic money. Here, it is assumed that the issuer is reliable.

발행사 단말기(10)는 송신측 단말기(20) 및 수신측 단말기(30)에서 공통으로 사용가능한 공통 인자(N)를 생성할 수 있다. 발행사 단말기(10)는 생성한 공통 인자(N)를 송신측 단말기(20) 및 수신측 단말기(30)에게로 보낸다.The issuing company terminal 10 can generate a common factor N that can be commonly used by the transmitting terminal 20 and the receiving terminal 30. [ The issuing company terminal 10 sends the generated common factor N to the transmitting terminal 20 and the receiving terminal 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)은 비밀키 생성 인자가 될 수 있다.For example, the issuer terminal 10 generates a prime number p = 2p '+ 1 and a prime number q = 2q' + 1, where p 'and q' are prime numbers and p and q are prime numbers different from each other. Here, the common factor (N) = p * q. In other words, multiplying two different prime numbers (p, q) can be called a common factor (N). The common factor N may be stored in the transmitting terminal 20 and the receiving terminal 30 and used in the encryption, decryption and authentication steps. The value of (p-1) * (q-1) may be phi (phi) (N). Phi (phi) (N) may be a secret key generation factor.

발행사 단말기(10)는 송신측 단말기(20)에서 생성된 암호문을 수신하여 복호화할 수 있다. 여기서, 송신측 단말기(20)에서 생성된 암호문은 수신측 단말기(30)에서 생성된 암호문을 해당 송신측 단말기(20)의 송신측 비밀키로 암호화함에 따라 생성된 것이다. 그리고, 수신측 단말기(30)에서 생성된 암호문은 해당 수신측 단말기(30)가 요구하는 금액(A)과 난수(R)를 연접(concatenation)시킨 데이터(A∥R)(즉, 시퀀스)를 수신측 비밀키로 암호화함에 따라 생성된 것이다. 따라서, 수신측 단말기(30)에서 생성된 암호문을 제 1 암호문 또는 1차 암호문이라고 할 수 있고, 송신측 단말기(20)에서 생성된 암호문을 제 2 암호문 또는 2차 암호문이라고 할 수 있다.The issuer terminal 10 can receive and decrypt the cipher text generated in the transmitting terminal 20. [ Here, the cipher text generated at the transmitting terminal 20 is generated by encrypting the cipher text generated at the receiving terminal 30 with the transmitting private key of the corresponding transmitting terminal 20. The cipher text generated by the receiving terminal 30 is transmitted to the recipient terminal 30 through a data A∥R (that is, a sequence) obtained by concatenating the amount A requested by the receiving terminal 30 and the random number R And encrypted with the receiving side secret key. Therefore, the cipher text generated by the receiving terminal 30 may be referred to as a first cipher text or a first cipher text, and the cipher text generated by the transmitting terminal 20 may be referred to as a second cipher text or a second cipher text.

발행사 단말기(10)는 송신측 단말기(20)에서 생성된 암호문(제 2 암호문)을 복호화함에 있어서, 제 2 암호문을 송신측 비밀키에 상응하는 송신측 공개키(e2, N) 및 수신측 비밀키에 상응하는 수신측 공개키(e1, N)로 복호화할 수 있다.In decrypting the cipher text (second cipher text) generated by the transmitting terminal 20, the issuing company terminal 10 transmits the second cipher text to the transmitting side public key e2, N corresponding to the transmitting side secret key, Side public key e1, N corresponding to the key.

발행사 단말기(10)는 제 2 암호문을 복호화하여 금액을 추출하여 내부의 금액 저장부를 갱신한다. The issuer terminal 10 decrypts the second cipher text, extracts the amount, and updates the internal amount storage unit.

또한, 발행사 단말기(10)는 제 2 암호문을 해당 발행사 단말기(10)의 발행사 비밀키로 암호화한 제 3 암호문(또는 3차 암호문)을 생성할 수 있다.Also, the issuer terminal 10 may generate a third cipher text (or a third cipher text) in which the second cipher text is encrypted with the issuer secret key of the issuer terminal 10.

발행사 단말기(10)는 제 3 암호문을 송신측 단말기(20)에게로 전송한다.The issuer terminal 10 transmits the third cipher text to the transmitting terminal 20.

상술한 발행사 단말기(10)는 발행키 저장부(11), 금액 저장부(12), 프로세스 처리부(13), 및 인터페이스부(14)를 포함할 수 있다. The issuer terminal 10 may include a issued key storage unit 11, a money storage unit 12, a process processing unit 13, and an interface unit 14.

발행키 저장부(11)는 발행사 단말기(10)의 비밀키를 저장한다. The issued key storage unit 11 stores the secret key of the issuer terminal 10.

금액 저장부(12)는 수신측 단말기(30)에서 송신측 단말기(20)에게로 요구한 금액을 저장한다. 즉, 발행사 단말기(10)는 송신측 단말기(20)에서 생성된 암호문( 제 2 암호문; 수신측 단말기(30)에서 생성한 제 1 암호문을 송신측 비밀키로 암호화한 결과)을 복호화할 수 있다. 금액 저장부(12)는 이러한 복호화를 거쳐 추출된 금액(즉, 송신측 단말기(20)에게로 요구한 금액)을 저장한다.The amount storage unit 12 stores the amount requested from the receiving terminal 30 to the transmitting terminal 20. That is, the issuer terminal 10 can decrypt the cipher text (second cipher text, a result obtained by encrypting the first cipher text generated by the receiving terminal 30 with the transmitting secret key) generated by the transmitting terminal 20. The amount storage unit 12 stores the amount extracted through such decryption (i.e., the amount requested to the transmitting terminal 20).

또한, 금액 저장부(12)는 추출된 금액을 근거로 갱신될 수 있다.Also, the amount storage unit 12 can be updated based on the extracted amount.

필요에 따라, 발행키 저장부(11) 및 금액 저장부(12)는 해당 발행사 단말기(10)의 USIM(universal subscriber identity module) 또는 트러스트존(trust zone)에 위치시키는 것이 바람직하다. USIM 또는 트러스트존은 사용자가 접근불가능한 메모리 영역이라고 할 수 있다. 발행측 비밀키 및 금액은 보안에 민감한 정보이다. 발행키 저장부(11) 및 금액 저장부(12)를 USIM 또는 트러스트존에 위치시키게 되면 발행측 비밀키 및 금액에 대한 해커 등의 접근을 차단할 수 있다. It is preferable that the issue key storage unit 11 and the amount storage unit 12 are located in a universal subscriber identity module (USIM) or a trust zone of the issuer terminal 10, as needed. A USIM or a trust zone can be said to be a memory area inaccessible to the user. The issuing secret key and the amount are security sensitive information. When the issued key storage unit 11 and the money storage unit 12 are located in the USIM or the trust zone, access to the issuer secret key and the amount of money can be blocked.

프로세스 처리부(13)는 발행사 단말기(10)의 전체적인 동작을 제어한다.The process processing unit 13 controls the overall operation of the issuer terminal 10.

프로세스 처리부(13)는 송신측 단말기(20) 및 수신측 단말기(30)에서 공통으로 사용가능한 공통 인자(N)를 생성하고, 공통 인자(N)를 인터페이스부(14)를 통해 송신측 단말기(20) 및 수신측 단말기(30)에게로 보낼 수 있다.The process processing unit 13 generates a common factor N that can be commonly used by the transmitting terminal 20 and the receiving terminal 30 and transmits the common factor N to the transmitting terminal 20 and the receiving-side terminal 30, respectively.

프로세스 처리부(13)는 발행측 비밀키를 생성할 수 있다. 프로세스 처리부(13)는 발행측 비밀키를 발행키 저장부(11)에 저장한다. 물론, 프로세스 처리부(13)가 발행측 비밀키를 생성하는 것과는 다르게, 해당 발행사 단말기(10)의 설계 단계에서 발행측 비밀키가 미리 설정되어 있을 수도 있다.The process processing unit 13 can generate the issuing secret key. The process processing unit 13 stores the issuing secret key in the issuing key storage unit 11. [ Of course, unlike the case where the process processing unit 13 generates the issuing secret key, the issuing secret key may be preset in the designing stage of the issuer terminal 10. [

프로세스 처리부(13)는 금액 저장부(12)내의 금액을 증감시키는 등의 연산을 수행할 수 있다.The process processing unit 13 may perform operations such as increasing or decreasing the amount of money in the amount storage unit 12. [

프로세스 처리부(13)는 송신측 단말기(20)로부터의 제 2 암호문을 송신측 비밀키에 상응하는 송신측 공개키(e2, N) 및 수신측 비밀키에 상응하는 수신측 공개키(e1, N)로 복호화할 수 있다. 이를 위해, 프로세스 처리부(13)는 송신측 공개키 및 수신측 공개키를 저장할 수 있다.The process processing unit 13 transmits the second cipher text from the transmitting terminal 20 to the transmitting side public key e2, N corresponding to the transmitting side secret key and the receiving side public key e1, N ). ≪ / RTI > To this end, the process processing unit 13 may store the transmitting public key and the receiving public key.

수신측 단말기(30)에서 생성된 제 1 암호문은 해당 수신측 단말기(30)가 요구하는 금액(A)과 난수(R)를 연접(concatenation)시킨 데이터(A∥R)(즉, 시퀀스)를 수신측 비밀키로 암호화한 것이다. 송신측 단말기(20)에서의 제 2 암호문은 상술한 제 1 암호문을 송신측 비밀키로 암호화한 것이다. 그에 따라, 프로세스 처리부(13)는 먼저 송신측 비밀키에 상응하는 송신측 공개키로 제 2 암호문을 복호화한 후에 재차 수신측 비밀키에 상응하는 수신측 공개키로 복호화를 실시한다.The first cipher text generated by the receiving terminal 30 is a data A∥R (that is, a sequence) obtained by concatenating the amount A requested by the receiving terminal 30 and the random number R And encrypted with the receiving side secret key. The second cipher text in the transmitting terminal 20 is the above-mentioned first cipher text encrypted with the transmitting secret key. Accordingly, the process processing unit 13 first decrypts the second cipher text with the transmission side public key corresponding to the transmission side secret key, and then decrypts the second cipher text with the reception side public key corresponding to the reception side secret key again.

이러한 복호화에 의해 프로세스 처리부(13)는 제 2 암호문내의 금액을 추출할 수 있고, 추출한 금액을 근거로 금액 저장부(12)를 갱신할 수 있다. 이와 같은 복호화 수순을 통해, 프로세스 처리부(13)는 수신측 단말기(30)가 송신측 단말기(20)에게 요구한 금액을 정확히 파악할 수 있게 된다.By this decryption, the process processing unit 13 can extract the amount in the second cipher text, and can update the amount storage unit 12 based on the extracted amount. Through this decryption procedure, the process processing unit 13 can accurately grasp the amount requested by the receiving-side terminal 30 to the transmitting-side terminal 20.

또한, 프로세스 처리부(13)는 제 2 암호문을 해당 발행사 단말기(10)의 발행사 비밀키로 암호화하여 제 3 암호문을 생성하고, 제 3 암호문을 인터페이스부(14)를 통해 송신측 단말기(20)에게로 전송할 수 있다. 이때, 수신측 단말기(30)에서의 난수(R)는 예측할 수 없는 난수이므로, 프로세스 처리부(13)는 수신측 단말기(30)에서 생성된 난수(R)와 동일한 난수를 생성할 수 없다. 그에 따라, 프로세스 처리부(13)는 수신측 단말기(30)에서 최초 생성한 시퀀스(금액(A)∥난수(R))에 대한 위변조를 할 수 없다. 위변조를 한다고 하더라도 난수가 다르게 되므로, 수신측 단말기(30)에서는 해당 금액을 수취하지 않을 것이다. 이로 인해 이중 지불 문제를 해결할 수 있다.The process processor 13 generates a third cipher text by encrypting the second cipher text with the issuer secret key of the issuer terminal 10 and transmits the third cipher text to the transmitting terminal 20 via the interface unit 14 Lt; / RTI > At this time, since the random number R in the receiving terminal 30 is an unpredictable random number, the process processing unit 13 can not generate a random number equal to the random number R generated in the receiving terminal 30. Accordingly, the process processing unit 13 can not forge or modify the sequence (amount A (A) ∥ random number R) originally generated at the receiving terminal 30. The receiving terminal 30 will not receive the amount because the random number is different even if the forgery and falsification is performed. This can solve the double payment problem.

인터페이스부(14)는 송신측 단말기(20)와의 유무선 통신을 수행할 수 있다.The interface unit 14 can perform wire / wireless communication with the transmitting terminal 20.

인터페이스부(14)는 송신측 단말기(20)로부터의 제 2 암호문을 수신하여 프로세스 처리부(13)에게로 인가할 수 있다.The interface unit 14 can receive the second cipher text from the transmitting terminal 20 and apply it to the process processing unit 13. [

또한, 인터페이스부(14)는 프로세스 처리부(13)로부터의 제 3 암호문을 송신측 단말기(20)에게로 전송할 수 있다.Further, the interface unit 14 can transmit the third cipher text from the process processing unit 13 to the transmitting terminal 20.

여기서, 인터페이스부(14)는 송신측 단말기(20)와 와이파이 통신, 블루투스 통신, NFC(Near Field Communication; NFC) 등의 통신을 수행할 수 있는 통신모듈(도시 생략) 등을 포함한다. 한편, 인터페이스부(14)는 제 3 암호문을 QR코드를 이용하여 전송할 수도 있다.The interface unit 14 includes a communication module (not shown) that can perform communication such as Wi-Fi communication, Bluetooth communication, NFC (Near Field Communication), and the like with the transmitting terminal 20. On the other hand, the interface unit 14 may transmit the third cipher text using the QR code.

도 1에서는 프로세스 처리부(13) 및 인터페이스부(14)를 각각 독립되게 구성시켰으나, 필요에 따라서는 인터페이스부(14)가 프로세스 처리부(13)에 포함되는 것으로 하여도 무방하다.Although the process processing unit 13 and the interface unit 14 are configured to be independent from each other in FIG. 1, the interface unit 14 may be included in the process processing unit 13, if necessary.

송신측 단말기(20)는 수신측 단말기(30)에서 생성된 암호문(즉, 제 1 암호문)을 암호화할 수 있다. 송신측 단말기(20)에서의 암호화시, 송신측 단말기(20)는 해당 송신측 단말기(20)의 송신측 비밀키로 제 1 암호문을 암호화하여 제 2 암호문을 생성할 수 있다. The transmitting terminal 20 can encrypt the cipher text generated by the receiving terminal 30 (i.e., the first cipher text). When encrypting in the transmitting terminal 20, the transmitting terminal 20 can generate the second cipher text by encrypting the first cipher text with the transmitting private key of the transmitting terminal 20 concerned.

송신측 단말기(20)는 생성한 제 2 암호문을 발행사 단말기(10)에게로 전송한다.The transmitting terminal 20 transmits the generated second cipher text to the issuer terminal 10.

송신측 단말기(20)는 발행사 단말기(10)로부터의 제 3 암호문을 수신측 단말기(30)에게로 전달한다.The transmitting side terminal 20 transfers the third cipher text from the issuing company terminal 10 to the receiving side terminal 30.

수신측 단말기(30)의 입장에서는 송신측 단말기(20)만을 상대하므로, 수신측 단말기(30)의 입장에서 보면 송신측 단말기(20)가 소정 금액의 전자화폐를 해당 수신측 단말기(30)에게로 지불하는 수단이 될 수 있다.The receiving side terminal 30 is opposed to the transmitting side terminal 20 only and therefore the receiving side terminal 30 can not receive the electronic money of the predetermined amount from the receiving side terminal 30 As a means of payment.

송신측 단말기(20)는 발행사 단말기(10) 또는 수신측 단말기(30)와 와이파이 통신, 블루투스 통신, NFC(Near Field Communication; NFC) 등으로 통신할 수 있다. 그에 따라, 송신측 단말기(20)는 발행사 단말기(10) 또는 수신측 단말기(30)와의 통신을 위한 통신 모듈 등을 포함할 수 있다. 필요에 따라서, 송신측 단말기(20)는 제 2 암호문을 QR코드를 이용하여 전송할 수도 있다.The transmitting side terminal 20 can communicate with the issuing company terminal 10 or the receiving side terminal 30 through Wi-Fi communication, Bluetooth communication, NFC (Near Field Communication), or the like. Accordingly, the transmitting terminal 20 may include a communication module for communicating with the issuing company terminal 10 or the receiving terminal 30, or the like. If necessary, the transmitting terminal 20 may transmit the second cipher text using the QR code.

송신측 단말기(20)는 휴대성과 이동성이 보장되는 무선 통신 장치로서, 스마트폰, 스마트 노트, 태블릿 PC 등과 같은 각종의 스마트 기기일 수도 있다.The transmitting side terminal 20 may be various smart devices such as a smart phone, a smart note, a tablet PC and the like as a wireless communication device which is guaranteed to be portable and mobility.

상술한 송신측 단말기(20)는 송신키 저장부(21), 프로세스 처리부(22), 및 인터페이스부(23)를 포함할 수 있다.The above-described transmitting terminal 20 may include a transmission key storage unit 21, a process processing unit 22, and an interface unit 23.

송신키 저장부(21)는 송신측 단말기(20)의 비밀키를 저장한다. The transmission key storage unit 21 stores the secret key of the transmitting terminal 20.

필요에 따라, 송신키 저장부(21)는 해당 송신측 단말기(20)의 USIM(universal subscriber identity module) 또는 트러스트존(trust zone)에 위치시키는 것이 바람직하다. USIM 또는 트러스트존은 사용자가 접근불가능한 메모리 영역이라고 할 수 있다. 송신측 비밀키는 보안에 민감한 정보이다. 송신키 저장부(21)를 USIM 또는 트러스트존에 위치시키게 되면 송신측 비밀키에 대한 해커 등의 접근을 차단할 수 있다. If necessary, the transmission key storage unit 21 may be located in a universal subscriber identity module (USIM) or a trust zone of the transmitting terminal 20. A USIM or a trust zone can be said to be a memory area inaccessible to the user. The sender secret key is security sensitive information. By placing the transmission key storage unit 21 in the USIM or the trust zone, it is possible to block a hacker or the like from accessing the transmitting side secret key.

프로세스 처리부(22)는 송신측 단말기(20)의 전체적인 동작을 제어한다.The process processing unit 22 controls the overall operation of the transmitting terminal 20.

프로세스 처리부(22)는 송신측 비밀키를 생성할 수 있고, 생성한 송신측 비밀키를 송신키 저장부(21)에 저장한다. 물론, 프로세스 처리부(22)가 송신측 비밀키를 생성하는 것과는 다르게, 해당 송신측 단말기(20)의 설계 단계에서 송신측 비밀키가 미리 설정되어 있을 수도 있다.The process processing unit 22 can generate the transmitting secret key, and stores the generated transmitting secret key in the transmission key storing unit 21. [ Of course, the transmitting side secret key may be preset in the design stage of the transmitting side terminal 20, unlike the case where the process processing unit 22 generates the transmitting side secret key.

프로세스 처리부(22)는 수신측 단말기(30)에서 생성된 암호문(즉, 제 1 암호문)을 암호화할 수 있다. 즉, 프로세스 처리부(22)는 송신측 비밀키로 제 1 암호문을 암호화하여 제 2 암호문을 생성할 수 있다. 이때, 수신측 단말기(30)에서의 난수(R)는 예측할 수 없는 난수이므로, 프로세스 처리부(22)는 수신측 단말기(30)에서 생성된 난수(R)와 동일한 난수를 생성할 수 없다. 그에 따라, 프로세스 처리부(22)는 수신측 단말기(30)에서 최초 생성한 시퀀스(금액(A)∥난수(R))에 대한 위변조를 할 수 없다. 위변조를 한다고 하더라도 난수가 다르게 되므로, 수신측 단말기(30)에서는 해당 금액을 수취하지 않을 것이다. 이로 인해 이중 지불 문제를 해결할 수 있다.The process processing unit 22 can encrypt the cipher text (i.e., the first cipher text) generated in the receiving terminal 30. [ That is, the process processor 22 can generate the second cipher text by encrypting the first cipher text with the transmitting secret key. At this time, since the random number R in the receiving terminal 30 is an unpredictable random number, the process processing unit 22 can not generate the same random number as the random number R generated in the receiving terminal 30. Accordingly, the process processing unit 22 can not forge or modify the sequence (amount A (A) ∥ random number R) originally generated by the receiving side terminal 30. The receiving terminal 30 will not receive the amount because the random number is different even if the forgery and falsification is performed. This can solve the double payment problem.

프로세스 처리부(22)는 생성한 제 2 암호문을 인터페이스부(23)를 통해 발행사 단말기(10)에게로 전송한다.The process processing unit 22 transmits the generated second cipher text to the issuer terminal 10 through the interface unit 23.

또한, 프로세스 처리부(22)는 발행사 단말기(10)로부터의 제 3 암호문을 수신측 단말기(30)에게로 전달될 수 있도록 인터페이스부(23)를 제어한다.The process processing unit 22 controls the interface unit 23 so that the third cipher text from the issuer terminal 10 can be transmitted to the receiving terminal 30. [

인터페이스부(23)는 발행사 단말기(10) 및 수신측 단말기(30)와의 유무선 통신을 수행할 수 있다.The interface unit 23 can perform wire / wireless communication with the issuer terminal 10 and the receiving terminal 30. [

인터페이스부(23)는 프로세스 처리부(22)에서 생성한 제 2 암호문을 발행사 단말기(10)에게로 전송하고, 발행사 단말기(10)로부터의 제 3 암호문을 수신측 단말기(30)에게로 전달할 수 있다.The interface unit 23 may transmit the second cipher text generated by the process processing unit 22 to the issuer terminal 10 and may transmit the third cipher text from the issuer terminal 10 to the receiving terminal 30 .

여기서, 인터페이스부(23)는 발행사 단말기(10) 및 수신측 단말기(30)와 와이파이 통신, 블루투스 통신, NFC(Near Field Communication; NFC) 등의 통신을 수행할 수 있는 통신모듈(도시 생략) 등을 포함한다. 한편, 인터페이스부(23)는 제 3 암호문을 QR코드를 이용하여 전송할 수도 있다.The interface unit 23 includes a communication module (not shown) that can perform communication such as Wi-Fi communication, Bluetooth communication, and NFC (Near Field Communication) with the issuer terminal 10 and the receiving terminal 30 . On the other hand, the interface unit 23 may transmit the third cipher text using the QR code.

도 1에서는 프로세스 처리부(22) 및 인터페이스부(23)를 각각 독립되게 구성시켰으나, 필요에 따라서는 인터페이스부(23)가 프로세스 처리부(22)에 포함되는 것으로 하여도 무방하다.1, the process processing unit 22 and the interface unit 23 are independently configured. However, the interface unit 23 may be included in the process processing unit 22, if necessary.

수신측 단말기(30)는 난수를 생성한다. 이때, 난수는 발행사 단말기(10) 및 송신측 단말기(20)에서 예측할 수 없는 값을 가진다.The receiving side terminal 30 generates a random number. At this time, the random number has an unpredictable value in the issuer terminal 10 and the transmitting terminal 20.

기존의 비트코인과 같은 전자화폐의 경우, 보내는 측이 한 사람에게만 소정 금액의 전자화폐를 지불할려고 하였는데 실수로 또 다른 사람에게도 재차 소정 금액의 전자화폐를 지불하는 이중 지불의 문제가 발생할 수 있다.In the case of the electronic money such as the conventional bit coin, the sending side tries to pay the electronic money of a predetermined amount to only one person, but there is a possibility of the double payment that the electronic money is paid again to another person by mistake.

즉, 기존의 방식에서는 보내는 사람이 거래 시작의 주체가 되어 소정 금액의 전자화폐를 송금하였다. 이로 인해 상술한 바와 같은 이중 지불의 문제가 발생한다.That is, in the conventional method, the sender became the subject of the transaction and remitted electronic money of a predetermined amount. This causes the problem of double payment as described above.

그러나, 본 발명의 실시예에서는 수신측 단말기(30)가 거래 시작의 주체가 된다. 즉, 수신측 단말기(30)가 받을 금액을 지정하고 난수를 생성하고, 지정된 금액 및 난수를 근거로 제 1 암호문을 생성하여 송신측 단말기(20)에게로 전송한다. 이후, 송신측 단말기(20)는 제 1 암호문을 암호화하여 제 2 암호문으로 만들어 발행사 단말기(10)에게로 보내고, 발행사 단말기(10)는 제 2 암호문을 암호화하여 제 3 암호문으로 만들어 수신측 단말기(30)에게로 보낸다. 수신측 단말기(30)에서는 제 3 암호문을 복호화한 결과에 따른 금액 및 난수가 제 1 암호문을 만들때 사용하였던 금액과 난수와 동일하면 정상적인 거래인 것으로 판단하여 거래를 완료(즉, 전자화폐 수취)를 할 수 있다. 그러나, 제 3 암호문을 복호화한 결과에 따른 금액 및 난수가 제 1 암호문을 만들때 사용하였던 금액과 난수와 동일하지 않으면 비정상적인 거래인 것으로 판단하여 거래를 하지 않게 된다(즉, 전자화폐 불수취). However, in the embodiment of the present invention, the receiving side terminal 30 becomes the subject of the transaction start. That is, the receiving terminal 30 specifies the amount to be received, generates a random number, generates a first cipher text based on the specified amount and the random number, and transmits the first cipher text to the transmitting terminal 20. Thereafter, the transmitting terminal 20 encrypts the first cipher text and sends it to the issuer terminal 10 as a second cipher text, and the issuer terminal 10 encrypts the second cipher text to form a third cipher text, 30). The receiving terminal 30 determines that the transaction is a normal transaction when the amount and the random number according to the decryption result of the third cipher text are the same as the amount and the random number used for creating the first cipher text, . However, if the amount and the random number according to the result of decrypting the third cipher text are not equal to the amount and the random number used in creating the first cipher text, it is determined that the transaction is abnormal and the transaction is not performed (i.e., the electronic money is not received).

상술한 바와 같이, 수신측 단말기(30)가 난수를 생성하여 암호문에 활용하게 되면, 이중 지불의 문제를 효과적으로 해소할 수 있다.As described above, if the receiving terminal 30 generates a random number and utilizes it as a cipher text, the problem of double payment can be effectively solved.

이와 같이, 수신측 단말기(30)는 송신측 단말기(20)로부터 지불받아야 할 금액과 소정의 난수를 해당 수신측 단말기(30)의 수신측 비밀키로 암호화하여 제 1 암호문을 생성할 수 있다.In this way, the receiving terminal 30 can generate the first cipher text by encrypting the amount to be paid from the transmitting terminal 20 and a predetermined random number using the receiving private key of the receiving terminal 30.

수신측 단말기(30)는 제 1 암호문을 송신측 단말기(20)에게로 전송한다.The receiving side terminal 30 transmits the first cipher text to the transmitting side terminal 20.

수신측 단말기(30)는 송신측 단말기(20)를 통해 수신한 발행사 단말기(10)로부터의 제 3 암호문을 복호화할 수 있다. 이때, 수신측 단말기(30)는 제 3 암호문을 발행측 비밀키에 상응하는 발행측 공개키(e3, N) 및 수신측 비밀키에 상응하는 수신측 공개키(e1, N)로 복호화한다. 그리고, 수신측 단말기(30)는 복호화한 결과(예컨대, 복호문)에 포함된 금액 및 난수가 제 1 암호문 생성시 사용하였던 금액 및 난수와 일치하는지를 판단한다. 판단 결과에 따라 수신측 단말기(30)는 금액 저장부를 갱신하여 거래를 완료할 수 있다.The receiving side terminal 30 can decrypt the third cipher text received from the issuing terminal 10 via the transmitting side terminal 20. [ At this time, the receiving side terminal 30 decrypts the third cipher text into the issuing public key e3, N corresponding to the issuing private key and the receiving public key e1, N corresponding to the receiving secret key. Then, the receiving side terminal 30 determines whether the amount and the random number included in the decoded result (for example, the decrypted message) coincide with the amount and the random number used in generating the first ciphertext. According to the determination result, the receiving side terminal 30 can update the amount storage unit and complete the transaction.

수신측 단말기(30)는 송신측 단말기(20)와 와이파이 통신, 블루투스 통신, NFC(Near Field Communication; NFC) 등으로 통신할 수 있다. 그에 따라, 수신측 단말기(30)는 송신측 단말기(20)와의 통신을 위한 통신 모듈 등을 포함할 수 있다. 필요에 따라서, 수신측 단말기(30)는 QR코드에 실린 암호문을 QR코드 스캐너로 스캔하여 디코딩할 수 있게 하여도 무방하다.The receiving side terminal 30 can communicate with the transmitting side terminal 20 via Wi-Fi communication, Bluetooth communication, NFC (Near Field Communication), or the like. Accordingly, the receiving terminal 30 may include a communication module for communicating with the transmitting terminal 20, and the like. If necessary, the receiving-side terminal 30 may scan the cipher text on the QR code with a QR code scanner and decode it.

수신측 단말기(30)는 가맹점에 설치되는 단말기일 수 있다. 필요에 따라, 수신측 단말기(30)는 스마트폰, 스마트 노트, 태블릿 PC 등과 같은 각종의 스마트 기기일 수도 있다.The receiving terminal 30 may be a terminal installed at an affiliated store. If necessary, the receiving terminal 30 may be a smart device such as a smart phone, a smart note, a tablet PC, or the like.

상술한 본 발명의 실시예에서, 송신측 공개키(e2, N)와 발행측 공개키(e3, N) 및 수신측 공개키(e1, N)는 F함수에 의해 홀수로 생성됨이 바람직하다. 즉, 모든 종류의 식별자를 공개키의 키값으로 사용할 수 있게 하기 위해서, 송신측 공개키와 발행측 공개키 및 수신측 공개키는 홀수로 생성하는 것이 바람직하다. F함수는 모든 입력값에 대해 홀수를 출력하는 단사함수 또는 해쉬함수이다.In the embodiment of the present invention described above, it is preferable that the transmitting side public key e2, N, the issuing side public key e3, N and the receiving side public key e1, N are generated in an odd number by the F function. That is, in order to use all kinds of identifiers as key values of the public key, it is preferable to generate the transmitting public key, the issuing public key, and the receiving public key in an odd number. The F function is a hash function or hash function that outputs an odd number for all input values.

예를 들어, 송신측 공개키(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를 홀수로 하게 되면 모든 종류의 식별자를 공개키로 사용할 수 있게 된다. For example, the sender public key e2, N, the issuer public key e3, N, and the receiver public key e1, N may be generated in the following manner. First, a prime number p = 2p '+ 1, a prime q = 2q' + 1, where p 'and q' are prime numbers, and p and q are different prime numbers. Let phi (phi) (N) = (p-1) * (q-1) be N (common factor) = p * q. The exponents e1, e2, and e3 of each public key are an integer that is greater than 1 and less than or equal to phi (N), and is different from py (N) (indicating that there is no common divisor except for 1 between multiple numbers) And it is preferable to make the number of the data to be an odd number so that all data (for example, an identifier) can be used as a key value. If the exponents e1, e2, and e3 are set to an odd number, all kinds of identifiers can be used as public keys.

물론, 선택된 지수 e1, e2, e3로부터, d = 1/e mod Φ(phi)(N)을 만족하는 수 d를 계산한다. 이와 같이 하여 계산된 d는 비밀키(개인키)가 된다. 즉, e1을 근거로 만들어진 d는 수신측 단말기(30)의 비밀키가 될 수 있고, e2를 근거로 만들어진 d는 송신측 단말기(20)의 비밀키가 될 수 있고, e3를 근거로 만들어진 d는 발행사 단말기(10)의 비밀키가 될 수 있다.Of course, from the selected exponents e1, e2, and e3, a number d that satisfies d = 1 / e mod? (Phi) (N) is calculated. The d thus calculated becomes a secret key (private key). That is, d made on the basis of e1 can be the secret key of the receiving terminal 30, d made on the basis of e2 can be the secret key of the transmitting terminal 20, and d May be the secret key of the issuer terminal 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)이 나오지 않게 된다.The reason why the public key should be an odd number is as follows. (N) = (p-1) * (q-1), the public key e ( e1, e2, and e3 must have a relationship of "small" with Φ (phi) (N) (principle of RSA cryptography). The secret key d is defined as the reciprocal of the public key e, d = 1 / e mod Φ (phi) (N). If e and Φ (phi) (N) (1 / e) will not appear.

상기의 예시에서 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)과 "서로 소"가 되기 때문이다.(Phi) (N) = (p-1) (1) is obtained again by taking the example as p = 2 * p '+ 1 and q = 2 * q' + 1 in the above example, ) * (q * 1) = (2 * p '+ 1-1) * (2 * q' + 1-1) = '. That is, Φ (phi) (N) is always a multiple of 4. Therefore, to select the public key e that will always be "small" with phi (phi) (N), we make odd number e. When e is an odd number by the F function, it is always "small" with Φ (phi) (N) which is a multiple of 4.

그리고, 단사함수는 모든 조건에서, 그리고 해시함수는 특정 조건에서 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) 등으로 정의할 수 있다.And, the unison function is a function that makes x1! = X2 ==> F (x1)! = F (x2) under all conditions and the hash function under certain conditions. That is, the public key e is different for each user identifier. If the user identifiers are different and the public keys are the same, it is impossible to identify them as different users. For example, in the case of F (x) = x2 (not a monotone function), if the identifier of A is -1 and the identifier of B is 1, the public key becomes equal to 1. F (x) = 2 * x + 1, F (X) = 2 * logx + 1, F Can be defined.

상술한 수신측 단말기(30)는 난수 생성부(31), 수신키 저장부(32), 금액 저장부(33), 프로세스 처리부(34), 및 인터페이스부(35)를 포함한다.The receiving terminal 30 includes a random number generating unit 31, a receiving key storing unit 32, a money storing unit 33, a process processing unit 34, and an interface unit 35.

난수 생성부(31)는 난수(R)를 생성할 수 있다. 여기서, 난수(R)를 생성하는 방법은 종래의 각종 난수 생성 방식 중 어느 하나 이상을 이용할 수 있다.The random number generation unit 31 can generate the random number R. [ Here, the method of generating the random number R may use any one or more of various conventional random number generation methods.

수신키 저장부(32)는 수신측 단말기(30)의 비밀키를 저장한다. The reception key storage unit 32 stores the secret key of the reception-side terminal 30.

금액 저장부(33)는 송신측 단말기(20)에게로 요구하거나 요구할 금액 정보 및 송신측 단말기(20)로부터 소정의 금액을 수취함에 따른 갱신 정보 등을 저장한다.The amount storage unit 33 stores the amount information requested or requested by the transmitting terminal 20 and the updated information upon receipt of a predetermined amount from the transmitting terminal 20. [

필요에 따라, 수신키 저장부(32) 및 금액 저장부(33)는 해당 수신측 단말기(30)의 USIM(universal subscriber identity module) 또는 트러스트존(trust zone)에 위치시키는 것이 바람직하다. USIM 또는 트러스트존은 사용자가 접근불가능한 메모리 영역이라고 할 수 있다. 수신측 비밀키 및 금액은 보안에 민감한 정보이다. 수신키 저장부(32) 및 금액 저장부(33)를 USIM 또는 트러스트존에 위치시키게 되면 수신측 비밀키 및 금액에 대한 해커 등의 접근을 차단할 수 있다. The receiving key storage unit 32 and the amount storage unit 33 may be located in a universal subscriber identity module (USIM) or a trust zone of the corresponding receiving terminal 30. [ A USIM or a trust zone can be said to be a memory area inaccessible to the user. The receiving secret key and the amount are security sensitive information. When the reception key storage unit 32 and the money storage unit 33 are located in the USIM or the trust zone, access to the secret key of the reception side and the amount of money by the hacker or the like can be blocked.

프로세스 처리부(34)는 수신측 단말기(30)의 전체적인 동작을 제어한다.The process processing unit 34 controls the overall operation of the receiving side terminal 30.

프로세스 처리부(34)는 송신측 단말기(20)로부터 지불받아야 할 금액(A)을 지정하고, 지정된 금액(A)과 난수 생성부(31)로부터의 난수(R)를 연접(concatenation)시킨 데이터(A∥R)를 수신측 비밀키로 암호화하여 제 1 암호문을 생성할 수 있다.The process processing unit 34 designates the amount A to be paid from the transmitting terminal 20 and transmits data (A) obtained by concatenating the specified amount A and the random number R from the random number generating unit 31 A? R) with the secret key of the receiving side to generate the first cipher text.

프로세스 처리부(34)는 인터페이스부(35)를 통해 제 1 암호문을 송신측 단말기(20)에게로 전송한다.The process processing unit 34 transmits the first cipher text to the transmitting terminal 20 via the interface unit 35. [

한편, 프로세스 처리부(34)는 송신측 단말기(20)를 거쳐 인터페이스부(35)를 통해 수신한 발행사 단말기(10)로부터의 제 3 암호문을 복호화할 수 있다. 이때, 프로세스 처리부(34)는 제 3 암호문을 발행측 비밀키에 상응하는 발행측 공개키 및 수신측 비밀키에 상응하는 수신측 공개키로 복호화한다. Meanwhile, the process processing unit 34 can decrypt the third cipher text received from the issuer terminal 10 via the interface unit 35 via the transmitting terminal 20. At this time, the process processing unit 34 decrypts the third cipher text with the issuing public key corresponding to the issuing secret key and the receiving public key corresponding to the receiving secret key.

그리고, 프로세스 처리부(34)는 복호화한 결과(예컨대, 복호문)의 금액(A') 및 난수(R')가 제 1 암호문 생성시 사용하였던 금액(A) 및 난수(R)와 일치하는지를 판단한다. The process processor 34 judges whether or not the amount A 'and the random number R' of the decoded result (for example, a decrypted message) coincide with the amount A and the random number R used in generating the first ciphertext do.

프로세스 처리부(34)는 판단 결과에 따라 금액 저장부(33)를 갱신하여 거래를 완료할 수 있다.The process processing unit 34 can update the amount storage unit 33 according to the determination result to complete the transaction.

인터페이스부(35)는 송신측 단말기(20)와의 유무선 통신을 수행할 수 있다.The interface unit 35 can perform wire / wireless communication with the transmitting terminal 20.

인터페이스부(35)는 프로세스 처리부(34)에서 생성한 제 1 암호문을 송신측 단말기(20)에게로 전송하고, 송신측 단말기(20)를 거친 제 3 암호문을 수신할 수 있다.The interface unit 35 can transmit the first cipher text generated by the process processing unit 34 to the transmitting terminal 20 and receive the third cipher text transmitted through the transmitting terminal 20. [

여기서, 인터페이스부(35)는 송신측 단말기(20)와 와이파이 통신, 블루투스 통신, NFC(Near Field Communication; NFC) 등의 통신을 수행할 수 있는 통신모듈(도시 생략) 등을 포함한다. 한편, 인터페이스부(35)는 제 1 암호문을 QR코드를 이용하여 전송할 수도 있다.The interface unit 35 includes a communication module (not shown) that can perform communication such as Wi-Fi communication, Bluetooth communication, NFC (Near Field Communication) and the like with the transmitting terminal 20. On the other hand, the interface unit 35 may transmit the first cipher text using the QR code.

도 1에서는 프로세스 처리부(34) 및 인터페이스부(35)를 각각 독립되게 구성시켰으나, 필요에 따라서는 인터페이스부(35)가 프로세스 처리부(34)에 포함되는 것으로 하여도 무방하다.1, the process processing unit 34 and the interface unit 35 are independently configured. However, the interface unit 35 may be included in the process processing unit 34 as needed.

이번에는, 본 발명의 실시예에 따른 전자화폐 거래 방법에 대해 도 2의 흐름도를 참조하여 설명한다.Hereinafter, an electronic money transaction method according to an embodiment of the present invention will be described with reference to the flowchart of Fig.

일단, 수신측 단말기(30)가 송신측 단말기(20)로부터 지불받아야 할 금액(A)을 지정하고, 그에 대한 난수(R)를 생성한다(S10).The receiving side terminal 30 designates the amount A to be paid from the transmitting side terminal 20 and generates a random number R therefor (S10).

이후, 수신측 단말기(30)는 금액(A)과 난수(R)를 연접(concatenation)시킨 데이터(A∥R)(즉, 시퀀스)를 수신측 비밀키로 암호화하여 제 1 암호문(E1)을 생성한다(S12). 제 1 암호문(E1)을 생성할 때 공통 인자(N)가 이용될 것이다.The receiving side terminal 30 generates the first cipher text E1 by encrypting the data A∥R (i.e., sequence) in which the amount A and the random number R are concatenated with the receiving side secret key (S12). A common factor (N) will be used when generating the first cipher text (E1).

그리고 나서, 수신측 단말기(30)는 제 1 암호문(E1)을 송신측 단말기(20)에게로 전달한다(S14).Then, the receiving-side terminal 30 transmits the first cipher text E1 to the transmitting-side terminal 20 (S14).

그에 따라, 송신측 단말기(20)는 수신한 제 1 암호문(E1)을 송신측 비밀키로 암호화하여 제 2 암호문(E2)를 생성한다(S16). 제 2 암호문(E2)을 생성할 때 공통 인자(N)가 이용될 것이다.Accordingly, the transmitting terminal 20 encrypts the received first cipher text E1 with the transmitting secret key to generate the second cipher text E2 (S16). A common factor (N) will be used when generating the second cipher text (E2).

그리고 나서, 송신측 단말기(20)는 제 2 암호문(E2)을 발행사 단말기(10)에게로 전달한다(S18).Then, the transmitting terminal 20 transmits the second cipher text E2 to the issuing company terminal 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)가 이용될 것이다.Accordingly, the issuer terminal 10 decrypts the second cipher text E2 with the transmission side public key and the reception side public key. That is, the issuer terminal 10 first decrypts the second cipher text E2 with the transmission side public key corresponding to the transmission side secret key, and transmits the decoding result (for example, the decryption message) to the receiving side corresponding to the receiving side secret key Decrypts it with the public key. With this decryption, the issuer terminal 10 can extract the amount A in the decrypted text for the second cipher text E2, and updates the amount storage unit 12 based on the extracted amount A. Through this decryption procedure, the issuer terminal 10 can accurately grasp the amount requested by the receiving terminal 30 to the transmitting terminal 20. [ Then, the issuer terminal 10 encrypts the second cipher text E2 with the issuer secret key of the issuer terminal 10 to generate a third cipher text E3 (S20). A common factor (N) will be used when generating the third cipher text (E3).

상기의 단계 S20에서, 송신측 공개키 및 수신측 공개키는 F함수에 의해 홀수로 생성된 것으로 한다. 즉, 모든 종류의 식별자를 공개키의 키값으로 사용할 수 있게 하기 위해서, 송신측 공개키 및 수신측 공개키는 홀수로 생성하는 것이 바람직하다. F함수는 모든 입력값에 대해 홀수를 출력하는 단사함수 또는 해쉬함수이다.In step S20, it is assumed that the transmission side public key and the reception side public key are generated in an odd number by the F function. That is, in order to use all kinds of identifiers as key values of the public key, it is preferable to generate the transmitting public key and the receiving public key in an odd number. The F function is a hash function or hash function that outputs an odd number for all input values.

이후, 발행사 단말기(10)는 제 3 암호문(E3)을 송신측 단말기(20)에게로 전송한다(S22). Then, the issuer terminal 10 transmits the third cipher text E3 to the transmitting terminal 20 (S22).

송신측 단말기(20)는 제 3 암호문(E3)을 수신측 단말기(30)에게로 전달한다(S24).The transmitting terminal 20 transmits the third cipher text E3 to the receiving terminal 30 (S24).

수신측 단말기(30)는 제 3 암호문(E3)을 복호화한다. 이때, 수신측 단말기(30)는 제 3 암호문(E3)을 송식측 비밀키에 상응하는 송신측 공개키 및 발행측 비밀키에 상응하는 발행측 공개키로 복호화한다. 즉, 수신측 단말기(30)는 먼저 송신측 비밀키에 상응하는 송신측 공개키로 제 3 암호문(E3)을 복호화하고, 그 복호화 결과(예컨대, 복호문)를 재차 발행측 비밀키에 상응하는 발행측 공개키로 복호화한다. 그리고, 수신측 단말기(30)는 최종적으로 복호화한 결과에 포함된 금액(A') 및 난수(R')가 제 1 암호문 생성시 사용하였던 금액(A) 및 난수(R)와 일치하는지를 판단한다. 판단 결과, 모두 일치하면 금액 저장부(33)를 갱신한 후 거래를 완료한다(S26). 여기서, 금액 저장부(33)의 갱신 및 거래 완료라 함은 해당 금액을 수취하고 금액 저장부(33)의 금액 정보를 갱신함을 의미할 수 있다. The receiving side terminal 30 decrypts the third cipher text E3. At this time, the receiving-side terminal 30 decrypts the third cipher text E3 with the issuing-side public key corresponding to the sending-side public key and the issuing-side private key corresponding to the sending-side private key. That is, the receiving side terminal 30 first decrypts the third cipher text E3 with the transmitting side public key corresponding to the transmitting side secret key, and sends the decryption result (e.g., decrypted message) again to the issuing side corresponding to the issuing side secret key Side public key. The receiving side terminal 30 determines whether the amount A 'and the random number R' contained in the final decoding result coincide with the amount A and the random number R used in generating the first ciphertext . If the result of the determination is affirmative, the transaction storage unit 33 is updated and the transaction is completed (S26). Here, the update of the amount storage unit 33 and the completion of the transaction may mean receiving the corresponding amount and updating the amount information of the amount storage unit 33.

상기의 단계 S26에서, 송신측 공개키 및 발행측 공개키는 F함수에 의해 홀수로 생성된 것으로 한다. 즉, 모든 종류의 식별자를 공개키의 키값으로 사용할 수 있게 하기 위해서, 송신측 공개키 및 발행측 공개키는 홀수로 생성하는 것이 바람직하다. F함수는 모든 입력값에 대해 홀수를 출력하는 단사함수 또는 해쉬함수이다.In the above step S26, it is assumed that the transmitting side public key and the issuing side public key are generated in an odd number by the F function. That is, in order to use all kinds of identifiers as the key value of the public key, it is preferable that the transmitting public key and the issuing public key are generated in an odd number. The F function is a hash function or hash function that outputs an odd number for all input values.

한편으로, 수신측 단말기(30)에서의 복호화한 결과에 포함된 금액(A') 및 난수(R')가 제 1 암호문 생성시 사용하였던 금액(A) 및 난수(R)와 일치하지 않으면 해당 금액을 수취하지 않게 된다.On the other hand, if the amount A 'and the random number R' included in the decrypted result at the receiving terminal 30 do not match the amount A and the random number R used in generating the first ciphertext, You will not receive the money.

상술한 본 발명의 실시예에 따르면, 수신측에서 지불받을 금액(A)을 지정하고 그에 대한 난수를 생성하여 거래를 시작할 수 있다. According to the embodiment of the present invention described above, the amount A to be paid at the receiving side can be specified, and a random number can be generated to start the transaction.

즉, 거래의 시발점이 발행사 단말기(10) 및 송신측 단말기(20)가 아니라, 수신측 단말기(30)가 거래의 시발점이 되어 거래를 위한 정보를 생성하고, 발행측 공개키와 송신측 공개키 및 수신측 공개키는 동일한 공통 인자(N)를 이용하므로, 검증을 위해 CA(CA; Certification Authority)(인증기관), RA(Registration Authority)와 같은 서버에 공개키 인증을 문의할 필요도 없고, 단말기에서 즉각적으로 검증할 수 있으므로 매우 효율적이라고 할 수 있다.That is, the starting point of the transaction is not the issuer terminal 10 and the transmitting terminal 20, but the receiving terminal 30 is the starting point of the transaction and generates information for the transaction, and the issuing public key and the transmitting public key And the receiving side public key use the same common factor N, there is no need to inquire public key authentication to a server such as CA (Certification Authority) (CA) or RA (Registration Authority) It is very efficient because it can be verified immediately by the terminal.

그리고, 모든 금액(A)에 대하여 난수가 일대일로 대응되어 있으므로, 수신측에서 복호화한 결과 해당 금액(A)에 대한 난수가 처음 생성하였던 난수와 비교하여 상이하면 거래를 하지 않으므로, 금액에 대한 인증이 수월할 뿐만 아니라 이중 지불의 문제를 해결할 수 있다.Since the random numbers are associated with all the amounts A in a one-to-one correspondence, if the random number of the corresponding amount A is compared with the first random number generated as a result of decoding at the receiving end, This is not only straightforward, but also solves the problem of double payment.

또한, 상술한 본 발명의 전자화폐 거래 방법은, 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플라피디스크, 광데이터 저장장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 상기 방법을 구현하기 위한 기능적인(function) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.In addition, the above-described electronic money transaction method of the present invention can be implemented as a computer-readable code on a computer-readable recording medium. A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. Examples of the computer-readable recording medium include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like. The computer readable recording medium may also be distributed over a networked computer system so that computer readable code can be stored and executed in a distributed manner. And, functional programs, codes and code segments for implementing the above method can be easily inferred by programmers of the technical field to which the present invention belongs.

이상에서와 같이 도면과 명세서에서 최적의 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로, 본 기술 분야의 통상의 지식을 가진자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 청구범위의 기술적 사상에 의해 정해져야 할 것이다.As described above, an optimal embodiment has been disclosed in the drawings and specification. While specific terms have been employed herein, they are used for the purpose of describing the invention only and are not used to limit the scope of the invention as defined in the claims or the claims. Therefore, those skilled in the art will appreciate that various modifications and equivalent embodiments are possible without departing from the scope of the present invention. Accordingly, the true scope of the present invention should be determined by the technical idea of the appended claims.

10 : 발행사 단말기
11 : 발행키 저장부
12, 33 : 금액 저장부
13, 22, 34 : 프로세스 처리부
14, 23, 35 : 인터페이스부
20 : 송신측 단말기
21 : 송신키 저장부
30 : 수신측 단말기
31 : 난수 생성부
32 : 수신키 저장부
10: Issuer terminal
11: issued key storage unit
12, 33: an amount storage unit
13, 22, 34: process processor
14, 23, 35:
20: transmitting side terminal
21: Transmission key storage unit
30: Receiving terminal
31:
32: Receive key storage unit

Claims (18)

수신측 모듈이, 요구할 전자화폐의 금액을 지정하고 난수를 생성하는 단계;
상기 수신측 모듈이, 상기 금액 및 상기 난수를 근거로 제 1 암호문을 생성하는 단계;
송신측 모듈이, 상기 제 1 암호문을 근거로 제 2 암호문을 생성하는 단계;
발행측 모듈이, 상기 제 2 암호문을 송신측 공개키와 수신측 공개키로 복호화하는 단계;
상기 발행측 모듈이, 상기 제 2 암호문을 근거로 제 3 암호문을 생성하는 단계;
상기 수신측 모듈이, 상기 제 3 암호문을 송신측 공개키와 발행측 공개키로 복호화하는 단계; 및
상기 수신측 모듈이, 상기 제 3 암호문을 복호화한 결과가 상기 금액 및 상기 난수와 일치하는 지를 판단하는 단계;를 포함하고,
상기 송신측 공개키와 상기 발행측 공개키 및 상기 수신측 공개키는 F함수에 의해 홀수로 생성되는 것을 특징으로 하는 전자화폐 거래 방법.
Designating an amount of electronic money to be requested by the receiving side module and generating a random number;
The receiving module generating a first ciphertext based on the amount and the random number;
The transmitting module generating a second cipher text based on the first cipher text;
The issuing side module decrypting the second cipher text with the transmitting public key and the receiving public key;
The issuer-side module generating a third ciphertext based on the second ciphertext;
The receiving module decrypting the third cipher text with a transmitting public key and a issuing public key; And
And a step in which the receiving module determines whether the result of decoding the third cipher text matches the amount and the random number,
Wherein the transmitting side public key, the issuing side public key, and the receiving side public key are generated in an odd number by an F function.
청구항 1에 있어서,
상기 F함수는 모든 입력값에 대해 홀수를 출력하는 단사함수 또는 해쉬함수인 것을 특징으로 하는 전자화폐 거래 방법.
The method according to claim 1,
Wherein the F function is a single function or a hash function that outputs an odd number for all input values.
청구항 1에 있어서,
상기 송신측 공개키와 상기 발행측 공개키 및 상기 수신측 공개키는 상호 동일한 공통 인자(N)(N = p*q, p = 2p' + 1, q = 2q' + 1(p' 및 q'는 소수이고, p 및 q는 서로 다른 소수))를 사용하는 것을 특징으로 하는 전자화폐 거래 방법.
The method according to claim 1,
The transmitting side public key, the issuing side public key, and the receiving side public key have the same common factor N (N = p * q, p = 2p '+ 1, q = 2q' + 1 Is a prime number, and p and q are different prime numbers).
청구항 1에 있어서,
상기 제 2 암호문을 송신측 공개키와 수신측 공개키로 복호화하는 단계는,
복호화에 따른 금액을 추출하여 상기 발행측 모듈내의 금액 저장부의 정보를 갱신하는 단계;를 포함하는 것을 특징으로 하는 전자화폐 거래 방법.
The method according to claim 1,
The step of decrypting the second cipher text with the transmitting public key and the receiving public key includes:
And a step of extracting an amount corresponding to the decryption and updating the information of the amount storage unit in the issuing side module.
청구항 1에 있어서,
상기 제 3 암호문은 상기 송신측 모듈을 거쳐 상기 수신측 모듈에게로 전달되는 것을 특징으로 하는 전자화폐 거래 방법.
The method according to claim 1,
And the third ciphertext is transmitted to the receiver module via the transmitter module.
청구항 1에 있어서,
상기 제 3 암호문을 복호화한 결과가 상기 금액 및 상기 난수와 일치하는 지를 판단하는 단계는,
상기 제 3 암호문을 복호화한 결과가 상기 금액 및 상기 난수와 일치하면 상기 복호화에 따른 금액을 근거로 상기 수신측 모듈내의 금액 저장부의 정보를 갱신하는 단계;를 포함하는 것을 특징으로 하는 전자화폐 거래 방법.
The method according to claim 1,
Wherein the step of determining whether the decryption result of the third cipher text matches the amount and the random number includes:
And updating the information of the amount storage unit in the receiver module based on the decrypted amount when the result of decoding the third cipher text matches the amount and the random number. .
청구항 1 내지 청구항 6 중 어느 하나의 청구항에 기재된 전자화폐 거래 방법을 수행하기 위한 컴퓨터 프로그램이 기록된 컴퓨터 판독가능한 기록매체.A computer-readable recording medium on which a computer program for performing the electronic money transaction method according to any one of claims 1 to 6 is recorded. 청구항 1 내지 청구항 6 중 어느 하나의 청구항에 기재된 전자화폐 거래 방법을 수행하기 위한 컴퓨터 판독가능한 기록매체에 저장된 컴퓨터 프로그램.A computer program stored in a computer-readable recording medium for performing the electronic money transaction method according to any one of claims 1 to 6. 발행측 모듈이 발행하는 전자화폐에 대해 수신측 모듈이 요구하고 송신측 모듈이 지불하는 거래 시스템으로서,
상기 수신측 모듈은,
난수를 생성하는 난수 생성부;
수신측 비밀키를 저장하는 수신키 저장부; 및
상기 요구한 금액 및 상기 난수를 상기 수신측 비밀키로 암호문을 생성하여 상기 송신측 모듈에게로 전송하고, 상기 암호문이 상기 송신측 모듈 및 상기 발행사 모듈을 거치면서 순차적으로 암호화됨에 따른 최종의 암호문을 수신하여 송신측 공개키 및 발행측 공개키로 복호화하고, 상기 최종의 암호문을 복호화한 결과가 상기 금액 및 상기 난수와 일치하는 지를 판단하는 프로세스 처리부;를 포함하고,
상기 송신측 공개키 및 상기 발행측 공개키는 F함수에 의해 홀수로 생성되는 것을 특징으로 하는 전자화폐 거래 시스템.
A trading system which is requested by the receiving side module for the electronic money issued by the issuing side module and paid by the transmitting side module,
Wherein the receiving-
A random number generator for generating a random number;
A receiving key storage unit for storing a receiving side secret key; And
Generates a ciphertext using the receiving secret key, and transmits the encrypted ciphertext to the transmitting module, and receives the final ciphertext according to the ciphertext being sequentially encrypted through the transmitting module and the issuer module And decrypting the decrypted cipher text using the transmission side public key and the issuing side public key, and determining whether the result of decoding the final cipher text matches the amount and the random number,
Wherein the transmitting side public key and the issuing side public key are generated in an odd number by an F function.
청구항 9에 있어서,
상기 F함수는 모든 입력값에 대해 홀수를 출력하는 단사함수 또는 해쉬함수인 것을 특징으로 하는 전자화폐 거래 시스템.
The method of claim 9,
Wherein the F function is a monotone function or a hash function that outputs an odd number with respect to all input values.
청구항 9에 있어서,
상기 송신측 공개키 및 상기 발행측 공개키는 상호 동일한 공통 인자(N)(N = p*q, p = 2p' + 1, q = 2q' + 1(p' 및 q'는 소수이고, p 및 q는 서로 다른 소수))를 사용하는 것을 특징으로 하는 전자화폐 거래 시스템.
The method of claim 9,
The transmitting side public key and the issuing side public key have the same common factor N (N = p * q, p = 2p '+ 1, q = 2q' + 1 And q are different prime numbers).
청구항 11에 있어서,
상기 발행측 모듈은,
상기 수신측 모듈에서의 암호문이 상기 송신측 모듈에서 재차 암호화됨에 따라 상기 재차 암호화된 암호문을 송신측 공개키 및 수신측 공개키로 복호화하여 금액을 추출하되,
상기 수신측 공개키는 F함수에 의해 홀수로 생성되고, 상기 F함수는 모든 입력값에 대해 홀수를 출력하는 단사함수 또는 해쉬함수이고,
상기 수신측 공개키는 상기 송신측 공개키 및 상기 발행측 공개키가 사용하는 공통 인자(N)를 사용하는 것을 특징으로 하는 전자화폐 거래 시스템.
The method of claim 11,
The issuer-
Side cryptographic module decrypts the encrypted ciphertext with the transmitting-side public key and the receiving-side public key to extract the amount of the encrypted ciphertext according to the ciphertext in the receiving-side module being re-encrypted in the transmitting-side module,
The receiving side public key is generated in an odd number by an F function, and the F function is a single function or a hash function that outputs an odd number with respect to all input values,
Wherein the receiving side public key uses a common factor (N) used by the transmitting side public key and the issuing side public key.
청구항 9에 있어서,
상기 수신키 저장부는,
해당 수신측 모듈의 USIM(universal subscriber identity module) 또는 트러스트존(trust zone)에 위치하는 것을 특징으로 하는 전자화폐 거래 시스템.
The method of claim 9,
The reception key storage unit stores,
Is located in a universal subscriber identity module (USIM) or a trust zone of the corresponding receiving-side module.
발행측 모듈이 발행하는 전자화폐에 대해 수신측 모듈이 요구하고 송신측 모듈이 지불하는 거래 시스템으로서,
상기 발행측 모듈은,
발행측 비밀키를 저장하는 발행키 저장부; 및
상기 수신측 모듈에서 요구한 금액 및 상기 수신측 모듈에서 생성된 난수를 근거로 하는 제 1 암호문이 상기 송신측 모듈에서 제 2 암호문으로 암호화되어 수신됨에 따라 상기 제 2 암호문을 송신측 공개키와 수신측 공개키로 복호화하고, 상기 제 2 암호문을 상기 발행측 비밀키로 제 3 암호문을 생성하여 상기 송신측 모듈을 거쳐 상기 수신측 모듈에게로 전송하는 프로세스 처리부;를 포함하고,
상기 송신측 공개키 및 상기 수신측 공개키는 F함수에 의해 홀수로 생성되는 것을 특징으로 하는 전자화폐 거래 시스템.
A trading system which is requested by the receiving side module for the electronic money issued by the issuing side module and paid by the transmitting side module,
The issuer-
A issuing key storage unit for storing the issuing secret key; And
The first ciphertext based on the amount requested by the receiving module and the random number generated by the receiving module is encrypted with the second ciphertext in the transmitting module and the second ciphertext is received with the transmitting public key And a process processor for generating a third cipher text using the issuing secret key and transmitting the second cipher text to the receiving module via the transmitting module,
Wherein the transmission side public key and the reception side public key are generated in an odd number by an F function.
청구항 14에 있어서,
상기 F함수는 모든 입력값에 대해 홀수를 출력하는 단사함수 또는 해쉬함수인 것을 특징으로 하는 전자화폐 거래 시스템.
15. The method of claim 14,
Wherein the F function is a monotone function or a hash function that outputs an odd number with respect to all input values.
청구항 14에 있어서,
상기 프로세스 처리부는 상기 송신측 모듈 및 상기 수신측 모듈에서 공통으로 사용가능한 공통 인자를 생성하여 제공하고,
상기 송신측 공개키 및 상기 수신측 공개키는 상기 공통 인자를 동일하게 사용하되, 상기 공통 인자는 N = p*q, p = 2p' + 1, q = 2q' + 1(p' 및 q'는 소수이고, p 및 q는 서로 다른 소수, N은 공통 인자)로 구해지는 것을 특징으로 하는 전자화폐 거래 시스템.
15. The method of claim 14,
Wherein the process processor generates and provides a common factor that can be commonly used by the transmitting module and the receiving module,
Wherein the common key and the common key are identical to each other, the common key and the common key are N = p * q, p = 2p '+ 1, q = 2q' Is a prime number, p and q are different prime numbers, and N is a common factor).
청구항 16에 있어서,
상기 수신측 모듈은 상기 제 3 암호문을 송신측 공개키와 발행측 공개키로 복호화한 결과가 상기 금액 및 상기 난수와 일치하는 지를 판단하고,
상기 발행측 공개키는 F함수에 의해 홀수로 생성되고, 상기 F함수는 모든 입력값에 대해 홀수를 출력하는 단사함수 또는 해쉬함수이고,
상기 발행측 공개키는 상기 송신측 공개키 및 상기 수신측 공개키가 사용하는 공통 인자를 사용하는 것을 특징으로 하는 전자화폐 거래 시스템.
18. The method of claim 16,
Wherein the receiving module determines whether the result of decoding the third cipher text by the transmitting public key and the issuing public key matches the amount and the random number,
The issuing public key is generated in an odd number by an F function, and the F function is a single function or a hash function that outputs an odd number with respect to all input values,
Wherein the issuing-side public key uses a common factor used by the transmitting-side public key and the receiving-side public key.
청구항 14에 있어서,
상기 발행키 저장부는,
해당 발행측 모듈의 USIM(universal subscriber identity module) 또는 트러스트존(trust zone)에 위치하는 것을 특징으로 하는 전자화폐 거래 시스템.
15. The method of claim 14,
The issuing key storage unit stores,
And is located in a universal subscriber identity module (USIM) or a trust zone of the issuer-side module.
KR1020170014724A 2017-02-02 2017-02-02 Method and system for processing transaction of electronic cash KR20180089951A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170014724A KR20180089951A (en) 2017-02-02 2017-02-02 Method and system for processing transaction of electronic cash

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170014724A KR20180089951A (en) 2017-02-02 2017-02-02 Method and system for processing transaction of electronic cash

Publications (1)

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

Family

ID=63229662

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170014724A KR20180089951A (en) 2017-02-02 2017-02-02 Method and system for processing transaction of electronic cash

Country Status (1)

Country Link
KR (1) KR20180089951A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111476572A (en) * 2020-04-09 2020-07-31 财付通支付科技有限公司 Data processing method and device based on block chain, storage medium and equipment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100358426B1 (en) 1998-08-18 2003-01-29 한국전자통신연구원 Electronic Cash Transaction Method
KR101233925B1 (en) 2011-05-31 2013-02-15 삼성에스디에스 주식회사 IBE and Digital Signature Apparatus and Method, and Server for Providing Secret key
KR101637854B1 (en) 2015-10-16 2016-07-08 주식회사 코인플러그 Certificate issuance system and method based on block chain, certificate authentication system and method based on block chain
KR101660627B1 (en) 2015-02-03 2016-09-28 한양대학교 에리카산학협력단 Method and apparatus for protecting transasction of encrypted currency

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100358426B1 (en) 1998-08-18 2003-01-29 한국전자통신연구원 Electronic Cash Transaction Method
KR101233925B1 (en) 2011-05-31 2013-02-15 삼성에스디에스 주식회사 IBE and Digital Signature Apparatus and Method, and Server for Providing Secret key
KR101660627B1 (en) 2015-02-03 2016-09-28 한양대학교 에리카산학협력단 Method and apparatus for protecting transasction of encrypted currency
KR101637854B1 (en) 2015-10-16 2016-07-08 주식회사 코인플러그 Certificate issuance system and method based on block chain, certificate authentication system and method based on block chain

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111476572A (en) * 2020-04-09 2020-07-31 财付通支付科技有限公司 Data processing method and device based on block chain, storage medium and equipment
CN111476572B (en) * 2020-04-09 2024-03-19 财付通支付科技有限公司 Block chain-based data processing method, device, storage medium and equipment

Similar Documents

Publication Publication Date Title
US11856104B2 (en) Methods for secure credential provisioning
US11588637B2 (en) Methods for secure cryptogram generation
CN106664206B (en) Efficient method for authenticated communication
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 (en) Data security devices and computer program
EP1277301B1 (en) Method for transmitting payment information between a terminal and a third equipement
CN102017578B (en) Network helper for authentication between a token and verifiers
CN107358441B (en) Payment verification method and system, mobile device and security authentication device
US10044684B2 (en) Server for authenticating smart chip and method thereof
KR101468626B1 (en) System for paying card of smart phone using key exchange with van server
CN101300808A (en) Method and arrangement for secure autentication
JP2004247799A (en) Information system for access controlling using public key certificate
Kisore et al. A secure SMS protocol for implementing digital cash system
KR20180089951A (en) Method and system for processing transaction of electronic cash
JP7211519B2 (en) Owner identity confirmation system, terminal and owner identity confirmation method
EP3185504A1 (en) Security management system for securing a communication between a remote server and an electronic device
WO2021019782A1 (en) Owner identity confirmation system and owner identity confirmation method
EP3035589A1 (en) Security management system for authenticating a token by a service provider server
WO2021019781A1 (en) Owner identity confirmation system, authentication station server, and owner identity confirmation method
KR20180089952A (en) Method and system for processing transaction of electronic cash
KR100649858B1 (en) System and method for issuing and authenticating of payphone smart card
JP7259578B2 (en) Authentication system and authentication method
Oliveira Dynamic QR codes for Ticketing Systems
CN115310976A (en) Non-contact transaction processing method, device and system
JP2005038222A (en) Financial system using ic card

Legal Events

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