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

KR20190124552A - Method for storing and restroring block chain-based key and user terminal using the same - Google Patents

Method for storing and restroring block chain-based key and user terminal using the same Download PDF

Info

Publication number
KR20190124552A
KR20190124552A KR1020180048662A KR20180048662A KR20190124552A KR 20190124552 A KR20190124552 A KR 20190124552A KR 1020180048662 A KR1020180048662 A KR 1020180048662A KR 20180048662 A KR20180048662 A KR 20180048662A KR 20190124552 A KR20190124552 A KR 20190124552A
Authority
KR
South Korea
Prior art keywords
key
user terminal
seed
pieces
information
Prior art date
Application number
KR1020180048662A
Other languages
Korean (ko)
Other versions
KR102122731B1 (en
Inventor
강철현
김수태
장석희
최재혁
Original Assignee
한국조폐공사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국조폐공사 filed Critical 한국조폐공사
Priority to KR1020180048662A priority Critical patent/KR102122731B1/en
Publication of KR20190124552A publication Critical patent/KR20190124552A/en
Application granted granted Critical
Publication of KR102122731B1 publication Critical patent/KR102122731B1/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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • 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/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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

Landscapes

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

Abstract

The present invention relates to a blockchain-based key generation, storage, and recovery method, more specifically, comprising a step of partitioning a key or a seed used for generating and restoring the key into a predetermined number to generate secret information pieces including each partitioned fragment key or fragment seed and information used for partitioning the key or seed, and distributing the secret information pieces to servers of a trusted authority.

Description

블록 체인 기반 키의 저장 및 복원 방법과 이를 이용한 사용자 단말{METHOD FOR STORING AND RESTRORING BLOCK CHAIN-BASED KEY AND USER TERMINAL USING THE SAME}TECHNICAL FOR STORING AND RESTRORING BLOCK CHAIN-BASED KEY AND USER TERMINAL USING THE SAME}

본 발명은 블록 체인 기반의 키 생성, 저장 및 복원 방법에 관한 것으로 보다 상세하게는, 키 또는 키의 생성 및 복원에 이용되는 시드를 소정 개수로 분할하여 각 분할된 조각 키 또는 조각 시드와 키 또는 시드의 분할에 사용된 정보를 포함하는 비밀정보 조각들을 생성하고, 비밀정보 조각들을 신뢰기관의 서버들에 분산하여 전달하는 단계를 포함하는, 블록 체인 기반의 키 생성, 저장 및 복원 방법 및 이를 이용한 사용자 단말에 관한 것이다. The present invention relates to a blockchain-based key generation, storage and reconstruction method, and more particularly, by dividing a key or a seed used for generating and reconstructing the key into a predetermined number, each partitioned fragment key or fragment seed and key or A method for generating, storing, and restoring a keychain based on the blockchain, comprising generating secret pieces containing information used to divide a seed, and distributing the pieces of secret information to servers of a trust authority. It relates to a user terminal.

모든 국가나 인터넷에서 자유롭게 사용할 수 있는 가상 화폐 또는 암호 화폐를 이용한 화폐 시스템에서 가장 문제가 되는 것은 화폐 발행의 통제권이다. 암호 화폐는 정해진 규칙에 따라 공정하게 생성되어야 하며, 화폐의 소유권도 어느 한 국가나 기관에 의존하지 않고 투명하면서도 안전하게 관리되어야 할 것이다. 암호 화폐는 시스템을 통제하는 서버가 없이 P2P 방식으로 완전히 분산화된 형태로 작동할 수 있다. The most problematic issue in the virtual currency system using virtual or cryptocurrency, which is freely available in all countries or the Internet, is the control over the issue of money. Cryptocurrency should be created fairly according to established rules, and ownership of money should be managed transparently and securely without depending on any one country or institution. Cryptocurrency can operate in a fully decentralized, peer-to-peer fashion without a server controlling the system.

이렇게 사용자를 관리하는 중앙의 서버가 없을 경우, 돈을 주고받을 계좌의 생성이나 계좌를 사용하는 주체가 본인이 맞는지 인증하기 위해서 공개 키 암호화 방식을 이용할 수 있다. 공개 키 암호화 방식을 사용하면 누구에게나 공개된 공개 키를 이용해서 개인 키로 생성한 서명을 검증하고, 제3자는 공개 키를 이용해 그 서명이 해당 공개 키의 짝에 해당하는 개인 키로 서명한 것인지 확인할 수 있다. If there is no central server for managing users, public key encryption can be used to create accounts to send and receive money or to authenticate the identity of the subject. With public key cryptography, anyone can verify a signature created with a private key using a public key that is open to anyone, and a third party can use the public key to verify that the signature was signed with a private key that matches the corresponding public key. have.

그러한 개인 키는 안전하게 보관할 필요가 있는데, 현재는 일반적으로 암호 화폐 거래소에서 개인 키 관리를 하고 있다. 이에 따라 암호 화폐의 개인 키를 더욱 안전하게 보관하고 관리할 수 있는 방법이 요구되고 있다.Such private keys need to be stored securely, which is now generally managed by cryptocurrency exchanges. Accordingly, there is a demand for a method to more securely store and manage private keys of cryptocurrencies.

블록 체인 기반의 암호 화폐 이용 시 개인 키를 분실할 경우 본인의 암호 화폐를 이용할 수 없으며, 앞에서 설명한 바와 같이 암호 화폐 거래소에 사용자의 개인 키를 보관하다가 거래소가 해킹 당할 경우, 불법적으로 수집한 개인 키를 이용하여 거래소가 보유한 지갑의 암호화폐를 편취할 수 있는 문제점이 존재한다. If you lose your private key when using a blockchain-based cryptocurrency, you cannot use your own cryptocurrency.If the exchange is hacked while storing the user's private key on the cryptocurrency exchange as described above, the private key is collected illegally. There is a problem that can cheat the cryptocurrency of the wallet held by the exchange.

본 발명은 상술한 문제점을 모두 해결하는 것을 목적으로 한다.The present invention aims to solve all the above-mentioned problems.

본 발명은, 블록 체인 기반 암호 화폐의 사용을 위해 생성된 키를 안전한 장소에 보관할 수 있는 방법 및 단말 장치를 제공하는 것을 목적으로 한다.An object of the present invention is to provide a method and a terminal device capable of storing a key generated for use of a blockchain-based cryptocurrency in a secure place.

또한 본 발명은 블록 체인 기반 암호 화폐의 사용을 위해 생성된 키가 저장된 특정 저장 서버나 기관이 해킹 당하더라도 상기 키를 이용할 수 없도록 보관하는 방법 및 단말 장치를 제공하는 것을 목적으로 한다.In addition, an object of the present invention is to provide a method and a terminal device for storing a key generated for use of a blockchain-based cryptocurrency so that the key cannot be used even if a specific storage server or an institution is hacked.

또한 본 발명은 사용자 단말 또는 사용자 단말의 SE가 분실 되더라도 개인 키를 복원할 수 있는 방법 및 단말 장치를 제공하는 것을 목적으로 한다.It is another object of the present invention to provide a method and a terminal device capable of recovering a private key even if a user terminal or an SE of the user terminal is lost.

상기한 바와 같은 본 발명의 목적을 달성하고, 후술하는 본 발명의 특징적인 효과를 실현하기 위한, 본 발명의 특징적인 구성은 하기와 같다.The characteristic structure of this invention for achieving the objective of this invention mentioned above, and realizing the characteristic effect of this invention mentioned later is as follows.

본 발명의 일 실시예에 따르면, 키 저장 및 복원 방법은, (a) 사용자 단말이, 키 생성 요청에 응답하여 상기 키를 생성하는 단계; (b) 상기 사용자 단말이, 상기 키 또는 상기 키의 생성 및 복원에 이용되는 시드를 소정 개수로 분할하여 각 분할된 조각 키 또는 조각 시드와 상기 키 또는 시드의 분할에 사용된 정보를 포함하는 비밀정보 조각들을 생성하는 단계; 및 (c) 상기 사용자 단말이, 상기 비밀정보 조각들을 신뢰기관의 서버들에 분산하여 전달하는 단계;를 포함한다.According to an embodiment of the present invention, a method for storing and restoring a key includes: (a) generating, by a user terminal, the key in response to a key generation request; (b) the user terminal divides the key or the seed used for generation and restoration of the key into a predetermined number, and includes a secret key or fragment of each partition and information used for partitioning the key or seed; Generating pieces of information; And (c) distributing, by the user terminal, the pieces of secret information to servers of a trust authority.

일 실시예에서, 상기 (a) 단계에서, 상기 키 생성 요청은 상기 사용자 단말 내의 블록 체인 기반 지갑(Wallet) 애플리케이션을 통해 요청된다.In one embodiment, in step (a), the key generation request is requested through a blockchain based wallet application in the user terminal.

일 실시예에서, 상기 (a) 단계에서, 상기 사용자 단말은, 상기 사용자 단말 내의 상기 블록 체인 기반 지갑 애플리케이션으로부터의 요청에 응답하여, 상기 사용자 단말 내의 클라이언트 애플리케이션으로 하여금 키 생성을 위한 알고리즘 또는 매개변수 정보를 상기 사용자 단말 내의 Applet으로 전송하도록 하고, 상기 Applet으로 하여금 상기 알고리즘 또는 상기 매개변수에 따라 상기 키를 생성한다.In one embodiment, in the step (a), the user terminal, in response to a request from the blockchain-based wallet application in the user terminal, causes the client application in the user terminal an algorithm or parameter for key generation. Send information to an Applet in the user terminal and cause the Applet to generate the key according to the algorithm or the parameter.

일 실시예에서, 상기 (a) 단계에서, 상기 클라이언트 애플리케이션은 상기 키 생성을 위한 알고리즘 또는 매개변수 정보를 상기 사용자 단말 내의 TSM(Trusted Service Manager) Agent로 전달하고, 상기 TSM Agent는 상기 클라이언트 애플리케이션으로부터 전달받은 상기 키 생성을 위한 알고리즘 또는 매개변수 정보를 상기 Applet으로 전송하여, 상기 Applet으로 하여금 상기 알고리즘 또는 상기 매개변수에 따라 상기 키를 생성하도록 하며, 상기 (c) 단계에서, 상기 TSM Agent는 상기 Applet에서 생성된 비밀정보 조각을 전달받아 외부 TSM 서버를 포함하는 상기 신뢰기관의 서버들에 분산하여 전달한다.In one embodiment, in the step (a), the client application delivers the algorithm or parameter information for the key generation to the Trusted Service Manager (TSM) Agent in the user terminal, the TSM Agent from the client application Transmitting the received algorithm or parameter information for generating the key to the Applet, so that the Applet generates the key according to the algorithm or the parameter, in step (c), the TSM Agent It receives the secret information generated by Applet and distributes it to the servers of the trust authority including the external TSM server.

일 실시예에서, 상기 (b) 단계에서, 상기 사용자 단말은, 아래 수학식을 통해 상기 키 또는 상기 시드를 소정 개수 n 개로 분할하고,In an embodiment, in the step (b), the user terminal divides the key or the seed into a predetermined number n through the following equation,

Figure pat00001
Figure pat00001

여기서, x는 1<x<n 인 x번째 분할된 키 또는 시드 조각의 인덱스이며, s는 상기 키 또는 시드이고, p는 s<p 인 소수이며, k는 상기 분할된 상기 키 또는 시드를 복원하기 위한 비밀정보 조각들의 임계치 개수를 나타낸다.Where x is the index of the xth partitioned key or seed fragment with 1 <x <n, s is the key or seed, p is a prime number with s <p, and k is the partitioned key or seed It indicates the threshold number of pieces of secret information.

일 실시예에서, 상기 방법은 (d) 상기 사용자 단말이, 상기 신뢰기관 서버들 중 적어도 하나로부터 소정 임계치 수 이상의 상기 비밀정보 조각들을 전달받는 단계; 및 (e) 상기 사용자 단말이, 상기 소정 임계치 수 이상의 상기 비밀정보 조각들을 참조로, 상기 키 또는 상기 시드를 복원하는 단계;를 더 포함한다.In one embodiment, the method further comprises: (d) the user terminal receiving at least one of the pieces of confidential information from the at least one of the trust authority servers; And (e) recovering, by the user terminal, the key or the seed with reference to the pieces of secret information equal to or greater than the predetermined threshold number.

일 실시예에서, 상기 (b) 단계는, (b1) 상기 사용자 단말이, 상기 생성된 비밀정보 조각들을 중 소정 임계치 수 이상의 비밀정보 조각들을 결합하여 상기 키 또는 상기 시드가 복원되는지 여부를 확인하는 단계를 더 포함한다.In an embodiment, the step (b) may include: (b1) the user terminal checking whether the key or the seed is restored by combining the generated pieces of secret information more than a predetermined threshold number of pieces of secret information; It further comprises a step.

일 실시예에서, 상기 (b) 단계는, 상기 사용자 단말이, 상기 비밀정보 조각들을 상기 사용자 단말 내부에 저장된 상기 신뢰기관의 공개키 정보를 이용하여 암호화하고, 상기 (c) 단계는, 상기 사용자 단말이, 상기 암호화된 비밀정보 조각들을 상기 신뢰기관의 서버들에 분산하여 전달한다.In one embodiment, the step (b), the user terminal, the secret information is encrypted using the public key information of the trusted authority stored inside the user terminal, and (c) step, the user The terminal distributes the encrypted pieces of secret information to the servers of the trust authority.

일 실시예에서, 상기 (c) 단계에서, 상기 사용자 단말은 상기 비밀정보 조각들 중 적어도 하나를 상기 사용자 단말의 SE 영역에 저장한다.In one embodiment, in step (c), the user terminal stores at least one of the pieces of secret information in the SE area of the user terminal.

일 실시예에서, 상기 (c) 단계에서, 상기 사용자 단말은, 상기 개인키를 상기 사용자 단말의 SE 영역에 저장한다. 이때, 상기 사용자 단말은 상기 개인키를 암호화하여 상기 사용자 단말의 SE 영역에 저장한다. In one embodiment, in step (c), the user terminal stores the private key in the SE area of the user terminal. In this case, the user terminal encrypts the private key and stores the private key in the SE area of the user terminal.

일 실시예에서, 상기 (c) 단계는, 상기 사용자 단말이, 상기 비밀정보 조각들을 상기 사용자 정보와 함께 전달한다.In one embodiment, the step (c), the user terminal transfers the pieces of secret information with the user information.

본 발명의 또 다른 특징에 따르면, 키를 저장 및 복원하는 기능을 포함하는 사용자 단말은, 데이터를 송수신하기 위한 통신부; 및 (i) 키 생성 요청에 응답하여 상기 키를 생성하는 프로세스, (ii) 상기 키 또는 상기 키의 생성 및 복원에 이용되는 시드를 소정 개수로 분할하여 각 분할된 조각 키 또는 조각 시드와 상기 키 또는 시드의 분할에 사용된 정보를 포함하는 비밀정보 조각들을 생성하는 프로세스 및 (iii) 상기 비밀정보 조각들을 신뢰기관의 서버들에 분산하여 전달하는 프로세스를 수행하기 위한 프로세서;를 포함한다.According to another feature of the invention, the user terminal including a function for storing and restoring a key, Communication unit for transmitting and receiving data; And (i) a process of generating the key in response to a key generation request, (ii) dividing the key or seeds used for generating and restoring the key into a predetermined number, so that each partitioned fragment key or fragment seed and the key Or a processor for generating secret pieces of information including information used for splitting the seed, and (iii) distributing the pieces of secret information to servers of a trust authority.

본 발명은 블록 체인 기반 암호 화폐의 사용을 위해 생성된 키를 안전한 장소에 분산 보관할 수 있는 효과가 있다. The present invention has the effect that the key generated for the use of blockchain-based cryptocurrency can be distributed and stored in a secure place.

본 발명은 블록 체인 기반 암호 화폐의 사용을 위해 생성된 키가 저장된 특정 저장 서버나 기관이 해킹 당하더라도 키의 일부 정보만을 해킹 당했기 때문에, 개인 키를 복원할 수 없어, 개인 키를 안전하게 보관할 수 있는 효과가 있다. According to the present invention, even if a specific storage server or an institution that stores a key generated for use of blockchain-based cryptocurrency is hacked, only a part of the information of the key has been hacked, the private key cannot be restored, and thus the private key can be safely stored. It works.

또한, 본 발명은 암호 화폐 거래소가 해킹 당하더라도, 개인 키를 수집할 수 없기 때문에 안전하게 키를 보관하는 효과가 있다. In addition, the present invention has the effect of keeping the key securely, even if the cryptocurrency exchange is hacked, because the private key can not be collected.

아울러, 본발명은 사용자 단말 또는 사용자 단말의 SE가 분실 되더라도 분산된 개인 키 조각을 결합하여 복원할 수 잇는 효과가 있다. In addition, the present invention has an effect that can be restored by combining the distributed private key pieces even if the user terminal or SE of the user terminal is lost.

도 1은 본 발명의 일 실시예에 따른 블록 체인 기반 키의 생성 및 보관하기 위한 사용자 단말의 내구 구성 및 데이터의 흐름을 나타낸 도이다.
도 2는 본 발명의 일 실시예에 따른 키의 생성 및 보관 방법을 나타낸 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 분산 저장된 키의 결합 및 복원 방법을 나타낸 흐름도이다.
1 is a diagram illustrating the durability and flow of data of a user terminal for generating and storing a blockchain-based key according to an embodiment of the present invention.
2 is a flowchart illustrating a method of generating and storing a key according to an embodiment of the present invention.
3 is a flowchart illustrating a method of combining and recovering distributed stored keys according to an embodiment of the present invention.

후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.DETAILED DESCRIPTION The following detailed description of the invention refers to the accompanying drawings that show, by way of illustration, specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. It should be understood that the various embodiments of the present invention are different but need not be mutually exclusive. For example, certain shapes, structures, and characteristics described herein may be embodied in other embodiments without departing from the spirit and scope of the invention with respect to one embodiment. In addition, it is to be understood that the location or arrangement of individual components within each disclosed embodiment may be changed without departing from the spirit and scope of the invention. The following detailed description, therefore, is not to be taken in a limiting sense, and the scope of the present invention, if properly described, is defined only by the appended claims, along with the full range of equivalents to which such claims are entitled. Like reference numerals in the drawings refer to the same or similar functions throughout the several aspects.

이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily implement the present invention.

도 1은 본 발명의 일 실시예에 따른 블록 체인 기반 키의 생성 및 이를 보관하기 위한 사용자 단말의 내부 구성 및 데이터의 흐름을 나타낸 도이다. 1 is a diagram illustrating an internal configuration and data flow of a user terminal for generating and storing a blockchain-based key according to an embodiment of the present invention.

도 2는 본 발명의 일 실시예에 따른 키의 생성 및 보관 방법을 나타낸 흐름도이다.2 is a flowchart illustrating a method of generating and storing a key according to an embodiment of the present invention.

도 1을 참조하면, 본 발명에 따른 사용자 단말(100)는 통신부(10)와 프로세서(20)를 포함한다. Referring to FIG. 1, the user terminal 100 according to the present invention includes a communication unit 10 and a processor 20.

통신부(10)는 데이터를 외부 장치 및 서버와 송수신하는 기능을 수행하며, 프로세서(20)는, 키 생성 요청에 응답하여 상기 키를 생성하는 프로세스, 상기 키 또는 상기 키의 생성 및 복원에 이용되는 시드를 소정 개수로 분할하여 각 분할된 조각 키 또는 조각 시드와 상기 키 또는 시드의 분할에 사용된 정보를 포함하는 비밀정보 조각들을 생성하는 프로세스, 상기 비밀정보 조각들을 신뢰기관의 서버들에 분산하여 전달하는 프로세스, 상기 신뢰기관 서버들 중 적어도 하나로부터 소정 임계치 수 이상의 상기 비밀정보 조각들을 전달받는 프로세스 및 상기 소정 임계치 수 이상의 상기 비밀정보 조각들을 참조로, 상기 키 또는 상기 시드를 복원하는 프로세스를 수행하는 기능을 한다. The communication unit 10 performs a function of transmitting and receiving data with an external device and a server, and the processor 20 is used to generate the key in response to a key generation request, and to generate and restore the key or the key. Splitting the seed into a predetermined number to generate secret pieces including each partitioned fragment key or fragment seed and information used to partition the key or seed; distributing the secret pieces to servers of a trust authority Performing a process of delivering, receiving from said at least one of said trusted authority servers said secret pieces of information above a predetermined threshold number, and restoring said key or said seed with reference to said secret pieces of information above said predetermined threshold number; Function.

한편, 프로세서(20)는, 지갑(Wallet) 애플리케이션(21), 클라이언트 애플리케이션(22), TSM Agent(23) 및 애플릿(24)의 가상적인 구성들과 연동한다.Meanwhile, the processor 20 interoperates with virtual configurations of the wallet application 21, the client application 22, the TSM agent 23, and the applet 24.

상기 지갑(Wallet) 애플리케이션(21), 클라이언트 애플리케이션(22), TSM Agent(23) 및 애플릿(24)은 하드웨어적인 구성은 아니지만, 프로세서(20)가 각 프로세스를 수행하기 위해 사용자 단말(100) 내부에 설치되는, 다양한 애플리케이션들의 기능을 가상적인 구성요소들로 구분하여 나타낸 것이다. The wallet application 21, the client application 22, the TSM Agent 23, and the applet 24 are not hardware configurations, but the processor 20 may perform internal processing of the user terminal 100 to perform each process. The functions of the various applications installed in the system are divided into virtual components.

지갑(Wallet) 애플리케이션(21)은 클라이언트 애플리케이션(22)이 지원하는 외부 서비스 애플리케이션을 의미한다. 예를 들어, 빗썸, 업비트, 코빗, 비트렉스 등 거래소 애플리케이션 또는 블록 체인 기반의 서비스 애플리케이션을 의미한다.The wallet application 21 refers to an external service application supported by the client application 22. For example, it refers to exchange applications such as Bithumb, Upbit, Corbit, Bitex, or blockchain-based service applications.

클라이언트 애플리케이션(22)은 본 발명에 따른 키의 생성, 저장 및 복원을 관리하는 주요 기능을 관리한다. The client application 22 manages the main functions of managing the generation, storage and retrieval of keys according to the invention.

TSM Agent(23)는 외부 TSM(Trusted Server Manager) 서버(200_1)와 연동되는 Agent 이며, 사용자 단말(100) 내부에서 독자적으로 기능을 수행하는 애플리케이션이 아닌, 클라이언트 애플리케이션(22)을 도와 실행되는 종속적인 애플리케이션이 된다. The TSM Agent 23 is an Agent interworking with an external Trusted Server Manager (TSM) server 200_1 and is a dependent application that is executed by assisting the client application 22 instead of an application that performs functions independently in the user terminal 100. Application.

애플릿(Applet; 24)은 일 예로 사용자 단말의 USIM 등의 보안 영역(SE)에 저장되고 실행되는 애플리케이션일 수 있다. 애플릿(24)은 블록 체인 기반의 암호 화폐 사용을 위한 개인 키 및 공개 키의 생성, 개인 키를 분할하거나 시드를 분할하는 기능을 수행하며, 아울러, 외부 기관에서 획득한 키 조각 또는 시드 조각들을 결합하여 개인 키를 복원하는 기능을 수행한다. 이에 따라 애플릿(24)은 TSM Agent(23)에서 전송받는 각종 매개변수에 기반하여 키를 생성하는 키 생성부, 생성된 키를 분할하기 위한 키 분산 작업부, 생성되어 분할된 키의 송수신을 위해 사전에 암호화를 수행하고 수신된 키 조각 등의 수신 정보의 복호화를 수행하는 암복호화부를 포함할 수 있다.The applet 24 may be, for example, an application stored and executed in a security area SE such as a USIM of a user terminal. The applet 24 performs the function of generating a private key and a public key for dividing a blockchain-based cryptocurrency, dividing a private key or dividing a seed, and combining key pieces or seed pieces obtained from an external authority. To restore the private key. Accordingly, the applet 24 may generate a key based on various parameters transmitted from the TSM agent 23, a key generation unit for dividing the generated key, and a key generation unit for transmitting and receiving the generated key. An encryption and decryption unit may perform encryption in advance and decryption of received information such as a received key piece.

도 1 및 도 2를 참조하면, 본 발명에 따른 블록 체인 기반 키 저장 방법은 우선 지갑 애플리케이션(21)이 클라이언트 애플리케이션으로 블록 체인 기반 서명 및 암호화를 위한 키 생성을 요청하는 단계(S21)에서 시작한다. 이때 지갑 애플리케이션(21)은 암호 화폐에 대응하는 키의 길이, 규격 등에 대한 정보를 포함하여 키 요청을 한다.1 and 2, the blockchain-based key storage method according to the present invention first starts at step S21, where the wallet application 21 requests a client application to generate a key for blockchain-based signature and encryption. . At this time, the wallet application 21 includes the information on the length, standard, etc. of the key corresponding to the cryptocurrency to make a key request.

그러면, 클라이언트 애플리케이션(22)은 지갑 애플리케이션(21)에서 요청된 키의 길이, 규격 등을 확인 한 뒤, TSM Agent(23) 통해 애플릿(24)으로 상기 키 생성을 요청한다(S22). TSM Agent(23)은 상기 요청을 애플릿(24)으로 중계 전송하는 기능을 할 수 있다. Then, the client application 22 checks the length, standard, etc. of the key requested by the wallet application 21, and then requests the key generation to the applet 24 through the TSM Agent 23 (S22). The TSM Agent 23 may function to relay the request to the applet 24.

그러면, 애플릿(24)에서는 요청받은 키의 길이, 규격을 참조하여 블록체인 기반의 개인 키 및 공개 키를 생성한다(S23). 이때, 애플릿(24)에서는, 전달된 알고리즘에 맞게 애플릿 내부에서 사용자 패스워드에 기반하거나 이와 동등한 시드(Seed), 픽쳐(Picture) 및 워드(Word) 등을 바탕으로 키 혹은 키 쌍(개인 키 및 공개 키)을 생성할 수 있다.Then, the applet 24 generates a blockchain-based private key and public key by referring to the requested length and specification of the key (S23). At this time, the applet 24, based on the user password or equivalent seed (Picture) and Word (Word) in the applet in accordance with the passed algorithm based on the key or key pair (private key and public) Key).

그런 다음 애플릿(24)에서 생성된 개인 키 또는 시드(키를 생성 및 복원할 수 있는 알고리즘의 시드) 값을 소정 개수(n)로 분할하여 비밀정보 조각(Sn)을 생성한다(S24).Then, the secret key fragment S n is generated by dividing a private key or seed (seed of an algorithm capable of generating and restoring a key) generated by the applet 24 by a predetermined number n (S24).

애플릿(24)은, 시드(Seed)를 참조로 키를 생성 또는 복원할 수 있는 알고리즘을 이용하여 키가 생성된 경우에는 시드 값을 소정 개수로 분할하며, 키가 난수(매개 변수)로 생성된 경우에는, 키를 소정 개수로 분할한다. 키 또는 시드의 분할은 애플릿(24)에서 수행되지만, 분할 요청은 지갑 애플리케이션(21)이나 클라이언트 애플리케이션(22)에서 요청하여 애플릿(24)에서 수행되는 것이 바람직하다. 한편, 키 또는 시드의 분할 방법은, 생성된 개인 키의 규격 혹은 알고리즘에 따라 Shamir's Secret Sharing, Chinese Remainder Theorem 등의 방법으로 분산할 수 있다.The applet 24 divides the seed value into a predetermined number when the key is generated using an algorithm that can generate or restore the key with reference to the seed, and the key is generated as a random number (parameter). In this case, the keys are divided into a predetermined number. The splitting of the key or seed is performed in the applet 24, but the splitting request is preferably made in the applet 24 by requesting from the wallet application 21 or the client application 22. On the other hand, the splitting method of the key or seed may be distributed by methods such as Shamir's Secret Sharing, Chinese Remainder Theorem, etc. according to the standard or algorithm of the generated private key.

예를 들어, 애플릿(24)에서는, 아래 수학식을 통해 상기 키 또는 상기 시드를 소정 개수 n 개로 분할할 수 있다.For example, the applet 24 may divide the key or the seed into a predetermined number n by the following equation.

Figure pat00002
Figure pat00002

여기서, x는 1<x<n 인 x번째 분할된 키 또는 시드 조각의 인덱스이며, s는 상기 키 또는 시드이고, p는 s<p 인 소수이며, k는 상기 분할된 상기 키 또는 시드를 복원하기 위한 비밀정보 조각들의 임계치 개수를 나타낸다.Where x is the index of the xth partitioned key or seed fragment with 1 <x <n, s is the key or seed, p is a prime number with s <p, and k is the partitioned key or seed It indicates the threshold number of pieces of secret information.

예를 들어, 수학식 1은 키 혹은 시드를 n개로 나누어 분배한 후 n 개 중 k개가 충족 될 때 복원이 되는 기법의 예이며, 일 예로, n이 5이고 k가 3일 때 f(x)는 2차 다항식으로 만든다. 이때, n이 5이므로 f(1), f(2), f(3), f(4), f(5) 인 5개의 분산된 비밀정보 값들이 생성이 된다.For example, Equation 1 is an example of a technique of dividing a key or seed by n and restoring when k of n is satisfied. For example, when n is 5 and k is 3, f (x) Is a quadratic polynomial. At this time, since n is 5, five distributed secret information values of f (1), f (2), f (3), f (4), and f (5) are generated.

즉, 애플릿(24)은 상기 키 또는 상기 키의 생성 및 복원에 이용되는 시드를 소정 개수로 분할하여 각 분할된 조각 키 또는 조각 시드와 상기 키 또는 시드의 분할에 사용된 정보를 포함하는 비밀정보 조각(Sn)들을 생성한다. 상기 분할에 사용된 정보는 수학식 1과 같은 수식 정보를 포함할 수 있다. 그리고 나서, 애플릿(24)은 생성된 비밀정보 조각들(Sn)을 중 상기 임계치 수 이상의 비밀정보 조각들을 결합하여 키 또는 시드가 복원되는지 여부를 확인한다(S25).That is, the applet 24 divides the key or the seed used for generating and restoring the key into a predetermined number, and includes each partitioned fragment key or fragment seed and information used for partitioning the key or seed. Generate fragments S n . The information used for the division may include equation information such as Equation (1). Then, the applet 24 checks whether the key or the seed is recovered by combining the generated secret pieces S n with the secret pieces of the threshold number or more (S25).

그리고 사용자 단말(100)의 애플릿(24)은 분산 생성된 비밀 정보 조각(Sn)을 저장된 신뢰 기관의 공개키로 암호화한다(S26). 그리고 나서, 암호화된 비밀정보 조각들(Sn)을 다수의 신뢰기관의 서버들(200_1 내지 200_n)에 분산하여 전달한다(S27). 이때 상기 다수의 신뢰기관 서버들 중에는, 상기 TSM Agent(23)에 대응하는 외부 TSM 서버(200_1)를 포함할 수 있다. 예를 들어, 비밀 정보 조각(Sn)은, 기 저장된 신뢰기관 혹은 외부 TSM의 공개키로 암호화 되며 통신사 기반의 암호통신을 통하여 각 서버들로 분산되어 전달된다. 한편, 다른 실시예에서는, 상기 분할된 비밀 정보 조각들 중 적어도 하나는 사용자 단말(100)의 보안 영역(SE) 내에 저장될 수도 있을 것이다.The applet 24 of the user terminal 100 encrypts the distributedly generated secret information fragment S n with the public key of the stored trust authority (S26). Then, the encrypted secret information pieces (S n ) are distributed to the servers (200_1 to 200_n) of a plurality of trust authority and transmitted (S27). At this time, among the plurality of trust authority servers, an external TSM server 200_1 corresponding to the TSM agent 23 may be included. For example, a piece of secret information (S n ) is encrypted with a public key of a pre-stored trust authority or an external TSM and distributed to each server through a carrier-based cryptographic communication. Meanwhile, in another embodiment, at least one of the divided pieces of secret information may be stored in the secure area SE of the user terminal 100.

아울러 사용자 단말(100)이 비밀 정보 조각(Sn)을 분산 전달하는 경우, 상기 비밀정보 조각들을 상기 사용자 정보와 함께 전달할 수도 있을 것이다.In addition, when the user terminal 100 distributes and transmits the secret information fragment (S n ), the secret information fragment may be delivered together with the user information.

한편, 개인 키는 사용자 단말(100)의 보안 영역의 애플릿(24)에 저장되며, 지갑 애플리케이션(21)에서 사용 요청을 할 때, 상기 사용 요청은 클라이언트 애플리케이션(22)과 TSM Agent(23)를 통해 애플릿(24)로 전달되어, 애플릿(24)이 개인 키를 TSM Agent(23) 및 클라이언트 애플리케이션(22)를 통해 지갑 애플리케이션(21)으로 전송한다. 이렇게 개인 키가 사용자 단말(100)의 USIM 등의 보안 영역의 애플릿(24)에 저장되기 때문에, 만약 사용자 단말을 분실하게 되면, 본 발명에 따른 복원 방법을 통해 복원해야 한다. On the other hand, the private key is stored in the applet 24 of the secure area of the user terminal 100, when the use request in the wallet application 21, the use request is the client application 22 and the TSM Agent 23 The applet 24 transmits the private key to the wallet application 21 through the TSM Agent 23 and the client application 22. Since the private key is stored in the applet 24 of the secure area such as the USIM of the user terminal 100, if the user terminal is lost, it must be restored through the restoration method according to the present invention.

한편, 공개 키는 개인 키와 함께 생성되지만, 본 발명의 일 실시예에서는 개인 키만 분산 저장하며, 공개 키는 분산 저장하지는 않는다. 이때 공개 키도 사용자 단말(100)의 보안 영역의 애플릿(24)에 저장되며, 지갑 애플리케이션(21)에서 사용 요청을 할 때, 상기 사용 요청은 클라이언트 애플리케이션(22)과 TSM Agent(23)를 통해 애플릿(24)로 전달되어, 애플릿(24)이 개인 키를 TSM Agent(23) 및 클라이언트 애플리케이션(22)를 통해 지갑 애플리케이션(21)으로 전송한다.Meanwhile, the public key is generated together with the private key, but in one embodiment of the present invention, only the private key is distributed and stored, and the public key is not distributed. At this time, the public key is also stored in the applet 24 of the secure area of the user terminal 100, and when the use request is made by the wallet application 21, the use request is transmitted through the client application 22 and the TSM agent 23. Passed to applet 24, applet 24 sends the private key to wallet application 21 via TSM Agent 23 and client application 22.

도 3은 본 발명의 일 실시예에 따른 분산 저장된 키의 결합 및 복원 방법을 나타낸 흐름도이다. 3 is a flowchart illustrating a method of combining and recovering distributed stored keys according to an embodiment of the present invention.

도 3을 참조하면, 사용자 단말(100)은 비밀 정보 조각들(Sn)이 저장된 신뢰기관 서버들로 비밀정보 조각(Sn)을 전달해줄 것을 요청(S31)한다. 각 신뢰 기관 서버들에 비밀정보 조각(Sn)이 대응하는 사용자 정보와 함께 저장되기 때문에 다양한 본인 인증 수단을 통해 사용자 본인을 확인 한 후 사용자 단말기(100)로 각 신뢰 기관 서버들에 저장된 비밀정보 조각(Sn)을 송신한다. 3, the user terminal 100 requests (S31) that will deliver the secret piece of information (S n) in the Trusted Server pieces secret information (S n) is stored. Since pieces of secret information (S n ) are stored in the respective trust authority servers together with corresponding user information, after confirming the user through various identity authentication means, the secret information stored in each trust authority server by the user terminal 100 is identified. Send the piece S n .

그러면, 사용자 단말(100)은 비밀정보 조각(Sn)을 수신한 후, 애플릿(24)로 하여금, 상기 소정 임계치 수(k) 이상의 상기 비밀정보 조각들을 결합하여, 상기 키 또는 상기 시드를 복원한다(S32)Then, the user terminal 100 receives the secret piece (S n ), and then causes the applet 24 to combine the pieces of secret information more than the predetermined threshold number k to restore the key or the seed. (S32)

예를 들어, 외부 TSM 서버(200_1)에 비밀 정보 조각(S1)이 저장되어 있고, 신뢰기관 2(200_2)에 비밀 정보 조각(S2)이 저장되어 있고, 신뢰기관 3(200_3)에 비밀 정보 조각(S3)이 저장되어 있고, … 신뢰기관 5(200_5)에 비밀 정보 조각(S5)이 저장되어 있으며, 복원 임계치가 3개라면, S1, S2, S3만 신뢰 기관 서버로부터 전달받으면, 정해진 수식으로 연산하여 키 또는 시드가 복원될 수 있다. 만일, 비밀 정보 조각(Sn) 들이 기관들의 공개키로 암호화 되어 있는 상태라면, 이를 복호화하여 결합하고, 신뢰기관 서버들이 비밀 정보 조각들을 이미 복호화하여 전송하는 경우나, 분할된 비밀 정보 조각들을 암호화하지 않은 상태라면, 복호화 과정은 필요 없을 것이다. 이때, 사용되는 복원 수식은 샤미르의 비밀분산(Shamir's Secret Sharing) 등의 방법이 이용될 수 있다. For example, the secret piece of information to an external TSM server (200_1) and the (S 1) is stored, the trusted authority, and 2 is a secret piece of information (S 2) stored in the (200_2), the secret to the trusted authority 3 200_3 Piece of information S 3 is stored,... If the secret information fragment S 5 is stored in the trust authority 5 (200_5), and the restoration threshold is three, only S 1 , S 2 , and S 3 are received from the trust authority server, and the key or seed is calculated using a predetermined formula. Can be restored. If the secret pieces of information (Sn) are encrypted with the public keys of the institutions, they are decrypted and combined, and the trusted authority servers have already decrypted and transmitted the secret pieces, or have not encrypted the fragmented secret pieces. If so, no decryption process is necessary. At this time, the restoration formula used may be a method such as Shamir's Secret Sharing.

그렇게 비밀 정보 조각을 결합하여 키가 복원되면 (만일 시드가 복원되는 경우라면 시드를 이용하여 키를 생성), 사용자 단말(100)은 생성된 키로 블록 체인 기반 암호 화폐 관련 서비스를 이용하게 된다(S33).When the key is restored by combining the pieces of secret information (if the seed is restored, the key is generated using the seed), the user terminal 100 uses the blockchain-based cryptocurrency related service as the generated key (S33). ).

이와 같이, 블록체인 기반 암호 화폐 서비스 이용 시 개인 키를 분실한다면, 본인의 암호화폐를 이용할 수 없지만, 본 발명과 같이, 키 생성용 시드나 키 자체를 분산 저장하면 필요 시 각 기관에 본인 인증을 한 뒤 분산된 비밀을 조합하여 본인의 개인키를 복원할 수 있게 된다.As such, if you lose your private key when using a blockchain-based cryptocurrency service, you cannot use your own cryptocurrency.However, as shown in the present invention, if a seed for generating a key or the key itself is distributed and stored, authentication is required to each institution if necessary. You can then recover your private key by combining the distributed secrets.

따라서, 기존 방식에서와 같이, 암호 화폐 거래소에 사용자의 개인 키를 보관하여 이용할 경우 거래소가 해킹 당한다면, 불법적으로 수집한 개인 키를 이용하여 거래소가 보유한 지갑의 암호화폐를 편취할 수 있으나, 본 발명에서는 이러한 보안 상의 문제점을 해결할 수 있다. Therefore, as in the conventional method, if the exchange is hacked when the user's private key is kept on the cryptocurrency exchange, the cryptocurrency of the wallet held by the exchange may be stolen by using the private key collected illegally. The present invention can solve this security problem.

또한, 본 발명에서는, 암호 화폐 사용 시 모바일 단말기 혹은 단말기 내의 SE가 분실되더라도 분산 저장되었던 개인 키를 복원하여 본인의 지갑 속 암호화폐의 소유권을 유지할 수 있게 되며, 거래소와 사용자뿐만 아니라 신뢰할 수 있는 제3자 혹은 기관을 이용하여 해킹 등에 대한 리스크를 분산할 수 있는 효과가 있다. In addition, in the present invention, even if the SE in the mobile terminal or the terminal is lost when using cryptocurrency, it is possible to maintain the ownership of the cryptocurrency in the wallet by restoring the private key that was distributed and stored, and not only exchanges and users, It is effective to spread risks for hacking by using a third party or an agency.

아울러, 본 발명에서는 사용자 단말기의 보안 영역(SE)의 애플릿 영역에 개인 키를 암호화하여 저장함으로써, 사용자 본인 확인없이 사용할 수 없기 물리적인 탈취로도 키를 사용할 수 없는 효과가 있다.In addition, in the present invention, by encrypting and storing the private key in the applet area of the security area SE of the user terminal, there is an effect that the key cannot be used even by physical deodorization that cannot be used without user identification.

이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Embodiments according to the present invention described above may be implemented in the form of program instructions that may be executed by various computer components, and may be recorded in a computer-readable recording medium. The computer-readable recording medium may include program instructions, data files, data structures, etc. alone or in combination. Program instructions recorded on the computer-readable recording medium may be those specially designed and configured for the present invention, or may be known and available to those skilled in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROMs, DVDs, and magneto-optical media such as floptical disks. media), and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules to perform the process according to the invention, and vice versa.

이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.Although the present invention has been described by specific embodiments such as specific components and the like, but the embodiments and the drawings are provided to assist in a more general understanding of the present invention, the present invention is not limited to the above embodiments. For those skilled in the art, various modifications and variations can be made from these descriptions.

따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.Accordingly, the spirit of the present invention should not be limited to the above-described embodiments, and all of the equivalents or equivalents of the claims, as well as the appended claims, fall within the scope of the spirit of the present invention. I will say.

Claims (24)

키 저장 및 복원 방법에 있어서,
(a) 사용자 단말이, 키 생성 요청에 응답하여 상기 키를 생성하는 단계;
(b) 상기 사용자 단말이, 상기 키 또는 상기 키의 생성 및 복원에 이용되는 시드를 소정 개수로 분할하여 각 분할된 조각 키 또는 조각 시드와 상기 키 또는 시드의 분할에 사용된 정보를 포함하는 비밀정보 조각들을 생성하는 단계; 및
(c) 상기 사용자 단말이, 상기 비밀정보 조각들을 신뢰기관의 서버들에 분산하여 전달하는 단계;
를 포함하는 방법.
In the key storage and restore method,
(a) generating, by a user terminal, the key in response to a key generation request;
(b) the user terminal divides the key or the seed used for generation and restoration of the key into a predetermined number, and includes a secret key or fragment of each partition and information used for partitioning the key or seed; Generating pieces of information; And
(c) distributing, by the user terminal, the pieces of secret information to servers of a trust authority;
How to include.
제 1 항에 있어서,
상기 (a) 단계에서,
상기 키 생성 요청은 상기 사용자 단말 내의 블록 체인 기반 지갑(Wallet) 애플리케이션을 통해 요청되는 것을 특징으로 하는 방법.
The method of claim 1,
In the step (a),
The key generation request is requested through a blockchain based wallet application in the user terminal.
제 2 항에 있어서,
상기 (a) 단계에서,
상기 사용자 단말은, 상기 사용자 단말 내의 상기 블록 체인 기반 지갑 애플리케이션으로부터의 요청에 응답하여, 상기 사용자 단말 내의 클라이언트 애플리케이션으로 하여금 키 생성을 위한 알고리즘 또는 매개변수 정보를 상기 사용자 단말 내의 Applet으로 전송하도록 하고, 상기 Applet으로 하여금 상기 알고리즘 또는 상기 매개변수에 따라 상기 키를 생성하도록 하는 것을 특징으로 하는 방법.
The method of claim 2,
In the step (a),
In response to a request from the blockchain-based wallet application in the user terminal, causing the client application in the user terminal to transmit algorithm or parameter information for key generation to an Applet in the user terminal, Causing the Applet to generate the key according to the algorithm or the parameter.
제 3 항에 있어서,
상기 (a) 단계에서,
상기 클라이언트 애플리케이션은 상기 키 생성을 위한 알고리즘 또는 매개변수 정보를 상기 사용자 단말 내의 TSM(Trusted Service Manager) Agent로 전달하고, 상기 TSM Agent는 상기 클라이언트 애플리케이션으로부터 전달받은 상기 키 생성을 위한 알고리즘 또는 매개변수 정보를 상기 Applet으로 전송하여, 상기 Applet으로 하여금 상기 알고리즘 또는 상기 매개변수에 따라 상기 키를 생성하도록 하며,
상기 (c) 단계에서,
상기 TSM Agent는 상기 Applet에서 생성된 비밀정보 조각을 전달받아 외부 TSM 서버를 포함하는 상기 신뢰기관의 서버들에 분산하여 전달하는 것을 특징으로 하는 방법.
The method of claim 3, wherein
In the step (a),
The client application transmits algorithm or parameter information for generating the key to a Trusted Service Manager (TSM) agent in the user terminal, and the TSM agent sends algorithm or parameter information for generating the key received from the client application. Send to the Applet, causing the Applet to generate the key according to the algorithm or the parameter,
In the step (c),
The TSM agent receives the secret information generated by the Applet, characterized in that distributed to the servers of the trust authority including an external TSM server distributed.
제 1 항에 있어서,
상기 (b) 단계에서,
상기 사용자 단말은, 아래 수학식을 통해 상기 키 또는 상기 시드를 소정 개수 n 개로 분할하고,
Figure pat00003

여기서, x는 1<x<n 인 x번째 분할된 키 또는 시드 조각의 인덱스이며, s는 상기 키 또는 시드이고, p는 s<p 인 소수이며, k는 상기 분할된 상기 키 또는 시드를 복원하기 위한 비밀정보 조각들의 임계치 개수를 나타내는 것을 특징으로 하는 방법.
The method of claim 1,
In step (b),
The user terminal divides the key or the seed into a predetermined number n through the following equation,
Figure pat00003

Where x is the index of the xth partitioned key or seed fragment with 1 <x <n, s is the key or seed, p is a prime number with s <p, and k is the partitioned key or seed Indicating a threshold number of pieces of secret information to make.
제 1 항에 있어서,
상기 방법은
(d) 상기 사용자 단말이, 상기 신뢰기관 서버들 중 적어도 하나로부터 소정 임계치 수 이상의 상기 비밀정보 조각들을 전달받는 단계; 및
(e) 상기 사용자 단말이, 상기 소정 임계치 수 이상의 상기 비밀정보 조각들을 참조로, 상기 키 또는 상기 시드를 복원하는 단계;
를 더 포함하는 것을 특징으로 하는 방법.
The method of claim 1,
The method is
(d) receiving, by the user terminal, the at least one piece of confidential information from at least one of the trusted authority servers; And
(e) recovering, by the user terminal, the key or the seed with reference to the pieces of secret information equal to or greater than the predetermined threshold number;
Method further comprising a.
제 1 항에 있어서,
상기 (b) 단계는,
(b1) 상기 사용자 단말이, 상기 생성된 비밀정보 조각들을 중 소정 임계치 수 이상의 비밀정보 조각들을 결합하여 상기 키 또는 상기 시드가 복원되는지 여부를 확인하는 단계를 더 포함하는 것을 특징으로 하는 방법.
The method of claim 1,
In step (b),
(b1) further comprising the step of the user terminal confirming whether the key or the seed is restored by combining the generated pieces of secret information more than a predetermined threshold number of pieces of secret information.
제 1 항에 있어서,
상기 (b) 단계는,
상기 사용자 단말이, 상기 비밀정보 조각들을 상기 사용자 단말 내부에 저장된 상기 신뢰기관의 공개키 정보를 이용하여 암호화하고,
상기 (c) 단계는,
상기 사용자 단말이, 상기 암호화된 비밀정보 조각들을 상기 신뢰기관의 서버들에 분산하여 전달하는 것을 특징으로 하는 방법.
The method of claim 1,
In step (b),
The user terminal encrypts the secret information fragments using public key information of the trusted authority stored inside the user terminal,
In step (c),
Wherein the user terminal distributes the encrypted pieces of secret information to servers of the trust authority.
제 1 항에 있어서,
상기 (c) 단계에서,
상기 사용자 단말은 상기 비밀정보 조각들 중 적어도 하나를 상기 사용자 단말의 SE 영역에 저장하는 것을 특징으로 하는 방법.
The method of claim 1,
In the step (c),
And the user terminal stores at least one of the pieces of secret information in the SE area of the user terminal.
제 1 항에 있어서,
상기 (c) 단계에서,
상기 사용자 단말은, 상기 개인키를 상기 사용자 단말의 SE 영역에 저장하는 것을 특징으로 하는 방법.
The method of claim 1,
In the step (c),
The user terminal, characterized in that for storing the private key in the SE area of the user terminal.
제 10 항에 있어서,
상기 사용자 단말은 상기 개인키를 암호화하여 상기 사용자 단말의 SE 영역에 저장하는 것을 특징으로 하는 방법.
The method of claim 10,
And the user terminal encrypts the private key and stores the private key in the SE area of the user terminal.
제 1 항에 있어서,
상기 (c) 단계는,
상기 사용자 단말이, 상기 비밀정보 조각들을 상기 사용자 정보와 함께 전달하는 것을 특징으로 하는 방법.
The method of claim 1,
In step (c),
The user terminal conveying the pieces of secret information together with the user information.
키를 저장 및 복원하는 기능을 포함하는 사용자 단말에 있어서,
데이터를 송수신하기 위한 통신부; 및
(i) 키 생성 요청에 응답하여 상기 키를 생성하는 프로세스, (ii) 상기 키 또는 상기 키의 생성 및 복원에 이용되는 시드를 소정 개수로 분할하여 각 분할된 조각 키 또는 조각 시드와 상기 키 또는 시드의 분할에 사용된 정보를 포함하는 비밀정보 조각들을 생성하는 프로세스 및 (iii) 상기 비밀정보 조각들을 신뢰기관의 서버들에 분산하여 전달하는 프로세스를 수행하기 위한 프로세서;
를 포함하는 사용자 단말.
In a user terminal comprising a function of storing and restoring a key,
Communication unit for transmitting and receiving data; And
(i) a process of generating the key in response to a key generation request, (ii) dividing the key or seeds used for generation and retrieval of the key into a predetermined number, so that each partitioned fragment key or fragment seed and the key or A processor for generating secret pieces of information including information used for partitioning of a seed, and (iii) distributing the pieces of secret information to servers of a trust authority;
User terminal comprising a.
제 13 항에 있어서,
상기 (i) 프로세스에서,
상기 키 생성 요청은 상기 사용자 단말 내의 블록 체인 기반 지갑(Wallet) 애플리케이션을 통해 요청되는 것을 특징으로 하는 사용자 단말.
The method of claim 13,
In the above (i) process,
The key generation request is requested through a blockchain-based wallet application in the user terminal.
제 14 항에 있어서,
상기 프로세서는,
상기 (i) 프로세스에서,
상기 프로세서는, 상기 사용자 단말 내의 상기 블록 체인 기반 지갑 애플리케이션으로부터의 요청에 응답하여, 상기 사용자 단말 내의 클라이언트 애플리케이션으로 하여금 키 생성을 위한 알고리즘 또는 매개변수 정보를 상기 사용자 단말 내의 Applet으로 전송하도록 하고, 상기 Applet으로 하여금 상기 알고리즘 또는 상기 매개변수에 따라 상기 키를 생성하도록 하는 것을 특징으로 하는 사용자 단말.
The method of claim 14,
The processor,
In the above (i) process,
The processor, in response to a request from the blockchain based wallet application in the user terminal, causes the client application in the user terminal to send algorithm or parameter information for key generation to an Applet in the user terminal, And cause Applet to generate the key according to the algorithm or the parameter.
제 15 항에 있어서,
상기 (i) 프로세스에서,
상기 프로세서는, 상기 클라이언트 애플리케이션은 상기 키 생성을 위한 알고리즘 또는 매개변수 정보를 상기 사용자 단말 내의 TSM(Trusted Service Manager) Agent로 전달하고, 상기 TSM Agent로 하여금 상기 클라이언트 애플리케이션으로부터 전달받은 상기 키 생성을 위한 알고리즘 또는 매개변수 정보를 상기 Applet으로 전송하도록 하여, 상기 Applet가 상기 알고리즘 또는 상기 매개변수에 따라 상기 키를 생성하도록 하며,
상기 (iii) 프로세스에서,
상기 프로세서는, 상기 TSM Agent로 하여금 상기 Applet에서 생성된 비밀정보 조각을 전달받도록 하여 외부 TSM 서버를 포함하는 상기 신뢰기관의 서버들에 분산하여 전달하도록 지원하는 것을 특징으로 하는 사용자 단말.
The method of claim 15,
In the above (i) process,
The processor, the client application delivers the algorithm or parameter information for generating the key to the Trusted Service Manager (TSM) Agent in the user terminal, the TSM Agent for the key generation received from the client application Send algorithm or parameter information to the Applet, causing the Applet to generate the key according to the algorithm or parameter,
In the above (iii) process,
The processor may enable the TSM agent to receive a piece of secret information generated by the Applet so that the TSM agent is distributed to and delivered to servers of the trust authority including an external TSM server.
제 13 항에 있어서,
상기 프로세서는,
상기 (ii) 프로세스에서,
아래 수학식을 통해 상기 키 또는 상기 시드를 소정 개수 n 개로 분할하고,
Figure pat00004

여기서, x는 1<x<n 인 x번째 분할된 키 또는 시드 조각의 인덱스이며, s는 상기 키 또는 시드이고, p는 s<p 인 소수이며, k는 상기 분할된 상기 키 또는 시드를 복원하기 위한 비밀정보 조각들의 임계치 개수를 나타내는 것을 특징으로 하는 사용자 단말.
The method of claim 13,
The processor,
In the above (ii) process,
The key or the seed is divided into a predetermined number n by the following equation,
Figure pat00004

Where x is the index of the xth partitioned key or seed fragment with 1 <x <n, s is the key or seed, p is a prime number with s <p, and k is the partitioned key or seed And a threshold number of pieces of secret information to be described.
제 13 항에 있어서,
상기 프로세서는,
(iv) 상기 신뢰기관 서버들 중 적어도 하나로부터 소정 임계치 수 이상의 상기 비밀정보 조각들을 전달받는 프로세스; 및
(v) 상기 소정 임계치 수 이상의 상기 비밀정보 조각들을 참조로, 상기 키 또는 상기 시드를 복원하는 프로세스;
를 더 수행하는 것을 특징으로 하는 사용자 단말.
The method of claim 13,
The processor,
(iv) receiving at least one of said trusted pieces of said secret information from at least one of said trusted authority servers; And
(v) restoring the key or the seed with reference to the pieces of secret information above the predetermined threshold number;
The user terminal, characterized in that to further perform.
제 13 항에 있어서,
상기 (ii) 프로세스는,
(ii_1) 상기 프로세서가, 상기 생성된 비밀정보 조각들을 중 소정 임계치 수 이상의 비밀정보 조각들을 결합하여 상기 키 또는 상기 시드가 복원되는지 여부를 확인하는 프로세스를 더 포함하는 것을 특징으로 하는 사용자 단말.
The method of claim 13,
The process (ii),
(ii_1) wherein the processor further comprises a step of combining the generated secret pieces of secret information with a predetermined threshold number or more to determine whether the key or the seed is restored.
제 13 항에 있어서,
상기 프로세서는,
상기 (ii) 프로세스에서,
상기 비밀정보 조각들을 상기 사용자 단말 내부에 저장된 상기 신뢰기관의 공개키 정보를 이용하여 암호화하고,
상기 (iii) 프로세서에서,
상기 암호화된 비밀정보 조각들을 상기 신뢰기관의 서버들에 분산하여 전달하는 것을 특징으로 하는 사용자 단말.
The method of claim 13,
The processor,
In the above (ii) process,
Encrypting the secret information fragments using public key information of the trusted authority stored inside the user terminal,
In (iii) the processor,
And distribute the encrypted pieces of secret information to servers of the trust authority.
제 13 항에 있어서,
상기 프로세서는,
상기 (iii) 프로세스에서,
상기 비밀정보 조각들 중 적어도 하나를 상기 사용자 단말의 SE 영역에 저장하는 것을 특징으로 하는 사용자 단말.
The method of claim 13,
The processor,
In the above (iii) process,
At least one of the pieces of secret information is stored in the SE area of the user terminal.
제 13 항에 있어서,
상기 프로세서는,
상기 (iii) 프로세스에서,
상기 개인키를 상기 사용자 단말의 SE 영역에 저장하는 것을 특징으로 하는 사용자 단말.
The method of claim 13,
The processor,
In the above (iii) process,
And store the private key in the SE area of the user terminal.
제 22 항에 있어서,
상기 사용자 단말은 상기 개인키를 암호화하여 상기 사용자 단말의 SE 영역에 저장하는 것을 특징으로 하는 사용자 단말.
The method of claim 22,
The user terminal encrypts the private key and stores it in the SE area of the user terminal.
제 13 항에 있어서,
상기 프로세서는,
상기 (iii) 프로세스에서,
상기 비밀정보 조각들을 상기 사용자 정보와 함께 전달하는 것을 특징으로 하는 사용자 단말.
The method of claim 13,
The processor,
In the above (iii) process,
And transmit the pieces of secret information together with the user information.
KR1020180048662A 2018-04-26 2018-04-26 Method for storing and restroring block chain-based key and user terminal using the same KR102122731B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180048662A KR102122731B1 (en) 2018-04-26 2018-04-26 Method for storing and restroring block chain-based key and user terminal using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180048662A KR102122731B1 (en) 2018-04-26 2018-04-26 Method for storing and restroring block chain-based key and user terminal using the same

Publications (2)

Publication Number Publication Date
KR20190124552A true KR20190124552A (en) 2019-11-05
KR102122731B1 KR102122731B1 (en) 2020-06-16

Family

ID=68577163

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180048662A KR102122731B1 (en) 2018-04-26 2018-04-26 Method for storing and restroring block chain-based key and user terminal using the same

Country Status (1)

Country Link
KR (1) KR102122731B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210085389A (en) * 2019-12-30 2021-07-08 주식회사 안랩 Method of storing plurality of data pieces in storage in blockchain network and method of receiving plurality of data pieces
KR20210127063A (en) * 2020-04-13 2021-10-21 고려대학교 세종산학협력단 Private Key backup Key recovery framework in a distributed service environment
CN115473631A (en) * 2022-08-22 2022-12-13 武汉大学 Block chain certificateless aggregation signcryption key negotiation method based on Chinese remainder theorem
CN115567203A (en) * 2022-09-23 2023-01-03 太保科技有限公司 Method, device, equipment and storage medium for recovering secret information

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030083858A (en) * 2002-04-22 2003-11-01 소프트포럼 주식회사 key management method, and method for the same
KR20130061179A (en) * 2011-09-15 2013-06-10 구글 인코포레이티드 Enabling users to select between secure service providers using a key escrow service
KR101639714B1 (en) * 2014-12-23 2016-07-22 한전케이디엔주식회사 A method for authenticating a device of smart grid
KR20160139885A (en) * 2015-05-29 2016-12-07 한국정보인증주식회사 Certification System for Using Biometrics and Certification Method for Using Key Sharing and Recording medium Storing a Program to Implement the Method
KR20160139493A (en) * 2015-05-27 2016-12-07 삼성에스디에스 주식회사 Method and apparatus for managing encryption keys for cloud service

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030083858A (en) * 2002-04-22 2003-11-01 소프트포럼 주식회사 key management method, and method for the same
KR20130061179A (en) * 2011-09-15 2013-06-10 구글 인코포레이티드 Enabling users to select between secure service providers using a key escrow service
KR101639714B1 (en) * 2014-12-23 2016-07-22 한전케이디엔주식회사 A method for authenticating a device of smart grid
KR20160139493A (en) * 2015-05-27 2016-12-07 삼성에스디에스 주식회사 Method and apparatus for managing encryption keys for cloud service
KR20160139885A (en) * 2015-05-29 2016-12-07 한국정보인증주식회사 Certification System for Using Biometrics and Certification Method for Using Key Sharing and Recording medium Storing a Program to Implement the Method

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210085389A (en) * 2019-12-30 2021-07-08 주식회사 안랩 Method of storing plurality of data pieces in storage in blockchain network and method of receiving plurality of data pieces
KR20210127063A (en) * 2020-04-13 2021-10-21 고려대학교 세종산학협력단 Private Key backup Key recovery framework in a distributed service environment
CN115473631A (en) * 2022-08-22 2022-12-13 武汉大学 Block chain certificateless aggregation signcryption key negotiation method based on Chinese remainder theorem
CN115473631B (en) * 2022-08-22 2024-04-26 武汉大学 Blockchain certificateless aggregation signcryption key negotiation method based on China remainder theorem
CN115567203A (en) * 2022-09-23 2023-01-03 太保科技有限公司 Method, device, equipment and storage medium for recovering secret information

Also Published As

Publication number Publication date
KR102122731B1 (en) 2020-06-16

Similar Documents

Publication Publication Date Title
US9813414B2 (en) Password-based management of encrypted files
US9922207B2 (en) Storing user data in a service provider cloud without exposing user-specific secrets to the service provider
CN109150519B (en) Anti-quantum computing cloud storage security control method and system based on public key pool
CN106537432A (en) Method and device for securing access to wallets in which cryptocurrencies are stored
US9380036B2 (en) Methods and devices for securing keys for a nonsecured, distributed environment with applications to virtualization and cloud-computing security and management
US10250591B2 (en) Password-based authentication
US20160337124A1 (en) Secure backup and recovery system for private sensitive data
CN110149322A (en) A kind of block chain encryption method that irreversible dynamic failure re-examination is rebuild
US20030210791A1 (en) Key management
US9967091B2 (en) Method for enhancing security in distributed systems
KR102122731B1 (en) Method for storing and restroring block chain-based key and user terminal using the same
EP2845343A1 (en) Hack-deterring system for storing sensitive data records
CN110443049A (en) Method and system for managing security data storage and security storage management module
WO2022115559A1 (en) Cryptographic key storage system and method
US20240064009A1 (en) Distributed anonymized compliant encryption management system
CN109347923B (en) Anti-quantum computing cloud storage method and system based on asymmetric key pool
Ramachandran et al. Secure and efficient data forwarding in untrusted cloud environment
CN109412788B (en) Anti-quantum computing agent cloud storage security control method and system based on public key pool
CN109302283B (en) Anti-quantum computing agent cloud storage method and system based on public asymmetric key pool
CN110620668A (en) Block chain-based quantum computation resistant public key pool updating method and system
JP2020099010A (en) Information processing method, information processing device, program, and information processing system
KR101389981B1 (en) Data delegation method for public cloud storage service and data access method for the delegated data
KR102320667B1 (en) Method and terminal for managing user information
KR101629379B1 (en) Method of distributing original data with recovery data
CN110572256A (en) Anti-quantum computation asymmetric key management method and system based on asymmetric key pool and implicit certificate

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant