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

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

Info

Publication number
WO2021075867A1
WO2021075867A1 PCT/KR2020/014063 KR2020014063W WO2021075867A1 WO 2021075867 A1 WO2021075867 A1 WO 2021075867A1 KR 2020014063 W KR2020014063 W KR 2020014063W WO 2021075867 A1 WO2021075867 A1 WO 2021075867A1
Authority
WO
WIPO (PCT)
Prior art keywords
electronic device
information
key
distributed
server
Prior art date
Application number
PCT/KR2020/014063
Other languages
English (en)
French (fr)
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 삼성전자 주식회사
Publication of WO2021075867A1 publication Critical patent/WO2021075867A1/ko
Priority to US17/722,888 priority Critical 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

Definitions

  • the embodiments disclosed in this document relate to a technology for storing and recovering a key for a blockchain-based system.
  • a node may include one or more nodes in a mobile communication device, a tablet computer, a laptop computer, a desktop, a computing device, a server device in a network, a client device in a network, or a distributed network.
  • a node can be associated with, for example, a natural person, a group of people such as employees of a company, a system such as a banking system or a blockchain technology that uses a distributed ledger.
  • Two or more nodes may be connected to a communication network that is insecure against unauthorized third parties and is susceptible to eavesdropping or interference. Therefore, messages transmitted between nodes can be transmitted in an encrypted form.
  • the intended recipient decrypts the message using various decryption methods. For example, as a method for decrypting an encrypted message, the encrypted message may be decrypted using a decryption key generated based on a public key or a private key method. In a communication network, it may be important to prevent a third party from discovering a corresponding decryption key.
  • One known encryption method involves the use of a symmetric key algorithm.
  • the key is symmetric in that the same symmetric key is used for encrypting a plain text message and decrypting a cipher text message.
  • the symmetric key must be transmitted securely to both nodes to prevent unauthorized access.
  • a symmetric key can be physically delivered to a (authenticated) node so that the symmetric key is not transmitted over an insecure communication network.
  • it is not always possible to physically transmit the symmetric key. Therefore, the problem in the symmetric key encryption system is that if the symmetric key is transmitted through an insecure electronic network such as the Internet, the risk is high if the symmetric key is decrypted or stolen by a hacker. have.
  • symmetric key algorithms and protocols are simple and widely used, methods for securely transmitting symmetric keys through a secure network are needed.
  • An asymmetric key encryption method also referred to as a public key encryption method, can solve to some extent a problem that may occur when using a symmetric key. While the private key is kept secret, the corresponding public key can be made publicly available. Therefore, the threat of hacking to the public key in the network may not be great. Protocols to which public key encryption is applied include Diffie-Hellman key exchange and Three Pass Protocol.
  • the key pair may be generated using seed value (eg, root seed) or mnemonic information.
  • seed value eg, root seed
  • mnemonic information may be a word sequence (eg, an English word sequence) used to generate a seed value.
  • PBKDF2 word-based key derivation function 2
  • a seed value may be generated from associative preference information.
  • Storing the private key or seed value or mnemonic information related to the private key in the memory area of the electronic device may cause a serious security problem.
  • a digital wallet such as a bitcoin wallet
  • software e.g., an electronic wallet
  • the blockchain it can be used to encrypt important information necessary for blockchain transactions using public key encryption and to perform electronic signatures for transactions (e.g., transactions, transactions).
  • the private key used to create the transaction may be stored by the wallet ('client side') or the wallet service provider ('server side') installed on the user device.
  • the private key may be damaged through theft, loss, or damage to user hardware such as a computer or a mobile phone.
  • the private key may become inaccessible or recoverable, and the assets on the blockchain mapped to the private key may become inaccessible.
  • This problem can be overcome by storing the seed value or mnemonic information for recovering the private key or private key in the server-side storage, but due to security issues on the server side, if hacked, the private key may be leaked. There is a security problem.
  • An electronic device includes a memory, a communication circuit, a display, and a processor connected to the memory, the communication circuit, and the display, wherein the memory, when executed, the processor, Obtain device information on a plurality of external electronic devices, select a plurality of distributed storage devices for storing a distributed key from the plurality of external electronic devices, based on the device information, and to be transmitted to the blockchain network.
  • the communication circuit is configured to generate a plurality of distribution keys obtained by dividing a seed value or mnemonic information for generating a key for electronically signing data, and to distribute and transmit the plurality of distribution keys to the plurality of distributed storage devices. You can store instructions to control.
  • the electronic device includes a memory, a communication circuit, and the memory, and a processor connected to the communication circuit.
  • the second distribution key is transmitted to the second external device, and the blockchain transaction data to be transmitted to the blockchain network is generated.
  • the server includes a memory, a communication circuit, and a processor connected to the memory and the communication circuit, and the memory, when executed, the processor, the user account A seed value for obtaining device information on a plurality of related external electronic devices, and generating a key for electronically signing data to be transmitted to the blockchain network by the electronic device from an electronic device logged into the server with the user account Or receiving a distribution key storage request requesting storage of a plurality of distribution keys obtained by dividing mnemonic information, and in response to the distribution key storage request, a plurality of distributed storage devices are selected based on the device information, and the Through a communication circuit, instructions for distributing and transmitting the plurality of distribution keys to the plurality of distributed storage devices, and storing the identification information of the plurality of distributed storage devices in association with the user account in the memory may be stored. have.
  • an electronic device includes a memory, a communication circuit, a display, and the memory, the communication circuit, and a processor connected to the display, wherein the memory is, when executed, the processor A, a request for storage of a plurality of distribution keys divided by a seed value or mnemonic information for generating a key for electronically signing data to be transmitted to the blockchain network is received from an external server, and in response to the storage request, the Store a plurality of distributed keys in the memory, receive an access request for the plurality of distributed keys from the external server through the communication circuit, and output a notification message through the display in response to the access request. You can save the instructions you do.
  • a method for restoring a key value by an electronic device is an operation of acquiring device information on a plurality of external electronic devices, and based on the device information, the plurality of external electronic devices Selecting a plurality of distributed storage devices for storing a distributed key from electronic devices, a seed value for generating a key for electronically signing data to be transmitted to the blockchain network, or a plurality of distributed keys divided by mnemonic information An operation of generating and transmitting the plurality of distribution keys by distributing them to the plurality of distributed storage devices.
  • a method and apparatus capable of safely storing a key value by distributing it may be provided.
  • a method and apparatus capable of recovering a key value without the need for a user to store information such as a password for recovering the key value may be provided.
  • a method and apparatus capable of recovering a key value without the need for a user to store a device in which the key value is distributed and stored may be provided.
  • FIG. 1 illustrates an electronic device in a network environment according to various embodiments of the present disclosure.
  • FIG. 2 is a diagram illustrating a configuration of a system including an electronic device and a server according to an exemplary embodiment.
  • FIG. 3 is a flowchart illustrating a process of storing a key value in a distributed storage device by an electronic device according to an exemplary embodiment.
  • FIG. 4 illustrates an example of a screen including a device list of external electronic devices displayed by the electronic device, according to an exemplary embodiment.
  • FIG. 5 is a flowchart illustrating a process of transmitting, by an electronic device, an encrypted distribution key based on user authentication information, according to an exemplary embodiment.
  • FIG. 6 is a flowchart illustrating a process of transmitting, by an electronic device, an encrypted distribution key based on biometric information, according to an exemplary embodiment.
  • FIG. 7 is a flowchart illustrating a process of storing device identification information on an external electronic device storing a distribution key in a server, according to an exemplary embodiment.
  • FIG. 8 is a flowchart illustrating a process of storing a distribution key in an external electronic device through a server, according to an exemplary embodiment.
  • FIG. 9 is a flowchart illustrating a process of transmitting, by an electronic device, an encryption code for recovering a key value to a server, according to an exemplary embodiment.
  • FIG. 10 is a flowchart illustrating a process of storing a distributed key in a blockchain network by an electronic device according to an embodiment.
  • FIG. 11 illustrates an example of device identification information stored in a server according to an embodiment.
  • FIG. 12 is a flowchart illustrating a process of recovering a key value by an electronic device according to an exemplary embodiment.
  • FIG. 13 is a flowchart illustrating a process of selecting a distributed storage device to obtain a distributed key by an electronic device, according to an exemplary embodiment.
  • FIG. 14 is a flowchart illustrating a process of recovering a key value using device identification information stored in a server, according to an exemplary embodiment.
  • FIG. 15 illustrates an example of a screen displayed by an electronic device or an external electronic device to receive user authentication information for recovering a key value, according to an embodiment.
  • 16 is a flowchart illustrating a process of acquiring a distributed key and recovering a key value through a server according to an embodiment.
  • 17 is a flowchart illustrating a process of recovering a key value using a distributed key stored in a blockchain network according to an embodiment.
  • FIG. 18 is a flowchart illustrating a process of monitoring a storage state of a stored distributed key by an electronic device or a server according to an exemplary embodiment.
  • FIG. 19 illustrates an example of a screen displayed by an electronic device according to a storage state of a distributed key, according to an embodiment.
  • 20 is a flowchart illustrating a process of storing a distributed key using an external electronic device registered in a distributed storage service according to an embodiment.
  • 21 is a flowchart illustrating a process of recovering a distributed key using an external electronic device registered in a distributed storage service in a server according to an embodiment.
  • FIG. 22 illustrates an example of a screen displayed by an external electronic device registered in a distributed storage service in a server, according to an embodiment.
  • 23 is a flowchart illustrating a process performed by an electronic device for a block chain transaction according to an embodiment.
  • 25 illustrates an example of a distribution key generated under a determined condition, according to an embodiment.
  • 26 illustrates an example of recovering a key value using some of distributed keys stored in a distributed manner, according to an embodiment.
  • 27 illustrates an example of recovering a key value using some of distributed keys stored in a distributed manner, according to an embodiment.
  • FIG. 1 is a block diagram of an electronic device 101 in a network environment 100 according to various embodiments.
  • the electronic device 101 communicates with the electronic device 102 through a first network 198 (for example, a short-range wireless communication network), or a second network 199 It is possible to communicate with the electronic device 104 or the server 108 through (eg, a long-distance wireless communication network).
  • the electronic device 101 may communicate with the electronic device 104 through the server 108.
  • the electronic device 101 includes a processor 120, a memory 130, an input device 150, an audio output device 155, a display device 160, an audio module 170, and a sensor module ( 176, interface 177, haptic module 179, camera module 180, power management module 188, battery 189, communication module 190, subscriber identification module 196, or antenna module 197 ) Can be included.
  • a sensor module 176, interface 177, haptic module 179, camera module 180, power management module 188, battery 189, communication module 190, subscriber identification module 196, or antenna module 197
  • at least one of these components may be omitted or one or more other components may be added to the electronic device 101.
  • some of these components may be implemented as one integrated circuit.
  • the sensor module 176 eg, a fingerprint sensor, an iris sensor, or an illuminance sensor
  • the display device 160 eg, a display.
  • the processor 120 for example, executes software (eg, a program 140) to configure at least one other component (eg, a hardware or software component) of the electronic device 101 connected to the processor 120. It can be controlled and can perform various data processing or operations. According to an embodiment, as at least a part of data processing or operation, the processor 120 may transfer commands or data received from other components (eg, the sensor module 176 or the communication module 190) to the volatile memory 132. It is loaded into, processes commands or data stored in the volatile memory 132, and the result data may be stored in the nonvolatile memory 134.
  • software eg, a program 140
  • the processor 120 may transfer commands or data received from other components (eg, the sensor module 176 or the communication module 190) to the volatile memory 132. It is loaded into, processes commands or data stored in the volatile memory 132, and the result data may be stored in the nonvolatile memory 134.
  • the processor 120 includes a main processor 121 (eg, a central processing unit or an application processor), and a secondary processor 123 (eg, a graphic processing unit, an image signal processor) that can be operated independently or together. , A sensor hub processor, or a communication processor). Additionally or alternatively, the coprocessor 123 may be set to use less power than the main processor 121 or to be specialized for a designated function. The secondary processor 123 may be implemented separately from the main processor 121 or as a part thereof.
  • a main processor 121 eg, a central processing unit or an application processor
  • a secondary processor 123 eg, a graphic processing unit, an image signal processor
  • the coprocessor 123 may be set to use less power than the main processor 121 or to be specialized for a designated function.
  • the secondary processor 123 may be implemented separately from the main processor 121 or as a part thereof.
  • the co-processor 123 is, for example, in place of the main processor 121 while the main processor 121 is in an inactive (eg, sleep) state, or the main processor 121 is active (eg, executing an application). ) While in the state, together with the main processor 121, at least one of the components of the electronic device 101 (for example, the display device 160, the sensor module 176, or the communication module 190) It is possible to control at least some of the functions or states associated with it.
  • the coprocessor 123 eg, an image signal processor or a communication processor
  • may be implemented as a part of other functionally related components eg, the camera module 180 or the communication module 190). have.
  • the memory 130 may store various data used by at least one component of the electronic device 101 (eg, the processor 120 or the sensor module 176).
  • the data may include, for example, software (eg, the program 140) and input data or output data for commands related thereto.
  • the memory 130 may include a volatile memory 132 or a nonvolatile memory 134.
  • the program 140 may be stored as software in the memory 130, and may include, for example, an operating system 142, middleware 144, or an application 146.
  • the input device 150 may receive a command or data to be used for a component of the electronic device 101 (eg, the processor 120) from outside (eg, a user) of the electronic device 101.
  • the input device 150 may include, for example, a microphone, a mouse, a keyboard, or a digital pen (eg, a stylus pen).
  • the sound output device 155 may output an sound signal to the outside of the electronic device 101.
  • the sound output device 155 may include, for example, a speaker or a receiver.
  • the speaker can be used for general purposes such as multimedia playback or recording playback, and the receiver can be used to receive incoming calls.
  • the receiver may be implemented separately from the speaker or as part of the speaker.
  • the display device 160 may visually provide information to the outside of the electronic device 101 (eg, a user).
  • the display device 160 may include, for example, a display, a hologram device, or a projector and a control circuit for controlling the device.
  • the display device 160 may include a touch circuitry set to sense a touch, or a sensor circuit (eg, a pressure sensor) set to measure the strength of a force generated by the touch. have.
  • the audio module 170 may convert sound into an electrical signal, or conversely, may convert an electrical signal into sound. According to an embodiment, the audio module 170 acquires sound through the input device 150, the sound output device 155, or an external electronic device (eg: Sound may be output through the electronic device 102 (for example, a speaker or headphones).
  • an external electronic device eg: Sound may be output through the electronic device 102 (for example, a speaker or headphones).
  • the sensor module 176 detects an operating state (eg, power or temperature) of the electronic device 101, or an external environmental state (eg, a user state), and generates an electrical signal or data value corresponding to the detected state. can do.
  • the sensor module 176 is, for example, a gesture sensor, a gyro sensor, an atmospheric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an infrared (IR) sensor, a biometric sensor, It may include a temperature sensor, a humidity sensor, or an illuminance sensor.
  • the interface 177 may support one or more designated protocols that may be used for the electronic device 101 to directly or wirelessly connect with an external electronic device (eg, the electronic device 102).
  • the interface 177 may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
  • HDMI high definition multimedia interface
  • USB universal serial bus
  • SD card interface Secure Digital Card interface
  • audio interface audio interface
  • connection terminal 178 may include a connector through which the electronic device 101 can be physically connected to an external electronic device (eg, the electronic device 102).
  • the connection terminal 178 may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (eg, a headphone connector).
  • the haptic module 179 may convert an electrical signal into a mechanical stimulus (eg, vibration or movement) or an electrical stimulus that a user can perceive through tactile or motor sensations.
  • the haptic module 179 may include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
  • the camera module 180 may capture a still image and a video.
  • the camera module 180 may include one or more lenses, image sensors, image signal processors, or flashes.
  • the power management module 188 may manage power supplied to the electronic device 101.
  • the power management module 188 may be implemented as at least a part of, for example, a power management integrated circuit (PMIC).
  • PMIC power management integrated circuit
  • the battery 189 may supply power to at least one component of the electronic device 101.
  • the battery 189 may include, for example, a non-rechargeable primary cell, a rechargeable secondary cell, or a fuel cell.
  • the communication module 190 includes a direct (eg, wired) communication channel or a wireless communication channel between the electronic device 101 and an external electronic device (eg, the electronic device 102, the electronic device 104, or the server 108). It is possible to support establishment and communication through the established communication channel.
  • the communication module 190 operates independently of the processor 120 (eg, an application processor) and may include one or more communication processors supporting direct (eg, wired) communication or wireless communication.
  • the communication module 190 is a wireless communication module 192 (eg, a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module 194 (eg : A local area network (LAN) communication module, or a power line communication module) may be included.
  • a wireless communication module 192 eg, a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module
  • GNSS global navigation satellite system
  • wired communication module 194 eg : A local area network (LAN) communication module, or a power line communication module
  • a corresponding communication module is a first network 198 (for example, a short-range communication network such as Bluetooth, WiFi direct or IrDA (infrared data association)) or a second network 199 (for example, a cellular network, the Internet, Alternatively, it may communicate with the external electronic device 104 through a computer network (eg, a telecommunication network such as a LAN or WAN).
  • a computer network eg, a telecommunication network such as a LAN or WAN.
  • These various types of communication modules may be integrated into a single component (eg, a single chip), or may be implemented as a plurality of separate components (eg, multiple chips).
  • the wireless communication module 192 uses subscriber information stored in the subscriber identification module 196 (eg, International Mobile Subscriber Identifier (IMSI)) in a communication network such as the first network 198 or the second network 199.
  • IMSI International Mobile Subscriber Identifier
  • the electronic device 101 can be checked and authenticated.
  • the antenna module 197 may transmit a signal or power to the outside (eg, an external electronic device) or receive from the outside.
  • the antenna module 197 may include one antenna including a conductor formed on a substrate (eg, a PCB) or a radiator formed of a conductive pattern.
  • the antenna module 197 may include a plurality of antennas. In this case, at least one antenna suitable for a communication method used in a communication network such as the first network 198 or the second network 199 is, for example, provided by the communication module 190 from the plurality of antennas. Can be chosen.
  • the signal or power may be transmitted or received between the communication module 190 and an external electronic device through the at least one selected antenna.
  • other components eg, RFIC
  • other than the radiator may be additionally formed as part of the antenna module 197.
  • At least some of the components are connected to each other through a communication method (e.g., a bus, general purpose input and output (GPIO), serial peripheral interface (SPI), or mobile industry processor interface (MIPI))) between peripheral devices and a signal ( E.g. commands or data) can be exchanged with each other.
  • a communication method e.g., a bus, general purpose input and output (GPIO), serial peripheral interface (SPI), or mobile industry processor interface (MIPI)
  • GPIO general purpose input and output
  • SPI serial peripheral interface
  • MIPI mobile industry processor interface
  • commands or data may be transmitted or received between the electronic device 101 and the external electronic device 104 through the server 108 connected to the second network 199.
  • Each of the external electronic devices 102 and 104 may be a device of the same or different type as the electronic device 101.
  • all or part of the operations executed by the electronic device 101 may be executed by one or more of the external electronic devices 102, 104, or 108.
  • the electronic device 101 needs to perform a function or service automatically or in response to a request from a user or another device, the electronic device 101
  • One or more external electronic devices receiving the request may execute at least a part of the requested function or service, or an additional function or service related to the request, and transmit a result of the execution to the electronic device 101.
  • the electronic device 101 may process the result as it is or additionally and provide it as at least a part of a response to the request.
  • cloud computing distributed computing, or client-server computing technology may be used.
  • FIG. 2 shows a configuration of a system including an electronic device 210 (eg, the electronic device 101 of FIG. 1) and a server 230 (eg, the server 108 of FIG. 1 ), according to an exemplary embodiment. .
  • an electronic device 210 eg, the electronic device 101 of FIG. 1
  • a server 230 eg, the server 108 of FIG. 1
  • a system may include an electronic device 210, a server 230, and an external electronic device 240 (eg, the electronic device 102 or the electronic device 104 of FIG. 1 ).
  • the electronic device 210 authenticates the transaction using a node of the block chain network 220 when a block chain transaction event for generating block chain transaction data occurs, and the block chain transaction data is recorded in the block chain. Can be transmitted to the blockchain network 220.
  • Blockchain transaction data may include information related to transactions recorded in nodes within the blockchain network 220. For example, when receiving a user input requesting a remittance process based on a blockchain system, the electronic device 210 may transmit blockchain transaction data including information on remittance details to the blockchain network 220.
  • the transaction may include a recipient address, a signature identifying the sender, or value information indicating a transmitted amount.
  • the data included in the transaction may vary depending on the type of the blockchain, and in the case of Ethereum, it may further include a selectable data field and gas price (fee to be paid by the user) information.
  • the electronic device 210 may electronically sign blockchain transaction data using a private key generated for each user and transmit the electronically signed blockchain transaction data to the blockchain network 220.
  • Digital signature is a technology for tampering with electronic documents or digital data and for identifying the subject that created the signature, and is used in fields such as electronic document exchange or electronic commerce based on information and communication networks.
  • the electronic device 210 may perform an electronic signature based on an asymmetric key encryption method. Electronic signatures can be used as a method to prove the validity of electronic data.
  • a person who sends electronic data creates a signature, and a recipient can verify the signature to see if it has been forged or altered by another person.
  • such an electronic signature can be used as a means to determine whether the creator who created the transaction is the owner who created the transaction and has access to the account.
  • the electronic device may generate a key pair consisting of a private key and a public key. At this time, the generated private key can be used for signature generation, and the public key can be used for signature verification.
  • the electronic device may transmit the public key to the receiver.
  • the electronic device may encrypt electronic data using a private key.
  • the generated ciphertext can be referred to as an electronic signature.
  • the electronic device may transmit the generated electronic signature together with the electronic data original text data.
  • the receiving-side electronic device that verifies the electronic signature may decrypt the received electronic signature using the public key, and compare the original data transmitted with the original data generated by the decryption to check whether the data is the same. At this time, if the decrypted data and the original data are the same, the receiving electronic device may determine that the electronic data has not been altered and is generated by the owner of the public key.
  • the electronic device 210 needs to generate a key used to perform an electronic signature.
  • the electronic device 210 may generate a key used to perform an electronic signature based on the fundamental key value.
  • the electronic device may generate a private key used to perform an electronic signature using a hash function from a fundamental key value, and may generate a public key forming a key pair with the private key.
  • the root key value may include, for example, a seed value (eg, Root seed) or mnemonic information for obtaining a seed value.
  • addresses can be created depending on the type of wallet on the blockchain. For example, in the case of deterministic wallets, many keys can be generated from one root seed. In the case of hierarchical deterministic wallets among the types of deterministic wallets, various addresses can be generated based on keys generated from one seed.
  • a mnemonic word sequence may be used as the root seed. Mnemonic code words can be defined by the BIP-39 standard. Mnemonic code words can generate seeds from English words listed in order. The mnemonic code word sequence is generally composed of 12 to 24 words, and since it is difficult for general users to remember the seed value, a seed can be generated based on the mnemonic word that users can easily access. have.
  • BIP-39 provides a function that generates a private key when a mnemonic word is input through the library.
  • Examples of the nimodic word, the library of BIP-39, and the root seed may be illustrated as shown in Table 1 below.
  • the electronic device 210 may generate and restore the private key at any time by using the mnemonic word. If the mnemonic word is leaked, there is a need for the blockchain user to manage the mnemonic word separately because hackers can recover the private key and steal the assets of the blockchain account.
  • the electronic device 210 may derive the private key and the public key through the generated root seed. For example, according to the BIP-32 standard, the electronic device 210 may obtain a value obtained by hashing the generated root seed value through a specific algorithm function (eg, HMAC-SHA512), and extract the private key from the obtained hash value. have. For example, the electronic device 210 may use the left 256 bits of the 512-bit hash value generated by HMAC-SHA512 as a private key, and obtain a public key by using the generated private key.
  • a specific algorithm function eg, HMAC-SHA512
  • HMAC-SHA512 specific algorithm function
  • the electronic device 210 may use the left 256 bits of the 512-bit hash value generated by HMAC-SHA512 as a private key, and obtain a public key by using the generated private key.
  • transactions may be generated and verified using an electronic signature. Based on the blockchain network 220, an electronic signature may be given to each transaction. Nodes participating in the blockchain network can store blockchain information.
  • Transaction data including information about transactions can be stored in nodes of the blockchain.
  • Transaction data can be stored with an electronic signature and public key.
  • Blockchain network participants can verify not only the current transaction but all the transactions previously stored in the block. Through the digital signature verification of the transaction, it is possible to check whether the contents of the transaction data have been forged or altered. In addition, it is possible to determine whether the transaction was performed by the legitimate owner of the blockchain's virtual currency.
  • the electronic device 210 includes a display 211 (for example, the display device 160 in FIG. 1 ), a communication circuit 212 (for example, the communication module 190 in FIG. 1), and a processor 213 (for example, in FIG. 1 ). And a memory 214 (eg, the memory 130 of FIG. 1 ).
  • the memory 214 may store instructions that cause the processor 213 to perform an operation of the electronic device 210 when it is executed.
  • the processor 213 may control components (eg, the display 211 and the communication circuit 212) of the electronic device 210 connected to the processor 213.
  • the operation of the electronic device eg, the electronic device 101 of FIG. 1, the electronic device 210 of FIG. 2
  • the operation of the electronic device is a processor (eg, the processor 120 of FIG. 1, the processor 213 of FIG. 2). May be understood as being executed by executing instructions stored in a memory (for example, the memory 130 of FIG. 1 and the memory 214 of FIG. 2 ).
  • the memory 215 may store a blockchain wallet 215 for processing transaction data for the blockchain network 220.
  • the processor 213 may execute the blockchain wallet 215 and receive a user input for generating a blockchain transaction event. In response to a user input, the processor 213 may generate transaction data using the blockchain wallet 215 and perform an electronic signature.
  • the memory 214 may include a key storage 216 that stores a key value (eg, seed value or mnemonic information) for performing an electronic signature.
  • the electronic device 210 may encrypt a key value for security and store the encrypted key value in the key storage 216.
  • the key storage 216 may be configured based on a separate storage medium having excellent security (eg, a secure memory, a secure element).
  • the processor 213 may generate at least one distribution key by dividing the key value stored in the key storage 216. For example, the processor 213 determines the total quantity of at least one distribution key, and divides the key value into distribution keys of the determined total quantity using a distribution storage algorithm (eg, Shamir's Sharing Secret Scheme (SSSS) algorithm).
  • SSSS Shamir's Sharing Secret Scheme
  • the processor 213 may obtain device information on at least one external electronic device 240 to determine the total number of distribution keys.
  • the processor 210 may obtain device information stored in the memory 214.
  • the processor 210 may receive device information from the server 230 through the communication circuit 212.
  • the processor 210 may receive device information from at least one external electronic device 240 directly connected to the electronic device 210 to enable communication (eg, wired communication or wireless communication such as BluetoothTM).
  • the at least one external electronic device 240 may be a device capable of storing at least one distribution key.
  • the external electronic device 240 may include a wearable device 241, a server 242, an Internet of Things (IoT) 243 device, or a mobile device 244.
  • IoT Internet of Things
  • the device information may mean information indicating characteristics of each of the at least one external electronic device 240.
  • the device information may include at least one of device type information, device identifier, user account, device specification information, device location information, and device name for each of the at least one external electronic device 240.
  • the device type information may be information indicating what type (eg, IoT device, wearable device, fixed device, mobile device, common device, personal device, etc.) the at least one external electronic device 240 belongs to.
  • the device identifier may be information for identifying at least one external electronic device 240, such as a MAC address, an International Mobile Equipment Identity, a phone number, or a serial number.
  • the user account may be an account for a user of at least one external electronic device 240.
  • the user account may be an account for logging in to the server 230 or information related to an account for logging in to the server 230 (eg, nickname, phone number, user ID).
  • the device specification information may be a device included in at least one external electronic device 240 or information indicating performance of the external electronic device 240.
  • the device specification information includes whether at least one external electronic device 240 has a Trusted Execution Environment (TEE), a display, an input device, and an encryption function. It may include information on whether or not to include, performance of the processor, or whether to include a biometric sensor.
  • the device location information refers to information indicating the location of the device (eg, GPS coordinates or relative location information).
  • the device name may mean a model name of a device or a name set by a user to identify at least one external electronic device 240.
  • the processor 213 may determine the total number of at least one distribution key based on the device information. According to an embodiment, the processor 213 may select at least one distributed storage device to store the distributed key based on device information from at least one external electronic device 240. The processor 213 may determine the total number of distribution keys based on at least one distributed storage device determined based on device information. For example, when the number of selected at least one distributed storage device is 5, the processor 213 may determine the total quantity of the at least one distributed key to be 5. For another example, the processor 213 is a distributed key in order to redundantly store the distribution key (that is, at least one distribution key is stored in two or more distributed storage devices) when there are 5 selected at least one distributed storage devices. You can also determine the total quantity of as a natural number greater than 5.
  • the processor 213 may calculate a score for each of the at least one external electronic device 240 based on device information.
  • the processor 213 may select at least one distributed storage device to store at least one distribution key from among at least one external electronic device 240 based on the calculated score.
  • the processor 213 may select an external electronic device 240 having a calculated score equal to or greater than a specified value as the distributed storage device.
  • the processor 213 may output a device list of at least one external electronic device 240 generated based on device information through the display 211.
  • the processor 213 includes at least one of the at least one external electronic device 240 from the device list through an input device (not shown) (for example, the input device 150 of FIG. 1 or the display 211 having a touch circuit). User input to select a part may be received.
  • the processor 213 may select the selected device as at least one distributed storage device.
  • the processor 213 may select the external electronic device 240 as a distributed storage device based on reliability information of the external electronic device 240. According to an embodiment, the processor 213 may determine reliability information based on a history of whether the external electronic device 240 has previously been used as a distributed storage device. For example, the processor 213 determines whether the external electronic device 240 has previously been used as a distributed storage device or has been used by other trusted users (eg, family, relatives, friends) other than the user. can do. The processor 213 may obtain reliability information from a server outside the electronic device. For example, the server may determine whether the external electronic device 240 is hacked, whether it is stable, or whether to upgrade S/W security, and transmit it to the electronic device 210.
  • the server may determine whether the external electronic device 240 is hacked, whether it is stable, or whether to upgrade S/W security, and transmit it to the electronic device 210.
  • the processor 213 may determine the external electronic device 240 as a distributed storage device based on information obtained from the server. For example, when a new hacking threat to IOT devices is discovered, the processor 213 obtains this information through the server, and the IOT device in which the hacking threat is found may be excluded from the distributed storage device. According to an embodiment, the processor 213 may obtain reliability information on the external electronic device 240 from the other electronic device 108. For example, in the electronic device 101, the external electronic device 240 is distributed from the electronic device 101 and other electronic devices 108 connected through a communication module (eg, a wired communication module 194 or a wireless communication module 192).
  • a communication module eg, a wired communication module 194 or a wireless communication module 192.
  • Information on whether or not the storage device can be determined may be obtained.
  • information on the external electronic device 240 that can be used as a distributed storage device may be obtained through an electronic device used by a trusted user (eg, family member, friend, relative).
  • the processor 213 may transmit at least one distribution key generated based on the total quantity determined through the communication circuit 213 to the external electronic device 240 determined as a distributed storage device. According to an embodiment, when the external electronic device 240 is a device directly connected to the electronic device 210, the processor 213 may directly transmit the distribution key to the external electronic device 240 through the communication circuit 212. have. After the distribution key is stored in the external electronic device 240, the processor 213 stores device identification information for identifying the external electronic device 240 in the memory 214 or in the server 230 ).
  • the device identification information may refer to information for uniquely identifying the electronic device 210 or the external electronic device 240.
  • the device identification information may include a MAC address or a device ID of the electronic device 210 or the external electronic device 240.
  • the processor 213 may request the server 230 to store the distributed key.
  • the server 230 may store the distribution key in the external electronic device 240 in response to the request.
  • the server 230 may store device identification information for an external electronic device storing a distribution key.
  • the processor 213 may store the distributed key in the blockchain network 220 instead of the external electronic device 240.
  • the operation of storing the distributed key in the blockchain network 220 may include an operation of generating a transaction including the distributed keys and storing it as a block on the blockchain.
  • Information about distributed keys stored on the blockchain can be stored in nodes participating in the blockchain node.
  • the electronic device can access information about the distributed keys based on the address value of the blockchain transaction.
  • the processor 213 may store a transaction ID capable of identifying the location where the distributed key is stored in the memory 214 or the server 230 as device identification information.
  • the processor 213 may encrypt the generated distribution key before transmitting the distribution key, and transmit the encrypted distribution key.
  • the processor 213 may encrypt the distribution key using an encryption key stored only in the electronic device 210.
  • the processor 213 may provide information that can only be provided by a user (eg, biometric information, personal identification number) or information that only the electronic device 210 and the server 230 can know (hereinafter, an encryption code). ), the distribution key can be encrypted.
  • the distributed key is encrypted based on the information of the electronic device 210 and the server 230, the electronic device 210 or another electronic device that wants to recover the key value requests the server 230 to decrypt the distributed key. You can receive information to do.
  • the processor 213 when the root seed is distributed and stored, recovers the root seed, generates a private key from the recovered root seed, and transmits the generated private key to the blockchain network 220 It is possible to electronically sign the transaction data of the blockchain to be processed.
  • the processor 213 recovers the mnemonic word, generates a root seed from the recovered mnemonic word, generates a private key based on the generated root seed, and generates a personal Using the key, it is possible to electronically sign blockchain transaction data to be transmitted to the blockchain network 220.
  • the processor 213 may recover the private key and electronically sign the blockchain transaction data to be transmitted to the blockchain network 220 using the recovered private key. have. After performing an electronic signature on the blockchain transaction data, the processor may transmit the electronically signed blockchain transaction data to the blockchain network 220 through the communication circuit 212.
  • the server 230 may manage information on at least one external electronic device 240 associated with the user account based on a user account logged in to the server 230 through the electronic device 210.
  • the server 230 may be accessible with a user account based on the user account or may map and manage device information for the IoT device 243 determined as a distributed storage device.
  • the server 230 may manage information on the external electronic device 240 through another server.
  • the IoT device 243 may be controlled by accessing an IoT server (not shown).
  • the server 230 may obtain information about the operation or state of the IoT device 243 through an IoT server (not shown) and transmit the information to the electronic device 210.
  • the server 230 may include a memory (not shown), a communication circuit (not shown), and a processor (not shown) connected to the memory and the communication circuit.
  • FIG. 3 illustrates that, according to an embodiment, an electronic device (eg, the electronic device 101 of FIG. 1, the electronic device 210 of FIG. 2) transfers a key value (eg, seed value or mnemonic information) to a distributed storage device.
  • a key value eg, seed value or mnemonic information
  • the electronic device may obtain device information on at least one external electronic device (eg, the external electronic device 240 of FIG. 2).
  • the device information is the device information for each of the external electronic devices.
  • the electronic device may include at least one of device type information, device identifier, user account, device specification information, device location information, and device name.
  • the electronic device may obtain device information stored in the electronic device or may directly receive device information from an external electronic device connected to the electronic device.
  • the electronic device may select at least one distributed storage device to store the distributed key from among at least one external electronic device based on the device information.
  • the electronic device may display a device list such that at least part of the device information is displayed.
  • the electronic device may provide a device list to a user and receive a user input for selecting a distributed storage device.
  • the electronic device may select at least one distributed storage device in response to a user input.
  • the electronic device may determine the priority of at least one external electronic device based on device information.
  • the electronic device may assign a weight to each of the at least one external electronic device based on the device information, and calculate a score for determining a priority based on the assigned weight. For example, the electronic device may assign a high weight if the external electronic device is a device owned by an individual, such as a wearable device, based on device type information included in the device information. For another example, the electronic device may assign a high weight when the device specification information included in the device information includes an input device or a supportable encryption level is high.
  • the electronic device may display a device list based on the determined priority. For example, the electronic device may display a device list in which device information is arranged in order of priority. For another example, the electronic device may display device information on an external electronic device having a high priority to be distinguished from device information on other external electronic devices. As another example, the electronic device may display an indicator that enables identification of an external electronic device having a high priority.
  • the electronic device may automatically select at least a portion of at least one external electronic device having device information satisfying a specified condition as at least one distributed storage device. For example, the electronic device may select a device indicating that the device information has a storage space, is a personal device of the user, or a password input is possible as the distributed storage device. For another example, the electronic device may determine a priority for each of at least one external electronic device, and select at least one device having a high priority as the at least one distributed storage device.
  • the electronic device may use reliability information on the external electronic device to select the external electronic device as the distributed storage device.
  • the reliability information includes information on whether an external electronic device has a history of use as a distributed storage device by another electronic device, vulnerability information on hacking, information on whether security software has been upgraded, and hacking. It may include a history or whether there is a security-enhanced storage area.
  • the reliability information may be obtained through another electronic device or a server outside the electronic device.
  • the electronic device may generate at least one distribution key obtained by dividing the key value.
  • the electronic device may determine a total quantity of at least one distribution key according to at least one distributed storage device selected based on device information.
  • the electronic device may generate at least one distribution key based on the determined total quantity. For example, when three external electronic devices are selected as the distributed storage device, the electronic device may divide the key value into three distributed keys.
  • the electronic device may determine a storage quantity of distribution keys to be stored in each of the at least one distributed storage device selected based on device information. For example, the electronic device may store a larger number of distributed keys as a distributed storage device having a higher security level.
  • the electronic device may generate the distribution key by further considering the storage quantity of the distribution key to be stored in each distributed storage device. For example, when three external electronic devices are selected as the distributed storage device and the storage quantity of each distributed storage device is 1, 3, or 2, the electronic device may divide the key value into 6 distributed keys.
  • the electronic device may transmit at least one distribution key to be distributed and stored in at least one distributed storage device.
  • the distribution key may be transmitted to the distributed storage device according to the determined storage quantity.
  • FIG. 4 illustrates an external electronic device (eg, the external electronic device 240 of FIG. 2) displayed by an electronic device (eg, the electronic device 101 of FIG. 1 and the electronic device 210 of FIG. 2 ), according to an exemplary embodiment. Shows an example of a screen 400 including a device list for ).
  • an external electronic device eg, the external electronic device 240 of FIG. 2
  • an electronic device eg, the electronic device 101 of FIG. 1 and the electronic device 210 of FIG. 2
  • the electronic device may display a screen 400 including a device list 410 for an external electronic device in order to select a distributed storage device to store the distributed key (for example, operation 320 of FIG. 3 ).
  • the device list 410 may be configured based on a priority determined for an external electronic device.
  • the electronic device may select at least one recommended device from among external electronic devices included in the device list 410 based on device information. For example, the electronic device may calculate a score for each external electronic device based on the device information, and select an external electronic device having a score equal to or greater than a threshold value as the recommended device.
  • the electronic device may output a screen 400 including an indicator 420 indicating a recommended device included in the device list 410. According to an embodiment, the electronic device may output a screen including the calculated score.
  • FIG. 5 is a diagram illustrating a process in which an electronic device (eg, the electronic device 101 of FIG. 1, the electronic device 210 of FIG. 2) transmits an encrypted distribution key based on user authentication information, according to an embodiment.
  • Flowchart 500 is.
  • the process illustrated in FIG. 5 may be performed before or during the operation of transmitting the distribution key (operation 340 of FIG. 3 ).
  • the electronic device may acquire user authentication information.
  • the user authentication information may refer to information capable of identifying and authenticating a user of the electronic device.
  • the user authentication information may include a password, a personal identification number (PIN), or biometric information.
  • the biometric information may include, for example, fingerprint information, iris information, genetic material information, or vein information.
  • User authentication information may be input through, for example, a touch screen display, another input device, or a sensor (eg, a fingerprint sensor or an image sensor).
  • the electronic device may display a screen according to a type of user authentication information for encrypting at least one distribution key. For example, when at least one distributed storage device is selected based on the screen shown in FIG. 4, the electronic device may display a screen for receiving user authentication information.
  • the electronic device may display a screen for inputting the number.
  • the electronic device may display a screen requesting a fingerprint input to the fingerprint sensor (eg, the sensor module 176 of FIG. 1) of the electronic device.
  • the electronic device may encrypt at least one distribution key (eg, the distribution key generated in operation 330 of FIG. 3) by using the obtained user authentication information.
  • the electronic device eg, the processor 213) may transmit at least one encrypted distribution key to at least one distributed storage device.
  • FIG. 6 is a flowchart illustrating a process of transmitting a distributed key encrypted based on biometric information by an electronic device (eg, the electronic device 101 of FIG. 1 and the electronic device 210 of FIG. 2 ), according to an embodiment It is 600.
  • an electronic device eg, the electronic device 101 of FIG. 1 and the electronic device 210 of FIG. 2 .
  • the electronic device may receive a plurality of inputs of biometric information.
  • the electronic device may receive fingerprint information multiple times.
  • the electronic device may obtain biometric information from a plurality of biometric information inputs.
  • the electronic device may extract core information from the obtained biometric information.
  • the core information may mean information commonly included in a biometric information input that is input multiple times. That is, it may mean information that is stably obtained among information included in the biometric information input.
  • the electronic device may encrypt at least one distribution key by using the core information. All of the biometric information may not be the same for every input. Accordingly, when the distribution key is encrypted using all of the input biometric information, it may not be possible to decrypt the encrypted distribution key using the biometric information input for decryption of the distribution key. However, when the distribution key is encrypted using the core information, the distribution key may be decrypted using information of a portion corresponding to the core information among the biometric information input at the time of decryption.
  • the electronic device may transmit at least one encrypted distribution key to at least one distributed storage device.
  • FIG. 7 illustrates an external electronic device 702 storing a distribution key (eg, the electronic device 102 of FIG. 1, the electronic device 104, and the external electronic device 240 of FIG. 2) according to an embodiment.
  • a flowchart 700 illustrating a process of storing device identification information in the server 703 (eg, the server 108 of FIG. 1 and the server 230 of FIG. 2 ).
  • the electronic device 701 (eg, the electronic device 101 of FIG. 1, the electronic device 210 of FIG. 2) (eg, the processor 213) may generate at least one distribution key.
  • the electronic device 701 (for example, the processor 213) may transmit a distributed key storage request to at least one external electronic device 702.
  • the distributed key storage request may include at least one distributed key to be stored in at least one external electronic device 702.
  • At least one external electronic device 702 may store at least one distribution key received from the electronic device 701.
  • the at least one external electronic device 702 may transmit the stored at least one distribution key to the electronic device 701.
  • the electronic device 701 eg, the processor 213
  • the electronic device 701 may verify the distribution key stored in the at least one external electronic device 702.
  • the electronic device 701 It can be determined that the distribution key of is normally stored.
  • operations 717 and 719 may be replaced with operations of transmitting, to the electronic device 701, a notification message notifying that the distribution key has been generated by the external electronic device 702.
  • At least one external electronic device 702 may set user authentication information for a distributed key according to specifications of each external electronic device 702. For example, when the external electronic device 702 includes a touch screen panel, the external electronic device 702 may receive a password for authenticating a user through the touch screen panel. The external electronic device 702 may set a distributed key storing the input password. For example, when the external electronic device 702 receives a request to transmit a distribution key, receives a password through the external electronic device 702 or the electronic device 701, and the input password matches a set password As long as the distribution key can be transmitted.
  • the electronic device 701 (for example, the communication circuit 212) is a device for the at least one external electronic device 702. Identification information may be transmitted to the server 703.
  • the device identification information 721 may be directly transmitted to the server 703 (724).
  • the server 703 may directly acquire, store, and manage device identification information for storage of a distribution key from a plurality of external electronic devices 702.
  • the server 702 when storage of the external electronic device 702 fails, the failed information is transmitted to the server, and the server may manage reliability information on the external electronic device.
  • the external electronic device 702 when the external electronic device 702 stores a distributed key, when user authentication fails or the reliability of the external electronic device decreases due to repeatedly failing user authentication, the electronic device 701 is informed of the failure. Can be delivered. For example, when a repetitive failure occurs in a specific external electronic device 702, the server 703 may check this and transmit reliability information of the external electronic device to related electronic devices.
  • the server 703 may store device identification information.
  • the device identification information refers to information for identifying each external electronic device 702.
  • the device identification information may include at least one of device type information, device identifier, and device name of at least one external electronic device 702.
  • the device type information may mean a classification to which the external electronic device 702 belongs, such as an air conditioner, a wearable device, and a television.
  • the device identifier may include, for example, a MAC address, IMEI, serial number or hardware ID.
  • the device name may be a name set by a user when information on the external electronic device 702 is registered in the server 703.
  • the server 703 transmits the device identification information to a user logged in to the server 703 through the electronic device 701. It can be saved in association with the account.
  • FIG. 8 illustrates an external electronic device (eg, the electronic device 102 of FIG. 1, an electronic device) through a server 803 (eg, the server 108 of FIG. 1, the server 230 of FIG. 2), according to an embodiment.
  • a flow chart 800 illustrating a process of storing a distribution key in the device 104 and the external electronic device 240 of FIG. 2.
  • the electronic device 801 may generate at least one distribution key.
  • the electronic device 801 may transmit a distributed key storage request to the server 803.
  • the distributed key storage request may include at least one distributed key to be stored in at least one external electronic device 802.
  • the server 803 receiving the request for storing the distributed key may determine at least one distributed storage device to store the distributed key. For example, in operation 815, the server 803 may obtain information on at least one distributed storage device selected through operations 310 and 320 of FIG. 3 from the electronic device 801. For another example, the server 803 may determine priorities for external electronic devices based on device information on the external electronic devices. The server 803 may select the number of distributed storage devices required to store the distributed keys in the order of the determined priority.
  • the server 803 may transmit a distributed key storage request to at least one external electronic device 802 selected as a distributed storage device.
  • at least one external electronic device 802 that has received the distributed key storage request may store the received distributed key.
  • the server 803 may transmit the distribution key to the electronic device 801 in operation 823.
  • the electronic device 801 may verify the distribution key stored in at least one external electronic device 802.
  • the electronic device 801 normally stores at least one distribution key in the at least one external electronic device 802. It can be determined that it is stored.
  • the electronic device 801 may transmit the verification result to the server 803.
  • the server 803 compares the distribution key received in operation 813 with the distribution key received in operation 821, and compares the distribution key stored in at least one external electronic device 802. It can also be replaced by an operation to verify. When the stored distribution key is verified to be valid, the server 803 may transmit a notification message notifying the storage result to the electronic device 801.
  • operations 823, 825, and 827 may be replaced with operations of transmitting, to the electronic device 801, a notification message notifying that the distribution key has been generated by the external electronic device 802.
  • the server 803 transmits device identification information on the external electronic device 802 selected as a distributed storage device to the electronic device 801, the electronic device 801 It may be replaced by performing operations 713 to 719 of FIG. 7 based on device identification information.
  • the server 803 may store device identification information for at least one external electronic device 802 storing the distribution key.
  • the distributed key may be transmitted in an encrypted state.
  • the electronic device 801 may decrypt and verify the encrypted distribution key.
  • operations 821, 823, 825, and 827 may be replaced with an operation of verifying the distributed key stored by the external electronic device 802 and transmitting the verification result to the server 803.
  • an electronic device eg, the electronic device 101 of FIG. 1, the electronic device 210 of FIG. 2 is connected to an external electronic device directly connected to the electronic device (eg, a wearable device connected through short-range wireless communication). It is possible to store some of the distributed keys through the process 700 shown in 7, and store the remaining distributed keys through the process 800 shown in FIG. 8 in an external electronic device (for example, an IoT device) connected through the server. have.
  • an external electronic device for example, an IoT device
  • FIG. 9 is a diagram illustrating a process in which an electronic device (eg, the electronic device 101 of FIG. 1, the electronic device 210 of FIG. 2) transmits an encryption code for recovering a key value to a server, according to an embodiment.
  • Flowchart 900 is.
  • the electronic device before performing an operation of transmitting at least one distribution key to at least one distributed storage device (eg, operation 340 of FIG. 3 ), in operation 1010, the electronic device (eg, processor 213) encrypts You can generate code. Encryption codes may be generated in various ways according to embodiments. For example, a random number generated by an electronic device may be used as an encryption code.
  • the electronic device may encrypt at least one distribution key using the generated encryption code.
  • the electronic device eg, the processor 213 may transmit at least one encrypted distribution key together with the encryption code to the server (eg, the server 108 of FIG. 1 and the server 230 of FIG. 2).
  • the server receiving the distribution key may store the encryption code in association with the user account of the electronic device.
  • the encryption code stored in the server may be provided when the electronic device attempts to decrypt the distribution key.
  • FIG. 10 illustrates a process of storing a distributed key in a blockchain network 1002 by an electronic device 1001 (eg, the electronic device 101 of FIG. 1, the electronic device 210 of FIG. 2 ), according to an embodiment. It is a flow chart 1000 shown.
  • an electronic device 1001 eg, the electronic device 101 of FIG. 1, the electronic device 210 of FIG. 2 . It is a flow chart 1000 shown.
  • the electronic device 1001 may generate at least one distribution key.
  • the electronic device 1001 (for example, the processor 213) may determine the number of transactions for storing the distribution key and generate a distribution key according to the number of transactions. For example, 5 distributed keys can be distributed through 5 transactions and stored through a blockchain network. According to an embodiment, a plurality of distribution keys may be stored together in one transaction. For example, 10 distribution keys are generated, and each distribution key can be divided into 2 and stored in 5 transactions.
  • the electronic device 1001 may generate transaction data including at least one distribution key to be stored in at least one blockchain network 1002. For example, you can create a transaction corresponding to the number of distributed keys. When 5 distribution keys are generated, distribution keys can be distributed and stored in the transaction data of each 5 transactions.
  • the electronic device 1101 since data stored in the blockchain network 1002 is disclosed due to the nature of the blockchain technology, the electronic device 1101 may encrypt the distribution key and include it in the transaction data in operation 1013.
  • the electronic device 1001 may transmit the generated transaction data to at least one block chain network 1002.
  • the electronic device 1001 may obtain a transaction ID including information on a location where the transaction data is stored.
  • the electronic device 1001 may read transaction data using the acquired transaction ID, obtain a distribution key from the transaction data, and verify the distribution key stored in the blockchain network 1002.
  • the electronic device 1001 substitutes the device identification device for identifying the external electronic device storing the distribution key, and stores the transaction ID as the server 1003 (e.g., the server 108 of FIG. 1, the server of FIG. 2). It can be transmitted to (230).
  • the server 1003 may store the received transaction ID.
  • the electronic device 1001 may directly store the transaction ID in a storage medium (for example, the memory 214) of the electronic device 1001.
  • FIG. 11 illustrates an example of device identification information 1100 stored in an electronic device or a server (eg, the server 108 of FIG. 1 and the server 230 of FIG. 2 ), according to an embodiment.
  • a server eg, the server 108 of FIG. 1 and the server 230 of FIG. 2
  • the device identification information 1100 may include at least one of device type information 1110, device identifier 1120, device name 1130, and distributed key identifier 1140.
  • the device type information 1110 may mean information on the type of a device to which the distributed storage device belongs.
  • the device identifier 1120 may mean unique information given to a device to identify the device.
  • the device identifier 1120 may include a MAC address, IMEI, serial number, or hardware ID.
  • the device name may be a name set by a user when information on a distributed storage device is registered in the server.
  • the distribution key identifier 1140 may include information for identifying a distribution key stored in the distributed storage device.
  • the device identifier 1120 may be a transaction ID.
  • the device identification information 1100 shown in FIG. 11 is for explaining an example, and the device identification information 1100 may be configured differently from the example shown in FIG. 11.
  • FIG. 12 is a flowchart 1200 illustrating a process of recovering a key value by an electronic device (eg, the electronic device 101 of FIG. 1 and the electronic device 210 of FIG. 2) according to an embodiment.
  • an electronic device eg, the electronic device 101 of FIG. 1 and the electronic device 210 of FIG. 2
  • the electronic device may transmit a distribution key transmission request to at least one distributed storage device.
  • the electronic device may identify at least one distributed storage device based on device identification information.
  • the electronic device may obtain device identification information from an external server. At least one distributed storage device may be identified based on the acquired device identification information.
  • the electronic device displays a list of distributed storage devices on the display based on device identification information to select at least one distributed storage device to transmit the distributed key transmission request. can do.
  • the electronic device may transmit a distributed key request based on a user response selecting at least one distributed storage device from the distributed storage device list.
  • the electronic device may transmit a distribution key transmission request to all distributed storage devices identified based on device identification information.
  • the electronic device in response to the distributed key transmission request, may receive at least one distributed key from at least one distributed storage device.
  • the received at least one distribution key may be at least a part of all distribution keys stored by dividing the key value.
  • the electronic device may recover a key value (eg, seed value or mnemonic information) based on at least a portion of the at least one distribution key.
  • a key value eg, seed value or mnemonic information
  • the electronic device may recover a key value from at least one distributed key using a distributed storage algorithm (eg, Shamir's Sharing Secret Scheme (SSSS) algorithm).
  • SSSS Shamir's Sharing Secret Scheme
  • FIG. 13 is a flowchart illustrating a process of selecting a distributed storage device in order to obtain a distributed key by an electronic device (eg, the electronic device 101 of FIG. 1 and the electronic device 210 of FIG. 2 ), according to an embodiment; (1300).
  • an electronic device eg, the electronic device 101 of FIG. 1 and the electronic device 210 of FIG. 2 .
  • an electronic device eg, processor 213
  • Device information can be obtained.
  • the device information may include device specification information, device type information, or device location information for at least one distributed storage device.
  • the device information when the device information is stored through a blockchain network, it may include a transaction ID.
  • the electronic device may select at least some of the at least one distributed storage device based on the device information. For example, the electronic device may preferentially select a distributed storage device located close to the location of the electronic device. For another example, based on the device information, the electronic device may preferentially select a distributed storage device that is determined to have a function capable of authenticating a user. For another example, if the electronic device determines that the distributed storage device is a device used by individuals rather than a device that is commonly used based on device information, the electronic device may preferentially select the corresponding distributed storage device.
  • the electronic device may output a list of recommended devices including at least some of the selected at least one distributed storage device.
  • the recommended device list may include all of the selected at least one distributed storage device, but may include only some of the selected at least one distributed storage device that satisfies the minimum quantity of distributed keys required for key value recovery.
  • FIG. 14 is a flowchart 1400 illustrating a process of recovering a key value using device identification information stored in a server (eg, server 108 of FIG. 1, server 230 of FIG. 2) according to an embodiment.
  • a server eg, server 108 of FIG. 1, server 230 of FIG. 2
  • the device 1401 may request the server 1403 to recover the distributed key.
  • the event requiring the recovery of seed value or mnemonic information is, for example, a command requesting the recovery of the seed value or mnemonic information previously used after the user replaces his or her device with the electronic device 1401 This may mean inputting a user input corresponding to (eg, a touch input for selecting a “blockchain key value recovery” menu item) into the electronic device 1401.
  • the electronic device 1402 in which the distribution key is stored is a device that can be directly connected to the electronic device 1401, in operation 1413, the electronic device may receive device identification information from the server 1403.
  • the electronic device may request a distribution key from at least one external electronic device 1402 (eg, the external electronic device 240 of FIG. 2) identified using device identification information.
  • the electronic device 1401 may select at least some of at least one external electronic device identified using device identification information, and may request a distribution key from the selected external electronic device 1402.
  • the electronic device may display a screen indicating a list of devices identified using device identification information to select the external electronic device 1502.
  • the electronic device 1501 may connect communication with the external electronic device 1401.
  • the server 1403 may transmit a command to broadcast an advertisement packet including connection information to the external electronic device 1502 using short-range wireless communication (eg, BluetoothTM Low Energy).
  • the external electronic device 1402 may transmit an advertisement packet and operate as an access point.
  • the electronic device 1401 receiving the advertisement packet uses the connection information (eg, Wi-Fi SSID, IP, TCP/UDP, socket information, MAC address) included in the advertisement packet. ), you can establish a communication connection (e.g., a Wi-Fi connection).
  • the electronic device 1402 may connect communication with a device that has transmitted an advertisement packet matching information included in the device identification information.
  • the electronic device 1402 may sequentially connect to a plurality of external electronic devices 1402 under the control of the server 1403.
  • the electronic device 1401 may be in a state of being logged in to the server 1403 with a user account used for distributed storage of the distributed key.
  • the server 1403 may provide device identification information corresponding to a user account to which the electronic device 1401 logs in to the electronic device 1401.
  • the external electronic device 1402 may perform an operation of authenticating a user.
  • the external electronic device 1402 may display a screen for receiving user authentication information on the display of the external electronic device 1402 and receive user authentication information using the displayed screen.
  • the external electronic device 1402 may request information for authenticating a user from the electronic device 1401 or may request a result of authenticating the user.
  • the external electronic device 1402 according to an embodiment performs operation 1419 only when the user is authenticated as a legitimate user in operation 1417 (e.g., when the input user authentication information matches the registered user authentication information). I can. However, in some cases (for example, when the specifications of the external electronic device 1402 cannot perform user authentication), operation 1417 may be omitted.
  • the at least one external electronic device 1402 may transmit at least one distribution key to the electronic device 1401.
  • the electronic device 1401 may decrypt at least one received distribution key.
  • the electronic device 1401 may receive user authentication information in operation 1421.
  • the electronic device 1401 outputs a screen for inputting a fingerprint, and a fingerprint sensor (eg, the sensor module 167 of FIG. 1) ) Can be activated.
  • fingerprint information is acquired through the fingerprint sensor, the electronic device 1401 may extract a portion corresponding to the core information from the fingerprint information.
  • the electronic device 1401 may decrypt at least one received distribution key based on the extracted information. Fingerprint information can be replaced with other information such as iris information, vein information, DNA information, and passwords. For another example, when the user authentication information encrypted at least one distribution key is a personal identification number, the electronic device 1401 may receive a personal identification number and decrypt the distribution key based on the input personal identification number. have.
  • the electronic device 1401 may request an encryption code from the server 1403.
  • the electronic device 1401 may receive an encryption code from the server 1403 in response to the encryption code request, and decrypt at least one received distribution key based on the encryption code.
  • operation 1421 may be omitted.
  • the electronic device 1401 may recover seed value or mnemonic symbol information, which is a key value that has been distributed and stored, based on at least one distribution key.
  • the process of restoring a key value that has been distributed and stored based on at least one distributed key may be performed as follows.
  • the electronic device 1401 may use a Shamir's Sharing Secret Scheme (SSSS) algorithm when decrypting a distributed key.
  • SSSS Shamir's Sharing Secret Scheme
  • data may be distributed into several pieces through the SSSS algorithm, and original data may be restored when more than a certain number of distributed data are collected. It is possible to set the number of distribution keys (eg, k) required when decryption is performed, and when more than a certain number of distribution keys are acquired, the original data can be restored.
  • the electronic device 1401 may generate a key pair using the seed value or mnemonic information.
  • the process of generating a key pair can be done in the following process.
  • the electronic device may generate a 512-bit seed using a key stretching function using words included in the mnemonic and a salt value (eg, a password input from a user) as arguments.
  • a constant (512-bit) value may be output using two factor values using a key stretching function (eg, PBKDF2).
  • the key stretching function may repeatedly hash the two factor values using a hash algorithm (eg, HMAC-SHA512), and may generate a final output value as a root seed (seed value).
  • a hash algorithm eg, HMAC-SHA512
  • the electronic device can obtain the private key.
  • the root seed can generate a private key and a master chain code from a hash value generated through the HMAC-SHAR 512 algorithm function.
  • the left 256 bits can be used as the private key
  • the right 256 bits can be used as the chain code.
  • the public key can be obtained from the private key using an elliptic curve function. In this way, through the root seed, private keys, public keys, and even blockchain addresses can be derived.
  • the electronic device may use a plurality of HD paths to obtain a plurality of public keys corresponding to a plurality of addresses for a blockchain account from a root seed. Can be obtained.
  • the electronic device may obtain a plurality of public keys from a root seed by using a plurality of HD paths.
  • the electronic device 201 may acquire a plurality of blockchain addresses for a blockchain account based on a plurality of public keys.
  • the root seed key generated based on the standard BIP-39 and the factor values of the HD path defined in the standard BIP-44 are used to generate (or obtain) an address for a virtual currency.
  • the method (eg, based on 3 depth) may be performed based on the standard BIP-32.
  • CKD Child Key Derivation Function
  • CKD(m,0) when going from 0 depth to 1 depth, CKD(m,0) is used, and when going deeper by one depth (e.g., when moving from 1 depth to 2 depth), CKD (m.0) ,0) can be used.
  • the HMAC-SHA512 hash function may be used as the CKD function (Child Key Derivation function). In this way, when the distributed keys are recovered, the private key, public key, or even the address of the account can all be recovered and used in the wallet.
  • the electronic device 1401 may query a blockchain network (eg, the blockchain network 220 of FIG. 2) using the generated key pair.
  • a blockchain network eg, the blockchain network 220 of FIG. 2
  • the electronic device 1401 may normally acquire transaction data stored in the blockchain network.
  • the electronic device 1401 may receive transaction data stored in a blockchain network, and obtain account information included in the transaction data by using the public key included in the key pair.
  • FIG. 15 illustrates an electronic device 1500 (eg, the electronic device 101 of FIG. 1, the electronic device 210 of FIG. 2) or an external electronic device 1510 (eg, the external electronic device of FIG. 2 ), according to an exemplary embodiment. Shows an example of a screen displayed by the device 240 to receive user authentication information for recovering a key value.
  • the electronic device 1500 may output a screen including a keypad 1501 for inputting a number.
  • the electronic device 1500 may output a screen 1502 including a notification message related to fingerprint information.
  • the external electronic device 1510 in the form of a smart watch receives a personal identification number as user authentication information (e.g., when the external electronic device 1502 receives user authentication information in operation 1417 of FIG. 14)
  • the external electronic device 1510 may output a screen including a keypad 1511 for inputting a number on the display of the external electronic device 1510.
  • FIG. 16 is a flowchart illustrating a process of acquiring a distributed key and recovering a key value through a server 1603 (eg, the server 108 of FIG. 1, the server 230 of FIG. 2) according to an embodiment. )to be.
  • a server 1603 eg, the server 108 of FIG. 1, the server 230 of FIG. 2 according to an embodiment.
  • the electronic device 1601 may request a distribution key from the server 1603.
  • operation 1611 may be performed when an event requiring recovery of a seed value or mnemonic information, which is a key value, occurs.
  • the server 1603 may query the server 1603 or device identification information stored in a database connected to the server 1603. According to an embodiment, the server 1603 may query device identification information based on a user account logged in to the server 1603 through the electronic device 1601. That is, the server 1603 may inquire device identification information stored in association with the user account.
  • the server 1603 selects at least one distributed storage device based on the inquired device identification information, and at least one external electronic device 1602 corresponding to the selected at least one distributed storage device (eg, FIG. A distribution key may be requested from the external electronic device 240 of FIG. 2.
  • the external electronic device 1602 may perform an operation of authenticating the user.
  • the external electronic device 1602 may display a screen for receiving user authentication information on the display of the external electronic device 1602 and receive user authentication information using the displayed screen.
  • the external electronic device 1602 may request information for authenticating a user from the electronic device 1601 or may request a result of authenticating the user.
  • the external electronic device 1602 may perform operation 1619 only when the user is authenticated as a legitimate user in operation 1617 (eg, when the input user authentication information and the set user authentication information match). have. However, in some cases (for example, when the specifications of the external electronic device 1602 cannot perform user authentication), operation 1617 may be omitted.
  • the at least one external electronic device 1602 may transmit at least one distribution key to the server 1603.
  • the at least one external electronic device 1602 may transmit at least one distribution key to the electronic device 1601.
  • the distributed key may be encrypted and transmitted to enhance security.
  • the external electronic device, the server, and the electronic device may share a key for encryption/decryption according to a pre-shared encryption algorithm.
  • encryption/decryption is not separately performed, and may be protected and transmitted through encryption based on packet encryption for data security on a communication protocol.
  • the server 1603 may transmit the received at least one distribution key to the electronic device 1601.
  • information for decrypting at least one distribution key e.g, an encryption code
  • the server 1603 is used to decrypt the distribution key.
  • Information may be further transmitted to the electronic device 1601.
  • the electronic device 1601 may recover the seed value or mnemonic symbol information that is a key value that has been distributed and stored based on the at least one distribution key.
  • the electronic device 1601 may generate a key pair using the seed value or mnemonic sign information.
  • the electronic device 1601 may query a blockchain network (eg, the blockchain network 220 of FIG. 2) using the generated key pair.
  • the electronic device 1601 may normally acquire transaction data stored in the blockchain network.
  • the electronic device may use a combination of the process 1400 shown in FIG. 14 and the process 1600 shown in FIG. 16. For example, the electronic device obtains some of the distributed keys to an external electronic device (eg, a wearable device connected through short-range wireless communication) directly connected to the electronic device through the process 1400 shown in FIG. The remaining distributed keys may be obtained from a connected external electronic device (eg, an IoT device) through the process 1600 illustrated in FIG. 16.
  • an external electronic device eg, a wearable device connected through short-range wireless communication
  • the remaining distributed keys may be obtained from a connected external electronic device (eg, an IoT device) through the process 1600 illustrated in FIG. 16.
  • 17 is a flowchart 1700 illustrating a process of recovering a key value using a distributed key stored in a blockchain network according to an embodiment.
  • An electronic device receives an event requiring recovery of the seed value or mnemonic information, which is a key value. If so, in operation 1710, at least one transaction ID may be obtained. For example, similar to operation 1411 of FIG. 14, in response to a request for device identification information transmitted by the electronic device to a server (eg, the server 108 of FIG. 1, the server 230 of FIG. 2 ), the electronic device At least one transaction ID can be received from the server. Alternatively, the transaction ID may be stored in the electronic device.
  • the transaction ID may be information for identifying transaction data stored in a blockchain network (eg, blockchain network 1102 of FIG. 10) including a distributed key.
  • Devices that access the blockchain network can check the transaction data recorded in the nodes included in the blockchain network based on the transaction ID. Accordingly, in operation 1720, the electronic device (eg, the processor 213) may acquire transaction data from the blockchain network by using the transaction ID. In operation 1730, the electronic device (eg, the processor 213) may obtain a distribution key included in the transaction data. In operation 1740, the electronic device (eg, the processor 213) that has obtained the distribution key may recover the seed value or mnemonic symbol information that is the key value.
  • FIG. 18 illustrates an electronic device (eg, the electronic device 101 of FIG. 1, the electronic device 210 of FIG. 2) or a server (eg, the server 108 of FIG. 1, the server of FIG. 2 ), according to an exemplary embodiment.
  • 230 is a flow chart 1800 showing a process of monitoring the storage state of the stored distribution key.
  • the electronic device or the server may determine a storage state of at least one distributed storage device (eg, the external electronic device 240 of FIG. 2) based on the device identification information.
  • the storage state may mean a state as to whether or not a distribution key stored in the distributed storage device can be obtained from each distributed storage device.
  • the electronic device or the server may transmit a message requesting a reply to at least the distributed storage device corresponding to the device identification information.
  • the electronic device or the server may determine the storage state based on whether a response message is received from at least one distributed storage device.
  • the electronic device may output information on the determined storage state.
  • the server may transmit information on the storage state to the electronic device, and the electronic device may output information on the storage state.
  • the electronic device may display a list of at least one distributed storage device based on device identification information of at least one distributed storage device. The electronic device may display the storage status in an item corresponding to the distributed storage device included in the list.
  • the number of recoverable distributed keys may be checked based on the storage state of at least one distributed storage device. For example, if the storage state of a first distributed storage device storing three distributed keys and a second distributed storage device storing one distributed key is normal, the server or electronic device may have a number of recoverable distributed keys. It can be judged as being 4. For example, assume that a key value is divided into distribution key A, distribution key B, distribution key C, and distribution key D and stored. When the storage states of the first distributed storage device storing the distribution key A and the distribution key B and the second distributed storage device storing the distribution key B and the distribution key C are normal, the server or the electronic device determines the number of duplicate distribution keys. Except, it can be determined that the number of recoverable distributed keys is 3.
  • the server or the electronic device may determine whether the number of recoverable distributed keys is less than the minimum required value required for recovery of the key value. For example, if the value determined in operation 1820 (the number of recoverable distribution keys) is 3 and the minimum request value is 4, the server or electronic device may determine that the determined number of recoverable distribution keys is less than the minimum requested value. have.
  • the minimum required value may be a value determined when at least one distribution key is generated. For example, the minimum required value may be determined based on the total quantity of at least one distribution key divided from the key value.
  • the server may transmit a notification message to the electronic device.
  • the electronic device may output the received notification message.
  • the notification message may include a message that induces the key value to be re-distributed and stored.
  • the electronic device displays the notification message on the electronic device. It may be displayed on the display device 160 of FIG. 1 and the display 211 of FIG. 2.
  • the server or the electronic device may perform operation 1840 when the quantity determined in operation 1830 is less than or equal to the minimum request value.
  • FIG. 19 illustrates an example of a screen displayed by the electronic device 1900 (eg, the electronic device 101 of FIG. 1 and the electronic device 210 of FIG. 2) according to a storage state of a distributed key, according to an embodiment. .
  • the electronic device 1900 may display a list 1910 of at least one distributed storage device based on device identification information for at least one distributed storage device in which at least one distributed key is stored. have.
  • the device identification information may be stored in the electronic device 2000 or may be received from a server (eg, the server 108 of FIG. 1 or the server 230 of FIG. 2 ).
  • the electronic device 1900 may display the indicator 1911 on an item corresponding to a distributed storage device that is determined to be in a non-normal storage state among distributed storage devices included in the list 1910.
  • the indicator 1911 may be a text or an image.
  • the electronic device may output a notification message 1920.
  • the electronic device 1900 distributes and stores the key value (for example, the process 300 shown in FIG. 3, shown in FIG. 5 ).
  • Process 500 shown in FIG. 6, process 600 shown in FIG. 6, process 700 shown in FIG. 7, process 800 shown in FIG. 8, process 900 shown in FIG. 9, and shown in FIG. The processed process 1000) can be executed.
  • FIG. 19 is only an example, and a method of displaying the storage state of the distributed storage device may be variously modified.
  • FIG. 20 is a flowchart 2000 illustrating a process of storing a distributed key using an external electronic device (eg, the external electronic device 240 of FIG. 2) registered in a distributed storage service, according to an exemplary embodiment.
  • an external electronic device eg, the external electronic device 240 of FIG. 2
  • the electronic device 2001 (eg, the electronic device 101 of FIG. 1, the electronic device 210 of FIG. 2) is a server 2102 (eg, the server 108 of FIG. 1, the server of FIG. 2). It is possible to request distributed storage of the key value to (230).
  • the server 2002 may query distributed storage service subscriber information, which is information on users and/or devices who have subscribed to the distributed storage service stored in the server 2002 or in a database connected to the server 2002.
  • the distributed storage service subscriber information may include a mobile phone number.
  • the server 2002 may select at least one external electronic device 2003 based on the inquired distributed storage service subscriber information.
  • the server 210 may query at least one selected external electronic device 2003 to store the distribution key of the electronic device 2001.
  • At least one external electronic device 2003 receiving the query may output a user interface for selecting whether to approve the storage of the distributed key.
  • the external electronic device 2003 may transmit a response on whether to store the distributed key to the server 2002 in operation 2019.
  • operations 2115, 2117, and 2119 may be omitted.
  • the server 2002 may determine the number of distributed storage devices in operation 2021. According to an embodiment, the server 2002 may determine the number of distributed storage devices based on the number of at least one external electronic device 2003 that has transmitted a response to approve storage of the distributed key. According to another embodiment, the server 2002 may determine the number of at least one external electronic device 2003 selected by the server 2002 as the number of distributed storage devices. In operation 2023, the server 2002 may transmit the determined number of distributed storage devices to the electronic device 2001.
  • the electronic device 2001 may generate a distribution key based on the number of distributed storage devices. For example, when the number of distributed storage devices is 100, the electronic device may generate 100 distributed keys by dividing the key values into 100. For another example, when the number of distributed storage devices is 100, the electronic device may store 50 distributed keys in preparation for loss of the distributed keys so that one distributed key is stored in a plurality of distributed storage devices.
  • each external electronic device 2003 may store the received distributed key.
  • the electronic device 2001 may encrypt the distribution key and transmit it to the server 2002.
  • the electronic device 2001 may transmit information for decrypting the distribution key to the server 2002.
  • the receiving server 2002 may store information for decrypting the distribution key.
  • the server 2102 transmits device identification information for the external electronic device 2003 to the server 2002 or 2002 of the electronic device 2001. ) Can be stored in the database connected to the user account. Also, according to an embodiment, if it is verified that the distributed key has been normally stored in the external electronic device 2003, the server 2002 may allocate a reward to the user of the external electronic device 2003. For example, the server 2002 may provide a token used as a transaction object in a blockchain network (eg, the blockchain network 220 of FIG. 2) to a user of the external electronic device 2003.
  • a blockchain network eg, the blockchain network 220 of FIG. 2
  • FIG. 21 is a flowchart 2100 illustrating a process of recovering a distributed key using an external electronic device (eg, the external electronic device 240 of FIG. 2) registered in a distributed storage service in a server according to an embodiment.
  • an external electronic device eg, the external electronic device 240 of FIG. 2
  • the electronic device 2101 When an event requiring recovery of a seed value or mnemonic information, which is a key value, occurs in the electronic device 2101 (for example, the electronic device 101 of FIG. 1 and the electronic device 210 of FIG. 2 ), the electronic device 2101 ) May request the distribution key from the server 2102 in operation 2111.
  • the server 2102 receiving the distributed key request sends the device identification information of at least one external electronic device 2103, which is a distributed storage device storing the distributed key, based on the user account of the electronic device 2101. It can be inquired from (2102) or from a database connected to the server (2102).
  • the server 2102 may request a distribution key from the external electronic device 2103 based on the inquired device identification information.
  • the external electronic device 2103 may output a user interface for receiving confirmation whether to provide a distributed key.
  • the external electronic device 2103 may transmit the distributed key stored in the external electronic device 2103 to the server 2102.
  • operation 2117 may be omitted.
  • the server 2102 receiving the distribution key may transmit the received distribution key to the electronic device 2101.
  • information for decrypting at least one distribution key e.g, encryption code
  • the server 2103 is used to decrypt the distribution key.
  • Information may be further transmitted to the electronic device 2101.
  • the electronic device 2101 may recover the seed value or mnemonic information, which is a key value that has been distributed and stored, based on the at least one distribution key.
  • the electronic device 2101 may generate a key pair using the seed value or mnemonic symbol information.
  • the electronic device 2101 may query a blockchain network (eg, the blockchain network 220 of FIG. 2) using the generated key pair.
  • the electronic device 2101 may normally acquire transaction data stored in the blockchain network.
  • FIG. 22 illustrates an example of a screen displayed by an external electronic device 2200 (eg, the external electronic device 240 of FIG. 2) registered in a distributed storage service according to an embodiment.
  • an external electronic device 2200 eg, the external electronic device 240 of FIG. 2
  • FIG. 22 illustrates an example of a screen displayed by an external electronic device 2200 (eg, the external electronic device 240 of FIG. 2) registered in a distributed storage service according to an embodiment.
  • the external electronic device 2200 when a query on whether to store the distributed key is received (for example, operation 2015 of FIG. 20), the external electronic device 2200 receives a message 2210 regarding whether to approve the storage of the distributed key. Can be displayed. The external electronic device 2200 may determine whether to store the distribution key based on an input to the message 2210. According to an embodiment, when a distributed key is stored in the external electronic device 2200, the external electronic device 2200 may output a message 2220 indicating that the storage of the distributed key has been completed.
  • an external electronic device may output a message 2230 related to whether to allow transmission of the distribution key.
  • the external electronic device 2200 may transmit a distribution key stored in the external electronic device 2200 based on a user input for the message 2230.
  • FIG. 23 is a flowchart 2300 illustrating a process performed by the electronic device 2301 (eg, the electronic device 101 of FIG. 1, the electronic device 210 of FIG. 2) for a block chain transaction according to an embodiment. .
  • the electronic device 2301 eg, the electronic device 101 of FIG. 1, the electronic device 210 of FIG. 2
  • FIG. 23 is a flowchart 2300 illustrating a process performed by the electronic device 2301 (eg, the electronic device 101 of FIG. 1, the electronic device 210 of FIG. 2) for a block chain transaction according to an embodiment. .
  • the electronic device 2301 acquires device information of the first external electronic device 2302 and the second external electronic device 2303 associated with the user account of the electronic device 2301 can do.
  • the device associated with the user account may mean a device logged in with a user account, a device connected to the electronic device 2301 logged in with a user account, or a device registered with a user account.
  • the electronic device 2301 directly acquires device information from the first external electronic device 2302 and the second external electronic device 2303, or a separate server (not shown) (e.g., FIG. Device information may be obtained through the server 108 of 1 and the server 230 of FIG. 2.
  • the electronic device may select a distributed storage device to store the distributed key based on the device information.
  • the electronic device 2301 When the first external electronic device 2302 and the second external electronic device 2303 are selected as the distributed storage device, in operation 2315, the electronic device 2301 generates a first distributed key and a second distributed key obtained by dividing the key value. can do.
  • the electronic device 2301 may transmit the first distribution key to the first external electronic device 2432.
  • the electronic device 2401 may transmit the second distribution key to the second external electronic device 2303.
  • the key value may be deleted from the electronic device 2301.
  • the electronic device 2301 may request a distribution key from the first external electronic device 2302 and the second external electronic device 2303. In operations 2323 and 2325, the electronic device 2301 may receive a first distribution key and a second distribution key from the first external electronic device 2302 and the second external electronic device 2303.
  • the electronic device 2301 may recover the key value using the second distribution key and the second distribution key.
  • the electronic device 2301 may perform an electronic signature on the blockchain transaction data in operation 2329 using the recovered key value.
  • FIG. 23 shows a case where the distributed storage device is the first external electronic device 2302 and the second external electronic device 2303, and the key value is divided into two distributed keys.
  • the number of distributed storage devices and the distributed key The quantity of can be changed according to the embodiment.
  • Embodiments disclosed in this document may be configured in combination with each other.
  • the plurality of distributed keys may be stored in at least one of a blockchain network, an external electronic device directly connected to the electronic device, and an external electronic device connected through a server, and may be used for recovery of a key value.
  • the electronic device may divide the secret key (key value) 2410 into a distributed key using a Shamir's Sharing Secret Scheme (SSSS) algorithm.
  • SSSS Shamir's Sharing Secret Scheme
  • the SSSS algorithm is an algorithm that can distribute data into several pieces and restore original data when more than a certain number of pieces of distributed data are collected.
  • the electronic device may divide the secret key 2410 into a plurality (eg, n) of pieces 2431, 2432, 2433, and 2434 by inputting the secret key 2410 to the division function 2420 of the SSSS algorithm.
  • a plurality of pieces eg, n pieces
  • the number of k for restoration may be selectively determined, and security may increase as the number becomes equal to n.
  • the electronic device may determine an input value (eg, n value) of the number of variances of the SSSS algorithm to be distributed according to the distributed storage device selected based on device information.
  • the parameters of the variance function 2420 may include N, which is the number of pieces of information distributed through the SSSS algorithm, and K, which is the number of pieces required for restoration.
  • the electronic device may determine an N value and a K value according to a policy. For example, when security is important, the secret key 2410 can be distributed and stored in many storage devices by increasing the value of N. According to an embodiment, the higher the K value of the quantity of data required for restoration, the more distributed storage devices are required. According to an embodiment, the electronic device may set the K value based on convenience according to restoration. For example, even if a distributed storage value cannot be obtained from a part of the distributed storage device, the electronic device may set the K value to be less than the N value in order to be restored.
  • the electronic device may variably determine an N value and a K value. For example, if the size of a blockchain asset is large, the value of N can be set high and the value of K can be set high in order to increase security. In this case, more distributed storage devices for distributed storage of the secret key 2410 are required.
  • the K value can be determined to be restored only after acquiring all the scattered key values. For example, if the size of the blockchain asset is small, or according to the user's choice, the N value and K value can be set low. In this case, the amount of distributed storage devices required for distributed storage is reduced, and even if the electronic device cannot obtain distributed data from all the distributed storage devices, it is possible to support the user to restore the distributed storage data.
  • 25 illustrates an example of a distribution key generated under a determined condition 2510, according to an embodiment.
  • FIG. 25 shows a condition 2510 in which the key value is "This is the Samsung SECRET that will be separated", the total number of distributed keys is 6, and the minimum required value of the distribution key required for recovery of the key value is 3 .
  • “This is the Samsung SECRET that will be separated” is only an example used for convenience of explanation, and the actual key value is, for example, a mnemonic word (eg army van defense carry ashamed true garbage claim echo media make crunch) or a root seed (e.g.
  • the electronic device may generate six distribution keys 2520 by setting the value of parameter N of the SSSS algorithm to 6 and setting the value of parameter K to 3.
  • 26 illustrates an example of recovering a key value using some of the distributed keys 2520 generated and distributedly stored in FIG. 25, according to an embodiment.
  • the electronic device When the first distribution key, the second distribution key, and the third distribution key 2530 are obtained from a distributed storage device in which six distribution keys are stored, the electronic device according to an embodiment of the present invention provides a minimum required value set when generating the distribution key Since this is 3, the original key value 2535 can be restored.
  • the key value may be restored if the number of acquired distribution keys satisfies the minimum required value regardless of the order of the acquired distribution keys.
  • the electronic device when a first distribution key, a third distribution key, and a sixth distribution key 2540 are obtained, the electronic device according to an embodiment may recover the key value 2545.
  • FIG. 27 illustrates an example of recovering a key value using some of the distributed keys 2520 generated and distributedly stored in FIG. 25, according to an embodiment.
  • the electronic device may recover the key value even when the number of distribution keys exceeding the minimum required value is obtained.
  • the electronic device when a third distribution key, a fourth distribution key, a fifth distribution key, and a sixth distribution key 2550 are obtained, the electronic device according to an embodiment may recover a key value 2555. have.
  • the electronic device may not be able to recover the key value.
  • the electronic device when only the first distribution key and the second distribution key 2560 can be obtained, the electronic device according to an embodiment may fail 2565 in recovering the distribution key.
  • the electronic device sets the minimum required value according to the required security level for the key value. It can be adjusted accordingly.
  • an electronic device eg, 210 of FIG. 2
  • the communication circuit to generate at least one distribution key by dividing the seed value or mnemonic information for generating a key for digitally signing a key, and the at least one distribution key to be distributed and transmitted to the at least one distributed storage device You can store instructions that allow you to control.
  • the instructions control the communication circuit so that the processor encrypts the at least one distributed key value and transmits the encrypted at least one distributed key value to the at least one distributed storage device. It may contain instructions to do so.
  • the instructions may include instructions for the processor to obtain user authentication information and encrypt the at least one distributed key value using the user authentication information.
  • the user authentication information includes biometric information obtained by a plurality of biometric information inputs
  • the instructions are shared by the processor to each of the plurality of biometric information inputs within the biometric information. It may include instructions for extracting the core information included as and encrypting the at least one distributed key value by using the core information.
  • the instructions are such that the processor determines a total quantity of the at least one distribution key based on the device information, and generates the at least one distribution key based on the determined total quantity. It may contain instructions to do.
  • the device information may include at least one of device type information, device identifier, user account, device specification information, device location information, and device name for each of the at least one external electronic device.
  • the processor determines a priority for the at least one external electronic device based on the device information, and based on the priority, the processor determines a priority for the at least one external electronic device. It may include instructions to display a list of devices for the display on the display.
  • the instructions may include instructions for causing the processor to determine the priority based on at least one of device type information and device specification information included in the device information.
  • the processor transmits a distributed key transmission request to at least a portion of the at least one distributed storage device using the communication circuit, and through the communication circuit, the at least one It may include instructions for receiving at least a portion of the distribution key and recovering the seed value or the mnemonic information based on at least a portion of the at least one distribution key.
  • the processor when the processor transmits device identification information on the at least one distributed storage device to an external server, and an event requiring recovery of the seed value or the mnemonic information occurs And instructions for requesting the device identification information from the external server, receiving the device identification information from the external server, and transmitting the distributed key transmission request using the device identification information.
  • the instructions include, by the processor, determining a storage quantity of a distribution key to be stored in each of the at least one distributed storage device based on the device information, and based on the storage quantity, the at least one It may include instructions for distributing and storing the distributed key value of at least one of the at least one distributed storage device.
  • the instructions determine storage state information indicating whether the processor can obtain the at least one distributed key value from the at least one distributed storage device, and based on the storage state information It is determined whether or not the seed value or the mnemonic information can be recovered, and when the seed value or the mnemonic information cannot be recovered, a message related to the distributed storage of the seed value or the mnemonic information is displayed on the display. It may include instructions to be output through.
  • the electronic device (eg, 210 of FIG. 2) according to the embodiment includes a memory (eg, 214 of FIG. 2), a communication circuit (eg, 212 of FIG. 2), and the memory, and the Includes a processor (eg, 213 in FIG.
  • the processor when executed, obtains device information including information on a first external electronic device or a second external electronic device, and , Based on the device information, generating a first distribution key and a second distribution key for recovering a key value, transmitting the first distribution key to the first external device through the communication circuit, and the second
  • the first distribution from the first external electronic device and the second external electronic device Acquire a key and the second distribution key, and store instructions for performing an electronic signature on the blockchain transaction data based on a key value restored using the first distribution key and the second distribution key.
  • the key value includes a seed value or mnemonic information for generating a private key for the electronic signature, and in the instructions, the processor divides the seed value or the mnemonic information
  • the processor may include instructions for generating the first distribution key and the second distribution key.
  • the processor generates the seed value or the mnemonic information using the first distribution key and the second distribution key, and the seed value or the mnemonic symbol information is used.
  • the processor may include instructions for generating a private key and performing the electronic signature using the private key.
  • the server (eg, 230 of FIG. 2) according to an embodiment includes a memory (eg, 130 of FIG. 1), a communication circuit (eg, at least a part of 190 of FIG. 1), and the memory , And a processor (eg, 120 in FIG. 1) connected to the communication circuit, wherein the memory, when executed, the processor obtains device information on at least one external electronic device associated with a user account, Storage of at least one distribution key obtained by dividing seed value or mnemonic information for generating a key for electronically signing data to be transmitted to the blockchain network by the electronic device from the electronic device logged into the server with the user account.
  • the at least one distributed key may be distributed and transmitted, and instructions for storing identification information of the at least one distributed storage device in association with the user account may be stored in the memory.
  • the processor receives a distributed key recovery request from an electronic device logged into the server with the user account, and in response to the distributed key recovery request, based on the user account
  • the identification information may be searched and the identification information may be transmitted to the electronic device.
  • the processor receives a distributed key recovery request from an electronic device logged into the server with the user account, and in response to the distributed key recovery request, based on the user account
  • the identification information may be retrieved, the at least one distribution key may be obtained from the at least one distributed storage device based on the identification information, and the at least one distribution key may be transmitted to the electronic device.
  • the electronic device (eg, 210 of FIG. 2) according to an embodiment includes a memory (eg, 214 of FIG. 2), a communication circuit (eg, 212 of FIG. 2), and a display (eg, FIG. 211), and a processor connected to the memory, the communication circuit, and the display (e.g., 213 of FIG. 2), wherein, when executed, the processor transmits data to the blockchain network.
  • Instructions for storing and receiving an access request for the at least one distributed key from the external server through the communication circuit, and outputting a notification message through the display in response to the access request may be stored.
  • a method for restoring a key value by an electronic device includes an operation of acquiring device information on at least one external electronic device, and the device information Based on the operation of selecting at least one distributed storage device for storing the distributed key from the at least one external electronic device, a seed value or association for generating a key for electronically signing data to be transmitted to the blockchain network An operation of generating at least one distribution key obtained by dividing the preference information, and an operation of distributing and transmitting the at least one distribution key to the at least one distributed storage device.
  • An electronic device may be a device of various types.
  • the electronic device may include, for example, a portable communication device (eg, a smart phone), a computer device, a portable multimedia device, a portable medical device, a camera, a wearable device, or a home appliance.
  • a portable communication device eg, a smart phone
  • a computer device e.g., a smart phone
  • a portable multimedia device e.g., a portable medical device
  • a camera e.g., a camera
  • a wearable device e.g., a smart bracelet
  • the electronic device according to the embodiment of the present document is not limited to the above-described devices.
  • phrases such as “at least one of B or C” may include any one of the items listed together in the corresponding one of the phrases, or all possible combinations thereof.
  • Terms such as “first”, “second”, or “first” or “second” may be used simply to distinguish the component from other Order) is not limited.
  • Some (eg, first) component is referred to as “coupled” or “connected” to another (eg, second) component, with or without the terms “functionally” or “communicatively”. When mentioned, it means that any of the above components may be connected to the other components directly (eg by wire), wirelessly, or via a third component.
  • module used in this document may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic blocks, parts, or circuits.
  • the module may be an integrally configured component or a minimum unit of the component or a part thereof that performs one or more functions.
  • the module may be implemented in the form of an application-specific integrated circuit (ASIC).
  • ASIC application-specific integrated circuit
  • Various embodiments of the present document include one or more instructions stored in a storage medium (eg, internal memory 136 or external memory 138) that can be read by a machine (eg, electronic device 101). It may be implemented as software (for example, the program 140) including them.
  • the processor eg, the processor 120 of the device (eg, the electronic device 101) may call and execute at least one command among one or more commands stored from a storage medium. This enables the device to be operated to perform at least one function according to the at least one command invoked.
  • the one or more instructions may include code generated by a compiler or code executable by an interpreter.
  • the device-readable storage medium may be provided in the form of a non-transitory storage medium.
  • non-transient only means that the storage medium is a tangible device and does not contain a signal (e.g., electromagnetic waves), and this term refers to the case where data is semi-permanently stored in the storage medium. It does not distinguish between temporary storage cases.
  • a signal e.g., electromagnetic waves
  • a method according to various embodiments disclosed in the present document may be provided by being included in a computer program product.
  • Computer program products can be traded between sellers and buyers as commodities.
  • the computer program product is distributed in the form of a device-readable storage medium (e.g. compact disc read only memory (CD-ROM)), or through an application store (e.g. Play StoreTM) or two user devices (e.g., compact disc read only memory (CD-ROM)). It can be distributed (e.g., downloaded or uploaded) directly between, e.g. smartphones), online.
  • a device-readable storage medium e.g. compact disc read only memory (CD-ROM)
  • an application store e.g. Play StoreTM
  • two user devices e.g., compact disc read only memory (CD-ROM)
  • It can be distributed (e.g., downloaded or uploaded) directly between, e.g. smartphones), online.
  • At least a part of the computer program product may be temporarily stored or temporarily generated in a storage medium that can be read by a device such as a server of a manufacturer, a server of an application store, or a memory of a relay server.
  • each component (eg, module or program) of the above-described components may include a singular number or a plurality of entities.
  • one or more components or operations among the above-described corresponding components may be omitted, or one or more other components or operations may be added.
  • a plurality of components eg, a module or program
  • the integrated component may perform one or more functions of each component of the plurality of components in the same or similar to that performed by the corresponding component among the plurality of components prior to the integration. .
  • operations performed by a module, program, or other component may be sequentially, parallel, repeatedly, or heuristically executed, or one or more of the operations may be executed in a different order or omitted. Or one or more other actions may be added.

Abstract

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

Description

블록체인 기반 시스템을 위한 키의 저장 및 복구 방법과 그 장치
본 문서에서 개시되는 실시 예들은, 블록체인 기반 시스템을 위한 키를 저장하고 복구하는 기술과 관련된다.
네트워크에서 둘 이상의 노드(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)로 전송할 수 있다. 블록체인 거래 데이터는 블록체인 네트워크(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 (15)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
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 (2)

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

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/722,888 Continuation US20220239509A1 (en) 2019-10-18 2022-04-18 Method for storing and recovering key for blockchain-based system, and device therefor

Publications (1)

Publication Number Publication Date
WO2021075867A1 true WO2021075867A1 (ko) 2021-04-22

Family

ID=75538793

Family Applications (1)

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

Country Status (3)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023283303A3 (en) * 2021-07-07 2023-04-20 Ava Labs, Inc. Secure and trustworthy bridge for transferring assets across networks with different data architecture

Families Citing this family (4)

* 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 엘에스웨어(주) 비밀 공유 기법을 이용한 블록체인 외부 명령 출력 방법 및 시스템
KR20240013298A (ko) * 2022-07-22 2024-01-30 주식회사 아이비씨티 Did와 생체정보 기반의 개인키 복원 시스템
US11954558B1 (en) * 2022-11-15 2024-04-09 Getac Technology Corporation Internet of things equipment management system and operation method thereof

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060078768A (ko) * 2004-12-31 2006-07-05 주식회사 케이티 사용자 개인키의 분산 등록을 이용한 키 복구 시스템 및그 방법
KR20110127695A (ko) * 2009-03-03 2011-11-25 케이디디아이 가부시키가이샤 키 공유 시스템, 통신 단말, 관리 장치, 키 공유 방법 및 컴퓨터 프로그램
US20180189753A1 (en) * 2017-01-05 2018-07-05 Beskatta, LLC Infrastructure for obligation management and validation
KR20180080655A (ko) * 2017-01-04 2018-07-12 주식회사 엔에스에이치씨 카드를 이용한 알에스에이 분산 키 관리 시스템 및 방법
US20190121988A1 (en) * 2017-10-19 2019-04-25 Koninklijke Kpn N.V. Blockchain Transaction Device And Method

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
CN110024422B (zh) * 2016-12-30 2023-07-18 英特尔公司 物联网的命名和区块链记录
CN111587445A (zh) * 2017-07-20 2020-08-25 拉瓦艾迪私人有限公司 安全标签
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060078768A (ko) * 2004-12-31 2006-07-05 주식회사 케이티 사용자 개인키의 분산 등록을 이용한 키 복구 시스템 및그 방법
KR20110127695A (ko) * 2009-03-03 2011-11-25 케이디디아이 가부시키가이샤 키 공유 시스템, 통신 단말, 관리 장치, 키 공유 방법 및 컴퓨터 프로그램
KR20180080655A (ko) * 2017-01-04 2018-07-12 주식회사 엔에스에이치씨 카드를 이용한 알에스에이 분산 키 관리 시스템 및 방법
US20180189753A1 (en) * 2017-01-05 2018-07-05 Beskatta, LLC Infrastructure for obligation management and validation
US20190121988A1 (en) * 2017-10-19 2019-04-25 Koninklijke Kpn N.V. Blockchain Transaction Device And Method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023283303A3 (en) * 2021-07-07 2023-04-20 Ava Labs, Inc. Secure and trustworthy bridge for transferring assets across networks with different data architecture
US11836714B2 (en) 2021-07-07 2023-12-05 Ava Labs, Inc. Secure and trustworthy bridge for transferring assets across networks with different data architecture

Also Published As

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

Similar Documents

Publication Publication Date Title
WO2021071157A1 (en) Electronic device and method for managing blockchain address using the same
WO2021075867A1 (ko) 블록체인 기반 시스템을 위한 키의 저장 및 복구 방법과 그 장치
WO2021010766A1 (ko) 블록 체인을 이용한 전자 인증 장치 및 그 방법
WO2020235782A1 (ko) 분산 환경에서의 신원 인증 방법
WO2021025482A1 (en) Electronic device and method for generating attestation certificate based on fused key
WO2014139344A1 (zh) 密钥下载方法、管理方法、下载管理方法及装置和系统
WO2014139342A1 (zh) 密钥下载方法、管理方法、下载管理方法及装置和系统
WO2021040325A1 (en) Electronic device providing blockchain account information and method of operating the same
WO2020091525A1 (ko) 생체 인증을 이용한 결제 방법 및 그 전자 장치
WO2020050424A1 (ko) 블록체인 기반의 모바일 단말 및 IoT 기기 간의 다중 보안 인증 시스템 및 방법
WO2022060149A1 (ko) 탈중앙화 네트워크를 이용하여 권리를 관리하는 전자 장치 및 이의 동작 방법
WO2021015568A1 (en) Electronic device and method for protecting personal information using secure switch
WO2020231177A1 (en) Electronic device and method for receiving push message stored in blockchain
WO2019039865A1 (ko) 인증 단말, 인증 장치 및 이들을 이용한 인증 방법 및 시스템
WO2019198846A9 (ko) 가챠 시스템의 확률 정보를 획득하는 방법, 장치 및 컴퓨터 프로그램
WO2021241849A1 (ko) 에지 컴퓨팅 서비스를 수행하는 전자 장치 및 전자 장치의 동작 방법
WO2022114857A1 (ko) 블록 체인 네트워크를 이용하여 데이터를 공유하는 전자 장치 및 이의 동작 방법
WO2017188497A1 (ko) 무결성 및 보안성이 강화된 사용자 인증방법
WO2021210918A1 (en) Electronic device for sending cryptocurrency to blockchain account and method for operating the same
WO2020209596A1 (en) Electronic device and method for sharing medical information by electronic device
WO2020235733A1 (ko) 유저 바이오 데이터를 이용한 유저 인증 및 서명 장치와 방법
WO2018110775A1 (ko) 전자 기기 인증 매니저 장치
WO2019151792A1 (ko) 프로파일을 설치하는 전자 장치 및 전자 장치의 동작 방법
WO2022177129A1 (en) System and method for device to device secret backup and recovery
WO2021133074A2 (ko) 경량 기기 전용 개체 또는 메시지 인증 방법 및 이를 수행하는 장치들

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20877573

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20877573

Country of ref document: EP

Kind code of ref document: A1