KR20210066867A - 암호화된 자산 암호화 키 부분의 서브세트를 사용하여 자산 암호화 키의 어셈블리를 허용하는 암호화된 자산 암호화 키 부분 - Google Patents

암호화된 자산 암호화 키 부분의 서브세트를 사용하여 자산 암호화 키의 어셈블리를 허용하는 암호화된 자산 암호화 키 부분 Download PDF

Info

Publication number
KR20210066867A
KR20210066867A KR1020217012378A KR20217012378A KR20210066867A KR 20210066867 A KR20210066867 A KR 20210066867A KR 1020217012378 A KR1020217012378 A KR 1020217012378A KR 20217012378 A KR20217012378 A KR 20217012378A KR 20210066867 A KR20210066867 A KR 20210066867A
Authority
KR
South Korea
Prior art keywords
key
encrypted
public
portions
encryption key
Prior art date
Application number
KR1020217012378A
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 KR20210066867A publication Critical patent/KR20210066867A/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/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3252Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3255Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using group based signatures, e.g. ring or threshold signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
    • 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

Abstract

시스템은 적어도 하나의 프로세서와, 상기 적어도 하나의 프로세서에 통신가능하게 연결된 적어도 하나의 메모리를 포함한다. 적어도 하나의 프로세서는, 적어도 하나의 대칭 키 또는 적어도 하나의 공개 키를 사용하여, 자산 암호화 키 부분들의 적어도 하나의 세트를, 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트로 암호화하도록 구성되고, 각각의 공개 키는 적어도 하나의 공개/개인 키쌍 중 대응되는 하나에 속한다. 상기 자산 암호화 키 부분들의 적어도 하나의 세트 중의 적어도 하나의 서브세트가, 자산 암호화 키를 재구성하는데 사용되고, 자산 암호화 키는 적어도 하나의 자산 키를 사용하여 행위를 수행하는데 사용된다.

Description

암호화된 자산 암호화 키 부분의 서브세트를 사용하여 자산 암호화 키의 어셈블리를 허용하는 암호화된 자산 암호화 키 부분
본 출원은, 전부 본 명세서에 통합되고, 2018년 10월 12일 출원되고 발명의 명칭이 "SPLITTING ASSET KEY ENCRYPTION KEY USED TO ENCRYPT ASSET KEY INTO COMPONENTS ALLOWING ASSEMBLY OF ASSET KEY ENCRYPTION KEY WITH SUBSET OF KEY COMPONENTS TO DECRYPT ENCRYPTED ASSET KEY"인 미국 임시 특허출원 제62/744,886호(대리인 관리번호 270.028USPR)와, 2019년 4월 5일 출원되고 발명의 명칭이 "ENCRYPTED ASSET ENCRYPTION KEY PARTS ALLOWING FOR ASSEMBLY OF AN ASSET ENCRYPTION KEY USING A SUBSET OF THE ENCRYPTED ASSET ENCRYPTION KEY PARTS"인 미국 임시 특허출원 제62/830,272호(대리인 관리번호 270.030USPR)와, 2019년 5월 28일 출원되고 발명의 명칭이 "ENCRYPTED ASSET ENCRYPTION KEY PARTS ALLOWING FOR ASSEMBLY OF AN ASSET ENCRYPTION KEY USING A SUBSET OF THE ENCRYPTED ASSET ENCRYPTION KEY PARTS"인 미국 임시 특허출원 제62/853,231호(대리인 관리번호 270.030USP2)에 대한 우선권을 주장한다.
본 출원은, 전체가 본 명세서에 통합되고, 동일자로 출원되어 계류중이며, 발명의 명칭이 "DOUBLY-ENCRYPTED SECRET PARTS ALLOWING FOR ASSEMBLY OF A SECRET USING A SUBSET OF THE DOUBLY-ENCRYPTED SECRET PARTS"인 미국 특허출원(대리인 관리번호 270.028US01)과 관련된다.
암호화(Cryptography)는 안전하게 데이터를 저장 및 송신하는데 사용될 수 있다. 키들이 데이터를 암호화하고 복호화하거나, 거래를 서명하는데 사용될 수 있다.
시스템은 적어도 하나의 프로세서와, 상기 적어도 하나의 프로세서에 통신가능하게 연결된 적어도 하나의 메모리를 포함한다. 적어도 하나의 프로세서는, 적어도 하나의 대칭 키 또는 적어도 하나의 공개 키를 사용하여, 자산 암호화 키 부분들의 적어도 하나의 세트를, 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트로 암호화하도록 구성되고, 각각의 공개 키는 적어도 하나의 공개/개인 키쌍 중 대응되는 하나에 속한다. 상기 자산 암호화 키 부분들의 적어도 하나의 세트 중의 적어도 하나의 서브세트가, 자산 암호화 키를 재구성하는데 사용되고, 자산 암호화 키는 적어도 하나의 자산 키를 사용하여 행위를 수행하는데 사용된다.
도면들은 오로지 예시적인 실시예를 도시하며, 따라서 범위를 제한하는 것으로 간주되지 않음을 유의하면서, 예시적인 실시예들은 첨부되는 도면을 사용하여 추가적인 구체성 및 세부사항과 함께 설명될 것이다.
도 1은 키들을 안전하게 생성, 스플릿 및/또는 재구성하기 위한 예시적인 시스템의 블록도이다.
도 2는 키들을 안전하게 생성, 스플릿 및/또는 재구성하기 위한 도 1의 시스템에서 사용되는 예시적인 컴퓨팅 장치의 블록도이다.
도 3은, 복수의 개인들/엔티티들에게 제공하기 위해 부분들로 스플릿되는 자산 암호화 키를 사용하여 적어도 하나의 자산 키 (또는 다른 시크릿)을 확보하기 위한 예시적인 시스템/방법을 도시하는 블록도이다.
도 4는 도 3에 도시된 서명 서비스(sign services)와 같은 예시적인 서명 서비스를 도시하는 블록도이다.
도 5a는 도 3 및 4에 도시된 서명 서비스와 같은 예시적인 서명 서비스를 도시하는 블록도이다.
도 5a는 도 3 및 4에 도시된 서명 서비스와 같은 예시적인 다른 서명 서비스를 도시하는 블록도이다.
도 6은 자산 암호화 키를 스플릿하는 방법을 도시하는 흐름도이다.
도 7a는 오프라인 샤미르 부분 생성기(Offline Shamir Part Generator)를 사용하여 시크릿을 생성하는 예시적인 시스템/방법을 도시하는 블록도이다.
도 7b는 샤미르 부분 생성기를 사용하여 시크릿을 생성하는 다른 예시적인 시스템/방법을 도시하는 블록도이다.
도 8은 공개/개인 키쌍의 공개 키 및 SYM2 대칭 키에 의해 암호화된 SYM1 부분들 각각에 대해 QR 코드를 생성하는 예시적인 시스템/방법을 도시하는 블록도이다.
도 9는 온라인 서명 서비스를 위해 키쌍(keypair)을 생성하는 예시적인 시스템/방법을 도시하는 블록도이다.
도 10은 토큰을 발행하는 예시적인 시스템/방법을 도시하는 블록도이다. 예컨대, 발명자들은 이더리움 월렛을 사용하여 토큰을 구매하기 위해 자금을 제공한다.
도 11은 오프라인 서명 서비스를 초기화하기 위한 예시적인 시스템/방법을 도시하는 블록도이다.
도 12a는 수탁자(custodian) 토큰 시크릿을 오프라인 서명 서비스로 임포트(import)하는 예시적인 시스템/방법을 도시하는 블록도이다.
도 12b는 수탁자(custodian) 토큰 시크릿을 오프라인 서명 서비스로 임포트(import)하는 다른 예시적인 시스템/방법을 도시하는 블록도이다.
도 13은 오프라인 서명 서비스를 사용하여 스마트 계약 관리자 계정을 생성하는 예시적인 시스템/방법을 도시하는 블록도이다.
도 14는 오프라인 서명 서비스를 폐쇄하고, 초기 작업이 완료되면 백업을 생성하는 예시적인 시스템/방법을 도시하는 블록도이다.
도 15는 보호될 필요가 있는 잠재적인 사물들을 도시하는 블록도이다.
도 16은 데이터 파일에 관한 더 많은 세부사항을 도시하는 블록도이다.
도 17은 어디서/어떻게 예시적인 시스템/방법이 실행되는지에 관한 더 많은 세부사항을 도시하는 블록도이다.
도 18a는 오프라인 서명 서비스로부터 시크릿을 엑스포트(export)하는 예시적인 시스템/방법을 도시하는 블록도이다.
도 18b는 오프라인 서명 서비스로부터 시크릿을 엑스포트하는 다른 예시적인 시스템/방법을 도시하는 블록도이다.
도 19는 부분 분배기를 사용하여 부분들을 분배하는 예시적인 시스템/방법을 도시하는 블록도이다.
도 20은 시크릿 부분들의 분배를 위해 부분 분배자(part distributor) 및 부분 저장소(repository)를 사용하는 온라인 구현을 위한 예시적인 시스템/방법을 도시하는 블록도이다.
도 21은 부분들의 분배를 위해 부분 분배자 및 부분 저장소를 사용하는 키의 교환의 온라인 구현을 위한 예시적인 시스템/방법을 도시하는 블록도이다.
도 22는 부분들의 분배를 위해 부분 분배자 및 부분 저장소를 사용하는 키의 교환의 온라인 구현을 위한 부분 보안(part security)과 관련된 예시적인 시스템/방법을 도시하는 블록도이다.
도 23는 다수의 분배자 및/또는 부분 보유자들의 다수의 그룹을 갖는 키 교환의 온라인 구현을 위한 예시적인 시스템 및 방법을 도시하는 블록도이다.
도 24a는 시크릿을 재구성하기 위해 오프라인 서명 서비스로 부분들을 반환하는 예시적인 시스템/방법을 도시하는 블록도이다.
도 24b는 시크릿을 재구성하기 위해 오프라인 서명 서비스로 부분들을 반환하는 다른 예시적인 시스템/방법을 도시하는 블록도이다.
도 24c는 시크릿을 재구성하기 위해 오프라인 서명 서비스로 부분들을 반환하는 또 다른 예시적인 시스템/방법을 도시하는 블록도이다.
도 25a는 시크릿을 재구성하기 위해 온라인 서명 서비스로 부분들을 반환하는 예시적인 시스템/방법을 도시하는 블록도이다.
도 25b는 시크릿을 재구성하기 위해 온라인 서명 서비스로 부분들을 반환하는 다른 예시적인 시스템/방법을 도시하는 블록도이다.
도 25c는 시크릿을 재구성하기 위해 온라인 서명 서비스로 부분들을 반환하는 또 다른 예시적인 시스템/방법을 도시하는 블록도이다.
도 26은 오프라인 서명 서비스를 위해 샤미르 부분들을 재랩핑(re-wrapping)하는 예시적인 시스템/방법을 도시하는 블록도이다.
도 27a는 복수의 부분 보유자들에게 안전하게 시크릿 부분들을 분배하는 방법을 도시하는 흐름도이다.
도 27b는 복수의 부분 보유자들에게 안전하게 시크릿 부분들을 분배하는 다른 방법을 도시하는 흐름도이다.
도 28은 이중 암호화된 시크릿 부분을 다시 암호화하는 방법을 도시하는 흐름도이다.
도 29a는 자산 암호화 키를 안전하게 재구성하는 방법을 도시하는 흐름도이다.
도 29b는 자산 암호화 키를 안전하게 재구성하는 다른 방법을 도시하는 흐름도이다.
도 30은 본 명세서의 일부 실시예와 함께 이용될 수 있는 컴퓨터 시스템의 예시를 도시한다.
통상적인 관례에 따라, 다양하게 설명된 특징들은 축적에 맞춰 도시되지 않았고, 예시적인 실시예들과 관련된 구체적인 특징들을 강조하도록 도시되었다.
이하의 상세한 설명에서, 본원의 일부를 형성하고 특정 예시적인 실시예를 도시한 첨부 도면을 참조한다. 그러나, 다른 실시예가 사용될 수 있으며 논리적, 기계적 및 전기적 변경이 이루어질 수 있음을 이해할 수 있을 것이다. 또한, 도면 및 명세서에 제시된 방법은 개별 단계가 수행될 수 있는 순서를 제한하는 것으로 해석되어서는 안된다. 따라서, 이하의 상세한 설명은 제한하기 위한 것이 아니다.
암호 키(cryptographic keys)를 포함하는 키는, 데이터를 암호화하고 데이터를 복호화하며 거래에 서명하는데 사용될 수 있다. 키는, 패스워드(password) 및 시크릿(secret)뿐만 아니라, 개인 키(private key), 공개 키(pubic key), 암호화 키(encryption key), 서명 키(signing key), 및 다른 암호 키(cryptographic key)를 포함할 수 있다(이에 한정되지 않음). 예컨대, 키는 문자 스트링으로 구현될 수 있다.
일부 구성에서, 하나 이상의 대칭 암호화 키(symmetric encryption keys)가 사용될 수 있다. 대칭 암호화 키(또는 단순히 "대칭 키")는 데이터를 암호화 및/또는 복호화하는데 사용될 수 있다. 이는, 동일한 키가 암호화 및 복호화, 예컨대 상이한 블록체인 어드레스, 계정 및/또는 월렛을 위해 하나 이상의 개인 키를 암호화 및 복호화하는데 사용될 수 있기 때문에 "대칭" 암호화/복호화로 지칭된다. 제한 없이, 대칭 키들은 다음과 같은 암호화 중 임의의 것에 따라 동작할 수 있다: Twofish, Serpent, Advanced Encryption Standard(AES), Blowfish, CAST5, Kuznyechik, RC4, Data Encryption Standard(DES), Triple DES(3DES), Skipjack, Safer+/++(Bluetooth), IDEA 및/또는 다른 cypher block coding(CBC) 변형들. 따라서, AES 키들이 하기의 일부 예시에서 사용될 지라도, 임의의 다른 대칭 키들이 대안으로 사용될 수 있다.
일부 구성에서, 비대칭 암호화(asymmetric encryption)가 사용될 수 있다. 개인 키와 대응되는 공개 키를 포함하는 "공개/개인 키쌍"이 비대칭 암호화에서 사용될 수 있다. 개인 키와 공개 키는 대안으로 복호화 개인 키 및 암호화 공개 키로 지칭될 수 있다. 공개 키는, 암호화를 위해 사용되었던 공개 키에 대응하는 개인 키를 사용해야만 복호화될 수 있는 데이터를 암호화하는데 사용될 수 있다. 예시에서, 공개 키는 (예컨대, 고객 월렛의) 거래 어드레스를 생성하는데 사용될 수 있고, 오로지 대응되는 개인 키만이 상기 거래 어드레스로부터의 자금을 소비하는 거래에 서명할 수 있다. 이는, 동일한 키가 암호화 및 복호화 (또는 거래의 서명)에 사용되지 않기 때문에 "비대칭" 암호화/복호화로 지칭될 수 있다. 개인 키와 (때때로 공개 키)를 안전하게 보관하는 것이 일반적으로 바람직하다. 하지만, 키를 안전하게 보관하는 것과 필요할 때 액세스가능하게 보관하는 것 사이에서 종종 트레이드오프(tradeoff)가 존재한다. 제한 없이, 비대칭 키는 하기의 암호화 중 임의의 것에 따라 동작할 수 있다: Rivest-Shamir-Adleman(RSA) 및 Elliptic Curve Cryptography(ECC)(예컨대, Curve25519), Edwards-curve Digital Signature Algorithm(EdDSA)(예컨대, Ed25519) 등.
일부 구성에서, 메시지는 암호화 서명(cryptographically signed)될 수 있다. 예시에서, 본 명세서에 설명되는 선택적인 암호화 서명은, Ed25519를 이용하는 Libsodium 서명을 사용하여 활용될 수 있지만, 다른 프로토콜이 사용될 수 있다. 암호화 서명은, 서명 공개 키 및 서명 개인 키를 갖는 서명 키쌍을 사용할 수 있다. 구체적으로, 개인 서명 키는 (메시지 발신자에서) 우선 메시지를 서명하는다 사용될 수 있고, 이후 메시지의 수신자는, 수신/검증 장치가 이미 서명 공개 키를 인지하고 있음을 가정하면, 메시지가 서명 공개 키의 생성자에 의해 전송되었음을 검증할 수 있다. 즉, 서명은 메시지가 신뢰되는 소스로부터 수신되었음을 검증하는데 사용될 수 있다. 일부 구성에서, 암호화 서명(또는 단순히 "서명")은 대칭 및/또는 비대칭 암호화에 추가하여 사용될 수 있다.
예시에서, 송신 장치는, 수신 장치로 송신하기 이전에 키 부분을 암호화 (또는 이중 암호화)할 수 있고, 이는 송신 장치의 서명 개인 키를 사용하여 키 부분을 서명하는 것을 포함한다. 수신 장치는 이후, 수신 장치가 사전에 인지하고 있는 송신 장치의 서명 공개 키를 사용하여 (암호화된 키 또는 키 부분 상의) 서명을 검증함으로써, 수신된 암호화 (또는 이중 암호화된) 키 부분이 신뢰되는 소스로부터 유래한 것임을 검증할 수 있다. 일부 구성에서, 서명을 적용하는 것은, 적어도 메시지 및 서명 개인 키에 기초하여 (해시(hash) 함수 또는 다른 암호화 함수를 사용하여) 적어도 하나의 해시를 결정하는 것을 포함할 수 있다. 일부 구성에서, 서명을 검증하는 것은 적어도 수신되고, 서명된 메시지 및 서명 공개 키에 기초하여 적어도 하나의 암호화 함수를 적용하는 것을 포함할 수 있다.
일부 구성에서, 동일한 비대칭 키쌍은 (1) 키 또는 키 부분을 암호화 (또는 이중 암호화하거나) 복호화하고; (2) 키 또는 키 부분을 검증하는 것에 사용될 수 있고, 예컨대 검증하는 것에서, 공개 키가 서명을 검증하는데 사용되고, 개인 키가 (수신 장치에서) 복호화하는데 사용되는 동안에 공개 키가 암호화하는데 사용되고 개인 키가 (송신 장치에서) 서명하는데 사용된다. 대안으로, 암호화 키쌍은 서명 키쌍과는 상이할 수 있다. 추가로, 상이한 키 또는 키 부분들은 상이한 부분 보유자들에게 전송되며, 각각의 부분 보유자는, 고유한 암호화 키쌍과 동일하거나 동일하지 않을 수 있는 그들 자신의 고유한 서명 키쌍을 갖는다. 일부 구성에서, (대칭 또는 비대칭) 암호화 및 선택적인 서명은, 예컨대, 함수들의 CryptoBox 라이브러리 또는 Libsodium SealedBox에 대한 단일 함수 호출을 사용하여 함께 적용될 수 있다.
일부 예시에서, 한 명의 사람에게 키에 대한 완전한 액세스를 제공하는 것은 바람직하지 않다. 대신에, 두 명 이상의 사람이 키를 사용하도록 요구하는 것이 바람직할 수 있다. 예시에서, 이는 조직의 다수의 감독자, 관리자, 파트너 및/또는 직원들이 키가 사용될 때 참여하도록 요구하는 경우에 유용할 수 있다. 키는, 부분들의 서브세트가 키를 재구성하는데 사용될 수 있는 다수의 부분들로 스플릿될 수 있다. 예시에서, 키의 컴포넌트들의 생성은, 키의 재구성을 위해 특정 수량의 컴포넌트들을 요구하도록 구성될 수 있다. 예컨대, 특정 키는 N개의 키 컴포넌트들로 스플릿될 수 있어서, N개의 키 컴포넌트들 중 M개가 특정 키를 재구성하는데 요구될 수 있다. 예시에서, N개의 키 컴포넌트들은 다양한 사용자들에게 분배될 수 있다. 예시에서, 키 컴포넌트들은, 알림을 폴링(polling) (또는 풀링(pulling))하거나, 또는 Bluetooth, Wi-Fi 또는 NFC(near field communication) 전송에 의해, 이메일, SMS(Short Message Service), MMS(Multimedia Messaging Service), 인스턴트 메시징, 푸시 알림(가령 푸시 검증 알림) 중 적어도 하나를 사용하여 사용자들의 장치로 전자적으로 분배될 수 있다. 예시에서, 키 컴포넌트들은 스크린에 디스플레이되고, 작성되거나 아니면 (가령, QR 코드, 바코드 등으로) 프린팅을 통해 물리적으로 분배되거나, USB 키/메모리 스틱 (또는 다른 솔리드 스테이트 드라이브), 또는 광학이나 자기 디스크 상에 저장될 수 있다. 예시에서, 키는, 다항식 보간법(polynomial interpolation) 또는 샤미르 시크릿 공유 중 적어도 하나를 통해 키 컴포넌트들의 세트로 스플릿된다. 용어들 "키 컴포넌트", "키 부분" 및 "부분"은 더 큰 암호화 키의 일부분을 지칭하기 위해 본 명세서에서 상호교환적으로 사용된다. 키 컴포넌트들은 키의 스플릿 이후에 암호화 (또는 이중 암호화)될 수 있다.
하나의 구성에서, 자산 키는 큰 잔고를 갖는 수탁자 계정과 연관된 (예컨대, 거래를 서명하기 위한) 개인 키, 특히 높은 값의 데이터를 복호화하기 위한 암호 키 등일 수 있다. 보안 및 유연성을 위한 추가적인 계층이 자산 암호화 키로 자산 키를 암호화함으로써 추가될 수 있고, 이후 암호화 키는 자산 암호화 키 부분들로 스플릿된다. 자산 암호화 키 부분들은, 암호화된 자산 암호화 키 부분들(예컨대, 단일 암호화된 부분들)을 생성하기 위해 대칭 키로 추가적으로 암호화될 수 있다. 선택적으로, 암호화된 자산 암호화 키 부분들은, 이중 암호화된 시크릿 부분들을 형성하도록 공개 키로 더 암호화될 수 있다. 단일 암호화 또는 이중 암호화된 부분들 각각은 사람들의 그룹 중 하나에 제공된다. 암호화된 부분들 중 둘 이상이 동일한 사람이나 엔티티에게 제공될 수 있지만, 전형적으로 각각의 암호화된 부분은 상이한 사람이나 엔티티로 가게 된다. 자산 키를 사용하는 행위를 수행하기 위해, N개의 암호화된 부분들 중 적어도 M개가 수집, 복호화되고, 이후 자산 암호화 키로 재구성되어야 하고, 예컨대, 1<=M<=N이고, 일부 구성에서는 1<M<N이다. 자산 암호화 키는 이후 예컨대, 상이한 블록체인 어드레스, 계정 및/또는 월렛을 위해 하나 이상의 개인 키들을 암호화 또는 복호화하는데 사용될 수 있다.
따라서, 본 시스템 및 방법은 행위를 수행하기 위해 암호 키들 (또는 키 부분들)을 보유한 다수의 개인들/엔티티들을 요구하는 시스템을 향상시킨다. 구체적으로, 본 시스템 및 방법은, N개의 키들/부분들 중 M개가 요구되기 때문에 악의적인 공격의 가능성을 최소화하는 방식으로 상이한 키들/키 부분들을 안전하게 생성 및 분배함으로써 이러한 시스템을 개선하며, 따라서, 적어도 M개의 부분 보유자들사이의 협의(collusion)가, 승인되지 않은 목적을 위해 자산 암호화 키를 재구성하고 (따라서 자산 키에 액세스하기 위해) 요구되면서, 필요할 때는 이들을 액세스가능하게 만들 수 있다.
추가로, 본 시스템 및 방법은, 자산 암호화 키의 다양한 부분들이 부분 보유자들에게 분배되기 전에 (대칭 키 및 선택적으로 공개 키로) 더 암호화되기 때문에 종래의 키 스플릿에 비해 더 안전하다. 따라서, 키 부분들이 인터셉트(intercept)되더라도, 자산 암호화 키는 대칭 키 (및 이중 암호화가 키 부분들에 대해 사용된 경우 공개 키에 대응하는 개인키)와 함께 샤미르 부분들로부터만 재구성될 수 있다. 즉, 이러한 키 부분들의 대칭 암호화 (또는 공개 키를 사용한 이중 암호화)의 추가 계층은, 대칭 키가 부분 보유자가 아니라 오로지 부분 분배자에게만 알려지기 때문에 악의적인 행위자가 자산 암호화 키를 재구성할 가능성을 감소시킨다.
도 1은 키들을 안전하게 생성, 스플릿 및/또는 재구성하기 위한 예시적인 시스템(100)의 블록도이다. 시스템(100)은 컴퓨팅 장치(102) 및 복수의 선택적인 컴퓨팅 장치들(104)(가령, 선택적인 컴퓨팅 장치(104-1) 내지 선택적인 컴퓨팅 장치(104-A))을 포함한다. 컴퓨팅 장치(102) 및 컴퓨팅 장치(104) 각각은 모바일 컴퓨팅 장치, 가령 휴대전화, 태블릿 컴퓨터, 모바일 미디어 장치, 모바일 게임 장치, 랩탑 컴퓨터, 차량 기반 컴퓨터 등; 또는 비-모바일 장치, 가령 전용 단말, 공용 단말, 키오스크, 서버 또는 데스크탑 컴퓨터 중 임의의 것으로 구현될 수 있다. 각각의 컴퓨팅 장치(104)는 적어도 하나의 네트워크(106)(가령 네트워크(106-1) 내지 네트워크(106-A))를 사용하여 컴퓨팅 장치(102)에 통신가능하게 연결된다. 예시에서, 적어도 하나의 네트워크(106)는 적어도 하나의 유선 네트워크 및/또는 적어도 하나의 무선 네트워크를 포함한다. 예시에서, 유선 및 무선 네트워크들의 임의의 조합이 컴퓨팅 장치(104)를 컴퓨팅 장치(102)에 연결하는데 사용된다. 예시에서, 적어도 하나의 네트워크(106)는, 적어도 하나의 LAN(local area network), 적어도 하나의 WAN(wide area network) 또는 인터넷 중 적어도 하나를 포함한다. 예시에서, LAN, WAN 또는 인터넷의 임의의 조합이 적어도 하나의 네트워크(106)로 사용되어 컴퓨팅 장치(104)를 컴퓨팅 장치(102)에 연결한다. 예시에서, 컴퓨팅 장치(102) 및 컴퓨팅 장치(104) 각각은 적어도 하나의 메모리, 적어도 하나의 프로세서, 적어도 하나의 선택적인 네트워크 인터페이스, 적어도 하나의 선택적인 디스플레이 장치, 적어도 하나의 선택적인 입력 장치 및 적어도 하나의 전원을 포함한다.
도 2는 키를 안전하게 생성, 스플릿 및/또는 재구성하기 위한 시스템(100)에서 사용되는 예시적인 컴퓨팅 장치(102)의 블록도이다. 컴퓨팅 장치(102)는 적어도 하나의 메모리(202), 적어도 하나의 프로세서(204), 선택적인 적어도 하나의 네트워크 인터페이스(206), 선택적인 키 생성 모듈(208), 선택적인 키 스플릿 모듈(210), 선택적인 키 재구성 모듈(212), 선택적인 대칭 암호화 모듈(214), 선택적인 대칭 복호화 모듈(216), 선택적인 비대칭 암호화 모듈(218) 및 선택적인 비대칭 복호화 모듈(220)을 포함한다. 추가로, 컴퓨팅 장치(102)는 또한, 다른 다양한 모듈 및/또는 하드웨어, 예컨대 선택적인 디스플레이 장치, 선택적인 입력 장치 및 선택적인 전원을 포함할 수 있다.
예시에서, 적어도 하나의 메모리(202)는 정보를 저장하기 위해 사용되는 임의의 장치, 메커니즘 또는 채워진 데이터 구조(populated data structure)일 수 있다. 예시에서, 적어도 하나의 메모리(202)는 휘발성 메모리, 비휘발성 메모리 및/또는 동적 메모리 중 임의의 타입이거나 이를 포함할 수 있다. 예컨대, 적어도 하나의 메모리(202)는 랜덤 액세스 메모리, 메모리 저장 장치, 광학 메모리 장치, 자성 매체, 플로피 디스크, 자성 테이프, 하드드라이브, EPROMs(erasable programmable read-only memories), EEPROMs(electrically erasable programmable read-only memories), 및/또는 광학 매체(가령, 컴팩트 디스크, DVDs, Blu-ray Discs) 등일 수 있다. 일부 실시예에 따라, 적어도 하나의 메모리(202)는 하나 이상의 디스크 드라이브, 플래시 드라이브, 하나 이상의 데이터베이스, 하나 이상의 테이블, 하나 이상의 파일, 로컬 캐시 메모리, 프로세서 캐시 메모리, 관계형 데이터베이스, 및/또는 플랫 데이터베이스 등을 포함할 수 있다. 추가로, 당업자는 적어도 하나의 메모리(202)로 사용될 수 있는 정보를 저장하기 위한 다수의 추가적인 장치 및 기술들을 인식할 것이다. 적어도 하나의 메모리(202)는 또한, 적어도 하나의 프로세서(204) 상에서 하나 이상의 애플리케이션이나 모듈을 실행하기 위한 명령어를 저장하는데 사용될 수 있다. 예컨대, 적어도 하나의 메모리(202)는, 선택적인 키 생성 모듈(208), 선택적인 키 스플릿 모듈(210) 및 선택적인 키 재구성 모듈(212)의 기능을 실행하기 위해 필요한 명령어들의 전부 또는 일부를 하우징하도록 하나 이상의 예시들에서 사용될 수 있다.
적어도 하나의 프로세서(204)는 임의의 알려진 프로세서, 가령 범용 프로세서(GPP)나 특수목적용(가령, FPGA(field-programmable gate array), ASIC(application-specific integrated circuit) 또는 다른 집적 회로나 회로부), 또는 임의의 프로그램가능한 로직 장치일 수 있다. 예시에서, 적어도 하나의 키 생성 모듈(208), 키 스플릿 모듈(210) 및/또는 키 재구성 모듈(212) 중 임의의 것은 적어도 하나의 프로세서(204) 및 적어도 하나의 메모리(202)에 의해 구현된다.
예시에서, 적어도 하나의 선택적 네트워크 인터페이스(206) 및/또는 적어도 하나의 선택적 네트워크 인터페이스(206)는, 네트워크(가령, 시스템(100)의 적어도 하나의 네트워크들(106) 중 하나)와 통신하기 위한 적어도 하나의 선택적 안테나를 포함하거나 이에 연결된다. 예시에서, 적어도 하나의 선택적 네트워크 인터페이스(206) 및/또는 적어도 하나의 선택적 네트워크 인터페이스(206)는, 이더넷 인터페이스, 셀룰러 RAT(radio access technology) 라디오, Wi-Fi 라디오, 블루투스 라디오 또는 NFC(near field communication) 라디오 중 적어도 하나를 포함한다. 예시에서, 적어도 하나의 선택적 네트워크 인터페이스(206) 및/또는 적어도 하나의 선택적 네트워크 인터페이스(206)는, LAN 또는 WAN을 사용하여 원격 서버와 충분한 속도로 셀룰러 데이터 연결(모바일 인터넷)을 확립하도록 구성된 셀룰러 라디오 액세스 기술(RAT) 라디오를 포함한다. 예시에서, 셀룰러 라디오 액세스 기술은, PCS(Personal Communication Services), SMR(Specialized Mobile Radio) 서비스, ESMR(Enhanced Special Mobile Radio) 서비스, AWS(Advanced Wireless Services), CDMA(Code Division Multiple Access), GSM(Global System for Mobile Communications) 서비스, W-CDMA(Wideband Code Division Multiple Access), UMTS(Universal Mobile Telecommunications System), WiMAX(Worldwide Interoperability for Microwave Access), 3GPP(3rd Generation Partnership Projects) LTE(Long Term Evolution), HSPA(High Speed Packet Access), 3세대(3G), 4세대(4G), 5세대(5G) 등 또는 다른 적절한 통신 서비스나 이들의 조합 중 적어도 하나를 포함한다. 예시에서, 적어도 하나의 선택적 네트워크 인터페이스(206) 및/또는 상기 적어도 하나의 선택적 네트워크 인터페이스(206)는, 광대역 네트워크가 아닌, 원격 서버와 통신하는 무선 로컬 영역 네트워크와 통신하도록 구성된 Wi-Fi(IEEE 802.11) 라디오를 포함한다. 예시에서, 적어도 하나의 선택적 네트워크 인터페이스(206) 및/또는 적어도 하나의 선택적 네트워크 인터페이스(206)는, 매우 가까운 인접 통신으로 제한되는 근거리 무선 통신 장치(near field radio communication device), 가령 패시브 NFC(near field communication) 태그, 액티브 NFC 태그, 패시브 RFID(radio frequency identification) 태그, 액티브 RFID 태그, 근접 카드(proximity card) 또는 다른 개인 영역 네트워크 장치를 포함한다. 예시에서, 동일한 적어도 하나의 선택적 네트워크 인터페이스(206) 및/또는 상기 적어도 하나의 선택적 네트워크 인터페이스(206)는 외부 게이트 디바이스를 이용한 네트워크(가령, NFC 결제 단말)로의 통신을 위해 또한, 사용된다.
예시에서, 선택적인 적어도 하나의 디스플레이 장치는, 발광 다이오드(LED), 액정 크리스탈 디스플레이(LCD), LED 디스플레이, OLED 디스플레이, 전자 잉크 디스플레이, FED(field emission display), SED(surface-conduction electron-emitter display) 또는 플라즈마 디스플레이 중 적어도 하나를 포함한다. 예시에서, 선택적인 적어도 하나의 입력 장치는, 터치스크린(용량성 및 저항성 터치스크린을 포함함), 터치패드, 용량성 버튼, 기계식 버튼, 스위치, 다이얼, 키보드, 마우스, 카메라, 바이오메트릭 센서/스캐너 등 중 적어도 하나를 포함한다. 예시에서, 선택적인 적어도 하나의 디스플레이 장치와 선택적인 적어도 하나의 입력 장치는, 컴퓨팅 장치(102)와의 사용자 상호작용을 위해 인간 기계 인터페이스(human machine interface; HMI)로 조합된다. 예시에서, 적어도 하나의 선택적인 전원은 네트워크 노드(102)의 다양한 컴포넌트에 전력을 제공하는데 사용된다.
컴퓨팅 장치(102)의 적어도 하나의 프로세서(204)는 적어도 하나의 키, 예컨대 자산 키 및/또는 자산 암호화 키를 안전하게 생성하도록 구성된다. 예시에서, 이는 키 생성 모듈(208)에서 구현된다. 컴퓨팅 장치(102)의 적어도 하나의 프로세서(204)는 적어도 하나의 키를 무작위로 안전하게 생성하도록 구성될 수 있다. 예시에서, 컴퓨팅 장치(102)의 적어도 하나의 프로세서(204)는 상기 적어도 하나의 키를 안전하게 생성하기 위해 키 생성기를 구현할 수 있다. 예시에서, 키 생성기는, LFSR(linear feedback shift register), 솔리테어 암호(Solitaire cipher) 및/또는 폰티펙스 암호(Pontifex cipher) 중 적어도 하나를 포함한다. 예시에서, 컴퓨팅 장치(102)의 적어도 하나의 프로세서(204)는, 다수의 의사 랜덤(pseudo-random) 특징을 갖는 시퀀스를 생성함으로써 적어도 하나의 키를 생성하도록 구성된다. 예시에서, 적어도 하나의 키는 데이터를 암호화 및/또는 복호화하는데 사용될 수 있다.
적어도 하나의 프로세서(204)는 또한, 키를 부분들로 스플릿하도록 구성되고, 여기서 부분들의 적어도 하나의 서브세트가 키를 재구성하는데 사용될 수 있다. 예시에서, 이는 키 스플릿 모듈(210)에서 구현된다. 예시에서, 키를 부분들로 스플릿하는 것은, 부분들의 특정 수량이 키를 재구성하는데 필요할 수 있도록 구성될 수 있다. 예컨대, 특정 키는 N개의 부분들로 스플릿될 수 있어서, N개의 부분들 중 M개가 특정 키를 재구성하는데 필요하도록 한다. 예시에서, 부분들은 다양한 사용자들에게 분배된다. 예시에서, 부분들은, 적어도 하나의 네트워크 인터페이스(206)를 사용하여, 가령 이메일, 단문 메시지 서비스(SMS), MMS(Multimedia Messaging Service), 인스턴트 메시징, 푸시 알림 또는 푸시 확인 알림 중 적어도 하나에 의해, 사용자 장치들로 전자적으로 분배될 수 있다. 예시에서, 키는 다항식 보간법 또는 샤미르 시크릿 공유 중 적어도 하나를 통해 부분들로 스플릿된다. 예시에서, 부분들은, 디스플레이되거나, 프린트되거나 그렇지 않다면 사용자에게 제공된 매체 상에 고정되어서 이후 키 컴포넌트를 그들의 대응되는 컴퓨팅 장치(104)에 입력할 수 있다. 예시에서, 보안 및 유연성을 위한 추가적인 계층이, 자산 암호화 키 부분들의 서브세트가 자산 암호화 키를 재구성하는데 필요하도록 자산 암호화 키를 스플릿함으로써 추가될 수 있다.
예시에서, 적어도 하나의 프로세서(204)는 대칭 암호화를 키 또는 키 부분들에 적용하도록 구성된다. 예시에서, 이 대칭 암호화는 대칭 암호화 모듈(214)에서 구현된다. 예시에서, AES 키가 자산 암호화 키 부분들을, 암호화된 자산 암호화 키 부분들로 암호화하는데 사용된다. 예시에서, 대칭 암호화는, 각각의 자산 암호화 키 부분에 적어도 하나의 배타적 또는 (XOR) 연산을 적용하여, 발생되는 암호화된 자산 암호화 키 부분이 각각의 비트 위치에 1을 포함하게 하고, 여기서 자산 암호화 키 부분 및 AES 키 둘 모두에서의 대응되는 비트 위치의 비트들은 서로 다르고, 암호화된 자산 암호화 키 부분은 각각의 비트 위치에 0을 포함하며, 여기서 자산 암호화 키 부분 및 AES 키 둘 모두에서의 대응되는 비트 위치의 비트들은 동일하다.
복수의 AES 키들이 각각의 자산 암호화 키 부분을 암호화하는데 사용되는 예시에서, 적어도 하나의 프로세서(204)는 각각의 자산 암호화 키 부분 및 복수의 AES 키들 중의 첫번째 키 사이에 제1 배타적 또는 (XOR)을 적용하고, 이후 제1 XOR의 결과와, 복수의 AES 키들 중의 두번째 키 사이에 제2 배타적 또는 (XOR)을 적용하는 등을 복수의 AES 키들 전부가 사용될 때까지 수행하도록 구성된다. 예시에서, 오로지 하나의 대칭 키가 자산 암호화 키 부분들을 암호화하기 위해 적어도 하나의 프로세서(204)에 의해 사용되며, 자산 암호화 키는 그 자신이 대칭 키일 수 있다.
선택적으로, 적어도 하나의 프로세서(204)는 키 또는 키 부분들에 비대칭 암호화를 적용하도록 구성된다. 예시에서, 이 비대칭 암호화는 비대칭 암호화 모듈(218)에서 구현된다. 예시에서, 비대칭 암호화 모듈(218)은 부분 보유자들에게 분배하기 전에 암호화된 자산 암호화 키 부분들을 이중 암호화된 자산 암호화 키 부분들로 공개 키 암호화(public-key encrypt)하기 위해, (키쌍의 개인 키에 대응하는) 공개 키를 사용할 수 있다. 예시에서, 키쌍의 공개 키는 암호화에 사용되며, 이후 오로지 키쌍의 대응되는 개인 키만이 복호화에 사용될 수 있다.
예시에서, 컴퓨팅 장치(102)의 적어도 하나의 프로세서(204)는 또한, 부분들의 서브세트, 예컨대 N개의 부분들 중 M개로부터 키를 재구성하도록 구성된다. 예시에서, 이는 키 재구성 모듈(212)에서 구현된다. 예시에서, 컴퓨팅 장치(102)는 부분 보유자들로부터 QR 코드들(물리적으로 프린트되거나 전자적으로 디스플레이됨)을 스캔함으로써 부분들(예컨대, 대칭 및 비대칭 암호화를 사용하여 대칭적으로 암호화되거나 이중 암호화됨)을 수신할 수 있다. 대안으로, 부분들은 적어도 하나의 네트워크 인터페이스(206)를 사용하여, 가령 이메일, 단문 메시지 서비스(SMS), MMS, 인스턴트 메시징, 푸시 알림 또는 푸시 확인 알림 중 적어도 하나에 의해, 컴퓨팅 장치(102)에서 수신될 수 있다.
예시에서, 적어도 하나의 프로세서(204)는 대칭 암호화된 키 또는 키 부분들을 복호화하도록 구성된다. 예시에서, 이 대칭 복호화는 대칭 복호화 모듈(216)에서, 예컨대 대칭 암호화 모듈(214)에 있는 대칭 암호화를 위해 사용된 것과 동일한 대칭 키를 사용하여 구현된다. 예시에서, 암호화에 사용된 것과 (동일한) AES 키가 암호화된 자산 암호화 키 부분들을 자산 암호화 키 부분들로 복호화하는데 또한, 사용된다. 예시에서, AES 복호화는, 각각의 암호화된 자산 암호화 키에 적어도 하나의 배타적 또는 (XOR) 연산을 적용하는 것을 포함하여, 발생되는 자산 암호화 키 부분이 각각의 비트 위치에 하나의 1을 포함하게 하고, 이 비트 위치에서 암호화된 자산 암호화 키 부분 및 AES 키 둘 모두에서의 대응되는 비트 위치의 비트들은 상이하며, 자산 암호화 키 부분은 각각의 비트 위치에 하나의 0을 포함하고, 이 비트 위치에서 암호화된 자산 암호화 키 부분과 AES 키 둘 모두에서의 대응되는 비트 위치의 비트들은 동일하다.
선택적으로, 적어도 하나의 프로세서(204)는 개인 키를 사용하여 공개 키 암호화된 키나 키 부분들을 복호화하도록 구성된다. 예시에서, 이 비대칭 복호화는, 예컨대 비대칭 암호화 모듈에서 비대칭 암호화를 위해 사용된 공개 키에 대응되는 개인 키를 사용하여 비대칭 복호화 모듈(220)에서 구현된다. 예시에서, 개인 키는 이중 암호화된 자산 암호화 키 부분들을 암호화된 자산 암호화 키 부분들로 복호화하는데 사용된다.
추가로, 도면들에서 암호화 모듈(217)이 도시되는 경우, 이는 구성에 따라 대칭 암호화 모듈(214) 또는 비대칭 암호화 모듈(28)로 동작하도록 구성될 수 있다. 유사하게, 도면에서 복호화 모듈(219)이 도시되는 경우, 이는 구성에 따라 대칭 복호화 모듈(216) 또는 비대칭 복호화 모듈(220)로 동작하도록 구성될 수 있다. 암호화 모듈(217)이 도시되는 경우, 암호화 모듈(217)은, 키들이 도시되지 않다 하더라도 그것이 수행하는 대칭 또는 비대칭 암호화를 위해 필요한 적절한 대칭 또는 비대칭 키들에 대한 액세스를 갖는 것으로 가정한다. 복호화 모듈(219)이 도시되는 경우, 복호화 모듈(219)은, 키들이 도시되지 않더라도 그것이 수행하는 대칭 또는 비대칭 복호화를 위해 필요한 적절한 대칭 또는 비대칭 키들에 대한 액세스를 갖는 것으로 가정한다.
예시에서, 추가적인 보안 계층이, 자산 키 자체를 변경할 필요 없이 부분들의 일부가 분실, 손실(compromised) 등이 되는 상황에서 도움이 될 수 있도록 다양한 부분 보유자들에게 자산 암호화 키 부분들을 분배함으로써 제공된다. 예시에서, 키 부분(들)이 분실되거나, 손실 등이 되거나, 키 부분들을 갖는 개인들의 그룹이 변경되는 경우(가령, 임원, 다른 직원이나 이사 등이 퇴사하거나 그들의 보직을 변경하는 경우) 개인들에게 제공될 새로운 자산 암호화 키 부분들을 생성하는 것이 합리적일 것이다. 이러한 경우, 충분한 수량의 부분들이 적어도 하나의 프로세서(204)에서 다시 수신되고, 적어도 하나의 프로세서(204)는 자산 암호화 키를 재생성하도록 구성된다. 하나 이상의 새로운 자산 암호화 키 부분들이, 부분 보유자들에게 분배되기 전에 생성되고, 대칭적으로 암호화되고, (선택적으로 공개 키 암호화된다).
도 3은 복수의 개인들/엔티티들(부분 보유자들)에게 제공될 부분들로 스플릿되는 자산 암호화 키를 사용하여 적어도 하나의 자산 키 (또는 다른 시크릿)을 확보하기 위한 예시적인 시스템/방법(300)을 도시하는 블록도이며, 상기 부분들의 서브세트는, 자산 키에 대한 액세스를 획득하는데 사용될 수 있는 자산 암호화 키(또는 단순히 "시크릿"이나 "암호화 키")를 재구성하는데 사용될 수 있다. 키에 대한 문맥에서 용어 "부분(part)" 및 "컴포넌트"는 키의 일부분을 지칭하기 위해 본 명세서에서 상호교환가능하게 사용될 수 있다.
자산 키는, 높은 잔고를 갖는 수탁자 계정과 연관된 (예컨대, 거래를 서명하기 위한) 개인 키, 특히 높은 가치의 데이터를 복호화하기 위한 암호 키(cryptographic key)일 수 있다. 따라서, 시스템/방법(300)은 자산 키를 안전하게 보관하는데 사용될 수 있는 한편, 인가된 개인들에게 액세스를 여전히 제공하며, 예컨대 N명의 개인들 중 M명이 행위를 할 것을 요구한다(예컨대, 여기서 M은 N보다 작거나 같다).
도 3의 시스템/방법은 다음과 같은 것들을 포함하지만 이들로 제한되지 않는 다수의 목표를 달성하도록 설계된다. 첫째로, 모든 시크릿은 예컨대, 디스크 상에 또는 전송 동안에 암호화되는 것이 바람직하다. 이상적으로, 시크릿은 공개 키 암호화될 것이다. 시크릿을 공개 키 암호화하는 것이 가능하지 않은 경우, 시크릿은 패스워드로 암호화되어야 한다. 둘째로, 공개 키 암호화가 페이로드의 발신자 및 수신자를 식별하는데 사용되는 것이 바람직하다. 오로지 의도된 수신자만이 메시지를 복호화할 수 있다. 수신자는 메시지가 예측된 발신자로부터 온 것임을 인증할 수 있다. 셋째로, 중요한 시크릿들을, 이들을 필요로 하는 서비스로부터 분리시키는 것이 바람직하다. 넷째로, 오프라인 시스템과의 상호작용을 최소화하는 것이 바람직하다. 예컨대, (USB 디바이스를 플러그인하는 것 보다는) 시스템 안 밖으로 데이터를 전달하기 위해 QR 코드들을 사용하는 것이 선호될 수 있다. 플랫폼의 보안 사용자 경험이 너무 번거로운 경우, 관리 상의 편의를 위해 회피될 수 있으며, 이는 바람직하지 않다.
예시적인 시스템/방법(300)에 대하여 4개의 주요 부분들이 있으며, 이들은 (1) 프로세스를 구성/결정하는 것(302); (2) 시크릿을 생성하는 것(304); (3) 토큰 발행(306); 및 (4) 오프라인 서명 서비스(308)를 포함한다. 요소들(302-908) 각각은 단계, 컴퓨팅 장치(102) 및/또는 단계를 수행하는 사람/사람들을 표현할 수 있다. 컴퓨팅 장치(102)가 단계를 수행하는데 사용된다면, 단계를 수행하도록 구성된 컴퓨팅 장치(102)에 적어도 하나의 프로세서를 포함할 수 있다.
본 명세서의 설명은 자산 암호화 키(들)을 부분들로 스플릿하는 것에 초점이 맞춰져 있지만, 시크릿이 자산 암호화 키 또는 그 외의 다른 것인지에 무관하게 유사한 시스템/방법이 다른 시크릿 (특히 중요한 것들)을 스플릿 및/또는 분배하는데 사용될 수 있다. 게다가, 자산 암호화 키(들)은 자산 키(들)을 보호하기 위해 본 명세서에 설명되는 바와 같이 스플릿 및 암호화될 수 있는 한편, 본 시스템 및 방법은 또한, 부분들로 스플릿되고 복수의 부분 보유자들에게 분배되는 임의의 시크릿을 보다 일반적으로 보호하는데 사용될 수 있다. 예컨대, 스플릿되는 시크릿은, 부분들로 스플릿되고, 이후 대칭 키로 암호화되며, 공개 키 암호를 통해 다수의 부분 보유자들에게 분배되는 중요한 암호, 계정/라우팅 번호 등일 수 있다. 즉, 재구성된 시크릿이 시스템 내의 다른 암호화를 위해 사용된 대칭 키인 경우가 아니라, 부분들로부터 시크릿을 복호화 및 재구성하는 것은 툴의 최종 목표일 수 있다. 예시에서, 본 명세서에 설명된 이중 계층 암호화는 부분들을 보호하는데 선택적으로 사용될 수 있다.
도 3의 구성/결정하는 것(302)을 참조하면, 다양한 결정이, 시크릿(예컨대, 자산 암호화 키)을 부분들로 스플릿하거나, 시크릿 부분들을 암호화하거나, 및/또는 시크릿 부분들을 분배하기 위해 이루어질 수 있다. 이러한 결정은: (1) 각각의 시크릿이 얼마나 많은 부분들로 스플릿될 것인지; (2) 부분 보유자들의 신원; 및 (3) 중요한 패스워드를 누가 수신 및/또는 유지하는지를 결정하는 것을 포함할 수 있다. 예시에서, 하기의 내용이 예시적인 시스템/방법(300)을 구현하는데 사용될 수 있다: (1) 데이터 전송 및/또는 백업을 위한 휴대용 저장 드라이브(예컨대, USB 또는 다른 플래시 메모리); (2) 비록, QR 코드나 다른 코드/데이터를 캡처/스캔하기 위한 웹캠이나 다른 이미징 장치를 가질 수 있지만, (가령 Wi-Fi 및/또는 블루투스와 같은 무선 통신이 없거나 및/또는 암호화된 디스크를 포함하는 등의 에어갭(air gapped) 상태인) 보안된 랩탑; (3) QR 코드 출력물을 위한 안전한 저장소(가령, 부분 보유자들이 소유하는 동안 개봉되지 않았음을 확인하도록 부분 보유자들에게 제공되고, 이후 금고와 같은 부분 보유자가 제어하는 안전한 위치에 배치될 수 있는, 변조 추적 증거 가방(tamper tracking evidence bags)); (4) 랩탑 및 휴대용 저장 드라이브를 위한 안전한 저장소(가령, 금고); 및/또는 (5) QR 코드 출력물을 프린트하기 위해 필요한 프린터(이는 키 부분들을 보유한 프린터 메모리를 파괴하기 위해 QR 코드들이 인쇄된 이후 파괴될 수 있음).
도 3의 시크릿 생성(304)은 예컨대, 샤미르 부분 생성기를 구현하는 적어도 하나의 프로세서(204)를 갖는 컴퓨팅 장치(102)를 사용하여, 안전하게 시크릿을 생성하는 것을 포함할 수 있다. 부분 생성기는 시크릿(예컨대, 자산 암호화 키, 가령 후술될 SYM1 키), 대칭 키(가령, 후술될 제2 대칭 키 SYM2, 대안으로 "암호화 키"로도 지칭될 수 있음), 및/또는 오프라인 서비스 키쌍(개인 키와 공개 키를 포함함)을 생성할 수 있다. 자산 암호화 키는 후속하여 부분들(샤미르 부분들 SYM1 부분들 1-N)로 스플릿될 수 있다. 각각의 자산 암호화 키 부분(예컨대, SYM1 부분)은 대칭 키 SYM2를 사용하여 암호화된다. 이 SYM2 대칭 키는, 각각의 SYM1 부분에 대해 동일할 수 있거나, 다양한 SYM1 부분들에 대해 상이할 수 있다. 패스워드 암호화는 또한, SYM2 대칭 키 및/또는 오프라인 서명 서비스 키쌍의 개인 키에 적용될 수 있다. 오프라인 서명 서비스 키쌍의 공개 키는 SYM2 암호화된 SYM1 부분들 각각을 암호화하는데 사용된다.
예시에서, SYM2 암호화된 SYM1 부분들(암호화된 자산 암호화 키 부분들)은, 예컨대 QR 코드 출력물로 프린트되어서 부분 보유자들에게 분배될 수 있다. 추가로 또는 대안으로, SYM2 암호화된 SYM1 부분들은, 오프라인 서명 서비스 키쌍의 공개 키를 사용하여 더 암호화될 수 있고, 이렇게 이중 암호화된 시크릿 부분들은, 예컨대 QR 코드 출력물로 프린트되어서 부분 보유자들에게 분배된다.
도 3의 토큰 발행(306)을 참조하면, 토큰 발행(306)은: (1) 수탁자(들), 브로커 딜러(들) 및/또는 수탁자 브로커 딜러 계정에 대한 이더리움 어드레스를 생성하는 것; (2) 투자자 어드레스에 대해 HD(Hierarchal Deterministic) 키를 생성하는 것(이더리움 어드레스가 투자자들을 위해 생성됨); (3) 스마트 계약을 전개하고 투자자 어드레스로 토큰들을 발행하는 것을 포함할 수 있다. 예시에서, 관리자 어드레스가 오프라인 서명 서비스(308)에서 생성될 수 있다. 예시에서, 계약의 소유권은 관리자 어드레스로 이전될 수 있다.
본 시스템 및 방법은, 여러 다른 것들 중에서도 시크릿 부분들로부터 자산 암호화 키들을 재구성하기 위해 오프라인 서명 서비스(308) 및/또는 온라인 서명 서비스를 이용할 수 있다. 오프라인 서명 서비스는 오프라인 경로를 통해, 예컨대 프린트된 (또는 전자적으로 디스플레이된) QR 코드를 스캔하거나 휴대용 저장 드라이브를 판독함으로써 시크릿 부분들을 수신할 수 있다. 반면에, 온라인 서명 서비스는 네트워크 연결, 예컨대 인터넷을 통해 시크릿 부분들을 수신할 수 있다.
오프라인 서명 서비스(308)는 적어도 하나의 프로세서를 갖는 컴퓨팅 장치(102)(예컨대, 안전한 에어-갭 상태의 랩탑) 상에서 구현될 수 있다. 다양한 행위들이 오프라인 서명 서비스(308)와 관련하여 취해질 수 있다. 예컨대, 하기의 정보가 제한 없이 오프라인 서명 서비스(308)로 로딩될 수 있다: 샤미르 부분 구성(가령, 역할, 이메일 등); 오프라인 서명 서비스 키쌍의 패스워드가 보호된 개인 키 및 오프라인 서명 서비스를 위한 SYM2 키(들); 및/또는 온라인 서명 서비스 키쌍의 공개 키가 제공된다. 다양한 정보는, 예컨대 에어-갭 상태의 랩탑에 직접 플러그되는 휴대용 저장 드라이브를 통해, 오프라인 서명 서비스(308)로 로딩될 수 있다. 에어-갭 상태의 랩탑은 패스워드가 보호될 수 있다. 온라인 서명 서비스 키쌍의 공개 키 및/또는 오프라인 서명 서비스를 위한 SYM2 키들 및 오프라인 서명 서비스 키쌍의 패스워드가 보호된 개인 키는, 오프라인 서명 서비스(308)를 구현하는 안전한 에어-갭 상태의 랩탑 상에 영구적인 데이터로 저장될 수 있다. (304에서 생성된) 샤미르 부분들은, 예컨대 부분 보유자들에게 사전에 제공된 QR 코드를 스캔함으로써, 부분 보유자들에게 수락될 수 있다. 하나의 구성에서, 오프라인 서명 서비스(308)는, 비대칭(예컨대, 공개 키) 암호화를 제거하기 위해 오프라인 서명 서비스 키쌍의 개인 키를 사용하고, 충분한 샤미르 부분들이 SYM1 자산 암호화 키를 재구성하는데 수신될 때까지 랩탑의 메모리에 SYM2 암호화된 SYM1 부분들 (또는 이중 암호화된 시크릿 부분들)을 저장한다.
예시에서, 오프라인 서명 서비스(308)는 또한, 후술할 스마트 계약 관리자 계정을 생성할 수 있다. 예시에서, 오프라인 서명 서비스(308)는, 시스템/방법(300)이 초기화되고 구성된 이후 종료(shut down)될 수 있다. 오프라인 서명 서비스(308)를 종료시키는 동안에, 랩탑 상의 영구적인 데이터가 백업되고, 가령, 금고, 안전한 보관 박스(safety deposit boxes), 또는 잠금 박스(lock box)와 같은 안전한 위치에 분리되어 저장될 수 있다.
도 4는, 예컨대, 도 3에 도시된 오프라인 서명 서비스(308)와 유사한 예시적인 서명 서비스(408)를 도시하는 블록도이다. 서명 서비스(408)는 다양한 키들, 예컨대, SYM2 암호화된 SYM1 부분들(암호화된 자산 암호화 키 부분들), 이중 암호화된 시크릿 부분들, 서명 서비스(408) 키쌍의 공개 키 및/또는 서명 서비스(408) 키쌍의 개인 키 등을 보유할 수 있다. 서명 서비스(408)는, 서비스로서 거래들(예컨대, 인출 또는 이체(410))에 서명할 수 있다. 예컨대, 서명 서비스(408)는 서명되지 않은 거래(412)를 수신하고, 블록체인(416), 예컨대 이더리움, 비트코인, 레이븐코인(Ravencoin) 등에 기록하기 위해 서명된 거래(414)를 전송할 수 있다.
유사한 서명 서비스 구현들이 핫 및 콜드 월렛(hot and cold wallet) 시크릿 저장소를 위해 사용될 수 있다. 핫 월렛과 콜드 월렛 모두가 보호되고 안전하지만, 핫 월렛은 빈번하게 액세스되지만, 반드시 네트워크 인터페이스(들)을 통해서만 이용가능해야 한다. 반면에, 콜드 월렛은 덜 빈번하게 액세스되고 네트워크 인터페이스(들)을 통해서는 이용가능하지 않다.
도 5a는 예컨대, 도 3-4에 도시된 오프라인 서명 서비스(308)와 유사한, 예시적인 서명 서비스(408)를 도시하는 블록도이다. 자산(들)에 대한 시크릿 키(들)을 보호하기 위해, 키(들) 자체가 부분들(가령, 샤미르 시크릿 부분들)로 스플릿되지 않는다. 그 대신, 키(들)은 다른 암호화 키(들)(가령 대칭 키)로 암호화되고(518), 암호화 키(들) 및 암호화된 키(들)은 키 컴포넌트들의 세트(들)을 형성하기 위해 (키 스플릿 모듈(210)에 의해) 부분들(가령 샤미르 시크릿 부분들)로 스플릿된다. 키 컴포넌트들의 각각의 세트(들)은 각각의 부분 보유자에게 제공된다. 예시에서, 키 컴포넌트들의 세트(들) 전부 중의 하나의 서브세트가 암호화 키(들)을 재구성하는데 사용될 수 있다.
도 5b는 예컨대, 도 3-4에 도시된 오프라인 서명 서비스(308)와 유사한 다른 예시적인 서명 서비스(408)를 도시하는 블록도이다. 도 5a와는 대조적으로, 자산 암호화 키(SYM1 키)는, 키(수행되는 암호화 타입에 따라 대칭 키거나 비대칭 키임)로 암호화 모듈(217)에서 암호화하기 전에 (키 스플릿 모듈(210)에 의해) 자산 암호화 키 부분들(가령, 샤미르 시크릿 부분들)로 스플릿될 수 있다. 그 결과는, 암호화된 자산 암호화 키 부분들 (또는 단일 암호화된 시크릿 부분들)일 수 있고, 이 부분들은, 이중 암호화된 시크릿 부분들을 생성하기 위해 서명 서비스 키쌍의 공개 키(미도시)로 선택적으로 더 암호화될 수 있다. 각각의 암호화된 자산 암호화 키 부분 (또는 이중 암호화된 시크릿 부분)은 각각의 부분 보유자에게 제공될 수 있다. 예시에서, 부분들의 서브세트가, 모든 부분들을 요구하지 않고 자산 암호화 키를 재구성하는데 사용될 수 있다.
도 6은 자산 암호화 키를 스프릿하기 위한 방법(600)을 도시하는 흐름도이다. 방법(600)은 각각 적어도 하나의 프로세서로 구현되는 적어도 하나의 컴퓨팅 장치(102)에 의해 수행될 수 있다. 예컨대, 방법(600)은 오프라인 서명 서비스(308)를 구현하는 컴퓨팅 장치(102)에 의해 수행될 수 있다. 따라서, 방법(600)은 도 3에 도시된 오프라인 서명 서비스(308) 및/또는 시크릿 생성(304)을 적어도 부분적으로 구현할 수 있다.
방법(600)은 적어도 하나의 프로세서가 자산 암호화 키를 자산 암호화 키 부분들의 적어도 하나의 세트로 스플릿하는 단계(602)에서 시작된다. 스플릿하는 것은 다항식 보간법(polynomial interpolation) 또는 샤미르 시크릿 공유 중 적어도 하나를 포함할 수 있다.
(예컨대, N개의 자산 암호화 키 부분들 중 적어도 M개를 사용하여) 재구성되는 경우, 자산 암호화 키는 자산 키 (또는 복수의 자산 키들)로의 액세스를 획득하기 위해 사용될 수 있다. 각각의 자산 키는, 예컨대 사람이나 조직에게 고도로 중요한 암호(예컨대, 개인) 키일 수 있다. 예시에서, 각각의 자산 키는 (블록체인(416) 상의 스마트 계약이나 월렛 어드레스에 대한) 블록체인(예컨대, 이더리움, 비트코인) 개인 키고, 이 경우 자산 암호화 키가 적어도 하나의 블록체인 개인 키들을 암호화/복호화하는데 사용된다. 하나의 구성에서, 단일 자산 암호화 키(SYM1 키)가 상이한 블록체인 어드레스, 계좌 및/또는 월렛에 대해 대칭적으로 다수의 개인 키들을 암호화/복호화하는데 사용될 수 있다. 다른 구성에서, 상이한 자산 암호화 키가 각각의 블록체인 개인 키를 위해 사용될 수 있다. 추가로, 자산 키는 중요한 데이터의 비-암호화 키 스트링, 예컨대, 패스워드 또는 암호화폐 월렛에 대한 15개 단어의 메모닉(mnemonic) 구절일 수 있다.
방법(600)은, 적어도 하나의 대칭 키(732)(예컨대, SYM2 키) 또는 적어도 하나의 공개 키를 사용하여, 적어도 하나의 프로세서가, 자산 암호화 키 부분들의 적어도 하나의 세트를 암호화된 자산 암호화 키 부분들(예컨대, SYM2 암호화된 SYM1 부분들 또는 "단일 암호화된" 시크릿 부분들)의 적어도 하나의 세트로 암호화하는 단계(604)로 진행한다. SYM2 대칭 키는 각각의 SYM1 부분에 대해 동일할 수 있거나, 각각의 자산 암호화 키 부분(SYM1 부분)에 대해 상이할 수 있다. SYM2 암호화는 각각의 SYM1 부분들로 SYM2 키에 XOR 연산을 적용하는 것을 포함할 수 있다. 대안으로, 단계(604)에서 수행되는 암호화는, 예컨대 생성 장치 또는 부분 보유자에 속하는, 암호화 공개 키를 사용하는 비대칭 암호화일 수 있다. 예시에서, 각각의 공개 키(736)는, 예컨대 오프라인 서명 서비스(308) 또는 온라인 서명 서비스(1809)의 대응되는 공개/개인 키쌍에 속한다.
선택적으로, 샤미르 메타데이터가 단계(604) 동안에 추가될 수 있다. 샤미르 메타데이터는, 예컨대, N개의 자산 암호화 키 부분들 중 M개가 자산 암호화 키를 재구성하는데 필요하다는, 자산 암호화 키 부분들(SYM1 부분들)로부터 자산 암호화 키(SYM1 키)를 재구성하기 위한 명령어들 및/또는 요구사항을 제공할 수 있다. (암호화되거나 암호화되지 않은) 특정 부분에 대한 샤미르 메타데이터는 또한, 어떤 부분 보유자가 그 부분을 위해 의도되었는지를 나타낼 수 있다.
방법(600)은, 적어도 하나의 공개 키를 사용하여 적어도 하나의 프로세서가 암호화된 자산 암호화 키 부분들(SYM2 암호화된 SYM1 부분들)을 암호화하는 선택적 단계(606)로 진행한다. 선택적 단계(606)가 수행되는 경우, 발생되는 부분들은 이중 암호화 시크릿 부분들로 지칭될 수 있다. 이는 오프라인 서명 서비스 키쌍의 공개 키를 사용하여 공개 키 암호화를 적용하는 것을 포함할 수 있다. 대안으로, 각각의 부분 보유자에게 고유한 공개 키가 SYM2 암호화된 SYM1 부분들 각각을 암호화하는데 사용될 수 있다.
도 6에 도시되지 않지만, 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트(단계(604)로부터 발생된 단일 암호화 또는 선택적 단계(606)로부터 발생된 이중 암호화)는 (단계들(602, 604)을 수행한) 생성 장치에 속하는 서명 개인 키를 사용하여 선택적으로 서명될 수 있다.
방법(600)은, 적어도 하나의 프로세서가 암호화된 자산 암호화 키 부분들(단일 또는 이중 암호화됨)의 적어도 하나의 세트를 부분 보유자들(예컨대, N개의 부분 보유자들, 이들 각각은 암호화된 자산 암호화 키 부분들의 하나의 세트를 수신함)에게 통신하는 (단계(604) 또는 선택적 단계(606)로부터 진행되는) 선택적 단계(608)로 진행한다. 예시에서, 이는 단일 또는 이중 암호화된 부분들을 표현하는 QR 코드들을 프린트하거나, 이들을 휴대용 저장 드라이브 상에 저장하는 것을 포함할 수 있다.
암호화된 자산 암호화 키 부분들의 적어도 하나의 세트가 통신 전에 서명된 경우(단계(608)), 수신 장치는, 예컨대 생성 장치에 속하고 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트를 서명하는데 사용된 서명 개인 키에 대응하는 서명 공개 키를 사용하여, 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트가 신뢰되는 소스로부터 수신되었음을 검증할 수 있다.
방법(600)은 자산 암호화 키 부분들(SYM1 부분들)을 생성하기 위해 적어도 하나의 프로세서가 암호화된 자산 암호화 키 부분들(단일 또는 이중 암호화됨)을 복호화하는 선택적 단계(610)로 진행한다. 예시에서, 부분들(단일 또는 이중 암호화됨)은 부분 소유자들 중 적어도 일부(예컨대, N개 중의 M개)로부터 수신될 수 있다.
암호화된 자산 암호화 키 부분들이 이중 암호화되는 경우(선택적 단계(606)가 각 부분들에 대해 수행됨), 각각의 복호화는 (1) 단일 암호화된 자산 암호화 키 부분들을 생성하기 위해 (예컨대, 오프라인 서명 서비스 키쌍, 온라인 서명 서비스 또는 각각의 부분 보유자 키 쌍의) 개인 키를 사용하여 이중 암호화된 시크릿 부분을 복호화하는 것; 및 (2) (예컨대, 암호화된 자산 암호화 키 특유의) 대칭 키 또는 각각의 부분 보유자, 오프라인 서명 서비스(308) 또는 온라인 서명 서비스의 개인 키를 사용하여 단일 암호화된 자산 암호화 키 부분들을 자산 암호화 키 부분들(SYM1 부분들)로 복호화하는 것을 포함할 수 있다.
암호화된 자산 암호화 키가 단일 암호화된 경우(선택적 단계(606)가 부분들을 위해 수행되지 않음), 복호화는, 각각의 부분 보유자, 온라인 서명 서비스(308) 또는 온라인 서명 서비스의 개인 키 또는 대칭 키를 사용하여 암호화된 자산 암호화 키 부분들(SYM2 암호화된 SYM1 부분들)을 복호화하는 것을 포함할 수 있다.
방법(600)은, 적어도 하나의 프로세서가 복호화된 자산 암호화 키 부분들(SYM1 부분들)로부터 자산 암호화 키(SYM1 키)를 재구성하는 선택적 단계(612)로 진행한다. 예시에서, N개의 복호화된 자산 암호화 키 부분들 중 적어도 M개가 자산 암호화 키(SYM1 키)를 재구성하는데 요구된다. 단계(612)는 자산 암호화 키를 재구성하기 위해 충분한 자산 암호화 키 부분들이 수집되었는지를 인지하는 선택적 샤미르 메타데이터(metadata)를 이용할 수 있다.
방법(600)은, 재구성된 자산 암호화 키를 사용하여 적어도 하나의 프로세서가 행위를 수행하는 선택적 단계(614)로 진행한다. 예시에서, 자산 암호화 키는 자산 키 (또는 다수의 자산 키들)로의 액세스를 획득하는데 사용될 수 있다. 자산 키가 (블록체인(416) 상의 스마트 계약이나 월렛 어드레스를 위한) 블록체인(예컨대, 이더리움, 비트코인) 개인 키인 경우, 자산 암호화 키가 블록체인 개인 키를 암호화/복호화하는데 사용된다. 예시에서, 자산 암호화 키는 고객 월렛 복원 동안에 스위핑(sweeping) 거래에 서명하거나 높은 잔고 계좌를 위한 거래 어드레스를 생성하는데 사용된다. 대안으로, 자산 키는, 가령 암호화폐 월렛을 위한 15개 단어의 시드 메모닉(seed mnemonic) 구절과 같은 비-암호화 키 스트링일 수 있다. 따라서, 행위는, 블록체인(416) 상에서 스마트 계약이나 암호화폐 어드레스/월렛/계좌에 액세스하기 위해 개인 블록체인 키 또는 다른 패스워드와 유사한 데이터를 암호화 또는 복호화하는 것을 포함할 수 있다.
도 7 내지 9는 도 3에 도시된 시크릿 생성(304)의 다양한 양태를 도시한다. 구체적으로, 도 7a는 오프라인 샤미르 부분 생성기(726)를 사용하여 시크릿을 생성하기 위한 예시적인 시스템/방법(700A)을 도시하는 블록도이다. 사용자는 패스워드(742)와, 샤미르 부분들과 관련된 샤미르 부분 구성(724)(가령, 역할, 이메일 등)을 오프라인 샤미르 부분 생성기(726)에 제공한다. 오프라인 샤미르 부분 생성기(726)는, (키 스플릿 모듈(210)에 의해) 자산 암호화 키 부분들(730)(SYM1 부분들)로 스플릿되는 자산 암호화 키(728)(SYM1 키)를 생성한다.
예시에서, 샤미르 부분 구성(724)으로부터의 정보는, 샤미르 메타데이터의 형태로 암호화된 자산 암호화 키 부분들(734) 및/또는 이중 암호화된 시크릿 부분들에 선택적으로 포함될 수 있다. 샤미르 메타데이터는, 예컨대, N개의 자산 암호화 키 부분들(730) 중 M개가 자산 암호화 키(728)를 재구성하는데 요구된다는, 자산 암호화 키 부분들(730)(SYM1 부분들)로부터 자산 암호화 키(728)(SYM1 키)를 재구성하기 위한 명령어들 및/또는 요구사항을 제공할 수 있다. (암호화 또는 암호화되지 않은) 특정 부분에 대한 샤미르 메타데이터는 또한, 어떤 부분 소유자에게 부분이 의도되었는지를 나타낼 수 있다.
오프라인 샤미르 부분 생성기(726)는 또한, 예컨대 대칭 암호화 모듈(214)에서 적어도 하나의 배타적 OR (XOR) 연산을 사용하여, 자산 암호화 키 부분들(730)(SYM1 부분들)을 암호화된 자산 암호화 키 부분들(734)(SYM2 암호화된 SYM1 부분들 또는 단일 암호화된 시크릿 부분들)로 암호화하는데 사용되는 대칭 키(732)(SYM2 키)를 생성한다. 이 SYM2 대칭 키(732)는 각각의 SYM1 부분(730)에 대해 동일할 수 있거나, 다양한 SYM1 부분들(730)에 대해 상이할 수 있다. 샤미르 메타데이터가 추가되는 경우, 각각의 암호화된 자산 암호화 키 부분(734)은, 샤미르 메타데이터를 갖는 각각의 자산 암호화 키 부분(730)일 수 있고, 이 둘 모두는 함께 대칭적으로 암호화된다. (대칭 암호화 모듈(214)에서의) 제1 암호화 단계 동안에, 제1 서명이 분배자 서명 개인 키(미도시)를 사용하여 암호화된 자산 암호화 키 부분들(734)에 선택적으로 적용될 수 있다.
일부 구성에서, 오프라인 샤미르 부분 생성기(726)는 또한, 개인 키(740)와 공개 키(736)를 포함하는 (예컨대, 오프라인 서명 서비스(308)를 위한) 키쌍을 생성한다. 예시에서, 개인 키(740)는 오로지 암호화된 부분들의 분배자 (및 선택적으로 후술할 부분들의 어셈블러(assembler)/재구성자)에게만 알려져있는 한편, 공개 키(736)는 더 자유롭게 예컨대, 부분 보유자들(1620)과 공유될 수 있다.
공개 키(736)는, 각각의 암호화된 자산 암호화 키 부분들(734)(SYM2 암호화된 SYM1 부분들)을 이중 암호화된 시크릿 부분들(738)로 암호화하기 위해 (선택적 비대칭 암호화 모듈(218)에서) 사용된다. 선택적으로, (비대칭 암호화 모듈(218)에서의) 선택적인 제2 암호화 단계에서, 제2 서명이, 분배자 서명 개인 키(미도시)를 사용하여, 이중 암호화된 시크릿 부분들(738)에 선택적으로 적용될 수 있다. 각각의 공개 키(736)는, 각각의 부분 보유자와 연관된 이중 암호화된 시크릿 부분(738)과 함께, 각각의 부분 보유자에게 분배될 수 있다.
패스워드 암호화가, 대칭 키(732)(SYM2 키)뿐만 아니라 (예컨대, 분배자 키쌍의) 개인 키(740)에 적용된다. 즉, 패스워드 모듈(748)을 따라, 패스워드(742)가, 패스워드로 보호된 개인 키(744) 및 패스워드로 보호된 대칭 키(746)으로부터 각각 개인 키(740) 및 대칭 키(732)에 액세스하도록 요구될 수 있다. (패스워드로 보호된 대칭 키(들)(746)(SYM2 키(744))과 함께) 패스워드로 보호된 개인 키(들)(744)은, 예컨대 자산 암호화 키(728)를 후속하여 재구성하기 위해, 부분 어셈블러(part assembler)에 저장된다.
도 7b는 샤미르 부분 생성기(726)를 사용하여 시크릿을 생성하기 위한 다른 예시적인 시스템/방법(700B)을 도시하는 블록도이다. 도 7b는 도 7a와 동일한 장치, 모듈 및 데이터의 다수를 포함할 수 있다. 달리 명시되지 않는다면, 도 7b의 장치, 모듈 및 데이터는 도 7a의 장치, 모듈 및 데이터와 유사한 방식으로 동작한다.
대칭 암호화 모듈(214) 및 선택적 비대칭 암호화 모듈(218) 대신에, 샤미르 부분 생성기(726)는 제1 암호화 모듈(217A) 및 제2 암호화 모듈(217B)을 사용할 수 있다. 각각의 암호화 모듈(217)은, (대칭 키, 가령 대칭 키(732)를 사용하는) 대칭 암호화 모듈(214) 또는 (비대칭 키, 가령 공개 키(736) 또는 부분 소유자 암호화 공개 키를 사용하는) 비대칭 암호화 모듈(218)일 수 있다.
따라서, 이중 암호화된 시크릿 부분들(738)은, 각각의 단계가 대칭 또는 비대칭인 임의의 2개의 암호화 단계들을 사용하여 암호화될 수 있다. 예컨대, 이중 암호화된 시크릿 부분들(738)은 종종 본 명세서에서 제1 비대칭 암호화 및 이에 후속하는 제2 비대칭 암호화를 사용하여 생성되는 것으로 설명되지만, 이들은, (1) 2개의 비대칭 암호화 단계들; (2) 2개의 대칭 암호화 단계들; (3) 제1 비대칭 암호화 단계 및 제2 대칭 암호화 단계; 또는 (4) 제1 대칭 암호화 단계 및 제2 비대칭 암호화 단계를 사용하여 생성될 수 있다. 게다가, 2개의 암호화 단계들이 본 명세서에 설명되지만, 3개 이상의 단계들이 대안으로 사용될 수 있고, 각각의 단계는 대칭 또는 비대칭인 것으로 이해된다.
선택적으로, 샤미르 메타데이터는 암호화된 자산 암호화 키 부분들(734)에 추가될 수 있다. 샤미르 메타데이터가 추가되는 경우, 각각의 암호화된 자산 암호화 키 부분(734)은 샤미르 메타데이터를 갖는 각각의 자산 암호화 키 부분(730)일 수 있고, 이 둘은 모두 함께 (대칭 또는 비대칭으로) 암호화된다. 추가로, 암호화된 자산 암호화 키 부분들(734) 및/또는 (생성된 경우) 이중 암호화된 시크릿 부분들(738)은 분배자 서명(signing) 개인 키를 사용하여 서명될 수 있다.
도 8은, 오프라인 서명 서비스 키쌍의 공개 키(736) 및 SYM2 대칭 키(732)에 의해 암호화된 SYM1 부분들(730) 각각에 대해 부분 QR 코드(854)를 생성하는 예시적인 시스템/방법(800)을 도시하는 블록도이다. 각각의 공개 키 암호화되고, SYM2 암호화된 SYM1 부분(즉, 이중 암호화된 시크릿 부분(738))은 부분 QR 코드(854)를 프린트하기 위해 프린터(852)에 제공된다. 각각의 부분 QR 코드(854)는 부분 소유자에게 분배된다. 각각의 부분 소유자는 그들 각각의 부분 QR 코드(854)를 안전하게 보관하리라고 신뢰되는 개인 또는 엔티티일 수 있다. 자산 암호화 키(728)가 재구성될 필요가 있는 경우, 각각의 개별 부분 소유자는, 스캔되도록 그들의 부분 QR 코드(854)를 제시할 수 있고, 이후 그들의 공개 키 암호화되고, SYM2 암호화된 SYM1 부분(즉, 이중 암호화된 시크릿 부분(738))은, 그들의 시크릿 부분(730)으로 복호화되고, (M개의 시크릿 부분들(730)이 수집되는 경우 자산 암호화 키(728)로 재구성될 수 있다).
도 9는, 예컨대 온라인 서명 서비스를 위해 키쌍을 생성하는 예시적인 시스템/방법(900)을 도시하는 블록도이다. 키쌍 생성기(958)는 개인 키(941)와 공개 키(937)를 포함하는 온라인 서명 서비스 키쌍을 생성할 수 있다. (온라인 서명 서비스를 위한) 패스워드(923)는, 온라인 서명 서비스를 위한 패스워드로 보호된 개인 키(941)로 (컴퓨팅 장치에게) 사용자에 의해 제공된다. 따라서, 각각의 개인 키(941)는, 예컨대 패스워드 모듈(748)을 사용하여, (온라인 서명 서비스를 위한) 패스워드 보호된 개인 키(945)를 생성하기 위해 사용자로부터의 패스워드(923)로 보호될 수 있다. 패스워드로 보호된 개인 키(945)는 (패스워드로 보호된 대칭 키(SYM2 키)(746)와 함께), 예컨대 자산 암호화 키(728)를 후속하여 재구성하기 위해 부분 어셈블러에 저장될 수 있다.
도 10은 토큰 발행을 위한 예시적인 시스템/방법(306)을 도시하는 블록도이다. 예컨대, 도 10은 도 3의 토큰 발행의 양태들을 도시한다. 토큰 발행(306)은: (1) (예컨대, PII(Personally Identifiable Information) 해시를 포함하는) 투자자 정보(1062)를 수집하는 것; 및 (2) 전개 어드레스(deployment address)를 생성하고, 이더리움 블록체인(416)을 사용한다면 ETH(이더)로 또는 상이한 체인을 사용하는 경우 임의의 다른 연료로 자금을 제공하는 것의 사전 요구사항을 가질 수 있다. 예시에서, 하기의 이더리움 어드레스들이 생성될 수 있다: (1) 수탁자(들); (2) 브로커 딜러(들); 및 (3) 수탁자 브로커 딜러 계좌. 예시에서, HD(Hierarchal Deterministic) 키가 투자자 어드레스에 대해 생성되고, 이더리움 어드레스가 투자자들에 대해 생성된다. 예시에서, 관리자 어드레스는 오프라인 서명 서비스(308)에서 생성될 수 있다. 예시에서, 계약의 소유권은 관리자 어드레스로 이전될 수 있다.
예시에서, 투자자들은 예컨대, 그들의 이더리움 월렛을 사용하여, 토큰을 구매하기 위해 자금을 제공한다(1070). 투자자 PII 해시 및 다른 구성 정보(1062)는 공개 키(736)와 함께 제공되어 스마트 계약 및 토큰 발행 모듈(1060)을 인에이블한다. 토큰 발행(306)은, 예컨대 보안을 위해 공개 키(736)를 사용하여, 수탁자를 위한 공개 키 암호화된 (이더리움) 개인 키들(1067) 및 공개 키 암호화된 HD 메모닉(1064), 브로커 딜러(BD) 및 BD 계좌 어드레스들을 발생시킨다. 대안으로, HD 메모닉과 개인 키들은, 다른 방식으로 암호화될 수 있거나 전혀 암호화되지 않을 수 있다. 암호화되던지와 무관하게, HD 메모닉과 개인 키들은 휴대용 메모리(1068), 예컨대 휴대용 저장 드라이브에 선택적으로 저장될 수 있다.
도 11 내지 18은, 예컨대 도 3의 오프라인 서명 서비스(308)의 양태들을 도시한다. 구체적으로, 도 11은 오프라인 서명 서비스(308)를 초기화하기 위한 예시적인 시스템/방법을 도시하는 블록도이다. 오프라인 서명 서비스(308)는, 예컨대 안전한 에어 갭 상태의 랩탑에서 명령어들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하는 컴퓨팅 장치(102)에 의해 구현될 수 있다.
오프라인 서명 서비스(308)는 예컨대, 부분 보유자 및/또는 다른 시스템으로부터, 다양한 정보를 수신할 수 있다. 예시에서, 샤미르 부분 구성(724)(가령, 역할, 이메일 등); 오프라인 서명 서비스 키쌍의 패스워드로 보호된 개인 키(744) 및 오프라인 서명 서비스를 위한 패스워드로 보호된 대칭 키(746)(패스워드로 보호된 SYM2 키); 및/또는 온라인 서명 서비스 키쌍의 공개 키(937)가 (예컨대, 휴대용 저장 드라이브에 의해) 안전한 에어 갭 상태의 랩탑에 제공된다. 패스워드로 보호된 키들은 오프라인 서명 서비스(308)에서 수신된다.
패스워드(742)는, 오프라인 서명 서비스 키쌍을 위한 패스워드로 보호된 대칭 키(746)(패스워드로 보호된 SYM2 키) 및 오프라인 서명 서비스 키쌍의 패스워드로 보호된 개인 키(744) 및/또는 랩탑을 잠금해제(unlock)하기 위해 (잠금해제 모듈(1172)로) 제공된다. 잠금을 해제하면(예컨대, 잠금해제 모듈(1172)에서 패스워드를 검증하면), 오프라인 서명 서비스 키쌍의 패스워드로 보호된 개인 키(744), 오프라인 서명 서비스 키쌍을 위한 패스워드로 보호된 대칭 키(들)(746)(패스워드로 보호된 SYM2 키) 및/또는 온라인 서명 서비스 키쌍의 공개 키(937)는 안전한 에어 갭 상태의 랩탑에 (영구적인 메모리(1174) 내에) 영구적인 데이터로 저장된다.
본 명세서에서 영구적인 메모리(1174)에 저장되는 것으로 설명된 임의의 키들은 그들 각각의 패스워드로 보호되거나 그들의 패스워드로 보호되지 않는 형태로 저장될 수 있음을 유의해야 한다. 예컨대, 보호되지 않은 개인 키(740) 및 보호되지 않은 대칭 키(732)(SYM2 키)는 영구적인 메모리(1174)에 저장될 수 있다.
샤미르 부분 수락 모듈(1178)은, 예컨대 적어도 하나의 이미징 장치(1176), 가령 카메라나 스캐너를 사용하여, (부분 보유자들에게 제공된) 부분 QR 코드(854)를 스캔함으로써 적어도 하나의 부분 보유자 각각으로부터의 (온라인 서명 서비스를 위한) 공개 키(937) 및 이중 암호화된 시크릿 부분(738)(SYM2 암호화된 SYM1 부분)을 수락할 수 있다. 예컨대, 샤미르 부분 수락 모듈(1178)은, 잠금해제 표시(1782)에 응답하여 동작할 수 있다. 오프라인 서명 서비스(308)는, 비대칭(예컨대, 공개키) 암호화를 제거하는데 개인 키(740)를 사용하고, 자산 암호화 키(SYM1 키)(728)를 재구성하기에 충분한 부분들이 수신될 때까지 랩탑의 메모리(1180) 내에 암호화된 자산 암호화 키 부분들(SYM2 암호화된 SYM1 부분들)(734)을 저장한다.
도 12a는 오프라인 서명 서비스(308)로 수탁자 토큰 시크릿을 임포트하기 위한 예시적인 시스템/방법을 도시하는 블록도이다. 시크릿을 임포트하기 위해, 시크릿 임포트 모듈(1284A)은, 공개 키 암호화된 (이더리움) 개인 키들(1067)(오프라인 서명 서비스의 공개 키로 암호화됨) 및 선택적으로 공개 키 암호화된 HD 메모닉(1064)을 수신할 수 있다. 비대칭 복호화 모듈(220)은, (영구적인 메모리(1174)로부터의) 개인 키(740)를 사용하여, 공개 키 암호화된 (이더리움) 개인 키(1067)를 이더리움 개인 키(1269)로 복호화할 수 있다.
키 재구성 모듈(212)은 이후, 메모리(1180)에 저장된 암호화된 자산 암호화 키 부분들(SYM2 암호화된 SYM1 부분들)(734)로부터 자산 암호화 키(SYM1 키)(728)를 재구성할 수 있다. 예시들에서, 암호화된 자산 암호화 키 부분들(734)은 우선 자산 암호화 키(SYM1 키)(728)를 재구성하기 전에 (SYM2 암호화를 제거하기 위해) 복호화될 수 있다. 대안으로, 메모리(1180)는 보호되지 않은 자산 암호화 키 부분들(730)을 저장할 수 있고, 이 경우 어떠한 SYM2 복호화도 자산 암호화 키(SYM1 키)(728)를 재구성하기 전에 필요하지 않다.
토큰 암호화 모듈(214)은 자산 암호화 키(728)로 토큰을 암호화하고, 랩탑 상의 영구적인 메모리(1174)에 암호화된 이더리움 개인 키들(1271)(예컨대, SYM1 암호화됨)을 저장할 수 있다.
도 12b는 수탁자 토큰 시크릿을 오프라인 서명 서비스(308)로 임포트하기 위한 다른 예시적인 시스템/방법을 도시하는 블록도이다. 도 12b는 도 12a와 동일한 장치, 모듈 및 데이터 중 다수를 포함할 수 있다. 달리 명시되지 않는다면, 도 12b의 장치, 모듈 및 데이터는, 도 12a의 장치, 모듈 및 데이터와 유사한 방식으로 동작한다. 도 12b의 시크릿 임포트 모듈(1284B)은, (도 12a의 비대칭 복호화 모듈(220) 대신에) 대칭 또는 비대칭 복호화를 이용하는 복호화 모듈(219)을 이용할 수 있다. 유사하게, 도 12b의 시크릿 임포트 모듈(1284B)은, (도 12a의 대칭 암호화 모듈(214) 대신에) 대칭 또는 비대칭 복호화를 이용하는 암호화 모듈(217)을 이용할 수 있다.
도 13은 오프라인 서명 서비스(308)에서 이더리움 어드레스 모듈(1383)을 사용하여 스마트 계약 관리자 계정을 생성하기 위한 예시적인 시스템/방법을 도시하는 블록도이다. 이더리움 키쌍 생성기(1397)는, 스마트 계약 관리자 계정을 위한 이더리움 관리자 키쌍(1393)을 생성함으로써, 관리자(1394)로부터의 요청(1396)에 대하여 이더리움 어드레스를 생성할 수 있다.
키 재구성 모듈(212)은 이후, 메모리(1180)에 저장된 암호화된 자산 암호화 키 부분들(SYM2 암호화된 SYM1 부분들)(734)로부터 자산 암호화 키(SYM1 키)(728)를 재구성할 수 있다. 예시에서, 암호화된 자산 암호화 키 부분들(734)은, 자산 암호화 키(SYM1 키)(728)를 재구성하기 전에 (SYM2 암호화를 제거하기 위해) 우선 복호화될 수 있다. 대안으로, 메모리(1180)는 보호되지 않은 자산 암호화 키 부분들(730)을 저장할 수 있고, 이 경우 어떠한 SYM2 복호화도, 자산 암호화 키(SYM1 키)(728)를 재구성하기 전에 필요하지 않다.
어드레스 암호화 모듈(1389)은 자산 암호화 키(SYM1 키)(728)를 사용하여 스마트 계약 관리자 계정 이더리움 개인 키(1387)를 암호화하고, 랩탑 상의 영구적인 메모리(1174)에 암호화된 스마트 계약 관리자 계정 (이더리움) 개인 키(1385)를 저장한다. 관리자 공개 어드레스는, 예컨대 컴퓨팅 장치(102, 1399), 가령 휴대전화를 통해 이더리움 블록체인(416) 상에서 스마트 계약(1391)을 관리자 어드레스로 전달하는데 사용되는 QR 코드로 변환될 수 있다.
도 14는 오프라인 서명 서비스(308)를 종료하고, 초기 작업들(예컨대, 도 11 내지 13에 설명된 것들)이 완료되면, 백업을 생성하는 예시적인 시스템/방법(1400)을 도시하는 블록도이다. 예시에서, 오프라인 서명 서비스(308)는 종료되고, (랩탑 상의 영구적인 메모리(1174)의) 영구적인 데이터는 적어도 하나의 분리된 보안 백업(1402A-N) 내에 백업된다. 영구적인 메모리(1174)는, 오프라인 서명 서비스의 키쌍(1406)(개인 키(740) 및 공개 키(736)); 대칭 키(SYM2 키)(732); SYM1 암호화된 (이더리움) 개인 키들(1261) (또는 보호되지 않은 이더리움 개인 키들(1269)); 및/또는 암호화된 이더리움 관리자 개인 키(1385)(또는 보호되지 않은 이더리움 관리자 개인 키(1387))를 포함할 수 있다. 선택적으로, 온라인 서명 서비스의 패스워드(923), 공개 키(937) 및/또는 개인 키(941)는 또한, 영구적인 메모리(1174)에 저장된다. 하지만, 더 적거나, 더 많거나 및/또는 상이한 데이터가 영구적인 메모리(1174)에 대안으로 존재할 수 있다.
각각의 보안된 백업(1402)은, 분리된 보안 위치(1404A-N)에 저장되는 프린트된 QR 코드로서, 또는 휴대용 메모리(예컨대, 휴대용 저장 드라이브)에 저장될 수 있다. 보안된 위치(1404)의 예시는 제한 없이, 금고, 안전 보관 박스 또는 잠금 박스를 포함한다.
도 15는 오프라인 서명 서비스(308)의 종료 후 또는 종료 동안에 보호될 필요가 있는 잠재적인 데이터를 도시하는 블록도이다. 예시에서, (오프라인 서명 서비스(308)를 구현하는) 랩탑 및/또는 데이터의 적어도 하나의 보안된 백업(1402)이 보호될 수 있다. 랩탑 및 보안된 백업(들)(1402)은 각각: 오프라인 서명 서비스(308)의 키쌍(1406)(개인 키(740) 및 공개 키(736)); 수탁자를 위한 SYM1 암호화된 (이더리움) 개인 키들(1261), BD, BD 계좌 및 모든 투자자 계좌들; 및/또는 관리자(1394)를 위한 암호화된 이더리움 관리자 개인 키(1385) (또는 보호되지 않은 이더리움 관리자 개인 키(1387))를 포함할 수 있다. 예시에서, 랩탑 상에 저장된 영구적인 메모리(1174) 및 적어도 하나의 보안된 백업(1402)은, 오프라인 서명 서비스(308)의 종료 동안에/종료에 후속하여 보안된 위치(1404A)에 보존될 수 있다.
예시에서, 온라인 서명 서비스 키쌍(1408)(개인 키(941) 및 공개 키(937)) 및/또는 이것의 패스워드(923)는 또한, 영구적인 메모리(1174)의 일부로서 보존되지 않는다면, 보안된 위치(1404B)에서 보호될 필요가 있다. 예시에서, 랩탑에 상주하는 오프라인 서명 서비스(308)의 패스워드(742) 및 키쌍(1406)(개인 키(740) 및 공개 키(736))의 임의의 사본들은, 오프라인 서명 서비스(308)의 종료 동안에/종료에 후속하여 선택적으로 안전하게 삭제/파괴될 수 있다(1510).
부분 보유자들은, 다른 각각의 보안된 위치들(1404C-N)에, (그들의 이중 암호화된 부분(738) 또는 암호화된 자산 암호화 키 부분(734)에 대한) 그들의 부분 QR 코드들(854)을 안전하게 저장할 필요가 있다. 암호화된 부분들(이중 암호화된 부분들(738) 또는 단일 부분들(734))은 자산 암호화 키(SYM1 키)(728)의 유일한 스토어일 수 있다. 따라서, 샤미르 구성(M과 N에 대한 값들)을 결정할 때, 보안을 고도로 유지하면서도, 자산 암호화 키(SYM1 키)(728)가 너무 많은 부분들이 손실되었기 때문에 재생성될 수 없는 리스크를 최소화하는 것이 고려될 것이다.
도 16은 자산 암호화 키(SYM1 키)(728)를 안전하게 스플릿하기 위한 예시적인 시스템/방법(1600)을 도시하는 블록도이다. 구체적으로, 예시적인 시스템/방법(1600)은, 시크릿 생성(304), 토큰 발행(306) 및 오프라인 서명 서비스(308)를 위한 다양한 데이터 파일들을 도시한다.
시크릿 생성(304)은, (오프라인 서명 서비스(308)를 위한) 패스워드를 수신하는 오프라인 샤미르 부분 생성기(726)와, 생성기가 이중 암호화 시크릿 부분들(738)을 생성하는데 사용하는 샤미르 부분 구성(724)을 포함할 수 있다. 이중 암호화된 시크릿 부분들(738)은, (JSON 모듈(161B)을 사용하여) JSON(JavaScript Object Notation) 부분들(1616B)로 변환되고, 이후 PDF 모듈(1614B)은 (프린터(852)를 사용하여) 부분 QR 코드(854)로서 프린트되는 PDF QR 코드들(1618B)을 생성하고, 부분 소유자들(1620)에게 분배된다. 추가로, 오프라인 샤미르 부분 생성기(726)는, 오프라인 서명 서비스(308)로 전송되는 패스워드로 보호된 개인 키(744) 및 패스워드로 보호된 대칭 키(746)를 생성할 수 있다.
부분 보유자(1620)는 컴퓨팅 장치(102)(예컨대, 스마트폰) 및/또는 컴퓨팅 장치(102)를 동작하는 사용자를 나타낼 수 있다.
토큰 발행(306)은, (오프라인 샤미르 부분 생성기(726)로부터의) 공개 키(736) 및 샤미르 부분 구성(724)에 기초하여 SYM1 암호화된 (이더리움) 개인 키들(1261)을 생성하는 토큰 발행 모듈(1060) 및 스마트 계약을 포함할 수 있다. SYM1 암호화된 (이더리움) 개인 키들(1261)은, (JSON 모듈(1612A)을 사용하여) JSON 부분들(1616A)로 변환되고, 이후 PDF 모듈(1614A)은, 다른 QR 코드들(1622)로서 (프린터(852)를 사용하여) 프린트되고 부분 보유자들에게 분배되는 PDF QR 코드들(1618A)을 생성한다.
부분 QR 코드(854) 및/또는 다른 QR 코드(222)는 이미징 장치(1176)(예컨대, 오프라인 서명 서비스(308)의 일부로서)에 의해 스캔될 수 있다. 부분 QR 코드(854)가 스캔되는 경우, 이중 암호화된 시크릿 부분(738)이 생성된다. 다른 QR 코드(1622)가 스캔되는 경우, SYM1 암호화된 (이더리움) 개인 키들(1261)이 생성될 수 있다. 오프라인 서명 서비스(308)는 전술한 바와 같이 이중 암호화된 시크릿 부분(738) 및/또는 SYM1 암호화된 (이더리움) 개인 키(1261)를 사용할 수 있다. 추가로, 상술한 (예컨대, 암호화 및/또는 패스워드로 보호된) 다양한 다른 키들이 QR 코드로 프린트되어서 오프라인 서명 서비스(308)에서 사용하기 위해 스캔될 수 있다. 또한, 상술한 (예컨대, 암호화 및/또는 패스워드로 보호된) 다양한 다른 키들은 오프라인 서명 서비스(308)에서 사용하기 위해 휴대용 저장 드라이브를 통해 랩탑으로 로딩될 수 있다.
예시에서, 시크릿 생성(304), 토큰 발행(306) 및 오프라인 서명 서비스(308) 각각은 본 명세서에 설명된 기능을 수행하기 위해 (예컨대, 적어도 하나의 메모리에 저장된) 명령어들을 실행하는 적어도 하나의 프로세서를 갖는 분리된 컴퓨팅 장치(102)에서 구현될 수 있다. 선택적으로, 토큰 발행(306) 및 시크릿 생성(304)은, 동일한 컴퓨팅 장치(102) 상에서 구현될 수 있고, 오프라인 서명 서비스(308)는, 토큰 발행(306) 및 시크릿 생성(304)을 구현하는 컴퓨팅 장치(들)과 분리되어 단절된 컴퓨팅 장치(102) 상에서 구현된다. 예컨대, 오프라인 서명 서비스(308)를 구현하는 컴퓨팅 장치(102)는 에어 갭 상태인 랩탑이거나 다른 컴퓨팅 장치(102)일 수 있다.
도 17은 어디서/어떻게 예시적인 시스템/방법이 실행되는지에 관한 더 많은 세부사항을 도시하는 블록도이다. 도 17에 도시된 양태들은 예시에 불과하며, 제한하는 것으로 여겨져서는 안된다. 예시에서, 토큰 발행(306)은: 블록체인(416), 예컨대 이더리움 블록체인으로의 액세스; (토큰 발행(306)을 구현하는 컴퓨팅 장치(102) 상에서의) 네트워크 액세스; 프린터(852)로의 액세스 및/또는 시크릿 생성(304)으로부터의 공개 키(736)를 사용할 수 있다.
예시에서, 시크릿 생성(304)은: 프린터(852)로의 액세스; 샤미르 부분 구성(724)을 갖는 입력 휴대용 저장 드라이브; JAR(JAVA Archive) 파일; JRE(JAVA Runtime Environment); 및 선택적인 네트워크 액세스를 사용할 수 있다. 시크릿 생성(304)을 구현하는 컴퓨팅 장치(102)에서 네트워크 액세스가 이용가능하지 않은 경우, PDF QR 코드(1618B)의 사본이 다른 곳에서 프린트하기 위해 휴대용 저장 드라이브에 저장될 수 있다.
예시에서, 오프라인 서명 서비스(308)는, 이미징 장치(1176)(예컨대, 스캐너나 웹캠)로의 액세스; JAR 파일 및 JAVA JRE를 갖는 휴대용 저장 드라이브로부터의 입력; 및 (오프라인 서명 서비스(308)를 구현하는 컴퓨팅 장치(102) 상에서) 네트워크 액세스가 전혀 없는 경우를 사용할 수 있다.
도 18a는, 예컨대 시크릿 엑스포트 모듈(1826A)을 사용하여, 오프라인 서명 서비스(308)로부터 시크릿을 엑스포트(export)하기 위한 예시적인 시스템/방법(1800A)을 도시하는 블록도이다. 예시에서, 시크릿이 확보된 이후 거래 시스템이 준비될 때, 투자자 및 BD/계좌 키들은 오프라인 서명 서비스(308)로부터 온라인 서명 서비스(1809)로 전달된다. 오프라인 서명 서비스(308)는 메모리(1180)로부터 암호화된 자산 암호화 키 부분들(SYM2 암호화된 SYM1 부분들)(734)을 수신할 수 있다. 선택적으로, 암호화된 자산 암호화 키 부분들(SYM2 암호화된 SYM1 부분들)(734)은 부분 보유자(1620)에 의해 제공된 부분 QR 코드(854)를 통해 수신될 수 있다.
시크릿들을 온라인 서명 서비스(1809)로 전달하기 위해, 암호화된 자산 암호화 키 부분들(SYM2 암호화된 SYM1 부분들)(734)은, 자산 암호화 키 부분들(SYM1 부분들)(730)을 생성하도록 (대칭 키(732)를 사용하여 대칭 복호화 모듈(216)에서) 복호화되고, 이후 SYM1 자산 암호화 키(728)를 생성하기 위해 (키 재구성 모듈(212)에서) 재구성된다.
랩탑 상의 영구적인 메모리(1174)로부터의 소정의 SYM1 암호화된 이더리움 키(들)(1261)은 SYM1 자산 암호화 키(728)를 사용하여 복호화될 수 있다. 복호화된 이더리움 키(들)은 이후 비대칭 암호화 모듈(218)에서, (온라인 서명 서비스를 위한) 공개 키(937)로, 공개 키 암호화된 개인 키들(1828)로 암호화된다. 공개 키 암호화된 개인 키들(1828)은, 예컨대 컴퓨팅 장치(102)를 통해 온라인 서명 서비스(1809)로 전송된다(1802). 사용자는 또한, (온라인 서명 서비스를 위한) 패스워드로 보호된 개인 키(945) 및 (온라인 서명 서비스를 위한) 패스워드(923)를 제공할 수 있다.
도 18b는 예컨대, 시크릿 엑스포트 모듈(1826B)을 사용하여, 오프라인 서명 서비스(308)로부터 시크릿을 엑스포트하기 위한 예시적인 시스템/방법(1800B)을 도시하는 블록도이다. 도 18b는 도 18a와 동일한 장치, 모듈 및 데이터 중 다수를 포함할 수 있다. 달리 명시되지 않는다면, 도 18b의 장치, 모듈 및 데이터는 도 18a의 장치, 모듈 및 데이터와 유사한 방식으로 동작한다. 도 18b의 시크릿 엑스포트 모듈(1826B)은 (도 18a의 대칭 복호화 모듈(216) 대신에) 대칭 또는 비대칭 복호화를 이용하는 복호화 모듈(219)을 이용할 수 있다. 유사하게, 도 18b의 시크릿 엑스포트 모듈(1826B)은 (도 18a의 대칭 암호화 모듈(218) 대신에) 대칭 또는 비대칭 복호화를 이용하는 암호화 모듈(217)을 이용할 수 있다.
도 19는 부분 분배자(1925)를 사용하여 부분들을 분배하기 위한 예시적인 시스템/방법(1900)을 도시하는 블록도이다. 일부 구성에서, 부분 분배자(1925)는, 샤미르 부분 생성기(726)일 수 있거나 이를 구현할 수 있다. 클러스터가 고장이 날 때마다 QR 코드를 스캔하기 위해 하나의 공간에 이사들을 소집하는 것을 기대하는 것은 합리적이지 않을 수 있다. 따라서, 샤미르 부분들을 분배하고, 부분들을 업데이트하고, 모든 보유자들을 위해 고유한 키쌍들을 생성하는 더 나은 방식을 갖는 것이 바람직하고, 이는 이들이 키들을 관리하는 것을 도울 수 있다.
부분 분배자(1925)는 다수의 (예컨대, N개의) 부분 보유자들(1620)에게 샤미르 부분들을 분배하기 위해 사용될 수 있다. 추가로 또는 대안으로, 저장소(repository, 1927)가 부분들을 부분 보유자(1620)에게 송신하거나 및/또는 부분 보유자(1620)로부터 부분들을 다시 수신하는데 사용될 수 있다. 저장소(1927)가 사용되는 경우, 부분 보유자(1620)는, 그들 각각의 부분을 리트리브(retrieve)하기 위해 (예컨대, 인증을 포함하는) 저장소(1927)와의 통신을 할 수 있다. 저장소(1927)는, 부분 분배자(1925)로부터 부분 보유자(1620)로의 데이터(예컨대, 키, 암호화된 부분들 등)의 비동기적 전송을 허용하여, 부분 보유자들(1620)이 필요할 때 그들 각각의 암호화된 부분을 리트리브(retrieve)할 수 있도록 한다. 선택적으로, 저장소(1927)는 부분 분배자(1925) 및/또는 부분 보유자(1620)와 함께 사용하기 위한 인증 절차를 구현할 수 있다.
도 19에서, 부분 분배자(1925)는 부분 보유자(1620) 및/또는 저장소(1927)로 이중 암호화된 시크릿 부분들(1939)을 분배한다. 이중 암호화된 시크릿 부분들(1939)은 전술한 이중 암호화된 시크릿 부분들(738)과 유사하지만 (동일하지는 않다). 구체적으로, 이중 암호화된 시크릿 부분들(1939)은, (1) 대칭 키(732) (또는 분배자 복호화 개인 키); 및 (2) 부분 보유자 암호화 공개 키로 암호화될 수 있다. 반면에, 이중 암호화된 시크릿 부분들(738)은, (1) 대칭 키(732) (또는 분배자 복호화 개인 키); 및 (2) 분배자 암호화 공개 키로 암호화될 수 있다.
각각의 단계가 대칭 또는 비대칭인 임의의 2개의 암호화 단계들을 사용하여, 이중 암호화된 시크릿 부분들(1939)이 암호화될 수 있음을 유의해야 한다. 예컨대, 이중 암호화된 시크릿 부분들(1939)은 본 명세서에서 제1 비대칭 암호화 및 이에 후속하는 제2 대칭 암호화를 사용하여 생성되는 것으로 보통 설명되지만, 이중 암호화된 시크릿 부분들(1939)은, (1) 2개의 비대칭 암호화 단계; (2) 2개의 대칭 암호화 단계; (3) 제1 비대칭 암호화 단계 및 제2 대칭 암호화 단계; 또는 (4) 제1 대칭 암호화 단계 및 제2 비대칭 암호화 단계를 사용하여 생성될 수 있다. 추가로, 단일 암호화된 시크릿 부분들(734)은, 대칭 또는 비대칭 암호화를 사용하여 암호화될 수 있다.
도 20은 시크릿 부분들(730)의 분배를 위해 저장소(1927) 및 부분 분배자(1925)를 사용하는 온라인 구현을 위한 예시적인 시스템/방법(2000)을 도시하는 블록도이다. 부분 분배자(1925)는 자산 암호화 키(시크릿)(728)으로부터 시크릿 부분들(730)을 생성한다. 예시에서, 시크릿 부분들(730)은 또한, 자산 암호화 키 부분들(730) 및/또는 SYM1 부분들(730)로 지칭될 수 있다. 예시에서, 시크릿(728), 자산 암호화 키(728) 및 SYM1 키(728)라는 용어들은 상호교환적으로 사용될 수 있다.
부분 분배자(1925)는 이중 암호화된 시크릿 부분들(1939)을 저장할 수 있다. 전술한 바와 같이, 이중 암호화된 시크릿 부분들(1939)은, 부분 보유자 암호화 공개 키(2043)로 (제2 단계에서) 암호화될 수 있는 한편, 이중 암호화된 시크릿 부분들(738)은 분배자(1925)의 분배자 암호화 공개 키(2036)로 암호화될 수 있다.
하나의 구성에서, 부분 분배자(1925)는, 아래와 같이 이중 암호화된 시크릿 부분들(1939)을 생성할 수 있다. 각각의 시크릿 부분(730)은 단일 암호화된 시크릿 부분(734)을 생성하기 위해 대칭 키(732)로 암호화될 수 있다. 예시에서, 대칭 키(732)는 또한, SYM2 키(732)로 지칭될 수 있다. 단일 대칭 키(732)는 모든 시크릿 부분들(730)을 암호화하는데 사용될 수 있거나, 상이한 대칭 키(732)가 각각의 시크릿 부분(730)을 암호화하는데 사용될 수 있다. 단일 암호화된 시크릿 부분(734)은 또한, 암호화된 자산 암호화 키 부분들(SYM2 암호화된 SYM1 부분들)(734)로 지칭될 수 있다. 각각의 단일 암호화된 시크릿 부분(734)은 이후 특정 부분 보유자(1620)에 대한 암호화 공개 키(2043)를 사용하여 이중 암호화된 시크릿 부분(1939)으로 암호화될 수 있고(여기서, 부분 보유자(1620)는 암호화 공개 키(2043)에 대응하는 복호화 개인 키(2047)를 보유한다). 예시에서, 부분 보유자 복호화 개인 키(2047) 및 부분 보유자 암호화 공개 키(2043)는 ECC(Elliptic Curve Cryptography), 예컨대 커브25519를 사용하여 암호화를 적용한다.
다른 구성에서, 부분 분배자(1925)는 (1) QR 코드(854)를 통해 부분 보유자(1620)로부터 이중 암호화된 시크릿 부분들(738)(분배자 암호화 공개 키(2036))를 수신할 수 있고; 후술되는 바와 같이, 이중 암호화된 시크릿 부분들(738)을 이중 암호화된 시크릿 부분들(1939)로 재랩핑(re-wrap)/재인코딩(re-encode)할 수 있으며; (3) 이중 암호화된 시크릿 부분들(1939)을 저장할 수 있다.
예시에서, (부분 보유자 암호화 공개 키(2043) 및 부분 보유자 복호화 개인 키(2047)를 갖는) 부분 보유자 키쌍은, 부분 보유자의 컴퓨팅 장치(1620)(예컨대, 휴대전화) 상에서 생성될 수 있다. 예시에서, 부분 보유자 암호화 공개 키(2043)는 부분 보유자(1620)로부터 적어도 부분 분배자(1925)에게 통신될 수 있는 한편, 부분 보유자 복호화 개인 키(2047)는 오로지 각각의 부분 보유자(1620)에게서만 유지 및 (인지)된다.
부분 분배자(1925)는 또한, 분배자 암호화 공개 키(2036) 및 분배자 복호화 개인 키(204)를 갖는 분배자 암호화 키쌍을 저장할 수 있다. 제한 없이, 분배자 암호화 키쌍(분배자 복호화 개인 키(2040) 및 분배자 암호화 공개 키(2036))은 오프라인 서명 서비스(308) 키쌍(공개 키(736) 및 개인 키(740)) 및/또는 온라인 서명 서비스(1809) 키쌍(공개 키(937) 및 개인 키(941))과 동일할 수 있다. 대안으로, 분배자 키쌍은, 오프라인 서명 서비스(308) 키쌍 및 온라인 서명 서비스(1809) 키쌍 모두와 상이할 수 있다. 예시에서, 분배자 복호화 개인 키(2040)는 오로지 부분 분배자(1925) (및 선택적으로 후술할 부분들의 어셈블러/재구성자)에게만 알려질 수 있는 한편, 분배자 암호화 공개 키(2036)는 추가적으로 예컨대, 부분 보유자(1620)와 더 자유롭게 공유될 수 있다. 예시에서, 분배자 암호화 공개 키(2036) 및 분배자 복호화 개인 키(2040)는 ECC, 예컨대 커브25519를 사용하여 암호화를 적용한다.
이러한 방식으로, 모든 부분 페이로드(예컨대, 이중 암호화된 시크릿 부분(1939))는 다수의 암호화 계층으로 암호화되어서, 보안에 대해 거의 우려하지 않고 어디에서든 저장될 수 있다. 예컨대, 부분 보유자(1620)는 필요한 경우 부분 보유자(1620)에 의한 암호화된 부분의 검색을 위해, 파일 저장소(1927) 기능(가령, 구글/파이어베이스(Firebase))을 갖는 온라인 계정을 사용할 수 있다. 저장소(repository, 1927)는 저장소(storage)/메모리(2002)에 부분들(예컨대, 이중 암호화된 시크릿 부분(1939))을 저장할 수 있다.
예시에서, 저장소(1927)는 부분 보유자(1620)에 의해 제공된 인증 크리덴셜(2035)에 기초하여 사용자를 인증하는 인증 모듈(2031)을 포함할 수 있다. 인증 크리덴셜(2035)의 예시는, 패스워드(들), 시간 민감성 코드(들) 및/또는 바이오메트릭 데이터, 가령 지문 데이터(예컨대, 고객의 지문(들)의 스캔(들)), 망막 스캔 데이터(예컨대, 고객의 망막(들)의 이미지(들)), 안면 인식 데이터(예컨대, 고객의 안면의 이미지(들)) 및/또는 음성 데이터(예컨대, 고객의 음성의 녹음(들))를 포함할 수 있다. 미가공 바이오메트릭 데이터(예컨대, 이미지 및/또는 녹음) 대신에, 인증은 미가공 바이오메트릭 데이터로부터 유도된 프로세싱된 데이터, 예컨대 이미지 특징들, 음성 특징들 등을 사용할 수 있다. 추가로, 2개의 인자를 이용한 인증(two-factor authentication, 2FA)이 저장소(1927)에 의해 사용될 수 있다.
선택적으로, 부분 분배자(1925)는 저장소(1927)로 송신하기 전에 분배자 서명 개인 키(2093)를 사용하여 단일 암호화된 시크릿 부분(734) 및/또는 이중 암호화된 시크릿 부분(1939)을 서명할 수 있다. 서명이 사용되는 경우, 부분 보유자(1620)는 또한, 예컨대 단일 암호화된 시크릿 부분(734) 및/또는 이중 암호화된 시크릿 부분(1939)을 복호화하기 전에, 분배자 서명 공개 키(2095)를 사용하여 신뢰되는 소스(부분 분배자(1925))에 의해 단일 암호화된 시크릿 부분(734) 및/또는 이중 암호화된 시크릿 부분(1939)이 저장소(1927)에 저장되었음을 검증할 수 있다. 예시에서, 분배자 서명 개인 키(2093) 및 분배자 서명 공개 키(2095)는 EdDSA(Edwards-curve Digital Signature Algorithm) 예컨대, Ed25519에 따라 동작한다.
후술되는 바와 같이 (단일 또는 이중) 암호화된 시크릿 부분들이 부분 보유자들(1620)에서 재암호화되고, (예컨대, 저장소(1927)를 통해) 다시 부분 분배자(1925) 및/또는 시크릿 부분의 어셈블러에게 전송되는 경우, 유사한 선택적 서명 및 검증이 수행될 수 있다. 구체적으로, 부분 보유자(1620)는, 각각의 부분 보유자 서명 개인 키(2099)를 사용하여 재암호화된 시크릿 부분(들)을 선택적으로 서명할 수 있다. 서명이 사용되는 경우, 부분 분배자(1925) 및/또는 어셈블러는 또한, 예컨대, 재암호화된 시크릿 부분(들)을 복호화하기 전에, 부분 보유자 서명 공개 키(2097)를 사용하여, 신뢰되는 소스(부분 보유자(1620))에 의해 재암호화된 시크릿 부분(들)이 저장소(1927)에 저장되었음을 검증할 수 있다. 예시에서, 부분 보유자 서명 개인 키(2099) 및 부분 보유자 서명 공개 키(2097)는 EdDSA, 예컨대 Ed25519에 따라 동작한다.
일부 구성에서, 분배자 암호화 공개 키(2036)는 분배자 서명 공개 키(2095) 또는 분배자 서명 개인 키(2093)와 동일하다. 일부 구성에서, 분배자 복호화 개인 키(2040)는 분배자 서명 공개 키(2095) 또는 분배자 서명 개인 키(2093)와 동일하다.
일부 구성에서, 부분 보유자 암호화 공개 키(2043)는 부분 보유자 서명 공개 키(2097) 또는 부분 보유자 서명 개인 키(2099)와 동일하다. 일부 구성에서, 부분 보유자 복호화 개인 키(2047)는 부분 보유자 서명 공개 키(2097) 또는 부분 보유자 서명 개인 키(2099)와 동일하다.
도 21은, 부분들(예컨대, 이중 암호화된 시크릿 부분(1939))의 분배를 위해 부분 분배자(1925) 및 저장소(1927)를 사용하는 키 교환의 온라인 구현을 위한 예시적인 시스템/방법(2100)을 도시하는 블록도이다. 부분 분배자(1925)는, 부분들이 분배될 부분 보유자들(1620)의 수 및 신원을 결정할 수 있다.
부분 분배자(1925)는, 그것의 분배자 암호화 공개 키(2036) 및 시크릿 부분(예컨대, 이중 암호화된 시크릿 부분(1939))을 안전하게 보관하기 위해 저장소(1927)(가령, 구글/파이어스토어/파이어베이스)로 송신할 수 있다. 부분 분배자(1925)로부터 저장소(1927)로의 송신은: 네트워크, 가령 인터넷(예컨대, 이메일)을 통해 데이터를 전송하는 것; 저장소(1927)에서 스캔되고, 휴대용 저장 드라이브 상에 로딩되고, 저장소(1927) 안으로 물리적으로 삽입되는, SMS 메시지, MMS 메시지 등을 부분 분배자(1925)에서 QR 코드 (또는 부분 분배자(1925)에 의해 전자적으로 디스플레이되는 QR 코드)로 프린트하는 것을 포함할 수 있다.
부분 보유자(1620)는 그들의 컴퓨팅 장치(102)(예컨대, 모바일 장치)에서 애플리케이션(앱)을 설치 및 실행하고, 그들의 저장소 계정(예컨대, 구글 계정)으로 서명할 수 있다. 모바일 앱은, 키를 생성하고 저장소(1927)(가령, 파이어스토어/파이어베이스) 및 부분 분배자(1925)에게 (예컨대, 이메일을 통해) 통신되는 부분 보유자의 공개 키(2043)를 저장할 수 있다. 부분 분배자(1925)는, 시크릿(728)으로부터 또는 이중 암호화된 시크릿 부분들(738)을 수신하고, 이들을 후술하는 바와 같이 부분 보유자의 공개 키(2043)를 사용하여 이중 암호화된 시크릿 부분들(1939)로 재랩핑(re-wrapping)함으로써 이중 암호화된 시크릿 부분들(1939)을 생성할 수 있다.
도 22는 부분들(예컨대, 이중 암호화된 시크릿 부분들(1939))의 분배를 위해, 부분 분배자(1925) 및 저장소(1927)를 사용하는 키 교환의 온라인 구현을 위한 부분 보안(part security)와 관련된 예시적인 시스템/방법(2200)을 도시하는 블록도이다. 전술한 바와 같이, 부분 분배자(1925)는 저장소(1927)의 저장소(storage)/메모리에 부분 보유자(1620)를 위한 이중 암호화된 시크릿 부분들(1939)을 저장할 수 있다. 각각의 이중 암호화된 시크릿 부분(1939)은, 예컨대 부분 보유자(1620)가 요청하는 경우 각각의 부분 보유자(1620)에게 전송될 수 있다.
각각의 부분 보유자(1620)는 이후, 개인 키(2047)를 사용하여, 이들 각각의 이중 암호화된 시크릿 부분(1939)을 단일 암호화된 시크릿 부분(734)으로 복호화할 수 있다. 부분 보유자(1620) (또는 해커)가 그들의 이중 암호화된 시크릿 부분(1939)을 복호화하더라도, 단일 암호화된 시크릿 부분(734)은, 오로지 부분 분배자(1925)에게만 알려진 대칭 키(SYM2 키)(732)로 여전히 암호화될 것이다. 도 22는 단순화된 도면이며, 부분 분배자(1925), 저장소(1927) 및 부분 보유자(1620)는 다른 모듈 및/또는 데이터, 예컨대 도 19 및 20에 도시되는 것들을 더 포함할 수 있는 것으로 이해된다.
도 23은 다수의 분배자들(1925A-B) 및/또는 부분 보유자들(1620A-Z)의 다수의 그룹들(2350A-B)을 갖는 키 교환의 온라인 구현을 위한 예시적인 시스템/방법(2300)을 도시하는 블록도이다. 예시에서, 수탁자 월렛(1925A-B)(예컨대, 온라인 및/또는 오프라인임)은 분배자(1925)로서의 역할을 할 수 있다. 예컨대, 이중 암호화된 시크릿 부분의 제1 세트(1939-1)는, 저장소(1927)(가령 파이어스토어/파이어베이스)를 통해 부분 보유자들(1620A-B)의 제1 그룹(2350A)으로 제공되도록 제1 수탁자 월렛(1925A)을 위해 생성될 수 있다.
유사하게(예컨대, 동시에) 이중 암호화된 시크릿 부분(1939-2)의 제2 세트가 저장소(1927)(가령 파이어스토어/파이어베이스)를 통해 부분 보유자들(1620O-Z)의 제2 그룹(2350B)에 제공되도록 제2 수탁자 월렛(1925B)을 위해 생성될 수 있다. 예시에서, 각각의 상이한 부분 분배자들/수탁자 월렛(1925)은, 이중 암호화된 시크릿 부분들의 상이한 세트(1939)(예컨대, 상이한 적어도 하나의 자산 암호화 키(시크릿)(728A-B), 시크릿 부분들의 세트(730A-B), 단일 암호화된 시크릿 부분들의 세트(734A-B), 및 대칭 키들(732A-B)로부터 생성됨). 게다가, 각각의 분배자/수탁자 월렛(1925)은 (각각이 부분 보유자 암호화 공개 키(2043) 및 부분 보유자 복호화 개인 키(2047)를 포함하는) 부분 보유자 키쌍들의 상이한 세트와, 상이한 분배자 암호화 공개 키(2036) 및 분배자 복호화 공개 키(2040)를 이용할 수 있다. 예시에서, 부분 보유자 그룹들(2350A-B)은, 중복되거나 그러지 않을 수 있다. 도 23은 단순화된 도면이며, 부분 분배자(1925), 저장소(1927) 및 부분 보유자(1620)는 예컨대, 도 19-20에 도시되는 것과 같은 다른 모듈 및/또는 데이터를 더 포함할 수 있는 것으로 이해된다.
도 24a는 시크릿(728)을 재구성하기 위해 부분들을 오프라인 서명 서비스(308)로 반환시키기 위한 예시적인 시스템/방법(2400A)을 도시하는 블록도이다. 예시적인 시스템/방법(2400A)은 N개의 부분 보유자들(1620)에게 자산 암호화 키(시크릿)(728)의 이중 암호화된 시크릿 부분들(738)을 안전하게 분배하고, 요청되는 경우, 예컨대 자산 키에 액세스/이용하기 위해 자산 암호화 키(시크릿)(728)을 재구성하도록 동작할 수 있다. 예시에서, N개의 부분 소유자들(1620) 중 적어도 M개로부터의 이중 암호화된 시크릿 부분(738)이 자산 암호화 키(시크릿)(728)를 재구성하기 위해 요구된다.
도 24a의 시스템(2400A)에서 각각의 이중 암호화된 시크릿 부분(738)은 다음과 같이 부분 분배자(1925)에서 암호화된다: (1) 단일 암호화된 시크릿 부분(734)을 생성하기 위해 대칭 키(732)를 사용하는 대칭 암호화; 이에 후속하여 (2) 이중 암호화된 시크릿 부분(738)을 생성하기 위해 분배자 암호화 공개 키(2036)를 이용한 비대칭 암호화.
부분 분배자(1925)에서의 제1 암호화 단계 동안에, 샤미르 메타데이터가 단일 암호화된 시크릿 부분들(734)에 선택적으로 추가될 수 있다. 샤미르 메타데이터는, N개의 시크릿 부분들(730) 중 M개가 시크릿(728)을 재구성하는데 필요하다는, 보호되지 않은 시크릿 부분(730)으로부터 시크릿(728)을 재구성하기 위한 명령어 및/또는 요구사항을 제공할 수 있다. 샤미르 스플릿과 재구성은 N개의 구성 중 M개로 제한되지 않음을 유의해야 한다. 예컨대, 샤미르 재구성은 N1개 중의 M1 및 N2개 중의 M2를 요구할 수 있다. 즉, (N개 중의 M개보다 복잡한) 불리안 로직(Boolean logic)이, 예컨대 시크릿(728)을 재구성하기 위해, 상이한 임계치를 갖는 상이한 그룹의 부분 보유자들(1620)을 갖도록 사용될 수 있고, 샤미르 스플릿은, 5명의 이사들 중 3명 또는 50명의 직원 중 40명 또는 2개의 백업 사본 중의 2개가 재구성을 위해 요구되도록 수행될 수 있다. 특정 부분(암호화 또는 비암호화됨)에 대한 샤미르 메타데이터는 또한, 어떠한 부분 소유자(1620)가 그 부분에 대해 의도되었는지를 나타낼 수 있다.
선택적으로, 고유한 메시지 인증 코드(MAC) 태그가 각각의 이중 암호화된 시크릿 부분(738)에 추가될 수 있다. MAC 태그는 메시지의 수신자(예컨대, 부분 보유자(1620) 및/또는 어셈블러(2452))가 메시지가 명시된 발신자로부터 왔으며 변경되지 않았음을 검증하도록 허용하는 메시지에 추가된 정보이다. 예시에서, 시스템(2400A)에서 사용된 하나 또는 둘 모두의 암호화 단계는, 예컨대 함수들의 CryptoBox 또는 Libsodium SealedBox에 대한 단일 함수 호출을 사용하여, 함께 암호화 및 서명을 수행할 수 있다. 예시에서, MAC 태그는 SealedBox 또는 CryptoBox에 의해 적용된 암호화/서명에 의해 선택적으로 추가될 수 있다. MAC 태그는, 본 명세서에 설명된 선택적 서명(예컨대, Ed25519를 사용함) 중 임의의 것 대신에 또는 그에 추가하여 사용될 수 있다.
예시에서, 이중 암호화된 시크릿 부분들(738)은, 예컨대 물리적인 인쇄물, 안전한 전자 전송 및/또는 휴대용 저장 드라이브를 통해 안전한 보관을 위해 QR 코드(854)를 통해 부분 보유자들에게 분배될 수 있다. 시크릿(728)이 재구성될 필요가 있는 경우, (상이한 이중 암호화된 시크릿 부분(738)을 표현하는) QR 코드(854)가 어셈블러(2452)(예컨대, 안전한 위치에 있는 컴퓨팅 장치(102))에 연결되거나 또는 이미징 장치(1176)에 제시될 수 있다. QR 코드(854)는 (예컨대, 부분 보유자의 전화기에서) 물리적인 인쇄물 또는 전자 디스플레이 상에 제시될 수 있다.
어셈블러(2452)는 부분 분배자(1925)와 동일하거나 그렇지 않을 수 있다. 예컨대, 이들은 동일한 물리적인 하우징 내에 위치하거나 및/또는 동일한 컴퓨팅 장치(102)에 의해 구현될 수 있다. 어셈블러(2452)가 부분 분배자(1925)로부터 물리적으로 분리된 경우, 어셈블러(2452)는, 예컨대 보안된 네트워크 통신, 프린트되거나 (전자 디스플레이된) QR 코드를 스캐닝 및/또는 휴대용 저장 드라이브를 통해, 부분 분배자(1925)로부터 적어도 분배자 복호화 개인 키(2040) 및 대칭 키(732)를 수신할 수 있다. 어셈블러(2452)가 부분 분배자(1925)로부터 물리적으로 분리된 경우, 이들은 본 명세서에서 논의되는 것처럼 분리되거나 동일한 암호화 키쌍 및/또는 서명 키쌍을 사용할 수 있다. 예시에서, 어셈블러(2452)는, 오프라인 서명 서비스(308)를 구현할 때 부분 분배자(1925)로부터 물리적으로 분리되지만, 온라인 서명 서비스(1809)를 구현할 때는 그러하지 않으며, 임의의 적절한 구성이 사용될 수 있다. 이들이 물리적으로 분리되어 있는지와 무관하게, 어셈블러(2452) 및 부분 분배자(1925)는 단일 "시스템"으로 지칭될 수 있다.
어셈블러(2452)는 이중 암호화된 시크릿 부분들(738)을 생성하기 위해 부분 보유자들(1620) 중 적어도 일부(예컨대, 적어도 M개)로부터 QR 코드(854)를 스캔할 수 있다. 비대칭 복호화 모듈(220)은, 단일 암호화된 시크릿 부분(734)을 생성하기 위해 분배자 복호화 개인 키(2040)로 각각의 수신된 이중 암호화된 시크릿 부분(738)을 복호화할 수 있다. 예시에서, 분배자 복호화 개인 키(2040)는, 모든 부분 보유자(1620)로부터의 이중 암호화된 시크릿 부분들(738)을 복호화하는데 사용될 수 있지만, 오로지 부분 분배자(1925) (및 부분 분배자(1925)와 상이한 경우 어셈블러(2452))에게만 알려질 수 있다.
대칭 복호화 모듈(216)은 시크릿 부분(730)을 생성하기 위해 (대칭 키(732)를 사용하여) 단일 암호화된 시크릿 부분(들)(734)을 복호화할 수 있다. 오프라인 서명 서비스(308)는, 시크릿(738)을 재구성하기에 충분한 시크릿 부분들(730)이 수집되었는지를 결정할 수 있다. 이 결정은 단일 암호화된 시크릿 부분(734) 내의 샤미르 메타데이터에 기초할 수 있다. 샤미르 메타데이터에 따라, 충분한 시크릿 부분(730)(예컨대, N개 중의 M개)이 수집되지 않은 경우, 시크릿(728)의 재구성이 시도되지 않는다.
샤미르 메타데이터에 따라, 충분한 시크릿 부분(730)(예컨대, N개 중의 M개)이 수집된 경우, 키 재구성 모듈(212)은 자산 암호화 키(시크릿)(728)를 생성하기 위해 다수의 시크릿 부분(730)을 어셈블(assemble)할 수 있다. 단일 대칭 키(732)가 모든 단일 암호화된 시크릿 부분들(734)을 복호화하는데 사용될 수 있거나, 상이한 대칭 키(732)가 각각의 단일 암호화된 시크릿 부분들(734)을 위해 사용될 수 있다.
재구성된 시크릿(728)은 자산 키에 대한 액세스를 획득(예컨대, 복호화)하기 위해 사용될 수 있다. 자산 키는, 높은 잔고를 갖는 수탁자 계좌와 연관된 (예컨대, 거래에 서명하기 위한) 개인 키, 특히 높은 값어치의 데이터를 복호화하기 위한 암호 키 등일 수 있다. 따라서, 자산 암호화 키(시크릿)(728)의 재구성에 후속하여, 자산 키가 거래에 서명하거나 및/또는 데이터를 복호화하는데 사용될 수 있다.
도 24b는 시크릿(728)을 재구성하기 위해 오프라인 서명 서비스(308)로 부분들을 반환하기 위한 다른 예시적인 시스템/방법(2400B)을 도시하는 블록도이다. 도 24b는 도 24a와 동일한 장치, 모듈 및 데이터 중 다수를 포함할 수 있다. 달리 명시되지 않는다면, 도 24b의 장치, 모듈 및 데이터는 도 24a의 장치, 모듈 및 데이터와 유사한 방식으로 동작한다.
도 24a의 시스템(2400A)과 같이, 시크릿 부분(730)은 우선 대칭 키(732)를 사용하여 대칭으로 암호화될 수 있다. 하지만, 도 24a의 시스템(2400A)과는 달리, (도 24b의 시스템(2400B)에서) 각각의 이중 암호화된 시크릿 부분(1939)을 생성하기 위해 그 이후 사용되는 비대칭 암호화는, 이중 암호화된 시크릿 부분(1939)이 의도된 부분 보유자(1620)의 부분 보유자 암호화 공개 키(2043)를 사용할 수 있다. 부분 분배자(1925)에서의 대칭 암호화 동안에, 샤미르 메타데이터는 (이중 암호화된 시크릿 부분(1939)으로의 비대칭 암호화 전에) 단일 암호화된 시크릿 부분(734)에 선택적으로 추가될 수 있다. 선택적으로, MAC 태그가, 시스템(2400B)에서 암호화 (및 선택적 서명) 단계 중 하나 또는 둘 모두 동안에, 이중 암호화된 시크릿 부분(1939)에 추가될 수 있다.
앞서와 마찬가지로, (부분 보유자의 공개 키(2043)로 암호화된) 이중 암호화된 시크릿 부분(1939)은, QR 코드로 인쇄되어 부분 보유자들(1620)에게 분배되거나, 전자적으로 전송되거나 및/또는 휴대용 저장 드라이브를 통해 전송될 수 있다. 이중 암호화 시크릿 부분(1939)을 수신한 이후, 각각의 부분 보유자(1620)는, 제1 비대칭 복호화 모듈(220A)을 사용하여, (이중 암호화된 시크릿 부분(1939)을 암호화하는데 사용된 부분 보유자 암호화 공개 키(2043)에 대응하는) 그들 각각의 부분 보유자 복호화 개인 키(2047)로 그들의 이중 암호화된 시크릿 부분(1939)을 복호화할 수 있다. 각각의 부분 보유자 개인 키(2047)는, 각각의 부분 보유자(1620)에 대해 고유하고 (이들에 의해서만 알려질 수 있다). 발생된 단일 암호화된 시크릿 부분(734)은 이후, (비대칭 암호화 모듈(218)에서) 분배자 암호화 공개 키(2036)로 재암호화될 수 있다. 따라서, 각각의 부분 보유자(1620)는 (그것의 부분 보유자 암호화 공개 키(2043)로 암호화된) 이중 암호화된 시크릿 부분(1939)을 수신하고, (분배자 암호화 공개 키(2036)로 암호화된) 이중 암호화된 시크릿 부분(738)을 나타내는 QR 코드(854)를 생성할 수 있다.
QR 코드(854)는 이미징 장치(1176)에서 디스플레이되거나, (예컨대, 보안된 위치의 컴퓨팅 장치(102)와 같은) 어셈블러(2452)에 연결될 수 있다. 어셈블러(2452)는 부분 분배자(1925)와 동일하거나 그렇지 않을 수 있다. 예컨대, 이들은 동일한 물리적인 하우징 내에 위치하거나 및/또는 동일한 컴퓨팅 장치(102)에 의해 구현될 수 있다. 어셈블러(2452)가 부분 분배자(1925)로부터 물리적으로 분리된 경우, 어셈블러(2452)는, 예컨대 보안된 네트워크 연결, 인쇄되거나 (전자적으로 디스플레이되는) QR 코드를 스캐닝 및/또는 휴대용 저장 드라이브를 통해, 부분 분배자(1925)로부터 적어도 분배자 복호화 개인 키(2040) 및 대칭 키(732)를 수신할 수 있다. 선택적으로, 부분 보유자(1620)로부터 어셈블러(2452)로의 통신은 또한, 저장소(1927)를 통해 발생할 수 있다.
어셈블러(2452)는, 적어도 하나의 이중 암호화된 시크릿 부분(738)을 생성하기 위해 부분 보유자(1620) 중 적어도 일부(예컨대, 적어도 M개)로부터 QR 코드(854)를 스캔할 수 있다. 오프라인 서명 서비스(308)에서, 제2 비대칭 복호화 모듈(220B)은, 단일 암호화된 시크릿 부분(734)을 생성하기 위해, 분배자 복호화 개인 키(2040)로 각각의 수신된 이중 암호화된 시크릿 부분(738)을 복호화할 수 있다. 예시에서, 분배자 복호화 개인 키(2040)가 모든 부분 보유자(1620)로부터 이중 암호화된 시크릿 부분(738)을 복호화하는데 사용될 수 있지만, 이는 오로지 분배자(1952) (및 분배자(1952)와 상이하다면 어셈블러(2452))에게만 알려질 수 있다.
대칭 복호화 모듈(216)은 (대칭 키(732)를 사용하여) 단일 암호화된 시크릿 부분(들)(734)을 시크릿 부분(730)으로 복호화할 수 있다. 오프라인 서명 서비스(308)는, 시크릿(728)을 재구성하기에 충분한 시크릿 부분들(730)이 수집되었는지를 결정할 수 있다. 이 결정은 단일 암호화된 시크릿 부분(734)의 샤미르 메타데이터에 기초할 수 있다. 샤미르 메타데이터에 따라, 충분한 시크릿 부분(730)(예컨대, N개 중의 M개)가 수집되지 않은 경우, 시크릿(728)의 재구성이 시도되지 않는다.
샤미르 메타데이터에 따라, 충분한 시크릿 부분(730)(예컨대, N개 중의 M개)이 수집된 경우, 키 재구성 모듈(212)은 자산 암호화 키(시크릿)(728)를 생성하기 위해 다수의 시크릿 부분들(730)을 어셈블할 수 있다. 단일 대칭 키(732)가 모든 단일 암호화된 시크릿 부분들(734)을 복호화하는데 사용될 수 있거나, 상이한 대칭 키(732)가 각각의 단일 암호화된 시크릿 부분들(734)을 위해 사용될 수 있다.
재구성된 시크릿(728)은 자산 키에 대한 액세스를 획득(예컨대, 복호화)하기 위해 사용될 수 있다. 자산 키는, 높은 잔고를 갖는 수탁자 계좌와 연관된 (예컨대, 거래에 서명하기 위한) 개인 키, 특히 높은 값어치의 데이터를 복호화하기 위한 암호 키 등일 수 있다. 따라서, 자산 암호화 키(시크릿)(728)의 재구성에 후속하여, 자산 키가 거래에 서명하거나 및/또는 데이터를 복호화하는데 사용될 수 있다.
도 24c는 시크릿(728)을 재구성하기 위해 오프라인 서명 서비스(308)로 부분들을 반환하기 위한 또 다른 예시적인 시스템/방법(2400C)을 도시하는 블록도이다. 도 24c는 도 24a와 동일한 장치, 모듈 및 데이터 중 다수를 포함할 수 있다. 달리 명시되지 않는다면, 도 24c의 장치, 모듈 및 데이터는 도 24a의 장치, 모듈 및 데이터와 유사한 방식으로 동작한다.
도 24c의 시스템(2400C)에서, 시크릿 부분(730)은 각각의 단계가 대칭 또는 비대칭인 2개의 암호화 단계를 사용하여 이중 암호화된 시크릿 부분(738)으로 암호화된다. 예컨대, 이중 암호화된 시크릿 부분(738)은, (1) 대칭 키(732)를 사용한 제1 대칭 단계 및 분배자 암호화 공개 키(2036) 또는 부분 보유자 암호화 공개 키(2043)를 사용한 제2 비대칭 단계; (2) 대칭 키(732)를 사용한 제1 대칭 단계 및 대칭 키(732)를 다시 사용하거나 (또는 상이한 대칭 키를 사용하는) 제2 대칭 단계; (3) 분배자 암호화 공개 키(2036) 또는 부분 보유자 암호화 공개 키(2043)를 사용한 제1 비대칭 단계 및 대칭 키(732)를 사용한 제2 대칭 단계; 또는 (4) 분배자 암호화 공개 키(2036) 또는 부분 보유자 암호화 공개 키(2043)를 사용한 제1 비대칭 단계 및 분배자 암호화 공개 키(2036) 또는 부분 보유자 암호화 공개 키(2043)를 사용한 제2 비대칭 단계를 사용하여 생성될 수 있다. 이중 암호화된 시크릿 부분(738)의 생성 동안에, 부분 분배자(1925)는, (제1 암호화 단계 동안에) 단일 암호화된 시크릿 부분(734)에 또는 (제2 암호화 단계 동안에) 이중 암호화된 시크릿 부분(738)에 샤미르 메타데이터를 선택적으로 추가할 수 있다. 선택적으로, MAC 태그가 시스템(2400C)에서 암호화 단계 중 하나 또는 둘 모두 동안에 이중 암호화된 시크릿 부분(1939)에 추가될 수 있다.
(이중 암호화된 시크릿 부분(738)을 표현하는) QR 코드(854)는 부분 보유자들(1620)에게 분배되고, 시크릿(728) 재구성을 원하는 경우, QR 코드(854) 중 적어도 일부가 이미징 장치에 제시되거나, 어셈블러(2452)에 연결된다. 일단 이중 암호화된 시크릿 부분(738)이 이미징 장치(1176)에 제시된 각각의 QR 코드(854)로부터 결정되면, 제1 복호화 모듈(219A)은 각각의 이중 암호화된 시크릿 부분(738)으로부터 단일 암호화된 시크릿 부분(734)을 생성할 수 있다. 제1 복호화 모듈(219A)은 (대칭 키(732)를 사용하는) 대칭 복호화 모듈(216) 또는 (비대칭 키, 가령 분배자 복호화 개인 키(2040) 또는 부분 보유자 복호화 개인 키(2047)를 사용하는) 비대칭 복호화 모듈(220)일 수 있다.
제2 복호화 모듈(219B)은, 각각의 단일 암호화된 시크릿 부분(들)(734)을 시크릿 부분(730)으로 복호화할 수 있다. 제2 복호화 모듈(219B)은, (대칭 키, 가령 대칭 키(732)를 사용하는) 대칭 복호화 모듈(216) 또는 (비대칭 키, 가령 분배자 복호화 개인 키(2040) 또는 부분 보유자 복호화 개인 키(2047)를 사용하는) 비대칭 복호화 모듈(220)일 수 있다.
오프라인 서명 서비스(308)는, 시크릿(728)을 재구성하기에 충분한 시크릿 부분(730)이 수집되었는지를 결정할 수 있다. 이 결정은 단일 암호화된 시크릿 부분(734)의 샤미르 메타데이터에 기초할 수 있다. 샤미르 메타데이터에 따라, 충분한 시크릿 부분(730)(예컨대, N개 중의 M개)가 수집되지 않은 경우, 시크릿(728)의 재구성이 시도되지 않는다.
샤미르 메타데이터에 따라, 충분한 시크릿 부분(730)(예컨대, N개 중의 M개)이 수집된 경우, 키 재구성 모듈(212)은 자산 암호화 키(시크릿)(728)를 생성하기 위해 다수의 시크릿 부분들(730)을 어셈블할 수 있다. 단일 대칭 키(732)가 모든 단일 암호화된 시크릿 부분들(734)을 복호화하는데 사용될 수 있거나, 상이한 대칭 키(732)가 각각의 단일 암호화된 시크릿 부분들(734)을 위해 사용될 수 있다.
재구성된 시크릿(728)은 자산 키에 대한 액세스를 획득(예컨대, 복호화)하기 위해 사용될 수 있다. 자산 키는, 높은 잔고를 갖는 수탁자 계좌와 연관된 (예컨대, 거래에 서명하기 위한) 개인 키, 특히 높은 값어치의 데이터를 복호화하기 위한 암호 키 등일 수 있다. 따라서, 자산 암호화 키(시크릿)(728)의 재구성에 후속하여, 자산 키가 거래에 서명하거나 및/또는 데이터를 복호화하는데 사용될 수 있다.
선택적으로, 도 24a-c 중 임의의 하나에서, 임의의 전송된 부분들은, 송신기에 속하는 서명 개인 키를 사용하여 (암호화되는 것에 추가로) 서명될 수 있고, 그 이후 수신기는 송신기에 속하는 서명 공개 키를 사용하여 서명을 검증할 수 있다. 추가로, 암호화가 발생한 시간을 나타내는 타임스탬프가, 도 24a-c에 설명된 암호화 중 임의의 것 동안에 선택적으로 추가될 수 있다. 타임스탬프는 (인코딩 또는 인코딩되지 않은) 다양한 부분들이 여전히 유효(viable)하거나 그들이 너무 오래되어 제거되어야 하는지 여부를 결정할 수 있다.
도 25a는 시크릿(728)을 재구성하기 위해 (예컨대, 어셈블러(2452)에서 구현되는) 온라인 서명 서비스(1809)로 부분들을 반환하기 위한 예시적인 시스템/방법(2500A)을 도시하는 블록도이다. 첫째로, 이중 암호화된 시크릿 부분(1939)은, 단일 암호화된 시크릿 부분(734)을 생성하기 위해 분배자 암호화 공개 키(2036)를 사용하여 각각의 시크릿 부분(730)을 비대칭적으로 암호화함으로써 부분 분배자(1925)에 의해 생성될 수 있다. 둘째로, 각각의 단일 암호화된 시크릿 부분(734)은, 이중 암호화된 시크릿 부분(1939)을 생성하기 위해 (부분이 의도된 각각의 부분 보유자(1620)에게 속하는) 부분 보유자 암호화 공개 키(2043)로 비대칭적으로 암호화될 수 있다.
따라서, 이중 암호화된 시크릿 부분(1939)은, 2개의 비대칭 암호화 단계를 사용하여 도 25a의 시스템(2500A)에서 생성되며, 제1 단계는 분배자 암호화 공개 키(2036)를 사용하고, 제2 단계는 각각의 부분 보유자 암호화 공개 키(2043)를 사용한다. 부분 분배자(1925)에서의 제1 암호화 단계 동안에, 제1 서명이, 분배자 서명 개인 키(2093)를 사용하여 단일 암호화된 시크릿 부분들(734)에 선택적으로 적용될 수 있다. 부분 분배자(1925)에서의 제2 암호화 단계 동안에, 제2 서명이, 분배자 서명 개인 키(2093)를 사용하여 이중 암호화된 시크릿 부분들(1939)에 선택적으로 적용될 수 있다.
부분 분배자(1925)에서의 제1 암호화 단계 동안에, 샤미르 메타데이터가 단일 암호화된 시크릿 부분들(734)에 선택적으로 추가될 수 있다. 샤미르 메타데이터는, N개의 시크릿 부분들(730) 중의 M개가 시크릿(728)을 재구성하는데 필요하다는, 보호되지 않은 시크릿 부분(730)으로부터 시크릿(728)을 재구성하기 위한 명령어 및/또는 요구사항을 제공할 수 있다. 샤미르 스플릿과 재구성은 N개의 구성 중 M개로 제한되지 않음을 유의해야 한다. 예컨대, 샤미르 재구성은, N1개 중의 M1 및 N2개 중의 M2를 요구할 수 있다. 즉, (N개 중의 M개보다 복잡한) 불리안 로직(Boolean logic)이, 예컨대 시크릿(728)을 재구성하기 위해, 상이한 임계치를 갖는 상이한 그룹의 부분 보유자들(1620)을 갖도록 사용될 수 있고, 샤미르 스플릿은, 5명의 이사들 중 3명 또는 50명의 직원 중 40명 또는 2개의 백업 사본 중의 2개가 재구성을 위해 요구되도록 수행될 수 있다. 특정 부분(암호화 또는 비암호화됨)에 대한 샤미르 메타데이터는 또한, 어떠한 부분 소유자(1620)가 그 부분에 대해 의도되었는지를 나타낼 수 있다. 선택적으로, MAC 태그가, 시스템(2500A)에서 암호화 (및 선택적 서명) 단계 중 하나 또는 둘 모두 동안에 이중 암호화된 시크릿 부분들(1939)에 추가될 수 있다.
이중 암호화된 시크릿 부분들(1939)은, 임의의 적절한 방법, 예컨대 보안된 전자 통신, 저장소(1927)에 디스플레이되는 QR 코드를 출력하는 것, 저장소(1927)에 QR 코드를 전자적으로 디스플레이하는 것 등을 통해 저장소(1927)(가령, 파이어스토어/파이어베이스)로 분배될 수 있다.
각각의 부분 보유자(1620)는, 저장소(1927)로부터, 예컨대 부분 보유자(1620)에서의 사용자 입력에 응답하여, 그것을 위해 의도되었던 각각의 이중 암호화된 시크릿 부분(1939)을 리트리브할 수 있다. 리트리브에 후속하여, 제2 서명이 부분 분배자(1925)에서 제2 비대칭 암호화 단계 동안에 적용되는 경우, 각각의 부분 보유자(1620)는 분배자 서명 공개 키(2095)를 사용하여, 그것의 이중 암호화된 시크릿 부분(1939) 상의 제2 서명을 선택적으로 검증할 수 있다. 예시에서, 부분 보유자(1620)는, 제2 서명이 검증될 수 없다면 이중 암호화된 시크릿 부분(1939)을 파기할 수 있다. 각각의 부분 보유자(1620)는 이후, (제1 비대칭 복호화 모듈(220A)을 사용하여) 이중 암호화된 시크릿 부분(1939)을 단일 암호화된 시크릿 부분(734)으로 비대칭적으로 복호화할 수 있다. 이 단계에서 단일 암호화된 시크릿 부분(734)은, (대칭 암호화가 아닌) 비대칭 암호화의 하나의 계층 및 선택적인 제1 서명을 갖는 시크릿 부분(730)이다.
각각의 부분 보유자(1620)는, 이중 암호화된 시크릿 부분(738)을 생성하기 위해 분배자 암호화 공개 키(2036)를 사용하여 (비대칭 암호화 모듈(218)에서) 단일 암호화된 시크릿 부분(734)을 재암호화할 수 있고, (선택적으로 부분 보유자 서명 개인 키(2099)를 사용하여 제3 서명을 추가할 수 있다). 선택적으로, 부분 보유자(1620)는 또한, 비대칭 재암호화가 부분 보유자(1620)에게서 언제 수행되었는지를 나타내는 타임스탬프를 발생된 이중 암호화된 시크릿 부분(738)에 추가할 수 있다. 각각의 부분 보유자(1620)는 저장소(1927)로 또는 온라인 서명 서비스(1809)로 직접 발생된 이중 암호화된 시크릿 부분(738)을 송신할 수 있다.
예시에서, (서버가 없는 기능을 구현하는) 각각의 부분 보유자(1620)는, 발생된 이중 암호화된 시크릿 부분(738)을 저장소(1927)에 공표하고, 새로운 발행-구독 모델(publish/subscribe, PubSub) 토픽에 작성하는 발행-구독 모델을 사용하여 비동기식 메시징을 송신할 수 있다. 이러한 구성에서, 온라인 서명 서비스(1809)는, 발행-구독 모델 토픽으로부터의 메시지를 예컨대, 송신 서비스(2554)를 사용하여 소비할 수 있다. 하지만, 부분 보유자(1620)는, 하나 이상의 중개 장치 및/또는 서비스와 함께 또는 이들 없이, 그들의 이중 암호화된 시크릿 부분(738)을 온라인 서명 서비스(1809)로 송신하기 위해 임의의 적절한 방법을 사용할 수 있다.
각각의 이중 암호화된 시크릿 부분(738)을 수신하면, 온라인 서명 서비스(1809)는, 부분 보유자 서명 공개 키(2097)를 사용하여, (QR 코드(854)로부터 결정된) 이중 암호화된 시크릿 부분(738) 상의 제3 서명이 그것을 전송한 부분 보유자(1620)에 속하는지를 선택적으로 검증할 수 있다. 예시에서, 온라인 서명 서비스(1809)는, 제3 서명이 검증될 수 없다면, 이중 암호화된 시크릿 부분(1939)을 폐기할 수 있다. 즉, 일부 구성에서, 온라인 서명 서비스(1809)는, 예컨대, 저장소(1927)를 통해, 오로지 이중 암호화된 시크릿 부분(738) 상의 제3 서명이 그것을 전송한 부분 보유자(1620)와 일치하는 경우에만 이중 암호화된 시크릿 부분(738)을 복호화할 수 있다.
온라인 서명 서비스(1809)는, 분배자 복호화 개인 키(2040)를 사용하여, (제2 비대칭 복호화 모듈(220B)을 사용하여) 이중 암호화된 시크릿 부분(738)을 단일 암호화된 시크릿 부분(734)으로 복호화할 수 있다. 이것은, 온라인 서명 서비스(1809)가, (부분 보유자(1620)에서 단일 암호화된 부분(734)에 추가된) 타임스탬프가 최근인지, 예컨대 미리 결정된 시간 임계치보다 오래되지 않았는지를 선택적으로 검증하는 것을 포함할 수 있다. 일부 구성에서, 온라인 서명 서비스(1809)는, 타임스탬프가 미리 결정된 시간 임계치보다 오래된 경우 단일 암호화된 시크릿 부분(734)을 폐기할 수 있다.
온라인 서명 서비스(1809)는, 단일 암호화된 시크릿 부분(734) 상의 (부분 분배자(1925)에서 적용된) 제1 서명이, 부분 분배자(1925)에 속하는지를 선택적으로 검증할 수 있다. 제3 비대칭 복호화 모듈(220C)은 이후, 분배자 복호화 개인 키(2040)를 사용하여 단일 암호화된 시크릿 부분(734)을 시크릿 부분(730)으로 복호화할 수 있다. 예시에서, 어셈블러(2452)는, 민감한 데이터, 가령 비대칭 복호화 모듈(220B-C)에 의해 사용된 분배자 복호화 개인 키(2040)를 저장하기 위해, 보안된 메모리를 사용하는 볼트(vault, 2558)를 구현할 수 있다.
온라인 서명 서비스(1809)는 또한, 이제 복호화된 시크릿 부분(730)을 전송한 부분 보유자(1620)가 예측된 부분 보유자(1620)와 일치하는 지를, 샤미르 메타데이터를 살펴봄으로써 선택적으로 검증할 수 있다. 예시에서, 온라인 서명 서비스(1809)는, 이제 복호화된 시크릿 부분(730)을 전송한 부분 보유자(1620)가 예측된 부분 보유자(1620)와 일치하는 경우에만 시크릿(728)의 재구성을 시도할 수 있다.
온라인 서명 서비스(1809)는 또한, 시크릿(728)(또한, 자산 암호화 키(728)로도 지칭됨)을 재구성하기에 충분한 시크릿 부분들(730)이 수집되었는지를 결정할 수 있다. 온라인 서명 서비스(1809)가, 샤미르 메타데이터에 의해 명시된 충분한 시크릿 부분들(730)(예컨대, N개 중의 M개)이 수집되었다고 결정하는 경우, 키 재구성 모듈(212)은 시크릿(728)을 재구성할 수 있다. 재구성된 시크릿(728)은 자산 키로의 액세스를 획득(예컨대, 복호화)하는데 사용될 수 있다. 자산 키는, 높은 잔고를 갖는 수탁자 계좌와 연관된 (예컨대, 거래에 서명하기 위한) 개인 키, 특히 높은 값어치의 데이터를 복호화하기 위한 암호 키 등일 수 있다. 따라서, 자산 암호화 키(시크릿)(728)의 재구성에 후속하여, 자산 키가 거래에 서명하거나 및/또는 데이터를 복호화하는데 사용될 수 있다.
일부 구성에서, 부분 분배자(1925) 및/또는 온라인 서명 서비스(1809)는, 전술한 바와 같은 시스템(2500A)에서 사용된 관련 키들을 교환(rotate)(예컨대, 새로운 버전을 생성하고 분배)시킬 수 있다. 예시에서, 적어도 하나의 프로세서는: (1) 시크릿/자산 암호화 키/SYM1 키(728); (2) 대칭 키(732)(SYM2); (3) 분배자 복호화 개인 키(2040) 및 분배자 암호화 공개 키(2036); 및/또는 (4) 분배자 서명 개인 키(2093) 및 분배자 서명 공개 키(2095)의 새로운 세트를 생성할 수 있다. 예시에서, 적어도 하나의 키는 주기적으로, 예컨대 매일, 매주, 매달, 매해 등 교환된다.
새로운 키(들)의 생성에 후속하여: 새로운 시크릿 부분들(730)이 새로운 시크릿/자산 암호화 키/SYM1 키(728)로부터 생성된다; 새로운 시크릿 부분들(730)은 2개의 단계(예컨대, 전술한 2개의 비대칭 암호화 단계들)로 암호화되고, 분배자 서명 개인 키(2093)를 사용하여 각각의 단계에서 선택적으로 서명된다; 그리고 발생된 이중 암호화된 시크릿 부분(1939)은, 저장소(1927)로 전송(예컨대, 기입(written to))된다. 저장소(1927)는, 일정 기간 동안 오래된(교환 이전) 이중 암호화된 시크릿 부분들(1939) 및 새로운(교환 이후) 이중 암호화된 시크릿 부분들(1939)을 저장할 수 있다.
부분 보유자들(1620)은, 예컨대, 텍스트 메시지, 이메일, 푸시 알림, 자동화된 전화 통화, 다른 인-애플리케이션 메시징 등을 통해, 저장소(1620)에 새로운 이중 암호화된 시크릿 부분들(1939)이 이용가능하게 되었음을 통지받을 수 있다. 각각의 부분 보유자(1620) 상의 애플리케이션은, 각각의 부분 보유자(1620)를 위해 새로운 이중 암호화된 시크릿 부분들(1939)을 식별 및 다운로드할 수 있고, 이후 부분 보유자(1620)는 이를 복호화 및 전술한 바와 같이 (분배자 암호화 공개 키(2036)로) 재암호화할 수 있다.
특정 부분 보유자는, 부분 보유자(1620)가 이중 암호화된 시크릿 부분(1939)의 이전 및 새로운 분배 동안에 부분 보유자(1620)로 지정되었다면, 일정 기간 동안 그것의 오래된 (교환 이전) 이중 암호화된 시크릿 부분(1939) 및 그것의 새로운 (교환 이후) 이중 암호화된 시크릿 부분(1939)을 저장할 수 있음에 유의해야 한다. 또한, 새로운 및/또는 상이한 부분 보유자(1620)가 키 교환 동안에 지정될 수 있다. 따라서, 새롭게 지정된 부분 보유자(1620)는 키 교환 동안에 그것의 첫번째 이중 암호화된 시크릿 부분(1939)을 수신할 수 있다. 역으로, 교환 이후 더 이상 지정된 부분 보유자(1620)가 아닌, 이전에 지정된 부분 보유자(1620)는, 오래된(회전 이전) 이중 암호화된 시크릿 부분(1939)을 보유할 수 있지만, 키 교환 동안에 새로운(회전 이후) 이중 암호화된 시크릿 부분(1939)을 수신하지 않는다.
온라인 서명 서비스(1809)는, 예컨대, 오래된 시크릿/자산 암호화 키/SYM1 키(728)를 재구성하기에 충분하고, 각각의 시크릿 부분들(730)로 복호화되는 복수의 오래된(교환 이전) 이중 암호화된 시크릿 부분(738)을 수신할 수 있다. 이것은, 예컨대, 오래된 부분들의 샤미르 메타데이터에 명시되는 바와 같은, N개의 오래된 시크릿 부분(730) 중의 M개 또는 N개 중의 N개를 요구할 수 있다. 온라인 서명 서비스(1809)는 또한, 새로운 시크릿/자산 암호화 키/SYM1 키(728)를 재구성하기에 충분하고, 각각의 시크릿 부분들(730)로 복호화되는 복수의 새로운(교환 이후) 이중 암호화된 시크릿 부분(738)을 수신할 수 있다. 이것은, 예컨대, 새로운 부분들의 샤미르 메타데이터에 명시되는 바와 같은, N개의 새로운 시크릿 부분(730) 중의 M개 또는 N개 중의 N개를 요구할 수 있다.
예시에서, 시크릿(728)은, 자산 키로의 액세스를 획득(예컨대, 복호화)하는데 사용될 수 있다. 자산 키는, 높은 잔고를 갖는 수탁자 계좌와 연관된 (예컨대, 거래에 서명하기 위한) 개인 키, 특히 높은 값어치의 데이터를 복호화하기 위한 암호 키 등일 수 있다. 따라서, 자산 암호화 키(시크릿)(728)의 재구성에 후속하여, 오래된 시크릿(728)은, (선택적으로, 자산 키가 거래에 서명하거나 및/또는 데이터를 복호화하는데 사용된 이후) 자산 키를 복호화하는데 사용될 수 있고, 새로운 시크릿(728)은 자산 키를 재암호화하는데 사용된다.
주기적인 키 교환(key rotation)은: (1) 부분 보유자(1620) 워크플로우가 실현되는 것(exercised) - 아무도 그들의 장치가 액세스를 손실하지 않는 것; (2) 지정된 그룹의 부분 보유자들(1620)은, 키 교환이 새로운 부분 보유자(1620)를 수용하고, 오래된 부분 보유자(1620)를 제거하는 주기적인 기회를 제공하기 때문에 시간에 걸쳐 변경될 수 있는 것을 보장할 것이다.
도 25b는 시크릿(728)을 재구성하기 위해 (예컨대, 어셈블러(2452)에 구현된) 온라인 서명 서비스(1809)로 부분들을 복귀시키기 위한 다른 예시적인 시스템/방법(2500B)을 도시하는 블록도이다. 도 25b는 도 25a의 장치, 모듈 및 데이터와 동일한 것 중 다수를 포함할 수 있다. 달리 명시되지 않는다면, 도 25b의 장치, 모듈 및 데이터는 도 25a의 장치, 모듈 및 데이터와 유사한 방식으로 동작한다.
도 25b의 시스템(2500B)에서, 이중 암호화된 시크릿 부분(1939)은, 첫째로, 단일 암호화된 시크릿 부분(734)을 생성하기 위해 대칭 키(732)를 사용하여 각각의 시크릿 부분(730)을 우선 암호화함으로써 부분 분배자(1925)에 의해 생성될 수 있다. 둘째로, 각각의 단일 암호화된 시크릿 부분(734)은, 이중 암호화된 시크릿 부분들(1939)을 생성하기 위해 (부분이 의도된 각각의 부분 보유자(1620)에 속하는) 부분 보유자 암호화 공개 키(2043)로 비대칭적으로 암호화될 수 있다.
따라서, 도 25a의 시스템(2500A)과 대조적으로, 이중 암호화된 시크릿 부분(1939)은, (대칭 키(732)를 사용한) 제1 대칭 암호화 단계 및 (각각의 부분 보유자 암호화 공개 키(2043)를 사용한) 제2 비대칭 암호화 단계를 사용하여 도 25b의 시스템(2500B)에서 생성된다. 부분 분배자(1925)에서의 제1 암호화 단계 동안에, 제1 서명이, 분배자 서명 개인 키(2093)를 사용하여 단일 암호화된 시크릿 부분들(734)에 선택적으로 적용될 수 있다. 부분 분배자(1925)에서의 제2 암호화 단계 동안에, 제2 서명이, 분배자 서명 개인 키(2093)를 사용하여 이중 암호화된 시크릿 부분들(1939)에 선택적으로 적용될 수 있다. 이중 암호화된 시크릿 부분(1939)은, 부분 보유자(1620)에 의한 비동기식 리트리벌(retrieval)을 위해 저장소(1927) 상에 저장될 수 있다.
부분 분배자(1925)에서의 제1 암호화 단계 동안에, 샤미르 메타데이터가 단일 암호화된 시크릿 부분들(734)에 선택적으로 추가될 수 있다. 샤미르 메타데이터는, 예컨대 N개의 시크릿 부분들(730) 중의 M개가 시크릿(728)을 재구성하는데 필요하다는, 보호되지 않은 시크릿 부분(730)으로부터 시크릿(728)을 재구성하기 위한 명령어 및/또는 요구사항을 제공할 수 있다. 샤미르 스플릿과 재구성은 N개의 구성 중 M개로 제한되지 않음을 유의해야 한다. 예컨대, 샤미르 재구성은, N1개 중의 M1 및 N2개 중의 M2를 요구할 수 있다. 즉, (N개 중의 M개보다 복잡한) 불리안 로직(Boolean logic)이, 예컨대 시크릿(728)을 재구성하기 위해, 상이한 임계치를 갖는 상이한 그룹의 부분 보유자들(1620)을 갖도록 사용될 수 있고, 샤미르 스플릿은, 5명의 이사들 중 3명 또는 50명의 직원 중 40명 또는 2개의 백업 사본 중의 2개가 재구성을 위해 요구되도록 수행될 수 있다. 특정 부분(암호화 또는 비암호화됨)에 대한 샤미르 메타데이터는 또한, 어떠한 부분 소유자(1620)가 그 부분에 대해 의도되었는지를 나타낼 수 있다. 선택적으로, MAC 태그가, 시스템(2500B)에서 암호화 (및 선택적 서명) 단계 중 하나 또는 둘 모두 동안에 이중 암호화된 시크릿 부분들(1939)에 추가될 수 있다.
이중 암호화된 시크릿 부분들(1939)은, 임의의 적절한 방법, 예컨대 보안된 전자 통신, 저장소(1927)에 디스플레이되는 QR 코드를 프린트하는 것, 저장소(1927)에 QR 코드를 전자적으로 디스플레이하는 것 등을 통해, 저장소(1927)(가령, 파이어스토어/파이어베이스)로 분배될 수 있다.
각각의 부분 보유자(1620)는, 저장소(1927)로부터, 예컨대 부분 보유자(1620)에서의 사용자 입력에 응답하여, 그것을 위해 의도되었던 각각의 이중 암호화된 시크릿 부분(1939)을 리트리브할 수 있다. 리트리브에 후속하여, 제2 서명이 부분 분배자(1925)에서 제2 비대칭 암호화 단계 동안에 적용되는 경우, 각각의 부분 보유자(1620)는 분배자 서명 공개 키(2095)를 사용하여, 그것의 이중 암호화된 시크릿 부분(1939) 상의 제2 서명을 선택적으로 검증할 수 있다. 예시에서, 부분 보유자(1620)는, 제2 서명이 검증될 수 없다면 이중 암호화된 시크릿 부분(1939)을 파기할 수 있다. 각각의 부분 보유자(1620)는 이후, (제1 비대칭 복호화 모듈(220A)을 사용하여) 이중 암호화된 시크릿 부분(1939)을 단일 암호화된 시크릿 부분(734)으로 비대칭적으로 복호화할 수 있다. 이 단계에서 단일 암호화된 시크릿 부분(734)은, 대칭 암호화의 하나의 계층 및 선택적인 제1 서명을 갖는 시크릿 부분(730)이다.
부분 보유자(1620)는, 이중 암호화된 시크릿 부분(738)을 생성하기 위해, 분배자 암호화 공개 키(2036)를 사용하여 (비대칭 암호화 모듈(218)에서) 단일 암호화된 시크릿 부분(734)을 재암호화하고 (선택적으로, 그것의 부분 보유자 서명 개인 키(2099)를 사용하여 제3 서명을 추가)할 수 있다. 선택적으로, 부분 보유자(1620)는 또한, 언제 비대칭 재암호화가 부분 보유자(1620)에서 수행되었는지를 나타내는 타임스탬프를 발생된 이중 암호화된 시크릿 부분(738)에 추가할 수 있다. 각각의 부분 보유자(1620)는 저장소(1927)로 또는 온라인 서명 서비스(1809)로 직접, 발생된 이중 암호화된 시크릿 부분(738)을 송신할 수 있다. 예시에서, (서버가 없는 기능을 구현하는) 각각의 부분 보유자(1620)는, 발생된 이중 암호화된 시크릿 부분(738)을 저장소(1927)에 공표(publish)하고, 새로운 발행-구독 모델(publish/subscribe, PubSub) 토픽에 이를 작성하는, 발행-구독 모델을 사용하여 비동기식 메시징을 송신할 수 있다. 이러한 구성에서, 온라인 서명 서비스(1809)는, 발행-구독 모델 토픽으로부터의 메시지를 예컨대, 송신 서비스(2554)를 사용하여 소비할 수 있다. 하지만, 부분 보유자(1620)는, 하나 이상의 중개 장치 및/또는 서비스와 함께 또는 이들 없이, 그들의 이중 암호화된 시크릿 부분(738)을 온라인 서명 서비스(1809)로 송신하기 위해 임의의 적절한 방법을 사용할 수 있다.
일단 각각의 이중 암호화된 시크릿 부분(738)을 수신하면, 온라인 서명 서비스(1809)는, 부분 보유자 서명 공개 키(2097)를 사용하여, (QR 코드(854)로부터 결정된) 이중 암호화된 시크릿 부분(738) 상의 제3 서명이 그것을 전송한 부분 보유자(1620)에 속하는지를 선택적으로 검증할 수 있다. 예시에서, 온라인 서명 서비스(1809)는, 제3 서명이 검증될 수 없다면, 이중 암호화된 시크릿 부분(738)을 폐기할 수 있다. 즉, 일부 구성에서, 온라인 서명 서비스(1809)는, 예컨대, 저장소(1927)를 통해, 오로지 이중 암호화된 시크릿 부분(738) 상의 제3 서명이 그것을 전송한 부분 보유자(1620)와 일치하는 경우에만 이중 암호화된 시크릿 부분(738)을 복호화할 수 있다.
온라인 서명 서비스(1809)는, 분배자 복호화 개인 키(2040)를 사용하여, (제2 비대칭 복호화 모듈(220B)을 사용하여) 이중 암호화된 시크릿 부분(738)을 단일 암호화된 시크릿 부분(734)으로 복호화할 수 있다. 이것은, 온라인 서명 서비스(1809)가, (부분 보유자(1620)에서 단일 암호화된 부분(734)에 추가된) 타임스탬프가 최근인지, 예컨대 미리 결정된 시간 임계치보다 오래되지 않았는지를 선택적으로 검증하는 것을 포함할 수 있다. 일부 구성에서, 온라인 서명 서비스(1809)는, 타임스탬프가 미리 결정된 시간 임계치보다 오래된 경우 단일 암호화된 시크릿 부분(734)을 폐기할 수 있다. 예시에서, 어셈블러(2452)는, 민감한 데이터, 가령 대칭 키(732) 및/또는 분배자 복호화 개인 키(2040)를 저장하기 위해, 보안된 메모리를 사용하는 볼트(vault, 2558)를 구현할 수 있다.
온라인 서명 서비스(1809)는 단일 암호화된 시크릿 부분(734) 상의 (부분 분배자(1925)에서 적용된) 제1 서명이 부분 분배자(1925)에 속하는지를 선택적으로 검증할 수 있다. 대칭 복호화 모듈(216)은, 이후 대칭 키(732)를 사용하여 단일 암호화된 시크릿 부분(734)을 시크릿 부분(730)으로 복호화할 수 있다.
온라인 서명 서비스(1809)는 또한, 이제 복호화된 시크릿 부분(730)을 전송한 부분 보유자(1620)가 예측된 부분 보유자(1620)와 일치하는 지를, 샤미르 메타데이터를 살펴봄으로써 선택적으로 검증할 수 있다. 예시에서, 온라인 서명 서비스(1809)는, 이제 복호화된 시크릿 부분(730)을 전송한 부분 보유자(1620)가 예측된 부분 보유자(1620)와 일치하는 경우에만 시크릿(728)의 재구성을 시도할 수 있다.
온라인 서명 서비스(1809)는 또한, 시크릿(728)(또한, 자산 암호화 키(728)로도 지칭됨)을 재구성하기에 충분한 시크릿 부분들(730)이 수집되었는지를 결정할 수 있다. 온라인 서명 서비스(1809)가 샤미르 메타데이터에 의해 명시되는 바와 같은 충분한 시크릿 부분들(730)(예컨대, N개 중의 M개)이 수집되었다고 결정하는 경우, 키 재구성 모듈(212)은 시크릿(728)을 재구성할 수 있다. 재구성된 시크릿(728)은, 자산 키로의 액세스를 획득(예컨대, 복호화)하는데 사용될 수 있다. 자산 키는, 높은 잔고를 갖는 수탁자 계좌와 연관된 (예컨대, 거래에 서명하기 위한) 개인 키, 특히 높은 값어치의 데이터를 복호화하기 위한 암호 키 등일 수 있다. 따라서, 자산 암호화 키(시크릿)(728)의 재구성에 후속하여, 자산 키가 거래에 서명하거나 및/또는 데이터를 복호화하는데 사용될 수 있다.
일부 구성에서, 부분 분배자(1925) 및/또는 온라인 서명 서비스(1809)는, 전술한 바와 같이 시스템(2500B)에서 사용된 관련 키들을 교환(예컨대, 새로운 버전을 생성하고 분배)할 수 있다.
도 25c는 시크릿(728)을 재구성하기 위해 (예컨대, 어셈블러(2452)에 구현된) 온라인 서명 서비스(1809)로 부분들을 복귀시키기 위한 또 다른 예시적인 시스템/방법(2500C)을 도시하는 블록도이다. 도 25c는 도 25a의 장치, 모듈 및 데이터와 동일한 것 중 다수를 포함할 수 있다. 달리 명시되지 않는다면, 도 25c의 장치, 모듈 및 데이터는 도 25a의 장치, 모듈 및 데이터와 유사한 방식으로 동작한다.
도 25c의 시스템(2500C)에서, 시크릿 부분(730)은 각각의 단계가 대칭 또는 비대칭인 2개의 암호화 단계를 사용하여 이중 암호화된 시크릿 부분(1939)으로 암호화된다. 예컨대, 이중 암호화된 시크릿 부분(738)은, (1) 대칭 키(732)를 사용한 제1 대칭 단계 및 분배자 암호화 공개 키(2036) 또는 부분 보유자 암호화 공개 키(2043)를 사용한 제2 비대칭 단계; (2) 대칭 키(732)를 사용한 제1 대칭 단계 및 대칭 키(732)를 다시 사용하거나 (또는 상이한 대칭 키를 사용하는) 제2 대칭 단계; (3) 분배자 암호화 공개 키(2036) 또는 부분 보유자 암호화 공개 키(2043)를 사용한 제1 비대칭 단계 및 대칭 키(732)를 사용한 제2 대칭 단계; 또는 (4) 분배자 암호화 공개 키(2036) 또는 부분 보유자 암호화 공개 키(2043)를 사용한 제1 비대칭 단계 및 분배자 암호화 공개 키(2036) 또는 부분 보유자 암호화 공개 키(2043)를 사용한 제2 비대칭 단계를 사용하여 생성될 수 있다. 이중 암호화된 시크릿 부분(738)의 생성 동안에, 부분 분배자(1925)는, (제1 암호화 단계 동안에) 단일 암호화된 시크릿 부분(734)에 또는 (제2 암호화 단계 동안에) 이중 암호화된 시크릿 부분(1938)에 샤미르 메타데이터를 선택적으로 추가할 수 있다.
부분 분배자(1925)에서의 제1 암호화 단계 동안에, 제1 서명이, 분배자 서명 개인 키(2093)를 사용하여 단일 암호화된 시크릿 부분들(734)에 선택적으로 적용될 수 있다. 부분 분배자(1925)에서의 제2 암호화 단계 동안에, 제2 서명이, 분배자 서명 개인 키(2093)를 사용하여 이중 암호화된 시크릿 부분들(1939)에 선택적으로 적용될 수 있다. 선택적으로, MAC 태그가, 시스템(2500C)에서 암호화 (및 선택적 서명) 단계 중 하나 또는 둘 모두 동안에 이중 암호화된 시크릿 부분들(1939)에 추가될 수 있다.
이중 암호화된 시크릿 부분들(1939)은, 부분 보유자(1620)에 의한 비동기식 리트리브를 위해 저장소(1927) 상에 저장될 수 있다. 이중 암호화된 시크릿 부분들(1939)은, 임의의 적절한 방법, 예컨대 보안된 전자 통신, 저장소(1927)에 디스플레이되는 QR 코드를 프린트하는 것, 저장소(1927)에 QR 코드를 전자적으로 디스플레이하는 것을 통해, 저장소(1927)(가령, 파이어스토어/파이어베이스)로 분배될 수 있다.
각각의 부분 보유자(1620)는, 저장소(1927)로부터, 예컨대 부분 보유자(1620)에서의 사용자 입력에 응답하여, 그것을 위해 의도되었던 각각의 이중 암호화된 시크릿 부분(1939)을 리트리브할 수 있다. 리트리브에 후속하여, 제2 서명이 부분 분배자(1925)에서 제2 비대칭 암호화 단계 동안에 적용되는 경우, 각각의 부분 보유자(1620)는 분배자 서명 공개 키(2095)를 사용하여, 그것의 이중 암호화된 시크릿 부분(1939) 상의 제2 서명을 선택적으로 검증할 수 있다. 예시에서, 부분 보유자(1620)는, 제2 서명이 검증될 수 없다면 이중 암호화된 시크릿 부분(1939)을 파기할 수 있다. 각각의 부분 보유자(1620)는 이후, (제1 비대칭 복호화 모듈(220A)을 사용하여) 이중 암호화된 시크릿 부분(1939)을 단일 암호화된 시크릿 부분(734)으로 비대칭적으로 복호화할 수 있다. 이 단계에서 단일 암호화된 시크릿 부분(734)은, 대칭 암호화의 하나의 계층 및 선택적인 제1 서명을 갖는 시크릿 부분(730)이다.
리트리브에 후속하여, 부분 보유자(1620) 내의 복호화 모듈(219A)은, 이중 암호화된 시크릿 부분(1939)을 단일 암호화된 시크릿 부분(734)으로 복호화할 수 있다. 제1 복호화 모듈(219A)은, (대칭 키, 가령 대칭 키(732)를 사용하는) 대칭 복호화 모듈(216) 또는, (비대칭 키, 가령 분배자 복호화 개인 키(2040) 또는 부분 보유자 복호화 개인 키(2047)를 사용하는) 비대칭 복호화 모듈(220)일 수 있다.
암호화 모듈(217)은, 단일 암호화된 시크릿 부분(734)을 이중 암호화된 시크릿 부분(738)으로 재암호화할 수 있다. 암호화 모듈(217)은, (대칭 키, 가령 대칭 키(732)를 사용하는) 대칭 암호화 모듈(214) 또는, (비대칭 키, 가령 분배자 암호화 공개 키(2036) 또는 부분 보유자 암호화 공개 키(2043)를 사용하는) 비대칭 암호화 모듈(218)일 수 있다.
부분 보유자(1620)는, 부분 보유자 서명 개인 키(2099)를 사용하여 제3 서명을 선택적으로 추가할 수 있다. 선택적으로, 부분 보유자(1620)는 또한, 언제 비대칭 재암호화가 부분 보유자(1620)에서 수행되었는지를 나타내는 타임스탬프를, 발생된 이중 암호화된 시크릿 부분(738)에 추가할 수 있다. 각각의 부분 보유자(1620)는 저장소(1927)로 또는 온라인 서명 서비스(1809)로 직접, 발생된 이중 암호화된 시크릿 부분(738)을 송신할 수 있다. 예시에서, (서버가 없는 기능을 구현하는) 각각의 부분 보유자(1620)는, 발생된 이중 암호화된 시크릿 부분(738)을 저장소(1927)에 공표(publish)하고, 새로운 발행-구독 모델(publish/subscribe, PubSub) 토픽에 이를 작성하는, 발행-구독 모델을 사용하여 비동기식 메시징을 송신할 수 있다. 이러한 구성에서, 온라인 서명 서비스(1809)는, 발행-구독 모델 토픽으로부터의 메시지를 예컨대, 송신 서비스(2554)를 사용하여 소비할 수 있다. 하지만, 부분 보유자(1620)는, 하나 이상의 중개 장치 및/또는 서비스와 함께 또는 이들 없이, 그들의 이중 암호화된 시크릿 부분(738)을 온라인 서명 서비스(1809)로 송신하기 위해 임의의 적절한 방법을 사용할 수 있다.
일단 각각의 이중 암호화된 시크릿 부분(738)을 수신하면, 온라인 서명 서비스(1809)는, 부분 보유자 서명 공개 키(2097)를 사용하여, (QR 코드(854)로부터 결정된) 이중 암호화된 시크릿 부분(738) 상의 제3 서명이 그것을 전송한 부분 보유자(1620)에 속하는지를 선택적으로 검증할 수 있다. 예시에서, 온라인 서명 서비스(1809)는, 제3 서명이 검증될 수 없다면, 이중 암호화된 시크릿 부분(738)을 폐기할 수 있다. 즉, 일부 구성에서, 온라인 서명 서비스(1809)는, 예컨대, 저장소(1927)를 통해, 오로지 이중 암호화된 시크릿 부분(738) 상의 제3 서명이 그것을 전송한 부분 보유자(1620)와 일치하는 경우에만 이중 암호화된 시크릿 부분(738)을 복호화할 수 있다.
온라인 서명 서비스(1809)는, (제2 복호화 모듈(219B)을 사용하여) 이중 암호화된 시크릿 부분(738)을 단일 암호화된 시크릿 부분(734)으로 복호화할 수 있다. 제2 복호화 모듈(219B)은, (대칭 키(732)를 사용하는) 대칭 복호화 모듈(216) 또는 (비대칭 키, 가령 분배자 복호화 개인 키(2040) 또는 부분 보유자 복호화 개인 키(2047)를 사용하는) 비대칭 복호화 모듈(220)일 수 있다. 온라인 서명 서비스(1809)는 또한, (부분 보유자(1620)에서 단일 암호화된 부분(734)에 추가된) 타임스탬프가 최근인지, 예컨대 미리 결정된 시간 임계치보다 오래되지 않았는지를 선택적으로 검증할 수 있다. 일부 구성에서, 온라인 서명 서비스(1809)는, 타임스탬프가 미리 결정된 시간 임계치보다 오래된 경우 단일 암호화된 시크릿 부분(734)을 폐기할 수 있다.
온라인 서명 서비스(1809)는 단일 암호화된 시크릿 부분(734) 상의 (부분 분배자(1925)에서 적용된) 제1 서명이 부분 분배자(1925)에게 속하는지를 선택적으로 검증할 수 있다. 그렇다면 (또는 선택적 검증이 수행되지 않는다면), 제3 복호화 모듈(219C)은 또한, 각각의 단일 암호화된 시크릿 부분(들)(734)을 시크릿 부분들(730)로 복호화할 수 있다. 제3 복호화 모듈(219C)은, (대칭 키, 가령 대칭 키(732)를 사용하는) 대칭 복호화 모듈(216) 또는 (비대칭 키, 가령 분배자 복호화 개인 키(2040) 또는 부분 보유자 복호화 개인 키(2047)를 사용하는) 비대칭 복호화 모듈(220)일 수 있다.
온라인 서명 서비스(1809)는 또한, 이제 복호화된 시크릿 부분(730)을 전송한 부분 보유자(1620)가 예측된 부분 보유자(1620)와 일치하는 지를, 샤미르 메타데이터를 살펴봄으로써 선택적으로 검증할 수 있다. 예시에서, 온라인 서명 서비스(1809)는, 이제 복호화된 시크릿 부분(730)을 전송한 부분 보유자(1620)가 예측된 부분 보유자(1620)와 일치하는 경우에만 시크릿(728)의 재구성을 시도할 수 있다.
온라인 서명 서비스(1809)는 또한, 시크릿(728)을 재구성하기에 충분한 시크릿 부분들(730)이 수집되었는지를 결정할 수 있다. 이 결정은 단일 암호화된 시크릿 부분(734)의 메타데이터에 기초할 수 있다. 샤미르 메타데이터에 따라 충분한 시크릿 부분들(730)(예컨대, N개 중의 M개)이 수집되지 않은 경우, 시크릿(728)의 재구성은 시도되지 않는다. 샤미르 메타데이터에 따라 충분한 시크릿 부분들(730)(예컨대, N개 중의 M개)이 수집된 경우, 키 재구성 모듈(212)은 자산 암호화 키(시크릿)(728)을 생성하기 위해 다수의 시크릿 부분들(730)을 어셈블할 수 있다. 단일 대칭 키(732)가 모든 단일 암호화된 시크릿 부분들(734)을 복호화하는데 사용될 수 있거나, 상이한 대칭 키(732)가 각각의 단일 암호화된 시크릿 부분들(734)에 대해 사용될 수 있다.
재구성된 시크릿(728)은, 자산 키로의 액세스를 획득(예컨대, 복호화)하는데 사용될 수 있다. 자산 키는, 높은 잔고를 갖는 수탁자 계좌와 연관된 (예컨대, 거래에 서명하기 위한) 개인 키, 특히 높은 값어치의 데이터를 복호화하기 위한 암호 키 등일 수 있다. 따라서, 자산 암호화 키(시크릿)(728)의 재구성에 후속하여, 자산 키가 거래에 서명하거나 및/또는 데이터를 복호화하는데 사용될 수 있다.
일부 구성에서, 부분 분배자(1925) 및/또는 온라인 서명 서비스(1809)는, 전술한 바와 같이 시스템(2500C)에서 사용되는 관련 키들을 교환(예컨대, 새로운 버전을 생성 및 분배)할 수 있다.
도 26은 오프라인 서명 서비스(308)를 위해 샤미르 부분들을 재랩핑(re-wrapping)하는 예시적인 시스템/방법(3200)을 도시하는 블록도이다. 암호화된 부분들은 외부 암호화 계층을 위한 분배자 암호화 공개 키(2036)를 사용하여 초기에 생성될 수 있는 한편, 각각의 부분 보유자(1620) 특유의 부분 보유자 암호화 공개 키(2043)로 각각의 부분을 재암호화하는 것이 바람직할 수 있다. 예컨대, 예시적인 시스템/방법(3200)은, 비대칭 암호화 모듈(218)을 사용하여, (분배자(1925)의 분배자 암호화 공개 키(2036)로 암호화된) 이중 암호화된 시크릿 부분들(738)을 (부분 보유자의 공개 키들(2043)로 암호화된) 이중 암호화된 시크릿 부분들(1939)로 변환할 수 있다. 예시에서, 이중 암호화된 부분들(738)은 오프라인 서명 서비스(308)에 의해 생성될 수 있는 한편, 이중 암호화된 시크릿 부분들(1939)은 부분 보유자(1620)에게 분배될 수 있다.
예시에서, 각 부분 보유자(1620)에 대한 이중 암호화된 부분(738)은 QR 코드(854)를 통해 보안된 에어 갭 상태의 랩탑에 제공될 수 있다. 시크릿 재랩핑 모듈(2660)은, 분배자 복호화 개인 키(2040)로 (비대칭 복호화 모듈(220)을 사용하여) 이중 암호화된 부분들(738)을 단일 암호화된 시크릿 부분들(734)로 복호화할 수 있다. 각각의 단일 암호화된 시크릿 부분들(734)은 이후, 각각의 부분 보유자의 공개 키(2043)로 (비대칭 암호화 모듈(218) 내에서) 각각의 이중 암호화된 시크릿 부분(1939)으로 재암호화된다.
(이중 암호화된 시크릿 부분(738)으로부터 이중 암호화된 시크릿 부분(1939)으로) 시크릿 부분들을 재랩핑하는 것은 대안으로, (오래된 것들을 재랩핑하는 대신에) 새로운 시크릿 부분들을 생성하는 것을 포함할 수 있다. (도시되지 않은) 이러한 구성에서, 모듈(220)에서의 비대칭 복호화 대신에, 새로운 시크릿(728)이 생성되어 새로운 시크릿 부분(730)으로 스플릿되고, 대칭 키(SYM2 키)(732)를 사용하여 암호화되고, 부분 보유자들(1620)에게 분배되기 전에 부분 보유자의 암호화 공개 키(2043)를 사용하여 다시 암호화된다.
예시에서, 키들을 교환(예컨대, 새로운 버전을 생성하고 분배)하는 것이 바람직하다. 예시에서, 온라인 서명 서비스(1809) 및 오프라인 서명 서비스(308)는 키 교환을 허용한다. 예컨대, 하기의 것들 중 임의의 것이 업데이트/교환될 수 있다: (1) 오프라인 서명 서비스(308)/분배자(1925)에 의해 사용되는 분배자 복호화 개인 키(2040) 및/또는 분배자 암호화 공개 키(2036); (2) 온라인 서명 서비스(1809)의 개인 키(941) 및/또는 공개 키(937); (3) 대칭 키(732); 및/또는 (4) 자산 암호화 키(시크릿)(728). 예시에서, 부분 보유자들(1620)이 회사를 떠나거나 그들의 모바일 장치를 분실하는 경우 부분들을 재분배하는 것이 또한, 바람직할 수 있다. 예시에서, 어떻게 자산 암호화 키(시크릿)(728)이 (가령 N개 중의 상이한 M개가 스플릿 또는 상이한 티어들로) 스플릿되는지를 변경하여, 시크릿 부분들(730) 자체가 재생성될 수 있도록 하는 것이 바람직할 수 있다.
예시에서, 자산 암호화 키(시크릿)(728)은 서명 서비스(들)에 의해 보호된 시크릿들을 암호화하는데 사용된 대칭 시크릿이다. 예시에서, 이 시크릿은 오로지 서명 서비스(들) 내의 메모리에만 존재하고, 그것의 부분들은 샤미르 시크릿 공유를 통해 다수의 부분 보유자들(1620)에게 분배된다. 예시에서, 대칭 키(732)는, 부분 보유자(1620)들을 따라 전달되기 전에 시크릿 부분(730)을 암호화하는데 사용되는 대칭 키 (또는 키들의 세트)이다. 예시에서, 각각의 샤미르 부분 보유자(1620)는, 키쌍(암호화 공개 키(2043) 및 복호화 개인 키(2047))를 갖고, 이들은 부분 보유자에 대해 고유하고, 복호화 개인 키(2047)는 오로지 부분 보유자(1620)의 모바일 장치 상에서만 존재한다. 예시에서, 부분 분배자(1925) 플랫폼은 또한, 그 자신의 키쌍(분배자 암호화 공개 키(2036) 및 분배자 복호화 개인 키(2040))를 갖는다. 예시에서, 이들 2개의 키쌍 세트들은 부분 보유자(1620) 및 부분 분배자(1925) 플랫폼 사이에서의 메시지들을 암호화하는데 사용되고 - 오로지 의도된 수신자가 메시지를 비암호화(un-encrypt)할 수 있고, 발신자는 서명을 통해 인증될 수 있다.
예시에서, 본 명세서에 기술된 시스템/방법은, 공격/시도로부터 보호하는 것과, 다양한 키/시크릿에 의해 보호된 자산에 액세스하는 것을 보조한다. 예시에서, 사용자들은, 계정(가령 구글 계정)을 사용함으로써 그들의 모바일 앱으로부터 저장소(가령 파이어베이스)에 로그인하여, 추가적으로 기억되거나 손실될 패스워드가 존재하지 않도록 하고, 누군가가 그들의 책임을 다른 사람들에게 부여할 가능성이 적도록 한다. 예시에서, 공격은 다수의 엔티티들에 대하여 수행될 필요가 있다. 부분 보유자들은, 충분한 피스들이 수집된다 하더라도 공격자들이 얻는 것은 대칭 키에 의해 암호화된 페이로드이기 때문에, 협의할 수 없거나(이들 중 N명 중의 M명이 해킹될 수 없다). 대칭 키가 손상(compromised)된다면, 이는 엄청난 손실이 아니다 - 이것은 샤미르 부분들을 복호화하는데만 사용된다. 샤미르 부분들은, 재수집되어 새로운 대칭 키로 암호화되고, 부분 보유자들에게 재분배된다. 누군가가 모든 암호화된 부분들을 갖는 파이어베이스 데이터베이스로의 액세스를 획득한다면, 공격자는 부분들을 판독할 수 있지만, 이들이 특정 수신인 공개 키들에 대해 암호화되기 때문에 부분들을 복호화할 수 없다. 공격자는 또한, 부분 보유자들에 대한 개인 키들을 획득하기 위해 보유자의 전화기를 해킹할 필요가 있다. 저장소(파이어스토어/파이어베이스 데이터베이스)를 해킹한 공격자는, 부분들을 삭제할 수 있기 ‹š문에, 저장소(파이어스토어/파이어베이스 데이터베이스)의 백업이 수행되어야 한다.
도 27a는 복수의 부분 보유자들(1620)에게 시크릿 부분들(730)을 안전하게 분배하기 위한 방법(2700A)을 도시하는 흐름도이다. 방법(2700A)은, 적어도 하나의 프로세서를 갖는 컴퓨팅 장치(102), 예컨대, 부분 분배자(1925)를 구현하는 컴퓨팅 장치(102)에 의해 수행될 수 있다.
방법(2700A)은, 적어도 하나의 프로세서가 자산 암호화 키(728)(또한, SYM1 키나 단순히 "시크릿"으로도 지칭됨)를 결정하는 선택적 단계(2702A)에서 시작할 수 있다. 자산 암호화 키(시크릿)(728)은, 컴퓨팅 장치(102)에 의해 생성될 수 있고, 대칭 키, 예컨대 AES(Advanced Encryption Standard) 키일 수 있다. 예시에서, 자산 암호화 키(시크릿)(728)은 이후, 블록체인 어드레스(들), 계정(들) 및/또는 월렛(들)을 위한 하나 이상의 개인 키들을 암호화 또는 복호화하는데 사용될 수 있다.
방법(2700A)은, 적어도 하나의 프로세서가 적어도 하나의 시크릿 부분들(730)의 세트로 자산 암호화 키(시크릿)(728)을 스플릿하는 선택적 단계(2704A)로 진행할 수 있다. 이것은, 다항식 보간법 및/또는 샤미르 시크릿 공유를 사용하는 것을 포함할 수 있다. 각각의 시크릿 부분(730)의 세트는 복수의 시크릿 부분(730)을 포함할 수 있다.
방법(2700A)은, 적어도 하나의 프로세서가 각각의 시크릿 부분(730)을 대응되는 단일 암호화된 시크릿 부분(734)으로 암호화하는 단계(2706A)로 진행할 수 있다. 예시에서, 단계(2706A)의 암호화는, 예컨대 비대칭 암호화 모듈(218)을 사용하여 단일 암호화된 시크릿 부분들(734)을 생성하기 위해 분배자 암호화 공개 키(2036) (또는 부분 보유자 암호화 공개 키(2043))를 사용하는 비대칭 암호화이다.
대안으로, 단계(2706A)에서의 암호화는, 예컨대 대칭 암호화 모듈(214)을 사용하는 것과 같은, 적어도 하나의 대응되는 대칭 키(SYM2)(732)를 사용하는 대칭 암호화이다. 예컨대, 동일한 대칭 키(732)가 특정 시크릿(728)의 각각의 시크릿 부분(730)을 암호화하는데 사용된다. 대안으로, 상이한 대칭 키(732)가 특정 시크릿(728)의 각각의 시크릿 부분(730)을 암호화하는데 사용된다.
제1 서명은, 예컨대 분배자 서명 개인 키(2093)를 사용하여 단계(2706A) 동안에 선택적으로 적용될 수 있다. 샤미르 메타데이터는 각각의 단일 암호화된 시크릿 부분(734)의 일부로서 선택적으로 암호화될 수 있다. 샤미르 메타데이터는, 예컨대 N개의 시크릿 부분들(730) 중의 M개가 시크릿(728)을 재구성하는데 필요하다는, 보호되지 않은 시크릿 부분(730)으로부터 시크릿(728)을 재구성하기 위한 명령어 및/또는 요구사항을 제공할 수 있다. 특정 부분(암호화 또는 비암호화됨)에 대한 샤미르 메타데이터는 또한, 어떠한 부분 보유자(1620)가 그 부분에 대해 의도되었는지를 나타낼 수 있다.
방법(2700A)은, 적어도 하나의 프로세서가 각각의 단일 암호화된 시크릿 부분(734)을, 대응되는 이중 암호화된 시크릿 부분으로, 대응되는 적어도 하나의 공개 키를 사용하여 암호화하는 단계(2708A)로 진행할 수 있다. 예시에서, 공개 키(들)는 분배자 공개/개인 키쌍 또는 대응되는 부분 보유자 공개/개인 키쌍에 속한다. 예시에서, 각각의 단일 암호화된 시크릿 부분(734)은, 이중 암호화된 시크릿 부분(738)을 생성하기 위해 동일한 분배자 암호화 공개 키(2036)를 사용하여 암호화될 수 있다. 대안으로, 각각의 단일 암호화된 시크릿 부분(734)은, 이중 암호화된 시크릿 부분들(1939)을 생성하기 위해 각각의 부분 보유자(1620)의 상이한 공개 키(2043)를 사용하여 암호화될 수 있다.
제2 서명은, 예컨대 분배자 서명 개인 키(2093)를 사용하여 단계(2708A) 동안에 선택적으로 적용될 수 있다.
방법(2700A)은, 적어도 하나의 프로세서가 각각의 이중 암호화된 시크릿 부분을 각각의 부분 보유자(1939)에게 분배하는 선택적 단계(2710A)로 진행할 수 있다. 예시에서, 이중 암호화된 시크릿 부분은, 이중 암호화된 시크릿 부분의 QR 코드를 프린트하여 또는 이중 암호화된 시크릿 부분을 각각의 부분 보유자(1620)에게 주어진 휴대용 저장 드라이브에 로딩함으로써 각각의 부분 보유자들(1620)에게 분배된다.
도 27b는 자산 암호화 키(시크릿)(728)를 안전하게 재구성하기 위한 다른 방법(2700B)을 도시하는 흐름도이다. 방법(2800A)은, 적어도 하나의 프로세서를 갖는 컴퓨팅 장치(102), 예컨대 부분 분배자(1925)를 구현하는 컴퓨팅 장치(102)에 의해 수행될 수 있다.
방법(2700B)은, 적어도 하나의 프로세서가 자산 암호화 키(728)(또한, SYM1 키나 단순히 "시크릿"으로도 지칭됨)를 결정하는 선택적 단계(2702B)에서 시작할 수 있다. 자산 암호화 키(시크릿)(728)는, 컴퓨팅 장치(102)에 의해 생성될 수 있고, 대칭 키, 예컨대 AES(Advanced Encryption Standard) 키일 수 있다. 예시에서, 자산 암호화 키(시크릿)(728)는 이후, 블록체인 어드레스(들), 계정(들) 및/또는 월렛(들)을 위한 하나 이상의 개인 키들을 암호화 또는 복호화하는데 사용될 수 있다.
방법(2700B)은, 적어도 하나의 프로세서가 적어도 하나의 시크릿 부분들(730)의 세트로 자산 암호화 키(시크릿)(728)을 스플릿하는 선택적 단계(2704B)로 진행할 수 있다. 이것은, 다항식 보간법 및/또는 샤미르 시크릿 공유를 사용하는 것을 포함할 수 있다. 각각의 시크릿 부분(730)의 세트는 복수의 시크릿 부분(730)을 포함할 수 있다.
방법(2700B)은, 적어도 하나의 프로세서가 각각의 시크릿 부분(730)을 대응되는 단일 암호화된 시크릿 부분(734)으로 암호화하는 단계(2706B)로 진행할 수 있다. 예시에서, 단계(2706B)의 암호화는, 예컨대 비대칭 암호화 모듈(218)을 사용하여, 단일 암호화된 시크릿 부분들(734)을 생성하기 위해 분배자 암호화 공개 키(2036) (또는 부분 보유자 암호화 공개 키(2043))를 사용하는 비대칭 암호화이다.
대안으로, 단계(2706B)에서의 암호화는, 예컨대 대칭 암호화 모듈(214)을 사용하여, 적어도 하나의 대응되는 대칭 키(SYM2)(732)를 사용하는 대칭 암호화이다. 예컨대, 동일한 대칭 키(732)가 특정 시크릿(728)의 각각의 시크릿 부분(730)을 암호화하는데 사용된다. 대안으로, 상이한 대칭 키(732)가 특정 시크릿(728)의 각각의 시크릿 부분(730)을 암호화하는데 사용된다.
제1 서명이, 예컨대, 분배자 서명 개인 키(2093)를 사용하여 단계(2706B) 동안에 선택적으로 적용될 수 있다. 샤미르 메타데이터는 각각의 단일 암호화된 시크릿 부분(734)의 일부로서 선택적으로 암호화될 수 있다. 샤미르 메타데이터는, 예컨대 N개의 시크릿 부분들(730) 중의 M개가, 시크릿(728)을 재구성하는데 필요하다는, 보호되지 않은 시크릿 부분(730)으로부터 시크릿(728)을 재구성하기 위한 명령어 및/또는 요구사항을 제공할 수 있다. 특정 부분(암호화 또는 비암호화됨)에 대한 샤미르 메타데이터는 또한, 어떠한 부분 보유자(1620)가 그 부분에 대해 의도되었는지를 나타낼 수 있다.
방법(2700B)은 적어도 하나의 프로세서가 각각의 단일 암호화된 시크릿 부분(734)을 대응되는 이중 암호화된 시크릿 부분으로 암호화하는 단계(2708B)로 진행할 수 있다. 예시에서, 단계(2708B)의 암호화는 비대칭 암호화이다. 예시에서, 각각의 단일 암호화된 시크릿 부분(734)은, 이중 암호화된 시크릿 부분(738)을 생성하기 위해 분배자 암호화 공개 키(2036)를 사용하여 암호화될 수 있다. 대안으로, 각각의 단일 암호화된 시크릿 부분(734)은, 이중 암호화된 시크릿 부분(1939)을 생성하기 위해 각각의 부분 보유자(1620)의 상이한 공개 키(2043)를 사용하여 암호화될 수 있다.
대안으로, 단계(2708B)에서의 암호화는, 대칭 암호화 모듈(214)을 사용하여 적어도 하나의 대응되는 대칭 키(SYM2)(732)를 사용하는 대칭 암호화일 수 있다. 예컨대, 동일한 대칭 키(732)가 특정 시크릿(728)의 각각의 시크릿 부분(730)을 암호화하는데 사용된다. 대안으로, 상이한 대칭 키(732)가 특정 시크릿(728)의 각각의 시크릿 부분(730)을 암호화하는데 사용된다.
제2 서명은 예컨대, 분배자 서명 개인 키(2093)를 사용하여 단계(2708B) 동안에 선택적으로 적용될 수 있다.
방법(2700B)은, 적어도 하나의 프로세서가 각각의 이중 암호화된 시크릿 부분을 각각의 부분 보유자(1939)에게 분배하는 선택적 단계(2710B)로 진행할 수 있다. 예시에서, 이중 암호화된 시크릿 부분은, 이중 암호화된 시크릿 부분의 QR 코드를 프린트하여 또는 이중 암호화된 시크릿 부분을 각각의 부분 보유자(1620)에게 주어진 휴대용 저장 드라이브에 로딩함으로써 각각의 부분 보유자들(1620)에게 분배된다.
도 28은, 이중 암호화된 시크릿 부분(1939)을 재암호화하기 위한 방법(2800)을 도시하는 흐름도이다. 도 28의 방법(2800)은, 도 27a의 방법(2700A) 또는 도 27b의 방법(2700B)에 대하여 순차적으로 또는 독립적으로 수행될 수 있다. 방법(2800)은, 적어도 하나의 프로세서를 갖는 부분 보유자(1620) 컴퓨팅 장치, 예컨대 스마트폰에 의해 수행될 수 있다.
방법(2800)은, 적어도 하나의 프로세서가, 부분 분배자(1925)에 의해 생성된 제1 이중 암호화된 시크릿 부분(1939)을 수신하는 단계(2814)에서 시작될 수 있다. 예시에서, 제1 이중 암호화된 시크릿 부분(1939)은, 복수의 N개 중의 이중 암호화된 시크릿 부분들(1939) 사이에서 고유하고, 이들 중의 적어도 M개가 시크릿(728)을 재구성하기 위해 수집 및 복호화될 필요가 있다. 예시에서, 제1 이중 암호화된 시크릿 부분(1939)은 도 27a의 방법(2700A) 또는 도 27b의 방법(2700B)을 사용하여 생성 및 분배될 수 있다.
예시에서, 제1 이중 암호화된 시크릿 부분(1939)은 저장소(1927)를 통해 부분 보유자(1620)에게 분배되고, 부분 보유자(1620)는, 그것이 제1 이중 암호화된 시크릿 부분(1939)으로의 액세스를 획득하기 전에 저장소(1927)와의 임의의 인증을 수행할 수 있다. 대안으로, 제1 이중 암호화된 시크릿 부분(1939)은, 부분 보유자(1620)에게 물리적으로 인쇄 또는 전자적으로 디스플레이되는 QR 코드를 통해 부분 보유자(1620)에게 분배될 수 있다.
방법(2800)은, 적어도 하나의 프로세서가 분배자 서명 공개 키(2095)를 사용하여 제1 이중 암호화된 시크릿 부분(1939) 상의 제2 서명을 검증할 수 있는 선택적 단계(2816)로 진행할 수 있다. 예시에서, 제1 이중 암호화된 시크릿 부분(1939)은, 제2 서명이 검증될 수 없는 경우 폐기 (및 하기의 단계(2818)에서 복호화되지 않을 수 있다).
방법(2800)은, 적어도 하나의 프로세서가 제1 이중 암호화된 시크릿 부분(1939)을 단일 암호화된 시크릿 부분(734)으로 복호화하는 단계(2818)로 진행할 수 있다. 즉, 단계(2816)는, 제1 이중 암호화된 시크릿 부분(1939)에 대해 오로지 2개의 암호화 계층들 중 하나만을 복호화하는 것을 포함한다. 제1 이중 암호화된 시크릿 부분(1939)에 대한 제2 암호화 단계가 비대칭 암호화인 경우, 단계(2816)의 복호화는, 가령 분배자 복호화 개인 키(2040)나 부분 보유자 복호화 개인 키(2047)를 사용하는 비대칭 복호화일 수 있다. 제1 이중 암호화된 시크릿 부분(1939)에 대한 제2 암호화 단계가 대칭 암호화인 경우, 단계(2816)의 복호화는 대칭 키, 가령 대칭 키(732)를 사용한 대칭 복호화일 수 있다.
방법(2800)은, 적어도 하나의 프로세서가 단일 암호화된 시크릿 부분(734)을, 제1 이중 암호화된 시크릿 부분(1939)과 상이한 제2 이중 암호화된 시크릿 부분(738)으로 암호화하는 단계(282)로 진행할 수 있다. 예시에서, 단계(2818)는, 부분 보유자 복호화 개인 키(2047)를 사용하는 비대칭 복호화를 수행하고, 단계(2820)는 분배자 복호화 공개 키(2036)를 사용하여 비대칭 암호화를 적용한다.
방법(2800)은, 적어도 하나의 프로세서가 그것의 부분 보유자 서명 개인 키(2099)를 사용하여 제3 서명을 추가하는 선택적 단계(2822)로 진행할 수 있다. 선택적으로, 부분 보유자(1620)는 또한, 발생되는 제2 이중 암호화된 시크릿 부분(738)에, 비대칭 재암호화가 부분 보유자(1620)에서 언제 수행되었는지를 나타내는 타임스탬프를 추가할 수 있다. 이중 암호화된 시크릿 부분(738)은, 예컨대, 저장소(1927), 보안된 전자 통신, 물리적으로 프린트되거나 (전자적으로 디스플레이된) QR 코드 등을 통해 어셈블러(2452)에 송신될 수 있다.
도 29a는 자산 암호화 키(시크릿)(728)를 안전하게 재구성하기 위한 방법(2900A)을 도시하는 흐름도이다. 예시에서, 도 29a의 방법(2900A)은, 도 27a의 방법(2700A) 이후에 수행될 수 있고, 선택적으로 도 28의 방법(2800) 이후에 수행될 수 있다. 대안으로, 도 29a의 방법(2900A)은, 도 27a의 방법(2700A) 및 도 28의 방법(2800)과는 독립적으로 수행될 수 있다. 방법(2900A)은, 적어도 하나의 프로세서를 갖는 컴퓨팅 장치(102), 예컨대 오프라인 서명 서비스(308) 및/또는 온라인 서명 서비스(1809)를 구현하는 컴퓨팅 장치(102)에 의해 수행될 수 있다.
방법(2900A)은, 공개/개인 키쌍에 속하는 적어도 하나의 공개 키를 사용하여 암호화된 복수의 이중 암호화된 시크릿 부분들을 적어도 하나의 프로세서가 수신하는 단계(2926A)에서 시작될 수 있다. 예시에서, 각각의 이중 암호화된 시크릿 부분(1939)은, 도 27a의 방법(2700A)에 설명되는 바와 같이 생성될 수 있다. 예컨대, 이중 암호화된 시크릿 부분(1939)은 (1) 단일 암호화된 시크릿 부분(732)을 생성하기 위해 대칭 키(732)를 사용하여 시크릿 부분(730)을 비대칭으로 암호화하는 부분 분배자(1925); 및 (2) 분배자 암호화 공개 키(2036)를 사용하여 단일 암호화된 시크릿 부분(734)을 비대칭으로 암호화하는 부분 분배자(1925)에 의해 생성된다.
대안으로, 각각의 이중 암호화된 시크릿 부분(1939)은, 도 27a의 방법(2700A) 및 도 28의 방법(2800)에 설명되는 바와 같이 생성될 수 있다. 예컨대, 이중 암호화된 시크릿 부분(1939)은, (1) 단일 암호화된 시크릿 부분(734)을 생성하기 위해 분배자 암호화 공개 키(2036)를 사용하여 시크릿 부분(730)을 비대칭 암호화하는 부분 분배자(1925); (2) 이중 암호화된 시크릿 부분(1939)을 생성하기 위해, 부분 보유자 암호화 공개 키(2043)로 단일 암호화된 시크릿 부분(734)을 비대칭으로 암호화하는 부분 분배자(1925); (3) 부분 보유자 복호화 개인 키(2047)를 사용하여 이중 암호화된 시크릿 부분(1939)을 (단일 암호화된 시크릿 부분(734)으로) 비대칭 복호화하는 부분 보유자(1925); 및 (4) 분배자 암호화 공개 키(2036)를 사용하여 단일 암호화된 시크릿 부분(734)을 이중 암호화된 시크릿 부분(738)으로 비대칭 암호화하는 부분 보유자(1620)에 의해 생성될 수 있다.
선택적으로, 각각의 이중 암호화된 시크릿 부분(738)을 수신하면, 적어도 하나의 프로세서는, 부분 보유자 서명 공개 키(2097)를 사용하여, (QR 코드(854)로부터 결정된) 이중 암호화된 시크릿 부분(738) 상의 제3 서명이 이를 전송한 부분 보유자(1620)에 속한다고 검증할 수 있다.
방법(2900A)은, (오프라인 서명 서비스(308) 또는 온라인 서명 서비스(1809)에서의) 적어도 하나의 프로세서가 복수의 이중 암호화된 시크릿 부분(738) 각각을, 공개/개인 키쌍에 속하는 개인 키를 사용하여, 대응되는 단일 암호화된 시크릿 부분(734)으로 복호화하는 단계(2928A)로 진행할 수 있다. 예시에서, 분배자 복호화 개인 키(2040)는 이중 암호화된 시크릿 부분(738)을 단일 암호화된 시크릿 부분들(734)로 복호화하는데 사용된다. 선택적으로, 적어도 하나의 프로세서는, (부분 보유자(1620)에서 추가된) 타임스탬프가 최근인지, 예컨대 미리 결정된 시간 임계치보다 오래되지 않았는지를 검증할 수 있다. 일부 구성에서, 적어도 하나의 프로세서는, 타임 스탬프가 미리 결정된 시간 임계치보다 오래된 경우 단일 암호화된 시크릿 부분(734)을 폐기할 수 있다.
방법(2900A)은, 적어도 하나의 프로세서가 각각의 대응되는 단일 암호화된 시크릿 부분(734)을 대응되는 시크릿 부분(730)으로 복호화하는 단계(2930A)로 진행할 수 있다. 단계(2930A)는, (예컨대, 부분 분배자(1925)에서의) 제1 암호화 단계가 비대칭 또는 대칭인지에 따라 각각 비대칭 복호화 또는 대칭 복호화를 사용할 수 있다. 단계(2930A)가 대칭 복호화를 사용하는 경우, 대칭(예컨대, AES) 대칭 키(732)가 특정 시크릿(728)의 모든 단일 암호화된 시크릿 부분들(734)을 복호화하는데 사용될 수 있다. 대안으로, 상이한 대칭 키(732)가 특정 시크릿(728)의 각각의 단일 암호화된 시크릿 부분(734)을 암호화하는데 사용된다.
단계(2930A)가 비대칭 복호화를 사용하는 경우, 분배자 복호화 개인 키(2040)가 단일 암호화된 시크릿 부분(734)을 대응되는 시크릿 부분들(730)로 복호화하는데 다시 사용될 수 있다. 선택적으로, 적어도 하나의 프로세서는, 단계(2930A)가 수행되기 전 또는 후에 단일 암호화된 시크릿 부분(734) 상의 (부분 분배자(1925)에 적용된) 제1 서명이, 부분 분배자(1925)에 속함을 검증할 수 있다.
적어도 하나의 프로세서는, 샤미르 메타데이터를 살펴봄으로써 전송된 각각의 이제 복호화된 시크릿 부분(730)을 전송한 부분 보유자(1620)가 예측된 부분 보유자(1620)에 일치하는지를 선택적으로 검증할 수 있다. 예시에서, 온라인 서명 서비스(1809)는, 각각의 이제 복호화된 시크릿 부분(730)을 전송한 부분 보유자(1620)가 예측된 부분 보유자(1620)에 일치하는 경우에만 시크릿(728)의 재구성을 시도할 수 있다.
방법(2900A)은, 적어도 하나의 프로세서가 시크릿 부분들(734)의 수량으로부터 자산 암호화 키(시크릿)(728)를 재구성하는 단계(2932A)로 진행할 수 있다. 예시에서, 자산 암호화 키(시크릿)(728)는 상이한 블록체인 어드레스, 계좌 및/또는 월렛을 위한 하나 이상의 자산 키를 암호화 또는 복호화하는데 이후에 사용될 수 있는 대칭(예컨대, AES(Advanced Encryption Standard)) 키이다. 예시에서, 자산 암호화 키(시크릿)(728)는, 자산 암호화 키(시크릿)(728)로부터 이전에 생성된 시크릿 부분들(734)의 총 개수 중의 서브세트로부터 재구성되며, 예컨대, 여기서 1<=M<=N이고, (일부 구성에서는 1<M<N 이다). 적어도 하나의 프로세서는, 샤미르 메타데이터에 기초하여 자산 암호화 키(시크릿)(728)를 재구성하기에 충분한 시크릿 부분들(734)이 수집되었는지 여부를 결정할 수 있다.
방법(2900A)은 재구성된 암호화 키(728)를 사용하여 적어도 하나의 프로세서가 행위를 수행하는 선택적 단계(2934A)로 진행할 수 있다. 예시에서, 자산 암호화 키(시크릿)(728)는, 자산 키 (또는 다수의 자산 키들)로의 액세스를 획득하는데 사용될 수 있다. 자산 키가 (월렛 어드레스 또는 블록체인(416) 상의 스마트 계약을 위한) 블록체인(예컨대, 이더리움, 비트코인) 개인 키인 경우, 자산 암호화 키는, 블록체인 개인 키를 암호화/복호화하는데 사용된다. 예시에서, 자산 암호화 키는, 고객 월렛 복원 동안에 스위핑(sweeping) 거래에 서명하거나, 높은 잔고 계좌를 위한 거래 어드레스를 생성하는데 사용된다. 대안으로, 자산 키는, 비암호 키 스트링, 가령 암호화폐 월렛을 위한 패스워드나 15개의 단어 시드 메모닉(seed mnemonic) 구절일 수 있다. 따라서, 행위는, 블록체인(416) 상에서 암호화폐 어드레스/월렛/계좌 또는 스마트 계약에 액세스하기 위해 개인 블록체인 키 또는 다른 패스워드와 유사한 데이터를 암호화 또는 복호화하는 것을 포함할 수 있다.
방법(2900A)은, 적어도 하나의 프로세서가 전술한 바와 같이 적어도 하나의 키를 교환(예컨대, 새로운 버전을 생성하고 분배)하는 선택적 단계(2936A)로 진행할 수 있다. 예시에서, 적어도 하나의 프로세서는: (1) 시크릿/자산 암호화 키/SYM1 키(728); (2) 대칭 키(732)(SYM2); (3) 분배자 복호화 개인 키(2040) 및 분배자 암호화 공개 키(2036); 및/또는 (4) 분배자 서명 개인 키(2093) 및 분배자 서명 공개 키(2095)의 새로운 세트를 생성할 수 있다. 예시에서, 적어도 하나의 키는 주기적으로, 예컨대 매일, 매주, 매달, 매해 등으로 교환된다.
도 29b는 자산 암호화 키(시크릿)(728)을 안전하게 재구성하기 위한 다른 방법(2900A)을 도시하는 흐름도이다. 도 29b의 방법(2900B)은, 도 29a의 방법(2900A)의 단계들과 동일한 다수의 단계들을 포함할 수 있다. 달리 명시되지 않는다면, 도 29b의 방법(2900B)의 단계들은 도 29a의 방법(2900A)의 단계들과 동일하다.
도 29a의 방법(2900A)의 단계(2928A)와는 대조적으로, 단계(2928B)에서, 복호화는 개인 키를 사용하는 비대칭 복호화로 제한되지 않는다. 제1 예시로, (오프라인 서명 서비스(308) 또는 온라인 서명 서비스(1809)에서의) 적어도 하나의 프로세서는, 분배자 복호화 개인 키(2040)를 사용하여 복수의 이중 암호화된 시크릿 부분(738) 중의 각각을 대응되는 단일 암호화된 시크릿 부분(734)으로 비대칭 복호화한다. 제2 예시에서, (오프라인 서명 서비스(308) 또는 온라인 서명 서비스(1809)에서의) 적어도 하나의 프로세서는, 대칭 키(732)를 사용하여 복수의 이중 암호화된 시크릿 부분들(738) 각각을 대응되는 단일 암호화된 시크릿 부분(734)으로 비대칭 복호화한다.
본 명세서에서 소개된 기술들은 특수목적용 하드웨어(가령 회로부로서), 소프트웨어 및/또는 펌웨어로 적절하게 프로그래밍된 프로그램가능한 회로부로서, 또는 특수목적용 및 프로그램가능한 회로부의 조합으로서 구체화될 수 있다. 따라서, 실시예들은, 프로세스를 수행하기 위해 컴퓨터 (또는 다른 전자 장치)를 프로그래밍하는데 사용될 수 있는 명령어가 저장된 기계 판독가능한 매체를 포함할 수 있다. 기계 판독가능한 매체는, 예컨대 플로피 디스크, 광학 디스크, CD-ROMs, 자기 광학 디스크, ROMs, RAMs, EPROMs(erasable programmable read-only memories), EEPROMs(electrically erasable programmable read-only memories), 자기 또는 광학 카드, 플래시 메모리, 또는 전자식 명령어를 저장하기에 적절한 임의의 타입의 기계판독가능한 매체/다른 타입의 매체를 포함할 수 있다.
컴퓨터 시스템 개관
본 명세서의 실시예는, 전술한 다양한 단계 및 동작을 포함한다. 다양한 이러한 단계 및 동작은 하드웨어 구성요소에 의해서 실시될 수 있거나 기계-실행 가능 명령어들로 구현될 수 있고, 이는, 명령어로 프로그래밍된 범용의 또는 특별한 목적의 프로세서가 상기 단계를 실시하게 하기 위해서 사용될 수 있다. 대안적으로, 단계가 하드웨어, 소프트웨어, 및/또는 펌웨어의 조합에 의해서 실시될 수 있다. 따라서, 도 30은 본 명세서의 실시예와 함께 이용될 수 있는 예시적인 컴퓨터 시스템(3000)의 예시이다. 예컨대, 컴퓨터 시스템(3000)은 상술한 컴퓨팅 장치(102) 및/또는 컴퓨팅 장치(104)를 구현할 수 있다. 본 예에 따라, 컴퓨터 시스템(3000)은 인터커넥트(3002), 적어도 하나의 프로세서(3004), 적어도 하나의 통신 포트(3006), 적어도 하나의 주 메모리(3008), 적어도 하나의 분리 가능한 저장 매체(3010), 적어도 하나의 ROM(3012), 및 적어도 하나의 대용량 저장 장치(3014)를 포함한다.
적어도 하나의 프로세서(3004)는 임의의 알려진 프로세서일 수 있다. 적어도 하나의 통신 포트(3006)는, 예를 들어, 모뎀-기반 다이얼 접속 연결과 함께 이용되는 RS-232 포트, 10/100 이더넷 포트, 또는 구리 또는 섬유를 이용하는 기가비트 포트 중 임의의 것일 수 있거나 포함할 수 있다. 적어도 하나의 통신 포트(3006)의 특성은, 근거리 네트워크(LAN), 광역 네트워크(WAN), 또는 컴퓨터 시스템(3000)이 연결되는 임의의 네트워크에 따라서 선택될 수 있다. 적어도 하나의 주 메모리(3008)가 RAM(Random Access Memory), 또는 당업계에 일반적으로 알려진 임의의 다른 동적 저장 장치(들)일 수 있다. 적어도 하나의 리드 온리 메모리(ROM, 3012)는, 적어도 하나의 프로세서(3004)를 위한 명령어와 같은 정적인 정보를 저장하기 위한 PROM(Programmable Read Only Memory) 칩과 같은 임의의 정적 저장 장치(들)일 수 있다.
적어도 하나의 대량 저장 장치(3014)를 이용하여 정보 및 명령어를 저장할 수 있다. 예를 들어, 하드 디스크(가령, 직렬/병렬 ATA 또는 SCSI 인터페이스를 사용하는 솔리드 스테이트 드라이브 또는 자기 디스크 드라이브), 광학 디스크, 디스크들의 어레이, 가령 RAID(Redundant Array of Independent Disks) 또는 임의의 다른 대용량 디바이스가 사용될 수 있다. 인터커넥트(3002)는 하나 이상의 버스, 브릿지, 제어기, 어댑터, 및/또는 점-대-점 연결일 수 있거나 포함할 수 있다. 인터커넥트(3002)는 적어도 하나의 프로세서(3004)를 다른 메모리, 저장부, 및 통신 블록과 통신 가능하게 커플링시킨다. 인터커넥트(3002)는, 사용되는 저장 장치에 따라서, PCI/PCI-X 또는 SCSI 기반의 시스템 버스일 수 있다. 적어도 하나의 분리 가능한 저장 매체(3010)는 외장 하드-드라이브, 플로피 디스크, CD-ROM(Compact Disc-Read Only Memory), CD-RW(Compact Disc-Re-Writable), DVD-ROM(Digital Video Disc-Read Only Memory), BD-ROM(Blu-Ray Disc Read Only Memory), BD-R(Blu-Ray Disc Recordable), BD-RE(Blu-Ray Disc Recordable Erasable) 중의 임의의 종류일 수 있다.
전술한 구성요소는 일부 가능한 유형을 예시하기 위한 것이다. 전술한 예가 단지 예시적인 실시예이기 때문에, 전술한 예가 어떠한 방식으로도 개시 내용을 제한하지 않아야 한다. 본 명세서에 설명되는 실시예, 구조, 방법 등은 전술된 것과 후술되는 것들을 포함하며, 다양한 방식으로 함께 조합될 수 있다.
술어
본원의 전체를 통해서 사용된 용어, 약어 및 문구에 관한 간단한 정의를 이하에서 제공한다.
"연결된(connected)", "결합된(coupled)" 및 "통신 가능하게 결합된(communicatively coupled)"이라는 용어 그리고 관련 용어는 동작적인 의미로 사용되고, 반드시 직접적인 물리적 연결 또는 커플링으로 제한되는 것은 아니다. 따라서, 예를 들어, 2개의 디바이스가 직접적으로 또는 하나 이상의 중간 매체 또는 장치를 통해서 연결될 수 있다. 또 다른 예로, 장치는, 서로 어떠한 물리적 연결도 공유하지 않으면서, 정보가 서로 간에 전달될 수 있는 방식으로 커플링될 수 있다. 본원에서 제공된 개시 내용을 기초로, 당업자는 전술한 정의에 따른 연결 또는 커플링이 존재하는 다양한 방식을 이해할 것이다.
"기초하는(based on)"이라는 문구는 달리 명시되지 않는 한 "~만을 기초로 하는(based only on)"을 의미하지 않는다. 다시 말해서, "기초하는"이라는 문구는 "~만을 기초로 하는" 및 "적어도 ~을 기초로 하는" 둘 모두를 설명한다. 또한, "및/또는"이라는 용어는 "및" 또는 "또는"을 의미한다. 예컨대, "A 및/또는 B"는 "A", "B", 또는 "A 및 B"를 의미할 수 있다. 추가로, "A, B 및/또는 C"는 "A 단독", "B 단독", "C 단독", "A 및 B", "A 및 C", "B 및 C" 또는 "A, B 및 C"를 의미할 수 있다.
"예시적인 실시예에서(in exemplary embodiments)", "예시적 실시예에서", "일부 실시예에서", "일부 실시예에 따라", "도시된 실시예에서", "다른 실시예에서", "실시예", "예시들에서", "예시", "일부 예시들에서", "일부 예시" 등과 같은 문구는 일반적으로 상기 문구 다음에 나오는 특정 특징, 구조 또는 특성이 본 개시 내용의 적어도 하나의 실시예에 포함된다는 것, 그리고 본 개시 내용의 하나 초과의 실시예에 포함될 수 있다는 것을 의미한다. 또한, 상기 문구가 반드시 동일한 실시예 또는 다른 실시예를 언급하는 것은 아니다.
명세서에서 구성요소 또는 특성이 포함될 수 있다는("may," "can," "could," 또는 "might") 것 또는 특성을 갖는다는 것을 기술하는 경우에, 상기 특정 구성요소 또는 특징이 포함될 것 또는 특성을 가질 것이 요구되는 것은 아니다.
"응답하는(responsive)"이라는 용어는 완전히 또는 부분적으로 응답하는 것을 포함한다.
"모듈" 이라는 용어는 소프트웨어, 하드웨어, 또는 펌웨어(또는 이들의 임의의 조합) 구성요소를 광범위하게 지칭한다. 모듈은 전형적으로, 특정 입력(들)을 사용하여 유용한 데이터 또는 기타 출력을 생성할 수 있는 기능적 구성요소이다. 모듈은 독립적일 수도 있고 아닐 수도 있다. ("애플리케이션"으로도 지칭되는) 애플리케이션 프로그램이 하나 이상의 모듈을 포함할 수 있거나, 모듈이 하나 이상의 애플리케이션 프로그램을 포함할 수 있다.
"네트워크"라는 용어는 일반적으로 정보를 교환할 수 있는 상호 연결된 장치의 그룹을 지칭한다. 네트워크는 근거리 네트워크(LAN)에 있는 몇 대의 개인용 컴퓨터만큼 작을 수 있거나, 전 세계 컴퓨터 네트워크인, 인터넷만큼 클 수도 있다. 본원에서 사용되는 바와 같이, "네트워크"는 하나의 주체로부터 다른 주체로 정보를 전송할 수 있는 임의의 네트워크를 포함하도록 의도된다. 일부 경우에는, 네트워크가, 다양한 네트워크 사이의 그리고 네트워크 간의 통신을 돕기 위해서 동작될 수 있는 게이트웨이를 통해서 연결된, 다수의 네트워크로, 심지어 다수의 이질적인 네트워크, 예를 들어 하나 이상의 경계 네트워크, 음성 네트워크, 광대역 네트워크, 금융 네트워크, 서비스 제공 업체 네트워크, ISP(Internet Service Provider) 및/또는 PSTN(Pubic Switched Telephone Network)을 포함할 수 있다.
또한, 예시를 위해서, 본 개시 내용의 다양한 실시예가 현대의 컴퓨터 네트워크 내의 컴퓨터 프로그램, 물리적 구성요소 및 논리적 상호 작용의 맥락에서 설명되었다. 중요하게는, 이들 실시예가 현대의 컴퓨터 네트워크 및 프로그램과 관련하여 본 개시 내용의 다양한 실시예를 설명하지만, 본원에서 설명된 방법 및 장치가, 당업자가 이해할 수 있는 바와 같이, 다른 시스템, 장치 및 네트워크에도 동일하게 적용될 수 있다. 따라서, 본 개시 내용의 실시예의 예시된 적용예는 제한을 의미하는 것이 아니라, 예시적인 것이다. 본 개시 내용의 실시예가 적용될 수 있는 다른 시스템, 장치, 및 네트워크는 예를 들어 다른 유형의 통신 및 컴퓨터 장치 및 시스템을 포함한다. 보다 구체적으로, 실시예는 통신 시스템, 서비스, 및 셀 폰 네트워크 및 호환 가능 디바이스와 같은 디바이스에 적용 가능하다. 또한, 실시예는 개인용 컴퓨터로부터 대규모 네트워크 메인프레임 및 서버에 이르는 모든 레벨의 컴퓨팅에 적용 가능하다.
결론적으로, 본 명세서의 내용은, 키들을 안전하게 스플릿, 분배 및/또는 재구성하기 위한 신규한 시스템, 방법, 및 장치를 제공한다. 본 개시 내용의 하나 이상의 실시예에 대한 상세한 설명을 앞서서 제공하였지만, 개시 내용의 사상으로부터 벗어나지 않고도, 다양한 대안, 수정 및 등가물이 당업자에게 명백할 것이다. 예컨대, 전술한 실시예들이 특정 특징들을 언급하지만, 본 개시 내용의 범위는 또한, 상이한 특징들의 조합을 갖는 실시예 및 설명된 특징들의 전부를 포함하지 않는 실시예를 포함한다. 따라서, 본 개시 내용의 범위는, 청구 범위의 범위 내에 포함되는 그러한 모든 대안, 수정 및 변형을, 그 모든 균등물과 함께 포함하도록 의도된다. 그에 따라, 전술한 설명은 제한적인 것으로 간주되지 않아야 한다.
예시적인 실시예들의 제1 세트
실시예 1은, 시스템에 있어서, 적어도 하나의 프로세서와; 상기 적어도 하나의 프로세서에 통신가능하게 연결된(communicatively coupled) 적어도 하나의 메모리를 포함하고, 상기 적어도 하나의 프로세서는: 적어도 하나의 대칭 키; 또는 상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍(keypair) 중의 적어도 하나의 공개 키, 중 적어도 하나를 사용하여, 자산 암호화 키 부분들(asset encryption key parts)의 적어도 하나의 세트를, 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트로 암호화하도록 구성되며, 상기 자산 암호화 키 부분들의 적어도 하나의 세트 중의 적어도 하나의 서브세트가 자산 암호화 키를 재구성하는데 사용되고, 상기 자산 암호화 키는 적어도 하나의 자산 키를 사용하여 행위를 수행하는데 사용되는, 시스템을 포함한다.
실시예 2는, 실시예 1에 있어서, 적어도 하나의 대칭 키, 또는 상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍 중의 적어도 하나의 공개 키, 중 적어도 하나를 사용하는 것은, 상기 시스템이 온라인 서명 서비스를 구현하는 경우, 상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍 중의 적어도 하나의 공개 키를 사용하는 것을 포함하고, 상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍 중의 적어도 하나의 공개 키에 대응하는 적어도 하나의 개인 키가, 상기 시스템의 적어도 하나의 메모리에 저장되는, 시스템을 포함한다.
실시예 3은, 실시예 2에 있어서, 상기 적어도 하나의 프로세서는: 상기 시스템과 연관된 공개/개인 키쌍 중의 적어도 하나의 공개 키를 첫번째로 사용하고, 대응되는 부분 보유자(part holder)와 연관된 공개/개인 키쌍 중의 공개 키를 두번째로 사용하여, 상기 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트 각각이 이중 암호화(double encrypted)되도록, 상기 대응되는 부분 보유자와 연관된 공개/개인 키쌍 중의 공개 키를 사용하여, 상기 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트 각각을 암호화하도록 구성되는, 시스템을 포함한다.
실시예 4는, 실시예 3에 있어서, 상기 적어도 하나의 프로세서에 통신가능하게 연결된 네트워크 어댑터로서, 상기 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트 각각을, 상기 대응되는 부분 보유자에게 통신하도록 구성되는 것인, 상기 네트워크 어댑터를 더 포함하는, 시스템을 포함한다.
실시예 5는, 실시예 3 또는 4에 있어서, 상기 적어도 하나의 프로세서에 통신가능하게 연결된 네트워크 어댑터로서, 상기 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트 각각을, 상기 대응되는 부분 보유자에 의한 추후의 액세스를 위해, 저장소(repository)로 통신하도록 구성되는 것인, 상기 네트워크 어댑터를 더 포함하는, 시스템을 포함한다.
실시예 6은, 실시예 1 내지 5 중 어느 하나에 있어서, 각각의 부분 보유자는: 대응되는 부분 보유자와 연관된 공개/개인 키쌍 중의 개인 키를 사용하여, 대응되는 암호화된 자산 암호화 키 부분을 복호화(decrypt)하고, 상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍 중의 적어도 하나의 공개 키를 사용하여, 재암호화된(re-encrypted) 자산 암호화 키 부분을 생성하기 위해, 상기 대응되는 암호화된 자산 암호화 키 부분을 재암호화하도록 구성되고, 상기 재암호화된 자산 암호화 키 부분은, 상기 자산 암호화 키를 재구성하기 위해, 상기 대응되는 부분 보유자로부터 상기 시스템으로 통신되는, 시스템을 포함한다.
실시예 7은, 실시예 1 내지 6 중 어느 하나에 있어서, 적어도 하나의 대칭 키, 또는 상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍 중의 적어도 하나의 공개 키, 중 적어도 하나를 사용하는 것은, 상기 시스템이 오프라인 서명 서비스를 구현하는 경우, 상기 적어도 하나의 대칭 키를 사용하는 것을 포함하고, 상기 적어도 하나의 대칭 키는 상기 시스템의 적어도 하나의 메모리에 저장되는, 시스템을 포함한다.
실시예 8은, 실시예 7에 있어서, 상기 적어도 하나의 프로세서는: 상기 적어도 하나의 대칭 키를 첫번째로 사용하고, 상기 시스템과 연관된 공개/개인 키쌍 중의 공개 키를 두번째로 사용하여, 상기 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트 각각이 이중 암호화되도록, 오프라인 서명 서비스와 연관된 공개/개인 키쌍 중의 공개 키를 사용하여, 상기 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트 각각을 암호화하도록 구성되는, 시스템을 포함한다.
실시예 9는, 실시예 8에 있어서, 상기 적어도 하나의 프로세서는: 상기 시스템에 연결된 프린터로 하여금, 상기 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트 각각에 대한 QR(quick response) 코드를 프린트하게 야기하도록 구성되는, 시스템을 포함한다.
실시예 10은, 실시예 9에 있어서, 상기 QR 코드는, 상기 자산 암호화 키의 재구성의 일부로서, 상기 시스템에 연결된 이미징 장치에 의해 스캔되는, 시스템을 포함한다.
실시예 11은, 실시예 1 내지 10 중 어느 하나에 있어서, 상기 적어도 하나의 프로세서는: 다항식 보간법(polynomial interpolation) 또는 샤미르 시크릿 공유(Shamir secret sharing), 중 적어도 하나를 통해 상기 자산 암호화 키로부터 상기 자산 암호화 키 부분들의 적어도 하나의 세트를 생성하도록 구성되는, 시스템을 포함한다.
실시예 12는, 실시예 1 내지 11 중 어느 하나에 있어서, 상기 행위는, 상기 적어도 하나의 자산 키를 사용하여: 데이터를 암호화하는 것; 데이터를 복호화하는 것; 블록체인 개인 키를 암호화하는 것; 블록체인 개인 키를 복호화하는 것; 거래 어드레스를 생성하는 것; 또는 거래에 서명하는 것 중 적어도 하나의 행위를 포함하는, 시스템을 포함한다.
실시예 13은, 적어도 하나의 프로세서와; 상기 적어도 하나의 프로세서에 통신가능하게 연결된 적어도 하나의 메모리를 포함하고, 상기 적어도 하나의 프로세서는: 복수의 대응되는 부분 보유자로부터 복수의 암호화된 자산 암호화 키 부분들을 수신하고; 적어도 하나의 대칭 키; 또는 상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍 중의 적어도 하나의 공개 키, 중 적어도 하나를 사용하여, 상기 암호화된 자산 암호화 키 부분들을 자산 암호화 키 부분들로 복호화하며; 상기 자산 암호화 키 부분들로부터 자산 암호화 키를 재구성하도록 구성되고, 상기 자산 암호화 키는, 상기 자산 암호화 키로부터 이전에 생성된 자산 암호화 키 부분들의 전체 개수의 서브세트인 수량의 자산 암호화 키 부분들로부터 재구성되는, 시스템을 포함한다.
실시예 14는, 실시예 13에 있어서, 적어도 하나의 대칭 키, 또는 상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍 중의 적어도 하나의 개인 키, 중 적어도 하나를 사용하는 것은, 상기 시스템이 온라인 서명 서비스를 구현하는 경우, 상기 암호화된 자산 암호화 키 부분들을 상기 자산 암호화 키 부분들로 복호화하는 동안에, 상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍 중의 적어도 하나의 개인 키를 사용하는 것을 포함하고, 상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍 중의 적어도 하나의 개인 키가, 상기 시스템의 적어도 하나의 메모리에 저장되는, 시스템을 포함한다.
실시예 15는, 실시예 14에 있어서, 상기 적어도 하나의 프로세서에 통신가능하게 연결된 네트워크 어댑터를 더 포함하고, 상기 적어도 하나의 프로세서는, 상기 네트워크 어댑터를 사용하는 네트워크를 통해, 상기 복수의 대응되는 부분 보유자로부터 상기 복수의 암호화된 자산 암호화 키 부분들을 수신하도록 구성되는, 시스템을 포함한다.
실시예 16은, 실시예 14 또는 15에 있어서, 상기 적어도 하나의 프로세서에 통신가능하게 연결된 네트워크 어댑터를 더 포함하고, 상기 적어도 하나의 프로세서는, 상기 네트워크 어댑터를 사용하여 저장소를 통해, 상기 복수의 대응되는 부분 보유자로부터 상기 복수의 암호화된 자산 암호화 키 부분들을 수신하도록 구성되고, 상기 복수의 암호화된 자산 암호화 키 부분들은, 상기 부분 보유자에 의해 저장소에 이전에(previously) 저장된 것인, 시스템을 포함한다.
실시예 17은, 실시예 13 내지 16 중 어느 하나에 있어서, 적어도 하나의 대칭 키, 또는 상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍 중의 적어도 하나의 개인 키를 사용하는 것은: 상기 시스템이 오프라인 서명 서비스를 구현하는 경우, 상기 암호화된 자산 암호화 키 부분들을 상기 자산 암호화 키 부분들로 복호화하는 동안에 상기 적어도 하나의 대칭 키를 사용하는 것을 포함하고, 상기 적어도 하나의 대칭 키는, 상기 시스템의 적어도 하나의 메모리에 저장되는, 시스템을 포함한다.
실시예 18은, 실시예 17에 있어서, 상기 적어도 하나의 프로세서에 통신가능하게 연결되고, 상기 복수의 암호화된 자산 암호화 키 부분들 각각에 대한 QR 코드를 판독하도록 구성된 이미징 장치를 더 포함하고, 상기 적어도 하나의 프로세서는, 상기 복수의 암호화된 자산 암호화 키 부분들 각각에 대한 QR 코드로부터 데이터를 프로세싱함으로써, 상기 복수의 대응되는 부분 보유자로부터 상기 복수의 암호화된 자산 암호화 키 부분들을 수신하도록 구성되는, 시스템을 포함한다.
실시예 19는, 실시예 13 내지 18 중 어느 하나에 있어서, 상기 적어도 하나의 프로세서는 또한, 상기 재구성된 자산 암호화 키를 사용하여 행위를 수행하도록 구성되는, 시스템을 포함한다.
실시예 20은, 실시예 19에 있어서, 상기 행위는, 상기 재구성된 자산 암호화 키를 사용하여 자산 키를 복호화하는 것을 포함하는, 시스템을 포함한다.
실시예 21은, 실시예 20에 있어서, 상기 행위는, 상기 복호화된 자산 키를 사용하여 거래에 서명하는 것을 포함하는, 시스템을 포함한다.
실시예 22는, 시스템에 의해 수행되는, 자산 암호화 키를 스플릿(split)하기 위한 방법에 있어서, 상기 자산 암호화 키를, 자산 암호화 키 부분들의 적어도 하나의 세트로 스플릿하는 단계; 및 적어도 하나의 대칭 키, 또는 상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍 중의 적어도 하나의 공개 키, 중 적어도 하나를 사용하여, 상기 자산 암호화 키 부분들의 적어도 하나의 세트를, 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트로 암호화하는 단계를 포함하고, 상기 자산 암호화 키 부분들의 적어도 하나의 세트 중의 적어도 하나의 서브세트가, 자산 암호화 키를 재구성하는데 사용되고, 상기 자산 암호화 키는 적어도 하나의 자산 키를 사용하여 행위를 수행하는데 사용되는, 자산 암호화 키를 스플릿하기 위한 방법을 포함한다.
실시예 23은, 실시예 22에 있어서, 적어도 하나의 대칭 키, 또는 상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍 중의 적어도 하나의 공개 키, 중 적어도 하나를 사용하는 것은, 상기 시스템이 온라인 서명 서비스를 구현하는 경우, 상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍 중의 적어도 하나의 공개 키를 사용하는 것을 포함하고, 상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍 중의 적어도 하나의 공개 키에 대응하는 적어도 하나의 개인 키가, 상기 시스템의 적어도 하나의 메모리에 저장되는, 자산 암호화 키를 스플릿하기 위한 방법을 포함한다.
실시예 24는, 실시예 23에 있어서, 상기 시스템과 연관된 공개/개인 키쌍 중의 적어도 하나의 공개 키를 첫번째로 사용하고, 대응되는 부분 보유자와 연관된 공개/개인 키쌍 중의 공개 키를 두번째로 사용하여, 상기 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트 각각이 이중 암호화되도록, 상기 대응되는 부분 보유자와 연관된 공개/개인 키쌍 중의 공개 키를 사용하여, 상기 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트 각각을 암호화하는 단계를 더 포함하는, 자산 암호화 키를 스플릿하기 위한 방법을 포함한다.
실시예 25는, 실시예 24에 있어서, 상기 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트를, 대응되는 부분 보유자에게 통신하는 단계를 더 포함하는, 자산 암호화 키를 스플릿하기 위한 방법을 포함한다.
실시예 26은, 실시예 22 내지 25 중 어느 하나에 있어서, 적어도 하나의 대칭 키, 또는 상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍 중의 적어도 하나의 공개 키, 중 적어도 하나를 사용하는 것은, 상기 시스템이 오프라인 서명 서비스를 구현하는 경우, 상기 적어도 하나의 대칭 키를 사용하는 것을 포함하고, 상기 적어도 하나의 대칭 키는 상기 시스템에 저장되는, 자산 암호화 키를 스플릿하기 위한 방법을 포함한다.
실시예 27은, 실시예 26에 있어서, 상기 적어도 하나의 대칭 키를 첫번째로 사용하고, 상기 시스템과 연관된 공개/개인 키쌍 중의 공개 키를 두번째로 사용하여, 상기 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트 각각이 이중 암호화되도록, 오프라인 서명 서비스와 연관된 공개/개인 키쌍 중의 공개 키를 사용하여 상기 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트 각각을 암호화하는 단계를 더 포함하는, 자산 암호화 키를 스플릿하기 위한 방법을 포함한다.
실시예 28은, 실시예 27에 있어서, 각각의 암호화된 자산 암호화 키 부분은, QR 코드 출력물(printout)로서 각각의 부분 보유자에게 통신되는, 자산 암호화 키를 스플릿하기 위한 방법을 포함한다.
실시예 29는, 실시예 22 내지 28 중 어느 하나에 있어서, 자산 암호화 키 부분들을 생성하기 위해, 상기 암호화된 자산 암호화 키 부분들의 적어도 하나의 서브세트를 복호화하는 단계를 더 포함하는, 자산 암호화 키를 스플릿하기 위한 방법을 포함한다.
실시예 30은, 실시예 22 내지 29 중 어느 하나에 있어서, 상기 행위는, 적어도 하나의 자산 키를 사용하여: 데이터를 암호화하는 것; 데이터를 복호화하는 것; 블록체인 개인 키를 암호화하는 것; 블록체인 개인 키를 복호화하는 것; 거래 어드레스를 생성하는 것; 또는 거래에 서명하는 것, 중 적어도 하나의 행위를 포함하는, 자산 암호화 키를 스플릿하기 위한 방법을 포함한다.

Claims (30)

  1. 시스템에 있어서,
    적어도 하나의 프로세서와;
    상기 적어도 하나의 프로세서에 통신가능하게 연결된(communicatively coupled) 적어도 하나의 메모리를 포함하고,
    상기 적어도 하나의 프로세서는:
    적어도 하나의 대칭 키; 또는
    상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍(keypair) 중의 적어도 하나의 공개 키, 중 적어도 하나를 사용하여, 자산 암호화 키 부분들(asset encryption key parts)의 적어도 하나의 세트를, 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트로 암호화하도록 구성되며,
    상기 자산 암호화 키 부분들의 적어도 하나의 세트 중의 적어도 하나의 서브세트가 자산 암호화 키를 재구성하는데 사용되고, 상기 자산 암호화 키는 적어도 하나의 자산 키를 사용하여 행위를 수행하는데 사용되는, 시스템.
  2. 제1항에 있어서,
    적어도 하나의 대칭 키, 또는 상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍 중의 적어도 하나의 공개 키, 중 적어도 하나를 사용하는 것은,
    상기 시스템이 온라인 서명 서비스를 구현하는 경우, 상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍 중의 적어도 하나의 공개 키를 사용하는 것을 포함하고,
    상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍 중의 적어도 하나의 공개 키에 대응하는 적어도 하나의 개인 키가, 상기 시스템의 적어도 하나의 메모리에 저장되는, 시스템.
  3. 제2항에 있어서,
    상기 적어도 하나의 프로세서는:
    상기 시스템과 연관된 공개/개인 키쌍 중의 적어도 하나의 공개 키를 첫번째로 사용하고, 대응되는 부분 보유자(part holder)와 연관된 공개/개인 키쌍 중의 공개 키를 두번째로 사용하여, 상기 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트 각각이 이중 암호화(double encrypted)되도록, 상기 대응되는 부분 보유자와 연관된 공개/개인 키쌍 중의 공개 키를 사용하여, 상기 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트 각각을 암호화하도록 구성되는, 시스템.
  4. 제3항에 있어서,
    상기 적어도 하나의 프로세서에 통신가능하게 연결된 네트워크 어댑터로서, 상기 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트 각각을, 상기 대응되는 부분 보유자에게 통신하도록 구성되는 것인, 상기 네트워크 어댑터를 더 포함하는, 시스템.
  5. 제3항에 있어서,
    상기 적어도 하나의 프로세서에 통신가능하게 연결된 네트워크 어댑터로서, 상기 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트 각각을, 상기 대응되는 부분 보유자에 의한 추후의 액세스를 위해, 저장소(repository)로 통신하도록 구성되는 것인, 상기 네트워크 어댑터를 더 포함하는, 시스템.
  6. 제1항에 있어서,
    각각의 부분 보유자는:
    대응되는 부분 보유자와 연관된 공개/개인 키쌍 중의 개인 키를 사용하여, 대응되는 암호화된 자산 암호화 키 부분을 복호화(decrypt)하고,
    상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍 중의 적어도 하나의 공개 키를 사용하여, 재암호화된(re-encrypted) 자산 암호화 키 부분을 생성하기 위해, 상기 대응되는 암호화된 자산 암호화 키 부분을 재암호화하도록 구성되고,
    상기 재암호화된 자산 암호화 키 부분은, 상기 자산 암호화 키를 재구성하기 위해, 상기 대응되는 부분 보유자로부터 상기 시스템으로 통신되는, 시스템.
  7. 제1항에 있어서,
    적어도 하나의 대칭 키, 또는 상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍 중의 적어도 하나의 공개 키, 중 적어도 하나를 사용하는 것은,
    상기 시스템이 오프라인 서명 서비스를 구현하는 경우, 상기 적어도 하나의 대칭 키를 사용하는 것을 포함하고,
    상기 적어도 하나의 대칭 키는 상기 시스템의 적어도 하나의 메모리에 저장되는, 시스템.
  8. 제7항에 있어서,
    상기 적어도 하나의 프로세서는:
    상기 적어도 하나의 대칭 키를 첫번째로 사용하고, 상기 시스템과 연관된 공개/개인 키쌍 중의 공개 키를 두번째로 사용하여, 상기 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트 각각이 이중 암호화되도록, 오프라인 서명 서비스와 연관된 공개/개인 키쌍 중의 공개 키를 사용하여, 상기 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트 각각을 암호화하도록 구성되는, 시스템.
  9. 제8항에 있어서,
    상기 적어도 하나의 프로세서는:
    상기 시스템에 연결된 프린터로 하여금, 상기 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트 각각에 대한 QR(quick response) 코드를 프린트하게 야기하도록 구성되는, 시스템.
  10. 제9항에 있어서,
    상기 QR 코드는, 상기 자산 암호화 키의 재구성의 일부로서, 상기 시스템에 연결된 이미징 장치에 의해 스캔되는, 시스템.
  11. 제1항에 있어서,
    상기 적어도 하나의 프로세서는:
    다항식 보간법(polynomial interpolation) 또는 샤미르 시크릿 공유(Shamir secret sharing), 중 적어도 하나를 통해 상기 자산 암호화 키로부터 상기 자산 암호화 키 부분들의 적어도 하나의 세트를 생성하도록 구성되는, 시스템.
  12. 제1항에 있어서,
    상기 행위는, 상기 적어도 하나의 자산 키를 사용하여:
    데이터를 암호화하는 것;
    데이터를 복호화하는 것;
    블록체인 개인 키를 암호화하는 것;
    블록체인 개인 키를 복호화하는 것;
    거래 어드레스를 생성하는 것; 또는
    거래에 서명하는 것 중 적어도 하나의 행위를 포함하는, 시스템.
  13. 시스템에 있어서,
    적어도 하나의 프로세서와;
    상기 적어도 하나의 프로세서에 통신가능하게 연결된 적어도 하나의 메모리를 포함하고,
    상기 적어도 하나의 프로세서는:
    복수의 대응되는 부분 보유자로부터 복수의 암호화된 자산 암호화 키 부분들을 수신하고;
    적어도 하나의 대칭 키; 또는
    상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍 중의 적어도 하나의 공개 키, 중 적어도 하나를 사용하여, 상기 암호화된 자산 암호화 키 부분들을 자산 암호화 키 부분들로 복호화하며;
    상기 자산 암호화 키 부분들로부터 자산 암호화 키를 재구성하도록 구성되고,
    상기 자산 암호화 키는, 상기 자산 암호화 키로부터 이전에 생성된 자산 암호화 키 부분들의 전체 개수의 서브세트인 수량의 자산 암호화 키 부분들로부터 재구성되는, 시스템.
  14. 제13항에 있어서,
    적어도 하나의 대칭 키, 또는 상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍 중의 적어도 하나의 개인 키, 중 적어도 하나를 사용하는 것은,
    상기 시스템이 온라인 서명 서비스를 구현하는 경우, 상기 암호화된 자산 암호화 키 부분들을 상기 자산 암호화 키 부분들로 복호화하는 동안에, 상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍 중의 적어도 하나의 개인 키를 사용하는 것을 포함하고,
    상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍 중의 적어도 하나의 개인 키가, 상기 시스템의 적어도 하나의 메모리에 저장되는, 시스템.
  15. 제14항에 있어서,
    상기 적어도 하나의 프로세서에 통신가능하게 연결된 네트워크 어댑터를 더 포함하고,
    상기 적어도 하나의 프로세서는, 상기 네트워크 어댑터를 사용하는 네트워크를 통해, 상기 복수의 대응되는 부분 보유자로부터 상기 복수의 암호화된 자산 암호화 키 부분들을 수신하도록 구성되는, 시스템.
  16. 제14항에 있어서,
    상기 적어도 하나의 프로세서에 통신가능하게 연결된 네트워크 어댑터를 더 포함하고,
    상기 적어도 하나의 프로세서는, 상기 네트워크 어댑터를 사용하여 저장소를 통해, 상기 복수의 대응되는 부분 보유자로부터 상기 복수의 암호화된 자산 암호화 키 부분들을 수신하도록 구성되고, 상기 복수의 암호화된 자산 암호화 키 부분들은, 상기 부분 보유자에 의해 저장소에 이전에(previously) 저장된 것인, 시스템.
  17. 제13항에 있어서,
    적어도 하나의 대칭 키, 또는 상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍 중의 적어도 하나의 개인 키를 사용하는 것은:
    상기 시스템이 오프라인 서명 서비스를 구현하는 경우, 상기 암호화된 자산 암호화 키 부분들을 상기 자산 암호화 키 부분들로 복호화하는 동안에 상기 적어도 하나의 대칭 키를 사용하는 것을 포함하고,
    상기 적어도 하나의 대칭 키는, 상기 시스템의 적어도 하나의 메모리에 저장되는, 시스템.
  18. 제17항에 있어서,
    상기 적어도 하나의 프로세서에 통신가능하게 연결되고, 상기 복수의 암호화된 자산 암호화 키 부분들 각각에 대한 QR 코드를 판독하도록 구성된 이미징 장치를 더 포함하고,
    상기 적어도 하나의 프로세서는, 상기 복수의 암호화된 자산 암호화 키 부분들 각각에 대한 QR 코드로부터 데이터를 프로세싱함으로써, 상기 복수의 대응되는 부분 보유자로부터 상기 복수의 암호화된 자산 암호화 키 부분들을 수신하도록 구성되는, 시스템.
  19. 제13항에 있어서,
    상기 적어도 하나의 프로세서는 또한, 상기 재구성된 자산 암호화 키를 사용하여 행위를 수행하도록 구성되는, 시스템.
  20. 제19항에 있어서,
    상기 행위는, 상기 재구성된 자산 암호화 키를 사용하여 자산 키를 복호화하는 것을 포함하는, 시스템.
  21. 제20항에 있어서,
    상기 행위는, 상기 복호화된 자산 키를 사용하여 거래에 서명하는 것을 포함하는, 시스템.
  22. 시스템에 의해 수행되는, 자산 암호화 키를 스플릿(split)하기 위한 방법에 있어서,
    상기 자산 암호화 키를, 자산 암호화 키 부분들의 적어도 하나의 세트로 스플릿하는 단계; 및
    적어도 하나의 대칭 키, 또는 상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍 중의 적어도 하나의 공개 키, 중 적어도 하나를 사용하여, 상기 자산 암호화 키 부분들의 적어도 하나의 세트를, 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트로 암호화하는 단계
    를 포함하고,
    상기 자산 암호화 키 부분들의 적어도 하나의 세트 중의 적어도 하나의 서브세트가, 자산 암호화 키를 재구성하는데 사용되고, 상기 자산 암호화 키는 적어도 하나의 자산 키를 사용하여 행위를 수행하는데 사용되는, 자산 암호화 키를 스플릿하기 위한 방법.
  23. 제22항에 있어서,
    적어도 하나의 대칭 키, 또는 상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍 중의 적어도 하나의 공개 키, 중 적어도 하나를 사용하는 것은,
    상기 시스템이 온라인 서명 서비스를 구현하는 경우, 상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍 중의 적어도 하나의 공개 키를 사용하는 것을 포함하고,
    상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍 중의 적어도 하나의 공개 키에 대응하는 적어도 하나의 개인 키가, 상기 시스템의 적어도 하나의 메모리에 저장되는, 자산 암호화 키를 스플릿하기 위한 방법.
  24. 제23항에 있어서,
    상기 시스템과 연관된 공개/개인 키쌍 중의 적어도 하나의 공개 키를 첫번째로 사용하고, 대응되는 부분 보유자와 연관된 공개/개인 키쌍 중의 공개 키를 두번째로 사용하여, 상기 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트 각각이 이중 암호화되도록, 상기 대응되는 부분 보유자와 연관된 공개/개인 키쌍 중의 공개 키를 사용하여, 상기 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트 각각을 암호화하는 단계를 더 포함하는, 자산 암호화 키를 스플릿하기 위한 방법.
  25. 제24항에 있어서,
    상기 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트를, 대응되는 부분 보유자에게 통신하는 단계를 더 포함하는, 자산 암호화 키를 스플릿하기 위한 방법.
  26. 제22항에 있어서,
    적어도 하나의 대칭 키, 또는 상기 시스템과 연관된 적어도 하나의 공개/개인 키쌍 중의 적어도 하나의 공개 키, 중 적어도 하나를 사용하는 것은,
    상기 시스템이 오프라인 서명 서비스를 구현하는 경우, 상기 적어도 하나의 대칭 키를 사용하는 것을 포함하고,
    상기 적어도 하나의 대칭 키는 상기 시스템에 저장되는, 자산 암호화 키를 스플릿하기 위한 방법.
  27. 제26항에 있어서,
    상기 적어도 하나의 대칭 키를 첫번째로 사용하고, 상기 시스템과 연관된 공개/개인 키쌍 중의 공개 키를 두번째로 사용하여, 상기 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트 각각이 이중 암호화되도록, 오프라인 서명 서비스와 연관된 공개/개인 키쌍 중의 공개 키를 사용하여 상기 암호화된 자산 암호화 키 부분들의 적어도 하나의 세트 각각을 암호화하는 단계를 더 포함하는, 자산 암호화 키를 스플릿하기 위한 방법.
  28. 제27항에 있어서,
    각각의 암호화된 자산 암호화 키 부분은, QR 코드 출력물(printout)로서 각각의 부분 보유자에게 통신되는, 자산 암호화 키를 스플릿하기 위한 방법.
  29. 제22항에 있어서,
    자산 암호화 키 부분들을 생성하기 위해, 상기 암호화된 자산 암호화 키 부분들의 적어도 하나의 서브세트를 복호화하는 단계를 더 포함하는, 자산 암호화 키를 스플릿하기 위한 방법.
  30. 제22항에 있어서,
    상기 행위는, 적어도 하나의 자산 키를 사용하여:
    데이터를 암호화하는 것;
    데이터를 복호화하는 것;
    블록체인 개인 키를 암호화하는 것;
    블록체인 개인 키를 복호화하는 것;
    거래 어드레스를 생성하는 것; 또는
    거래에 서명하는 것, 중 적어도 하나의 행위를 포함하는, 자산 암호화 키를 스플릿하기 위한 방법.
KR1020217012378A 2018-10-12 2019-10-07 암호화된 자산 암호화 키 부분의 서브세트를 사용하여 자산 암호화 키의 어셈블리를 허용하는 암호화된 자산 암호화 키 부분 KR20210066867A (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201862744886P 2018-10-12 2018-10-12
US62/744,886 2018-10-12
US201962830272P 2019-04-05 2019-04-05
US62/830,272 2019-04-05
US201962853231P 2019-05-28 2019-05-28
US62/853,231 2019-05-28
PCT/US2019/055034 WO2020076722A1 (en) 2018-10-12 2019-10-07 Encrypted asset encryption key parts allowing for assembly of an asset encryption key using a subset of the encrypted asset encryption key parts

Publications (1)

Publication Number Publication Date
KR20210066867A true KR20210066867A (ko) 2021-06-07

Family

ID=70159251

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217012377A KR20210061426A (ko) 2018-10-12 2019-10-07 이중 암호화된 시크릿 부분의 서브세트를 사용하여 시크릿의 어셈블리를 허용하는 이중 암호화된 시크릿 부분
KR1020217012378A KR20210066867A (ko) 2018-10-12 2019-10-07 암호화된 자산 암호화 키 부분의 서브세트를 사용하여 자산 암호화 키의 어셈블리를 허용하는 암호화된 자산 암호화 키 부분

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020217012377A KR20210061426A (ko) 2018-10-12 2019-10-07 이중 암호화된 시크릿 부분의 서브세트를 사용하여 시크릿의 어셈블리를 허용하는 이중 암호화된 시크릿 부분

Country Status (6)

Country Link
US (4) US11444755B2 (ko)
EP (2) EP3864793A4 (ko)
JP (3) JP7384914B2 (ko)
KR (2) KR20210061426A (ko)
SG (2) SG11202103511WA (ko)
WO (2) WO2020076720A1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210061426A (ko) 2018-10-12 2021-05-27 티제로 아이피, 엘엘씨 이중 암호화된 시크릿 부분의 서브세트를 사용하여 시크릿의 어셈블리를 허용하는 이중 암호화된 시크릿 부분
EP3867849B1 (en) * 2018-10-19 2023-11-29 Bell Identification B.v. Secure digital wallet processing system
KR20220140639A (ko) * 2019-05-22 2022-10-18 묘타, 인크. 보안, 복원, 및 제어가 강화된 분산된 데이터 스토리지를 위한 방법 및 시스템
US11374750B2 (en) * 2019-06-10 2022-06-28 Tzero Ip, Llc Key recovery using encrypted secret shares
US11233658B2 (en) * 2019-08-14 2022-01-25 OX Labs Inc. Digital transaction signing for multiple client devices using secured encrypted private keys
JP2021118370A (ja) * 2020-01-22 2021-08-10 キオクシア株式会社 メモリシステム、情報処理装置、および情報処理システム
US11563568B2 (en) 2020-02-27 2023-01-24 Comcast Cable Communications, Llc Scalable content restriction
US11451558B2 (en) * 2020-03-16 2022-09-20 The Boeing Company Information system end user location detection technique
US11398901B2 (en) * 2020-03-26 2022-07-26 Walmart Apollo, Llc Restricted partial key storage
US20220006613A1 (en) * 2020-07-02 2022-01-06 International Business Machines Corporation Secure secret recovery
US11522684B2 (en) 2020-09-24 2022-12-06 Capital One Services, Llc Key rotation service
WO2022173930A1 (en) * 2021-02-12 2022-08-18 Visa International Service Association Privacy preserving identity data exchange based on hybrid encryption
US11757634B2 (en) * 2021-03-30 2023-09-12 Bank Of America Corporation System for secure client-side cryptographic key retrieval using cryptographic key splitting and wrapping
CN113111396B (zh) * 2021-04-19 2022-09-02 湖北央中巨石信息技术有限公司 一种增强存储媒体安全性的方法及系统及装置及介质
US11748502B2 (en) * 2021-06-10 2023-09-05 Dell Products L.P. System and method of utilizing a system to secure a document
JP6999144B1 (ja) 2021-06-25 2022-01-18 A・Tコミュニケーションズ株式会社 データ管理システム
US20230046237A1 (en) * 2021-08-10 2023-02-16 Motorola Solutions, Inc. Secure communication between different agencies in an incident area
CN114449505B (zh) * 2022-03-08 2022-07-29 芯电智联(北京)科技有限公司 一种nfc标签数据的传输方法、设备和存储介质
CN115842844B (zh) * 2023-02-27 2023-05-30 中关村科学城城市大脑股份有限公司 一种基于区块链的数据处理方法

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6311171B1 (en) * 1997-07-11 2001-10-30 Ericsson Inc. Symmetrically-secured electronic communication system
WO2000074298A1 (en) 1999-05-26 2000-12-07 Ascom Hasler Mailing Systems, Inc. Technique for split knowledge backup and recovery of a cryptographic key
US7142676B1 (en) 1999-06-08 2006-11-28 Entrust Limited Method and apparatus for secure communications using third-party key provider
US7003667B1 (en) 1999-10-04 2006-02-21 Canon Kabushiki Kaisha Targeted secure printing
US20020071566A1 (en) 2000-12-11 2002-06-13 Kurn David Michael Computer system employing a split-secret cryptographic key linked to a password-based cryptographic key security scheme
US20030037237A1 (en) 2001-04-09 2003-02-20 Jean-Paul Abgrall Systems and methods for computer device authentication
US7548621B1 (en) 2002-09-26 2009-06-16 Ncr Corporation System and method for securing a base derivation key for use in injection of derived unique key per transaction devices
KR100617456B1 (ko) 2004-04-28 2006-08-31 주식회사 니츠 비밀키 관리 기능을 가지는 비밀키 단말장치 및 비밀키관리방법
KR20050104202A (ko) 2004-04-28 2005-11-02 한국에너지기술연구원 히트펌프형 공조시스템 및 그 제어방법
JP3607700B1 (ja) 2004-04-28 2005-01-05 トラステッドソリューションズ株式会社 バックアップ・リカバリシステム
JP4547233B2 (ja) 2004-10-27 2010-09-22 日本電信電話株式会社 コミュニケーションシステム、コミュニケーション方法およびそのプログラム
US7587045B2 (en) 2005-10-03 2009-09-08 Kabushiki Kaisha Toshiba System and method for securing document transmittal
US8989390B2 (en) 2005-12-12 2015-03-24 Qualcomm Incorporated Certify and split system and method for replacing cryptographic keys
JP2008099058A (ja) * 2006-10-13 2008-04-24 Murata Mach Ltd ネットワークシステム
JP4917453B2 (ja) 2007-02-22 2012-04-18 Kddi株式会社 閾値秘密分散装置、閾値秘密分散方法、秘密情報復元方法およびプログラム
JP2009103774A (ja) 2007-10-22 2009-05-14 Panasonic Corp 秘密分散システム
US9185109B2 (en) * 2008-10-13 2015-11-10 Microsoft Technology Licensing, Llc Simple protocol for tangible security
JP5497007B2 (ja) 2009-04-03 2014-05-21 パナソニック株式会社 測定装置及び測定装置の制御方法
AU2011235075B2 (en) 2010-03-31 2015-10-01 Security First Corp. Systems and methods for securing data in motion
US9680639B2 (en) 2011-03-31 2017-06-13 Panasonic Intellectual Property Management Co., Ltd. Secret sharing apparatus and secret sharing method that restores secret data from at least two of generated shared data
US20140310527A1 (en) * 2011-10-24 2014-10-16 Koninklijke Kpn N.V. Secure Distribution of Content
US9286241B2 (en) 2012-02-21 2016-03-15 Microchip Technology Incorporated Cryptographic transmission system
JP2014022920A (ja) 2012-07-18 2014-02-03 Nec Corp 電子署名システム、電子署名方法および電子署名プログラム
US8745415B2 (en) 2012-09-26 2014-06-03 Pure Storage, Inc. Multi-drive cooperation to generate an encryption key
US20140229386A1 (en) * 2013-02-13 2014-08-14 Mistral Mobile Secure mobile payments
US9344424B2 (en) * 2013-05-23 2016-05-17 Adobe Systems Incorporated Authorizing access by a third party to a service from a service provider
US10354325B1 (en) 2013-06-28 2019-07-16 Winklevoss Ip, Llc Computer-generated graphical user interface
US9892460B1 (en) 2013-06-28 2018-02-13 Winklevoss Ip, Llc Systems, methods, and program products for operating exchange traded products holding digital math-based assets
JP2015102692A (ja) 2013-11-25 2015-06-04 キヤノン株式会社 情報処理装置およびその方法
US9602508B1 (en) 2013-12-26 2017-03-21 Lookout, Inc. System and method for performing an action based upon two-party authorization
US20170142082A1 (en) * 2014-03-10 2017-05-18 Sengi Corporation System and method for secure deposit and recovery of secret data
US9819656B2 (en) * 2014-05-09 2017-11-14 Sony Interactive Entertainment Inc. Method for secure communication using asymmetric and symmetric encryption over insecure communications
US9667416B1 (en) 2014-12-18 2017-05-30 EMC IP Holding Company LLC Protecting master encryption keys in a distributed computing environment
US9413754B2 (en) * 2014-12-23 2016-08-09 Airwatch Llc Authenticator device facilitating file security
KR101666374B1 (ko) * 2015-02-13 2016-10-14 크루셜텍 (주) 사용자 인증서 발급과 사용자 인증을 위한 방법, 장치 및 컴퓨터 프로그램
US9673975B1 (en) 2015-06-26 2017-06-06 EMC IP Holding Company LLC Cryptographic key splitting for offline and online data protection
US10778439B2 (en) * 2015-07-14 2020-09-15 Fmr Llc Seed splitting and firmware extension for secure cryptocurrency key backup, restore, and transaction signing platform apparatuses, methods and systems
US9954680B1 (en) * 2015-12-18 2018-04-24 EMC IP Holding Company LLC Secure management of a master encryption key in a split-key based distributed computing environment
US10103885B2 (en) 2016-01-20 2018-10-16 Mastercard International Incorporated Method and system for distributed cryptographic key provisioning and storage via elliptic curve cryptography
US20170222805A1 (en) * 2016-02-03 2017-08-03 Cocoon Data Holdings Pty Limited Escrow key fragmentation system
US10333705B2 (en) 2016-04-30 2019-06-25 Civic Technologies, Inc. Methods and apparatus for providing attestation of information using a centralized or distributed ledger
WO2018231832A1 (en) 2017-06-12 2018-12-20 PokitDok, Inc. System and method for autonomous dynamic person management
US10263775B2 (en) * 2017-06-23 2019-04-16 Microsoft Technology Licensing, Llc Policy-based key recovery
US20190238323A1 (en) * 2018-01-31 2019-08-01 Nutanix, Inc. Key managers for distributed computing systems using key sharing techniques
US11146392B2 (en) 2018-03-15 2021-10-12 Tzero Ip, Llc Splitting encrypted key and encryption key used to encrypt key into key components allowing assembly with subset of key components to decrypt encrypted key
US11050724B2 (en) 2018-03-22 2021-06-29 Cisco Technology, Inc. IaaS-aided access control for information centric networking with Internet-of-Things
US10917234B2 (en) 2018-05-03 2021-02-09 International Business Machines Corporation Blockchain for on-chain management of off-chain storage
KR20210061426A (ko) 2018-10-12 2021-05-27 티제로 아이피, 엘엘씨 이중 암호화된 시크릿 부분의 서브세트를 사용하여 시크릿의 어셈블리를 허용하는 이중 암호화된 시크릿 부분

Also Published As

Publication number Publication date
EP3864550A4 (en) 2022-07-06
US20200119917A1 (en) 2020-04-16
US11601264B2 (en) 2023-03-07
WO2020076722A1 (en) 2020-04-16
EP3864793A4 (en) 2022-08-10
JP7104248B2 (ja) 2022-07-20
JP2022133423A (ja) 2022-09-13
US20240007275A1 (en) 2024-01-04
WO2020076720A1 (en) 2020-04-16
EP3864550A1 (en) 2021-08-18
JP7312892B2 (ja) 2023-07-21
EP3864793A1 (en) 2021-08-18
JP2022508757A (ja) 2022-01-19
US11444755B2 (en) 2022-09-13
JP2022508758A (ja) 2022-01-19
US20200119908A1 (en) 2020-04-16
US20220399992A1 (en) 2022-12-15
SG11202103511WA (en) 2021-05-28
SG11202103517TA (en) 2021-05-28
JP7384914B2 (ja) 2023-11-21
US11764951B2 (en) 2023-09-19
KR20210061426A (ko) 2021-05-27

Similar Documents

Publication Publication Date Title
US11764951B2 (en) Doubly-encrypted secret parts allowing for assembly of a secret using a subset of the doubly-encrypted secret parts
US11431494B2 (en) Passwordless security system for data-at-rest
US11374750B2 (en) Key recovery using encrypted secret shares
US11888975B2 (en) Splitting encrypted key and encryption key used to encrypt key into key components allowing assembly with subset of key components to decrypt encrypted key
US11943350B2 (en) Systems and methods for re-using cold storage keys
US20210266150A1 (en) Secret splitting and metadata storage
US20210112039A1 (en) Sharing of encrypted files without decryption
US11418340B2 (en) Waterfall request for decryption
TWI476629B (zh) Data security and security systems and methods
US20210144002A1 (en) Secondary Channel Authentication of Public Keys
US11861597B1 (en) Database encryption wallet
US11522691B2 (en) Techniques for virtual cryptographic key ceremonies
US20230327859A1 (en) System and method for distributed custody access token management
WO2024026428A1 (en) Digital identity allocation, assignment, and management