KR20190118414A - Method and apparatus for generating cryptographic key using biometric information - Google Patents

Method and apparatus for generating cryptographic key using biometric information Download PDF

Info

Publication number
KR20190118414A
KR20190118414A KR1020180041708A KR20180041708A KR20190118414A KR 20190118414 A KR20190118414 A KR 20190118414A KR 1020180041708 A KR1020180041708 A KR 1020180041708A KR 20180041708 A KR20180041708 A KR 20180041708A KR 20190118414 A KR20190118414 A KR 20190118414A
Authority
KR
South Korea
Prior art keywords
user
hash
value
hash value
private key
Prior art date
Application number
KR1020180041708A
Other languages
Korean (ko)
Inventor
임태현
Original Assignee
주식회사 넥슨코리아
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 넥슨코리아 filed Critical 주식회사 넥슨코리아
Priority to KR1020180041708A priority Critical patent/KR20190118414A/en
Publication of KR20190118414A publication Critical patent/KR20190118414A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • G06K9/00885
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • H04L2209/38
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Abstract

According to the present invention, provided is a cryptographic key generation method using biometric information, which comprises the steps of: obtaining a biometric image of scanning a predetermined portion of a user; obtaining a recognition template representing a biometric characteristic of the user from the biometric image; dividing the recognition template into a plurality of areas, and determining an identification value corresponding to the recognition template based on information on the biometric characteristic in the divided areas; and applying the identification value to a first hash function to calculate a hash value and generating the calculated hash value as a private key of the user used for digital signatures.

Description

생체 정보를 이용한 암호키 생성 방법 및 장치{Method and apparatus for generating cryptographic key using biometric information}Method and apparatus for generating cryptographic key using biometric information {Method and apparatus for generating cryptographic key using biometric information}

생체 정보를 이용한 암호키 생성 방법 및 장치에 관한 것이다.A method and apparatus for generating an encryption key using biometric information are provided.

비대면의 온라인에서 상거래를 가능하게 하기 위해서는 상대방의 신분확인, 문서에 대한 서명 등과 같은 것이 가능해야 한다. 종이 문서에 사용하는 수기서명이나 도장을 이용한 서명은 인터넷 환경에서는 쓰기가 곤란하다. To enable commerce in non-face-to-face online, it must be possible to identify the other party's identity, sign documents, and so on. Handwritten signatures for paper documents and signatures with seals are difficult to use in the Internet environment.

전자 서명은 서명자가 해당 전자 문서에 서명하였음을 나타내기 위해 전자 문서에 첨부되거나 논리적으로 결합된 전자적 형태의 정보를 의미한다. 전자 서명은 암호기술의 인증 기능을 이용해 전자 문서에 서명이 가능하게 한다. 서명자의 전자 서명을 인정하기 위해서는 서명자의 개인키가 필요하다.Electronic signature means an electronic form of information attached or logically coupled to an electronic document to indicate that the signer has signed the electronic document. Digital signatures enable the signing of electronic documents using cryptographic authentication. The signer's private key is required to accept the signer's digital signature.

서명자의 개인키의 분실, 도난, 위조 가능성을 낮추기 위해 생체 정보를 이용한 암호키를 생성하는 방법이 요구된다.There is a need for a method of generating an encryption key using biometric information to reduce the possibility of loss, theft, or forgery of the signer's private key.

분실, 도난, 위조 가능성이 높은 사용자의 개인키의 보안성을 높이고자 한다.We want to improve the security of the private key of the user who is likely to be lost, stolen or forged.

블록체인 기반의 암호화폐의 거래시에 필요한 개인키의 분실, 도난, 위조 등을 막고자 한다.We want to prevent the loss, theft, and forgery of private keys required for transactions of blockchain-based cryptocurrencies.

일측에 따르면, 사용자의 소정 부위가 스캔된 생체 영상을 획득하는 단계; 상기 생체 영상으로부터 상기 사용자의 생체 특징을 나타내는 인식 템플릿을 획득하는 단계; 상기 인식 템플릿을 복수의 영역들로 분할하고, 상기 분할된 영역들 내의 생체 특징 정보에 기초하여, 상기 인식 템플릿에 대응되는 식별값을 결정하는 단계; 및 상기 식별값을 제1 해시 함수에 적용하여 해시값을 산출하고, 상기 산출된 해시값을 디지털 서명에 이용되는 상기 사용자의 개인키로 생성하는 단계를 포함하는, 생체 정보를 이용한 암호키 생성 방법이 제공된다.According to one side, the step of acquiring a biological image scanned a predetermined portion of the user; Obtaining a recognition template representing a biometric characteristic of the user from the biometric image; Dividing the recognition template into a plurality of areas, and determining an identification value corresponding to the recognition template based on biometric characteristic information in the divided areas; And generating a hash value by applying the identification value to a first hash function, and generating the calculated hash value as the private key of the user used for digital signature. Is provided.

다른 일측에 따르면, 생체 정보를 이용한 암호키 생성 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체가 제공된다.According to another aspect, a computer-readable recording medium having a program for executing an encryption key generation method using biometric information on a computer is provided.

일측에 따르면, 전자 장치에서 암호화폐를 관리하는 전자 지갑의 동작을 제어하는 방법에 있어서, 제1 사용자의 전자 지갑을 실행하는 단계; 상기 제1 사용자의 소정 부위가 스캔된 생체 영상을 획득하는 단계; 상기 생체 영상으로부터 상기 제1 사용자의 생체 특징 정보를 나타내는 인식 템플릿을 획득하는 단계; 상기 인식 템플릿에 대응되는 식별값을 제1 해시 함수에 적용하여 해시값을 산출하고, 상기 산출된 해시값을 상기 제1 사용자의 개인키로 생성하는 단계; 및 상기 제1 사용자의 개인키로 상기 제1 사용자와 제2 사용자 간의 상기 암호화폐의 제1 거래 정보를 디지털 서명하여, 상기 암호화폐에 대한 거래를 기록한 원장을 분산하여 관리하는 블록체인의 네트워크의 노드로 전송하는 단계를 포함하는, 방법이 제공된다.According to one side, a method for controlling an operation of an electronic wallet for managing cryptocurrency in an electronic device, the method comprising: executing an electronic wallet of a first user; Acquiring a biological image of scanning a predetermined portion of the first user; Obtaining a recognition template indicating biometric characteristic information of the first user from the biometric image; Calculating a hash value by applying an identification value corresponding to the recognition template to a first hash function, and generating the calculated hash value as the private key of the first user; And a node of a network of a blockchain that digitally signs the first transaction information of the cryptocurrency between the first user and the second user with the private key of the first user and distributes and manages the ledger that recorded the transaction for the cryptocurrency. A method is provided, comprising transmitting to a network.

다른 일측에 따르면, 통신 장치; 센서 장치; 프로세서; 사용자 인터페이스 장치; 및 상기 프로세서에 의해 실행 가능한 명령어들을 저장하는 메모리를 포함하고, 상기 프로세서는, 상기 명령어들을 실행함으로써, 제1 사용자의 전자 지갑을 실행하고, 상기 제1 사용자의 소정 부위가 스캔된 생체 영상을 상기 센서 장치를 통해 획득하고, 상기 생체 영상으로부터 상기 제1 사용자의 생체 특징 정보를 나타내는 인식 템플릿을 획득하고, 상기 인식 템플릿에 대응되는 식별값을 제1 해시 함수에 적용하여 해시값을 산출하고, 상기 산출된 해시값을 상기 제1 사용자의 개인키로 생성하고, 상기 제1 사용자의 개인키로 상기 제1 사용자와 제2 사용자 간의 상기 암호화폐의 제1 거래 정보를 디지털 서명하고, 상기 디지털 서명된 제1 거래 정보를, 상기 암호화폐에 대한 거래를 기록한 원장을 분산하여 관리하는 블록체인의 네트워크의 노드로 상기 통신 장치를 통해 전송하는, 전자 장치가 제공된다.According to the other side, the communication device; Sensor devices; A processor; User interface devices; And a memory configured to store instructions executable by the processor, wherein the processor executes the instructions to execute an electronic wallet of a first user and to display the biometric image from which a predetermined portion of the first user is scanned. Obtaining a recognition template indicating biometric characteristic information of the first user from the biometric image, applying an identification value corresponding to the recognition template to a first hash function, and calculating a hash value; Generate a calculated hash value with the private key of the first user, digitally sign the first transaction information of the cryptocurrency between the first user and the second user with the private key of the first user, and the digitally signed first The transaction information is presented as a node of a blockchain network that distributes and manages ledgers that record transactions for the cryptocurrency. An electronic device for transmitting via a communication device is provided.

또 다른 일측에 따르면, 전자 장치에서 암호화폐를 관리하는 전자 지갑의 동작을 제어하는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체가 제공된다.According to yet another aspect, there is provided a computer-readable recording medium having recorded thereon a program for causing a computer to execute a method for controlling an operation of an electronic wallet that manages cryptocurrency in an electronic device.

사용자의 생체 정보를 이용하여 디지털 서명에 필요한 개인키를 생성함으로써, 개인키의 보안성을 높일 수 있다.By generating a private key for digital signature using biometric information of the user, the security of the private key can be enhanced.

블록체인 기반의 암호화폐의 거래시에 필요한 개인키를 사용자의 생체 정보로부터 생성된 개인키를 이용함으로써, 거래의 안전성을 높일 수 있다.By using the private key generated from the user's biometric information as the private key required for the transaction of the blockchain-based cryptocurrency, the security of the transaction can be enhanced.

본 개시는, 다음의 자세한 설명과 그에 수반되는 도면들의 결합으로 쉽게 이해될 수 있으며, 참조 번호(reference numerals)들은 구조적 구성요소(structural elements)를 의미한다.
도 1은 일실시예에 따라, 전자 장치에서 사용자의 생체 정보로 생성된 개인키로 거래 정보를 디지털 서명하여 블록체인 기반의 암호화폐를 거래하는 방법을 설명하기 위한 개념도이다.
도 2는 일실시예에 따라, 전자 장치 내의 프로세서가 사용자의 생체 정보를 이용한 암호키 생성 방법을 설명하기 위한 흐름도이다.
도 3은 일실시예에 따라, 사용자의 지문이 스캔된 경우, 프로세서가 사용자의 지문 정보를 이용하여 사용자의 개인키를 생성하는 과정을 설명하기 위한 도면이다.
도 4는 일실시예에 따라, 전자 장치 내의 프로세서가 소정 부위를 생체 특징 별로 구분하여 참조 템플릿들을 생성하는 방법을 설명하기 위한 흐름도이다.
도 5는 일실시예에 따라, 프로세서가 복수의 사용자 각각의 스캔된 지문 영상을 이용하여, 참조 템플릿들을 생성하는 과정을 설명하기 위한 도면이다.
도 6은 일실시예에 따라, 프로세서가 인식 템플릿에 대응되는 전체 식별값을 해시 함수에 적용하여, 사용자의 개인키를 생성하는 과정을 설명하기 위한 도면이다.
도 7은 일실시예에 따라, 프로세서가 인식 템플릿에 대응되는 전체 식별값을 해시 함수에 2번 반복 적용하여, 사용자의 개인키를 생성하는 과정을 설명하기 위한 도면이다.
도 8은 일실시예에 따라, 프로세서가 인식 템플릿 내의 복수의 영역들 각각의 식별값을 해시 함수에 순차적으로 적용하여, 사용자의 개인키를 생성하는 과정을 설명하기 위한 도면이다.
도 9는 일실시예에 따라, 프로세서가 인식 템플릿 내의 복수의 영역들 각각의 식별값을 계층적으로 해시 함수에 적용하여, 사용자의 개인키를 생성하는 과정을 설명하기 위한 도면이다.
도 10은 일실시예에 따라, 제1 사용자의 생체 정보로 생성된 개인키로 거래 정보를 디지털 서명하여 블록체인 기반의 암호화폐를 거래하는 전자 장치의 동작을 설명하기 위한 흐름도이다.
도 11은 일실시예에 따라, 암호화폐에 대한 거래를 기록한 원장을 분산하여 관리하는 블록체인의 네트워크 상의 노드의 동작을 설명하기 위한 흐름도이다.
도 12는 일실시예에 따라, 블록체인의 네트워크 상에서 유효한 암호화폐의 거래를 블록체인의 네트워크 상의 노드들로 전파하고, 블록체인에 기록하는 과정을 설명하기 위한 도면이다.
도 13은 일실시예에 따라, 전자 장치에서 디지털 서명된 거래 정보를 블록체인의 네트워크 상의 노드로 전송하는 과정을 설명하기 위한 도면이다.
도 14는 일실시예에 따라, 블록체인의 네트워크 상의 노드에서 거래 정보의 유효성을 검증하는 과정을 설명하기 위한 도면이다.
도 15는 일실시예에 따라, 블록 및 블록체인의 구조를 설명하기 위한 블록도이다.
도 16은 일실시예에 따른 전자 장치의 구성을 도시한 블록도이다.
The present disclosure can be easily understood by the following detailed description and the accompanying drawings in which reference numerals refer to structural elements.
FIG. 1 is a conceptual diagram illustrating a method of transacting a blockchain-based cryptocurrency by digitally signing transaction information with a private key generated from a user's biometric information in an electronic device.
2 is a flowchart illustrating a method of generating an encryption key using biometric information of a user by a processor in an electronic device, according to an embodiment.
3 is a diagram for describing a process of generating, by a processor, a private key of a user using fingerprint information of a user when a fingerprint of the user is scanned, according to an exemplary embodiment.
4 is a flowchart illustrating a method of generating reference templates by dividing a predetermined part by a biometric feature by a processor in an electronic device according to an embodiment.
5 is a diagram for describing a process of generating, by the processor, reference templates by using a scanned fingerprint image of each of a plurality of users, according to an embodiment.
6 is a diagram for describing a process of generating a private key of a user by applying a global identification value corresponding to a recognition template to a hash function, according to an exemplary embodiment.
7 is a diagram for describing a process of generating a private key of a user by repeatedly applying the entire identification value corresponding to a recognition template to a hash function twice, according to an exemplary embodiment.
8 is a diagram for describing a process of generating, by a processor, a private key of a user by sequentially applying identification values of a plurality of regions in a recognition template to a hash function, according to an embodiment.
9 is a diagram for describing a process of generating a private key of a user by applying an identification value of each of a plurality of regions in a recognition template to a hash function hierarchically according to an embodiment.
FIG. 10 is a flowchart illustrating an operation of an electronic device for trading a blockchain-based cryptocurrency by digitally signing transaction information with a private key generated from biometric information of a first user.
11 is a flowchart illustrating an operation of a node on a network of a blockchain for distributing and managing ledgers recording transactions for cryptocurrencies, according to an embodiment.
FIG. 12 is a diagram for describing a process of propagating a transaction of a valid cryptocurrency on a blockchain network to nodes on a blockchain network and recording the blockchain in a blockchain according to an embodiment.
FIG. 13 is a diagram for describing a process of transmitting digitally signed transaction information to a node on a network of a blockchain in an electronic device according to an embodiment.
14 is a diagram for describing a process of validating transaction information at a node on a network of a blockchain, according to an exemplary embodiment.
15 is a block diagram illustrating a structure of a block and a blockchain according to an embodiment.
16 is a block diagram illustrating a configuration of an electronic device according to an embodiment.

이하에서는 도면을 참조하여 다양한 실시예들을 상세히 설명한다. 이하에서 설명되는 실시예들은 여러 가지 상이한 형태로 변형되어 실시될 수도 있다. 실시예들의 특징을 보다 명확히 설명하기 위하여 이하의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서 자세한 설명은 생략한다.Hereinafter, various embodiments will be described in detail with reference to the accompanying drawings. The embodiments described below may be embodied in various different forms. In order to more clearly describe the features of the embodiments, detailed descriptions of matters well known to those skilled in the art to which the following embodiments belong will be omitted.

한편, 본 명세서에서 어떤 구성이 다른 구성과 "연결"되어 있다고 할 때, 이는 '직접적으로 연결'되어 있는 경우뿐 아니라, '그 중간에 다른 구성을 사이에 두고 연결'되어 있는 경우도 포함한다. 또한, 어떤 구성이 다른 구성을 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 그 외 다른 구성을 제외하는 것이 아니라 다른 구성들 더 포함할 수도 있다는 것을 의미한다.On the other hand, when a certain configuration is "connected" with another configuration in the present specification, this includes not only 'directly connected', but also 'connected between the other configuration in the middle'. In addition, when one configuration "includes" another configuration, this means that, unless specifically stated otherwise, it may further include other configurations other than the other configuration.

또한, 본 명세서에서 사용되는 '제 1' 또는 '제 2' 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용할 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다.In addition, terms including ordinal numbers such as 'first' or 'second' as used herein may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.

본 명세서에서, "생체 특징"은 사용자 개개인의 신체로부터 획득된 고유한 특징을 의미할 수 있다. 또한, "생체 특징 정보"는 사용자 개개인의 평생 불변 및 고유한 생체 특성을 포함하는 정보를 의미할 수 있다.As used herein, "biological feature" may mean a unique feature obtained from the body of an individual user. In addition, "biometric information" may refer to information including lifetime invariant and unique biometric characteristics of each user.

본 명세서에서, "템플릿"은 생체 영상을 대상으로 알고리즘 처리하여 생체 특성을 해석하고 추출한 특징 정보로서, 사용자의 고유한 생체 특징 정보를 의미할 수 있다.In the present specification, "template" is characteristic information obtained by analyzing and extracting biological characteristics by performing algorithm processing on a biological image, and may mean unique biological characteristic information of a user.

본 명세서에서, "인식 템플릿"은 사용자 인증을 위해 인증 시점에 사용자로부터 추출된 생체 특징 정보를 의미할 수 있다.In the present specification, “recognition template” may refer to biometric characteristic information extracted from a user at the time of authentication for user authentication.

본 명세서에서, "참조 템플릿"은 인식 템플릿의 소정의 생체 특징을 판단하는 데에 참조되는 템플릿을 의미할 수 있다. 또한, "참조 템플릿"은 소정의 생체 특징을 대표하는 템플릿을 의미할 수도 있다. "참조 템플릿의 기준값"은 참조 템플릿을 가리키는 고유한 값을 의미할 수 있다.As used herein, "reference template" may refer to a template that is referred to to determine certain biometric features of a recognition template. "Reference template" may also mean a template that represents a given biometric characteristic. "Reference value of a reference template" may mean a unique value indicating a reference template.

본 명세서에서, "참조 템플릿들"은 참조 템플릿의 집합을 의미할 수 있다. "참조 템플릿들"은 복수의 사용자들의 생체 특징 정보를 생체 특징 별로 분류하여 구분된 템플릿을 의미할 수 있다.In this specification, "reference templates" may refer to a set of reference templates. "Reference templates" may refer to templates classified by classifying biometric feature information of a plurality of users by biometric features.

본 명세서에서, "해시 함수"는 어떤 형태의 데이터든 입력 데이터의 길이와 상관없이 고정된 길이의 숫자로 변환하는 함수를 의미할 수 있다. 해시 함수는 입력 데이터를 구성하는 비트와 바이트를 이용하여 해시값을 산출할 수 있다.As used herein, the term "hash function" may refer to a function that converts any type of data into a fixed length number regardless of the length of the input data. The hash function may calculate a hash value using bits and bytes constituting the input data.

본 명세서에서, "전자 지갑"은 전자 장치에 전자적인 방법으로 가치를 저장하여 실물 화폐의 교환없이 온라인 또는 오프라인에서 거래를 가능하게 하는 수단을 의미할 수 있다. 또한, "전자 지갑"은 전자상거래에서 사용되는 전자지불시스템의 일종으로, 전자 장치의 메모리나 가상 계좌에 화폐 가치를 저장하여 지갑처럼 사용하면서 전자상거래 시 대금을 결제할 수 있는 소프트웨어를 의미할 수 있다.As used herein, the term "electronic wallet" may refer to a means of storing a value in an electronic device in an electronic manner to enable a transaction online or offline without exchanging physical currency. In addition, "e-wallet" is a kind of electronic payment system used in electronic commerce, it may mean a software that can store money value in the memory or virtual account of the electronic device and use it as a wallet while paying for e-commerce. have.

본 명세서에서, "암호화폐"는 암호화 방법을 사용하여 교환수단으로 가능하도록 고안된 디지털 화폐를 의미할 수 있다. 또한, "암호화폐"는 암호화 방법을 사용하여 거래의 안전을 확보하고, 추가적 단위의 생성을 통제하며, 자산의 이전을 인증할 수 있다.In the present specification, "cryptocurrency" may mean a digital currency designed to be possible as an exchange means using an encryption method. In addition, "Cryptocurrency" can use cryptographic methods to secure transactions, control the creation of additional units, and authorize the transfer of assets.

본 명세서에서, "블록체인"은 무결성을 확보하고 유지하기 위해 순서에 따라 연결된 블록들이 거래 정보를 암호화 기법과 보안기술을 이용해 협상하는 알고리즘으로 구성된 소프트웨어 요소를 활용하는 원장(ledger)의 분산 P2P (Peer to Peer)시스템을 의미할 수 있다. 여기서, 분산 P2P 시스템은 분산 시스템의 특수한 형태일 수 있다. 또한, P2P 시스템은 중앙 노드의 조정 없이 네크워크의 모든 노드들이 서로에게 자원(처리 능력, 저장 공간, 데이터 또는 네트워크 대역폭 등)을 제공할 수 있다. 또한, "블록체인"은 거래 정보를 기록한 원장을 특정 기관의 중앙 서버가 아닌 P2P 네트워크에 분산하여 네트워크 내의 노드들이 공동으로 기록하고 관리하는 분산원장(distributed ledger) 기술을 의미할 수 있다.In the present specification, a "blockchain" refers to a distributed P2P (ledger) of a ledger (learner) that utilizes a software component composed of algorithms in which blocks connected in order negotiate transaction information using encryption and security techniques to secure and maintain integrity. Peer to Peer) system. Here, the distributed P2P system may be a special type of distributed system. In addition, a P2P system allows all nodes of a network to provide resources (processing capacity, storage space, data or network bandwidth, etc.) to each other without coordination of a central node. In addition, "blockchain" may refer to a distributed ledger technology in which the ledger recording the transaction information is distributed to the P2P network, not the central server of a specific institution, to jointly record and manage the nodes in the network.

본 명세서에서, "전자 장치"는 전기 에너지를 공급 받아 동작하는 장치를 의미할 수 있다. 예를 들면, 전자 장치는 스마트폰, 태블릿 PC, PC, TV, 스마트 TV, 휴대폰, PDA(personal digital assistant), 랩톱, 또는 비모바일 컴퓨팅 장치 등일 수 있으나, 이에 제한되지 않는다.In the present specification, "electronic device" may refer to a device that operates by receiving electrical energy. For example, the electronic device may be a smartphone, a tablet PC, a PC, a TV, a smart TV, a mobile phone, a personal digital assistant, a laptop, a non-mobile computing device, or the like, but is not limited thereto.

본 명세서에서, "노드"는 블록체인의 네트워크 내에서 구성요소를 의미할 수 있다. 예를 들면, 노드는 특수 목적 컴퓨터(Special-purpose Computer), 범용 컴퓨터(General-purpose Computer), 슈퍼 컴퓨터(Supercomputer), 대형 컴퓨터(Mainframe Computer), 개인용 컴퓨터(Personal Computer), 스마트폰, 태블릿 PC 등일 수 있으나, 이에 제한되지 않는다.In the present specification, "node" may mean a component within a network of a blockchain. For example, the node may be a special-purpose computer, a general-purpose computer, a supercomputer, a mainframe computer, a personal computer, a smartphone, a tablet PC. Etc., but is not limited thereto.

도 1은 일실시예에 따라, 전자 장치에서 사용자의 생체 정보로 생성된 개인키로 거래 정보를 디지털 서명하여 블록체인 기반의 암호화폐를 거래하는 방법을 설명하기 위한 개념도이다.1 is a conceptual diagram illustrating a method of transacting a blockchain-based cryptocurrency by digitally signing transaction information with a private key generated as biometric information of a user in an electronic device according to an embodiment.

전자 장치(10)는 제1 사용자의 입력에 따라, 암호화폐를 관리하는 제1 사용자의 전자 지갑을 실행할 수 있다. 전자 장치(10)는 제1 사용자가 제2 사용자에게 소정의 암호화폐를 이체하는 데에 이용되는 제1 거래 정보에 기초하여, 암호화폐의 거래를 수행할 수 있다. The electronic device 10 may execute the electronic wallet of the first user who manages the cryptocurrency according to the input of the first user. The electronic device 10 may perform a transaction of a cryptocurrency based on the first transaction information used by the first user to transfer a predetermined cryptocurrency to the second user.

전자 장치(10)는 제1 사용자가 제2 사용자에게 소정의 암호화폐를 이체한 내역을 기록하기 위해 블록체인의 네트워크 상의 노드들(20, 20-2, 20-3, 20-4, 20-5) 중 제1 노드(20)로 제1 거래 정보를 전송할 수 있다. 구체적으로, 전자 장치(10)는 제1 사용자의 개인키로 제1 거래 정보를 디지털 서명된 암호문과 제1 거래 정보를 제1 노드(20)로 전송할 수 있다. 또한, 전자 장치(10)는 제1 사용자의 공개키를 제1 노드(20)로 전송할 수 있다. 제2 사용자가 보유한 전자 장치(10-2)는 제1 사용자로부터 소정의 암호화폐가 입금된 메시지를 수신할 수 있다.The electronic device 10 uses the nodes 20, 20-2, 20-3, 20-4, and 20-on the network of the blockchain to record details of the transfer of a predetermined cryptocurrency by the first user to the second user. 5) the first transaction information may be transmitted to the first node 20. In detail, the electronic device 10 may transmit a digitally signed cipher text and first transaction information to the first node 20 using the first user's private key. In addition, the electronic device 10 may transmit the public key of the first user to the first node 20. The electronic device 10-2 held by the second user may receive a message in which a predetermined cryptocurrency is deposited from the first user.

여기서, 제1 사용자의 개인키 및 공개키는 제1 사용자의 생체 정보에 기초하여 생성될 수 있다. 전자 장치(10) 내의 프로세서(15)는 제1 사용자의 생체 정보를 획득할 수 있다. 프로세서(15)는 제1 사용자의 생체 정보를 나타내는 식별값을 해시 함수에 적용하여, 산출된 해시값을 제1 사용자의 개인키로 생성할 수 있다. 또한, 프로세서(15)는 제1 사용자의 개인키를 해시 함수에 적용하여, 산출된 해시값을 제1 사용자의 공개키로 생성할 수 있다. 사용자의 생체 정보를 이용하여 개인키를 생성하는 방법은 도 2 내지 도 9에서 상세하게 설명한다.Here, the private key and the public key of the first user may be generated based on the biometric information of the first user. The processor 15 in the electronic device 10 may obtain biometric information of the first user. The processor 15 may apply the identification value representing the biometric information of the first user to the hash function to generate the calculated hash value as the private key of the first user. In addition, the processor 15 may apply the private key of the first user to the hash function to generate the calculated hash value as the public key of the first user. A method of generating a private key using biometric information of a user will be described in detail with reference to FIGS. 2 to 9.

한편, 제1 노드(20)는 제1 사용자의 공개키를 이용하여, 제1 거래 정보의 유효성을 검증할 수 있다. 제1 거래 정보가 유효하면, 제1 노드(20)는 제1 거래 정보를 후보 블록에 추가할 수 있다. 제1 노드(20)는 후보 블록에 대한 작업 증명을 수행하여 블록체인에 후보 블록을 유효한 블록으로 추가할 수 있다.Meanwhile, the first node 20 may verify the validity of the first transaction information by using the public key of the first user. If the first transaction information is valid, the first node 20 may add the first transaction information to the candidate block. The first node 20 may add a candidate block to the blockchain as a valid block by performing proof of work on the candidate block.

도 2는 일실시예에 따라, 전자 장치 내의 프로세서가 사용자의 생체 정보를 이용한 암호키 생성 방법을 설명하기 위한 흐름도이다.2 is a flowchart illustrating a method of generating an encryption key using biometric information of a user by a processor in an electronic device, according to an embodiment.

단계 S210에서, 프로세서(15)는 사용자의 소정 부위가 스캔된 생체 영상을 획득할 수 있다. 여기서, 소정 부위는 사용자의 신체 일부의 부위로써, 사용자의 고유 생체 특성을 추출할 수 있는 부위가 될 수 있다. 예를 들면, 소정 부위는 사용자의 손, 눈, 혈관, 얼굴 등일 수 있고, 이에 한정되지 않는다. 또한, 소정 부위가 스캔된 생체 영상은, 지문 영상, 홍채 영상, 정맥 영상, 얼굴 영상일 수 있다.In operation S210, the processor 15 may acquire a biometric image in which a predetermined portion of the user is scanned. Here, the predetermined part may be a part of the user's body part, and may be a part from which the user's unique biometric characteristic may be extracted. For example, the predetermined part may be a user's hand, eye, blood vessel, face, and the like, but is not limited thereto. In addition, the biometric image in which the predetermined region is scanned may be a fingerprint image, an iris image, a vein image, or a face image.

한편, 프로세서(15)는 전자 장치(10) 내에 구비된 센서 장치로부터 사용자의 생체 영상을 획득할 수 있다. 또한, 프로세서(15)는 외부의 센서 장치로부터 사용자의 생체 영상을 획득할 수도 있다.The processor 15 may acquire a biometric image of a user from a sensor device provided in the electronic device 10. In addition, the processor 15 may obtain a biological image of the user from an external sensor device.

단계 S220에서, 프로세서(15)는 생체 영상으로부터 사용자의 생체 특징을 나타내는 인식 템플릿을 획득할 수 있다. 프로세서(15)는 소정의 알고리즘에 따라 생체 영상을 처리하여 사용자의 고유의 생체 특징 정보를 포함하는 인식 템플릿을 획득할 수 있다.In operation S220, the processor 15 may obtain a recognition template representing the biometric characteristic of the user from the biometric image. The processor 15 may acquire the recognition template including the biometric characteristic information of the user by processing the biometric image according to a predetermined algorithm.

단계 S230에서, 프로세서(15)는 인식 템플릿을 복수의 영역들로 분할하고, 분할된 영역들 내의 생체 특징 정보에 기초하여, 인식 템플릿에 대응되는 식별값을 결정할 수 있다. 여기서, 식별값은 인식 템플릿을 구분하기 위한 값으로써, 숫자, 문자, 및 기호 중 적어도 하나로 표현될 수 있다. 따라서, 인식 템플릿이 다르면, 식별값도 다르다.In operation S230, the processor 15 may divide the recognition template into a plurality of areas, and determine an identification value corresponding to the recognition template based on the biometric characteristic information in the divided areas. Here, the identification value is a value for distinguishing the recognition template and may be expressed by at least one of numbers, letters, and symbols. Therefore, if the recognition templates are different, the identification values are also different.

프로세서(15)는 분할된 영역들 내의 생체 특징 정보에 기초하여, 분할된 영역들 각각에 매칭되는 참조 템플릿을 결정할 수 있다. 프로세서(15)는 분할된 영역들 각각에, 참조 템플릿의 기준값을 식별값으로 할당할 수 있다.The processor 15 may determine a reference template that matches each of the divided regions based on the biometric characteristic information in the divided regions. The processor 15 may assign a reference value of the reference template as an identification value to each of the divided regions.

구체적으로, 프로세서(15)는 분할된 영역들 내에서, 소정 부위의 생체 특징을 인식하는 데에 이용되는 적어도 하나의 특징점 및 적어도 하나의 특징선을 검출할 수 있다. 소정 부위 내의 적어도 하나의 특징점 및 적어도 하나의 특징선은 사용자마다 다르기 때문에, 적어도 하나의 특징점 및 적어도 하나의 특징선으로부터 획득된 정보는 고유한 정보를 나타낼 수 있다. 프로세서(15)는 적어도 하나의 특징점의 위치, 개수, 분포도 및 적어도 하나의 특징선의 방향, 패턴 중 적어도 하나에 기초하여, 소정 부위의 생체 특징 정보를 획득할 수 있다. 프로세서(15)는 분할된 영역들 내의 생체 특징 정보 및 참조 템플릿들의 정보에 기초하여, 분할된 영역들 각각에 매칭되는 참조 템플릿을 결정할 수 있다.In detail, the processor 15 may detect at least one feature point and at least one feature line used to recognize a biometric feature of a predetermined region in the divided regions. Since at least one feature point and at least one feature line in the predetermined region are different for each user, the information obtained from the at least one feature point and the at least one feature line may represent unique information. The processor 15 may acquire the biometric characteristic information of the predetermined region based on at least one of the position, the number, the distribution of the at least one feature point, the direction of the at least one feature line, and the pattern. The processor 15 may determine a reference template that matches each of the divided regions based on the biometric characteristic information in the divided regions and the information of the reference templates.

여기서, 참조 템플릿들은 소정 부위의 생체 특징을 각각을 대표할 수 있다. 제1 참조 템플릿은 소정 부위의 제1 생체 특징을 대표하는 템플릿일 수 있고, 제2 참조 템플릿은 소정 부위의 제2 생체 특징을 대표하는 템플릿일 수 있다. 또한, 참조 템플릿들의 정보는 참조 템플릿을 나타내는 기준값의 정보를 포함할 수 있고, 이에 한정되지 않는다.Here, the reference templates may each represent a biometric characteristic of a predetermined site. The first reference template may be a template representing the first biometric characteristic of the predetermined site, and the second reference template may be a template representing the second biological feature of the predetermined site. Also, the information of the reference templates may include information of a reference value indicating the reference template, but is not limited thereto.

단계 S240에서, 프로세서(15)는 식별값을 제1 해시 함수에 적용하여 해시값을 산출할 수 있다. 프로세서(15)는 산출된 해시값을 디지털 서명에 이용되는 사용자의 개인키로 생성할 수 있다. 프로세서(15)가 사용자의 생체 정보를 이용하여 디지털 서명에 필요한 개인키를 생성함으로써, 개인키의 보안성을 높일 수 있다.In operation S240, the processor 15 may calculate the hash value by applying the identification value to the first hash function. The processor 15 may generate the calculated hash value as a user's private key used for digital signature. The processor 15 may increase the security of the private key by generating a private key for digital signature using the biometric information of the user.

예를 들면, 프로세서(15)는 분할된 영역들 각각에 할당된 식별값을 소정의 기준으로 나열하여, 전체 식별값을 획득할 수 있다. 프로세서(15)는 전체 식별값을 제1 해시 함수에 적용하여 제1 해시값을 산출할 수 있다. 프로세서(15)는 산출된 제1 해시값을 사용자의 개인키로 생성할 수 있다. 도 6에서는, 프로세서(15)가 인식 템플릿에 대응되는 전체 식별값을 해시 함수에 적용하여, 사용자의 개인키를 생성하는 과정을 상세하게 설명한다.For example, the processor 15 may list the identification values assigned to each of the divided regions on a predetermined basis to obtain the entire identification value. The processor 15 may calculate the first hash value by applying the entire identification value to the first hash function. The processor 15 may generate the calculated first hash value as a private key of the user. In FIG. 6, the process of generating the private key of the user by applying the entire identification value corresponding to the recognition template to the hash function will be described in detail.

다른 예를 들면, 프로세서(15)는 분할된 영역들 각각에 할당된 식별값이 결합되어 획득된 전체 식별값을 제1 해시 함수에 적용하여 제1 해시값을 산출할 수 있다. 프로세서(15)는 산출된 제1 해시값을 제1 해시 함수에 적용하여 제2 해시값을 산출할 수 있다. 프로세서(15)는 제2 해시값을 사용자의 개인키로 생성할 수 있다. 도 7에서는, 프로세서(15)가 인식 템플릿에 대응되는 전체 식별값을 해시 함수에 2번 반복 적용하여, 사용자의 개인키를 생성하는 과정을 상세하게 설명한다.For another example, the processor 15 may calculate the first hash value by applying the entire identification value obtained by combining the identification values assigned to each of the divided regions to the first hash function. The processor 15 may calculate the second hash value by applying the calculated first hash value to the first hash function. The processor 15 may generate the second hash value as the private key of the user. In FIG. 7, a process of generating a private key of a user by repeatedly applying the entire identification value corresponding to the recognition template to the hash function twice in FIG. 7 is described in detail.

또 다른 예를 들면, 프로세서(15)는 복수(N 개, N은 2 이상임)의 영역들 중 제1 영역에 할당된 제1 기준값을 제1 해시 함수에 적용하여 제1 해시값을 산출할 수 있다. 프로세서(15)는 제1 해시값과 복수의 영역들 중 제2 영역에 할당된 제2 기준값을 제1 해시 함수에 적용하여 제2 해시값을 산출할 수 있다. 마찬가지로, 프로세서(15)는 제n-1 기준값과 상기 복수의 영역들 중 제n 영역에 할당된 제n 기준값을 상기 제1 해시 함수에 적용하여 제n 해시값을 산출하는 과정을, n=3부터 순차적으로 1씩 증가시켜 n=N까지 반복 수행하여 최종적으로 제N 해시값을 산출할 수 있다. 프로세서(15)는 제N 해시값을 사용자의 개인키로 생성할 수 있다. 도 8에서는, 프로세서(15)가 인식 템플릿 내의 복수의 영역들 각각의 식별값을 해시 함수에 순차적으로 적용하여, 사용자의 개인키를 생성하는 과정을 상세하게 설명한다.In another example, the processor 15 may calculate a first hash value by applying a first reference value allocated to a first region among a plurality of regions (N, N is 2 or more) to a first hash function. have. The processor 15 may calculate the second hash value by applying the first hash value and the second reference value allocated to the second area among the plurality of areas to the first hash function. Similarly, the processor 15 applies the n-th reference value and the n-th reference value allocated to the n-th area of the plurality of areas to the first hash function to calculate the n-th hash value, where n = 3 The Nth hash value may be finally calculated by repeating n = N sequentially by increasing the values by 1 sequentially. The processor 15 may generate the N-th hash value as the private key of the user. In FIG. 8, a process of generating a private key of a user by sequentially applying identification values of each of the plurality of regions in the recognition template to a hash function will be described in detail with reference to FIG. 8.

또 다른 예를 들면, 프로세서(15)는 복수(N 개, N은 2 이상임)의 영역들 중 제n 영역에 할당된 제n 기준값을 제1 해시 함수에 적용하여 제1 계층의 제n 해시값을 산출하는 과정을 n=1부터 순차적으로 1씩 증가시켜 n=N까지 반복 수행할 수 있다. 프로세서(15)는 N 개의 제1 계층의 해시값을 산출할 수 있다. 여기서, 제1 계층의 해시값은 제1 해시 함수를 1번 적용되어 산출된 값이다.In another example, the processor 15 may apply the nth reference value assigned to the nth region among the plurality of N regions, where N is two or more, to the first hash function to apply the nth hash value of the first layer. The process of calculating n may be repeatedly performed from n = 1 to n = N sequentially. The processor 15 may calculate hash values of the N first layers. Here, the hash value of the first layer is a value calculated by applying the first hash function once.

프로세서(15)는 제1 계층의 해시값들을 2개씩 결합하여 제1 해시 함수에 적용할 수 있다. 그 결과, 프로세서(15)는 제2 계층의 해시값들을 산출할 수 있다. 여기서, 제1 계층의 해시값들이 2개씩 그룹핑된 결과, 1개의 제1 계층의 해시값이 남는 경우, 남은 제1 계층의 해시값은 제2 계층의 해시값과 결합되고, 제1 해시 함수에 적용됨으로써, 프로세서(15)는 제3 계층의 해시값으로 산출될 수 있다.The processor 15 may combine two hash values of the first layer and apply the two hash values to the first hash function. As a result, the processor 15 may calculate hash values of the second layer. Here, when a hash value of one first layer is left as a result of grouping hash values of the first layer by two, the hash value of the remaining first layer is combined with the hash value of the second layer, and the first hash function is added to the first hash function. By being applied, the processor 15 may be calculated as a hash value of the third layer.

마찬가지로, 프로세서(15)는 n-1 계층의 해시값들을 2개씩 결합하여 제1 해시 함수에 적용하여 n 계층의 해시값을 산출하는 과정을, n=3부터 순차적으로 1씩 증가시켜 최상위 계층(N이 짝수이면, 최상위 계층은 N/2 계층이고, N이 홀수이면, 최상위 계층은 (N+1)/2 계층임)의 해시값의 개수가 1개일 때까지 반복 수행할 수 있다. 프로세서(15)는 최상위 계층의 해시값의 개수가 1개이면, 최상위 계층의 해시값을 사용자의 개인키로 생성할 수 있다. 도 9에서는, 프로세서(15)가 인식 템플릿 내의 복수의 영역들 각각의 식별값을 계층적으로 해시 함수에 적용하여, 사용자의 개인키를 생성하는 과정을 상세하게 설명한다.Similarly, the processor 15 combines two hash values of the n-1 layer by two to apply the first hash function to calculate the hash value of the n layer. If N is even, the highest layer is an N / 2 layer, and if N is odd, the highest layer may be repeated until the number of hash values of (N + 1) / 2 layers) is one. When the number of hash values of the highest layer is one, the processor 15 may generate the hash value of the highest layer as the private key of the user. In FIG. 9, a process of generating a private key of a user by applying an identification value of each of a plurality of regions in a recognition template hierarchically to a hash function will be described in detail with reference to FIG. 9.

프로세서(15)는 사용자의 개인키를 제1 해시 함수에 적용하여 산출된 해시값을, 사용자의 공개키로 생성할 수 있다. 프로세서(15)는 사용자의 공개키를 암호화폐에 대한 거래를 기록한 원장을 분산하여 관리하는 블록체인의 네트워크 상의 노드로 전송할 수 있다.The processor 15 may generate the hash value calculated by applying the user's private key to the first hash function, as the user's public key. The processor 15 may transmit the public key of the user to a node on the network of the blockchain that distributes and manages the ledger recording the transaction for the cryptocurrency.

블록체인 기반의 암호화폐의 거래시에 필요한 개인키를 사용자의 생체 정보로부터 생성된 개인키를 이용함으로써, 거래의 안전성을 높일 수 있다.By using the private key generated from the user's biometric information as the private key required for the transaction of the blockchain-based cryptocurrency, the security of the transaction can be enhanced.

도 3은 일실시예에 따라, 사용자의 지문이 스캔된 경우, 프로세서가 사용자의 지문 정보를 이용하여 사용자의 개인키를 생성하는 과정을 설명하기 위한 도면이다.3 is a diagram for describing a process of generating, by a processor, a private key of a user using fingerprint information of a user when a fingerprint of the user is scanned, according to an exemplary embodiment.

도 3의 310을 참고하면, 프로세서(15)는 사용자의 지문이 스캔된 지문 영상을 획득할 수 있다. 센서 장치는 사용자의 지문을 스캔함으로써, 지문 영상을 획득하고, 프로세서(15)로 전달할 수 있다. 프로세서(15)는 지문 영상을 소정의 알고리즘에 따라 처리하여, 지문 인식 템플릿을 생성할 수 있다. 여기서, 소정의 알고리즘은 영상을 평활화(smoothing), 이진화(binarization) 및 세선화(thinning) 처리하는 알고리즘일 수 있고, 이에 한정되지 않는다.Referring to 310 of FIG. 3, the processor 15 may acquire a fingerprint image from which a user's fingerprint is scanned. The sensor device may acquire a fingerprint image and scan the fingerprint of the user and transmit the fingerprint image to the processor 15. The processor 15 may generate a fingerprint recognition template by processing the fingerprint image according to a predetermined algorithm. Here, the predetermined algorithm may be an algorithm for smoothing, binarization, and thinning an image, but is not limited thereto.

도 3의 320을 참고하면, 프로세서(15)는 지문 인식 템플릿을 복수의 영역들로 분할할 수 있다. 도 3의 320에 도시된 바와 같이, 프로세서(15)는 지문 인식 템플릿을 9개의 영역(321, 322, 323, 324, 325, 326, 327, 328, 329)으로 균일하게 분할할 수 있다.Referring to 320 of FIG. 3, the processor 15 may divide the fingerprint recognition template into a plurality of regions. As illustrated at 320 in FIG. 3, the processor 15 may evenly divide the fingerprint recognition template into nine regions 321, 322, 323, 324, 325, 326, 327, 328, and 329.

도 3의 330을 참고하면, 프로세서(15)는 지문 인식 템플릿 내의 분할된 영역들(321, 322, 323, 324, 325, 326, 327, 328, 329)의 생체 특징 정보에 기초하여, 분할된 영역들(321, 322, 323, 324, 325, 326, 327, 328, 329) 각각에 매칭되는 참조 템플릿을 결정할 수 있다. Referring to 330 of FIG. 3, the processor 15 is divided based on the biometric characteristic information of the divided regions 321, 322, 323, 324, 325, 326, 327, 328, and 329 in the fingerprint recognition template. A reference template matching each of the regions 321, 322, 323, 324, 325, 326, 327, 328, 329 may be determined.

여기서, 지문의 특징 정보는 지문의 특징점 및 지문의 특징선에 기초하여 결정될 수 있고, 이에 한정되지 않는다. 지문의 특징점은 지문에서 나타나는 융선, 골, 끝점, 분기점, 중심점, 아래 중심점, 삼각주 중 적어도 하나에 기초하여 결정될 수 있다.The feature information of the fingerprint may be determined based on the feature point of the fingerprint and the feature line of the fingerprint, but is not limited thereto. The feature point of the fingerprint may be determined based on at least one of a ridge, a valley, an endpoint, a branch point, a center point, a lower center point, and a delta in the fingerprint.

프로세서(15)는 분할된 영역들(321, 322, 323, 324, 325, 326, 327, 328, 329) 각각의 지문 특징 정보에 기초하여, 참조 템플릿들 중 인식 템플릿의 분할된 영역에 매칭되는 소정의 참조 템플릿을 결정할 수 있다. 여기서, 참조 템플릿들은 지문 특징들 각각을 대표하는 템플릿들일 수 있다. 참조 템플릿과 관련된 내용은 도 4 및 도 5에서 상세하게 설명한다.The processor 15 is matched to the divided region of the recognition template among the reference templates based on the fingerprint characteristic information of each of the divided regions 321, 322, 323, 324, 325, 326, 327, 328, and 329. The predetermined reference template can be determined. Here, the reference templates may be templates representing each of the fingerprint features. Details related to the reference template will be described in detail with reference to FIGS. 4 and 5.

도 3의 330에 도시된 바와 같이, 프로세서(15)는 분할된 영역들(321, 322, 323, 324, 325, 326, 327, 328, 329) 각각의 지문 특징 정보에 기초하여, 분할된 영역들(321, 322, 323, 324, 325, 326, 327, 328, 329) 각각에 매칭되는 참조 템플릿(331, 332, 333, 334, 335, 336, 337, 338, 339)을 결정할 수 있다. 예를 들면, 프로세서(15)는 제1 영역(321)의 지문의 특징점 및 지문의 특징선에 기초하여, 제1 영역(321)에 매칭되는 제1 참조 템플릿(331)을 결정할 수 있다.As illustrated at 330 of FIG. 3, the processor 15 may divide the divided regions based on fingerprint feature information of each of the divided regions 321, 322, 323, 324, 325, 326, 327, 328, and 329. Reference templates 331, 332, 333, 334, 335, 336, 337, 338, and 339 that match each of the fields 321, 322, 323, 324, 325, 326, 327, 328, and 329 may be determined. For example, the processor 15 may determine the first reference template 331 matching the first area 321 based on the feature point of the fingerprint of the first area 321 and the feature line of the fingerprint.

도 3의 340을 참고하면, 참조 템플릿(331, 332, 333, 334, 335, 336, 337, 338, 339) 각각은 템플릿을 나타내는 기준값이 할당될 수 있다. 여기서, 기준값은, 참조 템플릿을 나타내는 고유값이다. 따라서, 참조 템플릿이 다르면, 기준값이 다르다. 프로세서(15)는 지문 인식 템플릿 내의 분할된 영역들(321, 322, 323, 324, 325, 326, 327, 328, 329) 각각에, 참조 템플릿(331, 332, 333, 334, 335, 336, 337, 338, 339)의 기준값을 식별값으로 할당할 수 있다. 예를 들면, 프로세서(15)는 제1 영역(321)에 제1 참조 템플릿(331)의 기준값인 "9"를 식별값으로 할당할 수 있다. 또한, 프로세서(15)는 제2 영역(322)에 제2 참조 템플릿(332)의 기준값이 "5"를 식별값으로 할당할 수 있다.Referring to 340 of FIG. 3, each of the reference templates 331, 332, 333, 334, 335, 336, 337, 338, and 339 may be assigned a reference value indicating the template. Here, the reference value is an intrinsic value representing the reference template. Thus, different reference templates result in different reference values. The processor 15 may, in each of the divided regions 321, 322, 323, 324, 325, 326, 327, 328, 329 in the fingerprint recognition template, reference templates 331, 332, 333, 334, 335, 336, 337, 338, and 339 may be assigned as identification values. For example, the processor 15 may allocate “9”, which is a reference value of the first reference template 331, to the first area 321 as an identification value. In addition, the processor 15 may allocate a reference value of “5” as the identification value of the second reference template 332 to the second area 322.

도 3의 340에 도시된 바와 같이, 프로세서(15)는 인식 템플릿의 분할된 영역들(321, 322, 323, 324, 325, 326, 327, 328, 329) 각각에 식별값(9, 5, 1, 7, 3, 4, 2, 8, 6)을 할당할 수 있다.As shown at 340 of FIG. 3, the processor 15 may identify the identification values 9, 5, 3, 3, 3, 3, 325, 327, 327, 328, 329 in the divided regions 321, 322, 323, 324, 325, 326, 327, 328, and 329 of the recognition template. 1, 7, 3, 4, 2, 8, 6) can be assigned.

도 3의 350을 참고하면, 프로세서(15)는 분할된 영역들 각각에 할당된 식별값을 소정의 기준으로 나열하여, 전체 식별값(951734286)을 획득할 수 있다. 또한, 프로세서(15)는 영역들 각각에 할당된 식별값을 임의의 순서로 나열하여 전체 식별값을 획득할 수 있다.Referring to 350 of FIG. 3, the processor 15 may list the identification values assigned to each of the divided regions with a predetermined criterion to obtain the entire identification value 951734286. In addition, the processor 15 may list the identification values assigned to each of the regions in any order to obtain the entire identification value.

도 4는 일실시예에 따라, 전자 장치 내의 프로세서가 소정 부위를 생체 특징 별로 구분하여 참조 템플릿들을 생성하는 방법을 설명하기 위한 흐름도이다.4 is a flowchart illustrating a method of generating reference templates by dividing a predetermined part by a biometric feature by a processor in an electronic device according to an embodiment.

단계 S410에서, 프로세서(15)는 소정 부위를 포함하는 복수의 생체 영상들을 소정의 알고리즘에 따라 처리하여 복수의 템플릿들을 획득할 수 있다. 여기서, 소정 부위는, 사용자의 지문, 정맥, 홍채 망막, 얼굴 등일 수 있고, 이에 한정되지 않는다.In operation S410, the processor 15 may acquire a plurality of templates by processing a plurality of biological images including a predetermined portion according to a predetermined algorithm. Here, the predetermined portion may be a user's fingerprint, vein, iris retina, face, and the like, but is not limited thereto.

단계 S420에서, 프로세서(15)는 복수의 템플릿들을 소정 부위의 생체 특징 별로 구분하는 기준에 따라 분류할 수 있다.In operation S420, the processor 15 may classify the plurality of templates according to a criterion for classifying the biometric features of the predetermined region.

예를 들면, 복수의 템플릿들이 지문 템플릿들인 경우, 프로세서(15)는 지문의 특징점의 위치, 개수, 분포도 및 지문의 특징선을 나타내는 융선의 방향, 패턴 중 적어도 하나에 기초하여, 복수의 템플릿들 각각의 생체 특징 정보를 획득하고, 생체 특징 별로 분류할 수 있다. 여기서, 특징점은 골, 끝점, 분기점, 중심점, 아래 중심점, 삼각주 중 하나에 해당될 수 있고, 이에 한정되지 않는다.For example, when the plurality of templates are fingerprint templates, the processor 15 may select the plurality of templates based on at least one of the position, number, distribution, and direction of the ridge indicating the feature line of the fingerprint, and the pattern. Each biometric characteristic information may be obtained and classified by biometric characteristics. Here, the feature point may correspond to one of a goal, an end point, a branch point, a center point, a lower center point, and a delta, but is not limited thereto.

다른 예를 들면, 복수의 템플릿들이 정맥 템플릿들인 경우, 프로세서(15)는 정맥을 나타내는 혈관의 위치, 방향에 기초하여, 정맥의 분포도 또는 정맥 패턴에 대한 정보를 획득할 수 있다. 프로세서(15)는 정맥의 분포도 또는 정맥 패턴 별로 복수의 템플릿들을 분류할 수 있다.In another example, when the plurality of templates are vein templates, the processor 15 may obtain information about the vein distribution or the vein pattern based on the position and the direction of the blood vessel representing the vein. The processor 15 may classify the plurality of templates according to the vein distribution or the vein pattern.

또 다른 예를 들면, 복수의 템플릿들이 홍채 템플릿들인 경우, 프로세서(15)는 홍채의 명암 정보에 기초하여, 명암 패턴 정보를 획득할 수 있다. 프로세서(15)는 홍채의 명암 패턴 별로 복수의 템플릿들을 분류할 수 있다.For another example, when the plurality of templates are iris templates, the processor 15 may obtain contrast pattern information based on the contrast information of the iris. The processor 15 may classify the plurality of templates according to the light and dark patterns of the iris.

단계 S430에서, 프로세서(15)는 분류된 그룹별로 대표 템플릿을 생성하여, 참조 템플릿들을 획득할 수 있다.In operation S430, the processor 15 may generate a representative template for each classified group to obtain reference templates.

예를 들면, 프로세서(15)는 분류된 그룹 내의 템플릿들 간의 평균값을 계산하여 그룹을 대표하는 대표 템플릿을 생성할 수 있다. 다른 예를 들면, 프로세서(15)는 분류된 그룹 내에서 템플릿을 구성하는 값의 분포가 집중된 값을 검출하여, 그룹을 대표하는 대표 템플릿을 생성할 수 있다.For example, the processor 15 may generate a representative template representing the group by calculating an average value between the templates in the classified group. As another example, the processor 15 may generate a representative template representing a group by detecting a value in which a distribution of values constituting the template is concentrated in the classified group.

프로세서(15)는 그룹 별로 생성된 대표 템플릿들을 참조 템플릿들로 획득할 수 있다.The processor 15 may obtain the representative templates generated for each group as reference templates.

도 5는 일실시예에 따라, 프로세서가 복수의 사용자 각각의 스캔된 지문 영상을 이용하여, 참조 템플릿들을 생성하는 과정을 설명하기 위한 도면이다.5 is a diagram for describing a process of generating, by the processor, reference templates by using a scanned fingerprint image of each of a plurality of users, according to an embodiment.

도 5의 510을 참고하면, 프로세서(15)는 복수의 사용자들의 지문 영상들을 획득하고, 지문 영상들을 소정의 알고리즘에 따라 처리하여 지문 템플릿들을 획득할 수 있다. 여기서, 소정의 알고리즘은 영상을 평활화, 이진화 및 세선화 처리하는 알고리즘일 수 있고, 이에 한정되지 않는다.Referring to 510 of FIG. 5, the processor 15 may obtain fingerprint images of a plurality of users and process fingerprint images according to a predetermined algorithm to obtain fingerprint templates. Here, the predetermined algorithm may be an algorithm for smoothing, binarizing, and thinning an image, but is not limited thereto.

도 5의 520을 참고하면, 프로세서(15)는 지문 템플릿들 각각을 미리 설정된 크기로 분할할 수 있다. 도 5에 도시된 바와 같이, 지문 템플릿은 동일한 크기의 9개의 영역으로 분할될 수 있다.Referring to 520 of FIG. 5, the processor 15 may divide each of the fingerprint templates into a preset size. As shown in FIG. 5, the fingerprint template may be divided into nine regions of the same size.

도 5의 530을 참고하면, 프로세서(15)는 지문 템플릿들 각각의 분할된 영역 내에서, 특징점의 위치, 개수, 분포도 및 지문의 특징선을 나타내는 융선의 방향, 패턴 중 적어도 하나에 기초하여, 지문의 특징 정보를 획득할 수 있다. 프로세서(15)는 지문의 특징 정보에 기초하여, 지문 템플릿들 각각의 분할된 영역을 그룹핑할 수 있다. 예를 들면, 프로세서(15)는 지문의 제1 특징 정보를 갖는 영역의 템플릿들(531)을 제1 그룹으로 분류할 수 있다. 프로세서(15)는 지문의 제1 특징 정보를 갖는 영역의 템플릿들(531) 내의 특징점의 분포 및 특징선 방향에 기초하여, 제1 그룹을 대표하는 제1 참조 템플릿(541)을 생성할 수 있다. 또한, 프로세서(15)는 제1 참조 템플릿(541)을 가리키는 기준값(551)(예를 들면, 기준값: 1)을 할당할 수 있다. 마찬가지로, 프로세서(15)는 지문의 제n 특징 정보를 갖는 영역의 템플릿들을 제n 그룹으로 분류할 수 있다. 프로세서(15)는 지문의 제n 특징 정보를 갖는 영역의 템플릿들 내의 특징점의 분포 및 특징선 방향에 기초하여, 제n 그룹을 대표하는 제n 참조 템플릿을 생성할 수 있다.Referring to 530 of FIG. 5, in the divided area of each of the fingerprint templates, the processor 15 may be configured based on at least one of a pattern, a direction of the ridges representing the location, number, distribution, and feature of the fingerprint. Characteristic information of the fingerprint can be obtained. The processor 15 may group the divided regions of each of the fingerprint templates based on the feature information of the fingerprint. For example, the processor 15 may classify the templates 531 of the area having the first characteristic information of the fingerprint into a first group. The processor 15 may generate a first reference template 541 representing the first group based on the distribution of the feature points and the feature line direction in the templates 531 of the area having the first feature information of the fingerprint. . In addition, the processor 15 may assign a reference value 551 (eg, reference value: 1) indicating the first reference template 541. Similarly, the processor 15 may classify templates of the area having the n th characteristic information of the fingerprint into an n th group. The processor 15 may generate the n th reference template representing the n th group based on the distribution of the feature points and the feature line direction in the templates of the area having the n th feature information of the fingerprint.

도 5는, 프로세서(15)가 지문의 특징 정보를 9개로 분류하여 9 종류의 참조 템플릿을 생성하는 과정을 도시한다. 프로세서(15)는 9 종류 각각에 분류된 템플릿들의 특징점의 분포 및 특징선 방향에 기초하여, 9 종류 각각의 템플릿을 대표하는 참조 템플릿을 생성할 수 있다. 또한, 프로세서(15)는 9개의 참조 템플릿 각각에 참조 템플릿을 가리키는 기준값을 할당할 수 있다.5 shows a process in which the processor 15 generates nine types of reference templates by classifying the characteristic information of the fingerprint into nine pieces. The processor 15 may generate a reference template that represents each of the nine types of templates based on the distribution of the feature points and the feature line direction of the templates classified into each of the nine types. In addition, the processor 15 may assign a reference value indicating the reference template to each of the nine reference templates.

도 5에 도시된 기준값은 설명의 편의상 부여한 것이고, 다른 숫자, 문자, 기호들이 부여될 수도 있다. 또한, 도 5에서, 지문 템플릿이 3 X 3으로 분할되었지만, 임의의 수 n X n으로 분할될 수 있다. 또한, 참조 템플릿의 종류 또는 종류의 개수는 사용자에 의해 미리 설정될 수 있다. 또한, 생체 정보가 지문 정보인 경우, 참조 템플릿은 왼쪽 지문 정보 및 오른쪽 지문 정보에 기초하여, 획득될 수 있다. 또한, 프로세서(15)는 왼쪽 지문 정보 및 오른쪽 지문 정보를 고려하여 참조 템플릿의 종류를 세밀하게 결정할 수 있다. 이 때, 참조 템플릿의 종류의 개수는 한쪽 지문 정보만을 고려하여 결정된 참조 템플릿의 종류의 개수보다 많을 수 있다.The reference value shown in FIG. 5 is given for convenience of description and other numbers, letters, and symbols may be given. In addition, in FIG. 5, the fingerprint template is divided into 3 × 3, but may be divided into any number n × n. In addition, the type or number of types of reference templates may be preset by the user. In addition, when the biometric information is fingerprint information, the reference template may be obtained based on the left fingerprint information and the right fingerprint information. In addition, the processor 15 may determine the type of the reference template in detail by considering the left fingerprint information and the right fingerprint information. In this case, the number of types of reference templates may be larger than the number of types of reference templates determined by considering only one piece of fingerprint information.

도 6은 일실시예에 따라, 프로세서가 인식 템플릿에 대응되는 전체 식별값을 해시 함수에 적용하여, 사용자의 개인키를 생성하는 과정을 설명하기 위한 도면이다.6 is a diagram for describing a process of generating a private key of a user by applying a global identification value corresponding to a recognition template to a hash function, according to an exemplary embodiment.

도 6의 610을 참고하면, 프로세서(15)는 인식 템플릿의 분할된 영역들 각각에, 참조 템플릿의 기준값을 식별값으로 할당할 수 있다. 예를 들면, 프로세서(15)는 제1 영역에 매칭되는 제1 참조 템플릿의 기준값 "9"를 제1 영역에 할당할 수 있다.Referring to 610 of FIG. 6, the processor 15 may assign a reference value of the reference template as an identification value to each of the divided regions of the recognition template. For example, the processor 15 may assign a reference value "9" of the first reference template matching the first region to the first region.

프로세서(15)는 할당된 식별값을 소정의 기준으로 나열하여, 전제 식별값을 획득할 수 있다. 도 6의 620을 참고하면, 프로세서(15)는 분할된 영역들 각각에 할당된 식별값을 소정의 기준으로 나열하여, 인식 템플릿의 전체 식별값인 "951734286"을 획득할 수 있다.The processor 15 may list the assigned identification values on a predetermined basis to obtain a premise identification value. Referring to 620 of FIG. 6, the processor 15 may list identification values assigned to each of the divided regions with a predetermined criterion to obtain “951734286” which is the entire identification value of the recognition template.

도 6의 630을 참고하면, 프로세서(15)는 전체 식별값인 "951734286"을 제1 해시 함수에 적용하여 "AI39D03N6"을 해시값으로 산출할 수 있다. 프로세서(15)는 산출된 해시값인 "AI39D03N6"을 사용자의 개인키로 생성할 수 있다.Referring to 630 of FIG. 6, the processor 15 may calculate “AI39D03N6” as a hash value by applying “951734286”, which is the entire identification value, to the first hash function. The processor 15 may generate the calculated hash value "AI39D03N6" as the user's private key.

도 7은 일실시예에 따라, 프로세서가 인식 템플릿에 대응되는 전체 식별값을 해시 함수에 2번 반복 적용하여, 사용자의 개인키를 생성하는 과정을 설명하기 위한 도면이다.7 is a diagram for describing a process of generating a private key of a user by repeatedly applying the entire identification value corresponding to a recognition template to a hash function twice, according to an exemplary embodiment.

도 7의 710을 참고하면, 프로세서(15)는 인식 템플릿의 분할된 영역들 각각에, 참조 템플릿의 기준값을 식별값으로 할당할 수 있다. 도 7의 720을 참고하면, 프로세서(15)는 분할된 영역들 각각에 할당된 식별값을 소정의 기준으로 나열하여, 인식 템플릿의 전체 식별값인 "951734286"을 획득할 수 있다. 도 7의 730을 참고하면, 프로세서(15)는 프로세서(15)는 전체 식별값인 "951734286"을 제1 해시 함수에 적용하여 "AI39D03N6"을 해시값으로 산출할 수 있다.Referring to 710 of FIG. 7, the processor 15 may allocate a reference value of the reference template as an identification value to each of the divided regions of the recognition template. Referring to 720 of FIG. 7, the processor 15 may list identification values assigned to each of the divided regions with a predetermined criterion to obtain “951734286” which is the entire identification value of the recognition template. Referring to 730 of FIG. 7, the processor 15 may calculate “AI39D03N6” as a hash value by applying the entire identification value “951734286” to the first hash function.

도 7의 740을 참고하면, 프로세서(15)는 산출된 해시값인 "AI39D03N6"을 제1 해시 함수에 적용하여 "EROMX301Q"을 해시값으로 산출할 수 있다. 프로세서(15)는 산출된 해시값인 "EROMX301Q"을 사용자의 개인키로 생성할 수 있다.Referring to 740 of FIG. 7, the processor 15 may apply “AI39D03N6”, which is the calculated hash value, to the first hash function to calculate “EROMX301Q” as a hash value. The processor 15 may generate the calculated hash value "EROMX301Q" as the user's private key.

도 8은 일실시예에 따라, 프로세서가 인식 템플릿 내의 복수의 영역들 각각의 식별값을 해시 함수에 순차적으로 적용하여, 사용자의 개인키를 생성하는 과정을 설명하기 위한 도면이다.8 is a diagram for describing a process of generating, by a processor, a private key of a user by sequentially applying identification values of each of a plurality of regions in a recognition template to a hash function, according to an embodiment.

도 8의 810을 참고하면, 프로세서(15)는 인식 템플릿의 분할된 영역들 각각에, 참조 템플릿의 기준값을 식별값으로 할당할 수 있다.Referring to 810 of FIG. 8, the processor 15 may allocate a reference value of the reference template as an identification value to each of the divided regions of the recognition template.

도 8의 820을 참고하면, 프로세서(15)는 제1 영역의 식별값 "9"를 제1 해시 함수에 적용하여 제1 해시값(821)인 "ADIOO8321"을 산출할 수 있다. 프로세서(15)는 제1 해시값(821)인 "ADIOO8321"과 제2 영역의 식별값 "5"를 제1 해시 함수에 적용하여 제2 해시값(822)인 "EIOQCLAI9"를 산출할 수 있다. 즉, 프로세서(15)는 제n-1 해시값과 복수의 영역들 중 제n 영역에 할당된 제n 기준값을, 상기 제1 해시 함수에 적용하여 제n 해시값을 산출하는 제1 프로세스를 수행할 수 있다. 프로세서(15)는 제1 프로세스를, n=2부터 순차적으로 1씩 증가시켜 n=N까지 반복 수행할 수 있다. 프로세서(15)는 제1 프로세스를 수행하여, 제3 해시값(823)으로 "EIEROCO1M"을 산출하고, 제4 해시값(824)으로 "903CJKAOE"을 산출하고, 제5 해시값(825)으로 "D3LCL1CL1"을 산출하고, 제6 해시값(826)으로 "EOWPCLQ76"을 산출하고, 제7 해시값(827)으로 "KCO9358RH"을 산출하고, 제8 해시값(828)으로 "DIFLWIOD9"을 산출하고, 제9 해시값(829)으로 "UEXBOU541"을 산출할 수 있다.Referring to 820 of FIG. 8, the processor 15 may calculate “ADIOO8321” which is the first hash value 821 by applying the identification value “9” of the first region to the first hash function. The processor 15 may calculate “EIOQCLAI9”, which is the second hash value 822, by applying “ADIOO8321”, which is the first hash value 821 and the identification value “5” of the second area, to the first hash function. . That is, the processor 15 performs a first process of calculating an n-th hash value by applying an n-th hash value and an n-th reference value assigned to an n-th area among a plurality of areas to the first hash function. can do. The processor 15 may repeatedly perform the first process from n = 2 to n = N by sequentially increasing 1 by one. The processor 15 performs a first process to calculate "EIEROCO1M" as the third hash value 823, calculate "903CJKAOE" as the fourth hash value 824, and to the fifth hash value 825. "D3LCL1CL1" is calculated, "EOWPCLQ76" is calculated from the sixth hash value 826, "KCO9358RH" is calculated from the seventh hash value 827, and "DIFLWIOD9" is calculated from the eighth hash value 828. The "UEXBOU541" can be calculated from the ninth hash value 829.

프로세서(15)는 마지막으로 산출된 제9 해시값(829)인 "UEXBOU541"을 사용자의 개인키로 생성할 수 있다.The processor 15 may generate “UEXBOU541”, which is the ninth hash value 829 calculated last, as a user's private key.

도 9는 일실시예에 따라, 프로세서가 인식 템플릿 내의 복수의 영역들 각각의 식별값을 계층적으로 해시 함수에 적용하여, 사용자의 개인키를 생성하는 과정을 설명하기 위한 도면이다.9 is a diagram for describing a process of generating a private key of a user by applying an identification value of each of a plurality of regions in a recognition template to a hash function hierarchically according to an embodiment.

도 9의 910을 참고하면, 프로세서(15)는 인식 템플릿의 분할된 영역들 각각에, 참조 템플릿의 기준값을 식별값으로 할당할 수 있다.Referring to 910 of FIG. 9, the processor 15 may assign a reference value of the reference template as an identification value to each of the divided regions of the recognition template.

도 9의 920을 참고하면, 프로세서(15)는 9개의 복수의 영역들 각각에 할당된 식별값을 제1 해시 함수에 적용하여 제1 계층의 해시값들(921)을 산출할 수 있다. 프로세서(15)는 제1 계층의 해시값들(921)을 2개씩 결합하여 제1 해시 함수에 적용하여 제2 계층의 해시값들(922)을 산출할 수 있다. 여기서, 제1 계층의 해시값들(921) 중 해시값 "CKDI9034N"은 짝을 이루는 해시값이 없기 때문에 다음 계층의 해시값들을 산출하는 데에 이용될 수 있다. 프로세서(15)는 제2 계층의 해시값들(922)을 2개씩 결합하여 제1 해시 함수에 적용하여 제3 계층의 해시값들(923)을 산출할 수 있다. 프로세서(15)는 제3 계층의 해시값 중 해시값 "CIVN5781Q"와 제1 계층의 해시값 "CKDI9034N"을 결합하여 제1 해시 함수에 적용하여 제4 계층의 해시값(924)을 산출할 수 있다. 프로세서(15)는 제4 계층의 해시값(924)인 "ICOEK90C1"과 제3 계층의 해시값 중 해시값 "UWKCI1239"을 결합하여 제1 해시 함수에 적용하여 제5 계층의 해시값(925)을 산출할 수 있다. 프로세서(15)는 제5 계층의 해시값(925)인 "MXCUE45I0"을 사용자의 개인키로 생성할 수 있다.Referring to 920 of FIG. 9, the processor 15 may calculate the hash values 921 of the first layer by applying an identification value assigned to each of the plurality of nine regions to the first hash function. The processor 15 may combine the two hash values 921 of the first layer and apply the two hash values 921 to the first hash function to calculate the hash values 922 of the second layer. Here, the hash value "CKDI9034N" of the hash values 921 of the first layer may be used to calculate hash values of the next layer because there is no pair of hash values. The processor 15 may combine the two hash values 922 of the second layer and apply the two hash values 922 to the first hash function to calculate the hash values 923 of the third layer. The processor 15 may calculate the hash value 924 of the fourth layer by combining the hash value “CIVN5781Q” among the hash values of the third layer and the hash value “CKDI9034N” of the first layer to apply to the first hash function. have. The processor 15 combines the "ICOEK90C1" hash value 924 of the fourth layer and the hash value "UWKCI1239" among the hash values of the third layer and applies it to the first hash function to apply the hash value 925 of the fifth layer. Can be calculated. The processor 15 may generate "MXCUE45I0", which is the hash value 925 of the fifth layer, as the private key of the user.

도 9에서는 설명의 편의상, 나열된 해시값들의 순서로 해시값들이 결합되어 제1 해시 함수에 적용되었으나, 임의의 순서로 해시값들이 결합되어 제1 해시 함수에 적용될 수 잇다.In FIG. 9, for convenience of description, hash values are combined and applied to the first hash function in the order of the listed hash values, but hash values may be combined and applied to the first hash function in any order.

도 10은 일실시예에 따라, 제1 사용자의 생체 정보로 생성된 개인키로 거래 정보를 디지털 서명하여 블록체인 기반의 암호화폐를 거래하는 전자 장치의 동작을 설명하기 위한 흐름도이다.FIG. 10 is a flowchart illustrating an operation of an electronic device for trading a blockchain-based cryptocurrency by digitally signing transaction information with a private key generated from biometric information of a first user.

단계 S1010에서, 전자 장치(10)는 제1 사용자의 전자 지갑을 실행할 수 있다.In operation S1010, the electronic device 10 may execute an electronic wallet of the first user.

단계 S1020에서, 전자 장치(10)는 제1 사용자의 소정 부위가 스캔된 생체 영상을 획득할 수 있다.In operation S1020, the electronic device 10 may acquire a biometric image in which a predetermined portion of the first user is scanned.

단계 S1030에서, 전자 장치(10)는 생체 영상으로부터 제1 사용자의 생체 특징 정보를 나타내는 인식 템플릿을 획득할 수 있다.In operation S1030, the electronic device 10 may obtain a recognition template indicating biometric characteristic information of the first user from the biometric image.

단계 S1040에서, 전자 장치(10)는 인식 템플릿에 대응되는 식별값을 제1 해시 함수에 적용하여 해시값을 산출할 수 있다. 전자 장치(10)는 산출된 해시값을 제1 사용자의 개인키로 생성할 수 있다.In operation S1040, the electronic device 10 may calculate a hash value by applying an identification value corresponding to the recognition template to the first hash function. The electronic device 10 may generate the calculated hash value as the private key of the first user.

전자 장치(10)는 인식 템플릿에 대응되는 식별값을 결정할 수 있다. 구체적으로, 전자 장치(10)는 인식 템플릿을 복수의 영역들로 분할할 수 있다. 전자 장치(10)는 분할된 영역들 내의 생체 특징 정보에 기초하여, 분할된 영역들 각각에 매칭되는 참조 템플릿을 결정할 수 있다. 전자 장치(10)는 분할된 영역들 각각에, 참조 템플릿의 기준값을 식별값으로 할당하여, 인식 템플릿에 대응되는 식별값을 결정할 수 있다.The electronic device 10 may determine an identification value corresponding to the recognition template. In detail, the electronic device 10 may divide the recognition template into a plurality of areas. The electronic device 10 may determine a reference template that matches each of the divided regions based on the biometric characteristic information in the divided regions. The electronic device 10 may determine the identification value corresponding to the recognition template by allocating the reference value of the reference template as the identification value to each of the divided regions.

또한, 전자 장치(10)는 분할된 영역들 내에서, 소정 부위의 생체 특징을 인식하는 데에 이용되는 적어도 하나의 특징점 및 적어도 하나의 특징선을 검출할 수 있다. 전자 장치(10)는 적어도 하나의 특징점의 위치, 개수, 분포도 및 적어도 하나의 특징선의 방향, 패턴 중 적어도 하나에 기초하여, 소정 부위의 생체 특징 정보를 획득할 수 있다. 전자 장치(10)는 분할된 영역들 내의 생체 특징 정보 및 참조 템플릿들의 정보에 기초하여, 분할된 영역들 각각에 매칭되는 참조 템플릿을 결정할 수 있다.In addition, the electronic device 10 may detect at least one feature point and at least one feature line that are used to recognize a biometric feature of a predetermined region in the divided regions. The electronic device 10 may acquire the biometric characteristic information of the predetermined region based on at least one of a position, a number, a distribution chart of the at least one feature point, and a direction and a pattern of the at least one feature line. The electronic device 10 may determine a reference template matching each of the divided regions based on the biometric characteristic information in the divided regions and the information of the reference templates.

전자 장치(10)가 제1 사용자의 개인키를 생성하는 방법을 설명한다. 예를 들면, 전자 장치(10)는 분할된 영역들 각각에 할당된 식별값을 소정의 기준으로 나열하여, 전체 식별값을 획득할 수 있다. 전자 장치(10)는 전체 식별값을 제1 해시 함수에 적용하여 제1 해시값을 산출하고, 산출된 제1 해시값을 제1 사용자의 개인키로 생성할 수 있다.A method of generating the private key of the first user by the electronic device 10 will now be described. For example, the electronic device 10 may list the identification values assigned to each of the divided regions according to a predetermined criterion to obtain the entire identification value. The electronic device 10 may apply the entire identification value to the first hash function to calculate the first hash value and generate the calculated first hash value as the private key of the first user.

다른 예를 들면, 전자 장치(10)는 분할된 영역들 각각에 할당된 식별값이 결합되어 획득된 전체 식별값을 제1 해시 함수에 적용하여 제1 해시값을 산출할 수 있다. 전자 장치(10)는 제1 해시값을 제1 해시 함수에 적용하여 제2 해시값을 산출할 수 있다. 전자 장치(10)는 제2 해시값을 제1 사용자의 개인키로 생성할 수 있다.As another example, the electronic device 10 may calculate the first hash value by applying the entire identification value obtained by combining the identification values allocated to each of the divided regions to the first hash function. The electronic device 10 may calculate the second hash value by applying the first hash value to the first hash function. The electronic device 10 may generate the second hash value as the private key of the first user.

또 다른 예를 들면, 전자 장치(10)는 복수(N 개, N은 2 이상임)의 영역들 중 제1 영역에 할당된 제1 기준값을 제1 해시 함수에 적용하여 제1 해시값을 산출할 수 있다. 전자 장치(10)는 제1 해시값과 복수의 영역들 중 제2 영역에 할당된 제2 기준값을 제1 해시 함수에 적용하여 제2 해시값을 산출할 수 있다. 마찬가지로, 전자 장치(10)는 제n-1 기준값과 상기 복수의 영역들 중 제n 영역에 할당된 제n 기준값을 상기 제1 해시 함수에 적용하여 제n 해시값을 산출하는 과정을, n=3부터 순차적으로 1씩 증가시켜 n=N까지 반복 수행하여 최종적으로 제N 해시값을 산출할 수 있다. 전자 장치(10)는 제N 해시값을 제1 사용자의 개인키로 생성할 수 있다. As another example, the electronic device 10 may calculate a first hash value by applying a first reference value allocated to a first area among a plurality of areas (N, N is 2 or more) to a first hash function. Can be. The electronic device 10 may calculate the second hash value by applying the first hash value and the second reference value allocated to the second area among the plurality of areas to the first hash function. Similarly, the electronic device 10 applies a n-th reference value and an n-th reference value allocated to an n-th area among the plurality of areas to the first hash function to calculate an n-th hash value. The Nth hash value may be finally calculated by repeating n = N by sequentially increasing the value 1 by 3. The electronic device 10 may generate the Nth hash value as the private key of the first user.

또 다른 예를 들면, 전자 장치(10)는 복수(N 개, N은 2 이상임)의 영역들 중 제n 영역에 할당된 제n 기준값을 제1 해시 함수에 적용하여 제1 계층의 제n 해시값을 산출하는 과정을, n=1부터 순차적으로 1씩 증가시켜 n=N까지 반복 수행할 수 있다. 전자 장치(10)는 N 개의 제1 계층의 해시값을 산출할 수 있다. 여기서, 제1 계층의 해시값은 제1 해시 함수를 1번 적용되어 산출된 값이다.As another example, the electronic device 10 may apply the nth reference value assigned to the nth area among the plurality of N areas, where N is two or more, to the first hash function to apply the nth hash of the first layer. The process of calculating the value may be repeatedly performed from n = 1 to n = N sequentially. The electronic device 10 may calculate hash values of the N first layers. Here, the hash value of the first layer is a value calculated by applying the first hash function once.

전자 장치(10)는 제1 계층의 해시값들을 2개씩 결합하여 제1 해시 함수에 적용할 수 있다. 그 결과, 전자 장치(10)는 제2 계층의 해시값들을 산출할 수 있다. 여기서, 제1 계층의 해시값들이 2개씩 그룹핑된 결과, 1개의 제1 계층의 해시값이 남는 경우, 남은 제1 계층의 해시값은 제2 계층의 해시값과 결합되고, 제1 해시 함수에 적용됨으로써, 전자 장치(10)는 제3 계층의 해시값으로 산출될 수 있다.The electronic device 10 may combine two hash values of the first layer and apply the two hash values to the first hash function. As a result, the electronic device 10 may calculate hash values of the second layer. Here, when a hash value of one first layer is left as a result of grouping hash values of the first layer by two, the hash value of the remaining first layer is combined with the hash value of the second layer, and the first hash function is added to the first hash function. By being applied, the electronic device 10 may be calculated as a hash value of the third layer.

마찬가지로, 전자 장치(10)는 n-1 계층의 해시값들을 2개씩 결합하여 제1 해시 함수에 적용하여 n 계층의 해시값을 산출하는 과정을, n=3부터 순차적으로 1씩 증가시켜 최상위 계층(N이 짝수이면, 최상위 계층은 N/2 계층이고, N이 홀수이면, 최상위 계층은 (N+1)/2 계층임)의 해시값의 개수가 1개일 때까지 반복 수행할 수 있다. 전자 장치(10)는 최상위 계층의 해시값의 개수가 1개이면, 최상위 계층의 해시값을 제1 사용자의 개인키로 생성할 수 있다.Similarly, the electronic device 10 combines two hash values of the n-1 layer by two to apply the first hash function to calculate a hash value of the n layer, and sequentially increases the number of hash values of the n layer by 1 from n = 3. (If N is even, the highest layer is N / 2 layer, and if N is odd, the highest layer is (N + 1) / 2 layer) and may be repeated until the number of hash values is one. If the number of hash values of the highest layer is one, the electronic device 10 may generate the hash value of the highest layer as the private key of the first user.

또한, 전자 장치(10)는 제1 사용자의 개인키를 제1 해시 함수에 적용하여 산출된 해시값을, 제1 사용자의 공개키로 생성할 수 있다.In addition, the electronic device 10 may generate a hash value calculated by applying the private key of the first user to the first hash function as the public key of the first user.

단계 S1050에서, 전자 장치(10)는 제1 사용자의 개인키로 제1 사용자와 제2 사용자 간의 암호화폐의 제1 거래 정보를 디지털 서명하여, 암호화폐에 대한 거래를 기록한 원장을 분산하여 관리하는 블록체인의 네트워크 상의 노드로 전송할 수 있다.In operation S1050, the electronic device 10 digitally signs the first transaction information of the cryptocurrency between the first user and the second user with the private key of the first user, and distributes and manages the ledger recording the transaction for the cryptocurrency. It can send to nodes on the network of the chain.

구체적으로, 전자 장치(10)는 제1 거래 정보를 제2 해시 함수에 적용하여, 제1 거래 정보에 대응되는 해시값을 생성할 수 있다. 전자 장치(10)는 제1 사용자의 개인키로 제1 거래 정보에 대응되는 해시값을 암호화하여, 제1 거래 정보의 디지털 서명을 나타내는 제1 암호문을 생성할 수 있다. 전자 장치(10)는 제1 암호문을 제1 거래 정보와 함께 노드로 전송할 수 있다.In detail, the electronic device 10 may generate the hash value corresponding to the first transaction information by applying the first transaction information to the second hash function. The electronic device 10 may generate a first cipher text indicating a digital signature of the first transaction information by encrypting a hash value corresponding to the first transaction information with the private key of the first user. The electronic device 10 may transmit the first cipher text together with the first transaction information to the node.

또한, 전자 장치(10)는 제1 사용자의 공개키를 블록체인의 네트워크 상의 노드로 전송할 수 있다.In addition, the electronic device 10 may transmit the public key of the first user to a node on the network of the blockchain.

또한, 전자 장치(10)는 제1 사용자와 제2 사용자 간의 암호화폐의 제1 거래 정보를 획득할 수 있다. 전자 장치(10)는 제1 거래 정보에 따라, 제1 사용자의 전자 지갑과 제2 사용자의 전자 지갑 간에 암호화폐의 거래를 수행할 수 있다.In addition, the electronic device 10 may obtain first transaction information of a cryptocurrency between the first user and the second user. The electronic device 10 may perform a transaction of cryptocurrency between the electronic wallet of the first user and the electronic wallet of the second user according to the first transaction information.

도 11은 일실시예에 따라, 암호화폐에 대한 거래를 기록한 원장을 분산하여 관리하는 블록체인의 네트워크 상의 노드의 동작을 설명하기 위한 흐름도이다.11 is a flowchart illustrating an operation of a node on a network of a blockchain for distributing and managing ledgers recording transactions for cryptocurrencies, according to an embodiment.

단계 S1110에서, 노드(20)는 제1 사용자의 공개키를 제1 사용자의 전자 장치(10)로부터 수신할 수 있다.In operation S1110, the node 20 may receive the public key of the first user from the electronic device 10 of the first user.

단계 S1120에서, 노드(20)는 제1 사용자와 제2 사용자 간에 거래된 암호화폐의 제1 거래 정보를 제1 사용자의 전자 장치(10)로부터 수신할 수 있다. 여기서, 제1 거래 정보는 제1 사용자가 제2 사용자에게 암호화폐의 소정 금액을 이체하는 정보를 포함할 수 있다. 또한, 노드(20)는 제1 거래 정보가 제1 사용자의 개인키로 디지털 서명된 제1 암호문을 수신할 수 있다.In operation S1120, the node 20 may receive, from the electronic device 10 of the first user, first transaction information of a cryptocurrency traded between the first user and the second user. Here, the first transaction information may include information for the first user to transfer a predetermined amount of cryptocurrency to the second user. In addition, the node 20 may receive a first cipher text in which the first transaction information is digitally signed with the first user's private key.

단계 S1130에서, 노드(20)는 제1 사용자의 전자 장치(10)로부터 수신된 제1 거래 정보에 기초하여, 제1 거래 정보의 유효성을 검증할 수 있다. 구체적으로, 노드(20)는 제1 거래 정보에 제2 해시 함수를 적용하여 제1 거래 정보에 대응되는 제1 해시값을 생성할 수 있다. 그리고 나서, 노드(20)는 제1 사용자의 공개키를 사용하여 제1 암호문을 복호화하여 제2 해시값을 생성할 수 있다. 노드(20)는 제1 해시값과 제2 해시값의 비교 결과에 기초하여, 제1 거래 정보의 유효성을 검증할 수 있다.In operation S1130, the node 20 may verify the validity of the first transaction information based on the first transaction information received from the electronic device 10 of the first user. In detail, the node 20 may generate a first hash value corresponding to the first transaction information by applying a second hash function to the first transaction information. The node 20 can then decrypt the first cipher text using the public key of the first user to generate a second hash value. The node 20 may verify the validity of the first transaction information based on the comparison result of the first hash value and the second hash value.

단계 S1140에서, 제1 거래 정보가 유효하면, 노드(20)는 단계 S1150에 따라 동작을 수행할 수 있다. 반면에, 제1 거래 정보가 유효하지 않으면, 노드(20)는 제1 거래 정보를 폐기할 수 있다.In operation S1140, if the first transaction information is valid, the node 20 may perform an operation according to operation S1150. On the other hand, if the first transaction information is not valid, the node 20 may discard the first transaction information.

단계 S1150에서, 노드(20)는 제1 거래 정보를 블록체인의 네트워크 상의 다른 노드(20)로 전송할 수 있다. 또한, 노드(20)는 제1 거래 정보를 블록체인에 연결될 수 있는 블록의 후보 블록에 추가할 수 있다.In operation S1150, the node 20 may transmit the first transaction information to another node 20 on the network of the blockchain. In addition, the node 20 may add the first transaction information to the candidate block of the block that may be connected to the blockchain.

단계 S1160에서, 노드(20)는 후보 블록에 대한 작업 증명을 수행하여, 블록체인에 후보 블록을 유효한 블록으로 추가할 수 있다.In operation S1160, the node 20 may perform proof of work on the candidate block and add the candidate block as a valid block to the blockchain.

도 12는 일실시예에 따라, 블록체인의 네트워크 상에서 유효한 암호화폐의 거래를 블록체인의 네트워크 상의 노드들로 전파하고, 블록체인에 기록하는 과정을 설명하기 위한 도면이다.FIG. 12 is a diagram for describing a process of propagating a transaction of a valid cryptocurrency on a blockchain network to nodes on a blockchain network and recording the blockchain in a blockchain according to an embodiment.

도 12를 참고하면, 전자 장치(10)는 제1 사용자의 전자 지갑을 실행할 수 있다. 전자 장치(10)는 제1 사용자가 제2 사용자에게 암호화폐 3,500,000 캐시를 이체한 정보를 나타내는 제1 거래 정보에 기초하여, 제2 사용자의 전자 지갑으로 암호화폐 3,500,000 캐시를 이체할 수 있다. 전자 장치(10)는 제1 거래 정보를 암호화하고, 암호화된 제1 거래 정보를 블록체인의 네트워크 상의 제1 노드(20)로 전송할 수 있다. 여기서, 전자 장치(10)는 제1 사용자의 생체 정보로부터 획득된 제1 사용자의 개인키로 제1 거래 정보를 암호화할 수 있다. 전자 장치(10)가 제1 거래 정보를 암호화하여 제1 노드(20)로 전송하는 동작은 도 13에서 상세하게 설명한다.Referring to FIG. 12, the electronic device 10 may execute an electronic wallet of a first user. The electronic device 10 may transfer the cryptocurrency 3,500,000 cache to the electronic wallet of the second user based on the first transaction information indicating the information that the first user has transferred the cryptocurrency 3,500,000 cache to the second user. The electronic device 10 may encrypt the first transaction information and transmit the encrypted first transaction information to the first node 20 on the network of the blockchain. Here, the electronic device 10 may encrypt the first transaction information with the private key of the first user obtained from the biometric information of the first user. An operation in which the electronic device 10 encrypts the first transaction information and transmits the first transaction information to the first node 20 will be described in detail with reference to FIG. 13.

제1 노드(20)는 암호화된 제1 거래 정보를 제1 사용자의 공개키로 복호화하고, 복호화된 결과에 기초하여 제1 거래 정보가 유효한지를 검증(1210)할 수 있다. 여기서, 제1 사용자의 공개키는, 제1 사용자의 생체 정보로부터 획득된 제1 사용자의 개인키를 해시 함수에 적용하여 산출된 값이다. 제1 노드(20)가 제1 거래 정보의 유효성을 검증하는 동작은 도 14에서 상세하게 설명한다.The first node 20 may decrypt the encrypted first transaction information with the public key of the first user, and verify 1210 whether the first transaction information is valid based on the decrypted result. Here, the public key of the first user is a value calculated by applying the private key of the first user obtained from the biometric information of the first user to the hash function. An operation of verifying the validity of the first transaction information by the first node 20 will be described in detail with reference to FIG. 14.

제1 거래 정보의 유효성을 검증한 결과, 제1 거래 정보가 유효하지 않으면, 제1 노드(20)는 제1 거래 정보를 폐기할 수 있다.As a result of validating the first transaction information, if the first transaction information is not valid, the first node 20 may discard the first transaction information.

제1 거래 정보의 유효성을 검증한 결과, 제1 거래 정보가 유효하면, 제1 노드(20)는 제1 거래 정보를 블록체인의 네트워크 상의 제2 노드(20-2)로 전송할 수 있다. 또한, 제1 노드(20)는 후보 블록(1220)에 제1 사용자가 제2 사용자에게 암호화폐 3,500,000 캐시를 이체한 정보를 나타내는 제1 거래 정보(1221)를 기록할 수 있다. 후보 블록(1220)에 소정의 거래 정보들이 기록되면, 제1 노드(20)는 후보 블록(1220)에 대한 작업 증명을 수행하여 유효한 블록을 생성할 수 있다. 또한, 제2 노드(20-2)에서도 제1 거래 정보의 유효성이 검증되면, 제2 노드(20-2)는 제1 거래 정보를 후보 블록(1220)에 추가하고, 후보 블록(1220)에 대한 작업 증명을 수행하여 유효한 블록을 생성할 수 있다. 제3 노드(20-3) 및 제4 노드(20-4)도 제2 노드(20-2)와 마찬가지로 동작할 수 있다.As a result of verifying validity of the first transaction information, if the first transaction information is valid, the first node 20 may transmit the first transaction information to the second node 20-2 on the network of the blockchain. In addition, the first node 20 may record, in the candidate block 1220, first transaction information 1221 indicating information in which the first user transfers a cryptocurrency 3,500,000 cache to the second user. When predetermined transaction information is recorded in the candidate block 1220, the first node 20 may generate a valid block by performing proof of work on the candidate block 1220. In addition, when the validity of the first transaction information is verified in the second node 20-2, the second node 20-2 adds the first transaction information to the candidate block 1220, and adds the candidate transaction to the candidate block 1220. Proof of work can be performed to generate a valid block. The third node 20-3 and the fourth node 20-4 may operate similarly to the second node 20-2.

제1 노드(20)에서 유효한 블록을 생성하여 블록체인에 추가하는 과정을 설명하면, 제1 노드(20)는 소정의 거래 정보들에 대한 머클 트리의 루트를 계산할 수 있다. 제1 노드(20)는 블록체인에 추가될 블록의 입장에서 이전 블록 헤더를 가리키는 해시 참조를 생성할 수 있다. 제1 노드(20)는 블록체인에 추가될 블록의 작업 증명 또는 제약 조건에서 필요한 난이도를 획득할 수 있다. 제1 노드(20)는 머클 트리의 루트, 이전 블록 헤더를 가리키는 해시 참조, 난이도, 타임스태프의 데이터와 난스에 해시 함수를 적용하여 생성된 블록해시의 값이 제약 조건을 만족하는지 확인할 수 있다. 제1 노드(20)는 난스를 0부터 1씩 증가시키면서 제약 조건을 만족시키는 난스의 값을 획득하여 후보 블록(1220)에 대한 작업 증명을 수행할 수 있다. 제1 노드(20)는 블록체인에 후보 블록(1220)을 유효한 블록으로 추가할 수 있다. 또한, 제1 노드(20)는 유효한 블록을 블록체인의 네트워크 상의 다른 노드들(20-2, 20-3, 20-4 등)로 전송할 수 있다.Referring to the process of generating a valid block in the first node 20 and adding it to the blockchain, the first node 20 may calculate the root of the Merkle tree for predetermined transaction information. The first node 20 may generate a hash reference that points to the previous block header in view of the block to be added to the blockchain. The first node 20 may acquire a difficulty level required for proof of work or constraint of a block to be added to the blockchain. The first node 20 may check whether the value of the block hash generated by applying the hash function to the root of the Merkle tree, a hash reference indicating the previous block header, the difficulty, the data and the nonce of the timestamp satisfies the constraint. . The first node 20 may perform proof of work on the candidate block 1220 by acquiring a nonce value that satisfies the constraint while increasing the nonce by 0 to 1. The first node 20 may add the candidate block 1220 as a valid block to the blockchain. In addition, the first node 20 may transmit a valid block to other nodes 20-2, 20-3, 20-4, etc. on the network of the blockchain.

블록체인의 네트워크 상의 각 노드들(20-2, 20-3, 20-4 등)은 제1 노드(20)에서 수신한 유효한 블록에 대한 검증을 수행하여, 각 노드들(20-2, 20-3, 20-4 등)에서 보유하는 블록체인에 유효한 블록을 추가할 수 있다.Each node (20-2, 20-3, 20-4, etc.) on the network of the blockchain performs verification on a valid block received by the first node 20, so that each node 20-2, 20 -3, 20-4, etc.) can add a valid block to the blockchain.

도 13은 일실시예에 따라, 전자 장치에서 디지털 서명된 거래 정보를 블록체인의 네트워크 상의 노드로 전송하는 과정을 설명하기 위한 도면이다.FIG. 13 is a diagram for describing a process of transmitting digitally signed transaction information to a node on a network of a blockchain in an electronic device according to an embodiment.

전자 장치(10)는 "제1 사용자가 제2 사용자에게 제1 암호화폐 3,500,000 캐시를 이체"한 거래 정보(1310)를 제1 사용자의 개인키로 암호화하고, 암호화된 거래 정보(1340)를 블록체인의 네트워크 상의 제1 노드(20)로 전송할 수 있다.The electronic device 10 encrypts the transaction information 1310 "the first user transfers the 3,500,000 cache of the first cryptocurrency to the second user" with the private key of the first user, and encrypts the encrypted transaction information 1340 with the blockchain. May be transmitted to the first node 20 on the network.

구체적으로, 전자 장치(10)는 "제1 사용자가 제2 사용자에게 제1 암호화폐 3,500,000 캐시를 이체"한 거래 정보(1310)를 거래 정보에 대한 고유의 데이터를 생성하는 해시함수에 적용하여, 거래 정보(1310)에 대응되는 해시값 "8F23V230"(1320)을 생성할 수 있다.Specifically, the electronic device 10 applies the transaction information 1310 “the first user transfers the 3,500,000 cache of the first cryptocurrency to the second user” to a hash function that generates unique data about the transaction information. The hash value “8F23V230” 1320 corresponding to the transaction information 1310 may be generated.

전자 장치(10)는 제1 사용자의 개인키(1325)로 해시값 "8F23V230"(1320)을 암호화하여 거래 정보(1310)의 디지털 서명을 나타내는 제1 암호문 "%! ##(YSEDK$#9$KPXL&%"(1330)을 생성할 수 있다. 여기서, 제1 사용자의 개인키(1325)는, 제1 사용자의 생체 정보로부터 획득될 수 있다. 생체 정보는, 지문 정보, 홍채 정보, 정맥 정보, 얼굴 정보 등일 수 있고, 이에 한정되지 않는다. 전자 장치(10)는 제1 암호문 "%! ##(YSEDK$#9$KPXL&%"(1330)을 거래 정보(1310)와 합한 거래 정보(1340)를 제1 노드(20)로 전송할 수 있다.The electronic device 10 encrypts the hash value " 8F23V230 " 1320 with the private key 1325 of the first user to indicate the first cipher text "%!## (YSEDK $ # 9) representing the digital signature of the transaction information 1310. $ KPXL &% "1330. Here, the private key 1325 of the first user may be obtained from biometric information of the first user. The biometric information may include fingerprint information, iris information, and vein information. And electronic device 10, but is not limited thereto. The electronic device 10 may include transaction information 1340 in which the first cipher text “%! ## (YSEDK $ # 9 $ KPXL &%”) 1330 is combined with transaction information 1310. ) May be transmitted to the first node 20.

또한, 전자 장치(10)는 제1 사용자의 생체 정보로부터 획득된 제1 사용자의 개인키(1325)를 해시 함수에 적용하여, 제1 사용자의 공개키를 생성할 수 있다. 전자 장치(10)는 제1 사용자의 공개키를 제1 노드(20)로 전송할 수 있다.In addition, the electronic device 10 may generate the public key of the first user by applying the first user's private key 1325 obtained from the biometric information of the first user to the hash function. The electronic device 10 may transmit the public key of the first user to the first node 20.

도 14는 일실시예에 따라, 블록체인의 네트워크 상의 노드에서 거래 정보의 유효성을 검증하는 과정을 설명하기 위한 도면이다.14 is a diagram for describing a process of validating transaction information at a node on a network of a blockchain, according to an exemplary embodiment.

예를 들면, 제1 노드(20)는 제1 사용자의 전자 장치(10)로부터 거래 정보(1410)를 수신할 수 있다. 거래 정보(1410)는 "제1 사용자가 제2 사용자에게 제1 암호화폐 3,500,000 캐시를 이체"한 거래 정보(1411) 및 제1 암호문 "%! ##(YSEDK$#9$KPXL&%"(1412)을 포함할 수 있다. 제1 노드(20)는 거래 정보(1411)에 해시함수를 적용하여 거래 정보(1411)에 대응되는 해시값 "8F23V230"(1421)을 생성할 수 있다. 제1 노드(20)는 제1 사용자의 공개키(1425)를 이용하여 제1 암호문 "%! ##(YSEDK$#9$KPXL&%"(1412)을 복호화하여 해시값 "8F23V230"(1422)을 생성할 수 있다. 해시값 "8F23V230"(1421)과 해시값 "8F23V230"(1422)이 동일하므로, 제1 노드(20)는 제1 사용자의 전자 장치(10)로부터 수신된 거래 정보(1410)는 유효하다고 판단할 수 있다.For example, the first node 20 may receive the transaction information 1410 from the electronic device 10 of the first user. The transaction information 1410 includes the transaction information 1411 in which the first user transfers the 3,500,000 cache of the first cryptocurrency to the second user, and the first cryptogram "%! ## (YSEDK $ # 9 $ KPXL &%"). The first node 20 may apply a hash function to the transaction information 1411 to generate a hash value "8F23V230" 1421 corresponding to the transaction information 1411. The first node 20 decodes the first ciphertext "%! ## (YSEDK $ # 9 $ KPXL &%" 1412) using the public key 1425 of the first user to generate the hash value "8F23V230" 1422. Since the hash value "8F23V230" 1421 and the hash value "8F23V230" 1422 are the same, the first node 20 determines that the transaction information 1410 received from the electronic device 10 of the first user is valid. Can be judged.

다른 예를 들면, 제1 노드(20)는 제1 사용자의 전자 장치(10)로부터 거래 정보(1430)를 수신할 수 있다. 거래 정보(1430)는 "제1 사용자가 제2 사용자에게 제1 암호화폐 2,500,000 캐시를 이체"한 거래 정보(1431) 및 제1 암호문 "%! ##(YSEDK$#9$KPXL&%"(1412)을 포함할 수 있다. 제1 노드(20)는 거래 정보(1431)에 해시함수를 적용하여 거래 정보(1431)에 대응되는 해시값 "6F49X298"(1441)을 생성할 수 있다. 제1 노드(20)는 제1 사용자의 공개키(1425)를 이용하여 제1 암호문 "%! ##(YSEDK$#9$KPXL&%"(1412)을 복호화하여 해시값 "8F23V230"(1422)을 생성할 수 있다. 해시값 "6F49X298"(1441)과 해시값 "8F23V230"(1422)이 동일하지 않으므로, 제1 노드(20)는 제1 사용자의 전자 장치(10)로부터 수신된 거래 정보(1430)는 유효하지 않다고 판단할 수 있다.For another example, the first node 20 may receive the transaction information 1430 from the electronic device 10 of the first user. The transaction information 1430 includes the transaction information 1431 where the first user transfers the 2,500,000 cache of the first cryptocurrency to the second user, and the first cryptogram "%! ## (YSEDK $ # 9 $ KPXL &%") (1412). The first node 20 may apply a hash function to the transaction information 1431 to generate a hash value “6F49X298” 1441 corresponding to the transaction information 1431. The first node 201. 20 decodes the first ciphertext "%! ## (YSEDK $ # 9 $ KPXL &%" 1412) using the public key 1425 of the first user to generate the hash value "8F23V230" 1422. Since the hash value "6F49X298" 1421 and the hash value "8F23V230" 1422 are not the same, the first node 20 may determine that the transaction information 1430 received from the electronic device 10 of the first user. It can be determined that it is not valid.

도 15는 일실시예에 따라, 블록 및 블록체인의 구조를 설명하기 위한 블록도이다.15 is a block diagram illustrating a structure of a block and a blockchain according to an embodiment.

도 15에 도시된 바와 같이, 블록체인은 유효한 거래 정보들을 기록한 블록들이 연결되어 구성될 수 있다. 즉, 블록체인의 데이터 구조는 거래 정보를 기록한 블록들이 순서대로 정렬된 단위로 구성된 소정의 데이터 구조일 수 있다. 또한, 블록체인의 데이터 구조는 각 블록 헤더가 이전 블록 헤더를 참조하여 체인 형식으로 연결된 데이터 구조, 및 거래 정보의 데이터를 가리키는 해시 참조와 거래 정보의 데이터가 트리 형태로 연결된 머클 트리의 데이터 구조로 구성될 수 있다.As shown in FIG. 15, a blockchain may be constructed by connecting blocks in which valid transaction information is recorded. That is, the data structure of the blockchain may be a predetermined data structure composed of units in which blocks in which transaction information is recorded are arranged in order. In addition, the data structure of the blockchain is a data structure in which each block header is linked in a chain form with reference to the previous block header, and a data structure of the Merkle tree in which a hash reference indicating data of the transaction information and data of the transaction information are connected in a tree form. Can be configured.

블록은 블록 해시, 블록 헤더, 거래 정보 등을 포함할 수 있다. 블록 헤더는 현재 프로그램의 버전, 이전 블록 헤더의 해시값, 머클 트리의 루트, 타임스태프, 난이도 및 난스의 정보를 포함할 수 있다.The block may include a block hash, block header, transaction information, and the like. The block header may include the version of the current program, the hash value of the previous block header, the root of the Merkle tree, the timestamp, the difficulty, and the nonce.

블록 해시는 현재 프로그램의 버전, 이전 블록 헤더의 해시값, 머클 트리의 루트, 타임스태프, 난이도 및 난스의 정보를 입력값으로 하여 적용된 해시 함수의 해시값일 수 있다. 즉, 블록 해시의 값은 블록 전체를 해시한 값이 아니라, 블록 헤더를 해시한 값일 수 있다.The block hash may be a hash value of a hash function applied by using information of a version of a current program, a hash value of a previous block header, a root of a Merkle tree, a time stamp, a difficulty level, and a nonce. That is, the value of the block hash may be a value that hashes the block header, not a value that hashes the entire block.

이전 블록 헤더의 해시값은 각 블록 헤더를 고유하게 식별하고, 이전 블록 헤더를 참조하기 위해 사용될 수 있다. 각 블록 헤더가 이전 블록 헤더를 참조하면, 개별 블록 헤더와 블록의 순서는 유지될 수 있다. 도 15를 참고하면, 제1 블록(1510)은 최초 블록이어서 이전 블록이 없으므로, 이전 블록 헤더를 가리키는 어떠한 참조도 없다. 따라서, 제1 블록(1510)의 이전 블록 헤더의 해시값은 0이다. 또한, 제2 블록(1520)은 이전 블록인 제1 블록(1510)이 있으므로, 제2 블록 헤더는 제1 블록 헤더를 가리키는 해시값을 갖는다. 마찬가지로, 제3 블록(1530)은 이전 블록인 제2 블록(1520)이 있으므로, 제3 블록 헤더는 제2 블록 헤더를 가리키는 해시값을 갖는다.The hash value of the previous block header may uniquely identify each block header and may be used to refer to the previous block header. If each block header refers to the previous block header, the order of the individual block headers and blocks may be maintained. Referring to FIG. 15, since the first block 1510 is the first block and there is no previous block, there is no reference to the previous block header. Thus, the hash value of the previous block header of the first block 1510 is zero. In addition, since the second block 1520 includes the first block 1510 that is the previous block, the second block header has a hash value indicating the first block header. Similarly, since the third block 1530 has the second block 1520, which is the previous block, the third block header has a hash value indicating the second block header.

머클 트리는 해시 참조와 거래 정보의 데이터가 트리 형태로 연결되어 있는 구조를 의미할 수 있다. 해시 참조는 암호화 해시값을 이용하여 거래 정보의 데이터를 가리키는 것을 의미할 수 있다. 한편, 암호화 해시값은 데이터의 고유값이므로, 서로 다른 데이터들은 동일한 해시값을 갖지 않는다.The Merkle tree may mean a structure in which a hash reference and data of transaction information are connected in a tree form. The hash reference may refer to data of transaction information using an encrypted hash value. On the other hand, since the encrypted hash value is a unique value of the data, different data do not have the same hash value.

머클 트리가 생성되는 과정을 구체적으로 설명하면, 거래 정보(예를 들면, 제1 거래 정보, 제2 거래 정보, 제3 거래 정보, 제4 거래 정보)의 데이터 각각을 가리키는 해시 참조(예를 들면, 제1 해시 참조, 제2 해시 참조, 제3 해시 참조, 제4 해시 참조)가 생성될 수 있다. 해시 참조가 생성되면, 해시 참조의 쌍을 가리키는 해시 참조(예를 들면, 제1 해시 참조와 제2 해시 참조를 가리키는 제12 해시 참조, 제3 해시 참조와 제4 해시 참조를 가리키는 제34 해시 참조)가 생성될 수 있다. 그리고 나서, 해시 참조의 쌍을 가리키는 해시 참조를 생성하는 작업이 반복 수행되어 단일 해시 참조(예를 들면, 제12 해시 참조와 제34 해시 참조를 가리키는 제1234 해시 참조)가 생성될 수 있다. 즉, 머클 트리는 단일 해시 참조에서 시작되어 각 거래 정보의 데이터까지 연결된 트리 형태의 구조일 수 있다. 머클 트리의 루트는 최종적으로 생성된 단일 해시 참조를 의미할 수 있다.In detail, the process of generating the Merkle tree includes a hash reference (for example, each of the data of the transaction information (for example, first transaction information, second transaction information, third transaction information, and fourth transaction information)). , A first hash reference, a second hash reference, a third hash reference, and a fourth hash reference) may be generated. When a hash reference is generated, a hash reference that points to a pair of hash references (e.g., a 12th hash reference pointing to a first hash reference and a second hash reference, a 34th hash reference pointing to a third hash reference, and a fourth hash reference). ) May be generated. Thereafter, the operation of generating a hash reference that points to the pair of hash references may be repeated to generate a single hash reference (eg, a twelfth hash reference and a 1234 hash reference to the thirty-fourth hash reference). That is, the Merkle tree may be a tree-type structure starting from a single hash reference and linked to data of each transaction information. The root of the Merkle tree may mean a single generated hash reference.

타임스태프는 작업 증명을 위해 작업을 시작한 시각을 의미할 수 있다. 난이도는 작업 증명 또는 해시 퍼즐에서의 제약 조건을 의미할 수 있다. 난스는 작업 증명을 위해 블록해시의 값이 제약 조건을 만족하도록 조절되는 값을 의미할 수 있다.The time staff may mean the time when the work started to prove the work. The difficulty may refer to constraints in proof of work or hash puzzles. The nonce may refer to a value in which the value of the block hash is adjusted to satisfy the constraint for proof of work.

도 16은 일실시예에 따른 전자 장치의 구성을 도시한 블록도이다.16 is a block diagram illustrating a configuration of an electronic device according to an embodiment.

도 16에 도시된 전자 장치(1600)는 통신 장치(1610), 센서 장치(1620), 사용자 인터페이스 장치(1630), 메모리(1640) 및 프로세서(1650)를 포함할 수 있다. 그러나, 도시된 구성 요소 모두가 필수 구성 요소인 것은 아니다. 도시된 구성 요소보다 많은 구성 요소에 의해 전자 장치(1600)가 구현될 수 있고, 그보다 적은 구성 요소에 의해서도 전자 장치(1600)가 구현될 수 있다. 이하 상기 구성 요소들에 대해 살펴본다. 도 16에 도시된 전자 장치(1600)는 도 1 내지 도 15에서 설명한 전자 장치(10)와 동일하게 대응될 수 있다.The electronic device 1600 illustrated in FIG. 16 may include a communication device 1610, a sensor device 1620, a user interface device 1630, a memory 1640, and a processor 1650. However, not all illustrated components are essential components. The electronic device 1600 may be implemented by more components than the illustrated components, and the electronic device 1600 may be implemented by fewer components. Hereinafter, the components will be described. The electronic device 1600 illustrated in FIG. 16 may correspond to the electronic device 10 described with reference to FIGS. 1 to 15.

일부 실시예에 따르면, 통신 장치(1610)는 외부 장치와 통신을 수행할 수 있다. 구체적으로, 통신 장치(2110)는 유선 또는 무선으로 네트워크와 연결되어 외부 장치와 통신을 수행할 수 있다. 여기서, 외부 장치는 서버, 스마트폰, 태블릿, PC, 컴퓨팅 장치 등일 수 있다. 통신 장치(1610)는 다양한 유무선 통신 방법 중 하나를 지원하는 통신 모듈을 포함할 수 있다. 예를 들면, 통신 모듈은 칩셋(chipset)의 형태일 수도 있고, 또는 통신에 필요한 정보를 포함하는 스티커/바코드(e.g. NFC tag를 포함하는 스티커)등일 수도 있다. 또한, 통신 모듈은 근거리 통신 모듈, 유선 통신 모듈일 수 있다.According to some embodiments, the communication device 1610 may communicate with an external device. In detail, the communication device 2110 may be connected to a network by wire or wirelessly to communicate with an external device. Here, the external device may be a server, a smartphone, a tablet, a PC, a computing device, or the like. The communication device 1610 may include a communication module supporting one of various wired and wireless communication methods. For example, the communication module may be in the form of a chipset, or may be a sticker / barcode (e.g. a sticker including an NFC tag) including information necessary for communication. In addition, the communication module may be a short range communication module or a wired communication module.

예를 들면, 통신 장치(1610)는 무선 랜(Wireless LAN), Wi-Fi(Wireless Fidelity), WFD(Wi-Fi Direct), 블루투스(Bluetooth), BLE(Bluetooth Low Energy), Wired Lan, NFC(Near Field Communication), 지그비(Zigbee) 적외선(IrDA, infrared Data Association), 3G, 4G, 및 5G 중 적어도 하나를 지원할 수 있다.For example, the communication device 1610 may include a wireless LAN, a wireless fidelity (Wi-Fi), a Wi-Fi Direct (WFD), a Bluetooth, a Bluetooth Low Energy (BLE), a Wired Lan, and an NFC ( It may support at least one of Near Field Communication, Zigbee Infrared Data Association (IrDA), 3G, 4G, and 5G.

일부 실시예에 따르면, 통신 장치(1610)는 암호화폐에 대한 거래를 기록한 원장을 분산하여 관리하는 블록체인의 네트워크 상의 적어도 하나의 노드와 통신을 수행할 수 있다. 예를 들면, 통신 장치(1610)는 제1 사용자와 제2 사용자 간에 거래된 암호화폐의 거래 정보를 제1 노드(20)로 전송할 수 있다. 여기서, 거래 정보는, 제1 사용자의 생체 정보로부터 획득된 제1 사용자의 개인키로 암호화될 수 있다.According to some embodiments, the communication device 1610 may communicate with at least one node on a network of a blockchain that distributes and manages a ledger that records a transaction for a cryptocurrency. For example, the communication device 1610 may transmit transaction information of a cryptocurrency traded between the first user and the second user to the first node 20. Here, the transaction information may be encrypted with the private key of the first user obtained from the biometric information of the first user.

일부 실시예에 따르면, 통신 장치(1610)는 전자 장치(1600)에서 획득된 제1 사용자의 공개키를 제1 노드(20)로 전송할 수 있다. 또한, 제1 사용자의 공개키는 제1 사용자의 개인키를 해시 함수에 적용하여 산출된 값이다.According to some embodiments, the communication device 1610 may transmit the public key of the first user obtained from the electronic device 1600 to the first node 20. The public key of the first user is a value calculated by applying the private key of the first user to a hash function.

일부 실시예에 따르면, 센서 장치(1620)는 제1 사용자의 소정 부위에 대한 생체 정보를 감지하기 위해 이용되는 장치일 수 있다. 센서 장치(1620)는 지문 인식 센서, 홍채 인식 센서, 얼굴 인식 센서, 정맥 인식 센서 등을 포함할 수 있고, 이에 한정되지 않는다. According to some embodiments, the sensor device 1620 may be a device used to detect biometric information about a predetermined portion of the first user. The sensor device 1620 may include a fingerprint sensor, an iris sensor, a face sensor, a vein sensor, and the like, but is not limited thereto.

예를 들면, 지문 인식 센서는 손가락 표면에 형성된 피부 요철형상을 판독하는 역할을 할 수 있다. 지문 인식 센서로 사용되는 센서의 종류로는 정전 용량식(capacitive), RF 방식(radio frequency), 열식(thermal) 및 광학 어레이(optical arrays)등이 있을 수 있다. 각 지문 인식 센서 방식의 측정 메커니즘은 상이하지만 그 결과로 얻어지는 생체 영상 정보는 센서와 접촉하는 지문의 형태를 획득할 수 있다.For example, the fingerprint recognition sensor may serve to read the skin irregularities formed on the surface of the finger. Types of sensors used as the fingerprint sensor may include capacitive, radio frequency, thermal, and optical arrays. Although the measurement mechanism of each fingerprint recognition sensor method is different, the resulting biological image information can obtain the form of the fingerprint in contact with the sensor.

예를 들면, 홍채 인식 센서는 일정한 거리에서 적외선을 이용한 카메라의 줌렌즈를 통해 초점을 조절하여 사용자의 홍채를 촬영할 수 있다. 홍채 인식 센서는 촬영된 홍채를 영상화한 뒤에 홍채 인식 알고리즘에 따라 홍채의 명암 패턴을 영역별로 분석할 수 있다. 홍채 인식 센서는 분석 결과에 기초하여, 사용자의 고유의 홍채 코드를 생성할 수 있다.For example, the iris sensor may capture a user's iris by adjusting a focus through a zoom lens of a camera using infrared rays at a predetermined distance. The iris sensor may image the photographed iris and analyze the light and shade patterns of the iris for each region according to the iris recognition algorithm. The iris recognition sensor may generate a user's own iris code based on the analysis result.

예를 들면, 정맥 인식 센서는 근적외선을 이용하여 사용자의 손가락에서 정맥이 흐르는 일정한 형태를 검출할 수 있다. 정맥 인식 센서는 정맥의 분포도 및 정맥 패턴의 형태를 획득할 수 있다.For example, the vein recognition sensor may detect a constant shape of the vein flowing in the finger of the user using near infrared rays. The vein recognition sensor can acquire the distribution of veins and the shape of vein patterns.

일부 실시예에 따르면, 사용자 인터페이스 장치(1630)는 사용자로부터 전자 장치(1600)를 제어하기 위해 데이터를 입력 받는 장치를 의미할 수 있다. 프로세서(1650)는 사용자로부터 소정 명령 또는 데이터를 입력 받기 위한 사용자 인터페이스 화면을 생성 및 출력하도록 사용자 인터페이스 장치(1630)를 제어할 수 있다. 사용자 인터페이스 장치(1630)는 전자 장치(1600)의 동작을 제어하는 입력 등을 수신하기 위한 입력부와 전자 장치(1600)의 동작에 따른 결과 또는 전자 장치(1600)의 상태 등의 정보를 표시하기 위한 출력부를 포함할 수 있다. 예를 들면, 사용자 인터페이스 장치(1630)는 사용자 입력을 수신하는 조작 패널, 화면을 표시하는 디스플레이 패널 등을 포함할 수 있다.According to some embodiments, the user interface device 1630 may refer to a device that receives data from the user to control the electronic device 1600. The processor 1650 may control the user interface device 1630 to generate and output a user interface screen for receiving a predetermined command or data from a user. The user interface device 1630 is configured to display an input unit for receiving an input for controlling the operation of the electronic device 1600, a result according to the operation of the electronic device 1600, or information such as a state of the electronic device 1600. It may include an output unit. For example, the user interface device 1630 may include an operation panel for receiving a user input, a display panel for displaying a screen, and the like.

구체적으로, 입력부는, 예를 들어, 키보드, 물리 버튼, 터치 스크린, 카메라 또는 마이크 등과 같이 다양한 형태의 사용자 입력을 수신할 수 있는 장치들을 포함할 수 있다. 또한, 출력부는, 예를 들어, 디스플레이 패널 또는 스피커 등을 포함할 수 있다. 다만, 이에 한정되지 않고 사용자 인터페이스 장치(1630)는 다양한 입출력을 지원하는 장치를 포함할 수 있다.In detail, the input unit may include, for example, devices capable of receiving various types of user input such as a keyboard, a physical button, a touch screen, a camera or a microphone. In addition, the output unit may include, for example, a display panel or a speaker. However, the present invention is not limited thereto, and the user interface device 1630 may include a device supporting various input / output.

일부 실시예에 따르면, 사용자 인터페이스 장치(1630)는 제1 사용자의 전자 지갑의 실행 화면을 표시할 수 있다. 예를 들면, 사용자 인터페이스 장치(1630)는 제1 사용자의 전자 지갑에서 보유하는 암호화폐의 정보를 표시할 수 있다. 또한, 사용자 인터페이스 장치(1630)는 제1 사용자가 다른 사용자와 암호화폐를 거래하는 데에 실행되는 화면을 표시할 수 있다.According to some embodiments, the user interface device 1630 may display an execution screen of the electronic wallet of the first user. For example, the user interface device 1630 may display information of a cryptocurrency held in the electronic wallet of the first user. In addition, the user interface device 1630 may display a screen executed by the first user to trade cryptocurrency with another user.

메모리(1640)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(SD, XD 메모리 등), 램(RAM; Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM; Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory) 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. 메모리(1640)는 전자 장치(1600)에서 실행된 전자 지갑의 동작을 제어하는 방법을 컴퓨터에서 실행시키기 위한 적어도 하나의 프로그램을 저장할 수 있다. 메모리(1640)에 저장된 적어도 하나의 프로그램은 기능에 따라 복수 개의 모듈들로 분류될 수 있다.The memory 1640 may include a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (SD, XD memory, etc.), RAM; Random Access Memory (SRAM) Static Random Access Memory (ROM), Read-Only Memory (ROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), Programmable Read-Only Memory (PROM) Magnetic Memory, Magnetic Disk, Optical Disk It may include one type of storage medium. The memory 1640 may store at least one program for executing in the computer a method of controlling an operation of the electronic wallet executed in the electronic device 1600. At least one program stored in the memory 1640 may be classified into a plurality of modules according to a function.

프로세서(1650)는 전자 장치(1600)의 전체적인 동작을 제어하며, CPU 등과 같은 적어도 하나의 프로세서를 포함할 수 있다. 프로세서(1650)는 사용자 인터페이스 장치(1630)를 통해 수신된 사용자 입력에 대응되는 동작을 수행하도록 전자 장치(1600)에 포함된 다른 구성들을 제어할 수 있다. 또한, 프로세서(1650)는 각 기능에 대응되는 특화된 프로세서를 적어도 하나 포함하거나, 하나로 통합된 형태의 프로세서일 수 있다.The processor 1650 controls the overall operation of the electronic device 1600 and may include at least one processor such as a CPU. The processor 1650 may control other components included in the electronic device 1600 to perform an operation corresponding to a user input received through the user interface device 1630. In addition, the processor 1650 may include at least one specialized processor corresponding to each function or may be a processor integrated into one.

프로세서(1650)는 메모리(1640)에 저장된 프로그램을 실행시키거나, 메모리(1640)에 저장된 데이터 또는 파일을 읽어오거나, 새로운 파일을 메모리(1640)에 저장할 수도 있다. 또한, 프로세서(1650)는 메모리(1640)에 저장된 명령어들을 실행할 수 있다.The processor 1650 may execute a program stored in the memory 1640, read data or a file stored in the memory 1640, or store a new file in the memory 1640. In addition, the processor 1650 may execute instructions stored in the memory 1640.

프로세서(1650)는 도 2 내지 도 9에서 설명한 프로세서(15)의 동작과 동일한 동작을 수행할 수 있다. 이하, 프로세서(1650)의 동작의 설명은 생략한다.The processor 1650 may perform the same operation as that of the processor 15 described with reference to FIGS. 2 to 9. Hereinafter, the description of the operation of the processor 1650 will be omitted.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the devices and components described in the embodiments are, for example, processors, controllers, arithmetic logic units (ALUs), digital signal processors, microcomputers, field programmable gate arrays (FPGAs). Can be implemented using one or more general purpose or special purpose computers, such as a programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to the execution of the software. For the convenience of understanding, a processing device may be described as one being used, but a person skilled in the art will appreciate that the processing device includes a plurality of processing elements and / or a plurality of types of processing elements. It can be seen that it may include. For example, the processing device may include a plurality of processors or one processor and one controller. In addition, other processing configurations are possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the above, and configure the processing device to operate as desired, or process independently or collectively. You can command the device. Software and / or data may be any type of machine, component, physical device, virtual equipment, computer storage medium or device in order to be interpreted by or to provide instructions or data to the processing device. Or may be permanently or temporarily embodied in a signal wave to be transmitted. The software may be distributed over networked computer systems so that they are stored or executed in a distributed manner. Software and data may be stored on one or more computer readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 기록 매체에 기록될 수 있다. 컴퓨터 판독 가능 기록 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment can be implemented in the form of program instructions that can be executed by various computer means and recorded on a computer readable recording medium. The computer readable recording medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the media may be those specially designed and constructed for the purposes of the embodiments, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer readable recording media include magnetic media such as hard disks, floppy disks and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks such as floppy disks. Magneto-optical 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 code, such as produced 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 described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described by the limited embodiments and the drawings as described above, various modifications and variations are possible to those skilled in the art from the above description. For example, the described techniques may be performed in a different order than the described method, and / or components of the described systems, structures, devices, circuits, etc. may be combined or combined in a different manner than the described method, or other components. Or even if replaced or replaced by equivalents, an appropriate result can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are within the scope of the following claims.

Claims (22)

사용자의 소정 부위가 스캔된 생체 영상을 획득하는 단계;
상기 생체 영상으로부터 상기 사용자의 생체 특징을 나타내는 인식 템플릿을 획득하는 단계;
상기 인식 템플릿을 복수의 영역들로 분할하고, 상기 분할된 영역들 내의 생체 특징 정보에 기초하여, 상기 인식 템플릿에 대응되는 식별값을 결정하는 단계; 및
상기 식별값을 제1 해시 함수에 적용하여 해시값을 산출하고, 상기 산출된 해시값을 디지털 서명에 이용되는 상기 사용자의 개인키로 생성하는 단계를 포함하는, 생체 정보를 이용한 암호키 생성 방법.
Obtaining a biometric image of scanning a predetermined portion of the user;
Obtaining a recognition template representing a biometric characteristic of the user from the biometric image;
Dividing the recognition template into a plurality of areas, and determining an identification value corresponding to the recognition template based on biometric characteristic information in the divided areas; And
Applying the identification value to a first hash function to calculate a hash value and generating the calculated hash value as the private key of the user used for digital signature.
제1항에 있어서,
상기 분할된 영역들 내의 생체 특징 정보에 기초하여, 상기 인식 템플릿에 대응되는 식별값을 결정하는 단계는,
상기 분할된 영역들 내의 생체 특징 정보에 기초하여, 상기 분할된 영역들 각각에 매칭되는 참조 템플릿을 결정하는 단계;
상기 분할된 영역들 각각에, 상기 참조 템플릿의 기준값을 상기 식별값으로 할당하는 단계를 포함하는, 암호키 생성 방법.
The method of claim 1,
Determining an identification value corresponding to the recognition template based on the biometric characteristic information in the divided regions,
Determining a reference template matched to each of the divided regions based on the biometric characteristic information in the divided regions;
And assigning a reference value of the reference template as the identification value to each of the divided regions.
제2항에 있어서,
상기 소정 부위의 생체 특징들 각각을 대표하는 참조 템플릿들 및 상기 참조 템플릿들을 나타내는 기준값의 정보를 획득하는 단계를 더 포함하는, 암호키 생성 방법.
The method of claim 2,
And obtaining information of reference templates representing each of the biometric features of the predetermined region and reference value information indicating the reference templates.
제2항에 있어서,
상기 분할된 영역들 내의 생체 특징 정보에 기초하여, 상기 분할된 영역들 각각에 매칭되는 참조 템플릿을 결정하는 단계는,
상기 분할된 영역들 내에서, 상기 소정 부위의 생체 특징을 인식하는 데에 이용되는 적어도 하나의 특징점 및 상기 적어도 하나의 특징선을 검출하는 단계;
상기 적어도 하나의 특징점의 위치, 개수, 분포도 및 상기 적어도 하나의 특징선의 방향, 패턴 중 적어도 하나에 기초하여, 상기 소정 부위의 생체 특징 정보를 획득하는 단계; 및
상기 분할된 영역들 내의 생체 특징 정보 및 참조 템플릿들의 정보에 기초하여, 상기 분할된 영역들 각각에 매칭되는 상기 참조 템플릿을 결정하는 단계를 포함하는, 암호키 생성 방법.
The method of claim 2,
Determining a reference template matched to each of the divided regions based on the biometric characteristic information in the divided regions,
Detecting at least one feature point and the at least one feature line in the divided regions, the at least one feature point being used to recognize a biometric feature of the predetermined site;
Acquiring biometric characteristic information of the predetermined portion based on at least one of a position, a number, a distribution diagram, and a direction and pattern of the at least one feature line; And
And determining the reference template matched to each of the divided regions based on the biometric characteristic information in the divided regions and the information of the reference templates.
제2항에 있어서,
상기 식별값을 제1 해시 함수에 적용하여 해시값을 산출하고, 상기 산출된 해시값을 상기 사용자의 개인키로 생성하는 단계는,
상기 분할된 영역들 각각에 할당된 식별값을 소정의 기준으로 나열하여, 전체 식별값을 획득하는 단계; 및
상기 전체 식별값을 상기 제1 해시 함수에 적용하여 제1 해시값을 산출하고, 상기 산출된 제1 해시값을 상기 사용자의 개인키로 생성하는 단계를 포함하는, 암호키 생성 방법.
The method of claim 2,
Applying the identification value to a first hash function to calculate a hash value, and generating the calculated hash value as the private key of the user,
Arranging identification values assigned to each of the divided regions on a predetermined basis to obtain a total identification value; And
And applying the entire identification value to the first hash function to calculate a first hash value, and generating the calculated first hash value as the private key of the user.
제2항에 있어서,
상기 식별값을 제1 해시 함수에 적용하여 해시값을 산출하고, 상기 산출된 해시값을 상기 사용자의 개인키로 생성하는 단계는,
상기 분할된 영역들 각각에 할당된 식별값이 결합되어 획득된 전체 식별값을 상기 제1 해시 함수에 적용하여 제1 해시값을 산출하는 단계;
상기 제1 해시값을 상기 제1 해시 함수에 적용하여 제2 해시값을 산출하는 단계; 및
상기 제2 해시값을 상기 사용자의 개인키로 생성하는 단계를 포함하는, 암호키 생성 방법.
The method of claim 2,
Applying the identification value to a first hash function to calculate a hash value, and generating the calculated hash value as the private key of the user,
Calculating a first hash value by applying the entire identification value obtained by combining the identification values assigned to each of the divided regions to the first hash function;
Calculating a second hash value by applying the first hash value to the first hash function; And
Generating the second hash value as the private key of the user.
제2항에 있어서,
상기 식별값을 제1 해시 함수에 적용하여 해시값을 산출하고, 상기 산출된 해시값을 상기 사용자의 개인키로 생성하는 단계는,
상기 복수(N 개, N은 2 이상임)의 영역들 중 제1 영역에 할당된 제1 기준값을 상기 제1 해시 함수에 적용하여 제1 해시값을 산출하는 단계; 및
제n-1 해시값과 상기 복수의 영역들 중 제n 영역에 할당된 제n 기준값을 상기 제1 해시 함수에 적용하여 제n 해시값을 산출하는 과정을, n=2부터 순차적으로 1씩 증가시켜 n=N까지 반복 수행하는 단계; 및
제N 해시값을 상기 사용자의 개인키로 생성하는 단계를 포함하는, 암호키 생성 방법.
The method of claim 2,
Applying the identification value to a first hash function to calculate a hash value, and generating the calculated hash value as the private key of the user,
Calculating a first hash value by applying a first reference value allocated to a first region among the plurality of regions, wherein N is two or more, to the first hash function; And
Calculating an nth hash value by applying an n−1 hash value and an n th reference value allocated to an n th region among the plurality of regions to the first hash function, sequentially increasing by 1 from n = 2 Repeating to n = N; And
Generating an N-th hash value as the private key of the user.
제2항에 있어서,
상기 식별값을 제1 해시 함수에 적용하여 해시값을 산출하고, 상기 산출된 해시값을 상기 사용자의 개인키로 생성하는 단계는,
상기 복수(N 개, N은 2 이상임)의 영역들 중 제n 영역에 할당된 제n 기준값을 상기 제1 해시 함수에 적용하여 제1 계층의 제n 해시값을 산출하는 과정을 n=1부터 순차적으로 1씩 증가시켜 n=N까지 반복 수행하는 단계;
n-1 계층의 해시값들을 2개씩 결합하여 상기 제1 해시 함수에 적용하여 n 계층의 해시값을 산출하는 과정을, n=2부터 순차적으로 1씩 증가시켜 최상위 계층(N이 짝수이면, 상기 최상위 계층은 N/2 계층이고, N이 홀수이면, 상기 최상위 계층은 (N+1)/2 계층임)의 해시값의 개수가 1개일 때까지 반복 수행하는 단계; 및
상기 최상위 계층의 해시값의 개수가 1개이면, 상기 최상위 계층의 해시값을 상기 사용자의 개인키로 생성하는 단계를 포함하는, 암호키 생성 방법.
The method of claim 2,
Applying the identification value to a first hash function to calculate a hash value, and generating the calculated hash value as the private key of the user,
A process of calculating an n-th hash value of a first layer by applying an n-th reference value assigned to an n-th area among the plurality of N areas, where N is 2 or more, to the first hash function is performed from n = 1. Sequentially increasing by 1 to repeat n = N;
combining the hash values of the n-1 layer by two and applying the first hash function to the first hash function to increase the hash value of the n layer sequentially from n = 2 to 1 by the highest layer (if N is an even number, If the highest layer is an N / 2 layer and N is odd, the highest layer is repeated until the number of hash values of (N + 1) / 2 layers is one; And
If the number of hash values of the top layer is one, generating a hash value of the top layer as the private key of the user.
제1항에 있어서,
상기 생성된 사용자의 개인키를 상기 제1 해시 함수에 적용하여 산출된 해시값을 상기 사용자의 공개키로 생성하는 단계를 더 포함하는, 암호키 생성 방법.
The method of claim 1,
And generating a hash value calculated by applying the generated private key of the user to the first hash function as the public key of the user.
제9항에 있어서,
상기 사용자의 공개키를 암호화폐에 대한 거래를 기록한 원장을 분산하여 관리하는 블록체인의 네트워크 상의 노드로 전송하는 단계를 포함하는, 암호키 생성 방법.
The method of claim 9,
And transmitting the public key of the user to a node on a network of a blockchain that distributes and manages a ledger recording a transaction for a cryptocurrency.
전자 장치에서 암호화폐를 관리하는 전자 지갑의 동작을 제어하는 방법에 있어서,
제1 사용자의 전자 지갑을 실행하는 단계;
상기 제1 사용자의 소정 부위가 스캔된 생체 영상을 획득하는 단계;
상기 생체 영상으로부터 상기 제1 사용자의 생체 특징 정보를 나타내는 인식 템플릿을 획득하는 단계;
상기 인식 템플릿에 대응되는 식별값을 제1 해시 함수에 적용하여 해시값을 산출하고, 상기 산출된 해시값을 상기 제1 사용자의 개인키로 생성하는 단계; 및
상기 제1 사용자의 개인키로 상기 제1 사용자와 제2 사용자 간의 상기 암호화폐의 제1 거래 정보를 디지털 서명하여, 상기 암호화폐에 대한 거래를 기록한 원장을 분산하여 관리하는 블록체인의 네트워크의 노드로 전송하는 단계를 포함하는, 방법.
A method of controlling an operation of an electronic wallet that manages cryptocurrency in an electronic device,
Executing the electronic wallet of the first user;
Acquiring a biological image of scanning a predetermined portion of the first user;
Obtaining a recognition template indicating biometric characteristic information of the first user from the biometric image;
Calculating a hash value by applying an identification value corresponding to the recognition template to a first hash function, and generating the calculated hash value as the private key of the first user; And
Digitally signing the first transaction information of the cryptocurrency between the first user and the second user with the private key of the first user, and distributing and managing the ledger recording the transaction for the cryptocurrency. Transmitting.
제11항에 있어서,
상기 인식 템플릿을 복수의 영역들로 분할하는 단계;
상기 분할된 영역들 내의 생체 특징 정보에 기초하여, 상기 분할된 영역들 각각에 매칭되는 참조 템플릿을 결정하는 단계; 및
상기 분할된 영역들 각각에, 상기 참조 템플릿의 기준값을 상기 식별값으로 할당하여, 상기 인식 템플릿에 대응되는 식별값을 결정하는 단계를 포함하는, 방법.
The method of claim 11,
Dividing the recognition template into a plurality of regions;
Determining a reference template matched to each of the divided regions based on the biometric characteristic information in the divided regions; And
And assigning a reference value of the reference template as the identification value to each of the divided regions to determine an identification value corresponding to the recognition template.
제12항에 있어서,
상기 분할된 영역들 내의 생체 특징 정보에 기초하여, 상기 분할된 영역들 각각에 매칭되는 참조 템플릿을 결정하는 단계는,
상기 분할된 영역들 내에서, 상기 소정 부위의 생체 특징을 인식하는 데에 이용되는 적어도 하나의 특징점 및 적어도 하나의 특징선을 검출하는 단계;
상기 적어도 하나의 특징점의 위치, 개수, 분포도 및 상기 적어도 하나의 특징선의 방향, 패턴 중 적어도 하나에 기초하여, 상기 소정 부위의 생체 특징 정보를 획득하는 단계; 및
상기 분할된 영역들 내의 생체 특징 정보 및 참조 템플릿들의 정보에 기초하여, 상기 분할된 영역들 각각에 매칭되는 상기 참조 템플릿을 결정하는 단계를 포함하는, 방법.
The method of claim 12,
Determining a reference template matched to each of the divided regions based on the biometric characteristic information in the divided regions,
Detecting at least one feature point and at least one feature line in the divided regions, the at least one feature point being used to recognize a biometric feature of the predetermined region;
Acquiring biometric characteristic information of the predetermined portion based on at least one of a position, a number, a distribution diagram, and a direction and pattern of the at least one feature line; And
Determining the reference template that matches each of the partitioned regions based on biometric feature information in the partitioned regions and information of reference templates.
제12항에 있어서,
상기 식별값을 제1 해시 함수에 적용하여 해시값을 산출하고, 상기 산출된 해시값을 상기 제1 사용자의 개인키로 생성하는 단계는,
상기 분할된 영역들 각각에 할당된 식별값을 소정의 기준으로 나열하여, 전체 식별값을 획득하는 단계; 및
상기 전체 식별값을 상기 제1 해시 함수에 적용하여 제1 해시값을 산출하고, 상기 산출된 제1 해시값을 상기 제1 사용자의 개인키로 생성하는 단계를 포함하는, 방법.
The method of claim 12,
Applying the identification value to a first hash function to calculate a hash value, and generating the calculated hash value as the private key of the first user,
Arranging identification values assigned to each of the divided regions on a predetermined basis to obtain a total identification value; And
Applying the full identification value to the first hash function to calculate a first hash value and generating the calculated first hash value as the private key of the first user.
제12항에 있어서,
상기 식별값을 제1 해시 함수에 적용하여 해시값을 산출하고, 상기 산출된 해시값을 상기 제1 사용자의 개인키로 생성하는 단계는,
상기 분할된 영역들 각각에 할당된 식별값이 결합되어 획득된 전체 식별값을 상기 제1 해시 함수에 적용하여 제1 해시값을 산출하는 단계;
상기 제1 해시값을 상기 제1 해시 함수에 적용하여 제2 해시값을 산출하는 단계; 및
상기 제2 해시값을 상기 제1 사용자의 개인키로 생성하는 단계를 포함하는, 방법.
The method of claim 12,
Applying the identification value to a first hash function to calculate a hash value, and generating the calculated hash value as the private key of the first user,
Calculating a first hash value by applying the entire identification value obtained by combining the identification values assigned to each of the divided regions to the first hash function;
Calculating a second hash value by applying the first hash value to the first hash function; And
Generating the second hash value as the private key of the first user.
제12항에 있어서,
상기 식별값을 제1 해시 함수에 적용하여 해시값을 산출하고, 상기 산출된 해시값을 상기 제1 사용자의 개인키로 생성하는 단계는,
상기 복수(N 개, N은 2 이상임)의 영역들 중 제1 영역에 할당된 제1 기준값을 상기 제1 해시 함수에 적용하여 제1 해시값을 산출하는 단계; 및
제n-1 해시값과 상기 복수의 영역들 중 제n 영역에 할당된 제n 기준값을 상기 제1 해시 함수에 적용하여 제n 해시값을 산출하는 과정을, n=2부터 순차적으로 1씩 증가시켜 n=N까지 반복 수행하는 단계; 및
제N 해시값을 상기 제1 사용자의 개인키로 생성하는 단계를 포함하는, 방법.
The method of claim 12,
Applying the identification value to a first hash function to calculate a hash value, and generating the calculated hash value as the private key of the first user,
Calculating a first hash value by applying a first reference value allocated to a first region among the plurality of regions, wherein N is two or more, to the first hash function; And
Calculating an nth hash value by applying an n−1 hash value and an n th reference value allocated to an n th region among the plurality of regions to the first hash function, sequentially increasing by 1 from n = 2 Repeating to n = N; And
Generating an N-th hash value with the private key of the first user.
제12항에 있어서,
상기 식별값을 제1 해시 함수에 적용하여 해시값을 산출하고, 상기 산출된 해시값을 상기 제1 사용자의 개인키로 생성하는 단계는,
상기 복수(N 개, N은 2 이상임)의 영역들 중 제n 영역에 할당된 제n 기준값을 상기 제1 해시 함수에 적용하여 제1 계층의 제n 해시값을 산출하는 과정을 n=1부터 순차적으로 1씩 증가시켜 n=N까지 반복 수행하는 단계;
n-1 계층의 해시값들을 2개씩 결합하여 상기 제1 해시 함수에 적용하여 n 계층의 해시값을 산출하는 과정을, n=2부터 순차적으로 1씩 증가시켜 최상위 계층(N이 짝수이면, 상기 최상위 계층은 N/2 계층이고, N이 홀수이면, 상기 최상위 계층은 (N+1)/2 계층임)의 해시값의 개수가 1개일 때까지 반복 수행하는 단계; 및
상기 최상위 계층의 해시값의 개수가 1개이면, 상기 최상위 계층의 해시값을 상기 제1 사용자의 개인키로 생성하는 단계를 포함하는, 방법.
The method of claim 12,
Applying the identification value to a first hash function to calculate a hash value, and generating the calculated hash value as the private key of the first user,
A process of calculating an n-th hash value of a first layer by applying an n-th reference value assigned to an n-th area among the plurality of N areas, where N is 2 or more, to the first hash function is performed from n = 1. Sequentially increasing by 1 to repeat n = N;
combining the hash values of the n-1 layer by two and applying the first hash function to the first hash function to increase the hash value of the n layer sequentially from n = 2 to 1 by the highest layer (if N is an even number, If the highest layer is an N / 2 layer and N is odd, the highest layer is repeated until the number of hash values of (N + 1) / 2 layers is one; And
If the number of hash values of the top layer is one, generating the hash value of the top layer as the private key of the first user.
제11항에 있어서,
상기 제1 사용자의 개인키로 상기 제1 거래 정보를 디지털 서명하여, 상기 블록체인의 네트워크의 노드로 전송하는 단계는,
상기 제1 거래 정보를 제2 해시 함수에 적용하여, 상기 제1 거래 정보에 대응되는 해시값을 생성하는 단계;
상기 제1 사용자의 개인키로 상기 제1 거래 정보에 대응되는 해시값을 암호화하여 상기 제1 거래 정보의 디지털 서명을 나타내는 제1 암호문을 생성하는 단계; 및
상기 제1 암호문을 상기 제1 거래 정보와 함께 상기 노드로 전송하는 단계를 포함하는, 방법.
The method of claim 11,
Digitally signing the first transaction information with the private key of the first user and transmitting it to a node of the network of the blockchain,
Generating a hash value corresponding to the first transaction information by applying the first transaction information to a second hash function;
Generating a first cipher text indicating a digital signature of the first transaction information by encrypting a hash value corresponding to the first transaction information with the private key of the first user; And
Sending the first cryptogram along with the first transaction information to the node.
제11항에 있어서,
상기 결정된 제1 사용자의 개인키를 상기 제1 해시 함수에 적용하여 산출된 상기 제1 사용자의 개인키에 대응되는 해시값을 상기 제1 사용자의 공개키로 결정하는 단계 및
상기 제1 사용자의 공개키를 상기 블록체인의 네트워크 상의 노드로 전송하는 단계를 더 포함하는, 방법.
The method of claim 11,
Determining a hash value corresponding to the private key of the first user calculated by applying the determined private key of the first user to the first hash function, as the public key of the first user; and
Sending the public key of the first user to a node on the network of the blockchain.
제11항에 있어서,
상기 제1 사용자와 상기 제2 사용자 간의 상기 암호화폐의 제1 거래 정보를 획득하는 단계; 및
상기 제1 거래 정보에 따라, 상기 제1 사용자의 전자 지갑과 상기 제2 사용자의 전자 지갑 간에 상기 암호화폐의 거래를 수행하는 단계를 더 포함하는, 방법.
The method of claim 11,
Obtaining first transaction information of the cryptocurrency between the first user and the second user; And
In accordance with the first transaction information, performing a transaction of the cryptocurrency between the electronic wallet of the first user and the electronic wallet of the second user.
제1항 내지 제10항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium having recorded thereon a program for executing the method of any one of claims 1 to 10. 통신 장치;
센서 장치;
프로세서;
사용자 인터페이스 장치; 및
상기 프로세서에 의해 실행 가능한 명령어들을 저장하는 메모리를 포함하고, 상기 프로세서는, 상기 명령어들을 실행함으로써,
제1 사용자의 전자 지갑을 실행하고,
상기 제1 사용자의 소정 부위가 스캔된 생체 영상을 상기 센서 장치를 통해 획득하고,
상기 생체 영상으로부터 상기 제1 사용자의 생체 특징 정보를 나타내는 인식 템플릿을 획득하고,
상기 인식 템플릿에 대응되는 식별값을 제1 해시 함수에 적용하여 해시값을 산출하고, 상기 산출된 해시값을 상기 제1 사용자의 개인키로 생성하고,
상기 제1 사용자의 개인키로 상기 제1 사용자와 제2 사용자 간의 상기 암호화폐의 제1 거래 정보를 디지털 서명하고,
상기 디지털 서명된 제1 거래 정보를, 상기 암호화폐에 대한 거래를 기록한 원장을 분산하여 관리하는 블록체인의 네트워크의 노드로 상기 통신 장치를 통해 전송하는, 전자 장치.
Communication devices;
Sensor devices;
A processor;
User interface devices; And
A memory storing instructions executable by the processor, the processor executing the instructions,
Launch the first user's wallet,
Acquire a biological image of scanning a predetermined portion of the first user through the sensor device,
Obtaining a recognition template representing biometric characteristic information of the first user from the biometric image,
Applying a identification value corresponding to the recognition template to a first hash function to calculate a hash value, and generating the calculated hash value as a private key of the first user,
Digitally signing first transaction information of the cryptocurrency between the first user and a second user with the private key of the first user,
And transmit the digitally signed first transaction information through the communication device to a node of a network of a blockchain that distributes and manages a ledger that records a transaction for the cryptocurrency.
KR1020180041708A 2018-04-10 2018-04-10 Method and apparatus for generating cryptographic key using biometric information KR20190118414A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180041708A KR20190118414A (en) 2018-04-10 2018-04-10 Method and apparatus for generating cryptographic key using biometric information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180041708A KR20190118414A (en) 2018-04-10 2018-04-10 Method and apparatus for generating cryptographic key using biometric information

Publications (1)

Publication Number Publication Date
KR20190118414A true KR20190118414A (en) 2019-10-18

Family

ID=68462763

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180041708A KR20190118414A (en) 2018-04-10 2018-04-10 Method and apparatus for generating cryptographic key using biometric information

Country Status (1)

Country Link
KR (1) KR20190118414A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111130751A (en) * 2019-11-04 2020-05-08 杭州云萃流图网络科技有限公司 Appointment information processing method, device and system based on block chain and electronic equipment
KR20220108584A (en) 2021-01-27 2022-08-03 주식회사 엠블럭 Wireless sensor network system generating a dynamic encryption key using blockchain and method for generating a dynamic encryption key in the system
WO2023211221A1 (en) * 2022-04-28 2023-11-02 주식회사 이터널 Method of using cryptocurrency wallet system, cryptocurrency wallet system, cryptocurrency wallet electronic device, and method of using cryptocurrency wallet electronic device

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111130751A (en) * 2019-11-04 2020-05-08 杭州云萃流图网络科技有限公司 Appointment information processing method, device and system based on block chain and electronic equipment
KR20220108584A (en) 2021-01-27 2022-08-03 주식회사 엠블럭 Wireless sensor network system generating a dynamic encryption key using blockchain and method for generating a dynamic encryption key in the system
WO2023211221A1 (en) * 2022-04-28 2023-11-02 주식회사 이터널 Method of using cryptocurrency wallet system, cryptocurrency wallet system, cryptocurrency wallet electronic device, and method of using cryptocurrency wallet electronic device

Similar Documents

Publication Publication Date Title
AU2018266602B2 (en) System and method for biometric identification
US11736296B2 (en) Biometric verification process using certification token
US10937267B2 (en) Systems and methods for provisioning digital identities to authenticate users
US9064257B2 (en) Mobile device transaction using multi-factor authentication
US20220360449A1 (en) Authentication system using secure multi-party computation
US20220417739A1 (en) Secure data communication
EP3642998B1 (en) Verification and encryption scheme in data storage
US11120116B2 (en) Electronic signature authentication system
EP3586264B1 (en) Securely performing cryptographic operations
US20230084897A1 (en) Registration and payment method, device, and system using face information
KR20190118414A (en) Method and apparatus for generating cryptographic key using biometric information
CN111915306A (en) Service data verification method and verification platform
CN115280309A (en) Method, system and computer program product for authentication
KR20210051517A (en) Operating method of electronic device for performing login to a plurality of programs using integrated identification information
CN115423636A (en) Service processing method, device, computer equipment and storage medium

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E902 Notification of reason for refusal