KR20230093432A - 서비스 거부 공격들의 식별 - Google Patents
서비스 거부 공격들의 식별 Download PDFInfo
- Publication number
- KR20230093432A KR20230093432A KR1020237013703A KR20237013703A KR20230093432A KR 20230093432 A KR20230093432 A KR 20230093432A KR 1020237013703 A KR1020237013703 A KR 1020237013703A KR 20237013703 A KR20237013703 A KR 20237013703A KR 20230093432 A KR20230093432 A KR 20230093432A
- Authority
- KR
- South Korea
- Prior art keywords
- share
- signature
- participant
- public key
- computer
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1458—Denial of Service
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/083—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/321—Cryptographic 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 a third party or a trusted authority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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/3252—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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/3255—Cryptographic 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
- Storage Device Security (AREA)
Abstract
임계 서명 체계 동안 서비스 거부 공격을 식별하는 컴퓨터-구현 방법으로서, 각각의 참가자는 제1 및 제2 셰어드 비밀들의 개개의 셰어들을 갖고, 방법은 그룹의 제1 참가자에 의해 수행되며, 제1 타겟 셰어를 계산하는 단계; 제1 타겟 셰어 및 제1 미리 결정된 양의 다른 타겟 셰어들에 기초하여 타겟 값을 계산하는 단계; 타겟 값에 대응하는 타겟 공개 키를 계산하는 단계; 제1 셰어드 비밀의 제1 셰어 및 제2 셰어드 비밀에 대응하는 공개 키에 기초하여 제1 검증 셰어를 계산하는 단계; 적어도 제1 검증 셰어 및 제2 미리 결정된 양의 다른 검증 셰어들에 기초하여 검증 공개 키를 계산하는 단계; 및 검증 공개 키가 타겟 공개 키와 매칭되는지에 기초하여 적어도 하나의 다른 참가자가 서비스 거부 공격을 시도하고 있는지를 결정하는 단계를 포함한다.
Description
본 개시내용은 임계 서명 체계(threshold signature scheme) 동안 서비스 거부 공격(denial-of-service attack)을 식별하는 방법에 관한 것이다.
공개 키 암호법은 개인 키의 소유자만에게만 알려지는 개인 키들 및 대응하는 개인 키에 기초하여 생성되고 개인 키의 보안을 손상시키지 않고 유포될 수 있는 공개 키들인 키들의 쌍들을 사용하는 일 유형의 암호 시스템이다.
공개 키 암호법은 전송자가 수신자의 공개 키(즉, 수신자에게만 알려지는 개인 키에 대응하는 공개 키)를 사용하여 메시지를 암호화하는 것을 가능하게 한다. 그 후, 암호화된 메시지는 수신자의 개인 키만을 사용하여 복호화될 수 있다.
유사하게, 전송자는 메시지에 서명하기 위해 예컨대, 메시지가 전송자에 의해 전송되고 있음을 입증하고 그리고/또는 전송자가 메시지에 동의함을 표시하기 위해 자신의 개인 키를 사용할 수 있다. 서명자(즉, 서명을 생성하는 당사자)는 메시지에 대한 디지털 서명을 생성하기 위해 자신의 개인 키를 사용한다. 서명자의 대응하는 공개 키를 갖는 사람은 누구나 동일한 메시지 및 메시지에 대한 디지털 서명을 사용하여, 서명이 유효하게 생성되었는지를, 즉 서명자의 개인 키를 사용하여 서명이 실제로 이루어졌는지를 검증할 수 있다.
디지털 서명 체계는 통상적으로 3개의 절차들, 즉 알고리즘들을 수반한다. 키 생성 알고리즘은 랜덤 개인 키 및 대응하는 공개 키를 생성하는 데 사용된다. 서명 알고리즘은 메시지 및 개인 키에 기초하여 서명을 생성하는 데 사용된다. 검증 알고리즘은 공개 키 및 메시지가 주어지면, 대응하는 개인 키를 사용하여 그리고 서명 알고리즘에 따라 서명이 생성되었는지를 검증하는 데 사용된다.
임계 서명 체계는 그룹 내 임계 수의 참가자들이 셰어드 개인 키(shared private key)의 개별 셰어(share)들을 사용하여 메시지에 대한 디지털 서명(또는 메시지의 디지털 서명)을 생성하도록 허용한다. 여기서, 디지털 서명은 서명될 메시지에 기초하여 생성되는 서명이다. 이러한 체계에서, 서명은 임계 수의 참가자들이 메시지에 대한 서명을 생성하는데 동의하는 경우에만 생성될 수 있다. 더 적은 수의 참가자를 사용하여 서명을 생성하려는 어떠한 시도도 유효한 서명을 생성하지 않을 것이다. 따라서, 그룹에 의한 유효한 서명(즉, 메시지 및 셰어드 개인 키를 사용하여 생성된 서명)은 임계 수의 사람들이 서명을 생성하는데 동의했음을 입증한다. 이는 또한, 임의의 적대자가 개인 키로 서명을 위조하기 위해 해당 개인 키의 임계 수의 셰어들을 획득할 필요가 있음을 암시한다.
임계 서명 셰어들의 공통 특징은 개인 키 셰어들 중 임의의 것이 손실된 경우, 임계 수의 셰어들이 여전히 이용 가능하다면, 개인 키가 여전히 복구 가능할 수 있다는 것이다.
하나의 특정 디지털 서명 알고리즘은 ECDSA(Elliptic Curve Digital Signature Algorithm)이다. ECDSA 서명에 대해 2개의 일반적인 임계 체계들이 존재한다. 하나의 임계 ECDSA 체계는 그룹이 t+1의 임계치를 갖는 셰어드 개인 키를 집합적으로 소유하지만, 서명을 생성하는 것은 2t+1의 더 높은 임계치를 요구하는 비-최적의 체계이다. 자세한 설명을 위해, Gennaro, R 등의 "Robust threshold DSS signatures", International Conference on the Theory and Applications of Cryptographic Techniques, Springer, Berlin, Heidelberg, 1996을 참조한다. 이 체계는 아래에서 "비-최적의 젠나로 체계(non-optimal Gennaro scheme)"로서 지칭된다.
다른 공통 임계 ECDSA 체계는 최적 체계이며, 여기서 최적이라 함은 서명을 생성하기 위한 임계치가 셰어드 개인 키의 임계치와 동일하다는 것을 의미한다. 상세한 설명을 위해, Gennaro, R 및 Goldfeder, S.의 "Fast multiparty threshold ECDSA with fast trustless setup", Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security, 2018을 참조한다. 이 체계는 아래에서 "최적의 젠나로 체계(optimal Gennaro scheme)"로서 지칭된다.
제3 임계 ECDSA 체계는 Pettit, M에 의해 개발되었고 GB2005953.1에서 설명된다. 그것은 최적의 젠나로 체계와 같이 결정적으로 임계 최적(threshold optimal)이면서, 비-최적의 젠나로 체계의 컴퓨테이셔널, 저장 및 통신 이점들을 갖는다. 이 체계의 세부사항들은 아래에 제공된다.
위에서 언급한 3개의 임계 서명 체계들(및 일반적으로 임계 서명 체계들) 각각은 참가자들의 그룹 중 적어도 일부의 참여에 의존한다. 유효한 서명은 참가자들의 그룹 중 적어도 일부(즉, 임계 수)가 유효한 서명 셰어를 제공하는 경우에만 생성될 수 있다. 하나 이상의 참가자들이 유효하지 않은(즉, 틀리게 계산된) 서명 셰어를 제공하는 경우, 결과적인 서명이 또한 유효하지 않을 것이다. 서명은 셰어드 개인 키에 대응하는 공개 키를 사용하여 검증될 수 없다는 점에서 유효하지 않을 수 있다.
개개의 서명 셰어 계산의 부분으로서, 각각의 참가자는 다른 참가자들에 의해 제공되는 데이터를 사용해야 한다. 따라서 그룹의 악의적인 참가자는, 하나 이상의 참가자들이 개개의 유효한 서명 셰어를 계산하는 것을 방지하기 위해 틀린 데이터를 제공하도록 선택할 수 있다. 특히 악의적인 참가자는 셰어드 비밀(shared secret)들(예컨대, 셰어드 개인 키들)을 올바르게 셋업하고 그 후 서명에 사용된 틀린 값들을 초래할 틀린 데이터를 전송할 수 있다. 이전에, 이는 틀린 서명이 계산된 경우에만 포착될 것이다.
사용 사례에 의존하여, 유효하지 않은 서명은 심각한 해로운 영향들을 미칠 수 있다. 일반적으로, 유효하지 않은 서명은 검증될 수 없고 이에 따라 서명 생성 당사자가 실제로 서명을 생성한 당사자인지 검증할 수 없다. 블록체인의 맥락에서, 일반적으로 블록체인 트랜잭션의 미지출 트랜잭션 출력(UTXO)을 할당(예컨대, 지출)하기 위해 유효한 서명이 요구된다. 따라서 유효한 서명 없이는 UTXO가 할당될 수 없다. 다른 예로서, 특정 수의 참가자들이 액션을 취하도록 요구하는 투표 또는 유사한 이벤트들을 수행하기 위해 유효한 서명이 요구될 수 있다. 따라서 악의적인 당사자는 유효한 서명의 계산을 거부함으로써 투표가 발생하는 것을 방지할 수 있다.
일반적으로, 악의적인 당사자는 유효한 서명이 생성되는 것을 방지함으로써 서비스 거부 공격(denial-of-service attack)을 수행할 수 있다. 따라서 우선, 유효하지 않은 서명의 생성을 위해 이러한 서비스 거부 공격들을 식별할 수 있는 것이 바람직할 것이다.
본원에서 개시된 일 양상에 따르면, 임계 서명 체계 동안 서비스 거부 공격을 식별하는 컴퓨터-구현 방법이 제공되며, 참가자들의 그룹의 각각의 참가자는 제1 셰어드 비밀의 개개의 셰어 및 제2 셰어드 비밀의 개개의 셰어를 갖고, 방법은, 그룹의 제1 참가자에 의해 수행되고, 적어도 제1 셰어드 비밀의 제1 셰어 및 제2 셰어드 비밀의 제1 셰어에 기초하여 제1 타겟 셰어를 계산하는 단계 ― 제1 타겟 셰어는 임계 서명의 제1 서명 셰어를 계산하는 데 사용됨 ― ; 제1 타겟 셰어 및 제1 미리 결정된 양의 다른 타겟 셰어들에 기초하여 타겟 값을 계산하는 단계 ― 각각의 다른 타겟 셰어는 개개의 참가자에 의해 계산됨 ― ; 타겟 값에 대응하는 타겟 공개 키를 계산하는 단계; 제1 셰어드 비밀의 제1 셰어 및 제2 셰어드 비밀에 대응하는 공개 키에 기초하여 제1 검증 셰어를 계산하는 단계; 적어도 제1 검증 셰어 및 제2 미리 결정된 양의 다른 검증 셰어들에 기초하여 검증 공개 키를 계산하는 단계 ― 각각의 다른 검증 셰어는 개개의 참가자에 의해 계산됨 ― ; 및 검증 공개 키가 타겟 공개 키와 매칭되는지에 기초하여 적어도 하나의 다른 참가자가 서비스 거부 공격을 시도하고 있는지를 결정하는 단계를 포함한다.
모든 참가자들이 정직하고 각자의 타겟 셰어들을 올바르게 계산한 경우, 검증 공개 키는 타겟 공개 키와 매칭(즉, 동일)해야 한다. 적어도 하나의 참가자가 부정직하고 틀린 타겟 셰어를 계산한 경우, 검증 공개 키 및 타겟 공개 키는 매칭되지 않을 것이다. 따라서 정직한 참가자(들)는 시도된 서비스 거부 공격을 식별하고 타겟 셰어들을 사용하여 서명 계산을 더 이상 진행하지 않도록 선택할 수 있다. 이는, 유효하지 않은 서명이 계산되지 않을 것임을 의미하며, 이는 예컨대, 위에서 논의된 것들과 같은 부정적인 결과들을 방지한다.
본원에서 개시된 다른 양상에 따르면, 임계 서명 체계 동안 서비스 거부 공격을 식별하는 컴퓨터-구현 방법이 제공되며, 참가자들의 그룹의 각각의 참가자는 셰어드 개인 키의 개개의 셰어, 임시 개인 키의 개개의 셰어, 제1 블라인딩 키의 개개의 셰어 및 제2 블라인딩 키의 개개의 셰어를 가지며, 방법은, 그룹의 제1 참가자가 수행되고, 제1 역 임시 개인 키 셰어에 대응하는 제1 공개 키를 계산하는 단계 ― 제1 공개 키는 i) 임시 개인 키 및 제1 블라인딩 키의 곱의 역, 및 ii) 제1 블라인딩 키의 제1 셰어에 대응하는 공개 키에 기초하여 계산됨 ― ; 사전-서명 셰어에 대응하는 제2 공개 키를 계산하는 단계 ― 제2 공개 키는 i) 중간 값에 대응하는 공개 키 및 ii) 제2 블라인딩 키의 제1 셰어에 대응하는 공개 키에 기초하여 계산되고, 중간 값은 i) 임시 개인 키의 역, ii) 개인 키 및 iii) 제2 블라인딩 키에 기초함 ― ; 및 제1 공개 키 및 제2 공개 키를 조정 당사자에게 전송하는 단계를 포함하고, 조정 당사자는 제1 참가자에 의해 계산된 제1 서명 셰어에 대한 액세스를 갖고, 제1 서명 셰어는, i) 임시 개인 키의 제1 셰어, ii) 메시지, iii) 셰어드 개인 키에 대응하는 공개 키, 및 iv) 제2 블라인딩 키의 제1 셰어에 기초하여 계산된다.
본원에서 개시된 다른 양상에 따르면, 서비스 거부 공격을 식별하는 컴퓨터-구현 방법이 제공되며, 참가자들의 그룹의 각각의 참가자는 개인 키의 개개의 셰어, 임시 개인 키의 개개의 셰어, 제1 블라인딩 키의 개개의 셰어 및 제2 블라인딩 키의 개개의 셰어를 가지며, 방법은, 임계 수의 서명 셰어들에 기초하여 서명을 생성하도록 구성된 조정 당사자에 의해 수행되며, 제1 참가자로부터 제1 공개 키를 수신하는 단계; 제1 참가자로부터 제2 공개 키를 수신하는 단계; 제1 참가자로부터 제1 서명 셰어를 수신하는 단계; i) 제1 공개 키, ii) 메시지, iii) 셰어드 임시 개인 키에 대응하는 공개 키 및 iv) 제2 공개 키에 기초하여 제1 후보 서명 셰어에 대응하는 공개 키를 계산하는 단계; 및 제1 서명 셰어에 대응하는 공개 키가 제1 후보 서명 셰어에 대응하는 공개 키와 매칭되는지에 기초하여 제1 참가자가 서비스 거부 공격을 시도하고 있는지를 결정하는 단계를 포함한다.
본원에서 개시된 다른 양상에 따르면, 서비스 거부 공격을 식별하는 컴퓨터-구현 방법이 제공되며, 참가자들의 그룹의 각각의 참가자는 개인 키의 개개의 셰어, 임시 개인 키의 개개의 셰어, 제1 블라인딩 키의 개개의 셰어 및 제2 블라인딩 키의 개개의 셰어를 가지며, 방법은, 임계 수의 서명 셰어들에 기초하여 서명을 생성하도록 구성된 조정 당사자에 의해 수행되며, 제1 참가자의 제1 역 임시 개인 키 셰어에 대응하는 제1 공개 키를 계산하는 단계; 제1 참가자의 사전-서명 셰어에 대응하는 제2 공개 키를 계산하는 단계; 제1 참가자로부터 제1 서명 셰어를 수신하는 단계; i) 제1 공개 키, ii) 메시지, iii) 셰어드 임시 개인 키에 대응하는 공개 키, 및 iv) 제2 공개 키에 기초하여 후보 제1 서명 셰어에 대응하는 공개 키를 계산하는 단계; 및 제1 서명 셰어에 대응하는 공개 키가 후보 제1 서명 셰어에 대응하는 공개 키와 매칭되는지에 기초하여 제1 참가자가 서비스 거부 공격을 시도하고 있는지를 결정하는 단계를 포함한다.
본 개시내용의 실시예들의 이해를 보조하기 위해 그리고 그러한 실시예들이 어떻게 실행될 수 있는지를 보여주기 위하여, 단지 예로서 첨부 도면들에 대한 참조가 이루어진다.
도 1은 본 발명의의 실시예들에 따라 메시지의 서명을 생성하기 위한 예시적인 시스템을 개략적으로 예시한다.
도 2는 본 발명의 실시예들에 따라 메시지의 서명 셰어를 생성하기 위한 예시적인 방법을 개략적으로 예시한다.
도 3은 예시적인 블록체인 트랜잭션 프로토콜을 개략적으로 예시한다.
도 1은 본 발명의의 실시예들에 따라 메시지의 서명을 생성하기 위한 예시적인 시스템을 개략적으로 예시한다.
도 2는 본 발명의 실시예들에 따라 메시지의 서명 셰어를 생성하기 위한 예시적인 방법을 개략적으로 예시한다.
도 3은 예시적인 블록체인 트랜잭션 프로토콜을 개략적으로 예시한다.
암호화 준비들
타원 곡선 그룹들
타원 곡선 E는 다음 방정식을 만족한다:
여기서 및 a,b는 을 만족하는 상수들이다. 이 타원 곡선 위의 그룹은 항등 요소인 무한대 에 있는 포인트와 함께 이 방정식을 만족하는 요소들의 세트(x,y)인 것으로 정의된다. 이 그룹 내 요소들에 대한 그룹 연산은 타원 곡선 포인트 덧셈(elliptic curve point addition)이라 칭해지고 +로 표시된다. 이 그룹은 에 의해 표시되고 그의 차수는 n에 의해 표시된다.
이 그룹 연산은 에 의해 표시되는 포인트 곱셈이라 칭해지는 요소들에 대한 다른 연산을 정의하는 데 사용될 수 있다. 포인트 및 스칼라 에 대해, 포인트 는 포인트 G 그 자체가 k번 더해진 것으로 정의된다.
타원 곡선 암호법에서, 개인 키는 스칼라 으로 정의되며 여기서 은 세트 에 대한 표기법이고, 대응하는 공개 키는 타원 곡선 상의 포인트 이다. 예컨대, 일부 블록체인 프로토콜들에서, 타원 곡선은 secp256k1 타원 곡선으로 선택되고 값들 a, b 및 p은 이 곡선에 의해 완전히 지정된다. 이 그룹의 차수 n은 이러한 값들을 고려하여 계산되었으며, 이는 이 곡선의 경우 소수이고, secp256k1 표준은 또한 이 그룹의 생성기로서 사용될 포인트 G를 지정한다.
타원 곡선 디지털 서명 알고리즘
개인 키 a를 사용하여 메시지 msg에 대한 서명을 생성하기 위해, 다음 단계들이 취해진다:
1. 임의의 해시 함수일 수 있는 메시지 다이제스트 를 계산한다. 예컨대, 일부 예들에서 이며, 여기서 은 SHA-256 해시 함수이다. 대신, 메시지는 한 번만 해시되거나 동일하거나 상이한 해시 함수들로 두 번을 초과하여 해시될 수 있다는 것에 주의한다.
7. 메시지 msg에 대한 서명은 (r,s)이다.
임시 키는 비밀로 유지되어야 하고, 그렇지 않으면 메시지 및 서명이 주어지면, 개인 키가 계산될 수 있다. 부가적으로, 서명이 생성될 때마다, 상이한 임시 키가 사용되어야 한다. 그렇지 않은 경우, 두 개의 상이한 서명들 및 그의 대응하는 메시지들이 주어지면, 개인 키를 도출하는 것이 가능하다.
임계 서명 체계들에서, 이 개인 키 a는 임계 체계 그룹 내 참가자들 간에 분배되는 키 셰어들로 분할된다.
공동 검증 가능한 랜덤 비밀
셰어링
N명의 참가자들이 해당 체계에서 참가자들 중 적어도 (t+1)명만에 의해 재생성될 수 있는 공동 비밀을 생성하기를 원한다고 가정한다. 셰어드 비밀을 생성하기 위해, 다음 단계들이 취해진다:
1. 참가자들은 각각의 참가자에 대한 고유 라벨 i에 동의한다. 각각의 참가자 i는 (t+1)개의 난수들을 생성한다.
i=1,…,N에 대해, 지금부터, 모듈로(modulo) n 표기법을 생략하고 정수들에 대한 모든 산술 연산들은 모듈로 n으로 행해지는 것으로 가정된다는 것에 주의한다.
3. 각각의 참가자 i는 다음과 같이 셰어드 비밀 다항식의 자신의 개인 비밀 셰어를 계산한다:
셰어드 비밀 셰어는 형식 를 갖는 포인트이며, 여기서 i는 해당 체계에서의 참가자 라벨이다. a의 비밀 셰어를 생성하기 위한 이 방법은 단계 1-3에서 설명한 바와 같이, 본원에서 참가자 i에 대해 에 의해 표시된다. "JVRSS"는 통상적으로 "Joint verification random secret sharing"을 나타내며 단계들 4 및 5를 또한 포함한다는 것에 주의한다. 그러나 이 문서 전반에 걸쳐, JVRSS는 적어도 단계들 1 내지 3을 수행하는 것을 의미하는 것으로 받아들여지며, 여기서 단계들 4 및 5는 선택적 단계들이다.
이제 참가자들은 셰어드 다항식을 생성했으므로, 참가자들은 다른 참가자들이 모든 참가자들에게 올바른 정보를 공유했는지, 그리고 모든 참가자들이 동일한 셰어드 다항식을 가지고 있는지 각각 검증할 수 있다. 이는 다음의 방식으로 행해진다.
4. 각각의 참가자 i는 다음의 난독화된 계수들을 모든 참가자들에게 브로드캐스팅한다:
모든 참가자들은, 이 방정식이 각각의 다항식에 대해 홀딩되는 것을 발견하는 경우, 그룹은 이들이 모두 동일한 셰어드 다항식을 생성했다는 것을 집합적으로 확인할 수 있다.
셰어드
비밀의 재구성
참가자가 0차의 셰어드 다항식인 셰어드 비밀 a를 재구성하기를 원한다고 가정한다. 다음 형태의 이 다항식에 (t+1)개의 포인트들이 주어지면,
셰어드 비밀 a를 찾기 위해, 다음이 계산된다:
이는 "라그랑주 보간(Lagrange Interpolation)"으로서 알려진 일반 공식으로부터 도출된다.
공개 키
계산
이는 셰어드 비밀 a에 대응한다.
셰어드
비밀들의 덧셈
어떠한 엔티티도 개별 비밀들을 알지 못하는 채로, 각각의 비밀 다항식이 차수 t를 갖는 N명의 참가자들의 그룹 간에 공유되는 2개의 셰어드 비밀들의 덧셈을 계산하기 위해, 다음 단계들이 취해진다:
3. 각각의 참가자 i는 다음과 같이 자신의 덧셈 셰어를 계산한다.
5. 각각의 참가자는 다음을 계산하기 위해 적어도 (t+1)개의 셰어 νi에 대해 보간한다:
셰어드
비밀들의 곱
각각의 비밀 다항식이 차수 t를 갖는 N명의 참가자들의 그룹 간에 공유되는 2개의 셰어드 비밀들의 곱을 계산하기 위해, 그룹은 다음 단계들을 취한다:
1. 제1 셰어드 비밀 a를 생성하며, 여기서 참가자 i의 셰어는 (i=1,…,N)에 의해 주어진다. 셰어드 비밀 다항식은 차수 t를 가지며, 이는 재생성하기 위해서는 (t+1)명의 참가자들이 요구됨을 의미한다.
셰어드
비밀의 역
셰어드 비밀 a의 역(inverse)을 계산하기 위해 다음 단계들이 취해진다:
2. 각각의 참가자는 μ의 모듈러 역(modular inverse)을 계산하며, 이는 다음을 초래한다:
3. 각각의 참가자 i는 다음을 계산함으로써 자신의 역 비밀 셰어를 계산한다:
셰어드
개인 키 생성 및 검증
명의 참가자들 ― 서명을 생성하는 데 t+1명이 요구됨 ― 사이의 셰어드 개인 키 a를 계산하기 위해, 참가자들은 위에서 설명된 바와 같이 t+1의 임계치 및 공개 키 계산을 갖는 JVRSS를 실행한다. 결과는, 모든 각각의 참가자 이 개인 키 셰어 ai 및 대응하는 셰어드 공개 키 를 갖는다는 것이다.
임시 키
셰어들
생성
서명에서 요구되는 바와 같은 임시 키 셰어들 및 대응하는 r을 생성하기 위해, 임계치 (t+1)의 셰어드 개인 키 a를 갖는 크기 N의 그룹이 다음 단계들을 실행한다:
2. 각각의 참가자는 ki의 검증에서 공유된 난독화된 계수들을 사용하여, 다음을 계산하고:
그 후, 이들은 다음을 계산한다:
서비스 거부 공격들의 식별
본 발명의 실시예들은 임계 서명들의 맥락에서 서비스 거부 공격들이 식별되는 것을 가능하게 한다. 도 1은 임계 서명을 생성하기 위한 예시적인 시스템(100)을 예시한다. 하나의 예시적인 서명 체계에 대한 완전한 설명은 아래 "임계 최적 서명들" 제목 하에 제공된다. 본 발명의 실시예들은 도 1을 참조하여 설명될 것이지만, 실시예들은 다른 서명 체계들, 예컨대, 위에서 언급된 젠나로 체계들에도 동일하게 적용된다는 것이 인지될 것이다.
일반적으로, 그룹의 각각의 참가자(102)는 서명의 각각의 셰어를 생성하는 데 사용되는 셰어드 개인 키의 개개의 셰어를 갖는다. 또한, 각각의 참가자는 하나 이상의 추가 셰어드 비밀들에 대한 개개의 셰어들을 갖는다. 예컨대, 각각의 참가자(102)는 임시 개인 키의 개개의 셰어 및 블라인딩 개인 키의 개개의 셰어를 갖는다. 블라인드 개인 키는 상이한 개인 키를 난독화하는 데 사용된다. 일부 예들에서, 각각의 참가자(102)는 또한 제2 블라인딩 개인 키의 개개의 셰어를 가질 수 있다.
임계 서명 체계의 일부로서, 각각의 참가자(102)는 일반적으로 추가 계산을 위해 그룹 내 다른 참가자들과 데이터를 공유하고 이 다른 참가자들로부터 데이터를 획득하도록 요구된다. 본 발명의 실시예들은 획득된 데이터가 올바르게 계산되었는지, 그리고 이에 따라 서명 셰어를 계산하는 데 획득된 데이터가 사용될 수 있는지를 결정하는 데 사용될 수 있다.
개개의 서명 셰어의 계산의 부분으로서 요구되는 셰어드 데이터는 "타겟 셰어"로서 지칭될 것이다. 즉, 서명 셰어를 생성하는 각각의 참가자(102)는 각각의 다른 참가자로부터의 타겟 셰어를 요구한다.
본 발명의 실시예들은 하나 이상의 참가자들이 여러 유형들의 틀린 타겟 셰어들의 틀린 버전, 즉 올바르게 계산되지 않고 이에 따라 틀린 서명 셰어 및 유효하지 않은 서명을 초래할 타겟 셰어를 제공했는지를 결정하는 데 사용될 수 있다.
일 유형의 타겟 셰어는 곱셈 셰어로서 지칭된다. 곱셈 셰어는 2개의 비밀 셰어들의 곱 즉, 하나의 셰어드 비밀의 개개의 셰어 및 다른 셰어드 비밀의 개개의 셰어의 곱이다. 예컨대, 셰어드 비밀들 중 하나는 임시 개인 키일 수 있고 다른 하나는 임시 개인 키를 블라인딩(난독화)하는 데 사용되는 블라인딩 키일 수 있다.
다른 유형의 타겟 셰어는 중간 셰어로서 지칭된다. 중간 셰어는 비밀 셰어 및 2개의 비밀 셰어들의 곱의 합 즉, i) 하나의 셰어드 비밀의 개개의 셰어 및 ii) 2개의 상이한 셰어드 비밀들의 개개의 셰어들의 곱의 합이다. 예컨대, 3개의 셰어드 비밀들은 임시 개인 키, 개인 키 및 블라인딩 키일 수 있다. 중간 셰어는 역 임시 개인 키 셰어에 기초하여 계산될 수 있다는 것에 주의한다. 중간 셰어를 계산하는 데 사용되는 블라인딩 키는 곱셈 셰어를 계산하는 데 사용되는 것과 비교하여 상이한 블라인딩 키일 수 있지만, 이것이 필수는 아니라는 것에 또한 주의한다.
실시예들은 제1 참가자(102a)의 관점에서 설명될 것이지만, 참가자들(102) 중 임의의 참가자에 의해 동일한 방법들이 수행될 수 있다는 것이 인지될 것이다. 제1 참가자(102a)는 제1 셰어드 비밀의 제1 셰어 및 제2 셰어드 비밀의 제1 셰어를 갖는다. 제1 참가자(102a)는 또한 제1 셰어드 비밀에 대응하는 공개 키 및 제2 셰어드 비밀에 대응하는 공개 키를 갖는다. 제1 참가자(102a)는 또한 제3 셰어드 비밀의 제1 셰어 및 제3 셰어드 비밀에 대응하는 공개 키를 가질 수 있다. "제1"은 구별 라벨로서만 사용되며 반드시 시퀀스에서 첫 번째를 의미하지는 않는다는 것에 주의한다.
각각의 다른 참가자는 또한 제1 및 제2 셰어드 비밀들, 및 선택적으로 제3 셰어드 비밀의 개개의 셰어들을 갖는다. 각각의 다른 참가자는 또한 셰어드 비밀들에 대응하는 공개 키들을 갖는다.
일부 예들에서, 셰어드 비밀들의 일부 또는 전부는 위에서 설명된 바와 같이 JVRSS를 사용하여 계산될 수 있다. 다른 비밀 셰어링 체계들이 대신 사용될 수 있다. 셰어드 비밀들에 대응하는 공개 키들은 JVRSS 동안 공유된 난독화된 계수들을 사용하여, 즉 준비들에서 설명된 JVRSS 방법의 단계 4 동안 공유된 난독화된 계수들을 사용하여 계산될 수 있다. 일반적으로, 난독화된 계수들 은 그 자신의 셰어를 검증하기 위해 JVRSS 동안 통신된다. 이제, 본 발명의 목적들을 위해, 각각의 참가자는 각각의 다른 참가자의 개개의 셰어를 검증한다. JVRSS의 단계들은 수정되지 않는다는 것에 주의한다. 오히려, 다른 참가자 셰어들의 검증은 JVRSS에 추가된다.
제1 참가자(102a)는 제1 타겟 셰어를 생성한다. 제1 타겟 셰어는 제1 셰어드 비밀의 제1 셰어 및 제2 셰어드 비밀의 제1 셰어에 기초하여 생성될 수 있다(즉, 이들의 함수임). 타겟 셰어는 또한 제3 셰어드 비밀의 제1 셰어의 함수일 수 있다. 각각의 다른 참가자는 자신의 개개의 셰어들을 사용하여 동일한 방식으로 개개의 타겟 셰어를 생성한다.
제1 참가자(102a)는 제1 타겟 값을 생성한다. 제1 타겟 값은 단지 정수 값이라는 것에 주의한다. 제1 타겟 값은 제1 타겟 셰어 및 다른 참가자들에 의해 생성된 타겟 셰어들의 세트에 기초하여 생성된다(즉, 이들의 함수임). 타겟 셰어들의 세트는 미리 결정된 수의 타겟 셰어들로 구성된다. 미리 결정된 수는 셰어드 비밀들의 차수(degree), 즉 셰어드 비밀 다항식들의 차수에 기초한다. 즉, 제1 타겟 값이 올바르게 생성되기 위해 미리 결정된 최소한의 개개의 타겟 셰어들을 요구한다. 제1 타겟 값은 제1 타겟 셰어 및 타겟 셰어들의 세트에 대해 보간함으로써 생성될 수 있다.
각각의 참가자(102)는 개개의 인덱스 예컨대, 1, 2, 3 등을 가질 수 있다. 제1 참가자(102a)는 제1 타겟 셰어 및 제1 참가자(102a)의 인덱스를 뒤따르는 인덱스들을 갖는 참가자들로부터의 개개의 타겟 셰어들을 사용하여 제1 타겟 값을 생성할 수 있다. 즉, 제1 참가자(102a)가 인덱스 1을 갖는 경우, 제1 참가자(102a)는 요구되는 수의 타겟 셰어들에 도달할 때까지 인덱스들 2, 3 등을 가진 참가자들로부터의 타겟 셰어들을 사용할 수 있다.
각각의 다른 참가자는 자신의 개개의 타겟 셰어 및 미리 결정된 수의 타겟 셰어들에 기초하여 개개의 타겟 값을 생성한다. 그룹의 크기에 의존하여, 하나 이상의 참가자들은 타겟 셰어들의 상이한 세트에 기초하여 자신의 개개의 타겟 값을 생성할 수 있다.
제1 참가자(102a)는 개개의 참가자들로부터 직접 다른 타겟 셰어들을 획득할 수 있다. 또는, 다른 참가자들은 자신의 셰어들을 브로드캐스팅할 수 있다. 또는, 하나 이상의 참가자들은 타겟 셰어들을 수집하고 이들을 제1 참가자(102a)에게 포워딩할 수 있다. 유사하게, 제1 참가자(102a)는 다른 참가자들에게 제1 타겟 셰어를 브로드캐스팅하거나, 제1 타겟 셰어를 참가자들의 개별 참가자들에게 직접 송신할 수 있다. 일반적으로, 참가자들 간의 임의의 통신은 보안 통신 채널을 통해 이루어질 수 있다.
제1 참가자(102a)는 타겟 공개 키를 생성한다. 타겟 공개 키는 제1 타겟 값 및 생성기 포인트에 기초하여 생성된다(즉, 이들의 함수임). 각각의 다른 참가자는 또한 자신의 개개의 타겟 값 및 생성기 포인트에 기초하여 타겟 공개 키를 생성한다.
제1 참가자(102a)는 제1 검증 셰어를 생성한다. 제1 검증 셰어는 제1 셰어드 비밀의 제1 셰어 및 제2 셰어드 비밀에 대응하는 공개 키에 기초하여 생성될 수 있다(즉 이들의 함수임). 각각의 다른 참가자는 자신의 개개의 셰어를 사용하여 동일한 방식으로 개개의 검증 셰어를 생성한다.
제1 참가자(102a)는 검증 공개 키를 생성한다. 검증 공개 키는 제1 검증 셰어 및 개개의 참가자들에 의해 생성된 검증 셰어들의 세트에 기초하여 생성된다(즉, 이들의 함수임). 검증 셰어들의 세트는 미리 결정된 수의 검증 셰어들로 구성된다. 미리 결정된 수는 셰어드 비밀들의 차수, 즉 셰어드 비밀 다항식들의 차수에 기초한다. 즉, 제1 검증 키가 올바르게 생성되기 위해 미리 결정된 최소한의 개개의 검증 셰어들을 요구한다. 검증 키는 제1 검증 셰어 및 검증 셰어들의 세트에 대해 보간함으로써 생성될 수 있다. 일부 예들에서, 보간은 타원 곡선 보간일 수 있는데 즉, 합은 타원 곡선 포인트 덧셈이다.
제1 참가자(102a)는 타겟 값이 생성되는 방법과 유사하게, 제1 검증 셰어 및 제1 참가자(102a)의 인덱스를 뒤따르는 인덱스들을 가진 참가자들로부터의 개개의 검증 셰어들을 이용하여 검증 공개 키를 생성할 수 있다.
각각의 다른 참가자는 자신의 개개의 검증 셰어 및 미리 결정된 수의 검증 셰어들에 기초하여 개개의 검증 키를 생성한다. 그룹의 크기에 의존하여, 하나 이상의 참가자들은 검증 셰어들의 상이한 세트에 기초하여 자신의 개개의 검증 키를 생성할 수 있다.
제1 참가자(102a)는 개개의 참가자들로부터 직접 다른 검증 셰어들을 획득할 수 있다. 또는, 다른 참가자들은 자신의 셰어들을 브로드캐스팅할 수 있다. 또는, 하나 이상의 참가자들은 검증 셰어들을 수집하고 이를 제1 참가자(102a)에게 포워딩할 수 있다. 유사하게, 제1 참가자(102a)는 다른 참가자들에게 제1 검증 셰어를 브로드캐스팅하거나, 제1 검증 셰어를 참가자들의 개별 참가자들에게 직접 송신할 수 있다.
그 후 제1 참가자(102a)는 타겟 공개 키 및 검증 공개 키를 비교한다. 2개의 공개 키들이 동일하지 않은 경우, 제1 참가자(102a)는 타겟 셰어들 중 적어도 하나가 틀리게 계산되었음을 확신할 수 있다. 일부 경우들에서, 제1 참가자(102a)는 모든 다른 참가자들로부터, 해당 참가자들이 계산한 타겟 공개 키 및 검증 공개 키가 동일하다는 확인을 획득한다. 그 경우에, 제1 참가자(102a)는 타겟 셰어들이 올바르게 계산되었음을 확신할 수 있다.
따라서, 타겟 값은 제1 서명을 계산하는 데 사용될 수 있으며, 이는 그 후 조정자(101)로 전송된다. 한편, 타겟 공개 키가 검증 공개 키와 동일하지 않은 경우, 제1 참가자(102a)는 타겟 셰어들 중 적어도 하나가 틀리게 계산되었음을 알게 된다. 그 후, 제1 참가자(102a)는 추가 계산들에서 타겟 값을 사용하지 않을 것이고, 따라서 유효하지 않은 서명이 계산되는 것을 방지할 것이다.
마찬가지로 다른 참가자들이 또한 동일한 비교를 수행한다.
그룹은 의 크기를 가질 수 있다. 셰어드 비밀들 및 임계 서명의 임계치는 t+1일 수 있으며, 여기서 t는 셰어드 비밀 다항식의 차수이다. 이 예에서, 제1 미리 결정된 양(즉, 제1 타겟 값을 생성하는 데 요구되는 다른 타겟 셰어들의 수)은 2t이고 제2 미리 결정된 양(즉, 검증 공개 키를 생성하는 데 요구되는 다른 검증 셰어들의 수)은 t이다.
그룹이 의 크기를 갖는 경우, 제1 참가자(102a)는 틀린 타겟 셰어를 제공한 해당 참가자들을 식별할 수 있다. 이를 행하기 위해, 제1 참가자(102a)는 복수의 검증 공개 키들을 생성한다. 복수의 검증 공개 키들 각각은 제1 검증 셰어 및 다른 참가자들로부터의 검증 셰어들의 상이한 세트를 생성하는 데 사용된다(여전히 요구된 수의 검증 셰어들을 가짐). 그 후, 제1 참가자(102a)는 복수의 검증 공개 키들을 비교한다. 검증 공개 키들의 다수와 매칭되지 않는 임의의 검증 공개 키는 부정직한(즉, 악의적인) 참가자에 의해 제공된 검증 셰어를 사용하여 계산되었다. 따라서 제1 참가자(102a)는 참가자 중 누가 부정직하고 따라서 틀린 타겟 셰어를 제공했을 것인지를 추론할 수 있다.
위에서 언급된 바와 같이, 제1 셰어드 비밀은 제1 블라인딩 키일 수 있고 제2 셰어드 비밀은 임시 개인 키일 수 있다. 타겟 값은 곱셈 키, 예컨대, 제1 블라인딩 키 및 임시 개인 키(또는 그의 역)의 곱일 수 있다.
다른 예에서, 제1 셰어드 비밀은 임시 개인 키(또는 그의 역)일 수 있고, 제2 셰어드 비밀은 셰어드 개인 키일 수 있고, 제3 셰어드 비밀은 제2 블라인딩 키일 수 있다. 타겟 값은 중간 키일 수 있다.
참가자(102)가 서명 셰어를 계산하는 데 추후 사용되는 타겟 셰어 또는 타겟 값과 대조적으로, 올바른 서명 셰어를 제공했는지를 식별하는 것이 또한 가능하다. 즉, 참가자(102)는 서명 셰어를 계산하고 서명 셰어가 올바르게 계산되었는지를 검증하기 위해 조정자에 의해 사용될 수 있는 데이터를 제공할 수 있다. 위에서 주어진 예들과 유사하게, 이 방법은 제1 참가자(102a)의 관점에서 설명될 것이지만, 임의의 참가자가 동일한 방법을 수행할 수 있다는 것이 인지될 것이다.
제1 참가자(102a)는 셰어드 개인 키, 셰어드 임시 키, 제1 셰어드 블라인딩 키 및 제2 셰어드 블라인딩 키 각각의 개개의 셰어를 갖는다. 셰어드 키들의 셰어들은 본원의 다른 곳에서 설명된 바와 같이 JVRSS를 사용하여 계산될 수 있다. 대안적인 비밀 셰어링 체계들이 대신 사용될 수 있다.
서명 셰어는 셰어드 임시 키의 개개의 셰어(또는 그의 역), 메시지, 셰어드 블라인딩 키의 개개의 셰어, 셰어드 개인 키 및 셰어드 임시 개인 키에 대응하는 공개 키에 기초할 수 있다. 서명 셰어가 전체 키(키의 셰어와 대조적임)에 기초할 수 있지만, 참가자가 반드시 전체 키 예컨대, 셰어드 개인 키에 대한 액세스를 갖는 것을 의미하지는 않는다는 것에 주의한다.
일반적으로 서명 셰어는 적어도 2개의 항(term)들의 합으로서 계산될 수 있다. 각각의 항은 공개적으로 알려질 수 있는(또는 적어도 다른 참가자들 및/또는 조정자에게 알려지는) 데이터 예컨대, 메시지에 기초하여 계산된다. 각각의 항은 또한, 주어진 참가자에게 비공개로 유지되어야 하는 데이터 예컨대, 셰어드 키의 개개의 셰어에 기초하여 계산된다.
제1 참가자(102a)는 서명 셰어의 각각의 항에 대한 공개 키를 조정자(101)에게 제공한다. 공개 키는 공개적으로 알려지지 않은 각각의 항의 데이터에 대응한다. 이러한 공개 키들을 계산하기 위해 공유되는 정보는 JVRSS 동안 공유될 수 있다는 것에 주의한다. 즉, 정보는 각각의 참가자에 의해 별개로 재차 공유될 필요는 없지만, 공유되는 것이 배제되지 않는다.
제1 참가자(102a)는 제1 역 임시 개인 키 셰어에 대응하는 제1 공개 키를 계산한다. 즉, 공개 키는 임시 개인 키의 제1 셰어의 역에 대응한다. 제1 공개 키는 제1 블라인딩 키로 난독화된 임시 개인 키의 역, 또는 환언하면, 제1 블라인딩 키로 곱해진 임시 개인 키의 역에 기초하여 계산된다(즉, 그의 함수임). 제1 공개 키는 또한 제1 블라인딩 키의 제1 셰어에 대응하는 공개 키에 기초한다. 제1 참가자(102a)는 제1 공개 키를 조정자(101)에 전송한다.
제1 블라인딩 키로 곱해진 임시 개인 키의 역은 각각의 참가자에 의해 제공된 개개의 곱셈 셰어에 기초하여 계산될 수 있다. 곱셈 셰어들은 위에서 논의되었다. 요약하면, 각각의 참가자는 제1 임시 개인 키 셰어 및 제1 블라인딩 키 셰어에 기초하여 곱셈 셰어를 계산할 수 있는데, 예컨대, 제1 참가자(102a)는 제1 곱셈 셰어를 계산한다. 그 후, 제1 참가자(102a)는 제1 곱셈 셰어 및 다른 참가자들로부터의 개개의 곱셈 셰어에 기초하여 곱셈 키를 계산할 수 있다. 그 후, 제1 참가자(102a)는 곱셈 키의 역을 계산할 수 있다. 그 후, 제1 공개 키는 곱셈 키의 역에 대응하는 공개 키에 기초한다.
제1 참가자(102a)는 또한 제2 공개 키를 계산한다. 제2 공개 키는 사전-서명 셰어에 대응한다. 제2 공개 키는 제3 공개 키 및 제4 공개 키에 기초한다(즉 이들의 함수임). 제3 공개 키는 중간 값에 대응하는 공개 키이다. 임시 개인 키의 역, 셰어드 개인 키 및 제2 블라인딩 키에 기초하여 중간 값이 계산된다. 제4 공개 키는 제2 블라인딩 키의 제1 셰어에 대응하는 공개 키이다. 제1 참가자(102a)는 제2 공개 키를 조정자(101)에 전송한다.
중간 값을 계산하는 하나의 방식이 위에서 논의되었다. 요약하면, 중간 값은 제1 참가자(102a)에 의해 계산된 제1 중간 셰어 및 다른 참가자들에 의해 계산된 개개의 중간 셰어들에 기초하여 계산될 수 있다. 제1 참가자(102a)는 제1 임시 개인 키 셰어의 역, 제1 개인 키 셰어 및 제2 블라인딩 키의 제1 셰어에 기초하여 제1 중간 셰어를 계산할 수 있다.
조정자는 이미 제1 참가자(102a)에 의해 계산된 서명 셰어에 대한 액세스를 가질 수 있다. 대안적으로, 제1 참가자(102a)는 제1 서명 셰어를 제공하는 것과 동시에 또는 그 전에 조정자에게 제1 및 제2 공개 키들을 제공할 수 있다.
제1 서명 셰어는 임시 개인 키의 제1 셰어, 메시지, 셰어드 임시 개인 키에 대응하는 공개 키 및 제2 블라인딩 키의 제1 셰어에 기초하여 계산된다. 조정자(101)는 메시지 및 셰어드 임시 개인 키에 대응하는 공개 키에 대한 액세스를 갖는다. 그 후, 조정자(101)는 후보 제1 서명 셰어에 대응하는 공개 키를 계산하기 위해 메시지 및 셰어드 임시 개인 키에 대응하는 공개 키와 함께, 참가자로부터 획득한 제1 공개 키 및 제2 공개 키를 사용할 수 있다. 즉 난독화된 후보 제1 서명 셰어(이 시점에, 공개 키가 동일한 제1 서명 셰어에 대응하는지를 조정자(101)가 모른다는 의미에서 후보). 조정자(101)는 또한 제1 서명 셰어, 즉 제1 참가자(102a)에 의해 제공된 서명 셰어에 대응하는 공개 키를 계산한다. 후보 제1 서명 셰어에 대응하는 공개 키가 제1 서명 셰어에 대응하는 공개 키와 매칭되는 경우, 조정자는 제1 참가자(102a)가 올바른 서명 셰어를 계산했음을 확신할 수 있다. 그 후, 조정자(101)는 제1 서명 및 개개의 참가자들로부터의 하나 이상의 부가적인 서명 셰어들에 기초하여 서명을 계산하기 위해 제1 서명 셰어를 사용할 수 있다. 후보 제1 서명 셰어에 대응하는 공개 키가 제1 서명 셰어에 대응하는 공개 키와 매칭되지 않는 경우, 조정자(101)는 제1 참가자(102a)가 올바른 서명 셰어를 계산하지 않았고 이에 따라 서비스 거부 공격을 시도중일 수 있음을 알게 된다.
일부 예들에서, 조정자는 서명을 생성하기 전에 이 검증 체크를 수행할 수 있다. 즉, 조정자가 참가자들의 서명 셰어들에 기초하여 완전한 서명을 생성하기 전에, 조정자는 각각의 참가자가 각자의 서명 셰어들을 올바르게 계산했다는 것을 검증할 수 있다. 다른 예들에서, 조정자는 서명을 생성한 후에 이 검증 체크를 수행할 수 있다. 즉, 조정자가 완전한 서명을 생성한 후, 조정자는 서명이 유효한 서명임을 검증할 수 있다. 서명이 유효하지 않은 경우, 조정자는 검증 체크를 사용하여 어떤 참가자(들)가 틀린 서명 셰어를 제공했는지를 식별할 수 있다.
일부 예들에서, 제1 참가자(102a)가 제1 및 제2 공개 키들을 계산하고 이를 조정자에게 전송하기 보다는, 조정자가 대신 제1 및 제2 공개 키들을 계산할 수 있다는 것에 주의한다. 이는 제1 참가자(102a)가 제1 및 제2 공개 키들의 틀린 값들을 전송하는 것을 방지한다. 조정자(101)는 그 후, 계산된 제1 공개 및 제2 공개 키들을 이용하여 후보 서명 셰어에 대응하는 공개 키를 계산할 수 있다. 이 예에서, 조정자(101)는 참가자들 중 하나이고 제1 공개 키 및 제2 공개 키를 계산하기 위해 개개의 참가자들에 의해 개개의 서명 셰어들을 생성하는 동안 공유된 정보를 사용한다. 예컨대, 조정자는 JVRSS의 단계 4 동안 공유된 난독화된 계수들을 사용하여 다음을 계산할 수 있고:
본 발명의 일부 실시예들의 추가 예시적인 예들이 이제 제공된다.
위에서 언급된(그리고 아래에서 보다 상세히 설명되는) 최적 및 비-최적 임계 서명 체계들에서, 서명 셰어들의 계산 이전에 2개의 중간 계산들이 존재한다. 현재, 참가자들이 올바른 값들을 공유하도록 보장하기 위해 취해지는 단계들이 없고, 이에 따라 적대자는 올바른 서명이 계산되는 것을 방지할 수 있는 틀린 값들을 제공할 수 있다. 다음은 셰어들과 관련된 계산들이 올바르게 행해졌음을 입증하기 위한 방법들을 설명한다.
계산들을 검증할 각각의 참가자는 각각의 셰어드 비밀에 대한 다른 참가자의 비밀 셰어들에 대응하는 난독화된 셰어들을 계산할 필요가 있다. 즉, 모든 참가자들은 각각의 참가자 i에 대해, JVRSS에서 공유되는 난독화된 계수들을 사용하여 다음 중 일부 또는 전부를 계산한다:
이들은 셰어들과 관련된 계산들의 검증 단계들 중 일부에서 사용될 것이다.
틀린 곱셈
셰어들의
포착
셰어드 비밀들의 곱셈이 올바르다는 것을 검증하는 것이 가능하다. 이것이 검증되지 않는 경우, 역 임시 키의 계산이 틀린 것으로 판명될 수 있다. 먼저 이 시점에서 각각의 참가자 i는 2개의 셰어들 ai 및 bi 및 대응하는 공개 키들 aG, bG에 대한 지식을 가지고 있다는 것에 주의한다. 2개의 셰어드 비밀들의 곱셈이 올바르다는 것을 검증하기 위해, 참가자들은 다음 단계들을 취한다:
2. 각각의 참가자 i는 이러한 값들을 브로드캐스팅한다.
3. 참가자 i는 를 계산하며, 여기서 은 이다. 즉, 각각의 참가자는 자신의 셰어 및 다음 2t개의 셰어들로 결과 μ를 계산한다. 그들이 그룹 내 참가자들의 목록의 끝에 도달하고 아직 2t+1개의 셰어들을 갖지 않는 경우, 그들은 목록의 제1 셰어로 리턴하고 거기서 계속한다.
4. 각각의 참가자는 이 결과 μ를 사용하여 μG를 계산한다.
5. 각각의 참가자는 또한 를 계산하며, 여기서 이 경우에 는 i+t이다. 즉, 각각의 참가자는 자신의 셰어 및 다음 t개의 셰어들을 사용하여 결과를 계산한다. ECinterpolate는 합이 일반적인 산술 덧셈 대신 타원 곡선 포인트 덧셈이라는 점을 제외하면 보간과 동일하다는 것에 주의한다.
6. 마지막으로, 각각의 참가자는 abG 및 μG를 비교한다. 이들이 동일한 경우, 이들은 μ가 ab와 등가이고 이것은 계산들에 사용될 수 있다는 것을 알게 된다.
우리는 이제, 체계가 이 검증 방법을 사용하는 경우 성공적으로 속이는 것(cheat)이 불가능한 이유를 보여준다.
참가자 k가 속이고자 하는 경우, 그들은 자신의 셰어들 의 곱이 아닌 셰어를 전송할 것이다. 이들이 틀린 셰어를 전송하는 경우, 참가자 k는 일반성의 손실 없이 로서 우리가 기록한 셰어를 전송할 것이다. 이 틀린 셰어를 포함하는 셰어들 에 대해 보간하는 경우, 다음이 계산되었을 것이다:
이제 적대자는 이러한 방정식들 및 를 만족하는 및 에 대한 값들을 찾을 수 있다. 그러나 다음 참가자 i=2를 고려한다. 그의 계산에서, 적대자는 다음을 초래하는 값들 및 값들을 추가할 필요가 있을 것이다:
및
더 이상 δ1 또는 δ2중 어느 하나에 대한 단일 솔루션이 없다. 모든 참가자들이 자신의 셰어들을 브로드캐스팅하므로, 적대자는 2개의 상이한 틀린 셰어들을 전송할 수 없다. 그들은 포착될 것이다.
그룹 크기가 2t+1보다 클 때 적대자들이 누구인지를 식별하는 것이 가능할 수 있다. 적대자들의 수가 t인 최악의 시나리오를 가정하면, abG의 올바른 값을 생성하는 적어도 2개의 서브세트들 가 있을 것이다. 동일한 값을 생성하는 2개의 세트들을 찾음으로써, 이는 일 세트의 정직한 참가자들을 식별한다. 그 동일한 값을 생성하는 임의의 다른 서브세트는 정직한 참가자들의 세트들이다. 적대자들은 abG의 올바른 값을 초래하는 세트의 일부를 형성하지 않는 나머지 당사자들이다.
즉, 위 방법의 단계 3은 2t+1개의 셰어들을 사용하여 수행된다. 그룹 크기가 2t+1인 경우, abG를 계산하기 위해 단 하나의 값만이 존재한다. 그러나 그룹 크기가 2t+1보다 큰 경우, 각각의 참가자는 abG를 계산하기 위해 하나 초과의 값을 가질 것이다. 따라서 참가자들은 값들을 비교하고 어떤 것이 동일한지를 알 수 있다. 임의의 틀린 셰어들을 드러내는 중요 특징(subtlety)은 단계 5의 보간으로 인한 것이다. 이 단계는 단 t+1개의 셰어들에 대한 것이므로, 이는 임의의 틀린 셰어들이 존재하는지를 드러낼 것인데 ― 보간되는 2t+1개의 상이한 세트들이 존재할 것이다. 그리고 위에서 동기 부여된 바와 같이, 틀린 셰어가 존재하는지를 보여주기 위해 2개의 상이한 세트들을 보간하기만 하면 된다.
그룹 크기가 2t+1이고 적대자들의 수가 t인 경우, 적대자들을 확정적으로 결정하는 것이 가능하지 않다는 것에 주의한다. 이는 올바른 값이 값들의 하나의 서브세트로부터만 나타나지만, 이 서브세트가 결정될 수 없기 때문이다.
틀린 중간
셰어들의
포착
임계-최적 체계의 경우, 서명 이전에 셰어들로 계산되는 다른 값이 있다. 이는 중간 셰어 라고 한다. 이 시점에, 각각의 참가자 i는 3개의 셰어들 , , 및 및 대응하는 공개 키들 aG, bG, cG에 대한 지식을 갖고 있다. 다음 단계들이 취해진다:
2. 각각의 참가자 i는 이러한 값들을 브로드캐스팅한다.
3. 참가자 i는 를 계산하며, 여기서 는 이다. 즉, 각각의 참가자는 자신의 셰어 및 다음 2t개의 셰어들로 결과 λ를 계산한다. 그들이 그룹 내 참가자들의 목록의 끝에 도달하고 아직 2t+1개의 셰어들을 갖지 않는 경우, 그들은 목록의 제1 셰어로 리턴하고 거기서 계속한다.
4. 각각의 참가자는 이 결과 λ를 사용하여 λG를 계산한다.
5. 또한, 각각의 참가자는 를 계산하며, 여기서 는 i+t이고, 이 경우 i'는 i+t이다. 즉, 각각의 참가자는 자신의 셰어 및 다음 t개의 셰어들을 사용하여 결과를 계산한다. ECinterpolate는 합이 일반적인 산술 덧셈 대신 타원 곡선 포인트 덧셈이라는 점을 제외하면 보간과 동일하다는 것에 주의한다.
적대자가 성공하지 못하는 이유에 대한 주장은 이전 섹션과 동일하다.
틀린 서명
셰어들의
포착
JVRSS에서 획득된 정보로 서명이 검증에 실패하는 경우 틀린 서명 셰어를 찾는 것이 가능하다. 이는 비-최적 체계 및 최적 체계 둘 모두에 대해 행해질 수 있다.
비-최적 임계 서명 체계에 대해, 다음이 행해진다. 참가자 i의 비-최적 서명 셰어(여기서 임)가 주어지면, 공개 키로서 난독화된 값 , 및 메시지 e의 해시를 사용한 일반 ECDSA 서명 검증을 사용하여 이것이 올바른 서명이라는 것이 검증될 수 있다. 검증이 홀딩되지 않는 경우, 조정자는 이것이 참가자 i로부터의 틀린 셰어라는 것을 알게 된다.
표준 서명 검증은 전체 표현에 걸쳐 공통되는 임시 키를 검증하지만, 이 경우에, 이것이 행해질 수 없다. 대신, 검증 참가자들은 먼저 다음을 계산해야 한다:
이 체크가 홀딩되는 경우, 조정자(101)는 참가자 i가 올바른 셰어를 전송했음을 확신할 수 있다. 위의 이러한 부가적인 검증을 통해, 틀린 셰어들을 전송함으로써 서비스 거부 공격을 시도하는 임의의 적대자들이 포착될 것이다.
임계 최적 서명들
다음은 GB2005953.1에 처음으로 상세히 설명된 임계 최적 ECDSA 체계의 설명을 제공한다. 본 발명의 실시예들은 이 체계에 따라 서명 셰어를 계산할 때 서비스 거부 공격들을 식별하는 데 사용될 수 있다.
도 1은 임계 최적 서명 체계, 예컨대, 임계 최적 ECDSA 체계를 구현하기 위한 예시적인 시스템(100)을 예시한다. 도시된 바와 같이, 시스템(100)은 조정자(101) 및 참가자들의 그룹(102)을 포함하는 복수의 당사자들을 포함한다. 단 3명의 참가자들(102)만이 도 3에 도시되지만, 일반적으로 시스템은 임의의 수의 참가자들을 포함할 수 있다는 것이 인지될 것이다. 또한, 도 1에서, 조정자(101)는 참가자들(102)과 구별되는 것으로 도시되지만, 일부 실시예들에서, 조정자(101)는 또한 참가자들(102) 중 하나, 예컨대, 제1 참가자(102a)일 수 있다. 조정자(101) 및 참가자들(102) 각각은 개개의 컴퓨팅 장비를 동작시킨다.
시스템(100)의 개개의 당사자들(즉, 조정자(101) 및 참가자들(102))의 개개의 컴퓨팅 장비 각각은 하나 이상의 프로세서들, 예컨대, 하나 이상의 CPU(central processing unit)들, 가속기 프로세서(GPU)들, 애플리케이션 특정 프로세서 및/또는 FPGA(field programmable gate array)들을 포함하는 개개의 프로세싱 장치를 포함한다. 개개의 컴퓨팅 장비는 또한 메모리, 즉 비-일시적 컴퓨터-판독 가능 매체 또는 매체들의 형태의 컴퓨터-판독 가능 저장소를 포함할 수 있다. 메모리는 하나 이상의 메모리 매체들, 예컨대, 하드 디스크와 같은 자기 매체; 솔리드 스테이트 드라이브(SSD), 플래시 메모리 또는 EEPROM과 같은 전자 매체; 및/또는 광학 디스크 드라이브와 같은 광학 매체를 사용하는 하나 이상의 메모리 유닛들을 포함할 수 있다. 개개의 컴퓨팅 장비는 적어도 하나 사용자 단말, 예컨대, 데스크 톱 또는 랩톱 컴퓨터, 태블릿, 스마트폰, 또는 스마트워치와 같은 웨어러블 디바이스를 포함할 수 있다. 대안적으로 또는 부가적으로, 개개의 컴퓨팅 장비는 사용자 단말을 통해 액세스되는 클라우드 컴퓨팅 자원들(클라우드 컴퓨팅 자원은 하나 이상의 사이트들에서 구현되는 하나 이상의 물리적 서버 디바이스들의 자원들을 포함함)과 같은 하나 이상의 다른 네트워킹된 자원들을 포함할 수 있다. 시스템(100)의 당사자에 의해 수행되는 것으로 설명된 임의의 액트(act)는 해당 당사자에 의해 동작되는 개개의 컴퓨팅 장치에 의해 수행될 수 있다는 것이 인지될 것이다.
조정자(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)는 임계 수 보다 하나 더 적은 서명 셰어들만을 수신할 필요가 있다.
서명 셰어들을 획득하기 위해, 조정자(101)는 메시지 상에서 서명 셰어들에 대한 요청을 송신할 수 있다. 예컨대, 조정자(101)는 참가자들의 그룹(102) 중 하나, 일부 또는 모두에게 서명 셰어들에 대한 요청을 송신할 수 있다.
적어도 임계 수의 서명 셰어들을 획득하면, 조정자(101)는 획득된 셰어들을 이용하여 서명을 생성한다. 그 후, 조정자(101)는 하나 이상의 다른 엔티티들에 서명을 브로드캐스팅하거나 송신할 수 있다. 부가적으로 또는 대안적으로, 조정자는 서명을 저장하고 그리고/또는 예컨대, 이메일 또는 다른 문서에 디지털 레코드의 일부로서 서명을 레코딩할 수 있다.
서명 셰어 si를 생성하기 위한 방법이 이제 설명될 것이다. 방법은 제1 참가자(102a)의 관점에서 설명되지만, 서명 셰어를 생성하는 각각의 다른 참가자(102)는 해당 다른 참가자(102) 특유의 특정 데이터를 사용하더라도 등가의 방법을 사용하여 서명 셰어를 생성한다는 것이 인지될 것이다.
각각의 참가자(102)는 다음 데이터 아이템들: 개개의 개인 키 셰어 ai(즉, 동일한 개인 키의 셰어), 개개의 임시 개인 키 셰어 ki 및 공통 임시 공개 키 k·G에 기초하여 생성된 공통 셰어드 값 r에 대한 액세스를 갖는다. 공통 임시 공개 키는 임시 개인 키에 대응하는데, 즉 임시 개인 키에 기초하여 생성된다. 여기서 값 또는 키는 각각의 참가자가 해당 동일 값 또는 키에 대한 액세스를 갖는다는 의미에서 공통적일 수 있다. 지정하지 않는 한, 제1 키에 기초하여 제2 키를 생성하는 것은 제1 키 자체가 알려져 있다는 것을 반드시 암시하는 것은 아니라는 것에 주의한다. 이러한 데이터 아이템들이 생성될 수 있는 방법의 예들이 아래에 제공된다.
제1 참가자(102a)는 서명될 메시지를 획득하거나, 그에 대한 액세스를 이미 갖는다. 메시지는 그의 원시 형태(예컨대, 평문)이거나 암호화되거나 다른 방식으로 인코딩(예컨대, 암호문)될 수 있다. 제1 참가자(102a)는 조정자로부터 그리고/또는 다른 참가자(102)로부터 메시지를 (어떤 형태로든) 획득할 수 있다. 대안적으로, 제1 참가자(102a)는 서명될 메시지를 생성할 수 있다.
제1 참가자(102a)는 제1 서명 셰어 s1을 생성한다. 이 맥락에서, "제1"은 특정 참가자 및 특정 서명 셰어를, 다른 참가자들 및 서명 셰어들로부터 각각 구별하기 위한 임의적 라벨로서만 사용되며, 제1 참가자(102a)가 반드시 서명 셰어 si를 생성하는 제1 참가자이거나 제1 서명 셰어 s1이 서명 셰어 si의 순서화된 목록에서 첫 번째임을 암시하진 않는다는 것에 주의한다.
일부 실시예들에서, 제1 서명 셰어 s1은 제1 MIC(message-independent component) 및 제1 MDC(message-dependent component)에 기초하여 생성될 수 있는데, 즉 이들의 함수이며, 여기서 "제1"은 재차 라벨로서만 사용된다. MIC는 메시지와 독립적으로 생성된다. 즉, MIC는 서명될 메시지의 함수가 아니고(즉, MIC는 메시지에 기초하여 생성되지 않음), MIC를 생성하는 데 메시지에 대한 지식이 요구되지 않는다. 반대로, MDC는 서명될 메시지의 함수이며, MDC를 생성하는 데 메시지에 대한 지식이 요구된다.
다른 실시예들에서, 제1 서명은 제1 MIC(message-independent component)의 함수가 아닐 수 있다. 이들 실시예들에서, 제1 메시지 독립적 컴포넌트가 생성되어 조정자(101)에 대해 이용 가능하게 되고, 예컨대, 조정자(101)로 전송되거나 하나 이상의 참가자들(102)에 브로드캐스팅된다. 제1 MIC(Message Independent Component)는 제1 서명 셰어에 앞서 그리고 그와 별개로 조정자와 공유될 수 있다.
조정자(101)는 적어도 임계 수의 참가자들로부터 개개의 MIC(message-independent component)를 획득하고, 개개의 서명 셰어들(이는 개개의 MDC(respective message-dependent component) 및 개개의 MIC(respective message-independent component)의 함수임)에 기초하여 서명을 생성할 수 있다. 더 많은 세부사항들이 아래에 제공된다.
MIC는 메시지에 대한 지식을 요구하지 않으므로, MIC가 사전 계산될 수 있다. 즉, 메시지를 획득하기 전에 MIC가 생성될 수 있다. 따라서 복수의 상이한 MIC들이 사전 계산될 수 있으며, 각각은 상이한 메시지들에 서명하기 위해 상이한 개개의 서명 셰어들 을 생성하는 데 사용되며, 여기서 프라임(')은 그것이 제1 서명 셰어의 상이한 인스턴스임을 표시한다.
제1 서명 셰어 s1을 생성한 후, 제1 참가자(102a)는 메시지에 대한 서명 s를 생성하기 위해 제1 서명 셰어 s1를 조정자(101)에 대해 이용 가능하게 한다. 제1 참가자(102a)가 조정자(101)인 경우, 제1 서명 셰어 s1를 조정자(101)에 대해 이용 가능하게 하는 것은 단순히 서명 s를 생성하기 위한 함수에 제1 서명 셰어 s1을 출력하는 것을 의미할 수 있다. 그렇지 않으면, 제1 참가자(102a)는 제1 서명 셰어 s1을 조정자(101)에, 또는 조정자(101)로 포워딩하기 위한 하나 이상의 다른 참가자들(102)에 송신할 수 있거나, 또는 제1 서명 셰어 s1을 브로드캐스팅하거나, 이들 옵션들의 조합을 사용할 수 있다.
위에서 언급된 바와 같이, 제1 서명 셰어 s1은 제1 MIC 및 제1 MDC에 기초하여 생성될 수 있다. 제1 서명 셰어가 제1 MIC의 함수인지에 관계없이, 제1 MIC는 제1 개인 키 셰어 a1(즉, 제1 참가자(102a)에게 알려진 개인 키 a의 셰어)에 기초하여 생성된다(즉, 그의 함수임). 제1 MIC는 또한 제1 임시 개인 키 셰어 k1(즉, 제1 참가자(102a)에게 알려진 임시 개인 키 k의 셰어) 및 임시 개인 키 k에 대응하는 임시 공개 키 k·G에 기초하여 생성된 셰어드 값 r에 기초할 수 있다. 제1 MDC는 (원시 또는 암호화된 형태의) 메시지에 기초하여 생성되고(즉, 그의 함수임), 또한 제1 임시 개인 키 셰어 k1에 기초하여 생성될 수 있다. MIC 및 MDC의 변동들이 아래에 제공된다.
바람직하게는, 제1 개인 키 셰어 a1은 공동 비밀 셰어링 체계를 사용하여 예컨대, 위에서 설명된 JVRSS 기술을 사용하여 계산될 수 있다. 예컨대, 제1 참가자(102a)는 1의 인덱스를 가질 수 있고, 참가자 1에 대해 을 사용하여 제1 개인 키 셰어를 생성할 수 있으며, 여기서 개인 키는 a에 의해 표시된다. 각각의 참가자는 개개의 개인 키 셰어 ai를 생성할 수 있다. 예컨대, 제2 참가자(102b)는 참가자 2에 대해 를 사용하여 제2 개인 키 셰어를 생성할 수 있는 식이다.
공동 비밀 셰어 체계를 사용하여 제1 개인 키 셰어 a1을 생성하는 것은 일 세트의 숫자들 을 생성하는 것 그리고 그 후 제1 다항식 을 생성하는 것을 포함할 수 있으며, 여기서 일 세트의 숫자들은 다항식의 계수들이다. 다른 참가자들(102) 각각은 개개의 세트의 숫자들을 사용하여 개개의 다항식을 생성한다. 예컨대, 제2 참가자(102b)는 제2 다항식 을 생성한다. 참가자(102)는 그 후 해당 다른 참가자의 인덱스에서 평가된 각자의 함수의 값을 각각의 다른 참가자에게 송신한다. 예컨대, 제1 참가자(102a)는 제2 참가자(102b)에 대해 f1(2)를 평가하고 그 후 해당 값을 제2 참가자(102b)에게 송신하고, 제3 참가자(102c)에 대해 f1(3)을 평가하고 그 후 해당 값을 제3 참가자(102c)에게 송신하는 식이다. 제1 참가자(102a)는 제1 참가자의 인덱스의 함수로서 다른 참가자들(102)에 의해 생성된 개개의 값들을 획득한다. 값들은 인터넷을 통해 또는 다른 수단을 통해 송신될 수 있다. 값들은 참가자들의 개개의 쌍들 사이에서 개개의 보안 통신 채널들을 통해 송신될 수 있다. 직접 송신하는 대신에, 하나 이상의 참가자들(102)(예컨대, 제1 참가자(102a))는 각자의 값들을 브로드캐스팅할 수 있다. 적어도 임계 수의 참가자들로부터 적어도 임계 수의 값들을 획득하면, 제1 참가자(102a)는 제1 값 및 각각의 다른 획득된 데이터 값, 예컨대, f2(1), f3(1) 등에 기초하여 제1 개인 키 셰어를 생성한다.
제1 참가자는 일 세트의 난독화된 계수들에 기초하여 대응하는 공개 키 a·G를 계산할 수 있으며, 여기서 계수들은 각각의 참가자(102)의 개개의 개인 키 셰어들 ai를 생성하는 데 사용된다. 즉, 임시 개인 키 셰어 ki를 생성할 때, 각각의 참가자(102)는 난독화된 계수들 를 각각의 다른 참가자(102)와 공유할 수 있다. 계수들은 선택된 타원 곡선의 공통 생성기 포인트 G에 의해 난독화된다. 이러한 난독화된 계수들은 참가자들(102) 사이에서 직접 송신되거나 그룹에 브로드캐스팅될 수 있다. 예컨대, 제1 참가자(102a)는 난독화된 계수들 등을 브로드캐스팅할 수 있다. 그 후, 개인 키에 대응하는 공개 키는 다음과 같이 계산될 수 있다:
개인 키 셰어들 ai는 대안적인 방법을 사용하여, 즉 위에서 설명된 JVRSS 방법을 사용하지 않고 생성될 수 있다는 것에 주의한다. 각각의 참가자는 개개의 서명 셰어 si를 생성하기 위해 개인 키 a의 셰어를 요구하지만, 개인 키 셰어를 생성하기 위한 특정 방법은 특정 시나리오 예컨대, 참여자들 중 일부 또는 모두가 신뢰될 수 있는지 아니면 참가자들 중 어느 누구도 신뢰될 수 없는지, 또는 키 셰어들을 분배하기 위해 신뢰할 수 있는 딜러(dearer)가 이용 가능한지 등에 맞게 선택될 수 있다. 개인 키의 셰어들을 생성하기 위한 방법들은 그 자체로 당업계에 알려져 있다. 유사하게, 개인 키(또는 다른 그러한 데이터)의 셰어들을 분배하기 위한 방법은 그 자체로 당업계에 알려져 있다. 그런 까닭에, 개인 키 셰어 ai는 다수의 방식들로 생성될 수 있다. 예컨대, 딜러(예컨대, 조정자)는 예컨대, 샤미르(Shamir)의 비밀 셰어 체계를 사용하여 개인 키 셰어들 ai 중 하나, 일부 또는 전부를 생성 및 분배하는 데 사용될 수 있다. 개인 키 셰어들 ai를 생성 및 분배하는 데 사용될 수 있는 하나의 그러한 방식이 WO2017145010A1에서 설명된다.
마찬가지로, JVRSS에 대한 대안은 아래에 설명된 개인 키 셰어들 예컨대, 임시 개인 키 셰어 ki, 제1 블라인드 값 키 셰어 αi 및/또는 제2 블라인드 값 키 셰어 βi의 일부 또는 전부를 생성할 때 사용될 수 있다.
제1 임시 개인 키 셰어 k1은 공동 비밀 셰어링 체계를 사용하여 예컨대, 위에서 설명된 JVRSS 기술을 사용하여 계산될 수 있다. 예컨대, 제1 참가자(102a)는 1의 인덱스를 가질 수 있고, 참가자 1에 대해 을 사용하여 제1 임시 개인 키 셰어를 생성할 수 있으며, 여기서 임시 개인 키는 k에 의해 표시된다. 각각의 참가자(102)는 개개의 임시 개인 키 셰어 ki를 생성할 수 있다. 예컨대, 제2 참가자(102b)는 참가자 2에 대해 를 사용하여 제2 임시 개인 키 셰어를 생성할 수 있는 식이다.
공동 비밀 셰어링 방식을 사용하여 제1 임시 개인 키 셰어 k1를 생성하는 것은 임시 개인 키 셰어 k1을 생성하는 데 사용되는 난수들이 개인 키 셰어 a1을 생성하는 데 사용된 난수들과 비교하여 상이한 숫자들이란 점을 제외하면, 위에서 설명된 동일 단계들을 포함한다.
동일한 개인 키 a 및 개인 키 셰어들 ai가 각각의 서명에 대해 사용되는 반면, 임시 개인 키 k 및 임시 개인 키 셰어들 ki은 각각의 서명마다 변경된다는 것에 주의한다.
셰어드 값 r은 임시 개인 키 k에 대응하는 임시 공개 키 k·G에 기초하여 생성된다. 임시 공개 키(x,y)는 일반적으로 x 및 y 구성요소들로서 지칭되는 2개의 구성요소들을 포함한다. 셰어드 값 r은 임시 공개 키의 x 구성요소의 함수 예컨대, 일 수 있다.
임시 공개 키 k·G는 일 세트의 난독화 계수들에 기초하여 생성될 수 있으며, 여기서 계수들은 각각의 참가자(102)의 개개의 임시 개인 키 셰어들 ki를 생성하는 데 사용되었다. 즉, 임시 개인 키 셰어 ki를 생성할 때, 각각의 참가자(102)는 난독화된 계수들 를 각각의 다른 참가자(102)와 공유한다. 계수들은 선택된 타원 곡선의 공통 생성기 포인트 G에 의해 난독화된다. 이러한 난독화된 계수들은 참가자들(102) 사이에서 직접 송신되거나 그룹에 브로드캐스팅될 수 있다. 예컨대, 제1 참가자(102a)는 난독화된 계수들 등을 브로드캐스팅할 수 있다. 그 후, 임시 공개 키는 다음과 같이 계산될 수 있다:
제1 역 셰어 는 예컨대, 참가자 1에 대해 을 계산함으로써 생성된 셰어드 비밀들의 역일 수 있다. 위에서 제시된 바와 같이, 셰어드 비밀들의 역을 계산하는 것은 셰어드 비밀들의 곱을 계산하는 것을 포함한다. 제1 참가자(102a)는 제1 임시 개인 키 k 및 제1 블라인딩 키 α의 곱으로서 중간 값 μ를 생성한다. 예컨대, 중간 값은 참가자 1에 대해 로서 계산될 수 있으며 그 결과는 이다.
이는 각각의 참가자(102)가 곱셈 셰어 를 생성하는 것을 수반할 수 있으며, 여기서 αi는 제1 블라인딩 키 α의 셰어이다. 각각의 참가자(102)는 공동 비밀 셰어링 쳬계를 사용하여, 예컨대, 위에서 설명된 JVRSS 기술을 사용하여 제1 블라인딩 키 α의 각자의 셰어 αi를 계산할 수 있다. 예컨대, 제1 참가자(102a)는 1의 인덱스를 갖고, 참가자 1에 대해 를 사용하여 제1 블라인딩 키의 셰어를 생성할 수 있다. 각각의 참가자는 (예컨대, 직접 송신 또는 브로드캐스팅을 통해) 자신의 개개의 곱셈 셰어 를 공유하고, 예컨대, 보간에 의해 곱셈 셰어들 각각에 기초하여 중간 값 μ를 생성한다. 제1 역 셰어 은 중간 값 μ의 역을 계산함으로써 생성될 수 있다. 예컨대, 제1 참가자(102a)는 μ의 모듈러 역(modular inverse)을 계산할 수 있으며, 이는 다음을 초래한다:
블라인딩 키 셰어 αi의 사용은 선택적이며 위의 단계들로부터 생략될 수 있다는 것에 주의한다.
선택적으로, MIC는 제2 블라인딩 키 β의 셰어에 기초하여 생성될 수 있다(즉, 그의 함수임). 즉, MIC는 또한 이전에 언급된 데이터 아이템들 외에도 제2 블라인딩 키 β의 제1 셰어 β1에 기초한다. 제2 블라인딩 키의 제1 셰어는 공동 비밀 셰어링 체계를 사용하여 예컨대, 위에서 설명된 JVRSS 기술을 사용하여 계산될 수 있다. 예컨대, 제1 참가자(102a)는 1의 인덱스를 가질 수 있고, 참가자 1에 대해 을 사용하여 제2 블라인딩 키의 제1 셰어를 생성할 수 있으며, 여기서 제2 블라인딩 키는 β에 의해 표시된다.
MIC는 제1 중간 셰어 λ1 및 적어도 임계 수의 참가자들(102)로부터 획득된 개개의 중간 셰어 λi의 함수인 제1 사전 서명 셰어 σ1에 기초하여 생성될 수 있다. 즉, 참가자들(102) 각각은 개개의 중간 셰어 λi를 생성하고 이러한 중간 셰어들 λi를 다른 참가자들(102)에게 송신 및/또는 브로드캐스팅할 수 있다. 제1 참가자(102a)는 예컨대, 중간 셰어들 λi의 보간에 의해 공통 중간 값 λ를 생성하기 위해 중간 셰어들 λi를 수집할 수 있다. 제1 참가자(102a)(및 선택적으로, 다른 참가자들(102))는 각각 상이한 서명 셰어들 의 생성에 사용하기 위한 복수의 사전 서명 셰어들 을 생성할 수 있다.
제1 중간 셰어 λ1은 제1 개인 키 셰어 a1 및 제1 역 셰어 의 함수일 수 있다. 그 경우에, 적어도 임계 수의 참가자들(102) 각각은 그들 개개의 개인 키 셰어 ai 및 그들 개개의 역 셰어 의 함수인 개개의 중간 셰어 λi를 생성 및 공유한다.
대안적으로, 제1 중간 셰어 λ1은 제1 개인 키 셰어 a1 및 제1 블라인딩 키 제1 셰어 α1의 함수일 수 있다. 그 경우에, 적어도 임계 수의 참가자들(102) 각각은 그들 개개의 개인 키 셰어 ai 및 제1 블라인딩 키 α1의 그들 개개의 셰어의 함수인 개개의 중간 셰어 λi를 생성 및 공유한다.
일부 실시예들에서, 제1 사전 서명 셰어 σ1은 또한 제2 블라인딩 키의 제1 셰어 β1에 기초하여 생성될 수 있다. 예컨대, 제1 중간 셰어 λ1은 제2 블라인딩 키의 제1 셰어 β1의 함수일 수 있다. 부가적인 또는 대안적인 실시예들에서, 제1 중간 셰어 λ1은 또한 공통 값 r의 함수일 수 있다.
도 2는 본 발명의 실시예들에 따라 메시지에 대한 서명을 생성하기 위한 예시적인 방법(200)을 예시한다. 단계들(S201 내지 S208)은 이 예에서 임계 수의 참가자들(102)(제1 참가자(102a)를 포함함) 각각에 의해 수행된다. 단계(S209)는 조정자(101)에 의해 수행되며, 이 조정자는 또한 단계들(S201 내지 S208)을 수행하는 참가자들 중 하나일 수 있다. 단계들 중 일부는 생략되거나 상이한 순서로 수행될 수 있다는 것이 인지될 것이다.
셋-업:
단계(S201)에서, 각각의 참가자(102)는 셰어드 개인 키 셰어 및 대응하는 공개 키를 계산한다. 예컨대, 각각의 참가자(102)는 준비들에서 주어진 공개 키의 계산 및 JVRSS를 사용하여 셰어드 개인 키 및 대응하는 공개 키를 계산할 수 있다. 이 시점에, 각각의 참가자 i는 비밀 키 셰어 및 공개 키(ai,P)를 가지며, 여기서 P는 셰어드 개인 키에 대응하는 공개 키에 대한 표기이다. 셰어드 개인 키는 (t+1)의 임계치를 갖는다.
사전 계산:
단계(S202)에서, 각각의 참가자(102)는 셰어드 임시 키 셰어 및 대응하는 공개 키를 계산한다. 예컨대, 각각의 참가자(102)는 준비들에서 주어진 공개 키의 계산 및 JVRSS를 사용하여 셰어드 임시 키를 계산할 수 있다. 그 후, 각각의 참가자(102)는 임시 개인 키에 기초하여 역 셰어를 계산할 수 있다. 이는 각각의 참가자가 (t+1)의 임계치를 갖는 역 셰어 를 갖게 한다.
단계(S203)에서, 각각의 참가자(102)는 2개의 상이한 셰어드 블라인딩 키 셰어들을 생성한다. 예컨대, 각각의 참가자(102)는 참가자 i가 셰어들 및 을 갖도록 2개의 셰어드 비밀들을 생성할 수 있고, 각각의 셰어드 비밀은 임계치 (t+1)을 갖는다. 일부 예들에서, 모든 셰어드 비밀들이 동일한 임계치를 가질 필요는 없다는 것에 주의한다.
단계(S204)에서, 각각의 참가자(102)는 중간 셰어를 계산하고 자신의 중간 셰어를 다른 참가자들에게 브로드캐스팅한다. 예컨대, 각각의 참가자 i는 중간 셰어 를 계산할 수 있다. 이 값은 (2t+1)의 임계치를 갖는다.
단계(S205)에서, 각각의 참가자(102)는 적어도 중간 셰어들에 기초하여 중간 값을 계산한다. 예컨대, 각각의 참가자(102)는 (2t+1)개의 셰어들에 대한 보간을 사용하여 중간 값 을 계산할 수 있다.
단계(S206)에서, 각각의 참가자(102)는 사전 서명 셰어를 계산한다. 예컨대, 각각의 참가자 i는 자신의 사전 서명 셰어 를 계산할 수 있다. 각각의 참가자(102)는 , 개인 키 셰어 및 대응하는 공개 키 를 저장할 수 있다.
각각의 서명에 대해 상이한 임시 키가 사용되기 때문에, 한 번에 다수의 임시 키들이 셋업될 있는데, 즉, 사전 계산 동안 다수의 임시 키들을 생성하도록 단계들(S202 내지 S206)이 반복되고 추후 사용을 위해 저장될 수 있다. 이들은 어떠한 부가적인 통신 라운드들도 없도록 동시에 실행될 수 있다. 바람직하게는, 각각의 서명에 대해 상이한 값의 α 및 β가 사용되어야 한다는 것에 주의한다.
서명 생성:
메시지 msg에 서명하기 위해, 적어도 (t+1)명의 참가자들이 단계들(S207 및 S208)을 수행해야 한다.
단계(S207)에서, 적어도 임계 수의 참가자들(102)이 서명될 메시지를 획득하고 메시지 다이제스트를 계산한다. 예컨대, 조정자(101)는 메시지 msg에 대한 서명 셰어를 생성하기 위해 (t+1)명의 참가자들에게 요청을 전송할 수 있다. 각각의 참가자 i는 메시지 다이제스트 를 계산할 수 있다. 일부 예들에서, 이 해시 함수는 이중 SHA-256 해시 함수이다. 대안적인 해시 함수들이 사용될 수 있다.
단계(S208)에서, 적어도 임계 수의 참가자들(102)이 서명 셰어를 계산하고 이를 조정자(101)로 전송한다. 예컨대, 각각의 참가자 i는 자신의 서명 셰어 를 계산하고 그 후 자신의 서명 셰어 를 조정자에게 전송할 수 있다. 값 r은 모든 참가자들에 의해 전송되진 않을 수 있다는 것에 주의한다.
서명 셰어의 메시지 독립적 구성요소를 사전 계산하기 위한 여러 대안들이 있다. 이들은 크게 2개의 변형 세트들: 계산에 r을 포함할 때 및 을 포함할 때로 분할될 수 있다. 이들은 서로 독립적으로 선택될 수 있고 이에 따라 위의 방법(200)에 대한 8가지 변형들이 있다.
다른 수정은, r과의 곱셈이 중간 셰어들의 계산 동안 더 일찍 올 수 있다는 것이다. 대신에 단계(S204)에서 를 정의함으로써, 단계(S206)에서, 이고 서명 셰어들의 계산은 이다.
다른 수정은 , 및 가 되도록 를 대신 계산하는 것이다. 대안적인 포인트들에 r을 포함하는 두 가지 변형들은 이와 조합하여 행해질 수 있다. 각각의 참가자는 kα에 대한 지식을 갖는데, 그 이유는 그것이 사전 계산의 단계(S202)에서 계산되기 때문이다. 부가적으로, 모든 참가자들(102)은 자신의 λi 셰어를 브로드캐스팅한다. 따라서, 각각의 참가자(102)는 (적어도) 2t+1개의 셰어들 및 값 kα에 대한 지식을 갖는다. 그 후, 이들은 다음을 계산할 수 있다:
다른 수정은 대신에, 로서 중간 값을 계산하고 로서 사전 서명 셰어를 계산하는 것이다. 마지막으로 서명 셰어는 그 후 일 것이다. 계산에 r을 포함할 때의 2개의 변형들이 또한 이와 조합하여 행해질 수 있다. 각각의 참가자(102)는 의 계산으로부터 kα에 대한 지식을 갖는다. 그 후, 이들은 이것을 사용하여 을 계산하고 그 후 그것을 si 계산에 포함할 수 있다.
요약하면, 각각의 참가자(102)는 4개의 비밀 셰어들: 를 생성할 수 있다. 2번의 곱들: kα ― 이는 을 계산하는 데 추후 사용됨(이 셰어들에 대한 보간은 α가 소거될 것이므로 를 제공함 ― , 및 제1 곱을 사용하는 서명에 사용하기 위한 이 예시적인 방법(200)에서 계산될 필요가 있고, 따라서, 셰어들이 확장되는 경우, 계산은 를 제공한다. kα 및 αi로 이루어지는 셰어를 이용한 임의의 계산들은 먼저 αi 자체만으로 계산을 행하고 그 후 필요에 따라 로 곱함으로써 행해질 수 있다.
위의 체계의 하나의 버전은 서명이 MIC(message independent component) 및 MDC(message dependent component)로 구성된 셰어들을 사용하여 계산된다는 말로 요약될 수 있으며, 여기서 MIC는 사전 서명 셰어 σi에 기초할 수 있고 MDC는 메시지 e에 기초한다.
등가의 체계는 위와 같이 MIC를 계산하는 것 그리고 그 후 예컨대, MDC만으로 구성된 서명 셰어들의 보간 후에, 이를 서명 셰어들과 함께 서명에 통합하는 것을 포함한다. 명시적으로, 체계는 사전 계산의 단계(S206)까지 동일할 수 있으며, 여기서 중간 셰어는 r 값, 를 포함하여서, 보간 후 이는 가 된다.
그리고, 이것을 조정자에게 전송한다. 그 후, 조정자는 다음을 계산한다:
메시지 독립적 구성요소를 계산하기 위한 다음의 변형들이 구현될 수 있다:
i) 계산:
그 후, 서명 셰어들은 이제 다음과 같다:
그리고, 서명은 다음과 같이 생성된다:
ii) 계산:
그 후, 서명 셰어들은 이제 다음과 같다:
그리고, 서명은 다음과 같이 생성된다:
iii) 계산:
그 후, 서명 셰어들은 이제 다음과 같다:
그리고, 서명은 다음과 같이 생성된다:
iv) 계산:
그 후, 서명 셰어들은 이제 다음과 같다:
그리고, 서명은 다음과 같이 생성된다:
v) 계산:
그 후, 서명 셰어들은 이제 다음과 같다:
그리고, 서명은 다음과 같이 생성된다:
방법(200)과 이전 체계들 사이의 한 가지 차이는 서명에서 항의 계산이 사전 계산 국면으로 이동될 수 있다는 것이다. 이것의 결과는, 서명 생성이 개인 키 계산과 동일한 임계치를 갖고 이에 따라 이제 임계-최적 체계라는 것이다. 올바른 서명이 어떻게 찾아지는지를 확인하기 위해, 서명 셰어들에 대한 보간이 다음을 초래한다는 것에 주의한다:
이는 정확히, 요구되는 바와 같은 서명이다.
비밀들의 임계치들은 상이할 수 있다는 것에 주의한다. 즉, a,k,α,β의 임계치 자체가 서명 생성 체계를 실행하기 위해 반드시 동일할 필요는 없다. 예컨대, 6명의 그룹이 있고 서명 및/또는 개인 키를 생성하기 위해 3명이 필요한 경우, 이들은 기술적으로 k의 임계치가 4이고 다른 셰어드 비밀들의 임계치가 3인 계산을 행하며, 이들은 여전히 임계-최적 체계를 가질 것이다.
블라인드 비밀 β이 사용되지 않는 경우 다음의 방식으로 임시 키 및 이에 따른 셰어드 비밀 키를 계산하는 것이 가능할 수 있다는 것에 주의한다. 참가자들이 단순히 (를 사용하고 r, e 및 s를 또한 알고 있다고 가정한다. 체계 내 누구나가 다음을 계산할 수 있다:
이 결과는 그 후, 다음을 계산하는 데 사용될 수 있다:
이는 셰어드 개인 키이다.
계산에 β를 포함함으로써, 이 계산이 완료될 수 없다. 값 는 개별 비밀들에 관한 정보뿐만 아니라 결과 도 제공하지 않는다. 개인 키 a를 드러낼 수 있는 임의의 정보를 획득하기 위해, 개인 키의 임계치와 동일한 수인 적어도 (t+1)명의 참가자들이 협력해야 하고, 이에 따라 보안은 이 중간 값 λ를 계산함으로써 감소되지 않는다.
이전 임계 최적 서명 계산과 관련하여 해결할 문제는 2개의 셰어드 비밀들의 곱이 계산되어야 한다는 것이며, 여기서 비밀들은 그룹 내 모든 참가자들의 개별 비밀들의 합들이다:
서명에서, 개인 키 a가 셰어드 비밀인 경우, 반드시 k가 또한 있어야 한다(그렇지 않으면, k를 아는 누군가에 의해 a가 계산될 수 있음). 그 후, 서명에서 제2 항은 2개의 셰어드 비밀들의 곱셈이며 이는 최적성을 달성하기 어렵게 만드는 부분이다. 젠나로 등의 비-최적 체계 및 위에서 설명된 예시적인 방법(200)에서, 이들 비밀들은 각각 차수-t의 0차의 다항식이고, 다항식들을 함께 곱하는 것은 곱셈의 결과를 계산하는 데 요구되는 2t+1개의 셰어들의 임계치를 초래한다. 이 체계에서 정직성을 보장하기 위해, 대부분의 통신들이 브로드캐스팅될 수 있으며 간단한 동등성들이 체크될 수 있다. 부가적으로, 참가자가 서명의 계산에서 탈락하는 경우, 다른 참가자가 기여하기 쉽다.
젠나로 등의 임계-최적 체계에서, 비밀들의 곱에서 개별 항들을 개별적으로 계산함으로써 이 2t+1의 임계치가 회피된다. 즉, 참가자들 i,j의 각각의 쌍은 각각의 i,j에 대한 개별 항들 를 계산하고 이러한 결과들을 합산한다. 임시 키 k는 서명 동안 생성되고, 그 후 개별 비밀 기여들의 이들 곱들은 Pallier 암호화를 사용하여 계산된다. 이는, 각각의 참가자가 다른 모든 서명자들과 개별적으로 통신해야만 한다는 것을 요구한다. 이 경우 정직성을 보장하기 위해, 실행되어야 하는 다수의 영지식 증명들이 존재한다. 이 경우, 참가자가 서명의 계산에서 탈락하는 경우, 서명 알고리즘은 다시 시작되어야 한다.
즉, 각각의 비밀은 개별 비밀들의 합이고 2개의 비밀들의 곱은 개별 항들의 2개의 합들의 곱셈이며, 이는 다음과 같이 확장될 수 있다:
젠나로 체계는 이러한 항들을 개별적으로 계산한다. 즉, 참가자 1은 참가자 2와 함께 을 계산하여야 하고, 또한 참가자 3과 함께 도 계산하여야 하는 식이다. 이들은 그 후 모두 함께 합산된다. 이러한 개별 계산들은 계산적으로 비용이 많이 드는 영지식 증명을 수반한다. 따라서, 체계에 사람이 많아지면, 비효율적이 된다. 이것은 또한 모두가 서명 국면에서 행해지고, 따라서 이는 서명을 계산하기 위한 계산 비용이 많이 드는 방식이다.
3명의 참가자들을 갖는 간단한 경우에서, 통신의 라운드들은 2개의 체계들(즉, 젠나로 등에 의한 최적 임계 체계 및 예시적인 방법(200)) 간에 대략 비슷하고, 젠나로 체계가 더 많은 통신 라운드들을 갖지만, 이것은 주요 효율성 절감들이 있는 곳이 아니다. 절감들은 계산 및 통신되는 데이터의 볼륨에 있다. 젠나로의 체계는 예시적인 방법(200)에 존재하지 않는 다수의 영지식 증명들(ZKP)을 포함해야 한다.
다음은 젠나로 등에 의한 최적 임계 체계 및 예시적인 방법(200)을 사용하여 구현된 2-of-3 체계를 비교한다. 젠나로의 체계에서, 서명 이전 JVRSS 및 Pallier의 암호화를 위해 생성할 부가적인 암호화 키가 존재한다. 그 후, 생성할 7개의 ZKP들 및 서명 계산에서 검증할 7개의 ZKP들이 존재한다. 이러한 ZKP들은 동시에 전송될 수 없고, 이에 따라 서명 국면에서 다수의 통신 라운드들이 존재한다. 부가적으로, 일부 단계들에서, 각각의 참가자가 서명 국면에서 다른 모든 참가자들과 개별적으로 통신해야 하며, 이는 비효율적이다. 즉, 해당 참가자들은 모두 동시에 온라인 상태여야 한다는 것을 의미한다. 대조적으로, 본 발명은 다른 참가자들이 온라인이 아닌 상태에서 주어진 참가자가 서명 셰어를 계산하는 것을 가능하게 한다.
한편, 위에서 설명된 본 체계에서, 사전 서명 국면에서 4개의 JVRSS 계산들이 있으며 어떤 포인트에서도 ZKP들이 없다. JVRSS 계산은 동시에 행해질 수 있고, 이에 따라 통신은 하나의 JVRSS와 동일하다. 서명 국면에서, 요청-응답 스타일 통신만이 존재하고 모든 정보가 그룹에 브로드캐스팅될 수 있다.
2개의 체계들의 스토리지를 비교하기 위해, 임시 키는 위의 체계에서 셋-업 스테이지에 계산된다는 것에 주의한다. 이는 젠나로의 체계와 비교할 때 더 많은 스토리지가 요구됨을 의미한다. 위에서 설명된 체계에 대해, 서명의 생성에 대응하도록 저장될 3개의 부가적인 값들이 있으며, 각각이 예컨대, 32바이트의 스토리지 공간을 필요로 한다. 이는 계산 및 통신의 효율성 절감들, 및 최적성 달성을 고려하면 최소한이다.
요약하면, 젠나로의 체계는 셋-업 및 사전 계산 후에 필요한 스토리지를 감소시키지만, 서명 계산 동안 계산 및 통신을 증가시킨다. 이는, 젠나로의 체계에서 더 이상의 계산을 사전 서명으로 이동시키는 것이 비효율적이기 때문이다. 본 발명의 체계는 특히 부등식 N≥2t+1이 수락 가능한 경우 젠나로의 최적 체계보다 더 효율적이다.
임계 서명들의 예시적인 사용 사례
일반적으로, 본 발명은 임의의 메시지에 대한 서명을 생성하기 위해 사용될 수 있다. 특정 예시적인 사용 사례로서, 메시지는 블록체인 트랜잭션의 일부 또는 전부일 수 있다. 즉, 서명은 블록체인 트랜잭션의 하나 이상의 입력들 및/또는 하나 이상의 출력들에 서명하는 데 사용될 수 있다.
도 3은 블록체인 프로토콜의 일부로서 사용하기 위한 예시적인 트랜잭션 프로토콜을 예시한다. 예시적인 블록체인 프로토콜들은 문헌에 잘 문서화되어 있지만, 여기에서 완전성을 위해 예시적인 프로토콜 트랜잭션에 대한 설명을 제공된다. 이는 UTXO-기반 프로토콜의 예이다. 트랜잭션(152)(약칭 "Tx")은 블록체인의 기본 데이터 구조이다(블록체인의 각각의 블록은 하나 이상의 트랜잭션들(152)을 포함함). 다음은 출력-기반 또는 "UTXO" 기반 프로토콜을 참조하여 설명될 것이다. 그러나 이것은 모든 가능한 실시예들로 제한되지 않는다.
UTXO-기반 모델에서, 각각의 트랜잭션("Tx")(152)은 하나 이상의 입력들(202) 및 하나 이상의 출력들(203)을 포함하는 데이터 구조를 포함한다. 각각의 출력(203)은 (UTXO가 아직 리딤되지 않은 경우) 다른 새로운 트랜잭션의 입력(202)에 대한 소스로서 사용될 수 있는 미지출 트랜잭션 출력(unspent transaction output; UTXO)을 포함할 수 있다. UTXO는 디지털 토큰의 양을 지정하는 예컨대, 디지털 자산의 금액을 표현하는 값을 포함한다. 이는 (분산) 원장 상의 세팅된 수의 토큰들을 표현한다. UTXO는 또한 다른 정보 중에서도, 그것이 발생한 트랜잭션의 트랜잭션 ID를 포함할 수 있다. 트랜잭션 데이터 구조는 또한 입력 필드(들)(202) 및 출력 필드(들)(203)의 크기의 표시자를 포함할 수 있는 헤더(201)를 포함할 수 있다. 헤더(201)는 또한 트랜잭션의 ID를 포함할 수 있다. 실시예들에서, 트랜잭션 ID는 (트랜잭션 ID 자체는 제외한) 트랜잭션 데이터의 해시이고 채굴자들에게 제출된 원시 트랜잭션(152)의 헤더(201)에 저장된다.
제1 사용자 예컨대, 앨리스가 문제의 디지털 토큰의 금액을 제2 사용자 예컨대, 밥에게 이전하는 트랜잭션(152j)을 생성하기를 원한다고 하자. 도 3에서 앨리스의 새로운 트랜잭션(152j)은 "Tx1"로서 라벨이 지정된다. 이는 시퀀스의 선행 트랜잭션(152i)의 출력(203)에서 앨리스에게 잠긴 디지털 토큰의 금액을 취하고, 이 중 적어도 일부를 밥에게 전달한다. 선행 트랜잭션(152i)은 도 3에서 "Tx0"로 라벨이 지정된다. Tx0 및 Tx1은 임의의 라벨일 뿐이다. 이들은, Tx0이 블록체인의 최초 트랜잭션이거나, Tx1이 풀에서 바로 다음 트랜잭션이라는 것을 반드시 의미하지는 않는다. Tx1은 앨리스에게 잠긴 미지출 출력(203)을 여전히 갖는 임의의 선행(즉, 앞선) 트랜잭션을 뒤로 가리킬 수 있다.
선행 트랜잭션(Tx0)은 앨리스가 자신의 새로운 트랜잭션(Tx1)을 생성할 때, 또는 적어도 그녀가 그것을 네트워크(106)에 전송할 때까지 이미 유효성 검증되고 블록체인에 포함되었을 수 있다. 이는 그 시간에 이미 블록들 중 하나에 포함되었거나, 풀(154)에서 여전히 대기 중일 수 있으며, 이 경우에 곧 새로운 블록에 포함될 것이다. 대안적으로 Tx0 및 Tx1이 생성되고 블록체인 네트워크에 함께 전송될 수 있거나 또는 노드 프로토콜이 "고아" 트랜잭션들을 버퍼링하도록 허용하는 경우 Tx0는 Tx1 이후에도 전송될 수 있다. 트랜잭션들의 시퀀스의 맥락에서 본원에서 사용된 바와 같은 "선행" 및 "후속"이라는 용어들은 (트랜잭션이 다른 트랜잭션을 뒤로 가리키고, 이와 같이 계속되는) 트랜잭션들에서 지정된 트랜잭션 포인터들에 의해 정의된 바와 같은 시퀀스에서의 트랜잭션들의 순서를 지칭한다. 이들은 "선행자(predecessor)" 및 "후행자(successor)", 또는 "앞선(antecedent)"과 "후위의(descendant)", "부모" 및 "자식" 등으로 동등하게 대체될 수 있다. 이는 그것들이 생성되고, 네트워크로 전송되거나, 임의의 주어진 노드에 도달하는 순서를 반드시 의미하지는 않는다. 그럼에도 불구하고, 선행 트랜잭션(앞선 트랜잭션 또는 "부모")을 가리키는 후속 트랜잭션(후위의 트랜잭션 또는 "자식")은 부모 트랜잭션이 유효성 검증될 때까지 그리고 유효성 검증되지 않는 한 유효성 검증되지 않을 것이다. 그의 부모 이전에 노드에 도달하는 자식은 고아로 간주된다. 이는 노드 프로토콜 및/또는 채굴자 거동에 의존하여 부모를 기다리기 위해 특정 시간 동안 버퍼링되거나 폐기될 수 있다.
선행 트랜잭션(Tx0)의 하나 이상의 출력들(203) 중 하나는, 본원에서 UTXO0으로서 라벨이 지정되는 특정 UTXO를 포함한다. 각각의 UTXO는 UTXO에 의해 표현되는 디지털 토큰의 금액을 지정하는 값 및 후속 트랜잭션이 유효성 검증되고 따라서 UTXO가 성공적으로 리딤되기 위하여 후속 트랜잭션의 입력(202)에서 잠금해제 스크립트에 의해 만족되어야 하는 조건을 정의하는 잠금 스크립트를 포함한다. 통상적으로, 잠금 스크립트는 특정 당사자(그것이 포함된 트랜잭션의 수혜자)에게로 금액을 잠근다. 즉, 잠금 스크립트는, 통상적으로 후속 트랜잭션의 입력의 잠금해제 스크립트가 선행 트랜잭션이 잠겨 있는 당사자의 암호화 서명을 포함하는 조건을 포함하는 잠금해제 조건을 정의한다.
잠금 스크립트(일명 scriptPubKey)는 노드 프로토콜에 의해 인식되는 도메인 특정 언어로 작성된 코드 조각이다. 이러한 언어의 특정 예는 "스크립트(Script)"(대문자 S)라 불린다. 잠금 스크립트는 트랜잭션 출력(203)을 지출하는 데 어떤 정보가 필요한지, 예컨대, 앨리스의 서명 요건을 지정한다. 잠금해제 스크립트들은 트랜잭션들의 출력에서 나타난다. 잠금해제 스크립트(일명 scriptSig)는 잠금 스크립트 기준들을 충족시키는 데 필요한 정보를 제공하는 도메인 특정 언어로 작성된 코드 조각이다. 예컨대, 이는 밥의 서명을 포함할 수 있다. 잠금해제 스크립트들은 트랜잭션들의 입력(202)에 나타난다.
따라서 예시된 예에서, Tx0의 출력(203)의 UTXO0은 UTXO0가 리딤되기 위해(엄밀히, UTXO0을 리딤하고자 시도하는 후속 트랜잭션이 유효하기 위해) 앨리스의 서명 Sig PA를 요구하는 잠금 스크립트 [Checksig PA]를 포함한다. [Checksig PA]는 앨리스의 공개-개인 키 쌍으로부터의 공개 키 PA를 포함한다. Tx1의 입력(202)은 (예컨대, 실시예에서, 전체 트랜잭션 Tx0의 해시인 그의 트랜잭션 Id인 TxID0에 의해) Tx1을 뒤로 가리키는 포인터를 포함한다. Tx1의 입력(202)은 Tx0 내에서 UTXO0을 식별하는 인덱스를 포함하여, Tx0의 임의의 다른 가능한 출력들 사이에서 그것을 식별한다. Tx1의 입력(202)은 앨리스의 암호화 서명을 포함하는 잠금해제 스크립트 <Sig PA>를 더 포함하며, 이는 앨리스가 키 쌍으로부터 자신의 개인 키를 데이터의 미리 정의된 부분(때로는 암호법에서 "메시지"라 불림)에 적용함으로써 생성된다. 유효한 서명을 제공하기 위해 앨리스에 의해 서명될 필요가 있는 데이터(또는 "메시지")는 잠금 스크립트, 노드 프로토콜 또는 이들의 조합에 의해 정의될 수 있다.
새로운 트랜잭션 Tx1이 노드에 도달할 때, 노드는 노드 프로토콜을 적용한다. 이는 잠금해제 스크립트가 잠금 스크립트에 정의된 조건(이 조건은 하나 이상의 기준들을 포함할 수 있음)을 충족시키는지를 체크하기 위해 잠금 스크립트 및 잠금해제 스크립트를 함께 실행하는 것을 포함한다. 실시예들에서, 이는 2개의 스크립트들을 컨케터네이팅(concatenating)하는 것을 수반한다.
<Sig PA> <PA> || [Checksig PA]
여기에서 "||"는 컨케터네이션을 표현하고 "<...>"는 스택 상에 데이터를 배치하는 것을 의미하고, "[…]"는 잠금해제 스크립트(이 예에서, 스택-기반 언어)에 의해 구성된 함수이다. 동등하게, 스크립트들을 컨케터네이팅하는 대신, 스크립트들은 공통 스택을 사용하여 번갈아 실행될 수 있다. 어느 쪽이든, 함께 실행될 때, 스크립트들은 Tx0의 출력의 잠금 스크립트에 포함된 바와 같은 앨리스의 공개 키 PA를 사용하여, Tx1의 입력의 잠금 스크립트가 데이터의 예상되는 부분에 서명하는 앨리스의 서명을 포함한다는 것을 인증한다. 이 인증을 수행하기 위하여 데이터의 예상되는 부분 자체("메시지")가 또한 Tx0에 포함될 필요가 있다. 실시예들에서, 서명된 데이터는 Tx0 전체를 포함한다(이에 따라, 평문으로 데이터의 서명된 부분을 지정하는 별개의 요소가 포함될 필요가 있는데, 그 이유는 이것이 이미 본질적으로 존재하기 때문임).
공개-개인 암호법에 의한 인증의 세부사항들은 당업자에게 친숙할 것이다. 기본적으로, 앨리스가 자신의 개인 키로 메시지를 암호화함으로써 그 메시지에 서명한 경우, 앨리스의 공개 키 및 평문의 메시지(암호화되지 않은 메시지)를 감안하여, 블록체인 네트워크의 노드와 같은 다른 엔티티는 암호화된 버전의 메시지가 앨리스에 의해 서명된 것임이 틀림없다는 것을 인증할 수 있다. 서명은 통상적으로 메시지를 해시하는 것, 해시에 서명하는 것, 그리고 이를 서명으로서 메시지의 평문 버전에 태깅하고, 이에 따라 공개 키의 임의의 보유자(holder)가 서명을 인증하는 것을 가능하게 하는 것을 포함한다. 따라서 여기에서 특정 데이터 조각 또는 트랜잭션의 일부 등에 서명하는 것에 대한 임의의 참조는 실시예들에서 해당 데이터 조각 또는 트랜잭션 일부의 해시에 서명하는 것을 의미할 수 있다는 것에 주의한다.
Tx1의 잠금해제 스크립트가 Tx0의 잠금 스크립트에 지정된 하나 이상의 조건들을 충족시키는 경우(이에 따라, 보여진 예에서, 앨리스의 서명이 Tx1에서 제공되고 인증된 경우), 블록체인 노드는 Tx1이 유효한 것으로 간주한다. 그것이 채굴 노드인 경우, 이는 그것이 작업 증명을 기다리는 트랜잭션들의 풀에 추가될 것임을 의미한다. 그것이 포워딩 노드인 경우, 트랜잭션 Tx1을 블록체인 네트워크의 하나 이상의 다른 노드들로 전달하여서, 그 트랜잭션이 네트워크에 걸쳐 전파될 것이다. Tx1이 유효성 검증되고 블록체인에 포함되면, 이는 지출된 것으로 Tx0으로부터의 UTXO0를 정의한다. Tx1은 그것이 미지출 트랜잭션 출력(203)을 지출하는 경우에만 유효할 수 있다는 것에 주의한다. 다른 트랜잭션에 의해 이미 지출된 출력을 지출하려고 시도하는 경우, 다른 모든 조건들이 충족되는 경우조차도 Tx1은 유효하지 않을 것이다. 따라서 노드(104)는 또한 선행 트랜잭션 Tx0에서 참조된 UTXO가 이미 지출되었는지(다른 유효한 트랜잭션에 대한 유효한 입력을 이미 형성했는지)를 체크할 필요가 있다. 이는 트랜잭션들 상에 정의된 순서를 부과하는 것이 블록체인(150)에 대해 중요한 하나의 이유이다. 실제로, 주어진 노드(104)는 트랜잭션들이 지출된 UTXO들(203)을 마킹하는 별개의 데이터베이스를 유지할 수 있지만, 궁극적으로 UTXO가 지출되었는지를 정의하는 것은 블록체인의 다른 유효한 트랜잭션에 대한 유효한 입력이 이미 형성되었는지의 여부이다.
주어진 트랜잭션의 모든 출력들(203)에서 지정된 총 금액이 모든 그의 입력들(202)에 의해 가리켜지는 총 금액보다 큰 경우, 이는 대부분의 트랜잭션 모델들에서 무효에 대한 다른 근거이다. 따라서, 이러한 트랜잭션들은 블록들 내로 채굴되거나 전파되지 않을 것이다.
스크립트 코드는 종종 도식적으로(즉, 정확한 언어가 아님) 표현된다는 것에 주의한다. 예컨대, [Checksig PA] = OP_DUP OP_HASH160 <H(PA)> OP_EQUALVERIFY OP_CHECKSIG를 의미하도록 [Checksig PA]가 작성될 수 있다. "OP_..."는 스크립트 언어의 특정 작업코드(opcode)를 지칭한다. OP_CHECKSIG(또한 "Checksig"라 불림)는 2개의 입력들(서명 및 공개 키)을 취하고 ECDSA(Elliptic Curve Digital Signature Algorithm)을 사용하여 서명의 유효함을 검증하는 스크립트 작업코드이다. 런타임 시에, 서명('sig')의 임의의 발생은 스크립트로부터 제거되지만, 해시 퍼즐과 같은 부가적인 요건들은 'sig' 입력에 의해 검증된 트랜잭션에서 유지된다. 다른 예로서, OP_RETURN은 트랜잭션 내에 메타데이터를 저장하고 그리하여 메타데이터를 블록체인에 변경 불가능하게 기록할 수 있는 트랜잭션의 지출 불가능한 출력을 생성하기 위한 스크립트 언어의 작업코드이다. 예컨대, 메타데이터는 블록체인에 저장하고자 하는 문서를 포함할 수 있다.
서명 PA는 디지털 서명이다. 실시예들에서, 이는 타원 곡선 secp256k1을 사용하는 ECDSA에 기초한다. 디지털 서명은 특정 데이터 조각에 서명한다. 실시예들에서, 주어진 트랜잭션에 대해, 서명은 트랜잭션 입력의 일부, 및 트랜잭션 출력의 전부 또는 일부에 서명할 것이다. 서명되는 출력들의 특정 부분들은 SIGHASH 플래그에 의존한다. SIGHASH 플래그는 어느 출력들이 서명되는지를 선택하기 위해 서명의 끝에 포함된 4-바이트 코드이다(이에 따라, 서명 시에 고정됨).
잠금 스크립트는 때로는, 그것이 개개의 트랜잭션이 잠겨 있는 당사자의 공개 키를 포함한다는 사실을 지칭하는 "scriptPubKey"라 칭해진다. 잠금해제 스크립트는 때로는 그것이 대응하는 서명을 제공한다는 사실을 지칭하는 "scriptSig"라 칭해진다. 그러나, 보다 일반적으로, UTXO가 리딤되기 위한 조건이 서명을 인증하는 것을 포함하는 것이 블록체인의 모든 애플리케이션들에서 필수적인 것은 아니다. 보다 일반적으로 스크립팅 언어는 임의의 하나 이상의 조건들을 정의하는 데 사용될 수 있다. 따라서 보다 일반적인 용어들 "잠금 스크립트" 및 "잠금해제 스크립트"가 선호될 수 있다.
본 발명의 일부 실시예들에 따르면, 조정자(101)에 의해 생성된 서명은 블록체인 트랜잭션에 서명하는 데 사용될 수 있다. 예컨대, 생성된 서명은 적어도 부분적으로 블록체인 트랜잭션의 출력을 잠금해제하는 데 사용될 수 있다. 특정 예로서, 이전 트랜잭션의 출력은 공개 키의 해시에 잠금된 P2PKH(pay-to-public-key-hash) 출력일 수 있다. 잠금해제되기 위해, P2PKH 출력을 참조하는 추후 트랜잭션의 입력에 (해싱되지 않은) 공개 키 및 공개 키에 대응하는 개인 키에 기초하여 생성된 서명을 포함할 필요가 있다.
스크립트로 표현되는 "잠금 스크립트" 및 "잠금해제 스크립트"는 다음과 같은 형태를 취할 수 있다.
잠금 스크립트 = OP_DUP OP_HASH160 <Public KeyHash> OP_EQUAL OP_CHECKSIG
잠금해제 스크립트 =<Signature><Public Key>
위에서 설명된 실시예들을 참조하면, <Public Key> 는 와 같을 수 있으며, <Signature>는 임계 서명 s를 포함하며, 여기서 이전 트랜잭션은 서명될 메시지이다. 위에서 언급된 바와 같이, ECDSA 서명들은 형식 (r,s)라는 것에 주의한다.
설명된 서명 생성 방법은 임의의 특정 사용 사례로 제한되지 않으며 일반적으로 임의의 메시지에 기초한 서명을 생성하는 데 사용될 수 있다는 것에 주의한다. 블록체인 트랜잭션의 전체 또는 일부에 서명하는 것은 단 하나의 예시적인 예일 뿐이다. 설명된 방법은 예컨대, 법적 문서(예컨대, 유언장, 증서 또는 다른 계약), 하나 이상의 당사자들 간의 서신, 디지털 인증서들(예컨대, 인증 기관에 의해 발행됨), 의료 처방전들, 은행 송금 또는 금융 상품, 모기지 또는 대출 신청 등에 서명하고 그리고/또는 이들을 인가하는 데 사용될 수 있다.
특정 예로서, 참가자들의 그룹(총 5명의 참가자들이라 하자)이 회사의 이사회를 형성할 수 있다. 회사의 의결 사안들은 이사회의 과반수(즉, 적어도 3명의 참가자들)가 특정 투표에 동의할 것을 요구할 수 있다. 이사회는 설명된 서명 생성 방법을 사용하여, 적어도 3명의 이사회 멤버들이 특정 결과에 찬성 투표하기로 동의했음을 입증할 수 있다. 이 예에서, 서명 생성 체계의 임계치는 3이다. 즉, 조정자가 서명을 성공적으로 생성하기 위해 이사회 멤버들 중 적어도 3명이 개개의 서명 셰어를 제공해야 한다. 서명이 성공적으로 생성된 경우, 적어도 임계수(예컨대, 3명)의 이사회 멤버들이 해당 결과에 찬성 투표하기로 동의해야 한다. 따라서 성공적인 서명 생성은 투표의 레코드로서 작용하고 이사회의 과반수가 특정 방식으로 투표했음을 입증한다.
본 발명의 다른 사용 사례는 예컨대, X.509 표준에 의해 발행된 디지털 인증서와 같은 디지털 인증서들의 분야에 있다. 디지털 인증서는 일부 데이터에 대해 서명하는 서명을 포함한다. 데이터는 일반적으로 임의의 데이터일 수 있지만, 디지털 인증서에 포함된 데이터의 특정 예는 공개 키이다. 디지털 인증서의 공개 키는 종종 "인증된 공개 키"로서 지칭된다. 디지털 인증서의 발행자("인증 기관")는 공개 키의 소유자에 대해 하나 이상의 체크들(예컨대, 노우-유어-커스터머(know-your-customer) 체크들)을 수행할 수 있으며, 체크들이 성공적인 경우, 인증 기관은 인증된 공개 키를 포함하는 디지털 인증서를 발행한다. 사용자는 예컨대, 인증된 공개 키에 대응하는 개인 키로 메시지에 서명함으로써 자신이 본인임을 입증하기 위해 인증된 공개 키를 사용할 수 있다.
인증 기관들에 대한 하나의 특정 용도는 인터넷 상의 보안 브라우징을 위해 HTTPS에서 사용되는 인증서들에 서명하는 것이다. 다른 일반적인 용도는 전자 서명 문서들에서 사용하기 위해 국가 정부들에 의해 아이덴티티 카드를 발행하는 것이다. 인증 기관은 개인 키를 사용하여 공개 키(또는 증명될 임의의 다른 데이터)에 서명한다. 이는 단일 장애 포인트(point of failure)를 도입한다. 즉, 악의적인 당사자가 디지털 인증서들을 발행하기 위해 인증 기관에 의해 사용된 개인 키에 대한 액세스를 얻는 경우, 악의적인 당사자는 사기성 인증서들을 발행할 수 있다. 타겟팅되는 인증 기관의 특정 예는 네덜란드 인증 기관인 DigiNotar이다. DigiNotar에 의해 사용되는 개인 키는 2011년에 손상되었고 사기성 인증서들을 발행하는 데 사용되었다. 이 공격은 공격자가 개인 키와 같은 단일 데이터 조각만을 획득할 필요가 있었기 때문에 가능했다. 그러나 인증 기관(DigiNotar)이 본 발명에 따른 임계 서명 체계를 사용했다면 이 공격은 가능하지 않았을 것이다(또는 적어도 더 어려워졌을 것임). 인증서들을 발행하기 위해, 공격자는 서명을 생성하는데 요구되는 임계 수의 키 셰어들(또는 서명 셰어들)을 획득해야 한다.
위의 실시예들은 단지 예로서만 설명되었다는 것이 인지될 것이다. 보다 일반적으로, 다음 스테이트먼트들 중 임의의 하나 이상에 따른 방법, 장치 또는 프로그램이 제공될 수 있다.
스테이트먼트 1.
임계 서명 체계 동안 서비스 거부 공격을 식별하는 컴퓨터-구현 방법이 제공되며, 참가자들의 그룹의 각각의 참가자는 제1 셰어드 비밀의 개개의 셰어 및 제2 셰어드 비밀의 개개의 셰어를 갖고, 방법은 그룹의 제1 참가자에 의해 수행되고, 적어도 제1 셰어드 비밀의 제1 셰어 및 제2 셰어드 비밀의 제1 셰어에 기초하여 제1 타겟 셰어를 계산하는 단계 ― 제1 타겟 셰어는 임계 서명의 제1 서명 셰어를 계산하는 데 사용됨 ― ; 제1 타겟 셰어 및 제1 미리 결정된 양의 다른 타겟 셰어들에 기초하여 타겟 값을 계산하는 단계 ― 각각의 다른 타겟 셰어는 개개의 참가자에 의해 계산됨 ― ; 타겟 값에 대응하는 타겟 공개 키를 계산하는 단계; 제1 셰어드 비밀의 제1 셰어 및 제2 셰어드 비밀에 대응하는 공개 키에 기초하여 제1 검증 셰어를 계산하는 단계; 적어도 제1 검증 셰어 및 제2 미리 결정된 양의 다른 검증 셰어들에 기초하여 검증 공개 키를 계산하는 단계 ― 각각의 다른 검증 셰어는 개개의 참가자에 의해 계산됨 ― ; 및 검증 공개 키가 타겟 공개 키와 매칭되는지에 기초하여 적어도 하나의 다른 참가자가 서비스 거부 공격을 시도하고 있는지를 결정하는 단계를 포함한다.
디지털 서명을 생성하기 위해 참가자들의 그룹의 개개의 참가자들로부터 임계 수의 상이한 서명 셰어들이 요구된다.
타겟 값은 제1 타겟 셰어 및 제1 미리 결정된 양의 다른 타겟 셰어들에 대해 보간함으로써 계산될 수 있다. 검증 공개 키는 제1 검증 셰어와 제2 미리 결정된 양의 다른 검증 셰어들에 대해 타원 곡선 보간을 수행함으로써 계산될 수 있다.
스테이트먼트 2.
스테이트먼트 1의 방법에 있어서, 그룹 내 다른 참가자들과 제1 타겟 셰어 및 제1 검증 셰어를 공유하는 단계를 포함한다.
스테이트먼트 3.
스테이트먼트 2의 방법에 있어서, 상기 공유하는 단계는 그룹 내 다른 참가자들에게 제1 타겟 셰어 및/또는 제1 검증 셰어를 브로드캐스팅하는 단계를 포함한다.
대안적으로, 제1 타겟 셰어 및/또는 제1 검증 셰어는 예컨대, 개개의 보안 통신 채널들을 통해 각각의 다른 참가자에게 직접 송신될 수 있다.
스테이트먼트 4.
임의의 선행 스테이트먼트의 방법에 있어서, 개개의 참가자들로부터 제1 미리 결정된 양의 다른 타겟 셰어들을 획득하는 단계; 및 개개의 참가자들로부터 제2 미리 결정된 양의 다른 검증 셰어들을 획득하는 단계를 포함한다.
스테이트먼트 5.
임의의 선행 스테이트먼트의 방법에 있어서, 제1 셰어드 비밀의 제1 셰어는 참가자들의 그룹과 JVRSS(joint verification random secret sharing scheme)의 제1 인스턴스를 수행함으로써 계산된다.
스테이트먼트 6.
임의의 선행 스테이트먼트의 방법에 있어서, 제2 셰어드 비밀의 제1 셰어는 참가자들의 그룹과 JVRSS의 제2 인스턴스를 수행함으로써 계산된다.
스테이트먼트 7.
스테이트먼트 6의 방법에 있어서, 제2 셰어드 비밀에 대응하는 공개 키는 JVRSS의 제2 인스턴스를 수행할 때 각각의 참가자에 의해 공유되는 난독화된 계수들에 기초하여 계산된다.
스테이트먼트 8.
임의의 선행 스테이트먼트의 방법에 있어서, 각각의 참가자는 시퀀스의 개개의 인덱스와 연관되고, 제1의 미리 결정된 양의 다른 타겟 셰어들은 제1 참가자의 인덱스를 뒤따르는 개개의 인덱스들을 갖는 다른 참가자들에 의해 계산되고, 제2의 미리 결정된 양의 다른 검증 셰어들은 제1 참가자의 인덱스를 뒤따르는 개개의 인덱스들을 갖는 다른 참가자들에 의해 계산된다.
스테이트먼트 9.
임의의 선행 스테이트먼트의 방법에 있어서, 그룹은 크기 N≥2t+1을 갖고, 제1 셰어드 비밀의 임계치 및 임계 서명의 임계치는 t+1이고, t는 제1 셰어드 비밀의 차수인, 여기서 t는 셰어드 비밀 다항식의 차수이다.
일부 예들에서, 제1 셰어드 비밀 및 제2 셰어드 비밀은 상이한 임계치들을 가질 수 있다. 일부 예들에서, 제1 셰어드 비밀 및 임계 서명은 상이한 임계치들을 가질 수 있다. 예컨대, 임계 서명의 임계치는 제1 셰어드 비밀의 임계치보다 클 수 있다. 예컨대, 서명의 임계치는 t+2일 수 있고 제1 셰어드 비밀의 임계치는 t+1일 수 있다.
스테이트먼트 10.
스테이트먼트 9의 방법에 있어서, 제1 미리 결정된 양은 2t이고 제2 미리 결정된 양은 t이다.
스테이트먼트 11.
스테이트먼트 9 또는 스테이트먼트 10의 방법에 있어서, 그룹은 크기 N>2t+1을 갖고, 검증 공개 키를 계산하는 상기 단계는 복수의 검증 공개 키들을 계산하는 단계를 포함하고, 각각의 검증 공개 키는 제1 검증 셰어 및 상이한 제2 미리 결정된 양의 다른 검증 셰어들에 기초하여 계산되고, 방법은 복수의 검증 공개 키들 각각을 비교하는 단계; 및 개개의 검증 셰어가 적어도 하나의 다른 검증 공개 키와 매칭되지 않는 검증 공개 키를 초래하는 참가자로서, 서비스 거부 공격을 시도하는 적어도 하나의 참가자를 식별하는 단계를 포함한다.
스테이트먼트 12.
임의의 선행 스테이트먼트의 방법에 있어서, 제1 셰어드 비밀은 제1 블라인딩 키이고, 제2 셰어드 비밀은 임시 키이고, 제1 타겟 셰어는 곱셈 셰어(multiplicative share)이다.
스테이트먼트 13.
스테이트먼트 1 내지 스테이트먼트 11 중 어느 하나의 방법에 있어서, 참가자들의 그룹의 각각의 참가자는 제3 셰어드 비밀의 개개의 셰어를 갖고, 제1 타겟 셰어는 제1 셰어드 비밀의 제1 셰어에 기초하여 계산되고, 검증 공개 키는 제3 셰어드 비밀에 대응하는 공개 키에 기초하여 계산된다.
스테이트먼트 14.
스테이트먼트 13의 방법에 있어서, 제1 셰어드 비밀은 역 임시 키이고, 제2 셰어드 비밀은 개인 키이고, 제3 셰어드 비밀은 제2 블라인딩 키이고, 제1 타겟 셰어는 제1 중간 셰어이다.
스테이트먼트 15.
스테이트먼트 13 또는 스테이트먼트 14의 방법에 있어서, 제3 셰어드 비밀의 제1 셰어는 참가자들의 그룹과 JVRSS의 제3 인스턴스를 수행함으로써 계산된다.
스테이트먼트 16.
스테이트먼트 6의 방법에 있어서, 제3 셰어드 비밀에 대응하는 공개 키는 JVRSS의 제3 인스턴스를 수행할 때 각각의 참가자에 의해 공유되는 난독화 계수들에 기초하여 계산된다. ,
스테이트먼트 17.
임의의 선행 스테이트먼트의 방법에 있어서, 검증 공개 키가 타겟 공개 키와 매칭된다는 것을 조건으로 제1 서명 셰어를 계산하기 위해 제1 타겟 셰어 및/또는 타겟 값만을 사용하는 단계를 포함한다.
예컨대, 곱셈 셰어는 역 임시 키 셰어를 계산하는 데 사용될 수 있다.
스테이트먼트 18.
컴퓨터 장비로서, 하나 이상의 메모리 유닛들을 포함하는 메모리; 및 하나 이상의 프로세싱 유닛들을 포함하는 프로세싱 장치를 포함하고,
메모리는 프로세싱 장치 상에서 실행되도록 배열된 코드를 저장하고, 코드는 프로세싱 장치 상에 있을 때, 스테이트먼트들 1 내지 17 중 어느 하나의 방법을 수행하도록 구성된다.
스테이트먼트 19.
컴퓨터-판독 가능 저장소 상에서 구체화되고, 컴퓨터 장비 상에서 실행될 때 스테이트먼트들 1 내지 17 중 어느 하나의 방법을 수행하도록 구성된 컴퓨터 프로그램.
스테이트먼트 20.
임계 서명 체계 동안 서비스 거부 공격을 식별하는 컴퓨터-구현 방법으로서, 참가자들의 그룹의 각각의 참가자는 셰어드 개인 키의 개개의 셰어, 임시 개인 키의 개개의 셰어, 제1 블라인딩 키의 개개의 셰어 및 제2 블라인딩 키의 개개의 셰어를 가지며, 방법은 그룹의 제1 참가자에 의해 수행되고, 제1 역 임시 개인 키 셰어에 대응하는 제1 공개 키를 계산하는 단계 ― 제1 공개 키는 i) 임시 개인 키 및 제1 블라인딩 키의 곱의 역, 및 ii) 제1 블라인딩 키의 제1 셰어에 대응하는 공개 키에 기초하여 계산됨 ― ; 사전-서명 셰어에 대응하는 제2 공개 키를 계산하는 단계 ― 제2 공개 키는 i) 중간 값에 대응하는 공개 키 및 ii) 제2 블라인딩 키의 제1 셰어에 대응하는 공개 키에 기초하여 계산되고, 중간 값은 i) 임시 개인 키의 역, ii) 개인 키 및 iii) 제2 블라인딩 키에 기초함 ― ; 및 제1 공개 키 및 제2 공개 키를 조정 당사자에게 전송하는 단계를 포함하고, 조정 당사자는 제1 참가자에 의해 계산된 제1 서명 셰어에 대한 액세스를 갖고, 제1 서명 셰어는, i) 임시 개인 키의 제1 셰어, ii) 메시지, iii) 셰어드 개인 키에 대응하는 공개 키, 및 iv) 제2 블라인딩 키의 제1 셰어에 기초하여 계산된다.
스테이트먼트 21.
스테이트먼트 20의 방법에 있어서, 개개의 셰어들의 일부 또는 전부는 JVRSS(joint verifiable random secret sharing) 체계의 개개의 인스턴스들을 사용하여 계산된다.
스테이트먼트 22.
스테이트먼트 21 또는 스테이트먼트 22의 방법에 있어서, 임시 개인 키 및 제1 블라인딩 키의 곱의 역을 계산하는 단계를 포함한다.
스테이트먼트 23.
임의의 선행 스테이트먼트의 방법에 있어서, 제1 중간 셰어 및 각각의 다른 참가자로부터의 개개의 중간 셰어에 기초하여 중간 값을 계산하는 단계를 포함한다.
스테이트먼트 24.
스테이트먼트 23의 방법에 있어서, 중간 값에 대응하는 공개 키를 계산하는 단계를 포함한다.
스테이트먼트 25.
임의의 선행 스테이트먼트의 방법에 있어서, 제1 블라인딩 키의 제1 셰어에 대응하는 공개 키를 계산하는 단계를 포함한다.
스테이트먼트 26.
임의의 선행 스테이트먼트의 방법에 있어서, 제2 블라인딩 키의 제1 셰어에 대응하는 공개 키를 계산하는 단계를 포함한다.
스테이트먼트 27.
임의의 선행 스테이트먼트의 방법에 있어서, 제1 서명 셰어를 계산하는 단계; 및 제1 서명 셰어를 조정 당사자에 전송하는 단계를 포함한다.
스테이트먼트 28.
임의의 선행 스테이트먼트의 방법에 있어서, 조정 당사자로부터 메시지를 획득하는 단계를 포함한다.
스테이트먼트 29.
스테이트먼트 20 내지 스테이트먼트 28 중 어느 하나의 방법에 있어서, 메시지를 생성하는 단계를 포함한다.
스테이트먼트 30.
임의의 선행 스테이트먼트의 방법에 있어서, 셰어드 임시 개인 키에 대응하는 공개 키를 계산하는 단계를 포함하고, 제1 서명 셰어는 셰어드 임시 개인 키에 대응하는 공개 키의 제1 좌표에 기초하는, 예를 들면 x 좌표이다.
스테이트먼트 31.
서비스 거부 공격을 식별하는 컴퓨터-구현 방법으로서, 참가자들의 그룹의 각각의 참가자는 개인 키의 개개의 셰어, 임시 개인 키의 개개의 셰어, 제1 블라인딩 키의 개개의 셰어 및 제2 블라인딩 키의 개개의 셰어를 가지며, 방법은 임계 수의 서명 셰어들에 기초하여 서명을 생성하도록 구성된 조정 당사자에 의해 수행되며, 제1 참가자로부터 제1 공개 키를 수신하는 단계; 제1 참가자로부터 제2 공개 키를 수신하는 단계; 제1 참가자로부터 제1 서명 셰어를 수신하는 단계; i) 제1 공개 키, ii) 메시지, iii) 셰어드 임시 개인 키에 대응하는 공개 키 및 iv) 제2 공개 키에 기초하여 제1 후보 서명 셰어에 대응하는 공개 키를 계산하는 단계; 및 제1 서명 셰어에 대응하는 공개 키가 제1 후보 서명 셰어에 대응하는 공개 키와 매칭되는지에 기초하여 제1 참가자가 서비스 거부 공격을 시도하고 있는지를 결정하는 단계를 포함한다.
예컨대, 후보 제1 서명 셰어에 대응하는 공개 키는 후보 제1 서명 셰어를 생성기 포인트 G로 난독화함으로써 생성된다.
스테이트먼트 32.
서비스 거부 공격을 식별하는 컴퓨터-구현 방법으로서, 참가자들의 그룹의 각각의 참가자는 개인 키의 개개의 셰어, 임시 개인 키의 개개의 셰어, 제1 블라인딩 키의 개개의 셰어 및 제2 블라인딩 키의 개개의 셰어를 가지며, 방법은 임계 수의 서명 셰어들에 기초하여 서명을 생성하도록 구성된 조정 당사자에 의해 수행되며, 제1 참가자의 제1 역 임시 개인 키 셰어에 대응하는 제1 공개 키를 계산하는 단계; 제1 참가자의 사전-서명 셰어에 대응하는 제2 공개 키를 계산하는 단계; 제1 참가자로부터 제1 서명 셰어를 수신하는 단계; i) 제1 공개 키, ii) 메시지, iii) 셰어드 임시 개인 키에 대응하는 공개 키, 및 iv) 제2 공개 키에 기초하여 후보 제1 서명 셰어에 대응하는 공개 키를 계산하는 단계; 및 제1 서명 셰어에 대응하는 공개 키가 후보 제1 서명 셰어에 대응하는 공개 키와 매칭되는지에 기초하여 제1 참가자가 서비스 거부 공격을 시도하고 있는지를 결정하는 단계를 포함한다.
조정자는 다른 참가자들 중 일부 또는 전부에 대한 개개의 제1 공개 키 및 개개의 제2 공개 키를 계산할 수 있다. 이는 조정자가 해당 다른 참가자들이 서비스 거부 공격을 시도하고 있는지를 결정하도록 허용한다.
조정 당사자는 그룹의 참가자일 수 있다.
스테이트먼트 33.
스테이트먼트 31 또는 스테이트먼트 32의 방법에 있어서, 제1 서명에 대응하는 공개 키가 후보 제1 서명 셰어에 대응하는 공개 키와 매칭되는 것을 조건으로, 제1 서명 및 그룹의 개개의 참가자들에 의해 계산된 하나 이상의 부가적인 서명 셰어들에 기초하여 서명을 계산하기 위해 제1 서명 셰어를 사용하는 단계를 포함한다.
스테이트먼트 34.
스테이트먼트 33의 방법에 있어서, 제1 서명 셰어 및 그룹의 개개의 참가자에 의해 계산된 하나 이상의 부가적인 서명 셰어들에 기초하여 서명을 계산하기 위해 제1 서명 셰어를 사용하는 단계; 제1 서명 셰어는 제1 공개 키 및 제2 공개 키의 상기 수신 또는 계산 이전에 수신되는, 서명이 유효하지 않은 서명인지를 결정하는 단계; 및 서명이 유효하지 않은 서명이라는 결정에 대한 응답으로, 제1 참가자가 서비스 거부 공격을 시도하고 있는지를 결정하는 상기 단계를 수행하는 단계를 포함한다.
스테이트먼트 35.
스테이트먼트 34의 방법에 있어서, 서명이 유효하지 않은 서명인지를 결정하는 상기 단계는 셰어드 개인 키에 대응하는 공개 키에 대해 서명을 검증하는 단계를 포함한다.
스테이트먼트 36.
컴퓨터 장비로서, 하나 이상의 메모리 유닛들을 포함하는 메모리; 및 하나 이상의 프로세싱 유닛들을 포함하는 프로세싱 장치를 포함하고, 메모리는 프로세싱 장치 상에서 실행되도록 배열된 코드를 저장하고, 코드는 프로세싱 장치 상에 있을 때, 스테이트먼트들 20 내지 35 중 어느 하나의 방법을 수행하도록 구성된다.
스테이트먼트 37.
컴퓨터-판독 가능 저장소 상에서 구체화되고, 컴퓨터 장비 상에서 실행될 때 스테이트먼트들 20 내지 35 중 어느 하나의 방법을 수행하도록 구성된 컴퓨터 프로그램.
본원에서 개시된 다른 양상에 따르면, 제1 참가자, 다른 참가자들의 일부 또는 전부, 및 조정자 중 일부 또는 전부의 액션들을 포함하는 방법이 제공될 수 있다.
본원에서 개시된 다른 양상에 따르면, 제1 참가자, 다른 참가자들의 일부 또는 전부, 및 조정자 중 일부 또는 전부의 컴퓨터 장비를 포함하는 시스템이 제공될 수 있다.
개시된 기술들의 다른 변형들 또는 사용 사례들은 본원에서의 개시가 주어지면 당업자에게 명백해질 수 있다. 본 개시내용의 범위는 설명된 실시예에 의해 제한되는 것이 아니라 첨부된 청구들에 의해서만 제한된다.
Claims (37)
- 임계 서명 체계(threshold signature scheme) 동안 서비스 거부 공격(denial-of-service attack)을 식별하는 컴퓨터-구현 방법으로서,
참가자들의 그룹의 각각의 참가자는 제1 셰어드 비밀(shared secret)의 개개의 셰어(share) 및 제2 셰어드 비밀의 개개의 셰어를 갖고, 상기 방법은 상기 그룹의 제1 참가자에 의해 수행되고,
적어도 상기 제1 셰어드 비밀의 제1 셰어 및 상기 제2 셰어드 비밀의 제1 셰어에 기초하여 제1 타겟 셰어를 계산하는 단계 ― 상기 제1 타겟 셰어는 임계 서명의 제1 서명 셰어를 계산하는 데 사용됨 ― ;
상기 제1 타겟 셰어 및 제1 미리 결정된 양의 다른 타겟 셰어들에 기초하여 타겟 값을 계산하는 단계 ― 각각의 다른 타겟 셰어는 개개의 참가자에 의해 계산됨 ― ;
상기 타겟 값에 대응하는 타겟 공개 키를 계산하는 단계;
상기 제1 셰어드 비밀의 제1 셰어 및 상기 제2 셰어드 비밀에 대응하는 공개 키에 기초하여 제1 검증 셰어를 계산하는 단계;
적어도 상기 제1 검증 셰어 및 제2 미리 결정된 양의 다른 검증 셰어들에 기초하여 검증 공개 키를 계산하는 단계 ― 각각의 다른 검증 셰어는 개개의 참가자에 의해 계산됨 ― ; 및
상기 검증 공개 키가 상기 타겟 공개 키와 매칭되는지에 기초하여 적어도 하나의 다른 참가자가 서비스 거부 공격을 시도하고 있는지를 결정하는 단계를 포함하는,
컴퓨터-구현 방법. - 제1 항에 있어서,
상기 그룹 내 다른 참가자들과 상기 제1 타겟 셰어 및 상기 제1 검증 셰어를 공유하는 단계를 포함하는,
컴퓨터-구현 방법. - 제2 항에 있어서,
상기 공유하는 단계는 상기 그룹 내 다른 참가자들에게 상기 제1 타겟 셰어 및/또는 상기 제1 검증 셰어를 브로드캐스팅하는 단계를 포함하는,
컴퓨터-구현 방법. - 전술한 청구항 중 어느 한 항에 있어서,
상기 개개의 참가자들로부터 상기 제1 미리 결정된 양의 다른 타겟 셰어들을 획득하는 단계; 및
상기 개개의 참가자들로부터 상기 제2 미리 결정된 양의 다른 검증 셰어들을 획득하는 단계를 포함하는,
컴퓨터-구현 방법. - 전술한 청구항 중 어느 한 항에 있어서,
상기 제1 셰어드 비밀의 제1 셰어는 상기 참가자들의 그룹과 JVRSS(joint verification random secret sharing scheme)의 제1 인스턴스를 수행함으로써 계산되는,
컴퓨터-구현 방법. - 전술한 청구항 중 어느 한 항에 있어서,
상기 제2 셰어드 비밀의 제1 셰어는 상기 참가자들의 그룹과 JVRSS의 제2 인스턴스를 수행함으로써 계산되는,
컴퓨터-구현 방법. - 제6 항에 있어서,
상기 제2 셰어드 비밀에 대응하는 공개 키는 상기 JVRSS의 제2 인스턴스를 수행할 때 각각의 참가자에 의해 공유되는 난독화된 계수들에 기초하여 계산되는,
컴퓨터-구현 방법. - 전술한 청구항 중 어느 한 항에 있어서,
각각의 참가자는 시퀀스의 개개의 인덱스와 연관되고, 상기 제1의 미리 결정된 양의 다른 타겟 셰어들은 상기 제1 참가자의 인덱스를 뒤따르는 개개의 인덱스들을 갖는 다른 참가자들에 의해 계산되고, 상기 제2의 미리 결정된 양의 다른 검증 셰어들은 상기 제1 참가자의 인덱스를 뒤따르는 개개의 인덱스들을 갖는 다른 참가자들에 의해 계산되는,
컴퓨터-구현 방법. - 전술한 청구항 중 어느 한 항에 있어서,
상기 그룹은 크기 N≥2t+1을 갖고, 상기 제1 셰어드 비밀의 임계치 및 상기 임계 서명의 임계치는 t+1이고, t는 상기 제1 셰어드 비밀의 차수인,
컴퓨터-구현 방법. - 제9 항에 있어서,
상기 제1 미리 결정된 양은 2t이고 상기 제2 미리 결정된 양은 t인,
컴퓨터-구현 방법. - 제9 항 또는 제10 항에 있어서,
상기 그룹은 크기 N>2t+1을 갖고, 상기 검증 공개 키를 계산하는 상기 단계는 복수의 검증 공개 키들을 계산하는 단계를 포함하고, 각각의 검증 공개 키는 상기 제1 검증 셰어 및 상이한 제2 미리 결정된 양의 다른 검증 셰어들에 기초하여 계산되고, 상기 방법은,
상기 복수의 검증 공개 키들 각각을 비교하는 단계; 및
개개의 검증 셰어가 적어도 하나의 다른 검증 공개 키와 매칭되지 않는 검증 공개 키를 초래하는 참가자로서, 서비스 거부 공격을 시도하는 적어도 하나의 참가자를 식별하는 단계를 포함하는,
컴퓨터-구현 방법. - 전술한 청구항 중 어느 한 항에 있어서,
상기 제1 셰어드 비밀은 제1 블라인딩 키이고, 상기 제2 셰어드 비밀은 임시 키(ephemeral key)이고, 상기 제1 타겟 셰어는 곱셈 셰어(multiplicative share)인,
컴퓨터-구현 방법. - 제1 항 내지 제11 항 중 어느 한 항에 있어서,
상기 참가자들의 그룹의 각각의 참가자는 제3 셰어드 비밀의 개개의 셰어를 갖고, 상기 제1 타겟 셰어는 상기 제1 셰어드 비밀의 제1 셰어에 기초하여 계산되고, 상기 검증 공개 키는 상기 제3 셰어드 비밀에 대응하는 공개 키에 기초하여 계산되는,
컴퓨터-구현 방법. - 제13 항에 있어서,
상기 제1 셰어드 비밀은 역 임시 키(inverse ephemeral key)이고, 상기 제2 셰어드 비밀은 개인 키이고, 상기 제3 셰어드 비밀은 제2 블라인딩 키이고, 상기 제1 타겟 셰어는 제1 중간 셰어(intermediary share)인,
컴퓨터-구현 방법. - 제13 항 또는 제14 항에 있어서,
상기 제3 셰어드 비밀의 제1 셰어는 상기 참가자들의 그룹과 JVRSS의 제3 인스턴스를 수행함으로써 계산되는,
컴퓨터-구현 방법. - 제6 항에 있어서,
상기 제3 셰어드 비밀에 대응하는 공개 키는 상기 JVRSS의 제3 인스턴스를 수행할 때 각각의 참가자에 의해 공유되는 난독화 계수들에 기초하여 계산되는,
컴퓨터-구현 방법. - 전술한 청구항 중 어느 한 항에 있어서,
상기 검증 공개 키가 상기 타겟 공개 키와 매칭된다는 것을 조건으로 상기 제1 서명 셰어를 계산하기 위해 상기 제1 타겟 셰어 및/또는 상기 타겟 값만을 사용하는 단계를 포함하는,
컴퓨터-구현 방법. - 컴퓨터 장비로서,
하나 이상의 메모리 유닛들을 포함하는 메모리; 및
하나 이상의 프로세싱 유닛들을 포함하는 프로세싱 장치를 포함하고, 상기 메모리는 상기 프로세싱 장치 상에서 실행되도록 구성된 코드를 저장하고, 상기 코드는 상기 프로세싱 장치 상에 있을 때, 제1 항 내지 제17 항 중 어느 한 항의 방법을 수행하도록 구성되는,
컴퓨터 장비. - 컴퓨터-판독 가능 저장소 상에서 구체화되고, 컴퓨터 장비 상에서 실행될 때 제1 항 내지 제17 항 중 어느 한 항의 방법을 수행하도록 구성된 컴퓨터 프로그램.
- 임계 서명 체계 동안 서비스 거부 공격을 식별하는 컴퓨터-구현 방법으로서,
참가자들의 그룹의 각각의 참가자는 셰어드 개인 키의 개개의 셰어, 임시 개인 키의 개개의 셰어, 제1 블라인딩 키의 개개의 셰어 및 제2 블라인딩 키의 개개의 셰어를 가지며, 상기 방법은 상기 그룹의 제1 참가자에 의해 수행되고,
제1 역 임시 개인 키 셰어에 대응하는 제1 공개 키를 계산하는 단계 ― 상기 제1 공개 키는 i) 상기 임시 개인 키 및 상기 제1 블라인딩 키의 곱의 역, 및 ii) 상기 제1 블라인딩 키의 제1 셰어에 대응하는 공개 키에 기초하여 계산됨 ― ;
사전-서명 셰어에 대응하는 제2 공개 키를 계산하는 단계 ― 상기 제2 공개 키는 i) 중간 값에 대응하는 공개 키 및 ii) 상기 제2 블라인딩 키의 제1 셰어에 대응하는 공개 키에 기초하여 계산되고, 상기 중간 값은 i) 상기 임시 개인 키의 역, ii) 상기 개인 키 및 iii) 상기 제2 블라인딩 키에 기초함 ― ; 및
상기 제1 공개 키 및 상기 제2 공개 키를 조정 당사자에게 전송하는 단계를 포함하고, 상기 조정 당사자는 상기 제1 참가자에 의해 계산된 제1 서명 셰어에 대한 액세스를 갖고, 상기 제1 서명 셰어는, i) 상기 임시 개인 키의 제1 셰어, ii) 메시지, iii) 상기 셰어드 개인 키에 대응하는 공개 키, 및 iv) 상기 제2 블라인딩 키의 제1 셰어에 기초하여 계산되는,
컴퓨터-구현 방법. - 제20 항에 있어서,
상기 개개의 셰어들의 일부 또는 전부는 JVRSS(joint verifiable random secret sharing) 체계의 개개의 인스턴스들을 사용하여 계산되는,
컴퓨터-구현 방법. - 제20 항 또는 제21 항에 있어서,
상기 임시 개인 키 및 상기 제1 블라인딩 키의 곱의 역을 계산하는 단계를 포함하는,
컴퓨터-구현 방법. - 전술한 청구항 중 어느 한 항에 있어서,
제1 중간 셰어 및 각각의 다른 참가자로부터의 개개의 중간 셰어에 기초하여 상기 중간 값을 계산하는 단계를 포함하는,
컴퓨터-구현 방법. - 제23 항에 있어서,
상기 중간 값에 대응하는 공개 키를 계산하는 단계를 포함하는,
컴퓨터-구현 방법. - 전술한 청구항 중 어느 한 항에 있어서,
상기 제1 블라인딩 키의 제1 셰어에 대응하는 공개 키를 계산하는 단계를 포함하는,
컴퓨터-구현 방법. - 전술한 청구항 중 어느 한 항에 있어서,
상기 제2 블라인딩 키의 제1 셰어에 대응하는 공개 키를 계산하는 단계를 포함하는,
컴퓨터-구현 방법. - 전술한 청구항 중 어느 한 항에 있어서,
상기 제1 서명 셰어를 계산하는 단계; 및
상기 제1 서명 셰어를 상기 조정 당사자에 전송하는 단계를 포함하는,
컴퓨터-구현 방법. - 전술한 청구항 중 어느 한 항에 있어서,
상기 조정 당사자로부터 상기 메시지를 획득하는 단계를 포함하는,
컴퓨터-구현 방법. - 제20 항 내지 제28 항 중 어느 한 항에 있어서,
상기 메시지를 생성하는 단계를 포함하는,
컴퓨터-구현 방법. - 전술한 청구항 중 어느 한 항에 있어서,
상기 셰어드 임시 개인 키에 대응하는 공개 키를 계산하는 단계를 포함하고, 상기 제1 서명 셰어는 상기 셰어드 임시 개인 키에 대응하는 공개 키의 제1 좌표에 기초하는,
컴퓨터-구현 방법. - 서비스 거부 공격을 식별하는 컴퓨터-구현 방법으로서,
참가자들의 그룹의 각각의 참가자는 개인 키의 개개의 셰어, 임시 개인 키의 개개의 셰어, 제1 블라인딩 키의 개개의 셰어 및 제2 블라인딩 키의 개개의 셰어를 가지며, 상기 방법은 임계 수의 서명 셰어들에 기초하여 서명을 생성하도록 구성된 조정 당사자에 의해 수행되며,
제1 참가자로부터 제1 공개 키를 수신하는 단계;
상기 제1 참가자로부터 제2 공개 키를 수신하는 단계;
상기 제1 참가자로부터 제1 서명 셰어를 수신하는 단계;
i) 상기 제1 공개 키, ii) 메시지, iii) 셰어드 임시 개인 키에 대응하는 공개 키 및 iv) 상기 제2 공개 키에 기초하여 제1 후보 서명 셰어에 대응하는 공개 키를 계산하는 단계; 및
상기 제1 서명 셰어에 대응하는 공개 키가 상기 제1 후보 서명 셰어에 대응하는 공개 키와 매칭되는지에 기초하여 상기 제1 참가자가 서비스 거부 공격을 시도하고 있는지를 결정하는 단계를 포함하는,
컴퓨터-구현 방법. - 서비스 거부 공격을 식별하는 컴퓨터-구현 방법으로서,
참가자들의 그룹의 각각의 참가자는 개인 키의 개개의 셰어, 임시 개인 키의 개개의 셰어, 제1 블라인딩 키의 개개의 셰어 및 제2 블라인딩 키의 개개의 셰어를 가지며, 상기 방법은 임계 수의 서명 셰어들에 기초하여 서명을 생성하도록 구성된 조정 당사자에 의해 수행되며,
제1 참가자의 제1 역 임시 개인 키 셰어에 대응하는 제1 공개 키를 계산하는 단계;
상기 제1 참가자의 사전-서명 셰어에 대응하는 제2 공개 키를 계산하는 단계;
상기 제1 참가자로부터 제1 서명 셰어를 수신하는 단계;
i) 상기 제1 공개 키, ii) 메시지, iii) 셰어드 임시 개인 키에 대응하는 공개 키, 및 iv) 상기 제2 공개 키에 기초하여 후보 제1 서명 셰어에 대응하는 공개 키를 계산하는 단계; 및
상기 제1 서명 셰어에 대응하는 공개 키가 상기 후보 제1 서명 셰어에 대응하는 공개 키와 매칭되는지에 기초하여 상기 제1 참가자가 서비스 거부 공격을 시도하고 있는지를 결정하는 단계를 포함하는,
컴퓨터-구현 방법. - 제31 항 또는 제32 항에 있어서,
상기 제1 서명에 대응하는 공개 키가 상기 후보 제1 서명 셰어에 대응하는 공개 키와 매칭되는 것을 조건으로, 상기 제1 서명 및 상기 그룹의 개개의 참가자들에 의해 계산된 하나 이상의 부가적인 서명 셰어들에 기초하여 서명을 계산하기 위해 상기 제1 서명 셰어를 사용하는 단계를 포함하는,
컴퓨터-구현 방법. - 제33 항에 있어서,
상기 제1 서명 셰어 및 상기 그룹의 개개의 참가자에 의해 계산된 하나 이상의 부가적인 서명 셰어들에 기초하여 서명을 계산하기 위해 상기 제1 서명 셰어를 사용하는 단계 ― 상기 제1 서명 셰어는 상기 제1 공개 키 및 상기 제2 공개 키의 상기 수신 또는 계산 이전에 수신됨 ― ;
상기 서명이 유효하지 않은 서명인지를 결정하는 단계; 및
상기 서명이 유효하지 않은 서명이라는 결정에 대한 응답으로, 상기 제1 참가자가 서비스 거부 공격을 시도하고 있는지를 결정하는 상기 단계를 수행하는 단계를 포함하는,
컴퓨터-구현 방법. - 제34 항에 있어서,
상기 서명이 유효하지 않은 서명인지를 결정하는 상기 단계는 상기 셰어드 개인 키에 대응하는 공개 키에 대해 상기 서명을 검증하는 단계를 포함하는,
컴퓨터-구현 방법. - 컴퓨터 장비로서,
하나 이상의 메모리 유닛들을 포함하는 메모리; 및
하나 이상의 프로세싱 유닛들을 포함하는 프로세싱 장치를 포함하고, 상기 메모리는 상기 프로세싱 장치 상에서 실행되도록 구성된 코드를 저장하고, 상기 코드는 상기 프로세싱 장치 상에 있을 때, 제20 항 내지 제35 항 중 어느 한 항의 방법을 수행하도록 구성되는,
컴퓨터 장비. - 컴퓨터-판독 가능 저장소 상에서 구체화되고, 컴퓨터 장비 상에서 실행될 때 제20 항 내지 제35 항 중 어느 한 항의 방법을 수행하도록 구성된 컴퓨터 프로그램.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB2017103.9 | 2020-10-28 | ||
GB2017103.9A GB2600684A (en) | 2020-10-28 | 2020-10-28 | Identifying denial-of-service attacks |
PCT/EP2021/076686 WO2022089865A1 (en) | 2020-10-28 | 2021-09-28 | Identifying denial-of-service attacks |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230093432A true KR20230093432A (ko) | 2023-06-27 |
Family
ID=73643131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237013703A KR20230093432A (ko) | 2020-10-28 | 2021-09-28 | 서비스 거부 공격들의 식별 |
Country Status (8)
Country | Link |
---|---|
US (1) | US20230319103A1 (ko) |
EP (1) | EP4183105A1 (ko) |
JP (1) | JP2023547156A (ko) |
KR (1) | KR20230093432A (ko) |
CN (1) | CN116349203A (ko) |
GB (1) | GB2600684A (ko) |
TW (1) | TW202231018A (ko) |
WO (1) | WO2022089865A1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254410B (zh) * | 2021-05-29 | 2024-02-02 | 陕西师范大学 | 一种可证明安全的可公开验证多级多秘密共享方法及系统 |
US11985254B2 (en) * | 2021-08-27 | 2024-05-14 | Paypal, Inc. | Threshold multi-party computation with must-have member |
CN115208586B (zh) * | 2022-09-13 | 2022-12-30 | 中安网脉(北京)技术股份有限公司 | 一种基于秘密分享的数字签名方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020116611A1 (en) * | 2000-10-31 | 2002-08-22 | Cornell Research Foundation, Inc. | Secure distributed on-line certification authority |
MX2018009355A (es) | 2016-02-23 | 2018-12-19 | Nchain Holdings Ltd | Almacenamiento y transferencia seguros resistentes a perdida de multiples partes de claves criptograficas para sistemas a base de cadena de bloques en conjunto con un sistema de administracion de billetera. |
KR20240011260A (ko) * | 2017-08-15 | 2024-01-25 | 엔체인 홀딩스 리미티드 | 임계치 볼트를 생성하는 컴퓨터로 구현되는 방법 |
-
2020
- 2020-10-28 GB GB2017103.9A patent/GB2600684A/en active Pending
-
2021
- 2021-09-28 EP EP21786151.7A patent/EP4183105A1/en active Pending
- 2021-09-28 JP JP2023524762A patent/JP2023547156A/ja active Pending
- 2021-09-28 CN CN202180072767.3A patent/CN116349203A/zh active Pending
- 2021-09-28 KR KR1020237013703A patent/KR20230093432A/ko unknown
- 2021-09-28 US US18/033,725 patent/US20230319103A1/en active Pending
- 2021-09-28 WO PCT/EP2021/076686 patent/WO2022089865A1/en active Application Filing
- 2021-10-05 TW TW110137069A patent/TW202231018A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
TW202231018A (zh) | 2022-08-01 |
CN116349203A (zh) | 2023-06-27 |
GB202017103D0 (en) | 2020-12-09 |
US20230319103A1 (en) | 2023-10-05 |
WO2022089865A1 (en) | 2022-05-05 |
JP2023547156A (ja) | 2023-11-09 |
EP4183105A1 (en) | 2023-05-24 |
GB2600684A (en) | 2022-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230246825A1 (en) | Generating secret shares | |
US20230319103A1 (en) | Identifying denial-of-service attacks | |
CN115885498A (zh) | 阈值签名 | |
US20240097894A1 (en) | Threshold key exchange | |
CN118160275A (zh) | 阈值签名方案 | |
US20240121109A1 (en) | Digital signatures | |
US20230163977A1 (en) | Digital signatures | |
WO2023036528A1 (en) | Generating shared cryptographic keys | |
KR20240045231A (ko) | 디지털 서명 셰어의 생성 | |
KR20240093465A (ko) | 셰어드 키의 생성 | |
US20240214218A1 (en) | Nested threshold signatures | |
KR20240046201A (ko) | 디지털 서명들의 생성 | |
WO2023016730A1 (en) | Generating digital signatures | |
EP4399834A1 (en) | Generating shared cryptographic keys | |
JP2024529095A (ja) | デジタル署名の生成 |