KR101773073B1 - Method for allowing a transaction to be processed and server using the same - Google Patents
Method for allowing a transaction to be processed and server using the same Download PDFInfo
- Publication number
- KR101773073B1 KR101773073B1 KR1020160051945A KR20160051945A KR101773073B1 KR 101773073 B1 KR101773073 B1 KR 101773073B1 KR 1020160051945 A KR1020160051945 A KR 1020160051945A KR 20160051945 A KR20160051945 A KR 20160051945A KR 101773073 B1 KR101773073 B1 KR 101773073B1
- Authority
- KR
- South Korea
- Prior art keywords
- hash value
- value
- information
- specific
- representative
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
-
- G06K9/00597—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/02—Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
- G06Q20/4014—Identity check for transactions
- G06Q20/40145—Biometric identity checks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/02—Banking, e.g. interest calculation or account maintenance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/18—Eye characteristics, e.g. of the iris
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0861—Network architectures or network communication protocols for network security for authentication of entities using biometrical features, e.g. fingerprint, retina-scan
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Abstract
Description
본 발명은 거래를 지원하기 위한 방법 및 이를 사용한 인증 지원 서버에 관한 것으로, 좀더 상세하게는, 기존에 인증 지원 서버가 제1 특정 해쉬값 및 상기 제1 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값을 소정의 데이터 구조로서 데이터베이스에 등록하고 있는 상태에서, 인증 정보 사용 요청으로서 (1) 특정 사용자의 public key 및 (2) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값을 획득하고, (b) 상기 (1) 및 (2)에 대한 해쉬값인 제2 특정 해쉬값 및 상기 제2 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값 - 상기 적어도 하나의 이웃 해쉬값은 상기 소정의 데이터 구조를 참조로 하여 결정됨 - 을 연산함으로써 생성되는 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 데이터베이스에 등록된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, 상기 특정 사용자의 public key를 상기 생체 인증 서버에 전송하거나 상기 생체 인증 서버가 관리하고 있는 상기 특정 사용자의 public key를 사용하도록 하여 (i) 상기 생체 인증 서버가, 거래 정보의 해쉬값 또는 이를 가공한 값을 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명한 값을 상기 특정 사용자의 public key를 이용하여 검증하거나 검증하도록 지원하며, (ii) 상기 검증 결과에 대한 메시지를 전송하거나 전송하도록 지원하는 거래를 지원하기 위한 방법 및 이를 사용한 인증 지원 서버에 관한 것이다.The present invention relates to a method for supporting transactions and an authentication support server using the same, and more particularly, to an authentication support server using a method for supporting transactions and an authentication support server using at least one neighboring hash that matches the first specific hash value and the first specific hash value In a state in which a first representative hash value generated by computing a value or a value obtained by processing the first representative hash value is registered in a database as a predetermined data structure, (1) a public key of a specific user and (2) obtaining a hash value of the specific user information or a value obtained by processing the hash value of the specific user information, (b) comparing a second specific hash value, which is a hash value with the first specific hash value, A second representative hash value generated by computing at least one neighbor hash value, the at least one neighbor hash value being determined with reference to the predetermined data structure, If the value obtained by processing the table hash value corresponds to the value obtained by processing the first representative hash value or the first representative hash value registered in the database, the public key of the specific user is transmitted to the biometric authentication server, (I) the biometric authentication server transmits a hash value of the transaction information or a value obtained by processing the processed value to a private key corresponding to the biometric information of the specific user by using the public key of the specific user managed by the authentication server (Ii) supporting a transaction to support transmission or transmission of a message on the verification result, and an authentication support server using the method.
생체 인증 기술이란 지문, 홍채, 얼굴, 음성 등 개인의 고유한 생체 정보를 이용하여 인증을 수행하는 기술을 말한다. 생체 인증 기술은 고유한 생체 정보를 이용하므로 보안성이 높고 편리한 바, 최근 FIDO(Fast Identity Online)와 같은 생체 인증 기술을 접목한 사용자 인증 기술이 각광을 받고 있다. Biometric authentication technology refers to a technology that performs authentication using personal biometric information such as fingerprint, iris, face, and voice. Since biometric authentication technology utilizes unique biometric information, user authentication technology that combines biometric authentication technology such as FIDO (Fast Identity Online) is attracting attention because it is highly secure and convenient.
한편, 최근 가상 화폐의 블록체인 기술은 블록체인 상에 기록된 거래 내역의 위/변조가 불가능하므로 보안성이 중요시되는 금융산업분야에서 주목을 받고 있다. In recent years, the block chain technology of virtual money has been attracting attention in the financial industry field where security is important because transaction details recorded on the block chain can not be changed / modulated.
이에 발명자는 좀더 안전하게 금융 거래를 할 수 있도록 생체 인증 기술에 블록체인 기술을 접목시켜 PKI 기반으로 인증 정보를 생성하고 블록체인 상에 등록하여 관리할 수 있는 기술을 발명한 바 있다. Therefore, the inventor of the present invention has invented a technique for creating authentication information based on PKI and registering and managing the information on a block chain by applying a block chain technology to a biometric authentication technology so that a financial transaction can be performed more safely.
다만, 인증 정보를 등록할 필요가 있는 모든 경우에 블록체인에 접근하여 기록을 하는 것은 비효율적일 수 있다. 특히, transaction 요청이 많아졌을 때, 서비스 제공의 bottle neck 현상이 발생될 수 있고, 매번 transaction fee를 지불해야 하므로 서비스 운영에 많은 비용이 들 수 있는 우려가 있다.However, it may be inefficient to access and record the block chain in all cases where it is necessary to register authentication information. Especially, when there are many transaction requests, bottleneck phenomenon of service provision may occur and there is a concern that the transaction fee may be paid for each time a service operation is costly.
이에 발명자는 상기 발명을 보완하여 위/변조가 불가능하고 실시간으로 인증 정보를 기록할 수 있는 장점을 살리면서도 서비스 요청이 몰릴 경우에도 빠른 서비스 속도를 보장하고 비용도 절감할 수 있는 인증 정보를 등록할 수 있는 시스템을 발명하였다. 특히, 본 시스템은 소정의 데이터 구조를 통해 등록된 인증 정보를 이용하여 거래를 지원할 수 있다. Accordingly, the inventor of the present invention has the advantage of being able to record the authentication information in real time without supplementing the above-mentioned invention, and it is possible to register the authentication information which can guarantee the fast service speed and reduce the cost even when the service request is made Invented a system that can. In particular, the system can support transactions using registered authentication information through a predetermined data structure.
본 발명은 상술한 문제점들을 모두 해결하는 것을 그 목적으로 한다. SUMMARY OF THE INVENTION The present invention has been made to solve all the problems described above.
본 발명은 인증 지원 서버가 인증 정보 사용 요청으로서 (i) 특정 사용자의 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값을 획득하는 경우, 이에 대한 해쉬값인 특정 해쉬값 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연삼함으로써 생성되는 제1 대표 해쉬값 또는 이를 가공한 값이 기존에 소정의 데이터 구조 상에서 이와 동일한 방식으로 산출되어 데이터베이스에 등록된 제2 대표 해쉬값 또는 이를 가공한 값과 대응되는지 확인하고, 대응되는 경우, 생체 인증 서버가, 거래 정보의 해쉬값 또는 이를 가공한 값을 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명한 값을 상기 특정 사용자의 public key를 이용하여 검증하도록 지원함으로써 거래가 이루어지도록 지원하는 것을 다른 목적으로 한다.In the case where the authentication support server obtains (i) a public key of a specific user and (ii) a hash value of the specific user information or a value obtained by processing the hash value, a specific hash value A first representative hash value generated by digesting at least one neighboring hash value matched with the specific hash value or a value obtained by machining the first representative hash value is calculated in the same manner on a predetermined data structure, Value or a value obtained by processing the processed biometric information, and if the biometric authentication server matches the hashed value of the transaction information or the processed value with a private key corresponding to the biometric information of the specific user, The other purpose is to support the transaction by supporting the verification using the user's public key.
상기 목적을 달성하기 위한 본 발명의 대표적인 구성은 다음과 같다.In order to accomplish the above object, a representative structure of the present invention is as follows.
본 발명의 일 태양에 따르면, 거래를 지원하기 위한 방법에 있어서, (a) 기존에 인증 지원 서버가 제1 특정 해쉬값 및 상기 제1 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값을 소정의 데이터 구조로서 데이터베이스에 등록하고 있는 상태에서, 상기 인증 지원 서버가, 인증 정보 사용 요청으로서 (1) 특정 사용자의 public key 및 (2) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값을 획득하는 단계, 및 (b) 상기 (1) 및 (2)에 대한 해쉬값인 제2 특정 해쉬값 및 상기 제2 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값 - 상기 적어도 하나의 이웃 해쉬값은 상기 소정의 데이터 구조를 참조로 하여 결정됨 - 을 연산함으로써 생성되는 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 데이터베이스에 등록된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, 상기 인증 지원 서버가, 상기 특정 사용자의 public key를 상기 생체 인증 서버에 전송하거나 상기 생체 인증 서버가 관리하고 있는 상기 특정 사용자의 public key를 사용하도록 하여 (i) 상기 생체 인증 서버가, 거래 정보의 해쉬값 또는 이를 가공한 값을 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명한 값을 상기 특정 사용자의 public key를 이용하여 검증하거나 검증하도록 지원하며, (ii) 상기 검증 결과에 대한 메시지를 전송하거나 전송하도록 지원하는 단계를 포함하는 방법이 제공된다. According to one aspect of the present invention, there is provided a method for supporting a transaction, the method comprising: (a) previously calculating at least one neighboring hash value matching a first specific hash value and a first specific hash value In the state where the generated first representative hash value or the value obtained by processing the first representative hash value is registered in the database as a predetermined data structure, the authentication support server transmits (1) key and (2) obtaining a hash value of the specific user information or a value obtained by processing the hash value of the specific user information, and (b) obtaining a second specific hash value, A second representative hash value that is generated by computing at least one neighbor hash value matching the value of the at least one neighbor hash value with reference to the predetermined data structure, If the value obtained by processing the hash value corresponds to a value obtained by processing the first representative hash value or the first representative hash value registered in the database, the authentication support server transmits the public key of the specific user to the biometric authentication server (I) the biometric authentication server transmits a hash value of the transaction information or a value obtained by processing the hash value of the transaction information to the biometric information of the specific user corresponding to the biometric information of the specific user and (ii) supporting transmission or transmission of a message for the verification result. The present invention also provides a method for verifying a verification result of a verification result using a public key of a specific user.
본 발명의 다른 태양에 따르면, 거래를 지원하기 위한 인증 지원 서버에 있어서, 기존에 상기 인증 지원 서버가 제1 특정 해쉬값 및 상기 제1 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값을 소정의 데이터 구조로서 데이터베이스에 등록하고 있는 상태에서, 인증 정보 사용 요청으로서 (1) 특정 사용자의 public key 및 (2) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값을 획득하는 통신부, 및 상기 (1) 및 (2)에 대한 해쉬값인 제2 특정 해쉬값 및 상기 제2 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값 - 상기 적어도 하나의 이웃 해쉬값은 상기 소정의 데이터 구조를 참조로 하여 결정됨 - 을 연산함으로써 생성되는 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 데이터베이스에 등록된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, 상기 특정 사용자의 public key를 상기 생체 인증 서버에 전송하거나 상기 생체 인증 서버가 관리하고 있는 상기 특정 사용자의 public key를 사용하도록 하여 (i) 상기 생체 인증 서버가, 거래 정보의 해쉬값 또는 이를 가공한 값을 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명한 값을 상기 특정 사용자의 public key를 이용하여 검증하거나 검증하도록 지원하며, (ii) 상기 검증 결과에 대한 메시지를 전송하거나 전송하도록 지원하는 프로세서를 포함하는 인증 지원 서버가 제공된다. According to another aspect of the present invention, there is provided an authentication support server for supporting transactions, wherein the authentication support server computes at least one neighboring hash value matching the first specific hash value and the first specific hash value (1) a public key of a specific user, and (2) a public key of a specific user, as the authentication information use request, in the state where the generated first representative hash value or the value obtained by processing the first representative hash value is registered in the database as a predetermined data structure. And a communication unit for obtaining a hash value of the specific user information or a value obtained by processing the hash value of the specific user information, and a second specific hash value which is a hash value for the items (1) and (2) Value - the at least one neighboring hash value is determined with reference to the predetermined data structure, or a second representative hash value And transmitting the public key of the specific user to the biometric authentication server if the processed value corresponds to the value obtained by processing the first representative hash value or the first representative hash value registered in the database, (I) the biometric authentication server sends a value obtained by signing the hash value of the transaction information or a value obtained by processing the transaction value with a private key corresponding to the biometric information of the specific user, using the public key of the specific user (Ii) a processor for supporting the transmission or transmission of a message for the verification result.
본 발명에 의하면, 다음과 같은 효과가 있다.The present invention has the following effects.
또한, 본 발명은 인증 지원 서버가 인증 정보 사용 요청으로서 (i) 특정 사용자의 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값을 획득하는 경우, 이에 대한 해쉬값인 특정 해쉬값 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연삼함으로써 생성되는 제1 대표 해쉬값 또는 이를 가공한 값이 기존에 소정의 데이터 구조 상에서 이와 동일한 방식으로 산출되어 데이터베이스에 등록된 제2 대표 해쉬값 또는 이를 가공한 값과 대응되는지 확인하고, 대응되는 경우, 생체 인증 서버가, 거래 정보의 해쉬값 또는 이를 가공한 값을 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명한 값을 상기 특정 사용자의 public key를 이용하여 검증하도록 지원함으로써 거래가 이루어지도록 지원할 수 있는 효과가 있다. Further, in the present invention, when the authentication support server obtains (i) a public key of a specific user and (ii) a hash value of the specific user information or a value obtained by processing the hash value, And a value obtained by processing the first representative hash value or a value obtained by processing the first representative hash value are calculated in the same manner on a predetermined data structure and the second representative hash value generated by the second The biometric authentication server checks whether the hash value of the transaction information corresponds to the hash value or the processed value and if the biometric authentication server has signed the hash value of the transaction information or the processed value with the private key corresponding to the biometric information of the specific user It is possible to support transactions to be performed by supporting the verification using the public key of the specific user.
도 1은 본 발명의 일 실시예에 따른 인증 정보를 생성하고 등록하는 인증 지원 서버의 구성을 도시한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 인증 정보의 생성 및 등록 과정을 도시한 시퀀스다이어그램이다.
도 3은 본 발명의 일 실시예에 따른 인증 정보에 대한 파기 과정을 도시한 시퀀스다이어그램이다.
도 4는 본 발명의 다른 실시예에 따른 로그인 시 인증 정보를 사용하는 과정을 도시한 시퀀스다이어그램이다.
도 5는 본 발명의 또 다른 실시예에 따른 거래시 인증 정보를 사용하는 과정을 도시한 시퀀스다이어그램이다.
도 6 및 7은 본 발명의 일 실시예에 따라 생성된 머클 트리의 예를 도시한 도면이다.1 is a block diagram showing a configuration of an authentication support server for generating and registering authentication information according to an embodiment of the present invention.
2 is a sequence diagram illustrating a process of generating and registering authentication information according to an embodiment of the present invention.
3 is a sequence diagram illustrating a process of destroying authentication information according to an embodiment of the present invention.
FIG. 4 is a sequence diagram illustrating a process of using authentication information upon login according to another embodiment of the present invention.
FIG. 5 is a sequence diagram illustrating a process of using authentication information in a transaction according to another embodiment of the present invention.
6 and 7 are diagrams illustrating examples of a merge tree generated according to an embodiment of the present invention.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.The following detailed description of the invention refers to the accompanying drawings, which illustrate, by way of illustration, specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. It should be understood that the various embodiments of the present invention are different, but need not be mutually exclusive. For example, certain features, structures, and characteristics described herein may be implemented in other embodiments without departing from the spirit and scope of the invention in connection with an embodiment. It is also to be understood that the position or arrangement of the individual components within each disclosed embodiment may be varied without departing from the spirit and scope of the invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is to be limited only by the appended claims, along with the full scope of equivalents to which such claims are entitled, if properly explained. In the drawings, like reference numerals refer to the same or similar functions throughout the several views.
도 1은 본 발명의 일 실시예에 따른 인증 정보를 생성하고 등록하는 인증 지원 서버의 구성을 도시한 블록도이고, 도 2는 본 발명의 일 실시예에 따른 인증 정보의 생성 및 등록 과정을 도시한 시퀀스다이어그램이다. FIG. 1 is a block diagram illustrating a configuration of an authentication support server for generating and registering authentication information according to an embodiment of the present invention. FIG. 2 is a flowchart illustrating a process of generating and registering authentication information according to an exemplary embodiment of the present invention. It is a sequence diagram.
도 1을 참조하면, 본 발명의 일 실시예에 따른 인증 정보를 생성하고 등록하는 인증 지원 서버(100)는 프로세서(110) 및 통신부(120)를 포함한다. Referring to FIG. 1, an
프로세서(110)는, 은행 서버(400)로부터 인증 정보에 대한 등록 요청을 받은 생체 인증 서버(300)로부터 (i) 특정 사용자의 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값이 획득되면, 상기 public key의 등록 여부를 확인하는 구성이다. 생체 인증 서버(300)는 생체 정보를 통해 사용자 인증을 수행하는 장치로서, 예를 들어, FIDO 서버가 될 수 있다. The
도 2를 참조하면, 인증 정보를 생성하고 등록하는 과정은 사용자 단말(500)에서 특정 사용자의 public key가 생성되어 은행 서버(400)에 전달되는 과정부터 시작될 수 있다(S202). 이때, private key의 생성도 이루어질 수 있다. 특정 사용자는 미리 은행에 방문하여 특정 사용자 정보를 등록해 놓을 수 있고, 이를 통해 특정 사용자에 대해 인증이 이루어질 수 있다. 일 예로, 특정 사용자의 인증은, 상기 특정 사용자의 public key 외에 상기 특정 사용자 정보의 해쉬값이 획득되면, 상기 은행 서버(400)가 기 보유하고 있는 상기 특정 사용자 정보에 대한 해쉬값과 비교하여 서로 대응되는지에 따라 인증이 이루어질 수 있다. 여기서, 특정 사용자 정보는, 상기 특정 사용자의 이름(N), 생년월일(B), 휴대폰 번호(#), 이메일(E) 중 적어도 일부를 포함하여 해당 사용자를 식별할 수 있는 정보일 수 있다. 특정 사용자가 인증이 되면, 은행 서버(400)는, 상기 특정 사용자 정보의 해쉬값인 Uhash를 생체 인증 서버(300)에 전송할 수 있다(S204). 이때, 특정 사용자의 public key도 함께 전송이 이루어질 수 있다. Uhash를 이용하여 user id가 생성되는 경우, Uhash 대신에, 상기 user id 및 상기 Uhash의 해쉬값인 Idhash가 전송될 수도 있다. Idhash는 SHA256hash일 수 있다. 생체 인증 서버(300)는, (i) 상기 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값으로서 상기 Uhash 또는 상기 Uhash를 가공한 값을 인증 지원 서버(100)로 전송할 수 있다(S206). 이 경우 마찬가지로 Uhash를 가공한 값은, 상기 Uhash를 이용하여 user id가 생성되는 경우, 상기 user id 및 상기 Uhash의 해쉬값인 Idhash일 수 있다. 프로세서(110)는, 이렇게 (i) 특정 사용자의 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값이 획득되면, 로컬 데이터베이스(미도시)에서 상기 public key의 등록 여부를 확인한다(S208). 참고로, 사용자 단말(500)은 사용자 입/출력을 수행할 수 있는 단말 장치로서, 스마트폰, PC, 태블릿 PC, 기타 사용자 입/출력이 가능한 전자 장치 중 어느 하나가 될 수 있다. Referring to FIG. 2, the process of generating and registering authentication information can be started from a process in which a public key of a specific user is generated in the
통신부(120)는, 생체 인증 서버(300) 또는 데이터베이스(200)와 통신하는 구성이다. 여기서, 데이터베이스(200)는 가상화폐의 블록체인일 수 있다. The
상기 확인 결과, 상기 public key가 등록 상태이면(S210), 이미 인증 정보가 등록되어 있다는 의미이므로, 통신부(120)는, 생체 인증 서버(300)에 error 메시지를 전송할 수 있다(S212). error 메시지는 은행 서버(400)를 거쳐 사용자 단말(500)로 전달된다. If it is determined that the public key is registered (S210), the
이와 달리, 상기 확인 결과, 상기 public key가 미등록 상태이면, (i) 상기 특정 사용자의 public key 및 (ii) 상기 해쉬값 또는 이를 가공한 값을 output으로 하는 transaction을 생성하여 데이터베이스에 전송할 수 있다(S214, S216). 구체적으로, 상기 통신부(120)는, 상기 확인 결과, 상기 public key가 미등록 상태이면, (i) 상기 특정 사용자의 public key 및 (ii) 상기 해쉬값 또는 이를 가공한 값을 output1으로 하고(op_msg1 = pubkey:IDhash), 소정의 액수의 가상 화폐를 output2로 하는 transaction을 생성하여 데이터베이스에 전송할 수 있다. output2는 후술하는 바와 같이 인증 정보 파기용으로 사용될 수 있다. 즉, output2를 입력값으로 하는 새로운 transaction을 생성하여 데이터베이스(200)에 전송함으로써 인증 정보에 대한 파기가 이루어질 수 있다. Alternatively, if the public key is unregistered, a transaction that outputs (i) the public key of the specific user and (ii) the hash value or the processed value may be generated and transmitted to the database S214, S216). Specifically, if the public key is unregistered, the
또한, 통신부(120)는, 상기 transaction이 상기 데이터베이스(200) 상에 기록된 위치 정보를 나타내는 transaction ID를 획득하며(S218), 상기 생체 인증 서버(300)에 (i) 상기 public key 및 (ii) 상기 해쉬값 또는 이를 가공한 값이 정상적으로 등록되었음을 알리는 메시지를 전달(S220)할 수 있다. 상기 메시지는 은행 서버(400)를 거쳐 사용자 단말(500)에 전달된다. The
통신부(120)는 다양한 통신 기술로 구현될 수 있다. 즉, 와이파이(WIFI), WCDMA(Wideband CDMA), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), HSPA(High Speed Packet Access), 모바일 와이맥스(Mobile WiMAX), 와이브로(WiBro), LTE(Long Term Evolution), 블루투스(bluetooth), 적외선 통신(IrDA, infrared data association), NFC(Near Field Communication), 지그비(Zigbee), 무선랜 기술 등이 적용될 수 있다. 또한, 인터넷과 연결되어 서비스를 제공하는 경우 인터넷에서 정보전송을 위한 표준 프로토콜인 TCP/IP를 따를 수 있다.The
한편, 프로세서(110)는, transaction ID, 특정 사용자 정보의 해쉬값 또는 이를 가공한 값, 특정 사용자의 public key를 로컬 데이터베이스(미도시)에 저장할 수 있다. Meanwhile, the
프로세서(110)는, 통신부(120) 및 다른 구성요소 간의 데이터의 흐름을 제어하는 기능을 수행한다. 즉, 프로세서(110)는 인증 지원 서버(100)의 각 구성요소 간의 데이터의 흐름을 제어함으로써, 통신부(120) 및 다른 구성요소에서 각각 고유 기능을 수행하도록 제어한다.The
프로세서(110)는 MPU(Micro Processing Unit) 또는 CPU(Central Processing Unit), 캐쉬 메모리(Cache Memory), 데이터 버스(Data Bus) 등의 하드웨어 구성을 포함할 수 있다. 또한, 운영체제, 특정 목적을 수행하는 어플리케이션의 소프트웨어 구성을 더 포함할 수도 있다. The
이하에서는 인증 정보에 대한 파기를 수행하는 인증 지원 서버(100)의 구성 및 동작에 대해서 설명한다. 이하에서 설명하는 인증 정보에 대한 파기를 수행하는 인증 지원 서버는 전술한 인증 지원 서버(100)와 별도의 장치로 구성될 수도 있으나, 설명의 편의를 위해 동일한 장치인 것으로 설명한다. Hereinafter, the configuration and operation of the
도 3은 본 발명의 일 실시예에 따른 인증 정보에 대한 파기 과정을 도시한 시퀀스다이어그램이다.3 is a sequence diagram illustrating a process of destroying authentication information according to an embodiment of the present invention.
프로세서(110)는, 인증 정보 생성 및 등록 과정과 마찬가지로 은행 서버(400)로부터 인증 정보에 대한 파기 요청을 받은 생체 인증 서버(300)로부터 특정 사용자의 public key가 획득되면, 상기 public key의 등록 여부를 확인한다(S308). public key의 등록 여부를 확인하기 이전의 과정은 인증 정보를 생성하고 등록하는 과정과 유사하게 이루어진다. When the public key of the specific user is obtained from the
우선, 사용자 단말(500)에서 특정 사용자의 public key가 은행 서버(400)에 전달되는 과정부터 시작될 수 있다(S302). 만일 사용자 단말(500)에 복수의 사용자의 public key가 저장되어 있을 경우, 사용자의 선택에 의해 선택된 public key가 은행 서버(400)에 전달될 수 있다. 또한, 지문 정보, 안면 정보, 홍채 정보 등과 같은 생체 정보의 입력에 의해 public key가 선택될 수도 있을 것이다. 은행 서버(400)는 특정 사용자에 대해 인증을 수행한다. 그리고, 특정 사용자가 인증이 되면, 은행 서버(400)는, 상기 특정 사용자 정보의 해쉬값인 Uhash를 생체 인증 서버(300)에 전송할 수 있다(S304). 이때, 특정 사용자의 public key도 함께 전송이 이루어질 수 있다. 물론, 전술한 것처럼 Uhash 대신에, Idhash가 전송될 수도 있다. 생체 인증 서버(300)는, (i) 상기 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값으로서 상기 Uhash 또는 상기 Uhash를 가공한 값을 인증 지원 서버(100)로 전송할 수 있다(S306). 이 경우 마찬가지로 Uhash를 가공한 값은, Idhash일 수 있다. 프로세서(110)는, 이렇게 (i) 특정 사용자의 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값이 획득되면, 로컬 데이터베이스에서 상기 public key의 등록 여부를 확인할 수 있다(S308).First, a public key of a specific user in the
통신부(120)는, 상기 확인 결과, 상기 public key가 미등록 상태이면, 인증 정보가 등록되지 않았다는 것이므로, error 메시지를 전송할 수 있다(S312). error 메시지는 은행 서버(400)를 거쳐 사용자 단말(500)로 전달될 수 있다. If it is determined that the public key is not registered, the
통신부(120)는, 상기 확인 결과, 상기 public key가 등록 상태이면, 상기 public key에 대응되는 transaction ID를 이용하여 데이터베이스(200)로부터 상기 transaction ID에 대응되는 특정 transaction의 출력값을 획득하고(S314, S316), 상기 출력값의 적어도 일부를 입력값으로 하는 새로운 transaction을 생성하도록 지원하여 상기 데이터베이스(200)에 전송할 수 있다(S328). 구체적으로, 통신부(120)는, 상기 출력값인 소정의 가상화폐의 적어도 일부를 입력값으로 하는 unsigned transaction을 생성하고 이를 상기 인증 지원 서버(100)의 private key로 서명하여 signed transaction을 생성함으로써 상기 새로운 transaction을 생성하도록 지원할 수 있다. 통신부(120)는, 상기 새로운 transaction이 상기 데이터베이스(200) 상에 기록된 위치 정보를 나타내는 transaction ID를 획득하고(S330), 인증 정보에 대한 파기 사실을 상기 생체 인증 서버(300)에 알릴 수 있다(S332). 알림 메시지는 은행 서버(400)를 거쳐 사용자 단말(500)로 전달될 수 있다. If the public key is registered, the
다만, 이와 같은 작업을 수행하기에 앞서, 통신부(120)는, 인증 정보의 상태 정보를 확인하고 에러 메시지를 전송할 수도 있다. 즉, 상기 확인 결과, 상기 public key가 등록 상태이면, 통신부(120)는, 상기 public key에 대응되는 transaction ID를 이용하여 상기 데이터베이스(200)로부터 상기 transaction ID에 대응되는 상기 특정 transaction의 출력값으로서 public key 및 인증 정보의 상태 정보를 획득할 수 있고(S316), 상기 데이터베이스(200)로부터 획득된 public key가 상기 생체 인증 서버(300)로부터 획득된 public key와 대응되지 않거나(S320) 상기 인증 정보의 상태 정보를 참조한 결과 상기 인증 정보가 소정의 상태인 것으로 판단되면(S324), 상기 생체 인증 서버(300)에 에러 메시지를 전송할 수 있다(S322, S326). 에러 메시지는 은행 서버(400)를 거쳐 사용자 단말(500)에 전달될 수 있다. 상기 상태는 파기 상태 또는 계약 상의 소정의 조건을 만족하는 상태일 수 있다. However, prior to performing such an operation, the
이하에서는 인증 정보를 사용하는 인증 지원 서버의 구성 및 동작에 대해서 설명한다. 이하에서 설명하는 인증 지원 서버는 전술한 인증 지원 서버(100)와 별도의 장치로 구성될 수도 있으나, 설명의 편의를 위해 동일한 장치인 것으로 설명한다. The configuration and operation of the authentication support server using authentication information will be described below. The authentication support server described below may be configured as a separate apparatus from the
도 4는 본 발명의 다른 실시예에 따른 로그인 시 인증 정보를 사용하는 과정을 도시한 시퀀스다이어그램이다.FIG. 4 is a sequence diagram illustrating a process of using authentication information upon login according to another embodiment of the present invention.
도 4를 참조하면, 프로세서(110)는, 은행 서버(400)로부터 인증 정보 사용 요청을 받은 생체 인증 서버(300)로부터 특정 사용자의 public key가 획득되면, 상기 public key의 등록 여부를 확인할 수 있다(S408). 4, the
public key의 등록 여부를 확인하기 이전의 과정은 인증 정보를 생성하고 등록하는 과정, 인증 정보를 파기하는 과정과 유사하게 이루어지므로 중복 설명은 생략한다. The process before confirming whether or not the public key is registered is similar to the process of generating and registering the authentication information and discarding the authentication information, so that redundant explanation is omitted.
통신부(120)는, 상기 확인 결과, 상기 public key가 미등록 상태이면(S410), 사용할 수 있는 인증 정보가 없는 것이므로 error 메시지를 생체 인증 서버(300)에 전송한다(S412). 이 경우, 생체 인증 서버(300)는 은행 서버(400)로 error 메시지를 전달하고, 은행 서버(400)는 사용자 단말(500)로 error 메시지를 전달할 수 있다. If the public key is unregistered (S410), the
통신부(120)는, 상기 확인 결과, 상기 public key가 등록 상태이면, 상기 특정 사용자의 public key를 상기 생체 인증 서버(300)에 전송하거나(S428) 상기 생체 인증 서버(300)가 관리하고 있는 상기 특정 사용자의 public key를 사용하도록 하여 (i) 상기 생체 인증 서버(300)가 random nonce를 생성하고, (ii) 상기 특정 사용자의 생체 정보가 획득되면, 상기 random nonce를 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명한 값을 상기 특정 사용자의 public key를 이용하여 검증하며(S438), (iii) 상기 검증 결과에 대한 메시지를 상기 은행 서버(400)로 전송하도록 지원할 수 있다(S444). If the public key is registered, the
좀더 구체적으로 설명하면, 통신부(120)는, 상기 확인 결과, 상기 public key가 등록 상태이면, 상기 특정 사용자의 public key를 상기 생체 인증 서버(300)에 전송하거나(S428) 상기 생체 인증 서버(300)가 관리하고 있는 상기 특정 사용자의 public key를 사용하도록 할 수 있고, 생체 인증 서버(300)는 random nonce를 생성할 수 있다. 생체 인증 서버(300)는 생성된 random nonce를 은행 서버(400)로 전달할 수 있다(S430). 은행 서버(400)는 전달받은 random nonce를 사용자 단말(500)로 전달할 수 있다(S432). 사용자 단말(500)은 random nonce를 전달받은 후, 상기 특정 사용자의 생체 정보를 획득할 수 있고(예를 들어, 지문 입력을 받는 과정이 이루어질 수 있다.), 사용자 단말(500)은 상기 random nonce를 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명하여 다시 은행 서버(400)로 전달할 수 있다(S434). 은행 서버(400)는 전달받은 상기 random nonce를 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명한 값을 다시 생체 인증 서버(300)로 전달한다(S436). 생체 인증 서버(300)는 상기 random nonce를 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명한 값을 상기 특정 사용자의 public key를 이용하여 검증한다(S438). 검증 결과가 참이 아니면(S440), 생체 인증 서버(300)는 상기 특정 사용자가 입력한 생체 정보가 맞지 않음을 나타내는 메시지를 전송할 수 있다(S442). 이 메시지는 은행 서버(400)를 통해 최종적으로 사용자 단말(500)에 전달된다. 반면, 검증 결과가 참이면, 생체 인증 서버(300)는 검증이 성공했음을 나타내는 메시지를 전송할 수 있으며, 로그인이 정상적으로 수행되도록 할 수 있다(S444). 참고로 사용자의 생체 정보는, 홍채 정보, 지문 정보, 안면 정보 중 적어도 일부일 수 있다. If the public key is registered, the
다만, 이와 같은 작업을 수행하기에 앞서, 통신부(120)는, 인증 정보의 상태 정보를 확인하고 에러 메시지를 전송할 수도 있다. 즉, public key의 등록 여부 확인 결과, 상기 public key가 등록 상태이면, 통신부(120)는, 상기 public key에 대응되는 transaction ID를 이용하여 상기 데이터베이스(200)로부터 상기 transaction ID에 대응되는 상기 특정 transaction의 출력값으로서 public key 및 인증서의 상태 정보를 획득하고(S416), 상기 데이터베이스(200)로부터 획득된 public key가 상기 생체 인증 서버(300)로부터 획득된 public key와 대응되지 않거나(S420) 상기 인증 정보의 상태 정보를 참조한 결과 상기 인증 정보가 소정의 상태인 것으로 판단되면(S424), 상기 생체 인증 서버(300)에 에러 메시지를 전송할 수 있다(S422, S426). 에러 메시지는 은행 서버(400)를 거쳐 사용자 단말(500)로 전달된다. 상기 상태는 파기 상태 또는 계약의 소정의 조건을 만족하는 상태일 수 있다. However, prior to performing such an operation, the
도 5는 본 발명의 또 다른 실시예에 따른 거래시 인증 정보를 사용하는 과정을 도시한 시퀀스다이어그램이다.FIG. 5 is a sequence diagram illustrating a process of using authentication information in a transaction according to another embodiment of the present invention.
도 5를 참조하면, 프로세서(110)는, 은행 서버(400)로부터 인증 정보 사용 요청을 받은 생체 인증 서버(300)로부터 특정 사용자의 public key가 획득되면, 상기 public key의 등록 여부를 확인할 수 있다(S514). 5, when the public key of a specific user is obtained from the
public key의 등록 여부를 확인하기 이전의 과정은 인증 정보를 생성하고 등록하는 과정, 인증 정보를 파기하는 과정과 유사하게 이루어질 수 있으므로 중복 설명은 생략한다. The process before confirming whether or not the public key is registered may be similar to the process of generating and registering the authentication information and discarding the authentication information, so redundant description will be omitted.
상기 확인 결과, 상기 public key가 미등록 상태이면(S516), 상기 통신부(120)는, 상기 생체 인증 서버(300)로 등록되지 않은 public key임을 나타내는 에러 메시지를 전송할 수 있다(S518). 에러 메시지는 은행 서버(400)를 거쳐 사용자 단말(500)로 전달될 수 있다. If the public key is unregistered (S516), the
반면, 상기 확인 결과, 상기 public key가 등록 상태이면, 통신부(120)는, 상기 특정 사용자의 public key를 상기 생체 인증 서버(300)에 전송하거나(S534) 상기 생체 인증 서버(300)가 관리하고 있는 상기 특정 사용자의 public key를 사용하도록 하여 (i) 상기 생체 인증 서버(300)가, 거래 정보의 해쉬값(Thash) 또는 이를 가공한 값을 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명한 값을 상기 특정 사용자의 public key를 이용하여 검증하며(S536), (ii) 상기 검증 결과에 대한 메시지를 상기 은행 서버(400)로 전송하도록 지원할 수 있다(S538, S540). If the public key is registered, the
좀더 구체적으로 설명하면, 은행 서버(400)는 거래 정보의 해쉬값(Thash=hash(Transaction)) 또는 이를 가공한 값을 생성할 수 있고(S504), 이를 사용자 단말(500)에 전달할 수 있다(S506). 이때, 특정 사용자의 생체 정보가 획득되면, 사용자 단말(500)은 거래 정보의 해쉬값(Thash) 또는 이를 가공한 값을 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명한 값(A)을 은행 서버(400)로 전송할 수 있다(S508). 그리고, 은행 서버(400)는 상기 A를 생체 인증 서버(300)로 전송할 수 있다. 이 때, 특정 사용자의 public key, Thash, Idhash 등이 함께 전달될 수 있다. 물론, 특정 사용자의 public key, Idhash 등은 이전에 전송이 이루어질 수도 있다. 즉, 도 5에 도시된 것처럼 생체 인증 서버(300)에 Thash와 Idhash가 함께 전달이 이루어지고, 생체 인증 서버(300)에서 인증 지원 서버(100)로 public key와 Idhash의 전달이 이루어진 후 public key의 등록 확인이 이루어질 수도 있으나, Thash의 생성과 전달은 public key 전달 및 등록 확인, Idhash 전달과는 별도로 이루어질 수도 있다. More specifically, the
한편, 상기 (ii)에서, 상기 검증 결과가 거짓이면(S538), 상기 통신부(120)는, 상기 특정 사용자가 입력한 생체 정보가 맞지 않음을 나타내는 메시지를 전송할 수 있다(S540). 상기 메시지는 은행 서버(400)를 거쳐 사용자 단말(500)에 전달된다. If the verification result is false (S538), the
다만, 이와 같은 작업을 수행하기에 앞서, 통신부(120)는, 인증 정보의 상태 정보를 확인하고 에러 메시지를 전송할 수도 있다. 즉, public key의 등록 여부 확인 결과, 상기 public key가 등록 상태이면, 상기 public key에 대응되는 transaction ID를 이용하여 데이터베이스(200)로부터 상기 transaction ID에 대응되는 상기 특정 transaction의 출력값으로서 public key 및 인증 정보의 상태 정보를 획득하고(S522), 상기 데이터베이스(200)로부터 획득된 public key가 상기 생체 인증 서버(300)로부터 획득된 public key와 대응되지 않거나(S526) 상기 인증 정보의 상태 정보를 참조한 결과 상기 인증 정보가 소정의 상태인 것으로 판단되면(S530), 상기 생체 인증 서버(300)에 에러 메시지를 전송할 수 있다(S528, S532). 에러 메시지는 은행 서버(400)를 거쳐 사용자 단말(500)에 전달된다. 상기 상태는 파기 상태 또는 계약 상의 소정의 조건을 만족하는 상태일 수 있다. However, prior to performing such an operation, the
한편, 통신부(120)는, 상기 거래 정보의 해쉬값 또는 이를 가공한 값을 상기 private key로 서명한 값(X1) 또는 이에 대한 해쉬값(X2)을 상기 데이터베이스(200)에 기록하도록 전송할 수 있다(S544). 이는 거래시 부인 방지를 위해 거래 정보를 데이터베이스(200)에 기록하는 것이다. The
통신부(120)는, 상기 X1 또는 X2가 상기 데이터베이스(200) 상에 기록된 위치 정보를 나타내는 transaction ID를 획득하고(S546), 상기 획득된 transaction ID를 상기 생체 인증 서버(300)로 전송할 수 있다(S548). transaction ID는 은행 서버(400)를 거쳐 사용자 단말(500)로 전달될 수 있다. The
이상과 같은 본 발명의 다양한 실시예에 따른 인증 지원 서버(100)는 생체 인증 기술에 블록체인 기술을 접목시켜 PKI 기반으로 인증서를 생성하고 블록체인 상에 등록하여 사용 및 관리할 수 있는 기술을 제공한다. The
한편, 인증 정보를 등록할 필요가 있는 모든 경우에 데이터베이스(200)에 접근하여 기록을 하는 것은 비효율적일 수 있다. 특히, transaction 요청이 많아졌을 때, 서비스 제공의 bottle neck 현상이 발생될 수 있고, 매번 transaction fee를 지불해야 하므로 서비스 운영에 많은 비용이 들 수 있는 우려가 있다.On the other hand, it is inefficient to access and record the
이하에서는 위/변조가 불가능하고 실시간으로 인증 정보를 등록할 수 있는 장점을 살리면서도 서비스 요청이 몰릴 경우에도 빠른 서비스 속도를 보장하고 비용도 절감할 수 있는 인증 정보를 등록 및 파기할 수 있는 시스템을 설명한다. 이러한 시스템은 전술한 실시예와 달리 인증 지원 서버(100)에 의해 관리되는 별도의 데이터 구조를 이용한다. 이하에서 설명하는 인증 지원 서버는 전술한 인증 지원 서버(100)와 별도의 장치로 구성될 수도 있으나, 설명의 편의를 위해 동일한 장치인 것으로 설명한다. Hereinafter, a system capable of registering and destroying authentication information capable of reducing the cost and speeding up the service even when the service request is made while taking advantage of the fact that the authentication information can be registered in real time, Explain. This system uses a separate data structure managed by the
전술한 실시예와 마찬가지로 통신부(120)는 인증 정보에 대한 등록 요청을 받은 생체 인증 서버(300)로부터 (i) 특정 사용자의 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값을 획득할 수 있다. The
이때, 상기 특정 사용자의 public key는 사용자 단말(500)에서 생성되어 은행 서버(400)에 전달되고, 상기 특정 사용자가 인증되어 상기 은행 서버(400)로부터 상기 특정 사용자 정보의 해쉬값인 Uhash가 상기 생체 인증 서버(300)에 전송되면, 상기 생체 인증 서버(300)로부터 (i) 상기 public key 및 (ii) 상기 Uhash 또는 상기 Uhash를 가공한 값이 상기 인증 지원 서버(100)로 전송될 수 있다(도 2 및 이에 대한 설명 참조). 특정 사용자의 인증 방법에 대해서는 전술한 실시예에서 설명했으므로 중복 설명은 생략한다. Uhash를 이용하여 user id가 생성되는 경우, Uhash 대신에, 상기 user id 및 상기 Uhash의 해쉬값인 Idhash가 전송될 수도 있다. Idhash는 SHA256hash일 수 있다. 또한, 전술한 실시예와 마찬가지로 Uhash를 가공한 값은, 상기 Uhash를 이용하여 user id가 생성되는 경우, 상기 user id 및 상기 Uhash의 해쉬값인 Idhash일 수 있다.At this time, the public key of the specific user is generated in the
프로세서(110)는, 상기 (i) 특정 사용자의 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값이 획득되면, 상기 public key의 등록 여부를 확인할 수 있다. 그리고, 상기 확인 결과, 상기 public key가 미등록 상태이고 소정의 앵커링 조건이 만족되면, 특정 해쉬값 - 상기 특정 해쉬값은, (i) 상기 특정 사용자의 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값에 대한 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 소정의 데이터 구조로서 데이터베이스(200)에 등록하거나 등록하도록 지원할 수 있다. The
특정 해쉬값과 적어도 하나의 이웃 해쉬값의 연산은 다양한 함수에 의해 수행될 수 있다. 특정 해쉬값을 input 이라고 나타내고, 적어도 하나의 이웃 해쉬값을 x1, x2, …, xn이라고 나타낼 때, 대표 해쉬값 t는 다음 수학식과 같이 나타낼 수 있다.The computation of a particular hash value and at least one neighbor hash value may be performed by various functions. A particular hash value is denoted as input, and at least one neighboring hash value is denoted by x1, x2, ... , xn, the representative hash value t can be expressed by the following equation.
<수학식>≪ Equation &
t = hash(function(input, x1, x2, …, xn))t = hash (function (input, x1, x2, ..., xn))
이때 인증 지원 서버(100)는 상기 특정 해쉬값과 상기 적어도 하나의 이웃 해쉬값을 소정의 데이터 구조로 저장하여 관리할 수 있다. 여기서, 데이터 구조는 다양할 수 있는데, 일 예로 머클 트리(merkle tree) 구조가 될 수도 있다. 이 경우, 상기 특정 해쉬값과 적어도 하나의 이웃 해쉬값의 연산은 머클 트리(merkle tree)를 통해 이루어질 수 있다. At this time, the
즉, 프로세서(110)는 상기 특정 해쉬값이 특정 리프 노드에 할당된 머클 트리(merkle tree)를 생성하거나 생성하도록 지원할 수 있고, 상기 확인 결과, 상기 public key가 미등록 상태이고 상기 소정의 앵커링 조건이 만족되면, 상기 특정 해쉬값과 매칭되는 적어도 하나의 다른 리프 노드에 할당된 해쉬값을 연산하여 생성되는 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 데이터베이스(200)에 등록하거나 등록하도록 지원할 수 있다. That is, the
좀더 구체적으로 설명하면, 이 경우 (x1) 프로세서(110)는, (i) 상기 특정 해쉬값과 (ii) 상기 특정 해쉬값이 할당된 노드의 형제 노드에 할당된 해쉬값을 연산하거나 연산하도록 지원하고, 상기 연산값에 대한 해쉬값을 상기 노드의 부모 노드에 할당하거나 할당하도록 지원할 수 있다. (x2) 만일, 상기 부모 노드가 상기 머클 트리의 루트 노드이면, 상기 부모 노드에 할당된 해쉬값이 상기 대표 해쉬값이 된다. (x3) 반면, 상기 부모 노드가 상기 머클 트리의 루트 노드가 아니면, 프로세서(110)는, 상기 부모 노드에 할당된 해쉬값을 상기 특정 해쉬값으로 하여 상기 (x1) 내지 (x3)를 반복하여 수행한다. More specifically, in this case (x1), the
그리고, 프로세서(110)는 최종적으로 머클 트리의 루트 노드에 할당된 해쉬값을 대표 해쉬값으로서 데이터베이스(200)에 등록하거나 등록하도록 지원한다. 이때, 대표 해쉬값을 가공한 값이 등록될 수도 있다. 예를 들어, 대표 해쉬값에 hex 연산이 수행된 결과값이 등록될 수 있다. The
한편, 상기 인증 지원 서버(100)가 상기 특정 해쉬값과 상기 적어도 하나의 이웃 해쉬값을 소정의 제1 데이터 구조로 저장하고, 이후 상기 제1 데이터 구조와 동일한 형태의 제2 데이터구조를 저장하여 관리하는 경우, 상기 제1 데이터 구조와 상기 제2 데이터 구조는 체인 형태로 연결될 수 있다. Meanwhile, the
특히, 상술한 예에서와 같이 상기 제1 데이터 구조 및 상기 제2 데이터 구조가 머클 트리인 경우, 상기 제1 데이터 구조의 루트값 또는 상기 루트값의 해쉬값이 상기 제2 데이터 구조의 첫번째 리프 노드에 할당될 수 있다. 또한, 제2 데이터 구조를 생성할 때는 제1 데이터 구조에 대한 검증이 이루어짐으로써 데이터 integrity가 좀더 보장될 수 있다. In particular, as in the above example, if the first data structure and the second data structure are merc trees, the root value of the first data structure or the hash value of the root value may be the first leaf node of the second data structure Lt; / RTI > In addition, when the second data structure is created, verification of the first data structure is performed, so that data integrity can be further guaranteed.
또한, 체인 형태로 연결된 적어도 하나의 머클 트리 중 첫번째 머클 트리의 경우, 상기 첫번째 머클 트리의 첫번째 리프 노드에는 텍스트, 숫자, 또는 기호로 이루어진 소정의 메시지 데이터의 해쉬값 또는 이를 가공한 값이 할당될 수 있다. 예를 들어, 머클 트리 생성시 인증 지원 서버(100)에 의해 최초로 부여된 입력 메시지의 해쉬값이 할당될 수 있다. In addition, in the case of the first merge tree among the at least one merge tree connected in a chain form, the first leaf node of the first merge tree is assigned a hash value of a predetermined message data composed of text, numbers, or symbols or a processed value thereof . For example, a hash value of an input message initially assigned by the
도 6 및 7은 본 발명의 일 실시예에 따라 생성된 머클 트리의 예를 도시한 도면이다.6 and 7 are diagrams illustrating examples of a merge tree generated according to an embodiment of the present invention.
도 6에서는 리프 노드의 개수가 4(22)개인 머클 트리가 도시된다. 도시된 머클 트리는 첫번째 머클 트리이기 때문에(tree_id=0), 첫번째 리프 노드인 h1 노드에는 소정의 메시지 데이터 “Coinplug 2016-01-01”의 해쉬값(triplesha256digest(coinplug_unique_message))이 할당되었음을 알 수 있다. 인증 정보에 대한 등록 요청이 있는 경우, 프로세서(110)는 현재 구성 중인 머클 트리의 가장 마지막 리프 노드의 다음 리프 노드를 생성하여 (i) 특정 사용자의 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값의 해쉬값(특정 해쉬값) 또는 이를 가공한 값을 할당하거나 할당하도록 지원한다. 예를 들어, 도 6의 머클 트리에서 이전 단계에서 두번째 리프 노드인 h1 노드까지 값 할당이 완료된 경우, 다음 리프 노드인 h2 노드를 생성하여 특정 해쉬값 또는 특정 해쉬값을 가공한 값(triplesha256digest(input2))을 할당할 수 있다. 또한, 프로세서(110)는 (i) 특정 해쉬값과 (ii) 상기 특정 해쉬값이 할당된 세번째 리프 노드인 h2 노드의 형제 노드인 h3 노드에 할당된 해쉬값을 연산하거나 연산하도록 지원할 수 있다. 상기 연산값에 대한 해쉬값은 h2 노드와 h3 노드의 부모 노드(h23 노드)에 할당된다. 부모 노드(h23 노드)가 머클 트리의 루트 노드가 아니므로 프로세서(110)는 상기 h23 노드에 할당된 해쉬값을 상기 특정 해쉬값으로 하여 상기 과정을 반복하여 수행할 수 있다. 즉, h23 노드에 할당된 해쉬값을 특정 해쉬값으로 하고, h23 노드에 할당된 해쉬값과 h01 노드에 할당된 해쉬값을 연산하여 h23 노드와 h01 노드의 부모 노드(h0123 노드)에 할당할 수 있다. 이때, h0123 노드가 머클 트리의 루트 노드이므로 프로세서(110)는, h0123 노드에 할당된 해쉬값을 가공한 값(hex(h{node_index}))을 데이터베이스(200)에 등록하거나 등록하도록 지원할 수 있다. FIG. 6 shows a merge tree having 4 (2 2 ) leaf nodes. Since the illustrated merge tree is the first merge tree (tree_id = 0), it can be seen that the hash value (triplesha256digest (coinplug_unique_message)) of the predetermined message data "Coinplug 2016-01-01" is assigned to the first leaf node h1. If there is a registration request for the authentication information, the
한편, 전술한 소정의 앵커링 조건이란, (i) 소정의 개수만큼의 (i-1) 상기 특정 사용자의 public key 및 (i-2) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값이 획득되는 조건, (ii) 소정 시간이 경과하는 조건, (iii) 블록 체인에서 블록이 생성되는 조건, (iv) 서비스 특성에 대한 조건 중 적어도 하나를 포함할 수 있다. On the other hand, the predetermined anchoring conditions are (i) a predetermined number of (i-1) public keys of the specific user and (i-2) hash values of the specific user information or values obtained by processing Condition, (ii) a condition that a predetermined time elapses, (iii) a condition in which a block is generated in a block chain, and (iv) a condition for a service characteristic.
예를 들어, 프로세서(110)는 소정 시간 단위로 전술한 머클 트리의 루트값을 생성할 수 있다(상기 (ii) 조건). 이 경우 프로세서(110)는 소정의 시간이 경과되면 그때까지의 입력값을 이용하여 머클 트리를 생성하고 머클 트리의 루트값을 데이터베이스(200)에 등록하거나 등록하도록 지원할 수 있다. For example, the
그런데, 이 경우에는 소정 시간이 경과하였음에도 머클 트리의 특정 해쉬값이 할당된 노드의 형제 노드에 값이 할당되지 않을 수 있다. 이처럼 소정의 조건이 만족되었음에도 상기 특정 해쉬값이 할당된 노드의 형제 노드에 해쉬값이 할당되어 있지 않은 경우, 프로세서(110)는, 상기 형제 노드에 소정의 해쉬값을 할당하거나 할당하도록 지원하여 전술한 방식으로 머클 트리의 루트값이 산출되도록 할 수 있다. 예를 들어, 프로세서(110)는 상기 특정 해쉬값을 복제하여 상기 형제 노드에 할당하거나 할당하도록 지원할 수 있다. In this case, although a predetermined time has elapsed, a value may not be assigned to a sibling node of a node to which a particular hash value of the merge tree is assigned. If the hash value is not allocated to the sibling node of the node to which the specific hash value is allocated, the
한편, 상기 서비스 특성이란, 인증 정보 등록 요청을 한 사용자(회사)가 지급한 비용 정보, 인증 정보 등록이 이루어지는 시간대 정보, 인증 정보 등록 서비스가 이루어지는 지역 정보, 인증 정보 등록 요청을 한 회사 타입 정보 중 적어도 일부가 될 수 있다. 다만, 여기서 기재한 것에 한정할 것은 아니고, 통상적으로 인정되는 차등적 서비스가 제공될 수 있는 다양한 조건 정보를 포함할 수 있다. On the other hand, the service characteristics include the cost information paid by the user (company) who made the authentication information registration request, the time zone information in which the authentication information registration is performed, the area information in which the authentication information registration service is performed, At least in part. However, the present invention is not limited to the one described here, but may include various condition information that can be provided with a generally accepted differential service.
한편, 새로운 머클 트리 생성이 시작되고, 인증 정보의 등록 요청이 없는 상태에서 상기 소정의 조건(예를 들어, 시간 조건)이 만족되면, 상기 프로세서(110)는, 소정의 메시지 데이터(임의의 메시지 데이터)가 첫번째 리프 노드와 두번째 리프 노드에 할당된 머클 트리를 생성하거나 생성하도록 지원하고, 상기 머클 트리의 루트값 또는 이를 가공한 값을 데이터베이스(200)에 등록하거나 등록하도록 지원할 수 있다. 이 경우에는 리프 노드 2개짜리 머클 트리가 생성될 수 있는 것이다. 물론, 2개짜리로 한정되는 것은 아닐 것이다.On the other hand, when a new merge tree generation is started and the predetermined condition (e.g., time condition) is satisfied in a state where there is no registration request of authentication information, the
한편, 전술한 것처럼 인증 지원 서버(100)가 상기 특정 해쉬값과 상기 적어도 하나의 이웃 해쉬값을 소정의 제1 데이터 구조로 저장하고, 이후 상기 제1 데이터 구조와 동일한 형태의 제2 데이터구조를 저장하여 관리하는 경우, 상기 제1 데이터 구조와 상기 제2 데이터 구조는 체인 형태로 연결될 수 있다. 특히, 상기 제1 데이터 구조 및 상기 제2 데이터 구조가 머클 트리인 경우, 상기 제1 데이터 구조의 루트값 또는 상기 루트값의 해쉬값이 상기 제2 데이터 구조의 첫번째 리프 노드에 할당될 수 있다. Meanwhile, as described above, the
도 7은 본 발명의 일 실시예에 따라 상기 제2 데이터 구조로서 생성된 머클 트리를 도시한 도면이다.FIG. 7 is a diagram illustrating a merge tree generated as the second data structure according to an embodiment of the present invention.
도 7을 참조하면, 도 6의 머클 트리(tree_id=0)의 루트값(hex(h0123))이 새로운 머클 트리의 첫번째 리프 노드(h4 노드)에 할당되었음을 알 수 있다(triplesha256digest(input4)). 본 발명은 이와 같이 트랜잭션 발생시 생성되는 복수의 데이터 구조를 연결함으로써 중간에 데이터가 변조가 발생되는 경우라도 쉽게 트래킹이 가능하여 데이터 integrity를 향상시키는 장점을 가진다. Referring to Fig. 7, it can be seen that the root value (hex (h0123)) of the merge tree (tree_id = 0) of Fig. 6 is assigned to the first leaf node (h4 node) of the new merge tree (triplesha256digest (input4)). The present invention has an advantage of improving data integrity by enabling easy tracking even when data is modulated in the middle by connecting a plurality of data structures generated at the time of occurrence of a transaction.
한편, 상기 확인 결과, 상기 public key가 등록 상태이면, 이미 인증 정보가 등록되어 있다는 의미이므로, 통신부(120)는, 생체 인증 서버(300)에 error 메시지를 전송할 수 있다. error 메시지는 은행 서버(400)를 거쳐 사용자 단말(500)로 전달될 수 있다. 물론, 사용자 단말(500)로 직접 전달될 수도 있다. If it is determined that the public key is registered, the
한편, 상기 특정 해쉬값은, (i) 상기 특정 사용자의 public key, (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값 및 (iii) 소정의 액수의 가상 화폐에 대한 해쉬값일 수도 있다. 이 경우, (iii) 소정의 액수의 가상 화폐는 인증 정보에 대한 파기 여부를 나타내는데 사용될 수 있다. Meanwhile, the specific hash value may be a hash value of (i) a public key of the specific user, (ii) a hash value of the specific user information or a value obtained by processing the specific user information, and (iii) a predetermined amount of virtual money. In this case, (iii) a predetermined amount of virtual money can be used to indicate whether or not the authentication information is destroyed.
또한, 프로세서(110)는, 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값, 상기 특정 사용자의 public key를 로컬 데이터베이스에 저장할 수 있다. In addition, the
통신부(120)는, 대표 해쉬값 또는 대표 해쉬값을 가공한 값이 데이터베이스(200) 상에 등록이 되면, 데이터베이스(200)상에 기록된 위치 정보를 나타내는 transaction ID를 획득하며, 상기 생체 인증 서버(300)에 (i) 상기 public key 및 (ii) 상기 해쉬값 또는 이를 가공한 값이 정상적으로 등록되었음을 알리는 메시지를 전달할 수 있다. 상기 메시지는 은행 서버(400)를 거쳐 사용자 단말(500)에 전달될 수 있다. 물론, 직접 사용자 단말(500)이나 은행 서버(400)로 전달될 수도 있다. When the value obtained by processing the representative hash value or the representative hash value is registered on the
이하에서는 인증 지원 서버(100)가 인증 정보에 대한 파기를 수행하는 방법에 대해서 설명한다. Hereinafter, a method of performing the destruction of the authentication information by the
전술한 실시예와 마찬가지로 통신부(120)는 인증 정보에 대한 파기 요청을 받은 생체 인증 서버(300)로부터 (i) 특정 사용자의 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값을 획득한다. public key의 등록 여부를 확인하기 이전의 과정에 대해서는 전술하였으므로 중복 설명은 생략한다(도 3 및 이에 대한 설명 참조). As in the above-described embodiment, the
프로세서(110)는, (i) 상기 특정 사용자의 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값을 획득되면, 상기 public key의 등록 여부를 확인한다. 그리고, 상기 확인 결과, 상기 public key가 등록 상태이고, 소정의 앵커링 조건이 만족되면, 특정 해쉬값 - 상기 특정 해쉬값은, (i) 상기 특정 사용자의 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값에 대한 해쉬값임 - 및 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 소정의 데이터 구조로서 데이터베이스(200)에 등록하거나 등록하도록 지원하여 상기 인증 정보에 대한 파기를 수행할 수 있다. The
이처럼 인증 정보에 대한 파기 과정은 전술한 인증 정보 등록 과정과 유사하게 이루어진다. 이 경우 구체적인 인증 정보에 대한 파기 과정은 인증 정보 등록 과정과 동일하므로 중복 설명은 생략한다. 또한, 소정의 데이터 구조는 전술한 바와 같이 머클 트리가 될 수 있다. 따라서, 특정 해쉬값이 상기 소정의 데이터 구조에 기록된 순서에 따라서 등록과 파기를 구분할 수 있다. 즉, 데이터 구조에 첫번째로 기록된 특정 해쉬값은 인증 정보의 등록을 나타내고, 두번째로 기록된 특정 해쉬값은 인증 정보의 파기를 나타낼 수 있다. The process of destroying the authentication information is similar to the process of registering the authentication information. In this case, the process of destroying the specific authentication information is the same as the process of registering the authentication information, so redundant description is omitted. Further, the predetermined data structure may be a merge tree as described above. Therefore, registration and destruction can be distinguished according to the order in which a particular hash value is recorded in the predetermined data structure. That is, the first hash value recorded in the data structure represents the registration of the authentication information, and the second recorded hash value represents the discard of the authentication information.
이 경우, 상기 획득된 (i) 상기 특정 사용자의 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값이 기 등록된 소정의 값과 대응되는 경우, 상기 public key가 등록된 것으로 판단되어, 프로세서(110)가, 상기 소정의 앵커링 조건 만족 여부에 따라 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 상기 데이터베이스(200)에 등록하거나 등록하도록 지원할 수 있다. In this case, if the obtained public key of the specific user and (ii) the hash value of the specific user information or the processed value correspond to a pre-registered value, the public key is registered And the
또한, 상기 public key의 등록 여부는 로컬 데이터베이스에서 확인할 수 있다. 즉, 상기 public key가 로컬 데이터베이스에 등록된 상태인 경우, 상기 소정의 앵커링 조건이 만족되면, 상기 프로세서(110)는, 상기 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산하여 생성되는 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 상기 데이터베이스(120)에 등록하거나 등록하도록 지원하여 상기 인증 정보에 대한 파기를 수행할 수 있다. Whether or not the public key is registered can be confirmed in the local database. That is, when the public key is registered in the local database, if the predetermined anchoring condition is satisfied, the
특히, 상기 소정의 데이터구조가 머클 트리인 경우, (i) 상기 특정 사용자의 public key 및 (ii) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값이 머클 트리(merkle tree)의 소정의 리프 노드에 할당되어 등록된 상태인 경우, 상기 소정의 앵커링 조건이 만족되면, 상기 프로세서(110)는, 상기 특정 해쉬값과 매칭되는 적어도 하나의 다른 리프 노드에 할당된 해쉬값을 연산하여 생성되는 상기 대표 해쉬값 또는 상기 대표 해쉬값을 가공한 값을 상기 데이터베이스(200)에 등록하거나 등록하도록 지원하여 상기 인증 정보에 대한 파기를 수행할 수 있다. In particular, when the predetermined data structure is a merge tree, a public key of the specific user and (ii) a hash value of the specific user information or a value obtained by manipulating the hash value of the specific user information are transmitted to a predetermined leaf node of a merkle tree, When the predetermined anchoring condition is satisfied, the
반면, 상기 public key가 미등록 상태이거나 머클 트리(merkle tree)의 적어도 두 개의 리프 노드에 할당되어 등록된 상태인 경우, 통신부(120)는, 상기 생체 인증 서버(300)에 에러 메시지를 전송할 수 있다. public key가 머클 트리(merkle tree)의 적어도 두 개의 리프 노드에 할당되어 등록된 경우에는 인증 정보에 대해 등록과 파기가 모두 이루어져 인증 정보가 현재 파기 상태이기 때문이다. 에러 메시지는 은행 서버(400)를 거쳐 사용자 단말(500)로 전달될 수 있다. On the other hand, if the public key is unregistered or registered in at least two leaf nodes of the merkle tree, the
이하에서는 상술한 인증 정보를 사용하여 로그인을 지원할 수 있는 인증 지원 장치(100)의 구성 및 동작을 설명한다. 이하에서 설명하는 인증 지원 서버는 전술한 인증 지원 서버(100)와 별도의 장치로 구성될 수도 있으나, 설명의 편의를 위해 동일한 장치인 것으로 설명한다.Hereinafter, the configuration and operation of the
기존에 인증 지원 서버(100)가 제1 특정 해쉬값 및 상기 제1 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값을 소정의 데이터 구조로서 데이터베이스(200)에 등록하고 있는 상태에서, 통신부(120)는, 인증 정보 사용 요청으로서 (1) 특정 사용자의 public key 및 (2) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값을 획득할 수 있다. 여기서, 제1 특정 해쉬값, 제1 대표 해쉬값은 전술한 특정 해쉬값, 대표 해쉬값에 대응된다.The
한편, 상기 특정 사용자의 public key가 은행 서버(400)에 전달되고, 상기 특정 사용자가 인증되어 상기 은행 서버(400)로부터 특정 사용자 정보의 해쉬값인 Uhash가 상기 생체 인증 서버(300)에 전송되면, 상기 생체 인증 서버(300)로부터 (i) 상기 public key 및 (ii) 상기 Uhash 또는 상기 Uhash를 가공한 값이 상기 인증 지원 서버(100)로 전송될 수 있다. 이에 대해서는 전술한 실시예에서 설명하였으므로 중복 설명은 생략한다(도 4 및 이에 대한 설명 참조). Meanwhile, when the public key of the specific user is transmitted to the
프로세서(110)는, 상기 (1) 및 (2)에 대한 해쉬값인 제2 특정 해쉬값 및 상기 제2 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값 - 상기 적어도 하나의 이웃 해쉬값은 상기 소정의 데이터 구조를 참조로 하여 결정됨 - 을 연산함으로써 생성되는 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 데이터베이스(200)에 등록된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, 상기 특정 사용자의 public key를 생체 인증 서버(300)에 전송하거나 상기 생체 인증 서버(300)가 관리하고 있는 상기 특정 사용자의 public key를 사용하도록 하여 (i) 상기 생체 인증 서버(300)가 random nonce를 생성하거나 생성하도록 지원하고, (ii) 상기 특정 사용자에 대한 로그인 행위로서 상기 특정 사용자의 생체 정보가 획득되면, 상기 random nonce를 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명한 값을 상기 특정 사용자의 public key를 이용하여 검증하거나 검증하도록 지원하며, (iii) 상기 검증 결과에 대한 메시지를 전송하거나 전송하도록 지원할 수 있다. The
상기 (ii)에서, 상기 random nonce에 대해 사용자 단말(500)에 의해 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명이 이루어져 은행 서버(400)를 거쳐 상기 생체 인증 서버(300)로 전달될 수 있다. In step (ii), the random nonce is signed by the private key corresponding to the biometric information of the specific user by the
또한, 상기 (iii)에서 상기 검증 결과가 거짓이면, 상기 프로세서(110)는, 상기 특정 사용자가 입력한 생체 정보가 맞지 않아 로그인을 불허함을 나타내는 메시지를 전송하도록 지원할 수 있다.Also, if the verification result in step (iii) is false, the
제2 특정 해쉬값에 대해서는 전술한 제1 특정 해쉬값에 대한 설명이 동일하게 적용될 수 있다. 즉, 제2 특정 해쉬값과 적어도 하나의 이웃 해쉬값의 연산은 다양한 함수에 의해 수행될 수 있다. 이에 대해서는 전술하였으므로 설명을 생략한다.For the second specific hash value, the description of the first specific hash value described above can be applied equally. That is, the operation of the second specific hash value and the at least one neighbor hash value can be performed by various functions. Since this has been described above, the explanation is omitted.
한편, 상기 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 데이터베이스(200)에 등록된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되지 않거나 로컬 데이터베이스에 저장된 상기 (1) 및 (2)에 대한 인증 정보의 상태 정보를 참조한 결과 상기 인증 정보가 소정의 상태인 것으로 판단되면, 상기 통신부(120)는 상기 생체 인증 서버(300)에 에러 메시지를 전송할 수 있다. 예를 들어, 상기 인증 정보가 파기 상태인 경우, 통신부(120)는 상기 생체 인증 서버(300)에 에러 메시지를 전송할 수 있다.If the value obtained by processing the second representative hash value or the second representative hash value does not correspond to the value obtained by processing the first representative hash value or the first representative hash value registered in the
또한, 상기 (1) 및 (2)가 머클 트리(merkle tree)의 적어도 두 개의 리프 노드에 할당된 경우, 통신부(120)는, 이를 상기 인증 정보가 파기된 것으로 판단하여 상기 생체 인증 서버(300)에 에러 메시지를 전송할 수 있다. When the above-mentioned (1) and (2) are allocated to at least two leaf nodes of the merkle tree, the
프로세서(110)는, 인증 정보 사용 요청이 획득되면, 소정의 transaction ID를 참조하고, 상기 transaction ID를 사용하여 상기 데이터베이스(200)로부터 OP 메시지를 획득하거나 획득하도록 지원할 수 있다. 또한, 상기 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 OP 메시지에 포함된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, 상기 특정 사용자의 public key를 상기 생체 인증 서버(300)에 전송하거나 상기 생체 인증 서버(300)가 관리하고 있는 상기 특정 사용자의 public key를 사용하도록 하여 상기 (i) 내지 (iii)을 수행할 수 있다. The
한편, 상기 제2 대표 해쉬값은, 상기 제2 특정 해쉬값이 특정 리프 노드에 할당된 머클 트리(merkle tree)에서 상기 제2 특정 해쉬값 및 상기 제2 특정 해쉬값과 매칭되는 적어도 하나의 다른 리프 노드에 할당된 해쉬값을 연산하여 생성될 수 있다. The second representative hash value may be at least one other hash value that matches the second specific hash value and the second specific hash value in a merkle tree assigned to a particular leaf node. Can be generated by computing a hash value assigned to a leaf node.
상기 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되는지 확인하는 과정에서 프로세서(110)는 새로운 머클 트리를 생성하거나 생성하도록 지원할 수 있는데, 여기에는 전술한 인증 정보 등록 과정에서 생성된 머클 트리가 이용될 수 있다. 즉, 프로세서(110)는 (y1) (i) 상기 제2 특정 해쉬값과 (ii) 기존에 생성된 머클 트리에서 상기 제2 특정 해쉬값이 할당된 노드의 형제 노드에 할당된 해쉬값을 연산하거나 연산하도록 지원하고, 상기 연산값에 대한 해쉬값을 새로운 머클 트리에서 상기 노드의 부모 노드에 할당하거나 할당하도록 지원할 수 있다. 또한, (y2) 상기 부모 노드가 상기 새로운 머클 트리의 루트 노드이면, 상기 부모 노드에 할당된 해쉬값을 상기 제2 대표 해쉬값으로서 상기 OP 메시지에 포함된 값과 비교하거나 비교하도록 지원하고, (y3) 상기 부모 노드가 상기 새로운 머클 트리의 루트 노드가 아니면, 상기 부모 노드에 할당된 해쉬값을 상기 제2 특정 해쉬값으로 하여 상기 (y1) 내지 (y3)를 반복하여 수행할 수 있다. In the process of determining whether the value obtained by processing the second representative hash value or the second representative hash value corresponds to the value obtained by processing the first representative hash value or the first representative hash value, In which a merge tree generated in the authentication information registration process described above can be used. That is, the
프로세서(110)는, 최종적으로 생성된 머클 트리의 루트값 또는 이를 가공한 값이 상기 OP 메시지에 포함된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, (1) 특정 사용자의 public key 및 (2) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값이 검증된 것으로 판단하거나 판단하도록 지원할 수 있다. When the root value of the finally generated muckree or the processed value corresponds to the value obtained by processing the first representative hash value or the first representative hash value included in the OP message, ) A public key of a specific user and (2) a hash value of the specific user information or a value obtained by processing the hash value of the specific user information.
이처럼 본 발명은 인증 정보 등록 단계에서 nm(=N)개의 리프 노드를 가지는 머클 트리가 생성이 되면, 인증 정보 사용 단계에서 머클 트리의 높이(lognN=m)만큼의 연산만을 수행함으로써 빠르게 사용자 검증을 수행하여 인증 정보를 사용할 수 있다. As described above, according to the present invention, when the merge tree having n m (= N) leaf nodes is generated in the authentication information registration step, only the operation of the merge tree height (log n N = m) User authentication can be performed to use authentication information.
이하에서는 상술한 인증 정보를 사용하여 거래를 지원할 수 있는 인증 지원 장치(100)의 구성 및 동작을 설명한다. 이하에서 설명하는 인증 지원 서버는 전술한 인증 지원 서버(100)와 별도의 장치로 구성될 수도 있으나, 설명의 편의를 위해 동일한 장치인 것으로 설명한다. 참고로, 하기의 실시예에서 제1 특정 해쉬값, 제2 특정 해쉬값, 제1 대표 해쉬값, 제2 대표 해쉬값이라는 용어를 전술한 실시예와 혼용하였으나, 각 실시예별로 구별되는 것임을 밝혀둔다.Hereinafter, the configuration and operation of the
통신부(120)는, 기존에 상기 인증 지원 서버(100)가 제1 특정 해쉬값 및 상기 제1 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값을 소정의 데이터 구조로서 데이터베이스에 등록하고 있는 상태에서, 인증 정보 사용 요청으로서 (1) 특정 사용자의 public key 및 (2) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값을 획득할 수 있다. 여기서, 제1 특정 해쉬값, 제1 대표 해쉬값은 전술한 특정 해쉬값, 대표 해쉬값에 대응된다.The
한편, 상기 특정 사용자의 public key가 은행 서버(400)에 전달되고, 상기 특정 사용자가 인증되어 상기 은행 서버(400)로부터 특정 사용자 정보의 해쉬값인 Uhash가 상기 생체 인증 서버(300)에 전송되면, 상기 생체 인증 서버(300)로부터 (i) 상기 public key 및 (ii) 상기 Uhash 또는 상기 Uhash를 가공한 값이 상기 인증 지원 서버(100)로 전송될 수 있다. 이에 대해서는 전술한 실시예에서 설명하였으므로 중복 설명은 생략한다(도 5 및 이에 대한 설명 참조). Meanwhile, when the public key of the specific user is transmitted to the
프로세서(110)는, 상기 (1) 및 (2)에 대한 해쉬값인 제2 특정 해쉬값 및 상기 제2 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값 - 상기 적어도 하나의 이웃 해쉬값은 상기 소정의 데이터 구조를 참조로 하여 결정됨 - 을 연산함으로써 생성되는 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 데이터베이스(200)에 등록된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, 상기 특정 사용자의 public key를 상기 생체 인증 서버(300)에 전송하거나 상기 생체 인증 서버(300)가 관리하고 있는 상기 특정 사용자의 public key를 사용하도록 하여 (i) 상기 생체 인증 서버(300)가, 거래 정보의 해쉬값 또는 이를 가공한 값을 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명한 값을 상기 특정 사용자의 public key를 이용하여 검증하거나 검증하도록 지원하며, (ii) 상기 검증 결과에 대한 메시지를 전송하거나 전송하도록 지원할 수 있다. The
상기 (i)에서, 상기 거래 정보의 해쉬값 또는 이를 가공한 값은 은행 서버(400)에 의해 생성되고, 상기 거래 정보의 해쉬값 또는 이를 가공한 값이 사용자 단말(500)에 전달되어 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명이 이루어져 상기 은행 서버(400)를 거쳐 상기 생체 인증 서버(300)로 전달될 수 있다(도 5 및 이에 대한 설명 참조). In step (i), the hash value or the processed value of the transaction information is generated by the
상기 (ii)에서, 상기 검증 결과가 거짓이면, 상기 프로세서(110)는, 상기 특정 사용자가 입력한 생체 정보가 맞지 않아 거래를 불허함을 나타내는 메시지를 전송하도록 지원할 수 있다. 상기 메시지는 사용자 단말(500), 은행 서버(400), 생체 인증 서버(300) 중 적어도 하나에 전송될 수 있다. 물론, 사용자 단말(500)로 직접 전송될 수도 있다. In step (ii), if the verification result is false, the
제2 특정 해쉬값에 대해서는 전술한 제1 특정 해쉬값에 대한 설명이 동일하게 적용될 수 있다. 즉, 제2 특정 해쉬값과 적어도 하나의 이웃 해쉬값의 연산은 다양한 함수에 의해 수행될 수 있다. 이에 대해서는 전술하였으므로 설명을 생략한다.For the second specific hash value, the description of the first specific hash value described above can be applied equally. That is, the operation of the second specific hash value and the at least one neighbor hash value can be performed by various functions. Since this has been described above, the explanation is omitted.
한편, (i) 상기 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 데이터베이스(200)에 등록된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되지 않거나, (ii) 로컬 데이터베이스에 저장된 상기 (1) 및 (2)에 대한 인증 정보의 상태 정보를 참조한 결과 상기 인증 정보가 소정의 상태인 것으로 판단되면, 상기 통신부(120)는 상기 생체 인증 서버(300)에 에러 메시지를 전송할 수 있다. 예를 들어, 상기 인증 정보가 파기 상태인 경우, 통신부(120)는 상기 생체 인증 서버(300)에 에러 메시지를 전송할 수 있다.(I) a value obtained by processing the second representative hash value or the second representative hash value corresponds to a value obtained by processing the first representative hash value or the first representative hash value registered in the
또한, 상기 (1) 및 (2)가 머클 트리(merkle tree)의 적어도 두 개의 리프 노드에 할당된 경우, 상기 프로세서(110)는, 이를 상기 인증 정보가 파기된 것으로 판단하여 상기 생체 인증 서버(300)에 에러 메시지를 전송하도록 지원할 수 있다. In addition, when the above (1) and (2) are allocated to at least two leaf nodes of a merkle tree, the
프로세서(110)는, 인증 정보 사용 요청이 획득되면, 소정의 transaction ID를 참조하고, 상기 transaction ID를 사용하여 상기 데이터베이스(200)로부터 OP 메시지를 획득하거나 획득하도록 지원할 수 있다. 또한, 상기 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 OP 메시지에 포함된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, 상기 특정 사용자의 public key를 상기 생체 인증 서버(300)에 전송하거나 상기 생체 인증 서버(300)가 관리하고 있는 상기 특정 사용자의 public key를 사용하도록 하여 상기 (i) 내지 (ii)을 수행할 수 있다. The
한편, 상기 제2 대표 해쉬값은, 상기 제2 특정 해쉬값이 특정 리프 노드에 할당된 머클 트리(merkle tree)에서 상기 제2 특정 해쉬값 및 상기 제2 특정 해쉬값과 매칭되는 적어도 하나의 다른 리프 노드에 할당된 해쉬값을 연산하여 생성될 수 있다. The second representative hash value may be at least one other hash value that matches the second specific hash value and the second specific hash value in a merkle tree assigned to a particular leaf node. Can be generated by computing a hash value assigned to a leaf node.
상기 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되는지 확인하는 과정에서 프로세서(110)는 새로운 머클 트리를 생성하거나 생성하도록 지원할 수 있는데, 여기에는 전술한 인증 정보 등록 과정에서 생성된 머클 트리가 이용될 수 있다. 즉, 프로세서(110)는 (z1) (i) 상기 제2 특정 해쉬값과 (ii) 기존에 생성된 머클 트리에서 상기 제2 특정 해쉬값이 할당된 노드의 형제 노드에 할당된 해쉬값을 연산하거나 연산하도록 지원하고, 상기 연산값에 대한 해쉬값을 새로운 머클 트리에서 상기 노드의 부모 노드에 할당하거나 할당하도록 지원할 수 있다. 또한, (z2) 상기 부모 노드가 상기 새로운 머클 트리의 루트 노드이면, 상기 부모 노드에 할당된 해쉬값을 상기 제2 대표 해쉬값으로서 상기 OP 메시지에 포함된 값과 비교하거나 비교하도록 지원하고, (z3) 상기 부모 노드가 상기 새로운 머클 트리의 루트 노드가 아니면, 상기 부모 노드에 할당된 해쉬값을 상기 제2 특정 해쉬값으로 하여 상기 (z1) 내지 (z3)를 반복하여 수행할 수 있다. In the process of determining whether the value obtained by processing the second representative hash value or the second representative hash value corresponds to the value obtained by processing the first representative hash value or the first representative hash value, In which a merge tree generated in the authentication information registration process described above can be used. That is, the
프로세서(110)는, 최종적으로 생성된 머클 트리의 루트값 또는 이를 가공한 값이 상기 OP 메시지에 포함된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, (1) 특정 사용자의 public key 및 (2) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값이 검증된 것으로 판단하거나 판단하도록 지원할 수 있다. When the root value of the finally generated muckree or the processed value corresponds to the value obtained by processing the first representative hash value or the first representative hash value included in the OP message, ) A public key of a specific user and (2) a hash value of the specific user information or a value obtained by processing the hash value of the specific user information.
이처럼 본 발명은 인증 정보 등록 단계에서 nm(=N)개의 리프 노드를 가지는 머클 트리가 생성이 되면, 인증 정보 사용 단계에서 머클 트리의 높이(lognN=m)만큼의 연산만을 수행함으로써 빠르게 사용자 검증을 수행하여 인증 정보를 사용할 수 있다. As described above, according to the present invention, when the merge tree having n m (= N) leaf nodes is generated in the authentication information registration step, only the operation of the merge tree height (log n N = m) User authentication can be performed to use authentication information.
한편, 상기 프로세서(110)는, 상기 검증 결과가 참이고, 소정의 앵커링 조건이 만족되면, 제3 특정 해쉬값 - 상기 제3 특정 해쉬값은, 상기 거래 정보의 해쉬값 또는 이를 가공한 값을 상기 private key로 서명한 값에 대한 해쉬값임 - 및 상기 제3 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 제3 대표 해쉬값 또는 상기 제3 대표 해쉬값을 가공한 값을 상기 데이터베이스(200)에 등록하거나 등록하도록 지원할 수 있다. 이는 거래시 부인 방지를 위해 거래 정보를 데이터베이스(200)에 기록하기 위함이다.Meanwhile, if the verification result is true and the predetermined anchoring condition is satisfied, the
이 경우, 상기 통신부(120)는, 상기 제3 대표 해쉬값 또는 상기 제3 대표 해쉬값을 가공한 값이 상기 데이터베이스(200) 상에 기록된 위치 정보를 나타내는 transaction ID를 획득하고, 상기 획득된 transaction ID를 상기 생체 인증 서버(300)로 전송할 수 있다. In this case, the
한편, 이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Meanwhile, the embodiments of the present invention described above can be implemented in the form of program instructions that can be executed through various computer components and recorded in a computer-readable recording medium. The computer-readable recording medium may include program commands, data files, data structures, and the like, alone or in combination. The program instructions recorded on the computer-readable recording medium may be those specially designed and constructed for the present invention or may be those known and used by those skilled in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those generated by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules for performing the processing according to the present invention, and vice versa.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, Those skilled in the art will appreciate that various modifications, additions and substitutions are possible, without departing from the scope and spirit of the invention as disclosed in the accompanying claims.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention should not be construed as being limited to the above-described embodiments, and all of the equivalents or equivalents of the claims, as well as the following claims, I will say.
100 : 인증 지원 서버
200 : 데이터베이스
300 : 생체 인증 서버
400 : 은행 서버
500 : 사용자 단말
110 : 프로세서
120 : 통신부100: Authentication support server
200: Database
300: Biometric authentication server
400: Bank server
500: user terminal
110: Processor
120:
Claims (22)
(a) 기존에 인증 지원 서버가 제1 특정 해쉬값 및 상기 제1 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값을 소정의 데이터 구조로서 상기 가상 화폐의 상기 블록체인 상에 등록하고 있는 상태에서, 상기 인증 지원 서버가, 인증 정보 사용 요청으로서 (1) 특정 사용자의 public key 및 (2) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값을 획득하는 단계, 및
(b) 상기 (1) 및 (2)에 대한 해쉬값인 제2 특정 해쉬값 및 상기 제2 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값 - 상기 적어도 하나의 이웃 해쉬값은 상기 소정의 데이터 구조를 참조로 하여 결정됨 - 을 연산함으로써 생성되는 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 가상 화폐의 상기 블록체인 상에 등록된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면,
상기 인증 지원 서버가, 상기 특정 사용자의 public key를 생체 인증 서버에 전송하거나 상기 생체 인증 서버가 관리하고 있는 상기 특정 사용자의 public key를 사용하도록 하여 (i) 상기 생체 인증 서버가, 거래 정보의 해쉬값 또는 이를 가공한 값을 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명한 값을 상기 특정 사용자의 public key를 이용하여 검증하거나 검증하도록 지원하며, (ii) 상기 검증 결과에 대한 메시지를 전송하거나 전송하도록 지원하는 단계를 포함하며,
(c) 상기 검증 결과가 참이고, 소정의 앵커링 조건이 만족되면, 상기 인증 지원 서버는, 제3 특정 해쉬값 - 상기 제3 특정 해쉬값은, 상기 거래 정보의 해쉬값 또는 이를 가공한 값을 상기 private key로 서명한 값에 대한 해쉬값임 - 및 상기 제3 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 제3 대표 해쉬값 또는 상기 제3 대표 해쉬값을 가공한 값을 상기 가상 화폐의 상기 블록체인 상에 등록하거나 등록하도록 지원하는 단계
를 더 포함하는 것을 특징으로 하는 방법.A method for supporting transactions using block chains of virtual money,
(a) a first representative hash value or a first representative hash value generated by computing an at least one neighboring hash value matching the first specific hash value and the first specific hash value, (1) a public key of a specific user and (2) a user information of the specific user information as a authentication information use request in a state in which a value of the authentication information is registered as a predetermined data structure on the block chain of the virtual money. Obtaining a hash value or a processed value thereof, and
(b) a second specific hash value, which is a hash value for (1) and (2), and at least one neighbor hash value that matches the second specific hash value, A value obtained by processing a second representative hash value or a value obtained by processing the second representative hash value is calculated based on the first representative hash value or the first representative hash value registered on the block chain of the virtual money, When the representative hash value is associated with the processed value,
Wherein the authentication support server transmits a public key of the specific user to the biometric authentication server or uses the public key of the specific user managed by the biometric authentication server so that the biometric authentication server can notify the hash of the transaction information Value or a value obtained by processing the value by using a private key corresponding to the biometric information of the specific user is verified or verified using the public key of the specific user, and (ii) a message about the verification result is transmitted Or transmitting,
(c) if the verification result is true and the predetermined anchoring condition is satisfied, the authentication support server transmits a hash value of the transaction information or a value obtained by processing the third specific hash value to the third specific hash value A third representative hash value generated by computing a hash value of a value signed by the private key and at least one neighbor hash value matching the third specific hash value or a value obtained by processing the third representative hash value A step of registering or registering on the block chain of the virtual money
≪ / RTI >
상기 (b) 단계에서,
상기 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 가상 화폐의 상기 블록체인 상에 등록된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되지 않거나
로컬 데이터베이스에 저장된 상기 (1) 및 (2)에 대한 인증 정보의 상태 정보를 참조한 결과 상기 인증 정보가 소정의 상태인 것으로 판단되면, 상기 인증 지원 서버는 상기 생체 인증 서버에 에러 메시지를 전송하는 것을 특징으로 하는 방법.The method according to claim 1,
In the step (b)
The value obtained by processing the second representative hash value or the second representative hash value does not correspond to the value obtained by processing the first representative hash value or the first representative hash value registered on the block chain of the virtual money
When it is determined that the authentication information is in a predetermined state as a result of referring to the state information of the authentication information for (1) and (2) stored in the local database, the authentication support server transmits an error message to the biometric authentication server Lt; / RTI >
상기 (1) 및 (2)가 머클 트리(merkle tree)의 적어도 두 개의 리프 노드에 할당된 경우, 상기 인증 지원 서버는, 이를 상기 인증 정보가 파기된 것으로 판단하여 상기 생체 인증 서버에 에러 메시지를 전송하는 것을 특징으로 하는 방법.3. The method of claim 2,
If (1) and (2) are allocated to at least two leaf nodes of a merkle tree, the authentication support server judges that the authentication information has been destroyed and sends an error message to the biometric authentication server Lt; / RTI >
상기 (ii)에서,
상기 검증 결과가 거짓이면, 상기 특정 사용자가 입력한 생체 정보가 맞지 않아 거래를 불허함을 나타내는 메시지를 전송하도록 지원하는 것을 특징으로 하는 방법.The method according to claim 1,
In (ii) above,
If the verification result is false, the biometrics information input by the specific user does not match, thereby supporting a message indicating that the transaction is not allowed.
상기 (i)에서,
상기 거래 정보의 해쉬값 또는 이를 가공한 값은 은행 서버에 의해 생성되고, 상기 거래 정보의 해쉬값 또는 이를 가공한 값이 사용자 단말에 전달되어 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명이 이루어져 상기 은행 서버를 거쳐 상기 생체 인증 서버로 전달되는 것을 특징으로 하는 방법.The method according to claim 1,
In (i) above,
A hash value or a processed value of the transaction information is generated by a bank server and a hash value of the transaction information or a value obtained by processing the hash value is transmitted to a user terminal and a signature is signed with a private key corresponding to the biometric information of the specific user And transmitted to the biometric authentication server via the bank server.
(d) 상기 인증 지원 서버가, 상기 제3 대표 해쉬값 또는 상기 제3 대표 해쉬값을 가공한 값이 상기 가상 화폐의 상기 블록체인 상에 기록된 위치 정보를 나타내는 transaction ID를 획득하는 단계, 및
(e) 상기 인증 지원 서버가, 상기 획득된 transaction ID를 상기 생체 인증 서버로 전송하는 단계를 더 포함하는 것을 특징으로 하는 방법.The method according to claim 1,
(d) obtaining, by the authentication support server, a transaction ID representing a value obtained by processing the third representative hash value or the third representative hash value, the position information being recorded on the block chain of the virtual money; and
(e) transmitting, by the authentication support server, the obtained transaction ID to the biometric authentication server.
상기 (a) 단계는,
상기 특정 사용자의 public key가 은행 서버에 전달되고, 상기 특정 사용자가 인증되어 상기 은행 서버로부터 특정 사용자 정보의 해쉬값인 Uhash가 상기 생체 인증 서버에 전송되면, 상기 생체 인증 서버로부터 (i) 상기 public key 및 (ii) 상기 Uhash 또는 상기 Uhash를 가공한 값이 상기 인증 지원 서버로 전송되는 단계를 포함하는 것을 특징으로 하는 방법.The method according to claim 1,
The step (a)
When the public key of the specific user is transmitted to the bank server, and the specific user is authenticated and Uhash, which is a hash value of specific user information, is transmitted from the bank server to the biometric authentication server, (i) key and (ii) a value obtained by processing the Uhash or the Uhash is transmitted to the authentication support server.
상기 (a) 단계는,
(a1) 상기 인증 정보 사용 요청이 획득되면, 상기 인증 지원 서버가, 소정의 transaction ID를 참조하는 단계, 및
(a2) 상기 인증 지원 서버가, 상기 transaction ID를 사용하여 상기 가상 화폐의 상기 블록체인으로부터 OP 메시지를 획득하는 단계를 포함하고,
상기 (b) 단계에서,
상기 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 OP 메시지에 포함된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, 상기 인증 지원 서버가, 상기 특정 사용자의 public key를 상기 생체 인증 서버에 전송하거나 상기 생체 인증 서버가 관리하고 있는 상기 특정 사용자의 public key를 사용하도록 하여 상기 (i) 내지 (ii)을 수행하는 것을 특징으로 하는 방법.The method according to claim 1,
The step (a)
(a1) when the authentication information use request is obtained, the authentication support server refers to a predetermined transaction ID, and
(a2) the authentication support server obtaining an OP message from the block chain of the virtual currency using the transaction ID,
In the step (b)
If the value obtained by processing the second representative hash value or the second representative hash value corresponds to a value obtained by processing the first representative hash value or the first representative hash value included in the OP message, (I) to (ii) by transmitting the public key of the specific user to the biometric authentication server or using the public key of the specific user managed by the biometric authentication server.
상기 제2 대표 해쉬값은,
상기 제2 특정 해쉬값이 특정 리프 노드에 할당된 머클 트리(merkle tree)에서 상기 제2 특정 해쉬값 및 상기 제2 특정 해쉬값과 매칭되는 적어도 하나의 다른 리프 노드에 할당된 해쉬값을 연산하여 생성되는 것을 특징으로 하는 방법.The method according to claim 1,
The second representative hash value is a value
The hash value assigned to at least one other leaf node matching the second specific hash value and the second specific hash value in the merkle tree allocated to the specific leaf node is calculated ≪ / RTI >
(x1) 상기 인증 지원 서버는, (i) 상기 제2 특정 해쉬값과 (ii) 상기 제2 특정 해쉬값이 할당된 노드의 형제 노드에 할당된 해쉬값을 연산하거나 연산하도록 지원하고, 상기 연산값에 대한 해쉬값을 상기 노드의 부모 노드에 할당하거나 할당하도록 지원하며,
(x2) 상기 부모 노드가 상기 머클 트리의 루트 노드이면, 상기 부모 노드에 할당된 해쉬값을 상기 제2 대표 해쉬값으로서 상기 가상 화폐의 상기 블록체인으로부터 획득된 OP 메시지에 포함된 값과 비교하거나 비교하도록 지원하고,
(x3) 상기 부모 노드가 상기 머클 트리의 루트 노드가 아니면, 상기 부모 노드에 할당된 해쉬값을 상기 제2 특정 해쉬값으로 하여 상기 (x1) 내지 (x3)를 반복하여 수행하는 것을 특징으로 하는 방법.11. The method of claim 10,
(x1) the authentication support server supports to calculate or calculate a hash value assigned to (i) the second specific hash value and (ii) the sibling node of the node to which the second specific hash value is assigned, To assign or assign a hash value for the value to the parent node of the node,
(x2) if the parent node is the root node of the merge tree, comparing the hash value assigned to the parent node with the value contained in the OP message obtained from the block chain of the virtual currency as the second representative hash value Compare,
(x3) If the parent node is not the root node of the merge tree, the step (x1) to (x3) are repeated by using the hash value assigned to the parent node as the second specific hash value Way.
기존에 상기 인증 지원 서버가 제1 특정 해쉬값 및 상기 제1 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값을 소정의 데이터 구조로서 상기 가상 화폐의 상기 블록체인 상에 등록하고 있는 상태에서, 인증 정보 사용 요청으로서 (1) 특정 사용자의 public key 및 (2) 상기 특정 사용자 정보의 해쉬값 또는 이를 가공한 값을 획득하는 통신부, 및
상기 (1) 및 (2)에 대한 해쉬값인 제2 특정 해쉬값 및 상기 제2 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값 - 상기 적어도 하나의 이웃 해쉬값은 상기 소정의 데이터 구조를 참조로 하여 결정됨 - 을 연산함으로써 생성되는 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 가상 화폐의 상기 블록체인 상에 등록된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, 상기 특정 사용자의 public key를 생체 인증 서버에 전송하거나 상기 생체 인증 서버가 관리하고 있는 상기 특정 사용자의 public key를 사용하도록 하여 (i) 상기 생체 인증 서버가, 거래 정보의 해쉬값 또는 이를 가공한 값을 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명한 값을 상기 특정 사용자의 public key를 이용하여 검증하거나 검증하도록 지원하며, (ii) 상기 검증 결과에 대한 메시지를 전송하거나 전송하도록 지원하는 프로세서를 포함하되,
상기 프로세서는,
상기 검증 결과가 참이고, 소정의 앵커링 조건이 만족되면, 제3 특정 해쉬값 - 상기 제3 특정 해쉬값은, 상기 거래 정보의 해쉬값 또는 이를 가공한 값을 상기 private key로 서명한 값에 대한 해쉬값임 - 및 상기 제3 특정 해쉬값과 매칭되는 적어도 하나의 이웃 해쉬값을 연산함으로써 생성되는 제3 대표 해쉬값 또는 상기 제3 대표 해쉬값을 가공한 값을 상기 가상 화폐의 상기 블록체인 상에 등록하거나 등록하도록 지원하는 것을 특징으로 하는 인증 지원 서버.An authentication support server for supporting a transaction using a block chain of virtual money,
A first representative hash value generated by computing the first hash value and at least one neighbor hash value matched with the first specific hash value or a value obtained by processing the first representative hash value (1) a public key of a specific user; and (2) a hash value of the specific user information or a value obtained by processing the public key and the hash value of the specific user information in a state of being registered on the block chain of the virtual money as a predetermined data structure A communicating section for acquiring
The at least one neighborhood hash value matching the second specific hash value and the second specific hash value that are the hash values of (1) and (2) Or a value obtained by processing the second representative hash value is calculated based on the first representative hash value or the first representative hash value registered on the block chain of the virtual money The biometric authentication server transmits the public key of the specific user to the biometric authentication server or uses the public key of the specific user managed by the biometric authentication server, The hash value of the specific user or a value obtained by signing the hashed value of the hash value or the processed value with the private key corresponding to the biometric information of the specific user is verified or verified using the public key of the specific user And (ii) a processor that supports sending or transmitting a message for the verification result,
The processor comprising:
If the verification result is true and the predetermined anchoring condition is satisfied, the third specific hash value - the third specific hash value is a value obtained by adding a hash value of the transaction information or a processed value thereof to the private key And a third representative hash value generated by calculating at least one neighboring hash value that matches the third specific hash value or a value obtained by processing the third representative hash value on the block chain of the virtual currency Wherein the server is configured to support registration or registration.
(i) 상기 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 가상 화폐의 상기 블록체인 상에 등록된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되지 않거나, (ii) 로컬 데이터베이스에 저장된 상기 (1) 및 (2)에 대한 인증 정보의 상태 정보를 참조한 결과 상기 인증 정보가 소정의 상태인 것으로 판단되면, 상기 통신부는 상기 생체 인증 서버에 에러 메시지를 전송하는 것을 특징으로 하는 인증 지원 서버.13. The method of claim 12,
(i) a value obtained by processing the second representative hash value or the second representative hash value is a value obtained by processing the first representative hash value or the first representative hash value registered on the block chain of the virtual money Or (ii) when the authentication information is determined to be in a predetermined state as a result of referring to the state information of the authentication information for (1) and (2) stored in the local database, the communication unit transmits an error And transmits the message to the authentication server.
상기 (1) 및 (2)가 머클 트리(merkle tree)의 적어도 두 개의 리프 노드에 할당된 경우, 상기 프로세서는, 이를 상기 인증 정보가 파기된 것으로 판단하여 상기 생체 인증 서버에 에러 메시지를 전송하도록 지원하는 것을 특징으로 하는 인증 지원 서버.14. The method of claim 13,
If (1) and (2) are allocated to at least two leaf nodes of a merkle tree, the processor determines that the authentication information has been destroyed and transmits an error message to the biometric authentication server Wherein the authentication server comprises:
상기 (ii)에서,
상기 검증 결과가 거짓이면, 상기 프로세서는, 상기 특정 사용자가 입력한 생체 정보가 맞지 않아 거래를 불허함을 나타내는 메시지를 전송하도록 지원하는 것을 특징으로 하는 인증 지원 서버.13. The method of claim 12,
In (ii) above,
And if the verification result is false, the processor supports to transmit a message indicating that the biometrics information input by the specific user is not correct, indicating that the transaction is not allowed.
상기 (i)에서,
상기 거래 정보의 해쉬값 또는 이를 가공한 값은 은행 서버에 의해 생성되고, 상기 거래 정보의 해쉬값 또는 이를 가공한 값이 사용자 단말에 전달되어 상기 특정 사용자의 생체 정보에 대응되는 private key로 서명이 이루어져 상기 은행 서버를 거쳐 상기 생체 인증 서버로 전달되는 것을 특징으로 하는 인증 지원 서버.13. The method of claim 12,
In (i) above,
A hash value or a processed value of the transaction information is generated by a bank server and a hash value of the transaction information or a value obtained by processing the hash value is transmitted to a user terminal and a signature is signed with a private key corresponding to the biometric information of the specific user And transmitted to the biometric authentication server via the bank server.
상기 통신부는,
상기 제3 대표 해쉬값 또는 상기 제3 대표 해쉬값을 가공한 값이 상기 가상 화폐의 상기 블록체인 상에 기록된 위치 정보를 나타내는 transaction ID를 획득하고, 상기 획득된 transaction ID를 상기 생체 인증 서버로 전송하는 것을 특징으로 하는 인증 지원 서버.13. The method of claim 12,
Wherein,
Acquiring a transaction ID indicating a value obtained by processing the third representative hash value or the third representative hash value on the block chain of the virtual currency and transmitting the obtained transaction ID to the biometric authentication server And transmits the authentication result to the authentication server.
상기 특정 사용자의 public key가 은행 서버에 전달되고, 상기 특정 사용자가 인증되어 상기 은행 서버로부터 특정 사용자 정보의 해쉬값인 Uhash가 상기 생체 인증 서버에 전송되면, 상기 생체 인증 서버로부터 (i) 상기 public key 및 (ii) 상기 Uhash 또는 상기 Uhash를 가공한 값이 상기 인증 지원 서버로 전송되는 것을 특징으로 하는 인증 지원 서버.13. The method of claim 12,
When the public key of the specific user is transmitted to the bank server, and the specific user is authenticated and Uhash, which is a hash value of specific user information, is transmitted from the bank server to the biometric authentication server, (i) key and (ii) a value obtained by processing the Uhash or the Uhash is transmitted to the authentication support server.
상기 프로세서는,
상기 인증 정보 사용 요청이 획득되면, 소정의 transaction ID를 참조하고, 상기 transaction ID를 사용하여 상기 가상 화폐의 상기 블록체인으로부터 OP 메시지를 획득하도록 지원하며, 상기 제2 대표 해쉬값 또는 상기 제2 대표 해쉬값을 가공한 값이 상기 OP 메시지에 포함된 상기 제1 대표 해쉬값 또는 상기 제1 대표 해쉬값을 가공한 값과 대응되면, 상기 특정 사용자의 public key를 상기 생체 인증 서버에 전송하거나 상기 생체 인증 서버가 관리하고 있는 상기 특정 사용자의 public key를 사용하도록 하여 상기 (i) 내지 (ii)을 수행하는 것을 특징으로 하는 인증 지원 서버.13. The method of claim 12,
The processor comprising:
When the authentication information use request is obtained, to refer to a predetermined transaction ID and to acquire an OP message from the block chain of the virtual currency using the transaction ID, and the second representative hash value or the second representative value If the value obtained by processing the hash value corresponds to a value obtained by processing the first representative hash value or the first representative hash value included in the OP message, the public key of the specific user is transmitted to the biometric authentication server, (I) to (ii) by using the public key of the specific user managed by the authentication server.
상기 제2 대표 해쉬값은,
상기 제2 특정 해쉬값이 특정 리프 노드에 할당된 머클 트리(merkle tree)에서 상기 제2 특정 해쉬값 및 상기 제2 특정 해쉬값과 매칭되는 적어도 하나의 다른 리프 노드에 할당된 해쉬값을 연산하여 생성되는 것을 특징으로 하는 인증 지원 서버.13. The method of claim 12,
The second representative hash value is a value
The hash value assigned to at least one other leaf node matching the second specific hash value and the second specific hash value in the merkle tree allocated to the specific leaf node is calculated The authentication support server comprising:
(x1) 상기 프로세서는, (i) 상기 제2 특정 해쉬값과 (ii) 상기 제2 특정 해쉬값이 할당된 노드의 형제 노드에 할당된 해쉬값을 연산하거나 연산하도록 지원하고, 상기 연산값에 대한 해쉬값을 상기 노드의 부모 노드에 할당하거나 할당하도록 지원하며,
(x2) 상기 부모 노드가 상기 머클 트리의 루트 노드이면, 상기 부모 노드에 할당된 해쉬값을 상기 제2 대표 해쉬값으로서 상기 가상 화폐의 상기 블록체인으로부터 획득된 OP 메시지에 포함된 값과 비교하거나 비교하도록 지원하고,
(x3) 상기 부모 노드가 상기 머클 트리의 루트 노드가 아니면, 상기 부모 노드에 할당된 해쉬값을 상기 제2 특정 해쉬값으로 하여 상기 (x1) 내지 (x3)를 반복하여 수행하는 것을 특징으로 하는 인증 지원 서버.22. The method of claim 21,
(x1) the processor is configured to: (i) calculate or calculate a hash value assigned to the sibling node of the node to which the second specific hash value and (ii) the second specific hash value are assigned, To assign or assign a hash value to the parent node of the node,
(x2) if the parent node is the root node of the merge tree, comparing the hash value assigned to the parent node with the value contained in the OP message obtained from the block chain of the virtual currency as the second representative hash value Compare,
(x3) If the parent node is not the root node of the merge tree, the step (x1) to (x3) are repeated by using the hash value assigned to the parent node as the second specific hash value Authentication support server.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160051945A KR101773073B1 (en) | 2016-04-28 | 2016-04-28 | Method for allowing a transaction to be processed and server using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160051945A KR101773073B1 (en) | 2016-04-28 | 2016-04-28 | Method for allowing a transaction to be processed and server using the same |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101773073B1 true KR101773073B1 (en) | 2017-08-31 |
Family
ID=59761003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160051945A KR101773073B1 (en) | 2016-04-28 | 2016-04-28 | Method for allowing a transaction to be processed and server using the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101773073B1 (en) |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101852156B1 (en) | 2018-02-21 | 2018-04-26 | 주식회사 올아이티탑 | System for dealing a digital currencywith block chain with preventing security and hacking |
KR101867268B1 (en) * | 2017-10-13 | 2018-06-18 | 주식회사 올아이티탑 | System for dealing a digital currency with block chain with preventing security and hacking |
US10091180B1 (en) | 2012-03-20 | 2018-10-02 | United Services Automobile Association (Usaa) | Behavioral profiling method and system to authenticate a user |
US10164973B1 (en) | 2015-12-02 | 2018-12-25 | United Services Automobile Association (Usaa) | Public authentication systems and methods |
KR20190026558A (en) * | 2017-09-04 | 2019-03-13 | 한국전자통신연구원 | Teriminal apparatus, server apparatus, blockchain and method for fido universal authentication using the same |
KR101937188B1 (en) * | 2018-02-06 | 2019-04-09 | 주식회사 코인플러그 | Method for managing information using merkle tree based on blockchain, server and terminal using the same |
WO2019078623A1 (en) * | 2017-10-17 | 2019-04-25 | 주식회사 코인플러그 | Blockchain-based payment method, and payment server using same |
KR20190043071A (en) * | 2017-10-17 | 2019-04-25 | 주식회사 코인플러그 | Method for payment based on blockchain and payment server using the same |
KR20190050266A (en) * | 2017-11-02 | 2019-05-10 | 단국대학교 산학협력단 | Method and apparatus for autheticating transaction using one time password |
KR102024372B1 (en) * | 2018-12-07 | 2019-09-24 | 주식회사 올아이티탑 | System for dealing a digital currency with block chain matching biometric identification |
US10454677B1 (en) | 2016-02-24 | 2019-10-22 | United Services Automobile Associate (USAA) | Cryptographic key generation from biometric data |
US10586062B1 (en) | 2015-11-23 | 2020-03-10 | United Services Automobile Association (Usaa) | Systems and methods to track, store, and manage events, rights and liabilities |
KR102112682B1 (en) * | 2019-08-21 | 2020-05-21 | 주식회사 올아이티탑 | System for dealing a digital currency with block chain matching biometric identification in connection with insurance |
WO2020116813A1 (en) * | 2018-12-07 | 2020-06-11 | 주식회사 올아이티탑 | Digital virtual currency issued by being matched with biometric authentication signal, and transaction method therefor |
CN111461468A (en) * | 2019-01-02 | 2020-07-28 | 中国移动通信有限公司研究院 | Data processing method and device, data node and storage medium |
US10762506B1 (en) | 2017-05-11 | 2020-09-01 | United Services Automobile Association | Token device for distributed ledger based interchange |
US10771459B2 (en) | 2017-09-04 | 2020-09-08 | Electronics And Telecommunications Research Institute | Terminal apparatus, server apparatus, blockchain and method for FIDO universal authentication using the same |
US10805085B1 (en) | 2017-08-24 | 2020-10-13 | United Services Automobile Association (Usaa) | PKI-based user authentication for web services using blockchain |
US10818170B1 (en) | 2016-01-20 | 2020-10-27 | United Services Automobile Association | Systems and methods for traffic management via inter-party resource allocation |
US10979410B1 (en) | 2015-05-04 | 2021-04-13 | United Services Automobile Association (Usaa) | Systems and methods for utilizing cryptology with virtual ledgers in support of transactions and agreements |
CN112651835A (en) * | 2020-12-30 | 2021-04-13 | 成都佳华物链云科技有限公司 | Alliance chain transaction method and device, electronic equipment and storage medium |
US11854011B1 (en) | 2016-07-11 | 2023-12-26 | United Services Automobile Association (Usaa) | Identity management framework |
-
2016
- 2016-04-28 KR KR1020160051945A patent/KR101773073B1/en active IP Right Grant
Cited By (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10091180B1 (en) | 2012-03-20 | 2018-10-02 | United Services Automobile Association (Usaa) | Behavioral profiling method and system to authenticate a user |
US10979410B1 (en) | 2015-05-04 | 2021-04-13 | United Services Automobile Association (Usaa) | Systems and methods for utilizing cryptology with virtual ledgers in support of transactions and agreements |
US11790097B1 (en) | 2015-11-23 | 2023-10-17 | United Services Automobile Association (Usaa) | Systems and methods to track, store, and manage events, rights, and liabilities |
US11023604B1 (en) | 2015-11-23 | 2021-06-01 | United Services Automobile Association (Usaa) | Systems and methods to track, store, and manage events, rights and liabilities |
US10586062B1 (en) | 2015-11-23 | 2020-03-10 | United Services Automobile Association (Usaa) | Systems and methods to track, store, and manage events, rights and liabilities |
US10601819B1 (en) | 2015-12-02 | 2020-03-24 | United Services Automobile Association (Usaa) | Public authentication systems and methods |
US10263981B1 (en) | 2015-12-02 | 2019-04-16 | United Services Automobile Association (Usaa) | Public authentication systems and methods |
US10164973B1 (en) | 2015-12-02 | 2018-12-25 | United Services Automobile Association (Usaa) | Public authentication systems and methods |
US11765158B1 (en) | 2015-12-02 | 2023-09-19 | United Services Automobile Association (Usaa) | Multi-factor authentication systems and methods |
US11722482B1 (en) | 2015-12-02 | 2023-08-08 | United Services Automobile Association (Usaa) | Public authentication systems and methods |
US11032286B1 (en) | 2015-12-02 | 2021-06-08 | United Services Automobile Association (Usaa) | Block chain authentication systems and methods |
US11615386B1 (en) | 2015-12-02 | 2023-03-28 | United Services Automobile Association (Usaa) | Block chain authentication systems and methods |
US11201862B1 (en) | 2015-12-02 | 2021-12-14 | United Services Automobile Association (Usaa) | Public authentication systems and methods |
US11816984B1 (en) | 2016-01-20 | 2023-11-14 | United Services Automobile Association (Usaa) | Systems and methods for traffic management via inter-party resource allocation |
US10818170B1 (en) | 2016-01-20 | 2020-10-27 | United Services Automobile Association | Systems and methods for traffic management via inter-party resource allocation |
US10880080B1 (en) | 2016-02-24 | 2020-12-29 | Unites Services Automobile Association (USAA) | Cryptographic key generation from biometric data |
US10454677B1 (en) | 2016-02-24 | 2019-10-22 | United Services Automobile Associate (USAA) | Cryptographic key generation from biometric data |
US11854011B1 (en) | 2016-07-11 | 2023-12-26 | United Services Automobile Association (Usaa) | Identity management framework |
US11373187B1 (en) | 2017-05-11 | 2022-06-28 | United Services Automobile Association (Usaa) | Token device for distributed ledger based interchange |
US11769154B1 (en) | 2017-05-11 | 2023-09-26 | United Services Automobile Association (Usaa) | Token device for distributed ledger based interchange |
US10762506B1 (en) | 2017-05-11 | 2020-09-01 | United Services Automobile Association | Token device for distributed ledger based interchange |
US11711219B1 (en) | 2017-08-24 | 2023-07-25 | United Services Automobile Association (Usaa) | PKI-based user authentication for web services using blockchain |
US10805085B1 (en) | 2017-08-24 | 2020-10-13 | United Services Automobile Association (Usaa) | PKI-based user authentication for web services using blockchain |
US10771459B2 (en) | 2017-09-04 | 2020-09-08 | Electronics And Telecommunications Research Institute | Terminal apparatus, server apparatus, blockchain and method for FIDO universal authentication using the same |
KR20190026558A (en) * | 2017-09-04 | 2019-03-13 | 한국전자통신연구원 | Teriminal apparatus, server apparatus, blockchain and method for fido universal authentication using the same |
KR102189554B1 (en) * | 2017-09-04 | 2020-12-11 | 한국전자통신연구원 | Teriminal apparatus, server apparatus, blockchain and method for fido universal authentication using the same |
KR101867268B1 (en) * | 2017-10-13 | 2018-06-18 | 주식회사 올아이티탑 | System for dealing a digital currency with block chain with preventing security and hacking |
KR102050271B1 (en) | 2017-10-17 | 2020-01-08 | 주식회사 코인플러그 | Method for payment based on blockchain and payment server using the same |
WO2019078623A1 (en) * | 2017-10-17 | 2019-04-25 | 주식회사 코인플러그 | Blockchain-based payment method, and payment server using same |
KR20190043071A (en) * | 2017-10-17 | 2019-04-25 | 주식회사 코인플러그 | Method for payment based on blockchain and payment server using the same |
KR20190050266A (en) * | 2017-11-02 | 2019-05-10 | 단국대학교 산학협력단 | Method and apparatus for autheticating transaction using one time password |
KR101998507B1 (en) * | 2017-11-02 | 2019-07-10 | 단국대학교 산학협력단 | Method and apparatus for autheticating transaction using one time password |
KR101937188B1 (en) * | 2018-02-06 | 2019-04-09 | 주식회사 코인플러그 | Method for managing information using merkle tree based on blockchain, server and terminal using the same |
KR101852156B1 (en) | 2018-02-21 | 2018-04-26 | 주식회사 올아이티탑 | System for dealing a digital currencywith block chain with preventing security and hacking |
WO2020116813A1 (en) * | 2018-12-07 | 2020-06-11 | 주식회사 올아이티탑 | Digital virtual currency issued by being matched with biometric authentication signal, and transaction method therefor |
KR102024372B1 (en) * | 2018-12-07 | 2019-09-24 | 주식회사 올아이티탑 | System for dealing a digital currency with block chain matching biometric identification |
CN111461468B (en) * | 2019-01-02 | 2023-10-31 | 中国移动通信有限公司研究院 | Data processing method and device, data node and storage medium |
CN111461468A (en) * | 2019-01-02 | 2020-07-28 | 中国移动通信有限公司研究院 | Data processing method and device, data node and storage medium |
KR102112682B1 (en) * | 2019-08-21 | 2020-05-21 | 주식회사 올아이티탑 | System for dealing a digital currency with block chain matching biometric identification in connection with insurance |
CN112651835B (en) * | 2020-12-30 | 2023-05-23 | 成都佳华物链云科技有限公司 | Alliance chain transaction method, device, electronic equipment and storage medium |
CN112651835A (en) * | 2020-12-30 | 2021-04-13 | 成都佳华物链云科技有限公司 | Alliance chain transaction method and device, electronic equipment and storage medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101773073B1 (en) | Method for allowing a transaction to be processed and server using the same | |
KR101780635B1 (en) | Method for creating, registering, revoking certificate information and server using the same | |
KR101773074B1 (en) | Method for allowing a transaction to be processed and server using the same | |
KR101762245B1 (en) | Method for allowing a user to log in and server using the same | |
KR101756719B1 (en) | Method for allowing a user to log in and server using the same | |
AU2019240671B2 (en) | Methods for secure cryptogram generation | |
US20200336315A1 (en) | Validation cryptogram for transaction | |
KR101766303B1 (en) | Method for creating, registering, revoking certificate information and server using the same | |
US11870769B2 (en) | System and method for identifying a browser instance in a browser session with a server | |
US20180204192A1 (en) | Secure Digital Data Operations | |
US11849051B2 (en) | System and method for off-chain cryptographic transaction verification | |
US20180053182A1 (en) | Dynamic cryptocurrency aliasing | |
EP3632034A1 (en) | Methods and systems for ownership verification using blockchain | |
WO2018177093A1 (en) | Block chain processing method, accounting node, verification node and storage medium | |
AU2017354083A1 (en) | Verifying an association between a communication device and a user | |
KR102284396B1 (en) | Method for generating pki keys based on bioinformation on blockchain network and device for using them | |
JP6377679B2 (en) | Control method, information processing system, computer, and control program | |
KR20190063796A (en) | Identification apparatus and method based on biometric data for blockchain system | |
KR101816652B1 (en) | Method for providing login flow via authentication based on public key infrastructure in response to user’s login request for using service provided by service provider server in use of merkle tree structure on the basis of unspent transaction output protocol and server using the same | |
KR101767534B1 (en) | Method for providing identity verification using card base on near field communication, card, verification terminal, verification support server and identity verification server using the same | |
JP2023503607A (en) | Method and device for automatic digital certificate verification | |
KR101829731B1 (en) | Method and server for registering stockholder's list and recording transfer of stock ownership | |
KR20210053567A (en) | Method for verifying certification improper use in block environment and system therefor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GRNT | Written decision to grant |