KR20200036884A - 임계치 디지털 시그니처 방법 및 시스템 - Google Patents

임계치 디지털 시그니처 방법 및 시스템 Download PDF

Info

Publication number
KR20200036884A
KR20200036884A KR1020207005089A KR20207005089A KR20200036884A KR 20200036884 A KR20200036884 A KR 20200036884A KR 1020207005089 A KR1020207005089 A KR 1020207005089A KR 20207005089 A KR20207005089 A KR 20207005089A KR 20200036884 A KR20200036884 A KR 20200036884A
Authority
KR
South Korea
Prior art keywords
share
participant
way
polynomial function
private key
Prior art date
Application number
KR1020207005089A
Other languages
English (en)
Other versions
KR102627039B1 (ko
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
Priority claimed from GBGB1713064.2A external-priority patent/GB201713064D0/en
Application filed by 엔체인 홀딩스 리미티드 filed Critical 엔체인 홀딩스 리미티드
Publication of KR20200036884A publication Critical patent/KR20200036884A/ko
Application granted granted Critical
Publication of KR102627039B1 publication Critical patent/KR102627039B1/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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/304Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy based on error correction codes, e.g. McEliece
    • 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
    • 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/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • H04L2209/38
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Communication Control (AREA)

Abstract

비밀 값을 공유하는 방법이 개시된다. 이 방법은 제 1 참여자(Pi)에게 알려진 제 1 비밀 값의 제각기의 제 1 공유분을 복수의 제 2 참여자(Pj≠i)에게 배포하는 단계 - 상기 제 1 공유분은 개인 키 및 상기 개인 키와 타원 곡선 생성기 포인트가 곱해진 공개 키를 포함하는 적어도 하나의 개인-공개 키 쌍에 의해 암호화되며, 상기 제 2 참여자가 상기 제 1 비밀 값을 결정할 수 있게 하기 위해 제 1 임계치 개수의 제 1 공유분이 필요함 - 를 포함한다. 복수의 상기 제 2 참여자의 각각으로부터 제각기의 제 2 비밀 값의 적어도 하나의 제 2 공유분이 수신되며, 상기 제 2 공유분은 개인 키 및 상기 개인 키와 타원 곡선 생성기 포인트가 곱해진 공개 키를 포함하는 적어도 하나의 개인-공개 키 쌍에 의해 암호화되며, 상기 제 2 참여자 이외의 참여자가 상기 제 2 비밀 값을 결정할 수 있게 하기 위해 제 2 임계치 개수의 제 2 공유분이 필요하다. 복수의 상기 제 2 공유분으로부터 제 3 비밀 값의 제 3 공유분을 형성하며, 상기 제 3 비밀 값의 결정을 가능하게 하기 위해 제 3 임계치 개수의 제 3 공유분이 필요하다.

Description

임계치 디지털 시그니처 방법 및 시스템
본 발명은 일반적으로 데이터 및 컴퓨터 기반 리소스의 보안성에 관한 것이다. 보다 구체적으로, 본 발명은 암호 화폐 및 암호화에 관한 것이며, 또한 타원 곡선 암호화, ECDSA, 임계치 암호화에 관한 것이다. 본 발명은 (예를 들어) 비트 코인과 같은 하지만 이에 제한되지 않는 블록 체인으로 구현된 암호 화폐와 관련하여 유리하게 사용될 수 있으며 더 넓은 적용 가능성을 가질 수 있다. 일 실시예에서, 본 발명은 딜러리스 비밀 분산(dealerless secret distribution)을 위한 분산 프로토콜을 제공하는 것으로 기술될 수 있다.
본 문서에서는 모든 형태의 전자식의 컴퓨터 기반으로 분산된 원장(electronic, computer-based, distributed ledgers)을 포함하도록 '블록 체인'이라는 용어를 사용한다. 이들은 합의 기반의 블록 체인 및 트랜잭션-체인 기술, 허가 및 비허가 원장, 공유된 원장, 및 그 변형을 포함한다. 블록 체인 기술에서 가장 널리 알려진 애플리케이션은 비트 코인 원장(Bitcoin ledger)이지만, 다른 블록 체인 구현예가 제안 및 개발되었다. 비트 코인은 본원에서 편의 및 예시의 목적으로만 언급될 수 있지만, 본 발명은 비트 코인 블록 체인과 함께 사용되는 것으로 제한되지 않으며 대안적인 블록 체인 구현예 및 프로토콜은 본 발명의 범주 내에 속한다는 것에 주목해야 한다.
블록 체인은 블록으로 구성된 컴퓨터 기반의 탈중앙화 시스템으로서 구현되는 피어-투-피어 전자식 원장이며, 이 블록은 다시 트랜잭션으로 구성된다. 각각의 트랜잭션은 블록 체인 시스템의 참여자들 사이에서 디지털 자산의 제어권(control)의 전송을 인코딩하는 데이터 구조이며, 적어도 하나의 입력 및 적어도 하나의 출력을 포함한다. 각 블록은 이전 블록의 해시를 포함하여, 블록들은 처음부터 블록 체인에 기입된 모든 트랜잭션에 대한 영구적이고 변경 불가능한 레코드를 생성하기 위해 함께 체인화되어 있다.
탈중앙화(decentralisation)의 개념은 비트 코인 방법론의 기본이 된다. 탈중앙화 시스템은 분산형 또는 중앙 집중식 시스템과는 달리 단일 장애 포인트가 없다는 이점을 제공한다. 따라서, 이 시스템은 개선된 수준의 보안성 및 복원성을 제공한다. 이 보안성은 타원 곡선 암호화 및 ECDSA와 같은 알려진 암호화 기술을 사용하여 더욱 개선된다.
그러나, 비트 코인 프로토콜 자체는 본 출원서를 제출할 때 임의의 중대한 공격에 대해 복원성이 있는 것으로 밝혀졌지만, 비트 코인 네트워크를 보완하거나 구축하는 교환소(exchanges) 및 지갑(wallets)에 대한 공격이 있었다. 비트 코인의 값이 증가함에 따라 Mt Gox 및 Bitfinex와 관련한 것과 같은 사건이 표준 중앙 집중식 시스템에서 발생할 가능성이 높다.
따라서, 그러한 시스템의 보안성을 더욱 개선시키는 해결책이 필요하다. 본 발명은 무엇보다도 이러한 이점을 제공한다.
본 발명은 첨부된 청구항에 정의된 방법(들) 및 시스템(들)을 제공한다.
본 발명의 일 양태에 따르면, 암호화 시스템의 공개-개인 키 쌍의 공개 키에 의해 검증될 수 있는 디지털 시그니처를 제공하기 위해, 암호화 시스템의 공개-개인 키 쌍의 개인 키에 의해 디지털 메시지를 디지털 방식으로 서명하는 방법이 제공되며, 이 방법은:
상기 디지털 메시지의 적어도 임계치 개수의 부분 시그니처(partial signatures)를 수신하는 단계 - 상기 부분 시그니처의 각각은 상기 메시지에 기초한 제각기의 제 1 파트(part) 및 상기 개인 키의 제각기의 공유분(share)에 기초한 제각기의 제 2 파트를 포함하며, 상기 개인 키는 상기 개인 키의 상기 임계치 개수의 공유분에는 액세스 가능하고 상기 임계치 개수 미만의 공유분에는 액세스 불가능하며, 상기 부분 시그니처의 각각은 제 1 다항식 함수의 제각기의 값에 대응하여, 상기 제 1 다항식 함수는 상기 임계치 개수의 부분 시그니처에는 액세스 가능하고 상기 임계치 개수 미만의 부분 시그니처에는 액세스 불가능함 -; 및
상기 메시지의 디지털 시그니처를 달성하기 위해, 상기 부분 시그니처의 복수의 알려진 값으로부터 상기 제 1 다항식 함수의 계수를 결정하는 것에 의해 상기 제 1 다항식 함수를 결정하는 단계를 포함한다.
상기 부분 시그니처의 복수의 알려진 값으로부터 상기 제 1 다항식 함수의 계수를 결정하는 것에 의해 상기 제 1 다항식 함수를 결정하여 상기 메시지의 디지털 시그니처를 달성하는 것은 이 방법의 계산 효율을 개선시키는 이점을 제공한다.
상기 제 1 다항식 함수를 결정하는 단계는 에러 정정 알고리즘을 실행하는 것뿐만 아니라 ADSL과 같은 전자 데이터 통신에 사용되는 것과 같은 종래의 디코더가 사용될 수 있게 하는 단계를 포함할 수 있다.
이는 디지털 시그니처 프로세스의 정확성을 개선시키는 이점을 제공한다.
상기 제 1 다항식 함수를 결정하는 단계는 Berlekamp-Welch 디코딩 알고리즘을 실행하는 단계를 포함할 수 있다.
상기 제 1 다항식 함수를 결정하는 단계는:
에러 로케이터 다항식 함수(error locator polynomial function) 및 제 2 다항식 함수를 정의하는 단계 - 상기 제 2 다항식 함수는 상기 제 1 다항식 함수 및 상기 에러 로케이터 다항식 함수의 곱임 -, 상기 부분 시그니처의 복수의 알려진 값으로부터 상기 제 2 다항식 함수 및 상기 에러 로케이터 다항식 함수의 계수들을 결정하는 단계, 및 상기 메시지의 디지털 시그니처를 달성하기 위해, 상기 제 2 다항식 함수 및 상기 에러 로케이터 다항식 함수로부터 상기 제 1 다항식 함수를 결정하는 단계를 포함할 수 있다.
본 발명의 다른 양태에 따르면, 암호화 시스템의 공개-개인 키 쌍의 공개 키에 의해 검증될 수 있는 디지털 시그니처를 제공하기 위해, 암호화 시스템의 공개-개인 키 쌍의 개인 키에 의해 디지털 메시지를 디지털 방식으로 서명하는 방법이 제공되며, 이 방법은:
상기 디지털 메시지의 적어도 임계치 개수의 부분 시그니처를 수신하는 단계 - 상기 부분 시그니처의 각각은 상기 메시지에 기초한 제각기의 제 1 파트, 상기 개인 키의 제각기의 공유분에 기초한 제각기의 제 2 파트, 및 제로 상수 항(zero constant term)을 갖는 제 3 다항식 함수의 제각기의 값에 대응하는 제각기의 제 3 파트를 포함하며, 상기 개인 키는 상기 개인 키의 상기 임계치 개수의 공유분에는 액세스 가능하고 상기 임계치 개수 미만의 공유분에는 액세스 불가능하며, 상기 제 3 다항식 함수는 상기 다항식 함수의 상기 임계치 개수의 공유분에는 액세스 가능하며 상기 임계치 개수 미만의 공유분에는 액세스 불가능하며, 상기 부분 시그니처의 각각은 제 4 다항식 함수의 제각기의 값에 대응하여, 상기 제 4 다항식 함수는 상기 임계치 개수의 부분 시그니처에는 액세스 가능하고 상기 임계치 개수 미만의 부분 시그니처에는 액세스 불가능함 -; 및
상기 메시지의 디지털 시그니처를 달성하기 위해, 상기 제 4 다항식 함수를 결정하는 단계를 포함한다.
각각의 부분 시그니처가 제로 상수 항을 갖는 제 3 다항식 함수의 제각기의 값에 대응하는 제각기의 제 3 파트를 포함하는 방법 - 상기 제 3 다항식 함수는 상기 제 3 다항식 함수의 상기 임계치 개수의 공유분에는 액세스 가능하고 상기 임계치 개수 미만의 공유분에는 액세스 불가능함 - 을 제공하게 되면, 이는 디지털 시그니처 프로세스에 사용된 개인 키 및/또는 임의의 임시 키(ephemeral key)를 마스킹함으로써 상기 방법의 보안성을 증가시키는 이점을 제공하게 되어, 이들 키가 비승인 당사자에 의해 결정되는 위험을 최소화한다.
적어도 하나의 상기 부분 시그니처의 제각기의 제 3 파트는 대응하는 제 1 파트 및 대응하는 제 2 파트에 추가될 수 있다.
상기 부분 시그니처의 각각은 임시 키의 제각기의 공유분에 기초한 제각기의 제 4 파트를 더 포함할 수 있고, 상기 임시 키는 상기 임시 키의 상기 임계치 개수의 공유분에는 액세스 가능하고 상기 임계치 개수 미만의 공유분에는 액세스 불가능하다.
암호화 시스템은 타원 곡선 암호화 시스템일 수 있다.
이 방법은:
제 1 참여자에게 알려진 제 1 비밀 값의 적어도 하나의 제각기의 제 1 공유분을 복수의 제 2 참여자의 각각에게 배포하는 단계 - 상기 제 1 공유분은 개인 키 및 상기 개인 키와 타원 곡선 생성기 포인트가 곱해진 공개 키를 포함하는 적어도 하나의 개인-공개 키 쌍에 의해 암호화되며, 상기 제 2 참여자가 상기 제 1 비밀 값을 결정할 수 있게 하기 위해 제 1 임계치 개수의 제 1 공유분이 필요함 -;
복수의 상기 제 2 참여자의 각각으로부터, 상기 제 2 참여자에게 알려진 제각기의 제 2 비밀 값의 적어도 하나의 제 2 공유분을 수신하는 단계 - 상기 제 2 공유분은 개인 키 및 상기 개인 키와 타원 곡선 생성기 포인트가 곱해진 공개 키를 포함하는 적어도 하나의 개인-공개 키 쌍에 의해 암호화되며, 상기 제 2 참여자 이외의 참여자가 상기 제 2 비밀 값을 결정할 수 있게 하기 위해 제 2 임계치 개수의 제 2 공유분이 필요함 -; 및
복수의 상기 제 2 공유분으로부터, 제 3 비밀 값의 제 3 공유분을 형성하는 단계 - 상기 제 3 비밀 값의 결정을 가능하게 하기 위해 제 3 임계치 개수의 제 3 공유분이 필요함 - 를 더 포함할 수 있다.
복수의 상기 제 2 공유분으로부터, 제 3 비밀 값의 제 3 공유분을 형성 - 상기 제 3 비밀 값이 결정되도록 하기 위해 제 3 임계치 개수의 제 3 공유분이 필요함 - 하게 되면, 제 1 및 제 2 비밀 값에 대한 액세스를 최소화하는 이점을 제공하게 되어, 상기 방법의 보안성을 개선시키는데, 이는 상기 제 1 및 제 2 비밀 값에 대응하는 개인 키가 메모리에 더 이상 공개되거나 저장될 필요가 없기 때문이다.
제 1 임계치 값은 제 2 임계치 값과 동일할 수 있고/있거나 상기 제 2 임계치 값은 제 3 임계치 값과 동일할 수 있고/있거나 상기 제 3 임계치 값은 제 1 임계치 값과 동일할 수 있다.
상기 방법은 상기 제 1 참여자와 복수의 상기 제 2 참여자의 각각 사이에서 암호화된 통신을 가능하게 하는 단계를 더 포함할 수 있다.
이는 일관성이 없거나 의심스러운 공유분을 암호화하는 데 사용된 암호화 키를 식별함으로써, 부정직한 참여자를 보다 쉽게 식별할 수 있는 이점을 제공한다.
암호화된 통신은 상기 제 1 참여자 및 상기 제 1 참여자와는 독립적으로 상기 복수의 제 2 참여자의 각각에 의해 결정된 제각기의 공통 비밀에 의해 가능해질 수 있다.
이것은 시스템의 보안성을 개선시키는 이점을 제공한다.
제 1 참여자는 개인 키를 업데이트할 수 있고, 상기 복수의 제 2 참여자의 각각과 연관된 제각기의 공개 키를 업데이트할 수 있고, 상기 복수의 제 2 참여자의 각각은 상기 제 1 참여자와 연관된 제각기의 개인 키 및 공개 키를 업데이트할 수 있다.
키는 상기 제 1 참여자와 대응하는 상기 제 2 참여자 간에 합의된 데이터에 기초하여 업데이트될 수 있다.
이것은 시스템의 보안성을 더욱 개선시킨다.
상기 제 1 및 제 2 비밀 값의 제 1 및 제 2 공유분은 제각기의 샤미르(Shamir) 비밀 공유 체계에 의해 생성될 수 있다.
복수의 상기 제 3 공유분은 제 5 다항식 함수의 제각기의 값일 수 있고, 상기 제 3 비밀 값은 상기 값의 상기 제 3 임계치 개수로부터 제 5 다항식 함수를 도출함으로써 결정될 수 있다.
이 방법은 타원 곡선 생성기 포인트가 곱해지는 상기 제 1 공유분을 복수의 상기 제 2 참여자의 각각에게 통신하는 단계를 더 포함할 수 있다.
이 방법은 복수의 상기 제 2 참여자의 각각으로부터, 타원 곡선 생성기 포인트가 곱해지는 적어도 하나의 제각기의 상기 제 2 공유분을 수신하는 단계를 더 포함할 수 있다.
이 방법은 적어도 하나의 상기 제 2 참여자로부터 직접 수신되는 적어도 하나의 상기 제 2 공유분과, 적어도 하나의 추가의 상기 제 2 참여자로부터 수신되고 타원 곡선 생성기 포인트가 곱해지는 적어도 하나의 상기 제 2 공유분의 일관성을 검증하는 단계를 더 포함할 수 있다.
이는 개인 키 또는 공유분을 공개하지 않고 상이한 제 2 참여자들로부터 수신되는 공유분들의 일관성을 체크할 수 있게 하여, 이 방법의 보안성을 훼손시키지 않고도 의심스러운 신뢰할 수 없는 참여자가 거부될 수 있게 하는 이점을 제공한다.
이 방법은 상기 검증 단계에 기초하여 상기 제 3 비밀 값을 업데이트하는 단계를 더 포함할 수 있다.
이는 시스템의 보안성을 개선시키는 이점을 제공한다.
적어도 상기 제 2 공유분은 제각기의 제 6 다항식 함수의 값일 수 있고, 대응하는 제 2 비밀 값은 상기 값의 대응하는 제 2 임계치 개수로부터 대응하는 제 6 다항식 함수를 도출함으로써 결정될 수 있다.
이 방법은 복수의 상기 제 2 참여자의 각각으로부터, 타원 곡선 생성기 포인트가 곱해지는 제각기의 상기 제 6 공유분의 적어도 하나의 계수를 수신하는 단계를 더 포함할 수 있다.
이는 제 1 참여자에 의해 배포되는 제 1 공유분과, 제 2 참여자로부터 수신되고 타원 곡선 생성기 포인트가 곱해지는 제 1 공유분의 일관성이 이 방법의 보안성을 훼손시키지 않고도 제 2 다항식 함수를 재구성함으로써 검증될 수 있게 하는 이점을 제공한다.
이 검증 단계는 타원 곡선 생성기 포인트가 곱해지는 상기 계수들로부터 타원 곡선 생성기 포인트가 곱해지는 상기 제 6 다항식 함수를 재구성하는 단계를 포함할 수 있다.
이 방법은 상기 제 1 참여자로부터 직접 수신되는 상기 제 1 공유분과, 복수의 상기 제 2 참여자로부터 수신되고 상기 타원 곡선 생성기 포인트가 곱해지는 상기 제 1 공유분의 일관성을 검증하는 단계를 더 포함할 수 있다.
이는 방법의 보안성을 훼손시키지 않고도 잠재적으로 신뢰할 수 없는 참여자를 식별할 수 있는 이점을 제공한다.
이 방법은 상기 제 1 비밀 값과, 복수의 상기 제 2 참여자로부터 수신되고 상기 타원 곡선 생성기 포인트가 곱해지는 복수의 상기 제 1 공유분의 일관성을 검증하는 단계를 더 포함할 수 있다.
이 방법은 상기 검증 단계에 기초하여 상기 제 3 비밀 값을 업데이트하는 단계를 더 포함할 수 있다.
상기 검증 단계는 상기 타원 곡선 생성기 포인트가 곱해지는 복수의 상기 제 2 공유분으로부터, 상기 타원 곡선 생성기 포인트가 곱해지는 상기 제 2 비밀 값을, 상기 복수의 제 2 공유분에 적용될 때 상기 제 2 비밀 값을 제공하는 방법에 의해 획득하는 단계를 포함할 수 있다.
이 방법은 하나의 상기 제 2 참여자로부터 수신되고 상기 타원 곡선 생성기 포인트가 곱해지는 상기 제 1 공유분과, 다른 상기 제 2 참여자로부터 수신되고 상기 타원 곡선 생성기 포인트가 곱해지는 상기 제 1 공유분의 일관성을 검증하는 단계를 더 포함할 수 있다.
이는 또한 방법의 보안성을 훼손시키지 않고도 잠재적으로 신뢰할 수 없는 참여자를 식별할 수 있는 이점을 제공한다.
이 방법은 적어도 하나의 상기 제 2 참여자로부터 제로 값을 갖는 제 4 비밀 값의 적어도 하나의 제 4 공유분을 수신하는 단계를 더 포함할 수 있으며, 상기 제 4 공유분은 개인 키 및 상기 개인 키와 타원 곡선 생성기 포인트가 곱해진 공개 키를 포함하는 적어도 하나의 개인-공개 키 쌍에 의해 암호화된다.
이 방법은 제로 값을 갖는 제 4 비밀 값의 제각기의 제 4 공유분을 복수의 제 2 참여자에게 배포하는 단계를 더 포함할 수 있고, 상기 제 4 공유분은 개인 키 및 상기 개인 키와 타원 곡선 생성기 포인트가 곱해진 공개 키를 포함하는 적어도 하나의 개인-공개 키 쌍에 의해 암호화된다.
이는 공유분 및/또는 개인 키가 업데이트될 수 있게 하여, 안전하지 않거나 일관성이 없는 참여자가 참여에서 제거될 수 있게 하는 이점을 제공한다.
이 방법은 상기 제 2 참여자 또는 각각의 제 2 참여자와는 다른 적어도 하나의 제 3 참여자로부터, 제로 값을 갖는 제 4 비밀 값의 적어도 하나의 제 4 공유분을 수신하는 단계를 더 포함할 수 있으며, 상기 제 4 공유분은 개인 키 및 상기 개인 키와 타원 곡선 생성기 포인트가 곱해진 공개 키를 포함하는 적어도 하나의 개인-공개 키 쌍에 의해 암호화된다.
이는 랜덤성(randomness)의 도입이 가능하도록 외부 오라클이 도입될 수 있게 하여 시스템의 보안성을 개선시키는 이점을 제공한다.
이 방법은 제로의 제 4 비밀 값과, 상기 타원 곡선 생성기 포인트가 곱해지는 복수의 상기 제 4 공유분의 일관성을 검증하는 단계를 더 포함할 수 있다.
이 방법은 상기 검증 단계에 기초하여 상기 제 3 비밀 값을 업데이트하는 단계를 더 포함할 수 있다.
상기 검증 단계는 상기 타원 곡선 생성기 포인트가 곱해지는 복수의 상기 제 4 공유분으로부터, 상기 타원 곡선 생성기 포인트가 곱해지는 상기 제 4 비밀 값을, 상기 복수의 제 4 공유분에 적용될 때 상기 제 4 비밀 값을 제공하는 방법에 의해 획득하는 단계를 포함할 수 있다.
이 방법은 상기 제 3 공유분 및 상기 제 4 공유분으로부터, 상기 제 3 비밀 값의 제 5 공유분을 형성하는 단계를 더 포함할 수 있으며, 상기 제 3 비밀 값이 결정될 수 있도록 하기 위해 제 5 공유분의 제 4 임계치 개수가 필요하다.
메시지는 블록 체인 트랜잭션일 수 있다.
본 발명의 다른 양태에 따르면, 위에서 정의된 방법을 수행하기 위한 컴퓨터 구현 시스템이 제공된다.
본 발명의 이들 및 다른 양태는 본원에 기술되는 실시예로부터 명백할 것이고 이들 실시예를 참조하여 자세히 설명될 것이다.
본 발명의 실시예는 이제 첨부된 도면을 참조하여 예로서만 설명될 것이다.
도 1은 본 발명을 구현하는 타원 곡선 디지털 시그니처 프로세스의 일부를 도시한 도면이다.
도 2는 타원 곡선 디지털 시그니처 프로세스의 다른 부분을 도시한 도면이다.
도 3은 본 발명을 구현하는 방법에 의해 배포된 공유분의 재구성 계층을 도시한 도면이다.
도 4는 본 발명의 방법에 사용하기 위한 블록 체인 트랜잭션의 스크립트의 표현을 도시한 도면이다.
도 5는 도 4의 스크립트와 함께 사용하기 위한 제 1 시그니처의 세부 사항을 도시한 도면이다.
도 6a는 도 4의 스크립트와 함께 사용하기 위한 제 2 시그니처의 제 1 실시예의 세부 사항을 도시한 도면이다.
도 6b는 도 4의 스크립트와 함께 사용하기 위한 제 2 시그니처의 제 1 실시예의 세부 사항을 도시한 도면이다.
도 7은 본 발명을 구현하는 방법을 수행하기 위한 Berlekamp-Welch 디코더를 도시한 도면이다.
개관
본 발명은 무단 액세스로부터 보호될 필요가 있는 컴퓨터 시스템 및 리소스의 보안성을 개선하는 데 사용될 수 있는 신규하고 독창적인 기술을 제공한다. 이 문서에서는 비트 코인을 포함한 암호 화폐 관련 시스템과 관련된 구현예, 사용 사례 및 실례를 제시한다. 그러나, 본 발명은 보다 넓은 적용 가능성을 가지며 다른 타입의 시스템 및 컴퓨터 기반 리소스를 보호하는 데 사용될 수 있으며, 본 발명은 이에 제한되지 않는다는 것을 주목하는 것이 중요하다.
본 발명의 실시예는 딜러없이 배치할 수 있는 능력과 결합된 그룹 기반 임계치 암호화의 추가를 허용함으로써 개선된 보안성을 제공한다. 실시예는 또한 메시지의 비 대화식 서명을 지원하고 개인 및 그룹에 배포될 수 있는 공유분으로의 개인 키의 분할을 제공한다. 또한, 본 발명은 임의의 사기 또는 공격의 위협을 최소화하는 임의의 중앙 집중식 제어권 리스트에 대한 필요성을 제거하는 분산된 키 생성 시스템을 생성하는 솔루션을 제공한다. ECDSA로의 DSA에 대한 임계치 기반 솔루션의 적용에서, 본 발명은 임의의 단일 장애 포인트에 대해 완화되는 전체 분산 시그니처 시스템을 제공한다.
비트 코인 또는 대안과 관련하여 사용되는 경우, 본 발명은 CLTV 및 멀티시그(multisig) 지갑과 관련된 검색 체계와 함께 암호 화폐를 효율적으로 사용하는 무한 확장 가능하고 안전한 수단에 결합될 수 있다. 그룹 및 링 기반 시스템을 사용하면, 본 발명은 발행된 트랜잭션에 대한 블라인드 시그니처(blind signatures)를 구현하는 데 사용될 수 있다.
본 출원은 비트 코인과 완전히 호환되는 임계치 기반 딜러리스 개인 키 분산 시스템(threshold based dealerless private key distribution system)을 개시한다. 이 시스템은 비트 코인 지갑에 구축된 기존의 개별 서명 시스템에서 벗어난 그룹 시그니처 체계를 기반으로 구축된다. 구축된 바와 같이, 이 시스템은 확장 가능하고 결함 및 악의적인 적에 대한 내성이 강력하다. 이 시스템은 딜러 및 딜러리스 시스템(dealer and dealerless systems)과 무한대의 유연한 분산 조합의 구축을 지원한다.
개별 당사자들은 단일 참여자로서 역할을 할 수 있거나 또는 조합적으로 보안성 및 복원성을 위해 머신들에 걸쳐 각자의 보호된 키 슬라이스의 슬라이스를 배포하는 딜러로서 역할을 할 수 있거나 또는 그룹으로 역할 및 액세스 제어권 리스트의 투표 임계치 기반 구축을 위한 역할을 할 수 있다.
슬라이스가 어느 정도로 분할될 수 있는지의 심도에 대한 제한은 없다. 이 복잡성의 문제는 개별적인 구축에 대해 평가될 필요가 있다. 이러한 방식으로, 서명 및 트랜잭션의 레코드는 본 방법을 사용하여 후속 논문에 제시될 확장성을 갖는 모든 외부 참여자로부터 심지어는 그룹 내의 참여자로부터도 은닉될 수 있기 때문에, 본 발명의 실시예는 비트 코인 트랜잭션에 익명성 및 타당한 거부권의 레벨을 도입하여 사용자에 대한 익명성 보호 표준을 향상시킨다.
[2003]년에 이브라힘(Ibrahim) 등은 초기의 강력한 임계치 ECDSA 체계를 개발했다. 후속의 프로토콜은 젠나로(Gennaro) 등에 의해 [1996]년에 소개된 임계치 DSS의 타원 곡선 형태를 형성하는 것이 무엇인지에 대한 추가적인 확장판이다.
Figure pct00001
수학 그룹의 사용은 비밀 은닉에서 샤미르(Shamir)[1979]의 연구를 확장하고 RSA 및 DSA 체계에서 펠드만(Feldman)[1987] 및 페더슨(Pedersen)[1992]의 연구를 확장하는 검증 가능한 비밀 공유 체계(verifiable secret sharing scheme)(VSS)를 생성할 수 있어서, 비트 코인과 같은 ECC 및 ECDSA 기반 시그니처 시스템에서 사용될 수 있다[코블리츠(Koblitz), 1998]. 본 발명의 실시예는 일관성없는 악의적인 적에 대해 내성을 가지며, 그리고 도청에 강하다. 본 개시물은 어느 누구도 개인 키를 알지 못하는 ECDSA 시그니처의 협력적 서명을 가능하게 하는 방법의 제시로 시작된다. 또한, 본 개시물은 개인 키를 변경할 필요없이 개인 키 쌍을 업데이트하고 리프레쉬할 수 있게 한다. 이것은 중요한 기술적 이점이다.
기존 솔루션은 모두 신뢰할 수 있는 당사자를 필요로 한다. 본 발명을 또한 이용하게 되면, 차움(Chaum)[1983]의 연구를 중앙 집중식 시스템으로부터 비트 코인 블록 체인 상에서 직접 정산될 수 있는 전자식 지폐(electronic notes)를 발행하는 진정으로 분산된 방식으로 확장시킬 수 있으며, 이는 대안적인 블록 체인 또는 사이드 체인에 대한 요구 사항을 쓸모 없게 만들게 된다.
위에서 언급한 생성기 포인트(G)와 관련하여 비트 코인은 secp256kl을 사용한다. 이는 비트 코인에 사용되는 ECDSA 곡선의 파라미터를 정의하며, 효율적인 암호화를 위한 표준(Standards for Efficient Cryptography)(SEC)(Certicom Research, http://www.secg.org/sec2-v2.pdf)으로부터 참조될 수 있다.
신뢰의 문제(Matters of trust)
기존의 모든 시스템은 일정 수준의 신뢰를 필요로 한다. 지금까지, 비트 코인은 세상에서 격리된 보안 시스템을 사용하여 개인 키를 보호해야 했으며, 이는 달성하기 어려운 것으로 입증되었다. 물론, 비트 코인을 교환하거나 저장할 수 있는 시스템은 중앙 집중식 권한에 대한 신뢰를 필요로 한다. 본 발명은 키 생성 및 메시지 서명 프로세스를 비트 코인 내에 완전히 분산시키고 탈중앙화하는 이 요구 사항을 변경하지만, 프로토콜의 어떠한 핵심 요구 사항도 변경하지 않는다. 본원에 언급된 방법론은 비트 코인 프로토콜을 수정하지 않고도 구현될 수 있으며, 실제로, 이 프로세스가 서명된 메시지의 분석을 통해 전개되었는지를 결정할 방법은 존재하지 않는다.
비트 코인에 대한 분산된 시그니처 체계를 생성함에 있어서, 본 발명은 개인 또는 시스템의 그룹이 시그니처를 개인 스스로 생성할 수 없는 상태로 남기는 방식으로 키를 안전하게 유지할 수 있게 한다. 확장시, 이 체계는 또한 공유분의 각각과 비트 코인 개인 키 자체를 안전하게 복구할 수 있게 한다. 그룹 생성 시그니처는 기존 프로토콜에서 생성된 것과는 구별될 수 없다. 이와 같이 시그니처 검증은 한 사람의 서명자를 통해 표준 트랜잭션을 사용하여 행해진 것처럼 남아 있다.
비밀 키가 n 명의 참여자의 그룹 또는 m 개의 참여자 그룹에 의해 공유됨에 따라 이러한 신뢰의 증가가 달성된다. 트랜잭션의 서명을 위해 임계치 개수의 참여자가 필요하며, 최소의 임계치를 충족하는 임의의 참여자 연합체 또는 참여자 그룹은 시그니처 동작을 수행할 수 있다. 중요하게도, 이 프로토콜은 개인 또는 그룹이 참여자 연합체의 생성을 시도할 수 있는 일괄 프로세스로서 또는 동기식으로 제정될 수 있다.
배경 연구
샤미르(Shamir)[1979]는 키의 분산 관리를 허용하는 딜러 기반 비밀 공유 체계를 처음 소개했다. 이 체계와 관련된 문제는 검증될 수 없는 딜러를 신뢰해야 한다는 데 있다. 이러한 체계의 형태는 본 발명과 완전히 호환 가능하며, 본원에 언급된 프로세스를 통해 생성된 개별 키 슬라이스의 그룹 분산용으로 사용될 수 있다.
공동 랜덤 비밀 공유(JRSS)[페더슨(Pedersen), 1992]
이 절차의 명시된 목표는 참여자들의 그룹이 비밀에 대한 어떠한 지식이 없어도 비밀을 집합적으로 공유할 수 있는 방법을 생성하는 것이다. 각각의 참여자는 자신의 로컬 비밀로서 랜덤 값을 선택하고, 이 값으로부터 도출된 값을 샤미르(Shamir)의 비밀 공유 체계(SSSS)를 사용하여 상기 그룹에 배포한다. 각각의 참여자는 그 후 자신 것을 포함하여 참여자로부터 수신한 모든 공유분을 추가한다. 이 합계는 공동 랜덤 비밀 공유분이 된다. 단일의 정직한 참여자에 의해 제공되는 랜덤성은 조합된 비밀 값의 기밀성을 유지하기에 충분하다. 이 상태는 모든 (n-1) 개의 다른 참여자가 의도적으로 비-랜덤 비밀 값을 선택하더라도 여전히 사실이다.
공동 제로 비밀 공유(JZSS)[벤-오르(Ben-Or), 1988]
JZSS는 JRSS와 비슷하며 차이점은 각각의 참여자가 랜덤 값에 대한 대안으로 0을 공유한다는 것이다. 이 기술을 사용하여 생성된 공유분은 JRSS 알고리즘에서 임의의 잠재적인 약점을 제거하는 데 도움이 된다.
데스메트(Desmedt)[1987]는 그룹 지향 암호화의 개념을 소개했다. 이 프로세스는 참여자가 메시지를 한 그룹의 사람들에게 참여자들 중 선택된 서브 세트만이 해독할 수 있게 하는 방식으로 메시지를 전송할 수 있게 했다. 이 시스템에서, 멤버들에게는 발신자가 공개 키를 사용하여 그들을 알아야 하는지와 멤버들과 독립적으로 보유되는 그룹에 대한 단일 공개 키가 존재하는 경우 그 그룹은 익명성이라는 것이 알려져 있다고 했다. 본 발명은 방법론을 통합하고, 알려진 및 익명의 발신자들 및 서명자들이 그룹 내에 동시에 존재할 수 있게 한다.
본 발명
큰 차수의 소수(large order prime) 및 소수 필드(prime field)(Z p ) 위에 정의된 차수 n의 기준 포인트
Figure pct00002
를 가진 임의의 타원 곡선(CURVE)에 대해, 어떠한 참여자가 임계치 미만의 공유분들로부터 오리지널 개인 키를 재생성하지 않고도 키 공유분 내로의 ECC 개인 키의 안전한 배포 및 그 사용을 허용하는 시스템이 생성될 수 있다.
미지의 정수
Figure pct00003
에 대해(여기서 1 <
Figure pct00004
≤ (n -1)임),
Figure pct00005
로 주어진 경우
Figure pct00006
를 계산하기가 매우 어렵다는 것이 알려져 있다[카푸어(Kapoor), 2008].
본 발명의 기본 기술은 임계치 암호화의 적용을 사용하여 도출된다. 이 시스템에서, ECDSA 개인 키는 잠재적으로서만 존재하며 임의의 시스템 상에서 다시 재생성될 필요는 없다. 이러한 다수의 공유분의 각각은, 확장 가능하고 그룹 및 개인 당사자 시그니처 포맷 모두의 도입을 가능하게 하는 방식으로 다수의 참여자[p ( i )]에게 배포된다. 따라서, 서명 프로세스는 비트 코인에 구축된 프로세스와는 다르다. 이 프로세스에서, 조정 참여자 p ( c )는 트랜잭션, 및 그룹에 배포되는 메시지 시그니처를 생성한다. 각각의 참여자는 부분 시그니처를 계산하거나 패싱(passing)에 의해 자신의 개인 키 공유분의 사용에 대해 투표할 수 있다.
사실상, 패싱(passing)은 무 투표(no vote)와 동일할 것이다. 조정 참여자 p ( c ) 는 최소 임계치 개수의 부분 시그니처를 수신한 경우 응답을 수집 및 분석하고 이를 결합하여 전체 시그니처(full signature)를 형성한다.
조정 참여자 p ( c )는 무 투표를 수락하고 다른 당사자로부터의 널(null) 값에 기초하여 계산을 수행하거나 당사자에게 로비하여 메시지에 서명하도록 설득할 수 있다. 프로토콜은 세트 조정자(set coordinator)로 구현될 수 있거나, 임의의 개인 또는 그룹은 이 역할을 구성하고 서명될 임계치 그룹에 대한 트랜잭션을 제안할 수 있다. 본 발명은 이브라힘(Ibrahim)[2003] 등의 연구를 확장시켜 완전히 분산된 ECDSA 개인 키 생성 알고리즘을 제공한다. 본 출원은 또한 비트 코인과 함께 사용하기 위한 분산 키 재공유 알고리즘 및 분산 ECDSA 서명 알고리즘을 제공한다. 키 재공유 알고리즘은 새로운 참여자를 위해 현재 존재하는 모든 키 공유분을 무효화하는 데 사용될 수 있거나 새로운 참여자에게 개인 키 공유분의 재할당을 위해 사용될 수 있다. 이 프로토콜은 ECDSA 개인 키의 공유뿐만 아니라 개인 키 공유분에까지 확장된다. 이러한 것의 결과는 공유분이 그룹 프로세스로서 구성 및 투표될 수 있다는 것을 의미한다.
본 발명은 신뢰할 수 있는 제3자가 존재하기 위한 모든 요건을 제거한다. 결과적으로, 기존 프로토콜과는 완전히 호환 가능하지만 임의의 나머지 단일 장애 포인트를 제거하는 동시에 더 큰 확장성을 허용하는 비트 코인을 위한 새로운 오버레이(overlay) 및 지갑(wallet)을 생성하는 것이 가능하다. 본 발명은 또한 블라인드 시그니처(blind signatures)의 도입을 허용하도록 확장될 수 있다.
본 발명은 개인 키가 메모리에 전혀 로딩될 필요가 없기 때문에, 본 발명은 신뢰할 수 있는 제3자에 대한 필요성을 제거할뿐만 아니라 광범위한 공통 공격을 추가로 제거한다. 이 프로토콜은 확장 가능하여, 사용 사례, 경제 시나리오 및 위험 요구 사항에 따라 필요한 개수의 공유분 및 공유분 배포를 결정할 수 있다.
본 발명은 모든 사이드 채널 공격 및 그에 따른 임의의 캐시 타이밍 공격을 완화시킨다. 이 시스템은 젠나로(Gennaro) 등의 [1996] 연구를 수행하고 이를 DSS로부터 확장하여, 모든 ECDSA 기반 애플리케이션에서 성공적으로 사용될 수 있도록 한다.
ECDSA
비트 코인은 secp256k1 곡선에 기초한 ECDSA를 사용한다. ECDSA는 2003년 NIST에 의해 처음으로 표준화되었으며 타원 곡선 암호화(Elliptic Curve Cryptography)(ECC)를 사용하여 디피-헬만(Diffie-Hellman) 기반 키 교환에 대한 요건을 변경했다. ECC의 생성은 다른 공개/개인 키 시스템과 비교할 때 키 사이즈 및 처리 능력이 감소하기 때문에 특히 중요했다. ECDLP에 대한 서브 지수 시간 알고리즘(sub-exponential time algorithm)은 발견되지 않았다. ECDLP는 다루기 어려운 것으로 알려져 있으며, 타원 곡선 이산 대수 문제를 나타낸다[존슨(Johnson), 2001].
본 출원 전반에 걸쳐 사용된 파라미터는 위에 제공된 표 1에 문서화되어 있다.
보안성 고려 사항
이 시스템은 비트 코인의 현재 제한 사항인 ECDSA의 보안성에 의해 제한된다. 현재, ECDSA는 개인 키가 안전하게 배치될 수 있는 경우 안전하게 유지된다. 본 발명은 리키잉 이벤트(rekeying event) 이전에 임계치 개수의 참여자가 훼손될 것을 요구하는 임계치 값까지 사이드 채널 공격 및 메모리 공개 공격을 완화시킨다. 또한, 임의의 훼손되지 않는 임계치 과반수는 임계치 값 미만의 훼손된 참여자들을 식별할 수 있을 것이다.
정지 문제(Halting problems)
서비스 중단은 악의적인 적이 관여하여 참여자에 대한 서비스 거부 공격의 생성을 시도하는 공격 형태이다. 이 공격은 참여자가 무효한 시그니처의 수신을 요구하게 하여 참여자가 차후에 드롭될 네트워크 메시지를 분석하거나 플러딩(flooding)하는 동안 처리 시간을 소비하게 할 것이다.
ECC 또는 서명 암호화 기반 ECC를 사용하여 참여자들에 대한 메시지를 암호화하는 요건은 이 공격 벡터를 완화시킨다. 공격자가 부분적으로 서명된 무효한 메시지를 전송하기 전에, 이들 메시지는 참여자를 사전에 훼손시켜 이러한 형태의 공격이 더 이상 필요하지 않게 만들 필요가 있을 것이다.
랜덤성(Randomness)
알고리즘 2는 (n-1) 개의 참여자가 랜덤 값을 선택하지 못하더라도 충분한 랜덤성이 도입되는 시나리오를 제공한다. 이 프로토콜에 추가 가능한 것은 서명 및 리키잉 프로세스(signing and rekeying process)에 랜덤 값을 도입하기 위해서만 설계되는 그룹 오라클을 도입하는 것이다. 이 선택적 시나리오에서, 각각의 키 슬라이스는 동일한 프로토콜을 사용하여 생성될 수 있다. 예를 들어, n 중 m의 1 차 슬라이스 요건이 있다면, 각각의 기본 키 슬라이스는 또한 n' 중 m'의 임계치 조건을 사용하여 생성 및 관리될 수 있다.
이 시스템을 사용하는 참여자는 프로토콜에 랜덤성을 주입하는 것 외에는 아무것도 하지 않는 외부 오라클(Oracle)을 추가할 수 있을 것이다. m' 개의 키 슬라이스(여기서 m'<n-1)를 갖는 사용자는 보유한 키 슬라이스를 기반으로 시그니처 솔루션을 재생성 및 처리하도록 선택할 수 있거나 랜덤성의 도입을 위한 것 이외의 불필요한 외부 오라클(Oracle)을 도입할 수 있다.
각각의 슬라이스는 마찬가지로 견고성과 보안성을 위해 분할될 수 있다. 키 슬라이스가 배포됨에 따라 사용자는 모바일폰 또는 스마트카드와 같은 외부 디바이스 상에서 슬라이스를 가질 수 있고 컴퓨터 상에서 실행되는 소프트웨어 프로그램을 가질 수 있으며, 그 결과, 이 소스의 조합이 필수적으로 사용되어 부분 시그니처를 생성할 수 있게 된다.
중요한 것은 고유의 랜덤 임시 키(D k )가 그 키가 사용될 때마다 변경되는 랜덤 값에 기초하여 생성되거나 그 정보를 사용하여 개인 키(d A )를 재생성할 수 있을 것이라는 것이다.
공개 서명
이 프로토콜을 사용하는 트랜잭션 서명의 주요 목적은 비트 코인 트랜잭션의 분산 서명을 가능하게 하는 것이다. 블록 체인에 게시되지 않은 모든 거래는 참여자에 의해 개인적으로 유지될 수 있다. 따라서, 조정 참여자(p ( c ))가 어떤 경우에도 트랜잭션을 성공적으로 서명하는 데 필요한 수준의 투표를 달성하지 못하면, 새로운 비트 코인 트랜잭션을 생성할 필요가 없다. 키 슬라이스들 자체가 임계치 값에 대해 안전하다면 임의의 정산된 트랜잭션의 소유권은 안전하게 유지된다.
시스템이 제대로 구축된다면, 최대 (k-1) 개의 참여자까지 훼손시키는 능력은 임계치 값 미만의 공격에 대해서는 시스템을 안전하게 남겨 둔다. 주기적 리키잉 프로토콜(알고리즘 2)과 결합될 때, 본 발명의 실시예는 사이드 채널 공격 및 메모리 공개에 견딜 수 있다.
본 발명의 방법 및 구현예
본 발명의 실시예는, 예를 들어, 국제 특허 공개 WO 2017/145016에 개시된 바와 같이 계층적 도출(hierarchical derivation)에 기초한 ECC를 사용하여 참여자들 사이에 전송되는 데 필요한 비밀 정보를 암호화하므로, 필요시 잠재적으로 훼손되거나 적대적인 참여자들에 대해 유효성 검증이 수행될 수 있도록 모든 메시지를 모든 사용자에게 전송되는 단일 패킷 내로 수집 및 분석하는 것이 가능하고 바람직하다.
시그니처 생성은 조정 참여자(p ( c ))에 의해 제안된다. 디폴트에 의해, 임의의 키 슬라이스가 조정 참여자로서 기능할 수 있으며 요건은 프로토콜의 개별 구현예에 따른다. 사용된 알고리즘은 아래에 문서화되어 있으며 이후 섹션에서는 그 구축에 대한 세부 정보를 제공한다.
알고리즘 1 키 생성
도메인 파라미터(CURVE, 카디낼리티(Cardinality) n, 생성기 G )
입력: NA
출력: 공개 키 Q A
개인 키 공유분
Figure pct00007
(j) 개의 참여자로부터의 k 개의 슬라이스의 임계치에 대해, 구성된 키 세그먼트(d A(i) )가 구성되며, 이는 참여자(i) 및 참여자(i)가 키(및 그에 따른 비트 코인 트랜잭션)에 서명하기 위해 비밀을 서로 교환하는 다른 당사자들인 참여자(h)로 지명되는 (j-1) 개의 참여자와 연관된다.
ㆍ체계에서, j는 참여자의 총 수이며, 여기서 kj 이며, 따라서 h = j - 1이 된다.
ㆍ따라서, (k, j)-임계치 공유 체계가 존재한다.
알고리즘 1에 대한 방법은 다음과 같다:
1)(j) 개의 참여자 중 각 참여자(p ( i ))(여기서 1≤ij)는 ECC 공개 키(또는 이 구현예에서는 비트 코인 어드레스)를 다른 모든 참여자와 교환한다. 이 어드레스는 그룹 ID 어드레스이며 임의의 다른 용도로 사용될 필요가 없다.
이것은 국제 특허 공개 WO 2017/145016의 프로세스로부터 각 참여자 사이의 공유된 값에 기초하여 도출된 어드레스 및 키임을 주목해야 한다.
2) 각각의 참여자 p ( i )는 랜덤 계수를 갖는 (k-1) 차수의 다항식(f i (x))을 다른 모든 당사자로부터는 비밀인 방식으로 선택한다.
이 함수는 다항식 자유 항(polynomial free term)으로서 선택되는 참여자의 비밀(a 0 (i)) 형태의 제 1 비밀 값의 대상이 된다. 이 값은 공유되지 않는다. 이 값은 WO 2017/145016에 개시된 바와 같이, 도출된 개인 키를 사용하여 계산된다.
f i (h)는 포인트(x = h)에서의 값에 대해 참여자(p ( i ))에 의해 선택된 함수(f ( x ))의 결과인 것으로 정의되며, 참여자(p ( i ))에 대한 기준 방정식은 다음의 함수로서 정의된다:
Figure pct00008
이 방정식에서, a 0 는 각각의 참여자 p ( i )에 대한 비밀이며, 공유되지 않는다.
따라서, 각각의 참여자 p ( i )는 해당 참여자의 비밀로서 정의되는 자유 항(a 0 ( i ))을 갖는 (k-1) 차수의 다항식으로 표현되는 비밀리에 유지되는 함수(f i (x))를 다음과 같이 갖는다:
Figure pct00009
3) 각각의 참여자(p ( i ))는 위에서 언급한 바와 같은 P (h)의 공개 키[라이트(Wright), 2016]를 사용하여 참여자
Figure pct00010
Figure pct00011
에 대한 제 1 공유분(f i (h))을 암호화하고, P ( h )가 해독하기 위한 값을 교환한다. 각각의 참여자(Pi)는, 예를 들어, 국제 특허 공개 WO 2017/145010에 개시된 방법에 의해, 각각의 다른 참여자(Pj)와 제각기의 안전한 암호화된 통신 채널을 셋업한다.
주목해야 하는 것은 소수(prime)(p)에 대한 차수 n의 임의의 기본 포인트 G ∈ E(Z p )에 대해 nⅹG = Ø이라는 것이다. 비트 코인의 경우, 값은 다음과 같다:
타원 곡선 방정식: y2 = x3 + 7
소수 모듈로: 2256 - 232 - 29 - 28 - 27 - 26 - 24 - 1 = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFC2F
기준 포인트 =
04 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798 483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448 A6855419 9C47D08F FB10D4B8
차수 = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF BAAEDCE6 AF48A03B BFD25E8C D0364141
이와 같이 (b, b 1, b 2,…)로 표현될 수 있는 임의의 정수 세트 B:{b i ∈ Z n }에 대해, 만약 bG=[b 1 G+b 2 G+…] mod p인 경우, b=[b 1+b 2+…] mod n 이다. 또한, bG=[b 1 b 2…]G mod p인 경우, b=[b 1 b 2…] mod n이다.
Z n 이 필드이고 라그랑주 보간 모듈로 n이 ECC 개인 키로서 선택된 값에 대해 유효하게 수행될 수 있다면, 샤미르의 비밀 공유 체계(SSSS [5])가 Z n 을 통해 구현될 수 있다는 결론을 초래하는 조건이 있다.
4) 각각의 참여자(P (i))는 아래의 값을 모든 참여자에게 브로드캐스트한다.
a)
Figure pct00012
b)
Figure pct00013
위의 방정식에서 변수 h와 연관된 값은 참여자(P ( h ))가 체계에서 제 3 참여자를 나타내는 경우, h=3이 되도록 참여자(P ( h ))의 위치가 될 수 있거나, 동등하게 참여자에 의해 사용되는 ECC 공개 키의 값을 정수로 나타낼 수 있다. 사용 사례 및 시나리오는 두 가지 구현예 모두에 대해 존재한다. 후자의 구현예에서, 값 h ={1, ..., j)는 개별 참여자의 사용된 공개 키에 매핑된 값들의 어레이로 대체될 것이다.
5) 각각의 참여자 P ( h i ) 는 수신된 공유분과 각각의 다른 참여자로부터 수신된 공유분의 일관성을 검증한다.
즉:
Figure pct00014
그리고 f i (h)G는 참여자의 공유분과 일관성을 갖는다.
6) 각각의 참여자 P ( h i )는 해당 참여자 P ( h i )에 의해 소유되고 그리고 수신된 공유분이 다른 수신된 공유분과 일관성이 있음을 유효성 검증한다:
Figure pct00015
실제로, 이 단계는 타원 곡선 상에서 공유분(fi(h))의 암호화된 버전(즉, fi(h)G)을 수행하는 것으로 구성되며, 그 동작이 fi(h)의 암호화되지 않은 버전 상에서 수행되는 경우, 비밀 값(a0 (i))을 복구하여 G a0 (i)를 복구할 것이다. 따라서, 샤미르(Shamir) 비밀 공유 체계의 경우, 계수(bh)는 해당 공유분으로부터 비밀을 복구하는 데 필요한 라그랑주 보간 계수를 나타낸다.
이것이 일관성이 없다면, 참여자는 프로토콜을 거부하고 다시 시작된다. 또한, 각각의 참여자(Pj)가 자신의 암호화된 통신 채널을 통해 참여자(Pi)와 통신하기 때문에, 어떠한 참여자(Pj)가 임의의 비일관성있는 공유분과 연관되는지를 식별할 수가 있다.
7) 참여자(p ( i ))는 이제 그들의 공유분(d A ( i ))을 다음과 같이 계산한다:
Figure pct00016
여기서,
Figure pct00017
는 각각의 참여자(P ( h i ))로부터 수신된 제각기의 제 2 비밀 값(a0)에서의 제 2 공유분이고,
그리고, 여기서:
Figure pct00018
Figure pct00019
이고,
여기서,
Figure pct00020
이며, 여기서, 동작 Exp-Interpolate()은 타원 곡선 암호화된 공유분으로부터 타원 곡선 암호화된 비밀을 복구하는 동작으로 정의된다. 이 동작은 다음과 같이 보다 상세하게 정의될 수 있다.
Figure pct00021
가 설정되는 경우(여기서, 최대 (k-1) 개의 값은 널(null)이고 나머지 값은
Figure pct00022
의 형태로 이루어지고, 각각의
Figure pct00023
가 일부의 (k-1) 차수의 다항식
Figure pct00024
에 존재함),
Figure pct00025
이 된다.
이 값은
Figure pct00026
로 계산될 수 있으며, 이에 대해 V 는 적절한
Figure pct00027
값의 (k)-서브 세트이며, 또한
Figure pct00028
는 결과적인 라그랑주 보간 계수를 나타낸다. 다항식은 Berlekamp-Welch 디코더를 사용하여 계산될 수 있다.
Figure pct00029
리턴,
여기서,
Figure pct00030
는 제 3 비밀 값의 제 3 공유분이다.
참여자(p ( i ))는 이제 시그니처를 계산할 때 공유분을 사용한다. 이 역할은 시그니처를 수집하는 과정에서 조정자로서 역할을 하는 임의의 참여자 또는 당사자(p ( c ))에 의해 수행될 수 있다. 참여자(p ( c ))는 트랜잭션에 서명하기에 충분한 공유분의 수집을 시도할 때마다 다를 수 있으며 동일한 당사자일 필요는 없다.
따라서, 개인 키 공유분
Figure pct00031
는 다른 참여자의 공유분에 대한 지식없이 생성되었다.
알고리즘 2 개인 키 업데이트
입력: 참여자(P i )의 개인 키 공유분(
Figure pct00032
)(이는
Figure pct00033
로 표시됨).
출력: 참여자(P i )의 새로운 개인 키 공유분(
Figure pct00034
).
알고리즘 2는 개인 키를 업데이트하고 프로토콜에 랜덤성을 추가하는 데 사용될 수 있다.
국제 특허 공개 WO 2017/145016에서의 포맷의 키를 사용하면, 이 프로세스는 개인 키의 재구성없이도 또는 심지어는 계산된 개인 키의 존재없이도 계층적 서브 키의 재계산을 야기할 수 있다. 이러한 방식으로, 비트 코인 어드레스 및 개인 키 슬라이스의 계층 구조를 구성하는 것이 가능하며, 이들이 올바르게 구축되면 과거에 발생한 임의의 대규모의 사기 또는 데이터베이스 도난이 제거될 것이다.
1) 각각의 참여자는 그 자유 항으로서 제로가 적용되는 (k -1) 차수의 랜덤 다항식을 선택한다. 이것은 알고리즘 1과 유사하지만 참여자는 다른 모든 참여자의 선택된 비밀이 0임을 유효성 검증해야 한다.
주목해야 하는 것은 ØG=nG= 0이라는 것이며, 여기서 0은 타원 곡선 상에서 무한대의 포인트이다. 이 동등성을 사용하여, 모든 활성 참여자는 다음의 함수를 유효성 검증한다:
Figure pct00035
유추(analogy)에 대해서는 펠드만(Feldman)(1987)이 참조된다.
제로 공유분:
Figure pct00036
을 생성한다
2)
Figure pct00037
3)
Figure pct00038
를 리턴한다
이 알고리즘의 결과는 오리지널 개인 키와 연관된 새로운 키 공유분이 된다. 이 알고리즘의 변형은 제 1 알고리즘의 랜덤성을 증가시키는 능력 또는 비트 코인 어드레스를 변경할 필요없이 새로운 키 슬라이스를 생성하는 재공유 수행에 참여하는 능력을 가능하게 한다. 이러한 방식으로, 본 발명은 그룹이 기본 개인 키를 변경하지 않고 개인 키 공유분을 부가적으로 마스킹할 수 있게 한다. 이 프로세스는 기본 비트 코인 어드레스 및 개인 키를 변경하지 않고 개별 키 공유분의 지속적인 사용 및 구축과 연관된 임의의 잠재적인 키 누설을 최소화하는 데 사용될 수 있다.
알고리즘 3 시그니처 생성
도메인 파라미터: CURVE, 카디낼리티(Cardinality) n , 생성기 G
입력: 서명될 메시지 e=H(m)
개인 키 공유분
Figure pct00039
출력: 시그니처
Figure pct00040
A) 분산 키 생성
1) 알고리즘 1을 사용하여 임시 키 공유분을 생성한다:
Figure pct00041
2) 알고리즘 1을 사용하여 마스크 공유분을 생성한다:
Figure pct00042
3) 알고리즘 2를 사용하여 마스크 공유분을 생성한다:
Figure pct00043
2(k-1) 차수의 다항식을 사용하여 알고리즘 2가 2 회 실행된다. 이 프로토콜에서 생성된 공유분은
Figure pct00044
Figure pct00045
로 표시된다. 이들은 부가적 마스크로서 사용된다. 다항식은 2(k-1) 차수이어야 하는데, 그 이유는 마스킹되는 숫자는 (k-1) 차수의 두 개의 다항식의 곱을 포함하기 때문이다. 이는 비밀을 복구하는 데 필요한 공유분의 필요 개수를 배가시킨다.
bc의 공유분은 이후 참여자에 의해 비밀로 유지된다.
B) 시그니처 생성
4) e =H(m) 메시지 m의 해시를 유효성 검증한다.
5)
Figure pct00046
Figure pct00047
를 브로드캐스트한다.
6)
Figure pct00048
Figure pct00049
여기서, 동작
Figure pct00050
는 공유분으로부터 비밀을 복구하는 동작으로서 정의된다. 이 동작은 다음과 같이 보다 상세하게 정의될 수 있다.
여기서,
Figure pct00051
는 세트를 형성하여, 최대 (k-1)이 널(null)이며 모든 잔차 값은 (k-1) 차수의 다항식 F(ㆍ) 상에 존재하며, 이후 μ=F(0)이 된다.
7)
Figure pct00052
Figure pct00053
8) (R x , R y )를 계산하며, 여기서,
Figure pct00054
Figure pct00055
9) r = r x = R x mod n
만약 r = 0이면, 다시 시작한다(즉, 초기 배포부터).
10)
Figure pct00056
Figure pct00057
를 브로드캐스트한다.
11)
Figure pct00058
만약 s = 0 이면, 시작(A.1)부터 알고리즘 3을 다시 실행한다.
12) (r, s)를 리턴한다.
13) 비트 코인에서, (r, s) 쌍과의 트랜잭션을 구성하여 표준 트랜잭션을 형성한다.
도 7은 디지털 메시지의 부분 시그니처를 나타내는 다항식 함수를 획득하기 위해 종래의 Berlekamp-Welch 디코더(70)의 새로운 사용을 도시한다.
전송된 데이터의 에러를 정정하기 위한 Berlekamp-Welch 알고리즘의 종래의 사용에서, 메시지 m은 인코더(72)에서 일련의 k 개의 바이트로 분할되고, 각각의 바이트 c0, c1, ... ck-1 는 정수 모듈로(integer modulo) p로서 인코딩된다. 메시지는 이후 다항식 함수로 표시된다:
Figure pct00059
다항식 함수 m(x)의 값은 이후 일련의 (x, y) 쌍을 생성하기 위해 x의 다수의 알려진 값에 대해 결정되며, 일련의 (x, y) 쌍은 이후 송신기(74)에 의해 수신기(76)로 송신된다.
수신기(76)에서 수신된 데이터(M)(즉, 수신된 메시지)는 오리지널 메시지를 나타내는 다항식 함수 상의 포인트에 대응하는 쌍(a1, b1, ... an, bn)을 포함한다.
Figure pct00060
송신된 (x, y) 쌍 중 일부가 송신 동안 손상되었다고 가정하면, 에러 로케이터 다항식 함수는 다음과 같이 정의될 수 있다:
P(ai)≠ bi일 때, E(ai) = 0이고; 그렇지 않으면 E(ai)≠0 이다.
곱셈 다항식 함수 Q(ai)는 다음과 같이 정의된다:
Figure pct00061
그런 다음, 각각의 수신된 (ai, bi) 쌍에 대해, bi의 값이 손상되었는지의 여부에 관계없이,
Figure pct00062
일 때,
Figure pct00063
이므로,
Figure pct00064
이 된다.
n 개의 알려진 (a i , b i ) 값에 대해, E(a i )는 e 차수의 다항식 함수이고 P(a i )는 (k-1) 차수의 다항식 함수이므로, Q(a i )는 (e + k-1) 차수의 다항식 함수가 된다. 따라서, (a i , b i )의 알려진 값은 선형 시스템으로 표현될 수 있다:
Figure pct00065
선형 시스템은 2e + k-1 개의 알려지지 않은 항(E(x)로부터의 e 및 Q(x)로부터의 e + k-1))을 포함하며, 그 결과, Q(a i ) 및 E(a i )의 계수는 n ≥ 2e + k-1인 경우에 결정될 수 있다. 만약 Q(a i ) 및 E(a i )가 결정될 수 있다면, P(a i )를 결정하여 오리지널 메시지 m(x)를 복구할 수가 있다.
그러므로, Berlekamp-Welch 디코더(70)가 다항식 함수 상의 포인트를 나타내는 쌍을 입력으로서 수신하고 다항식 함수를 출력하는 것을 알 수 있다. 따라서, 상기 디코더(70)는 본 발명의 라그랑주 보간에 대한 대체물로서 사용되어 해당 다항식 함수에 의해 표현되는 임계치 개수의 공유분으로부터 다항식 함수를 결정할 수 있다.
모델-임계치 ECDSA (T.ECDSA)
본 발명의 일 실시예에 따르면, 참여자로 지정된 n 개의 그룹 또는 개인의 시스템이 허용된다. 각각의 플레이어는 단독 참여자로서의 개인 또는 개인의 그룹 또는 조합이 될 수 있다. 참여자 p ( i )는 일반적으로 도출되는 공개 키 계산을 사용하여 아이덴티티(identity)에 매핑될 수 있거나 또는 참여자 p ( i )는 개인에게 다시 매핑되지 않고 이 프로토콜에 대해서만 사용된 참여자의 공개 키를 가진 익명의 엔티티로 남을 수 있다.
본 발명은 다른 참여자들을 유효한 플레이어 및 체계의 멤버로서 인식할 수있게 하면서 동시에 그룹 내의 멤버들이 미식별된 상태를 유지하게 하는 전용 브로드캐스트 채널을 소개한다. 참여자 p ( i )로부터 메시지가 브로드캐스트될 때, 그룹 내의 멤버는 그 메시지를 키와 연관된 최종 사용자 또는 개인을 반드시 식별할 필요없이 승인된 당사자로부터 나오는 것으로 인식할 것이다. 그러한 시스템이 보증된다면, 키의 아이덴티티를 개인에게 연결할 수도 있다.
프로세스 흐름은 다음과 같이 요약된다.
도 1에서:
단계 1)
도 1 참조
단계 2) Pc는 원시 트랜잭션을 그룹에 전송한다. 만약 이것이 유효성 검증되면(즉, 원시 트랜잭션이 서명될 해시와 매칭되면), 참여자는 그에 서명하여 투표하게 된다.
단계 3) 만약 예인 경우, 각각의 참여자는 부분적으로 서명된 트랜잭션을 리턴한다.
도 2 참조
단계 4) Pc(또는 임의의 다른 참여자)는 부분적으로 서명된 트랜잭션의 임계치가 수신되면 전체 시그니처를 재구성한다.
단계 5) Pc는 트랜잭션을 서명된 비트 코인 트랜잭션으로서 브로드캐스트한다.
메시지 시그니처의 계산은 변경되지 않은 개인에 의해 또는 임시 브로드캐스팅 당사자를 통해 시작될 수 있다. 조정자 프로토콜의 역할은 시그니처를 수집하는 과정에서 조정자로서 역할을 하는 임의의 참여자 또는 당사자 p ( c )에 의해 수행될 수 있다.
키 생성
수정된 ECDSA 키 생성 알고리즘은 완전히 분산된 시그니처 체계를 만드는 데 사용된다. 이 체계에서, 개인 키는 은닉된 랜덤 비밀의 조합을 사용하여 분산된 그룹에 의해 공동으로 선택된다.
임계치 키 도출 알고리즘은 알고리즘 1에 제공된다.
이 알고리즘은 확장 가능하며, 이 알고리즘의 각각의 단계는 딜러없이 또는 그룹 또는 개인 또는 딜러에서 모든 참여자에 의해 동기적으로 실행될 수 있다. 이 구현예는 현재의 비트 코인 프로토콜과 완전히 호환 가능하다. 모든 서명자는 마치 표준 방식으로 서명된 것처럼 외부 관찰자 또는 검증자에게 나타날 것이다. 결과적으로, 키가 표준 포맷으로 생성되었는지 또는 본 발명의 강화된 프로토콜을 사용하여 생성되었는지를 알 수 있는 방법은 없다.
시그니처 생성
임계치 시그니처 생성의 개념은 [샤미르(Shamir), 1979]에 기술되어 있다. 알고리즘 3은 DH 기반 시스템을 기반으로 하고 ECDSA를 허용하도록 수정된 [펠드만(Feldman), 1987]에 보고된 절차와 관련된다.
본 발명은 이 프로세스를 확장하여 비트 코인 트랜잭션 처리 및 서명과 완전히 호환 가능하게 한다. 이것은 또한 필요한 다수의 시그니처의 각각에 대해 분산된 키를 필요로 할 수 있는 멀티시그 트랜잭션으로 확장된다.
개인 키 재공유
이 프로세스는 완전히 분산된 키 재공유 체계를 도입하도록 확장될 수 있다. 이 재분산은 현재 참여자가 한 라운드의 알고리즘 2를 실행하여 결과적인 제로 공유분을 참여자의 개인 키 공유분에 추가할 때 완료된다. 한 참여자가 랜덤 값을 도입한 경우 새로운 공유분이 랜덤하게 분산될 것이다.
이 프로세스는 실제 개인 키를 변경하지 않으면서 개인 키 공유분의 부가적 마스킹을 허용한다.
임계치 ECDSA 시그니처 도출
임계치 ECDSA 시그니처 생성 시스템은 [샤미르(Shamir), 1979]에서 개발된 체계를 따르는 [펠드만(Feldman), 1987]에서 발견된 임계치 DSS 시그니처 생성 프로토콜과 관련된 아이디어를 사용하여 도출된다.
검증
본 발명은 임의의 값이 알려진 비트 코인 어드레스로 전송되기 전에 메시지의 오프라인 서명 및 검증을 가능하게 한다. 각각의 당사자는 알고리즘 1에 명시된 프로세스를 사용하여 어드레스를 독립적으로 계산하고 유효성 검증할 수 있다. 따라서, 모든 참여자는 비트 코인 어드레스에 펀딩하는 것을 필요로 하는 임의의 활동 전에 자신의 공유분이 유효하다는 것을 알 수 있다. 이 과정에서 검증 체계가 가능하지만 불필요하다. 유효하지 않은 시그니처 슬라이스를 전송할 것을 선택하는 모든 임계치 참여자는 실제로 부정적인 투표를 행한다. 즉, 메시지에 서명하지 않고 비트 코인 트랜잭션을 완료하지 않는 투표는 불활동(inaction)으로부터 행해진다. 충격은 마치 그들이 메시지에 전혀 서명하지 않은 것 같아 보인다는 것이다.
알고리즘 2는 참여자가 자신의 공유분 일관성을 검증할 수 있는 방법을 제공한다. 악의적이지 않은 참여자의 임계치가 유지된 경우, 리키잉(rekeying)시 임의의 알려진 악의적인 참여자를 배제시킬 수 있다. 따라서, 키 슬라이스는 알려진 악의적인 참여자에게 프레시 슬라이스(fresh slices)를 할당하지 않으면서 업데이트될 수 있고, 슬라이스를 재할당할 수 있는 방식으로 키의 리프레싱을 가능하게 한다.
신뢰가 특히 희박하고 악의적인 적이 놈(norm)으로 예상되는 환경에서, 검증 프로세스의 견고성을 더욱 강화하여, 안전한 멀티 당사자 계산을 완료할 때 j/2 소극적 및 j/3 활동적인 적[벤-오르(Ben-Or), 1989; 라빈(Rabin), 1988]에 대한 방어 능력을 향상시킬 수 있다.
부가적 프로세스를 사용하여 시스템의 견고성을 강화시킬 수 있다:
1. D a 는 (k - 1) 차수의 다항식 A(x) 상에서 j 개의 참여자들 간에 공유되는 비밀이라고 하자.
2. 개별 참여자 p ( i ) D a 의 공유분(D a ( i )) 및
Figure pct00066
를 가지며, 이들은 그룹에 이용 가능하게 만들어진다.
3. 모든 참여자는 다음에 알고리즘 2를 사용하여 비밀 b를 공유하며, 그에 따라 각각의 참여자 p ( i )는 (k - 1) 차수의 다항식 상에서 D b 의 새로운 은닉된 공유분(D b ( i ))을 갖게 된다.
Figure pct00067
을 주목해야 하며, 여기서
Figure pct00068
는 참여자 p ( h i )로부터 참여자 p ( i )에게 제출된 서브 공유분이다.
4. 참여자들은 알고리즘 2를 사용하며, 그에 따라 각각의 참여자 p ( i )는 자유항이 제로와 동일한 (2k-1) 차수의 다항식 상에서 새로운 은닉된 공유분 Z( i )를 갖게 된다.
5. 각각의 참여자 p ( i )는 그룹에
Figure pct00069
Figure pct00070
을 게재한다.
6. 각각의 참여자 p ( h i )
Figure pct00071
Figure pct00072
를 가지므로,
Figure pct00073
의 유효성을 검증할 수 있다.
7. 또한, 참여자 p ( i )
Figure pct00074
를 추가로 검증할 수 있다.
임의의 참여자는 다른 참여자가 이 시스템에 대해 악의적으로 행동하는지를 결정할 수 있다.
분산 키 생성
이 체계를 통해 안전한 방식으로 DAC (Distributed Autonomous Corporation)와 DASO (Distributed Autonomous Social Organization)의 구현을 완료할 수 있다. 임의의 k 개수의 멤버는 (인증 기관에 의해 서명되고 발행된 디지털 인증서를 포함하여) 식별 체계를 통해 그러한 그룹을 나타낼 수 있고, 임의의 k 개수의 멤버는 조직을 대신하여 디지털 시그니처를 구성할 수 있는 것으로 나타났다. 이 시스템은 임의의 차별화된 특징없이 검증하고 값의 양도를 제공하는 비트 코인 트랜잭션의 서명으로 확장된다. 이러한 인증 체계는 안전한 것으로 입증되었다.
방법과 구현예
프로토콜이 국제 특허 공개 WO 2017/145016에 공개된 기술에 기초한 ECC를 사용하여 참여자들 사이에 전송되는 데 필요한 비밀 정보를 암호화하므로, 필요시 잠재적으로 훼손되거나 적대적인 참여자들에 대해 유효성 검증이 수행될 수 있도록 모든 메시지를 모든 사용자에게 전송되는 단일 패킷 내로 수집 및 분석하는 것이 가능하고 바람직하다.
시그니처 생성은 조정 참여자 p ( c )에 의해 제안된다. 디폴트에 의해, 임의의 키 슬라이스가 조정 참여자로서 기능할 수 있으며 요건은 프로토콜의 개별 구현예에 따른다. p ( c )에 의한 유효한 원시 트랜잭션의 생성시, 트랜잭션 및 트랜잭션의 메시지 해시는 암호화된 채널을 사용하여 모든 참여자 p ( i c )에게 브로드캐스트된다.
A. 임시 키 공유분 D k ( i ) 를 생성한다.
참여자는 공유분
Figure pct00075
를 생성하는 알고리즘 1을 사용하여 (k-1) 차수의 다항식과 함께
Figure pct00076
에서 균일하게 분포된 임시 키 D k 를 생성한다.
D k 의 공유분은 각각의 참여자에 의해 개별적으로 유지되는 비밀 내에 유지된다.
B. 마스크 공유분
Figure pct00077
를 생성한다.
각각의 참여자는 공유분
Figure pct00078
를 생성하는 알고리즘 1을 사용하여 (k-1) 차수의 다항식과 함께
Figure pct00079
에서 균일하게 분포된 랜덤 값
Figure pct00080
를 생성한다. 이들은 D k ( i )를 곱셈적으로(multiplicatively) 마스크하는 데 사용된다.
Figure pct00081
의 공유분은 비밀이며 해당 참여자에 의해 유지된다.
C. 마스크 공유분 ß i , c i 를 생성한다.
2(k-1) 차수의 다항식을 사용하여 알고리즘 2를 2 회 실행한다.
이 프로토콜에서 생성된 공유분은
Figure pct00082
Figure pct00083
으로 표시된다. 이들은 부가적 마스크로서 사용된다. 다항식은 2(k-1) 차수이어야 하는데, 그 이유는 마스킹되는 숫자는 (k-1) 차수의 두 개의 다항식의 곱을 포함하기 때문이다. 이는 비밀을 복구하는 데 필요한 공유분의 필요 개수를 배가시킨다.
bc의 공유분은 참여자에 의해 비밀로 유지된다.
D. 메시지 m : e = H ( m )의 다이제스트를 계산한다.
이 값은 p ( c )로부터 획득된 트랜잭션의 수신된 해시에 대해 체킹된다.
E.
Figure pct00084
Figure pct00085
를 브로드캐스트한다.
참여자 P i
Figure pct00086
Figure pct00087
를 브로드캐스트한다.
P i 로부터 응답이 수신되지 않으면, 사용된 값은 (null)로 설정된다.
Figure pct00088
에 주목해야 한다.
F.
Figure pct00089
를 계산한다.
Interpolate() [2]:
여기서,
Figure pct00090
는 세트를 형성하여, 최대 (k-1)이 널(null)이며 모든 잔차 값은 (k-1) 차수의 다항식
Figure pct00091
상에 존재하며, 이후 μ=F(0)이 된다.
다항식은 통상의 다항식 보간을 사용하여 계산될 수 있다. 함수 "Interpolate()"는 Berlekamp-Welch Interpolation [2]이며, BCH 및 리드 솔로몬 코드에 대한 에러 수정 알고리즘으로 정의된다. 이는 http://mathword.wolfram.com/LagrangeInterpolatingPolynomial.html에서 보다 상세하게 기술되어 있고, 휘태커, 이. 티(Whittaker, E. T.)와 로빈슨, 지(Robinson, G.)에 의한 "Lagrange's Formula of Interpolation" §17 in The Calculus of Observations: A Treatise on Numerical Mathematics, 4th ed. New York: Dover, pp. 28-30, 1967과, https://jeremykun.com/2015/09/07/welch-berlekamp/에서도 상세하게 기술되어 있다.
G.
Figure pct00092
를 계산한다.
Exp-Interpolate() [10]:
Figure pct00093
가 세트를 형성하되, 여기서 최대 (k-1) 개의 값이 널(null)이며 나머지 값이
Figure pct00094
형태로 이루어지고 각각의
Figure pct00095
가 일부의 (k-1) 차수의 다항식
Figure pct00096
상에 존재하는 경우, θ = GH(0)이 된다.
이 값은
Figure pct00097
로 계산될 수 있으며, 이에 대해 V 는 적절한
Figure pct00098
값의 (k)-서브 세트이며, 또한
Figure pct00099
는 결과적인 라그랑주 보간 계수를 나타낸다. 다항식은 Berlekamp-Welch 디코더를 사용하여 계산될 수 있다.
H.
Figure pct00100
을 계산한다.
I. r = R x mod q 를 할당하고, r = 0이면 단계 A로 진행한다.
각각의 참여자 p ( i )는 단계 J에서 자신의 r i 의 슬라이스를 계산한다. 조정자 p ( c )는 이 값을 사용하여 이 값이 임계치 개수의 응답을 수신한 경우 s를 재구성할 수 있다.
J.
Figure pct00101
를 브로드캐스트한다.
P i 로부터 응답이 요청/수신되지 않으면, 사용된 값은 (null)로 설정된다.
Figure pct00102
에 주목해야 한다.
K.
Figure pct00103
를 계산한다.
s = 0이면, 단계 I로 진행한다.
여기서, 함수
Figure pct00104
는 위에 정의되어 있다.
각각의 참여자 p ( i )는 단계 J에서 자신의 s i 의 슬라이스를 계산한다. 조정자 p ( c )는 이 값을 사용하여 이 값이 임계치 개수의 s i 응답을 수신한 경우 s를 재구성할 수 있다.
L. ( r , s )를 리턴한다.
M. 원시 트랜잭션의 시그니처 섹션을 대체하고 이를 네트워크에 브로드캐스트한다.
슬라이스의 딜러 배포
상술한 실시예는 그룹 공유분의 도입을 통해 훨씬 더 유연하게 만들어질 수 있다. 이러한 방식으로, 공유분의 할당은 임의의 레벨의 계층적 깊이에서 딜러, 다수의 딜러, 딜러를 포함하지 않는 그룹 또는 상기의 임의의 가능한 조합 사이에서 분할될 수 있다.
d A 및 그의 해당 키 슬라이스 d A ( i )를 동일한 알고리즘을 사용하여 도출된 값으로 대체함으로써, 투표 계층을 생성할 수 있다. 예를 들어, 다음에서 도출된 공유분을 동시에 통합하는 체계를 생성할 수 있다:
1) 딜러 기반 배포
2) 다수의 딜러
3) 딜러 없음
따라서, 이 체계는 확장 가능하며, 임의의 비즈니스 구조 조직 시스템을 통합하도록 만들어질 수 있다.
슬라이스의 할당도 확장 가능하다. 고르지 않은 할당 프로세스를 구축하면 공유분에 대한 가중치가 추가될 수 있다. 도 3에 표시된 체계에서, 5 명의 최상위 멤버로 가상 조직을 생성할 수 있다. 그러나, 이는 n = 5의 값을 동일하게 가중화된 공유분으로 설정할 필요는 없다. 이 가상 조직에서, 다음과 같이 최상위 체계의 투표 구조를 설정할 수 있다.
ㆍ 임계치(0) 61 개의 공유분
ㆍ DLO2 15 개의 공유분
ㆍ DL1 15 개의 공유분
ㆍ DL2 15 개의 공유분
ㆍ D1 45 개의 공유분
ㆍ D2 10 개의 공유분
여기에서, n = 100이 설정되었다. 언급했듯이, 이것은 임의의 조직 구조를 반영할 수 있는 임의의 값이다. 도 3의 조직은 거부권 시나리오(D1)를 허용하고 다중 계층 할당의 도입을 통해 상상될 수 있는 임의의 투표 구조를 허용한다.
멀티 레벨 계층 구조에서 종종 누락되는 것은, 비밀의 슬라이스가 할당되었지만 균등하게 배포될 필요는 없으며 또한 서브 그룹의 소유권이 다른 레벨의 소유권을 반영할 필요는 없다는 것이다. 도 3에서는, 임계치의 75 %에서 공유분의 총 수의 45 %를 제어하는 외견상으로 강력한 블록이 있다. 그런 다음 하위 레벨의 공유분 할당이 고려되면, 시나리오는 훨씬 더 복잡해진다. 표 상의 다수의 레벨 및 포지션에서 투표 공유분을 보유하는 개인과의 교차 소유권을 생성할 수 있다.
표 3의 분포는 (보유된 공유분, 임계치, 할당 {n})으로 정의된다.
위의 표 3에서, 참여자(P1과 P2)는 각각 투표를 통해 동요하지만 참여자(P4)와의 연합은 PI 또는 P2가 투표를 거부하지 않는 한 충분한 투표 블록을 P1 또는 P2에 제공함을 알 수 있다.
본 발명에서 투표 포맷의 구현 및 구조에 대한 제한이 없으므로, 이는 안전한 백업 및 복구 방법론을 보장할뿐만 아니라 상상될 수 있는 임의의 조직 계층을 생성하는 데 사용될 수 있다.
Figure pct00105
결과적으로 상위 레벨의 서명 공유분에 할당된 거부권과 투표권을 가질 수 있다. 본 예에서, S에서의 공유분의 소유권은 D L 02, D 1 A D 2 A 에 보유될 수 있다.
안전한 멀티 당사자 계산
n 개의 참여자
Figure pct00106
와의 안전한 멀티 당사자 함수 계산은, 참여자 p ( j i ) 또는 외부 당사자가 x ( i )의 어떠한 지식도 획득하지 못하도록 비밀로 유지될 필요가 있는 p ( i )에 의해 제공된 비밀 값 x ( i )를 포함하는 함수 F(x 1 , ..., x i , ..., x n )를 평가할 필요성에 기초한 문제가 된다. 따라서, 목표는 계산의 정확성을 보장할 수 있게 하면서 각각의 참여자의 값의 기밀성을 유지하는 것이다.
이 시나리오에서, 신뢰할 수 있는 제3자(T)는 다양한 참여자
Figure pct00107
로부터 모든 값
Figure pct00108
을 수집하고 계산치(calculation)를 리턴한다. 이 디자인은 T를 암시적으로 신뢰할 수 있는 이상적인 세계에서만 작동된다. T가 악의적이거나 사기적이거나 훼손될 수 있는 임의의 가능성이 있는 경우, 신뢰할 수 있는 제3자의 사용은 실행 가능성이 낮아진다. 이 시나리오는, 참여자가 유권자이며 신뢰할 수있는 제 3자가 정부에 의해 만들어지는 기존 선거를 반영한다.
신뢰할 수 있는 제3자를 사용하여 안전한 방식으로 계산될 수 있는 임의의 값은 개별 비밀(x ( i ))의 보안성을 유지하면서 신뢰할 수 있는 당사자없이 계산될 수 있음이 입증되었다[바-일란(Bar-Ilan), 1989]. 본원에 제시된 프로토콜은 개인 계산에 비해 안전하며, 훼손 참여자의 비임계치 그룹이 협력할 수 있는 경우에도 안전한 계산을 제공한다.
간단한 곱셈
n 개의 참여자
Figure pct00109
사이에 배포되는 두 개의 비밀 값(x와 y)이 있는 경우, 입력 변수(x와 y)의 비밀성을 유지하면서 동시에 개별 비밀
Figure pct00110
Figure pct00111
가 참여자
Figure pct00112
에 의해 유지되는 것을 보장하여 기밀성을 유지하면서 곱셈(xy)을 계산할 수 있다.
이 체계에서, x 및 y는 각각 (k-1) 차수의 다항식을 사용하여 임계치 그룹의 참여자들 간에 공유된다. 각각의 참여자 p ( i )는 x의 (k-1) 차수의 다항식 상에서의
Figure pct00113
의 공유분과 y 상의 (k-1) 차수의 다항식에서의
Figure pct00114
의 공유분을 곱할 수 있다.
알고리즘 2를 도입하여, (2k-1) 차수의 다항식인 z ( i )의 참여자(p ( i )) 공유분을 리턴한다. 이 값을 이용하여, 각각의 참여자 p ( i )는 값
Figure pct00115
를 계산한다.
Figure pct00116
에 대한 리턴 값은 (2k-1) 차수의 다항식 상의 xㆍy에 대한 계산치의 유효한 공유분을 나타낸다. 임계치 개수의 공유분을 담당하는 임의의 참여자 또는 조정자는 개별 공유분에 대한 임의의 지식을 획득하지 않고도 각각의 참여자가 보유한 리턴 값을 사용하여 xㆍy의 실제 값을 계산할 수 있다.
간단한 가산
n 개의 참여자
Figure pct00117
사이에 배포되는 두 개의 비밀 값(x와 y)이 있는 경우, 입력 변수(x와 y)의 비밀성을 유지하면서 동시에 참여자 p ( i )에 의해 유지되는 개별 비밀
Figure pct00118
Figure pct00119
가 기밀성을 유지하는 것을 보장하면서 합산(x+y)을 계산할 수 있다.
간단한 곱셈 프로세스에 따라, 각각의 참여자 p ( i )는 값
Figure pct00120
을 계산한다. z ( i )의 계산은 필요하지 않지만 이 프로세스에 추가 레벨의 랜덤성 및 기밀성을 추가합니다.
Figure pct00121
에 대한 리턴 값은 (2k-1) 차수의 다항식 상의 x+y에 대한 계산치의 유효한 공유분을 나타낸다. 임계치 개수의 공유분을 담당하는 임의의 참여자 또는 조정자는 개별 공유분에 대한 임의의 지식을 획득하지 않고도 각각의 참여자가 보유한 리턴 값을 사용하여 x+y의 실제 값을 계산할 수 있다.
참여자가 덜 적대적인 경우, 이는 부가적인 단계없이
Figure pct00122
가산으로 단순화될 수 있다.
역 또는 역수
Figure pct00123
로서의 j 개의 참여자 사이에 기밀로 배포되는 분산 비밀 값(x mod n)의 경우, x ( i ), x or x-1 값을 공개할 수 있는 임의의 정보를 드러내지 않으면서
Figure pct00124
에 대한 값과 연관된 다항식의 공유분을 생성할 수 있다[젠나로(Gennaro), 1996]. 다시, 각각의 참여자 p ( i )는 (k-1) 차수의 다항식에 걸쳐 x ( i )에 의해 표현되는 값(x)의 공유분을 유지한다.
알고리즘 1을 사용하여, 각각의 참여자는 (k-1) 차수의 다항식 상의 알려지지 않은 비밀(x.y)의 공유분(x ( i ))을 생성한다. 각각의 참여자는 이후 알고리즘 2를 실행하여 (2k-1) 차수의 다항식 상의 제로 비밀의 (k-1)을 계산한다. 각각의 참여자 (2k-1)는 계산을 수행하여 값
Figure pct00125
을 계산한다.
위에 제시된
Figure pct00126
루틴을 사용하여, 각각의 참여자는
Figure pct00127
의 수집된 값으로부터 값 μ를 리턴하는
Figure pct00128
의 값을 계산할 수 있다. 각각의 참여자는 이후
Figure pct00129
의 값을 계산할 수 있다.
이 값은 임의의 참여자 p ( i )가 (2k-1) 차수의 다항식 상에서
Figure pct00130
를 사용하여
Figure pct00131
의 관련된 공유분을 계산할 수 있다. Berlekamp-Welch 디코딩 체계[베르렉캠프(Berlekamp), 1968]는 이 프로세스를 완료하는 데 사용될 수 있는 몇 가지 방법 중 하나를 제공한다.
할당
검증 가능하고 입증 가능한 방식으로 트랜잭션에 서명하는 능력은, 블록 체인 상에서 임의의 것을 공개적으로 이동시키지 않고 소유권을 개인적으로 증명하고 심지어는 비트 코인 개인 키 및 관련 비트 코인 어드레스의 소유권을 양도 또는 교환할 수 있는 기회를 제공한다. 이러한 방식으로, 비트 코인 어드레스는 펀딩될 수 있고, 그 어드레스의 내용은 공개 레코드를 남기지 않고 양도 또는 판매될 수 있다. 이 프로세스는 임계치 시스템이므로, 키 슬라이스의 할당은 블록 체인에 레코딩된 추가의 정산없이 안전하게 달성될 수 있다.
이런 방식으로, 블록 체인 상에서 이미 정산된 지폐의 소유권을 해당 지폐의 거래 과정에서 분리할 수 있다.
CLTV
CLTV [BIP 65] 항목을 포함하여 비트 코인 메시지 또는 보다 일반적인 용어의 트랜잭션이 생성될 수 있다. 이러한 부가적인 것을 통해, 모든 키 슬라이스의 치명적인 손실이 발생하거나 엔티티로부터의 다수의 슬라이스가 신뢰할 수 없는 것으로 간주되거나 최소의 임계치로 시그니처를 안전하게 재구성할 수 없는 방식으로 손실되는 경우에도 트랜잭션이 복구 가능하게 만들어질 수 있다.
이는 추가적으로 엔티티가 제3자 서비스를 사용하고 있고 해당 서비스가 키에 대한 액세스를 유지 또는 거부할 수 없도록 하고 싶은 경우에도 가능하다. 시간 기반 페일 세이프(time based fail safe)로 비트 코인 트랜잭션을 구성할 때, 사용자는 악의적인 제3자 또는 훼손된 교환 사이트 또는 은행이 그들의 키에 대한 액세스를 위해 그들을 강요할 수 없다는 것을 알고 있다. 최악의 시나리오로서, 치명적인 수준으로의 훼손은 CLTV 조건에 기반한 미리 정의된 어드레스로 시간 기반의 트랜잭션의 역전을 초래할 것이다. 이 미리 정의된 어드레스는 본 출원에서 공개된 프로토콜을 사용하여 생성될 수 있다. 따라서, 쉽게 훼손될 수 없는 일련의 트랜잭션 및 키를 구성할 수 있다.
보안성 고려 사항
벤저(Benger) 등(2014)은 플래시 및 리로드(Flash and reload) 방법론을 사용한 ECDSA 개인 키 복구의 일 예를 제공했다. 이러한 현상은 시스템 RAM 및 캐시에 대한 공격의 일 예일 뿐이다. 이러한 방법은 개인 키를 재구성할 때 샤미르(Shamir)의 SSS[1979]와 같은 절차의 사용으로는 부족하다. 또한, 개인 키가 언제든지 재구성되는 임의의 시나리오에서, 신뢰에 대한 요건이 도입된다. 이 시나리오에서는 개인 키를 보유한 엔티티의 시스템 및 프로세스에 의존할 필요가 있다.
신뢰할 수 있는 당사자가 악의적인 것이 아니더라도, 그 프로세스에 의존할 필요가 있다. 최근의 많은 훼손에서 알 수 있듯이, 개인 키 재구성에 대한 이러한 의존은 공격의 길을 남기게 된다.
기존 ECDSA 구현을 위한 드롭 인(drop-in) 대체는 현재의 비트 코인 프로토콜과 완전 투명하고 호환 가능하기 때문에, 그 구현에는 하드 포크(hard fork) 또는 소프트 포크(soft fork)가 필요하지 않으며, 그 구현은 임의의 현재 트랜잭션과는 구별될 수 없다. 본 발명은 개인을 개별 참여자로 취급하여 복구 기능을 갖는 키의 그룹 서명을 허용한다. 일 예로서, 온라인 지갑 제공자 또는 교환소가 2 개의 키 슬라이스를 유지하고 최종 사용자가 2 개의 슬라이스를 유지하는 4 개의 키 슬라이스를 사용하여 2 중 2의 체계를 구현할 수 있다. 교환소 및 사용자는 각각 그들의 키 슬라이스에 대해 2 중 2의 프로세스를 갖게 될 것이고, 그 키 슬라이스는 이후 필요한 경우 메시지의 안전한 서명을 위해 서로 연계하여 사용될 것이다.
도 4를 참조하면, 비트 코인 트랜잭션과 같은 블록 체인 트랜잭션에 사용하기 위한 스크립트(400)는 트랜잭션을 실행하기 위해 제 1 시그니처(410) 및 제 2 시그니처(420)의 각각을 필요로 한다.
이제 도 5를 참조하면, 도 4의 트랜잭션의 제 1 시그니처(410)는 상술한 알고리즘 1에 의해, 4 중 3의 멀티 시그니처 배열로 분할되며, 여기서 도 4의 트랜잭션의 제 1 시그니처(410)를 수행하는 데 4 개의 키 공유분 중 임의의 3 개가 필요하다. 4 개의 키 공유분이 배포되어, 사용자는 키 공유분(510)를 갖게 되고, 교환소(520)의 두 개의 개별 엔티티(예를 들어, 교환소 기능 및 그 클리어링 오피스(clearing office) 기능)의 각각이 제각기의 키 공유분(530, 540)을 갖게 되고, 그리고 개별 에스크로 동작은 키 공유분(550)을 갖게 된다.
도 6a에 도시된 바와 같이, 도 4의 트랜잭션의 제 2 시그니처(420)는 전술한 알고리즘 1 또는 WO 2017/145010에 기술된 방법에 의해, 3 중 2의 멀티 시그니처 배열로 분할되고, 여기서, 도 4의 트랜잭션의 제 2 시그니처(420)를 수행하는 데 3 개의 키 공유분 중 임의의 2 개가 필요하다. 3 개의 키 공유분이 배포되어, 도 4의 트랜잭션의 제 1 시그니처(410)의 키 공유분(510)를 갖는 사용자는 또한 모바일 텔레폰에 저장된 키 공유분(610) 및 스마트 카드 상의 키 공유분(620)을 갖게 되는 동시에, 도 4의 트랜잭션의 제 1 시그니처(410)의 키 공유분(530, 540)을 갖는 도 5의 교환소는 또한 도 4의 트랜잭션의 제 2 시그니처(420)의 키 공유분(630)를 갖게 된다. 이러한 방식으로 다양한 당사자들 사이에 도 4의 트랜잭션의 개별 시그니처(410, 420)의 키를 배포함으로써, 이는 보안성의 개선에 필요한 리소스의 양을 크게 증가시키지 않고도 임의의 당사자들 사이의 협력을 통해 비승인 시그니처의 달성을 보다 더 어렵게 함으로써 시스템의 보안성을 개선시킨다.
도 6b는 도 6a의 배열의 대안적인 실시예를 도시하며, 이 도 6b에서 도 6a의 실시예에 공통적인 특징은 동일한 참조 번호로 표시된다. 도 6b의 배열에서, 도 6a의 실시예의 키 공유분(630)은 키 공유분(640, 650)의 쌍으로 대체될 수 있으며, 키 공유분(640)은 도 5의 교환소(520)와 함께 유지되며, 키 공유분(650)의 제어권은 개별 에스크로 동작과 같은 개별 엔티티와 함께 배치된다.
결어
본 발명은 그룹 시그니처 프로세스의 도입으로 비트 코인이 달성하고자 하는 것의 토대를 형성한다. 분산 키 생성 시스템을 결합하여 내결함성 서명 시스템을 추가하면 모든 중앙 집중화 및 신뢰 요건이 제거된다.
또한, 암시적으로 탈중앙화된 시스템을 도입하면 보다 강력하고 복원성이 있는 프로토콜이 생성될 수 있다. ECDSA[존슨(Johnson), 2001]와 샤미르(Shamir)의 SSS[샤미르(Shamir), 1979] 간의 호환성으로 인해, 본 발명은 새로운 검증 가능한 비밀 공유 체계로 비트 코인을 확장하는 시스템을 도입할 수 있게 되었다. 이 시스템은 펠드만(Feldman)[Feldman, 1987] 또는 페더슨(Pedersen)[Pedersen, 1992]에서 도출된 것보다 훨씬 효율적이며 어떠한 보안성의 손실도 없다.
본 출원에서, 기준 프로토콜의 변경을 요구하지 않고도 비트 코인의 기능을 확장시키는 시스템이 설명되었다. 본 발명을 사용하면:
1. 키 비밀을 선택하거나 배포하는 데 더 이상 신뢰할 수 있는 제3자가 필요하지 않다.
2. 제3자 신뢰에 의존하지 않는 분산 뱅킹 교환 시스템(distributed banking exchange system)을 생성할 수 있다.
3. 각각의 멤버 또는 멤버의 그룹은 보유한 비밀 키의 공유분이 광고된 비트 코인 어드레스 및 공개 키와 대응하는지를 독립적으로 검증할 수 있다.
4. 도청 및 관련 공격의 영향을 완화하기 위해 개인 키 슬라이스를 리프레시하는 프로토콜이 존재한다.
5. 트랜잭션 및 메시지의 그룹 서명에는 신뢰할 수 있는 제3자가 필요하지 않다.
본 발명은 민감한 데이터가 메모리에 나타나는 것을 방지하기 때문에, 많은 현존하는 보안 위험을 완전히 해결한다.
참고 문헌
1) Bar-Ilan, J. Beaver, "Non-Cryptographic Fault-Tolerant Computing in a Constant Number of Rounds", Proc. of 8th PODC, pp. 201-209, 1989.
2) Berlekamp, Elwyn R. (1968), Algebraic Coding Theory, McGraw-Hill, New York, NY.
3) Benger, N., van de Pol, J., Smart, N.P., Yarom, Y. : "Ooh Aah... Just a Little Bit": A Small Amount of Side Channel Can Go a Long Way. In: Batina, L., Robshaw, M. (eds.) Cryptographic Hardware and Embedded Systems | CHES 2014, LNCS, vol. 8731, pp. 75-92. Springer (2014)
4) Ben-Or, M., Goldwasser, S., Wigderson, A. : "Completeness theorems for noncryptographic fault-tolerant distributed computation". In: Proceedings of the Twentieth Annual ACM Symposium on Theory of Computing, pp. 1-10. STOC '88, ACM, New York, NY, USA (1988)
5) BIP 65 OP_CHECKLOCKTEVIE VERIFY https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki
6) Chaum, David (1983). "Blind signatures for untraceable payments" (PDF). Advances in Cryptology Proceedings of Crypto. 82 (3): 199-203.
7) Dawson, E.; Donovan, D. (1994), "The breadth of Shamir's secret-sharing scheme" ', Computers & Security, 13: Pp. 69-78
8) Desmedt. Yuo (1987). "Society and Group Oriented Cryptography: A New Concept". In A Conference on the Theory and Applications of Cryptographic Techniques on Advances in Cryptology (CRYPTO '87), Carl Pomerance (Ed.). Springer- Verlag, London, UK, UK, 120-127.
9) Feldman. P. "A practical scheme for non-interactive verifiable secret sharing" . In Proceedings of the 28th IEEE Annual Symposium on Foundations of Computer Science, pages 427-437, 1987.
10) Gennaro, R., Jarecki, S., Krawczyk, H., Rabin, T. : "Robust threshold DSS signatures". In: Proceedings of the 15th Annual International Conference on Theory and Application of Cryptographic Techniques, pp. 354-371. EUROCRYPT'96, Springer Verlag, Berlin, Heidelberg (1996)
11) Ibrahim, M., Ali, I, Ibrahim, I, El-sawi, A. : "A robust threshold elliptic curve digital signature providing a new verifiable secret sharing scheme". In: Circuits and Systems, 2003 IEEE 46th Midwest Symposium on. vol. 1, pp. 276-280 (2003)
12) Johnson, D., Menezes, A., Vanstone, S.: "The elliptic curve digital signature algorithm (ecdsa)” International Journal of Information Security 1(1), 36-63 (2001)
13) Kapoor, Vivek, Vivek Sonny Abraham, and Ramesh Singh. "Elliptic Curve Cryptography" Ubiquity 2008, no. May (2008): 1-8.
14) Knuth, D. E. (1997), "The Art of Computer Programming, II: Seminumerical Algorithms" (3rd ed.), Addison-Wesley, p. 505.
15) Koblitz, N. "An Elliptic Curve Implementation of the Finite Field Digital Signature Algorithm" in Advances in Cryptology― Crypto '98. Lecture Notes in Computer Science, vol. 1462, pp. 327-337, 1998, Springer- Verlag.
16) Liu, C. L. (1968), "Introduction to Combinatorial Mathematics", New York: McGraw-Hill.
17) National Institute of Standards and Technology: FIPS PUB 186-4: "Digital Signature Standard” (DSS) (2003)
18) Pedersen, T.: "Non-interactive and information-theoretic secure verifiable secret sharing". In: Feigenbaum, J. (ed.) Advances in Cryptology― CRYPTO '91, LNCS, vol. 576, pp. 129-140. Springer (1992)
19) Rabin T. & Ben-Or. M. (1989) "Verifiable secret sharing and multiparty protocols with honest majority". In Proc. 21st ACM Symposium on Theory of Computing, pages 73-85, 1989.
20) Shamir, Adi (1979), "How to share a secret", Communications of the ACM, 22 (11): Pp. 612-613
21) Wright, C. & Savanah, S. (2016) "Determining a common secret for two Blockchain nodes for the secure exchange of information" Application Number: WO 2017/145016. 2016: n. pag. UK
주목해야 하는 것은, 전술한 실시예가 본 발명을 제한하기보다는 예시하는 것이고, 본 기술 분야의 기술자가 첨부된 청구항에 의해 정의된 본 발명의 범주를 벗어나지 않고 많은 대안의 실시예를 설계할 수 있을 것이라는 것이다. 청구항에서, 괄호 내에 배치된 임의의 참조 부호는 청구항을 제한하는 것으로 해석되어서는 안된다. "포함하는(comprising)" 및 "포함한다(comprises)" 등의 단어는 임의의 청구항 또는 명세서 전체에 열거된 것 이외의 요소 또는 단계의 존재를 배제하지는 않는다. 본 명세서에서, "포함한다"는 "구비하거나 구성된다"를 의미하고, "포함하는"은 "구비하거나 구성되는"을 의미한다. 요소의 단일 참조 형태는 그러한 요소의 복수의 형태를 배제하지 않으며 그 반대도 마찬가지이다. 본 발명은 수 개의 별개의 요소를 포함하는 하드웨어 및 적절하게 프로그래밍된 컴퓨터에 의해 구현될 수 있다. 수 개의 수단을 열거하는 디바이스 청구항에서, 이들 수단 중 일부는 하나의 동일한 하드웨어 아이템에 의해 구현될 수 있다. 특정 수단들이 서로 다른 종속항들에 열거되어 있다는 단순한 사실은 이러한 수단들의 조합이 더 나은 효과를 가져오는 데 사용될 수 없다는 것을 나타내는 것은 아니다.

Claims (34)

  1. 암호화 시스템의 공개-개인 키 쌍의 공개 키에 의해 검증될 수 있는 디지털 시그니처를 제공하기 위해, 상기 공개-개인 키 쌍의 개인 키에 의해 디지털 메시지를 디지털 방식으로 서명하는 방법으로서,
    상기 디지털 메시지의 적어도 임계치 개수의 부분 시그니처(partial signatures)를 수신하는 단계 - 상기 부분 시그니처의 각각은 상기 메시지에 기초한 제각기의 제 1 파트(part) 및 상기 개인 키의 제각기의 공유분(share)에 기초한 제각기의 제 2 파트를 포함하며, 상기 개인 키는 상기 개인 키의 상기 임계치 개수의 공유분에는 액세스 가능하고 상기 임계치 개수 미만의 공유분에는 액세스 불가능하며, 상기 부분 시그니처의 각각은 제 1 다항식 함수의 제각기의 값에 대응하여, 상기 제 1 다항식 함수는 상기 임계치 개수의 부분 시그니처에는 액세스 가능하고 상기 임계치 개수 미만의 부분 시그니처에는 액세스 불가능함 - 와,
    상기 메시지의 디지털 시그니처를 달성하기 위해, 상기 부분 시그니처의 복수의 알려진 값으로부터 상기 제 1 다항식 함수의 계수를 결정하는 것에 의해 상기 제 1 다항식 함수를 결정하는 단계를 포함하는
    방법.
  2. 제1항에 있어서,
    상기 제 1 다항식 함수를 결정하는 단계는 에러 정정 알고리즘을 실행하는 단계를 포함하는
    방법.
  3. 제1항 또는 제2항에 있어서,
    상기 제 1 다항식 함수를 결정하는 단계는 Berlekamp-Welch 디코딩 알고리즘을 실행하는 단계를 포함하는
    방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 제 1 다항식 함수를 결정하는 단계는,
    에러 로케이터 다항식 함수(error locator polynomial function) 및 제 2 다항식 함수를 정의하는 단계 - 상기 제 2 다항식 함수는 상기 제 1 다항식 함수와 상기 에러 로케이터 다항식 함수의 곱임 - 와,
    상기 부분 시그니처의 복수의 알려진 값으로부터 상기 제 2 다항식 함수 및 상기 에러 로케이터 다항식 함수의 계수들을 결정하는 단계와,
    상기 메시지의 디지털 시그니처를 달성하기 위해, 상기 제 2 다항식 함수 및 상기 에러 로케이터 다항식 함수로부터 상기 제 1 다항식 함수를 결정하는 단계를 포함하는
    방법.
  5. 암호화 시스템의 공개-개인 키 쌍의 공개 키에 의해 검증될 수 있는 디지털 시그니처를 제공하기 위해, 상기 공개-개인 키 쌍의 개인 키에 의해 디지털 메시지를 디지털 방식으로 서명하는 방법으로서,
    상기 디지털 메시지의 적어도 임계치 개수의 부분 시그니처를 수신하는 단계 - 상기 부분 시그니처의 각각은 상기 메시지에 기초한 제각기의 제 1 파트, 상기 개인 키의 제각기의 공유분에 기초한 제각기의 제 2 파트, 및 제로 상수 항(zero constant term)을 갖는 제 3 다항식 함수의 제각기의 값에 대응하는 제각기의 제 3 파트를 포함하며, 상기 개인 키는 상기 개인 키의 상기 임계치 개수의 공유분에는 액세스 가능하고 상기 임계치 개수 미만의 공유분에는 액세스 불가능하며, 상기 제 3 다항식 함수는 상기 제 3 다항식 함수의 상기 임계치 개수의 공유분에는 액세스 가능하며 상기 임계치 개수 미만의 공유분에는 액세스 불가능하며, 상기 부분 시그니처의 각각은 제 4 다항식 함수의 제각기의 값에 대응하여, 상기 제 4 다항식 함수는 상기 임계치 개수의 부분 시그니처에는 액세스 가능하고 상기 임계치 개수 미만의 부분 시그니처에는 액세스 불가능함 - 와,
    상기 메시지의 디지털 시그니처를 달성하기 위해 상기 제 4 다항식 함수를 결정하는 단계를 포함하는
    방법.
  6. 제5항에 있어서,
    적어도 하나의 상기 부분 시그니처의 제각기의 제 3 파트는 대응하는 제 1 파트 및 대응하는 제 2 파트에 추가되는
    방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 부분 시그니처의 각각은 임시 키의 제각기의 공유분에 기초한 제각기의 제 4 파트를 더 포함하고, 상기 임시 키는 상기 임시 키의 상기 임계치 개수의 공유분에는 액세스 가능하고 상기 임계치 개수 미만의 공유분에는 액세스 불가능한
    방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 암호화 시스템은 타원 곡선 암호화 시스템인
    방법.
  9. 제8항에 있어서,
    제 1 참여자에게 알려진 제 1 비밀 값의 적어도 하나의 제각기의 제 1 공유분을 복수의 제 2 참여자의 각각에게 배포하는 단계 - 상기 제 1 공유분은 개인 키 및 상기 개인 키와 타원 곡선 생성기 포인트가 곱해진 공개 키를 포함하는 적어도 하나의 개인-공개 키 쌍에 의해 암호화되며, 상기 제 2 참여자가 상기 제 1 비밀 값을 결정할 수 있게 하기 위해 제 1 임계치 개수의 제 1 공유분이 필요함 - 와,
    복수의 상기 제 2 참여자의 각각으로부터, 상기 제 2 참여자에게 알려진 제각기의 제 2 비밀 값의 적어도 하나의 제 2 공유분을 수신하는 단계 - 상기 제 2 공유분은 개인 키 및 상기 개인 키와 타원 곡선 생성기 포인트가 곱해진 공개 키를 포함하는 적어도 하나의 개인-공개 키 쌍에 의해 암호화되며, 상기 제 2 참여자 이외의 참여자가 상기 제 2 비밀 값을 결정할 수 있게 하기 위해 제 2 임계치 개수의 제 2 공유분이 필요함 - 와,
    복수의 상기 제 2 공유분으로부터, 제 3 비밀 값의 제 3 공유분을 형성하는 단계 - 상기 제 3 비밀 값의 결정을 가능하게 하기 위해 제 3 임계치 개수의 제 3 공유분이 필요함 - 를 더 포함하는
    방법.
  10. 제9항에 있어서,
    상기 제 1 임계치 값은 상기 제 2 임계치 값과 동일하고/하거나 상기 제 2 임계치 값은 상기 제 3 임계치 값과 동일하고/하거나 상기 제 3 임계치 값은 상기 제 1 임계치 값과 동일한
    방법.
  11. 제9항 또는 제10항에 있어서,
    상기 제 1 참여자와 복수의 상기 제 2 참여자의 각각 사이에서 암호화된 통신을 가능하게 하는 단계를 더 포함하는
    방법.
  12. 제11항에 있어서,
    상기 암호화된 통신은 상기 제 1 참여자 및 상기 제 1 참여자와는 독립적으로 상기 복수의 제 2 참여자의 각각에 의해 결정된 제각기의 공통 비밀에 의해 가능해지는
    방법.
  13. 제12항에 있어서,
    상기 제 1 참여자는 개인 키를 업데이트하고, 상기 복수의 제 2 참여자의 각각과 연관된 제각기의 공개 키를 업데이트하고, 상기 복수의 제 2 참여자의 각각은 상기 제 1 참여자와 연관된 제각기의 개인 키 및 공개 키를 업데이트하는
    방법.
  14. 제13항에 있어서,
    상기 키는 상기 제 1 참여자와 대응하는 상기 제 2 참여자 간에 합의된 데이터에 기초하여 업데이트되는
    방법.
  15. 제9항 내지 제14항 중 어느 한 항에 있어서,
    상기 제 1 및 제 2 비밀 값의 제 1 및 제 2 공유분은 제각기의 샤미르(Shamir) 비밀 공유 체계에 의해 생성되는
    방법.
  16. 제9항 내지 제15항 중 어느 한 항에 있어서,
    복수의 상기 제 3 공유분은 제 5 다항식 함수의 제각기의 값이고, 상기 제 3 비밀 값은 상기 값의 상기 제 3 임계치 개수로부터 제 5 다항식 함수를 도출함으로써 결정될 수 있는
    방법.
  17. 제9항 내지 제16항 중 어느 한 항에 있어서,
    타원 곡선 생성기 포인트가 곱해지는 제각기의 상기 제 1 공유분을 복수의 상기 제 2 참여자의 각각에게 통신하는 단계를 더 포함하는
    방법.
  18. 제9항 내지 제17항 중 어느 한 항에 있어서,
    복수의 상기 제 2 참여자의 각각으로부터, 타원 곡선 생성기 포인트가 곱해지는 적어도 하나의 제각기의 상기 제 2 공유분을 수신하는 단계를 더 포함하는
    방법.
  19. 제18항에 있어서,
    적어도 하나의 상기 제 2 참여자로부터 직접 수신되는 적어도 하나의 상기 제 2 공유분과, 적어도 하나의 추가의 상기 제 2 참여자로부터 수신되고 상기 타원 곡선 생성기 포인트가 곱해지는 적어도 하나의 상기 제 2 공유분의 일관성을 검증하는 단계를 더 포함하는
    방법.
  20. 제19항에 있어서,
    상기 검증하는 단계에 기초하여 상기 제 3 비밀 값을 업데이트하는 단계를 더 포함하는
    방법.
  21. 제18항 내지 제20항 중 어느 한 항에 있어서,
    적어도 상기 제 2 공유분은 제각기의 제 6 다항식 함수의 값이고, 대응하는 제 2 비밀 값은 상기 값의 대응하는 제 2 임계치 개수로부터 대응하는 제 6 다항식 함수를 도출함으로써 결정될 수 있는
    방법.
  22. 제21항에 있어서,
    복수의 상기 제 2 참여자의 각각으로부터, 타원 곡선 생성기 포인트가 곱해지는 제각기의 상기 제 6 다항식 함수의 적어도 하나의 계수를 수신하는 단계를 더 포함하는
    방법.
  23. 제19항 내지 제22항 중 어느 한 항에 있어서,
    상기 검증하는 단계는 상기 타원 곡선 생성기 포인트가 곱해지는 상기 계수들로부터 상기 타원 곡선 생성기 포인트가 곱해지는 상기 제 6 다항식 함수를 재구성하는 단계를 포함하는
    방법.
  24. 제18항 내지 제23항 중 어느 한 항에 있어서,
    상기 제 1 비밀 값과, 복수의 상기 제 2 참여자로부터 수신되고 상기 타원 곡선 생성기 포인트가 곱해지는 복수의 상기 제 1 공유분의 일관성을 검증하는 단계를 더 포함하는
    방법.
  25. 제24항에 있어서,
    상기 검증하는 단계에 기초하여 상기 제 3 비밀 값을 업데이트하는 단계를 더 포함하는
    방법.
  26. 제24항 또는 제25항에 있어서,
    상기 검증하는 단계는 상기 타원 곡선 생성기 포인트가 곱해지는 복수의 상기 제 2 공유분으로부터, 상기 타원 곡선 생성기 포인트가 곱해지는 상기 제 2 비밀 값을, 상기 복수의 제 2 공유분에 적용될 때 상기 제 2 비밀 값을 제공하는 방법에 의해 획득하는 단계를 포함하는
    방법.
  27. 제9항 내지 제26항 중 어느 한 항에 있어서,
    적어도 하나의 상기 제 2 참여자로부터 제로 값을 갖는 제 4 비밀 값의 적어도 하나의 제 4 공유분을 수신하는 단계를 더 포함하되, 상기 제 4 공유분은 개인 키 및 상기 개인 키와 타원 곡선 생성기 포인트가 곱해지는 공개 키를 포함하는 적어도 하나의 개인-공개 키 쌍에 의해 암호화되는
    방법.
  28. 제9항 내지 제27항 중 어느 한 항에 있어서,
    상기 제 2 참여자 또는 각각의 제 2 참여자와는 다른 적어도 하나의 제 3 참여자로부터, 제로 값을 갖는 제 4 비밀 값의 적어도 하나의 제 4 공유분을 수신하는 단계를 더 포함하되, 상기 제 4 공유분은 개인 키 및 상기 개인 키와 타원 곡선 생성기 포인트가 곱해지는 공개 키를 포함하는 적어도 하나의 개인-공개 키 쌍에 의해 암호화되는
    방법.
  29. 제27항 또는 제28항에 있어서,
    제로의 제 4 비밀 값과, 상기 타원 곡선 생성기 포인트가 곱해지는 복수의 상기 제 4 공유분의 일관성을 검증하는 단계를 더 포함하는
    방법.
  30. 제29항에 있어서,
    상기 검증하는 단계에 기초하여 상기 제 3 비밀 값을 업데이트하는 단계를 더 포함하는
    방법.
  31. 제29항 또는 제30항에 있어서,
    상기 검증하는 단계는 상기 타원 곡선 생성기 포인트가 곱해지는 복수의 상기 제 4 공유분으로부터, 상기 타원 곡선 생성기 포인트가 곱해지는 상기 제 4 비밀 값을, 상기 복수의 제 4 공유분에 적용될 때 상기 제 4 비밀 값을 제공하는 방법에 의해 획득하는 단계를 포함하는
    방법.
  32. 제27항 내지 제31항 중 어느 한 항에 있어서,
    상기 제 3 공유분 및 상기 제 4 공유분으로부터, 상기 제 3 비밀 값의 제 5 공유분을 형성하는 단계를 더 포함하되, 상기 제 3 비밀 값이 결정될 수 있도록 하기 위해 제 5 공유분의 제 4 임계치 개수가 필요한
    방법.
  33. 제1항 내지 제32항 중 어느 한 항에 있어서,
    상기 메시지는 블록 체인 트랜잭션인
    방법.
  34. 제1항 내지 제33항 중 어느 한 항에 따른 방법을 수행하도록 구성된
    컴퓨터로 구현되는 시스템.
KR1020207005089A 2017-08-15 2018-07-26 임계치 디지털 시그니처 방법 및 시스템 KR102627039B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
GBGB1713064.2A GB201713064D0 (en) 2017-08-15 2017-08-15 Computer-implemented methods and systems
GB1713064.2 2017-08-15
IBPCT/IB2017/054961 2017-08-15
IB2017054961 2017-08-15
IB2017057782 2017-12-11
IBPCT/IB2017/057782 2017-12-11
PCT/IB2018/055604 WO2019034951A1 (en) 2017-08-15 2018-07-26 METHOD AND SYSTEM FOR DIGITAL THRESHOLD SIGNATURE

Publications (2)

Publication Number Publication Date
KR20200036884A true KR20200036884A (ko) 2020-04-07
KR102627039B1 KR102627039B1 (ko) 2024-01-19

Family

ID=63254756

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207005089A KR102627039B1 (ko) 2017-08-15 2018-07-26 임계치 디지털 시그니처 방법 및 시스템

Country Status (9)

Country Link
US (2) US11671255B2 (ko)
EP (1) EP3669490A1 (ko)
JP (2) JP7301039B2 (ko)
KR (1) KR102627039B1 (ko)
CN (1) CN110999206A (ko)
SG (1) SG11202000804PA (ko)
TW (1) TWI797147B (ko)
WO (1) WO2019034951A1 (ko)
ZA (1) ZA202000644B (ko)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10505723B1 (en) * 2017-04-26 2019-12-10 Wells Fargo Bank, N.A. Secret sharing information management and security system
US11444779B2 (en) 2018-08-02 2022-09-13 Paypal, Inc. Techniques for securing application programming interface requests using multi-party digital signatures
DE102018127529A1 (de) * 2018-11-05 2020-05-07 Infineon Technologies Ag Elektronische Vorrichtung und Verfahren zum Signieren einer Nachricht
EP3696670A1 (en) * 2019-02-13 2020-08-19 UVUE Limited Distributed computation system and method of operation thereof
US11757657B2 (en) * 2019-03-05 2023-09-12 Sepior Aps Method for providing a digital signature to a message
CN112966052A (zh) * 2019-04-17 2021-06-15 创新先进技术有限公司 区块链数据的分次获取方法和装置
GB201907397D0 (en) * 2019-05-24 2019-07-10 Nchain Holdings Ltd Knowledge proof
GB2584154A (en) 2019-05-24 2020-11-25 Nchain Holdings Ltd Knowledge proof
US11228452B2 (en) * 2019-09-16 2022-01-18 Cisco Technology, Inc. Distributed certificate authority
CN110851859B (zh) * 2019-10-22 2023-09-29 华东师范大学 一种具有(n,t)门限的分布式权威节点区块链系统的认证方法
US11271728B2 (en) * 2019-12-20 2022-03-08 Fujitsu Limited Secure key management
EP4082154A4 (en) * 2019-12-23 2023-06-14 Kzen Networks Ltd. SYSTEM AND METHOD FOR MANAGING A SHARED CRYPTOGRAPHIC ACCOUNT
CN111628863B (zh) * 2020-05-29 2021-02-09 北京海泰方圆科技股份有限公司 一种数据签名的方法、装置、电子设备及存储介质
CN111669275B (zh) * 2020-07-07 2023-04-07 广东工业大学 一种无线网络环境下可选择从节点的主从协作签名方法
US20230016859A1 (en) * 2020-07-13 2023-01-19 Inpher, Inc. Multi-Pivot Partial Quicksort and Oblivious Comparisons of Secret Shared Arithmetic Values in a Multi-Party Computing Setting
AU2021316961B2 (en) * 2020-07-30 2023-04-13 Dapper Labs Inc. Systems and methods providing specialized proof of confidential knowledge
CN112003694B (zh) * 2020-08-10 2023-06-23 杭州溪塔科技有限公司 基于区块链的许可证签发方法、系统、电子设备及介质
EP3955110A1 (en) 2020-08-12 2022-02-16 UVUE Limited Distributed computing system and method of operation thereof
US11777917B2 (en) 2020-10-15 2023-10-03 Cisco Technology, Inc. Multi-party cloud authenticator
CN113259095B (zh) * 2021-04-27 2022-12-20 博雅中科(北京)信息技术有限公司 协同公钥生成方法、多方协同签名方法和系统
CN113438070B (zh) * 2021-05-25 2023-07-21 中国科学院计算技术研究所 基于capss的区块链密钥恢复方法及系统
CN113708924B (zh) * 2021-07-30 2022-09-30 西安邮电大学 基于区块链的椭圆曲线门限签名方法
GB2609906B (en) * 2021-08-09 2023-12-27 Nchain Licensing Ag Generating digital signature shares
SE546023C2 (en) * 2021-10-26 2024-04-16 Assa Abloy Ab Providing biometric access control using threshold cryptography
US20230291579A1 (en) * 2022-03-08 2023-09-14 Western Digital Technologies, Inc. Cryptographic keys for authorization requests from a data storage device
CN115208586B (zh) * 2022-09-13 2022-12-30 中安网脉(北京)技术股份有限公司 一种基于秘密分享的数字签名方法及系统
CN116401715B (zh) * 2023-06-08 2023-08-22 中国移动紫金(江苏)创新研究院有限公司 基于区块链的医疗数据流通隐私计算方法及系统
CN116668024B (zh) * 2023-07-28 2023-10-31 武汉趣链数字科技有限公司 一种分布式密钥的生成方法、装置、电子设备和存储介质
CN117134910B (zh) * 2023-10-24 2024-03-15 深圳市纽创信安科技开发有限公司 一种密钥共享方法、系统及存储介质
CN117439737B (zh) * 2023-12-18 2024-02-27 北京信安世纪科技股份有限公司 协同签名方法和协同签名系统
CN117728959B (zh) * 2024-02-06 2024-05-10 中国信息通信研究院 门限签名方法和装置、电子设备和存储介质

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5625692A (en) * 1995-01-23 1997-04-29 International Business Machines Corporation Method and system for a public key cryptosystem having proactive, robust, and recoverable distributed threshold secret sharing
US5764767A (en) 1996-08-21 1998-06-09 Technion Research And Development Foundation Ltd. System for reconstruction of a secret shared by a plurality of participants
US6363481B1 (en) 1998-08-03 2002-03-26 Nortel Networks Limited Method and apparatus for secure data storage using distributed databases
JP2001142397A (ja) * 1998-10-30 2001-05-25 Hitachi Ltd ディジタル署名方法、秘密情報の管理方法およびシステム
JP3560860B2 (ja) 1999-07-23 2004-09-02 株式会社東芝 秘密分散システム、装置及び記憶媒体
JP3864247B2 (ja) 2001-10-19 2006-12-27 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワークシステム、端末装置、情報の配信方法及び復号方法
TWI248744B (en) * 2003-03-13 2006-02-01 Accton Technology Corp Multisignature scheme with message recovery for group authorization in mobile networks
JP4292835B2 (ja) 2003-03-13 2009-07-08 沖電気工業株式会社 秘密再構成方法、分散秘密再構成装置、及び秘密再構成システム
US8225185B1 (en) * 2007-02-07 2012-07-17 Marvell International, Ltd. RS codec architecture that combines a compact encoder and serial BMA
EP2119101B1 (en) * 2007-03-06 2011-10-05 Research In Motion Limited Elliptical scalar multiplication method for countering power-analysis attacks
US20100131752A1 (en) * 2008-11-26 2010-05-27 Ulrich Flegel Method and system for invalidation of cryptographic shares in computer systems
US20110213975A1 (en) 2010-03-01 2011-09-01 Alessandro Sorniotti Secret interest groups in online social networks
CN102340483B (zh) * 2010-07-15 2015-05-06 航天信息股份有限公司 民主群签名的生成、验证、追踪方法和民主群签名系统
US8874991B2 (en) 2011-04-01 2014-10-28 Cleversafe, Inc. Appending data to existing data stored in a dispersed storage network
US9454312B2 (en) 2012-07-06 2016-09-27 Nec Corporation Method and system for storing and reading data in or from a key value storage
US8745415B2 (en) * 2012-09-26 2014-06-03 Pure Storage, Inc. Multi-drive cooperation to generate an encryption key
JP2014116870A (ja) * 2012-12-12 2014-06-26 Hitachi Ltd 鍵配送システム
US9450938B1 (en) 2013-03-13 2016-09-20 Hrl Laboratories, Llc Information secure proactive multiparty computation (PMPC) protocol with linear bandwidth complexity
US9489522B1 (en) * 2013-03-13 2016-11-08 Hrl Laboratories, Llc Method for secure and resilient distributed generation of elliptic curve digital signature algorithm (ECDSA) based digital signatures with proactive security
US9350550B2 (en) 2013-09-10 2016-05-24 M2M And Iot Technologies, Llc Power management and security for wireless modules in “machine-to-machine” communications
US10263770B2 (en) * 2013-11-06 2019-04-16 Pure Storage, Inc. Data protection in a storage system using external secrets
CN106664205B (zh) * 2014-04-17 2020-06-05 赫尔实验室有限公司 生成数字签名的系统和方法、非瞬时计算机可读存储介质
US9946858B2 (en) * 2014-05-05 2018-04-17 Analog Devices, Inc. Authentication system and device including physical unclonable function and threshold cryptography
US10432409B2 (en) 2014-05-05 2019-10-01 Analog Devices, Inc. Authentication system and device including physical unclonable function and threshold cryptography
WO2016015141A1 (en) 2014-07-28 2016-02-04 Infosec Global Inc. System and method for cryptographic suite management
RU2673842C1 (ru) * 2015-03-20 2018-11-30 Ривец Корп. Автоматическая аттестация сохранности устройства с применением цепочки блоков
US9813234B2 (en) 2015-05-11 2017-11-07 The United States of America, as represented by the Secretery of the Air Force Transferable multiparty computation
US9735958B2 (en) 2015-05-19 2017-08-15 Coinbase, Inc. Key ceremony of a security system forming part of a host computer for cryptographic transactions
AU2017223133B2 (en) 2016-02-23 2022-09-08 nChain Holdings Limited Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
BR112018016234A2 (pt) 2016-02-23 2019-01-02 Nchain Holdings Ltd método implementado por computador para controlar o acesso a um recurso, sistemas baseados em computador e método para controle de acesso a uma carteira digital
US10046228B2 (en) 2016-05-02 2018-08-14 Bao Tran Smart device
US20170345011A1 (en) 2016-05-26 2017-11-30 Hitfin, Inc. System and method executed on a blockchain network
CN106712942B (zh) * 2017-01-10 2019-08-23 武汉理工大学 基于秘密共享的sm2数字签名生成方法及系统
US10700850B2 (en) 2018-11-27 2020-06-30 Alibaba Group Holding Limited System and method for information protection
CA3037833C (en) 2018-11-27 2022-04-19 Alibaba Group Holding Limited System and method for information protection

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Jin Li 외 2명, Practical Threshold Signatures Without Random Oracles, First International Conference Provable Security, ProvSec 2007 (2007)* *
Maged H. Ibrahim 외 3명, A robust threshold elliptic curve digital signature providing a new verifiable secret sharing scheme, 46th Midwest Symposium on Circuits and Systems, (2003.)* *
Pratyush Dikshit 외 1명, Efficient Weighted Threshold ECDSA for Securing Bitcoin Wallet, 2017 ISEA ASIA SECURITY AND PRIVACY (ISEASP), IEEE (2017.01.)* *

Also Published As

Publication number Publication date
TW201911809A (zh) 2019-03-16
EP3669490A1 (en) 2020-06-24
US11671255B2 (en) 2023-06-06
KR102627039B1 (ko) 2024-01-19
US20200213113A1 (en) 2020-07-02
JP7301039B2 (ja) 2023-06-30
SG11202000804PA (en) 2020-02-27
JP2020531893A (ja) 2020-11-05
TWI797147B (zh) 2023-04-01
WO2019034951A1 (en) 2019-02-21
JP2023120347A (ja) 2023-08-29
ZA202000644B (en) 2023-07-26
US20230421375A1 (en) 2023-12-28
CN110999206A (zh) 2020-04-10

Similar Documents

Publication Publication Date Title
KR102627039B1 (ko) 임계치 디지털 시그니처 방법 및 시스템
KR102627049B1 (ko) 임계치 볼트를 생성하는 컴퓨터로 구현되는 방법
CN114338045B (zh) 基于区块链和联邦学习的情报数据安全共享方法及系统
JP7316283B2 (ja) デジタル署名されたデータを取得するためのコンピュータにより実施される方法及びシステム
TWI821248B (zh) 用以移轉數位資產支配權之電腦實施方法及系統
WO2021254702A1 (en) Generating secret shares
Aditia et al. Certificate-less public key encryption for secure e-healthcare systems
CN110999207B (zh) 生成阈值库的计算机实现方法
Wright A distribution protocol for dealerless secret distribution

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant