KR20240058446A - 다자간 컴퓨팅 디지털 서명 장치 및 방법 - Google Patents

다자간 컴퓨팅 디지털 서명 장치 및 방법 Download PDF

Info

Publication number
KR20240058446A
KR20240058446A KR1020220139182A KR20220139182A KR20240058446A KR 20240058446 A KR20240058446 A KR 20240058446A KR 1020220139182 A KR1020220139182 A KR 1020220139182A KR 20220139182 A KR20220139182 A KR 20220139182A KR 20240058446 A KR20240058446 A KR 20240058446A
Authority
KR
South Korea
Prior art keywords
individual
key
user
private key
mpc
Prior art date
Application number
KR1020220139182A
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 하이파이브랩 주식회사
Priority to KR1020220139182A priority Critical patent/KR20240058446A/ko
Priority to CN202310564767.6A priority patent/CN117938391A/zh
Priority to US18/320,094 priority patent/US20240146542A1/en
Publication of KR20240058446A publication Critical patent/KR20240058446A/ko

Links

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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3255Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using group based signatures, e.g. ring or threshold signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/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/08Key distribution or management, e.g. generation, sharing or updating, 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/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
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3231Biological data, e.g. fingerprint, voice or retina
    • 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/46Secure multiparty computation, e.g. millionaire problem

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Collating Specific Patterns (AREA)

Abstract

본 발명은 다자간 컴퓨팅 디지털서명 장치에 관한 것으로서, 사용자에 대응하는 개별 개인키를 생성하는 개별 개인키 생성부, 상기 생성된 개별 개인키를 나누어 복수의 조각들을 생성하는 개별 개인키 조각 생성부, 적어도 1인 이상의 타 사용자의 공유된 개별 개인키 조각들 중 일부와 상기 생성된 복수의 개별 개인키 조각들 중 일부를 이용하여 상기 사용자에 대응하는 개별 분산키를 생성하는 개별 분산키 생성부, 및 상기 적어도 1인 이상의 타 사용자의 개별 분산키와 상기 사용자의 개별 분산키를 이용하여 공통의 공개키를 생성하는 공통 공개키 생성부를 포함하는 것을 특징으로 하며, 사용자 각각의 개별 개인키를 조각낸 후 다시 각 사용자별로 상기 조각난 개별 개인키의 일부를 공유한 후 개별 분산키를 생성함으로써, 사용자 일부의 개인키 및 공통의 개인키 유출로 인한 사고가 불가능하게 된다.

Description

다자간 컴퓨팅 디지털 서명 장치 및 방법{Apparatus of making digital signature based on multi-party computation and method thereof}
본 발명은 다자간 컴퓨팅 디지털서명 장치에 관한 것으로서, 더욱 상세하게는 사용자 각각의 개별 개인키를 조각낸 후 다시 각 사용자별로 상기 조각난 개별 개인키의 일부를 공유한 후 개별 분산키를 생성함으로써, 일부 사용자의 개별 분산키 유출 또는 공통의 전체 개인키 유출로 인한 사고가 불가능한 다자간 컴퓨팅 디지털서명 장치 및 방법에 관한 것이다.
하드웨어 보안 모듈(Hardware Security Module, 이하 HSM)은 안전한 키 저장 및 암호화 처리를 위해 특별히 제작된 물리적 컴퓨팅 장치이다. 요컨대 HSM은 키 기밀성을 보호하도록 설계되었다. 키가 보안 하드웨어 환경 내에 있는 동안 키를 사용하여 작업을 수행할 수 있다.
암호 화폐 목적을 위해 HSM은 트랜잭션 서명 및 유효성 검사에 사용되는 개인키를 저장하는 데 사용된다. HSM은 네트워크에 연결될 수 있지만 오프라인 모드에서도 인터넷에서 완전히 분리된 지갑('콜드 스토리지'라고도 함)을 보호하는 데 사용할 수 있다.
다중서명(Multi-Signature)은 거래를 위해 암호화폐 지갑에 다수 관리자가 복수의 키를 생성하고 다수의 키로 서명할 때 거래가 발생하는 서명 방식이다.
다중서명기술이 적용되면 화폐 거래를 위해 다수의 관리자가 거래 서명에 참여해야 한다. 즉 여러 명이 가지고 있는 복수의 키를 서명해야 거래가 이뤄진다. 다중서명방식을 사용하게 되면 여러 개의 키 중 하나가 해킹 당하거나 분실되더라도 하나의 키를 이용하여 임의로 거래를 생성할 수 없다. 이렇게 다수의 서명이 있어야 거래가 생성되기 때문에 다중서명은 최근 암호화폐 탈취를 막을 수 있는 기술로 떠오르고 있다.
다자간 컴퓨팅(Multi-party computation, 이하 MPC)은 서로 신뢰하지 않는 다수가 각자의 입력값을 공유하지 않고, 암호화된 입력값의 계산 결과를 출력하는 것을 의미한다. MPC는 여러 참여자들이 서로의 투입값을 모르게 하면서, 함수의 연산에 안전하게 참여하면서 민감한 정보를 전달하지 않고 자신의 신원이나 내용을 증명하는 기술이다.
동형 암호학(Homomorphic Encryption)은 데이터를 암호화한 채로 연산할 수 있는 암호화 기법이다.
영지식 증명(Zero-Knowledge Proof)은 개인(prover)이 자신만이 가진 비밀 정보를 공개하지 않고 상대방인 확인자(verifier)에게 정보를 알고 있음을 증명할 수 있는 암호화 체계이다.
종래에는 보안키 관리의 책임이 개인에게 있어서 분실, 해킹, 및 관리부담의 문제가 빈번히 발생하고, 사용자별로 분산된 암호키가 노출되는 경우에는 보안에 취약해지는 상황이 발생하는 문제가 있었다.
따라서, 본 발명이 해결하고자 하는 첫 번째 과제는 사용자 각각의 개별 개인키를 조각낸 후 다시 각 사용자별로 상기 조각난 개별 개인키의 일부를 공유한 후 개별 분산키를 생성함으로써, 사용자 일부의 개별 분산키 유출 또는 공통의 전체 개인키 유출로 인한 사고가 불가능한 다자간 컴퓨팅 디지털서명 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 두 번째 과제는 개별 분산키를 암호화함으로써, 모든 사용자 단말기가 해킹되었더라도 개별 분산키가 노출되지 않도록 할 수 있는 다자간 컴퓨팅 디지털서명 방법을 제공하는 것이다.
또한, 상기된 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는데 있다.
본 발명은 상기 첫 번째 과제를 달성하기 위하여, 사용자에 대응하는 개별 개인키를 생성하는 개별 개인키 생성부; 상기 생성된 개별 개인키를 나누어 복수의 조각들을 생성하는 개별 개인키 조각 생성부; 적어도 1인 이상의 타 사용자의 공유된 개별 개인키 조각들 중 일부와 상기 생성된 복수의 개별 개인키 조각들 중 일부를 이용하여 상기 사용자에 대응하는 개별 분산키를 생성하는 개별 분산키 생성부; 및 상기 적어도 1인 이상의 타 사용자의 개별 분산키와 상기 사용자의 개별 분산키에 기초한 공통의 공개키를 생성하는 공통 공개키 생성부를 포함하는 다자간 컴퓨팅 디지털서명 장치를 제공한다.
본 발명의 일 실시 예에 의하면, 상기 사용자의 개별 분산키는 별도의 암호키로 암호화되는 것이 바람직하다.
또한, 상기 개별 분산키는 상기 사용자의 입력 암호값 또는 개인생체정보를 통해 암호화될 수 있다.
본 발명의 다른 실시 예에 의하면, 상기 공통 공개키 생성부는 상기 적어도 1인 이상의 타 사용자의 개별 분산키를 사용하여 연산한 결과값과 상기 사용자의 개별 분산키를 사용하여 연산한 결과값을 이용하여 공통의 공개키를 생성하는 것이 바람직하다.
본 발명의 또 다른 실시 예에 의하면, 외부 서버로부터 트랜잭션 서명을 요청받고, 상기 사용자의 개별 분산키로 서명하는 서명부; 상기 개별 분산키로 서명된 서명값과 상기 적어도 1인 이상의 타 사용자의 공유된 서명값을 결합하여 공동 서명값을 도출하는 공동 서명값 도출부를 포함하고, 상기 도출된 공동 서명값을 상기 공통의 공개키를 이용하여 검증함으로써, 상기 트랜잭션의 유효성을 확인할 수 있다.
본 발명은 상기 두 번째 과제를 달성하기 위하여, 사용자에 대응하는 개별 개인키를 생성하는 단계; 상기 생성된 개별 개인키를 나누어 복수의 조각들을 생성하는 단계; 적어도 1인 이상의 타 사용자의 공유된 개별 개인키 조각들 중 일부와 상기 생성된 복수의 개별 개인키 조각들 중 일부를 이용하여 상기 사용자에 대응하는 개별 분산키를 생성하는 단계; 및 상기 적어도 1인 이상의 타 사용자의 개별 분산키와 상기 사용자의 개별 분산키에 기초한 공통의 공개키를 생성하는 단계를 포함하는 다자간 컴퓨팅 디지털서명 방법을 제공한다.
본 발명의 일 실시 예에 의하면, 외부 서버로부터 트랜잭션 서명을 요청받고, 상기 사용자의 개별 분산키로 서명하는 단계; 및 상기 개별 분산키로 서명된 서명값과 상기 적어도 1인 이상의 타 사용자의 공유된 서명값을 결합하여 공동 서명값을 도출하는 단계를 더 포함하고, 상기 도출된 공동 서명값을 상기 공통의 공개키를 이용하여 검증함으로써, 상기 트랜잭션의 유효성을 확인할 수 있다.
상기 다른 기술적 과제를 해결하기 위하여, 본 발명은 상기된 다자간 컴퓨팅 디지털서명 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
본 발명에 따르면, 사용자 각각의 개별 개인키를 조각낸 후 다시 각 사용자별로 상기 조각난 개별 개인키의 일부를 공유한 후 개별 분산키를 생성함으로써, 사용자 일부의 개별 분산키 및 공통의 전체 개인키 유출로 인한 사고가 불가능하게 된다.
또한, 본 발명에 따르면, 개별 분산키를 별도의 암호키로 암호화함으로써, 모든 사용자 단말기가 해킹되더라도 개별 분산키가 노출되지 않도록 할 수 있다.
도 1은 본 발명의 일 실시예에 따른 다자간 컴퓨팅 디지털서명 장치를 포함한 전체 시스템 구성도이다.
도 2는 본 발명의 일 실시예에 따른 다자간 컴퓨팅 디지털서명 방법에서 개별 개인키를 조각내어 공통의 공개키를 생성하는 과정을 도식화한 도면이다.
도 3은 본 발명의 다른 실시 예에 따른 다자간 컴퓨팅 디지털서명 장치를 포함한 전체 시스템 구성도이다.
도 4는 본 발명의 다른 실시예에 따른 개별 분산키를 이용하여 서명하는 과정을 도식화한 도면이다.
도 5는 본 발명의 다른 실시예에 따른 각 사용자별로 저장한 개별 분산키 조각을 이용하여 서명하는 과정을 도시한 것이다.
도 6은 본 발명의 또 다른 실시예에 따른 사용자가 하나의 개인키를 갖지 않고 여러 개의 개별 분산키로 나누어져 사업자 시스템에 포함된 복수의 지갑 서버에 분산된 상태를 도시한 것이다.
도 7은 본 발명의 일 실시 예에 따른 다자간 컴퓨팅 디지털서명 방법의 흐름도이다.
도 8은 본 발명의 다른 실시 예에 따른 다자간 컴퓨팅 디지털서명 방법의 흐름도이다.
이하 첨부된 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있는 바람직한 실시 예를 상세히 설명한다. 그러나 이들 실시 예는 본 발명을 보다 구체적으로 설명하기 위한 것으로, 본 발명의 범위가 이에 의하여 제한되지 않는다는 것은 당업계의 통상의 지식을 가진 자에게 자명할 것이다.
본 발명이 해결하고자 하는 과제의 해결 방안을 명확하게 하기 위한 발명의 구성을 본 발명의 바람직한 실시 예에 근거하여 첨부 도면을 참조하여 상세히 설명하되, 도면의 구성요소들에 참조번호를 부여함에 있어서 동일 구성요소에 대해서는 비록 다른 도면상에 있더라도 동일 참조번호를 부여하였으며 당해 도면에 대한 설명시 필요한 경우 다른 도면의 구성요소를 인용할 수 있음을 미리 밝혀둔다. 아울러 본 발명의 바람직한 실시 예에 대한 동작 원리를 상세하게 설명함에 있어 본 발명과 관련된 공지 기능 혹은 구성에 대한 구체적인 설명 그리고 그 이외의 제반 사항이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우, 그 상세한 설명을 생략한다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
도 1은 본 발명의 일 실시예에 따른 다자간 컴퓨팅 디지털서명 장치를 포함한 전체 시스템 구성도이다.
도 1을 참조하면, 다자간 컴퓨팅 디지털서명 장치를 포함한 전체 시스템은 제1 클라이언트(110), 제1 MPC 서버(140), 제2 MPC 서버(150), 제3 MPC 서버(160), 및 MPC 매니저 서버(200)를 포함하여 구성된다.
제1 MPC 서버(140)는 개별 개인키 생성부(141), 개별 개인키 조각 생성부(142), 송수신부(143), 개별 분산키 생성부(144), 저장부(145), 및 공통 공개키 생성부(146)를 포함한다. 도 1에서는 제1 MPC 서버(140)의 상세 구성을 도시하였으나 제2 MPC 서버(150)와 제3 MPC 서버(160)도 마찬가지로 구성되며, MPC 서버의 갯수는 3개에 한정되지 않는다.
MPC 매니저 서버(200)는 제1 MPC 서버(140), 제2 MPC 서버(150), 및 제3 MPC 서버(160)와 공통의 공개키 생성에 참여여부를 확인하고, 공통의 공개키 생성을 요청한다. 또한, MPC 매니저 서버(200)는 트랜잭션 서명이 필요한 경우 제1 MPC 서버(140), 제2 MPC 서버(150), 및 제3 MPC 서버(160)로 서명참여를 요청할 수 있다.
개별 개인키 생성부(141)는 사용자에 대응하는 개별 개인키를 생성한다. 상기 개별 개인키는 제1 MPC 서버(140)에서 내부적으로 랜덤하게 생성될 수 있다. 상기 개별 개인키는 제1 MPC 서버(140)가 개별 개인키 조각을 생성하는데 사용된 후 저장하지 않는 것이 바람직하다. 상기 개별 개인키가 각 MPC 서버에 저장되지 않고, 개별 개인키 조각들의 일부가 MPC 서버 간에 공유되므로, 어느 하나의 MPC 서버가 해킹되어도 개별 개인키를 온전히 복구하기는 어렵게 된다.
개별 개인키 조각 생성부(142)는 상기 생성된 개별 개인키를 나누어 복수의 개별 개인키 조각들을 생성한다. 도 2를 참조하면, 상기 개별 개인키 A는 A-1, A-2, A-3으로, 상기 개별 개인키 B는 B-1, B-2, B-3으로, 상기 개별 개인키 C는 C-1, C-2, C-3으로 나누어질 수 있다. 도 2에서는 개별 개인키를 3개의 조각으로 나누었으나, 개별 개인키를 나누는 조각의 갯수는 이에 한정되지 않는다. 본 발명의 일 실시예에 따른 다자간 컴퓨팅 디지털서명에 참여하는 사용자 수를 개별 개인키를 나누는 조각 숫자로 할 수 있다.
송수신부(143)는 개별 개인키 조각 생성부(142)로부터 개별 개인키 조각을 수신하여 수신된 개별 개인키 조각들 중 일부를 다른 MPC 서버, 즉 제2 MPC 서버(150)와 제3 MPC 서버(160)와 공유한다. 한편, 개별 개인키 조각 생성부(142)의 개별 개인키 조각들 중 일부를 다른 MPC 서버와 영지식증명방법을 사용하여 공유하면, 상기 공유되는 개별 개인키 조각들 중 일부가 정당한 것인지 확인할 수 있다.
또한, 송수신부(143)는 개별 분산키 생성부(144)에서 생성된 개별 분산키를 별도의 연산과정을 거쳐 제1 연산 결과값을 생성하고, 상기 생성된 제1 연산 결과값을 다른 MPC 서버와 공유할 수 있다. 한편, 개별 분산키 생성부(144)의 제1 연산 결과값을 다른 MPC 서버와 영지식증명방법을 사용하여 공유하면, 상기 공유되는 제1 연산 결과값이 정당한 것인지 확인할 수 있다.
영지식 증명은 개인(prover)이 자신만이 가진 비밀 정보를 공개하지 않고 상대방인 확인자(verifier)에게 정보를 알고 있음을 증명할 수 있는 암호화 체계이다.
개별 분산키 생성부(144)는 적어도 1인 이상의 타 사용자의 공유된 개별 개인키 조각들 중 일부와 상기 생성된 복수의 개별 개인키 조각들 중 일부를 이용하여 상기 사용자에 대응하는 개별 분산키를 생성한다.
다시 도 2를 참조하면, 제1 클라이언트(110)의 제1 사용자에 대응하는 개별 개인키가 개별 개인키 A로 설정되고, 제2 클라이언트(120)의 제2 사용자에 대응하는 개별 개인키가 개별 개인키 B로 설정되고, 제3 클라이언트(130)의 제3 사용자에 대응하는 개별 개인키가 개별 개인키 C로 설정될 수 있다.
일 실시예로서, 제1 사용자에 대응하는 개별 분산키 A는 개별 개인키 A,B,C의 각 첫번째 조각인 A-1, B-1, 및 C-1을 이용하여 생성되고, 제2 사용자에 대응하는 개별 분산키 B는 개별 개인키 A,B,C의 각 두번째 조각인 A-2, B-2, 및 C-2을 이용하여 생성되고, 제3 사용자에 대응하는 개별 분산키 C는 개별 개인키 A,B,C의 각 세번째 조각인 A-3, B-3, 및 C-3을 이용하여 생성될 수 있다.
따라서, 제1 클라이언트(110)의 제1 사용자에 대응하는 개별 개인키 조각들 중 A-1 조각은 제2 사용자 및 제3 사용자와 공유되지 않고, A-2 또는 A-3이 비대화형 영지식증명으로 제2 사용자 및 제3 사용자와 공유되므로, 개별 개인키 조각의 전부가 노출되는 경우는 없다.
공통 공개키 생성부(146)는 상기 적어도 1인 이상의 타 사용자의 개별 분산키와 상기 사용자의 개별 분산키에 기초한 공통의 공개키를 생성한다.
개별 분산키 A, 개별 분산키 B, 및 개별 분산키 C는 각각의 MPC 서버에서 별도의 연산과정을 거쳐 제1 연산 결과값, 제2 연산 결과값, 및 제3 연산 결과값을 생성하고, 제1 MPC 서버(140), 제2 MPC 서버(150), 제3 MPC 서버(160) 간에 영지식증명방법을 이용하여 공유되는 것이 바람직하다.
저장부(145)는 상기 생성된 개별 분산키 및 공통 공개키를 저장한다. 상기 개별 분산키가 저장부(145)에 암호화되어 저장되는 것이 바람직하며, 상기 개별 분산키를 서명시 사용할 경우에는 복호화하여 사용할 수 있다.
사용자가 제1 클라이언트(110)를 통해 입력한 암호값이나 사용자의 개인생체정보가 상기 개별 분산키를 암호화하는 데 사용되는 것이 바람직하다. 입력 암호값이나 사용자의 개인생체정보를 이용하여 개별 분산키를 암호화하는 경우 사용자가 실시간으로 참여하여야 함을 보장하고, 모든 서버가 해킹되었더라도 사용자가 관여하지 않으면 자산은 안전하게 보호할 수 있다.
각 MPC 서버에서 각 개별 분산키를 암호화하여 저장하기 때문에, 각 개별 분산키가 모두 노출되어도 사고가 발생하지 않게 된다.
저장부(145)는 안전한 키 저장 및 암호화 처리를 위해 특별히 제작된 물리적 컴퓨팅 장치인 하드웨어 보안 모듈(Hardware Security Module)일 수 있으며 이에 한정되지 아니한다.
도 2는 본 발명의 일 실시예에 따른 다자간 컴퓨팅 디지털서명 방법에서 개별 개인키를 조각내어 공통의 공개키를 생성하는 과정을 도식화한 도면이다.
제1 MPC 서버(140), 제2 MPC 서버(150), 및 제3 MPC 서버(160)는 제1 클라이언트(110), 제2 클라이언트(120), 및 제3 클라이언트(130)의 사용자에 대응하는 개별 개인키 A, B, C를 생성한다.
개별 개인키 A, B, C를 각각 샤미르 비밀 보장 공유 알고리즘을 통해 조각내고, 다른 사용자에 대응하는 개별 개인키 조각을 제1 MPC 서버(140), 제2 MPC 서버(150), 및 제3 MPC 서버(160)간에 공유한다. 상기 공유시 영지식증명방법을 사용할 수 있다.
도 2에서는 개별 개인키 A를 A-1, A-2, A-3으로, 개별 개인키 B를 B-1, B-2, B-3으로, 개별 개인키 C를 C-1, C-2, C-3으로 조각낸 것을 확인할 수 있다.
상기 공유시 사용자 자신에게 대응하는 개별 개인키 조각을 공유하지 않고, 나머지 개별 개인키 조각을 다른 사용자와 공유하는 것이 바람직하다. 또한, 개별 개인키 조각을 공유할 때 비대화형 영지식증명을 통하여 공유하는 것이 바람직하다.
제1 MPC 서버(140), 제2 MPC 서버(150), 및 제3 MPC 서버(160)는 자신이 공유받은 개별 개인키 조각을 결합하여 개별 분산키로 저장한다. 즉 제1 MPC 서버(140)는 A-1, B-1, C-1 조각을, 제2 MPC 서버(150)는 A-2, B-2, C-2 조각을, 제3 MPC 서버(160)는 A-3, B-3, C-3 조각을 개별 분산키로 저장하게 된다.
한편, 상기 각 개별 분산키들을 이용하여 공통의 공개키를 생성하고 저장하게 된다. 상기 저장된 공통의 공개키는 서명시 사용되는 공동 서명값을 검증하는데 사용될 수 있다.
도 3은 본 발명의 다른 실시 예에 따른 다자간 컴퓨팅 디지털서명 장치를 포함한 전체 시스템 구성도이다.
도 3을 참조하면, 다자간 컴퓨팅 디지털서명 장치를 포함한 전체 시스템은 제1 클라이언트(110), 제1 MPC 서버(140), 제2 MPC 서버(150), 제3 MPC 서버(160), 및 MPC 매니저 서버(200)를 포함하여 구성된다.
제1 MPC 서버(140)는 송수신부(143), 저장부(145), 서명부(147), 공동 서명값 도출부(148), 및 검증부(149)를 포함한다.
서명부(147)는 MPC 매니저 서버(200)로부터 송수신부(143)를 통해 트랜잭션 서명을 요청받고, 저장부(145)에 암호화되어 저장되어 있는 개별 분산키를 복호화한 후 서명한다.
공동 서명값 도출부(148)는 서명부(147)에서 개별 분산키로 서명된 서명값과 제2 MPC 서버(150) 및 제3 MPC 서버(160)와 공유된 서명값을 결합하여 공동 서명값을 도출한다.
검증부(149)는 상기 도출된 공동 서명값을 저장부(145)에 저장된 공통의 공개키를 이용하여 검증함으로써, 상기 트랜잭션의 유효성을 확인한다.
서명의 일 실시예로서, 3개의 MPC 서버, 즉, 제1 MPC 서버(140), 제2 MPC 서버(150), 제3 MPC 서버(160)가 공통의 공개키 생성에 참여하되, 서명이 2개 이상의 MPC 서버에서 이루어지는 경우 유효한 트랜잭션으로 인정될 수 있다.
도 4는 본 발명의 다른 실시예에 따른 개별 분산키를 이용하여 서명하는 과정을 도식화한 도면이다.
도 4를 참조하면, 기 설정된 임계값 이상의 MPC 서버를 이용하여 서명에 참여하기 위하여, 이미 저장된 개별 분산키로 해당 트랜잭션에 대한 서명을 각자 진행한다.
제1 MPC 서버(140)에서 개별 분산키 A를 이용하여 제1 사용자 서명값을 생성하고, 제2 MPC 서버(150)에서 개별 분산키 B를 이용하여 제2 사용자 서명값을 생성한다. 기 설정된 임계값이 2인 경우 제3 MPC 서버(160)가 서명에 참여하지 않는 경우에도 서명이 이루어질 수 있게 된다.
비대화형 영지식증명으로 상기 트랜잭션의 각 MPC 서버별 개별 분산키가 공개되지 않는 상태에서 제2 MPC 서버(150)는 제1 사용자 서명값을 보낸 제1 MPC 서버(140)의 서명이 정당한지 알게 되고, 제1 MPC 서버(140)는 제2 사용자 서명값을 보낸 제2 MPC 서버(150)의 서명이 정당한지 알게 된다.
제1 MPC 서버(140)와 제2 MPC 서버(150)는 서로 공유한 서명값을 활용하여 공동 서명값을 각각 도출한다.
상기 도출된 공동 서명값을 개별 분산키를 생성할 때 도출된 공통의 공개키를 이용하여 검증함으로써, 상기 서명된 트랜잭션의 유효성을 확인할 수 있게 된다.
도 5는 본 발명의 다른 실시예에 따른 각 사용자별로 저장한 개별 분산키를 이용하여 서명하는 과정을 도시한 것이다.
도 5를 참조하면, 제1 사용자 클라이언트, 제2 사용자 클라이언트, 지갑 서버 및 복구 서버는 각각의 개별 분산키를 저장하고 있다.
제1 사용자 클라이언트, 제2 사용자 클라이언트, 지갑 서버는 각각 도 1의 제1 MPC 서버(140), 제2 MPC 서버(150), 및 제3 MPC 서버(160)에 대응할 수 있다.
이 경우 제1 MPC 서버(140), 제2 MPC 서버(150), 및 제3 MPC 서버(160) 각각에서 생성된 개인키는 아래와 같이 생성될 수 있다.
예를 들어, 제1 사용자 클라이언트는 a,b,c로 구성된 개별 분산키 중 a,c 조각을 보유하고, 제2 사용자 클라이언트는 b, c 조각을 보유하고, 지갑 서버는 a,b 조각을 보유할 수 있다.
이 경우 제1 사용자 클라이언트, 제2 사용자 클라이언트, 및 지갑 서버 중 어느 한 주체에서 개별 분산키들이 유출된다고 하여도 모든 개별 분산키를 알 수 없기 때문에 모든 거래에 있어 다른 다자간 컴퓨팅 디지털 서명 장치가 관여하여야 한다.
한편, 개별 분산키 a,b가 유출된다고 하여도 공통의 공개키를 알 수 없기 때문에 다자간 컴퓨팅 디지털서명 장치의 내부 사고도 방지할 수 있게 된다.
도 6은 본 발명의 또 다른 실시예에 따른 사용자가 하나의 개인키를 갖지 않고 여러 개의 개별 분산키로 나누어져 사업자 시스템에 포함된 복수의 지갑 서버에 분산된 상태를 도시한 것이다.
도 6을 참조하면, 사용자 클라이언트는 하나의 개인키를 저장하지 않고, 개인키가 여러 개의 개별 분산키로 나누어져 각 개별 분산키가 사업자 시스템의 지갑서버(지역1)와 지갑서버(지역2)에 분산되어 저장되어 있다.
사업자 시스템에 포함된 지갑서버 중 어느 하나의 지갑서버에서 개별 분산키가 유출되는 경우에도 다른 지갑서버에 저장된 개별 분산키가 유출되지 않는다면, 계좌는 안전한 상태를 유지할 수 있다.
한편, 사용자 클라이언트, 지갑 서버(지역1), 및 지갑 서버(지역2)는 각각 도 1의 제1 클라이언트(110), 제1 MPC 서버(140), 및 제2 MPC 서버(150)에 대응할 수 있다.
도 1의 제1 클라이언트(110)와 마찬가지로 도 6의 사용자 클라이언트 역시 개인키를 저장하고 있지 않으며, 지갑 서버(지역1), 및 지갑 서버(지역2)는 아래와 같이 개별 분산키를 생성할 수 있다.
예를 들어, 지갑서버(지역1)가 개별 분산키의 조각 a,b를 보유하고, 지갑서버(지역2)가 개별 분산키의 조각 b,c를 보유한 경우, 지갑서버들(지역1, 지역2) 중 어느 하나의 지갑서버에서 개별 분산키 조각이 유출되더라도 거래가 일어나지 않도록 할 수 있다.
한편, 복구 서버는 개별 분산키의 조각 a,c를 보유하고 있으며, 지갑서버들 중 어느 하나의 개별 분산키의 조각이 분실되거나 삭제되더라도 그 외 다른 지갑서버와 복구 서버가 보유한 개별 분산키 조각으로 분실 또는 삭제된 개별 분산키 조각을 복구하거나 새로이 생성할 수 있다.
예를 들어, 지갑서버(지역1)의 개별 분산키 조각 a,b가 삭제된 경우, 복구 서버가 보유한 개별 분산키 조각 a,c와 지갑서버(지역2)가 보유한 개별 분산키 조각 b,c를 이용하면, 지갑서버(지역1)의 개별 분산키 조각 a,b를 복구할 수 있다.
도 7은 본 발명의 일 실시 예에 따른 다자간 컴퓨팅 디지털서명 방법의 흐름도이다.
도 7을 참조하면, 본 실시 예에 따른 다자간 컴퓨팅 디지털서명 방법은 도 1과 도 3에 도시된 다자간 컴퓨팅 디지털서명 장치에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하 생략된 내용이라 하더라도 도 1과 도 3에 도시된 다자간 컴퓨팅 디지털서명 장치에 관하여 이상에서 기술된 내용은 본 실시 예에 따른 다자간 컴퓨팅 디지털서명 방법에도 적용된다.
700 단계에서 다자간 컴퓨팅 디지털서명 장치의 일 실시예로서, 제1 MPC 서버(140)는 MPC 매니저 서버(200)로부터 키 생성 참여요청을 수신한다. 제1 MPC 서버(140)와 마찬가지로 제2 MPC 서버(150)와 제3 MPC 서버(160)도 MPC 매니저 서버(200)로부터 키 생성 참여요청을 수신한다. 도 7에서는 3개의 MPC 서버를 도시하고 있으나, 적어도 2개 이상의 복수의 서버로 구성될 수 있다.
701 단계에서 제1 MPC 서버(140), 제2 MPC 서버(150), 및 제3 MPC 서버(160)는 MPC 매니저 서버(200)로 키 생성 참여확인을 송신한다. 상기 키 생성 참여확인을 송신함으로써, 각 MPC 서버(140, 150, 160)가 개별 분산키 및 공통의 공개키 생성에 참여하게 된다.
702 단계에서 제1 MPC 서버(140), 제2 MPC 서버(150), 및 제3 MPC 서버(160)는 MPC 매니저 서버(200)로부터 키를 생성해 달라는 요청을 받는다. 상기 키 생성 요청을 받게 되면, 각 MPC 서버(140, 150, 160)는 710 단계 내지 760 단계를 각각 수행한다. 이하에서는 제1 MPC 서버(140)를 기준으로 설명하나 다른 MPC 서버(150, 160)도 동일한 방법을 수행한다.
710 단계에서 제1 MPC 서버(140)는 제1 사용자에 대응하는 개별 개인키 A를 생성한다. 상기 개별 개인키 A는 제1 MPC 서버(140) 내에서 생성된 랜덤값일 수 있다.
720 단계에서 제1 MPC 서버(140)는 상기 생성한 개별 개인키를 나누어 복수의 조각들을 생성한다. 개별 개인키를 나누는 조각의 수는 적어도 2개 이상이며, 조각의 수는 트랜잭션에 관여하는 사용자 수와 같은 것이 바람직하다.
730 단계에서 제1 MPC 서버(140)는 상기 생성된 개별 개인키의 조각의 일부를 다른 MPC 서버, 즉 제2 MPC 서버(150)와 제3 MPC 서버(160)와 공유할 수 있다. 제1 MPC 서버(140), 제2 MPC 서버(150), 및 제3 MPC 서버(160)는 상호 간에 개별 개인키 조각의 일부를 직접 공유할 수도 있고, MPC 매니저 서버(200)를 통해서 공유할 수도 있다.
개별 개인키 조각을 공유할 상대방의 개별 개인키에 대응되는 개별 공개키로 암호화하여 전달할 수 있다. 공유된 상대방의 암호화된 개별 개인키 조각을 자신의 개별 개인키로 복호화하면 나누어진 그대로의 개별 개인키 조각 데이터가 될 수 있다.
예를 들어, 제1 MPC 서버의 개별 개인키 A의 조각이 A-1, A-2, A-3와 같이 3조각으로 나누어진 경우 A-1은 제1 MPC 서버의 개별 분산키 생성에 이용되는 개인키 조각으로서, 다른 MPC 서버(150, 160)로 전송될 필요가 없고, A-2와 A-3 조각을 다른 MPC 서버로 전송하는 것이 바람직하다. 이러한 방법을 통해 개인키 A의 A-1 조각은 제1 MPC 서버(110) 외부로 전송되지 않도록 하여 온전한 개인키 A는 제1 MPC 서버(110)를 제외하고는 알 수 없게 된다. 따라서, 제1 MPC 서버(140)에 대응하는 개별 개인키의 조각은 상기 전송시 포함되지 않고 다른 MPC 서버에 대응하는 개인키 조각들만 전송시 포함될 수 있으며, 다른 MPC 서버들도 마찬가지 방법으로 개별 개인키의 조각을 전송할 수 있다.
740 단계에서 제1 MPC 서버(140)는 730 단계에서 공유된 개인키 조각들을 이용하여 제1 개별 분산키를 생성한다. 상기 생성된 제1 개별 분산키는 별도의 연산과정을 거쳐 제1 연산 결과값을 생성하는 것이 바람직하다. 상기 제1 개별 분산키를 사용하여 결과값을 연산하는 방법은 별도의 암호화 함수를 사용할 수 있다.
상기 예에서, 제1 MPC 서버(140)는 제2 MPC 서버(150)로부터 B-1 조각을, 제3 MPC 서버(160)로부터 C-1 조각을 수신하고, 제1 MPC 서버(140)가 이미 갖고 있는 A-1 조각과 함께 제1 개별 분산키를 생성할 수 있다. 상기 생성된 제1 개별 분산키는 암호화되어 저장부(145)에 저장되는 것이 바람직하다.
상기 개별 분산키를 암호화하는 함수는 개인생체정보, 아이디/패스워드 등의 정보들을 암호화키로 사용할 수 있다. 이때 상기 암호화키는 저장되어 있지 않는 것이 바람직하다. 상기 암호화하는 함수를 이용하여 개별 분산키를 암호화함으로써, 모든 MPC 서버가 해킹되었더라도 사용자가 관여하지 않으면 거래가 이루어지지 않게 된다.
750 단계에서 제1 MPC 서버(140)는 상기 생성된 제1 개별 분산키를 사용하여 연산한 결과값(제1 연산 결과값)을 다른 MPC 서버들, 즉 제2 MPC 서버(150)와 제3 MPC 서버(160)와 공유한다. 상기 제1 개별 분산키를 사용하여 연산 결과값을 연산하는 방법은 별도의 암호화 함수를 사용할 수 있다. 제1 MPC 서버(140)는 상기 제1 연산 결과값을 다른 MPC 서버와 영지식증명방법을 사용하여 공유함으로써, 다른 MPC 서버가 상기 공유되는 제1 연산 결과값이 정당한 것인지 확인할 수 있다.
760 단계에서 제1 MPC 서버(140)는 상기 제1 개별 분산키를 사용하여 연산한 결과값(제1 연산 결과값), 다른 MPC 서버들로부터 공유받은 제2 개별 분산키를 사용하여 연산한 결과값(제2 연산 결과값), 및 제3 개별 분산키를 사용하여 연산한 결과값(제3 연산 결과값)을 이용하여 공통의 공개키를 생성한다. 상기 연산은 임의의 함수를 이용한 산으로 모든 MPC 서버에서 동일한 함수를 사용하는 것이 바람직하다.
일 실시예로서, 제1 MPC 서버(140)는 상기 제1 개별 분산키, 상기 제2 개별 분산키, 및 상기 제3 개별 분산키 각각에 대해 동형 암호화 작업을 통해 나온 동형 암호화 결과값을 이용하여 공통의 공개키를 생성하는 것이 바람직하다.
각 MPC 서버(140, 150, 160)은 각각의 개별 분산키를 공유하지 않고, 개별 분산키를 사용하여 연산한 연산 결과값을 공유하므로, 개별 분산키가 외부로 노출되지 않는다.
도 8은 본 발명의 일 실시 예에 따른 다자간 디지털서명 암호화 방법으로 생성된 공통의 공개키를 이용하여 서명하는 방법의 흐름도이다.
800 단계에서 제1 MPC 서버(140)는 MPC 매니저 서버(200)로부터 서명에 참여할 것을 요청받는다.
801 단계에서 제1 MPC 서버(140)는 MPC 매니저 서버(200)로 서명 참여확인을 송신한다.
802 단계에서 제1 MPC 서버(140)는 MPC 매니저 서버(200)로부터 트랜잭션에 서명할 것을 요청받는다.
810 단계에서 제1 MPC 서버(140)는 740 단계에서 생성된 제1 개별 분산키를 이용하여 트랜잭션에 서명한다. 상기 제1 개별 분산키는 암호화되어 저장부(145)에 저장되어 있고, 암호화된 제1 개별 분산키를 복호화한 후 트랜잭션에 서명하는 것이 바람직하다.
820 단계에서 제1 MPC 서버(140)는 상기 제1 개별 분산키로 서명한 값을 다른 MPC 서버(150, 160)에서 각 개별 분산키로 서명한 값과 영지식증명방법을 사용하여 공유한다. 상기 영지식증명방법을 사용함으로써, 상기 개별 분산키가 공개되지 않는 상태에서 상기 서명한 값이 개별 분산키에 의해 서명된 것인지 증명된다.
830 단계에서 제1 MPC 서버(140)는 상기 공유한 서명값을 결합하여 공동 서명값을 도출한다.
840 단계에서 제1 MPC 서버(140)는 상기 도출된 공동 서명값을 디지털 서명으로 보고, 저장부(145)에 저장된 공통 공개키를 이용하여 검증함으로써, 생성된 디지털 서명이 올바른 디지털 서명인지 확인할 수 있다. 상기 공동 서명값의 검증은 서명에 참여한 다른 MPC 서버에서도 가능하다.
본 발명의 실시예에 따르면, 공통의 공개키에 대응하는 개인키가 실질적으로 존재하지 않고, 개별 분산키를 이용하여 서명하기 때문에 개인키 유출의 염려가 없는 장점이 있다.
도 8의 840 단계는 각 MPC 서버(140, 150, 160)에서 이루어지고 있으나, 공통의 공개키는 공개된 키이므로, 트랜잭션을 요청한 곳에서 검증이 이루어지는 것도 가능하다.
제1 MPC 서버(140)의 복호화한 개별 분산키 A로 수행한 디지털서명 작업을 sA(Tx)로 표현하고, 제2 MPC 서버(150)의 복호화한 개별 분산키 B로 수행한 디지털서명 작업을 sB(Tx)로 표현하고, 제3 MPC 서버(160)의 복호화한 개별 분산키 C로 수행한 디지털서명 작업은 sC(Tx)로 표현하며, 모든 개별 분산키의 디지털 서명 작업을 합치면 sABC(Tx)로 표현할 수 있다. 상기 sABC(Tx)는 공통 서명이 되어 사용되어진다.
한편, 백업용 또는 콜드 스토리지용으로 추가로 제4 MPC 서버(미도시)를 구비할 수 있다. 따라서, 제4 MPC 서버는 금융보안원과 같은 신뢰성이 담보된 기관의 단말기인 것이 바람직하다.
제1 MPC 서버(140), 제2 MPC 서버(150), 및 제3 MPC 서버(160)의 3개의 서버 각각에 개별 분산키를 생성하고, 적어도 2개 이상의 MPC 서버에서 유효한 서명이 이루어지는 경우, 정당한 트랜잭션으로 가정할 때, 제4 MPC 서버는 제1 MPC 서버(140), 제2 MPC 서버(150), 및 제3 MPC 서버(160) 중 어느 하나의 MPC 서버와 함께 서명하는 경우 유효한 트랜잭션을 일으킬 수 있게 되므로 백업용으로 기능하게 된다.
본 발명의 실시 예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
본 실시 예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(field-programmable gate array) 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
상술한 모든 기능은 상기 기능을 수행하도록 코딩된 소프트웨어나 프로그램 코드 등에 따른 마이크로프로세서, 제어기, 마이크로제어기, ASIC(Application Specific Integrated Circuit) 등과 같은 프로세서에 의해 수행될 수 있다. 상기 코드의 설계, 개발 및 구현은 본 발명의 설명에 기초하여 당업자에게 자명하다고 할 것이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시 예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시 예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시 예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.

Claims (8)

  1. 사용자에 대응하는 개인키를 생성하는 개별 개인키 생성부;
    상기 생성된 개별 개인키를 나누어 복수의 조각들을 생성하는 개별 개인키 조각 생성부;
    적어도 1인 이상의 타 사용자의 공유된 개별 개인키 조각들 중 일부와 상기 생성된 복수의 개별 개인키 조각들 중 일부를 이용하여 상기 사용자에 대응하는 개별 분산키를 생성하는 개별 분산키 생성부; 및
    상기 적어도 1인 이상의 타 사용자의 개별 분산키와 상기 사용자의 개별 분산키에 기초한 공통의 공개키를 생성하는 공통 공개키 생성부를 포함하는 다자간 컴퓨팅 디지털서명 장치.
  2. 제1 항에 있어서,
    상기 사용자의 개별 분산키는 별도의 암호키로 암호화되는 것을 특징으로 하는 다자간 컴퓨팅 디지털서명 장치.
  3. 제1 항에 있어서,
    상기 개별 분산키는 상기 사용자의 입력 암호값 또는 개인생체정보를 통해 암호화될 수 있는 것을 특징으로 하는 다자간 컴퓨팅 디지털서명 장치.
  4. 제1 항에 있어서,
    상기 공통 공개키 생성부는 상기 적어도 1인 이상의 타 사용자의 개별 분산키를 사용하여 연산한 결과값과 상기 사용자의 개별 분산키를 사용하여 연산한 결과값을 이용하여 공통의 공개키를 생성하는 것을 특징으로 하는 다자간 컴퓨팅 암호화 장치.
  5. 제1 항에 있어서,
    외부 서버로부터 트랜잭션 서명을 요청받고, 상기 사용자의 개별 분산키로 서명하는 서명부;
    상기 개별 분산키로 서명된 서명값과 상기 적어도 1인 이상의 타 사용자의 공유된 서명값을 결합하여 공동 서명값을 도출하는 공동 서명값 도출부를 포함하고,
    상기 도출된 공동 서명값을 상기 공통의 공개키를 이용하여 검증함으로써, 상기 트랜잭션의 유효성을 확인하는 것을 특징으로 하는 다자간 컴퓨팅 디지털서명 장치.
  6. 사용자에 대응하는 개별 개인키를 생성하는 단계;
    상기 생성된 개별 개인키를 나누어 복수의 조각들을 생성하는 단계;
    적어도 1인 이상의 타 사용자의 공유된 개별 개인키 조각들 중 일부와 상기 생성된 복수의 개별 개인키 조각들 중 일부를 이용하여 상기 사용자에 대응하는 개별 분산키를 생성하는 단계; 및
    상기 적어도 1인 이상의 타 사용자의 개별 분산키와 상기 사용자의 개별 분산키에 기초한 공통의 공개키를 생성하는 단계를 포함하는 다자간 컴퓨팅 디지털서명 방법.
  7. 제6 항에 있어서,
    외부 서버로부터 트랜잭션 서명을 요청받고, 상기 사용자의 개별 분산키로 서명하는 단계; 및
    상기 개별 분산키로 서명된 서명값과 상기 적어도 1인 이상의 타 사용자의 공유된 서명값을 결합하여 공동 서명값을 도출하는 단계를 더 포함하고,
    상기 도출된 공동 서명값을 상기 공통의 공개키를 이용하여 검증함으로써, 상기 트랜잭션의 유효성을 확인하는 것을 특징으로 하는 다자간 컴퓨팅 디지털서명 방법.
  8. 제6 항 또는 제7 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020220139182A 2022-10-26 2022-10-26 다자간 컴퓨팅 디지털 서명 장치 및 방법 KR20240058446A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020220139182A KR20240058446A (ko) 2022-10-26 2022-10-26 다자간 컴퓨팅 디지털 서명 장치 및 방법
CN202310564767.6A CN117938391A (zh) 2022-10-26 2023-05-18 多方计算数字签名装置以及方法
US18/320,094 US20240146542A1 (en) 2022-10-26 2023-05-18 Apparatus of making digital signature based on multi-party computation and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220139182A KR20240058446A (ko) 2022-10-26 2022-10-26 다자간 컴퓨팅 디지털 서명 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20240058446A true KR20240058446A (ko) 2024-05-03

Family

ID=90759938

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220139182A KR20240058446A (ko) 2022-10-26 2022-10-26 다자간 컴퓨팅 디지털 서명 장치 및 방법

Country Status (3)

Country Link
US (1) US20240146542A1 (ko)
KR (1) KR20240058446A (ko)
CN (1) CN117938391A (ko)

Also Published As

Publication number Publication date
US20240146542A1 (en) 2024-05-02
CN117938391A (zh) 2024-04-26

Similar Documents

Publication Publication Date Title
EP3685334B1 (en) Improving integrity of communications between blockchain networks and external data sources
CN106548345B (zh) 基于密钥分割实现区块链私钥保护的方法及系统
US6411716B1 (en) Method of changing key fragments in a multi-step digital signature system
US7359507B2 (en) Server-assisted regeneration of a strong secret from a weak secret
US11410175B2 (en) System and method for authentication with out-of-band user interaction
US20180034810A1 (en) A system and methods for protecting keys in computerized devices operating versus a server
US20080052772A1 (en) Preserving Privacy While Using Authorization Certificates
WO2017195886A1 (ja) 認証システム、認証方法およびプログラム
CN109919611B (zh) 基于对称密钥池服务器的抗量子计算区块链交易方法和系统
US20120331295A1 (en) Method for key generation, member authentication, and communication security in dynamic group
Qureshi et al. SeVEP: Secure and verifiable electronic polling system
CN113761582A (zh) 基于群签名的可监管区块链交易隐私保护方法及系统
CN111327419B (zh) 基于秘密共享的抗量子计算区块链的方法及系统
US20230319103A1 (en) Identifying denial-of-service attacks
CN111355591A (zh) 一种基于实名认证技术的区块链账号安全的管理方法
KR102354758B1 (ko) 영지식 증명 기술 기반 분산 디지털 인증 시스템 및 방법
Backes et al. Using mobile device communication to strengthen e-voting protocols
CN110365472B (zh) 基于非对称密钥池对的量子通信服务站数字签名方法、系统
CN110971403A (zh) 一种基于秘密共享公钥池的抗量子计算区块链系统和交易方法
KR102139008B1 (ko) 퍼블릭 블록체인 환경에서 개인정보보호를 위한 거래방법
CN111245611A (zh) 基于秘密共享和可穿戴设备的抗量子计算身份认证方法及系统
CN116484426A (zh) 一种基于可信执行环境的医疗数据联邦学习方法及系统
Suryawanshi et al. Improving data storage security in cloud environment using public auditing and threshold cryptography scheme
KR20240058446A (ko) 다자간 컴퓨팅 디지털 서명 장치 및 방법
CN113362065A (zh) 一种基于分散式私钥的在线签名交易实现方法