KR20230024369A - 비밀 공유의 생성 - Google Patents

비밀 공유의 생성 Download PDF

Info

Publication number
KR20230024369A
KR20230024369A KR1020237001201A KR20237001201A KR20230024369A KR 20230024369 A KR20230024369 A KR 20230024369A KR 1020237001201 A KR1020237001201 A KR 1020237001201A KR 20237001201 A KR20237001201 A KR 20237001201A KR 20230024369 A KR20230024369 A KR 20230024369A
Authority
KR
South Korea
Prior art keywords
share
secret
participant
shared
blinding
Prior art date
Application number
KR1020237001201A
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 KR20230024369A publication Critical patent/KR20230024369A/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • 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/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
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 공유된 비밀의 공유를 생성하는 컴퓨터 구현 방법에 관한 것이며, 한 그룹의 참가자 각각은 공유된 비밀의 개개의 제1 비밀 공유를 갖고, 방법은: 그룹의 제1 참가자에 의해 수행되고, 공유된 블라인딩 비밀의 개개의 블라인딩 공유를 생성하는 단계; 제1 그룹의 참가자 각각으로부터 적어도 임계수의 개개의 중간 공유를 획득하는 단계 ― 각각의 개개의 중간 공유는 개개의 블라인딩 공유 및 개개의 제1 비밀 공유에 기초하여 생성됨 ― ; 획득된 중간 공유 각각에 기초하여 중간 값을 생성하는 단계; 및 공유된 비밀의 개개의 제2 비밀 공유를 생성하는 단계를 포함하고, 개개의 제2 비밀 공유는 중간 값 및 개개의 블라인딩 공유에 기초하여 생성된다.

Description

비밀 공유의 생성
본 개시는 공유된 비밀(shared secret)의 공유(share)를 생성하는 방법에 관한 것이다. 예컨대, 방법은 공유된 개인 키(shared private key)의 새로운 공유를 생성하는 데 사용될 수 있다.
일반적으로, 공유된 비밀은 한 그룹의 참가자 간에 분배되는 데이터 항목을 공유하는 데 사용될 수 있다. 각각의 참가자는 비밀의 상이한 공유를 갖는다. 정상적으로, 비밀은, 특정수("임계값"으로 지칭됨)의 참가자가, 예컨대, 비밀을 계산하기 위해 함께 결합되도록 그들 개개의 공유를 이용 가능하게 할 때에만 재구성될 수 있다.
공개 키 암호법(public-key cryptography)은 키의 쌍: 개인 키(private key)의 소유자만 알고 있는 개인 키, 및 대응하는 개인 키에 기초하여 생성되고 개인 키의 보안을 손상시키지 않고 분배될 수 있는 공개 키(public key)를 사용하는 암호 시스템의 유형이다.
공개 키 암호법은 전송자가 수신자의 공개 키(즉, 수신자에게만 알려진 개인 키에 대응하는 공개 키)를 사용하여 메시지를 암호화하는 것을 가능하게 한다. 그런 다음, 암호화된 메시지는 수신자의 개인 키만을 사용하여 암호해독될 수 있다.
유사하게, 전송자는 그들 자신의 개인 키를 사용하여 메시지에 서명하고, 예컨대, 메시지가 전송자에 의해 전송되고 있음을 증명하고 그리고/또는 전송자가 메시지에 동의함을 나타낼 수 있다. 서명자(즉, 서명을 생성하는 당사자)는 그들의 개인 키를 사용하여 메시지에 기초하여 디지털 서명을 생성한다. 메시지에 기초하여 디지털 서명을 생성하는 것은, 메시지 및 개인 키 둘 모두에 기초하여 서명을 생성하는 함수에 메시지 및 개인 키를 제공하는 것을 의미한다. 서명은 메시지에 추가(예컨대, 태깅)되거나 그렇지 않다면 메시지와 연관된다. 서명자의 대응하는 공개 키를 가진 누구든지 동일한 메시지 및 메시지에 대한 디지털 서명을 사용하여, 서명이 유효하게 생성되었는지 여부, 즉, 서명이 실제로 서명자의 개인 키를 사용하여 생성되었는지 여부를 검증할 수 있다. 디지털 서명은, 메시지의 진본성(authenticity)을 보장할 뿐만 아니라, 또한 메시지의 무결성 및 부인 방지(non-repudiation)를 보장한다. 즉, 디지털 서명은, 메시지가 서명으로 서명된 이래도 변경되지 않았으며, 서명의 생성자가 나중에 자신들이 서명을 생성했음을 부인할 수 없음을 증명하는 데 사용될 수 있다.
디지털 서명 방식은 일반적으로 3개의 절차, 즉, 알고리즘을 포함한다. 키 생성 알고리즘은 랜덤 개인 키 및 대응하는 공개 키를 생성하는 데 사용된다. 서명 알고리즘은 메시지 및 개인 키에 기초하여 서명을 생성하는 데 사용된다. 검증 알고리즘은, 공개 키 및 메시지가 주어지면, 서명이 대응하는 개인 키를 사용하여 그리고 서명 알고리즘에 따라 생성되었는지 여부를 검증하는 데 사용된다.
공유된 비밀의 일반적인 용도는 개인-공개 키 쌍의 공유된 개인 키로서의 용도이다. 즉, 개인 키는, 어떠한 단일 참가자도 개인 키에 액세스할 수 없도록, 한 그룹의 참가자 간에 분배될 수 있다. 따라서, 어떠한 단일 참가자도 메시지의 유효한 서명을 생성할 수 없다. 대신에, 참가자 중 일부 또는 모두가 함께 서명이 생성되도록 개인 키를 생성해야 한다.
참가자가 서명을 생성하기 위해 자신의 개인 키 공유를 공유하는 것 대신에, 참가자는 임계값 서명 방식(threshold signature scheme)을 대신에 사용할 수 있다. 임계값 서명 방식은, 개인 키가 임의의 하나의 참가자에게 이용 가능하게 하지 않고서, 그룹 내의 임계수의 참가자가 공유된 개인 키의 개별 공유를 사용하여 메시지에 기초하여 디지털 서명을 생성하는 것을 허용한다. 여기서, 디지털 서명은 서명될 메시지에 기초하여 생성되는 서명이다. 이러한 방식에서, 서명은, 임계수의 참가자가 메시지에 대한 서명을 생성하는 데 동의한 경우에만 생성될 수 있다. 더 적은 수의 참가자를 사용하여 서명을 생성하려는 어떠한 시도도 유효한 서명을 생성하지 못할 것이다. 따라서, 그룹에 의한 유효한 서명(즉, 메시지 및 공유된 개인 키를 사용하여 생성된 서명)은 서명 생성에 동의하는 임계수의 사람들이 있음을 입증 가능하였다. 이것은 또한, 임의의 상대편이 개인 키를 사용하여 서명을 위조하기 위해서는 해당 개인 키의 임계수의 공유를 획득할 필요가 있을 의미한다.
공유된 비밀 자체를 변경하지 않고 공유된 비밀의 새로운 공유를 생성할 수 있다는 것이 바람직한 시나리오가 있다. 예컨대, 공유된 비밀의 개개의 공유를 갖는 한 명 이상의 참가자는, 그들 개개의 공유가 공유된 비밀을 재구성하는 데 더 이상 이용 가능하지 않도록 참가자 그룹을 떠나거나, 예컨대, 임계값 서명 방식의 서명 공유를 생성하기 위해 해당 공유를 사용하여 계산을 수행할 수 있다. 또는 다른 예로서, 참가자가 그룹을 떠난 결과가 아니라, 비밀의 일부 공유는 분실 또는 손상의 결과로서 더 이상 이용 가능하지 않을 수 있다. 해당 공유가 대체될 필요가 있을 수 있다. 또 다른 예로서, 참가자 그룹은 한 명 이상의 추가적인 참가자를 포함하도록 확장될 수 있고, 따라서 해당 참가자는 공유된 비밀의 그들 자신의 공유를 요구한다.
유사하게, 공유된 비밀의 임계값을 변경하는 것이 바람직한 시나리오가 있다. 즉, 공유된 비밀을 재구성하기 위해 비밀 공유의 수를 변경하는 것이 요구된다. 예컨대, 공유된 비밀의 임계값을 증가시키는 것은, 악의적인 상대방이 공유된 비밀을 재구성하기 위해 더 많은 공유에 액세스해야 할 것이기 때문에, 공유된 비밀의 보안을 개선할 수 있다. 이것은, 공유된 비밀이 데이터를 암호화하거나 리소스에 대한 액세스를 제어하는 데 사용되는 개인 키일 때 특히 관련이 있다.
본원에서 개시된 일 양상에 따라, 공유된 비밀의 공유를 생성하는 컴퓨터 구현 방법이 제공되고, 한 그룹의 참가자 각각은 공유된 비밀의 개개의 제1 비밀 공유를 갖고, 방법은 그룹의 제1 참가자에 의해 수행되고, 공유된 블라인딩 비밀의 개개의 블라인딩 공유를 생성하는 단계, 제1 그룹의 참가자 각각으로부터 적어도 임계수의 개개의 중간 공유를 획득하는 단계 ― 각각의 개개의 중간 공유는 개개의 블라인딩 공유 및 개개의 제1 비밀 공유에 기초하여 생성됨 ― ; 획득된 중간 공유 각각에 기초하여 중간 값을 생성하는 단계; 및 공유된 비밀의 개개의 제2 비밀 공유를 생성하는 단계를 포함하고, 개개의 제2 비밀 공유는 중간 값 및 개개의 블라인딩 공유에 기초하여 생성된다.
공유된 비밀의 유효한 공유를 갖는 참가자의 수를 증가 또는 감소시키기 위해 공유된 비밀의 새로운 공유를 생성하는 데 본 방식이 사용될 수 있다. 여기서, 유효한 공유는 제2 비밀 공유 중 하나라는 점에서 유효하다고 볼 수 있으며, 참가자 그룹 전체가 제2 비밀 공유를 사용해야만 계산이 유효할 것이다.
본 방식은 또한 공유된 비밀의 제2 공유가 공유된 비밀의 제1 공유와 비교하여 상이한 임계값을 갖도록 공유된 비밀의 임계값을 변경하기 위해 공유된 비밀의 새로운 공유를 생성하는 데 사용될 수 있다.
분실되거나 손상된 공유는 현재 방식으로 대체될 수 있다. "오래된" 공유가 손상된 경우, 본 발명은, 방식의 다른 참가자가 새로운 공유만을 사용할 것이기 때문에, 해당 공유를 쓸모없게 만든다. 따라서, 공격자가 다른 공유를 손상시키려고 시도를 해야 한다는 의미에서, 공격자는 '다시 시작'해야 한다.
위에서 언급된 바와 같이 공유된 비밀은 종종 개인 키와 관련하여 사용되고, 즉, 개인 키는 공유된 비밀일 수 있다. 더 일반적으로, 공유된 비밀은, 비밀을 드러내거나 이를 사용하여 더 많은 계산을 행하기 위해 임계수의 사람들이 요구되는 임의의 데이터일 수 있다.
예컨대, 데이터는 실제 데이터(예컨대, 개인과 연관된 생체인식 또는 유전 데이터)를 공유하지 않는 것이 바람직한 의료 데이터 또는 이러한 다른 개인 데이터일 수 있다. 공유된 비밀의 형태로 의료 데이터를 공유하는 것은, 민감한 데이터를 드러내지 않고도, 데이터로 계산(예컨대, 통계 분석)이 수행되는 것을 허용한다. 방식의 참가자 중 한 명 이상이 데이터의 소유자인 경우, 해당 소유자는 결과 계산에 참여할 필요가 있을 것이고, 따라서 소유자가 자신의 데이터에 대한 액세스를 승인 또는 거부하는 것을 허용한다. 공유를 갖는 다른 참가자는, 개별 비밀을 학습하지 않고도, 데이터로 계산을 수행하고 결과를 획득할 수 있다. 본 발명은 데이터의 소유자가 방식으로부터 다른 참가자를 '제거'하기 위해 공유를 업데이트하는 것을 허용한다.
공유된 비밀을 업데이트하는 또 다른 사용 사례는, 한 그룹의 참가자가 동일한 공유된 비밀로 다수의 '방식'을 생성할 수 있다는 것이고, 이는 결국 공유된 비밀의 보안을 개선할 수 있다. 참가자는 공유된 비밀을 생성하고, 그런 다음, 공유의 여러 번의 재발행 반복 또는 라운드를 수행할 수 있다. 그 결과는, 참가자가 모두 비밀을 찾기 위해 동일한 '방식' 또는 '라운드'에 대응하는 다른 참가자의 공유와 결합될 수 있는 동일한 공유된 비밀의 다수의 공유를 갖는다는 것이다. 이러한 공유가 모두 함께 저장되는 경우, 공격자는 다수의 위치(즉, 참가자)를 공격할 필요가 있을 뿐만 아니라 공유의 정확한 결합을 알아야 할 필요가 있다.
본 개시의 실시예들의 이해를 보조하기 위해 그리고 그러한 실시예들이 어떻게 실행될 수 있는지를 보여주기 위하여, 단지 예로서 첨부 도면들에 대한 참조가 이루어진다.
도 1은 본 발명의 실시예에 따른, 공유된 비밀의 공유를 업데이트하기 위한 예시적인 시스템을 개략적으로 도시한다.
도 2는 본 발명의 실시예에 따른, 공유된 비밀의 공유를 업데이트하기 위한 예시적인 방법을 개략적으로 도시한다.
도 3은 본 발명의 일부 실시예에 따른, 메시지의 서명을 생성하기 위한 예시적인 시스템을 개략적으로 도시한다.
도 4는 본 발명의 실시예에 따른, 메시지의 서명 공유를 생성하기 위한 예시적인 방법을 개략적으로 도시한다.
예비 단계들
다음의 예가 타원 곡선 암호화 방식(elliptic curve cryptography)과 관련하여 설명되지만, 본 발명은 임의의 하나의 특정 암호 방식에 제한되지 않으며, 일반적으로 임의의 암호화 방식, 예컨대, RSA 또는 다른 공개 키 암호화 방식에 적용될 수 있다.
타원 곡선 그룹
타원 곡선(E)은 다음 방정식을 충족시키고,
Figure pct00001
여기서
Figure pct00002
및 a, b는
Figure pct00003
을 충족시키는 상수이다. 이 타원 곡선 위의 그룹은, 단위 요소인 무한대
Figure pct00004
에서의 점과 함께 이 방정식을 충족시키는 요소
Figure pct00005
의 세트인 것으로 정의된다. 이 그룹 내의 요소에 대한 그룹 연산은 타원 곡선 점 덧셈이라 불리고 +로 표시된다. 이 그룹은
Figure pct00006
로 표시되고, 그 차수는 n으로 표시된다.
이 그룹 연산은
Figure pct00007
로 표시되는 점 곱셈이라 불리는, 요소에 대한 또 다른 연산을 정의하는 데 사용될 수 있다. 점
Figure pct00008
및 스칼라
Figure pct00009
에 대해, 점
Figure pct00010
는 자신에 k번 더해진 점 G인 것으로 정의된다.
타원 곡선 암호법에서, 개인 키는 스칼라
Figure pct00011
인 것으로 정의되며, 여기서
Figure pct00012
은 세트
Figure pct00013
에 대한 표기법이다. 이고 대응하는 공개 키는 타원 곡선 상의 점
Figure pct00014
이다. 예컨대, 일부 블록체인 프로토콜에서, 타원 곡선은 secp256k1 타원 곡선이 되도록 선택되고, 값 a, b 및 p는 이 곡선에 의해 완전히 지정된다. 이 그룹의 차수 n은 이 값이 주어졌을 때 계산되었으며, 이 곡선의 경우에, 이는 소수(prime)이며, secp256k1 표준은 또한 이 그룹의 생성기로서 사용될 점 G를 지정한다.
타원 곡선 디지털 서명 알고리즘
개인 키(
Figure pct00015
)를 사용하여 메시지(msg)에 대한 서명을 생성하기 위해 다음의 단계가 취해진다.
1. 임의의 해시 함수일 수 있는 메시지 다이제스트
Figure pct00016
를 계산. 예컨대, 일부 예에서,
Figure pct00017
이고, 여기서
Figure pct00018
은 SHA-256 해시 함수이다. 대신에 메시지가 동일하거나 상이한 해시 함수로 한 번만, 또는 두 번 이상 해싱될 수 있다는 것이 유의된다.
2. 랜덤 정수
Figure pct00019
를 선택, 여기서 n은 타원 곡선, 예컨대, secp256k1 곡선의 차수이다. 다음에서, k는 임시 개인 키로 지칭된다.
3. 이 임시 개인 키에 대응하는 임시 공개 키
Figure pct00020
를 계산.
4.
Figure pct00021
을 계산. r=0이면, 2 단계로 복귀.
5. 임시 키의 곱셈 역
Figure pct00022
을 계산.
6.
Figure pct00023
을 계산. s=0이면, 2 단계로 복귀.
7. 메시지(msg)의 서명은 (r,s)이다.
임시 키는 비밀로 유지되어야 하고, 그렇지 않으면, 메시지 및 서명이 주어지면, 개인 키(
Figure pct00024
)가 계산될 수 있다. 추가적으로, 서명이 생성될 때마다, 상이한 임시 키가 사용되어야 한다. 그렇지 않은 경우, 2개의 상이한 서명 및 그들의 대응하는 메시지가 주어지면, 개인 키를 도출하는 것이 가능하다.
메시지(msg), 공개 키(
Figure pct00025
) 및 대응하는 서명(r,s)이 주어지면, 다음 단계를 완료함으로써, 서명이 검증될 수 있다.
1. 메시지 다이제스트 e=hash(msg), 예컨대, e=SHA256(SHA256(msg))을 계산.
2. s 모듈로 n의 곱셈 역
Figure pct00026
를 계산.
3.
Figure pct00027
Figure pct00028
을 계산.
4. 점
Figure pct00029
를 계산.
5.
Figure pct00030
, 무한대 점인 경우, 서명은 무효하다.
6.
Figure pct00031
면,
Figure pct00032
라고 하고,
Figure pct00033
을 계산. u=r이면, 서명은 유효하다.
임계값 서명 방식에서, 이 개인 키(
Figure pct00034
)는, 임계값 방식 그룹 내의 참가자 간에 분배되는 키 공유로 분할된다.
공동 검증 가능한 랜덤 비밀 공유
N명의 참가자가 해당 방식으로 참가자 중 적어도 (t+1)명에 의해서만 재생성될 수 있는 공동 비밀을 생성하기를 원한다고 가정된다. 공유된 비밀을 생성하기 위해, 다음의 단계가 취해진다.
1. 참가자는 각각의 참가자에 대한 고유한 라벨(i)에 동의한다. 각각의 참가자(i)는 (t+1)개의 난수를 생성하고,
Figure pct00035
,
여기서
Figure pct00036
은 세트
Figure pct00037
의 랜덤으로 생성된 요소를 의미하고, 여기서
Figure pct00038
은 세트
Figure pct00039
에 대한 표기법이다. 그런 다음, 각각의 참가자는
Figure pct00040
에 대해 차수(t)의 비밀 다항식을 갖는다:
Figure pct00041
.
우리는 이제부터
Figure pct00042
표기법을 생략한다는 것이 유의되고, 정수에 대한 모든 산술 연산은 모듈로 n으로 수행된다고 가정된다.
2. 각각의 참가자(i)는, 예컨대, 참가자(j)와의 보안 통신 채널만을 사용하여 값
Figure pct00043
을 참가자(j)에 전송한다.
3. 각각의 참가자(i)는 다음과 같은 공유된 비밀 다항식의 그들 자신의 개인 비밀 공유를 계산한다.
Figure pct00044
공유된 비밀 공유는
Figure pct00045
형태를 갖는 점이고, 여기서 i는 해당 방식의 참가자 라벨이다. 1-3 단계에서 설명된 바와 같이,
Figure pct00046
의 비밀 공유를 생성하기 위한 이 방법은 본원에서 참가자(i)에 대해
Figure pct00047
로 표시된다. "JVRSS"는 일반적으로 "공동 검증 랜덤 비밀 공유"를 나타내며 4 및 5 단계를 또한 포함한다는 것이 유의된다. 그러나, 본 문서 전반에 걸쳐, JVRSS는 적어도 1 내지 3 단계를 수행하는 것을 의미하는 것이 이해되고, 여기서 4 및 5 단계는 선택적 단계이다.
참가자가 공유된 다항식을 생성했기 때문에, 참가자는 다른 참가자가 모든 참가자에게 올바른 정보를 공유했다는 것, 및 모든 참가자가 동일한 공유된 다항식을 갖는다는 것을 각각 검증할 수 있다. 이것은 다음의 방식으로 수행된다.
4. 각각의 참가자(i)는 모든 참가자에게 다음의 난독화된 계수를 브로드캐스팅한다.
Figure pct00048
에 대해
Figure pct00049
.
5. 각각의 참가자(i)는,
Figure pct00050
를 계산하고 다음을 검증함으로써 각각의 참가자(j)가 다항식 점
Figure pct00051
를 정확하게 계산했다는 것을 체크한다.
Figure pct00052
이 방정식이 개개의 다항식에 대해 성립한다는 것을 모든 참가자가 알게 되면, 그룹은 참가자가 모두 동일한 공유된 다항식을 생성했음을 집합적으로 확신할 수 있다.
공유된 비밀의 재구성
참가자가 0차의 공유된 다항식인 공유된 비밀(
Figure pct00053
)을 재구성하려고 한다고 가정된다. 그런 다음, 공유된 비밀(
Figure pct00054
)을 찾기 위해, 다음 형태의 이러한 다항식에 (t+1)개의 점이 주어지면,
Figure pct00055
,
다음이 계산되고,
Figure pct00056
이는 "라그랑주 보간(Lagrange Interpolation)"으로 알려진 일반 공식으로부터 도출된다.
공개 키 계산
JVRSS의 4 단계에서 공유된
Figure pct00057
에 대해 N개의 0차 개인 다항식 계수 공개 키
Figure pct00058
가 주어지면, 각각의 참가자는 공유된 비밀(
Figure pct00059
)에 대응하는 다음을 사용하여 공유된 공개 키(P)를 계산한다.
Figure pct00060
.
공유된 비밀의 덧셈
어떠한 엔티티도 개별 비밀을 알지 못하는 경우, 한 그룹의 N명의 참가자 사이에 공유되는 2개의 공유된 비밀의 덧셈을 계산하기 위해 ― 여기서 각각의 비밀 다항식의 차수(t)를 가짐 ― , 다음 단계가 취해진다.
1. 제1 공유된 비밀(
Figure pct00061
)을 생성, 여기서 참가자(i)의 공유는
Figure pct00062
에 대해
Figure pct00063
로 주어지고, 임계값은 (t+1)이다.
2. 제2 공유된 비밀(b)을 생성, 여기서 참가자(i)의 공유는
Figure pct00064
로 주어지고, 임계값은 (t+1)이다.
3. 각각의 참가자(i)는 다음과 같은 그들 자신의 덧셈 공유를 계산한다.
Figure pct00065
4. 모든 참가자는 자신의 덧셈 공유(
Figure pct00066
)를 다른 모든 참가자에게 브로드캐스팅한다.
5. 각각의 참가자는 적어도 (t+1)의 공유(
Figure pct00067
)에 대해 보간하여 다음을 계산한다.
Figure pct00068
공유된 비밀의 덧셈을 위한 이 방법은 참가자(i)에 대해 ADDSS(i)로 표시되며, 이는 결과적으로 각각의 참가자(i)가
Figure pct00069
인 것을 알게 한다.
공유된 비밀의 곱
한 그룹의 N명의 참가자 사이에 공유되는 2개의 공유된 비밀 둘 모두의 곱을 계산하기 위해 ― 여기서 각각의 비밀 다항식은 차수(t)를 가짐 ― , 그룹은 다음 단계를 취한다.
1. 제1 공유된 비밀(
Figure pct00070
)을 생성, 여기서 참가자(i)의 공유는
Figure pct00071
에 대해
Figure pct00072
로 주어진다. 공유된 비밀 다항식은 차수(t)를 갖고, 이것은 이를 재생성하기 위해 (t+1)명의 참가자가 요구된다는 것을 의미한다.
2. 제2 공유된 비밀(b)을 생성, 여기서 참가자(i)의 공유는
Figure pct00073
로 주어지고, 공유된 비밀 다항식은 다시 차수(t)를 갖는다.
3. 각각의 참가자는 다음을 사용하여 그들 자신의 곱셈 공유(
Figure pct00074
)를 계산한다.
Figure pct00075
.
4. 모든 참가자는 그들 자신의 곱셈 공유(
Figure pct00076
)를 다른 모든 참가자에게 브로드캐스팅한다.
5. 각각의 참가자는 0에서 적어도 (2t+1)개의 공유(
Figure pct00077
)에 대해 보간하여 다음을 계산한다.
Figure pct00078
.
2개의 공유된 비밀의 곱을 계산하기 위한 이 방법은 본원에서 참가자(i)에 대해
Figure pct00079
로 표시된다.
공유된 비밀의 역
공유된 비밀(
Figure pct00080
)의 역을 계산하기 위해, 다음 단계가 취해진다.
1. 모든 참가자는 공유된 비밀의 곱 PROSS(i)를 계산하고, 이의 결과는
Figure pct00081
이다.
2. 각각의 참가자는 μ의 모듈러 역(modular inverse)을 계산하고, 이것은 다음과 같다.
Figure pct00082
.
3. 각각의 참가자(i)는 다음을 계산함으로써 그들 자신의 역 비밀 공유를 계산한다.
Figure pct00083
.
공유된 비밀의 역을 계산하는 이 방법은 참가자(i)에 대해
Figure pct00084
로 표시된다.
공유된 개인 키 생성 및 검증
Figure pct00085
명의 참가자 ― 이들 중 t+1명이 서명을 생성하는 데 요구됨 ― 간의 공유된 개인 키(
Figure pct00086
)를 계산하기 위해, 참가자는, 위에서 설명된 바와 같이, 임계값이 t+1인 JVRSS 및 공개 키 계산을 실행한다. 결과는, 모든 각각 참가자(
Figure pct00087
)가 개인 키 공유(
Figure pct00088
) 및 대응하는 공유된 공개 키(
Figure pct00089
)를 갖는다는 것이다.
임시 키 공유 생성
서명에 요구된 바와 같은 임시 키 공유 및 대응하는 r을 생성하기 위해, 임계값 (t+1)의 공유된 개인 키(
Figure pct00090
)를 가진 크기(N)의 그룹은 다음 단계를 실행한다.
1. 공유된 비밀의 역 공유
Figure pct00091
를 생성, 여기서 (t+1)개의 공유는 이를 재생성하는 데 요구된다.
2. 각각의 참가자는
Figure pct00092
의 검증에서 공유된 난독화된 계수를 사용하여 다음을 계산하고,
Figure pct00093
그런 다음, 그들은 다음을 계산한다.
Figure pct00094
.
3. 각각의 참가자(i)는
Figure pct00095
을 저장한다.
상이한 임계값을 갖는 비밀의 덧셈
차수 t 및 t'의 비밀을 덧셈하는 경우에, 2개의 비밀의 덧셈은 이를 계산하기 위해
Figure pct00096
개의 공유를 필요로 한다. 그 이유는 공유된 비밀의 공유의 덧셈 단계가 새로운 다항식의 공유를 생성하기 때문이다. 이러한 새로운 덧셈 다항식은 2개의 공유된 비밀의 개별 다항식의 덧셈 결과와 등가이다. 2개의 다항식을 더하는 것은 x의 각각의 차수에서 대응하는 계수를 더하는 것이다. 따라서, 덧셈 다항식의 차수는 2개의 다항식의 가장 높은 차수와 동일한 차수이어야 한다. 이것은 2개보다 더 많은 다항식의 덧셈으로 일반화될 수 있고, 여기서 결과적인 다항식의 차수는 가장 높은 개별 다항식의 차수와 동일하다.
일단 상이한 임계값을 갖는 2개의 비밀의 덧셈이 계산되었다면, 더 높은 임계값 비밀의 보안이 감소된다. 이것은, 이제 개개의 임계값(t, t')을 갖는 결과
Figure pct00097
를 알려지고 t<t'라고 가정하면, t개의 공유로
Figure pct00098
가 계산되고, 그런 다음
Figure pct00099
가 계산될 수 있고, 그래서 값 b가 t개의 공유만으로 계산되었기 때문이다. 이러한 더 낮은 임계값은 아래에서 b의 '암시된 임계값'으로 지칭된다.
상이한 임계값을 갖는 비밀의 곱셈
t 및 t'의 임계값과 2개의 비밀을 곱하는 경우에, 곱셈의 계산은 t+t'+1개의 공유를 필요로 한다. 이 경우에, 2개의 다항식의 공유의 곱셈은 새로운 다항식의 공유를 발생시킨다. 이 새로운 다항식은 2개의 개별 다항식을 곱한 결과이므로, 결과의 차수는 2개의 개별 다항식의 차수의 덧셈이다.
곱셈은 또한 임의의 수의 공유된 비밀로 일반화될 수 있으며, 결과적인 임계값은 개별 임계값의 합에 1을 더한
Figure pct00100
이며, 여기서 ρ는 개별 공유된 비밀에 대해 실행된다.
덧셈과 유사하게, 상이한 임계값을 갖는 2개의 비밀의 곱셈은 더 높은 임계값 비밀의 암시된 임계값을 발생시킨다. 이전과 같이,
Figure pct00101
가 t의 임계값을 갖고 b가 t'의 임계값을 갖는
Figure pct00102
가 알려지고, t <t'인 경우에,
Figure pct00103
및 b 둘 모두는 t개의 공유로 계산될 수 있다. 첫째,
Figure pct00104
가 계산되고,
Figure pct00105
을 사용하여 비밀의 t개의 공유만으로 b를 찾을 수 있다.
하나의 단계에서 공유된 비밀의 덧셈 및 곱셈의 결합
하나의 단계에서 덧셈 및 곱셈의 임의의 결합을 계산하기 위해 위의 내용을 일반화하는 것이 가능하다. 한 그룹의 N명의 참가자가 결과
Figure pct00106
를 계산하기를 원한다고 가정되고, 여기서
Figure pct00107
는 임계값
Figure pct00108
을 각각 갖는 공유된 비밀이다.
Figure pct00109
인 조건이 있고, 즉, 방식의 참가자의 수는 비밀(c)의 차수와 비밀(
Figure pct00110
및 b)의 곱셈 결과의 차수 사이의 최대값보다 더 커야 한다.
1. 각각의 참가자(i)는 각각 임계값
Figure pct00111
으로 자신의 비밀 공유
Figure pct00112
,
Figure pct00113
,
Figure pct00114
를 계산한다.
2. 각각의 참가자(i)는 공유
Figure pct00115
를 계산한다.
3. 각각의 참가자(i)는 다른 참가자와 결과
Figure pct00116
를 공유한다.
4. 각각의 참가자는
Figure pct00117
개의 공유에 대해 보간하여 결과
Figure pct00118
를 찾는다.
이것은 아래의 일부 실시예에 따른 공유된 서명의 계산에서 행해진다. 즉,
Figure pct00119
에 대한 보간이 있다. 이것은 본질적으로
Figure pct00120
Figure pct00121
인 위의 경우이다. 이러한 경우에,
Figure pct00122
Figure pct00123
이고,
Figure pct00124
개의 공유에 대한 보간이 있다.
비밀 공유의 생성
도 1은 본 발명의 실시예를 구현하기 위한 예시적인 시스템(100)을 도시한다. 도시된 바와 같이, 시스템(100)은 복수의 당사자(아래에 "참가자"로 또한 지칭됨)(102)를 포함한다. 3명의 참가자(102)만이 도 1에 도시되지만, 일반적으로 시스템은 임의의 수의 참가자를 포함할 수 있음이 인지될 것이다. 참가자(102) 각각은 개개의 컴퓨팅 장비를 동작시킨다.
개개의 참가자(102)의 개개의 컴퓨팅 장비 각각은 하나 이상의 프로세서, 예컨대, 하나 이상의 중앙 처리 장치(CPU), 가속기 프로세서(GPU), 주문형 프로세서 및/또는 필드 프로그래밍 가능 게이트 어레이(FPGA)를 포함하는 개개의 처리 장치를 포함한다. 개개의 컴퓨팅 장비는 또한 메모리, 즉 비-일시적 컴퓨터-판독 가능 매체 또는 매체들의 형태의 컴퓨터-판독 가능 저장소를 포함할 수 있다. 메모리는 하나 이상의 메모리 매체들, 예컨대, 하드 디스크와 같은 자기 매체; 솔리드 스테이트 드라이브(SSD), 플래시 메모리 또는 EEPROM과 같은 전자 매체; 및/또는 광학 디스크 드라이브와 같은 광학 매체를 사용하는 하나 이상의 메모리 유닛들을 포함할 수 있다. 개개의 컴퓨터 장비는 적어도 하나 사용자 단말, 예컨대, 데스크 톱 또는 랩톱 컴퓨터, 태블릿, 스마트폰, 또는 스마트워치와 같은 웨어러블 디바이스를 포함할 수 있다. 대안적으로 또는 추가적으로, 개개의 컴퓨팅 장비는 사용자 단말을 통해 액세스되는 클라우드 컴퓨팅 리소스(클라우드 컴퓨팅 리소스는 하나 이상의 사이트에서 구현되는 하나 이상의 물리적 서버 디바이스의 리소스를 포함함)와 같은 하나 이상의 다른 네트워크 리소스를 포함할 수 있다. 시스템(100)의 당사자에 의해 수행되는 것으로 설명된 임의의 액션이 해당 당사자에 의해 동작되는 개개의 컴퓨팅 장치에 의해 수행될 수 있다는 것이 인지될 것이다.
참가자(102) 각각은 LAN 또는 WAN 연결을 사용하여 인터넷을 통해 또는 대안적인 유선 또는 무선 통신 수단을 통해 다른 참가자(102) 중 하나, 일부 또는 모두에게 데이터를 전송하도록 구성된다. 문맥상 달리 요구되지 않는 한, 데이터를 전송하는 참가자(102)에 대한 언급은, 예컨대, 제1 참가자(102a)와 제2 참가자(102b) 사이의 보안 통신 채널을 통해 개별적으로 다른 참가자(102)에게 데이터를 전송하거나, 예컨대, 이메일 또는 다른 수단을 통해 전체적으로 그룹에 브로드캐스팅하는 것으로 이해될 수 있다. 다시, 문맥상 달리 요구되지 않는 한, 각각의 참가자(102)는 원시 형태(raw form) 또는 암호화된 형태로 데이터를 전송할 수 있다. 예컨대, 데이터는, 수신측 참가자에게 전송되기 전에, 수신측 참가자의 공개 키를 사용하여 암호화될 수 있다.
참가자 중 한 명, 일부 또는 모두는 공유된 비밀의 개개의 공유를 갖는다(예컨대, 메모리에 저장함). 공유된 비밀의 공유를 갖는 참가자는 집합적으로 제1 그룹의 참가자로 지칭될 것이다. 일부 예에서, 참가자 중 한 명 또는 일부는 공유된 비밀의 개개의 공유를 갖지 않을 수 있다. 예컨대, 참가자의 개개의 공유가 손실되었거나(예컨대, 비밀 공유를 저장하는 메모리가 손상되었을 수 있음) 도난당했을 수 있다. 공유된 비밀의 공유를 갖지 않는 참가자는 집합적으로 제2 그룹의 참가자로 지칭될 것이다.
공유된 비밀은 사실상 데이터 항목이며, 데이터 항목은 개인적으로 유지되는 것, 즉 공개적으로 액세스할 수 없는 것이 바람직하다는 점에서 데이터 항목은 "비밀"이다. 공유된 비밀은, 예컨대, 공개-개인 키 쌍의 공유된 개인 키일 수 있다. 다음 예는 공유된 개인 키로서 공유된 비밀을 참조할 것이다. 이 예는 또한 개인 키 공유로서 공유된 비밀의 공유를 참조할 것이다. 그러나, 이들은 예시적인 예일 뿐이라는 점이 인지될 것이다.
개인 키의 공유(및 일반적으로 공유된 비밀)를 생성하는 기술은 당업자에게 친숙할 것이다.
바람직하게는, 제1 참가자(102)는 공동 비밀 공유 방식(joint secret sharing scheme; JVRSS)를 사용하여, 예컨대, 위에서 설명된 JVRSS 기술을 사용하여 개인 키(
Figure pct00125
)의 제1 개인 키 공유(
Figure pct00126
)를 생성하도록 구성된다. 예컨대, 제1 참가자(102a)는 1의 인덱스를 갖고, 참가자 1에 대해
Figure pct00127
을 사용하여 제1 개인 키 공유를 생성할 수 있으며, 여기서 개인 키는
Figure pct00128
로 표시된다. 각각의 참가자(102)는 개개의 개인 키 공유(
Figure pct00129
)를 생성할 수 있다. 예컨대, 제2 참가자(102b)는 참가자 2에 대해
Figure pct00130
를 사용하여 제2 개인 키 공유를 생성하고 이러한 식일 수 있다.
공동 비밀 공유 방식을 사용하여 제1 개인 키 공유(
Figure pct00131
)를 생성하는 것은 한 세트의 수
Figure pct00132
를 생성하고, 그런 다음, 제1 다항식
Figure pct00133
을 생성하는 것을 포함할 수 있고, 여기서 한 세트의 수는 다항식의 계수이다. 다른 참가자(102) 각각은 개개의 세트의 수를 사용하여 개개의 다항식을 생성할 수 있다. 예컨대, 제2 참가자(102b)는 제2 다항식
Figure pct00134
을 생성한다. 그런 다음, 참가자(102)는 각각의 다른 참가자의 인덱스에서 평가된 그들 개개의 함수의 값을 각각의 다른 참가자에 전송한다. 예컨대, 제1 참가자(102a)는 제2 참가자(102b)에 대해
Figure pct00135
를 평가하고, 그런 다음 그 값을 제2 참가자(102b)에 전송하고, 제3 참가자(102c)에 대해
Figure pct00136
을 평가하고, 그런 다음, 그 값을 제3 참가자(102c)에 전송하고, 이러한 식이다. 제1 참가자(102a)는 제1 참가자의 인덱스의 함수로서 다른 참가자(102)에 의해 생성된 개개의 값을 획득한다. 값은 인터넷을 통해 또는 다른 수단을 통해 전송될 수 있다. 값은 개개의 쌍의 참가자 사이에서 개개의 보안 통신 채널을 통해 전송될 수 있다. 직접 전송하는 대신에, 하나 이상의 참가자(102)(예컨대, 제1 참가자(102a))는 그들 개개의 값을 브로드캐스팅할 수 있다. 적어도 임계수의 참가자로부터 적어도 임계수의 값을 획득하였다면, 제1 참가자(102a)는 제1 값 및 각각의 다른 획득된 데이터 값, 예컨대,
Figure pct00137
,
Figure pct00138
등에 기초하여 제1 개인 키 공유를 생성한다.
제1 참가자(102a)는 난독화된 계수의 세트에 기초하여 대응하는 공개 키(
Figure pct00139
)를 계산할 수 있으며, 여기서 계수는 각각의 참가자(102)의 개개의 개인 키 공유(
Figure pct00140
)를 생성하는 데 사용된다. 즉, 임시 개인 키 공유(
Figure pct00141
)를 생성할 때, 각각의 참가자(102)는 각각의 다른 참가자(102)와 난독화된 계수(
Figure pct00142
)를 공유할 수 있다. 계수는 선택한 타원 곡선 상의 공통 생성기 점(G)에 의해 난독화된다. 이러한 난독화된 계수는 참가자(102) 사이에서 직접 전송되거나, 그룹에 브로드캐스팅될 수 있다. 예컨대, 제1 참가자(102a)는 난독화된 계수(
Figure pct00143
등)를 브로드캐스팅할 수 있다. 그런 다음, 개인 키에 대응하는 공개 키는 다음과 같이 계산될 수 있다.
Figure pct00144
개인 키 공유(
Figure pct00145
)를 생성하기 위해 대응하는 공개 키가 생성될 필요가 없으며, 이로써 이것은 참가자(102)가 선택하는 경우 구현할 수 있는 선택적 특징이라는 것이 인지될 것이다.
개인 키 공유(
Figure pct00146
)는 위에서 설명된 JVRSS 방법을 사용하는 것이 아니라, 즉, 대안적인 방법을 사용하여 생성될 수 있다는 것이 유의된다. 개인 키의 공유를 생성하는 방법은 그 자체로 당업계에 알려져 있다. 유사하게, 개인 키(또는 다른 그러한 데이터)의 공유를 분배하는 방법은 그 자체로 당업계에 알려져 있다. 즉, 개인 키 공유(
Figure pct00147
)는 다수의 방법으로 생성될 수 있다. 예컨대, 딜러(예컨대, 참가자(102) 중 신뢰할 수 있는 참가자 또는 독립 상대방)는, 예컨대, 샤미르의 비밀 공유 방식을 사용하여 개인 키 공유(
Figure pct00148
) 중 하나, 일부 또는 모두를 생성 및 분배하는 데 사용될 수 있다. 개인 키 공유(
Figure pct00149
)를 생성 및 분배하는 데 사용될 수 있는 하나의 이러한 방식은 WO2017145010A1에 설명되어 있다.
개인 키 공유를 생성하는 데 사용되는 특정 방법에 관계없이, 제1 그룹의 참가자(102) 각각은 개인 키(
Figure pct00150
)의 개개의 개인 키 공유(
Figure pct00151
)를 갖는다(예컨대, 저장함).
새로운 방식(즉, 개인 키의 새로운 공유를 갖는 방식)의 참가자(102) 각각은 공유된 블라인딩 키의 개개의 블라인딩 키 공유를 생성한다. 블라인딩 키 공유는 다른 키 공유를 난독화하거나 그렇지 않은 경우 "블라인딩" 또는 "은닉"하는 데 사용된다. 즉, 블라인딩 키 공유는 제1 키 공유를 은닉하기 위해 제1 키 공유에 적용되어, 제1 키 공유를 드러내지 않고도 결과적인 키 공유가 공유될 수 있게 한다. 순진한 예에서, 제1 키 공유는 100일 수 있고, 블라인딩 키 공유는 74일 수 있으므로, 숫자 174가 공유되는 것을 허용한다. 이제, 블라인딩 키 공유가 74라는 것을 모르면, 수신측은 제1 키 공유를 확실히 알 수 없다. 실제로 키 공유는 훨씬 더 큰 숫자일 수 있음이 인지될 것이다.
"키 공유" 및 "키"는 간결성을 위해 사용되며, 일반적으로 "비밀 공유" 및 "비밀"로 각각 대체될 수 있다는 것이 상기된다. 실제로 "공유" 및 "키"는 큰 숫자일 가능성이 높다. 이들 참가자(102)(이하 "새로운 그룹"으로 지칭됨)는 제1 그룹의 참가자로부터의 또는 제1 및 제2 그룹의 참가자의 결합으로부터의 참가자만을 포함할 수 있다.
바람직하게는, 블라인딩 키 공유(
Figure pct00152
)는 공동 비밀 공유 방식을 사용하여, 예컨대, 전술한 JVRSS 기술을 사용하여 계산될 수 있다. 예컨대, 제1 참가자(102a)는 1의 인덱스를 갖고, 참가자 1에 대해
Figure pct00153
을 사용하여 블라인딩 키 공유를 생성할 수 있으며, 여기서 블라인딩 키는 κ로 표시된다. 각각의 참가자(102)는 개개의 블라인딩 키 공유(
Figure pct00154
)를 생성할 수 있다. 예컨대, 제2 참가자(102b)는 참가자 2에 대해
Figure pct00155
를 사용하여 제2 블라인딩 키 공유를 생성할 수 있고, 이러한 식이다.
공동 비밀 공유 방식을 사용하여 블라인딩 키 공유(
Figure pct00156
)를 생성하는 것은, 블라인딩 키 공유(
Figure pct00157
)를 생성하는 데 사용되는 난수가 개인 키 공유(
Figure pct00158
)를 생성하는 데 사용되는 난수와 비교하여 상이한 수라는 점을 제외하고, 개인 키 공유(
Figure pct00159
)를 생성하기 위한 위에서 설명된 것과 동일한 단계를 포함한다.
개인 키 공유(
Figure pct00160
)와 마찬가지로, 블라인딩 키 공유(
Figure pct00161
)를 생성할 때, JVRSS에 대한 대안이 사용될 수 있다.
새로운 그룹의 참가자의 일부이기도 한 제1 그룹의 적어도 임계수의 참가자(102)(즉, 개개의 개인 키 공유(
Figure pct00162
)를 갖는 참가자)는 그들 개개의 블라인딩 키 공유 및 그들 개개의 개인 키 공유(
Figure pct00163
)에 기초하여 중간 키 공유(
Figure pct00164
)를 생성한다. 즉, 중간 키 공유(
Figure pct00165
)는 블라인딩 키 공유와 개인 키 공유(
Figure pct00166
)의 함수이다. 제1 그룹의 참가자(102)의 일부인 참가자(102)만이 이러한 중간 키 공유(
Figure pct00167
)를 생성할 수 있는데, 왜냐하면 이것이 개인 키 공유(
Figure pct00168
)에 의존하기 때문이라는 것이 유의된다. 중간 키 공유(
Figure pct00169
)가 일반적으로 임의의 비밀 공유일 수 있으며 특별히 키 또는 개인 키인 것으로 제한되지 않는다는 것이 또한 유의된다.
일부 예에서, 중간 키 공유(
Figure pct00170
)는 블라인딩 키 공유와 개인 키 공유의 합, 즉,
Figure pct00171
로 계산될 수 있다. 그러나, 중간 키 공유(
Figure pct00172
)가, 대안적인 방식, 예컨대,
Figure pct00173
으로 계산될 수 있음이 배제되지 않는다.
중간 키 공유(
Figure pct00174
)를 계산한 해당 참가자(102)는 그들 개개의 공유(
Figure pct00175
)를 새로운 그룹의 참가자의 각각의 참가자(102)에게 전송한다. 중간 키 공유(
Figure pct00176
)는 참가자(102)의 쌍 사이에서 직접 전송되거나, 또는 일반적으로 새로운 그룹의 참가자(102)로 브로드캐스팅되거나 다른 방식으로 공개될 수 있다.
새로운 그룹의 참가자(102) 각각은 복수의 중간 키 공유(
Figure pct00177
)를 획득한다. 그런 다음, 새로운 그룹의 참가자(102) 각각은 복수의 중간 키 공유(
Figure pct00178
)에 기초하여 중간 키(
Figure pct00179
)를 계산한다. 즉, 중간 키(
Figure pct00180
)는 복수의 중간 키 공유(
Figure pct00181
) 각각의 함수이다. 예컨대, 새로운 그룹의 참가자(102)의 각각의 참가자는 중간 키 공유(
Figure pct00182
)에 대해 보간할 수 있다.
그런 다음, 중간 키(
Figure pct00183
)를 획득하였다면, 새로운 그룹의 참가자(102) 각각은 중간 키(
Figure pct00184
) 및 블라인딩 키 공유(
Figure pct00185
)에 기초하여 개인 키(
Figure pct00186
)의 새로운 공유(예컨대, 업데이트된 공유)(
Figure pct00187
)를 생성한다. 즉, 개인 키(
Figure pct00188
)의 새로운 공유(
Figure pct00189
)는 중간 키(
Figure pct00190
)와 블라인딩 키 공유(
Figure pct00191
)의 함수이다.
일부 예에서, 새로운 개인 키 공유(
Figure pct00192
)는 중간 키 공유와 개인 키 공유의 합, 즉,
Figure pct00193
로 계산될 수 있다. 그러나, 새로운 개인 키 공유(
Figure pct00194
)가 대안적인 방식, 예컨대,
Figure pct00195
로 계산될 수 있음이 배제되지 않는다.
일반적으로, 제2 비밀 공유(
Figure pct00196
)는 중간 공유(
Figure pct00197
)를 생성하기 위한 제1 연산으로 제1 비밀 공유(
Figure pct00198
)에 적용되고, 그런 다음 중간 키(
Figure pct00199
)를 생성하기 위해 중간 공유(
Figure pct00200
)에 대해 보간된다. 그런 다음, 중간 키(
Figure pct00201
) 및 제2 비밀 공유(
Figure pct00202
)에 대해 제1 연산의 역이 수행되어, 제1 비밀의 새로운 공유(
Figure pct00203
)를 찾는다.
새로운 그룹의 참가자(102) 각각은 이제 개인 키의 새로운 공유를 갖는다. 새로운 그룹의 참가자(102)는, 이전에 개인 키의 공유를 갖지 않았던 참가자(102)를 포함할 수 있다(즉, 새로운 그룹은 제2 그룹으로부터의 참가자(102)를 포함한다). 또는, 새로운 그룹은 제1 그룹의 참가자(102)로부터의 참가자(102)만을 포함할 수 있다.
개인 키(
Figure pct00204
)의 새로운 공유(
Figure pct00205
)의 임계값은 블라인딩 공유(
Figure pct00206
)의 임계값에 기초하여 결정된다. 블라인딩 공유(
Figure pct00207
)는 개인 키 공유(
Figure pct00208
)와 동일한 임계값을 가질 수 있어서, 개인 키의 새로운 공유(
Figure pct00209
)의 임계값이 동일하게 유지되게 한다. 대안적으로, 블라인딩 공유(
Figure pct00210
)는 개인 키 공유(
Figure pct00211
)보다 더 높은 임계값을 가질 수 있어서, 개인 키(
Figure pct00212
)의 새로운 공유(
Figure pct00213
)의 임계값이 이전의 공유(
Figure pct00214
)의 임계값보다 크고, 더 낮은 임계값을 갖는 블라인딩 공유(
Figure pct00215
)에 대해 그 역도 가능하게 한다.
새로운 공유가 '발행'될 때, 이제 오래된 공유(
Figure pct00216
) 또는 새로운 공유(
Figure pct00217
)를 사용하여 공유된 비밀을 생성하는 2개의 방법이 있다. 오래된 공유와 새로운 공유를 결합하려는 시도가 있는 경우, 계산에서 부정확한 공유를 발생시킬 것이다. 따라서, 계산은 각각의 참가자가 오래된 공유(
Figure pct00218
)를 사용하는 경우 또는 각각의 참가자가 그들의 새로운 공유(
Figure pct00219
)를 사용하는 경우에만 작동할 것이다. 공유가 업데이트될 때, 다른 참가자도 그들의 새로운 공유를 사용하기 위해 신뢰 요소가 필요할 수 있다. 사용자의 오래된 공유를 사용하려고 시도하는 사용자는 적대자로 간주될 수 있어서, 그들이 공유를 업데이트하거나 재발행하기 전에 적대자로 간주될 수 있다. 방식의 최소 임계값(즉, 공유를 업데이트하기 전후 최소 임계값)보다 적은 '적대자'가 있는 한, 적대자가 실행할 수 있는 임의의 공격이 포착되고 및/또는 적대자가 방식으로부터 배제되는 결과만 초래할 것이기 때문에, 방식은 안전하다. 따라서, 방식을 공격할 어떠한 동기도 없다. 유일한 문제는, 적대자가 임계값보다 더 많은 경우이지만, 이것은 새로운 문제는 아니고, 이것은 일반적으로 임의의 공유된 비밀 방식에 존재한다.
도 2는 방식의 참가자(102)에 의해 수행되는 예시적인 방법(200)을 도시한다. 이 방법은 공유가 손실된 경우에 사용될 수 있거나, 공유된 비밀 방식에서 참가자(102)를 추가 또는 제거하는 데 대안적으로 사용될 수 있다. 추가적으로 또는 대안적으로, 방법은 또한 공유된 비밀의 임계값을 변경하는 데 사용될 수 있다. 새로운 공유(
Figure pct00220
)를 발행하기 위해서는, 다음의 단계가 취해진다.
단계(S201)에서, 오래된 방식의 각각의 참가자는, 예컨대, JVRSS를 사용하여 개인 키(
Figure pct00221
)의 공유(
Figure pct00222
)를 생성하였다.
단계(S202)에서, 새로운 방식의 각각의 참가자는 임계값(t+1)을 갖는 블라인딩 공유
Figure pct00223
를 생성한다. 키 공유를 생성하는 대안적인 방법이 사용될 수 있다는 것이 유의된다.
단계(S203)에서, 오래된 공유(
Figure pct00224
)를 갖는 적어도 (t+1)명의 참가자(102) 각각은 중간 비밀 공유
Figure pct00225
를 계산한다. 개인 키 공유(
Figure pct00226
)와 블라인딩 키 공유(
Figure pct00227
)의 대안적인 함수가 사용될 수 있다.
단계(S204)에서, 이들 참가자(102)는 중간 비밀 공유를 모든 참가자(102)에게 브로드캐스팅한다.
단계(S205)에서, 모든 참가자(102)는 (t+1)개의 중간 공유
Figure pct00228
로 블라인딩 비밀을 계산한다.
단계(S206)에서, 각각의 참가자는 그들 자신의 새로운 비밀 공유
Figure pct00229
를 계산한다. S203에서 사용되는 함수에 의존하여, 중간 키(
Figure pct00230
) 및 블라인딩 키 공유(
Figure pct00231
)의 대안적인 함수가 사용될 수 있다.
이러한 새로운 비밀 공유는, 오래된 비밀 공유와 동일한 방식으로 사용할 수 있으며, 이를 사용하여 임의의 계산이 이루어지면 오래된 공유된 비밀을 발생시킬 것이다. 공유를 업데이트하는 이전 방법은 차수가 0인 항을 갖고, 즉, 상수 항이 0인 제2 다항식을 단순히 덧셈하는 것이었다. 그 결과는, 0차 항인 것으로 정의된 공유된 비밀이 변경되지 않는다는 것이다. 이것은, 차수가 1이지만 0차가 0인 다항식을 갖는 비밀에 대해 JVRSS가 실행될 수 없기 때문에, 임계값을 증가시키지 않고서는 임계값이 2인 개인 키가 업데이트될 수 없음을 의미한다.
임계값 서명 방식의 보안은 공유의 업데이트를 사용하여 2개의 방법으로 개선될 수 있다. 첫째, 공유가 손상된 것으로 밝혀지면, 방식의 참가자(102)는 즉시 이러한 방법을 사용하여 해당 공유를 쓸모없게 만들 수 있다. 대안적으로, 이러한 방식을 실행하는 그룹은, 임의의 공격자가 다수의 위치를 공격해야 하도록 그들의 공유를 간헐적으로 그리고 특정 시간 프레임 내에서 업데이트하는 데 동의할 수 있다. 이것은, 방식이 시간이 지남에 따라 여전히 안전하다는 것을 의미한다. 더 일반적으로, 새로운 방식의 각각의 참가자는 주기적으로 또는 참가자(102) 중 한 명의 요청에 따라 S202 내지 S206의 단계를 수행할 수 있다.
공유가 손실된 경우에, 여전히 알려진 적어도 (t+1)개의 공유가 있는 경우에만, 공유를 재발행하는 것이 가능하다는 것이 유의된다. 추가적으로, 참가자(102)를 제거하는 경우에, 남아있는 참가자(102)의 수는 적어도 (t+1)이어야 하거나, 비밀을 생성하는 데 필요한 수보다 적은 공유가 존재할 것이다. (t+1)보다 적은 공유로
Figure pct00232
를 계산하는 것이 불가능하기 때문에, 적어도 (t+1)명의 참가자가 없다면, 단계(S204)가 통과될 수 없다는 것이 유의된다. 이것은 임계값을 더 높은 임계값으로 변경하는 경우에도 마찬가지이다. 즉, 방식에는 적어도 해당 임계수가 있어야 한다.
위에서 언급된 바와 같이, 공유된 비밀(
Figure pct00233
)의 임계값이 변경될 수 있다. 도 2의 방법(200)은 동일한 비밀(
Figure pct00234
)에 대한 (t'+1)의 새로운 공유된 비밀 임계값을 생성하도록 구현될 수 있고, 그런 다음 참가자(102)는 다음의 방식으로 이 임계값으로 새로운 공유를 생성한다.
단계(S201)에서, 오래된 방식의 각각의 참가자는 개인 키(
Figure pct00235
)의 공유(
Figure pct00236
)를 생성했으며, 이러한 공유는 t+1의 임계값을 갖는다.
단계(S202)에서, 방식의 모든 참가자(102)는 임계값(t'+1)으로 블라인딩 공유
Figure pct00237
를 생성하고, 2개의 임계값 중 가장 높은 임계값을
Figure pct00238
로 라벨링한다.
단계(S203)에서, 적어도
Figure pct00239
명의 참가자(102)는 그들의 중간 비밀 공유
Figure pct00240
를 계산한다. 개인 키 공유(
Figure pct00241
)와 블라인딩 키 공유(
Figure pct00242
)의 대안적인 함수가 사용될 수 있다.
단계(S204)에서, 이들 참가자(102)는 중간 비밀 공유를 모든 다른 참가자(102)에게 브로드캐스팅한다.
단계(S205)에서, 모든 참가자(102)는 블라인딩 비밀
Figure pct00243
를 계산한다.
단계(S206)에서, 각각의 참가자는 그들 자신의 새로운 비밀 공유
Figure pct00244
를 계산한다. S203에서 사용되는 함수에 의존하여, 중간 키(
Figure pct00245
) 및 블라인딩 키 공유(
Figure pct00246
)의 대안적인 함수가 사용될 수 있다.
이러한 새로운 비밀 공유는 (t'+1)의 임계값을 가지며, 임계수의 공유에 대한 보간은 공유된 비밀(
Figure pct00247
)을 발생시킬 것이다. 그런 다음, 이것이 (예컨대, 아래에 설명된 바와 같이) 서명 계산에 사용되는 경우 ― 여기서 임시 키는 t의 임계값을 가짐 ― , 새로운 서명 공유는 t+t'+1의 임계값을 갖는다.
일부 실시예에서, 개인 키(
Figure pct00248
)의 공유(
Figure pct00249
)의 수 및 개인 키(
Figure pct00250
)의 임계값 둘 모두가 변경될 수 있다.
임계수의 "오래된" 공유가 입증 가능하게 삭제된 경우에만, 보안이 증가될 수 있다는 것이 유의된다. 임계수 미만의 오래된 공유가 남도록 충분한 공유가 입증 가능하게 삭제되어야 한다.
비밀이 t+1의 임계값을 갖고, 이는 t'+1로 증가되고, 여기서 t'>t이라는 것이 가정된다. n개의 공유가 있다고 하자. 그런 다음, 보안을 증가시키기 위해, t+1개 미만의 오래된 공유가 입증 가능하게 남아 있어야 한다. 즉, 방식은 여전히 임계값 미만의 오래된 공유가 존재한다는 것을 확신할 필요가 있다. 이것은, 그렇다면, 오래된 공유로 비밀을 계산할 어떠한 방법도 없기 때문이다. t+1개의 오래된 공유가 여전히 존재하는 경우, 더 높은 임계값을 갖는 새로운 공유가 또한 있더라도, 이들이 비밀을 계산하는 데 사용될 수 있기 때문에, 보안은 여전히 t+1이다. 보안은 비밀을 계산하는 데 필요한 공유의 최소수에 기초한다.
새로운 방식의 참가자(102)는, 새로운 공유(
Figure pct00251
)가 정확하게 계산되었음을 검증할 수 있다. 이것은, 개별 비밀에 대응하는 공개 키를 덧셈하고 덧셈의 결과에 대응하는 공개 키와 그들을 비교함으로써 수행된다.
위의 예비 단계에서 설명된 바와 같이, 각각의 비밀(
Figure pct00252
)을 생성하는 방법은 공개 키를 계산하기에 충분한 정보를 발생시킨다. 따라서, 공개 키를 계산한 후에, 참가자는
Figure pct00253
,
Figure pct00254
를 알고 있다. 결과를 검증하기 위해, 각각의 참가자는 다음 단계를 수행할 수 있다.
1.
Figure pct00255
를 계산
2.
Figure pct00256
를 사용하여,
Figure pct00257
를 계산
3. 이 결과를 비교하여, 이들이 동일하다는 것을 검증.
또한, 참가자(102)가 부정확한 결과를 찾은 경우, 그들은 어떤 공유가 부정확한지를 결정할 수 있다. 이를 위해, 참가자(102)는 각각의 참가자에 대해
Figure pct00258
Figure pct00259
를 저장한다. 그런 다음, 참가자(102)가
Figure pct00260
Figure pct00261
를 알고 있기 때문에, 이는 위와 동일한 검증이다. 참가자는
Figure pct00262
를 또한 알고 있는데, 왜냐하면 이것이 보간을 위해 공유되기 때문이고, 따라서 이러한 값으로 동일한 단계 1-3가 반복된다. 단계 3에서 동일하지 않은 값을 발생시키는 공유는 부정확한 공유이다.
언급된 바와 같이, 새로운 공유(
Figure pct00263
)는 임계 서명 방식의 일부로서 사용될 수 있다. 즉, 새로운 공유(
Figure pct00264
)는 개인 키(
Figure pct00265
)의 개인 키 공유일 수 있다. 본 발명은, 서명 방식의 서명이 기초하는 개인 키의 참가자의 공유를 업데이트하는 데 사용될 수 있다. 새로운 공유(
Figure pct00266
)의 수는 변경될 수 있고 및/또는 새로운 개인 키 공유(
Figure pct00267
)의 임계값은 변경될 수 있다.
도 3은 새로운 개인 키 공유(
Figure pct00268
)를 사용하여 임계값 최적의 서명 방식, 예컨대, 임계값 최적의 ECDSA 방식을 구현하기 위한 예시적인 시스템(300)을 도시한다. 오래된 공유가 사용된 경우, 생성된 서명이 새로운 공유를 사용하여 생성된 서명과 동일할 것이라는 것이 유의된다. 도시된 바와 같이, 시스템(100)은 조정자(101) 및 한 그룹의 참가자(102)를 포함하는 복수의 참가자(102)를 포함한다. 3명의 참가자(102)만이 도 3에 도시되지만, 일반적으로 시스템은 임의의 수의 참가자를 포함할 수 있음이 인지될 것이다. 또한, 도 1에서, 조정자(101)는 참가자(102)와 별개인 것으로 도시되지만, 일부 실시예에서, 조정자(101)는 또한 참가자(102) 중 하나, 예컨대, 제1 참가자(102a)일 수 있다. 참가자(102)는 도 1을 참조하여 위에서 설명되었다.
다음이 타원 곡선 암호화 방식을 사용하여 구현된 방식을 설명하지만, 일반적으로, 본 발명의 실시예는 다른 공개 키 암호화 방식, 예컨대, RSA에 적용될 수 있음이 유의된다.
조정자(101)는 한 그룹의 참가자(102)의 개개의 참가자에 의해 생성된 임계수의 서명 공유를 사용하여 서명을 개시하는 당사자이다. 즉, 조정자(101)는 서명될 메시지에 대한 서명을 생성한다. 다시 말하자면, 메시지에 대한 서명을 생성하는 것은 서명이 서명될 메시지에 의존하거나, 다른 말로 표현하면, 서명이 서명될 메시지의 함수라는 것을 의미하는 것이 이해된다는 것이 유의된다. 조정자(101)는 또한 서명 및 선택적으로 메시지를 제3 자(103)에 전송하거나 그렇지 않으면 서명을 출력하는 당사자일 수 있다. 예컨대, 제3 자(103)는 인증 기관 또는 다른 형태의 기관, 또는 다른 사용자일 수 있다. 다른 예에서, 서명은, 예컨대, 데이터베이스 또는 다른 문서에 기록될 수 있다. 일부 예에서, 서명은 대중에게 이용 가능하게 되고, 예컨대, 웹사이트 또는 다른 공개적으로 액세스 가능한 매체에 기록될 수 있다.
조정자(101)는 서명될 메시지를 참가자(102)에 전송할 수 있다. 메시지는 모든 참가자(102)에 또는 참가자의 서브세트, 예컨대, 임계수의 참가자에 전송될 수 있다. 도 1의 예에서, 한 그룹의 참가자는 3명의 참가자(102a, 102b, 102c)를 포함한다. 조정자(101)는 메시지를 하나의 참가자에 전송할 수 있으며, 그런 다음, 참가자는 메시지를 하나 또는 일부 또는 모든 다른 참가자에 전달할 수 있다.
메시지는 LAN 또는 WAN 연결을 사용하여 인터넷을 통해, 또는 대안적인 유선 또는 무선 통신 수단을 경유하여 전송될 수 있다. 메시지는, 예컨대, 조정자(101)와 각각의 참가자(102) 사이의 보안 통신 채널을 통해 개별적으로 각각의 참가자(102)에게 전송되거나, 예컨대, 이메일 또는 다른 수단을 통해 그룹 전체에 브로드캐스팅될 수 있다. 메시지는 원시 형태 또는 암호화된 형태로 전송될 수 있다. 예컨대, 메시지는 한 번 이상 해싱될 수 있다.
참가자(102) 중 하나 이상은 조정자(101)로부터가 아니라, 즉, 대안적인 수단을 통해 메시지를 획득할 수 있다. 예컨대, 메시지는 참가자(102) 중 하나에 의해 생성되거나, 그렇지 않은 경우, 예컨대, 공개적으로 이용 가능할 수 있다. 하나 이상의 참가자(102)는 제3 자(103)로부터 메시지를 수신할 수 있다. 메시지를 획득하는 참가자(102)는 메시지를 (원시 또는 암호화된 형태로) 하나 이상의 다른 참가자(102)에 전송할 수 있다. 예컨대, 제1 참가자(102)는 메시지를 제2 참가자(102b) 및/또는 제3 참가자(102c)에 전송할 수 있다.
조정자(101)는 임계수의 서명 공유를 획득(예컨대, 수신)한다. 도 1의 예에서, 임계값은 2이고, 제1 참가자(102a) 및 제2 참가자(102b)만이 개개의 서명 공유를 생성하기로 결정한다. 예컨대, 서명 공유를 생성하는 참가자(102) 중 하나 이상은, 예컨대, 보안 통신 채널을 통해 조정자(101)에 그들 개개의 공유를 직접 전송할 수 있다. 대안적으로, 참가자(102) 중 하나 이상은 그들 개개의 공유를 브로드캐스팅하고 그리고/또는 그들의 공유를 공개적으로 이용 가능하게 할 수 있다. 위에서 설명된 바와 같이, 조정자(101)는 또한 참가자일 수 있다. 이러한 실시예에서, 조정자(101)는 또한 개개의 서명 공유를 생성할 수 있다. 그런 의미에서, 임계수의 서명 공유 중 적어도 하나를 획득하는 것은 적어도 하나의 서명 공유를 생성하는 것을 의미하고, 따라서 조정자(101)는 임계수보다 1개 적은 서명 공유만을 수신할 필요가 있다.
서명 공유를 획득하기 위해, 조정자(101)는 서명 공유에 대한 요청을 메시지 상에서 전송할 수 있다. 예컨대, 조정자(101)는 서명 공유에 대한 요청을 한 그룹의 참가자(102) 중 하나, 일부 또는 모두에게 전송할 수 있다.
적어도 임계수의 서명 공유를 획득하였다면, 조정자(101)는 획득된 공유를 사용하여 서명을 생성한다. 그런 다음, 조정자(101)는 서명을 하나 이상의 다른 엔티티에 브로드캐스팅하거나 전송할 수 있다. 추가적으로 또는 대안적으로, 조정자는 서명을 저장하고 그리고/또는 서명을 디지털 기록의 일부로서, 예컨대, 이메일 또는 다른 문서에 기록할 수 있다.
서명 공유(
Figure pct00269
)를 생성하는 방법이 이제 설명될 것이다. 방법은 제1 참가자(102a)의 관점에서 설명되지만, 서명 공유를 생성하는 각각의 다른 참가자(102)가 해당 다른 참가자(102)에게 특정한 특정 데이터를 사용하더라도 동등한 방법을 사용하여 그렇게 한다는 것이 인식될 것이다.
각각의 참가자(102)는 다음의 데이터 항목: 개개의 개인 키 공유(
Figure pct00270
)(즉, 개인 키(
Figure pct00271
)의 공유), 개개의 임시 개인 키 공유(
Figure pct00272
) 및 공통 임시 공개 키(
Figure pct00273
)에 기초하여 생성된 공통 공유된 값(r)에 액세스한다. 공통 임시 공개 키는 임시 개인 키에 대응하고, 즉, 임시 개인 키에 기초하여 생성된다. 여기서, 값 또는 키는, 각각의 참가자가 동일한 값 또는 키에 액세스한다는 점에서 공통적일 수 있다. 달리 지정되지 않는 한, 제1 키에 기초하여 제2 키를 생성하는 것이 반드시 제1 키 자체가 알려진다는 것을 의미하지는 않는다는 것이 유의된다. 이러한 데이터 항목이 생성되는 방법의 예가 아래에 제공된다.
제1 참가자(102a)는 서명될 메시지를 획득하거나 이미 액세스하였다. 메시지는 자신의 원시 형태(예컨대, 평문)이거나, 암호화되거나 그렇지 않은 경우 인코딩된 형태(예컨대, 암호문)일 수 있다. 제1 참가자(102a)는 조정자 및/또는 다른 참가자(102)로부터 메시지를 (어느 형태로든) 획득할 수 있다. 대안적으로, 제1 참가자(102a)는 서명될 메시지를 생성할 수 있다.
제1 참가자(102a)는 제1 서명 공유(
Figure pct00274
)를 생성한다. 이러한 맥락에서 "제1"은 다른 참가자 및 서명 공유로부터 특정 참가자 및 특정 서명 공유를 각각 구별하기 위해 임의의 라벨로서 사용되고, 제1 참가자(102a)가 서명 공유(
Figure pct00275
)를 생성하는 첫 번째 참가자이거나, 제1 서명 공유(
Figure pct00276
)가 정렬된 목록의 서명 공유(
Figure pct00277
)에서 첫 번째라는 것을 반드시 의미하지는 않는다는 것이 유의된다.
일부 실시예에서, 제1 서명 공유(
Figure pct00278
)는 제1 메시지 독립 구성요소(MIC) 및 제1 메시지 종속 구성요소(MDC)에 기초하여 생성될 수 있고, 즉, 이들의 함수이고, 여기서 다시 "제1"은 단지 라벨로서 사용된다. MIC는 메시지와 독립적으로 생성된다. 즉, MIC는 서명될 메시지의 함수가 아니며(즉, MIC는 메시지에 기초하여 생성되지 않음), MIC를 생성하기 위해 메시지에 대한 지식이 필요하지는 않다. 대조적으로, MDC는 서명될 메시지의 함수이며, MDC를 생성하기 위해 메시지에 대한 지식이 필요하다.
다른 실시예에서, 제1 서명은 제1 메시지 독립 구성요소(MIC)의 함수가 아닐 수 있다. 이러한 실시예에서, 제1 메시지 독립 구성요소가 생성되어, 조정자(101)에게 이용 가능하게 되며, 예컨대, 조정자(101)에 전송되거나 하나 이상의 참가자(102)에게 브로드캐스팅된다. 제1 메시지 독립 구성요소(MIC)는 제1 서명 공유 이전에 그리고 이와 별개로 조정자와 공유될 수 있다.
조정자(101)는 적어도 임계수의 참가자로부터 개개의 메시지 독립 구성요소(MIC)를 획득하고, 개개의 서명 공유(이는 개개의 메시지 종속 구성요소(MDC)의 함수임) 및 개개의 메시지 독립 구성요소(MIC)에 기초하여 서명을 생성할 수 있다. 더 많은 세부사항이 아래에 제공된다.
MIC가 메시지에 대한 지식이 필요하지 않기 때문에, MIC가 사전 계산될 수 있다. 다시 말해서, MIC는 메시지를 획득하기 전에 생성될 수 있다. 따라서, 상이한 메시지에 서명하기 위해 상이한 개개의 서명 공유(
Figure pct00279
)를 생성하는 데 있어서 각각 사용되는 복수의 상이한 MIC가 사전 계산될 수 있고, 여기서 프라임(')은, 이것이 제1 서명 공유의 상이한 인스턴스임을 나타낸다.
제1 서명 공유(
Figure pct00280
)를 생성하였다면, 제1 참가자(102a)는 메시지에 대한 서명(s)을 생성하기 위해 제1 서명 공유(
Figure pct00281
)가 조정자(101)에게 이용 가능하게 한다. 제1 참가자(102a)가 조정자(101)인 경우, 제1 서명 공유(
Figure pct00282
)가 조정자(101)에게 이용 가능하게 하는 것은 단순히 서명(s)을 생성하기 위한 함수에 제1 서명 공유(
Figure pct00283
)를 출력하는 것을 의미할 수 있다. 그렇지 않으면, 제1 참가자(102a)는 제1 서명 공유(
Figure pct00284
)를 조정자(101)에게 전송하거나, 또는 조정자(101)에게 전달하기 위해 하나 이상의 다른 참가자(102)에 전송하거나 제1 서명 공유(
Figure pct00285
)를 브로드캐스팅하거나, 이러한 옵션의 조합을 사용할 수 있다.
위에서 언급된 바와 같이, 제1 서명 공유(
Figure pct00286
)는 제1 MIC 및 제1 MDC에 기초하여 생성될 수 있다. 제1 서명 공유가 제1 MIC의 함수인지 여부에 관계없이, 제1 MIC는 제1 개인 키 공유(
Figure pct00287
)(즉, 제1 참가자(102a)에게 알려진 개인 키(
Figure pct00288
)의 공유)에 기초하여 생성된다(즉, 제1 개인 키 공유(
Figure pct00289
)의 함수이다). 제1 MIC는 또한 제1 임시 개인 키 공유(
Figure pct00290
)(즉, 제1 참가자(102a)에게 알려진 임시 개인 키(k)의 공유) 및 임시 개인 키(k)에 대응하는 임시 공개 키(
Figure pct00291
)에 기초하여 생성된 공유된 값(r)에 기초할 수 있다. 제1 MDC는 (원시 또는 암호화된 형태의) 메시지에 기초하여 생성되며(메시지의 함수이고), 또한 제1 임시 개인 키 공유(
Figure pct00292
)에 기초하여 생성될 수 있다. MIC 및 MDC의 변형이 아래에 제공된다.
제1 임시 개인 키 공유(
Figure pct00293
)는, 공동 비밀 공유 방식을 사용하여, 예컨대, 위에서 설명된 JVRSS 기술을 사용하여 계산될 수 있다. 예컨대, 제1 참가자(102a)는 1의 인덱스를 가질 수 있고, 참가자 1에 대해
Figure pct00294
을 사용하여 제1 임시 개인 키 공유를 생성할 수 있으며, 여기서 임시 개인 키는 k로 표시된다. 각각의 참가자(102)는 개개의 임시 개인 키 공유(
Figure pct00295
)를 생성할 수 있다. 예컨대, 제2 참가자(102b)는 참가자 2에 대해
Figure pct00296
를 사용하여 제2 임시 개인 키 공유를 생성하고, 이러한 식일 수 있다.
공동 비밀 공유 방식을 사용하여 제1 임시 개인 키 공유(
Figure pct00297
)를 생성하는 것은, 임시 개인 키 공유(
Figure pct00298
)를 생성하는 데 사용되는 난수가 개인 키 공유(
Figure pct00299
)를 생성하는 데 사용되는 난수와 비교하여 상이한 수라는 점을 제외하고, 제1 개인 키 공유(
Figure pct00300
)를 생성하기 위한 위에서 설명된 것과 동일한 단계를 포함한다.
동일한 개인 키(
Figure pct00301
) 및 개인 키 공유(
Figure pct00302
)가 각각의 서명에 사용되는 반면, 임시 개인 키(k) 및 임시 개인 키 공유(
Figure pct00303
)가 각각의 서명에 대해 변경된다(또는 오히려 그들은 랜덤하게 생성되고, 따라서 의도적으로 상이하게 선택되는 것과는 대조적으로 동일할 가능성이 매우 낮음)는 것이 유의된다.
공유된 값(r)은 임시 개인 키(k)에 대응하는 임시 공개 키(
Figure pct00304
)에 기초하여 생성된다. 임시 공개 키(x,y)는, 보통 x 및 y 구성요소로 지칭되는 2개의 구성요소를 포함한다. 공유된 값(r)은 임시 공개 키의 x 구성요소의 함수, 예컨대,
Figure pct00305
일 수 있다.
임시 공개 키(
Figure pct00306
)는 한 세트의 난독화된 계수에 기초하여 생성될 수 있으며, 여기서 계수는 각각의 참가자(102)의 개개의 임시 개인 키 공유(
Figure pct00307
)를 생성하는 데 사용되었다. 즉, 임시 개인 키 공유(
Figure pct00308
)를 생성할 때 각각의 참가자(102)는 난독화된 계수(
Figure pct00309
)를 각각의 다른 참가자(102)와 공유한다. 계수는 선택한 타원 곡선 상의 공통 생성기 점(G)에 의해 난독화된다. 이러한 난독화된 계수는 참가자(102) 사이에서 직접 전송되거나, 그룹에 브로드캐스팅될 수 있다. 예컨대, 제1 참가자(102a)는 난독화된 계수(
Figure pct00310
등)를 브로드캐스팅할 수 있다. 그런 다음, 임시 공개 키는 다음과 같이 계산될 수 있다.
Figure pct00311
.
일부 실시예에서, 제1 MIC는 제1 임시 개인 키 공유(
Figure pct00312
)에 대응하는 제1 역 공유(
Figure pct00313
)에 기초하여 생성된다. 즉, 제1 역 공유(
Figure pct00314
)는 제1 임시 개인 키 공유(
Figure pct00315
)의 함수이다.
제1 역 공유(
Figure pct00316
)는, 예컨대, 참가자 1에 대해
Figure pct00317
를 계산함으로써 생성된 공유된 비밀의 역일 수 있다. 위에서 설명된 바와 같이, 공유된 비밀의 역을 계산하는 것은 공유된 비밀의 곱을 계산하는 것을 포함한다. 제1 참가자(102a)는 제1 임시 개인 키(k)와 제1 블라인딩 키(α)의 곱으로서 중간 값(μ)을 생성한다. 예컨대, 중간 값은 참가자 1에 대해
Figure pct00318
에 의해 계산될 수 있으며, 그의 결과는
Figure pct00319
이다.
이것은 각각의 참가자(102)가 곱셈 공유(
Figure pct00320
)를 생성하는 것을 수반할 수 있으며, 여기서
Figure pct00321
는 제1 블라인딩 키(
Figure pct00322
)의 공유이다. 각각의 참가자(102)는 공동 비밀 공유 방식을 사용하여, 예컨대, 위에서 설명된 JVRSS 기술을 사용하여 제1 블라인딩 키(
Figure pct00323
)의 그들 개개의 공유(
Figure pct00324
)를 계산할 수 있다. 예컨대, 제1 참가자(102a)는 1의 인덱스를 가질 수 있고, 참가자 1에 대해
Figure pct00325
을 사용하여 제1 블라인딩 키의 공유를 생성할 수 있다. 각각의 참가자는 (예컨대, 직접 전송 또는 브로드캐스팅을 통해) 그들 개개의 곱셈 공유(
Figure pct00326
)를 공유하고, 그런 다음, 곱셈 공유(
Figure pct00327
) 각각에 기초하여, 예컨대, 보간에 의해 중간 값(μ)을 생성한다. 제1 역 공유(
Figure pct00328
)는 중간 값(μ)의 역을 계산함으로써 생성될 수 있다. 예컨대, 제1 참가자(102a)는 μ의 모듈러 역을 계산할 수 있으며, 이는 결과적으로 다음이 된다.
Figure pct00329
.
그런 다음, 제1 참가자(102a)는 중간 값의 모듈러 역(
Figure pct00330
) 및 그들 개개의 제1 블라인딩 키 공유(
Figure pct00331
)에 기초하여, 예컨대, 다음을 계산함으로써 제1 역 공유(
Figure pct00332
)를 계산할 수 있다.
Figure pct00333
.
블라인딩 키 공유(
Figure pct00334
)의 사용은 선택적이며 위의 단계로부터 생략될 수 있다는 것이 유의된다.
선택적으로, MIC는 제2 블라인딩 키(β)의 공유(즉, 그의 함수)에 기초하여 생성될 수 있다. 즉, MIC는 또한 앞서 언급한 데이터 항목 외에도, 제2 블라인딩 키(β)의 제1 공유(
Figure pct00335
)에 기초한다. 제2 블라인딩 키의 제1 공유는 공동 비밀 공유 방식을 사용하여, 예컨대, 위에서 설명된 JVRSS 기술을 사용하여 계산될 수 있다. 예컨대, 제1 참가자(102a)는 1의 인덱스를 가질 수 있고, 참가자 1에 대해
Figure pct00336
을 사용하여 제2 블라인딩 키의 제1 공유를 생성할 수 있으며, 여기서 제2 블라인딩 키는 β로 표시된다.
MIC는 제1 중간 공유(
Figure pct00337
) 및 적어도 임계수의 참가자(102)로부터 획득된 개개의 중간 공유(
Figure pct00338
)의 함수인 제1 사전 서명 공유(
Figure pct00339
)에 기초하여 생성될 수 있다. 즉, 참가자(102) 각각은 개개의 중간 공유(
Figure pct00340
)를 생성하고 그 중간 공유(
Figure pct00341
)를 다른 참가자(102)에 송신 및/또는 브로드캐스팅할 수 있다. 제1 참가자(102a)는, 예컨대, 중간 공유(
Figure pct00342
)의 보간에 의해 공통 중간 값(λ)을 생성하기 위해 중간 공유(
Figure pct00343
)를 수집할 수 있다. 제1 참가자(102a)(및 선택적으로, 다른 참가자(102))는 각각 상이한 서명 공유(
Figure pct00344
)의 생성에 사용하기 위한 복수의 사전 서명 공유(
Figure pct00345
)를 생성할 수 있다.
제1 중간 공유(
Figure pct00346
)는 새로운 제1 개인 키 공유(
Figure pct00347
) 및 제1 역 공유(
Figure pct00348
)의 함수일 수 있다. 그 경우에, 적어도 임계수의 참가자(102) 각각은 그들 개개의 개인 키 공유(
Figure pct00349
) 및 그들 개개의 역 공유(
Figure pct00350
)의 함수인 개개의 중간 공유(
Figure pct00351
)를 생성하고 공유한다.
대안적으로, 제1 중간 공유(
Figure pct00352
)는 제1 개인 키 공유(
Figure pct00353
) 및 제1 블라인딩 키(
Figure pct00354
)의 제1 공유의 함수일 수 있다. 그 경우에, 적어도 임계수의 참가자(102) 각각은, 제1 블라인딩 키(
Figure pct00355
)의 그들 개개의 공유 및 그들 개개의 개인 키 공유(
Figure pct00356
)의 함수인 개개의 중간 공유(
Figure pct00357
)를 생성하고 공유한다.
일부 실시예에서, 제1 사전 서명 공유(
Figure pct00358
)는 또한 제2 블라인딩 키(
Figure pct00359
)의 제1 공유에 기초하여 생성될 수 있다. 예컨대, 제1 중간 공유(
Figure pct00360
)는 제2 블라인딩 키(
Figure pct00361
)의 제1 공유의 함수일 수 있다. 추가적인 또는 대안적인 실시예에서, 제1 중간 공유(
Figure pct00362
)는 또한 공통 값(r)의 함수일 수 있다.
도 4는 본 발명의 실시예에 따른 메시지에 대한 서명을 생성하기 위한 예시적인 방법(400)을 도시한다. 단계(S401 내지 S408)는 이 예에서 임계수의 참가자(102)(제1 참가자(102a)를 포함함) 각각에 의해 수행된다. 단계(S409)는 조정자(101)에 의해 수행되며, 조정자는 또한 단계(S401 내지 S408)를 수행하는 참가자 중 한 명일 수 있다. 단계들 중 일부가 생략되거나 다른 순서로 수행될 수 있음이 인지될 것이다.
예시적인 방법(400)은
Figure pct00363
명의 한 그룹의 참가자에서 임계값(t+1)의 공유된 비밀의 생성을 가능하게 하고, 여기서 서명 임계값은 또한 (t+1)이다.
설정:
단계(S401)에서, 각각의 참가자(102)는 공유된 개인 키 공유(
Figure pct00364
) 및 대응하는 공개 키를 계산한다. 개인 키 공유(
Figure pct00365
)의 생성이 위에서 설명되었다. 이때에, 각각의 참가자(i)는 비밀 키 공유 및 공개 키
Figure pct00366
를 갖고, 여기서 P는 공유된 개인 키에 대응하는 공개 키에 대한 표기법이다. 공유된 개인 키는 (t+1)의 임계값을 갖는다.
사전 계산:
단계(S402)에서, 각각의 참가자(102)는 공유된 임시 키 공유 및 대응하는 공개 키를 계산한다. 예컨대, 각각의 참가자(102)는 예비 단계에서 주어진 공개 키의 계산 및 JVRSS를 사용하여 공유된 임시 키를 계산할 수 있다. 그런 다음, 각각의 참가자(102)는 임시 개인 키에 기초하여 역 공유를 계산할 수 있다. 이것은 각각의 참가자가 역 공유
Figure pct00367
를 갖게 하고, 임계값은 (t+1)이다.
단계(S403)에서, 각각의 참가자(102)는 2개의 상이한 공유된 블라인딩 키 공유를 생성한다. 예컨대, 각각의 참가자(102)는, 참가자(i)가 공유
Figure pct00368
Figure pct00369
를 갖도록 2개의 공유된 비밀을 생성할 수 있으며, 개개의 공유된 비밀은 임계값(t+1)을 가진다. 일부 예에서, 모든 공유된 비밀이 동일한 임계값을 가질 필요는 없다는 것이 유의된다.
단계(S404)에서, 각각의 참가자(102)는 중간 공유를 계산하고, 그들의 중간 공유를 다른 참가자에게 브로드캐스팅한다. 예컨대, 각각의 참가자(i)는 중간 공유
Figure pct00370
를 계산할 수 있다. 이 값은 (2t+1)의 임계값을 갖는다.
단계(S405)에서, 각각의 참가자(102)는 적어도 중간 공유에 기초하여 중간 값을 계산한다. 예컨대, 각각의 참가자(102)는 (2t+1)개의 공유에 대한 보간을 사용하여 중간 값
Figure pct00371
을 계산할 수 있다.
단계(S406)에서, 각각의 참가자(102)는 사전 서명 공유를 계산한다. 예컨대, 각각의 참가자(i)는 그들의 사전 서명 공유
Figure pct00372
를 계산할 수 있다. 각각의 참가자(102)는
Figure pct00373
, 개인 키 공유 및 대응하는 공개 키
Figure pct00374
를 저장할 수 있다.
각각의 서명에 대해 상이한 임시 키가 사용되기 때문에, 한 번에 다수의 임시 키가 설정될 수 있고, 즉, 사전 계산 동안에 단계(S402 내지 S406)가 반복되어 다수의 임시 키를 생성하고, 나중에 사용하기 위해 저장될 수 있다는 것이 유의된다. 이들은, 어떠한 추가 통신 라운드도 없도록 동시에 실행될 수 있다. 바람직하게는, 각각의 서명에 대해 α 및 β인 상이한 값이 사용되어야 한다는 것이 유의된다.
서명 생성:
메시지(msg)에 서명하기 위해, 적어도 (t+1)명의 참가자는 단계(S407 및 S408)를 수행해야 한다.
단계(S407)에서, 적어도 임계수의 참가자(102)는 서명될 메시지를 획득하고, 메시지 다이제스트(message digest)를 계산한다. 예컨대, 조정자(101)는 메시지(msg)에 대한 서명 공유를 생성하기 위한 요청을 (t+1)명의 참가자에게 전송될 수 있다. 각각의 참가자(i)는 메시지 다이제스트 e=hash(msg)를 계산할 수 있다. 일부 예에서, 이 해시 함수는 이중 SHA-256 해시 함수이다. 대안적인 해시 함수가 사용될 수 있다.
단계(S408)에서, 적어도 임계수의 참가자(102)는 서명 공유를 계산하고 이를 조정자(101)에 전송한다. 예컨대, 각각의 참가자(i)는 그들의 서명 공유(
Figure pct00375
)를 계산하고, 그런 다음, 서명 공유
Figure pct00376
를 조정자에게 전송될 수 있다. 모든 참가자에 의해 값(r)이 전송되지 않을 수 있다는 것이 유의된다.
단계(S409)에서, 조정자(101)는 서명을 계산한다. 예컨대, 조정자(101)는
Figure pct00377
, 및 마지막으로 서명(r,s)을 계산할 수 있다.
서명 공유의 메시지 독립 구성요소를 사전 계산하기 위한 몇 가지 대안이 있다. 이들은 크게 2개의 변형 세트로 분할될 수 있는데: 계산에 r을 포함할 때, 및
Figure pct00378
을 포함할 때이다. 이들은 서로 독립적으로 선택될 수 있고, 그래서 위의 방법(400)에 대한 8개의 변형이 있다.
하나의 수정은 단계(S406) 동안
Figure pct00379
를 저장하는 것이며, 이는 r이 사전 서명 공유에 포함된다는 것을 의미한다. 또 다른 수정 사항은 중간 공유를 계산하는 동안 r과의 곱셈이 더 일찍 올 수 있다는 것이다. 대신에 단계(S404)에서
Figure pct00380
를 정의함으로써, 단계(S406)에서,
Figure pct00381
이고, 서명 공유의 계산은
Figure pct00382
이다.
대신에, 또 다른 수정은
Figure pct00383
Figure pct00384
가 되도록
Figure pct00385
를 계산하는 것이다. 대안적인 점에 r을 포함하는 2개의 변형은 이것과 함께 수행될 수 있다. 각각의 참가자는,
Figure pct00386
가 사전 계산 단계(S402)에서 계산되기 때문에,
Figure pct00387
에 대한 지식을 가지고 있다. 추가적으로, 모든 참가자(102)는 그들의
Figure pct00388
공유를 브로드캐스팅한다. 따라서, 각각의 참가자(102)는 (적어도) 2t+1개의 공유 및 값(
Figure pct00389
)에 대한 지식을 가지고 있다. 그런 다음, 그들은 다음을 계산할 수 있다.
Figure pct00390
.
대신에 또 다른 수정은 중간 값을
Figure pct00391
로 계산하고 사전 서명 공유를
Figure pct00392
로 계산하는 것이다. 마지막으로, 그런 다음, 서명 공유는
Figure pct00393
가 될 것이다. 계산에 r을 포함할 때의 2개의 변형이 또한 이것과 함께 수행될 수 있다. 각각의 참가자(102)는
Figure pct00394
의 계산으로부터
Figure pct00395
에 대한 지식을 갖는다. 그런 다음, 그들은 이를 사용하여
Figure pct00396
을 계산하고, 그런 다음,
Figure pct00397
계산에 이를 포함할 수 있다.
요약하면, 각각의 참가자(102)는 4개의 비밀 공유:
Figure pct00398
를 생성할 수 있다. 예시적인 방법(400)에서 두 개의 곱:
Figure pct00399
및 서명에 사용하기 위한
Figure pct00400
가 계산될 필요가 있고,
Figure pct00401
는 추후에
Figure pct00402
을 계산하는 데 사용되고(이 공유에 대한 보간은
Figure pct00403
'가 삭제될 것이기 때문에
Figure pct00404
을 제공함), 및
Figure pct00405
는 제1 곱을 사용하고, 그래서 공유가 확장되면, 계산 결과는
Figure pct00406
를 제공한다.
Figure pct00407
Figure pct00408
로 구성된
Figure pct00409
공유를 사용하는 임의의 계산은, 먼저
Figure pct00410
자체로만 계산을 수행하고 그런 다음 필요한 경우
Figure pct00411
을 곱함으로써 이루어질 수 있다.
위 방식의 하나의 버전은 메시지 독립 구성요소(MIC) 및 메시지 종속 구성요소(MDC)로 구성된 공유를 사용하여 서명이 계산된다고 요약될 수 있고, 여기서 MIC는 사전 서명 공유(
Figure pct00412
)에 기초할 수 있고, MDC는 메시지(e)에 기초한다.
등가 방식(equivalent scheme)은 위와 같이 MIC를 계산하고, 그런 다음, 예컨대, MDC만으로 구성된 서명 공유를 보간한 후, 서명 공유와 함께 이를 서명에 통합하는 것을 포함한다. 명시적으로, 그 방식은 사전 계산 단계(S406)까지 동일할 수 있으며, 여기서 중간 공유는 r 값을 포함하고,
Figure pct00413
이어서, 보간 후 이것은
Figure pct00414
가 된다.
이러한 스테이지에서, 참가자는
Figure pct00415
에 대한 지식을 갖고, 이를 개인 키 공유 및 대응하는 공개 키
Figure pct00416
와 함께 저장한다.
그런 다음, 메시지 다이제스트 e=hash(m)를 생성하도록 해싱된 주어진 메시지(m)에 대한 그들의 서명 공유를 생성하기 위해 참가자는 다음을 계산하고,
Figure pct00417
,
그리고 이를 조정자에 전송한다. 그런 다음, 조정자는 다음을 계산하며
Figure pct00418
,
Figure pct00419
,
이는 β 항이 삭제되기 때문에, 예상되는 서명 공유가 발생된다.
Figure pct00420
및 r이 계산에 포함될 때, 위에서 설명한 바와 같이, 이 프로토콜의 유사한 변형이 이루어질 수 있다.
메시지 독립 구성요소를 계산하기 위한 다음의 변형이 구현될 수 있다.
i)
Figure pct00421
을 계산하고, 그런 다음, 이제 서명 공유는
Figure pct00422
이고, 서명은
Figure pct00423
와 같이 생성된다.
ii)
Figure pct00424
을 계산하고, 그런 다음, 이제 서명 공유는
Figure pct00425
이고, 서명은
Figure pct00426
) 같이 생성된다.
iii)
Figure pct00427
을 계산하고, 그런 다음, 이제 서명 공유는
Figure pct00428
이고, 서명은
Figure pct00429
)과 같이 생성된다.
iv)
Figure pct00430
을 계산하고, 그런 다음, 이제 서명 공유는
Figure pct00431
이고, 서명은
Figure pct00432
)과 같이 생성된다.
v)
Figure pct00433
을 계산하고, 그런 다음, 이제 서명 공유는
Figure pct00434
이고, 서명은
Figure pct00435
)과 같이 생성된다.
비밀의 임계값이 상이할 수 있다는 것이 유의된다. 즉,
Figure pct00436
자체의 임계값이 서명 생성 방식을 실행하기 위해 반드시 동일할 필요는 없다. 예컨대, 한 그룹의 6이 존재하고, 3이 서명 및/또는 개인 키를 생성하는 데 필요하면, 그들은 기술적으로 k의 임계값이 4이고 다른 공유된 비밀의 임계값이 3인 계산을 수행할 수 있고, 그들은 여전히 임계값 최적의 방식을 가질 것이다.
본 발명은 (최적이든 또는 비최적이든 간에) 임의의 임계값 서명 방식에 적용될 수 있으며, 전술된 특정 방식에 제한되지 않는다는 것이 유의된다.
일반적으로, 본 발명의 실시예는 임의의 메시지에 대한 서명을 생성하는 데 사용될 수 있다. 특정 예시적인 사용 사례로서, 메시지는 블록체인 트랜잭션의 부분 또는 전부일 수 있다. 즉, 블록체인 트랜잭션의 하나 이상의 입력 및/또는 하나 이상의 출력을 서명하기 위해 서명이 사용될 수 있다. 예컨대, 생성된 서명은 블록체인 트랜잭션의 출력을 잠금 해제하기 위해 적어도 부분적으로 사용될 수 있다. 특정 예로서, 이전 트랜잭션의 출력은, 공개 키의 해시에 잠금된 P2PKH(pay-to-public-key-hash) 출력일 수 있다. 잠금 해제하기 위해, P2PKH 출력을 참조하는 나중의 트랜잭션의 입력은 (해싱되지 않은) 공개 키 및 공개 키에 대응하는 개인 키에 기초하여 생성된 서명을 포함해야 한다.
스크립트로 표시되면, "잠금 스크립트" 및 "잠금 해제 스크립트"는 다음과 같은 형태를 취할 수 있다.
잠금 스크립트 = OP_DUP OP_HASH160<Public KeyHash> OP_EQUAL OP_CHECKSIG
잠금 해제 스크립트 =<Signature><Public Key>
위에서 설명된 실시예를 참조하면, <Public Key>는
Figure pct00437
와 동일시될 수 있으며, <Signature>는 임계값 서명(s)을 포함하고, 여기서 이전 트랜잭션은 서명될 메시지이다. 위에서 언급된 바와 같이, ECDSA 서명은 (r,s) 형태라는 것이 유의된다.
본 발명은, 어떤 참가자가 서명 공유를 생성할 수 있는지 및 따라서 어떤 참가자가 자금을 잠금 해제하기 위해, 즉, 블록체인 트랜잭션의 출력을 잠금 해제하기 위해 함께 모여야 하는지를 변경하는 데 사용될 수 있다. 추가적으로 또는 대안적으로, 본 발명은 자금을 잠금 해제하는 데 필요한 참가자 수를 증가시키는 데 사용될 수 있다.
설명된 서명 생성 방법은 임의의 특정 사용 사례에 제한되지 않으며 일반적으로 임의의 메시지에 기초하여 서명을 생성하는 데 사용될 수 있다는 것이 유의된다. 블록체인 트랜잭션의 전부 또는 일부에 서명하는 것은 하나의 예시적인 예일 뿐이다. 설명된 방법은, 예컨대, 법적 문서(예컨대, 유언장, 증서 또는 다른 계약서), 하나 이상의 당사자 간의 서신(correspondence), 디지털 인증서(예컨대, 인증 기관에 의해 발행됨), 의료 처방전, 은행 송금 또는 금융 증서(financial instrument), 모기지 또는 대출 신청 등에 서명 및/또는 이를 인가하는 데 사용될 수 있다.
특정 예로서, 한 그룹의 참가자(말하자면, 총 5명의 참가자)는 회사 이사회를 구성할 수 있다. 회사의 투표 문제는 이사회의 과반수(즉, 적어도 3명의 참가자)가 특정 투표에 동의하는 것을 요구할 수 있다. 이사회는 설명된 서명 생성 방법을 사용하여, 적어도 3명의 이사회 구성원이 특정 결과에 찬성 투표하는 데 동의했음을 증명할 수 있다. 이 예에서, 서명 생성 방식의 임계값은 3이다. 즉, 조정자가 서명을 성공적으로 생성하기 위해 이사회 구성원 중 적어도 3명은 개개의 서명 공유를 제공해야 한다. 서명이 성공적으로 생성되면, 적어도 임계수(3명)의 이사회 구성원이 해당 결과에 찬성 투표하는 데 동의해야 한다. 따라서, 서명의 성공적인 생성은 투표를 기록하는 역할을 하며, 이사회의 과반수가 특정 방식으로 투표했음을 증명한다.
본 발명은 그러한 문제에 대해 누가 투표할 수 있는지를 변경하고 및/또는 투표 결과를 성공적으로 판단하는 데 필요한 투표(즉, 공유)의 수를 증가 또는 감소시키는 데 사용될 수 있다.
본 발명에 대한 또 다른 사용 사례는 디지털 인증서, 예컨대, X.509 표준에 의해 발행된 디지털 인증서 분야에 있다. 디지털 인증서는 일부 데이터에 대해 서명하는 서명을 포함한다. 데이터는 일반적으로 임의의 데이터일 수 있지만, 디지털 인증서에 포함된 데이터의 하나의 특정 예는 공개 키이다. 디지털 인증서의 공개 키는 종종 "인증된 공개 키"로 지칭된다. 디지털 인증서 발행자("인증 기관")는 공개 키의 소유자에 대해 하나 이상의 체크(예컨대, 고객 확인 체크(know-your-customer check))를 수행할 수 있고, 체크가 성공하면, 인증 기관은 인증된 공개 키를 포함하는 디지털 인증서를 발행한다. 사용자는, 예컨대, 인증된 공개 키에 대응하는 개인 키로 메시지에 서명함으로써, 인증된 공개 키를 사용하여 자신이 누구인지 증명할 수 있다.
인증 기관의 하나의 특정 용도는 인터넷 상에서 보안 브라우징을 위해 HTTPS에 사용되는 인증서에 서명하는 것이다. 또 다른 일반적인 용도는 전자 서명 문서에 사용하기 위해 국가 정부가 신분증을 발급하는 것에 있다. 인증 기관은 개인 키를 사용하여 공개 키(또는 증명할 임의의 다른 데이터)에 서명한다. 본 발명은 어떤 참가자가 개인 키의 공유를 갖는지를 변경하는 데 사용될 수 있다. 개인 키의 보안은 또한 개인 키의 임계값을 증가시킴으로써 개선될 수 있다.
본 발명 이면의 원칙은 한 그룹의 참가자가 개개의 블라인딩 공유에 기초하여 공유된 비밀의 새로운 공유를 생성하는 것이다. 블라인딩 공유는 공유된 비밀의 오래된 공유를 갖는 참가자가 오래된 공유의 블라인딩된(즉, 난독화된) 버전을 "중간 공유"의 형태로 "새로운" 그룹의 참가자에게 분배하는 것을 허용한다. 중간 공유는 결합(또는 달리 보간)되어, 한 그룹의 참가자 각각이 공유된 비밀의 그들 개개의 새로운 공유를 획득하기 위해 자신들의 블라인딩 공유를 적용(예컨대, 뺄셈 또는 덧셈)할 수 있는 중간을 형성한다. 본 발명이 주로 ECC 구현과 관련하여 설명되었지만, 본 발명은 다른 구현, 예컨대, RSA에도 동일하게 적용된다.
위의 실시예들은 단지 예로서만 설명되었다는 것이 인지될 것이다. 보다 일반적으로, 다음 스테이트먼트들 중 임의의 하나 이상에 따른 방법, 장치 또는 프로그램이 제공될 수 있다.
스테이트먼트 1. 공유된 비밀의 공유를 생성하는 컴퓨터 구현 방법으로서, 한 그룹의 참가자 각각은 공유된 비밀의 개개의 제1 비밀 공유를 갖고, 방법은 그룹의 제1 참가자에 의해 수행되고, 방법은:
공유된 블라인딩 비밀의 개개의 블라인딩 공유를 생성하는 단계;
제1 그룹의 참가자 각각으로부터 적어도 임계수의 개개의 중간 공유를 획득하는 단계 ― 각각의 개개의 중간 공유는 개개의 블라인딩 공유 및 개개의 제1 비밀 공유에 기초하여 생성됨 ― ;
획득된 중간 공유 각각에 기초하여 중간 값을 생성하는 단계; 및
공유된 비밀의 개개의 제2 비밀 공유를 생성하는 단계를 포함하고, 개개의 제2 비밀 공유는 중간 값 및 개개의 블라인딩 공유에 기초하여 생성된다.
스테이트먼트 2. 스테이트먼트 1의 방법에 있어서, 개개의 중간 공유 중 제1 중간 공유는 제1 참가자에 의해 생성된다.
스테이트먼트 3. 스테이트먼트 1 또는 스테이트먼트 2의 방법에 있어서, 공유된 비밀의 임계값은 공유된 블라인딩의 임계값과 동일하다.
달리 말하면, 제2 비밀 공유의 임계값은 제1 비밀 공유와 동일하다.
스테이트먼트 4. 스테이트먼트 1 또는 스테이트먼트 2의 방법에 있어서, 공유된 비밀의 임계값은 공유된 블라인딩 비밀의 임계값과 비교하여 상이하다.
즉, 제2 비밀 공유의 임계값은 제1 비밀 공유와 비교하여 상이하다.
스테이트먼트 5. 스테이트먼트 4의 방법에 있어서, 공유된 비밀의 임계값은 공유된 블라인딩 비밀의 임계값보다 크다.
스테이트먼트 6. 스테이트먼트 4의 방법에 있어서, 공유된 비밀의 임계값은 공유된 블라인딩 비밀의 임계값보다 작다.
스테이트먼트 7. 스테이트먼트 1 내지 스테이트먼트 6 중 어느 하나의 방법에 있어서, 공유된 블라인딩 비밀의 개개의 블라인딩 공유는 공동 검증 가능한 비밀 공유 방식을 사용하여 생성된다.
스테이트먼트 8. 스테이트먼트 7의 방법에 있어서, 공동 비밀 공유 방식을 사용하여 개개의 블라인딩 공유를 생성하는 것은:
제1 데이터 항목을 생성하는 것 ― 제1 데이터 항목은 제1 다항식임 ― ;
적어도 임계수의 참가자로부터 개개의 데이터 항목을 획득하는 것 ― 각각의 개개의 데이터 항목은 각각의 참가자에 의해 생성된 개개의 다항식임 ― ; 및
제1 데이터 항목 및 개개의 데이터 항목 각각에 기초하여 개개의 블라인딩 공유를 생성하는 것을 포함한다.
스테이트먼트 9. 스테이트먼트 7 또는 스테이트먼트 8의 방법에 있어서, 개개의 데이터 항목을 획득하는 것은 제1 참가자와 임계수의 참가자 각각 사이의 개개의 통신 채널을 통해 개개의 데이터 항목을 획득하는 것을 포함한다.
스테이트먼트 10. 스테이트먼트 7 내지 스테이트먼트 9 중 어느 하나의 방법에 있어서, 제1 다항식의 개개의 인스턴스를 적어도 임계수의 참가자 각각에 전송하는 단계를 포함하고, 제1 다항식의 개개의 인스턴스는 개개의 참가자에 기초한다.
스테이트먼트 11. 스테이트먼트 1 내지 스테이트먼트 7 중 어느 하나의 방법에 있어서, 공유된 블라인딩 비밀의 개개의 블라인딩 공유는 샤미르(Shamir)의 비밀 공유 방식을 사용하여 생성된다.
스테이트먼트 12. 스테이트먼트 1 내지 스테이트먼트 11 중 어느 하나의 방법에 있어서, 공유된 비밀의 개개의 제1 비밀 공유는 공동 검증 가능한 비밀 공유 방식을 사용하여 생성된다.
스테이트먼트 13. 스테이트먼트 1 내지 스테이트먼트 11 중 어느 하나의 방법에 있어서, 공유된 비밀의 개개의 제1 비밀 공유는 샤미르의 비밀 공유 방식을 사용하여 생성된다.
스테이트먼트 14. 스테이트먼트 1 내지 스테이트먼트 13 중 어느 하나의 방법에 있어서, 공유된 비밀은 개인 키이고, 개개의 제2 비밀 공유는 개인 키의 개개의 개인 키 공유이다.
스테이트먼트 15. 스테이트먼트 14의 방법에 있어서, 공유된 블라인딩 비밀은 블라인딩 개인 키이고, 중간 값은 중간 개인 키이고, 방법은:
개인 키에 대응하는 제1 공개 키를 생성하는 단계;
블라인딩 개인 키에 대응하는 제2 공개 키를 생성하는 단계;
중간 개인 키에 대응하는 제3 공개 키를 생성하는 단계;
제1 공개 키 및 제2 공개 키에 기초하여 제1 값을 생성하는 단계; 및
제1 값이 제3 공개 키와 일치하는지에 기초하여, 공유된 비밀의 제2 비밀 공유가 정확하게 생성되었다는 것을 검증하는 단계를 포함한다.
스테이트먼트 16. 스테이트먼트 15의 방법에 있어서,
제2 비밀 공유가 정확하게 생성되지 않았다는 결정에 응답하여, 다른 개개의 참가자 중 한 명, 일부 또는 모두에 대해,
참가자의 개개의 제1 비밀 공유에 대응하는 개개의 제1 공개 키를 획득하는 단계;
참가자의 개개의 블라인딩 공유에 대응하는 개개의 제2 공개 키를 획득하는 단계;
참가자의 개개의 중간 공유에 대응하는 개개의 제3 공개 키를 획득하는 단계;
참가자의 개개의 제1 공개 키 및 제2 공개 키에 기초하여 개개의 제1 값을 생성하는 단계; 및
개개의 제1 값이 개개의 제3 공개 키와 일치하는지에 기초하여, 공유된 비밀의 개개의 제2 비밀 공유가 참가자에 의해 정확하게 생성되었다는 것을 검증하는 단계를 수행하는 단계를 포함한다.
스테이트먼트 17. 스테이트먼트 14 내지 스테이트먼트 16 중 어느 하나의 방법에 있어서,
메시지를 획득하는 단계; 및
메시지 및 개인 키의 개개의 공유에 기초하여 디지털 서명 공유를 생성하는 단계를 포함한다.
스테이트먼트 18. 스테이트먼트 14 내지 스테이트먼트 16 중 어느 하나의 방법에 있어서,
메시지를 획득하는 단계;
제1 메시지-독립 구성요소 및 제1 메시지-종속 구성요소를 생성하는 단계 ― 메시지-독립 구성요소는 개개의 개인 키 공유에 기초하여 생성되고, 메시지-종속 구성요소는 메시지에 기초하여 생성됨 ― ;
제1 메시지 독립 구성요소로 하여금 조정자에게 이용 가능하게 하는 단계; 및
제1 서명 공유로 하여금 적어도 임계수의 서명 공유에 기초하여 서명을 생성하도록 조정자에게 이용 가능하게 하는 단계를 포함하고, 제1 서명 공유는 적어도 메시지-종속 구성요소를 포함한다.
스테이트먼트 19. 컴퓨터 장비로서,
하나 이상의 메모리 유닛을 포함하는 메모리; 및
하나 이상의 프로세싱 유닛을 포함하는 프로세싱 장치를 포함하고, 메모리는 프로세싱 장치 상에서 실행되도록 배열된 코드를 저장하고, 코드는 프로세싱 장치 상에서 실행될 때 스테이트먼트 1 내지 18 중 어느 하나의 방법을 수행하도록 구성된다.
스테이트먼트 20. 컴퓨터 판독 가능 스토리지 상에서 구현된 컴퓨터 프로그램으로서, 컴퓨터 프로그램은, 컴퓨터 장비 상에서 실행될 때, 스테이트먼트 1 내지 스테이트먼트 18 중 어느 하나의 방법을 수행하도록 구성된다.
본원에서 개시된 다른 양상에 따라, 제1 참가자 및 조정자의 액션을 포함하는 방법이 제공될 수 있다.
본원에서 개시된 다른 양상에 따라, 제1 참가자 및 조정자의 컴퓨터 장비를 포함하는 시스템이 제공될 수 있다.
개시된 기술들의 다른 변형들 또는 사용 사례들은 본원에서의 개시가 주어지면 당업자에게 명백해질 수 있다. 본 개시의 범위는 설명된 실시예에 의해 제한되는 것이 아니라 첨부된 청구들에 의해서만 제한된다.

Claims (20)

  1. 공유된 비밀(shared secret)의 공유(share)를 생성하는 컴퓨터 구현 방법으로서,
    한 그룹의 참가자 각각은 상기 공유된 비밀의 개개의 제1 비밀 공유(secret share )를 갖고, 상기 방법은 상기 그룹의 제1 참가자에 의해 수행되고,
    상기 방법은:
    공유된 블라인딩 비밀(shared blinding secret)의 개개의 블라인딩 공유(blinding share)를 생성하는 단계;
    상기 제1 그룹의 참가자 각각으로부터 적어도 임계수의 개개의 중간 공유(intermediary share)를 획득하는 단계 ― 각각의 개개의 중간 공유는 개개의 블라인딩 공유 및 개개의 제1 비밀 공유에 기초하여 생성됨 ― ;
    상기 획득된 중간 공유 각각에 기초하여 중간 값(intermediary value)을 생성하는 단계; 및
    상기 공유된 비밀의 개개의 제2 비밀 공유를 생성하는 단계를 포함하고,
    상기 개개의 제2 비밀 공유는 상기 중간 값 및 상기 개개의 블라인딩 공유에 기초하여 생성되는,
    컴퓨터 구현 방법.
  2. 제1 항에 있어서,
    상기 개개의 중간 공유 중 제1 중간 공유는 상기 제1 참가자에 의해 생성되는,
    컴퓨터 구현 방법.
  3. 제1 항 또는 제2 항에 있어서,
    상기 공유된 비밀의 임계값은 상기 공유된 블라인딩의 임계값과 동일한,
    컴퓨터 구현 방법.
  4. 제1 항 또는 제2 항에 있어서,
    상기 공유된 비밀의 임계값은 상기 공유된 블라인딩 비밀의 임계값과 비교하여 상이한,
    컴퓨터 구현 방법.
  5. 제4 항에 있어서,
    상기 공유된 비밀의 임계값은 상기 공유된 블라인딩 비밀의 임계값보다 큰,
    컴퓨터 구현 방법.
  6. 제4 항에 있어서,
    상기 공유된 비밀의 임계값은 상기 공유된 블라인딩 비밀의 임계값보다 작은,
    컴퓨터 구현 방법.
  7. 제1 항 내지 제6 항 중 어느 한 항에 있어서,
    상기 공유된 블라인딩 비밀의 개개의 블라인딩 공유는 공동 검증 가능한 비밀 공유 방식(joint verifiable secret sharing scheme)을 사용하여 생성되는,
    컴퓨터 구현 방법.
  8. 제7 항에 있어서,
    상기 공동 비밀 공유 방식을 사용하여 상기 개개의 블라인딩 공유를 생성하는 것은:
    제1 데이터 항목(data item)을 생성하는 것 ― 상기 제1 데이터 항목은 제1 다항식(polynomial)임 ― ;
    적어도 임계수의 참가자로부터 개개의 데이터 항목을 획득하는 것 ― 각각의 개개의 데이터 항목은 개개의 참가자에 의해 생성된 개개의 다항식임 ― ; 및
    상기 제1 데이터 항목 및 상기 개개의 데이터 항목 각각에 기초하여 상기 개개의 블라인딩 공유를 생성하는 것을 포함하는,
    컴퓨터 구현 방법.
  9. 제7 항 또는 제8 항에 있어서,
    상기 개개의 데이터 항목을 획득하는 것은 상기 제1 참가자와 상기 임계수의 참가자 각각 사이의 개개의 통신 채널을 통해 상기 개개의 데이터 항목을 획득하는 것을 포함하는,
    컴퓨터 구현 방법.
  10. 제7 항 내지 제9 항 중 어느 한 항에 있어서,
    상기 제1 다항식의 개개의 인스턴스(instance)를 적어도 상기 임계수의 참가자 각각에 전송하는 단계를 포함하고, 상기 제1 다항식의 개개의 인스턴스는 개개의 참가자에 기초하는,
    컴퓨터 구현 방법.
  11. 제1 항 내지 제7 항 중 어느 한 항에 있어서,
    상기 공유된 블라인딩 비밀의 개개의 블라인딩 공유는 샤미르(Shamir)의 비밀 공유 방식을 사용하여 생성되는,
    컴퓨터 구현 방법.
  12. 제1 항 내지 제11 항 중 어느 한 항에 있어서,
    상기 공유된 비밀의 개개의 제1 비밀 공유는 공동 검증 가능한 비밀 공유 방식을 사용하여 생성되는,
    컴퓨터 구현 방법.
  13. 제1 항 내지 제11 항 중 어느 한 항에 있어서,
    상기 공유된 비밀의 개개의 제1 비밀 공유는 샤미르의 비밀 공유 방식을 사용하여 생성되는,
    컴퓨터 구현 방법.
  14. 제1 항 내지 제13 항 중 어느 한 항에 있어서,
    상기 공유된 비밀은 개인 키(private key)이고, 상기 개개의 제2 비밀 공유는 상기 개인 키의 개개의 개인 키 공유인,
    컴퓨터 구현 방법.
  15. 제14 항에 있어서,
    상기 공유된 블라인딩 비밀은 블라인딩 개인 키이고, 상기 중간 값은 중간 개인 키이고,
    상기 방법은:
    상기 개인 키에 대응하는 제1 공개 키(public key)를 생성하는 단계;
    상기 블라인딩 개인 키에 대응하는 제2 공개 키를 생성하는 단계;
    상기 중간 개인 키에 대응하는 제3 공개 키를 생성하는 단계;
    상기 제1 공개 키 및 상기 제2 공개 키에 기초하여 제1 값을 생성하는 단계; 및
    상기 제1 값이 상기 제3 공개 키와 일치하는지에 기초하여, 상기 공유된 비밀의 제2 비밀 공유가 정확하게 생성되었다는 것을 검증하는 단계를 포함하는,
    컴퓨터 구현 방법.
  16. 제15 항에 있어서,
    상기 제2 비밀 공유가 정확하게 생성되지 않았다는 결정에 응답하여, 다른 개개의 참가자 중 한 명, 일부 또는 모두에 대해,
    상기 참가자의 개개의 제1 비밀 공유에 대응하는 개개의 제1 공개 키를 획득하는 단계;
    상기 참가자의 개개의 블라인딩 공유에 대응하는 개개의 제2 공개 키를 획득하는 단계;
    상기 참가자의 개개의 중간 공유에 대응하는 개개의 제3 공개 키를 획득하는 단계;
    상기 참가자의 개개의 제1 공개 키 및 제2 공개 키에 기초하여 개개의 제1 값을 생성하는 단계; 및
    상기 개개의 제1 값이 상기 개개의 제3 공개 키와 일치하는지에 기초하여, 상기 공유된 비밀의 개개의 제2 비밀 공유가 상기 참가자에 의해 정확하게 생성되었다는 것을 검증하는 단계를 수행하는 단계를 포함하는,
    컴퓨터 구현 방법.
  17. 제14 항 내지 제16 항 중 어느 한 항에 있어서,
    메시지를 획득하는 단계; 및
    상기 메시지 및 상기 개인 키의 개개의 공유에 기초하여 디지털 서명 공유(digital signature share)를 생성하는 단계를 포함하는,
    컴퓨터 구현 방법.
  18. 제14 항 내지 제16 항 중 어느 한 항에 있어서,
    메시지를 획득하는 단계;
    제1 메시지-독립 구성요소(message-independent component) 및 제1 메시지-종속 구성요소(message-dependent component)를 생성하는 단계 ― 상기 메시지-독립 구성요소는 상기 개개의 개인 키 공유에 기초하여 생성되고, 상기 메시지-종속 구성요소는 상기 메시지에 기초하여 생성됨 ― ;
    상기 제1 메시지 독립 구성요소로 하여금 조정자에게 이용 가능하게 하는 단계; 및
    상기 제1 서명 공유로 하여금 적어도 상기 임계수의 서명 공유에 기초하여 상기 서명을 생성하도록 상기 조정자에게 이용 가능하게 하는 단계를 포함하고,
    상기 제1 서명 공유는 적어도 상기 메시지-종속 구성요소를 포함하는,
    컴퓨터 구현 방법.
  19. 컴퓨터 장비로서,
    하나 이상의 메모리 유닛을 포함하는 메모리; 및
    하나 이상의 프로세싱 유닛을 포함하는 프로세싱 장치를 포함하고, 상기 메모리는 상기 프로세싱 장치 상에서 실행되도록 배열된 코드를 저장하고, 상기 코드는 프로세싱 장치 상에서 실행될 때 제1 항 내지 제18 항 중 어느 한 항의 방법을 수행하도록 구성되는,
    컴퓨터 장비.
  20. 컴퓨터 판독 가능 저장소 상에서 구현되고, 컴퓨터 장비 상에서 실행될 때, 제1 항 내지 제18 항 중 어느 한 항의 방법을 수행하도록 구성된 컴퓨터 프로그램.
KR1020237001201A 2020-06-15 2021-05-17 비밀 공유의 생성 KR20230024369A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB2009062.7 2020-06-15
GB2009062.7A GB2596072A (en) 2020-06-15 2020-06-15 Generating secret shares
PCT/EP2021/062941 WO2021254702A1 (en) 2020-06-15 2021-05-17 Generating secret shares

Publications (1)

Publication Number Publication Date
KR20230024369A true KR20230024369A (ko) 2023-02-20

Family

ID=71835506

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237001201A KR20230024369A (ko) 2020-06-15 2021-05-17 비밀 공유의 생성

Country Status (7)

Country Link
US (1) US20230246825A1 (ko)
EP (1) EP4136800A1 (ko)
JP (1) JP2023530141A (ko)
KR (1) KR20230024369A (ko)
CN (1) CN115804059A (ko)
GB (1) GB2596072A (ko)
WO (1) WO2021254702A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113254410B (zh) * 2021-05-29 2024-02-02 陕西师范大学 一种可证明安全的可公开验证多级多秘密共享方法及系统
GB2614913A (en) 2022-01-25 2023-07-26 Nchain Licensing Ag Generating shared private keys
CN115694814B (zh) * 2023-01-03 2023-04-28 暨南大学 一种分布式物联网数据安全共享设计方法及系统
CN116401715B (zh) * 2023-06-08 2023-08-22 中国移动紫金(江苏)创新研究院有限公司 基于区块链的医疗数据流通隐私计算方法及系统
CN117318940B (zh) * 2023-11-27 2024-02-23 山东师范大学 基于认证秘密分享的多方协同签名方法及系统
CN117811733A (zh) * 2024-02-29 2024-04-02 浙江毫微米科技有限公司 基于秘密共享算法的任务确认完成方法及相关装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9813244B1 (en) * 2015-12-30 2017-11-07 EMC IP Holding Company LLC Distributed proactive password-based secret sharing
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
JP7012741B2 (ja) * 2017-04-11 2022-01-28 エヌチェーン ホールディングス リミテッド ブロックチェーン上の迅速な分散型総意
US11481761B2 (en) * 2018-06-03 2022-10-25 VVOW Company Limited Peer-to-peer cryptocurrency and crypto asset trading platform

Also Published As

Publication number Publication date
US20230246825A1 (en) 2023-08-03
CN115804059A (zh) 2023-03-14
EP4136800A1 (en) 2023-02-22
JP2023530141A (ja) 2023-07-13
WO2021254702A1 (en) 2021-12-23
GB202009062D0 (en) 2020-07-29
GB2596072A (en) 2021-12-22

Similar Documents

Publication Publication Date Title
KR20230024369A (ko) 비밀 공유의 생성
EP3496331A1 (en) Two-party signature device and method
US20230319103A1 (en) Identifying denial-of-service attacks
EP4144040A1 (en) Generating shared private keys
TW202318833A (zh) 臨界簽章方案
US20230163977A1 (en) Digital signatures
KR20240045231A (ko) 디지털 서명 셰어의 생성
WO2023072502A1 (en) Generating shared keys
WO2023036528A1 (en) Generating shared cryptographic keys
US11870914B2 (en) Digital signatures
KR20240045226A (ko) 디지털 서명들의 생성
KR20240046201A (ko) 디지털 서명들의 생성
EP4331176A1 (en) Nested threshold signatures
WO2023036534A1 (en) Generating shared cryptographic keys

Legal Events

Date Code Title Description
A201 Request for examination