KR20190134634A - 키 데이터 프로세싱 방법 및 장치, 및 서버 - Google Patents

키 데이터 프로세싱 방법 및 장치, 및 서버 Download PDF

Info

Publication number
KR20190134634A
KR20190134634A KR1020197028789A KR20197028789A KR20190134634A KR 20190134634 A KR20190134634 A KR 20190134634A KR 1020197028789 A KR1020197028789 A KR 1020197028789A KR 20197028789 A KR20197028789 A KR 20197028789A KR 20190134634 A KR20190134634 A KR 20190134634A
Authority
KR
South Korea
Prior art keywords
key
child
original key
keys
blockchain
Prior art date
Application number
KR1020197028789A
Other languages
English (en)
Inventor
하오 우
Original Assignee
알리바바 그룹 홀딩 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 알리바바 그룹 홀딩 리미티드 filed Critical 알리바바 그룹 홀딩 리미티드
Publication of KR20190134634A publication Critical patent/KR20190134634A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • H04L9/0836Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30029Logical and Boolean instructions, e.g. XOR, NOT
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption
    • H04L2209/38
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Accounting & Taxation (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Finance (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

블록체인 내의 공유되는 객체의 원본 키가 획득된다. 상기 원본 키를 공유하는 파티들의 수가 결정된다. 상기 원본 키를 공유하는 파티들의 수와 동일한 수의 차일드 키들을 생성하기 위해, 미리결정된 알고리즘을 사용하여 상기 원본 키를 프로세싱하고, 상기 차일드 키들은 동일한 수의 차일드 키들이 획득되었을 때 상기 원본 키를 복원하는데 사용된다.

Description

키 데이터 프로세싱 방법 및 장치, 및 서버
연관 용례
본 출원은 2017년 8월 28일자로 출원된 중국 특허 제 201710747807.5호를 우선권으로 주장하며, 이 출원의 전체 개시는 본원에 참조로서 포함된다.
본 출원의 구현은 블록체인 데이터 프로세싱 기술의 분야에 관한 것으로, 특히 키 데이터 프로세싱 방법, 장치 및 서버에 관한 것이다.
블록체인(blockchain)은 분산된 데이터베이스이다. 블록체인은 데이터 블록을 연대순으로 조합하여 얻은 사슬형 데이터 구조(chained data structure)이다. 암호화 방법은 데이터를 변조하거나 위조할 수 없도록 하기 위해 사용된다. 블록체인은 데이터 신뢰성을 효과적으로 보장할 수 있기 때문에, 더 많은 분야에 적용된다.
일반적으로 블록체인의 데이터는 비대칭 암호화 방법을 사용하여 서명되고 검증된다. 블록체인의 거래(transaction) 개시자는 개인 키를 사용하여 거래에 서명할 수 있으며, 채굴자(컴퓨팅 노드)는 개시자의 공개 키를 사용하여 거래를 검증할 수 있다. 거래에 대한 검증이 성공하면, 거래에 사용되는 자금이 정상적인 자산 소유자의 소유임을 나타낼 수 있으며, 거래에 관한 정보는 블록체인의 새로운 블록에 배치된다. 블록체인의 자산 거래 과정에서, 개인 키는 일반적으로, 예컨대 개인의 휴대 전화 또는 컴퓨터에 저장되어, 단일 파티가 소유한다. 따라서 자산의 소유권 및 관리 권한은 개인 키를 소유한 파티에 속한다고 간주할 수 있다. 그러나, 현실에서 일부 자산은, 예컨대 부부가 공동 소유한 부동산 또는 합작 투자와 같이, 복수의 사람들에 의해 공유된다. 자산을 복수의 파티들이 공유해야 하는 경우, 파티들은 동일한 개인 키를 공유해야 한다. 개인 키를 사용함으로써, 각 공유하는 파티는 자산을 제어하고 거래할 수 있으며, 다른 사람이 모르는 상태에서 자산을 전송할 수 있다. 결과적으로, 거래 위험이 상대적으로 높다. 따라서, 블록체인에서 공유되는 자산의 보안을 보장하기 위한 보다 안전하고 신뢰할 수 있는 방법이 절실히 필요하다.
본 명세서의 구현은 키 데이터 프로세싱 방법, 장치 및 서버를 제공하고자 한다. 이와 같이, 자산 공유 파티(asset sharing party)들의 수를 기반으로 동일한 수의 차일드 키(child key)들이 자동으로 생성될 수 있으며, 거래 중에 차일드 키들을 사용하여 원본 키(original key)가 복원될 수 있고, 블록체인에서 자산 공유의 보안을 효과적으로 보장할 수 있다.
본 명세서의 구현에서 제공되는 키 데이터 프로세싱 방법, 장치 및 서버는 다음과 같은 방식으로 구현된다:
키 데이터 프로세싱 방법은 블록체인 내의 공유되는 객체의 원본 키를 획득하는 단계; 상기 원본 키를 공유하는 파티들의 수를 결정하는 단계; 및 상기 원본 키를 공유하는 파티들의 수와 동일한 수의 차일드 키들을 생성하기 위해, 미리결정된 알고리즘을 사용하여 상기 원본 키를 프로세싱하는 단계 - 상기 차일드 키들은 동일한 수의 차일드 키들이 획득되었을 때 상기 원본 키를 복원하는데 사용됨 - 를 포함한다.
키 데이터 프로세싱 장치는 블록체인 내의 공유되는 객체의 원본 키를 획득하고, 상기 원본 키를 공유하는 파티들의 수를 결정하도록 구성된 원본 키 정보 획득 모듈; 및 상기 원본 키를 공유하는 파티들의 수와 동일한 수의 차일드 키들을 생성하기 위해, 미리결정된 알고리즘을 사용하여 상기 원본 키를 프로세싱하는 차일드 키 생성 모듈 - 상기 차일드 키들은 동일한 수의 차일드 키들이 획득되었을 때 상기 원본 키를 복원하는데 사용됨 - 을 포함한다.
프로세서 및 상기 프로세서에 의해 실행될 수 있는 명령을 저장하도록 구성된 메모리를 포함하는 키 데이터 프로세싱 장치에 있어서, 상기 명령을 실행할 때, 상기 프로세서는 다음의 동작을 구현한다: 블록체인 내의 공유되는 객체의 원본 키를 획득하고, 상기 원본 키를 공유하는 파티들의 수를 결정하는 동작; 및 상기 원본 키를 공유하는 파티들의 수와 동일한 수의 차일드 키들을 생성하기 위해, 미리결정된 알고리즘을 사용하여 상기 원본 키를 프로세싱하는 동작 - 상기 차일드 키들은 동일한 수의 차일드 키들이 획득되었을 때 상기 원본 키를 복원하는데 사용됨 - .
적어도 하나의 프로세서 및 상기 프로세서에 의해 실행될 수 있는 명령을 저장하도록 구성된 메모리를 포함하는 서버로서, 상기 명령을 실행할 때 상기 프로세서는 다음의 동작을 구현한다: 블록체인 내의 공유되는 객체의 원본 키를 획득하고, 상기 원본 키를 공유하는 파티들의 수를 결정하는 동작; 및 상기 원본 키를 공유하는 파티들의 수와 동일한 수의 차일드 키들을 생성하기 위해, 미리결정된 알고리즘을 사용하여 상기 원본 키를 프로세싱하는 동작 - 상기 차일드 키들은 동일한 수의 차일드 키들이 획득되었을 때 상기 원본 키를 복원하는데 사용됨 - .
본 명세서의 하나 이상의 구현에서 제공되는 키 데이터 프로세싱 방법, 장치 및 서버에 따르면, 상기 원본 키는 자산 또는 데이터와 같은 공유되는 객체의 원본 키를 공유하는 파티들의 수에 기초하여 복수의 차일드 키로 분할될 수 있고, 상기 생성된 차일드 키들은 상기 대응하는 자산 공유 파티들에게 디스플레이될 수 있다. 공유되는 객체가 연산될 필요가 있는 경우, 각 자산 공유 파티는 차일드 키를 제공할 수 있다. 그리고 원본 키는 차일드 키들을 이용하여 복원될 수 있고, 서명 및 자산 거래와 같은 대응하는 동작이 수행될 수 있다. 이와 같이, 본 명세서의 구현에서, 블록체인에서 공유되는 자산의 거래의 보안을 보장하기 위해, 블록체인 내의 자산이 복수의 사람들에 의해 공유될 때, 어떠한 사람이 다른 사람의 지식이 없는 상태에서 자산을 운영하는 것을 효과적으로 막을 수 있다.
본 명세서의 구현 또는 기존 기술에서의 기술적 해결책을 보다 명확하게 설명하기 위해, 다음은 구현 또는 기존 기술을 설명하기 위한 첨부 도면을 간략하게 소개한다. 명백하게, 이하의 설명에서의 첨부 도면은 단지 본 명세서의 일부 구현을 도시하며, 당업자는 여전히 창조적 노력없이 이들 첨부 도면으로부터 다른 도면을 도출할 수 있다.
도 1은 본 명세서에 따른 키 데이터 프로세싱 방법의 예시를 도시한 흐름도이다.
도 2는 본 명세서의 다른 구현에 따른 예시적인 방법을 도시한 흐름도이다.
도 3은 본 명세서의 일 구현에 따른 차일드 키를 생성하는 프로세스를 도시한 흐름도이다.
도 4는 본 명세서의 다른 구현에 따른 예시적인 방법을 도시한 흐름도이다.
도 5는 본 명세서에 따른 미리결정된 알고리즘에 기초하여 차일드 키를 생성하는 다른 과정을 도시한 개략도이다.
도 6은 본 명세서의 구현에 따른 키 데이터 프로세싱 장치의 모듈을 도시한 개략적인 구조도이다.
도 7은 본 명세서의 다른 구현에 따른 키 데이터 프로세싱 장치의 모듈을 도시한 개략적인 구조도이다.
도 8은 본 명세서의 일 구현에 따른 장치에서의 차일드 키 생성 모듈을 도시한 개략적인 구조도이다.
도 9는 본 명세서의 다른 구현에 따른 키 데이터 프로세싱 장치를 도시한 개략적인 구조도이다.
도 10은 본 명세서의 다른 구현에 따른 장치에서의 차일드 키 생성 모듈을 도시한 개략적인 구조도이다.
도 11은 본 명세서의 일 구현에 따른 지갑 애플리케이션을 사용하는 모듈을 도시한 개략적인 구조도이다.
도 12는 본 명세서의 일 구현에 따른 방법 또는 장치를 구현하기 위한 서버를 도시한 개략적인 구조도이다.
도 13은 본 개시의 일 구현에 따른 블록체인 네트워크에서 공유되는 소유권(shared ownership)을 관리하기 위한 컴퓨터 구현(computer-implemented) 방법의 예를 도시한 흐름도이다.
당업자가 본 명세서의 기술적 해결책을 더 잘 이해하도록 하기 위해, 다음은 본 명세서의 하나 이상의 구현에 첨부 도면들을 참조하여 본 명세서의 하나 이상의 구현에서의 기술적 해결책을 명확하고 포괄적으로 설명한다. 명백하게, 설명된 구현은 본 명세서의 구현 중 일부일 뿐이며 전부는 아니다. 본 명세서의 하나 이상의 구현에 기초하여 당업자에 의해 창조적 노력없이 획득된 다른 모든 구현은 본 명세서의 구현의 보호 범위 내에 속할 것이다.
본 명세서는 이하의 구현 또는 첨부 도면에 도시된 방법 동작 단계 또는 장치 구조를 제공하지만, 방법 또는 장치는 방법 또는 장치에서 종래의 또는 창조적이지 않은 노력에 기초하여 더 많거나 적은 동작 단계 또는 모듈 유닛을 포함할 수 있다. 필요한 원인과 결과 관계가 논리적으로 존재하지 않는 단계 또는 구조에서, 이 단계를 실행하는 시퀀스 또는 장치의 모듈 구조는 본 명세서의 구현 또는 첨부 도면에 도시된 실행 시퀀스 또는 모듈 구조로 제한되지 않는다. 실제 장치, 서버 또는 단말 제품 애플리케이션에서, 방법 또는 모듈 구조는 구현 또는 첨부 도면에 도시된 방법 또는 모듈 구조에 기초하여 순차적으로 또는 병렬로 수행될 수 있다(예를 들어, 병렬 프로세서 또는 멀티 스레드 프로세싱 환경, 또는 분산 프로세싱 및 서버 클러스터링을 포함한 구현 환경).
블록체인은 일반적으로 복수의 블록을 포함한다. 블록은 논리적 데이터 구조이며 블록체인 데이터를 저장하는데 사용될 수 있다. 블록체인 데이터는 블록체인에서 유동 및 변화하는 자금, 자금 유동, 자산 변화 등과 같은 운영에 의해 생성된 데이터 정보를 포함할 수 있다. 블록체인에서, 자금의 흐름 또는 자산의 변화는 일반적으로 거래(transaction)라 할 수 있다. 본 명세서의 일부 구현에서 설명된 블록체인의 자산은 전자 데이터의 형태로 블록체인에 저장된 돈, 증권 및 귀금속을 포함할 수 있다. 예를 들어, 일부 애플리케이션에서 제공하는 지갑 기능은 화폐 자산을 저장할 수 있고, 지갑의 자산은 제품 구매(product purchasing) 또는 이전(transferring)을 위해 사용될 수 있다.
블록체인의 데이터는 비대칭 암호화를 통해 거래 유효성을 검증할 수 있다. 비대칭 암호화는 일반적으로 공개 키(public key)와 개인 키(private key)를 포함하고; 공개 키는 공개될 수 있으며, 개인 키는 공개되지 않는다. 비대칭 암호화는 블록체인 자산 거래에서 거래 검증을 위한 주요 도구 중 하나이다. 거래 파티(party)는 개인 키를 사용하여 거래에 서명할 수 있고, 검증자(verifier)는 거래 파티의 공개 키를 사용하여 서명을 검증할 수 있다. 만약 검증에 성공하면, 상기 거래가 상기 공개 키에 대응하는 상기 개인 키의 실제 소유자로부터 왔으며, 거래가 유효함을 나타낼 수 있다. 거래는 블록체인의 새로운 블록에 배치될 수 있다. 이전 프로세스에서 개인 키가 블록체인 자산 거래에서 매우 중요한 역할을 한다는 것을 알 수 있다. 자산이 복수의 사람에 의해 공유될 때, 자산은 복수의 사람의 관심을 수반한다. 자산 공유 파티들이 자산 거래에 공동으로 참여해야 하는 경우, 본 명세서의 하나 이상의 구현은 블록체인에서 공유되는 자산의 운영 보안을 효과적으로 보장할 수 있다.
구체적으로, 본 해결책의 구현 프로세스는 구현 시나리오로서 지갑 애플리케이션의 블록체인 거래를 사용하여 본 명세서에서 설명된다. 지갑은 클라이언트 또는 서버 측에 애플리케이션을 포함할 수 있고, 일반적으로 공개 키 주소를 계산하기 위해 비대칭 키를 생성하여 블록체인 자산 거래를 구현할 수 있다. 새로운 자산이 확인되거나 자산 공유 파티가 변경되면, 지갑은 자산 공유 파티들의 수에 기초하여 자동으로 차일드 키들을 계산하고 생성할 수 있다. 생성된 차일드 키들의 수는 자산 공유 파티들의 수와 동일하다. 이러한 차일드 키들은 대응하는 자산 공유 파티들에 전송될 수 있으므로, 각 자산 공유 파티들은 하나의 차일드 키를 소유한다. 자산 거래에 원본 개인 키가 필요한 경우, 이러한 차일드 키들을 사용하여 원본 개인 키를 복원할 수 있고, 복원된 개인 키를 사용하여 서명으로 거래가 시작된다.
물론, 본 명세서의 구현에서, 공유되는 객체가 반드시 이전 전자 화폐 자산으로 제한될 필요는 없으며, 원본 키가 비대칭 암호화에서의 개인 키로 제한되지 않는다. 공유되는 객체는 다른 구현 시나리오에서 대응하는 유형의 서비스 데이터, 예를 들어 청구 데이터, 사용자 데이터, 공용 정보 등을 포함할 수도 있다. 원본 키는 데이터 암호화를 위한 다른 데이터 정보, 예를 들어 문자열(character string), 또는 심지어 이미지, 음성 및 지문과 같은 키 데이터(key data)를 포함할 수도 있다. 이하의 구현에서, 원본 키에 기초하여 복수의 차일드 키를 생성하고, 수신한 차일드 키들을 사용하여 원본 키를 복원하는 프로세스는 블록체인의 채굴자(miner)에 의한 계산을 통해 완료될 수 있다. 채굴자는 일반적으로 충분한 연산 능력(computing capability)을 갖춘 노드이다. 채굴자는 수집된 복수의 거래 기록을 함께 배치하고, 채굴자의 키를 사용하여 암호화를 위한 다양한 패딩 비트들(padding bits)을 시도하고, 블록을 전체 네트워크에 브로드캐스트하며, 그에 따라 다른 노드들은 블록체인에서 새로운 블록이 생성되었음을 알 수 있다.
구체적으로, 일 구현이 도 1에 도시되어 있다. 본 명세서에서 제공되는 키 데이터 프로세싱 방법의 구현에서, 방법은 다음 단계를 포함할 수 있다.
S0. 블록체인에서 공유되는 객체의 원본 키를 획득하고, 원본 키를 공유하는 파티들의 수를 결정한다.
S2. 원본 키를 공유하는 파티들의 수와 동일한 수의 차일드 키들을 생성하기 위해, 미리 결정된 알고리즘을 사용하여 원본 키를 프로세싱하고, 차일드 키들은 동일한 수의 차일드 키들이 획득되었을 때 원본 키를 복원하는데 사용된다.
본 구현에서, 계산 장치는 자산에 대응하는 원본 키에 관한 정보 및 자산을 공유하는 파티들의 수에 관한 정보를 획득할 수 있다. 그런 다음, 자산을 공유하는 파티들과 동일한 수의 차일드 키들을 생성하기 위해, 미리 선택되거나 설계된 미리 결정된 알고리즘을 사용하여 원본 키가 계산되고 프로세싱될 수 있다. 본 구현의 구현 시나리오에서 설명되는 공유되는 객체는 지갑 안의 자산을 포함할 수 있다. 원본 키는 로컬 지갑(서버)에 의해 생성되거나, 다른 지갑(서버)에 의해 전송되어 수신한 원본 키일 수 있다. 본 구현에서, 원본 키에 기초하여 생성된 복수의 차일드 키 각각을 사용함으로써, 거래 검증이 독립적으로 수행될 수 없거나, 검증이 성공될 수 없다. 동일한 원본 키를 기반으로 생성된 모든 차일드 키가 함께 수집되면, 원본 키가 복원될 수 잇다. 차일드 키가 없거나 어느 차일드 키가 올바르지 않은 경우, 원본 키는 복원될 수 없고, 복원된 원본 키는 올바르지 않다.
예를 들어, 본 구현의 응용 시나리오에서, 블록체인 네트워크는 복수의 노드들을 포함할 수 있고, 각 노드는 공개 키 및 개인 키를 가질 수 있다. 노드에 지갑 애플리케이션이 있다고 가정하면, 지갑은 본 구현에서 공유되는 객체이고, 지갑의 개인 키는 원본 키이다. 지갑의 개인 키는 S라 칭하고, 지갑을 공유하는 인원의 수는 2이다. 두 개의 차일드 키: S1 및 S2는 개인 키 S를 기반으로 미리 선택되거나 설계된 알고리즘을 사용하여 생성될 수 있다. 지갑의 차일드 키 S1은 거래에 서명할 수 없거나, 서명은 성공적으로 검증될 수 없다. 마찬가지로, 지갑의 차일드 키 S2는 거래에 서명할 수 없거나, 서명은 성공적으로 검증될 수 없다. 그러나, 원본 개인 키 S는 차일드 키 S1과 차일드 키 S2를 기반으로 복원될 수 있다. 원본 개인 키 S를 복원하기 위해, 대응하는 계산이 수행될 수 있다. 계산은 차일드 키를 생성하기 위해 사용된 미리결정된 알고리즘, 예를 들어 차일드 키를 생성하기 위한 미리결정된 알고리즘과 반대인 역 알고리즘에 기초한다. 물론, 계산은 보간 및 차일드 키 상관(correlation)과 같은 다른 알고리즘을 기초할 수 있다. 원본 키는 서드 파티 보조 데이터를 참조하여 복원될 수도 있다.
또한, 본 명세서에서 제공되는 방법의 다른 구현에서, 자산 공유 파티들의 수와 동일한 수의 차일드 키들이 생성된 후, 차일드 키들은 대응하는 자산 공유 파티들에게 디스플레이될 수 있어서, 각 자산 공유 파티들은 자체 차일드 키를 얻을 수 있다. 그런 다음, 원본 키는 삭제될 수 있다. 예를 들어, 원본 개인 키는 지갑(또는 원본 개인 키를 저장하는 저장 유닛)에서 완전히 삭제될 수 있다. 이처럼, 차일드 키를 가진 어느 자산 공유 파티는, 키 데이터 보안을 더욱 보장하고 자산 공유 파티가 개인적인 자산 거래를 위해 개인 키를 사용하지 못하도록, 원본 키를 저장하지 않는다. 구체적으로, 본 명세서에서의 방법의 다른 구현이 도 2에 도시되어 있으며, 이 방법은 다음 단계를 더 포함할 수 있다:
S4. 차일드 키들을 대응하는 객체 공유 파티들에 전송한다.
S6. 원본 키를 삭제한다.
도 2는 본 명세서의 다른 구현에 따른 예시적인 방법을 도시한 흐름도이다. 본 구현에서, 공개 키 및 개인 키를 생성한 후, 지갑은 개인 키에 기초하여 공유하는 사람들의 수와 동일한 수의 차일드 키들을 생성하고, 차일드 키들을 자산 공유 파티들에게 디스플레이하고, 개인 키를 삭제할 수 있다. 특정 구현 프로세스에서, 하나의 차일드 키가 하나의 자산 공유 파티에 전송되도록 설정될 수 있다. 물론, 본 개시는 하나의 자산 공유 파티가 둘 이상의 차일드 키를 갖는 상황을 배제하지 않는다. 예를 들어, 상호 신뢰할 수 있는 자산 공유 파티들은 서로의 차일드 키들을 저장할 수 있다.
일 구현에서, 차일드 키는 지갑에 의해 객체 공유 파티에 전송될 수 있다. 다른 구현에서, 차일드 키를 생성한 후, 지갑은 복수의 생성된 차일드 키를 출력하고, 다른 프로세싱 파티(예를 들어, 전용 차일드 키 할당 장치)는 차일드 키들을 객체 공유 파티들에 전송한다. 생성된 차일드 키는 임의로 선택되어 전송되거나, 특정 차일드 키는 특정 규칙에 기초하여 선택될 수 있고 대응하는 객체 공유 파티에 전송될 수 있다.
이전 구현에서 차일드 키들을 생성하기 위한 미리 결정된 알고리즘은 복수의 구현에서 구현될 수 있다. 본 명세서의 일 구현은 원본 키를 사용하여 차일드 키를 생성하기 위한 미리 결정된 알고리즘을 제공한다. 차일드 키를 생성하기 위해, 임의의 문자열을 사용하여 원본 키를 참조하는 동작이 수행될 수 있다. 구체적으로, 본 명세서의 방법의 일 구현에서, 미리 결정된 알고리즘은 다음 단계를 포함할 수 있다:
S20. 원본 키를 공유하는 파티들의 수와 동일한 수의 차일드 키들을 생성하기 위해, 무작위로 생성된 문자열을 사용하여 원본 키에 연산을 수행한다.
문자열은 숫자, 문자, 기호 등을 포함할 수 있다. 지갑은 원본 키의 후속 복원을 위해 이러한 무작위로 생성된 문자열을 저장할 수 있다. 무작위로 생성된 문자열을 사용하는 원본 키에 대한 연산에 대한 특정 방법은 미리 결정될 수 있다. 예를 들어, 고정된 길이의 문자열이 무작위로 생성되고, 차일드 키들을 생성하기 위해 문자열의 하나 이상의 문자가 특정 시퀀스로 원본 키에 개별적으로 삽입된다. 문자열의 대응하는 비트의 값들은 원본 키에 추가될 수도 있다. 본 구현에서, 생성된 차일드 키들의 보안을 더욱 보장하고 원본 키의 보안을 향상시키기 위해, 임의의 문자열을 이용하여 원본 키의 차일드 키들이 생성될 수 있다.
본 명세서의 방법의 다른 구현에서, 차일드 키들은 난수(random number), 소수(prime number) 및 모듈로 연산(modulo operation)을 사용하여 생성된다. 세부 사항은 도 3에 도시되어 있다. 도 3은 본 명세서의 일 구현에 따른 차일드 키를 생성하는 과정을 도시한 흐름도이다. 사전 결정된 알고리즘은 다음 단계를 포함할 수 있다:
S200.(N+1)개의 공유 파티들이 있는 경우, N개의 난수 Ri를 생성하고, 여기서 Ri는 i번째 난수이고, i∈ [1, N]이다.
S202. 소수 P를 결정하고, 여기서 소수 P는 적어도 원본 키의 값 S와 난수 Ri 중 어느 하나보다 크고, Ri는 [0, P-1] 범위이다.
S204. 상기 (N+1)개의 차일드 키들을 획득하기 위해, (S+R1X+R2X2+R3X3+…+RNXN)이 계산된 후 P에 모듈로 연산을 수행하고, [1, N+1]로부터 X의 값을 선택하며, 여기서 N≥1이고, X 및 N은 정수이다.
일반적으로, 블록체인에 사용되는 비대칭 키 알고리즘에서 생성된 개인 키의 길이는 일반적으로 1024 비트 또는 2048 비트이다. 따라서, 일 구현 시나리오의 특정 구현 프로세스에서, 지갑은 1024 비트 또는 2048 비트보다 큰 알려진 소수를 미리 저장할 수 있다. 본 구현에서, 미리 저장된 소수는 지갑이 차일드 키들을 생성할 때 데이터 저장 장치로서 사용될 수 있다. 개인 키를 S라 칭한다고 가정하면, 지갑은 공유 인원의 수에 기초하여 난수 Ri를 선택할 수 있다. 차일드 키 계산 조건을 충족시키기 위해, 개인 키 S의 길이 또는 난수 Ri 보다 큰 길이를 갖는 소수 P가 선택될 수 있다. 또한, 차일드 키들을 생성하기 위해, (S+R1X+R2X2+R3X3+…+RNXN)을 사용하여 P에 모듈로 연산이 수행될 수 있다. 구체적인 예는 다음과 같이 나타날 수 있다:
(1) 만약 두 사람이 자산을 공유하는 경우, 생성된 차일드 키들은 각각: 차일드 키 1:(S+R)을 사용하여 P에 모듈로 연산을 수행함으로써 생성되고; 및 차일드 키 2:(S+2R)을 사용하여 P에 모듈로 연산을 수행함으로써 생성되는 것일 수 있다.
(2) 만약 세 사람이 자산을 공유하는 경우, 생성된 차일드 키들은 각각:(S+R1+R2)를 사용하여 P에 모듈로 연산을 수행하여 생성된 차일드 키 1;(S+2R1+4R2)를 사용하여 P에 모듈로 연산을 수행함으로써 생성된 차일드 키 2; 및(S+3R1+9R2)를 사용하여 P에 모듈로 연산을 수행함으로써 생성된 차일드 키 3일 수 있다.
유사하게, 만약(N+1) 사람이 자산을 공유하는 경우, (N+1)개의 차일드 키들이 생성될 필요가 있고, (S+R1X+R2X2+R3X3+…+RNXN)를 사용하여 P에 대한 모듈로 연산이 수행될 수 있다. 차일드 키들은 [1, N+1]로부터 X의 값을 선택하여 계산을 통해 획득할 수 있다. 다른 예에서, 4 사람이 자산을 공유할 때 이전 방법을 사용하여 4개의 차일드 키를 생성하는 프로세스는 다음과 같을 수 있다:(S+R1+R2+R3)을 사용하여 P에 모듈로 연산을 수행하여 생성된 차일드 키 1;(S+2R1+4R2+8R3)을 사용하여 P에 모듈로 연산을 수행함으로써 생성된 차일드 키 2;(S+3R1+9R2+27R3)을 사용하여 P에 모듈로 연산을 수행함으로써 생성된 차일드 키 3; 및(S+4R1+16R2+64R3)을 사용하여 P에 모듈로 연산을 수행함으로써 생성된 차일드 키 4.
본 실시 예에서 제공되는 차일드 키들을 계산하기 위한 미리결정된 알고리즘에 따르면, 원본 키를 공유하는 파티들의 수와 동일한 수의 차일드 키들이 난수, 소수 및 모듈로 연산을 조합하는 미리 결정된 방법을 이용하여 원본 키를 공유하는 파티들의 수에 기초하여 자동으로 생성될 수 있다. 상기 차일드 키 생성 방법이 사용되므로, 생성된 차일드 키들이 보다 기밀로 유지되고, 차일드 키들이 깨질(crack) 위험이 줄어들고, 거래가 더 안전하다.
본 명세서에서 제공되는 방법의 다른 구현에서, 복수의 대응하는 차일드 키는 공유되는 객체의 원본 키에 기초하여 생성될 수 있고, 원본 키는 수신된 차일드 키들에 기초하여 복원될 수도 있다. 구체적으로, 본 명세서에서 제공되는 방법의 다른 구현에서, 방법은 다음 단계을 더 포함할 수 있다:
S80. 입력된 차일드 키들을 수신한다.
S82. 차일드 키들의 수가 대응하는 원본 키를 공유하는 파티들의 수와 동일하다고 판단되면, 대응하는 원본 키를 획득하기 위해, 미리 결정된 알고리즘을 사용하여 차일드 키들에 기초한 원본 키를 계산을 통해 복원한다.
물론, 방법은 다음 단계를 더 포함할 수 있다:
S84: 계산을 통한 복원 후 획득된 원본 키를 사용하여 공유되는 객체를 연산한다.
도 4는 본 명세서의 다른 구현에 따른 예시적인 방법을 도시한 흐름도이다. 자산 운영에 원본 키가 필요한 경우, 원본 키의 각 자산 공유 파티는 자신의 차일드 키를 입력할 수 있다. 차일드 키는 복수의 자산 공유 파티에게 분배되기 때문에, 본 구현에서, 원본 키를 공유하는 파티들의 수와 동일한 수의 차일드 키들이 수신될 때 원본 키가 복원된다. 예를 들어, 지갑의 개인 키는 3 명의 지갑 공유자 각각에 저장하는 3개의 차일드 키를 생성한다. 지갑 자금 운영이 수행되어야 할 때, 각 지갑 공유 파티는 자신의 차일드 키를 입력한다. 이 상황에서, 3개의 차일드 키를 수신할 때, 지갑은 3개의 차일드 키를 사용하여 지갑의 개인 키를 복원할 수 있다. 지갑이 하나 또는 2개의 차일드 키만 수신하거나, 3개 이상의 차일드 키를 수신하는 경우, 차일드 키들의 수가 지갑 공유자(wallet sharing persons) 수와 다르고, 원본 키를 복원될 수 없음을 나타낼 수 있다.
원본 키는 차일드 키들을 생성하기 위한 알고리즘에 대응하는 알고리즘 또는 일부 특정 방법을 사용하여 차일드 키들의 특성을 참조하는 차일드 키들에 기초하여 복원될 수 있다. 예를 들어, 본 명세서에서 원본 키를 복원하는 하나 이상의 프로세스에서, 난수, 소수 및 모듈로 연산을 사용하여 차일드 키를 생성하는 구현에서, 원본 개인 키 S는 라그랑주 방정식을 사용하여 복원될 수 있다.
복원된 원본 키가 획득된 후, 대응하는 공유되는 객체는 키를 사용하여 연산될 수 있다. 예를 들어, 거래는 지갑에 의해 권한이 부여된 사용자에 의해 생성되었음을 확인하도록 서명될 수 있다. 나아가, 지갑은 서명된 거래에 대한 정보를 블록체인 네트워크에 브로드캐스트하고, 새로운 블록에 정보를 저장할 수 있다.
앞선 구현은 난수 문자열 또는 난수, 소수 등을 사용하여 차일드 키들을 생성하는 미리 결정된 알고리즘을 제공한다. 본 명세서의 다른 구현은 원본 키에 기초하여 대응하는 수만큼의 차일드 키들을 생성하는 다른 구현을 제공한다. 본 구현에서, 배타적 OR 계산은 원본 키 및 임의의 시간에 생성되는 각 난수들에 대해 수행될 수 있으며, 여기서 난수들은 동일한 길이를 갖는다. 배타적 OR 계산 후에 획득한 값과 이들 난수들은 차일드 키들로 사용된다. 구체적으로, 본 명세서에서 제공되는 방법의 다른 구현에서, 미리 결정된 알고리즘은 다음 단계들을 포함할 수 있다:
S210. (N-1)개의 난수들을 생성하고, 여기서 난수들의 이진 길이(binary length)들 원본 키의 이진 길이와 동일하고, N은 원본 키를 공유하는 파티들의 수이다.
S212. 배타적 OR 차일드 키를 획득하기 위해, 원본 키와 각 (N-1)개의 난수들에 대해 비트단위 배타적 OR 연산(bitwise exclusive OR operation)을 수행한다.
S214. 배타적 OR 차일드 키와 (N-1)개의 난수들을 N개의 출력 차일드 키들로 사용한다.
본 구현에서, 공유되는 객체가 (N-1)개의 난수들을 미리 생성할 수 있다면, 난수들의 길이는 원본 키의 길이와 동일할 수 있고, 예를 들어 1024 비트 또는 2048 비트의 이진 수이다. 값을 획득하기 위해, 원본 키와 각 (N-1)개의 난수들에 대해 배타적 OR 계산이 수행될 수 있다. 상기 값과 이전에 생성된 (N-1)개의 난수들은 차일드 키들로 사용되고, 하나의 차일드 키는 각 개체 공유 파티에게 할당된다.
원본 키 및 각각의 난수들에 대해 비트단위 배타적 OR 연산을 수행하기 위한 프로세싱 방법의 특정 예가 도 5에 도시되어 있다. 도 5는 본 명세서에 따른 미리결정된 알고리즘에 기초하여 차일드 키를 생성하는 다른 프로세스를 도시하는 개략도이다. 이진 시스템에서 원본 키 S의 길이가 1024 비트이고, 원본 키를 공유하는 파티들의 수가 4라고 가정한다. 그에 따라, 우선 1024 비트의 3개의 임의의 이진 숫자가 생성될 수 있다. 그리고, R1을 획득하기 위해 원본 키 S와 제1 난수에 대해 배타적 OR 연산이 수행되고, R2를 획득하기 위해 R1과 제2 난수에 대해 배타적 OR 연산이 수행될 수 있다. 결국, R3을 획득하기 위해 R2 및 제3 난수에 대해 배타적 OR 연산이 수행되고, R3은 본 구현에서의 배타적 OR 차일드 키이다. R3과 1024 비트의 3개의 임의의 이진 수는 계산을 통해 얻은 4개의 차일드 키로 사용된다. 원본 키가 복원될 필요가 있을 때, 본 구현에서 배타적 OR 연산을 수행함으로써 획득된 차일드 키들에 대해 역 배타적 OR 연산이 수행될 수 있다. 배타적 OR 연산은 암호화(encryption) 중에 사용되며 배타적 OR 연산의 역 연산은 해독(decryption) 중에 수행된다. 이처럼, 원본 키가 획득될 수 있다. 본 실시 예에서 제공되는 배타적 OR 연산 방법은 해독 동안 수집될 필요가 있는 모든 정확한 차일드 키들을 보장하기 위해 사용되며, 차일드 키들에 대한 배타적 OR 연산을 수행함으로써 원본 키가 신속하게 획득될 수 있다. 이처럼, 키를 복원하는 것이 더 쉬우며, 자산 거래 보안을 유지하면서 해독하는 동안 원본 키를 복원하는 프로세싱 속도가 증가된다.
본 명세서에서의 구현은 진보적인 방식으로 설명되며, 구현에서 동일하거나 유사한 부분에 대해서는, 이러한 구현을 참조할 수 있고, 각 구현은 다른 구현과의 차이에 초점을 둔다. 자세한 내용은, 이전의 관련 프로세싱 및 관련 구현에서의 설명을 참조할 수 있다. 자세한 내용은 여기에 기술되어 있지 않다.
본 명세서의 특정 구현이 위에서 설명되었다. 다른 구현은 첨부된 청구 범위의 범위 내에 속한다. 일부 상황에서, 청구 범위에 기록된 동작 또는 단계는 상기 구현과 다른 시퀀스로 수행될 수 있고 원하는 결과가 여전히 달성될 수 있다. 또한, 첨부 도면에 도시된 프로세스는 원하는 결과를 달성하기 위해 반드시 특정 시퀀스 또는 연속 시퀀스를 필요로 하지는 않는다. 일부 구현에서, 멀티태스크 프로세싱 및 병렬 프로세싱이 실현 가능하거나 유리할 수 있다.
본 명세서의 하나 이상의 구현에서 제공되는 키 데이터 프로세싱 방법에 따르면, 원본 키는 자산이나 데이터와 같은 공유되는 객체의 원본 키를 공유하는 파티들의 수에 기초하여 복수의 차일드 키로 분할될 수 있고, 생성된 차일드 키들은 대응되는 자산 공유 파티들에게 디스플레이될 수 있다. 공유되는 객체를 운영해야 하는 경우, 각 자산 공유 파티는 차일드 키를 제공할 수 있다. 그런 다음 원본 키는 차일드 키들을 사용하여 복원될 수 있고, 서명 및 자산 거래와 같은 대응하는 동작이 수행될 수 있다. 이처럼, 본 명세서의 본 구현에서, 블록체인 내의 자산들이 복수의 사람에 의해 공유될 때, 블록체인의 공유되는 자산 거래의 보안을 보장하기 위해, 어떠한 사람이 다른 사람의 지식이 없는 상태에서 자산을 운영하는 것을 효과적으로 방지할 수 있다.
이전의 사용자 키 데이터 프로세싱 방법에 기초하여, 본 명세서의 하나 이상의 구현은 키 데이터 프로세싱 장치를 추가로 제공한다. 본 장치는 본 명세서의 구현에서 상기 방법의 필요한 구현 하드웨어를 구비하고 시스템(분산 시스템을 포함), 소프트웨어(애플리케이션), 모듈, 컴포넌트, 서버, 클라이언트 등을 사용하는 장치를 포함할 수 있다. 동일한 혁신적인 개념에 기초하여, 본 명세서의 하나 이상의 구현에서 제공되는 장치는 다음 구현에서 설명된다. 장치의 문제 해결 구현 해결책은 상기 방법의 그것과 유사하기 때문에, 본 명세서의 구현에서 장치의 특정 구현을 위해, 이전 방법의 구현을 참조할 수 있다. 반복 설명은 제공되지 않는다. 이하의 구현에서 사용되는 용어 "유닛" 또는 "모듈"은 미리 결정된 기능의 소프트웨어 및/또는 하드웨어의 조합을 구현할 수 있다. 이하의 구현에서 설명된 장치는 바람직하게는 소프트웨어에 의해 구현되지만, 하드웨어 또는 소프트웨어와 하드웨어의 조합의 구현이 생각될 수 있다. 구체적으로, 도 6은 본 명세서의 구현에 따른 키 데이터 프로세싱 장치의 모듈을 나타내는 개략적인 구조도이다. 도 6에 도시된 바와 같이, 장치는 원본 키 정보 획득 모듈(101) 및 차일드 키 생성 모듈(102)을 포함할 수 있다. 원본 키 정보 획득 모듈(101)은 블록체인에서 공유되는 객체의 원본 키를 획득하고, 원본 키를 공유하는 파티들의 수를 결정하도록 구성된다. 차일드 키 생성 모듈(102)은 미리 결정된 알고리즘을 사용하여 원본 키를 프로세싱하고, 원본 키를 공유하는 파티들의 수와 동일한 수의 차일드 키들을 생성하도록 구성되며, 동일한 수의 차일드 키들을 획득할 때 차일드 키들은 원본 키를 복원하는데 사용된다.
본 구현에서 제공되는 키 데이터 프로세싱 장치에 따르면, 원본 키는 자산 또는 데이터와 같은 공유되는 객체의 원본 키를 공유하는 파티들의 수에 기초하여 복수의 차일드 키로 분할될 수 있다. 각각의 공유자는 하나의 차일드 키를 소유하므로, 복수의 사람이 자산을 공유할 때, 자산 거래는 복수의 사람의 공동 참여가 필요하다. 이처럼, 자산 공유 파티가 블록체인에서 거래 데이터를 개인적으로 운영하는 것을 효과적으로 방지하여, 자산 거래의 보안을 보장할 수 있다.
도 7은 본 명세서의 다른 구현에 따른 키 데이터 프로세싱 장치의 모듈을 나타내는 개략적인 구조도이다. 장치의 다른 구현에서, 장치는 차일드 키를 대응하는 객체 공유 파티들에 전송하도록 구성된 차일드 키 출력 모듈(103); 및 원본 키를 삭제하도록 구성된 원본 키 삭제 모듈(104)을 포함할 수 있다.
본 구현에서, 원본 키에 기초하여 생성된 복수의 차일드 키 각각을 사용함으로써, 거래 검증이 독립적으로 수행될 수 없거나, 검증이 성공할 수 없다. 동일한 원본 키로 생성된 모든 차일드 키들이 함께 수집되면, 원본 키가 복원될 수 있다.
자산 공유 파티들의 수와 동일한 수의 차일드 키들이 생성된 후, 차일드 키가 대응하는 자산 공유 파티에게 표시될 수 있어서, 각 자산 공유 파티는 차일드 키를 얻을 수 있다. 그런 다음, 원본 키가 삭제될 수 있다. 예를 들어, 원본 개인 키는 전자 지갑에서 완전히 삭제될 수 있다. 이처럼, 키 데이터 보안을 더욱 보장하고, 자산 공유 파티가 자산 거래에 개인 키를 개인적으로 사용하는 것을 방지하기 위해, 차일드 키를 가진 어느 자산 공유 파티도 원본 키를 저장하지 않는다.
장치의 다른 구현에서, 차일드 키 생성 모듈(102)에서 사용되는 미리 결정된 알고리즘은, 원본 키를 공유하는 파티들의 수와 동일한 수의 차일드 키들을 생성하기 위해, 무작위로 생성된 문자열을 사용하여 원본 키에 대한 연산을 수행하는 단계를 포함할 수 있다.
본 명세서의 장치의 다른 구현은 난수, 소수 및 모듈로 연산을 사용하여 차일드 키를 생성하는 구현을 제공한다. 도 8은 본 명세서의 일 구현에 따른 장치에서의 차일드 키 생성 모듈을 도시한 개략적인 구조도이다. 도 8에 도시된 바와 같이, 차일드 키 생성 모듈(102)은 난수 생성 유닛(1021), 소수 선택 유닛(1022) 및 차일드 키 계산 유닛(1023)을 포함할 수 있다. 난수 생성 유닛(1021)은, (N+1)개의 공유 파티들이 있을 때, N개의 난수 Ri를 생성하며, 여기서 Ri는 i번째 난수이며 i∈[1, N]이다. 소수 선택 유닛(1022)은 소수 P를 결정하도록 구성되며, 여기서 소수 P는 적어도 원본 키의 값 S 및 난수 Ri 중 어느 하나보다 크고, Ri의 범위는 [0, P-1]이다. 차일드 키 계산 유닛(1023)는, (N+1)개의 차일드 키들을 획득하기 위해, (S+R1X+R2X2+R3X3+…+RNXN)이 계산된 후 P에 모듈로 연산을 수행하고, [1, N+1]로부터 X의 값을 선택하도록 구성되며, 여기서 N≥1, X 및 N은 정수이다.
본 구현에서 제공되는 차일드 키들을 계산하는 미리 결정된 알고리즘 및 원본 키를 공유하는 파티들의 수에 기초하여, 난수, 소수 및 모듈로 연산을 조합하는 미리 결정된 방법을 사용하여 원본 키를 공유하는 파티들의 수와 동일한 수의 차일드 키들이 자동으로 생성될 수 있다. 상술한 차일드 키 생성 방법을 사용하기 때문에, 차일드 키들이 더 안전하게 생성될 수 있고, 차일드 키들이 깨질 위험이 줄어들고, 거래가 더 안전하다.
본 명세서에 제공된 장치의 다른 구현에서, 복수의 대응하는 차일드 키는 공유되는 객체의 원본 키에 기초하여 생성될 수 있고, 원본 키는 수신된 차일드 키들에 기초하여 추가로 복원될 수 있다. 도 9는 본 명세서의 다른 구현에 따른 키 데이터 프로세싱 장치를 도시한 개략적인 구조도이다. 도 9에 도시된 바와 같이, 장치는 수신 모듈(1051) 및 원본 키 복원 모듈(1052)을 더 포함할 수 있다. 수신 모듈(1051)은 입력된 차일드 키를 수신하도록 구성된다. 원본 키 복원 모듈(1052)은, 대응하는 원본 키를 획득하기 위해, 차일드 키의 수가 대응하는 원본 키를 공유하는 파티의 수와 동일하다고 결정될 때, 계산을 통해, 미리결정된 알고리즘을 사용하여 차일드 키들에 기초하여 원본 키를 복원한다.
도 10은 본 명세서의 다른 구현에 따른 장치에서의 차일드 키 생성 모듈을 도시한 개략적인 구조도이다. 도 10에 도시된 바와 같이, 차일드 키 생성 모듈(102)은 난수 생성 유닛(20), 배타적 OR 계산 유닛(21) 및 차일드 키 결정 유닛(22)을 포함할 수 있다. 난수 생성 유닛(20)은 (N-1)개의 난수를 생성하도록 구성되고, 여기서 난수의 이진 길이들은 원본 키의 이진 길이와 동일하며, N은 원본 키를 공유하는 파티의 수이다. 배타적 OR 계산 유닛(21)은 배타적 OR 차일드 키를 획득하기 위해, 원본 키 및 (N-1)개의 난수 각각에 대해 비트단위 배타적 OR 연산을 수행하도록 구성된다. 차일드 키 결정 유닛(22)은 배타적 OR 차일드 키 및 (N-1)개의 난수를 N개의 출력 차일드 키로 사용하도록 구성된다.
본 구현에서, 배타적 OR 계산은, 값을 획득하기 위해, 원본 키 및 언제든 생성된 동일한 길이의 난수 각각에 대해 수행될 수 있으며, 그 다음에 배타적 OR 계산 이후에 생성된 값 및 이 난수들은 차일드 키들로 사용된다.
본 구현에서 제공되는 배타적 OR 연산 방법은 해독 동안 수집되어야 하는 모든 정확한 차일드 키들을 보장하는데 사용되고, 차일드 키에 대한 배타적 OR 연산을 수행함으로써 원본 키가 신속하게 획득될 수 있다. 이처럼, 키를 복원하는 것이 더 쉬우며, 자산 거래 보안을 유지하면서 암호 해독 중에 원본 키를 복원하는 프로세싱 속도가 크게 향상된다.
이전 장치는 방법 구현의 설명에 기초한 다른 구현을 더 포함할 수 있다는 것이 주목할 만하다. 특정 구현을 위해, 관련된 방법 구현에서 설명을 참조할 수 있으며, 세부 사항은 여기서 설명하지 않는다.
이전 장치 구현에서, 실제 제품 응용에서, 각 모듈 또는 서브 모듈은 구현 환경 또는 데이터 프로세싱 요구 사항에 기초하여 조합되거나 분할될 수 있다. 본 명세서의 하나 이상의 구현이 구현될 때, 각 모듈의 기능은 하나 이상의 소프트웨어 및/또는 하드웨어로 구현될 수 있거나, 동일한 기능을 구현하는 모듈은 복수의 서브 모듈 또는 서브부의 조합으로 구현될 수 있다. 설명된 장치 구현은 단지 예시일 뿐이다. 예를 들어, 유닛 분할은 단지 논리적 기능 분할일 뿐이며 실제 구현에서 다른 분할일 수 있다. 예를 들어, 복수의 유닛들 또는 컴포넌트들은 다른 시스템으로 조합 또는 통합될 수 있거나, 일부 특징은 무시되거나 수행되지 않을 수 있다.
도 11은 본 명세서의 일 구현에 따른 지갑 애플리케이션을 사용하는 모듈을 도시한 개략적인 구조도이다. 도 11에 도시된 바와 같이, 지갑의 공개 및 개인 키 생성 컴포넌트는 지갑의 공개 키 및 개인 키를 생성할 수 있다. 소수 저장 컴포넌트는 개인 키의 길이보다 길이가 큰 복수의 소수를 사전 저장한다. 난수 생성 컴포넌트는 차일드 키들을 생성할 필요가 있을 때, 대응하는 수의 난수들을 생성할 수 있다. 차일드 키 계산 유닛은 개인 키에 대응하는 복수의 차일드 키를 생성하고, 차일드 키들을 출력할 수 있다. 출력 차일드 키들은 대응하는 지갑 공유 파티들에게 할당될 수 있다. 지갑에서 자산 거래가 수행될 때, 각 공유 파티는 차일드 키를 입력하고, 개인 키 복원 계산 컴포넌트는 원본 키를 복원하기 위한 대응하는 알고리즘을 기반으로 원본 키를 계산하고, 원본 키를 사용하여 거래에 대한 서명, 검증 등을 수행할 수 있다. 거래가 생성된 후, 거래는 전체 블록체인 네트워크로 브로드캐스트될 수 있다.
본 명세서의 하나 이상의 구현에서 제공되는 키 데이터 프로세싱 장치에 따르면, 원본 키는 자산 또는 데이터와 같은 공유되는 객체의 원본 키를 공유하는 파티들의 수에 기초하여 복수의 차일드 키로 분할되고, 생성된 차일드 키들은 대응하는 자산 공유 파티들에게 디스플레이될 수 있다. 공유되는 객체가 운영될 필요가 있는 경우, 각 자산 공유 파티는 차일드 키를 제공할 수 있다. 그런 다음 원본 키는 차일드 키들을 사용하여 복원되고, 서명 및 자산 거래와 같은 대응하는 동작이 수행될 수 있다. 이처럼, 본 명세서의 본 구현에서, 블록체인 내의 자산들이 복수의 사람에 의해 공유될 때, 블록체인의 공유되는 자산 거래의 보안을 보장하기 위해, 어떠한 사람이 다른 사람의 지식이 없는 상태에서 자산을 운영하는 것을 효과적으로 방지할 수 있다.
본 명세서의 이전 구현에서의 방법 또는 장치는, 본 명세서의 본 발명에서 설명된 해결책의 효과를 구현하기 위해, 컴퓨터 프로그램을 사용하여 서비스 논리를 구현하고 서비스 논리를 저장 매체에 기록할 수 있고, 저장 매체는 컴퓨터에 의해 판독 및 실행될 수 있다. 저장 매체는 정보를 저장하기 위한 물리적 장치를 포함할 수 있으며, 이는 일반적으로 디지털화되고 전기, 자기 또는 광학과 같은 매체에 저장된다. 저장 매체는 전기 에너지 방식으로 정보를 저장하는 장치, 예를 들어 RAM 또는 ROM과 같은 저장 장치; 하드 디스크, 플로피 디스크, 자기 테이프, 자기 코어 메모리, 자기 버블 메모리 또는 USB 플래시 드라이브와 같은 자기 에너지 방식으로 정보를 저장하는 장치; 및 CD 또는 DVD와 같은 광학적인 방식으로 정보를 저장하는 장치를 포함할 수 있다. 물론, 양자 메모리 또는 그래핀 메모리와 같은 다른 형태의 판독 가능한 저장 매체도 존재한다.
본 명세서의 구현에서 제공되는 사용자 키 데이터 프로세싱 방법 또는 장치는 대응하는 프로그램 명령을 실행함으로써 컴퓨터의 프로세서에 의해 구현될 수 있고, 예를 들어 Windows 운영 체제에서 c++ 언어를 사용하는 서버, Linux 시스템에 기초한 서버, Android, iOS 시스템 프로그래밍 언어를 이용하는 서버 시스템 터미널에 구현될 수 있고, 또는 양자 컴퓨터에 기초한 프로세싱 논리를 이용하여 구현될 수 있다. 프로그램 명령은 저장 매체에 저장될 수 있다. 본 명세서에서 제공되는 키 데이터 프로세싱 장치의 다른 구현에서, 프로세서 및 프로세서에 의해 실행될 수 있는 명령어를 저장하도록 구성된 메모리가 포함될 수 있고, 명령어를 실행할 때 프로세서는 다음 동작을 구현한다: 블록체인에서 공유되는 객체의 원본 키를 획득하고 원본 키를 공유하는 파티들의 수를 결정하는 동작; 및 원본 키를 공유하는 파티들의 수와 동일한 수의 차일드 키들을 생성하기 위해, 미리결정된 알고리즘을 사용하여 원본 키를 프로세싱하는 동작, 여기서 동일한 수의 차일드 키들이 획득되었을 때 차일드 키들은 원본 키를 복원하는데 사용된다.
이전 장치는 방법 구현의 설명에 기초한 다른 구현을 더 포함할 수 있다는 것이 주목할 만하다. 예를 들어, 프로세서는 원본 키의 데이터를 삭제하고, 난수, 소수 및 모듈러 연산을 사용하여 차일드 키들을 생성하고, 라그랑주 방정식을 사용하여 원본 키를 복원하고, 배타적 OR 연산을 수행하여 차일드 키들을 생성하고, 역 연산을 수행하여 원본 키를 복원한다. 특정 구현에 대해서는, 관련 방법 구현에 대한 설명을 참조할 수 있으며, 여기서는 상세하게 설명하지 않는다.
이전의 방법 또는 장치는 키 데이터 프로세싱을 위한 복수의 서버, 예를 들어 지갑의 데몬 서버, 블록체인에서 광부 노드의 서버 및 블록체인에서 노드 내의 서비스 서버에서 사용될 수 있다. 서버는 별도의 서버를 포함하거나 분산 시스템의 서버 또는 서버 클러스터의 아키텍처 패턴을 포함할 수 있다. 구체적으로, 본 명세서는 도 12에 도시된 바와 같은 서버를 제공하고, 서버는 적어도 하나의 프로세서 및 프로세서에 의해 실행될 수 있는 명령을 저장하도록 구성된 메모리를 포함할 수 있다. 명령어를 실행할 때, 프로세서는 다음의 동작을 구현한다: 블록체인에서 공유되는 객체의 원본 키를 획득하고, 원본 키를 공유하는 파티들의 수를 결정하는 동작; 및 원본 키를 공유하는 파티들의 수와 동일한 수의 차일드 키들을 생성하기 위해, 미리결정된 알고리즘을 사용하여 원본 키를 프로세싱하는 동작. 획득한 차일드 키들의 수가 원본 키를 공유하는 파티들의 수와 동일할 때, 차일드 키들은 원본 키를 복원하는데 사용될 수 있다.
이전 서버는 방법 또는 장치 구현의 설명에 기초하여 다른 구현을 더 포함할 수 있다는 것이 주목할 만하다. 예를 들어, 프로세서는 원본 키의 데이터를 삭제하고, 난수, 소수 및 모듈러 연산을 사용하여 차일드 키를 생성하고, 라그랑주 공식을 사용하여 원본 키를 복원하고, 배타적 OR 연산을 수행하여 차일드 키를 생성하고, 역 연산을 수행하여 원본 키를 복원한다. 특정 구현을 위해, 관련 방법 또는 장치 구현의 설명을 참조할 수 있으며, 여기서는 상세하게 설명하지 않는다.
본 명세서에서의 구현은 진보적인 방식으로 설명되며, 구현에서 동일하거나 유사한 부분에 대해서는, 이러한 구현을 참조할 수 있고, 각 구현은 다른 구현과의 차이에 초점을 둔다. 특히 하드웨어 및 프로그램 구현은 기본적으로 방법 구현과 유사하므로 간단히 설명되며, 관련 부분에 대해서는, 방법 구현에서의 부분적 설명을 참조할 수 있다.
본 명세서의 특정 구현이 위에서 설명되었다. 다른 구현은 첨부된 청구 범위의 범위 내에 속한다. 일부 상황에서, 청구 범위에 기록된 동작 또는 단계는 구현에서와 다른 시퀀스로 수행될 수 있고 원하는 결과가 여전히 달성될 수 있다. 나아가, 첨부 도면에 도시된 프로세스는 원하는 결과를 달성하기 위해 반드시 특정 시퀀스 또는 연속 시퀀스를 필요로 하지는 않는다. 일부 구현에서, 멀티태스크 프로세싱 및 병렬 프로세싱이 실현 가능하거나 유리할 수 있다.
본 명세서의 하나 이상의 구현에서 제공되는 키 데이터 프로세싱 방법, 장치 및 서버에 따르면, 원본 키는 자산 또는 데이터와 같은 공유되는 객체의 원본 키를 공유하는 파티들의 수에 기초하여 복수의 차일드 키로 분할될 수 있고, 생성된 차일드 키들은 대응하는 자산 공유 파티들에게 디스플레이될 수 있다. 공유되는 객체가 운영될 필요가 있는 경우, 각 공유 파티들은 차일드 키를 제공할 수 있다. 그런 다음 원본 키는 차일드 키들을 사용하여 복원되고, 서명 및 자산 거래와 같은 대응하는 동작이 수행될 수 있다. 이처럼, 본 명세서의 본 구현에서, 블록체인 내의 자산들이 복수의 사람에 의해 공유될 때, 블록체인의 공유되는 자산 거래의 보안을 보장하기 위해, 어떠한 사람이 다른 사람의 지식이 없는 상태에서 자산을 운영하는 것을 효과적으로 방지할 수 있다.
본 명세서의 구현의 내용은 데이터 생성, 정의, 획득, 상호 작용, 계산, 결정 등, 예를 들어, 난수, 소수 및 모듈로 연산을 사용하여 차일드 키를 생성하고, 배타적 OR 연산을 사용하여 차일드 키를 생성하고, 라그랑주 방정식을 사용하여 원본 키를 복원하고, 차일드 키 할당 후 원본 개인 키를 삭제하는 것을 개시한다. 그러나, 본 명세서의 구현은 산업 통신 표준, 블록체인 데이터 규칙, 표준 컴퓨터 데이터 프로세싱 및 저장 규칙, 또는 본 명세서의 하나 이상의 구현에서 설명된 상황을 만족시키는 것으로 제한되지 않는다. 일부 산업 표준을 사용하거나 자체 정의된 방식으로 또는 설명된 구현을 기반으로 하여 약간 수정된 구현 해결책은 설명된 구현과 동일하거나, 동등하거나, 유사한 구현 효과 또는 변환 후의 예상되는 구현 효과를 구현할 수 있다. 수정되거나 변형된 데이터를 획득, 저장, 결정, 프로세싱하는 등의 구현은 여전히 본 명세서의 구현의 선택적 구현 해결책의 범위 내에 속할 수 있다.
본 명세서의 특정 구현이 위에서 설명되었다. 다른 구현은 첨부된 청구 범위의 범위 내에 속한다. 일부 상황에서, 청구 범위에 기록된 동작 또는 단계는 구현에서와 다른 시퀀스로 수행될 수 있고 원하는 결과가 여전히 달성될 수 있다. 또한, 첨부 도면에 도시된 프로세스는 원하는 결과를 달성하기 위해 반드시 특정 시퀀스 또는 연속 시퀀스를 필요로 하지는 않는다. 일부 구현에서, 멀티태스크 프로세싱 및 병렬 프로세싱이 실현 가능하거나 유리할 수 있다.
1990년대에, 기술 개선이 하드웨어 개선(예를 들어, 다이오드, 트랜지스터 또는 스위치와 같은 회로 구조의 개선)인지 또는 소프트웨어 개선(방법 절차의 개선)인지가 명백히 구별될 수 있다. 그러나, 기술이 발전함에 따라, 많은 현재의 방법 절차의 개선은 하드웨어 회로 구조의 직접적인 개선으로 간주될 수 있다. 설계자는 대응하는 하드웨어 회로 구조를 얻도록 일반적으로 개선된 방법 절차를 하드웨어 회로에 프로그래밍한다. 따라서, 하드웨어 엔티티 모듈은 방법 절차를 개선할 수 있다. 예를 들어, 프로그래머블 논리 디바이스(PLD)(예를 들어, 필드 프로그래머블 게이트 어레이(FPGA))는 이러한 집적 회로이며, 프로그래머블 논리 디바이스의 논리적 기능은 디바이스 프로그래밍을 통해 사용자에 의해 결정된다. 설계자는 칩 제조 업체에 어플리케이션 특정 집적 회로 칩을 설계하고 생산하도록 요구하지 않고 디지털 시스템을 PLD에 "통합"하도록 프로그래밍을 수행한다. 또한 프로그래밍은 직접 집적 회로 칩을 만드는 대신 대부분 "논리 컴파일러" 소프트웨어를 수정하여 구현된다. 이는 프로그램을 개발하고 작성하는데 사용되는 소프트웨어 컴파일러와 유사하다. 그러나 컴파일 전에 얻은 원본 코드는 특정 프로그래밍 언어로 작성되며, 이를 HDL(hardware description language)이라 한다. 그러나 ABEL(Advanced Boolean Expression Language), ADL(Altera Hardware Description Language), 컨플루언스(Confluence), CUPL(Cornell University Programming Language), HDCal, JHDL(Java Hardware Description Language), 라바(Lava), 로라(Lola), MyHDL, PALASM, 및 RHDL(Ruby Hardware Description Language)와 같은 HDL이 있다. 현재 VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)와 Verilog가 가장 유명하다. 당업자는 오직 논리 프로그래밍이 기술된 몇몇 하드웨어 기술 언어를 사용하여 방법 절차에서 수행될 필요가 있고, 몇몇 하드웨어 기술 언어는 집적 회로에 프로그래밍되어, 논리적 방법 절차를 구현하는 하드웨어 회로가 쉽게 획득될 수 있음을 이해하여야 한다.
컨트롤러는 임의의 적절한 방식으로 구현될 수 있다. 컨트롤러는, 예를 들어, 마이크로 프로세서 또는 프로세서를 사용할 수 있으며, 컴퓨터 판독 가능 매체, 논리 게이트, 스위치, ASIC(application-specific integrated circuit), 프로그래머블 논리 컨트롤러 및(마이크로) 프로세서에서 실행할 수 있는 컴퓨터 판독 가능 프로그램 코드(예를 들어, 소프트웨어 또는 하드웨어)인 내장된 마이크로 컨트롤러의 형태를 저장할 수 있다. 컨트롤러는 ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20 또는 Silicone Labs C8051F320과 같은 마이크로 컨트롤러를 포함하지만 이에 국한되지 않다. 메모리 컨트롤러는 또한 메모리의 제어 논리의 일부로서 구현될 수 있다. 당업자는 또한 순수한 컴퓨터 판독 가능 프로그램 코드 방식으로 컨트롤러를 구현하는 것 외에도, 상기 방법 단계를 사용하여 논리 프로그래밍이 완전히 수행될 수 있으며, 따라서 컨트롤러는 논리 게이트, 스위치, 애플리케이션 특정 집적 회로, 프로그래머블 논리 컨트롤러, 내장된 마이크로 컨트롤러 등의 형태로 동일한 기능을 구현한다. 따라서, 컨트롤러는 하드웨어 컴포넌트로 간주될 수 있고, 컨트롤러에서 다양한 기능을 구현하기 위한 장치는 하드웨어 컴포넌트에서의 구조로 간주될 수 있다. 또는, 다양한 기능을 구현하도록 구성된 장치는 상기 방법을 구현할 수 있는 소프트웨어 모듈 또는 하드웨어 컴포넌트에서의 구조로 간주될 수 있다.
설명된 구현에서 설명된 시스템, 장치, 모듈 또는 유닛은 컴퓨터 칩 또는 엔티티에 의해 구체적으로 구현되거나, 기능을 갖는 제품에 의해 구현될 수 있다. 일반적인 구현 장치는 컴퓨터이다. 구체적으로, 컴퓨터는, 예를 들어, 개인용 컴퓨터, 랩탑 컴퓨터, 휴대폰, 카메라 폰, 스마트폰, 개인용 디지털 어시스턴트, 미디어 플레이어, 내비게이션 장치, 이메일 장치, 게임 콘솔, 태블릿 컴퓨터 또는 웨어러블 장치 또는 이러한 장치의 조합일 수 있다.
본 명세서의 하나 이상의 구현은 구현 또는 흐름도에 따른 방법의 동작 단계들을 제공하지만, 종래의 또는 비창조적 수단은 더 많거나 적은 동작 단계를 포함할 수 있다. 구현에서 열거된 단계들의 시퀀스는 복수의 단계 실행 시퀀스들 중 하나일 뿐이며, 고유한 실행 시퀀스를 나타내지 않는다. 장치 또는 단말 제품의 실제 실행에서, 실행은 구현 또는 첨부 도면에 도시된 방법 시퀀스에 기초하여 수행되거나, 병렬로 수행될 수 있다(예를 들어, 병렬 프로세서 또는 다중 스레드 프로세싱 환경, 또는 심지어는 분산 데이터 프로세싱 환경). 용어 "포함(include)", "함유(contain)" 또는 이들의 다른 변형은 비 배타적인 포함을 포괄하여, 일련의 요소를 포함하는 프로세스, 방법, 물품(article) 또는 장치가 이러한 요소를 포함할 뿐 아니라, 또한 명시적으로 열거되지 않은 다른 요소를 포함하거나, 그러한 프로세스, 방법, 물품 또는 장치에 고유한 요소를 더 포함한다. "포함 ..."이 앞에 오는 요소는, 더 이상의 제약없이, 요소를 포함하는 프로세스, 방법, 물품 또는 장치에 동일한 요소가 추가로 존재하는 것을 배제하지 않는다.
설명의 편의를 위해, 설명된 장치는 기능들을 다양한 유닛들로 분할함으로써 설명되었다. 물론, 본 명세서의 하나 이상의 구현이 구현될 때, 각 모듈의 기능은 하나 이상의 소프트웨어 및/또는 하드웨어로 구현될 수 있거나, 동일한 기능을 구현하는 모듈은 복수의 서브 모듈 또는 서브 부의 조합에 의해 구현될 수 있다. 설명된 장치 구현은 단지 예시일 뿐이다. 예를 들어, 유닛 분할은 단지 논리적 기능 분할일 뿐이며, 실제 구현에서 다른 분할일 수 있다. 예를 들어, 복수의 유닛들 또는 컴포넌트들은 다른 시스템으로 결합되거나 통합될 수 있거나, 일부 특징은 무시되거나 수행되지 않을 수 있다. 또한, 디스플레이되거나 논의된 상호 결합(mutual couplings) 또는 직접 결합(direct couplings) 또는 통신 연결은 일부 인터페이스를 사용하여 구현될 수 있다. 장치들 또는 유닛들 사이의 간접 결합(indirect couplings) 또는 통신 연결은 전자적, 기계적 또는 다른 형태로 구현될 수 있다.
당업자는, 순수한 컴퓨터 판독 가능 프로그램 코드 방식으로 컨트롤러를 구현하는 것 외에도, 방법 단계를 사용하여 논리 프로그래밍이 완전히 수행될 수 있으며, 따라서 컨트롤러는 논리 게이트, 스위치, 애플리케이션 특정 집적 회로, 프로그래머블 논리 컨트롤러, 내장된 마이크로 컨트롤러 등의 형태로 동일한 기능을 구현한다는 것을 알고 있다. 따라서, 컨트롤러는 하드웨어 컴포넌트로 간주될 수 있고, 컨트롤러에서 다양한 기능을 구현하기 위한 장치는 하드웨어 컴포넌트의 구조로 간주될 수도 있다. 또는, 다양한 기능을 구현하도록 구성된 장치는 상기 방법을 구현할 수 있는 소프트웨어 모듈 또는 하드웨어 컴포넌트에서의 구조로 간주될 수 있다.
본 개시(disclosure)는 본 개시의 구현에 따른 방법, 장치(시스템) 및 컴퓨터 프로그램 제품의 흐름도 및/또는 블록도를 참조하여 설명된다. 컴퓨터 프로그램 명령은 흐름도 및/또는 블록도에서 각각의 프로세스 및/또는 각 블록과 흐름도 및/또는 블록도에서 프로세스 및/또는 블록의 조합을 구현하는데 사용될 수 있음을 이해해야 한다. 이들 컴퓨터 프로그램 명령은 범용 컴퓨터, 전용 컴퓨터, 내장된 프로세서 또는 기계(machine)를 생성하기 위한 다른 프로그래머블 데이터 프로세싱 장치의 프로세서에 제공되어, 컴퓨터 또는 다른 프로그래머블 데이터 프로세싱 장치의 프로세서의 프로세서에 의해 실행되는 명령어 는 흐름도에서 하나 이상의 프로세스에서 또는 블록도에서 하나 이상의 블록에서 특정 기능을 구현하기 위한 장치를 생성한다.
이들 컴퓨터 프로그램 명령은 컴퓨터 또는 임의의 다른 프로그래머블 데이터 프로세싱 장치가 특정 방식으로 작동하도록 지시할 수 있는 컴퓨터 판독 가능 메모리에 저장될 수 있어서, 컴퓨터 판독 가능 메모리에 저장된 명령은 명령 장치를 포함하는 아티팩트를 생성한다. 명령 장치는 흐름도의 하나 이상의 프로세스 및/또는 블록도의 하나 이상의 블록에서 특정 기능을 구현한다.
이들 컴퓨터 프로그램 명령은 컴퓨터 또는 다른 프로그래머블 데이터 프로세싱 장치에 로딩될 수 있어서, 일련의 동작 및 단계가 컴퓨터 또는 다른 프로그래머블 장치에서 수행되어, 컴퓨터 구현된 프로세싱을 생성한다. 따라서, 컴퓨터 또는 다른 프로그래머블 장치에서 실행되는 명령은 흐름도의 하나 이상의 프로세스 또는 블록도의 하나 이상의 블록에서 특정 기능을 구현하기 위한 단계를 제공한다.
전형적인 구성에서, 컴퓨팅 장치는 하나 이상의 프로세서(CPU), 입/출력 인터페이스, 네트워크 인터페이스 및 메모리를 포함한다.
메모리는 ROM(read-only memory) 또는 플래시 메모리(flash RAM)과 같은 컴퓨터 판독 가능 매체에서 휘발성 메모리, 랜덤 액세스 메모리(RAM) 및/또는 비 휘발성 메모리 등의 형태를 포함할 수 있다. 메모리는 컴퓨터 판독 가능 매체의 예이다.
컴퓨터 판독 가능 매체는 휘발성 및 비 휘발성, 분리형 및 비 분리형 매체를 포함하고, 임의의 방법 또는 기술을 사용하여 정보를 저장할 수 있다. 정보는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터일 수 있다. 컴퓨터 저장 매체는 PRAM(phase change random access memory), SRAM(static random access memory), DRAM(dynamic random access memory), 다른 유형의 RAM(random access memory), ROM(read-only memory), EEPROM(electrically erasable programable read-only memory), 플래시 메모리 또는 다른 메모리 기술, CD-ROM(compact disc read-only memory), DVD(digital versatile disc) 또는 기타 광 저장 장치, 자기 테이프, 자기 디스크 저장 장치, 다른 자기 저장 장치, 또는 임의의 다른 비 전송 매체를 포함하며 이에 한정되지 않는다. 컴퓨터 저장 매체는 컴퓨팅 장치에 의해 액세스될 수 있는 정보를 저장하는데 사용될 수 있다. 본 명세서에 기술된 바와 같이, 컴퓨터 판독 가능 매체는 일시적 매체, 예를 들어 변조된 데이터 신호 및 캐리어를 포함하지 않는다.
당업자는 본 명세서의 하나 이상의 구현이 방법, 시스템 또는 컴퓨터 프로그램 제품으로서 제공될 수 있음을 이해해야 한다. 그러므로, 본 명세서의 하나 이상의 구현은 하드웨어 전용 구현, 소프트웨어 전용 구현 또는 소프트웨어와 하드웨어의 조합을 갖는 구현의 형태를 사용할 수 있다. 또한, 본 명세서의 하나 이상의 구현은 컴퓨터 사용 가능 프로그램 코드를 포함하는 하나 이상의 컴퓨터 사용 가능한 저장 매체(디스크 메모리, CD-ROM, 광학 메모리 등을 포함하지만 이에 제한되지 않음)에 구현되는 컴퓨터 프로그램 제품의 형태를 사용할 수 있다.
본 명세서의 하나 이상의 구현 예는 프로그램 모듈과 같은 컴퓨터에 의해 실행되는 컴퓨터 실행 가능 명령어의 공통 컨텍스트에서 설명될 수 있다. 일반적으로, 프로그램 모듈은 특정 동작을 실행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 본 명세서의 하나 이상의 구현은 또한 분산 컴퓨팅 환경에서 실시될 수 있다. 이러한 분산 컴퓨팅 환경에서, 동작은 통신 네트워크를 사용하여 연결된 원격 프로세싱 장치에 의해 실행된다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 저장 장치를 포함하는 로컬 및 원격 컴퓨터 저장 매체에 위치할 수 있다.
본 명세서에서의 구현은 모두 진보적인 방식으로 설명되며, 구현에서 동일하거나 유사한 부분에 대해, 이들 구현을 참조할 수 있으며, 각각의 구현은 다른 구현과의 차이에 초점을 둔다. 특히 시스템 구현은 기본적으로 메소드 구현과 유사하므로, 간단히 설명되어 있으며; 관련 부분에 대해서는, 방법 구현에서의 부분적인 설명을 참조할 수 있다. 본 명세서의 설명에서, "구현", "일부 구현", "예", "구체적 예" 및 "일부 예"와 같은 참조 용어에 대한 설명은 본 명세서의 적어도 하나의 구현 또는 예에 포함되는 구현 또는 예를 참조하여 설명된 특정 특징, 구조, 재료 또는 특성을 의미한다. 본 명세서에서, 용어의 이전 예시 표현이 반드시 동일한 구현 또는 예시와 관련되는 것은 아니다. 또한, 설명된 특정 특징, 구조, 재료 또는 특성은 임의의 하나 이상의 구현 또는 예에서 적절한 방식으로 조합될 수 있다. 또한, 당업자는 서로 상충되지 않는 한, 본 명세서에 기술된 상이한 구현 또는 예의 특성을 통합하거나 조합할 수 있다.
전술한 설명은 단지 본 명세서의 하나 이상의 구현의 구현일 뿐이며, 본 명세서의 하나 이상의 구현을 제한하려는 것이 아니다. 당업자에 있어서, 본 명세서의 하나 이상의 구현은 다양한 수정 및 변경을 가질 수 있다. 본 출원의 사상 및 원리 내에서 이루어진 임의의 수정, 균등한 대체, 개선 등은 청구 범위의 보호 범위 내에 속한다.
도 13은 본 개시의 일 구현에 따른, 블록체인 네트워크에서 공유되는 소유권을 관리하기 위한 컴퓨터 구현 방법(1300)의 예를 도시한 흐름도이다. 표현의 명확성을 위해, 다음의 설명은 일반적으로 본 설명의 다른 도면들의 컨텍스트에서의 방법(1300)을 설명한다. 그러나, 방법(1300)은, 예를 들어, 임의의 시스템, 환경, 소프트웨어 및 하드웨어, 또는 시스템, 환경, 소프트웨어 및 하드웨어의 조합에 의해 적절하게 수행될 수 있다고 이해될 수 있다. 일부 구현에서, 방법(1300)의 다양한 단계들은 병렬로, 조합되어, 반복되어 또는 임의의 순서로 실행될 수 있다.
블록체인 네트워크에서, 블록체인 객체는 블록체인에 의해 추적되거나 기록될 다양한 자산 또는 데이터를 나타낼 수 있다. 블록체인 객체의 소유권은 일반적으로 공개-개인 키 쌍과 관련이 있으며, 파티가 공개-개인 키 쌍의 개인 키를 소유하고 있음을 수립(establish)하는 것은 블록체인 객체의 소유권을 나타내는데 사용된다. 예를 들어, 블록체인 객체의 소유자는 개인 키를 사용하여 블록체인 객체의 해시를 암호화할 수 있으며, 다른 파티는 소유자가 블록체인 객체와 연관된 공개-개인 키 쌍의 개인 키를 소유하고 있음을 확인하기 위해 블록체인 객체와 관련된 공개 키를 사용하여 해독할 수 있고, 따라서 객체의 소유자를 확인할 수 있다.
일반적으로, 자산은 둘 이상의 파티에 의해 공동 소유될 수 있다. 예를 들어, 집, 자동차 또는 은행 계좌는 둘 이상의 파티에 의해 공동 소유될 수 있다. 이와 같이, 블록체인 객체를 공동으로 소유하는 능력이 요구된다. 그러나 일반적인 블록체인 네트워크에서는 단일 공개-개인 키 쌍만 블록체인 객체와 연결될 수 있으며, 여러 공개-개인 키 쌍을 객체에 연결하기 위해 블록체인 네트워크 아키텍처를 수정하는 것은 불가능할 수 있다. 이처럼, 기존 블록체인 네트워크에서 블록체인 객체의 공유되는 소유권을 관리할 필요가 있다. 이러한 공유되는 소유권은 블록체인 객체와 관련된 공개-개인 키 쌍의 개인 키("페어런트 암호화 키(parent cryptographic key)")로부터 다수의 차일드 암호화 키들을 생성하고, 차일드 암호화 키들을 객체의 공동 소유자들에게 배포함으로써 구현될 수 있다.
개별적인 차일드 암호화 키들은 페어런트 암호화 키와 다르고, 따라서 블록체인 객체의 소유권을 수립하는데 사용될 수 없다. 그러나 공동 소유자들이 각각 차일드 암호화 키를 제공하고 차일드 암호화 키의 완전한 세트가 확보되면, 페어런트 암호화 키는 차일드 암호화 키들로부터 재구성될 수 있고, 이는 차례로 블록체인 객체 상의 공동 소유권을 증명하고 모든 공동 소유자들이 동의한대로 블록체인 객체를 폐기(dispose)하는데 사용될 수 있다. 이에 따라, 블록체인 객체 상의 공동 제어가 수립되며, 여기서 모든 공동 소유자들이 그들의 차일드 암호화 키들을 제공함으로써 동의를 제공한 경우에만 블록체인 객체가 제어될 수 있다.
1302에서, 블록체인 객체와 연관된 페어런트 암호화 키가 획득된다. 이 단계는 도 1의 단계 S0과 유사할 수 있다. 블록체인 객체가 단일 공개-개인 키 쌍과 연관되어 있기 때문에, 블록체인 객체는 객체 생성시 단일 소유자에 의해 최초로 소유될 수 있다. 파티의 그룹이 생성된 블록체인 객체를 공동으로 소유하거나 블록체인 객체의 소유권을 단독 소유권에서 공유되는 또는 공동 소유권으로 변경하려는 경우, 블록체인 객체와 연관된 공개-개인 키 쌍의 개인 키가 획득된다. 개인 키는, 예를 들어, 블록체인 객체를 생성 시점에 블록체인 네트워크로부터 얻어지거나, 블록체인 객체의 현재 소유자에 의해 제공될 수 있다. 일부 구현에서, 브로커 또는 에이전트와 같은 중개자는 차일드 암호화 키들이 생성될 때까지 블록체인 객체의 소유권의 무결성을 보호하기 위해 이해 파티들을 대신하여 페어런트 암호화 키를 획득할 수 있다.
공개-개인 키 쌍의 개인 키는 페어런트 암호화 키의 일 예이다. 페어런트 암호화 키는 전형적으로, 예를 들어, 특정 암호화 표준 또는 기술에 의존하는 미리 결정된 길이의 일련의 비트이다. 예를 들어, 페어런트 암호화 키는 128, 256, 384, 1024, 2048, 3072 비트 또는 그 이상의 비트 길이를 가질 수 있다.
1302에서, 방법(1300)은 1304로 진행한다.
1304에서, 블록체인 객체에 대한 제어를 공유하기 위해 파티들의 수(N)가 획득된다. N은 2 이상의 정수이다. 차일드 암호화 키들을 생성하기 전에, 생성될 키의 수가 먼저 획득되어야 한다. 예를 들어, 공동 소유권을 설정하는 파티들은 당사들의 수 N을 블록체인 네트워크, 블록체인 객체의 현재 소유자 또는 중개자에게 제공할 수 있다. 이 키들의 수는 일반적으로 블록체인에 대한 제어를 공유하는 파티들의 수이다. 블록체인에 대한 제어를 공유하는 파티들은 블록체인 객체의 공동 또는 공유 소유자일 수 있다. 일부 구현에서, 제어를 공유하는 파티들은 블록체인 객체의 공유 또는 공동 소유자 이외의 지위(capacity)를 가질 수 있다. 예를 들어, 파티는, 블록체인 객체를 소유하지 않지만, 블록체인 객체가 어떻게 처분될 것인지를 제어할 수 있는 부동산 또는 유언장의 관리인일 수 있다.
1304에서, 방법(1300)은 1306으로 진행한다.
1306에서, 페어런트 암호화 키에 기초한 N개의 차일드 암호화 키는 페어런트 암호화 키에 미리 결정된 알고리즘을 적용함으로써 생성된다. N개의 차일드 암호화 키는 페어런트 암호화 키를 재구성하기 위해 집합적으로 동작 가능하다. 이 단계는 도 1의 단계 S2와 유사할 수 있다. 일반적으로 차일드 암호화 키들은 두 가지 기준을 충족해야 한다. 첫째, 개별 차일드 암호화 키들은 페어런트 암호화 키와 달라서, 개별 차일드 키들은 소유권을 수립하는데 이용될 수 없어야 한다. 또한, 생성된 차일드 암호화 키들이 페어런트 암호화 키들의 보안 수준을 실질적으로 감소시키지 않는 방식으로 페어런트 암호화 키들과 다른 것이 유리할 것이다. 둘째, 차일드 암호화 키들의 완전한 세트는 페어런트 암호화 키의 결정론적 재구성(예: 무차별 대입이 아닌)을 허용해야 한다.
페어런트 암호화 키 및 파티들의 수 N이 획득되면, N개의 차일드 암호화 키들은 페어런트 암호화 키로부터 다양한 방식으로 생성될 수 있다. 일부 구현에서, N개의 차일드 암호화 키들은 페어런트 암호화 키에 다음을 포함하는 미리 결정된 알고리즘을 적용함으로써 생성된다: N-1개의 난수 Ri를 생성하는 단계, 여기서 i는 1과 N-1 사이의 정수이고 Ri는 음이 아닌 정수이고; 난수 Ri보다 큰 소수 P를 결정하는 단계, 소수 P는 적어도 페어런트 암호화 키의 값 S 또는 난수 Ri 중 어느 하나보다 크고, 난수 Ri보다 크고; 및 N개의 차일드 암호화 키 Cx를 결정하는 단계, 여기서 Cx = P modulo (S+R1X+R2X2+R3X3+…+RN-1XN-1)이고 X는 1과 N 사이의 정수이다. 차일드 암호화 키들 Cx를 결정하는 식은
Figure pct00001
과 수학적으로 동등한 형식으로 재작성될 수 있다.
일부 구현에서, N개의 차일드 암호화 키들은 페어런트 암호화 키에, 페어런트 암호화 키의 비트 길이와 동일한 비트 길이를 갖는 N-1개의 난수를 생성하는 단계; 및 일련의 비트 배타적 OR(XOR) 연산을 수행함으로써 XOR 차일드 암호화 키를 생성하는 단계를 포함하는 미리 결정된 알고리즘을 적용함으로써 생성되며, 일련의 비트단위 XOR 연산은 페어런트 암호화 키와 N-1개의 난수 중 하나 사이에서 XOR 연산을 수행하는 단계; 및 이전 XOR 연산의 출력과 나머지 난수 중 하나 사이에서 XOR 연산을 순차적으로 수행하는 단계를 포함한다. N-1개의 난수 및 XOR 연산에 의해 생성된 XOR 차일드 암호화 키는 N개의 차일드 암호화 키로 사용될 수 있다.
일부 구현에서, N개의 차일드 암호화 키들은 무작위로 생성된 문자열에 기초하여 페어런트 암호화 키를 수정하는 단계를 포함하는 미리 결정된 알고리즘을 페어런트 암호화 키에 적용함으로써 생성된다. 이 단계는 전술한 단계 S20과 유사할 수 있다. 무작위로 생성된 문자열의 일부는 다른 차일드 암호화 키들을 생성하기 위해 페어런트 암호화 키들을 다른 방식으로 수정하는데 이용될 수 있다. 예를 들어, 페어런트 암호화 키의 특정 부분은 차일드 암호화 키를 생성하기 위해 무작위로 생성된 문자열의 특정 부분으로 대체될 수 있다. 페어런트 암호화 키의 다른 부분은 복수의 차일드 암호화 키들을 생성하기 위해 무작위로 생성된 문자열의 다른 부분으로 대체될 수 있다. 페어런트 암호화 키에서 교체된 부분의 위치와 길이 및 무작위로 생성된 문자열의 대응하는 위치와 길이는 미리 설정된 알고리즘에 따라 결정될 수 있다. 미리 설정된 알고리즘은 생성된 차일드 암호화 키들의 견고성을 향상시키기 위해 무작위 방식으로 교체된 부분의 위치와 길이를 변경할 수 있다. 교체된 부분의 위치와 길이는 차일드 암호화 키들로부터 페어런트 암호화 키를 재구성하는 동안 사용하기 위해, 차일드 암호화 키들을 보유한 파티들 사이에서 공유될 수 있다. 일부 구현에서, 페어런트 암호화 키들의 다른 부분들을 무작위로 생성된 문자열의 부분들로 교체하는 것에 더하여, 교체로부터 생성된 비트 열(bit-string)은 견고성을 향상시키기 위해 미리 설정된 알고리즘에 따라 뒤섞일(scrambled) 수 있다.
1306 이후, 방법(1300)은 중단된다.
방법(1300)의 일부 구현에서, 방법은 N개의 차일드 암호화 키들을 대응하는 파티들에 전송하는 단계; 및 페어런트 암호화 키를 삭제하는 단계를 더 포함한다. 페어런트 암호화 키를 삭제함으로써, 단일 파티가 차일드 암호화 키들의 완전한 세트에서 페어런트 암호화 키를 재구성하지 않고 페어런트 암호화 키를 얻을 수 있는 가능성이 본질적으로 제거되므로, 차일드 암호화 키들을 통해 수립된 공유되는 소유권의 견고성이 향상된다. 또한, 중개자가 차일드 암호화 키들의 생성에 관여된 경우, 중개자가 소유하고 있는 페어런트 암호화 키를 삭제함으로써 중개자의 블록체인 객체에 대한 잠재적인 무단 제어를 막을 수 있다. 일부 구현에서, 방법은 전송된 차일드 암호화 키들이 대응하는 파티들에 의해 수신되었음을 확인하는 단계와 모든 파티들이 차일드 암호화 키들의 수신을 확인했을 때 페어런트 암호화 키를 삭제하는 단계를 더 포함할 수 있다.
일단 차일드 암호화 키들이 생성되어 파티들에 전송되고, 페어런트 암호화 키가 삭제되면, 페어런트 암호화 키와 관련된 블록체인 객체는 임의의 단일 파티에 의해 제어될 수 없다. 블록체인 객체의 모든 공유 또는 공동 소유자가 블록체인 객체를 판매하거나 제어하는데 동의하면, 페어런트 암호화 키는 재구성될 필요가 있다. 페어런트 암호화 키는 재구성 알고리즘에 기초하여 차일드 암호화 키들의 완전한 세트로부터 재구성될 수 있다. 이처럼, 방법(1300)의 일부 구현에서, 방법은 복수의 암호화 키들을 수신하는 단계; 수신된 복수의 암호화 키의 수가 블록체인 객체에 대한 제어를 공유하는 파티들의 수와 동일한지 판단하는 단계; 수신된 복수의 암호화 키가 블록체인 객체에 대한 제어를 공유하는 파티들의 수와 동일하다는 판단에 응답하여, 수신된 복수의 암호화 키에 재구성 알고리즘을 적용함으로써 페어런트 암호화 키를 재구성하는 단계를 더 포함한다. 이 단계는 도 4의 단계 S82와 유사할 수 있다.
재구성 알고리즘은 일반적으로 차일드 암호화 키들을 생성하기 위한 미리 결정된 알고리즘에 기초하여 달라진다. 예를 들어, 라그랑주의 정리 또는 라그랑주 다항식은 페어런트 암호화 키를 재구성하기 위해 모듈로 연산을 사용하여 생성된 차일드 암호화 키들에 적용될 수 있다. 다른 예로서, XOR 기반 알고리즘을 사용하여 생성된 차일드 암호화 키들에 대해, 페어런트 암호화 키는 일련의 XOR 연산을 사용하여 재구성될 수 있다. 특히, XOR 연산은 페어런트 암호화 키를 재구성하기 위해 XOR 차일드 암호화 키와 난수들 사이에서 역순으로 수행될 수 있다. XOR 연산의 교환(commutative) 및 연관(associative) 특성으로 인해, 재구성은 XOR 차일드 암호화 키들과 난수들 사이에서 임의의 순서로 일련의 XOR 연산을 수행함으로써 수행될 수도 있다. 이처럼, 방법(1300)의 일부 구현에서, 방법은 XOR 차일드 암호화 키 및 N-1개의 난수를 포함하는 복수의 암호화 키를 수신하는 단계; 수신된 복수의 암호화 키의 수가 블록체인 객체에 대한 제어를 공유하는 파티들의 수와 동일한지 판단하는 단계; 및 수신된 복수의 암호화 키의 수가 블록체인 객체에 대한 제어를 공유하는 파티들의 수와 동일하다는 판단 응답하여, 일련의 비트단위 XOR 연산을 수행함으로써 페어런트 암호화 키를 재구성하는 단계를 더 포함하고, 일련의 XOR 비트 연산은 XOR 차일드 암호화 키 및 N-1개의 난수 중 하나 사이에 XOR 연산을 수행하는 단계; 및 이전 XOR 연산의 출력과 나머지 난수들 중 하나 사이에서 XOR 연산을 순차적으로 수행하는 단계를 포함한다.
본 명세서에 개시된 방법 및 장치는 여러 파티에 의해 블록체인 객체에 대한 공유 또는 공동 제어를 허용함으로써 블록체인 네트워크를 개선할 수 있다. 이러한 공동 제어 또는 소유권을 통해 블록체인 네트워크는 기존 원장 및 기록 보관 접근법에서의 자산 소유권 패러다임을 지원할 수 있다. 단일한 페어런트 암호화 키에서 차일드 암호화 키들을 생성하고, 차일드 암호화 키들에서 페어런트 암호화 키를 재구성함으로써, 블록체인 아키텍처를 수정하지 않고도 기존의 블록체인 네트워크에서 블록체인 객체에 대한 공유 소유권이 수립될 수 있다. 또한, 차일드 암호화 키들을 생성하기 위해 모듈로 기반 또는 XOR 기반 접근법을 사용하여 페어런트 암호화 키를 수정함으로써, 차일드 암호화 키들이 페어런트 암호화 키의 상당 부분을 포함하지 않는 결과를 갖는다. 이러한 차일드 암호화 키들은, 예를 들어, 페어런트 암호화 키들이 단순히 부분으로 분할되고 공유 소유자들에게 제공되는 접근법에 비해 공유 또는 공동 소유권의 보안을 향상시킨다. 이러한 분할 기반 접근법은 공유 소유자들의 그룹이 페어런트 암호화 키의 많은 부분을 소유하고 있기 때문에, 전체는 아니지만 과반수의 공유 소유자들에 의한 무차별 대입 시도에 취약할 수 있고, 이는 무차별 대입 시도에 관련된 계산 부담을 크게 줄이고, 블록체인 객체에 대한 공유되는 제어를 손상시킨다.
본 명세서에 기술된 실시 예 및 동작은 디지털 전자 회로, 또는 본 명세서에 개시된 구조를 포함하는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 동작은 하나 이상의 컴퓨터 판독 가능 저장 장치에 저장되거나 다른 출처로부터 수신된 데이터에 대한 데이터 프로세싱 장치에 의해 수행되는 동작으로써 구현될 수 있다. 데이터 프로세싱 장치, 컴퓨터 또는 컴퓨팅 장치는, 예로서 전술한 프로그래머블 프로세서, 컴퓨터, 칩 상의 시스템, 또는 복수의 것, 또는 조합을 포함하는, 데이터를 프로세싱하기 위한 장치, 기구 및 기계를 포함할 수 있다. 장치는 특수 목적 논리 회로, 예를 들어, 중앙 프로세싱 유닛(CPU), 필드 프로그래머블 게이트 어레이(FPGA) 또는 주문형 집적 회로(ASIC)를 포함할 수 있다. 장치는 또한 해당 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제(예를 들어 운영 체제 또는 운영 체제들의 조합), 크로스 플랫폼 런타임 환경, 가상 머신 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 웹 서비스, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라와 같은 다양한 컴퓨팅 모델 인프라를 실현할 수 있다.
컴퓨터 프로그램(예를 들어, 프로그램, 소프트웨어, 소프트웨어 애플리케이션, 소프트웨어 모듈, 소프트웨어 유닛, 스크립트 또는 코드로도 알려진)은 컴파일된 또는 해석된 언어, 선언적 또는 절차적 언어를 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있고, 이는 독립형 프로그램 또는 모듈, 컴포넌트, 서브 루틴, 객체 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 유닛을 포함하는 임의의 형태로 배포될 수 있다. 프로그램은 다른 프로그램이나 데이터(예를 들어, 마크 업 언어 문서에 저장된 하나 이상의 스크립트)를 보유하는 파일의 일부, 해당 프로그램 전용의 단일 파일 또는 여러 개의 조정된 파일(예를 들어, 하나 이상의 모듈, 서브 프로그램 또는 코드 부분을 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 지점에 위치하거나 여러 지점에 분산되어 있고 통신 네트워크에 의해 연결된 여러 컴퓨터에서 실행될 수 있다.
컴퓨터 프로그램의 실행을 위한 프로세서는, 예를 들어, 범용 및 특수 목적 마이크로 프로세서, 디지털 컴퓨터의 임의의 종류의 하나 이상의 임의의 프로세서를 포함한다. 일반적으로, 프로세서는 읽기 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소는 명령에 따른 동작을 수행하기 위한 프로세서 및 명령과 데이터를 저장하기 위한 하나 이상의 메모리 장치이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 장치를 포함하거나, 하나 이상의 대용량 저장 장치로부터 데이터를 수신하거나 하나 이상의 대용량 저장 장치에 데이터를 전송하거나, 또는 둘 다를 위해 하나 이상의 대용량 저장 장치와 동작가능하게 결합될 것이다. 컴퓨터는 다른 장치, 예를 들어, 모바일 장치, PDA(Personal Digital Assistant), 게임 콘솔, GPS(Global Positioning System) 수신기 또는 휴대용 저장 장치에 내장될 수 있다. 컴퓨터 프로그램 명령 및 데이터를 저장하기에 적합한 장치는, 예를 들어, 반도체 메모리 장치, 자기 디스크 및 광 자기 디스크를 포함하는 비 휘발성 메모리, 매체 및 메모리 장치를 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다.
모바일 장치는 핸드셋, 사용자 장비(UE), 휴대 전화(예를 들어, 스마트 폰), 태블릿, 웨어러블 장치(예를 들어, 스마트 시계 및 스마트 안경), 인체 내에 이식된 장치(예를 들어, 바이오 센서, 달팽이관 임플란트) 또는 다른 유형의 모바일 장치를 포함할 수 있다. 모바일 장치는 다양한 통신 네트워크(후술함)와 무선으로(예를 들어, 무선 주파수(RF) 신호를 사용하여) 통신할 수 있다. 모바일 장치는 모바일 장치의 현재 환경의 특성을 결정하기 위한 센서를 포함할 수 있다. 센서는 카메라, 마이크, 근접 센서, GPS 센서, 모션 센서, 가속도계, 주변 광 센서, 습기 센서, 자이로스코프, 나침반, 기압계, 지문 센서, 얼굴 인식 시스템, RF 센서(예를 들어, Wi-Fi 및 셀룰러 라디오), 열 센서 또는 기타 유형의 센서를 포함할 수 있다. 예를 들어, 카메라는 이동 가능하거나 고정된 렌즈를 갖는 전방 또는 후방 카메라, 플래시, 이미지 센서 및 이미지 프로세서를 포함할 수 있다. 카메라는 얼굴 및/또는 홍채 인식을 위한 세부 사항을 캡처할 수 있는 메가 픽셀 카메라일 수 있다. 카메라는 데이터 프로세서 및 메모리에 저장되거나 원격으로 액세스되는 인증 정보와 함께 안면 인식 시스템을 형성할 수 있다. 얼굴 인식 시스템 또는 하나 이상의 센서, 예를 들어, 마이크로폰, 모션 센서, 가속도계, GPS 센서 또는 RF 센서는 사용자 인증에 사용될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 실시 예는 디스플레이 장치 및 입력 장치, 예를 들어, 사용자에게 정보를 디스플레이하기 위한 LCD(liquid crystal display) 또는 OLED(organic light-emitting diode)/VR(virtual-reality)/AR(augmented-reality) 디스플레이, 및 사용자가 컴퓨터에 입력을 제공할 수 있는 터치 스크린, 키보드 및 포인팅 장치를 갖는 컴퓨터에 구현될 수 있다. 사용자와의 상호 작용을 제공하도록 다른 종류의 장치가 사용될 수도 있다; 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 감각 피드백, 예를 들어, 시각적 피드백, 청각 피드백 또는 촉각 피드백일 수 있으며; 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는 사용자에 의해 사용되는 장치로 문서를 전송하고 문서를 수신함으로써, 예를 들어, 웹 브라우저에서 받은 요청에 응답하여 웹 페이지를 사용자 클라이언트 장치의 웹 브라우저로 전송함으로써, 사용자와 상호 작용할 수 있다.
실시 예는 유선 또는 무선 디지털 데이터 통신(또는 이들의 조합), 예를 들어, 통신 네트워크의 임의의 형태 또는 매체에 의해 상호 연결된 컴퓨팅 장치를 사용하여 구현될 수 있다. 상호 연결된 장치의 예는 일반적으로 통신 네트워크를 통해 상호 작용하는 서로 떨어진 클라이언트 및 서버이다. 클라이언트, 예를 들어, 모바일 장치는 직접, 서버와 함께 또는 서버를 통해, 예를 들어, 구매, 판매, 지불, 제공, 전송 또는 대출 수행 또는 승인과 같은 거래를 수행할 수 있다. 이러한 거래는 실시간으로 수행될 수 있어서 행동 및 응답이 시간적으로 근접할 수 있고; 예를 들어, 개인이 행동과 반응이 실질적으로 동시에 발생하는 것을 인식하거나, 개인의 행동에 따른 반응의 시간 차가 1 밀리 초(ms) 미만 또는 1 초 미만이거나, 또는 응답이 시스템의 프로세싱 제한을 고려하여 의도적인 지연이 없다.
통신 네트워크의 예는 LAN(local area network), RAN(radio access network), MAN(metropolitan area network) 및 WAN(wide area network)를 포함한다. 통신 네트워크는 인터넷, 다른 통신 네트워크, 또는 통신 네트워크의 조합의 전부 또는 일부를 포함할 수 있다. 정보는 LTE(Long Term Evolution), 5G, IEEE 802, IP(Internet Protocol) 또는 기타 프로토콜 또는 프로토콜 조합을 포함하는 다양한 프로토콜 및 표준에 따른 통신 네트워크에서 전송될 수 있다. 통신 네트워크는 연결된 컴퓨팅 장치들 사이에서 음성, 비디오, 생체 또는 인증 데이터, 또는 다른 정보를 전송할 수 있다.
개별 구현으로 기술된 특징은 단일 구현으로 조합하여 구현될 수 있는 반면, 단일 구현으로 기술된 특징은 다중 구현, 개별적으로 또는 임의의 적절한 하위 조합으로 구현될 수 있다. 특정 순서로 기술되고 청구된 동작은 특정 순서를 요구하거나, 도시된 모든 동작이 수행되어야 한다 고(일부 동작은 선택적일 수 있다) 이해해서는 안된다. 적절한 경우, 멀티태스킹 또는 병렬 프로세싱(또는 멀티태스킹과 병렬 프로세싱의 조합)이 수행될 수 있다.

Claims (11)

  1. 키 데이터를 프로세싱하기 위한 방법에 있어서,
    블록체인 내의 공유되는 객체(shared object)의 원본 키(original key)를 획득하는 단계(S0);
    상기 원본 키를 공유하는 파티(party)들의 수를 결정하는 단계(S0); 및
    상기 원본 키를 공유하는 파티들의 수와 동일한 수의 차일드 키(child key)들을 생성하기 위해, 미리결정된 알고리즘을 사용함으로써 상기 원본 키를 프로세싱하는 단계(S2)로서, 상기 차일드 키들은 상기 동일한 수의 차일드 키들이 획득되었을 때 상기 원본 키를 복원하는데 사용되는 것인, 상기 원본 키를 프로세싱하는 단계(S2)를 포함하는, 키 데이터를 프로세싱하기 위한 방법.
  2. 제1 항에 있어서,
    상기 차일드 키들을 대응하는 객체 공유 파티들에 전송하는 단계(S4); 및
    상기 원본 키를 삭제하는 단계(S6)를 더 포함하는, 키 데이터를 프로세싱하기 위한 방법.
  3. 제1 항 또는 제2 항에 있어서,
    상기 미리결정된 알고리즘은,
    상기 원본 키를 공유하는 파티들의 수와 동일한 수의 차일드 키들을 생성하기 위해, 무작위로 생성된 문자열(character string)을 사용함으로써 상기 원본 키에 연산을 수행하는 것을 포함하는 것인, 키 데이터를 프로세싱하기 위한 방법.
  4. 제3 항에 있어서, 상기 미리결정된 알고리즘은,
    (N+1)개의 공유 파티들이 있을 때, N개의 난수(random number)들 Ri - 상기 Ri는 i번째 난수이고, i∈[1, N]임 - 를 생성하는 것(S200);
    소수(prime number) P - 상기 소수 P는 적어도 상기 원본 키의 값 S 및 상기 난수 Ri 중 어느 하나보다 크고, 상기 Ri는 [0, P-1] 범위임 - 를 결정하는 것(S202); 및
    상기 (N+1)개의 차일드 키들을 획득하기 위해, (S+R1X+R2X2+R3X3+…+RNXN)이 계산된 후 P에 모듈로 연산(modulo operation)을 수행하고, [1, N+1]로부터 X의 값을 선택하는 것(S204) - 여기서, N≥1이고, X 및 N은 정수임 - 을 포함하는 것인, 키 데이터를 프로세싱하기 위한 방법.
  5. 제3 항에 있어서,
    상기 무작위로 생성된 문자열의 하나 이상의 문자는, 상기 차일드 키들을 생성하기 위해, 순차적으로 상기 원본 키에 개별적으로 삽입되는 것인, 키 데이터를 프로세싱하기 위한 방법.
  6. 제1 항 내지 제5 항 중 어느 한 항에 있어서,
    입력된 차일드 키들을 수신하는 단계(S80); 및
    상기 차일드 키들의 수가 대응하는 원본 키를 공유하는 파티들의 수와 동일하다고 결정되었을 때, 상기 대응하는 원본 키를 획득하기 위해, 상기 미리 결정된 알고리즘을 사용함으로써 상기 차일드 키들에 기초하여 상기 원본 키를 계산을 통해 복원하는 단계(S82)를 더 포함하는, 키 데이터를 프로세싱하기 위한 방법.
  7. 제1 항 또는 제2 항에 있어서,
    상기 미리결정된 알고리즘은,
    (N-1)개의 난수들 - 상기 난수들의 이진 길이(binary length)들은 상기 원본 키의 이진 길이와 동일하고, N은 상기 원본 키를 공유하는 파티들의 수임 - 을 생성하는 것(S210);
    배타적 OR 차일드 키를 획득하기 위해, 상기 원본 키 및 상기 (N-1)개의 난수들 각각에 비트단위 배타적 OR 연산(bitwise exclusive OR operation)을 수행하는 것(S214); 및
    상기 배타적 OR 차일드 키 및 상기 (N-1)개의 난수들을 N개의 출력 차일드 키들로서 사용하는 것을 포함하는 것인, 키 데이터를 프로세싱하기 위한 방법.
  8. 제1 항 내지 제7 항 중 어느 한 항에 있어서, 상기 원본 키는 로컬 서버에 의해 생성되거나 원격 서버로부터 수신되는 것인, 키 데이터를 프로세싱하기 위한 방법.
  9. 제1 항 내지 제7 항 중 어느 한 항에 있어서, 상기 블록체인은 블록체인 데이터를 저장하도록 구성된 복수의 블록들을 포함하는 것인, 키 데이터를 프로세싱하기 위한 방법.
  10. 제9 항에 있어서, 상기 블록체인 데이터는 제품 구매(product purchasing) 또는 이전(transferring)을 위해 사용되는 자산(assets)을 포함하는 것인, 키 데이터를 프로세싱하기 위한 방법.
  11. 키 데이터를 프로세싱하기 위한 장치에 있어서, 제1 항 내지 제10 항 중 어느 한 항에 따른 방법을 수행하도록 구성된 복수의 모듈들을 포함하는, 키 데이터를 프로세싱하기 위한 장치.
KR1020197028789A 2017-08-28 2018-08-28 키 데이터 프로세싱 방법 및 장치, 및 서버 KR20190134634A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201710747807.5 2017-08-28
CN201710747807.5A CN107465505B (zh) 2017-08-28 2017-08-28 一种密钥数据处理方法、装置及服务器
PCT/US2018/048370 WO2019046317A1 (en) 2017-08-28 2018-08-28 METHOD AND APPARATUS FOR PROCESSING KEY DATA, AND CUSTOMER

Publications (1)

Publication Number Publication Date
KR20190134634A true KR20190134634A (ko) 2019-12-04

Family

ID=60550666

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197028789A KR20190134634A (ko) 2017-08-28 2018-08-28 키 데이터 프로세싱 방법 및 장치, 및 서버

Country Status (10)

Country Link
US (4) US10873449B2 (ko)
EP (2) EP3879751A1 (ko)
JP (1) JP7118088B2 (ko)
KR (1) KR20190134634A (ko)
CN (2) CN107465505B (ko)
AU (1) AU2018323458C1 (ko)
CA (1) CA3058476A1 (ko)
SG (2) SG10202105050PA (ko)
TW (1) TWI686073B (ko)
WO (1) WO2019046317A1 (ko)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107465505B (zh) 2017-08-28 2021-07-09 创新先进技术有限公司 一种密钥数据处理方法、装置及服务器
JP7289298B2 (ja) 2017-12-15 2023-06-09 エヌチェーン ライセンシング アーゲー 低エントロピーパスワードを用いてブロックチェーントランザクションを許可するためのコンピュータ実装されたシステム及び方法
CN108510270B (zh) * 2018-03-06 2023-03-31 成都零光量子科技有限公司 一种量子安全的移动转账方法
CN108683509B (zh) * 2018-05-15 2021-12-28 北京创世智链信息技术研究院 一种基于区块链的安全交易方法、装置及系统
CN109617690B (zh) * 2018-10-26 2021-04-09 北京新唐思创教育科技有限公司 区块数据处理方法及计算机存储介质
CN109784917B (zh) * 2018-12-13 2020-11-17 如般量子科技有限公司 基于对称密钥池的抗量子计算区块链保密交易系统和方法
CN109684858A (zh) * 2018-12-26 2019-04-26 北京天诚安信科技股份有限公司 一种多用户访问的数据保护方法、设备及介质
CN109768853A (zh) * 2018-12-29 2019-05-17 百富计算机技术(深圳)有限公司 一种密钥组分验证方法、装置及终端设备
CN111385098B (zh) * 2018-12-29 2021-09-07 华为技术有限公司 密钥生成方法和装置
CN109672529A (zh) * 2019-01-07 2019-04-23 苏宁易购集团股份有限公司 一种结合区块链和秘密共享的去匿名化的方法及系统
CN109754254A (zh) * 2019-01-11 2019-05-14 北京阿尔山区块链联盟科技有限公司 密钥管理方法、装置以及电子设备
CN109768863A (zh) * 2019-01-16 2019-05-17 杭州趣链科技有限公司 一种基于椭圆曲线的区块链密钥共享和动态更新方法
CN109787762B (zh) * 2019-02-28 2021-09-21 矩阵元技术(深圳)有限公司 服务器各自生成密钥分量的密钥管理方法、电子设备
CN110198213B (zh) * 2019-04-01 2020-07-03 上海能链众合科技有限公司 一种基于秘密共享随机数共识算法的系统
CN110138559B (zh) * 2019-06-03 2022-02-01 北京智芯微电子科技有限公司 对台区内的终端进行量子密钥分配的方法及系统
GB2585010B (en) * 2019-06-24 2022-07-13 Blockstar Developments Ltd Cryptocurrency key management
US10797887B2 (en) 2019-06-26 2020-10-06 Alibaba Group Holding Limited Confidential blockchain transactions
US10735189B2 (en) 2019-07-01 2020-08-04 Alibaba Group Holding Limited Data exchange for multi-party computation
CN110460435B (zh) * 2019-07-01 2021-01-01 创新先进技术有限公司 数据交互方法、装置、服务器和电子设备
CA3141024A1 (en) * 2019-07-12 2021-01-21 Joshua Vedell Data protection and recovery systems and methods
TWI735028B (zh) * 2019-08-16 2021-08-01 美商維托臣股份有限公司 運用區塊鏈於電子聽診的音訊處理方法及系統
GB2587202A (en) * 2019-09-17 2021-03-24 Nchain Holdings Ltd Allocation of a digital asset using blockchain transactions
CN111177780B (zh) * 2019-12-26 2022-05-20 深圳创客区块链技术有限公司 安全验证方法、装置、终端设备及计算机可读存储介质
CN111062058B (zh) * 2019-12-26 2022-04-15 深圳天玑数据有限公司 基于区块链的密钥对处理方法、装置、终端及可读存储介质
TWI726650B (zh) * 2020-03-11 2021-05-01 宏碁股份有限公司 區塊鏈亂數產生系統及區塊鏈亂數產生方法
CN111314644A (zh) * 2020-03-16 2020-06-19 郭磊 一种基于模拟视频压缩器的视频压缩方法及系统
CN113448541B (zh) * 2020-03-26 2023-08-01 宏碁股份有限公司 区块链随机数生成系统及区块链随机数生成方法
CN111641499A (zh) * 2020-04-13 2020-09-08 山东浪潮质量链科技有限公司 一种基于区块链的私钥还原方法、装置、设备及介质
CN111654466B (zh) * 2020-04-25 2022-03-01 中山佳维电子有限公司 一种用于电子计价秤的数据加密方法
EP4131034B1 (en) * 2020-05-20 2024-07-17 New H3C Technologies Co., Ltd. Method and apparatus for monitoring software license information, and server and storage medium
CN111342966B (zh) * 2020-05-22 2020-08-25 支付宝(杭州)信息技术有限公司 一种数据的存储方法、数据的恢复方法、装置及设备
CN112910870B (zh) * 2021-01-22 2021-11-09 西安电子科技大学 基于区块链的协同隐私计算数据通信方法
CN113283909B (zh) * 2021-06-09 2022-11-08 广东工业大学 一种基于深度学习的以太坊钓鱼账户检测方法
CN113626855B (zh) * 2021-07-15 2024-08-06 杭州玖欣物联科技有限公司 一种基于区块链的数据保护方法
CN113849385B (zh) * 2021-09-10 2024-08-27 深圳前海微众银行股份有限公司 一种日志文件的生成与解析方法及装置
US20230171202A1 (en) * 2021-12-01 2023-06-01 Bank Of America Corporation System and method for performing assessment of electronic resources stored in a distributed network
CN113923058B (zh) * 2021-12-15 2022-02-22 武汉云麒联网科技有限公司 一种非即时能源数据分析的大数据预警方法与装置
CN114418830A (zh) * 2022-01-19 2022-04-29 百度在线网络技术(北京)有限公司 安全计算方法、装置、设备以及存储介质
CN116015981B (zh) * 2023-03-21 2023-06-23 深圳市星火数控技术有限公司 一种缝纫数控文件数据加密方法
CN116383844B (zh) * 2023-03-31 2024-02-09 深圳市博通智能技术有限公司 基于大数据自动化综合管理分析系统、方法、介质及设备

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2176032A1 (en) 1994-01-13 1995-07-20 Bankers Trust Company Cryptographic system and method with key escrow feature
KR19990022451A (ko) 1995-06-05 1999-03-25 피터 씨. 프레운드 다단계 디지털 서명 방법 및 시스템
EP1052611B9 (en) * 1998-01-27 2007-02-14 Nippon Telegraph and Telephone Corporation Data converter and recording medium on which program for executing data conversion is recorded
TW526643B (en) * 1999-05-20 2003-04-01 Ind Tech Res Inst Data access control system and method
JP2001236259A (ja) * 1999-12-13 2001-08-31 Mitsubishi Electric Corp 貸金庫システム
JP2004032307A (ja) * 2002-06-25 2004-01-29 Ntt Docomo Inc コンテンツ配信方法、およびコンテンツ配信サーバ、並びにコンテンツ配信処理プログラムを記録したコンピュータ読み取り可能な記憶媒体、コンテンツ配信処理プログラム
JP2004171148A (ja) * 2002-11-18 2004-06-17 Nec Corp 協賛者募集システム、協賛者募集方法及び協賛者募集プログラム
CN100456669C (zh) * 2003-09-22 2009-01-28 华为技术有限公司 一种进行组密钥分发的方法
CN100531032C (zh) * 2004-05-13 2009-08-19 华为技术有限公司 密钥存储方法
US7624269B2 (en) 2004-07-09 2009-11-24 Voltage Security, Inc. Secure messaging system with derived keys
CA2922200A1 (en) * 2004-10-25 2006-05-04 Security First Corp. Secure data parser method and system
CN100550726C (zh) * 2005-10-19 2009-10-14 华为技术有限公司 一种分布式的动态密钥管理方法
WO2007049267A1 (en) * 2005-10-27 2007-05-03 Nds Limited Network security system
US8989390B2 (en) 2005-12-12 2015-03-24 Qualcomm Incorporated Certify and split system and method for replacing cryptographic keys
US8068606B2 (en) * 2007-08-29 2011-11-29 Red Hat, Inc. Embedding a secret in a bit string for safeguarding the secret
US8694798B2 (en) * 2008-05-22 2014-04-08 Red Hat, Inc. Generating and securing multiple archive keys
BRPI1013062A2 (pt) * 2009-05-19 2016-04-05 Security First Corp sistemas e métodos para proteger dados na nuvem
JP5582143B2 (ja) * 2009-06-19 2014-09-03 日本電気株式会社 秘密情報分散システム,秘密情報分散方法及びプログラム
CN106230872A (zh) * 2009-11-25 2016-12-14 安全第公司 对移动中数据进行保护的系统和方法
US8861727B2 (en) * 2010-05-19 2014-10-14 Cleversafe, Inc. Storage of sensitive data in a dispersed storage network
EP2651072A3 (en) * 2010-09-20 2013-10-23 Security First Corp. Systems and methods for secure data sharing
US8538029B2 (en) * 2011-03-24 2013-09-17 Hewlett-Packard Development Company, L.P. Encryption key fragment distribution
IL216162A0 (en) * 2011-11-06 2012-02-29 Nds Ltd Electronic content distribution based on secret sharing
CN102946310B (zh) * 2012-09-03 2015-07-15 杭州电子科技大学 一种基于(k,w)门限秘密共享方案的指纹模糊金库方法
US9514326B1 (en) * 2013-10-15 2016-12-06 Sandia Corporation Serial interpolation for secure membership testing and matching in a secret-split archive
EP3072256A1 (en) * 2013-11-21 2016-09-28 Koninklijke Philips N.V. System for sharing a cryptographic key
US10423961B1 (en) * 2014-02-19 2019-09-24 Hrl Laboratories, Llc System and method for operating a proactive digital currency ledger
WO2015142765A1 (en) * 2014-03-17 2015-09-24 Coinbase, Inc Bitcoin host computer system
CN103840946B (zh) 2014-03-25 2017-02-08 山东大学 基于(t,n)门限密钥共享和相位恢复算法的图像分级认证方法
US20150304103A1 (en) * 2014-04-22 2015-10-22 Dinect Sarl Method of generating unique and hardly predictable numbers of coupons
CN104022869B (zh) * 2014-06-17 2017-03-29 西安电子科技大学 基于密钥分片的数据细粒度访问控制方法
US9667416B1 (en) * 2014-12-18 2017-05-30 EMC IP Holding Company LLC Protecting master encryption keys in a distributed computing environment
CN104579644A (zh) * 2015-01-12 2015-04-29 浪潮软件集团有限公司 一种密钥生成与恢复方法
US9413735B1 (en) * 2015-01-20 2016-08-09 Ca, Inc. Managing distribution and retrieval of security key fragments among proxy storage devices
CN105871538B (zh) 2015-01-22 2019-04-12 阿里巴巴集团控股有限公司 量子密钥分发系统、量子密钥分发方法及装置
US9641338B2 (en) * 2015-03-12 2017-05-02 Skuchain, Inc. Method and apparatus for providing a universal deterministically reproducible cryptographic key-pair representation for all SKUs, shipping cartons, and items
US9860237B2 (en) * 2015-10-08 2018-01-02 International Business Machines Corporation Password-based authentication in server systems
EP4274154A3 (en) * 2016-02-23 2023-12-20 nChain Licensing AG Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
CN106027234A (zh) * 2016-05-12 2016-10-12 山东渔翁信息技术股份有限公司 一种密钥保护方法
CN106251146B (zh) * 2016-07-21 2018-04-10 恒宝股份有限公司 一种移动支付方法及移动支付系统
CN106027245B (zh) * 2016-07-22 2019-05-07 中国工商银行股份有限公司 密钥共享方法及装置
CN106548345B (zh) * 2016-12-07 2020-08-21 北京信任度科技有限公司 基于密钥分割实现区块链私钥保护的方法及系统
CN106533698A (zh) * 2016-12-15 2017-03-22 北京三未信安科技发展有限公司 一种基于rsa的分布式门限签名方法与系统
US10601585B1 (en) * 2016-12-16 2020-03-24 EMC IP Holding Company LLC Methods and apparatus for blockchain encryption
CN106790253A (zh) * 2017-01-25 2017-05-31 中钞信用卡产业发展有限公司北京智能卡技术研究院 基于区块链的认证方法和装置
GB201705621D0 (en) * 2017-04-07 2017-05-24 Nchain Holdings Ltd Computer-implemented system and method
WO2018229631A1 (en) * 2017-06-14 2018-12-20 nChain Holdings Limited Systems and Methods For Avoiding Or Reducing Cryptographically Stranded Resources On A Blockchain Network
WO2018234991A1 (en) * 2017-06-20 2018-12-27 nChain Holdings Limited SYSTEM AND METHOD FOR DISTRIBUTING MULTITOUR TOKENS USING A BLOCK CHAIN NETWORK
GB201711867D0 (en) * 2017-07-24 2017-09-06 Nchain Holdings Ltd Computer-implemented system and method
CN107465505B (zh) 2017-08-28 2021-07-09 创新先进技术有限公司 一种密钥数据处理方法、装置及服务器

Also Published As

Publication number Publication date
JP7118088B2 (ja) 2022-08-15
US10873449B2 (en) 2020-12-22
US20200127817A1 (en) 2020-04-23
CN113765657B (zh) 2023-10-24
US20200136814A1 (en) 2020-04-30
CN113765657A (zh) 2021-12-07
US20210314147A1 (en) 2021-10-07
AU2018323458B2 (en) 2020-10-29
AU2018323458C1 (en) 2021-05-06
SG11201909012YA (en) 2019-10-30
EP3586473B1 (en) 2021-05-12
WO2019046317A8 (en) 2019-09-12
EP3586473A1 (en) 2020-01-01
CN107465505B (zh) 2021-07-09
AU2018323458A1 (en) 2019-10-17
EP3879751A1 (en) 2021-09-15
US11356250B2 (en) 2022-06-07
CA3058476A1 (en) 2019-03-07
CN107465505A (zh) 2017-12-12
WO2019046317A1 (en) 2019-03-07
JP2020526050A (ja) 2020-08-27
US11095437B2 (en) 2021-08-17
US10797865B2 (en) 2020-10-06
SG10202105050PA (en) 2021-06-29
TW201914255A (zh) 2019-04-01
TWI686073B (zh) 2020-02-21
US20210021409A1 (en) 2021-01-21

Similar Documents

Publication Publication Date Title
US11095437B2 (en) Key data processing method and apparatus, and server
US20190347654A1 (en) Blockchain data processing methods, apparatuses, devices, and systems
US20200036524A1 (en) Method for securing a private key on a mobile device
US11108571B2 (en) Managing communications among consensus nodes and client nodes
KR20210046357A (ko) 블록체인 기반 시스템을 위한 키의 저장 및 복구 방법과 그 장치
AU2019204724C1 (en) Cryptography chip with identity verification
CN110796267A (zh) 数据共享的机器学习方法和机器学习装置
CN110445840B (zh) 一种基于区块链技术的文件存储和读取的方法
US20210141941A1 (en) Fpga hardware-based secure computing method and apparatus
CA3057398A1 (en) Securely performing cryptographic operations
CN114969784A (zh) 一种模型的处理方法、装置及设备
CN118473651A (zh) 应用于多tee的数据处理方法、电子设备及相关装置

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X601 Decision of rejection after re-examination