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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/083—Key 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H04L2209/38—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial 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
Description
본 발명은 블록 체인 기반의 키 생성, 저장 및 복원 방법에 관한 것으로 보다 상세하게는, 키 또는 키의 생성 및 복원에 이용되는 시드를 소정 개수로 분할하여 각 분할된 조각 키 또는 조각 시드와 키 또는 시드의 분할에 사용된 정보를 포함하는 비밀정보 조각들을 생성하고, 비밀정보 조각들을 신뢰기관의 서버들에 분산하여 전달하는 단계를 포함하는, 블록 체인 기반의 키 생성, 저장 및 복원 방법 및 이를 이용한 사용자 단말에 관한 것이다. 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,
여기서, 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
통신부(10)는 데이터를 외부 장치 및 서버와 송수신하는 기능을 수행하며, 프로세서(20)는, 키 생성 요청에 응답하여 상기 키를 생성하는 프로세스, 상기 키 또는 상기 키의 생성 및 복원에 이용되는 시드를 소정 개수로 분할하여 각 분할된 조각 키 또는 조각 시드와 상기 키 또는 시드의 분할에 사용된 정보를 포함하는 비밀정보 조각들을 생성하는 프로세스, 상기 비밀정보 조각들을 신뢰기관의 서버들에 분산하여 전달하는 프로세스, 상기 신뢰기관 서버들 중 적어도 하나로부터 소정 임계치 수 이상의 상기 비밀정보 조각들을 전달받는 프로세스 및 상기 소정 임계치 수 이상의 상기 비밀정보 조각들을 참조로, 상기 키 또는 상기 시드를 복원하는 프로세스를 수행하는 기능을 한다. The
한편, 프로세서(20)는, 지갑(Wallet) 애플리케이션(21), 클라이언트 애플리케이션(22), TSM Agent(23) 및 애플릿(24)의 가상적인 구성들과 연동한다.Meanwhile, the
상기 지갑(Wallet) 애플리케이션(21), 클라이언트 애플리케이션(22), TSM Agent(23) 및 애플릿(24)은 하드웨어적인 구성은 아니지만, 프로세서(20)가 각 프로세스를 수행하기 위해 사용자 단말(100) 내부에 설치되는, 다양한 애플리케이션들의 기능을 가상적인 구성요소들로 구분하여 나타낸 것이다. The
지갑(Wallet) 애플리케이션(21)은 클라이언트 애플리케이션(22)이 지원하는 외부 서비스 애플리케이션을 의미한다. 예를 들어, 빗썸, 업비트, 코빗, 비트렉스 등 거래소 애플리케이션 또는 블록 체인 기반의 서비스 애플리케이션을 의미한다.The
클라이언트 애플리케이션(22)은 본 발명에 따른 키의 생성, 저장 및 복원을 관리하는 주요 기능을 관리한다. The
TSM Agent(23)는 외부 TSM(Trusted Server Manager) 서버(200_1)와 연동되는 Agent 이며, 사용자 단말(100) 내부에서 독자적으로 기능을 수행하는 애플리케이션이 아닌, 클라이언트 애플리케이션(22)을 도와 실행되는 종속적인 애플리케이션이 된다. The TSM
애플릿(Applet; 24)은 일 예로 사용자 단말의 USIM 등의 보안 영역(SE)에 저장되고 실행되는 애플리케이션일 수 있다. 애플릿(24)은 블록 체인 기반의 암호 화폐 사용을 위한 개인 키 및 공개 키의 생성, 개인 키를 분할하거나 시드를 분할하는 기능을 수행하며, 아울러, 외부 기관에서 획득한 키 조각 또는 시드 조각들을 결합하여 개인 키를 복원하는 기능을 수행한다. 이에 따라 애플릿(24)은 TSM Agent(23)에서 전송받는 각종 매개변수에 기반하여 키를 생성하는 키 생성부, 생성된 키를 분할하기 위한 키 분산 작업부, 생성되어 분할된 키의 송수신을 위해 사전에 암호화를 수행하고 수신된 키 조각 등의 수신 정보의 복호화를 수행하는 암복호화부를 포함할 수 있다.The
도 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
그러면, 클라이언트 애플리케이션(22)은 지갑 애플리케이션(21)에서 요청된 키의 길이, 규격 등을 확인 한 뒤, TSM Agent(23) 통해 애플릿(24)으로 상기 키 생성을 요청한다(S22). TSM Agent(23)은 상기 요청을 애플릿(24)으로 중계 전송하는 기능을 할 수 있다. Then, the
그러면, 애플릿(24)에서는 요청받은 키의 길이, 규격을 참조하여 블록체인 기반의 개인 키 및 공개 키를 생성한다(S23). 이때, 애플릿(24)에서는, 전달된 알고리즘에 맞게 애플릿 내부에서 사용자 패스워드에 기반하거나 이와 동등한 시드(Seed), 픽쳐(Picture) 및 워드(Word) 등을 바탕으로 키 혹은 키 쌍(개인 키 및 공개 키)을 생성할 수 있다.Then, the
그런 다음 애플릿(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
애플릿(24)은, 시드(Seed)를 참조로 키를 생성 또는 복원할 수 있는 알고리즘을 이용하여 키가 생성된 경우에는 시드 값을 소정 개수로 분할하며, 키가 난수(매개 변수)로 생성된 경우에는, 키를 소정 개수로 분할한다. 키 또는 시드의 분할은 애플릿(24)에서 수행되지만, 분할 요청은 지갑 애플리케이션(21)이나 클라이언트 애플리케이션(22)에서 요청하여 애플릿(24)에서 수행되는 것이 바람직하다. 한편, 키 또는 시드의 분할 방법은, 생성된 개인 키의 규격 혹은 알고리즘에 따라 Shamir's Secret Sharing, Chinese Remainder Theorem 등의 방법으로 분산할 수 있다.The
예를 들어, 애플릿(24)에서는, 아래 수학식을 통해 상기 키 또는 상기 시드를 소정 개수 n 개로 분할할 수 있다.For example, the
여기서, 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
그리고 사용자 단말(100)의 애플릿(24)은 분산 생성된 비밀 정보 조각(Sn)을 저장된 신뢰 기관의 공개키로 암호화한다(S26). 그리고 나서, 암호화된 비밀정보 조각들(Sn)을 다수의 신뢰기관의 서버들(200_1 내지 200_n)에 분산하여 전달한다(S27). 이때 상기 다수의 신뢰기관 서버들 중에는, 상기 TSM Agent(23)에 대응하는 외부 TSM 서버(200_1)를 포함할 수 있다. 예를 들어, 비밀 정보 조각(Sn)은, 기 저장된 신뢰기관 혹은 외부 TSM의 공개키로 암호화 되며 통신사 기반의 암호통신을 통하여 각 서버들로 분산되어 전달된다. 한편, 다른 실시예에서는, 상기 분할된 비밀 정보 조각들 중 적어도 하나는 사용자 단말(100)의 보안 영역(SE) 내에 저장될 수도 있을 것이다.The
아울러 사용자 단말(100)이 비밀 정보 조각(Sn)을 분산 전달하는 경우, 상기 비밀정보 조각들을 상기 사용자 정보와 함께 전달할 수도 있을 것이다.In addition, when the
한편, 개인 키는 사용자 단말(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
한편, 공개 키는 개인 키와 함께 생성되지만, 본 발명의 일 실시예에서는 개인 키만 분산 저장하며, 공개 키는 분산 저장하지는 않는다. 이때 공개 키도 사용자 단말(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
도 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
그러면, 사용자 단말(100)은 비밀정보 조각(Sn)을 수신한 후, 애플릿(24)로 하여금, 상기 소정 임계치 수(k) 이상의 상기 비밀정보 조각들을 결합하여, 상기 키 또는 상기 시드를 복원한다(S32)Then, the
예를 들어, 외부 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
이와 같이, 블록체인 기반 암호 화폐 서비스 이용 시 개인 키를 분실한다면, 본인의 암호화폐를 이용할 수 없지만, 본 발명과 같이, 키 생성용 시드나 키 자체를 분산 저장하면 필요 시 각 기관에 본인 인증을 한 뒤 분산된 비밀을 조합하여 본인의 개인키를 복원할 수 있게 된다.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.
상기 (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.
상기 (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.
상기 (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.
상기 (b) 단계에서,
상기 사용자 단말은, 아래 수학식을 통해 상기 키 또는 상기 시드를 소정 개수 n 개로 분할하고,
여기서, 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,
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.
상기 방법은
(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.
상기 (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.
상기 (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.
상기 (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.
상기 (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.
상기 사용자 단말은 상기 개인키를 암호화하여 상기 사용자 단말의 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.
상기 (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.
상기 (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.
상기 프로세서는,
상기 (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.
상기 (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.
상기 프로세서는,
상기 (ii) 프로세스에서,
아래 수학식을 통해 상기 키 또는 상기 시드를 소정 개수 n 개로 분할하고,
여기서, 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,
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.
상기 프로세서는,
(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.
상기 (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.
상기 프로세서는,
상기 (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.
상기 프로세서는,
상기 (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.
상기 프로세서는,
상기 (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.
상기 사용자 단말은 상기 개인키를 암호화하여 상기 사용자 단말의 SE 영역에 저장하는 것을 특징으로 하는 사용자 단말. The method of claim 22,
The user terminal encrypts the private key and stores it in the SE area of the user terminal.
상기 프로세서는,
상기 (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.
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)
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)
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 |
-
2018
- 2018-04-26 KR KR1020180048662A patent/KR102122731B1/en active IP Right Grant
Patent Citations (5)
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)
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 |