KR20210046357A - 블록체인 기반 시스템을 위한 키의 저장 및 복구 방법과 그 장치 - Google Patents

블록체인 기반 시스템을 위한 키의 저장 및 복구 방법과 그 장치 Download PDF

Info

Publication number
KR20210046357A
KR20210046357A KR1020190129975A KR20190129975A KR20210046357A KR 20210046357 A KR20210046357 A KR 20210046357A KR 1020190129975 A KR1020190129975 A KR 1020190129975A KR 20190129975 A KR20190129975 A KR 20190129975A KR 20210046357 A KR20210046357 A KR 20210046357A
Authority
KR
South Korea
Prior art keywords
electronic device
key
information
distributed
processor
Prior art date
Application number
KR1020190129975A
Other languages
English (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 KR1020190129975A priority Critical patent/KR20210046357A/ko
Priority to PCT/KR2020/014063 priority patent/WO2021075867A1/ko
Publication of KR20210046357A publication Critical patent/KR20210046357A/ko
Priority to US17/722,888 priority patent/US20220239509A1/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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)
    • 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/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • H04L9/0844Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
    • 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/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3231Biological data, e.g. fingerprint, voice or retina
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L2209/38

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Biomedical Technology (AREA)
  • Storage Device Security (AREA)
  • Telephonic Communication Services (AREA)

Abstract

전자 장치는, 메모리, 통신 회로, 디스플레이, 및 상기 메모리, 상기 통신 회로 및 상기 디스플레이에 연결된 프로세서를 포함하고, 상기 메모리는, 실행 시에, 상기 프로세서가, 적어도 하나의 외부 전자 장치에 대한 디바이스 정보를 획득하며, 상기 디바이스 정보에 기반하여, 상기 적어도 하나의 외부 전자 장치로부터 분산 키를 저장하기 위한 적어도 하나의 분산 저장 장치를 선택하고, 블록체인 네트워크로 전송될 데이터에 전자 서명하기 위한 키를 생성하기 위한 종자 값 또는 연상 기호 정보를 분할한 적어도 하나의 분산 키를 생성하고, 상기 적어도 하나의 분산 키가 상기 적어도 하나의 분산 저장 장치에 분산하여 전송되도록 상기 통신 회로를 제어하도록 하는 인스트럭션들을 저장할 수 있다.

Description

블록체인 기반 시스템을 위한 키의 저장 및 복구 방법과 그 장치{METHOD AND APPARATUS FOR KEY STORING AND RECOVERY FOR BLOCKCHAIN BASED SYSTEM}
본 문서에서 개시되는 실시 예들은, 블록체인 기반 시스템을 위한 키를 저장하고 복구하는 기술과 관련된다.
네트워크에서 둘 이상의 노드(node) 간 통신과 마찬가지로 민감한 데이터의 안전한 저장을 위한 기술로서 암호화를 수반한다. 노드는 이동 통신 장치, 태블릿 컴퓨터, 랩톱 컴퓨터, 데스크탑, 컴퓨팅 장치 및 통신 장치의 다른 형태, 네트워크의 서버 장치, 네트워크의 클라이언트 장치, 분산 네트워크의 하나 이상의 노드 등을 포함할 수 있다. 노드는 예를 들어 자연인, 회사의 종업원과 같은 사람들의 그룹, 은행 시스템과 같은 시스템 또는 분산된 장부를 이용하는 블록 체인 기술과 관련 될 수 있다.
두 개 이상의 노드는 인증되지 않은 제3 자에 대하여 비보안적이고, 도청 또는 방해에 취약한 통신 네트워크로 연결될 수 있다. 따라서 노드간에 전송되는 메시지는 종종 암호화 된 형태로 전송된다. 메시지를 수신할 때, 의도된 수신자는 다양한 복호화 방법으로 메시지를 복호화한다. 예를 들어 암호화된 메시지를 복호화하기 위한 방법으로서 공개키 또는 비밀키 방식에 기반해서 생성된 복호화 키를 이용하여 암호화된 메시지를 복호화 할 수 있다. 통신 네트워크에 있어서 보안은 제3 자가 대응하는 복호화키를 알아내는 행위를 방지하는 것이 중요할 수 있다.
하나의 알려진 암호화 방법은 대칭키 알고리즘을 사용하는 것을 포함한다. 상기 키는 일반 텍스트 메시지의 암호화와 암호문 메시지의 복호화에 동일한 대칭 키가 사용된다는 점에 있어서 대칭적이다. 그러나 대칭키는 인증되지 않은 액세스를 방지하기 위해 두 노드 모두에게 안전하게 전송되어야 한다. 예를 들어, 이는 대칭키가 안전하지 않은 통신 네트워크를 통해 전송되지 않도록 (인증된) 노드에 대칭키를 물리적으로 전달하는 것을 포함한다. 그러나 항상 물리적으로 대칭키를 전달할 수 만은 없다 따라서, 대칭키 암호화 시스템에서의 문제점은 인터넷과 같은 안전하지 않은 전자 네트워크를 통해 전달할 경우, 해커에 의해서 대칭키가 해독되거나 탈취될 경우, 위험이 크다는데 있다. 대칭키 알고리즘 및 프로토콜이 간단하고 광범위하게 사용됨에 따라, 보안 네트워크를 통해 대칭키를 안전하게 전송하기 위한 방법들이 필요하다.
공개 키 암호화 방식이라고도 지칭되는 비대칭 키 암호화 방식은, 대칭키를 사용할 때 발생할 수 있는 문제점을 어느 정도 해결할 수 있다. 개인 키가 비밀로 유지되는 동안, 대응하는 공개 키는 공개적으로 이용 가능하도록 만들어질 수 있다. 이의 네트워크에서의 공개키에 대한 해킹의 위협은 크지 않을 수 있다. 존재하는 프로토콜로는 디피-헬먼(Diffie-Hellman) 키 교환 및 Three Pass Protocol이 있다.
키 쌍은 종자 값(예: Root seed)이나 연상기호(mnemonic) 정보를 이용하여 생성될 수 있다. 예를 들어, 해시 함수를 이용하여 종자 값으로부터 개인 키가 생성되고, 개인 키에 상응하는 공개 키가 생성될 수 있다. 연상기호 정보는 종자 값을 생성하기 위해 사용되는 단어열(예: 영어 단어열)일 수 있다. 예를 들어, PBKDF2(password-based key derivation function 2) 함수를 사용하여, 연상 기호 정보로부터 종자 값이 생성될 수 있다.
개인 키 또는 개인 키와 관련된 종자 값이나 연상기호 정보를 전자 장치의 메모리 영역에 저장하는 것은 심각한 보안 문제를 야기할 수 있다. 예를 들어 비트코인 지갑과 같은 디지털 지갑의 경우, 비트 코인을 전송하는 것과 같은 거래를 생성할 때, 거래의 인증을 위하여 블록체인에 참여한 다른 노드와 연결할 수 있게 하는 소프트웨어(예: 전자 지갑)을 포함할 수 있다. 예컨대, 블록체인 에서는 공개 키 암호화 방식을 사용하여 블록체인 거래에 필요한 중요한 정보에 대한 암호화를 수행하고 거래(예: 트랜젝션, transaction)에 대한 전자 서명을 수행하기 위해 사용 될 수 있다. 이때, 거래를 생성하기 위해 사용되는 개인 키는 사용자 디바이스에 설치된 상기 지갑('클라이언트 측') 또는 지갑 서비스 제공자('서버 측')에 의해 저장될 수 있다. 그러나, 개인키가 클라이언트 측에만 저장되는 경우, 개인 키는 도난, 손실 또는 컴퓨터, 휴대 전화 등과 같은 사용자 하드웨어의 손상을 통해 훼손될 수 있다. 마찬가지로, 사용자가 사망하거나 무능력해지면 개인 키를 복구하거나 접근할 수가 없게 될 수 있으며 개인키에 매핑되어진 블록체인 상의 자산에 액세스 할 수 없게 된다. 개인 키 또는 개인 키를 복구 하기 위한 종자 값이나 연상기호 정보를 서버 측 저장소에 저장하면 이러한 문제를 극복 할 수 있지만, 서버 측의 보안상 문제로 인해서, 해킹 될 경우, 개인키가 유출 될 수 있다는 보안적인 문제점이 있다.
개인 키, 개인 키와 관련된 종자 값 또는 연상기호 정보를 안전하게 저장하고 복구할 수 있는 방법 및 장치가 필요하다.
본 문서에 개시되는 일 실시 예에 따른 전자 장치는, 메모리, 통신 회로, 디스플레이, 및 상기 메모리, 상기 통신 회로 및 상기 디스플레이에 연결된 프로세서를 포함하고, 상기 메모리는, 실행 시에, 상기 프로세서가, 적어도 하나의 외부 전자 장치에 대한 디바이스 정보를 획득하며, 상기 디바이스 정보에 기반하여, 상기 적어도 하나의 외부 전자 장치로부터 분산 키를 저장하기 위한 적어도 하나의 분산 저장 장치를 선택하고, 블록체인 네트워크로 전송될 데이터에 전자 서명하기 위한 키를 생성하기 위한 종자 값 또는 연상 기호 정보를 분할한 적어도 하나의 분산 키를 생성하고, 상기 적어도 하나의 분산 키가 상기 적어도 하나의 분산 저장 장치에 분산하여 전송되도록 상기 통신 회로를 제어하도록 하는 인스트럭션들을 저장할 수 있다.
또한, 본 문서에 개시되는 일 실시 예에 따른 전자 장치는, 메모리, 통신 회로, 및 상기 메모리, 및 상기 통신 회로에 연결된 프로세서를 포함하고, 상기 메모리는, 실행 시에, 프로세서가, 제1 외부 전자 장치 또는 제2 외부 전자 장치에 대한 정보를 포함하는 디바이스 정보를 획득하고, 상기 디바이스 정보에 기반하여, 키 값을 복구하기 위한 제1 분산 키 및 제2 분산 키를 생성하며, 상기 통신 회로를 통해서 상기 제1 외부 장치에 상기 제1 분산 키를 전송하고, 상기 제2 외부 장치에 상기 제2 분산 키를 전송하며, 블록체인 네트워크로 전송될 블록체인 거래 데이터를 생성하도록 하는 이벤트가 발생하는 경우, 상기 제1 외부 전자 장치 및 상기 제2 외부 전자 장치로부터 상기 제1 분산 키 및 상기 제2 분산 키를 획득하고, 상기 제1 분산 키 및 상기 제2 분산 키를 이용하여 복구된 키 값에 기초하여, 상기 블록체인 거래 데이터에 대한 전자 서명을 수행하도록 하는 인스트럭션들을 저장할 수 있다.
또한, 본 문서에 개시되는 일 실시 예에 따른 서버는, 메모리, 통신 회로, 및 상기 메모리, 및 상기 통신 회로에 연결된 프로세서를 포함하고, 상기 메모리는, 실행 시에, 상기 프로세서가, 사용자 계정에 연관된 적어도 하나의 외부 전자 장치에 대한 디바이스 정보를 획득하고, 상기 사용자 계정으로 상기 서버에 로그인 된 전자 장치로부터 상기 전자 장치가 블록체인 네트워크로 전송될 데이터에 전자 서명하기 위한 키를 생성하기 위한 종자 값 또는 연상 기호 정보를 분할한 적어도 하나의 분산 키의 저장을 요청하는 분산 키 저장 요청을 수신하며, 상기 분산 키 저장 요청에 대한 응답으로, 상기 디바이스 정보에 기초하여 적어도 하나의 분산 저장 장치를 선택하고, 상기 통신 회로를 통해서, 상기 적어도 하나의 분산 저장 장치에 상기 적어도 하나의 분산 키를 분산하여 전송하고, 상기 메모리에 상기 적어도 하나의 분산 저장 장치의 식별 정보를 상기 사용자 계정에 연관하여 저장하도록 하는 인스트럭션들을 저장할 수 있다.
또한, 본 문서에 개시되는 일 실시 예에 따른 전자 장치는, 메모리, 통신 회로, 디스플레이, 및 상기 메모리, 상기 통신 회로 및 상기 디스플레이에 연결된 프로세서를 포함하고, 상기 메모리는, 실행 시에, 상기 프로세서가, 블록체인 네트워크로 전송될 데이터에 전자 서명하기 위한 키를 생성하기 위한 종자 값 또는 연상 기호 정보를 분할한 적어도 하나의 분산 키의 저장 요청을 외부 서버로부터 수신하고, 상기 저장 요청에 대한 응답으로 상기 적어도 하나의 분산 키를 상기 메모리에 저장하고, 상기 통신 회로를 통해서 상기 외부 서버로부터 상기 적어도 하나의 분산 키에 대한 접근 요청을 수신하며, 상기 접근 요청에 대한 응답으로, 알림 메시지를 상기 디스플레이를 통해서 출력하도록 하는 인스트럭션들을 저장할 수 있다.
또한, 본 문서에 개시되는 일 실시 예에 따른 전자 장치가 키 값을 복원하기 위한 방법은, 적어도 하나의 외부 전자 장치에 대한 디바이스 정보를 획득하는 동작, 상기 디바이스 정보에 기반하여, 상기 적어도 하나의 외부 전자 장치로부터 분산 키를 저장하기 위한 적어도 하나의 분산 저장 장치를 선택하는 동작, 블록체인 네트워크로 전송될 데이터에 전자 서명하기 위한 키를 생성하기 위한 종자 값 또는 연상 기호 정보를 분할한 적어도 하나의 분산 키를 생성하는 동작, 및 상기 적어도 하나의 분산 키가 상기 적어도 하나의 분산 저장 장치에 분산하여 전송하는 동작을 포함할 수 있다.
본 문서에 개시되는 실시 예들에 따르면, 키 값을 분산하여 안전하게 저장할 수 있는 방법 및 장치가 제공될 수 있다.
본 문서에 개시되는 실시 예들에 따르면, 키 값의 분산 저장에 대한 주요 정보를 보관하고 있는 보관 기관의 정보가 탈취되거나 보관 기관이 악용하고자 하더라도 키 값을 탈취할 수 없도록 하는 방법 및 장치가 제공될 수 있다.
본 문서에서 개시되는 실시 예들에 따르면, 사용자가 키 값을 복구하기 위한 패스워드와 같은 정보를 기억할 필요 없이 키 값을 복구할 수 있는 방법 및 장치가 제공될 수 있다.
본 문서에서 개시되는 실시 예들에 따르면, 사용자가 키 값을 분산 저장한 장치를 기억할 필요 없이 키 값을 복구할 수 있는 방법 및 장치가 제공될 수 있다.
이 외에, 본 문서를 통해 직접적 또는 간접적으로 파악되는 다양한 효과들이 제공될 수 있다.
도 1은 다양한 실시 예에 따른 네트워크 환경 내의 전자 장치를 나타낸다.
도 2는 일 실시 예에 따른, 전자 장치 및 서버를 포함하는 시스템의 구성을 나타낸다.
도 3은 일 실시 예에 따른, 전자 장치가 키 값을 분산 저장 장치에 저장하는 프로세스를 도시한 순서도이다.
도 4는 일 실시 예에 따른, 전자 장치가 디스플레이하는 외부 전자 장치에 대한 장치 목록을 포함하는 화면의 예시를 나타낸다.
도 5는 일 실시 예에 따른, 전자 장치가 사용자 인증 정보에 기반하여 암호화된 분산 키를 전송하는 프로세스를 도시한 순서도이다.
도 6은 일 실시 예에 따른, 전자 장치가 생체 정보에 기반하여 암호화된 분산 키를 전송하는 프로세스를 도시한 순서도이다.
도 7은 일 실시 예에 따른, 분산 키를 저장한 외부 전자 장치에 대한 디바이스 식별 정보를 서버에 저장하는 프로세스를 도시한 순서도이다.
도 8은 일 실시 예에 따른, 서버를 통해서 외부 전자 장치에 분산 키를 저장하는 프로세스를 도시한 순서도이다.
도 9는 일 실시 예에 따른, 전자 장치가 키 값을 복구하기 위한 암호화 코드를 서버로 전송하는 프로세스를 도시한 순서도이다.
도 10은 일 실시 예에 따른, 전자 장치가 분산 키를 블록체인 네트워크에 저장하는 프로세스를 도시한 순서도이다.
도 11은 일 실시 예에 따른, 서버에 저장되는 디바이스 식별 정보의 예시를 나타낸다.
도 12는 일 실시 예에 따른, 전자 장치가 키 값을 복구하는 프로세스를 나타낸 순서도이다.
도 13은 일 실시 예에 따른, 전자 장치가 분산 키를 획득하기 위해 분산 저장 장치를 선택하는 프로세스를 도시한 순서도이다.
도 14는 일 실시 예에 따른, 서버에 저장된 디바이스 식별 정보를 이용하여 키 값을 복구하는 프로세스를 나타낸 순서도이다.
도 15는 일 실시 예에 따른, 전자 장치 또는 외부 전자 장치가 키 값을 복구하기 위한 사용자 인증 정보를 입력 받기 위해 디스플레이하는 화면의 예시를 나타낸다.
도 16은 일 실시 예에 따른, 서버를 통해서 분산 키를 획득하고 키 값을 복구하는 프로세스를 나타낸 순서도이다.
도 17은 일 실시 예에 따른, 블록체인 네트워크에 저장된 분산 키를 이용하여 키 값을 복구하는 프로세스를 나타낸 순서도이다.
도 18은 일 실시 예에 따른, 전자 장치 또는 서버가 저장된 분산 키의 저장 상태를 감시하는 프로세스를 나타낸 순서도이다.
도 19는 일 실시 예에 따른, 전자 장치가 분산 키의 저장 상태에 따라서 디스플레이하는 화면의 예시를 나타낸다.
도 20은 일 실시 예에 따라 분산 저장 서비스에 등록된 외부 전자 장치를 이용하여 분산 키를 저장하는 프로세스를 나타낸 순서도이다.
도 21은 일 실시 예에 따라 서버에 분산 저장 서비스에 등록된 외부 전자 장치를 이용하여 분산 키를 복구하는 프로세스를 나타낸 순서도이다.
도 22는 일 실시 예에 따라 서버에 분산 저장 서비스에 등록된 외부 전자 장치가 디스플레이하는 화면의 예시를 나타낸다.
도 23은 일 실시 예에 따른 전자 장치가 블록체인 거래를 위해 수행하는 프로세스를 나타낸 순서도이다.
도 24는 분산 키를 생성하고, 복원하는 알고리즘의 개념을 도시한다.
도 25는 일 실시 예에 따라, 결정된 조건에서 생성되는 분산 키의 예시를 나타낸다.
도 26은 일 실시 예에 따라, 분산 저장된 분산 키 중 일부를 이용하여 키 값을 복구하는 예시를 나타낸다.
도 27은 일 실시 예에 따라, 분산 저장된 분산 키 중 일부를 이용하여 키 값을 복구하는 예시를 나타낸다.
도면의 설명과 관련하여, 동일 또는 유사한 구성요소에 대해서는 동일 또는 유사한 참조 부호가 사용될 수 있다.
이하, 본 발명의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 실시 예의 다양한 변경(modification), 균등물(equivalent), 및/또는 대체물(alternative)을 포함하는 것으로 이해되어야 한다.
도 1은 다양한 실시예들에 따른, 네트워크 환경(100) 내의 전자 장치(101)의 블럭도이다. 도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제 1 네트워크(198)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(102)와 통신하거나, 또는 제 2 네트워크(199)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(104) 또는 서버(108)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 장치(150), 음향 출력 장치(155), 표시 장치(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)에는, 이 구성요소들 중 적어도 하나(예: 표시 장치(160) 또는 카메라 모듈(180))가 생략되거나, 하나 이상의 다른 구성요소가 추가될 수 있다. 어떤 실시예에서는, 이 구성요소들 중 일부들은 하나의 통합된 회로로 구현될 수 있다. 예를 들면, 센서 모듈(176)(예: 지문 센서, 홍채 센서, 또는 조도 센서)은 표시 장치(160)(예: 디스플레이)에 임베디드된 채 구현될 수 있다
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 실행하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 로드하고, 휘발성 메모리(132)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일실시예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서), 및 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(123)(예: 그래픽 처리 장치, 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 추가적으로 또는 대체적으로, 보조 프로세서(123)는 메인 프로세서(121)보다 저전력을 사용하거나, 또는 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(123)는 메인 프로세서(121)와 별개로, 또는 그 일부로서 구현될 수 있다.
보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 표시 장치(160), 센서 모듈(176), 또는 통신 모듈(190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일실시예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성 요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부로서 구현될 수 있다.
메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서모듈(176))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다.
프로그램(140)은 메모리(130)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다.
입력 장치(150)는, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 장치(150)는, 예를 들면, 마이크, 마우스, 키보드, 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다.
음향 출력 장치(155)는 음향 신호를 전자 장치(101)의 외부로 출력할 수 있다. 음향 출력 장치(155)는, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있고, 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.
표시 장치(160)는 전자 장치(101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 표시 장치(160)는, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 표시 장치(160)는 터치를 감지하도록 설정된 터치 회로(touch circuitry), 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 센서 회로(예: 압력 센서)를 포함할 수 있다.
오디오 모듈(170)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일실시예에 따르면, 오디오 모듈(170)은, 입력 장치(150)를 통해 소리를 획득하거나, 음향 출력 장치(155), 또는 전자 장치(101)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102))(예: 스피커 또는 헤드폰)를 통해 소리를 출력할 수 있다.
센서 모듈(176)은 전자 장치(101)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일실시예에 따르면, 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(177)는 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일실시예에 따르면, 인터페이스(177)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(178)는, 그를 통해서 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일실시예에 따르면, 연결 단자(178)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일실시예에 따르면, 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리할 수 있다. 일실시예에 따르면, 전력 관리 모듈(188)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.
배터리(189)는 전자 장치(101)의 적어도 하나의 구성요소에 전력을 공급할 수 있다. 일실시예에 따르면, 배터리(189)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108))간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일실시예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제 1 네트워크(198)(예: 블루투스, WiFi direct 또는 IrDA(infrared data association)와 같은 근거리 통신 네트워크) 또는 제 2 네트워크(199)(예: 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부 전자 장치(104)와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성요소(예: 단일 칩)로 통합되거나, 또는 서로 별도의 복수의 구성요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크 내에서 전자 장치(101)를 확인 및 인증할 수 있다.
안테나 모듈(197)은 신호 또는 전력을 외부(예: 외부 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일실시예에 따르면, 안테나 모듈(197)은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 하나의 안테나를 포함할 수 있다. 일실시예에 따르면, 안테나 모듈(197)은 복수의 안테나들을 포함할 수 있다. 이런 경우, 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(190)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(190)과 외부 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시예에 따르면, 방사체 이외에 다른 부품(예: RFIC)이 추가로 안테나 모듈(197)의 일부로 형성될 수 있다.
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))을 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일실시예에 따르면, 명령 또는 데이터는 제 2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 외부 전자 장치(102, 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 외부 전자 장치들(102, 104, 또는 108) 중 하나 이상의 외부 전자 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
도 2는 일 실시 예에 따른, 전자 장치(210)(예: 도 1의 전자 장치(101)) 및 서버(230)(예: 도 1의 서버(108))를 포함하는 시스템의 구성을 나타낸다.
일 실시 예에 따른 시스템은 전자 장치(210), 서버(230) 및 외부 전자 장치(240)(예: 도 1의 전자 장치(102) 또는 전자 장치(104))를 포함할 수 있다.
전자 장치(210)는 블록체인 거래 데이터를 생성하도록 하는 블록체인 거래 이벤트가 발생하는 경우, 블록체인 네트워크(220)의 노드를 이용하여 해당 거래를 인증하고, 블록체인으로 기록하기 위해 블록체인 거래 데이터를 블록체인 네트워크로 전송할 수 있다. 블록체인 거래 데이터는 블록체인 네트워크(220) 내의 노드에 기록되는 거래에 관련된 정보를 포함할 수 있다. 예를 들어, 블록체인 시스템에 기반한 송금 처리를 요청하는 사용자 입력을 수신한 경우, 전자 장치(210)는 송금 내역에 관한 정보를 포함하는 블록체인 거래 데이터를 블록체인 네트워크(220)로 전송할 수 있다. 일 실시예에 따르면, 거래(트랜잭션)는 다음과 같은 정보를 포함할 수 있다. 수신자 주소, 발신자를 식별하는 서명 또는 전송되는 금액을 나타내는 값 정보를 포함할 수 있다. 거래에 포함되는 데이터는 블록체인의 종류에 따라서 달라질 수 있으며, 이더리움의 경우, 선택 가능한 데이터 필드, Gas price(사용자가 지불할 수수료) 정보를 더 포함할 수 있다. 일 실시예에 따르면, 전자 장치(210)는 사용자 별로 생성된 개인키를 이용하여 블록체인 거래 데이터에 전자 서명을 수행하고, 전자 서명된 블록체인 거래 데이터를 블록체인 네트워크(220)로 전송할 수 있다. 전자 서명(digital signature)은 전자 문서나 디지털 데이터에 대한 변조 방지와 서명을 생성한 주체를 식별하기 위한 기술로, 정보 통신망에 기반한 전자 문서의 교환이나 전자 상거래와 같은 분야에서 이용되고 있다. 예를 들어, 전자 장치(210)는 비대칭키 암호화 방식을 기반으로 전자 서명을 수행할 수 있다. 전자 서명은 전자 데이터의 타당성을 증명하기 위한 방법으로 사용될 수 있다. 예컨대, 전자 데이터를 보내는 사람이 서명을 생성하고, 받는 사람은 그 서명을 검증해서, 다른 사람에 의해 위조나 변조가 이루어 졌는지 확인할 수 있다. 블록체인에서는 이와 같은 전자 서명을 통해 거래를 생성한 생성자가, 거래를 생성하고, 계좌에 대한 접근 권한을 갖은 소유자인지를 판별할 수 있는 수단으로 사용할 수 있다. 예컨대 전자 서명을 수행하는 동작에 있어서, 전자 장치는 개인키와 공개키로 구성된 키 쌍을 생성할 수 있다. 이때 생성된 개인키는 서명 생성 용도로 사용하고, 공개키는 서명 검증 용도로 사용 할 수 있다. 예컨대, 전자 장치는 공개키를 수신측에 전달 할 수 있다. 전자 장치는 개인키를 이용하여 전자 데이터를 암호화 할 수 있다. 이때 생성된 암호문을 전자 서명이라고 할 수 있다. 전자 장치는 생성된 전자 서명을 전자 데이터 원문 데이터와 함께 전송할 수 있다. 전자 서명을 검증하는 수신측 전자 장치는 공개키를 이용해서 수신한 전자 서명을 복호화 수행하고, 복호화 해서 생성된 원본 데이터와 함께 전달 받은 원본 데이터를 비교해서 같은 데이터인지 확인 할 수 있다. 이때 복호화된 데이터와 원본 데이터가 같다면, 수신측 전자 장치는 전자 데이터는 위 변조가 발생하지 않았고, 공개키의 소유자에 의해서 생성된 것이라고 판단 할 수 있다.
전자 장치(210)는 전자 서명을 수행하기 위해 이용되는 키를 생성해야 할 필요가 있다. 전자 장치(210)는 근본 키 값에 기초하여 전자 서명을 수행하기 위해 이용되는 키를 생성할 수 있다. 예를 들어, 전자 장치는 근본 키 값으로부터 해시 함수를 이용하여 전자 서명을 수행하기 위해 이용되는 개인 키를 생성하고, 개인 키와 키 쌍을 이루는 공개 키를 생성할 수 있다. 근본 키 값은, 예를 들면, 종자 값(예: Root seed) 또는 종자 값을 얻기 위한 연상기호(mnemonic) 정보를 포함할 수 있다.
블록체인의 지갑의 종류에 따라서 다른 형태의 주소가 생성 될 수 있다. 예컨대 결정적 지갑 (Deterministic Wallets)의 경우, 하나의 루트 시드(root seed)에서 많은 키를 생성할 수 있다. 결정적 지갑의 형태 중에서 계층적 결정지갑(Hierarchical Deterministic Wallets)의 경우, 하나의 시드(Seed)로부터 생성된 키들을 기반으로 다양한 주소를 생성할 수 있다. 루트 시드로서 니모닉 단어 순서(Mnemonic Word Sequence)가 사용될 수 있다. 니모닉 코드 단어 (Mnemonic code words)는 BIP-39 표준에 의하여 정의될 수 있다. 니모닉 코드 단어는 순서대로 나열된 영어 단어에서 시드(seed)를 생성 할 수 있다. 니모닉 코드 단어열은 일반적으로 12개에서 24개 사이의 단어들로 구성되고, 시드 값을 일반 사용자들이 기억하기 어렵기 때문에, 사용자들이 접근 하기 쉬운 니모닉 단어에 기반하여 시드(seed)를 생성할 수 있다. 예컨대, BIP-39는 라이브러리를 통해서 니모닉 단어가 입력되면 개인키를 생성해주는 함수를 제공하고 있다. 니모딕 단어, BIP-39의 라이브러리, 및 루트 시드에 관한 예시는 하기의 표 1과 같이 도시될 수 있다.
니모닉 단어 "test tree pig cotton shin apple vast jun love ho purchase forever"
BIP-39 라이브러리 Mnemonic(words).toHDPrivateKey()
루트 시드 FCCF1AB3329FD5DA3DA9577511F8F137
전자 장치(210)는 니모닉 단어를 이용하여 개인키를 언제든지 복원하여 생성할 수 있다. 니모닉 단어가 유출된다면, 해커들이 개인키를 복원하여 블록체인 계좌의 자산을 탈취 할 수 있기 때문에, 블록체인 사용자는 니모닉 단어를 별도로 관리해야 하는 필요성이 있다.
전자 장치(210)는 생성된 루트 시드를 통해서 개인키와 공개키를 유도할 수 있다. 예컨대 BIP-32 표준에 따르면, 전자 장치(210)는 생성된 루트 시드 값을 특정 알고리즘 함수(예: HMAC-SHA512) 를 통해서 해시한 값을 획득하고, 획득한 해시값에서 개인키를 추출할 수 있다. 예컨대, 전자 장치(210)는 HMAC-SHA512에서 생성한 512 비트의 해시값 중 왼쪽 256 비트를 개인키로 사용하고, 생성된 개인키를 이용하여 공개키를 획득할 수 있다. 블록체인 네트워크(220)에서는 전자 서명을 이용해서 거래가 생성 및 검증될 수 있다. 블록체인 네트워크(220)에 기반하여 각각의 트랜잭션에 전자 서명이 부여 될 수 있다. 블록체인 네트워크에 참여한 노드들은 블록체인 정보를 저장할 수 있다. 블록체인의 노드들에 트랜잭션들에 대한 정보를 포함하는 트랜잭션 데이터가 저장될 수 있다. 트랜잭션 데이터는 전자 서명 및 공개키와 함께 저장될 수 있다. 블록체인 네트워크 참여자들은 현재의 트랜잭션만 아니라 기존에 블록에 저장되어 있는 모든 트랜잭션을 검증할 수 있다. 트랜잭션의 전자 서명검증을 통해, 트랜잭션 데이터의 내용이 위조 되었거나 변조되었는지 여부를 확인할 수 있다. 또한 블록체인의 가상화폐의 정당한 소유자에 의해 트랜잭션이 수행되었는지 여부도 판단 할 수 있다.
전자 장치(210)는 디스플레이(211)(예: 도 1의 표시 장치(160)), 통신 회로(212)(예: 도 1의 통신 모듈(190)), 프로세서(213)(예: 도 1의 프로세서(120)), 및 메모리(214)(예: 도 1의 메모리(130))를 포함할 수 있다. 메모리(214)는 프로세서(213)가 실행 시에 전자 장치(210)의 동작을 수행하도록 하는 인스트럭션들(instructions)을 저장할 수 있다. 프로세서(213)는 프로세서(213)에 연결된 전자 장치(210)의 구성요소(예: 디스플레이(211), 통신 회로(212))를 제어할 수 있다. 본 문서에서, 전자 장치(예: 도 1의 전자 장치(101), 도 2의 전자 장치(210))의 동작은 프로세서(예: 도 1의 프로세서(120), 도 2의 프로세서(213))가 메모리(예: 도 1의 메모리(130), 도 2의 메모리(214))에 저장된 인스트럭션들을 실행하여 수행되는 것으로 이해될 수 있다.
메모리(215)는 블록체인 네트워크(220)에 대한 거래 데이터를 처리하기 위한 블록체인 월렛(215)을 저장할 수 있다. 예를 들어, 프로세서(213)는 블록체인 월렛(215)을 실행하고, 블록체인 거래 이벤트를 발생시키는 사용자 입력을 수신할 수 있다. 사용자 입력에 대한 응답으로, 프로세서(213)는 블록체인 월렛(215)을 이용하여 거래 데이터를 생성하고, 전자 서명을 수행할 수 있다. 메모리(214)는 전자 서명을 수행하기 위한 키 값(예: 종자 값 또는 연상기호 정보)을 저장하는 키 저장소(216)를 구비할 수 있다. 일 실시 예에 따른, 전자 장치(210)는 보안을 위해 키 값을 암호화하고, 암호화된 키 값을 키 저장소(216)에 저장할 수 있다. 또는, 다른 실시 예에 따르면, 키 저장소(216)는 보안성이 우수한 별도의 저장 매체(예: 보안 메모리, 보안 요소(Secure Element))를 기반으로 구성될 수 있다.
프로세서(213)는 키 저장소(216)에 저장되어 있는 키 값을 분할하여 적어도 하나의 분산 키를 생성할 수 있다. 예를 들어, 프로세서(213)는 적어도 하나의 분산 키의 총 수량을 결정하고, 분산 저장 알고리즘(예: Shamir's Sharing Secret Scheme(SSSS) 알고리즘)을 이용하여 키 값을 결정된 총 수량의 분산 키로 분할할 수 있다.
일 실시 예에 따르면, 프로세서(213)는 분산 키의 총 수량을 결정하기 위해 적어도 하나의 외부 전자 장치(240)에 대한 디바이스 정보를 획득할 수 있다. 프로세서(210)는 메모리(214)에 저장된 디바이스 정보를 획득할 수 있다. 또는, 프로세서(210)는 서버(230)로부터 디바이스 정보를 통신 회로(212)를 통해서 수신할 수도 있다. 또는, 프로세서(210)는 전자 장치(210)에 통신 가능하도록 직접 연결된(예: 유선 통신 또는 블루투스™와 같은 무선 통신) 적어도 하나의 외부 전자 장치(240)로부터 디바이스 정보를 수신할 수 있다.
적어도 하나의 외부 전자 장치(240)는 적어도 하나의 분산 키를 저장할 수 있는 장치일 수 있다. 예를 들어, 외부 전자 장치(240)는 웨어러블 디바이스(241), 서버(242), 사물인터넷(Internet of Things, IoT)(243) 디바이스, 또는 모바일 디바이스(244)를 포함할 수 있다.
디바이스 정보는 적어도 하나의 외부 전자 장치(240) 각각의 특징을 나타내는 정보를 의미할 수 있다. 예를 들어, 디바이스 정보는 적어도 하나의 외부 전자 장치(240) 각각에 대한 디바이스 유형 정보, 디바이스 식별자, 사용자 계정, 디바이스 사양 정보, 디바이스 위치 정보 및 디바이스 명칭 중 적어도 하나를 포함할 수 있다.
디바이스 유형 정보는 적어도 하나의 외부 전자 장치(240)가 어떤 유형(예: IoT 장치, 웨어러블 디바이스, 고정형 장치, 모바일 장치, 공용 장치, 개인 장치 등)에 속하는지를 나타내는 정보일 수 있다. 디바이스 식별자는, 예를 들면, MAC 주소, 국제 모바일 장치 식별자(International Mobile Equipment Identity), 전화번호, 또는 시리얼 넘버와 같이 적어도 하나의 외부 전자 장치(240)를 식별하기 위한 정보일 수 있다. 사용자 계정은 적어도 하나의 외부 전자 장치(240)의 사용자에 대한 계정일 수 있다. 예를 들면, 사용자 계정은 서버(230)에 로그인하기 위한 계정이거나, 서버(230)에 로그인하기 위한 계정과 연관된 정보(예: 닉네임, 전화번호, 사용자 아이디)일 수 있다. 디바이스 사양 정보는 적어도 하나의 외부 전자 장치(240)가 구비하는 장치나 외부 전자 장치(240)의 성능을 나타내는 정보일 수 있다. 예를 들어, 디바이스 사양 정보는 적어도 하나의 외부 전자 장치(240)가 보안 실행 환경(Trusted Execution Environment, TEE)을 구비하는지 여부, 디스플레이를 구비하는지 여부, 입력 장치를 구비하는 지 여부, 암호화 기능을 구비하는지 여부, 프로세서의 성능, 또는 생체 인식 센서의 구비 여부에 대한 정보를 포함할 수 있다. 디바이스 위치 정보는 디바이스의 위치를 나타내는 정보(예: GPS 좌표, 또는 상대 위치 정보)를 의미한다. 디바이스 명칭은 디바이스의 모델명 또는 적어도 하나의 외부 전자 장치(240)를 식별하기 위해 사용자가 설정한 명칭을 의미할 수 있다.
프로세서(213)는 디바이스 정보에 기초하여 적어도 하나의 분산 키의 총 수량을 결정할 수 있다. 일 실시 예에 따르면, 프로세서(213)는 적어도 하나의 외부 전자 장치(240)로부터 디바이스 정보에 기초하여 분산 키를 저장할 적어도 하나의 분산 저장 장치를 선택할 수 있다. 프로세서(213)는 디바이스 정보에 기초하여 결정된 적어도 하나의 분산 저장 장치에 기초하여 분산 키의 총 수량을 결정할 수 있다. 예를 들어, 프로세서(213)는 선택된 적어도 하나의 분산 저장 장치가 5개인 경우, 적어도 하나의 분산 키의 총 수량을 5로 결정할 수 있다. 다른 예를 들면, 프로세서(213)는 선택된 적어도 하나의 분산 저장 장치가 5개인 경우, 분산 키가 중복 저장되도록(즉, 적어도 하나의 분산 키가 둘 이상의 분산 저장 장치에 저장되도록) 하기 위하여 분산 키의 총 수량을 5보다 큰 자연수로 결정할 수도 있다.
일 실시 예에 따르면, 프로세서(213)는 디바이스 정보에 기초하여 적어도 하나의 외부 전자 장치(240) 각각에 대한 스코어를 산출할 수 있다. 프로세서(213)는 산출된 스코어에 기반하여 적어도 하나의 외부 전자 장치(240) 중에서 적어도 하나의 분산 키를 저장할 적어도 하나의 분산 저장 장치를 선택할 수 있다. 일 실시 예에 따르면, 프로세서(213)는 산출된 스코어가 지정된 값 이상인 외부 전자 장치(240)를 분산 저장 장치로서 선택할 수 있다. 다른 실시 예에 따르면, 프로세서(213)는 디바이스 정보에 기초하여 생성된 적어도 하나의 외부 전자 장치(240)에 대한 장치 목록을 디스플레이(211)를 통해서 출력할 수 있다. 프로세서(213)는 입력 장치(도시되지 않음)(예: 도 1의 입력 장치(150) 또는 터치 회로를 구비한 디스플레이(211))를 통해서 장치 목록으로부터 적어도 하나의 외부 전자 장치(240) 중에서 적어도 일부를 선택하는 사용자 입력을 수신할 수 있다. 프로세서(213)는 선택된 장치를 적어도 하나의 분산 저장 장치로서 선택할 수 있다.
일 실시예에 따르면 프로세서(213)은 외부 전자 장치(240)의 신뢰성 정보에 기반하여 외부 전자 장치(240)을 분산 저장 장치로서 선택할 수 있다. 일 실시예에 따르면, 프로세서(213)은 신뢰성 정보를 외부 전자 장치(240)이 기존에 분산 저장 장치로서 사용된 적이 있는지 히스토리를 기반으로 판단할 수 있다. 예컨대, 프로세서(213)은 외부 전자 장치(240)이 기존에 분산 저장 장치로 사용되었거나, 사용자 이외의 신뢰할 수 있는 다른 사용자 (예: 가족, 친척, 친구)에 의해서 사용된 적이 있었는지 여부를 판단할 수 있다. 프로세서(213)은 신뢰성 정보를 전자 장치 외부의 서버로부터 획득 할 수 있다. 예컨대, 서버가 외부 전자 장치(240)의 해킹 여부, 안정성 여부, S/W 보안 업그레이드 여부를 판단하고, 전자 장치(210)로 전송할 수 있다. 프로세서(213)은 서버로부터 획득한 정보에 기반해서 외부 전자 장치(240)을 분산 저장 장치로 결정 할 수 있다. 예컨대, IOT 디바이스들에 대한 새로운 해킹 위협이 발견된 경우, 프로세서(213)은 이 정보를 서버를 통해서 획득하고, 해킹 위협이 발견된 IOT 디바이스를 분산 저장 장치에서 제외 할 수 있다. 일 실시예에 따르면, 프로세서(213)은 외부 전자 장치(240)에 대한 신뢰성 정보를 다른 전자 장치 (108)로부터 획득할 수 있다. 예컨대 전자 장치(101)는 전자 장치(101)과 통신 모듈(예: 유선 통신모듈(194) 또는 무선 통신 모듈(192))를 통해 연결된 다른 전자 장치 (108)로부터 외부 전자 장치(240)이 분산 저장 장치로 결정될 수 있는지 여부에 관한 정보들(예: 디바이스 정보, 기존에 분산 저장 장치로 결정되었는지 여부에 대한 정보, 해킹 가능성 정보)를 획득할 수 있다. 예컨대, 신뢰할 수 있는 사용자(예: 가족, 친구, 친척) 가 사용하는 전자 장치를 통해서 분산 저장 장치로 사용 가능한 외부 전자 장치(240)에 대한 정보를 획득 할 수 있다.
프로세서(213)는 통신 회로(213)를 통해서 결정된 총 수량에 기초하여 생성된 적어도 하나의 분산 키를 분산 저장 장치로 결정된 외부 전자 장치(240)로 전송할 수 있다. 일 실시 예에 따르면, 외부 전자 장치(240)가 전자 장치(210)와 직접 연결된 장치인 경우, 프로세서(213)는 통신 회로(212)를 통해서 외부 전자 장치(240)에 분산 키를 직접 전송할 수 있다. 프로세서(213)는 외부 전자 장치(240)에 분산 키가 저장된 이후에 외부 전자 장치(240)를 식별하기 위한 디바이스 식별 정보를 메모리(214)에 저장하거나 서버(230)에 저장하기 위해 서버(230)로 전송할 수 있다.
디바이스 식별 정보는 전자 장치(210)나 외부 전자 장치(240)를 고유하게 식별하게 위한 정보를 의미할 수 있다. 예를 들어, 디바이스 식별 정보는 전자 장치(210) 또는 외부 전자 장치(240)의 맥 주소(MAC address) 또는 기기 식별자(device ID)를 포함할 수 있다.
다른 실시 예에 따르면, 프로세서(213)는 서버(230)에 분산 키의 저장을 요청할 수 있다. 서버(230)는 요청에 대한 응답으로, 분산 키를 외부 전자 장치(240)에 저장할 수 있다. 서버(230)는 분산 키를 저장한 외부 전자 장치에 대한 디바이스 식별 정보를 저장할 수 있다.
또 다른 실시 예에 따르면, 프로세서(213)는 외부 전자 장치(240)가 아닌 블록체인 네트워크(220)에 분산 키를 저장할 수도 있다. 예컨대 블록체인 네트워크(220)에 분산 키를 저장하는 동작은, 분산 키들을 포함하는 트랜잭션을 생성하고, 블록체인 상에 블록으로 포함하여 저장 되도록 하는 동작을 포함할 수 있다. 블록체인 상에 저장된 분산 키들에 관한 정보는 블록체인 노드에 참여한 노드들에 저장될 수 있다. 전자 장치는 블록체인 트랜잭션에 대한 주소 값을 기반으로 분산 키들에 관한 정보에 접근할 수 있다. 블록체인 네트워크(220)에 분산 키를 저장한 경우, 프로세서(213)는 분산 키가 저장된 위치를 식별할 수 있는 트랜잭션 ID를 디바이스 식별 정보로서 메모리(214) 또는 서버(230)에 저장할 수 있다.
일 실시 예에 따르면, 프로세서(213)는 분산 키를 전송하기 전에 생성된 분산 키를 암호화하고, 암호화된 분산 키가 전송되도록 할 수 있다. 프로세서(213)는 전자 장치(210)에만 저장된 암호화 키를 이용하여 분산 키를 암호화할 수도 있다. 그러나, 전자 장치(210)에만 저장된 암호화 키를 이용하는 경우 전자 장치(210)가 손상되거나 분실된 경우 분산 키를 복호화할 수 없게 된다. 따라서, 일 실시 예에 따른 프로세서(213)는 사용자만 제공할 수 있는 정보(예: 생체 정보, 개인 식별 번호) 또는 전자 장치(210)와 서버(230)만이 알 수 있는 정보(이하, 암호화 코드)에 기초하여 분산 키를 암호화할 수 있다. 전자 장치(210)와 서버(230)가 가지는 정보에 기초하여 분산 키를 암호화한 경우, 키 값을 복구하고자 하는 전자 장치(210) 또는 다른 전자 장치는 서버(230)에 요청하여 분산 키를 복호화하기 위한 정보를 수신할 수 있다.
일 실시예에 따르면, 프로세서(213)는 루트 시드가 분산 저장된 경우, 루트 시드를 복구 하고, 복구된 루트 시드로부터 개인키를 생성하고, 생성 된 개인 키를 이용하여 블록체인 네트워크(220)로 전송될 블록체인 거래 데이터에 전자 서명을 할 수 있다.
일 실시예에 따르면, 프로세서(213)는 니모닉 워드가 분산 저장된 경우, 니모닉 워드를 복구 하고, 복구된 니모닉 워드로부터 루트 시드를 생성하고, 생성된 루트 시드 기반으로 개인키를 생성하고, 생성 된 개인 키를 이용하여 블록체인 네트워크(220)로 전송될 블록체인 거래 데이터에 전자 서명을 할 수 있다.
일 실시예에 따르면, 프로세서(213)는 개인키가 분산 저장된 경우, 개인키를 복구 하고, 복구된 개인 키를 이용하여 블록체인 네트워크(220)로 전송될 블록체인 거래 데이터에 전자 서명을 할 수 있다. 프로세서는 블록체인 거래 데이터에 대해 전자 서명을 수행한 후, 전자 서명된 블록체인 거래 데이터를 통신 회로(212)를 통해서 블록체인 네트워크(220)로 전송할 수 있다.
서버(230)는 전자 장치(210)를 통해서 서버(230)에 로그인한 사용자 계정을 기반으로 사용자 계정에 연관된 적어도 하나의 외부 전자 장치(240)에 대한 정보를 관리할 수 있다. 예를 들어, 서버(230)는 사용자 계정을 기반으로 사용자 계정으로 접근 가능 하거나, 분산 저장 장치로 결정된 사물 인터넷 디바이스(243)에 대한 장치 정보를 매핑해서 관리 할 수 있다. 일 실시예에 따르면, 서버(230)은 다른 서버를 통해서 외부 전자 장치(240)에 대한 정보를 관리 할 수 있다. 예컨대 사물인터넷 서버(도시되지 않음)에 접속하여 사물인터넷 디바이스(243)를 제어할 수 있다. 또는, 서버(230)는 사물인터넷 서버(도시되지 않음)를 통해서 사물인터넷 디바이스(243)의 동작에 대한 정보나 상태에 대한 정보를 획득하여 전자 장치(210)로 전송할 수 있다. 서버(230)는 메모리(도시되지 않음), 통신 회로(도시되지 않음) 및 메모리 및 통신 회로와 연결된 프로세서(도시되지 않음)를 포함하여 구성될 수 있다.
도 3은 일 실시 예에 따른, 전자 장치(예: 도 1의 전자 장치(101), 도 2의 전자 장치(210))가 키 값(예: 종자 값 또는 연상기호 정보)을 분산 저장 장치에 저장하는 프로세스를 도시한 순서도(300)이다.
동작 310에서, 전자 장치(예: 프로세서 213)는 적어도 하나의 외부 전자 장치(예: 도 2의 외부 전자 장치(240)에 대한 디바이스 정보를 획득할 수 있다. 디바이스 정보는 외부 전자 장치 각각에 대한 디바이스 유형 정보, 디바이스 식별자, 사용자 계정, 디바이스 사양 정보, 디바이스 위치 정보 및 디바이스 명칭 중 적어도 하나를 포함할 수 있다. 일 실시 예에 따르면, 전자 장치는 서버(예: 도 2의 서버(230))로부터 디바이스 정보를 획득할 수 있다. 또는, 전자 장치는 전자 장치에 저장된 디바이스 정보를 획득하거나, 전자 장치에 연결된 외부 전자 장치로부터 직접 디바이스 정보를 수신할 수도 있다.
동작 320에서, 전자 장치(예: 프로세서 213)는 디바이스 정보에 기초하여 적어도 하나의 외부 전자 장치 중에서 분산 키를 저장할 적어도 하나의 분산 저장 장치를 선택할 수 있다. 일 실시 예에 따르면, 전자 장치는 디바이스 정보의 적어도 일부가 표시되도록 장치 목록을 디스플레이할 수 있다. 전자 장치는 장치 목록을 사용자에게 제공하고, 분산 저장 장치로 선택하기 위한 사용자 입력을 수신할 수 있다. 전자 장치는 사용자 입력에 대한 응답으로, 적어도 하나의 분산 저장 장치를 선택할 수 있다.
일 실시 예에 따르면, 전자 장치는 디바이스 정보에 기초하여 적어도 하나의 외부 전자 장치에 대한 우선순위를 결정할 수 있다. 전자 장치는 디바이스 정보에 기초하여 적어도 하나의 외부 전자 장치 각각에 가중치를 부여하고, 부여된 가중치에 기초하여 우선순위를 결정하기 위한 스코어를 산출할 수 있다. 예를 들어, 전자 장치는 디바이스 정보에 포함된 디바이스 유형 정보에 기초하여, 외부 전자 장치가 웨어러블 디바이스와 같이 개인이 소유하는 장치인 경우 높은 가중치를 부여할 수 있다. 다른 예를 들면 전자 장치는 디바이스 정보에 포함된 디바이스 사양 정보가 입력 장치를 구비하거나, 지원 가능한 암호화 수준이 높은 경우에 높은 가중치를 부여할 수 있다.
전자 장치는 결정된 우선순위에 기초하여 장치 목록을 표시할 수 있다. 예를 들어, 전자 장치는 디바이스 정보가 우선순위 순서로 정렬된 장치 목록을 표시할 수 있다. 다른 예를 들면, 전자 장치는 우선순위가 높은 외부 전자 장치에 대한 디바이스 정보를 다른 외부 전자 장치에 대한 디바이스 정보와 구별되도록 표시할 수 있다. 또 다른 예를 들면, 전자 장치는 우선 순위가 높은 외부 전자 장치를 식별할 수 있도록 하는 인디케이터를 표시할 수도 있다.
다른 실시 예에 따르면, 전자 장치는 적어도 하나의 외부 전자 장치 중에서 지정된 조건을 만족하는 디바이스 정보를 가지는 적어도 일부를 적어도 하나의 분산 저장 장치로 자동적으로 선택할 수도 있다. 예를 들어, 전자 장치는 디바이스 정보가 저장 공간을 가지고, 사용자의 개인 장치이거나, 암호 입력이 가능함을 나타내는 장치를 분산 저장 장치로 선택할 수 있다. 다른 예를 들면, 전자 장치는 적어도 하나의 외부 전자 장치 각각에 대한 우선순위를 결정하고, 우선순위가 높은 적어도 하나의 장치를 적어도 하나의 분산 저장 장치로서 선택할 수 있다.
일 실시예에 따르면, 전자 장치는 외부 전자 장치를 분산 저장 장치로 선택하기 위하여 외부 전자 장치에 대한 신뢰성 정보를 이용할 수 있다. 일 실시예에 따르면, 신뢰성 정보는 외부 전자 장치에 대하여, 기존에 다른 전자 장치가 분산 저장 장치로 사용한 이력이 있는지에 대한 정보, 해킹에 대한 취약성 정보, 보안 소프트웨어가 업그레이드 되어 있는지에 대한 정보, 해킹 이력 또는 보안이 강화된 저장 영역 존재 여부를 포함할 수 있다. 일 실시예에 따르면, 신뢰성 정보는 전자 장치 외부의 다른 전자 장치 또는 서버를 통해서 획득 할 수 있다.
동작 330에서, 전자 장치(예: 프로세서 213)는 키 값을 분할한 적어도 하나의 분산 키를 생성할 수 있다. 일 실시 예에 따르면, 전자 장치는 디바이스 정보에 기초하여 선택된 적어도 하나의 분산 저장 장치에 따라서 적어도 하나의 분산 키의 총 수량을 결정할 수 있다. 전자 장치는 결정된 총 수량에 기초하여 적어도 하나의 분산 키를 생성할 수 있다. 예를 들어, 3개의 외부 전자 장치가 분산 저장 장치로서 선택된 경우, 전자 장치는 키 값을 3개의 분산 키로 분할할 수 있다.
일 실시 예에 따르면, 전자 장치는 디바이스 정보에 기초하여 선택된 적어도 하나의 분산 저장 장치 각각에 저장될 분산 키의 저장 수량을 결정할 수 있다. 예를 들어, 전자 장치는 보안 수준이 높은 분산 저장 장치일수록 많은 수의 분산 키를 저장하도록 할 수 있다. 동작 320에서, 전자 장치는 각 분산 저장 장치에 저장될 분산 키의 저장 수량을 더 고려하여 분산 키를 생성할 수 있다. 예를 들어, 3개의 외부 전자 장치가 분산 저장 장치로서 선택되고, 각 분산 저장 장치의 저장 수량이 1, 3, 2인 경우, 전자 장치는 키 값을 6개의 분산 키로 분할할 수 있다.
동작 340에서, 전자 장치는 적어도 하나의 분산 저장 장치에 분산하여 저장되도록 적어도 하나의 분산 키를 전송할 수 있다. 일 실시 예에 따르면, 분산 저장 장치에 대한 분산 키의 저장 수량이 결정되어 있는 경우, 결정된 저장 수량에 따라서 분산 저장 장치에 분산 키를 전송할 수 있다.
도 4는 일 실시 예에 따른, 전자 장치(예: 도 1의 전자 장치(101), 도 2의 전자 장치(210))가 디스플레이하는 외부 전자 장치(예: 도 2의 외부 전자 장치(240))에 대한 장치 목록을 포함하는 화면(400)의 예시를 나타낸다.
전자 장치는 분산 키를 저장할 분산 저장 장치를 선택하기 위하여(예: 도 3의 동작 320), 외부 전자 장치에 대한 장치 목록(410)을 포함하는 화면(400)을 디스플레이할 수 있다. 일 실시 예에 따르면, 장치 목록(410)은 외부 전자 장치에 대해 결정된 우선순위에 기초하여 구성된 것일 수 있다.
일 실시 예에 따르면, 전자 장치는 디바이스 정보에 기초하여 장치 목록(410)에 포함된 외부 전자 장치 중에서 적어도 하나의 추천 장치를 선택할 수 있다. 예를 들어, 전자 장치는 디바이스 정보에 기초하여 각 외부 전자 장치에 대한 스코어를 산출하고, 임계값 이상의 스코어를 가지는 외부 전자 장치를 추천 장치로 선택할 수 있다. 전자 장치는 장치 목록(410)에 포함된 추천 장치를 나타내는 인디케이터(420)를 포함하는 화면(400)을 출력할 수 있다. 일 실시 예에 따르면, 전자 장치는 산출된 스코어를 포함하는 화면을 출력할 수도 있다.
도 5는 일 실시 예에 따른, 전자 장치(예: 도 1의 전자 장치(101), 도 2의 전자 장치(210))가 사용자 인증 정보에 기반하여 암호화된 분산 키를 전송하는 프로세스를 도시한 순서도(500)이다.
일 실시 예에 따르면, 도 5에 도시된 프로세스는 분산 키를 전송하는 동작(도 3의 동작 340)이 수행되기 이전 또는 수행되는 과정에서 수행될 수 있다.
동작 510에서, 전자 장치(예: 프로세서 213)는 사용자 인증 정보를 획득할 수 있다. 사용자 인증 정보는 전자 장치의 사용자를 식별하여 인증할 수 있는 정보를 의미할 수 있다. 예를 들어, 사용자 인증 정보는 패스워드, 개인 식별 번호(Personal Identification Number; PIN), 또는 생체 정보를 포함할 수 있다. 생체 정보는, 예를 들어, 지문 정보, 홍채 정보, 유전물질 정보, 또는 정맥 정보를 포함할 수 있다. 사용자 인증 정보는, 예를 들어, 터치스크린 디스플레이, 다른 입력 장치, 또는 센서(예: 지문 센서, 이미지 센서)을 통해서 입력될 수 있다.
일 실시 예에 따르면, 전자 장치는 적어도 하나의 분산 키를 암호화하기 위한 사용자 인증 정보의 종류에 따른 화면을 디스플레이할 수 있다. 예를 들어, 전자 장치는 도 4에 도시된 화면에 기초하여 적어도 하나의 분산 저장 장치가 선택된 경우, 사용자 인증 정보를 수신하기 위한 화면을 디스플레이할 수 있다.
예를 들어, 사용자 인증 정보가 개인 식별 번호인 경우, 전자 장치는 번호 입력을 위한 화면을 디스플레이할 수 있다. 다른 예를 들어, 사용자 인증 정보가 지문 정보인 경우, 전자 장치는 전자 장치의 지문 센서(예: 도 1의 센서 모듈(176))에 지문을 입력할 것을 요청하는 화면을 디스플레이할 수 있다.
동작 520에서, 전자 장치(예: 프로세서 213) 는 획득된 사용자 인증 정보를 이용하여 적어도 하나의 분산 키(예: 도 3의 동작 330에서 생성된 분산 키)를 암호화할 수 있다. 동작 530에서, 전자 장치(예: 프로세서 213)는 암호화된 적어도 하나의 분산 키를 적어도 하나의 분산 저장 장치에 전송할 수 있다.
도 6은 일 실시 예에 따른, 전자 장치(예: 도 1의 전자 장치(101), 도 2의 전자 장치(210))가 생체 정보에 기반하여 암호화된 분산 키를 전송하는 프로세스를 도시한 순서도(600)이다.
동작 610에서, 전자 장치(예: 프로세서 213)는 복수의 생체 정보 입력들을 수신할 수 있다. 예를 들어, 전자 장치는 지문 정보를 복수 회에 걸쳐서 입력 받을 수 있다. 전자 장치는 복수의 생체 정보 입력들로부터 생체 정보를 획득할 수 있다.
동작 620에서, 전자 장치(예: 프로세서 213)는 획득된 생체 정보로부터 핵심 정보를 추출할 수 있다. 일 실시 예에 따르면, 핵심 정보는 복수 회 입력된 생체 정보 입력에 공통적으로 포함되는 정보를 의미할 수 있다. 즉, 생체 정보 입력에 포함된 정보 중에서 안정적으로(stable) 획득되는 정보를 의미할 수 있다.
동작 630에서, 전자 장치(예: 프로세서 213)는 핵심 정보를 이용하여 적어도 하나의 분산 키를 암호화할 수 있다. 생체 정보는 매 입력 시 모든 정보가 동일하지 않을 수 있다. 따라서, 입력된 생체 정보 전부를 이용하여 분산 키를 암호화한 경우, 분산 키의 복호화를 위해 입력된 생체 정보를 이용하여 암호화된 분산 키를 복호화하지 못할 수 있다. 그러나, 핵심 정보를 이용하여 분산 키를 암호화한 경우, 복호화 시 입력된 생체 정보 중에서 핵심 정보에 해당하는 부분의 정보를 이용하여 분산 키를 복호화할 수 있다.
동작 640에서, 전자 장치(예: 프로세서 213)는 암호화된 적어도 하나의 분산 키를 적어도 하나의 분산 저장 장치로 전송할 수 있다.
도 7은 일 실시 예에 따른, 분산 키를 저장한 외부 전자 장치(702)(예: 도 1의 전자 장치(102), 전자 장치(104), 도 2의 외부 전자 장치(240))에 대한 디바이스 식별 정보를 서버(703)(예: 도 1의 서버(108), 도 2의 서버(230))에 저장하는 프로세스를 도시한 순서도(700)이다.
동작 711에서, 전자 장치(701)(예: 도 1의 전자 장치(101), 도 2의 전자 장치(210)) (예: 프로세서 213)는 적어도 하나의 분산 키를 생성할 수 있다. 동작 713에서, 전자 장치(701) (예: 프로세서 213)는 적어도 하나의 외부 전자 장치(702)에 분산 키 저장 요청을 전송할 수 있다. 일 실시 예에 따르면 분산 키 저장 요청은 적어도 하나의 외부 전자 장치(702)에 저장될 적어도 하나의 분산 키를 포함할 수 있다.
동작 715에서, 적어도 하나의 외부 전자 장치(702)는 전자 장치(701)로부터 수신한 적어도 하나의 분산 키를 저장할 수 있다. 동작 717에서, 적어도 하나의 외부 전자 장치(702)는 저장한 적어도 하나의 분산 키를 전자 장치(701)로 전송할 수 있다. 동작 719에서, 전자 장치(701)(예: 프로세서 213)는 적어도 하나의 외부 전자 장치(702)에 저장된 분산 키를 검증할 수 있다. 전자 장치(701)는 적어도 하나의 외부 전자 장치(702)로부터 수신된 적어도 하나의 분산 키가 동작 713에서 전송된 적어도 하나의 분산 키와 동일한 경우, 적어도 하나의 외부 전자 장치(702)에 적어도 하나의 분산 키가 정상적으로 저장된 것으로 판단할 수 있다. 다른 실시 예에 따르면, 동작 717 및 동작 719는 외부 전자 장치(702)가 분산 키가 생성되었음을 통지하는 알림 메시지를 전자 장치(701)로 전송하는 동작으로 대체될 수도 있다.
일 실시 예에 따르면, 적어도 하나의 외부 전자 장치(702)는 각 외부 전자 장치(702)의 사양에 따라서 분산 키에 대한 사용자 인증 정보를 설정할 수 있다. 예를 들어, 외부 전자 장치(702)가 터치스크린 패널을 구비한 경우, 외부 전자 장치(702)는 터치스크린 패널을 통해서 사용자를 인증하기 위한 패스워드를 입력 받을 수 있다. 외부 전자 장치(702)는 입력된 패스워드를 저장한 분산 키에 대해 설정할 수 있다. 예를 들어, 외부 전자 장치(702)는 분산 키를 전송할 것을 요청 받는 경우, 외부 전자 장치(702) 또는 전자 장치(701)를 통해서 패스워드를 입력 받고, 입력된 패스워드가 설정된 패스워드와 매칭되는 경우에 한해서 분산 키를 전송할 수 있다.
적어도 하나의 외부 전자 장치(702)에 적어도 하나의 분산 키가 정상적으로 저장된 것으로 판단되면, 동작 721에서 전자 장치(701)(예: 통신 회로 212)는 적어도 하나의 외부 전자 장치(702)에 대한 디바이스 식별 정보를 서버(703)로 전송할 수 있다.
일 실시예에 따르면 외부 전자 장치(702)에서 분산 키를 정상적으로 저장한 경우, 디바이스 식별 정보(721)를 서버(703)에 직접 전달 할 수도 있다 (724). 예컨대 외부 전자 장치는 사용자의 인증을 통해 인증되고, 분산 키를 저장할 경우, 디바이스 식별 정보를 서버에 직접 전달 할 수 있다. 일 실시예에 따르면 서버 (703)은 복수의 외부 전자 장치(702)들로부터 분산키 저장에 대한 디바이스 식별 정보를 직접 획득해서 저장 하고 관리 할 수 있다.
일 실시예에 따르면, 외부 전자 장치(702)에 대한 저장이 실패할 경우, 실패한 정보에 대해서 서버에게 전달 하고, 서버는 외부 전자 장치에 대한 신뢰성 정보를 관리 할 수 있다. 일 실시예에 따르면, 외부 전자 장치(702)가 분산 키 저장시, 사용자 인증에 실패하거나 반복적으로 사용자 인증에 실패해서 외부 전자 장치의 신뢰성이 낮아 진 경우, 전자 장치(701)에게 실패에 관한 내용을 전달 할 수 있다. 예컨대 특정 외부 전자 장치(702)에서 반복적인 실패가 발생할 경우 서버(703)은 이를 확인하고 관련된 전자 장치들에게 외부 전자 장치의 신뢰성 정보를 전달 할 수 있다.
동작 723에서, 서버(703)는 디바이스 식별 정보를 저장할 수 있다. 디바이스 식별 정보는 각 외부 전자 장치(702)를 식별하기 위한 정보를 의미한다. 예를 들어, 디바이스 식별 정보는 적어도 하나의 외부 전자 장치(702)의 기기 유형 정보, 기기 식별자, 기기 명칭 중 적어도 하나를 포함할 수 있다. 기기 유형 정보는, 예를 들어, 에어컨, 웨어러블 장치, 텔레비전과 같이 외부 전자 장치(702)가 속하는 분류를 의미할 수 있다. 기기 식별자는, 예를 들어, MAC 주소, IMEI, 시리얼 넘버 또는 하드웨어 ID를 포함할 수 있다. 기기 명칭은, 외부 전자 장치(702)에 대한 정보를 서버(703)에 등록할 때 사용자가 설정한 명칭일 수 있다. 일 실시 예에 따르면, 사용자 계정에 기초하여 디바이스 식별 정보를 요청 받을 경우 디바이스 식별 정보를 제공하기 위해, 서버(703)는 디바이스 식별 정보를 전자 장치(701)를 통해서 서버(703)에 로그인 된 사용자 계정에 연관하여 저장할 수 있다.
도 8은 일 실시 예에 따른, 서버(803)(예: 도 1의 서버(108), 도 2의 서버(230))를 통해서 외부 전자 장치(예: 도 1의 전자 장치(102), 전자 장치(104), 도 2의 외부 전자 장치(240))에 분산 키를 저장하는 프로세스를 도시한 순서도(800)이다.
동작 811에서, 전자 장치(801)(예: 도 1의 전자 장치(101), 도 2의 전자 장치(210))는 적어도 하나의 분산 키를 생성할 수 있다. 동작 813에서, 전자 장치(801)는 서버(803)에 분산 키 저장 요청을 전송할 수 있다. 일 실시 예에 따르면 분산 키 저장 요청은 적어도 하나의 외부 전자 장치(802)에 저장될 적어도 하나의 분산 키를 포함할 수 있다.
동작 815에서, 분산 키 저장 요청을 수신한 서버(803)는 분산 키를 저장할 적어도 하나의 분산 저장 장치를 결정할 수 있다. 예를 들어, 동작 815에서 서버(803)는 도 3의 동작 310 및 동작 320을 통해서 선택된 적어도 하나의 분산 저장 장치에 대한 정보를 전자 장치(801)로부터 획득할 수 있다. 다른 예를 들면, 서버(803)는 외부 전자 장치들에 대한 디바이스 정보에 기초하여 외부 전자 장치들에 대한 우선순위를 결정할 수 있다. 서버(803)는 결정된 우선순위가 높은 순서대로 분산 키를 저장하기 위해 요구되는 수량의 분산 저장 장치를 선택할 수 있다.
동작 817에서, 서버(803)는 분산 저장 장치로서 선택된 적어도 하나의 외부 전자 장치(802)에 분산 키 저장 요청을 전송할 수 있다. 동작 819에서, 분산 키 저장 요청을 수신한 적어도 하나의 외부 전자 장치(802)는 수신한 분산 키를 저장할 수 있다. 동작 821에서 적어도 하나의 외부 전자 장치(802)가 저장한 분산 키를 전송하면, 동작 823에서 서버(803)는 분산 키를 전자 장치(801)로 전달할 수 있다.
동작 825에서, 전자 장치(801)는 적어도 하나의 외부 전자 장치(802)에 저장된 분산 키를 검증할 수 있다. 전자 장치(801)는 서버(803)로부터 수신된 적어도 하나의 분산 키가 동작 813에서 전송된 적어도 하나의 분산 키와 동일한 경우, 적어도 하나의 외부 전자 장치(802)에 적어도 하나의 분산 키가 정상적으로 저장된 것으로 판단할 수 있다. 하나의 분산 키가 정상적으로 저장된 것으로 판단된 경우, 동작 827에서 전자 장치(801)는 검증 결과를 서버(803)로 전송할 수 있다.
다른 실시 예에 따르면, 동작 823, 825 및 827은 서버(803)가 동작 813에서 수신된 분산 키와 동작 821에서 수신된 분산 키를 비교하여 적어도 하나의 외부 전자 장치(802)에 저장된 분산 키를 검증하는 동작으로 대체될 수도 있다. 서버(803)는 저장된 분산 키가 유효한 것으로 검증되면 저장 결과를 통지하는 알림 메시지를 전자 장치(801)로 전송할 수 있다.
또 다른 실시 예에 따르면, 동작 823, 825 및 동작 827은 외부 전자 장치(802)가 분산 키가 생성되었음을 통지하는 알림 메시지를 전자 장치(801)로 전송하는 동작으로 대체될 수도 있다.
또 다른 실시 예에 따르면, 동작 817 내지 동작 825는 서버(803)가 분산 저장 장치로서 선택된 외부 전자 장치(802)에 대한 디바이스 식별 정보를 전자 장치(801)로 전송하면, 전자 장치(801)가 디바이스 식별 정보에 기초하여 도 7의 동작 713 내지 동작 719를 수행하는 것으로 대체될 수도 있다.
동작 829에서, 서버(803)는 분산 키를 저장한 적어도 하나의 외부 전자 장치(802)에 대한 디바이스 식별 정보를 저장할 수 있다.
일 실시 예에 따르면, 동작 821 및 823에서 분산 키는 암호화된 상태로 전송될 수 있다. 전자 장치(801)는 암호화된 분산 키를 복호화하여 검증할 수 있다.
일 실시 예에 따르면, 동작 821, 823, 825, 및 827은 외부 전자 장치(802)가 저장된 분산 키를 검증하고, 검증 결과를 서버(803)로 전송하는 동작으로 대체될 수도 있다.
본 명세서에서 개시된 다양한 실시 예들은 각각 독립적이어야 하는 것은 아니며, 복수의 실시 예들이 조합되어 사용될 수도 있다. 예를 들어, 전자 장치(예: 도 1의 전자 장치(101), 도 2의 전자 장치(210))는 전자 장치에 직접 연결된 외부 전자 장치(예: 근거리 무선 통신을 통해 연결된 웨어러블 디바이스)에 도 7에 도시된 프로세스(700)를 통해서 일부의 분산 키를 저장하고, 서버를 통해서 연결된 외부 전자 장치(예: 사물인터넷 디바이스)에 도 8에 도시된 프로세스(800)를 통해서 나머지 분산 키를 저장할 수 있다.
도 9는 일 실시 예에 따른, 전자 장치(예: 도 1의 전자 장치(101), 도 2의 전자 장치(210))가 키 값을 복구하기 위한 암호화 코드를 서버로 전송하는 프로세스를 도시한 순서도(900)이다.
일 실시 예에 따르면, 적어도 하나의 분산 저장 장치에 적어도 하나의 분산 키를 전송하는 동작(예: 도 3의 동작 340)을 수행하기 이전에, 동작 1010에서 전자 장치(예: 프로세서 213)는 암호화 코드를 생성할 수 있다. 암호화 코드는 실시예에 따라서 다양한 방법으로 생성될 수 있다. 예를 들어, 전자 장치에 의해서 발생된 난수가 암호화 코드로 사용될 수 있다.
동작 920에서, 전자 장치(예: 프로세서 213)는 생성된 암호화 코드를 이용하여 적어도 하나의 분산 키를 암호화할 수 있다. 동작 930에서, 전자 장치(예: 프로세서 213)는 암호화된 적어도 하나의 분산 키를 암호화 코드와 함께 서버(예: 도 1의 서버(108), 도 2의 서버(230))로 전송할 수 있다. 분산 키를 수신한 서버는 암호화 코드를 전자 장치의 사용자 계정에 연관하여 저장할 수 있다. 서버에 저장된 암호화 코드는 전자 장치가 분산 키를 복호화하고자 할 때 제공될 수 있다.
도 10은 일 실시 예에 따른, 전자 장치(1001)(예: 도 1의 전자 장치(101), 도 2의 전자 장치(210))가 분산 키를 블록체인 네트워크(1002) 에 저장하는 프로세스를 도시한 순서도(1000)이다.
동작 1011에서, 전자 장치(1001)는 적어도 하나의 분산 키를 생성할 수 있다. 전자 장치(1001)(예: 프로세서 213)는 분산키를 저장하기 위한 트랜잭션의 개수를 결정 하고, 트랜잭션의 개수에 따라 분산키를 생성할 수 있다. 예컨대 5개의 분산 키가 5개의 트랜잭션을 통해 분산되어 블록체인 네트워크를 통해 저장될 수 있다. 일 실시예에 따르면, 하나의 트랜잭션에 복수의 분산 키가 함께 저장될 수 있다. 예컨대 10개의 분산 키가 생성이 되고 각각의 분산 키들을 2개씩으로 분리하여 5개의 트랜잭션에 포함하여 저장할 수 있다. 동작 1013에서, 전자 장치(1001)는 적어도 하나의 블록체인 네트워크(1002)에 저장될 적어도 하나의 분산 키를 포함하는 트랜잭션 데이터를 생성할 수 있다. 예컨대 분산 키의 개수에 대응하는 트랜잭션을 생성 할 수 있다. 5개의 분산 키가 생성될 경우 각각 5개의 트랜잭션의 트랜잭션 데이터에 분산 키를 분산하여 저장 할 수 있다. 일 실시 예에 따르면, 블록체인 네트워크(1002)에 저장된 데이터는 블록체인 기술의 특성상 기록된 데이터가 공개되므로, 동작 1013에서 전자 장치(1101)는 분산 키를 암호화하여 트랜잭션 데이터에 포함시킬 수 있다.
동작 1015에서, 전자 장치(1001)는 적어도 하나의 블록체인 네트워크(1002)로 생성된 트랜잭션 데이터를 전송할 수 있다. 동작 1017에서 블록체인 네트워크의 노드에 트랜잭션 데이터가 저장되면, 동작 1019에서 전자 장치(1001)는 트랜잭션 데이터가 저장된 위치에 대한 정보를 포함하는 트랜잭션 ID를 획득할 수 있다. 전자 장치(1001)는 획득된 트랜잭션 ID를 이용하여 트랜잭션 데이터를 읽어들이고, 트랜잭션 데이터로부터 분산 키를 획득하여 블록체인 네트워크(1002)에 저장된 분산 키를 검증할 수 있다.
동작 1021에서, 전자 장치(1001)는 분산 키를 저장한 외부 전자 장치를 식별하는 디바이스 식별 장치를 대신하여, 트랜잭션 ID를 서버(1003) (예: 도 1의 서버(108), 도 2의 서버(230))로 전송할 수 있다. 동작 1023에서, 서버(1003)는 수신한 트랜잭션 ID를 저장할 수 있다. 다른 실시 예에 따르면, 전자 장치(1001)는 전자 장치(1001)의 저장 매체(예: 메모리(214))에 트랜잭션 ID를 직접 저장할 수도 있다.
도 11은 일 실시 예에 따른, 전자 장치 또는 서버(예: 도 1의 서버(108), 도 2의 서버(230))에 저장되는 디바이스 식별 정보(1100)의 예시를 나타낸다.
일 실시 예에 따르면, 디바이스 식별 정보(1100)는 기기 유형 정보(1110), 기기 식별자(1120), 기기 명칭(1130) 및 분산 키 식별자(1140) 중 적어도 하나를 포함할 수 있다.
기기 유형 정보(1110)는 분산 저장 장치가 속하는 기기의 종류에 대한 정보를 의미할 수 있다. 기기 식별자(1120)는 디바이스를 식별하기 위해 디바이스에 부여된 고유한 정보를 의미할 수 있다. 예를 들어, 기기 식별자(1120)는 MAC 주소, IMEI, 시리얼 넘버 또는 하드웨어 ID를 포함할 수 있다. 기기 명칭은, 분산 저장 장치에 대한 정보를 서버에 등록할 때 사용자가 설정한 명칭일 수 있다. 분산 키 식별자(1140)는 그 분산 저장 장치에 저장된 분산 키가 무엇인지 식별하기 위한 정보를 포함할 수 있다.
기기 유형 정보(1110)가 블록체인인 경우, 기기 식별자(1120)는 트랜잭션 ID일 수 있다.
다만, 도 11에 도시된 디바이스 식별 정보(1100)는 일 예시를 설명하기 위한 것이며, 디바이스 식별 정보(1100)는 도 11에 도시된 예시와 다르게 구성될 수도 있다.
도 12는 일 실시 예에 따른, 전자 장치(예: 도 1의 전자 장치(101), 도 2의 전자 장치(210))가 키 값을 복구하는 프로세스를 나타낸 순서도(1200)이다.
동작 1210에서, 전자 장치(예: 프로세서 213)는 적어도 하나의 분산 저장 장치에 분산 키 전송 요청을 전송할 수 있다. 일 실시 예에 따르면, 전자 장치는 디바이스 식별 정보에 기초하여 적어도 하나의 분산 저장 장치를 식별할 수 있다. 일 실시예에 따르면 전자 장치는 디바이스 식별 정보를 외부 서버로부터 획득할 수 있다. 획득한 디바이스 식별 정보를 기반으로 적어도 하나의 분산 저장 장치를 식별 할 수 있다.
일 실시 예에 따르면, 동작 1210에서, 전자 장치(예: 프로세서 213)는 분산 키 전송 요청을 전송할 적어도 하나의 분산 저장 장치를 선택하기 위하여, 디바이스 식별 정보에 기초하여 디스플레이에 분산 저장 장치 목록을 디스플레이할 수 있다. 전자 장치는 분산 저장 장치 목록에서 적어도 하나의 분산 저장 장치를 선택하는 사용자 응답에 기초하여 분산 키 요청을 전송할 수 있다. 다른 실시 예에 따르면, 전자 장치는 디바이스 식별 정보에 기초하여 식별되는 모든 분산 저장 장치에 분산 키 전송 요청을 전송할 수도 있다.
동작 1220에서, 분산 키 전송 요청에 대한 응답으로, 전자 장치(예: 프로세서 213)는 적어도 하나의 분산 저장 장치로부터 적어도 하나의 분산 키를 수신할 수 있다. 여기서, 수신된 적어도 하나의 분산 키는 키 값을 분할하여 저장한 전체 분산 키들 중 적어도 일부일 수 있다.
동작 1230에서, 전자 장치(예: 프로세서 213)는 적어도 하나의 분산 키 중 적어도 일부에 기초하여 키 값(예를 들어, 종자 값 또는 연상기호 정보)을 복구할 수 있다. 예를 들어, 전자 장치는 분산 저장 알고리즘(예: Shamir's Sharing Secret Scheme(SSSS) 알고리즘)을 이용하여 적어도 하나의 분산 키로부터 키 값을 복구할 수 있다.
도 13은 일 실시 예에 따른, 전자 장치(예: 도 1의 전자 장치(101), 도 2의 전자 장치(210))가 분산 키를 획득하기 위해 분산 저장 장치를 선택하는 프로세스를 도시한 순서도(1300)이다.
일 실시 예에 따른 전자 장치(예: 프로세서 213)는 적어도 하나의 분산 저장 장치에 분산 키 전송 요청을 전송하기 위하여(예: 도 12의 동작 1210), 동작 1310에서 적어도 하나의 분산 저장 장치에 대한 디바이스 정보를 획득할 수 있다. 일 실시 예에 따르면, 디바이스 정보는 적어도 하나의 분산 저장 장치에 대한 디바이스 사양 정보, 디바이스 유형 정보 또는 디바이스 위치 정보를 포함할 수 있다. 일 실시예에 따르면 디바이스 정보는, 블록체인 네트워크를 통해 저장될 경우, 트랜잭션 id를 포함할 수 있다.
동작 1320에서, 전자 장치(예: 프로세서 213)는 디바이스 정보에 기초하여 적어도 하나의 분산 저장 장치 중에서 적어도 일부를 선택할 수 있다. 예를 들어, 전자 장치는 전자 장치의 위치로부터 가까운 곳에 위치한 분산 저장 장치를 우선적으로 선택할 수 있다. 다른 예를 들면, 디바이스 정보에 기반하여 전자 장치는 사용자를 인증할 수 있는 기능이 있다고 판단되는 분산 저장 장치를 우선적으로 선택할 수 있다. 또 다른 예를 들면, 전자 장치는 디바이스 정보에 기반하여 분산 저장 장치가 공용으로 사용되는 장치가 아닌 개인이 사용하는 장치로 판단될 경우, 해당 분산 저장 장치를 우선적으로 선택할 수 있다.
동작 1330에서, 전자 장치(예: 프로세서 213)는 선택된 적어도 하나의 분산 저장 장치 중 적어도 일부를 포함하는 추천 장치 목록을 출력할 수 있다. 추천 장치 목록은 선택된 적어도 하나의 분산 저장 장치 전부를 포함할 수도 있으나, 키 값 복구에 요구되는 분산 키의 최소 수량을 만족하도록 하는 선택된 적어도 하나의 분산 저장 장치 중 일부만을 포함할 수도 있다.
도 14는 일 실시 예에 따른, 서버(예: 도 1의 서버(108), 도 2의 서버(230))에 저장된 디바이스 식별 정보를 이용하여 키 값을 복구하는 프로세스를 나타낸 순서도(1400)이다. 전자 장치(1401)(예: 도 1의 전자 장치(101), 도 2의 전자 장치(210))에 키 값인 종자 값 또는 연상 기호 정보의 복구가 요구되는 이벤트가 발생하는 경우, 동작 1411에서 전자 장치(1401)는 서버(1403)에 분산 키의 복구를 요청할 수 있다. 종자 값 또는 연상 기호 정보의 복구가 요구되는 이벤트는, 예를 들면, 사용자가 자신의 장치를 전자 장치(1401)로 교체한 후, 이전에 사용하던 종자 값 또는 연상 기호 정보의 복구를 요구하는 명령에 상응하는 사용자 입력(예: "블록체인 키 값 복구" 메뉴 항목을 선택하는 터치 입력)을 전자 장치(1401)에 입력하는 것을 의미할 수 있다.
분산 키가 저장된 외부 전자 장치(1402)가 전자 장치(1401)와 직접 연결 가능한 장치인 경우, 동작 1413에서 전자 장치는 서버(1403)로부터 디바이스 식별 정보를 수신할 수 있다. 동작 1415에서, 전자 장치는 디바이스 식별 정보를 이용하여 식별된 적어도 하나의 외부 전자 장치(1402) (예: 도 2의 외부 전자 장치(240))에 분산 키를 요청할 수 있다. 일 실시 예에 따르면, 전자 장치(1401)는 디바이스 식별 정보를 이용하여 식별되는 적어도 하나의 외부 전자 장치 중에서 적어도 일부를 선택하고, 선택된 외부 전자 장치(1402)에 분산 키를 요청할 수도 있다. 일 실시 예에 따른 전자 장치는 외부 전자 장치(1502)를 선택하기 위해 디바이스 식별 정보를 이용하여 식별되는 장치의 목록을 나타내는 화면을 디스플레이할 수 있다.
일 실시 예에 따르면, 동작 1415 이전에, 전자 장치(1501)는 외부 전자 장치(1401)와 통신을 연결할 수 있다. 통신 연결을 위하여, 서버(1403)는 외부 전자 장치(1502)에 근거리 무선 통신(예: Bluetooth™ Low Energy)을 이용하여 연결 정보를 포함하는 광고 패킷을 브로드캐스트(broadcast)하도록 하는 명령을 전송할 수 있다. 외부 전자 장치(1402)는 광고 패킷을 송출하고, 접속 지점(Access Point)와 같이 동작할 수 있다. 광고 패킷을 수신한 전자 장치(1401)는 광고 패킷에 포함된 연결 정보(예: Wi-Fi SSID, IP, TCP/UDP, 소켓 정보, 맥 주소(MAC Address))를 이용하여 외부 전자 장치(1402)에 대한 통신 연결(예: Wi-Fi 커넥션)을 수립할 수 있다. 일 실시 예에 따르면, 전자 장치(1402)는 디바이스 식별 정보에 포함된 정보와 일치되는 광고 패킷을 송출한 장치와 통신을 연결할 수 있다. 다른 실시 예에 따르면, 전자 장치(1402)는 서버(1403)의 제어에 따라서 복수의 외부 전자 장치(1402)에 순차적으로 연결할 수도 있다.
일 실시 예에 따르면, 동작 1411에서 전자 장치(1401)는 분산 키를 분산 저장할 때 사용된 사용자 계정으로 서버(1403)에 로그인 된 상태일 수 있다. 서버(1403)는 전자 장치(1401)가 로그인한 사용자 계정에 상응하는 디바이스 식별 정보를 전자 장치(1401)로 제공할 수 있다.
일 실시 예에 따르면, 외부 전자 장치(1402)에 저장된 분산 키에 대해서 추가적인 사용자 인증이 필요한 경우 동작 1417에서 외부 전자 장치(1402)는 사용자를 인증하는 동작을 수행할 수 있다. 예를 들어, 외부 전자 장치(1402)는 사용자 인증 정보를 입력 받기 위한 화면을 외부 전자 장치(1402)의 디스플레이에 표시하고, 표시된 화면을 이용하여 사용자 인증 정보를 입력 받을 수 있다. 다른 예를 들면, 외부 전자 장치(1402)는 전자 장치(1401)에 사용자를 인증하기 위한 정보를 요청하거나, 사용자를 인증한 결과를 요청할 수도 있다. 일 실시 예에 따른 외부 전자 장치(1402)는 동작 1417에서 사용자가 정당한 사용자인 것으로 인증된 경우(예: 입력된 사용자 인증 정보와 등록된 사용자 인증 정보가 매칭되는 경우)에 한해서 동작 1419를 수행할 수 있다. 다만, 경우에 따라서(예: 외부 전자 장치(1402)의 사양이 사용자 인증을 수행할 수 없는 경우), 동작 1417은 생략될 수 있다.
동작 1419에서, 적어도 하나의 외부 전자 장치(1402)는 적어도 하나의 분산 키를 전자 장치(1401)로 전송할 수 있다. 동작 1421에서, 전자 장치(1401)는 수신된 적어도 하나의 분산 키를 복호화할 수 있다. 일 실시 예에 따르면, 적어도 하나의 분산 키가 사용자 인증 정보에 기초하여 암호화되어 있는 경우, 전자 장치(1401)는 동작 1421에서 사용자 인증 정보를 입력 받을 수 있다. 일 예를 들면, 적어도 하나의 분산 키를 암호화한 사용자 인증 정보가 지문 정보인 경우, 전자 장치(1401)는 지문 입력을 위한 화면을 출력하고, 지문 센서(예: 도 1의 센서 모듈(167))를 활성화할 수 있다. 지문 센서를 통해서 지문 정보가 획득되면, 전자 장치(1401)는 지문 정보로부터 핵심 정보에 해당하는 부분을 추출할 수 있다. 전자 장치(1401)는 추출된 정보에 기초하여 수신된 적어도 하나의 분산 키를 복호화할 수 있다. 지문 정보는 홍채 정보, 정맥 정보, DNA 정보, 패스워드와 같은 다른 정보로 대체될 수 있다. 다른 예를 들면, 적어도 하나의 분산 키를 암호화한 사용자 인증 정보가 개인 식별 번호인 경우, 전자 장치(1401)는 개인 식별 번호를 입력 받고, 입력된 개인 식별 번호에 기초하여 분산 키를 복호화할 수 있다.
다른 실시 예에 따르면, 동작 1421에서, 전자 장치(1401)는 서버(1403)에 암호화 코드를 요청할 수 있다. 전자 장치(1401)는 암호화 코드 요청에 대한 응답으로 서버(1403)로부터 암호화 코드를 수신하고, 암호화 코드에 기초하여 수신한 적어도 하나의 분산 키를 복호화할 수 있다.
수신한 분산 키가 암호화되어 있지 않은 경우, 동작 1421은 생략될 수도 있다.
동작 1423에서, 전자 장치(1401)는 적어도 하나의 분산 키에 기초하여 분산 저장되었던 키 값인 종자 값 또는 연상 기호 정보를 복구할 수 있다. 적어도 하나의 분산 키에 기초하여 분산 저장되어 있던 키 값을 복구 하는 과정은 아래와 같은 과정으로 수행 될 수 있다. 일 실시예에 따르면 전자 장치(1401)는 분산 키를 복호화 할 때 Shamir's Sharing Secret Scheme(SSSS) 알고리즘을 사용할 수 있다. 일 실시예에 따르면 SSSS 알고리즘을 통해 데이터를 여러 조각으로 분산하고, 일정 개수 이상으로 분산된 데이터가 모였을 때 원래 데이터를 복원 할 수 있다. 복호화를 수행할 때 필요한 분산키의 개수(예: k)를 설정할 수 있으며, 특정 개수 이상의 분산키들을 획득하게 될 경우 원본 데이터를 복원할 수 있다.
종자 값 또는 연상 기호 정보(니모닉 정보)가 복구되면, 동작 1425에서 전자 장치(1401)는 종자 값 또는 연상 기호 정보를 이용하여 키 쌍을 생성할 수 있다. 키 쌍을 생성하는 과정은 아래와 같은 과정으로 진행 될 수 있다. 예컨대 전자 장치는 니모닉에 포함된 단어들과 솔트값(예: 사용자로부터 입력 받은 암호)를 인자로 하여 키 스트레칭 함수를 사용하여 512비트의 시드를 생성할 수 있다. 일 실시예에 따르면 키 스트레칭 함수(예컨대, PBKDF2)를 이용하여 두 인자 값들을 이용하여 일정한(512비트) 값을 출력할 수 있다. 예컨대, 키 스트레칭 함수는 두 인자 값들을 해시 알고리즘(예컨대, HMAC-SHA512)을 이용하여 반복해서 해싱을 수행하고, 최종 출력 값을 루트 시드(종자 값)로 생성할 수 있다. 생성된 루트 시드에 기반해서 전자 장치는 개인키를 획득 할 수 있다. 예를 들어 루트 시드는 HMAC-SHAR 512 알고리즘 함수를 통해 생성한 해시값에서 개인키(Private Key)와 마스터 체인코드(Master Chain Code)를 생성할 수 있다. 512비트의 해시된 값에서 왼쪽 256비트를 개인키로 사용하고, 오른쪽 256비트를 체인코드로 사용할 수 있다. 공개키는 타원곡선 함수를 이용하여 개인키로부터 획득할 수 있다. 이와 같이 루트 시드를 통해서, 개인키와 공개키, 그리고 블록체인 주소까지 유도할 수 있다.
일 실시예에 따르면, 전자 장치는 월렛(예: 결정적 계층 구조 기반의 전자 지갑)의 경우, 복수의 HD 경로들을 이용하여 루트 시드로부터 블록체인 계좌에 대한 복수의 어드레스에 대응하는 복수의 공개키들을 획득할 수 있다. 예컨대, 전자 장치는, 복수의 HD 경로들을 이용하여 루트 시드로부터 복수의 공개키들을 획득할 수 있다. 또한, 전자 장치(201)는 복수의 공개키들에 기초하여, 블록체인 계좌에 대한 복수의 블록체인 주소를 획득할 수 있다.
다양한 실시 예에 따라, 표준 BIP-39에 기반하여 생성된 루트 시드 키와 표준 BIP-44에 정의된 HD 경로(HD path)의 인자값들을 이용하여 가상화폐에 대한 주소를 생성(또는 획득)하는 방법(예컨대, 3 뎁스(depth) 기준)은, 표준 BIP-32에 기반하여 수행될 수 있다.
가상화폐에 대한 주소를 생성하는 방법은, 뎁스(Depth)들이 깊어질수록 다음 값에 해당하는 CKD(Child Key Derivation Function)의 인자 값이 계속 추가될 수 있다. 예컨대, 0 뎁스(depth)에서 1 뎁스(depth)로 넘어갈 때, CKD(m,0)이 사용되고, 한 depth 더 깊어질 때(예컨대, 1 뎁스에서 2뎁스로 넘어갈 때)는 CKD(m.0,0)이 사용될 수 있다. 예컨대, CKD 함수(Child Key Derivation function)는, HMAC-SHA512 해쉬 함수가 이용될 수 있다. 이와 같이, 분산된 키들을 복구할 경우, 개인키, 공개키 또는 계좌의 주소까지 모두 복구하여 월렛에서 사용할 수 있다.
동작 1427에서, 전자 장치(1401)는 생성된 키 쌍을 이용하여 블록체인 네트워크(예: 도 2의 블록체인 네트워크(220))를 조회할 수 있다. 종자 값 또는 연상 기호 정보가 정상적으로 복구된 경우, 전자 장치(1401)는 블록체인 네트워크에 저장된 트랜잭션 데이터를 정상적으로 획득할 수 있다. 예를 들어, 전자 장치(1401)는 블록체인 네트워크에 저장된 트랜잭션 데이터를 수신하고, 키 쌍에 포함된 공개 키를 이용하여 트랜잭션 데이터에 포함된 계좌 정보를 획득할 수 있다.
도 15는 일 실시 예에 따른, 전자 장치(1500)(예: 도 1의 전자 장치(101), 도 2의 전자 장치(210)) 또는 외부 전자 장치(1510)(예: 도 2의 외부 전자 장치(240))가 키 값을 복구하기 위한 사용자 인증 정보를 입력 받기 위해 디스플레이하는 화면의 예시를 나타낸다.
예를 들어, 전자 장치(1500)가 사용자 인증 정보로서 개인 식별 번호를 입력 받는 경우(예: 도 14의 동작 1417에서 외부 전자 장치(1402)가 전자 장치(1401)에 사용자 인증을 요청한 경우), 전자 장치(1500)는 번호 입력을 위한 키패드(1501)를 포함하는 화면을 출력할 수 있다. 다른 예를 들어, 전자 장치(1500)가 사용자 인증 정보로서 지문 정보를 입력 받는 경우(예: 도 14의 동작 1417에서 외부 전자 장치(1402)가 전자 장치(1401)에 사용자 인증을 요청한 경우), 전자 장치(1500)는 지문 정보에 관련된 알림 메시지를 포함하는 화면(1502)을 출력할 수 있다.
또 다른 예로, 스마트 워치 형태의 외부 전자 장치(1510)가 사용자 인증 정보로서 개인 식별 번호를 입력 받는 경우(예: 도 14의 동작 1417에서 외부 전자 장치(1502)가 사용자 인증 정보를 입력 받는 경우), 외부 전자 장치(1510)는 외부 전자 장치(1510)의 디스플레이에 번호 입력을 위한 키패드(1511)를 포함하는 화면을 출력할 수 있다.
도 16은 일 실시 예에 따른, 서버(1603)(예: 도 1의 서버(108), 도 2의 서버(230))를 통해서 분산 키를 획득하고 키 값을 복구하는 프로세스를 나타낸 순서도(1600)이다.
동작 1611에서, 전자 장치(1601) (예: 도 1의 전자 장치(101), 도 2의 전자 장치(210))는 서버(1603)에 분산 키를 요청할 수 있다. 일 실시 예에 따르면, 동작 1611은 키 값인 종자 값 또는 연상 기호 정보의 복구가 요구되는 이벤트가 발생하는 경우에 수행될 수 있다.
분산 키 요청에 대한 응답으로, 동작 1613에서 서버(1603)는 서버(1603) 또는 서버(1603)에 연결된 데이터베이스에 저장된 디바이스 식별 정보를 조회할 수 있다. 일 실시 예에 따르면, 서버(1603)는 전자 장치(1601)를 통해서 서버(1603)에 로그인된 사용자 계정에 기반하여 디바이스 식별 정보를 조회할 수 있다. 즉, 서버(1603)는 사용자 계정에 연관하여 저장된 디바이스 식별 정보를 조회할 수 있다.
동작 1615에서, 서버(1603)는 조회된 디바이스 식별 정보에 기초하여 적어도 하나의 분산 저장 장치를 선택하고, 선택된 적어도 하나의 분산 저장 장치에 상응하는 적어도 하나의 외부 전자 장치(1602)(예: 도 2의 외부 전자 장치(240))에 분산 키를 요청할 수 있다.
일 실시 예에 따르면, 외부 전자 장치(1602)에 저장된 분산 키에 대해서 사용자 인증이 요구되는 경우, 동작 1617에서 외부 전자 장치(1602)는 사용자를 인증하는 동작을 수행할 수 있다. 예를 들어, 외부 전자 장치(1602)는 사용자 인증 정보를 입력 받기 위한 화면을 외부 전자 장치(1602)의 디스플레이에 표시하고, 표시된 화면을 이용하여 사용자 인증 정보를 입력 받을 수 있다. 다른 예를 들면, 외부 전자 장치(1602)는 전자 장치(1601)에 사용자를 인증하기 위한 정보를 요청하거나, 사용자를 인증한 결과를 요청할 수도 있다. 일 실시 예에 따른 외부 전자 장치(1602)는 동작 1617에서 사용자가 정당한 사용자인 것으로 인증된 경우(예: 입력된 사용자 인증 정보와 설정된 사용자 인증 정보가 매칭되는 경우)에 한해서 동작 1619를 수행할 수 있다. 다만, 경우에 따라서(예: 외부 전자 장치(1602)의 사양이 사용자 인증을 수행할 수 없는 경우), 동작 1617은 생략될 수도 있다.
동작 1619에서, 적어도 하나의 외부 전자 장치(1602)는 적어도 하나의 분산 키를 서버(1603)로 전송할 수 있다. 또는, 적어도 하나의 외부 전자 장치(1602)는 적어도 하나의 분산 키를 전자 장치(1601)로 전송할 수도 있다. 일 실시예에 따르면, 보안 강화를 위하여 분산 키는 암호화되어 전송될 수 도 있다. 이때 외부 전자 장치, 서버, 전자 장치는 사전 공유된 암호화 알고리즘에 따라, 암호/복호화를 위한 키를 공유할 수 있다. 일 실시예에 따르면 암호/복호화는 별도로 수행되지 않고, 통신 프로토콜상에서 데이터 보안을 위해 패킷 암호화에 기반한 암호화를 통해 보호되어 전달 될 수 있다.
동작 1621에서, 서버(1603)는 수신된 적어도 하나의 분산 키를 전자 장치(1601)로 전송할 수 있다. 동작 1621에서, 서버(1603)는 적어도 하나의 분산 키를 복호화하기 위한 정보(예: 암호화 코드)가 서버(1603) 또는 서버(1603)에 연결된 데이터베이스에 저장되어 있는 경우, 분산 키를 복호화하기 위한 정보를 전자 장치(1601)에 더 전송할 수 있다.
동작 1623에서, 전자 장치(1601)는 적어도 하나의 분산 키에 기초하여 분산 저장되었던 키 값인 종자 값 또는 연상 기호 정보를 복구할 수 있다. 종자 값 또는 연상 기호 정보가 복구되면, 동작 1625에서 전자 장치(1601)는 종자 값 또는 연상 기호 정보를 이용하여 키 쌍을 생성할 수 있다. 동작 1627에서, 전자 장치(1601)는 생성된 키 쌍을 이용하여 블록체인 네트워크(예: 도 2의 블록체인 네트워크(220))를 조회할 수 있다. 종자 값 또는 연상 기호 정보가 정상적으로 복구된 경우, 전자 장치(1601)는 블록체인 네트워크에 저장된 트랜잭션 데이터를 정상적으로 획득할 수 있다.
일 실시 예에 따르면, 전자 장치는 도 14에 도시된 프로세스(1400)와 도 16에 도시된 프로세스(1600)를 조합하여 이용할 수 있다. 예를 들어, 전자 장치는 전자 장치에 직접 연결된 외부 전자 장치(예: 근거리 무선 통신을 통해 연결된 웨어러블 디바이스)에 도 14에 도시된 프로세스(1400)를 통해서 일부의 분산 키를 획득하고, 서버를 통해서 연결된 외부 전자 장치(예: 사물인터넷 디바이스)에 도 16에 도시된 프로세스(1600)를 통해서 나머지 분산 키를 획득할 수 있다.
도 17은 일 실시 예에 따른, 블록체인 네트워크에 저장된 분산 키를 이용하여 키 값을 복구하는 프로세스를 나타낸 순서도(1700)이다.
일 실시 예에 따른 전자 장치 (예: 도 1의 전자 장치(101), 도 2의 전자 장치(210)) (예: 프로세서 213)는 키 값인 종자 값 또는 연상 기호 정보의 복구가 요구되는 이벤트가 발생하는 경우, 동작 1710에서 적어도 하나의 트랜잭션 ID를 획득할 수 있다. 예를 들어, 도 14의 동작 1411과 유사하게 전자 장치가 서버 (예: 도 1의 서버(108), 도 2의 서버(230))에 전송한 디바이스 식별 정보 요청에 대한 응답으로, 전자 장치는 서버로부터 적어도 하나의 트랜잭션 ID를 수신할 수 있다. 또는 트랜잭션 ID는 전자 장치에 저장된 것일 수도 있다.
트랜잭션 ID는 분산 키를 포함하여 블록체인 네트워크(예: 도 10의 블록체인 네트워크(1102))에 저장된 트랜잭션 데이터를 식별하기 위한 정보일 수 있다. 블록체인 네트워크에 접근하는 장치는 트랜잭션 ID에 기반하여 블록체인 네트워크에 포함된 노드에 기록된 트랜잭션 데이터를 확인할 수 있다. 따라서, 동작 1720에서, 전자 장치(예: 프로세서 213)는 트랜잭션 ID를 이용하여 블록체인 네트워크로부터 트랜잭션 데이터를 획득할 수 있다. 동작 1730에서, 전자 장치(예: 프로세서 213)는 트랜잭션 데이터에 포함된 분산 키를 획득할 수 있다. 분산 키를 획득한 전자 장치(예: 프로세서 213)는 동작 1740에서 키 값인 종자 값 또는 연상 기호 정보를 복구할 수 있다.
도 18은 일 실시 예에 따른, 전자 장치 (예: 도 1의 전자 장치(101), 도 2의 전자 장치(210)) 또는 서버 (예: 도 1의 서버(108), 도 2의 서버(230))가 저장된 분산 키의 저장 상태를 감시하는 프로세스를 나타낸 순서도(1800)이다.
동작 1810에서, 전자 장치 또는 서버는 디바이스 식별 정보에 기초하여 적어도 하나의 분산 저장 장치(예: 도 2의 외부 전자 장치(240)) 의 저장 상태를 판단할 수 있다. 저장 상태는 각 분산 저장 장치로부터 그 분산 저장 장치에 저장된 분산 키를 획득할 수 있는지 여부에 대한 상태를 의미할 수 있다. 예를 들어, 전자 장치 또는 서버는 디바이스 식별 정보에 상응하는 적어도 분산 저장 장치에 회신을 요청하는 메시지를 전송할 수 있다. 전자 장치 또는 서버는 적어도 하나의 분산 저장 장치로부터 응답 메시지가 수신되는지 여부에 기초하여 저장 상태를 판단할 수 있다.
일 실시 예에 따르면, 전자 장치는 판단된 저장 상태에 대한 정보를 출력할 수 있다. 다른 실시 예에 따르면, 서버는 저장 상태에 대한 정보를 전자 장치에 전송하고, 전자 장치는 저장 상태에 대한 정보를 출력할 수 있다. 예를 들어, 전자 장치는 적어도 하나의 분산 저장 장치에 대한 디바이스 식별 정보에 기초하여, 적어도 하나의 분산 저장 장치에 대한 목록을 표시할 수 있다. 전자 장치는 목록에 포함된 분산 저장 장치에 상응하는 항목에 저장 상태를 표시할 수 있다.
동작 1820에서, 적어도 하나의 분산 저장 장치의 저장 상태에 기초하여 복구 가능한 분산 키의 수량을 확인할 수 있다. 예를 들어, 3개의 분산 키를 저장하고 있는 제1 분산 저장 장치와 1개의 분산 키를 저장하고 있는 제2 분산 저장 장치의 저장 상태가 정상인 경우, 서버 또는 전자 장치는 복구 가능한 분산 키의 수량이 4인 것으로 판단할 수 있다. 다를 예를 들어, 키 값이 분산 키 A, 분산 키 B, 분산 키 C 및 분산 키 D로 분할되어 저장한 경우를 가정한다. 분산 키 A 및 분산 키 B를 저장한 제1 분산 저장 장치와 분산 키 B 및 분산 키 C를 저장한 제2 분산 저장 장치의 저장 상태가 정상인 경우, 서버 또는 전자 장치는 중복된 분산 키의 수량을 제외하고 복구 가능한 분산 키의 수량이 3인 것으로 판단할 수 있다.
동작 1830에서, 서버 또는 전자 장치는 복구 가능한 분산 키의 수량이 키 값의 복구에 요구되는 최소 요구 값보다 작은지 판단할 수 있다. 예를 들어, 동작 1820에서 결정된 값(복구 가능한 분산 키의 수량)이 3이고, 최소 요구 값이 4인 경우 서버 또는 전자 장치는 결정된 복구 가능 분산 키의 수량이 최소 요구 값보다 작은 것으로 판단할 수 있다. 최소 요구 값은 적어도 하나의 분산 키가 생성될 때 정해진 값일 수 있다. 예를 들어, 최소 요구 값은 키 값으로부터 분할된 적어도 하나의 분산 키의 총 수량에 기초하여 결정될 수 있다.
일 실시 예에 따르면, 동작 1830에서 서버가 복구 가능한 분산 키의 수량이 키 값의 복구에 요구되는 최소 요구 값보다 작은 것으로 판단한 경우, 동작 1840에서 서버는 전자 장치로 알림 메시지를 전송할 수 있다. 전자 장치는 수신한 알림 메시지를 출력할 수 있다. 알림 메시지는 키 값을 다시 분산 저장하도록 유도하는 메시지를 포함할 수 있다. 다른 실시 예에 따르면, 동작 1830에서 전자 장치가 복구 가능한 분산 키의 수량이 키 값의 복구에 요구되는 최소 요구 값보다 작은 것으로 판단한 경우, 전자 장치는 상기 알림 메시지를 전자 장치의 디스플레이(예: 도 1의 표시 장치(160), 도 2의 디스플레이(211)) 상에 표시할 수 있다.
다른 실시 예에 따르면, 서버 또는 전자 장치는 동작 1830에서 결정된 수량이 최소 요구 값보다 작거나 같은 경우에 동작 1840을 수행할 수도 있다.
도 19는 일 실시 예에 따른, 전자 장치(1900) (예: 도 1의 전자 장치(101), 도 2의 전자 장치(210))가 분산 키의 저장 상태에 따라서 디스플레이하는 화면의 예시를 나타낸다.
일 실시 예에 따르면, 전자 장치(1900)는 적어도 하나의 분산 키가 저장된 적어도 하나의 분산 저장 장치에 대한 디바이스 식별 정보에 기초하여, 적어도 하나의 분산 저장 장치에 대한 목록(1910)을 표시할 수 있다. 디바이스 식별 정보는 전자 장치(2000)에 저장되어 있거나, 서버 (예: 도 1의 서버(108), 도 2의 서버(230))로부터 수신될 수 있다.
전자 장치(1900)는 목록(1910)에 포함된 분산 저장 장치 중에서 저장 상태가 정상이 아닌 것으로 판단되는 분산 저장 장치에 상응하는 항목에 인디케이터(1911)를 표시할 수 있다. 인디케이터(1911)는 문자나 이미지일 수 있다.
복구 가능한 분산 키의 수량이 키 값의 복구에 요구되는 최소 요구 값보다 작은 경우, 전자 장치는 알림 메시지(1920)를 출력할 수 있다. 알림 메시지에 포함된 확인 버튼(2021)을 선택하는 사용자 입력이 수신된 경우, 전자 장치(1900)는 키 값을 분산 저장하는 프로세스(예: 도 3에 도시된 프로세스(300), 도 5에 도시된 프로세스(500), 도 6에 도시된 프로세스(600), 도 7에 도시된 프로세스(700), 도 8에 도시된 프로세스(800), 도 9에 도시된 프로세스(900), 도 10에 도시된 프로세스(1000))를 실행할 수 있다.
다만, 도 19는 일 예일 뿐이며, 분산 저장 장치의 저장 상태를 표시하는 방법은 다양하게 변형될 수 있다.
도 20은 일 실시 예에 따라 분산 저장 서비스에 등록된 외부 전자 장치(예: 도 2의 외부 전자 장치(240))를 이용하여 분산 키를 저장하는 프로세스를 나타낸 순서도(2000)이다.
동작 2011에서, 전자 장치(2001)(예: 도 1의 전자 장치(101), 도 2의 전자 장치(210))는 서버(2102)(예: 도 1의 서버(108), 도 2의 서버(230))에 키 값의 분산 저장을 요청할 수 있다. 분산 저장 요청을 수신한 서버(2002)는 서버(2002) 또는 서버(2002)에 연결된 데이터베이스에 저장된 분산 저장 서비스에 가입한 사용자 및/또는 장치에 대한 정보인 분산 저장 서비스 가입자 정보를 조회할 수 있다. 예를 들어, 분산 저장 서비스 가입자 정보는 모바일 전화 번호를 포함할 수 있다.
서버(2002)는 조회된 분산 저장 서비스 가입자 정보에 기초하여 적어도 하나의 외부 전자 장치(2003)를 선택할 수 있다. 일 실시 예에 따르면, 동작 2015에서 서버(210)는 선택된 적어도 하나의 외부 전자 장치(2003)에 전자 장치(2001)의 분산 키의 저장 여부를 질의할 수 있다. 질의를 수신한 적어도 하나의 외부 전자 장치(2003)는 분산 키의 저장을 승인할 것인지 여부를 선택하기 위한 사용자 인터페이스를 출력할 수 있다. 동작 2017에서 분산 키의 저장을 승인할 것인지 여부에 대한 사용자 입력이 수신된 경우, 동작 2019에서 외부 전자 장치(2003)는 분산 저장 여부에 대한 응답을 서버(2002)로 전송할 수 있다. 다른 실시 예에 따르면, 동작 2115, 2117 및 2119는 생략될 수도 있다.
서버(2002)는 동작 2021에서 분산 저장 장치의 수량을 결정할 수 있다. 일 실시 예에 따르면, 서버(2002)는 분산 키의 저장을 승인하는 응답을 전송한 적어도 하나의 외부 전자 장치(2003)의 수량에 기초하여 분산 저장 장치의 수량을 결정할 수 있다. 다른 실시 예에 따르면, 서버(2002)는 서버(2002)에 의해 선택된 적어도 하나의 외부 전자 장치(2003)의 수량을 분산 저장 장치의 수량으로 결정할 수 있다. 동작 2023에서, 서버(2002)는 결정된 분산 저장 장치의 수량을 전자 장치(2001)로 전송할 수 있다.
동작 2025에서, 전자 장치(2001)는 분산 저장 장치의 수량에 기초하여 분산 키를 생성할 수 있다. 예를 들어, 분산 저장 장치의 수량이 100인 경우, 전자 장치는 키 값을 100개로 분할하여 100개의 분산 키를 생성할 수 있다. 다른 예를 들면, 분산 저장 장치의 수량이 100인 경우, 전자 장치는 분산 키의 유실에 대비하여 50개의 분산 키를 저장하여 하나의 분산 키가 복수 개의 분산 저장 장치에 저장되도록 할 수도 있다.
동작 2027에서 전자 장치(2001)가 서버(2002)로 적어도 하나의 분산 키를 전송하면, 동작 2029에서 서버(2002)는 적어도 하나의 분산 키를 적어도 하나의 외부 전자 장치(2003)에 분산하여 전송할 수 있다. 동작 2031에서, 각 외부 전자 장치(2003)는 전송 받은 분산 키를 저장할 수 있다.
일 실시 예에 따르면, 동작 2027에서 전자 장치(2001)는 분산 키를 암호화하여 서버(2002)로 전송할 수 있다. 전자 장치(2001)는 분산 키를 암호화한 경우, 분산 키를 복호화하기 위한 정보를 서버(2002)로 전송할 수 있다. 분산 키를 복호화하기 위한 정보를 수신 서버(2002)는 분산 키를 복호화하기 위한 정보를 저장할 수 있다.
외부 전자 장치(2003)에 분산 키가 정상적으로 저장되었는지 검증되면, 동작 2033에서 서버(2102)는 외부 전자 장치(2003)에 대한 디바이스 식별 정보를 전자 장치(2001)의 서버(2002) 또는 서버(2002)에 연결된 데이터베이스에 사용자 계정에 연관하여 저장할 수 있다. 또한, 일 실시 예에 따르면, 외부 전자 장치(2003)에 분산 키가 정상적으로 저장되었음이 검증되면, 서버(2002)는 외부 전자 장치(2003)의 사용자에게 보상을 할당할 수 있다. 예를 들어, 서버(2002)는 블록체인 네트워크(예: 도 2의 블록체인 네트워크(220))에서 거래의 대상으로 사용되는 토큰을 외부 전자 장치(2003)의 사용자에게 제공할 수 있다.
도 21은 일 실시 예에 따라 서버에 분산 저장 서비스에 등록된 외부 전자 장치(예: 도 2의 외부 전자 장치(240))를 이용하여 분산 키를 복구하는 프로세스를 나타낸 순서도(2100)이다.
전자 장치(2101)(예: 도 1의 전자 장치(101), 도 2의 전자 장치(210))에 키 값인 종자 값 또는 연상 기호 정보의 복구가 요구되는 이벤트가 발생하는 경우, 전자 장치(2101)는 동작 2111에서 서버(2102)에 분산 키를 요청할 수 있다.
동작 2113에서, 분산 키 요청을 수신한 서버(2102)는 전자 장치(2101)의 사용자 계정에 기초하여 분산 키를 저장한 분산 저장 장치인 적어도 하나의 외부 전자 장치(2103)의 디바이스 식별 정보를 서버(2102) 또는 서버(2102)에 연결된 데이터베이스로부터 조회할 수 있다.
동작 2115에서, 서버(2102)는 조회된 디바이스 식별 정보에 기초하여 외부 전자 장치(2103)에 분산 키를 요청할 수 있다. 일 실시 예에 따르면, 외부 전자 장치(2103)는 동작 2117에서 분산 키를 제공할 것인지 여부를 확인 받기 위한 사용자 인터페이스를 출력할 수 있다. 사용자 인터페이스를 통해서 분산 키의 제공을 승인하는 사용자 입력이 수신된 경우, 동작 2119에서 외부 전자 장치(2103)는 외부 전자 장치(2103)에 저장된 분산 키를 서버(2102)로 전송할 수 있다. 다른 실시 예에 따르면, 동작 2117은 생략될 수도 있다.
동작 2121에서, 분산 키를 수신한 서버(2102)는 수신된 분산 키를 전자 장치(2101)에 전송할 수 있다. 동작 2121에서, 서버(2103)는 적어도 하나의 분산 키를 복호화하기 위한 정보(예: 암호화 코드)가 서버(2103) 또는 서버(2103)에 연결된 데이터베이스에 저장되어 있는 경우, 분산 키를 복호화하기 위한 정보를 전자 장치(2101)에 더 전송할 수 있다.
동작 2123에서, 전자 장치(2101)는 적어도 하나의 분산 키에 기초하여 분산 저장되었던 키 값인 종자 값 또는 연상 기호 정보를 복구할 수 있다. 종자 값 또는 연상 기호 정보가 복구되면, 동작 2125에서 전자 장치(2101)는 종자 값 또는 연상 기호 정보를 이용하여 키 쌍을 생성할 수 있다. 동작 2127에서, 전자 장치(2101)는 생성된 키 쌍을 이용하여 블록체인 네트워크(예: 도 2의 블록체인 네트워크(220))를 조회할 수 있다. 종자 값 또는 연상 기호 정보가 정상적으로 복구된 경우, 전자 장치(2101)는 블록체인 네트워크에 저장된 트랜잭션 데이터를 정상적으로 획득할 수 있다.
도 22는 일 실시 예에 따라 분산 저장 서비스에 등록된 외부 전자 장치(2200)(예: 도 2의 외부 전자 장치(240))가 디스플레이하는 화면의 예시를 나타낸다.
일 실시 예에 따르면, 분산 키의 저장 여부에 대한 질의를 수신한 경우(예: 도 20의 동작 2015), 외부 전자 장치(2200)는 분산 키의 저장을 승인할 것인지 여부에 관련된 메시지(2210)를 디스플레이할 수 있다. 외부 전자 장치(2200)는 메시지(2210)에 대한 입력에 기초하여 분산 키의 저장 여부를 결정할 수 있다. 일 실시 예에 따르면, 외부 전자 장치(2200)에 분산 키가 저장된 경우, 외부 전자 장치(2200)는 분산 키의 저장이 완료되었음을 나타내는 메시지(2220)를 출력할 수 있다.
일 실시 예에 따르면, 분산 키의 전송에 대한 요청(예: 도 12의 동작 1210, 도 14의 동작 1415, 도 16의 동작 1615, 또는 도 21의 동작 2115)을 수신한 경우, 외부 전자 장치(2200)는 분산 키의 전송을 허용할 것인지 여부에 관련된 메시지(2230)를 출력할 수 있다. 외부 전자 장치(2200)는 메시지(2230)에 대한 사용자 입력에 기초하여 외부 전자 장치(2200)에 저장된 분산 키를 전송할 수 있다.
도 23은 일 실시 예에 따른 전자 장치(2301) (예: 도 1의 전자 장치(101), 도 2의 전자 장치(210))가 블록체인 거래를 위해 수행하는 프로세스를 나타낸 순서도(2300)이다.
일 실시 예에 따르면, 동작 2311 및 동작 2313에서 전자 장치(2301)는 전자 장치(2301)의 사용자 계정에 연관된 제1 외부 전자 장치(2302) 및 제2 외부 전자 장치(2303)의 디바이스 정보를 획득할 수 있다. 여기서, 사용자 계정에 연관된 장치는 사용자 계정으로 로그인한 장치, 사용자 계정으로 로그인한 전자 장치(2301)에 연결된 장치, 또는 사용자 계정에 등록된 장치를 의미할 수 있다. 동작 2311 및 동작 2313에서 전자 장치(2301)는 제1 외부 전자 장치(2302) 및 제2 외부 전자 장치(2303)로부터 직접 디바이스 정보를 획득하거나, 또는 별도의 서버(도시되지 않음)(예: 도 1의 서버(108), 도 2의 서버(230))를 통해서 디바이스 정보를 획득할 수 있다.
전자 장치는 디바이스 정보에 기초하여 분산 키를 저장할 분산 저장 장치를 선택할 수 있다. 제1 외부 전자 장치(2302) 및 제2 외부 전자 장치(2303)를 분산 저장 장치로서 선택한 경우, 동작 2315에서 전자 장치(2301)는 키 값을 분할한 제1 분산 키 및 제2 분산 키를 생성할 수 있다. 동작 2317에서, 전자 장치(2301)는 제1 분산 키를 제1 외부 전자 장치(2432)로 전송할 수 있다. 동작 2319에서, 전자 장치(2401)는 제2 분산 키를 제2 외부 전자 장치(2303)로 전송할 수 있다. 일 실시 예에 따르면, 제1 분산 키 및 제2 분산 키가 정상적으로 저장되었음이 검증된 경우, 키 값은 전자 장치(2301)에서 삭제될 수도 있다.
동작 2321에서 블록체인 거래 이벤트가 발생한 경우, 전자 장치(2301)는 제1 외부 전자 장치(2302) 및 제2 외부 전자 장치(2303)에 분산 키를 요청할 수 있다. 동작 2323 및 동작 2325에서 전자 장치(2301)는 제1 외부 전자 장치(2302) 및 제2 외부 전자 장치(2303)로부터 제1 분산 키 및 제2 분산 키를 수신할 수 있다.
동작 2327에서, 전자 장치(2301)는 제2 분산 키 및 제2 분산 키를 이용하여 키 값을 복구할 수 있다. 전자 장치(2301)는 복구된 키 값을 이용하여 동작 2329에서 블록체인 거래 데이터에 대해 전자 서명을 수행할 수 있다.
다만, 도 23은 분산 저장 장치가 제1 외부 전자 장치(2302) 및 제2 외부 전자 장치(2303)이고, 키 값이 2개의 분산 키로 분할된 경우를 도시하였으나, 분산 저장 장치의 수량과 분산 키의 수량은 실시 예에 따라서 변경될 수 있다.
본 문서에서 개시된 실시예들은 서로 조합하여 구성될 수 있다. 예를 들어, 복수의 분산 키들은 적어도 하나의 블록체인 네트워크, 전자 장치에 직접 연결된 외부 전자 장치, 및 서버를 통해서 연결된 외부 전자 장치 중 둘 이상에 저장되고, 키 값의 복구에 이용될 수 있다.
도 24는 분산 키를 생성하고, 복원하는 알고리즘의 개념을 도시한다.
일 실시예에 따르면 전자 장치는 Shamir's Sharing Secret Scheme(SSSS) 알고리즘을 사용하여 비밀 키(키 값)(2410)를 분산 키로 분할할 수 있다. SSSS 알고리즘은 데이터를 여러 조각으로 분산하고, 일정 개수 이상의 분산된 데이터의 조각이 모였을 때 원래 데이터를 복원 할 수 있는 알고리즘이다.
전자 장치는 SSSS 알고리즘의 분할 함수(2420)에 비밀 키(2410)를 입력하여 비밀 키(2410)를 복수개 (예: n개)의 조각(2431, 2432, 2433, 2434)으로 나눌 수 있다. 복수 개(예: n개)의 조각들은 복수 개(예: n개)보다 작거나 같은 k개의 조각(2431, 2432, 2433)을 이용하여 원래의 비밀 정보로 복원 할 수 있도록 구성될 수 있다. 복원을 위한 k개의 개수는 선택적으로 결정될 수 있으며 n개와 같아질수록 보안성은 높아질 수 있다. 일 실시예에 따르면 전자 장치는 디바이스의 정보에 의해 선택된 분산 저장 장치에 따라 분산 되어야 하는 SSSS 알고리즘의 분산 개수의 입력 값 (예: n 값)을 결정 할 수 있다. 분산 함수(2420)의 파라미터는 SSSS 알고리즘을 통해서 분산된 정보의 조각의 수인 N 및 복원에 요구되는 조각의 수인 K를 포함할 수 있다. 일 실시예에 따르면 전자 장치는 정책에 따라 N 값과 K 값을 결정 할 수 있다. 예컨대, 보안이 중요할 경우, N 값을 더 높여서 많은 저장 장치에 비밀 키(2410)를 분산해서 저장할 수 있다. 일 실시예에 따르면 복원시 필요한 데이터의 수량 K값이 높으면 높을수록 더 많은 분산 저장 장치가 필요하다. 일 실시예에 따르면, 전자 장치는 복원에 따른 편리성에 기반하여 K 값을 설정할 수 있다. 예컨대 분산 저장 장치의 일부로부터 분산 저장 값을 획득하지 못하더라도, 복원이 되도록 하기 위해서 전자 장치는 K 값을 N 값 보다 적게 설정 할 수 있다. 일 실시예에 따르면, 전자 장치는 N 값과 K 값을 가변적으로 결정 할 수 있다. 예컨대, 블록체인 자산의 규모가 클 경우, 보안성을 높이기 위하여 N 값을 높게 설정하고 K 값을 높게 설정 할 수 있다. 이 경우, 비밀 키(2410)를 분산 저장하기 위한 더 많은 분산 저장 장치가 요구된다. 분산되어 있는 모든 키 값을 획득 해야 복원이 되도록 K 값을 결정할 수 있다. 예를 들어 블록체인 자산의 규모가 작을 경우, 또는 사용자의 선택에 따라, N 값과 K 값을 낮게 설정 할 수 있다. 이 경우, 분산 저장을 위해 요구되는 분산 저장 장치의 양이 감소되며, 전자 장치가 모든 분산 저장 장치로부터 분산되어 있는 데이터를 획득하지 못하더라도 사용자가 분산 저장된 데이터를 복원 할 수 있도록 지원 할 수 있다.
도 25는 일 실시 예에 따라, 결정된 조건(2510)에서 생성되는 분산 키의 예시를 나타낸다.
도 25는, 키 값이 " This is the Samsung SECRET that will be separated"이고, 분산 키의 총 수량이 6이며, 키 값의 복구에 필요한 분산 키의 최소 요구 값이 3인 조건(2510)을 나타낸다. 다만, "This is the Samsung SECRET that will be separated"는 설명의 편의를 위하여 사용한 예시에 불과하며, 실제 키 값은, 예를 들어 연상기호 단어(mnemonic word)(예: army van defense carry jealous true garbage claim echo media make crunch) 또는 루트 시드(rood seed)(예: 5b56c417303faa3fcba7e57400e120a0ca83ec5a4fc9ffba757fbe63fbd77a89a1a3be4c67196f57c39a88b76373733891bfaba16ed27a813ceed498804c0570)를 포함할 수 있다.
일 실시 예에 따른 전자 장치는 SSSS 알고리즘의 파라미터 N의 값을 6으로 설정하고, 파라미터 K의 값을 3으로 설정하여 6 개의 분산 키들(2520)을 생성할 수 있다.
도 26은 일 실시 예에 따라, 도 25에서 생성되고 분산 저장된 분산 키들(2520) 중 일부를 이용하여 키 값을 복구하는 예시를 나타낸다.
6 개의 분산 키들이 저장된 분산 저장 장치로부터 제1 분산 키, 제2 분산 키 및 제3 분산 키(2530)가 획득된 경우, 일 실시 예에 따른 전자 장치는 분산 키의 생성 시에 설정된 최소 요구 값이 3이므로, 본래의 키 값(2535)을 복구할 수 있다.
SSSS 알고리즘에 기초하여 분산 키를 생성하고 복구하는 경우, 획득되는 분산 키의 순서와 관계 없이 획득된 분산 키의 수량이 최소 요구 값을 만족하면 키 값을 복구할 수 있다. 도 26을 참조하면, 제1 분산 키, 제3 분산 키 및 제6 분산 키(2540)가 획득된 경우, 일 실시 예에 따른 전자 장치는 키 값(2545)을 복구할 수 있다.
도 27은 일 실시 예에 따라, 도 25에서 생성되고 분산 저장된 분산 키들(2520) 중 일부를 이용하여 키 값을 복구하는 예시를 나타낸다.
일 실시 예에 따르면, 전자 장치는 최소 요구 값을 초과하는 수량의 분산 키가 획득된 경우에도 키 값을 복구할 수 있다. 도 27을 참조하면, 제3 분산 키, 제4 분산 키, 제5 분산 키 및 제6 분산 키(2550)가 획득된 경우, 일 실시 예에 따른 전자 장치는 키 값(2555)을 복구할 수 있다.
획득된 분산 키의 수량이 최소 요구 값 미만인 경우 전자 장치는 키 값을 복구하지 못할 수 있다. 도 27을 참조하면, 제1 분산 키 및 제2 분산 키(2560)만이 획득 가능한 경우, 일 실시 예에 따른 전자 장치는 분산 키의 복구에 실패(2565)할 수 있다.
키 값의 복구에 요구되는 분산 키의 최소 요구 값이 높을수록 보안성은 향상될 수 있으나, 키 값을 복구하지 못하게 될 수 있으므로, 전자 장치는 키 값에 대해 요구되는 보안 수준에 따라서 최소 요구 값을 적절하게 조정할 수 있다.
상술한 바와 같이, 일 실시 예에 따른 전자 장치(예: 도 2의 210)는, 메모리(예: 도 2의 214), 통신 회로(예: 도 2의 212), 디스플레이(예: 도 2의 211), 및 상기 메모리, 상기 통신 회로 및 상기 디스플레이에 연결된 프로세서(예: 도 2의 213)를 포함하고, 상기 메모리는, 실행 시에, 상기 프로세서가, 적어도 하나의 외부 전자 장치(예: 도 2의 240)에 대한 디바이스 정보를 획득하며, 상기 디바이스 정보에 기반하여, 상기 적어도 하나의 외부 전자 장치로부터 분산 키를 저장하기 위한 적어도 하나의 분산 저장 장치를 선택하고, 블록체인 네트워크로 전송될 데이터에 전자 서명하기 위한 키를 생성하기 위한 종자 값 또는 연상 기호 정보를 분할한 적어도 하나의 분산 키를 생성하고, 상기 적어도 하나의 분산 키가 상기 적어도 하나의 분산 저장 장치에 분산하여 전송되도록 상기 통신 회로를 제어하도록 하는 인스트럭션들을 저장할 수 있다.
일 실시 예에 따르면, 상기 인스트럭션들은, 상기 프로세서가, 상기 적어도 하나의 분산 키 값을 암호화하고, 상기 암호화된 적어도 하나의 분산 키 값을 상기 적어도 하나의 분산 저장 장치에 전송하도록 상기 통신 회로를 제어하도록 하는 인스트럭션들을 포함할 수 있다.
일 실시 예에 따르면, 상기 인스트럭션들은, 상기 프로세서가, 사용자 인증 정보를 획득하고, 상기 사용자 인증 정보를 이용하여 상기 적어도 하나의 분산 키 값을 암호화하도록 하는 인스트럭션들을 포함할 수 있다.
일 실시 예에 따르면, 상기 사용자 인증 정보는 복수의 생체 정보 입력들에 의해 획득된 생체 정보를 포함하고, 상기 인스트럭션들은, 상기 프로세서가, 상기 생체 정보 내에서 상기 복수의 생체 정보 입력들 각각에 공통적으로 포함된 핵심 정보를 추출하고, 상기 핵심 정보를 이용하여 상기 적어도 하나의 분산 키 값을 암호화하도록 하는 인스트럭션들을 포함할 수 있다.
일 실시 예에 따르면, 상기 인스트럭션들은, 상기 프로세서가, 상기 디바이스 정보에 기반하여, 상기 적어도 하나의 분산 키의 총 수량을 결정하고, 상기 결정된 총 수량에 기초하여 상기 적어도 하나의 분산 키를 생성하도록 하는 인스트럭션들을 포함할 수 있다.
일 실시 예에 따르면, 상기 디바이스 정보는, 상기 적어도 하나의 외부 전자 장치 각각에 대한 디바이스 유형 정보, 디바이스 식별자, 사용자 계정, 디바이스 사양 정보, 디바이스 위치 정보 및 디바이스 명칭 중 적어도 하나를 포함할 수 있다.
일 실시 예에 따르면, 상기 인스트럭션들은, 상기 프로세서가, 상기 디바이스 정보에 기초하여 상기 적어도 하나의 외부 전자 장치에 대한 우선 순위를 결정하고, 상기 우선 순위에 기초하여, 상기 적어도 하나의 외부 전자 장치에 대한 장치 목록을 상기 디스플레이 상에 표시하도록 하는 인스트럭션들을 포함할 수 있다.
일 실시 예에 따르면, 상기 인스트럭션들은, 상기 프로세서가, 상기 디바이스 정보에 포함된 디바이스 유형 정보 및 디바이스 사양 정보 중 적어도 하나에 기초하여 상기 우선 순위를 결정하도록 하는 인스트럭션들을 포함할 수 있다.
일 실시 예에 따르면, 상기 인스트럭션들은, 상기 프로세서가, 상기 통신 회로를 이용하여, 상기 적어도 하나의 분산 저장 장치 중에서 적어도 일부에 분산 키 전송 요청을 전송하고, 상기 통신 회로를 통해서, 상기 적어도 하나의 분산 키 중 적어도 일부를 수신하며, 상기 적어도 하나의 분산 키 중 적어도 일부에 기초하여 상기 종자 값 또는 상기 연상 기호 정보를 복구하도록 하는 인스트럭션들을 포함할 수 있다.
일 실시 예에 따르면, 상기 인스트럭션들은, 상기 프로세서가, 상기 적어도 하나의 분산 저장 장치에 대한 디바이스 식별 정보를 외부 서버에 전송하고, 상기 종자 값 또는 상기 연상 기호 정보의 복구가 요구되는 이벤트가 발생한 경우, 상기 외부 서버에 상기 디바이스 식별 정보를 요청하며, 상기 외부 서버로부터 상기 디바이스 식별 정보를 수신하고, 상기 디바이스 식별 정보를 이용하여 상기 분산 키 전송 요청을 전송하도록 하는 인스트럭션들을 포함할 수 있다.
일 실시 예에 따르면, 상기 인스트럭션들은, 상기 프로세서가, 상기 디바이스 정보에 기초하여 상기 적어도 하나의 분산 저장 장치 각각에 저장될 분산 키의 저장 수량을 결정하고, 상기 저장 수량에 기초하여, 상기 적어도 하나의 분산 키 값을 상기 적어도 하나의 분산 저장 장치에 분산하여 저장하도록 하는 인스트럭션들을 포함할 수 있다.
일 실시 예에 따르면, 상기 인스트럭션들은, 상기 프로세서가, 상기 적어도 하나의 분산 저장 장치로부터 상기 적어도 하나의 분산 키 값을 획득할 수 있는지 여부를 나타내는 저장 상태 정보를 결정하고, 상기 저장 상태 정보에 기초하여 상기 종자 값 또는 상기 연상 기호 정보의 복구가 가능한지 여부를 결정하며, 상기 종자 값 또는 상기 연상 기호 정보의 복구가 불가능한 경우, 상기 종자 값 또는 상기 연상 기호 정보의 분산 저장에 관련된 메시지를 상기 디스플레이를 통해서 출력하도록 하는 인스트럭션들을 포함할 수 있다.
또한, 상술한 바와 같이, 실시 예에 따른 전자 장치(예: 도 2의 210)는, 메모리(예: 도 2의 214), 통신 회로(예: 도 2의 212), 및 상기 메모리, 및 상기 통신 회로에 연결된 프로세서(예: 도 2의 213)를 포함하고, 상기 메모리는, 실행 시에, 프로세서가, 제1 외부 전자 장치 또는 제2 외부 전자 장치에 대한 정보를 포함하는 디바이스 정보를 획득하고, 상기 디바이스 정보에 기반하여, 키 값을 복구하기 위한 제1 분산 키 및 제2 분산 키를 생성하며, 상기 통신 회로를 통해서 상기 제1 외부 장치에 상기 제1 분산 키를 전송하고, 상기 제2 외부 장치에 상기 제2 분산 키를 전송하며, 블록체인 네트워크로 전송될 블록체인 거래 데이터를 생성하도록 하는 이벤트가 발생하는 경우, 상기 제1 외부 전자 장치 및 상기 제2 외부 전자 장치로부터 상기 제1 분산 키 및 상기 제2 분산 키를 획득하고, 상기 제1 분산 키 및 상기 제2 분산 키를 이용하여 복구된 키 값에 기초하여, 상기 블록체인 거래 데이터에 대한 전자 서명을 수행하도록 하는 인스트럭션들을 저장할 수 있다.
일 실시 예에 따르면, 상기 키 값은 상기 전자 서명을 하기 위한 개인 키를 생성하기 위한 종자 값 또는 연상 기호 정보를 포함하고, 상기 인스트럭션들은, 상기 프로세서가, 상기 종자 값 또는 상기 연상 기호 정보를 분할하여 상기 제1 분산 키 및 상기 제2 분산 키를 생성하도록 하는 인스트럭션들을 포함할 수 있다.
일 실시 예에 따르면, 상기 인스트럭션들은, 상기 프로세서가, 상기 제1 분산 키 및 상기 제2 분산 키를 이용하여 상기 종자 값 또는 상기 연상 기호 정보를 생성하며, 상기 종자 값 또는 상기 연상 기호 정보를 이용하여 개인 키를 생성하고, 상기 개인 키를 이용하여 상기 전자 서명을 수행하도록 하는 인스트럭션들을 포함할 수 있다.
또한, 상술한 바와 같이, 일 실시 예에 따른 서버(예: 도 2의 230)는, 메모리(예: 도 1의 130), 통신 회로(예: 도 1의 190의 적어도 일부), 및 상기 메모리, 및 상기 통신 회로에 연결된 프로세서(예: 도 1의 120)를 포함하고, 상기 메모리는, 실행 시에, 상기 프로세서가, 사용자 계정에 연관된 적어도 하나의 외부 전자 장치에 대한 디바이스 정보를 획득하고, 상기 사용자 계정으로 상기 서버에 로그인 된 전자 장치로부터 상기 전자 장치가 블록체인 네트워크로 전송될 데이터에 전자 서명하기 위한 키를 생성하기 위한 종자 값 또는 연상 기호 정보를 분할한 적어도 하나의 분산 키의 저장을 요청하는 분산 키 저장 요청을 수신하며, 상기 분산 키 저장 요청에 대한 응답으로, 상기 디바이스 정보에 기초하여 적어도 하나의 분산 저장 장치를 선택하고, 상기 통신 회로를 통해서, 상기 적어도 하나의 분산 저장 장치에 상기 적어도 하나의 분산 키를 분산하여 전송하고, 상기 메모리에 상기 적어도 하나의 분산 저장 장치의 식별 정보를 상기 사용자 계정에 연관하여 저장하도록 하는 인스트럭션들을 저장할 수 있다.
일 실시 예에 따르면, 상기 인스트럭션들은, 상기 프로세서가, 상기 사용자 계정으로 상기 서버에 로그인된 전자 장치로부터 분산 키 복구 요청을 수신하며, 상기 분산 키 복구 요청에 대한 응답으로, 상기 사용자 계정에 기초하여 상기 식별 정보를 검색하고, 상기 식별 정보를 상기 전자 장치로 전송할 수 있다.
일 실시 예에 따르면, 상기 인스트럭션들은, 상기 프로세서가, 상기 사용자 계정으로 상기 서버에 로그인된 전자 장치로부터 분산 키 복구 요청을 수신하며, 상기 분산 키 복구 요청에 대한 응답으로, 상기 사용자 계정에 기초하여 상기 식별 정보를 검색하고, 상기 식별 정보에 기초하여 상기 적어도 하나의 분산 저장 장치로부터 상기 적어도 하나의 분산 키를 획득하며, 상기 전자 장치에 상기 적어도 하나의 분산 키를 전송할 수 있다.
또한, 상술한 바와 같이, 일 실시 예에 따른 전자 장치(예: 도 2의 210)는, 메모리(예: 도 2의 214), 통신 회로(예: 도 2의 212), 디스플레이(예: 도 2의 211), 및 상기 메모리, 상기 통신 회로 및 상기 디스플레이에 연결된 프로세서(예: 도 2의 213)를 포함하고, 상기 메모리는, 실행 시에, 상기 프로세서가, 블록체인 네트워크로 전송될 데이터에 전자 서명하기 위한 키를 생성하기 위한 종자 값 또는 연상 기호 정보를 분할한 적어도 하나의 분산 키의 저장 요청을 외부 서버로부터 수신하고, 상기 저장 요청에 대한 응답으로 상기 적어도 하나의 분산 키를 상기 메모리에 저장하고, 상기 통신 회로를 통해서 상기 외부 서버로부터 상기 적어도 하나의 분산 키에 대한 접근 요청을 수신하며, 상기 접근 요청에 대한 응답으로, 알림 메시지를 상기 디스플레이를 통해서 출력하도록 하는 인스트럭션들을 저장할 수 있다.
또한, 상술한 바와 같이, 일 실시 예에 따른 전자 장치(예: 도 2의 210)가 키 값을 복원하기 위한 방법은, 적어도 하나의 외부 전자 장치에 대한 디바이스 정보를 획득하는 동작, 상기 디바이스 정보에 기반하여, 상기 적어도 하나의 외부 전자 장치로부터 분산 키를 저장하기 위한 적어도 하나의 분산 저장 장치를 선택하는 동작, 블록체인 네트워크로 전송될 데이터에 전자 서명하기 위한 키를 생성하기 위한 종자 값 또는 연상 기호 정보를 분할한 적어도 하나의 분산 키를 생성하는 동작, 및 상기 적어도 하나의 분산 키가 상기 적어도 하나의 분산 저장 장치에 분산하여 전송하는 동작을 포함할 수 있다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치 (예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나",“A 또는 B 중 적어도 하나”, "A, B 또는 C", "A, B 및 C 중 적어도 하나” 및 “A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, “기능적으로” 또는 “통신적으로”라는 용어와 함께 또는 이런 용어 없이, “커플드” 또는 “커넥티드”라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 다양한 실시예들은 기기(machine)(예: 전자 장치(101)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
일실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory(CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어™)를 통해 또는 두 개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.

Claims (20)

  1. 전자 장치에 있어서,
    메모리;
    통신 회로;
    디스플레이; 및
    상기 메모리, 상기 통신 회로 및 상기 디스플레이에 연결된 프로세서를 포함하고,
    상기 메모리는, 실행 시에, 상기 프로세서가,
    적어도 하나의 외부 전자 장치에 대한 디바이스 정보를 획득하며,
    상기 디바이스 정보에 기반하여, 상기 적어도 하나의 외부 전자 장치로부터 분산 키를 저장하기 위한 적어도 하나의 분산 저장 장치를 선택하고,
    블록체인 네트워크로 전송될 데이터에 전자 서명하기 위한 키를 생성하기 위한 종자 값 또는 연상 기호 정보를 분할한 적어도 하나의 분산 키를 생성하고,
    상기 적어도 하나의 분산 키가 상기 적어도 하나의 분산 저장 장치에 분산하여 전송되도록 상기 통신 회로를 제어하도록 하는 인스트럭션들을 저장하는, 전자 장치.
  2. 청구항 1에 있어서,
    상기 인스트럭션들은, 상기 프로세서가,
    상기 적어도 하나의 분산 키 값을 암호화하고,
    상기 암호화된 적어도 하나의 분산 키 값을 상기 적어도 하나의 분산 저장 장치에 전송하도록 상기 통신 회로를 제어하도록 하는 인스트럭션들을 포함하는, 전자 장치.
  3. 청구항 2에 있어서,
    상기 인스트럭션들은, 상기 프로세서가,
    사용자 인증 정보를 획득하고,
    상기 사용자 인증 정보를 이용하여 상기 적어도 하나의 분산 키 값을 암호화하도록 하는 인스트럭션들을 포함하는, 전자 장치.
  4. 청구항 3에 있어서,
    상기 사용자 인증 정보는 복수의 생체 정보 입력들에 의해 획득된 생체 정보를 포함하고,
    상기 인스트럭션들은, 상기 프로세서가,
    상기 생체 정보 내에서 상기 복수의 생체 정보 입력들 각각에 공통적으로 포함된 핵심 정보를 추출하고,
    상기 핵심 정보를 이용하여 상기 적어도 하나의 분산 키 값을 암호화하도록 하는 인스트럭션들을 포함하는, 전자 장치.
  5. 청구항 1에 있어서,
    상기 인스트럭션들은, 상기 프로세서가,
    상기 디바이스 정보에 기반하여, 상기 적어도 하나의 분산 키의 총 수량을 결정하고,
    상기 결정된 총 수량에 기초하여 상기 적어도 하나의 분산 키를 생성하도록 하는 인스트럭션들을 포함하는, 전자 장치.
  6. 청구항 1에 있어서,
    상기 디바이스 정보는,
    상기 적어도 하나의 외부 전자 장치 각각에 대한 디바이스 유형 정보, 디바이스 식별자, 사용자 계정, 디바이스 사양 정보, 디바이스 위치 정보 및 디바이스 명칭 중 적어도 하나를 포함하는, 전자 장치.
  7. 청구항 1에 있어서,
    상기 인스트럭션들은, 상기 프로세서가,
    상기 디바이스 정보에 기초하여 상기 적어도 하나의 외부 전자 장치에 대한 우선 순위를 결정하고,
    상기 우선 순위에 기초하여, 상기 적어도 하나의 외부 전자 장치에 대한 장치 목록을 상기 디스플레이 상에 표시하도록 하는 인스트럭션들을 포함하는, 전자 장치.
  8. 청구항 7에 있어서,
    상기 인스트럭션들은, 상기 프로세서가,
    상기 디바이스 정보에 포함된 디바이스 유형 정보 및 디바이스 사양 정보 중 적어도 하나에 기초하여 상기 우선 순위를 결정하도록 하는 인스트럭션들을 포함하는, 전자 장치.
  9. 청구항 1에 있어서,
    상기 인스트럭션들은, 상기 프로세서가,
    상기 통신 회로를 이용하여, 상기 적어도 하나의 분산 저장 장치 중에서 적어도 일부에 분산 키 전송 요청을 전송하고,
    상기 통신 회로를 통해서, 상기 적어도 하나의 분산 키 중 적어도 일부를 수신하며,
    상기 적어도 하나의 분산 키 중 적어도 일부에 기초하여 상기 종자 값 또는 상기 연상 기호 정보를 복구하도록 하는 인스트럭션들을 포함하는, 전자 장치.
  10. 청구항 9에 있어서,
    상기 인스트럭션들은, 상기 프로세서가,
    상기 적어도 하나의 분산 저장 장치에 대한 디바이스 식별 정보를 외부 서버에 전송하고,
    상기 종자 값 또는 상기 연상 기호 정보의 복구가 요구되는 이벤트가 발생한 경우, 상기 외부 서버에 상기 디바이스 식별 정보를 요청하며,
    상기 외부 서버로부터 상기 디바이스 식별 정보를 수신하고,
    상기 디바이스 식별 정보를 이용하여 상기 분산 키 전송 요청을 전송하도록 하는 인스트럭션들을 포함하는, 전자 장치.
  11. 청구항 1에 있어서,
    상기 인스트럭션들은, 상기 프로세서가,
    상기 디바이스 정보에 기초하여 상기 적어도 하나의 분산 저장 장치 각각에 저장될 분산 키의 저장 수량을 결정하고,
    상기 저장 수량에 기초하여, 상기 적어도 하나의 분산 키 값을 상기 적어도 하나의 분산 저장 장치에 분산하여 저장하도록 하는 인스트럭션들을 포함하는, 전자 장치.
  12. 청구항 1에 있어서,
    상기 인스트럭션들은, 상기 프로세서가,
    상기 적어도 하나의 분산 저장 장치로부터 상기 적어도 하나의 분산 키 값을 획득할 수 있는지 여부를 나타내는 저장 상태 정보를 결정하고,
    상기 저장 상태 정보에 기초하여 상기 종자 값 또는 상기 연상 기호 정보의 복구가 가능한지 여부를 결정하며,
    상기 종자 값 또는 상기 연상 기호 정보의 복구가 불가능한 경우, 상기 종자 값 또는 상기 연상 기호 정보의 분산 저장에 관련된 메시지를 상기 디스플레이를 통해서 출력하도록 하는 인스트럭션들을 포함하는, 전자 장치.
  13. 전자 장치에 있어서,
    메모리;
    통신 회로; 및
    상기 메모리, 및 상기 통신 회로에 연결된 프로세서를 포함하고,
    상기 메모리는, 실행 시에, 프로세서가,
    제1 외부 전자 장치 또는 제2 외부 전자 장치에 대한 정보를 포함하는 디바이스 정보를 획득하고,
    상기 디바이스 정보에 기반하여, 키 값을 복구하기 위한 제1 분산 키 및 제2 분산 키를 생성하며,
    상기 통신 회로를 통해서 상기 제1 외부 장치에 상기 제1 분산 키를 전송하고, 상기 제2 외부 장치에 상기 제2 분산 키를 전송하며,
    블록체인 네트워크로 전송될 블록체인 거래 데이터를 생성하도록 하는 이벤트가 발생하는 경우, 상기 제1 외부 전자 장치 및 상기 제2 외부 전자 장치로부터 상기 제1 분산 키 및 상기 제2 분산 키를 획득하고,
    상기 제1 분산 키 및 상기 제2 분산 키를 이용하여 복구된 키 값에 기초하여, 상기 블록체인 거래 데이터에 대한 전자 서명을 수행하도록 하는 인스트럭션들을 저장하는, 전자 장치.
  14. 청구항 13에 있어서,
    상기 키 값은 상기 전자 서명을 하기 위한 개인 키를 생성하기 위한 종자 값 또는 연상 기호 정보를 포함하고,
    상기 인스트럭션들은, 상기 프로세서가,
    상기 종자 값 또는 상기 연상 기호 정보를 분할하여 상기 제1 분산 키 및 상기 제2 분산 키를 생성하도록 하는 인스트럭션들을 포함하는, 전자 장치.
  15. 청구항 14에 있어서,
    상기 인스트럭션들은, 상기 프로세서가,
    상기 제1 분산 키 및 상기 제2 분산 키를 이용하여 상기 종자 값 또는 상기 연상 기호 정보를 생성하며,
    상기 종자 값 또는 상기 연상 기호 정보를 이용하여 개인 키를 생성하고,
    상기 개인 키를 이용하여 상기 전자 서명을 수행하도록 하는 인스트럭션들을 포함하는, 전자 장치.
  16. 서버에 있어서,
    메모리;
    통신 회로; 및
    상기 메모리, 및 상기 통신 회로에 연결된 프로세서를 포함하고,
    상기 메모리는, 실행 시에, 상기 프로세서가,
    사용자 계정에 연관된 적어도 하나의 외부 전자 장치에 대한 디바이스 정보를 획득하고,
    상기 사용자 계정으로 상기 서버에 로그인된 전자 장치로부터 상기 전자 장치가 블록체인 네트워크로 전송될 데이터에 전자 서명하기 위한 키를 생성하기 위한 종자 값 또는 연상 기호 정보를 분할한 적어도 하나의 분산 키의 저장을 요청하는 분산 키 저장 요청을 수신하며,
    상기 분산 키 저장 요청에 대한 응답으로, 상기 디바이스 정보에 기초하여 적어도 하나의 분산 저장 장치를 선택하고,
    상기 통신 회로를 통해서, 상기 적어도 하나의 분산 저장 장치에 상기 적어도 하나의 분산 키를 분산하여 전송하고,
    상기 메모리에 상기 적어도 하나의 분산 저장 장치의 식별 정보를 상기 사용자 계정에 연관하여 저장하도록 하는 인스트럭션들을 저장하는, 서버.
  17. 청구항 16에 있어서,
    상기 인스트럭션들은, 상기 프로세서가,
    상기 사용자 계정으로 상기 서버에 로그인된 전자 장치로부터 분산 키 복구 요청을 수신하며,
    상기 분산 키 복구 요청에 대한 응답으로, 상기 사용자 계정에 기초하여 상기 식별 정보를 검색하고, 상기 식별 정보를 상기 전자 장치로 전송하는, 서버.
  18. 청구항 16에 있어서,
    상기 인스트럭션들은, 상기 프로세서가,
    상기 사용자 계정으로 상기 서버에 로그인된 전자 장치로부터 분산 키 복구 요청을 수신하며,
    상기 분산 키 복구 요청에 대한 응답으로, 상기 사용자 계정에 기초하여 상기 식별 정보를 검색하고,
    상기 식별 정보에 기초하여 상기 적어도 하나의 분산 저장 장치로부터 상기 적어도 하나의 분산 키를 획득하며,
    상기 전자 장치에 상기 적어도 하나의 분산 키를 전송하는, 서버.
  19. 전자 장치에 있어서,
    메모리;
    통신 회로;
    디스플레이; 및
    상기 메모리, 상기 통신 회로 및 상기 디스플레이에 연결된 프로세서를 포함하고,
    상기 메모리는, 실행 시에, 상기 프로세서가,
    블록체인 네트워크로 전송될 데이터에 전자 서명하기 위한 키를 생성하기 위한 종자 값 또는 연상 기호 정보를 분할한 적어도 하나의 분산 키의 저장 요청을 외부 서버로부터 수신하고,
    상기 저장 요청에 대한 응답으로 상기 적어도 하나의 분산 키를 상기 메모리에 저장하고,
    상기 통신 회로를 통해서 상기 외부 서버로부터 상기 적어도 하나의 분산 키에 대한 접근 요청을 수신하며,
    상기 접근 요청에 대한 응답으로, 알림 메시지를 상기 디스플레이를 통해서 출력하도록 하는 인스트럭션들을 저장하는, 전자 장치.
  20. 전자 장치가 키 값을 복원하기 위한 방법에 있어서,
    적어도 하나의 외부 전자 장치에 대한 디바이스 정보를 획득하는 동작;
    상기 디바이스 정보에 기반하여, 상기 적어도 하나의 외부 전자 장치로부터 분산 키를 저장하기 위한 적어도 하나의 분산 저장 장치를 선택하는 동작;
    블록체인 네트워크로 전송될 데이터에 전자 서명하기 위한 키를 생성하기 위한 종자 값 또는 연상 기호 정보를 분할한 적어도 하나의 분산 키를 생성하는 동작; 및
    상기 적어도 하나의 분산 키가 상기 적어도 하나의 분산 저장 장치에 분산하여 전송하는 동작을 포함하는, 방법.
KR1020190129975A 2019-10-18 2019-10-18 블록체인 기반 시스템을 위한 키의 저장 및 복구 방법과 그 장치 KR20210046357A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020190129975A KR20210046357A (ko) 2019-10-18 2019-10-18 블록체인 기반 시스템을 위한 키의 저장 및 복구 방법과 그 장치
PCT/KR2020/014063 WO2021075867A1 (ko) 2019-10-18 2020-10-15 블록체인 기반 시스템을 위한 키의 저장 및 복구 방법과 그 장치
US17/722,888 US20220239509A1 (en) 2019-10-18 2022-04-18 Method for storing and recovering key for blockchain-based system, and device therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190129975A KR20210046357A (ko) 2019-10-18 2019-10-18 블록체인 기반 시스템을 위한 키의 저장 및 복구 방법과 그 장치

Publications (1)

Publication Number Publication Date
KR20210046357A true KR20210046357A (ko) 2021-04-28

Family

ID=75538793

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190129975A KR20210046357A (ko) 2019-10-18 2019-10-18 블록체인 기반 시스템을 위한 키의 저장 및 복구 방법과 그 장치

Country Status (3)

Country Link
US (1) US20220239509A1 (ko)
KR (1) KR20210046357A (ko)
WO (1) WO2021075867A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102391186B1 (ko) * 2021-11-24 2022-04-28 엘에스웨어(주) 비밀 공유 기법을 이용한 블록체인 외부 명령 출력 방법 및 시스템
KR102406388B1 (ko) * 2021-06-03 2022-06-08 보노테크놀로지스 주식회사 블록 체인 거래를 위한 분산 쉐어링 알고리즘 기반 암호화 키 관리 방법 및 이를 처리하는 단말 장치
WO2024019217A1 (ko) * 2022-07-22 2024-01-25 주식회사 블록체인기술연구소 Did와 생체정보 기반의 개인키 복원 시스템

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112764887B (zh) * 2021-01-15 2023-10-13 北京百度网讯科技有限公司 事务请求的构建方法、处理方法、装置、设备和存储介质
US11836714B2 (en) * 2021-07-07 2023-12-05 Ava Labs, Inc. Secure and trustworthy bridge for transferring assets across networks with different data architecture
US11496327B1 (en) 2021-07-07 2022-11-08 Ava Labs, Inc. Secure and trustworthy bridge for transferring assets across different networks
CN118101358A (zh) * 2022-11-15 2024-05-28 神基科技股份有限公司 物联网装备管理系统及其运作方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060078768A (ko) * 2004-12-31 2006-07-05 주식회사 케이티 사용자 개인키의 분산 등록을 이용한 키 복구 시스템 및그 방법
JPWO2010100923A1 (ja) * 2009-03-03 2012-09-06 Kddi株式会社 鍵共有システム
US10789373B2 (en) * 2011-10-31 2020-09-29 Reid Consulting Group, Inc. System and method for securely storing and sharing information
US11290261B2 (en) * 2011-10-31 2022-03-29 Reid Consulting Group, Inc. System and method for securely storing and sharing information
US10218511B2 (en) * 2016-12-23 2019-02-26 Amazon Technologies, Inc. Signature delegation
US11290324B2 (en) * 2016-12-30 2022-03-29 Intel Corporation Blockchains for securing IoT devices
KR20180080655A (ko) * 2017-01-04 2018-07-12 주식회사 엔에스에이치씨 카드를 이용한 알에스에이 분산 키 관리 시스템 및 방법
US20180189753A1 (en) * 2017-01-05 2018-07-05 Beskatta, LLC Infrastructure for obligation management and validation
JP7387596B2 (ja) * 2017-07-20 2023-11-28 ラーバ アイディー プロプライアタリー リミティド 安全タグ
US10891384B2 (en) * 2017-10-19 2021-01-12 Koninklijke Kpn N.V. Blockchain transaction device and method
SG11202006493XA (en) * 2018-01-26 2020-08-28 DFINITY Stiftung System architecture and method of processing data therein
US11501370B1 (en) * 2019-06-17 2022-11-15 Gemini Ip, Llc Systems, methods, and program products for non-custodial trading of digital assets on a digital asset exchange

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102406388B1 (ko) * 2021-06-03 2022-06-08 보노테크놀로지스 주식회사 블록 체인 거래를 위한 분산 쉐어링 알고리즘 기반 암호화 키 관리 방법 및 이를 처리하는 단말 장치
KR102391186B1 (ko) * 2021-11-24 2022-04-28 엘에스웨어(주) 비밀 공유 기법을 이용한 블록체인 외부 명령 출력 방법 및 시스템
WO2024019217A1 (ko) * 2022-07-22 2024-01-25 주식회사 블록체인기술연구소 Did와 생체정보 기반의 개인키 복원 시스템

Also Published As

Publication number Publication date
WO2021075867A1 (ko) 2021-04-22
US20220239509A1 (en) 2022-07-28

Similar Documents

Publication Publication Date Title
US11621855B2 (en) Electronic device and method for managing blockchain address using the same
CN109951489B (zh) 一种数字身份认证方法、设备、装置、系统及存储介质
CN109862041B (zh) 一种数字身份认证方法、设备、装置、系统及存储介质
US20220239509A1 (en) Method for storing and recovering key for blockchain-based system, and device therefor
CN106716914B (zh) 用于漫游的受保护内容的安全密钥管理
US9386045B2 (en) Device communication based on device trustworthiness
TWI578749B (zh) 用於遷移金鑰之方法及設備
US20220141036A1 (en) Electronic authentication device and method using blockchain
WO2018069566A1 (en) Method, device and system for validating sensitive user data transactions within trusted circle
KR20210017083A (ko) 퓨즈된 키에 기반하여 증명 인증서를 생성하는 전자 장치 및 방법
WO2017202025A1 (zh) 终端文件加密方法、终端文件解密方法和终端
CN104715187A (zh) 用于认证电子通信系统中的节点的方法和装置
EP3206329B1 (en) Security check method, device, terminal and server
CN111178884A (zh) 信息处理方法、装置、设备及可读存储介质
CN111475832B (zh) 一种数据管理的方法以及相关装置
CN115001841A (zh) 一种身份认证方法、装置及存储介质
CN104821878A (zh) 用于确保数据交换的安全性的便携式安全设备、方法和计算机程序产品
JP7250960B2 (ja) ユーザのバイオメトリクスを利用したユーザ認証および署名装置、並びにその方法
KR20200112229A (ko) 개인 정보를 관리하기 위한 전자 장치 및 그의 동작 방법
US20230396612A1 (en) Authentication system for a multiuser device
US10445510B2 (en) Data checking apparatus and method using same
KR20200120156A (ko) 전자 장치 및 전자 장치에서 의료 정보 공유 방법
US20220209940A1 (en) Method for providing encrypted object and electronic device for supporting the same
TWM569453U (zh) Digital data processing system
US9692751B1 (en) User actuated release of a secret through an audio jack to authenticate the user

Legal Events

Date Code Title Description
A201 Request for examination