WO2026005397A1 - 전자 서명을 수행하기 위한 전자 장치, 방법, 및 비일시적 컴퓨터 판독 가능 저장 매체 - Google Patents

전자 서명을 수행하기 위한 전자 장치, 방법, 및 비일시적 컴퓨터 판독 가능 저장 매체

Info

Publication number
WO2026005397A1
WO2026005397A1 PCT/KR2025/008636 KR2025008636W WO2026005397A1 WO 2026005397 A1 WO2026005397 A1 WO 2026005397A1 KR 2025008636 W KR2025008636 W KR 2025008636W WO 2026005397 A1 WO2026005397 A1 WO 2026005397A1
Authority
WO
WIPO (PCT)
Prior art keywords
key
electronic device
partial
processor
software application
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
PCT/KR2025/008636
Other languages
English (en)
French (fr)
Inventor
이유나
김주영
김지현
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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
Priority claimed from KR1020240092229A external-priority patent/KR20250180059A/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of WO2026005397A1 publication Critical patent/WO2026005397A1/ko
Pending legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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

Definitions

  • the present disclosure relates to an electronic device, a method, and a non-transitory computer-readable storage medium for performing electronic signature.
  • An electronic device may include a rich execution environment (REE) and a trusted execution environment (TEE).
  • the electronic device may perform electronic signatures for transactions using a private key.
  • the electronic device may encrypt information using a public key.
  • the electronic device may decrypt encrypted information using the private key.
  • the electronic device may include a memory storing instructions and including one or more storage media.
  • the electronic device may include at least one processor including a processing circuit.
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to receive user input for electronically signing a transaction based on a cryptographic key through a software application executing based on a rich execution environment (REE).
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to, in response to receiving the user input, obtain a private key to be used for decrypting the cryptographic key from a root seed managed within a trusted execution environment (TEE) different from the REE.
  • TEE trusted execution environment
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to obtain a partial key corresponding to the cryptographic key by decrypting the cryptographic key using the private key.
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to perform an electronic signature for the transaction using the partial key.
  • a method is provided.
  • the method can be executed within an electronic device.
  • the method can include receiving, through a software application running on a rich execution environment (REE), a user input for electronically signing a transaction based on a cryptographic key.
  • the method can include, in response to receiving the user input, obtaining a private key to be used for decrypting the cryptographic key from a root seed managed within a trusted execution environment (TEE) different from the REE.
  • TEE trusted execution environment
  • the method can include obtaining a partial key corresponding to the cryptographic key by decrypting the cryptographic key using the private key.
  • the method can include performing an electronic signature on the transaction using the partial key.
  • a non-transitory computer-readable storage medium may store one or more programs.
  • the one or more programs may include instructions that, when executed by an electronic device, cause the electronic device to receive user input for electronic signing of a transaction based on a cryptographic key through a software application running on a rich execution environment (REE).
  • the one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to, in response to receiving the user input, obtain a private key to be used for decrypting the cryptographic key from a root seed managed within a trusted execution environment (TEE) different from the REE.
  • TEE trusted execution environment
  • the one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to obtain a partial key corresponding to the cryptographic key by decrypting the cryptographic key using the private key.
  • the one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to perform an electronic signature for the transaction using the partial key.
  • the electronic device may include a memory storing instructions and including one or more storage media.
  • the electronic device may include at least one processor including a processing circuit.
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to receive a first user input that causes generation of a partial key to be used for an electronic signature through a software application executing based on a rich execution environment (REE).
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to generate the partial key within a trusted execution environment (TEE) different from the REE in response to receiving the first user input.
  • TEE trusted execution environment
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to obtain an encryption key corresponding to the partial key by encrypting the partial key using a public key included in one of pairs of private keys and public keys derived from a root seed and managed within the TEE.
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to store the encryption key in conjunction with the software application executing in the REE.
  • the instructions, when individually or collectively executed by the at least one processor may cause the electronic device to receive, through the software application executing based on the REE, a second user input for electronically signing a transaction based on the encryption key.
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device, in response to receiving the second user input, to obtain a private key to be used for decrypting the cryptographic key from a root seed managed within the TEE.
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to obtain the partial key by decrypting the cryptographic key using the private key.
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to perform an electronic signature for the transaction using the partial key.
  • a method is provided.
  • the method can be executed within an electronic device.
  • the method can include receiving, through a software application running on a rich execution environment (REE), a first user input that causes the generation of a partial key to be used for an electronic signature.
  • the method can include generating, in response to receiving the first user input, the partial key within a trusted execution environment (TEE) different from the REE.
  • TEE trusted execution environment
  • the method can include obtaining an encryption key corresponding to the partial key by encrypting the partial key using a public key included in one of pairs of private and public keys derived from a root seed and managed within the TEE.
  • the method can include storing the encryption key in conjunction with the software application running on the REE.
  • the method can include receiving, through the software application running on the REE, a second user input for an electronic signature of a transaction based on the encryption key.
  • the method may include, in response to receiving the second user input, obtaining a private key to be used for decrypting the encryption key from a root seed managed within the TEE.
  • the method may include obtaining the partial key by decrypting the encryption key using the private key.
  • the method may include performing an electronic signature for the transaction using the partial key.
  • a non-transitory computer-readable storage medium may store one or more programs.
  • the one or more programs may include instructions that, when executed by an electronic device, cause the electronic device to receive a first user input, the first user input causing the generation of a partial key to be used for an electronic signature, through a software application running on a rich execution environment (REE).
  • the one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to generate the partial key within a trusted execution environment (TEE) different from the REE, in response to receiving the first user input.
  • TEE trusted execution environment
  • the one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to obtain an encryption key corresponding to the partial key by encrypting the partial key using a public key included in one of pairs of private and public keys derived from a root seed and managed within the TEE.
  • the one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to store the encryption key that is associated with the software application executing in the REE.
  • the one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to receive, through the software application executing based on the REE, a second user input for electronically signing a transaction based on the encryption key.
  • the one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to obtain, from a root seed managed within the TEE, a private key to be used for decrypting the encryption key, in response to receiving the second user input.
  • the one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to obtain the partial key by decrypting the encryption key using the private key.
  • the one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to perform an electronic signature for the transaction using the partial key.
  • Figure 1 illustrates an example of generating a partial key within an electronic device.
  • Figure 2 is a simplified block diagram of an exemplary electronic device.
  • Figure 3 is a flowchart illustrating an exemplary method for performing electronic signature.
  • Figure 4 illustrates an example of verifying a partial key.
  • Figure 5 illustrates an example of generating a partial key within a TEE.
  • Figure 6 illustrates an example of obtaining a private key and a public key using a hierarchical deterministic path.
  • Figure 7 is a flowchart illustrating an exemplary method for generating a partial key.
  • Figure 8 is a flowchart illustrating an exemplary method of using a partial key.
  • Figure 9 illustrates an example of performing an electronic signature for a transaction in response to receiving user input.
  • FIG. 10 is a block diagram of an electronic device within a network environment according to various embodiments.
  • Figure 1 illustrates an example of generating a partial key within an electronic device.
  • the electronic device (100) may be used to perform an electronic signature for a transaction.
  • the electronic device (100) may be used to perform a multi-party computation.
  • a multi-party computation technique may be described as a technique for logically dividing a private key for performing an electronic signature for a transaction.
  • a private key logically divided for performing an electronic signature may be described as a partial key.
  • the electronic device (100) may generate or obtain a partial key.
  • the electronic device (100) may include an REE (110) and a TEE (120).
  • the electronic device (100) may generate a partial key within the REE (110).
  • the electronic device (100) may include a partial key generation unit (130) for generating a partial key.
  • the electronic device (100) may include a key storage unit (140) for managing the generated partial key.
  • the key storage (140) may be included within the TEE (120) of the electronic device (100).
  • the TEE (120) may be described as a separate area from the REE (110).
  • the TEE (120) may be used for security.
  • the TEE (120) may store biometric information, payment information, or security documents.
  • the electronic device (100) may store biometric information, payment information, and/or security documents within the TEE (120).
  • the electronic device (100) may refrain from or block the transmission of information between the TEE (120) and the REE (110).
  • the REE (110) may be described as an execution environment having a first security level.
  • the TEE (120) may be described as an execution environment having a second security level higher than the first security level.
  • the electronic device (100) may be operated by separating the operating system into the REE (110) and the TEE (120).
  • the TEE (120) can be separated from the REE (110) through hardware constraints.
  • the TEE (120) can operate by being separated from the REE (110) through software.
  • a general operating system e.g., a non-secure operating system
  • a secure operating system can run within the TEE (120).
  • the secure OS can be separated independently from the general OS.
  • the secure OS can be described as an environment that cannot be accessed by unauthorized programs or software applications.
  • a software application running within the TEE (120) can be described as a trusted application.
  • Partial keys which are logically divided into individual keys for performing electronic signatures for transactions, may be stored in each of a plurality of electronic devices (not shown).
  • a multi-party computation technique may be described as a technique for performing a complete electronic signature for a transaction by partially performing an electronic signature for the transaction using each of the individual partial keys. For example, if the number of individual keys that are logically divided into one individual key is 5, each of the electronic devices including each of the individual partial keys may partially perform an electronic signature using each of the individual partial keys, thereby performing a complete electronic signature for the transaction.
  • the electronic device (100) may commit a block for the transaction to the blockchain or maintain a connection between the block and another block.
  • the partial key generated by the partial key generation unit (130) may be located within the REE (110).
  • the partial key may be transmitted or snatched by an external electronic device (not shown).
  • the external electronic device may partially perform an electronic signature for a transaction using the transmitted (or snatched) partial key.
  • the electronic device (100) may not recognize the transaction.
  • the electronic signature for the transaction may not be recognized by the electronic device (100).
  • the performance of the electronic signature for the transaction may not be intended by the user of the electronic device (100).
  • the electronic device (100) may be required to manage the partial key within the TEE (120). For example, the electronic device (100) can generate a partial key within the TEE (120). For example, the electronic device (100) can encrypt the partial key and store it within the REE (110).
  • the electronic device (100) may include hardware components used to perform or execute the above operations.
  • the hardware components are described and exemplified with reference to FIG. 2.
  • Figure 2 is a simplified block diagram of an exemplary electronic device.
  • the electronic device (100) may include at least one processor (207), a communication circuit (205), a display (208), and a memory (206).
  • At least one processor (207) may include a hardware component for processing data using instructions stored in the memory (206).
  • the hardware component for processing data may include a central processing unit (CPU) (e.g., including processing circuitry).
  • the hardware component for processing data may include a graphic processing unit (GPU) (e.g., including processing circuitry).
  • At least one processor (207) may include one or more cores.
  • at least one processor (207) may have a multi-core processor structure such as a dual core, a quad core, or a hexa core.
  • the memory (206) may include a hardware component for storing data and/or instructions input to and/or output from at least one processor (207).
  • the memory (206) may include, for example, a volatile memory such as a random-access memory (RAM) and/or a non-volatile memory such as a read-only memory (ROM).
  • the volatile memory may include, for example, at least one of a dynamic RAM (DRAM), a static RAM (SRAM), a cache RAM, and a pseudo SRAM (PSRAM).
  • DRAM dynamic RAM
  • SRAM static RAM
  • PSRAM pseudo SRAM
  • the non-volatile memory may include, for example, at least one of a programmable ROM (PROM), an erasable PROM (EPROM), an electrically erasable PROM (EEPROM), a flash memory, a hard disk, a compact disc, and an embedded multimedia card (EMMC).
  • PROM programmable ROM
  • EPROM erasable PROM
  • EEPROM electrically erasable PROM
  • flash memory a flash memory
  • hard disk a hard disk
  • compact disc a compact disc
  • EMMC embedded multimedia card
  • the communication circuit (205) may include hardware components for supporting transmission and/or reception of signals between the electronic device (100) and an external electronic device.
  • the communication circuit (205) may include, for example, at least one of a modem, an antenna, and an optical/electronic (O/E) converter.
  • the communication circuit (205) may support transmission and/or reception of signals based on various types of protocols, such as Ethernet, a local area network (LAN), a wide area network (WAN), wireless fidelity (WiFi), Bluetooth, Bluetooth low energy (BLE), zigbee, long term evolution (LTE), and 5G new radio (NR).
  • the display (208) can output visualized information.
  • the display (208) can output visualized information to the user under the control of at least one processor (207).
  • the display (208) can include a hardware component of an electronic device (100) used to display a screen.
  • the display (208) can include light-emitting elements and circuits (e.g., transistors) that control the light-emitting elements to emit light.
  • each of the light-emitting elements can include an organic light emitting diode (OLED) or a micro LED.
  • OLED organic light emitting diode
  • the present invention is not limited thereto.
  • the display (208) can include a liquid crystal display (LCD).
  • At least one processor (207) may receive, via a software application running on the REE (110), a first user input that causes the generation of a partial key to be used for an electronic signature. For example, in response to receiving the first user input, the at least one processor (207) may generate the partial key within the TEE (120). For example, the at least one processor (207) may derive a private key and a public key from a root seed (e.g., the root seed (610) of FIG. 6). For example, the at least one processor (207) may obtain an encryption key by encrypting the partial key using the public key. For example, the at least one processor (207) may store the encryption key within the REE (110).
  • a software application running on the REE (110) may receive, via a software application running on the REE (110), a first user input that causes the generation of a partial key to be used for an electronic signature. For example, in response to receiving the first user input, the at least one processor (207) may generate the partial key within the TEE (120). For example,
  • the at least one processor (207) may receive a second user input for an electronic signature of a transaction.
  • the at least one processor (207) may obtain a private key from the root seed.
  • at least one processor (207) can obtain a partial key by decrypting the encryption key using the private key.
  • a key storage e.g., key storage (526) of FIG. 5
  • the communication circuit (205) can be used to transfer data between the multi-party computation software application (516) and the key storage (526).
  • at least one processor (207) can perform an electronic signature for a transaction using the partial key. The performance of the electronic signature is described and exemplified in more detail with reference to FIG. 3.
  • FIG. 3 is a flowchart illustrating an exemplary method for performing an electronic signature. This method may be executed by the electronic device (100) illustrated in FIG. 3 or by at least one processor (207) of the electronic device (100).
  • At operation 310 at least one processor (207) may receive a first user input that causes generation of a partial key to be used for an electronic signature through a first software application (e.g., the first software application (510) of FIG. 5) running on the basis of the REE (110).
  • the first user input may include user authentication.
  • the user authentication may include authentication using a fingerprint.
  • the user authentication may include authentication using a face.
  • the user authentication may include authentication using an iris.
  • the user authentication may include authentication using a password.
  • the user authentication may include authentication using a personal identification number (PIN).
  • PPG photoplethysmography
  • the first user input may include a user input for logging into a server (not shown) corresponding to the first software application.
  • the electronic device (100) may log into or access the server through the first software application.
  • the electronic device (100) may manage partial keys and encryption keys or perform electronic signatures for transactions.
  • At least one processor (207) may generate a partial key within a TEE (120) different from the REE (110) in response to receiving the first user input.
  • at least one processor (207) may generate the partial key within the TEE (120) using a multi-party computation software application (e.g., the multi-party computation software application (516) of FIG. 5).
  • the partial key may be used in a multi-party computation technique.
  • the partial key may be used to perform a partial electronic signature for performing a complete electronic signature of a transaction.
  • At least one processor (207) may obtain an encryption key corresponding to a partial key by encrypting the partial key using a public key included in any one of pairs of a private key (e.g., the first private key (460) of FIG. 4) and a public key (e.g., the first public key (465) of FIG. 4) derived from a root seed (e.g., the root seed (610) of FIG. 6) managed within the TEE (120).
  • the at least one processor (207) may derive, generate, or obtain the private key and the public key from the root seed located within the TEE (120).
  • the at least one processor (207) may obtain the private key and the public key corresponding to the hierarchical deterministic path from the root seed using the hierarchical deterministic path.
  • a hierarchical deterministic path can be described as a path for deriving a pair of private keys and public keys from a root seed (e.g., the root seed (610) of FIG. 6).
  • a first private key e.g., the first private key (460) of FIG. 4) and a first public key paired with the first private key (e.g., the first public key (465) of FIG. 4) can depend on the hierarchical deterministic path.
  • the first private key and the first public key can correspond to the hierarchical deterministic path.
  • a hierarchical deterministic path can be determined using an identifier of a multi-party computation software application (e.g., a multi-party computation software application (516) of FIG. 5) corresponding to a partial key.
  • a multi-party computation software application e.g., a multi-party computation software application (516) of FIG. 5
  • at least one processor (207) can label an identifier for each of the multi-party computation software applications.
  • at least one processor (207) can determine or identify a hierarchical deterministic path using the labeled identifier for each of the multi-party computation software applications.
  • At least one processor (207) can generate, obtain, or identify a hierarchical deterministic path using the number of the multi-party computation software applications. For example, at least one processor (207) can generate a hierarchical deterministic path using the labeled identifier and the number of the multi-party computation software applications. For example, at least one processor (207) may obtain a private key and a public key pair corresponding to the hierarchical deterministic path from the root seed. However, the present invention is not limited thereto. At least one processor (207) may generate a hierarchical deterministic path using information that can distinguish each of the multi-party computation software applications (e.g., the first multi-party computation software application (516-1) to the Nth multi-party computation software application (516-N) of FIG. 5). For example, at least one processor (207) may use identification data for the electronic device (100).
  • the multi-party computation software applications e.g., the first multi-party computation software application (516-1) to the Nth multi-party computation software application (516-N) of
  • At least one processor (207) may verify a public key used to encrypt a partial key. For example, at least one processor (207) may obtain identification information indicating a hierarchical deterministic path used to derive the public key from the root seed. At least one processor (207) may verify the public key based on whether the identification information and the hierarchical deterministic path match. For example, at least one processor (207) may wrap the public key derived from the root seed. For example, at least one processor (207) may obtain identification information by unwrapping the wrapped public key. For example, the identification information may include information regarding the hierarchical deterministic path for deriving the public key from the root seed. For example, the identification information may indicate the hierarchical deterministic path. For example, at least one processor (207) may determine whether the identification information and the hierarchical deterministic path used when deriving the public key from the root seed match.
  • At least one processor (207) may store the encryption key by linking with a first software application running in the REE (110) (e.g., the first software application (510) of FIG. 5).
  • at least one processor (207) may store the encryption key that links with the first software application running in the REE (110).
  • at least one processor (207) may store the encryption key within the REE (110).
  • the encryption key may be described as a partial key encrypted using a public key.
  • the electronic device (100) may enhance security by storing the encryption key within the REE (110).
  • the security of the electronic device (100) may be enhanced by storing the encryption key within the REE (110).
  • an external electronic device steals the encryption key, it may be impossible for the external electronic device to perform an electronic signature for a transaction using the encryption key.
  • the external electronic device since the external electronic device does not store the private key, it may be impossible to decrypt the encryption key.
  • the private key for decrypting the encryption key is located within the TEE (120), the private key can be securely managed within the TEE (120).
  • the electronic device (100) can prevent the private key from being stored within the REE (110) by generating or using the private key for decrypting the encryption key within the TEE (120).
  • At least one processor (207) may receive a second user input for an electronic signature of a transaction based on the encryption key through the first software application running on the REE (110).
  • the electronic device (100) may request the reception of the second user input to perform an electronic signature for the transaction.
  • the second user input may be requested to perform an electronic signature for the transaction.
  • the second user input may include user authentication.
  • the second user input may include a user authentication different from the user authentication included in the first user input.
  • the electronic device (100) may perform an electronic signature for the transaction by receiving the second user input after receiving the first user input.
  • the authentication method corresponding to the first user input and the authentication method corresponding to the second user input may be the same method.
  • the present invention is not limited thereto.
  • the authentication method corresponding to the first user input and the authentication method corresponding to the second user input may be different methods.
  • At least one processor (207) may, in response to receiving a second user input, obtain a private key (e.g., the first private key (460) of FIG. 6) to be used for decrypting the encryption key from a root seed (e.g., the root seed (610) of FIG. 6) managed within the TEE (120).
  • a private key e.g., the first private key (460) of FIG. 6
  • a root seed e.g., the root seed (610) of FIG. 6) managed within the TEE (120).
  • at least one processor (207) may obtain or derive the private key from the root seed using a hierarchical deterministic path.
  • the private key may be a pair with a public key used for encryption of the partial key in operation 330.
  • the hierarchical deterministic path of the private key and the hierarchical deterministic path of the public key may be common.
  • the hierarchical deterministic path of the private key and the hierarchical deterministic path of the public key may be the same.
  • at least one processor (207) may obtain a pair of a public key and a private key from the root seed according to the hierarchical deterministic path.
  • at least one processor (207) can obtain or derive a pair of private keys and public keys by computing a function from the root seed based on a hierarchical deterministic path.
  • At least one processor (207) can obtain a partial key by decrypting the encryption key using the private key.
  • at least one processor (207) can decrypt an encryption key encrypted by a public key using a private key corresponding to the public key.
  • a key storage e.g., key storage (526) of FIG. 5 within the electronic device (100) can obtain a partial key by decrypting the encryption key using the private key.
  • At least one processor (207) can transmit a request for decryption of an encryption key from a multi-party computation software application (e.g., multi-party computation software application (516) of FIG. 5) to the key storage via the communication circuit (205).
  • a multi-party computation software application e.g., multi-party computation software application (516) of FIG. 5
  • At least one processor (207) may identify the partial key used at the time of generating the encryption key from the partial key, from backup data generated at the time of generating the encryption key. For example, at least one processor (207) may verify the partial key obtained by decrypting the encryption key using the backup data. The verification of the partial key is described and illustrated in more detail with reference to FIG. 4.
  • Figure 4 illustrates an example of verifying a partial key.
  • the state (410) can be described as a state in which backup data (470) is obtained by encrypting the partial key (440) using the first public key (465).
  • At least one processor (207) can identify the partial key (440) used at the time of generating the encryption key (450) from the partial key (440), from the backup data (470) generated at the time of generating the encryption key (450) from the partial key (440). For example, at least one processor (207) can verify the partial key (440) obtained by decrypting the encryption key (450) using the backup data (470).
  • At least one processor (207) can generate backup data (470) for the partial key (440) while obtaining the encryption key (450) corresponding to the partial key (440) by encrypting the partial key (440) using the public key.
  • the backup data (470) may include data regarding the partial key (440).
  • at least one processor (207) may use the backup data (470) to identify the partial key (440) corresponding to the backup data (470).
  • State (420) can be described as a state in which a partial key (440) is obtained by decrypting an encryption key (450) using a first private key (460).
  • State (430) can be described as a state in which the obtained partial key (440) is verified using backup data (470).
  • at least one processor (207) can verify the partial key (440) obtained by decrypting the encryption key (450) by comparing the partial key (440) obtained by decrypting the encryption key (450) with the partial key (440) identified from the backup data (470).
  • the electronic device (100) can improve the security quality by comparing the partial key (440) obtained by decrypting the backup data (470) and the encryption key (450).
  • the electronic device (100) can prevent the partial key (440) from being forged or stolen based on the comparison.
  • At least one processor (207) may perform an electronic signature for a transaction using the partial key (440).
  • at least one processor (207) may partially perform an electronic signature to perform a complete electronic signature for the transaction using the partial key (440).
  • the partial key (440) may be used in a multi-party computation technique.
  • the partial key (440) may be generated by logically dividing a key for performing an electronic signature for the transaction.
  • a complete electronic signature for the transaction may be performed when the number of partial electronic signatures by each of the partial keys (440) stored in each of the external electronic devices exceeds a threshold number.
  • at least one processor (207) may transmit a signal to another electronic device (not shown) via the communication circuit (205) indicating that an electronic signature for the transaction is performed using the partial key (440).
  • At least one processor (207) can generate a partial key (440) within the TEE (120). At least one processor (207) can store an encryption key (450) encrypted by a public key within the REE (110). The generation of the partial key (440) and the storage of the encryption key (450) are described and exemplified in more detail with reference to FIG. 5.
  • Figure 5 illustrates an example of generating a partial key within a TEE.
  • an electronic device (100) may include an REE (110) and a TEE (120).
  • the electronic device (100) may execute a first software application (510) within the REE (110).
  • the first software application (510) may be referred to as a wallet app or a wallet software application.
  • the first software application (510) may include a software application for providing a payment function.
  • the first software application (510) may include a software application that provides a function for performing an electronic signature for a transaction.
  • the electronic device (100) may execute a second software application (520) within the REE (110).
  • the first software application (510) may be connected to a multi-party operation software development kit (SDK) (e.g., the first multi-party operation SDK (512-1) to the Nth multi-party operation SDK (512-N)) (N is a natural number greater than or equal to 2).
  • SDK multi-party operation software development kit
  • the multi-party operation SDK (512) may be used to connect the first software application (510) running in the REE (110) and the multi-party operation software application (516) running in the TEE (120) (e.g., the Nth multi-party operation software application (516-N)).
  • the SDK may be described as a set of software development tools for creating software applications for a specific platform of the electronic device (100).
  • the SDK may include source code, development tools, an emulator, and a library for creating a software application for a specific platform.
  • the multiparty operation SDK (512) may include a software application created by the SDK to perform a multiparty operation technique.
  • the multiparty operation SDK (512) may include a multiparty operation engine interface (e.g., an N-th multiparty operation engine interface (514-N)) (514).
  • the first multiparty operation engine interface (514-1) may be executed within the first multiparty operation SDK (512-1).
  • the N-th multiparty operation engine interface (514-N) may be executed within the N-th multiparty operation SDK (512-N).
  • the first multiparty operation SDK (512-1) may correspond to the first multiparty operation software application (516-1).
  • the N-th multiparty operation SDK (512-N) may correspond to the N-th multiparty operation software application (516-N).
  • the multi-party operation SDK (512) may send a request to the multi-party operation software application (516) to generate a partial key (440).
  • the multi-party operation software application (516) may generate the partial key (440) within the TEE (120) based on receiving the request.
  • a multi-party computation software application (516) running within a TEE (120) may be described as a trusted application (TA).
  • TA trusted application
  • a trusted application may include one or more applications that may perform functions such as digital rights management (DRM), security, payment, or biometric authentication.
  • DRM digital rights management
  • at least one processor (207) may generate a partial key (440) using the multi-party computation software application (516).
  • at least one processor (207) may generate a partial key (440) by logically dividing a key to perform an electronic signature for a transaction using a first multi-party computation software application (516-1).
  • At least one processor (207) may generate a partial key different from the partial key (440) corresponding to the first multi-party computation software application (516-1) by logically dividing a key to perform an electronic signature for a transaction using an Nth multi-party computation software application (516-N).
  • the algorithm for generating a partial key (440) corresponding to the first multi-party computation software application (516-1) and the algorithm for generating another partial key corresponding to the Nth multi-party computation software application (516-N) may be different algorithms.
  • the present invention is not limited thereto.
  • the algorithm for generating a partial key (440) corresponding to the first multi-party computation software application (516-1) and the algorithm for generating another partial key corresponding to the Nth multi-party computation software application (516-N) may be the same algorithm.
  • the first multi-party computation software application (516-1) may include a multi-party computation engine wrapper (MPC engine wrapper) (518-1).
  • the first multi-party computation software application (516-1) may include a multi-party computation engine (MPC engine) (519-1).
  • the Nth multi-party computation software application (516-N) may include a multi-party computation engine wrapper (MPC engine wrapper) (518-N).
  • the Nth multi-party computation software application (516-1) may include a multi-party computation engine (MPC engine) (519-N).
  • the multi-party computation engine wrapper (518-1) may be described as a software application for configuring the multi-party computation engine (519-1) to run.
  • at least one processor (207) may generate a partial key (440) by logically dividing a key to perform an electronic signature for a transaction using the multi-party computation engine (519-1).
  • At least one processor (207) may execute a second software application (520) within the REE (110).
  • the second software application (520) may be referred to as a blockchain app or a blockchain software application.
  • the first software application (510) and the second software application (520) are illustrated as being distinct, but the present disclosure is not limited thereto.
  • the first software application (510) and the second software application (520) may be the same software application.
  • the first software application (510) and the second software application (520) may be included in a single software application.
  • the first software application (510) may include the second software application (520).
  • the second software application (520) may include a platform SDK (522).
  • the second software application (520) may include a key store SDK (524).
  • the platform SDK (522) may include a software application created by the SDK to connect the second software application (520) and the key store SDK (524).
  • the key store SDK (524) may include a software application created by the SDK to connect the second software application (520) and the key store (526).
  • at least one processor (207) may use the key store SDK (524) to transmit a request to the key store (526) to derive a public key and a private key from a root seed (e.g., the root seed (610) of FIG. 6) via the communication circuit (205).
  • at least one processor (207) may derive a public key and a private key from the root seed based on receiving the request using the key store (526).
  • Figure 6 illustrates an example of obtaining a private key and a public key using a hierarchical deterministic path.
  • the electronic device (100) may include a root seed (610).
  • the electronic device (100) may manage the root seed (610) within the TEE (120).
  • the root seed (610) may be used to derive a private key and a public key.
  • the root seed (610) may be used to derive the private key and the public key based on a hierarchical deterministic path.
  • at least one processor (207) may derive the private key and the public key using the root seed (610) and the hierarchical deterministic path.
  • the root seed (610) may be described as a bit string of a specified length (e.g., 512 bits).
  • the root seed (610) may be obtained through an operation based on a specified number of mnemonics and/or user codes (e.g., 12).
  • the root seed (610) can be generated by inputting a mnemonic symbol and/or a user code into a key stretching function (e.g., PBKDF2 (password-based key derivation function version 2)).
  • PBKDF2 key stretching function version 2
  • the root seed (610) can be generated by inputting a hash value of the mnemonic symbol and/or the user code into a key stretching function.
  • the root seed (610) can be generated by inputting a result value of repeating a hash algorithm (e.g., HMAC (hash-based message authentication code)-SHA (secure hash algorithm)-512) for the mnemonic symbol and/or the user code a specified number of times into the key stretching function.
  • a hash algorithm e.g., HMAC (hash-based message authentication code)-SHA (secure hash algorithm)-512
  • a hierarchical deterministic path may be described as a path for deriving a private key and a public key from a root seed (610).
  • the root seed (610) may derive each of its child keys (not shown) based on each of its parent keys (not shown) derived from the root seed (610).
  • the parent key may be identified by inputting the root seed (610) into a designated function (e.g., child key derivation function (CKD), HMAC-SHA-512).
  • CKD child key derivation function
  • HMAC-SHA-512 HMAC-SHA-512
  • a first hierarchical deterministic path may be determined using an identifier of a first multi-party computation software application (516-1).
  • an Nth hierarchical deterministic path may be determined using an identifier of an Nth multi-party computation software application (516-N).
  • the first layer deterministic path can be determined using the number of multi-party computation software applications (516) within the electronic device (100).
  • the Nth layer deterministic path can be determined using the number of multi-party computation software applications (516) within the electronic device (100).
  • the layer deterministic path can be determined using the identifier of the multi-party computation software application (516) and the number of multi-party computation software applications (516).
  • At least one processor (207) can obtain or derive a private key and a public key through a key store (526) within the TEE (120). For example, at least one processor (207) can obtain a first private key (460) and a first public key (465) using a first layer deterministic path. For example, at least one processor (207) can obtain a second private key (630) and a first public key (465) using a second layer deterministic path that is different from the first layer deterministic path. For example, the first private key (460) and the first public key (465) can correspond to the first layer deterministic path. For example, the second private key (630) and the second public key (635) can correspond to the second layer deterministic path.
  • At least one processor (207) can obtain or derive a first private key (460) and a second private key (630) different from the first private key (460) from one root seed (610) based on the difference between the first layer deterministic path and the second layer deterministic path.
  • the first public key (465) can be identified based on the first private key (460).
  • at least one processor (207) can identify the first public key (465) by applying elliptic curve cryptography (ECC) to the first private key (460). Since the first public key (465) and the first private key (460) are paired, they can be used in an asymmetric encryption technique.
  • ECC elliptic curve cryptography
  • At least one processor (207) can encrypt a partial key (440) generated using a first public key (465). Encryption using the public key is described and exemplified in more detail with reference to FIG. 7.
  • FIG. 7 is a flowchart illustrating an exemplary method for generating a partial key. This method may be executed by the electronic device (100) illustrated in FIG. 3 or by at least one processor (207) of the electronic device (100).
  • At operation 710 at least one processor (207) may transmit a request for provision of a first public key (465) from a first software application (510) to a second software application (520) based on user input that causes generation of a partial key (440).
  • At operation 712 at least one processor (207) may forward the request from the second software application (520) to the platform SDK (522).
  • At operation 720, at least one processor (207) may generate a first layer deterministic path for deriving a first public key (465) via the platform SDK (522).
  • the platform SDK (522) may generate the first layer deterministic path using a number of multi-party computation software applications including the first multi-party computation software application (516-1) stored in the electronic device (100) and/or an identifier for the first multi-party computation software application (516-1).
  • the at least one processor (207) may generate the first layer deterministic path in the platform SDK (522) based on a request to derive the first public key (465) using the first layer deterministic path identified based on the first software application (510).
  • At operation 722, at least one processor (207) may transmit a request from the platform SDK (522) to the key storage SDK (524) to derive a first public key (465) using a first layer deterministic path.
  • At operation 724, at least one processor (207) may transmit a request from the key store SDK (524) to the key store (526) to derive a first public key (465) using a first layer deterministic path.
  • At operation 730, at least one processor (207) may derive a key pair comprising a first public key (465) and a first private key (460) from a root seed (610) located within the TEE (120) using a first layer deterministic path.
  • at least one processor (207) may derive a key pair comprising a first public key (465) and a first private key (460) from a key store (526) based on a request to derive the first public key (465) using a first layer deterministic path identified based on the platform SDK (522).
  • At least one processor (207) may wrap a first public key (465) in a key storage (526). By wrapping the first public key (465), the at least one processor (207) may obtain a wrapped first public key (465). For example, the at least one processor (207) may identify a first layer deterministic path using the wrapped first public key (465).
  • At operation 742, at least one processor (207) may transfer the wrapped first public key (465) from the key store (526) to the key store SDK (742).
  • At operation 744, at least one processor (207) may transfer the wrapped first public key (465) from the key storage SDK (524) to the platform SDK (522).
  • At operation 746, at least one processor (207) may transmit the wrapped first public key (465) from the platform SDK (522) to the second software application (520).
  • At operation 748, at least one processor (207) may transfer the wrapped first public key (465) from the second software application (520) to the first software application (510).
  • At operation 750, at least one processor (207) may transmit a request to generate a partial key (440) from a first software application (510) to a multi-party operation SDK (512).
  • At operation 752, at least one processor (207) may forward the request from the multi-party operation SDK (512) to the multi-party operation software application (516).
  • At operation 760, at least one processor (207) can identify a source of the wrapped first public key (465). For example, the at least one processor (207) can identify a first layer deterministic path used to derive the first public key (465) from the root seed (610) using the wrapped first public key (465). For example, the at least one processor (207) can obtain identification information indicating the first layer deterministic path used to derive the first public key (465) from the root seed (610) by unwrapping the wrapped first public key (465). The at least one processor (207) can verify the first public key (465) by comparing the identification information with the first layer deterministic path.
  • At operation 770, at least one processor (207) may generate a partial key (440) via a multi-party computation software application (516) within the TEE (120).
  • the at least one processor (207) may generate the partial key (440) by logically partitioning a key.
  • the at least one processor (207) may generate the partial key (440) by mathematically partitioning a key for an electronic signature.
  • the at least one processor (207) may generate the partial key (440) in the multi-party computation software application (516) based on a request to generate the identified partial key (440) based on the first software application (510).
  • At least one processor (207) may generate an encryption key (450) by encrypting the generated partial key (440) using the first public key (465) within the TEE (120). For example, at least one processor (207) may generate the encryption key (450) through a multi-party computation software application (516) within the TEE (120). For example, while generating the encryption key (450), at least one processor (207) may generate backup data (470) for the partial key (440). For example, the backup data (470) may be used to verify the partial key (440).
  • the encryption key (450) may be described as a partial key (440) encrypted by a public key.
  • At operation 782, at least one processor (207) may transmit an encryption key (450) from a multi-party computation software application (516) to a multi-party computation SDK (512).
  • At operation 784, at least one processor (207) may transmit an encryption key (450) from a multi-party operation SDK (512) to a first software application (510).
  • At operation 790, at least one processor (207) may store an encryption key (450) within the REE (110). For example, at least one processor (207) may manage the encryption key (450) via a first software application (510).
  • At least one processor (207) may decrypt the encryption key (450) into a partial key (440) for performing electronic signature of the transaction.
  • the decryption of the encryption key (450) and the use of the partial key (440) are described and exemplified in more detail with reference to FIG. 8.
  • FIG. 8 is a flowchart illustrating an exemplary method using a partial key. This method may be executed by the electronic device (100) illustrated in FIG. 3 or by at least one processor (207) of the electronic device (100).
  • At operation 810 at least one processor (207) may transmit a request from a first software application (510) to a multi-party operation SDK (512) to perform an electronic signature for a transaction using an encryption key (450).
  • At operation 812 at least one processor (207) may forward the request from the multi-party operation SDK to the multi-party operation software application (516).
  • At operation 820 at least one processor (207) may transmit a request from a first software application (510) to a second software application (520) to prepare decryption of an encryption key (450).
  • At operation 822, at least one processor (207) may forward the request from the second software application (520) to the platform SDK (522).
  • At operation 830 at least one processor (207) may generate or obtain a hierarchical deterministic path.
  • operation 830 may correspond to operation 720.
  • at least one processor (207) may generate or obtain a hierarchical deterministic path from the platform SDK (522) based on a request to prepare decryption of an identified encryption key (450) based on the first software application (510).
  • At operation 832, at least one processor (207) may transmit a request from the platform SDK (522) to the key storage SDK (524) to prepare decryption of an encryption key (450) using a hierarchical deterministic path.
  • At operation 834, at least one processor (207) may transmit a request from the key store SDK (524) to the key store (526) to prepare decryption of the encryption key (450) using a hierarchical deterministic path.
  • At operation 840, at least one processor (207) may derive or obtain a key pair of a private key (e.g., a first private key (460)) and a public key (e.g., a first public key (465)) from a root seed (610) via a key store (526).
  • operation 840 may correspond to operation 730.
  • at least one processor (207) may derive or generate a key pair including a private key and a public key from a key store (526) based on a request to prepare decryption of an encryption key (450) using a hierarchical deterministic path identified based on the platform SDK (522).
  • At operation 842, at least one processor (207) may transmit a request to decrypt an encryption key (450) from a multi-party computing software application (516) to a key store (526). For example, at least one processor (207) may transmit the request from the multi-party computing software application (516) to the key store (526) via the communication circuit (205).
  • a first trusted application within the TEE (120) may utilize the communication circuit (205) to communicate signals, information, or data with a second trusted application within the TEE (120).
  • At operation 850, at least one processor (207) may obtain a partial key (440) by decrypting an encryption key (450) using a private key. For example, at least one processor (207) may obtain a partial key (440) from a key storage (526) by decrypting an encryption key (450) using the private key based on a request to decrypt an identified encryption key (450) based on a multi-party computation software application (516). For example, at least one processor (207) may verify the partial key (440) using backup data (470). For example, at least one processor (207) may identify a partial key (440) that was used at the time of generating the backup data (470) from the backup data (470).
  • At least one processor (207) can verify the obtained partial key (440) by decrypting the encryption key (450) by comparing the obtained partial key (440) with the identified partial key (440) from the backup data (470). However, this is not limited thereto. At least one processor (207) can skip or bypass verifying the obtained partial key (440) by decrypting the encryption key (450) using the backup data (470).
  • At operation 852, at least one processor (207) may communicate the partial key (440) from the key store (526) to the multi-party computation software application (516). For example, the at least one processor (207) may communicate the partial key (440) from the key store (526) within the TEE (120) to the multi-party computation software application (516). For example, the at least one processor (207) may communicate the partial key (440) from the key store (526) to the multi-party computation software application (516) via the communication circuit (205). For example, since the key store (526) and the multi-party computation software application (516) are located within the TEE (120), the at least one processor (207) may utilize the communication circuit (205) to communicate the partial key (440).
  • At operation 860, at least one processor (207) may perform an electronic signature for a transaction using the partial key (440). For example, based on a request to perform an electronic signature for a transaction using the partial key (440) identified based on the first software application (510), the at least one processor (207) may perform an electronic signature for the transaction in a multi-party computation software application (516). For example, since the partial key (440) is used in a multi-party computation technique, the at least one processor (207) may partially perform an electronic signature for the transaction using the partial key (440). For example, the electronic signature for the transaction may be completely performed based on the electronic signature for the transaction being partially performed from each of a plurality of electronic devices in which each of the partial keys (440) for electronic signature for the transaction is stored. For example, based on the completely performed electronic signature, the block including the transaction may be connected to another block or committed to the blockchain.
  • At least one processor (207) may display a screen for receiving user input on a display (208) of the electronic device (100). At least one processor (207) may receive user input while displaying the screen on the display (208). The reception of the user input is described and illustrated in more detail with reference to FIG. 9.
  • Figure 9 illustrates an example of performing an electronic signature for a transaction in response to receiving user input.
  • At least one processor (207) may display a screen (910) for logging into a first software application (510) (or electronic device (100)) on the display (208).
  • the screen (910) may include an area (915) for receiving user input.
  • the at least one processor (207) may receive user input through the area (915) to identify whether the user of the electronic device (100) is authorized.
  • the area (915) may be described as an area for touching a user's fingerprint.
  • the at least one processor (207) may authenticate a user using the area (915).
  • At least one processor (207) may display a screen (e.g., screen (920), screen (930)) for performing an electronic signature for a transaction based on user authentication from screen (910) on the display (208).
  • screen (920) may be described as a screen for performing an electronic signature for a first transaction.
  • screen (930) may be described as a screen for performing an electronic signature for a second transaction different from the first transaction.
  • screen (920) may include an area (925) for receiving a user input.
  • screen (930) may include an area (935) for receiving a user input.
  • at least one processor (207) may perform an electronic signature using a partial key (440) corresponding to the first transaction by receiving a user input from area (925).
  • At least one processor (207) may perform an electronic signature using a partial key (440) corresponding to a second transaction by receiving a user input from the area (935).
  • the first partial key (e.g., partial key (440)) for performing an electronic signature for the first transaction may be different from the second partial key for performing an electronic signature for the second transaction.
  • the electronic device (100) can manage the partial key (440) by encrypting or decrypting the partial key (440) using the private key and the public key derived from the root seed (610). For example, the electronic device (100) can manage the first partial key (440) corresponding to the first multi-party computation software application (516-1) and the N-th partial key (440) corresponding to the N-th multi-party computation software application (516-N) using the first software application (510) and the second software application (520). For example, after receiving a user input to log in to a server corresponding to the first multi-party computation software application (516-1), the electronic device (100) can skip receiving another user input to log in to another server corresponding to the N-th multi-party computation software application (516-N).
  • the electronic device (100) can improve user convenience by reducing the number of times it receives user input. For example, since the root seed (610) is used by at least two of the first multi-party operation software application (516-1) to the Nth multi-party operation software application (516-N), the number of user inputs required to perform two or more electronic signatures can be reduced.
  • the security quality of the electronic device (100) can be improved by generating or using a partial key (440) for performing an electronic signature for a transaction within the TEE (120).
  • FIG. 10 is a block diagram of an electronic device within a network environment according to various embodiments.
  • FIG. 10 is a block diagram of an electronic device (1001) within a network environment (1000) according to various embodiments.
  • the electronic device (1001) may communicate with the electronic device (1002) via a first network (1098) (e.g., a short-range wireless communication network), or may communicate with at least one of the electronic device (1004) or the server (1008) via a second network (1099) (e.g., a long-range wireless communication network).
  • the electronic device (1001) may communicate with the electronic device (1004) via the server (1008).
  • the electronic device (1001) may include a processor (1020), a memory (1030), an input module (1050), an audio output module (1055), a display module (1060), an audio module (1070), a sensor module (1076), an interface (1077), a connection terminal (1078), a haptic module (1079), a camera module (1080), a power management module (1088), a battery (1089), a communication module (1090), a subscriber identification module (1096), or an antenna module (1097).
  • the electronic device (1001) may omit at least one of these components (e.g., the connection terminal (1078)), or may have one or more other components added.
  • some of these components e.g., sensor module (1076), camera module (1080), or antenna module (1097) may be integrated into a single component (e.g., display module (1060)).
  • the processor (1020) may, for example, execute software (e.g., a program (1040)) to control at least one other component (e.g., a hardware or software component) of the electronic device (1001) connected to the processor (1020) and perform various data processing or operations.
  • the processor (1020) may store commands or data received from other components (e.g., a sensor module (1076) or a communication module (1090)) in a volatile memory (1032), process the commands or data stored in the volatile memory (1032), and store result data in a non-volatile memory (1034).
  • the processor (1020) may include a main processor (1021) (e.g., a central processing unit or an application processor) or an auxiliary processor (1023) (e.g., a graphics processing unit, a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor) that can operate independently or together with the main processor (1021).
  • a main processor (1021) e.g., a central processing unit or an application processor
  • an auxiliary processor (1023) e.g., a graphics processing unit, a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor
  • the auxiliary processor (1023) may be configured to use less power than the main processor (1021) or to be specialized for a given function.
  • the auxiliary processor (1023) may be implemented separately from the main processor (1021) or as a part thereof.
  • the auxiliary processor (1023) may control at least a portion of functions or states associated with at least one component (e.g., the display module (1060), the sensor module (1076), or the communication module (1090)) of the electronic device (1001), for example, on behalf of the main processor (1021) while the main processor (1021) is in an inactive (e.g., sleep) state, or together with the main processor (1021) while the main processor (1021) is in an active (e.g., application execution) state.
  • the auxiliary processor (1023) e.g., an image signal processor or a communication processor
  • the auxiliary processor (1023) may include a hardware structure specialized for processing artificial intelligence models.
  • the artificial intelligence models may be generated through machine learning. This learning can be performed, for example, in the electronic device (1001) itself where the artificial intelligence model is executed, or can be performed through a separate server (e.g., server (1008)).
  • the learning algorithm can include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but is not limited to the examples described above.
  • the artificial intelligence model can include a plurality of artificial neural network layers.
  • the artificial neural network can be one of a deep neural network (DNN), a convolutional neural network (CNN), a recurrent neural network (RNN), a restricted Boltzmann machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), deep Q-networks, or a combination of two or more of the above, but is not limited to the examples described above.
  • the artificial intelligence model can additionally or alternatively include a software structure.
  • the memory (1030) can store various data used by at least one component (e.g., the processor (1020) or the sensor module (1076)) of the electronic device (1001).
  • the data can include, for example, software (e.g., the program (1040)) and input data or output data for commands related thereto.
  • the memory (1030) can include volatile memory (1032) or non-volatile memory (1034).
  • the program (1040) may be stored as software in memory (1030) and may include, for example, an operating system (1042), middleware (1044), or an application (1046).
  • the input module (1050) can receive commands or data to be used in a component of the electronic device (1001) (e.g., a processor (1020)) from an external source (e.g., a user) of the electronic device (1001).
  • the input module (1050) can include, for example, a microphone, a mouse, a keyboard, a key (e.g., a button), or a digital pen (e.g., a stylus pen).
  • the audio output module (1055) can output audio signals to the outside of the electronic device (1001).
  • the audio output module (1055) can include, for example, a speaker or a receiver.
  • the speaker can be used for general purposes, such as multimedia playback or recording playback.
  • the receiver can be used to receive incoming calls. In one embodiment, the receiver can be implemented separately from the speaker or as part of the speaker.
  • the display module (1060) can visually provide information to an external party (e.g., a user) of the electronic device (1001).
  • the display module (1060) may include, for example, a display, a holographic device, or a projector, and a control circuit for controlling the device.
  • the display module (1060) may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of a force generated by the touch.
  • the audio module (1070) can convert sound into an electrical signal, or vice versa, convert an electrical signal into sound. According to one embodiment, the audio module (1070) can acquire sound through the input module (1050), output sound through the sound output module (1055), or an external electronic device (e.g., electronic device (1002)) (e.g., speaker or headphone) directly or wirelessly connected to the electronic device (1001).
  • an external electronic device e.g., electronic device (1002)
  • an external electronic device e.g., electronic device (1002)
  • speaker or headphone directly or wirelessly connected to the electronic device (1001).
  • the sensor module (1076) can detect the operating status (e.g., power or temperature) of the electronic device (1001) or the external environmental status (e.g., user status) and generate an electrical signal or data value corresponding to the detected status.
  • the sensor module (1076) can include, for example, a gesture sensor, a gyro sensor, a barometric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, a temperature sensor, a humidity sensor, or an illuminance sensor.
  • the interface (1077) may support one or more designated protocols that may be used to directly or wirelessly connect the electronic device (1001) to an external electronic device (e.g., the electronic device (1002)).
  • the interface (1077) 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
  • the connection terminal (1078) may include a connector through which the electronic device (1001) may be physically connected to an external electronic device (e.g., the electronic device (1002)).
  • the connection terminal (1078) may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).
  • the haptic module (1079) can convert electrical signals into mechanical stimuli (e.g., vibration or movement) or electrical stimuli that a user can perceive through tactile or kinesthetic sensations.
  • the haptic module (1079) can include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
  • the camera module (1080) can capture still images and videos.
  • the camera module (1080) may include one or more lenses, image sensors, image signal processors, or flashes.
  • the power management module (1088) can manage power supplied to the electronic device (1001).
  • the power management module (1088) can be implemented as, for example, at least a part of a power management integrated circuit (PMIC).
  • PMIC power management integrated circuit
  • a battery (1089) may power at least one component of the electronic device (1001).
  • the battery (1089) may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.
  • the communication module (1090) may support the establishment of a direct (e.g., wired) communication channel or a wireless communication channel between the electronic device (1001) and an external electronic device (e.g., electronic device (1002), electronic device (1004), or server (1008)), and the performance of communication through the established communication channel.
  • the communication module (1090) may operate independently from the processor (1020) (e.g., application processor) and may include one or more communication processors that support direct (e.g., wired) communication or wireless communication.
  • the communication module (1090) may include a wireless communication module (1092) (e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module (1094) (e.g., a local area network (LAN) communication module, or a power line communication module).
  • a wireless communication module (1092) e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module
  • GNSS global navigation satellite system
  • a wired communication module (1094) e.g., a local area network (LAN) communication module, or a power line communication module.
  • a corresponding communication module can communicate with an external electronic device (1004) via a first network (1098) (e.g., a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network (1099) (e.g., a long-range communication network such as a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN)).
  • a first network e.g., a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)
  • a second network (1099) e.g., a long-range communication network such as a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN)
  • a first network e.g.
  • the wireless communication module (1092) can verify or authenticate the electronic device (1001) within a communication network such as the first network (1098) or the second network (1099) by using subscriber information (e.g., an international mobile subscriber identity (IMSI)) stored in the subscriber identification module (1096).
  • subscriber information e.g., an international mobile subscriber identity (IMSI)
  • the wireless communication module (1092) can support 5G networks and next-generation communication technologies following the 4G network, such as NR access technology (new radio access technology).
  • NR access technology can support high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), minimizing terminal power and connecting multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency (URLLC (ultra-reliable and low-latency communications)).
  • eMBB enhanced mobile broadband
  • mMTC massive machine type communications
  • URLLC ultra-reliable and low-latency communications
  • the wireless communication module (1092) can support, for example, a high-frequency band (e.g., mmWave band) to achieve a high data transmission rate.
  • a high-frequency band e.g., mmWave band
  • the wireless communication module (1092) may support various technologies for securing performance in a high-frequency band, such as beamforming, massive multiple-input and multiple-output (MIMO), full dimensional MIMO (FD-MIMO), array antenna, analog beam-forming, or large scale antenna.
  • the wireless communication module (1092) may support various requirements specified in the electronic device (1001), an external electronic device (e.g., the electronic device (1004)), or a network system (e.g., the second network (1099)).
  • the wireless communication module (1092) may support a peak data rate (e.g., 20 Gbps or more) for eMBB realization, a loss coverage (e.g., 164 dB or less) for mMTC realization, or a U-plane latency (e.g., 0.5 ms or less for downlink (DL) and uplink (UL), or 1 ms or less for round trip) for URLLC realization.
  • a peak data rate e.g., 20 Gbps or more
  • a loss coverage e.g., 164 dB or less
  • U-plane latency e.g., 0.5 ms or less for downlink (DL) and uplink (UL), or 1 ms or less for round trip
  • the antenna module (1097) can transmit or receive signals or power to or from an external device (e.g., an external electronic device).
  • the antenna module (1097) may include an antenna including a radiator formed of a conductor or a conductive pattern formed on a substrate (e.g., a PCB).
  • the antenna module (1097) may include a plurality of antennas (e.g., an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network, such as the first network (1098) or the second network (1099), may be selected from the plurality of antennas by, for example, the communication module (1090). A signal or power may be transmitted or received between the communication module (1090) and an external electronic device via the at least one selected antenna.
  • another component e.g., a radio frequency integrated circuit (RFIC)
  • RFIC radio frequency integrated circuit
  • the antenna module (1097) may form a mmWave antenna module.
  • the mmWave antenna module may include a printed circuit board, an RFIC disposed on or adjacent a first side (e.g., a bottom side) of the printed circuit board and capable of supporting a designated high frequency band (e.g., a mmWave band), and a plurality of antennas (e.g., an array antenna) disposed on or adjacent a second side (e.g., a top side or a side side) of the printed circuit board and capable of transmitting or receiving signals in the designated high frequency band.
  • a first side e.g., a bottom side
  • a plurality of antennas e.g., an array antenna
  • At least some of the above components can be interconnected and exchange signals (e.g., commands or data) with each other via a communication method between peripheral devices (e.g., a bus, GPIO (general purpose input and output), SPI (serial peripheral interface), or MIPI (mobile industry processor interface)).
  • peripheral devices e.g., a bus, GPIO (general purpose input and output), SPI (serial peripheral interface), or MIPI (mobile industry processor interface)).
  • commands or data may be transmitted or received between the electronic device (1001) and an external electronic device (1004) via a server (1008) connected to a second network (1099).
  • Each of the external electronic devices (1002 or 1004) may be the same or a different type of device as the electronic device (1001).
  • all or part of the operations executed in the electronic device (1001) may be executed in one or more of the external electronic devices (1002, 1004, or 1008). For example, when the electronic device (1001) is to perform a certain function or service automatically or in response to a request from a user or another device, the electronic device (1001) may, instead of or in addition to executing the function or service itself, request one or more external electronic devices to perform the function or at least a part of the service.
  • One or more external electronic devices that receive the request may execute at least a portion of the requested function or service, or an additional function or service related to the request, and transmit the result of the execution to the electronic device (1001).
  • the electronic device (1001) may process the result as is or additionally and provide it as at least a portion of a response to the request.
  • cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used, for example.
  • the electronic device (1001) may provide an ultra-low latency service by using distributed computing or mobile edge computing, for example.
  • the external electronic device (1004) may include an Internet of Things (IoT) device.
  • the server (1008) may be an intelligent server utilizing machine learning and/or a neural network.
  • the external electronic device (1004) or the server (1008) may be included in the second network (1099).
  • the electronic device (1001) can be applied to intelligent services (e.g., smart home, smart city, smart car, or healthcare) based on 5G communication technology and IoT-related technology.
  • An electronic device as described above may include a memory (206) storing instructions.
  • the electronic device may include at least one processor (207).
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to receive user input for electronic signature of a transaction based on an encryption key (450) via a software application (510) executing on the basis of the REE (110).
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to, in response to receiving the user input, obtain a private key (460) to be used for decrypting the encryption key (450) from a root seed (610) managed within a TEE (120) (trusted execution environment) different from the REE (110).
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to obtain a partial key (440) corresponding to the encryption key (450) by decrypting the encryption key (450) using the private key (460).
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to perform an electronic signature for the transaction using the partial key (440).
  • the user input may include a first user input.
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to receive a second user input, which causes the software application (510) executing based on the REE (110) and managing cryptographic keys (450) to generate the partial key (440) to be used for electronic signature.
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to generate the partial key (440) within the TEE (120) in response to receiving the second user input.
  • the above instructions when individually or collectively executed by the at least one processor, may cause the electronic device to obtain the encryption key (450) corresponding to the partial key (440) by encrypting the partial key (440) using a public key (465) included in one of the pairs of a private key (460) and a public key (465) derived from the root seed (610) and managed within the TEE (120).
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to store the obtained encryption key (450) within the REE (110).
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to obtain identification information indicative of a hierarchical deterministic path used to derive the public key (465) from the root seed (610).
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to verify the public key (465) based on whether the identification information and the hierarchical deterministic path match.
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to identify, from backup data (470) generated at the time of generating the encryption key (450) from the partial key (440), the partial key (440) that was used at that time.
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to verify the partial key (440) obtained by decrypting the encryption key (450) by comparing the partial key (440) obtained by decrypting the encryption key (450) with the partial key (440) identified from the backup data (470).
  • the private key (460) may be obtained from the root seed (610) within the TEE (120) using a hierarchical deterministic path determined using an identifier of another software application (510) (516) corresponding to the partial key (440).
  • the partial key (440) is generated by logically dividing the private key (460) for a complete electronic signature for the transaction to perform multi-party computation, and can be used to perform a partial electronic signature for the transaction.
  • the method performed by the electronic device (100) may include an operation of receiving, through a software application (510) running on the basis of the REE (110), a user input for an electronic signature of a transaction based on an encryption key (450).
  • the method may include an operation of, in response to receiving the user input, obtaining a private key (460) to be used for decrypting the encryption key (450) from a root seed (610) managed within a TEE (120) (trusted execution environment) different from the REE (110).
  • the method may include an operation of decrypting the encryption key (450) using the private key (460) to obtain a partial key (440) corresponding to the encryption key (450).
  • the method may include an operation of performing an electronic signature for the transaction using the partial key (440).
  • the user input may include a first user input.
  • the method may include receiving, through the software application (510) that is executed based on the REE (110) and manages encryption keys (450), a second user input that causes generation of the partial key (440) to be used for electronic signature.
  • the method may include generating, within the TEE (120), the partial key (440) in response to receiving the second user input.
  • the method may include obtaining the encryption key (450) corresponding to the partial key (440) by encrypting the partial key (440) using a public key (465) included in one of pairs of a private key (460) and a public key (465) derived from the root seed (610) and managed within the TEE (120).
  • the method may include an operation of storing the obtained encryption key (450) within the REE (110).
  • the method may include obtaining identification information indicating a hierarchical deterministic path used to derive the public key (465) from the root seed (610).
  • the method may include verifying the public key (465) based on whether the identification information and the hierarchical deterministic path match.
  • the method may include an operation of identifying the partial key (440) used at the time of generating the encryption key (450) from the partial key (440), from backup data (470) generated at the time of generating the encryption key (450).
  • the method may include an operation of verifying the partial key (440) obtained by decrypting the encryption key (450) by comparing the partial key (440) obtained by decrypting the encryption key (450) and the partial key (440) identified from the backup data (470).
  • the private key (460) may be obtained from the root seed (610) within the TEE (120) using a hierarchical deterministic path determined using an identifier of another software application (510) (516) corresponding to the partial key (440).
  • the partial key (440) is generated by logically dividing the private key (460) for a complete electronic signature for the transaction to perform multi-party computation, and can be used to perform a partial electronic signature for the transaction.
  • the one or more programs may include instructions that, when executed by the electronic device (100), cause the electronic device to receive, through a software application (510) executed based on the REE (110), a user input for electronic signature of a transaction based on an encryption key (450).
  • the one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to, in response to receiving the user input, obtain, from a root seed (610) managed within a TEE (120) (trusted execution environment) different from the REE (110), a private key (460) to be used for decrypting the encryption key (450).
  • the one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to obtain a partial key (440) corresponding to the encryption key (450) by decrypting the encryption key (450) using the private key (460).
  • the one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to perform an electronic signature for the transaction using the partial key (440).
  • the user input may include a first user input.
  • the one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to receive a second user input that causes the software application (510) that runs based on the REE (110) and manages cryptographic keys (450) to generate the partial key (440) to be used for electronic signature.
  • the one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to generate the partial key (440) within the TEE (120) in response to receiving the second user input.
  • the one or more programs when executed by the electronic device, may include instructions that cause the electronic device to obtain the encryption key (450) corresponding to the partial key (440) by encrypting the partial key (440) using a public key (465) included in one of the pairs of a private key (460) and a public key (465) derived from the root seed (610), and managed within the TEE (120).
  • the one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to store the acquired encryption key (450) within the REE (110).
  • the one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to obtain identification information indicating a hierarchical deterministic path used to derive the public key (465) from the root seed (610).
  • the one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to verify the public key (465) based on whether the identification information and the hierarchical deterministic path match.
  • the one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to identify, from backup data (470) generated at the time of generating the encryption key (450) from the partial key (440), the partial key (440) used at that time.
  • the one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to verify the partial key (440) obtained by decrypting the encryption key (450) by comparing the partial key (440) obtained by decrypting the encryption key (450) with the partial key (440) identified from the backup data (470).
  • the private key (460) may be obtained from the root seed (610) within the TEE (120) using a hierarchical deterministic path determined using an identifier of another software application (510) (516) corresponding to the partial key (440).
  • the partial key (440) is generated by logically dividing the private key (460) for a complete electronic signature for the transaction to perform multi-party computation, and can be used to perform a partial electronic signature for the transaction.
  • An electronic device as described above may include a memory (206) storing instructions.
  • the electronic device may include at least one processor (207).
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to receive a first user input that causes generation of a partial key (440) to be used for electronic signature via a software application (510) executing based on a rich execution environment (REE) (110).
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to generate the partial key (440) within a trusted execution environment (TEE) (120) different from the REE (110), in response to receiving the first user input.
  • TEE trusted execution environment
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to obtain an encryption key (450) corresponding to the partial key (440) by encrypting the partial key (440) using a public key (465) included in one of pairs of a private key (460) and a public key (465) derived from a root seed (610) and managed within the TEE (120).
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to store the encryption key (450) that is linked to the software application (510) executing in the REE (110).
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to receive, through the software application (510) executing based on the REE (110), a second user input for electronic signature of a transaction based on the encryption key (450).
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device, in response to receiving the second user input, to obtain, from the root seed (610) managed within the TEE (120), a private key (460) to be used for decrypting the encryption key (450).
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to obtain the partial key (440) by decrypting the encryption key (450) using the private key (460).
  • the above instructions when individually or collectively executed by the at least one processor, may cause the electronic device to perform an electronic signature for the transaction using the partial key (440).
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to obtain identification information indicative of a hierarchical deterministic path used to derive the public key (465) from the root seed (610).
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to verify the public key (465) based on whether the identification information and the hierarchical deterministic path match.
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to identify, from backup data (470) generated at the time of generating the encryption key (450) from the partial key (440), the partial key (440) that was used at that time.
  • the instructions when individually or collectively executed by the at least one processor, may cause the electronic device to verify the partial key (440) obtained by decrypting the encryption key (450) by comparing the partial key (440) obtained by decrypting the encryption key (450) with the partial key (440) identified from the backup data (470).
  • the private key (460) may be obtained from the root seed (610) within the TEE (120) using a hierarchical deterministic path determined using an identifier of another software application (510) (516) corresponding to the partial key (440).
  • the partial key (440) is generated by logically dividing the private key (460) for a complete electronic signature for the transaction to perform multi-party computation, and can be used to perform a partial electronic signature for the transaction.
  • the method performed by the electronic device (100), as described above, may include receiving, through a software application (510) running on the basis of a rich execution environment (REE) (110), a first user input that causes generation of a partial key (440) to be used for an electronic signature.
  • the method may include generating, in response to receiving the first user input, the partial key (440) within a trusted execution environment (TEE) (120) different from the REE (110).
  • the method may include obtaining an encryption key (450) corresponding to the partial key (440) by encrypting the partial key (440) using a public key (465) included in one of pairs of a private key (460) and a public key (465) derived from a root seed (610) and managed within the TEE (120).
  • the method may include an operation of storing the encryption key (450) that is linked to the software application (510) running on the REE (110).
  • the method may include an operation of receiving, through the software application (510) running on the basis of the REE (110), a second user input for an electronic signature of a transaction based on the encryption key (450).
  • the method may include an operation of obtaining, in response to receiving the second user input, a private key (460) to be used for decrypting the encryption key (450) from the root seed (610) managed within the TEE (120).
  • the method may include an operation of obtaining the partial key (440) by decrypting the encryption key (450) using the private key (460).
  • the method may include an operation of performing an electronic signature for the transaction using the partial key (440).
  • the method may include obtaining identification information indicating a hierarchical deterministic path used to derive the public key (465) from the root seed (610).
  • the method may include verifying the public key (465) based on whether the identification information and the hierarchical deterministic path match.
  • the method may include an operation of identifying the partial key (440) used at the time of generating the encryption key (450) from the partial key (440), from backup data (470) generated at the time of generating the encryption key (450).
  • the method may include an operation of verifying the partial key (440) obtained by decrypting the encryption key (450) by comparing the partial key (440) obtained by decrypting the encryption key (450) and the partial key (440) identified from the backup data (470).
  • the private key (460) may be obtained from the root seed (610) within the TEE (120) using a hierarchical deterministic path determined using an identifier of another software application (510) (516) corresponding to the partial key (440).
  • the partial key (440) is generated by logically dividing the private key (460) for a complete electronic signature for the transaction to perform multi-party computation, and can be used to perform a partial electronic signature for the transaction.
  • the one or more programs may include instructions that, when executed by an electronic device (100), cause the electronic device to receive a first user input that causes generation of a partial key (440) to be used for an electronic signature through a software application (510) that is executed based on a rich execution environment (REE) (110).
  • the one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to generate the partial key (440) within a trusted execution environment (TEE) (120) that is different from the REE (110), in response to receiving the first user input.
  • TEE trusted execution environment
  • the one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to obtain an encryption key (450) corresponding to the partial key (440) by encrypting the partial key (440) using a public key (465) included in one of pairs of a private key (460) and a public key (465) derived from a root seed (610) and managed within the TEE (120).
  • the one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to store the encryption key (450) that is linked to the software application (510) executed in the REE (110).
  • the one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to receive, through the software application (510) executed based on the REE (110), a second user input for electronic signature of a transaction based on the encryption key (450).
  • the one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to, in response to receiving the second user input, obtain, from the root seed (610) managed within the TEE (120), a private key (460) to be used for decrypting the encryption key (450).
  • the one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to obtain, by decrypting the encryption key (450) using the private key (460), the partial key (440).
  • the one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to perform an electronic signature for the transaction using the partial key (440).
  • the one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to obtain identification information indicating a hierarchical deterministic path used to derive the public key (465) from the root seed (610).
  • the one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to verify the public key (465) based on whether the identification information and the hierarchical deterministic path match.
  • the one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to identify, from backup data (470) generated at the time of generating the encryption key (450) from the partial key (440), the partial key (440) used at that time.
  • the one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to verify the partial key (440) obtained by decrypting the encryption key (450) by comparing the partial key (440) obtained by decrypting the encryption key (450) with the partial key (440) identified from the backup data (470).
  • the private key (460) may be obtained from the root seed (610) within the TEE (120) using a hierarchical deterministic path determined using an identifier of another software application (510) (516) corresponding to the partial key (440).
  • the partial key (440) is generated by logically dividing the private key (460) for a complete electronic signature for the transaction to perform multi-party computation, and can be used to perform a partial electronic signature for the transaction.
  • the devices described above may be implemented as hardware components, software components, and/or a combination of hardware components and software components.
  • the devices and components described in the embodiments may be implemented using one or more general-purpose computers or special-purpose computers, such as a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), a programmable logic unit (PLU), a microprocessor, or any other device capable of executing instructions and responding to them.
  • the processing device may execute an operating system (OS) and one or more software applications running on the operating system.
  • the processing device may also access, store, manipulate, process, and generate data in response to the execution of the software.
  • OS operating system
  • the processing device may also access, store, manipulate, process, and generate data in response to the execution of the software.
  • processing device is sometimes described as being used alone; however, one of ordinary skill in the art will recognize that the processing device may include multiple processing elements and/or multiple types of processing elements.
  • a processing unit may include multiple processors, or a processor and a controller.
  • Other processing configurations, such as parallel processors, are also possible.
  • Software may include a computer program, code, instructions, or a combination of one or more of these, which may configure a processing device to perform a desired operation or may independently or collectively command the processing device.
  • the software and/or data may be embodied in any type of machine, component, physical device, computer storage medium, or device for interpretation by the processing device or for providing instructions or data to the processing device.
  • the software may also be distributed over networked computer systems and stored or executed in a distributed manner.
  • the software and data may be stored on one or more computer-readable recording media.
  • the method according to the embodiment may be implemented in the form of program commands that can be executed through various computer means and recorded on a computer-readable medium.
  • the medium may be one that continuously stores a computer-executable program or one that temporarily stores it for execution or download.
  • the medium may be various recording or storage means in the form of a single or multiple hardware combinations, and is not limited to a medium directly connected to a computer system, but may also be distributed over a network. Examples of the medium may include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, and those configured to store program commands, including ROM, RAM, and flash memory.
  • examples of other media may include recording or storage media managed by app stores that distribute applications, sites that supply or distribute various software, servers, etc.
  • the method according to the various embodiments disclosed in the present document may be provided as included in a computer program product.
  • the computer program product may be traded as a commodity between a seller and a buyer.
  • the computer program product may be distributed in the form of a machine-readable storage medium (e.g., compact disc read only memory (CD-ROM)), or may be distributed online (e.g., downloaded or uploaded) via an application store (e.g., Play StoreTM) or directly between two user devices (e.g., smart phones).
  • an application store e.g., Play StoreTM
  • at least a portion of the computer program product may be at least temporarily stored or temporarily generated in a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or a relay server.
  • each component e.g., a module or a program of the above-described components may include one or more entities, and some of the entities may be separated and placed in other components.
  • one or more components or operations of the aforementioned components may be omitted, or one or more other components or operations may be added.
  • a plurality of components e.g., a module or a program
  • the integrated component may perform one or more functions of each of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to the integration.
  • the operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, omitted, or one or more other operations may be added.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

전자 장치는 인스트럭션들을 저장하는 메모리를 포함할 수 있다. REE에 기반하여 실행되는 소프트웨어 어플리케이션을 통해, 암호화 키에 기반하는 트랜잭션의 전자 서명을 위한 사용자 입력을 수신하고, 사용자 입력의 수신에 응답하여, REE와 다른 TEE 내에서 관리되는 루트 시드로부터, 상기 암호화 키의 복호화에 이용될 개인 키를 획득하고, 상기 개인 키를 이용하여 상기 암호화 키를 복호화함으로써, 상기 암호화 키에 대응하는 부분 키를 획득하고, 상기 부분 키를 이용하여 상기 트랜잭션에 대한 전자 서명을 수행하도록, 상기 전자 장치를 야기할 수 있다.

Description

전자 서명을 수행하기 위한 전자 장치, 방법, 및 비일시적 컴퓨터 판독 가능 저장 매체
본 개시는, 전자 서명을 수행하기 위한 전자 장치, 방법, 및 비일시적 컴퓨터 판독 가능 저장 매체에 관한 것이다.
전자 장치는, REE(rich execution environment) 및 TEE(trusted execution environment)를 포함할 수 있다. 상기 전자 장치는 개인 키를 이용하여 트랜잭션에 대하여 전자 서명을 수행할 수 있다. 예를 들면, 상기 전자 장치는 공개 키를 이용하여 정보를 암호화할 수 있다. 예를 들면, 상기 전자 장치는 개인 키를 이용하여 암호화된 정보를 복호화할 수 있다.
상술한 정보는 본 개시에 대한 이해를 돕기 위한 목적으로 하는 배경 기술(related art)로 제공될 수 있다.
상술한 내용 중 어느 것도 본 개시와 관련된 종래 기술(prior art)로서 적용될 수 있는지에 대하여 어떠한 주장이나 결정이 제기되지 않는다.
전자 장치가 설명된다. 상기 전자 장치는 인스트럭션들을 저장하고, 하나 이상의 저장 매체들을 포함하는, 메모리를 포함할 수 있다. 상기 전자 장치는, 프로세싱 회로를 포함하는 적어도 하나의 프로세서를 포함할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, REE(rich execution environment)에 기반하여 실행되는 소프트웨어 어플리케이션을 통해, 암호화 키에 기반하는 트랜잭션의 전자 서명을 위한 사용자 입력을 수신하도록 상기 전자 장치를 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 사용자 입력의 수신에 응답하여, 상기 REE와 다른 TEE(trusted execution environment) 내에서 관리되는 루트 시드로부터, 상기 암호화 키의 복호화에 이용될 개인 키를 획득하도록 상기 전자 장치를 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 개인 키를 이용하여 상기 암호화 키를 복호화함으로써, 상기 암호화 키에 대응하는 부분 키를 획득하도록 상기 전자 장치를 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 부분 키를 이용하여 상기 트랜잭션에 대한 전자 서명을 수행하도록 상기 전자 장치를 야기할 수 있다.
방법이 제공된다. 상기 방법은, 전자 장치 내에서 실행될 수 있다. 상기 방법은, REE(rich execution environment)에 기반하여 실행되는 소프트웨어 어플리케이션을 통해, 암호화 키에 기반하는 트랜잭션의 전자 서명을 위한 사용자 입력을 수신하는 동작을 포함할 수 있다. 상기 방법은, 상기 사용자 입력의 수신에 응답하여, 상기 REE와 다른 TEE(trusted execution environment) 내에서 관리되는 루트 시드로부터, 상기 암호화 키의 복호화에 이용될 개인 키를 획득하는 동작을 포함할 수 있다. 상기 방법은, 상기 개인 키를 이용하여 상기 암호화 키를 복호화함으로써, 상기 암호화 키에 대응하는 부분 키를 획득하는 동작을 포함할 수 있다. 상기 방법은, 상기 부분 키를 이용하여 상기 트랜잭션에 대한 전자 서명을 수행하는 동작을 포함할 수 있다.
비일시적 컴퓨터 판독가능 저장 매체가 제공된다. 상기 비일시적 컴퓨터 판독가능 저장 매체는, 하나 이상의 프로그램들을 저장할 수 있다. 상기 하나 이상의 프로그램들은, 전자 장치에 의해 실행될 시, REE(rich execution environment)에 기반하여 실행되는 소프트웨어 어플리케이션을 통해, 암호화 키에 기반하는 트랜잭션의 전자 서명을 위한 사용자 입력을 수신하도록 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다. 상기 하나 이상의 프로그램들은, 상기 전자 장치에 의해 실행될 시, 상기 사용자 입력의 수신에 응답하여, 상기 REE와 다른 TEE(trusted execution environment) 내에서 관리되는 루트 시드로부터, 상기 암호화 키의 복호화에 이용될 개인 키를 획득하도록 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다. 상기 하나 이상의 프로그램들은, 전자 장치에 의해 실행될 시, 상기 개인 키를 이용하여 상기 암호화 키를 복호화함으로써, 상기 암호화 키에 대응하는 부분 키를 획득하도록 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다. 상기 하나 이상의 프로그램들은, 상기 전자 장치에 의해 실행될 시, 상기 부분 키를 이용하여 상기 트랜잭션에 대한 전자 서명을 수행하도록 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다.
전자 장치가 설명된다. 상기 전자 장치는 인스트럭션들을 저장하고, 하나 이상의 저장 매체들을 포함하는, 메모리를 포함할 수 있다. 상기 전자 장치는, 프로세싱 회로를 포함하는 적어도 하나의 프로세서를 포함할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, REE(rich execution environment)에 기반하여 실행되는 소프트웨어 어플리케이션을 통해, 전자 서명을 위해 이용될 부분 키의 생성을 야기하는 제1 사용자 입력을 수신하도록 상기 전자 장치를 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 제1 사용자 입력의 수신에 응답하여, 상기 REE와 상이한 TEE(trusted execution environment) 내에서 상기 부분 키를 생성하도록 상기 전자 장치를 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 TEE 내에서 관리되고, 루트 시드로부터 유도된(derived) 개인 키 및 공개 키의 페어들 중 어느 한 페어에 포함된 공개 키를 이용하여 상기 부분 키를 암호화함으로써, 상기 부분 키에 대응하는 암호화 키를 획득하도록 상기 전자 장치를 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 REE에서 실행되는 상기 소프트웨어 어플리케이션과 연동되는 상기 암호화 키를 저장하도록 상기 전자 장치를 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 REE에 기반하여 실행되는 상기 소프트웨어 어플리케이션을 통하여, 상기 암호화 키에 기반하는 트랜잭션의 전자 서명을 위한 제2 사용자 입력을 수신하도록 상기 전자 장치를 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 제2 사용자 입력의 수신에 응답하여, 상기 TEE 내에서 관리되는 루트 시드로부터, 상기 암호화 키의 복호화에 이용될 개인 키를 획득하도록 상기 전자 장치를 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 개인 키를 이용하여 상기 암호화 키를 복호화함으로써, 상기 부분 키를 획득하도록 상기 전자 장치를 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 부분 키를 이용하여 상기 트랜잭션에 대한 전자 서명을 수행하도록 상기 전자 장치를 야기할 수 있다.
방법이 제공된다. 상기 방법은, 전자 장치 내에서 실행될 수 있다. 상기 방법은, REE(rich execution environment)에 기반하여 실행되는 소프트웨어 어플리케이션을 통해, 전자 서명을 위해 이용될 부분 키의 생성을 야기하는 제1 사용자 입력을 수신하는 동작을 포함할 수 있다. 상기 방법은, 상기 제1 사용자 입력의 수신에 응답하여, 상기 REE와 상이한 TEE(trusted execution environment) 내에서 상기 부분 키를 생성하는 동작을 포함할 수 있다. 상기 방법은, 상기 TEE 내에서 관리되고, 루트 시드로부터 유도된(derived) 개인 키 및 공개 키의 페어들 중 어느 한 페어에 포함된 공개 키를 이용하여 상기 부분 키를 암호화함으로써, 상기 부분 키에 대응하는 암호화 키를 획득하는 동작을 포함할 수 있다. 상기 방법은, 상기 REE에서 실행되는 상기 소프트웨어 어플리케이션과 연동되는 상기 암호화 키를 저장하는 동작을 포함할 수 있다. 상기 방법은, 상기 REE에 기반하여 실행되는 상기 소프트웨어 어플리케이션을 통하여, 상기 암호화 키에 기반하는 트랜잭션의 전자 서명을 위한 제2 사용자 입력을 수신하는 동작을 포함할 수 있다. 상기 방법은, 상기 제2 사용자 입력의 수신에 응답하여, 상기 TEE 내에서 관리되는 루트 시드로부터, 상기 암호화 키의 복호화에 이용될 개인 키를 획득하는 동작을 포함할 수 있다. 상기 방법은, 상기 개인 키를 이용하여 상기 암호화 키를 복호화함으로써, 상기 부분 키를 획득하는 동작을 포함할 수 있다. 상기 방법은, 상기 부분 키를 이용하여 상기 트랜잭션에 대한 전자 서명을 수행하는 동작을 포함할 수 있다.
비일시적 컴퓨터 판독가능 저장 매체가 제공된다. 상기 비일시적 컴퓨터 판독가능 저장 매체는, 하나 이상의 프로그램들을 저장할 수 있다. 상기 하나 이상의 프로그램들은, 전자 장치에 의해 실행될 시, REE(rich execution environment)에 기반하여 실행되는 소프트웨어 어플리케이션을 통해, 전자 서명을 위해 이용될 부분 키의 생성을 야기하는 제1 사용자 입력을 수신하도록 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다. 상기 하나 이상의 프로그램들은, 상기 전자 장치에 의해 실행될 시, 상기 제1 사용자 입력의 수신에 응답하여, 상기 REE와 상이한 TEE(trusted execution environment) 내에서 상기 부분 키를 생성하도록 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다. 상기 하나 이상의 프로그램들은, 상기 전자 장치에 의해 실행될 시, 상기 TEE 내에서 관리되고, 루트 시드로부터 유도된(derived) 개인 키 및 공개 키의 페어들 중 어느 한 페어에 포함된 공개 키를 이용하여 상기 부분 키를 암호화함으로써, 상기 부분 키에 대응하는 암호화 키를 획득하도록 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다. 상기 하나 이상의 프로그램들은, 상기 전자 장치에 의해 실행될 시, 상기 REE에서 실행되는 상기 소프트웨어 어플리케이션과 연동되는 상기 암호화 키를 저장하도록 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다. 상기 하나 이상의 프로그램들은, 전자 장치에 의해 실행될 시, 상기 REE에 기반하여 실행되는 상기 소프트웨어 어플리케이션을 통하여, 상기 암호화 키에 기반하는 트랜잭션의 전자 서명을 위한 제2 사용자 입력을 수신하도록 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다. 상기 하나 이상의 프로그램들은, 상기 전자 장치에 의해 실행될 시, 상기 제2 사용자 입력의 수신에 응답하여, 상기 TEE 내에서 관리되는 루트 시드로부터, 상기 암호화 키의 복호화에 이용될 개인 키를 획득하도록 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다. 상기 하나 이상의 프로그램들은, 상기 전자 장치에 의해 실행될 시, 상기 개인 키를 이용하여 상기 암호화 키를 복호화함으로써, 상기 부분 키를 획득하도록 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다. 상기 하나 이상의 프로그램들은, 상기 전자 장치에 의해 실행될 시, 상기 부분 키를 이용하여 상기 트랜잭션에 대한 전자 서명을 수행하도록 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다.
도 1은 전자 장치 내에서 부분 키를 생성하는 예를 도시한다.
도 2는 예시적인 전자 장치의 간소화된 블록도이다.
도 3은 전자 서명을 수행하는 예시적인 방법을 도시하는 흐름도이다.
도 4는 부분 키를 검증하는 예를 도시한다.
도 5는 TEE 내에서 부분 키를 생성하는 예를 도시한다.
도 6은 계층 결정적 경로를 이용하여 개인 키 및 공개 키를 획득하는 예를 도시한다.
도 7은 부분 키를 생성하는 예시적인 방법을 도시하는 흐름도이다.
도 8은 부분 키를 사용하는 예시적인 방법을 도시하는 흐름도이다.
도 9는 사용자 입력을 수신함에 응답하여 트랜잭션에 대한 전자 서명을 수행하는 예를 도시한다.
도 10은 다양한 실시예들에 따른, 네트워크 환경 내의 전자 장치의 블록도이다.
도 1은 전자 장치 내에서 부분 키를 생성하는 예를 도시한다.
전자 장치(100)는 트랜잭션에 대한 전자 서명을 수행하기 위해 이용될 수 있다. 예를 들면, 전자 장치(100)는 다자간 연산(multi-party computation)을 수행하기 위해 이용될 수 있다. 예를 들면, 다자간 연산 기법은 트랜잭션에 대한 전자 서명을 수행하기 위한 개인 키를 논리적으로 분할하는 기법으로 설명될 수 있다. 예를 들면, 전자 서명을 수행하기 위해 논리적으로 분할된 개인 키는 부분 키로 설명될 수 있다. 예를 들면, 전자 장치(100)는 부분 키를 생성하거나 획득할 수 있다. 예를 들면, 전자 장치(100)는 REE(110) 및 TEE(120)를 포함할 수 있다. 예를 들면, 전자 장치(100)는 REE(110) 내에서 부분 키를 생성할 수 있다. 예를 들면, 전자 장치(100)는 부분 키를 생성하기 위한 부분 키 생성부(130)를 포함할 수 있다. 예를 들면, 전자 장치(100)는 생성된 부분 키를 관리하기 위한 키 저장소(140)를 포함할 수 있다. 예를 들면, 키 저장소(140)는 전자 장치(100)의 TEE(120) 내에 포함될 수 있다.
TEE(120)는 REE(110)와 구분되는 영역으로 설명될 수 있다. 예를 들면, TEE(120)는 보안을 위해 이용될 수 있다. 예를 들면, TEE(120)는 생체 정보, 결제 정보, 또는 보안 문서가 저장될 수 있다. 예를 들면, 전자 장치(100)는 TEE(120) 내에 생체 정보, 결제 정보, 및/또는 보안 문서를 저장할 수 있다. 예를 들면, 전자 장치(100)는 TEE(120)와 REE(110) 사이에서 정보를 전달하는 것을 삼가거나 블록할 수 있다. 예를 들면, REE(110)는 제1 보안 레벨을 가지는 실행 환경으로 설명될 수 있다. 예를 들면, TEE(120)는 제1 보안 레벨보다 높은 제2 보안 레벨을 가지는 실행 환경으로 설명될 수 있다. 예를 들면, 전자 장치(100)는 운영 체제를 REE(110)와 TEE(120)로 분리함으로써 운용할 수 있다. 예를 들면, TEE(120)는 REE(110)와 하드웨어적인 제약을 통해 서로 분리될 수 있다. 예를 들면, TEE(120)는 REE(110)와 소프트웨어적으로 분리됨으로써 동작할 수 있다. 예를 들면, 일반 OS(예: non-secure operating system)는 REE(110) 내에서 구동될 수 있다. 예를 들면, 보안 OS(secure operating system)는 TEE(120) 내에서 구동될 수 있다. 예를 들면, 보안 OS는 일반 OS와 독립적으로 분리될 수 있다. 예를 들면, 보안 OS는 허가되지 않은 프로그램이나 소프트웨어 어플리케이션에서 접근하지 못하는 환경으로 설명될 수 있다. 예를 들면, TEE(120) 내에서 실행되는 소프트웨어 어플리케이션은 신뢰 어플리케이션(trusted application)으로 설명될 수 있다.
트랜잭션에 대한 전자 서명을 수행하기 위한 개인 키를 논리적으로 분할한 부분 키들은 복수의 전자 장치들(미도시) 각각에 저장될 수 있다. 예를 들면, 다자간 연산 기법은 상기 부분 키들 각각을 이용하여 트랜잭션에 대한 전자 서명을 부분적으로 수행함으로써, 트랜잭션에 대한 완전한 전자 서명을 수행하는 기법으로 설명될 수 있다. 예를 들면, 하나의 개인 키를 논리적으로 분할한 부분 키들의 수가 5인 경우, 상기 부분 키들 각각을 포함하는 전자 장치들 각각이 상기 부분 키들 각각을 이용하여 전자 서명을 부분적으로 수행함으로써, 트랜잭션에 대한 완전한 전자 서명이 수행될 수 있다. 예를 들면, 전자 장치(100)는 트랜잭션에 대한 완전한 전자 서명이 수행됨에 기반하여, 상기 트랜잭션에 대한 블록을 블록체인에 커밋하거나 상기 블록과 다른 블록과의 연결을 유지할 수 있다.
전자 장치(100)에 포함된 부분 키 생성부(130)가 REE(110) 내에 위치하는 경우, 부분 키 생성부(130)에 의해 생성된 부분 키는 REE(110) 내에 위치할 수 있다. 예를 들면, 상기 부분 키는 외부 전자 장치(미도시)에 의해 전송되거나 탈취(snatch)될 수 있다. 예를 들면, 상기 외부 전자 장치는 전송된(또는 탈취된) 상기 부분 키를 이용하여 트랜잭션에 대한 전자 서명을 부분적으로 수행할 수 있다. 전자 장치(100)는 상기 트랜잭션을 인식하지 못할 수 있다. 상기 트랜잭션에 대한 전자 서명은 전자 장치(100)에 의해 인식되지 않을 수 있다. 상기 트랜잭션에 대한 전자 서명의 수행은 전자 장치(100)의 사용자에 의해 의도되지 않을 수 있다. 부분 키가 상기 외부 전자 장치에 의해 탈취되는 것을 방지하기 위해, 전자 장치(100)는 TEE(120) 내에서 부분 키를 관리하는 것이 요구될 수 있다. 예를 들면, 전자 장치(100)는 TEE(120) 내에서 부분 키를 생성할 수 있다. 예를 들면, 전자 장치(100)는 상기 부분 키를 암호화함으로써 REE(110) 내에서 저장할 수 있다.
예를 들면, 전자 장치(100)는, 상기 동작들을 수행하거나 실행하기 위해 이용되는 하드웨어 컴포넌트들을 포함할 수 있다. 상기 하드웨어 컴포넌트들은, 도 2를 참조하여 설명되고 예시된다.
도 2는 예시적인 전자 장치의 간소화된 블록도이다.
도 2를 참조하면, 전자 장치(100)는 적어도 하나의 프로세서(207), 통신 회로(205), 디스플레이(208), 및 메모리(206)를 포함할 수 있다.
적어도 하나의 프로세서(207)는 메모리(206) 내에 저장된 인스트럭션들을 이용하여 데이터를 처리하기 위한 하드웨어 컴포넌트를 포함할 수 있다.  데이터를 처리하기 위한 하드웨어 컴포넌트는, CPU(central processing unit)(예: 프로세싱 회로를 포함함)를 포함할 수 있다.  데이터를 처리하기 위한 하드웨어 컴포넌트는, GPU(graphic processing unit)(예: 프로세싱 회로를 포함함)를 포함할 수 있다.
적어도 하나의 프로세서(207)는 하나 이상의 코어(core)들을 포함할 수 있다.  예를 들면, 적어도 하나의 프로세서(207)는 듀얼 코어(dual core), 쿼드 코어(quad core) 또는 헥사 코어(hexa core)와 같은 멀티-코어 프로세서의 구조를 가질 수 있다.
메모리(206)는 적어도 하나의 프로세서(207)에 입력되거나 및/또는 적어도 하나의 프로세서(207)로부터 출력되는 데이터, 및/또는 인스트럭션들을 저장하기 위한 하드웨어 컴포넌트를 포함할 수 있다.  메모리(206)는, 예를 들면, RAM(random-access memory)와 같은 휘발성 메모리(volatile memory) 및/또는 ROM(read-only memory)와 같은 비휘발성 메모리(non-volatile memory)를 포함할 수 있다.  휘발성 메모리는, 예를 들면, DRAM(dynamic RAM), SRAM(static RAM), cache RAM, PSRAM (pseudo SRAM) 중 적어도 하나를 포함할 수 있다.  비휘발성 메모리는, 예를 들면, PROM(programmable ROM), EPROM (erasable PROM), EEPROM (electrically erasable PROM), 플래시 메모리, 하드디스크, 컴팩트 디스크, EMMC(embedded multimedia card) 중 적어도 하나를 포함할 수 있다.   
통신 회로(205)는 전자 장치(100) 및 외부 전자 장치 사이에서의 신호의 송신 및/또는 수신을 지원하기 위한 하드웨어 컴포넌트를 포함할 수 있다.  통신 회로(205)는, 예를 들면, 모뎀(modem), 안테나, O/E(optic/electronic) 변환기 중 적어도 하나를 포함할 수 있다.  통신 회로(205)는, 이더넷(ethernet), LAN(local area network), WAN(wide area network), WiFi(wireless fidelity), Bluetooth, BLE(Bluetooth low energy), zigbee, LTE(long term evolution), 5G NR(new radio)와 같은 다양한 타입의 프로토콜에 기반하여 신호의 송신 및/또는 수신을 지원할 수 있다.
디스플레이(208)는 시각화된 정보를 출력할 수 있다.  예를 들면, 디스플레이(208)는, 적어도 하나의 프로세서(207)의 제어에 따라, 사용자에게 시각화된 정보(visualized information)를 출력할 수 있다.  디스플레이(208)는, 화면을 표시하기 위해 이용되는 전자 장치(100)의 하드웨어 컴포넌트를 포함할 수 있다. 예를 들면, 디스플레이(208)는, 발광 소자들 및 광을 발광하도록 상기 발광 소자들을 제어하는 회로들(예: 트랜지스터들)을 포함할 수 있다. 예를 들면, 상기 발광 소자들 각각은, OLED(organic light emitting diode) 또는 마이크로 LED를 포함할 수 있다. 하지만, 이에 제한되지 않는다. 예를 들면, 디스플레이(208)는, LCD(liquid crystal display)를 포함할 수 있다.
적어도 하나의 프로세서(207)는 REE(110)에 기반하여 실행되는 소프트웨어 어플리케이션을 통해, 전자 서명을 위해 이용될 부분 키의 생성을 야기하는 제1 사용자 입력을 수신할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 제1 사용자 입력의 수신에 응답하여, TEE(120) 내에서 상기 부분 키를 생성할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 루트 시드(예: 도 6의 루트 시드(610))로부터 개인 키 및 공개 키를 유도할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 상기 부분 키를 상기 공개 키를 이용하여 암호화함으로써, 암호화 키를 획득할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 상기 암호화 키를 REE(110) 내에서 저장할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 트랜잭션의 전자 서명을 위한 제2 사용자 입력을 수신할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 상기 루트 시드로부터 개인 키를 획득할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 상기 개인 키를 이용하여 상기 암호화 키를 복호화함으로써, 부분 키를 획득할 수 있다. 키 저장소(예: 도 5의 키 저장소(526))는 통신 회로(205)를 통해 다자간 연산 소프트웨어 어플리케이션(예: 도 5의 다자간 연산 소프트웨어 어플리케이션(516))로부터 부분 키로부터 암호화 키를 생성하던 시점에 생성된 백업 데이터를 전달받을 수 있다. 예를 들면, 통신 회로(205)는 다자간 연산 소프트웨어 어플리케이션(516)과 키 저장소(526) 사이에서 데이터를 전달하기 위해 이용될 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 상기 부분 키를 이용하여 트랜잭션에 대한 전자 서명을 수행할 수 있다. 상기 전자 서명의 수행은 도 3을 참조하여 보다 상세히 설명되고 예시된다.
도 3은 전자 서명을 수행하는 예시적인 방법을 도시하는 흐름도이다. 이러한 방법은, 도 3 내에서 도시된 전자 장치(100) 또는 전자 장치(100)의 적어도 하나의 프로세서(207)에 의해 실행될 수 있다.
도 3을 참조하면, 동작 310에서, 적어도 하나의 프로세서(207)는 REE(110)에 기반하여 실행되는 제1 소프트웨어 어플리케이션(예: 도 5의 제1 소프트웨어 어플리케이션(510))를 통해 전자 서명을 위해 이용될 부분 키의 생성을 야기하는 제1 사용자 입력을 수신할 수 있다. 제1 사용자 입력은 사용자 인증을 포함할 수 있다. 예를 들면, 상기 사용자 인증은 지문을 이용한 인증을 포함할 수 있다. 예를 들면, 상기 사용자 인증은 얼굴을 이용한 인증을 포함할 수 있다. 예를 들면, 상기 사용자 인증은 홍채를 이용한 인증을 포함할 수 있다. 예를 들면, 상기 사용자 인증은 비밀번호를 이용한 인증을 포함할 수 있다. 예를 들면, 상기 사용자 인증은 PIN(personal identification number)을 이용한 인증을 포함할 수 있다. 예를 들면, 상기 사용자 인증은 PPG(Photoplethysmography) 센서를 이용한 인증을 포함할 수 있다. 상기 사용자 인증의 예가 상술되나, 본 개시의 실시예가 이에 제한되는 것은 아니다.
예를 들면, 제1 사용자 입력은 상기 제1 소프트웨어 어플리케이션에 대응하는 서버(미도시)에 로그인하기 위한 사용자 입력을 포함할 수 있다. 예를 들면, 전자 장치(100)는 상기 제1 소프트웨어 어플리케이션을 통해 상기 서버에 로그인하거나 접근할 수 있다. 예를 들면, 전자 장치(100)는 상기 서버에 로그인(또는 접근)함으로써, 부분 키 및 암호화 키를 관리하거나 트랜잭션에 대한 전자 서명을 수행할 수 있다.
동작 320에서, 적어도 하나의 프로세서(207)는 제1 사용자 입력의 수신에 응답하여, REE(110)와 상이한 TEE(120) 내에서 부분 키를 생성할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 TEE(120) 내에서 다자간 연산 소프트웨어 어플리케이션(예: 도 5의 다자간 연산 소프트웨어 어플리케이션(516))를 이용하여 부분 키를 생성할 수 있다. 상기 부분 키는 다자간 연산 기법에 이용될 수 있다. 예를 들면, 상기 부분 키는 트랜잭션의 완전한 전자 서명을 수행하기 위한 부분적인 전자 서명을 수행하는 것에 이용될 수 있다.
동작 330에서, 적어도 하나의 프로세서(207)는 TEE(120) 내에서 관리되고, 루트 시드(예: 도 6의 루트 시드(610))로부터 유도된 개인 키(예: 도 4의 제1 개인 키(460)) 및 공개 키(예: 도 4의 제1 공개 키(465))의 페어들 중 어느 한 페어에 포함된 공개 키를 이용하여 부분 키를 암호화함으로써, 부분 키에 대응하는 암호화 키를 획득할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 TEE(120) 내에 위치된 상기 루트 시드로부터 개인 키 및 공개 키를 유도하거나, 생성하거나, 또는 획득할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 상기 루트 시드로부터 계층 결정적(hierarchical deterministic) 경로를 이용하여 상기 계층 결정적 경로에 대응하는 개인 키 및 공개 키를 획득할 수 있다. 예를 들면, 계층 결정적 경로는 루트 시드(예: 도 6의 루트 시드(610))로부터 개인 키 및 공개 키의 페어를 유도하기 위한 경로로 설명될 수 있다. 예를 들면, 제1 개인 키(예: 도 4의 제1 개인 키(460)) 및 상기 제1 개인 키와 페어인 제1 공개 키(예: 도 4의 제1 공개 키(465))는 계층 결정적 경로에 의존적일 수 있다. 예를 들면, 상기 제1 개인 키 및 상기 제1 공개 키는 상기 계층 결정적 경로에 대응할 수 있다.
예를 들면, 계층 결정적 경로는 부분 키에 대응하는 다자간 연산 소프트웨어 어플리케이션(예: 도 5의 다자간 연산 소프트웨어 어플리케이션(516))의 식별자를 이용하여 결정될 수 있다. 예를 들면, 다자간 연산 기법에 이용되는 부분 키들은 복수일 수 있다. 예를 들면, 상기 부분 키들 각각에 대응하는 다자간 연산 소프트웨어 어플리케이션들은 복수일 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 다자간 연산 소프트웨어 어플리케이션들 각각에 대하여 식별자를 라벨링할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 다자간 연산 소프트웨어 어플리케이션들 각각에 라벨링된 식별자를 이용하여 계층 결정적 경로를 결정하거나 식별할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 상기 다자간 연산 소프트웨어 어플리케이션들의 수를 이용하여 계층 결정적 경로를 생성하거나, 획득하거나, 또는 식별할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 상기 라벨링된 식별자 및 다자간 연산 소프트웨어 어플리케이션들의 수를 이용하여 계층 결정적 경로를 생성할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 상기 루트 시드로부터 상기 계층 결정적 경로에 대응하는 개인 키 및 공개 키 페어를 획득할 수 있다. 하지만, 이에 제한되지 않는다. 적어도 하나의 프로세서(207)는 다자간 연산 소프트웨어 어플리케이션들(예: 도 5의 제1 다자간 연산 소프트웨어 어플리케이션(516-1) 내지 제N 다자간 연산 소프트웨어 어플리케이션(516-N)) 각각을 구분할 수 있는 정보를 이용하여 계층 결정적 경로를 생성할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 전자 장치(100)에 대한 식별 데이터를 이용할 수 있다.
적어도 하나의 프로세서(207)는 부분 키의 암호화에 이용되는 공개 키를 검증할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 상기 루트 시드로부터 상기 공개 키를 유도하기 위해 이용되는 계층 결정적 경로를 나타내는 식별 정보를 획득할 수 있다. 적어도 하나의 프로세서(207)는 상기 식별 정보와 상기 계층 결정적 경로가 일치하는지 여부에 기반하여, 상기 공개 키를 검증할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 상기 루트 시드로부터 유도된 상기 공개 키를 래핑(wrapping)할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 상기 래핑된 공개 키를 언래핑(unwrapping)함으로써, 식별 정보를 획득할 수 있다. 예를 들면, 상기 식별 정보는 상기 공개 키를 상기 루트 시드로부터 유도하기 위한 계층 결정적 경로에 대한 정보를 포함할 수 있다. 예를 들면, 상기 식별 정보는 상기 계층 결정적 경로를 나타낼 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 상기 식별 정보와 상기 루트 시드로부터 상기 공개 키를 유도하던 시점에 이용된 계층 결정적 경로가 일치하는 여부를 결정할 수 있다.
동작 340에서, 적어도 하나의 프로세서(207)는 상기 암호화 키를, REE(110)에서 실행되는 제1 소프트웨어 어플리케이션(예: 도 5의 제1 소프트웨어 어플리케이션(510))과 연동함으로써 저장할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 REE(110)에서 실행되는 상기 제1 소프트웨어 어플리케이션과 연동되는 암호화 키를 저장할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 REE(110) 내에서 암호화 키를 저장할 수 있다. 상기 암호화 키는 공개 키를 이용하여 암호화된 부분 키로 설명될 수 있다. 전자 장치(100)는 REE(110) 내에서 암호화 키를 저장함으로써, 보안성을 향상시킬 수 있다. 예를 들면, REE(110) 내에서 암호화 키를 저장함으로써, 전자 장치(100)의 보안성이 향상될 수 있다. 예를 들면, 외부 전자 장치가 상기 암호화 키를 탈취한 경우, 외부 전자 장치가 상기 암호화 키를 이용하여 트랜잭션에 대한 전자 서명을 수행하는 것은 불가능할 수 있다. 예를 들면, 외부 전자 장치는 개인 키를 저장하고 있지 않기 때문에, 상기 암호화 키를 복호화하는 것은 불가능할 수 있다. 예를 들면, 상기 암호화 키를 복호화하기 위한 개인 키는 TEE(120) 내에 위치함으로써, 상기 개인 키는 TEE(120) 내에서 안전하게 관리될 수 있다. 예를 들면, 전자 장치(100)는 암호화 키를 복호화 하기 위한 개인 키를 TEE(120) 내에서 생성하거나 사용함으로써, 개인 키가 REE(110) 내에 저장되는 것을 방지할 수 있다.
동작 350에서, 적어도 하나의 프로세서(207)는 REE(110)에 기반하여 실행되는 상기 제1 소프트웨어 어플리케이션을 통해, 상기 암호화 키에 기반하는 트랜잭션의 전자 서명을 위한 제2 사용자 입력을 수신할 수 있다. 예를 들면, 전자 장치(100)는 트랜잭션에 대한 전자 서명을 수행하기 위해 제2 사용자 입력의 수신을 요구할 수 있다. 예를 들면, 제2 사용자 입력은 트랜잭션에 대한 전자 서명을 수행하기 위해 요구될 수 있다. 예를 들면, 상기 제2 사용자 입력은 사용자 인증을 포함할 수 있다. 예를 들면, 제2 사용자 입력은 제1 사용자 입력에 포함되는 사용자 인증과 상이한 사용자 인증을 포함할 수 있다. 예를 들면, 전자 장치(100)는 제1 사용자 입력을 수신한 후, 제2 사용자 입력을 수신함으로써, 트랜잭션에 대한 전자 서명을 수행할 수 있다. 예를 들면, 제1 사용자 입력에 대응하는 인증 방법과 제2 사용자 입력에 대응하는 인증 방법은 동일한 방법일 수 있다. 하지만, 이에 제한되지 않는다. 제1 사용자 입력에 대응하는 인증 방법과 제2 사용자 입력에 대응하는 인증 방법은 상이한 방법일 수 있다.
동작 360에서, 적어도 하나의 프로세서(207)는 제2 사용자 입력의 수신에 응답하여, TEE(120) 내에서 관리되는 루트 시드(예: 도 6의 루트 시드(610))로부터 상기 암호화 키의 복호화에 이용될 개인 키(예: 도 6의 제1 개인 키(460))를 획득할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 상기 루트 시드로부터 계층 결정적 경로를 이용하여 상기 개인 키를 획득하거나 유도할 수 있다. 상기 개인 키는 동작 330에서 부분 키의 암호화에 이용되는 공개 키와 페어일 수 있다. 예를 들면, 개인 키의 계층 결정적 경로 및 공개 키의 계층 결정적 경로는 공통될 수 있다. 예를 들면, 개인 키의 계층 결정적 경로 및 공개 키의 계층 결정적 경로는 동일할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 상기 루트 시드로부터 계층 결정적 경로에 따라 공개 키 및 개인 키의 페어를 획득할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 계층 결정적 경로에 기반하여 상기 루트 시드로부터 함수를 연산함으로써 개인 키 및 공개 키의 페어를 획득하거나 유도할 수 있다.
동작 370에서, 적어도 하나의 프로세서(207)는 상기 개인 키를 이용하여 상기 암호화 키를 복호화함으로써, 부분 키를 획득할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 공개 키에 의해 암호화된 암호화 키를, 상기 공개 키에 대응하는 개인 키를 이용하여 복호화할 수 있다. 예를 들면, 전자 장치(100) 내의 키 저장소(예: 도 5의 키 저장소(526))는 상기 개인 키를 이용하여 상기 암호화 키를 복호화함으로써, 부분 키를 획득할 수 있다. 적어도 하나의 프로세서(207)는 암호화 키의 복호화에 대한 요청을 통신 회로(205)를 통해 다자간 연산 소프트웨어 어플리케이션(예: 도 5의 다자간 연산 소프트웨어 어플리케이션(516))로부터 상기 키 저장소에게 전달할 수 있다.
예를 들면, 적어도 하나의 프로세서(207)는 부분 키로부터 암호화 키를 생성하던 시점에 생성된 백업 데이터로부터, 상기 시점에서 이용되었던 부분 키를 식별할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 상기 백업 데이터를 이용하여 암호화 키를 복호화함으로써 획득되는 부분 키를 검증할 수 있다. 상기 부분 키의 검증은 도 4를 참조하여 보다 상세히 설명되고 예시된다.
도 4는 부분 키를 검증하는 예를 도시한다.
도 4를 참조하면, 상태(410)는 제1 공개 키(465)를 이용하여 부분 키(440)를 암호화함으로써 백업 데이터(470)를 획득하는 상태로 설명될 수 있다. 적어도 하나의 프로세서(207)는 부분 키(440)로부터 암호화 키(450)를 생성하던 시점에 생성된 백업 데이터(470)로부터, 상기 시점에서 이용되었던 부분 키(440)를 식별할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 상기 백업 데이터(470)를 이용하여 암호화 키(450)를 복호화함으로써 획득되는 부분 키(440)를 검증할 수 있다. 예를 들면, 동작 330에서, 적어도 하나의 프로세서(207)는 공개 키를 이용하여 부분 키(440)를 암호화함으로써, 상기 부분 키(440)에 대응하는 암호화 키(450)를 획득하는 동안, 부분 키(440)에 대한 백업 데이터(470)를 생성할 수 있다. 상기 백업 데이터(470)는 상기 부분 키(440)에 대한 데이터를 포함할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 상기 백업 데이터(470)를 이용하여 상기 백업 데이터(470)에 대응하는 부분 키(440)를 식별할 수 있다.
상태(420)는 제1 개인 키(460)를 이용하여 암호화 키(450)를 복호화함으로써 부분 키(440)를 획득하는 상태로 설명될 수 있다. 상태(430)는 백업 데이터(470)를 이용하여 상기 획득된 부분 키(440)를 검증하는 상태로 설명될 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 암호화 키(450)를 복호화함으로써 획득된 상기 부분 키(440) 및 상기 백업 데이터(470)로부터 식별된 상기 부분 키(440)를 비교함으로써, 상기 암호화 키(450)를 복호화함으로써 획득된 상기 부분 키(440)를 검증할 수 있다. 예를 들면, 동작 320에서 생성된 부분 키(440)는 동작 370에서 획득된 부분 키(440)와 동일할 것이 요구되기 때문에, 적어도 하나의 프로세서(207)는 검증을 위해 백업 데이터(470)와 암호화 키(450)를 복호화함으로써 획득된 부분 키(440)를 비교하는 동작이 요구될 수 있다. 예를 들면, 전자 장치(100)는 백업 데이터(470)와 암호화 키(450)를 복호화함으로써 획득된 부분 키(440)를 비교함으로써, 보안 품질을 향상시킬 수 있다. 예를 들면, 전자 장치(100)는 비교에 기반하여, 부분 키(440)가 위조되거나 탈취되는 것을 방지할 수 있다.
다시 도 3을 참조하면, 동작 380에서, 적어도 하나의 프로세서(207)는 부분 키(440)를 이용하여 트랜잭션에 대한 전자 서명을 수행할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 부분 키(440)를 이용하여 트랜잭션에 대한 완전한 전자 서명을 수행하기 위해 전자 서명을 부분적으로 수행할 수 있다. 예를 들면, 부분 키(440)는 다자간 연산 기법에 이용될 수 있다. 예를 들면, 상기 부분 키(440)는 트랜잭션에 전자 서명을 수행하기 위한 키를 논리적으로 분할함으로써 생성될 수 있다. 예를 들면, 트랜잭션에 대한 완전한 전자 서명은 외부 전자 장치들 각각에 저장된 부분 키(440)들 각각에 의한 부분적인 전자 서명의 수가 임계 숫자를 초과할 경우 수행될 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 통신 회로(205)를 통해, 상기 부분 키(440)에 의해 트랜잭션에 대한 전자 서명이 수행됨을 나타내는 신호를 다른 전자 장치(미도시)에게 송신할 수 있다.
적어도 하나의 프로세서(207)는 TEE(120) 내에서 부분 키(440)를 생성할 수 있다. 적어도 하나의 프로세서(207)는 공개 키에 의해 암호화된 암호화 키(450)를 REE(110) 내에서 저장할 수 있다. 상기 부분 키(440)의 생성 및 암호화 키(450)의 저장은 도 5를 참조하여 보다 상세히 설명되고 예시된다.
도 5는 TEE 내에서 부분 키를 생성하는 예를 도시한다.
도 5를 참조하면, 전자 장치(100)는 REE(110) 및 TEE(120)를 포함할 수 있다. 전자 장치(100)는 REE(110) 내에서 제1 소프트웨어 어플리케이션(510)을 실행할 수 있다. 예를 들면, 제1 소프트웨어 어플리케이션(510)은 월렛 앱 또는 월렛 소프트웨어 어플리케이션으로 참조될 수 있다. 예를 들면, 제1 소프트웨어 어플리케이션(510)은 결제 기능을 제공하기 위한 소프트웨어 어플리케이션을 포함할 수 있다. 예를 들면, 제1 소프트웨어 어플리케이션(510)은 트랜잭션에 대한 전자 서명을 수행하는 기능을 제공하는 소프트웨어 어플리케이션을 포함할 수 있다. 예를 들면, 전자 장치(100)는 REE(110) 내에서 제2 소프트웨어 어플리케이션(520)을 실행할 수 있다.
제1 소프트웨어 어플리케이션(510)은 다자간 연산 SDK(software development kit)(예: 제1 다자간 연산 SDK(512-1) 내지 제N 다자간 연산 SDK(512-N))(N은 2 이상의 자연수)와 연결될 수 있다. 예를 들면, 다자간 연산 SDK(512)는 REE(110) 내에서 실행되는 제1 소프트웨어 어플리케이션(510)과 TEE(120) 내에서 실행되는 다자간 연산 소프트웨어 어플리케이션(516)(예: 제N 다자간 연산 소프트웨어 어플리케이션(516-N))을 연결하기 위해 이용될 수 있다. 예를 들면, SDK는 전자 장치(100)의 특정 플랫폼용 소프트웨어 어플리케이션들을 제작하기 위한 소프트웨어 개발 툴들의 세트로 설명될 수 있다. 예를 들면, SDK는 특정 플랫폼을 위한 소프트웨어 어플리케이션을 제작하기 위한 소스 코드, 개발 툴들, 에뮬레이터, 및 라이브러리를 포함할 수 있다. 예를 들면, 다자간 연산 SDK(512)는 다자간 연산 기법을 수행하기 위해 SDK에 의해 제작된 소프트웨어 어플리케이션을 포함할 수 있다. 예를 들면, 다자간 연산 SDK(512)는 다자간 연산 엔진 인터페이스(예: 제N 다자간 연산 엔진 인터페이스(514-N))(514)를 포함할 수 있다. 예를 들면, 제1 다자간 연산 엔진 인터페이스(514-1)는 제1 다자간 연산 SDK(512-1) 내에서 실행될 수 있다. 예를 들면, 제N 다자간 연산 엔진 인터페이스(514-N)는 제N 다자간 연산 SDK(512-N) 내에서 실행될 수 있다. 예를 들면, 제1 다자간 연산 SDK(512-1)는 제1 다자간 연산 소프트웨어 어플리케이션(516-1)에 대응할 수 있다. 예를 들면, 제N 다자간 연산 SDK(512-N)는 제N 다자간 연산 소프트웨어 어플리케이션(516-N)에 대응할 수 있다. 예를 들면, 다자간 연산 SDK(512)는 다자간 연산 소프트웨어 어플리케이션(516)에게 부분 키(440)를 생성하라는 요청을 송신할 수 있다. 예를 들면, 다자간 연산 소프트웨어 어플리케이션(516)은 상기 요청을 수신함에 기반하여, TEE(120) 내에서 부분 키(440)를 생성할 수 있다.
예를 들면, TEE(120) 내에서 실행되는 다자간 연산 소프트웨어 어플리케이션(516)은 신뢰 어플리케이션(trusted application, TA)으로 설명될 수 있다. 예를 들면, 신뢰 어플리케이션은 DRM(digital rights management), 보안, 결제, 또는 생체 인증과 같은 기능을 수행할 수 있는 하나 이상의 어플리케이션을 포함할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 다자간 연산 소프트웨어 어플리케이션(516)을 이용하여 부분 키(440)를 생성할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 제1 다자간 연산 소프트웨어 어플리케이션(516-1)을 이용하여 트랜잭션에 대한 전자 서명을 수행하기 위해 키를 논리적으로 분할함으로써, 부분 키(440)를 생성할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 제N 다자간 연산 소프트웨어 어플리케이션(516-N)을 이용하여 트랜잭션에 대한 전자 서명을 수행하기 위해 키를 논리적으로 분할함으로써, 제1 다자간 연산 소프트웨어 어플리케이션(516-1)에 대응하는 부분 키(440)와 상이한 부분 키를 생성할 수 있다. 예를 들면, 제1 다자간 연산 소프트웨어 어플리케이션(516-1)에 대응하는 부분 키(440)를 생성하는 알고리즘과 제N 다자간 연산 소프트웨어 어플리케이션(516-N)에 대응하는 다른(another) 부분 키를 생성하는 알고리즘은 서로 상이한 알고리즘일 수 있다. 하지만, 이에 제한되지 않는다. 예를 들면, 제1 다자간 연산 소프트웨어 어플리케이션(516-1)에 대응하는 부분 키(440)를 생성하는 알고리즘과 제N 다자간 연산 소프트웨어 어플리케이션(516-N)에 대응하는 다른 부분 키를 생성하는 알고리즘은 서로 동일한 알고리즘일 수 있다. 예를 들면, 제1 다자간 연산 소프트웨어 어플리케이션(516-1)은 다자간 연산 엔진 래퍼(MPC engine wrapper)(518-1)를 포함할 수 있다. 예를 들면, 제1 다자간 연산 소프트웨어 어플리케이션(516-1)은 다자간 연산 엔진(MPC engine)(519-1)을 포함할 수 있다. 예를 들면, 제N 다자간 연산 소프트웨어 어플리케이션(516-N)은 다자간 연산 엔진 래퍼(MPC engine wrapper)(518-N)를 포함할 수 있다. 예를 들면, 제N 다자간 연산 소프트웨어 어플리케이션(516-1)은 다자간 연산 엔진(MPC engine)(519-N)을 포함할 수 있다. 예를 들면, 다자간 연산 엔진 래퍼(518-1)는 다자간 연산 엔진(519-1)이 실행되도록 설정하기 위한 소프트웨어 어플리케이션으로 설명될 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 다자간 연산 엔진(519-1)을 이용하여 트랜잭션에 대한 전자 서명을 수행하기 위해 키를 논리적으로 분할함으로써, 부분 키(440)를 생성할 수 있다.
적어도 하나의 프로세서(207)는 REE(110) 내에서 제2 소프트웨어 어플리케이션(520)을 실행할 수 있다. 제2 소프트웨어 어플리케이션(520)은 블록체인 앱 또는 블록체인 소프트웨어 어플리케이션으로 참조될 수 있다. 도 5를 참조하면, 제1 소프트웨어 어플리케이션(510)과 제2 소프트웨어 어플리케이션(520)이 구분되는 것으로 도시되나, 본 개시가 이에 제한되는 것은 아니다. 예를 들면, 제1 소프트웨어 어플리케이션(510) 및 제2 소프트웨어 어플리케이션(520)은 동일한 소프트웨어 어플리케이션일 수 있다. 예를 들면, 제1 소프트웨어 어플리케이션(510) 및 제2 소프트웨어 어플리케이션(520)은 하나의 소프트웨어 어플리케이션에 포함될 수 있다. 예를 들면, 제1 소프트웨어 어플리케이션(510)은 제2 소프트웨어 어플리케이션(520)을 포함할 수 있다.
제2 소프트웨어 어플리케이션(520)은 플랫폼 SDK(522)를 포함할 수 있다. 예를 들면, 제2 소프트웨어 어플리케이션(520)은 키 저장소 SDK(524)를 포함할 수 있다. 예를 들면, 플랫폼 SDK(522)는 제2 소프트웨어 어플리케이션(520)과 키 저장소 SDK(524)를 연결하기 위해 SDK에 의해 제작된 소프트웨어 어플리케이션을 포함할 수 있다. 예를 들면, 키 저장소 SDK(524)는 제2 소프트웨어 어플리케이션(520)과 키 저장소(526)를 연결하기 위해 SDK에 의해 제작된 소프트웨어 어플리케이션을 포함할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 키 저장소 SDK(524)를 이용하여 통신 회로(205)를 통해 키 저장소(526)에게 루트 시드(예: 도 6의 루트 시드(610))로부터 공개 키 및 개인 키를 유도하라는 요청을 전달할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 키 저장소(526)를 이용하여 상기 요청을 수신함에 기반하여 상기 루트 시드로부터 공개 키 및 개인 키를 유도할 수 있다.
상기 루트 시드로부터 개인 키 및 공개 키의 유도는 도 6을 참조하여 보다 상세히 설명되고 예시된다.
도 6은 계층 결정적 경로를 이용하여 개인 키 및 공개 키를 획득하는 예를 도시한다.
도 6을 참조하면, 전자 장치(100)는 루트 시드(610)를 포함할 수 있다. 예를 들면, 전자 장치(100)는 TEE(120) 내에서 루트 시드(610)를 관리할 수 있다. 예를 들면, 루트 시드(610)는 개인 키 및 공개 키를 유도하기 위해 이용될 수 있다. 예를 들면, 루트 시드(610)는 계층 결정적 경로에 기반하여 개인 키 및 공개 키를 유도하기 위해 이용될 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 루트 시드(610) 및 계층 결정적 경로를 이용하여 개인 키 및 공개 키를 유도할 수 있다. 예를 들면, 루트 시드(610)는 지정된 길이(예: 512 비트)의 비트열로 설명될 수 있다. 예를 들면, 루트 시드(610)는 지정된 개수(예: 12)의 연상 기호(예: 니모닉(mnemonic)) 및/또는 사용자 코드에 기반한 연산을 통해 획득될 수 있다. 예를 들면, 루트 시드(610)는 키 스트레칭 함수(예: PBKDF2(password-based key derivation function version 2))에 연상 기호 및/또는 사용자 코드를 입력함으로써 생성될 수 있다. 예를 들면, 루트 시드(610)는 연상 기호 및/또는 사용자 코드의 해시 값을 키 스트레칭 함수에 입력함으로써 생성될 수 있다. 예를 들면, 루트 시드(610)는 연상 기호 및/또는 사용자 코드에 대해 해시 알고리즘(예: HMAC(hash-based message authentication code)-SHA(secure hash algorithm)-512)을 지정된 횟수만큼 반복한 결과 값을 키 스트레칭 함수에 입력함으로써 생성될 수 있다.
계층 결정적 경로는 루트 시드(610)로부터 개인 키 및 공개 키를 유도하기 위한 경로로 설명될 수 있다. 예를 들면, 루트 시드(610)는 루트 시드(610)로부터 유도된 부모 키들(미도시) 각각에 기반하여 자식 키들(미도시) 각각을 유도할 수 있다. 예를 들면, 부모 키는 루트 시드(610)를 지정된 함수(예: CKD(child key derivation function), HMAC-SHA-512)에 입력함으로써 식별될 수 있다. 예를 들면, 계층 결정적 경로는 루트 시드(610)로부터 유도된 부모 키들 중 하나를 식별한 후, 상기 식별된 부모 키로부터 유도된 자식 키를 식별하기 위한 경로로 설명될 수 있다. 예를 들면, 제1 계층 결정적 경로는 제1 다자간 연산 소프트웨어 어플리케이션(516-1)의 식별자를 이용하여 결정될 수 있다. 예를 들면, 제N 계층 결정적 경로는 제N 다자간 연산 소프트웨어 어플리케이션(516-N)의 식별자를 이용하여 결정될 수 있다. 예를 들면, 제1 계층 결정적 경로는 전자 장치(100) 내의 다자간 연산 소프트웨어 어플리케이션(516)들의 수를 이용하여 결정될 수 있다. 예를 들면, 제N 계층 결정적 경로는 전자 장치(100) 내의 다자간 연산 소프트웨어 어플리케이션(516)들의 수를 이용하여 결정될 수 있다. 예를 들면, 계층 결정적 경로는 다자간 연산 소프트웨어 어플리케이션(516)의 식별자 및 다자간 연산 소프트웨어 어플리케이션(516)들의 수를 이용하여 결정될 수 있다.
적어도 하나의 프로세서(207)는 TEE(120) 내에서 키 저장소(526)를 통해 개인 키 및 공개 키를 획득하거나 유도할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 제1 계층 결정적 경로를 이용하여 제1 개인 키(460) 및 제1 공개 키(465)를 획득할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 상기 제1 계층 결정적 경로와 다른 제2 계층 결정적 경로를 이용하여 제2 개인 키(630) 및 제1 공개 키(465)를 획득할 수 있다. 예를 들면, 제1 개인 키(460) 및 제1 공개 키(465)는 제1 계층 결정적 경로에 대응할 수 있다. 예를 들면, 제2 개인 키(630) 및 제2 공개 키(635)는 제2 계층 결정적 경로에 대응할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 제1 계층 결정적 경로와 제2 계층 결정적 경로가 상이함에 기반하여, 하나의 루트 시드(610)로부터 제1 개인 키(460) 및 제1 개인 키(460)와 상이한 제2 개인 키(630)를 획득하거나 유도할 수 있다.
예를 들면, 제1 공개 키(465)는 제1 개인 키(460)에 기반하여 식별될 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 제1 개인 키(460)에 타원 곡선 암호화(elliptic curve cryptography, ECC)를 적용함으로써 제1 공개 키(465)를 식별할 수 있다. 제1 공개 키(465) 및 제1 개인 키(460)는 페어링되기 때문에, 비대칭형 암호화 기법에 이용될 수 있다.
적어도 하나의 프로세서(207)는 제1 공개 키(465)를 이용하여 생성된 부분 키(440)를 암호화할 수 있다. 상기 공개 키에 의한 암호화는 도 7을 참조하여 보다 상세히 설명되고 예시된다.
도 7은 부분 키를 생성하는 예시적인 방법을 도시하는 흐름도이다. 이러한 방법은, 도 3 내에서 도시된 전자 장치(100) 또는 전자 장치(100)의 적어도 하나의 프로세서(207)에 의해 실행될 수 있다.
도 7을 참조하면, 동작 710에서, 적어도 하나의 프로세서(207)는 부분 키(440)의 생성을 야기하는 사용자 입력에 기반하여, 제1 공개 키(465)의 제공에 대한 요청을 제1 소프트웨어 어플리케이션(510)로부터 제2 소프트웨어 어플리케이션(520)에게 전달할 수 있다.
동작 712에서, 적어도 하나의 프로세서(207)는 상기 요청을 제2 소프트웨어 어플리케이션(520)로부터 플랫폼 SDK(522)에게 전달할 수 있다.
동작 720에서, 적어도 하나의 프로세서(207)는 플랫폼 SDK(522)를 통해 제1 공개 키(465)를 유도하기 위한 제1 계층 결정적 경로를 생성할 수 있다. 예를 들면, 플랫폼 SDK(522)는 전자 장치(100)에 저장된 제1 다자간 연산 소프트웨어 어플리케이션(516-1)을 포함하는 다자간 연산 소프트웨어 어플리케이션들의 수 및/또는 제1 다자간 연산 소프트웨어 어플리케이션(516-1)에 대한 식별자를 이용하여 제1 계층 결정적 경로를 생성할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 제1 소프트웨어 어플리케이션(510)에 기반하여 식별된 제1 계층 결정적 경로를 이용하여 제1 공개 키(465)를 유도하라는 요청에 기반하여 플랫폼 SDK(522)에서 제1 계층 결정적 경로를 생성할 수 있다.
동작 722에서, 적어도 하나의 프로세서(207)는 제1 계층 결정적 경로를 이용하여 제1 공개 키(465)를 유도하라는 요청을 플랫폼 SDK(522)로부터 키 저장소 SDK(524)에게 전달할 수 있다.
동작 724에서, 적어도 하나의 프로세서(207)는 제1 계층 결정적 경로를 이용하여 제1 공개 키(465)를 유도하라는 요청을 키 저장소 SDK(524)로부터 키 저장소(526)에게 전달할 수 있다.
동작 730에서, 적어도 하나의 프로세서(207)는 TEE(120) 내에 위치한 루트 시드(610)로부터 제1 계층 결정적 경로를 이용하여 제1 공개 키(465) 및 제1 개인 키(460)를 포함하는 키 페어를 유도할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 플랫폼 SDK(522)에 기반하여 식별된 제1 계층 결정적 경로를 이용하여 제1 공개 키(465)를 유도하라는 요청에 기반하여 키 저장소(526)에서 제1 공개 키(465) 및 제1 개인 키(460)를 포함하는 키 페어를 유도할 수 있다.
동작 740에서, 적어도 하나의 프로세서(207)는 키 저장소(526)에서 제1 공개 키(465)를 래핑(wrap)할 수 있다. 적어도 하나의 프로세서(207)는 제1 공개 키(465)를 래핑함으로써, 래핑된 제1 공개 키(465)를 획득할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 래핑된 제1 공개 키(465)를 이용하여 제1 계층 결정적 경로를 식별할 수 있다.
동작 742에서, 적어도 하나의 프로세서(207)는 상기 래핑된 제1 공개 키(465)를 키 저장소(526)로부터 키 저장소 SDK(742)에게 전달할 수 있다.
동작 744에서, 적어도 하나의 프로세서(207)는 상기 래핑된 제1 공개 키(465)를 키 저장소 SDK(524)로부터 플랫폼 SDK(522)에게 전달할 수 있다.
동작 746에서, 적어도 하나의 프로세서(207)는 상기 래핑된 제1 공개 키(465)를 플랫폼 SDK(522)로부터 제2 소프트웨어 어플리케이션(520)에게 전달할 수 있다.
동작 748에서, 적어도 하나의 프로세서(207)는 상기 래핑된 제1 공개 키(465)를 제2 소프트웨어 어플리케이션(520)로부터 제1 소프트웨어 어플리케이션(510)에게 전달할 수 있다.
동작 750에서, 적어도 하나의 프로세서(207)는 부분 키(440)를 생성하라는 요청을 제1 소프트웨어 어플리케이션(510)로부터 다자간 연산 SDK(512)에게 전달할 수 있다.
동작 752에서, 적어도 하나의 프로세서(207)는 상기 요청을 다자간 연산 SDK(512)로부터 다자간 연산 소프트웨어 어플리케이션(516)에게 전달할 수 있다.
동작 760에서, 적어도 하나의 프로세서(207)는 래핑된 제1 공개 키(465)의 소스를 식별할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 래핑된 제1 공개 키(465)를 이용하여 루트 시드(610)로부터 제1 공개 키(465)를 유도하기 위해 이용된 제1 계층 결정적 경로를 식별할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 상기 래핑된 제1 공개 키(465)를 언래핑(unwrap)함으로써, 루트 시드(610)로부터 제1 공개 키(465)를 유도하기 위해 이용되는 제1 계층 결정적 경로를 나타내는 식별 정보를 획득할 수 있다. 적어도 하나의 프로세서(207)는 상기 식별 정보와 제1 계층 결정적 경로를 비교함으로써, 제1 공개 키(465)를 검증할 수 있다.
동작 770에서, 적어도 하나의 프로세서(207)는 TEE(120) 내의 다자간 연산 소프트웨어 어플리케이션(516)을 통해 부분 키(440)를 생성할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 키를 논리적으로 분할함으로써 부분 키(440)를 생성할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 전자 서명을 위한 키를 수학적으로 분할함으로써 부분 키(440)를 생성할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 제1 소프트웨어 어플리케이션(510)에 기반하여 식별된 부분 키(440)를 생성하라는 요청에 기반하여 다자간 연산 소프트웨어 어플리케이션(516)에서 부분 키(440)를 생성할 수 있다.
동작 780에서, 적어도 하나의 프로세서(207)는 TEE(120) 내에서 제1 공개 키(465)를 이용하여 상기 생성된 부분 키(440)를 암호화함으로써, 암호화 키(450)를 생성할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 TEE(120) 내에서 다자간 연산 소프트웨어 어플리케이션(516)을 통해 암호화 키(450)를 생성할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 상기 암호화 키(450)를 생성하는 동안, 상기 부분 키(440)에 대한 백업 데이터(470)를 생성할 수 있다. 예를 들면, 백업 데이터(470)는 부분 키(440)를 검증하기 위해 이용될 수 있다. 예를 들면, 암호화 키(450)는 공개 키에 의해 암호화된 부분 키(440)로 설명될 수 있다.
동작 782에서, 적어도 하나의 프로세서(207)는 암호화 키(450)를 다자간 연산 소프트웨어 어플리케이션(516)로부터 다자간 연산 SDK(512)에게 전달할 수 있다.
동작 784에서, 적어도 하나의 프로세서(207)는 암호화 키(450)를 다자간 연산 SDK(512)로부터 제1 소프트웨어 어플리케이션(510)에게 전달할 수 있다.
동작 790에서, 적어도 하나의 프로세서(207)는 암호화 키(450)를 REE(110) 내에서 저장할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 제1 소프트웨어 어플리케이션(510)을 통해 암호화 키(450)를 관리할 수 있다.
적어도 하나의 프로세서(207)는 암호화 키(450)를 트랜잭션의 전자 서명을 수행하기 위한 부분 키(440)로 복호화할 수 있다. 상기 암호화 키(450)의 복호화 및 부분 키(440)의 사용은 도 8을 참조하여 보다 상세히 설명되고 예시된다.
도 8은 부분 키를 사용하는 예시적인 방법을 도시하는 흐름도이다. 이러한 방법은, 도 3 내에서 도시된 전자 장치(100) 또는 전자 장치(100)의 적어도 하나의 프로세서(207)에 의해 실행될 수 있다.
도 8을 참조하면, 동작 810에서, 적어도 하나의 프로세서(207)는 암호화 키(450)를 이용하여 트랜잭션에 대한 전자 서명을 수행하라는 요청을 제1 소프트웨어 어플리케이션(510)로부터 다자간 연산 SDK(512)에게 전달할 수 있다.
동작 812에서, 적어도 하나의 프로세서(207)는 상기 요청을 다자간 연산 SDK로부터 다자간 연산 소프트웨어 어플리케이션(516)에게 전달할 수 있다.
동작 820에서, 적어도 하나의 프로세서(207)는 암호화 키(450)의 복호화를 준비하라는 요청을 제1 소프트웨어 어플리케이션(510)로부터 제2 소프트웨어 어플리케이션(520)에게 전달할 수 있다.
동작 822에서, 적어도 하나의 프로세서(207)는 상기 요청을 제2 소프트웨어 어플리케이션(520)로부터 플랫폼 SDK(522)에게 전달할 수 있다.
동작 830에서, 적어도 하나의 프로세서(207)는 계층 결정적 경로를 생성하거나 획득할 수 있다. 예를 들면, 동작 830은 동작 720에 대응할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 제1 소프트웨어 어플리케이션(510)에 기반하여 식별된 암호화 키(450)의 복호화를 준비하라는 요청에 기반하여 플랫폼 SDK(522)에서 계층 결정적 경로를 생성하거나 획득할 수 있다.
동작 832에서, 적어도 하나의 프로세서(207)는 계층 결정적 경로를 이용하여 암호화 키(450)의 복호화를 준비하라는 요청을 플랫폼 SDK(522)로부터 키 저장소 SDK(524)에게 전달할 수 있다.
동작 834에서, 적어도 하나의 프로세서(207)는 계층 결정적 경로를 이용하여 암호화 키(450)의 복호화를 준비하라는 요청을 키 저장소 SDK(524)로부터 키 저장소(526)에게 전달할 수 있다.
동작 840에서, 적어도 하나의 프로세서(207)는 키 저장소(526)를 통해 루트 시드(610)로부터 개인 키(예: 제1 개인 키(460)) 및 공개 키(예: 제1 공개 키(465))의 키 페어를 유도하거나 획득할 수 있다. 예를 들면, 동작 840은 동작 730에 대응할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 플랫폼 SDK(522)에 기반하여 식별된 계층 결정적 경로를 이용하여 암호화 키(450)의 복호화를 준비하라는 요청에 기반하여 키 저장소(526)에서 개인 키 및 공개 키를 포함하는 키 페어를 유도하거나 생성할 수 있다.
동작 842에서. 적어도 하나의 프로세서(207)는 암호화 키(450)를 복호화하라는 요청을 다자간 연산 소프트웨어 어플리케이션(516)로부터 키 저장소(526)에게 전달할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 통신 회로(205)를 통해 상기 요청을 다자간 연산 소프트웨어 어플리케이션(516)로부터 키 저장소(526)에게 전달할 수 있다. 예를 들면, TEE(120) 내의 제1 신뢰 어플리케이션은 TEE(120) 내의 제2 신뢰 어플리케이션과 신호, 정보, 또는 데이터를 전달하기 위해서 통신 회로(205)를 이용할 수 있다.
동작 850에서, 적어도 하나의 프로세서(207)는 개인 키를 이용하여 암호화 키(450)를 복호화함으로써, 부분 키(440)를 획득할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 다자간 연산 소프트웨어 어플리케이션(516)에 기반하여 식별된 암호화 키(450)를 복호화하라는 요청에 기반하여, 암호화 키(450)를 개인 키를 이용하여 복호화함으로써, 키 저장소(526)에서 부분 키(440)를 획득할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 백업 데이터(470)를 이용하여 부분 키(440)를 검증할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 백업 데이터(470)로부터 백업 데이터(470)를 생성하던 시점에서 이용되었던 부분 키(440)를 식별할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 상기 획득된 부분 키(440) 및 백업 데이터(470)로부터 식별된 부분 키(440)를 비교함으로써, 암호화 키(450)를 복호화함으로써 획득된 부분 키(440)를 검증할 수 있다. 하지만, 이에 제한되지 않는다. 적어도 하나의 프로세서(207)는 백업 데이터(470)를 이용하여 암호화 키(450)를 복호화함으로써 획득된 부분 키(440)를 검증하는 것을 스킵하거나 바이패스할 수 있다.
동작 852에서, 적어도 하나의 프로세서(207)는 부분 키(440)를 키 저장소(526)로부터 다자간 연산 소프트웨어 어플리케이션(516)에게 전달할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 부분 키(440)를 TEE(120) 내의 키 저장소(526)로부터 다자간 연산 소프트웨어 어플리케이션(516)에게 전달할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 통신 회로(205)를 통해 부분 키(440)를 키 저장소(526)로부터 다자간 연산 소프트웨어 어플리케이션(516)에게 전달할 수 있다. 예를 들면, 키 저장소(526) 및 다자간 연산 소프트웨어 어플리케이션(516)은 TEE(120) 내에 위치하기 때문에 적어도 하나의 프로세서(207)는 부분 키(440)를 전달하기 위해 통신 회로(205)를 이용할 수 있다.
동작 860에서, 적어도 하나의 프로세서(207)는 부분 키(440)를 이용하여 트랜잭션에 대한 전자 서명을 수행할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 제1 소프트웨어 어플리케이션(510)에 기반하여 식별된 부분 키(440)를 이용하여 트랜잭션에 대한 전자 서명을 수행하라는 요청에 기반하여, 다자간 연산 소프트웨어 어플리케이션(516)에서 트랜잭션에 대한 전자 서명을 수행할 수 있다. 예를 들면, 부분 키(440)는 다자간 연산 기법에 이용되기 때문에, 적어도 하나의 프로세서(207)는 부분 키(440)를 이용하여 트랜잭션에 대한 전자 서명을 부분적으로 수행할 수 있다. 예를 들면, 트랜잭션에 대한 전자 서명을 위한 부분 키(440)들 각각이 저장된 복수의 전자 장치들 각각으로부터 트랜잭션에 대한 전자 서명이 부분적으로 수행됨에 기반하여, 트랜잭션에 대한 전자 서명은 완전하게 수행될 수 있다. 예를 들면, 완전하게 수행된 전자 서명에 기반하여, 상기 트랜잭션을 포함하는 블록은 다른 블록과 연결을 유지하거나 블록체인에 커밋될 수 있다.
적어도 하나의 프로세서(207)는 전자 장치(100)의 디스플레이(208) 상에 사용자 입력을 수신하기 위한 화면을 표시할 수 있다. 적어도 하나의 프로세서(207)는 상기 화면을 디스플레이(208) 상에 표시하는 동안, 사용자 입력을 수신할 수 있다. 상기 사용자 입력의 수신은 도 9를 참조하여 보다 상세히 설명되고 예시된다.
도 9는 사용자 입력을 수신함에 응답하여 트랜잭션에 대한 전자 서명을 수행하는 예를 도시한다.
도 9를 참조하면, 적어도 하나의 프로세서(207)는 제1 소프트웨어 어플리케이션(510)(또는 전자 장치(100))에 로그인하기 위한 화면(910)을 디스플레이(208) 상에 표시할 수 있다. 예를 들면, 화면(910)은 사용자 입력을 수신하기 위한 영역(915)을 포함할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 전자 장치(100)의 사용자에게 권한이 있는지 식별하기 위해 영역(915)을 통해 사용자 입력을 수신할 수 있다. 예를 들면, 영역(915)은 사용자의 지문을 터치하기 위한 영역으로 설명될 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 영역(915)을 이용하여 사용자를 인증할 수 있다.
적어도 하나의 프로세서(207)는 화면(910)으로부터 사용자 인증에 기반하여, 트랜잭션에 대한 전자 서명을 수행하기 위한 화면(예: 화면(920), 화면(930))을 디스플레이(208) 상에 표시할 수 있다. 예를 들면, 화면(920)은 제1 트랜잭션에 대한 전자 서명을 수행하기 위한 화면으로 설명될 수 있다. 예를 들면, 화면(930)은 상기 제1 트랜잭션과 다른 제2 트랜잭션에 대한 전자 서명을 수행하기 위한 화면으로 설명될 수 있다. 예를 들면, 화면(920)은 사용자 입력을 수신하기 위한 영역(925)을 포함할 수 있다. 예를 들면, 화면(930)은 사용자 입력을 수신하기 위한 영역(935)을 포함할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 영역(925)으로부터 사용자 입력을 수신함으로써, 제1 트랜잭션에 대응하는 부분 키(440)를 이용하여 전자 서명을 수행할 수 있다. 예를 들면, 적어도 하나의 프로세서(207)는 영역(935)로부터 사용자 입력을 수신함으로써, 제2 트랜잭션에 대응하는 부분 키(440)를 이용하여 전자 서명을 수행할 수 있다. 제1 트랜잭션에 대한 전자 서명을 수행하기 위한 제1 부분 키(예: 부분 키(440))는 제2 트랜잭션에 대한 전자 서명을 수행하기 위한 제2 부분 키와 상이할 수 있다.
전자 장치(100)는 루트 시드(610)로부터 유도되는 개인 키 및 공개 키를 이용하여 부분 키(440)를 암호화하거나 복호화함으로써, 부분 키(440)를 관리할 수 있다. 예를 들면, 전자 장치(100)는 제1 다자간 연산 소프트웨어 어플리케이션(516-1)에 대응하는 제1 부분 키(440) 및 제N 다자간 연산 소프트웨어 어플리케이션(516-N)에 대응하는 제N 부분 키(440)를 제1 소프트웨어 어플리케이션(510) 및 제2 소프트웨어 어플리케이션(520)을 이용하여 관리할 수 있다. 예를 들면, 전자 장치(100)는 제1 다자간 연산 소프트웨어 어플리케이션(516-1)에 대응하는 서버에 로그인하기 위해 사용자 입력을 수신한 후, 제N 다자간 연산 소프트웨어 어플리케이션(516-N)에 대응하는 다른(another) 서버에 로그인하기 위해 다른(another) 사용자 입력을 수신하는 것을 스킵할 수 있다. 예를 들면, 전자 장치(100)는 사용자 입력을 수신하는 횟수를 감소시킴으로써, 사용자의 편의성을 향상시킬 수 있다. 예를 들면, 루트 시드(610)는, 제1 다자간 연산 소프트웨어 어플리케이션(516-1) 내지 제N 다자간 연산 소프트웨어 어플리케이션(516-N) 중 적어도 둘에 의해 이용되기 때문에, 2 이상의 전자 서명을 수행하기 위한 사용자 입력의 횟수가 감소될 수 있다. 예를 들면, 트랜잭션에 대한 전자 서명을 수행하기 위한 부분 키(440)를 TEE(120) 내에서 생성하거나 사용함으로써, 전자 장치(100)의 보안 품질이 향상될 수 있다.
도 10은 다양한 실시예들에 따른, 네트워크 환경 내의 전자 장치의 블록도이다.
도 10은, 다양한 실시예들에 따른, 네트워크 환경(1000) 내의 전자 장치(1001)의 블록도이다. 도 10을 참조하면, 네트워크 환경(1000)에서 전자 장치(1001)는 제1 네트워크(1098)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(1002)와 통신하거나, 또는 제2 네트워크(1099)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(1004) 또는 서버(1008) 중 적어도 하나와 통신할 수 있다. 일실시예에 따르면, 전자 장치(1001)는 서버(1008)를 통하여 전자 장치(1004)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(1001)는 프로세서(1020), 메모리(1030), 입력 모듈(1050), 음향 출력 모듈(1055), 디스플레이 모듈(1060), 오디오 모듈(1070), 센서 모듈(1076), 인터페이스(1077), 연결 단자(1078), 햅틱 모듈(1079), 카메라 모듈(1080), 전력 관리 모듈(1088), 배터리(1089), 통신 모듈(1090), 가입자 식별 모듈(1096), 또는 안테나 모듈(1097)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(1001)에는, 이 구성요소들 중 적어도 하나(예: 연결 단자(1078))가 생략되거나, 하나 이상의 다른 구성요소가 추가될 수 있다. 어떤 실시예에서는, 이 구성요소들 중 일부들(예: 센서 모듈(1076), 카메라 모듈(1080), 또는 안테나 모듈(1097))은 하나의 구성요소(예: 디스플레이 모듈(1060))로 통합될 수 있다.
프로세서(1020)는, 예를 들면, 소프트웨어(예: 프로그램(1040))를 실행하여 프로세서(1020)에 연결된 전자 장치(1001)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(1020)는 다른 구성요소(예: 센서 모듈(1076) 또는 통신 모듈(1090))로부터 수신된 명령 또는 데이터를 휘발성 메모리(1032)에 저장하고, 휘발성 메모리(1032)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(1034)에 저장할 수 있다. 일실시예에 따르면, 프로세서(1020)는 메인 프로세서(1021)(예: 중앙 처리 장치 또는 어플리케이션 프로세서) 또는 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(1023)(예: 그래픽 처리 장치, 신경망 처리 장치(NPU: neural processing unit), 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 예를 들어, 전자 장치(1001)가 메인 프로세서(1021) 및 보조 프로세서(1023)를 포함하는 경우, 보조 프로세서(1023)는 메인 프로세서(1021)보다 저전력을 사용하거나, 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(1023)는 메인 프로세서(1021)와 별개로, 또는 그 일부로서 구현될 수 있다.
보조 프로세서(1023)는, 예를 들면, 메인 프로세서(1021)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(1021)를 대신하여, 또는 메인 프로세서(1021)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(1021)와 함께, 전자 장치(1001)의 구성요소들 중 적어도 하나의 구성요소(예: 디스플레이 모듈(1060), 센서 모듈(1076), 또는 통신 모듈(1090))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일실시예에 따르면, 보조 프로세서(1023)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성요소(예: 카메라 모듈(1080) 또는 통신 모듈(1090))의 일부로서 구현될 수 있다. 일실시예에 따르면, 보조 프로세서(1023)(예: 신경망 처리 장치)는 인공지능 모델의 처리에 특화된 하드웨어 구조를 포함할 수 있다. 인공지능 모델은 기계 학습을 통해 생성될 수 있다. 이러한 학습은, 예를 들어, 인공지능 모델이 수행되는 전자 장치(1001) 자체에서 수행될 수 있고, 별도의 서버(예: 서버(1008))를 통해 수행될 수도 있다. 학습 알고리즘은, 예를 들어, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)을 포함할 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은, 복수의 인공 신경망 레이어들을 포함할 수 있다. 인공 신경망은 심층 신경망(DNN: deep neural network), CNN(convolutional neural network), RNN(recurrent neural network), RBM(restricted boltzmann machine), DBN(deep belief network), BRDNN(bidirectional recurrent deep neural network), 심층 Q-네트워크(deep Q-networks) 또는 상기 중 둘 이상의 조합 중 하나일 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은 하드웨어 구조 이외에, 추가적으로 또는 대체적으로, 소프트웨어 구조를 포함할 수 있다.
메모리(1030)는, 전자 장치(1001)의 적어도 하나의 구성요소(예: 프로세서(1020) 또는 센서 모듈(1076))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(1040)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(1030)는, 휘발성 메모리(1032) 또는 비휘발성 메모리(1034)를 포함할 수 있다.
프로그램(1040)은 메모리(1030)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(1042), 미들 웨어(1044) 또는 어플리케이션(1046)을 포함할 수 있다.
입력 모듈(1050)은, 전자 장치(1001)의 구성요소(예: 프로세서(1020))에 사용될 명령 또는 데이터를 전자 장치(1001)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 모듈(1050)은, 예를 들면, 마이크, 마우스, 키보드, 키(예: 버튼), 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다.
음향 출력 모듈(1055)은 음향 신호를 전자 장치(1001)의 외부로 출력할 수 있다. 음향 출력 모듈(1055)은, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있다. 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.
디스플레이 모듈(1060)은 전자 장치(1001)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 디스플레이 모듈(1060)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 디스플레이 모듈(1060)은 터치를 감지하도록 설정된 터치 센서, 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 압력 센서를 포함할 수 있다.
오디오 모듈(1070)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일실시예에 따르면, 오디오 모듈(1070)은, 입력 모듈(1050)을 통해 소리를 획득하거나, 음향 출력 모듈(1055), 또는 전자 장치(1001)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(1002))(예: 스피커 또는 헤드폰)를 통해 소리를 출력할 수 있다.
센서 모듈(1076)은 전자 장치(1001)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일실시예에 따르면, 센서 모듈(1076)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(1077)는 전자 장치(1001)가 외부 전자 장치(예: 전자 장치(1002))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일실시예에 따르면, 인터페이스(1077)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(1078)는, 그를 통해서 전자 장치(1001)가 외부 전자 장치(예: 전자 장치(1002))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일실시예에 따르면, 연결 단자(1078)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(1079)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일실시예에 따르면, 햅틱 모듈(1079)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(1080)은 정지 영상 및 동영상을 촬영할 수 있다. 일실시예에 따르면, 카메라 모듈(1080)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.
전력 관리 모듈(1088)은 전자 장치(1001)에 공급되는 전력을 관리할 수 있다. 일실시예에 따르면, 전력 관리 모듈(1088)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.
배터리(1089)는 전자 장치(1001)의 적어도 하나의 구성요소에 전력을 공급할 수 있다. 일실시예에 따르면, 배터리(1089)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(1090)은 전자 장치(1001)와 외부 전자 장치(예: 전자 장치(1002), 전자 장치(1004), 또는 서버(1008)) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(1090)은 프로세서(1020)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일실시예에 따르면, 통신 모듈(1090)은 무선 통신 모듈(1092)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(1094)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제1 네트워크(1098)(예: 블루투스, WiFi(wireless fidelity) direct 또는 IrDA(infrared data association)와 같은 근거리 통신 네트워크) 또는 제2 네트워크(1099)(예: 레거시 셀룰러 네트워크, 5G 네트워크, 차세대 통신 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부의 전자 장치(1004)와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성요소(예: 단일 칩)로 통합되거나, 또는 서로 별도의 복수의 구성요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(1092)은 가입자 식별 모듈(1096)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제1 네트워크(1098) 또는 제2 네트워크(1099)와 같은 통신 네트워크 내에서 전자 장치(1001)를 확인 또는 인증할 수 있다.
무선 통신 모듈(1092)은 4G 네트워크 이후의 5G 네트워크 및 차세대 통신 기술, 예를 들어, NR 접속 기술(new radio access technology)을 지원할 수 있다. NR 접속 기술은 고용량 데이터의 고속 전송(eMBB(enhanced mobile broadband)), 단말 전력 최소화와 다수 단말의 접속(mMTC(massive machine type communications)), 또는 고신뢰도와 저지연(URLLC(ultra-reliable and low-latency communications))을 지원할 수 있다. 무선 통신 모듈(1092)은, 예를 들어, 높은 데이터 전송률 달성을 위해, 고주파 대역(예: mmWave 대역)을 지원할 수 있다. 무선 통신 모듈(1092)은 고주파 대역에서의 성능 확보를 위한 다양한 기술들, 예를 들어, 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO(multiple-input and multiple-output)), 전차원 다중입출력(FD-MIMO: full dimensional MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 또는 대규모 안테나(large scale antenna)와 같은 기술들을 지원할 수 있다. 무선 통신 모듈(1092)은 전자 장치(1001), 외부 전자 장치(예: 전자 장치(1004)) 또는 네트워크 시스템(예: 제2 네트워크(1099))에 규정되는 다양한 요구사항을 지원할 수 있다. 일실시예에 따르면, 무선 통신 모듈(1092)은 eMBB 실현을 위한 Peak data rate(예: 20Gbps 이상), mMTC 실현을 위한 손실 Coverage(예: 164dB 이하), 또는 URLLC 실현을 위한 U-plane latency(예: 다운링크(DL) 및 업링크(UL) 각각 0.5ms 이하, 또는 라운드 트립 1ms 이하)를 지원할 수 있다.
안테나 모듈(1097)은 신호 또는 전력을 외부(예: 외부의 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일실시예에 따르면, 안테나 모듈(1097)은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 안테나를 포함할 수 있다. 일실시예에 따르면, 안테나 모듈(1097)은 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다. 이런 경우, 제1 네트워크(1098) 또는 제2 네트워크(1099)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(1090)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(1090)과 외부의 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시예에 따르면, 방사체 이외에 다른 부품(예: RFIC(radio frequency integrated circuit))이 추가로 안테나 모듈(1097)의 일부로 형성될 수 있다.
다양한 실시예에 따르면, 안테나 모듈(1097)은 mmWave 안테나 모듈을 형성할 수 있다. 일실시예에 따르면, mmWave 안테나 모듈은 인쇄 회로 기판, 상기 인쇄 회로 기판의 제1 면(예: 아래 면)에 또는 그에 인접하여 배치되고 지정된 고주파 대역(예: mmWave 대역)을 지원할 수 있는 RFIC, 및 상기 인쇄 회로 기판의 제2 면(예: 윗 면 또는 측 면)에 또는 그에 인접하여 배치되고 상기 지정된 고주파 대역의 신호를 송신 또는 수신할 수 있는 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다.
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))을 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일실시예에 따르면, 명령 또는 데이터는 제2 네트워크(1099)에 연결된 서버(1008)를 통해서 전자 장치(1001)와 외부의 전자 장치(1004)간에 송신 또는 수신될 수 있다. 외부의 전자 장치(1002, 또는 1004) 각각은 전자 장치(1001)와 동일한 또는 다른 종류의 장치일 수 있다. 일실시예에 따르면, 전자 장치(1001)에서 실행되는 동작들의 전부 또는 일부는 외부의 전자 장치들(1002, 1004, 또는 1008) 중 하나 이상의 외부의 전자 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(1001)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(1001)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부의 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부의 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(1001)로 전달할 수 있다. 전자 장치(1001)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 모바일 에지 컴퓨팅(MEC: mobile edge computing), 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다. 전자 장치(1001)는, 예를 들어, 분산 컴퓨팅 또는 모바일 에지 컴퓨팅을 이용하여 초저지연 서비스를 제공할 수 있다. 다른 실시예에 있어서, 외부의 전자 장치(1004)는 IoT(internet of things) 기기를 포함할 수 있다. 서버(1008)는 기계 학습 및/또는 신경망을 이용한 지능형 서버일 수 있다. 일실시예에 따르면, 외부의 전자 장치(1004) 또는 서버(1008)는 제2 네트워크(1099) 내에 포함될 수 있다. 전자 장치(1001)는 5G 통신 기술 및 IoT 관련 기술을 기반으로 지능형 서비스(예: 스마트 홈, 스마트 시티, 스마트 카, 또는 헬스 케어)에 적용될 수 있다.
상술한 바와 같은 전자 장치는, 인스트럭션들을 저장하는 메모리(206)를 포함할 수 있다. 상기 전자 장치는, 적어도 하나의 프로세서(207)를 포함할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, REE(110)에 기반하여 실행되는 소프트웨어 어플리케이션(510)을 통해, 암호화 키(450)에 기반하는 트랜잭션의 전자 서명을 위한 사용자 입력을 수신하도록 상기 전자 장치를 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 사용자 입력의 수신에 응답하여, 상기 REE(110)와 다른 TEE(120)(trusted execution environment) 내에서 관리되는 루트 시드(610)로부터, 상기 암호화 키(450)의 복호화에 이용될 개인 키(460)를 획득하도록 상기 전자 장치를 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 개인 키(460)를 이용하여 상기 암호화 키(450)를 복호화함으로써, 상기 암호화 키(450)에 대응하는 부분 키(440)를 획득하도록 상기 전자 장치를 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 부분 키(440)를 이용하여 상기 트랜잭션에 대한 전자 서명을 수행하도록 상기 전자 장치를 야기할 수 있다.
일 실시예에 따르면, 상기 사용자 입력은 제1 사용자 입력을 포함할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 REE(110)에 기반하여 실행되고 암호화 키(450)들을 관리하는 상기 소프트웨어 어플리케이션(510)을 통해, 전자 서명을 위해 이용될 상기 부분 키(440)의 생성을 야기하는 제2 사용자 입력을 수신하도록 상기 전자 장치를 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 제2 사용자 입력의 수신에 응답하여, 상기 TEE(120) 내에서 상기 부분 키(440)를 생성하도록 상기 전자 장치를 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 TEE(120) 내에서 관리되고, 상기 루트 시드(610)로부터 유도된 개인 키(460) 및 공개 키(465)의 페어들 중 어느 한 페어에 포함된 공개 키(465)를 이용하여 상기 부분 키(440)를 암호화함으로써, 상기 부분 키(440)에 대응하는 상기 암호화 키(450)를 획득하도록 상기 전자 장치를 야기할 수 있다.
일 실시예에 따르면, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 획득된 암호화 키(450)를 상기 REE(110) 내에서 저장하도록 상기 전자 장치를 야기할 수 있다.
일 실시예에 따르면, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 루트 시드(610)로부터 상기 공개 키(465)를 유도하기 위해 이용되는 계층 결정적(hierarchical deterministic) 경로를 나타내는 식별 정보를 획득하도록 상기 전자 장치를 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 식별 정보와 상기 계층 결정적 경로가 일치하는지 여부에 기반하여, 상기 공개 키(465)를 검증하도록 상기 전자 장치를 야기할 수 있다.
일 실시예에 따르면, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 부분 키(440)로부터 상기 암호화 키(450)를 생성하던 시점에 생성된 백업 데이터(470)로부터, 상기 시점에서 이용되었던 부분 키(440)를 식별하도록 상기 전자 장치를 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 암호화 키(450)를 복호화함으로써 획득된 상기 부분 키(440) 및 상기 백업 데이터(470)로부터 식별된 상기 부분 키(440)를 비교함으로써, 상기 암호화 키(450)를 복호화함으로써 획득된 상기 부분 키(440)를 검증하도록 상기 전자 장치를 야기할 수 있다.
일 실시예에 따르면, 상기 개인 키(460)는, 상기 TEE(120) 내에서 상기 루트 시드(610)로부터, 상기 부분 키(440)에 대응하는 다른 소프트웨어 어플리케이션(510)(516)의 식별자를 이용하여 결정되는 계층 결정적 경로를 이용하여 획득될 수 있다.
일 실시예에 따르면, 상기 부분 키(440)는, 다자간 연산(multi-party computation)을 수행하기 위해 상기 트랜잭션에 대한 완전한 전자 서명을 위한 개인 키(460)를 논리적으로 분할함으로써 생성되고, 상기 트랜잭션에 대한 부분적인 전자 서명을 수행하기 위해 이용될 수 있다.
상술한 바와 같은, 전자 장치(100)에 의해 수행되는 방법은, REE(110)에 기반하여 실행되는 소프트웨어 어플리케이션(510)을 통해, 암호화 키(450)에 기반하는 트랜잭션의 전자 서명을 위한 사용자 입력을 수신하는 동작을 포함할 수 있다. 상기 방법은, 상기 사용자 입력의 수신에 응답하여, 상기 REE(110)와 다른 TEE(120)(trusted execution environment) 내에서 관리되는 루트 시드(610)로부터, 상기 암호화 키(450)의 복호화에 이용될 개인 키(460)를 획득하는 동작을 포함할 수 있다. 상기 방법은, 상기 개인 키(460)를 이용하여 상기 암호화 키(450)를 복호화함으로써, 상기 암호화 키(450)에 대응하는 부분 키(440)를 획득하는 동작을 포함할 수 있다. 상기 방법은, 상기 부분 키(440)를 이용하여 상기 트랜잭션에 대한 전자 서명을 수행하는 동작을 포함할 수 있다.
일 실시예에 따르면, 상기 사용자 입력은 제1 사용자 입력을 포함할 수 있다. 상기 방법은, 상기 REE(110)에 기반하여 실행되고 암호화 키(450)들을 관리하는 상기 소프트웨어 어플리케이션(510)을 통해, 전자 서명을 위해 이용될 상기 부분 키(440)의 생성을 야기하는 제2 사용자 입력을 수신하는 동작을 포함할 수 있다. 상기 방법은, 상기 제2 사용자 입력의 수신에 응답하여, 상기 TEE(120) 내에서 상기 부분 키(440)를 생성하는 동작을 포함할 수 있다. 상기 방법은, 상기 TEE(120) 내에서 관리되고, 상기 루트 시드(610)로부터 유도된 개인 키(460) 및 공개 키(465)의 페어들 중 어느 한 페어에 포함된 공개 키(465)를 이용하여 상기 부분 키(440)를 암호화함으로써, 상기 부분 키(440)에 대응하는 상기 암호화 키(450)를 획득하는 동작을 포함할 수 있다.
일 실시예에 따르면, 상기 방법은, 상기 획득된 암호화 키(450)를 상기 REE(110) 내에서 저장하는 동작을 포함할 수 있다.
일 실시예에 따르면, 상기 방법은, 상기 루트 시드(610)로부터 상기 공개 키(465)를 유도하기 위해 이용되는 계층 결정적(hierarchical deterministic) 경로를 나타내는 식별 정보를 획득하는 동작을 포함할 수 있다. 상기 방법은, 상기 식별 정보와 상기 계층 결정적 경로가 일치하는지 여부에 기반하여, 상기 공개 키(465)를 검증하는 동작을 포함할 수 있다.
일 실시예에 따르면, 상기 방법은, 상기 부분 키(440)로부터 상기 암호화 키(450)를 생성하던 시점에 생성된 백업 데이터(470)로부터, 상기 시점에서 이용되었던 부분 키(440)를 식별하는 동작을 포함할 수 있다. 상기 방법은, 상기 암호화 키(450)를 복호화함으로써 획득된 상기 부분 키(440) 및 상기 백업 데이터(470)로부터 식별된 상기 부분 키(440)를 비교함으로써, 상기 암호화 키(450)를 복호화함으로써 획득된 상기 부분 키(440)를 검증하는 동작을 포함할 수 있다.
일 실시예에 따르면, 상기 개인 키(460)는, 상기 TEE(120) 내에서 상기 루트 시드(610)로부터, 상기 부분 키(440)에 대응하는 다른 소프트웨어 어플리케이션(510)(516)의 식별자를 이용하여 결정되는 계층 결정적 경로를 이용하여 획득될 수 있다.
일 실시예에 따르면, 상기 부분 키(440)는, 다자간 연산(multi-party computation)을 수행하기 위해 상기 트랜잭션에 대한 완전한 전자 서명을 위한 개인 키(460)를 논리적으로 분할함으로써 생성되고, 상기 트랜잭션에 대한 부분적인 전자 서명을 수행하기 위해 이용될 수 있다.
상술한 바와 같은, 하나 이상의 프로그램들이 저장된 컴퓨터 판독가능 저장 매체에 있어서, 상기 하나 이상의 프로그램들은, 전자 장치(100)에 의해 실행될 시, REE(110)에 기반하여 실행되는 소프트웨어 어플리케이션(510)을 통해, 암호화 키(450)에 기반하는 트랜잭션의 전자 서명을 위한 사용자 입력을 수신하도록 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다. 상기 하나 이상의 프로그램들은, 상기 전자 장치에 의해 실행될 시, 상기 사용자 입력의 수신에 응답하여, 상기 REE(110)와 다른 TEE(120)(trusted execution environment) 내에서 관리되는 루트 시드(610)로부터, 상기 암호화 키(450)의 복호화에 이용될 개인 키(460)를 획득하도록 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다. 상기 하나 이상의 프로그램들은, 상기 전자 장치에 의해 실행될 시, 상기 개인 키(460)를 이용하여 상기 암호화 키(450)를 복호화함으로써, 상기 암호화 키(450)에 대응하는 부분 키(440)를 획득하도록 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다. 상기 하나 이상의 프로그램들은, 상기 전자 장치에 의해 실행될 시, 상기 부분 키(440)를 이용하여 상기 트랜잭션에 대한 전자 서명을 수행하도록 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다.
일 실시예에 따르면, 상기 사용자 입력은, 제1 사용자 입력을 포함할 수 있다. 상기 하나 이상의 프로그램들은, 상기 전자 장치에 의해 실행될 시, 상기 REE(110)에 기반하여 실행되고 암호화 키(450)들을 관리하는 상기 소프트웨어 어플리케이션(510)을 통해, 전자 서명을 위해 이용될 상기 부분 키(440)의 생성을 야기하는 제2 사용자 입력을 수신하도록, 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다. 상기 하나 이상의 프로그램들은, 상기 전자 장치에 의해 실행될 시, 상기 제2 사용자 입력의 수신에 응답하여, 상기 TEE(120) 내에서 상기 부분 키(440)를 생성하도록, 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다. 상기 하나 이상의 프로그램들은, 상기 전자 장치에 의해 실행될 시, 상기 TEE(120) 내에서 관리되고, 상기 루트 시드(610)로부터 유도된 개인 키(460) 및 공개 키(465)의 페어들 중 어느 한 페어에 포함된 공개 키(465)를 이용하여 상기 부분 키(440)를 암호화함으로써, 상기 부분 키(440)에 대응하는 상기 암호화 키(450)를 획득하도록, 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다.
일 실시예에 따르면, 상기 하나 이상의 프로그램들은, 상기 전자 장치에 의해 실행될 시, 상기 획득된 암호화 키(450)를 상기 REE(110) 내에서 저장하도록, 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다.
일 실시예에 따르면, 상기 하나 이상의 프로그램들은, 상기 전자 장치에 의해 실행될 시, 상기 루트 시드(610)로부터 상기 공개 키(465)를 유도하기 위해 이용되는 계층 결정적(hierarchical deterministic) 경로를 나타내는 식별 정보를 획득하도록, 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다. 상기 하나 이상의 프로그램들은, 상기 전자 장치에 의해 실행될 시, 상기 식별 정보와 상기 계층 결정적 경로가 일치하는지 여부에 기반하여, 상기 공개 키(465)를 검증하도록, 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다.
일 실시예에 따르면, 상기 하나 이상의 프로그램들은, 상기 전자 장치에 의해 실행될 시, 상기 부분 키(440)로부터 상기 암호화 키(450)를 생성하던 시점에 생성된 백업 데이터(470)로부터, 상기 시점에서 이용되었던 부분 키(440)를 식별하도록, 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다. 상기 하나 이상의 프로그램들은, 상기 전자 장치에 의해 실행될 시, 상기 암호화 키(450)를 복호화함으로써 획득된 상기 부분 키(440) 및 상기 백업 데이터(470)로부터 식별된 상기 부분 키(440)를 비교함으로써, 상기 암호화 키(450)를 복호화함으로써 획득된 상기 부분 키(440)를 검증하도록, 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다.
일 실시예에 따르면, 상기 개인 키(460)는, 상기 TEE(120) 내에서 상기 루트 시드(610)로부터, 상기 부분 키(440)에 대응하는 다른 소프트웨어 어플리케이션(510)(516)의 식별자를 이용하여 결정되는 계층 결정적 경로를 이용하여 획득될 수 있다.
일 실시예에 따르면, 상기 부분 키(440)는, 다자간 연산(multi-party computation)을 수행하기 위해 상기 트랜잭션에 대한 완전한 전자 서명을 위한 개인 키(460)를 논리적으로 분할함으로써 생성되고, 상기 트랜잭션에 대한 부분적인 전자 서명을 수행하기 위해 이용될 수 있다.
상술한 바와 같은 전자 장치는, 인스트럭션들을 저장하는 메모리(206)를 포함할 수 있다. 상기 전자 장치는, 적어도 하나의 프로세서(207)를 포함할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, REE(110)(rich execution environment)에 기반하여 실행되는 소프트웨어 어플리케이션(510)을 통해, 전자 서명을 위해 이용될 부분 키(440)의 생성을 야기하는 제1 사용자 입력을 수신하도록 상기 전자 장치를 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 제1 사용자 입력의 수신에 응답하여, 상기 REE(110)와 상이한 TEE(120)(trusted execution environment) 내에서 상기 부분 키(440)를 생성하도록 상기 전자 장치를 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 TEE(120) 내에서 관리되고, 루트 시드(610)로부터 유도된(derived) 개인 키(460) 및 공개 키(465)의 페어들 중 어느 한 페어에 포함된 공개 키(465)를 이용하여 상기 부분 키(440)를 암호화함으로써, 상기 부분 키(440)에 대응하는 암호화 키(450)를 획득하도록 상기 전자 장치를 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 REE(110)에서 실행되는 상기 소프트웨어 어플리케이션(510)과 연동되는 상기 암호화 키(450)를 저장하도록 상기 전자 장치를 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 REE(110)에 기반하여 실행되는 상기 소프트웨어 어플리케이션(510)을 통해, 상기 암호화 키(450)에 기반하는 트랜잭션의 전자 서명을 위한 제2 사용자 입력을 수신하도록 상기 전자 장치를 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 제2 사용자 입력의 수신에 응답하여, 상기 TEE(120) 내에서 관리되는 상기 루트 시드(610)로부터, 상기 암호화 키(450)의 복호화에 이용될 개인 키(460)를 획득하도록 상기 전자 장치를 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 개인 키(460)를 이용하여 상기 암호화 키(450)를 복호화함으로써, 상기 부분 키(440)를 획득하도록 상기 전자 장치를 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 부분 키(440)를 이용하여 상기 트랜잭션에 대한 전자 서명을 수행하도록 상기 전자 장치를 야기할 수 있다.
일 실시예에 따르면, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 루트 시드(610)로부터 상기 공개 키(465)를 유도하기 위해 이용되는 계층 결정적(hierarchical deterministic) 경로를 나타내는 식별 정보를 획득하도록 상기 전자 장치를 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 식별 정보와 상기 계층 결정적 경로가 일치하는지 여부에 기반하여, 상기 공개 키(465)를 검증하도록 상기 전자 장치를 야기할 수 있다.
일 실시예에 따르면, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 부분 키(440)로부터 상기 암호화 키(450)를 생성하던 시점에 생성된 백업 데이터(470)로부터, 상기 시점에서 이용되었던 부분 키(440)를 식별하도록 상기 전자 장치를 야기할 수 있다. 상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시, 상기 암호화 키(450)를 복호화함으로써 획득된 상기 부분 키(440) 및 상기 백업 데이터(470)로부터 식별된 상기 부분 키(440)를 비교함으로써, 상기 암호화 키(450)를 복호화함으로써 획득된 상기 부분 키(440)를 검증하도록 상기 전자 장치를 야기할 수 있다.
일 실시예에 따르면, 상기 개인 키(460)는, 상기 TEE(120) 내에서 상기 루트 시드(610)로부터, 상기 부분 키(440)에 대응하는 다른 소프트웨어 어플리케이션(510)(516)의 식별자를 이용하여 결정되는 계층 결정적 경로를 이용하여 획득될 수 있다.
일 실시예에 따르면, 상기 부분 키(440)는, 다자간 연산(multi-party computation)을 수행하기 위해 상기 트랜잭션에 대한 완전한 전자 서명을 위한 개인 키(460)를 논리적으로 분할함으로써 생성되고, 상기 트랜잭션에 대한 부분적인 전자 서명을 수행하기 위해 이용될 수 있다.
상술한 바와 같은, 전자 장치(100)에 의해 수행되는 방법은, REE(110)(rich execution environment)에 기반하여 실행되는 소프트웨어 어플리케이션(510)을 통해, 전자 서명을 위해 이용될 부분 키(440)의 생성을 야기하는 제1 사용자 입력을 수신하는 동작을 포함할 수 있다. 상기 방법은, 상기 제1 사용자 입력의 수신에 응답하여, 상기 REE(110)와 상이한 TEE(120)(trusted execution environment) 내에서 상기 부분 키(440)를 생성하는 동작을 포함할 수 있다. 상기 방법은, 상기 TEE(120) 내에서 관리되고, 루트 시드(610)로부터 유도된(derived) 개인 키(460) 및 공개 키(465)의 페어들 중 어느 한 페어에 포함된 공개 키(465)를 이용하여 상기 부분 키(440)를 암호화함으로써, 상기 부분 키(440)에 대응하는 암호화 키(450)를 획득하는 동작을 포함할 수 있다. 상기 방법은, 상기 REE(110)에서 실행되는 상기 소프트웨어 어플리케이션(510)과 연동되는 상기 암호화 키(450)를 저장하는 동작을 포함할 수 있다. 상기 방법은, 상기 REE(110)에 기반하여 실행되는 상기 소프트웨어 어플리케이션(510)을 통해, 상기 암호화 키(450)에 기반하는 트랜잭션의 전자 서명을 위한 제2 사용자 입력을 수신하는 동작을 포함할 수 있다. 상기 방법은, 상기 제2 사용자 입력의 수신에 응답하여, 상기 TEE(120) 내에서 관리되는 상기 루트 시드(610)로부터, 상기 암호화 키(450)의 복호화에 이용될 개인 키(460)를 획득하는 동작을 포함할 수 있다. 상기 방법은, 상기 개인 키(460)를 이용하여 상기 암호화 키(450)를 복호화함으로써, 상기 부분 키(440)를 획득하는 동작을 포함할 수 있다. 상기 방법은, 상기 부분 키(440)를 이용하여 상기 트랜잭션에 대한 전자 서명을 수행하는 동작을 포함할 수 있다.
일 실시예에 따르면, 상기 방법은, 상기 루트 시드(610)로부터 상기 공개 키(465)를 유도하기 위해 이용되는 계층 결정적(hierarchical deterministic) 경로를 나타내는 식별 정보를 획득하는 동작을 포함할 수 있다. 상기 방법은, 상기 식별 정보와 상기 계층 결정적 경로가 일치하는지 여부에 기반하여, 상기 공개 키(465)를 검증하는 동작을 포함할 수 있다.
일 실시예에 따르면, 상기 방법은, 상기 부분 키(440)로부터 상기 암호화 키(450)를 생성하던 시점에 생성된 백업 데이터(470)로부터, 상기 시점에서 이용되었던 부분 키(440)를 식별하는 동작을 포함할 수 있다. 상기 방법은, 상기 암호화 키(450)를 복호화함으로써 획득된 상기 부분 키(440) 및 상기 백업 데이터(470)로부터 식별된 상기 부분 키(440)를 비교함으로써, 상기 암호화 키(450)를 복호화함으로써 획득된 상기 부분 키(440)를 검증하는 동작을 포함할 수 있다.
일 실시예에 따르면, 상기 개인 키(460)는, 상기 TEE(120) 내에서 상기 루트 시드(610)로부터, 상기 부분 키(440)에 대응하는 다른 소프트웨어 어플리케이션(510)(516)의 식별자를 이용하여 결정되는 계층 결정적 경로를 이용하여 획득될 수 있다.
일 실시예에 따르면, 상기 부분 키(440)는, 다자간 연산(multi-party computation)을 수행하기 위해 상기 트랜잭션에 대한 완전한 전자 서명을 위한 개인 키(460)를 논리적으로 분할함으로써 생성되고, 상기 트랜잭션에 대한 부분적인 전자 서명을 수행하기 위해 이용될 수 있다.
상술한 바와 같은, 하나 이상의 프로그램들이 저장된 컴퓨터 판독가능 저장 매체에 있어서, 상기 하나 이상의 프로그램들은, 전자 장치(100)에 의해 실행될 시, REE(110)(rich execution environment)에 기반하여 실행되는 소프트웨어 어플리케이션(510)을 통해, 전자 서명을 위해 이용될 부분 키(440)의 생성을 야기하는 제1 사용자 입력을 수신하도록 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다. 상기 하나 이상의 프로그램들은, 상기 전자 장치에 의해 실행될 시, 상기 제1 사용자 입력의 수신에 응답하여, 상기 REE(110)와 상이한 TEE(120)(trusted execution environment) 내에서 상기 부분 키(440)를 생성하도록 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다. 상기 하나 이상의 프로그램들은, 상기 전자 장치에 의해 실행될 시, 상기 TEE(120) 내에서 관리되고, 루트 시드(610)로부터 유도된(derived) 개인 키(460) 및 공개 키(465)의 페어들 중 어느 한 페어에 포함된 공개 키(465)를 이용하여 상기 부분 키(440)를 암호화함으로써, 상기 부분 키(440)에 대응하는 암호화 키(450)를 획득하도록 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다. 상기 하나 이상의 프로그램들은, 상기 전자 장치에 의해 실행될 시, 상기 REE(110)에서 실행되는 상기 소프트웨어 어플리케이션(510)과 연동되는 상기 암호화 키(450)를 저장하도록 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다. 상기 하나 이상의 프로그램들은, 상기 전자 장치에 의해 실행될 시, 상기 REE(110)에 기반하여 실행되는 상기 소프트웨어 어플리케이션(510)을 통해, 상기 암호화 키(450)에 기반하는 트랜잭션의 전자 서명을 위한 제2 사용자 입력을 수신하도록 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다. 상기 하나 이상의 프로그램들은, 상기 전자 장치에 의해 실행될 시, 상기 제2 사용자 입력의 수신에 응답하여, 상기 TEE(120) 내에서 관리되는 상기 루트 시드(610)로부터, 상기 암호화 키(450)의 복호화에 이용될 개인 키(460)를 획득하도록 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다. 상기 하나 이상의 프로그램들은, 상기 전자 장치에 의해 실행될 시, 상기 개인 키(460)를 이용하여 상기 암호화 키(450)를 복호화함으로써, 상기 부분 키(440)를 획득하도록 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다. 상기 하나 이상의 프로그램들은, 상기 전자 장치에 의해 실행될 시, 상기 부분 키(440)를 이용하여 상기 트랜잭션에 대한 전자 서명을 수행하도록 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다.
일 실시예에 따르면, 상기 하나 이상의 프로그램들은, 상기 전자 장치에 의해 실행될 시, 상기 루트 시드(610)로부터 상기 공개 키(465)를 유도하기 위해 이용되는 계층 결정적(hierarchical deterministic) 경로를 나타내는 식별 정보를 획득하도록, 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다. 상기 하나 이상의 프로그램들은, 상기 전자 장치에 의해 실행될 시, 상기 식별 정보와 상기 계층 결정적 경로가 일치하는지 여부에 기반하여, 상기 공개 키(465)를 검증하도록, 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다.
일 실시예에 따르면, 상기 하나 이상의 프로그램들은, 상기 전자 장치에 의해 실행될 시, 상기 부분 키(440)로부터 상기 암호화 키(450)를 생성하던 시점에 생성된 백업 데이터(470)로부터, 상기 시점에서 이용되었던 부분 키(440)를 식별하도록, 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다. 상기 하나 이상의 프로그램들은, 상기 전자 장치에 의해 실행될 시, 상기 암호화 키(450)를 복호화함으로써 획득된 상기 부분 키(440) 및 상기 백업 데이터(470)로부터 식별된 상기 부분 키(440)를 비교함으로써, 상기 암호화 키(450)를 복호화함으로써 획득된 상기 부분 키(440)를 검증하도록, 상기 전자 장치를 야기하는 인스트럭션들을 포함할 수 있다.
일 실시예에 따르면, 상기 개인 키(460)는, 상기 TEE(120) 내에서 상기 루트 시드(610)로부터, 상기 부분 키(440)에 대응하는 다른 소프트웨어 어플리케이션(510)(516)의 식별자를 이용하여 결정되는 계층 결정적 경로를 이용하여 획득될 수 있다.
일 실시예에 따르면, 상기 부분 키(440)는, 다자간 연산(multi-party computation)을 수행하기 위해 상기 트랜잭션에 대한 완전한 전자 서명을 위한 개인 키(460)를 논리적으로 분할함으로써 생성되고, 상기 트랜잭션에 대한 부분적인 전자 서명을 수행하기 위해 이용될 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들면, 실시예들에서 설명된 장치 및 구성요소는, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들면, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 이때, 매체는 컴퓨터로 실행 가능한(executable) 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수 개의 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 어플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들면, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다. 일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory(CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어™)를 통해 또는 두 개의 사용자 장치들(예: 스마트 폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있으며, 복수의 개체 중 일부는 다른 구성요소에 분리 배치될 수도 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.

Claims (15)

  1. 전자 장치(100)(electronic device)에 있어서,
    인스트럭션들(instructions)을 저장하고, 하나 이상의 저장 매체(storage medium)들을 포함하는, 메모리; 및
    프로세싱 회로(processing circuitry)를 포함하는 적어도 하나의 프로세서를 포함하고,
    상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로(individually or collectively) 실행될 시,
    REE(rich execution environment)(110)에 기반하여 실행되는 소프트웨어 어플리케이션(510)을 통해, 암호화 키(450)에 기반하는 트랜잭션의 전자 서명을 위한 사용자 입력을 수신하고,
    상기 사용자 입력의 수신에 응답하여, 상기 REE(110)와 다른 TEE(120)(trusted execution environment) 내에서 관리되는 루트 시드(610)로부터, 상기 암호화 키(450)의 복호화에 이용될 개인 키(460)를 획득하고,
    상기 개인 키(460)를 이용하여 상기 암호화 키(450)를 복호화함으로써, 상기 암호화 키(450)에 대응하는 부분 키(440)를 획득하고, 및
    상기 부분 키(440)를 이용하여 상기 트랜잭션에 대한 전자 서명을 수행하도록,
    상기 전자 장치(100)를 야기하는,
    전자 장치(100).
  2. 청구항 1에 있어서, 상기 사용자 입력은,
    제1 사용자 입력이고,
    상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시,
    상기 REE(110)에 기반하여 실행되고 암호화 키(450)들을 관리하는 상기 소프트웨어 어플리케이션(510)을 통해, 전자 서명을 위해 이용될 상기 부분 키(440)의 생성을 야기하는 제2 사용자 입력을 수신하고,
    상기 제2 사용자 입력의 수신에 응답하여, 상기 TEE(120) 내에서 상기 부분 키(440)를 생성하고, 및
    상기 TEE(120) 내에서 관리되고, 상기 루트 시드(610)로부터 유도된 개인 키(460) 및 공개 키(465)의 페어들 중 어느 한 페어에 포함된 공개 키(465)를 이용하여 상기 부분 키(440)를 암호화함으로써, 상기 부분 키(440)에 대응하는 상기 암호화 키(450)를 획득하도록,
    상기 전자 장치(100)를 더(further) 야기하는,
    전자 장치(100).
  3. 청구항 2에 있어서,
    상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시,
    상기 획득된 암호화 키(450)를 상기 REE(110) 내에서 저장하도록,
    상기 전자 장치(100)를 야기하는,
    전자 장치(100).
  4. 청구항 2에 있어서,
    상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시,
    상기 루트 시드(610)로부터 상기 공개 키(465)를 유도하기 위해 이용되는 계층 결정적(hierarchical deterministic) 경로를 나타내는 식별 정보를 획득하고, 및
    상기 식별 정보와 상기 계층 결정적 경로가 일치하는지 여부에 기반하여, 상기 공개 키(465)를 검증하도록,
    상기 전자 장치(100)를 야기하는,
    전자 장치(100).
  5. 청구항 1에 있어서,
    상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시,
    상기 부분 키(440)로부터 상기 암호화 키(450)를 생성하던 시점에 생성된 백업 데이터(470)로부터, 상기 시점에서 이용되었던 부분 키(440)를 식별하고, 및
    상기 암호화 키(450)를 복호화함으로써 획득된 상기 부분 키(440) 및 상기 백업 데이터(470)로부터 식별된 상기 부분 키(440)를 비교함으로써, 상기 암호화 키(450)를 복호화함으로써 획득된 상기 부분 키(440)를 검증하도록,
    상기 전자 장치(100)를 야기하는,
    전자 장치(100).
  6. 청구항 1에 있어서, 상기 개인 키(460)는,
    상기 TEE(120) 내에서 상기 루트 시드(610)로부터, 상기 부분 키(440)에 대응하는 다른 소프트웨어 어플리케이션(516)의 식별자를 이용하여 결정되는 계층 결정적 경로를 이용하여 획득되는,
    전자 장치(100).
  7. 청구항 1에 있어서, 상기 부분 키(440)는,
    다자간 연산(multi-party computation)을 수행하기 위해 상기 트랜잭션에 대한 완전한 전자 서명을 위한 개인 키(460)를 논리적으로 분할함으로써 생성되고, 상기 트랜잭션에 대한 부분적인 전자 서명을 수행하기 위해 이용되는,
    전자 장치(100).
  8. 전자 장치(100)(electronic device)에 있어서,
    인스트럭션들(instructions)을 저장하고, 하나 이상의 저장 매체(storage medium)들을 포함하는, 메모리; 및
    프로세싱 회로(processing circuitry)를 포함하는 적어도 하나의 프로세서를 포함하고,
    상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로(individually or collectively) 실행될 시,
    REE(110)(rich execution environment)에 기반하여 실행되는 소프트웨어 어플리케이션(510)을 통해, 전자 서명을 위해 이용될 부분 키(440)의 생성을 야기하는 제1 사용자 입력을 수신하고,
    상기 제1 사용자 입력의 수신에 응답하여, 상기 REE(110)와 상이한 TEE(120)(trusted execution environment) 내에서 상기 부분 키(440)를 생성하고,
    상기 TEE(120) 내에서 관리되고, 루트 시드(610)로부터 유도된(derived) 개인 키(460) 및 공개 키(465)의 페어들 중 어느 한 페어에 포함된 공개 키(465)를 이용하여 상기 부분 키(440)를 암호화함으로써, 상기 부분 키(440)에 대응하는 암호화 키(450)를 획득하고,
    상기 REE(110)에서 실행되는 상기 소프트웨어 어플리케이션(510)과 연동되는 상기 암호화 키(450)를 저장하고,
    상기 REE(110)에 기반하여 실행되는 상기 소프트웨어 어플리케이션(510)을 통해, 상기 암호화 키(450)에 기반하는 트랜잭션의 전자 서명을 위한 제2 사용자 입력을 수신하고,
    상기 제2 사용자 입력의 수신에 응답하여, 상기 TEE(120) 내에서 관리되는 상기 루트 시드(610)로부터, 상기 암호화 키(450)의 복호화에 이용될 개인 키(460)를 획득하고,
    상기 개인 키(460)를 이용하여 상기 암호화 키(450)를 복호화함으로써, 상기 부분 키(440)를 획득하고, 및
    상기 부분 키(440)를 이용하여 상기 트랜잭션에 대한 전자 서명을 수행하도록,
    상기 전자 장치(100)를 야기하는,
    전자 장치(100).
  9. 청구항 8에 있어서,
    상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시,
    상기 루트 시드(610)로부터 상기 공개 키(465)를 유도하기 위해 이용되는 계층 결정적(hierarchical deterministic) 경로를 나타내는 식별 정보를 획득하고, 및
    상기 식별 정보와 상기 계층 결정적 경로가 일치하는지 여부에 기반하여, 상기 공개 키(465)를 검증하도록,
    상기 전자 장치(100)를 야기하는,
    전자 장치(100).
  10. 청구항 8에 있어서,
    상기 인스트럭션들은, 상기 적어도 하나의 프로세서에 의해 개별적으로 또는 집합적으로 실행될 시,
    상기 부분 키(440)로부터 상기 암호화 키(450)를 생성하던 시점에 생성된 백업 데이터(470)로부터, 상기 시점에서 이용되었던 부분 키(440)를 식별하고, 및
    상기 암호화 키(450)를 복호화함으로써 획득된 상기 부분 키(440) 및 상기 백업 데이터(470)로부터 식별된 상기 부분 키(440)를 비교함으로써, 상기 암호화 키(450)를 복호화함으로써 획득된 상기 부분 키(440)를 검증하도록,
    상기 전자 장치(100)를 야기하는,
    전자 장치(100).
  11. 청구항 8에 있어서, 상기 개인 키(460)는,
    상기 TEE(120) 내에서 상기 루트 시드(610)로부터, 상기 부분 키(440)에 대응하는 다른 소프트웨어 어플리케이션(516)의 식별자를 이용하여 결정되는 계층 결정적 경로를 이용하여 획득되는,
    전자 장치(100).
  12. 청구항 8에 있어서, 상기 부분 키(440)는,
    다자간 연산(multi-party computation)을 수행하기 위해 상기 트랜잭션에 대한 완전한 전자 서명을 위한 개인 키(460)를 논리적으로 분할함으로써 생성되고, 상기 트랜잭션에 대한 부분적인 전자 서명을 수행하기 위해 이용되는,
    전자 장치(100).
  13. 하나 이상의 프로그램들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체에 있어서, 상기 하나 이상의 프로그램들은,
    전자 장치(100)에 의해 실행될 시,
    REE(110)에 기반하여 실행되는 소프트웨어 어플리케이션(510)을 통해, 암호화 키(450)에 기반하는 트랜잭션의 전자 서명을 위한 사용자 입력을 수신하고,
    상기 사용자 입력의 수신에 응답하여, 상기 REE(110)와 다른 TEE(120)(trusted execution environment) 내에서 관리되는 루트 시드(610)로부터, 상기 암호화 키(450)의 복호화에 이용될 개인 키(460)를 획득하고,
    상기 개인 키(460)를 이용하여 상기 암호화 키(450)를 복호화함으로써, 상기 암호화 키(450)에 대응하는 부분 키(440)를 획득하고, 및
    상기 부분 키(440)를 이용하여 상기 트랜잭션에 대한 전자 서명을 수행하도록,
    상기 전자 장치(100)를 야기하는 인스트럭션들을 포함하는,
    비일시적 컴퓨터 판독가능 저장 매체.
  14. 청구항 13에 있어서, 상기 사용자 입력은,
    제1 사용자 입력이고,
    상기 하나 이상의 프로그램들은, 상기 전자 장치(100)에 의해 실행될 시,
    상기 REE(110)에 기반하여 실행되고 암호화 키(450)들을 관리하는 소프트웨어 어플리케이션(510)을 통해, 전자 서명을 위해 이용될 상기 부분 키(440)의 생성을 야기하는 제2 사용자 입력을 수신하고,
    상기 제2 사용자 입력의 수신에 응답하여, 상기 TEE(120) 내에서 상기 부분 키(440)를 생성하고, 및
    상기 TEE(120) 내에서 관리되고, 상기 루트 시드(610)로부터 유도된 개인 키(460) 및 공개 키(465)의 페어들 중 어느 한 페어에 포함된 공개 키(465)를 이용하여 상기 부분 키(440)를 암호화함으로써, 상기 부분 키(440)에 대응하는 상기 암호화 키(450)를 획득하도록,
    상기 전자 장치(100)를 야기하는 인스트럭션들을 포함하는,
    비일시적 컴퓨터 판독가능 저장 매체.
  15. 청구항 14에 있어서,
    상기 하나 이상의 프로그램들은, 상기 전자 장치(100)에 의해 실행될 시,
    상기 획득된 암호화 키(450)를 상기 REE(110) 내에서 저장하도록,
    상기 전자 장치(100)를 야기하는 인스트럭션들을 포함하는,
    비일시적 컴퓨터 판독가능 저장 매체.
PCT/KR2025/008636 2024-06-24 2025-06-20 전자 서명을 수행하기 위한 전자 장치, 방법, 및 비일시적 컴퓨터 판독 가능 저장 매체 Pending WO2026005397A1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20240082021 2024-06-24
KR10-2024-0082021 2024-06-24
KR10-2024-0092229 2024-07-12
KR1020240092229A KR20250180059A (ko) 2024-06-24 2024-07-12 전자 서명을 수행하기 위한 전자 장치, 방법, 및 비일시적 컴퓨터 판독 가능 저장 매체

Publications (1)

Publication Number Publication Date
WO2026005397A1 true WO2026005397A1 (ko) 2026-01-02

Family

ID=98222249

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2025/008636 Pending WO2026005397A1 (ko) 2024-06-24 2025-06-20 전자 서명을 수행하기 위한 전자 장치, 방법, 및 비일시적 컴퓨터 판독 가능 저장 매체

Country Status (1)

Country Link
WO (1) WO2026005397A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170127330A (ko) * 2016-05-11 2017-11-21 (주)케이스마텍 신뢰된 실행 환경 기반의 유무선단말을 이용한 사용자 간편 인증방법 및 시스템
KR20200101211A (ko) * 2019-02-19 2020-08-27 삼성전자주식회사 전자 장치 및 이를 이용한 블록 체인의 전자 서명 서비스 방법
KR20200126320A (ko) * 2019-04-26 2020-11-06 알리바바 그룹 홀딩 리미티드 신뢰 실행 환경을 위한 분산 키 관리
US11570155B2 (en) * 2019-07-25 2023-01-31 Everything Blockchain Technology Corp. Enhanced secure encryption and decryption system
KR20230086409A (ko) * 2021-12-08 2023-06-15 삼성전자주식회사 복수 개의 실행 환경을 포함하는 전자 장치 및 그의 동작 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170127330A (ko) * 2016-05-11 2017-11-21 (주)케이스마텍 신뢰된 실행 환경 기반의 유무선단말을 이용한 사용자 간편 인증방법 및 시스템
KR20200101211A (ko) * 2019-02-19 2020-08-27 삼성전자주식회사 전자 장치 및 이를 이용한 블록 체인의 전자 서명 서비스 방법
KR20200126320A (ko) * 2019-04-26 2020-11-06 알리바바 그룹 홀딩 리미티드 신뢰 실행 환경을 위한 분산 키 관리
US11570155B2 (en) * 2019-07-25 2023-01-31 Everything Blockchain Technology Corp. Enhanced secure encryption and decryption system
KR20230086409A (ko) * 2021-12-08 2023-06-15 삼성전자주식회사 복수 개의 실행 환경을 포함하는 전자 장치 및 그의 동작 방법

Similar Documents

Publication Publication Date Title
WO2023038466A1 (ko) 블록체인 네트워크에서 트랜잭션을 생성하는 전자 장치 및 그의 동작 방법
WO2022146026A1 (ko) 보안 데이터 처리 방법 및 이를 지원하는 전자 장치
WO2020231177A1 (en) Electronic device and method for receiving push message stored in blockchain
WO2020184987A1 (en) Electronic device including secure integrated circuit
WO2023013861A1 (ko) 디지털 컨텐츠에 대한 대체불가능 토큰을 관리하는 방법 및 장치
WO2022092869A1 (ko) 전자 장치 및 이를 이용한 메모리 보호 방법
WO2023038278A1 (ko) 로그인 정보의 제공 방법 및 상기 방법을 수행하는 전자 장치
WO2023068609A1 (ko) 외부 장치를 이용하여 트랜잭션을 전송하는 전자 장치 및 그의 동작 방법
WO2023149648A1 (ko) 보안 기능을 제공하는 전자 장치 및 그의 동작 방법
WO2024071582A1 (ko) 블록체인 기반 데이터 전송 방법 및 장치
WO2023063694A1 (ko) 블록체인 네트워크에서 부분 원장을 가진 전자 장치 및 그의 동작 방법
WO2026005397A1 (ko) 전자 서명을 수행하기 위한 전자 장치, 방법, 및 비일시적 컴퓨터 판독 가능 저장 매체
WO2023054936A1 (ko) 블록체인 네트워크에서 블록 데이터를 복구하는 전자 장치 및 그의 동작 방법
WO2024039235A1 (ko) 전자 장치 및 전자 장치에서 사용자 인증을 수행하는 방법
WO2024117644A1 (ko) 멀티 디바이스 환경의 전자 장치들이 보안 레벨을 상호 증명하는 방법
WO2024096639A1 (ko) 전자 장치 및 전자 장치에서 데이터를 검증하는 방법
WO2023106594A1 (ko) 복수 개의 실행 환경을 포함하는 전자 장치 및 그의 동작 방법
WO2022154273A1 (ko) 데이터 백업을 지원하는 전자 장치 및 그 운용 방법
WO2022055279A1 (ko) 전자 장치 및 사용자 인터랙션 정보를 처리하는 방법
WO2021085954A1 (ko) 전자 장치의 고유 정보에 대한 무결성을 보장하는 전자 장치 및 그의 동작 방법
WO2025244486A1 (ko) 보안 통신을 수행하는 전자 장치, 방법 및 저장 매체
WO2022197059A1 (ko) 비밀번호를 관리하는 전자 장치 및 이의 동작 방법
WO2024049141A1 (ko) 암호화된 데이터를 비휘발성 메모리 내에 저장하기 위한 전자 장치 및 그 방법
WO2023003150A1 (ko) 보안 요소의 백업을 수행하는 전자 장치 및 백업 방법
WO2025053485A1 (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: 25827362

Country of ref document: EP

Kind code of ref document: A1