KR102568418B1 - 다중 서명을 지원하는 전자 인증 시스템 및 방법 - Google Patents

다중 서명을 지원하는 전자 인증 시스템 및 방법 Download PDF

Info

Publication number
KR102568418B1
KR102568418B1 KR1020210113306A KR20210113306A KR102568418B1 KR 102568418 B1 KR102568418 B1 KR 102568418B1 KR 1020210113306 A KR1020210113306 A KR 1020210113306A KR 20210113306 A KR20210113306 A KR 20210113306A KR 102568418 B1 KR102568418 B1 KR 102568418B1
Authority
KR
South Korea
Prior art keywords
signature
user
user group
authentication
users
Prior art date
Application number
KR1020210113306A
Other languages
English (en)
Other versions
KR20230030982A (ko
Inventor
엄현상
한종빈
강기훈
김민석
Original Assignee
하이파이브랩 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 하이파이브랩 주식회사 filed Critical 하이파이브랩 주식회사
Priority to KR1020210113306A priority Critical patent/KR102568418B1/ko
Priority to US17/822,520 priority patent/US20230060347A1/en
Publication of KR20230030982A publication Critical patent/KR20230030982A/ko
Application granted granted Critical
Publication of KR102568418B1 publication Critical patent/KR102568418B1/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/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/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/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/0827Key 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 distinctive intermediate devices or communication paths
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3252Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps

Abstract

다중 서명을 지원하는 전자 인증 시스템 및 방법이 개시된다.
본 발명의 일 실시예에 따른 다중 서명을 지원하는 서버의 전자 인증 방법은, 상기 서버가 다중 서명에 참여할 복수의 사용자를 포함한 사용자 그룹을 지정하는 Aa 단계; 상기 서버가 미리 정해진 정책 또는 상기 복수의 사용자 중 1 또는 2 이상의 사용자의 요청에 따라 가상 사용자를 상기 사용자 그룹에 더 포함시키는 Ab 단계; 상기 서버가 상기 사용자 그룹과의 통신을 위한 통신 채널을 생성하는 Ac 단계; 상기 서버가 상기 통신 채널을 통해 상기 사용자 그룹의 사용자별 공개키를 각각 수신하여 수신된 공개키를 상기 사용자 그룹의 사용자나 가상 사용자에게 공유하는 Ad 단계; 및 상기 서버가 상기 사용자 그룹의 사용자에 의해 생성된 로컬 서명을 상기 통신 채널을 통해 공유하는 Ae 단계를 포함하고, 상기 사용자 그룹의 사용자는 상기 로컬 서명과 다중 서명용 개인키를 이용하여 다중 서명을 수행하고, 수행된 다중 서명의 유효성을 인증할 수 있는 다중 서명자 인증 정보를 생성하고, 상기 사용자 그룹의 사용자나 가상 사용자는 상기 사용자 그룹의 사용자별 공개키 및 미리 정해진 해시 함수와 상기 다중 서명자 인증 정보를 이용하여 상기 수행된 다중 서명의 유효성을 인증할 수 있다.

Description

다중 서명을 지원하는 전자 인증 시스템 및 방법{Electronic authentication system and method supporting multi-signature}
본 발명은 다중 서명을 지원하는 전자 인증 시스템 및 방법에 관한 것으로서, 더 상세하게는, 다중 서명에 참여하는 사용자의 개인 정보에 대한 보안성을 강화하면서도 다중 서명 검증 성능을 개선하는 전자 인증 시스템 및 방법에 관한 것이다.
일반적으로, 다중 서명(multi-signature)이란 하나의 서명 대상에 복수의 당사자가 서명을 수행하는 전자 서명 방식을 말한다. 이러한 다중 서명은 하나의 서명 대상에 단일의 당사자가 서명을 수행하는 단일 서명 방식에 비해 보안성이 높은 반면, 서명 검증 시간과 데이터 저장량을 증가시키는 문제점이 있다.
즉, 한국 등록특허공보 제10-1575030호, 한국 등록특허공보 제10-1849908호 등에 개시된 바와 같이, 기존 기술은 여러 사용자 단말을 통해 다중 서명을 수행하기 때문에, 각 사용자 단말을 통해 수행된 서명 검증에 많은 시간이 요구되고 서명 검증을 위해 저장해야 하는 데이터량이 많다는 문제점이 있다.
본 발명이 해결하고자 하는 기술적 과제는, 다중 서명에 참여하는 사용자의 개인 정보에 대한 보안성을 강화하면서도 다중 서명 검증 성능과 데이터 저장 효율을 개선하는 전자 인증 시스템 및 방법을 제공하는 것이다.
본 발명의 일 실시예에 따른 다중 서명을 지원하는 서버의 전자 인증 방법은, 상기 서버가 다중 서명에 참여할 복수의 사용자를 포함한 사용자 그룹을 지정하는 Aa 단계; 상기 서버가 미리 정해진 정책 또는 상기 복수의 사용자 중 1 또는 2 이상의 사용자의 요청에 따라 가상 사용자를 상기 사용자 그룹에 더 포함시키는 Ab 단계; 상기 서버가 상기 사용자 그룹과의 통신을 위한 통신 채널을 생성하는 Ac 단계; 상기 서버가 상기 통신 채널을 통해 상기 사용자 그룹의 사용자별 공개키를 각각 수신하여 수신된 공개키를 상기 사용자 그룹의 사용자나 가상 사용자에게 공유하는 Ad 단계; 및 상기 서버가 상기 사용자 그룹의 사용자에 의해 생성된 로컬 서명을 상기 통신 채널을 통해 공유하는 Ae 단계를 포함하고, 상기 사용자 그룹의 사용자는 상기 로컬 서명과 다중 서명용 개인키를 이용하여 다중 서명을 수행하고, 수행된 다중 서명의 유효성을 인증할 수 있는 다중 서명자 인증 정보를 생성하고, 상기 사용자 그룹의 사용자나 가상 사용자는 상기 사용자 그룹의 사용자별 공개키 및 미리 정해진 해시 함수와 상기 다중 서명자 인증 정보를 이용하여 상기 수행된 다중 서명의 유효성을 인증할 수 있다.
일 실시예에 있어서, 상기 다중 서명자 인증 정보는, 블룸 필터(bloom filter)로 저장될 수 있다.
일 실시예에 있어서, 상기 다중 서명자 인증 정보의 인증은, 상기 다중 서명을 수행하는 사용자가 상기 가상 사용자에게 인증을 요청하여 수행될 수 있다.
일 실시예에 있어서, 상기 Ae 단계에 공유되는 상기 로컬 서명은, 상기 사용자 그룹에 할당된 타임스탬프 및 상기 다중 서명을 수행하는 사용자의 다중 서명용 개인키에 포함된 개인키 프래그먼트를 이용하여 인코딩된 로컬 서명일 수 있다.
일 실시예에 있어서, 상기 가상 사용자는, 미리 정해진 제한 시간 이내에 상기 복수의 사용자의 다중 서명이 완료되지 않으면, 해당 다중 서명의 진행을 중지시킬 수 있다.
일 실시예에 있어서, 상기 가상 사용자는, 상기 제한 시간 이내에 다중 서명을 수행한 사용자의 공개키, 상기 제한 시간 이내에 상기 다중 서명을 미수행한 사용자의 공개키, 및 상기 해시 함수를 이용하여 상기 다중 서명자 인증 정보를 갱신 및 저장하거나 새로운 다중 서명자 인증 정보를 저장할 수 있다.
본 발명의 일 실시예에 따른 다중 서명을 지원하는 전자 단말의 전자 인증 방법은, 상기 전자 단말이 다중 서명에 참여할 복수의 사용자를 포함하는 사용자 그룹의 사용자별 공개키를 공유하는 Ba 단계; 상기 전자 단말이 공유된 공개키를 이용하여 다중 서명의 유효성을 인증하는 다중 서명자 인증 정보를 인증하는 Bb 단계; 상기 전자 단말이 다중 서명용 개인키를 이용하여 상기 다중 서명을 수행하고, 상기 다중 서명을 위해 생성된 로컬 서명을 공유하는 Bc 단계; 및 상기 전자 단말이 상기 공유된 공개키와 미리 정해진 해시 함수를 이용하여 상기 다중 서명자 인증 정보를 갱신 및 저장하거나 새로운 다중 서명자 인증 정보를 저장하는 Bd 단계를 포함하고, 상기 사용자 그룹에 대하여 미리 정해진 정책 또는 상기 사용자 그룹에 포함된 1 또는 2 이상의 사용자의 요청에 따라 상기 사용자 그룹에 가상 사용자가 포함되면, 상기 사용자 그룹의 사용자나 가상 사용자는 상기 사용자 그룹의 사용자별 공개키 및 상기 해시 함수와 상기 다중 서명자 인증 정보를 이용하여 상기 다중 서명의 유효성을 인증할 수 있다.
일 실시예에 있어서, 상기 Bd 단계에서 저장되는 다중 서명자 인증 정보는, 블룸 필터(bloom filter)로 저장될 수 있다.
일 실시예에 있어서, 상기 Bc 단계는, 상기 다중 서명을 수행하기 위해 상기 사용자 그룹의 타 전자 단말에 의해 공유된 로컬 서명과 상기 다중 서명용 개인키를 이용하여 T-ECDSA(Threshold Elliptic Curve Digital Signature Algorithm) 방법으로 단일 서명을 생성하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 Bc 단계는, 상기 로컬 서명을 공유하기 전에 상기 사용자 그룹에 할당된 타임스탬프와 상기 다중 서명용 개인키에 포함된 개인키 프래그먼트를 이용하여 상기 로컬 서명을 인코딩하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 가상 사용자는, 미리 정해진 제한 시간 이내에 상기 복수의 사용자의 다중 서명이 완료되지 않으면, 해당 다중 서명의 진행을 중지시킬 수 있다.
일 실시예에 있어서, 상기 가상 사용자는, 상기 제한 시간 이내에 다중 서명을 수행한 사용자의 공개키, 상기 제한 시간 이내에 상기 다중 서명을 미수행한 사용자의 공개키, 및 상기 해시 함수를 이용하여 상기 다중 서명자 인증 정보를 갱신 및 저장하거나 새로운 다중 서명자 인증 정보를 저장할 수 있다.
일 실시예에 있어서, 상기 Bb 단계는, 상기 전자 단말이 상기 가상 사용자에게 요청하여 상기 인증을 수행하는 단계를 포함할 수 있다.
본 발명에 따른 실시예들은, 상술한 동작 또는 방법을 컴퓨터 시스템을 통해 실행하는 컴퓨터 프로그램으로서 기록매체에 기록되는 컴퓨터 프로그램을 이용하여 구현될 수 있다.
본 발명에 따르면, 공신력 있는 가상 사용자가 다중 서명의 유효성을 인증하는 다중 서명자 인증 정보를 저장 및 관리하면서 다중 서명에 대한 인증을 수행함으로써, 다중 서명의 보안성과 신뢰성을 강화할 수 있다.
또한, 사용자의 공개키나 어드레스 대신 실질적인 데이터를 저장하지 않고 데이터 크기가 작은 블룸 필터를 사용하여 다중 서명자 인증 정보를 저장 및 관리함으로써, 개인 정보 유출을 방지하면서도 다중 서명 검증 성능과 데이터 저장 효율을 동시에 개선할 수 있다.
또한, 다중 서명자가 생성한 로컬 서명들을 T-ECDSA(Threshold Elliptic Curve Digital Signature Algorithm)를 통해 재구성하여 최종적으로 단일 서명을 생성함으로써, 다중 서명 검증 성능을 더욱 개선할 수 있다.
또한, 다중 서명이 완료된 경우는 물론, 다중 서명 절차가 중지된 경우에도 다중 서명에 참여한 사용자들 다중 서명 수행 여부에 관한 정보를 생성함으로써, 체계적인 서명자 관리를 가능하게 한다.
또한, 비트코인, 이더리움 등과 같은 블록체인 프로토콜이나 ECDSA의 수정 없이 적용 가능하여, 다중 서명 시스템 구축을 용이하게 하고 시스템 구축 비용을 절감할 수 있다.
나아가, 본 발명이 속하는 기술 분야의 통상의 지식을 가진 자라면, 본 발명에 따른 다양한 실시예들이 상기 언급되지 않은 여러 기술적 과제들을 해결할 수 있음을 이하의 설명으로부터 자명하게 이해할 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 전자 인증 시스템을 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 전자 인증 시스템의 인증 단말을 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 전자 인증 시스템의 인증 관리 서버를 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 전자 인증 시스템의 가상 사용자 서버를 나타낸 도면이다.
도 5는 다중 서명자 인증 정보 저장용 블룸 필터의 일례를 나타낸 도면이다.
도 6은 본 발명의 일 실시예에 따른 전자 인증 방법의 다중 서명 프로세스를 나타낸 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 전자 인증 방법의 다중 서명 인증 프로세스를 나타낸 흐름도이다.
이하, 본 발명의 기술적 과제에 대응하는 해결 방안을 명확히 하기 위해 첨부도면을 참조하여 본 발명에 따른 실시예들을 상세하게 설명한다. 다만, 본 발명을 설명함에 있어서 관련 공지기술에 관한 설명이 오히려 본 발명의 요지를 불명료하게 하는 경우에는 그에 관한 설명은 생략될 수 있다. 또한, 본 명세서에서 사용되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이들은 설계자, 제조자 등의 의도 또는 관례 등에 따라 달라질 수 있을 것이다. 그러므로 후술되는 용어들의 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1에는 본 발명의 일 실시예에 따른 전자 인증 시스템(10)이 도시되어 있다.
도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 전자 인증 시스템(10)은 다수의 인증 단말(100), 인증 관리 서버(200) 및 가상 사용자 서버(300)를 포함할 수 있다.
상기 인증 단말(100)은 다중 서명에 참여하는 사용자가 이용하는 통신 단말로서 해당 사용자의 개인키(private key)와 공개키(public key)의 생성 및 관리를 지원하고 전자 서명을 수행하도록 구성될 수 있다. 이러한 인증 단말(100)은 스마트폰, 태블릿 PC, 랩탑 컴퓨터, 노트북 컴퓨터 등과 같은 모바일 단말로 구성되거나, 데스크탑 PC와 같이 고정형 단말로 구성될 수 있다.
상기 인증 관리 서버(200)는 다중 서명 절차와 다중 서명 인증 절차를 관리하는 서버로서, 공개키, 인코딩키 등과 같은 각 인증 단말(100) 정보의 교환, 사용자 서명의 로컬 재구성, 서명 유효성 검증 등을 지원하도록 구성될 수 있다.
상기 가상 사용자 서버(300)는 다중 서명 절차와 인증 절차에 가상 사용자(virtual user)로 참여하여, 다중 서명을 실제 수행할 사용자들의 권한을 위임받도록 구성될 수 있다. 즉, 상기 가상 사용자 서버(300)는 실제 사용자들 대신 다중 서명의 유효성을 인증하거나, 특정 조건에 따라 다중 서명 절차를 중지시키도록 구성될 수 있다. 이를 위해, 상기 가상 사용자 서버(300)는 상기 인증 관리 서버(200)에 대하여 일종의 단말로서 동작할 수 있다. 이러한 가상 사용자 서버(300)는 공신력 있는 기관이나 기업에 의해 운영될 수 있다.
도 2에는 본 발명의 일 실시예에 따른 전자 인증 시스템의 인증 단말(100)이 도시되어 있다.
도 2에 도시된 바와 같이, 상기 인증 단말(100)은 개인키/공개키 관리를 지원하고 트랜잭션과 같은 서명 대상에 다중 서명을 수행하도록 구성될 수 있다. 이를 위해, 상기 인증 단말(100)은 키 생성 모듈(110), 암호 모듈(120), 트랜잭션 생성 모듈(130), 서명 모듈(140), 통신 모듈(150) 및 검증 모듈(160) 등을 포함할 수 있다.
상기 키 생성 모듈(110)은 해당 인증 단말(100)을 사용하는 사용자의 개인키 및 공개키를 생성하도록 구성될 수 있다. 또한, 키 생성 모듈(110)은 다중 서명에 참여한 모든 사용자들의 공개키들을 재결합하여 공통 공개키를 생성하도록 구성될 수 있다. 아래에서 다시 설명하겠지만, 상기 키 생성 모듈(110)을 상기 사용자의 개인키 이외에 다중 서명용 개인키, 인코딩키, 디코딩키 등을 더 생성하도록 구성될 수 있다.
상기 암호 모듈(120)은 다중 서명 절차 및 인증 절차의 진행 상황에 따라 특정 정보가 노출되지 않도록 해당 정보를 인코딩하거나 인코딩된 정보를 디코딩하도록 구성될 수 있다.
상기 트랜잭션 생성 모듈(130)은 비트코인이나 이더리움 등과 같은 블록체인의 트랜잭션(transacton)을 생성하도록 구성될 수 있다. 아래에서 다시 설명하겠지만, 상기 트랜잭션 생성 모듈(130)은 다중 서명의 유효성을 인증하는 블룸 필터(Bloom-filter)를 트랜잭션에 저장하도록 구성될 수 있다.
상기 서명 모듈(140)은 다중 서명을 위한 사용자의 로컬 서명을 생성하고, 다중 서명에 참여할 사용자 그룹의 사용자별 로컬 서명들을 재구성하여 단일의 서명을 생성함으로써 서명 대상에 대한 다중 서명을 수행하도록 구성될 수 있다. 이 경우, 상기 서명 모듈(140)은 T-ECDSA(Threshold Elliptic Curve Digital Signature Algorithm)을 통해 사용자별 로컬 서명들을 재구성하여 단일 서명을 생성하도록 구성될 수 있다.
상기 통신 모듈(150)은 인증 관리 서버(200)에 의해 제공되는 통신 채널을 통해 인증 관리 서버(200), 다른 인증 단말 또는 가상 사용자 서버(300) 등과 데이터 통신을 수행하며, 데이터나 정보를 송수신하도록 구성될 수 있다.
상기 검증 모듈(160)은 인증 단말(100)의 정보가 위조되었는지를 검증하도록 구성될 수 있다. 해당 정보가 위조된 경우, 상기 검증 모듈(160)은 다중 서명 프로세스를 중지하도록 구성될 수 있다. 즉, 상기 검증 모듈(160)은 후술되는 블룸 필터를 이용하여 다중 서명자 인증 정보를 생성 및 저장하고 저장된 다중 서명자 인증 정보를 통해 다중 서명의 유효성을 인증하도록 구성될 수 있다.
아래에서 다시 설명하겠지만, 상기 다중 서명자 인증 정보는 다중 서명을 수행한 사용자의 공개키를 서로 다른 복수의 해시 함수에 각각 입력하여 산출된 복수의 해시 값을 포함하거나, 상기 산출된 복수의 해시 값을 각각 미리 정해진 비트열 내의 특정 비트와 매핑하여 매핑된 비트의 값을 1로 설정하고 매핑되지 않은 비트의 값을 0으로 설정함으로써 생성되는 이진수의 비트열 값을 포함할 수 있다. 이러한 다중 서명자 인증 정보는 다중 서명을 수행한 사용자의 공개키를 서로 다른 복수의 해시 함수에 각각 입력하여 복수의 해시 값을 산출하고, 미리 정해진 비트열의 비트들 중 상기 복수의 해시 값에 각각 대응하는 위치의 비트 값을 1 값으로 설정하는 일종의 블룸 필터(Bloom-filter)를 통해 생성 및 저장될 수 있다. 상기 검증 모듈(160)은 이러한 블룸 필터를 통해 다중 서명의 유효성 또는 다중 서명자 인증 정보의 유효성을 인증하도록 구성될 수 있다.
실시예에 따라, 상기 검증 모듈(160)은 상기 가상 사용자에게 다중 서명의 유효성 인증 또는 다중 서명자 인증 정보의 유효성 인증을 요청하여 상기 가상 사용자를 통해 해당 인증을 수행하도록 구성될 수도 있다.
도 3에는 본 발명의 일 실시예에 따른 전자 인증 시스템의 인증 관리 서버(200)가 도시되어 있다.
도 3에 도시된 바와 같이, 상기 인증 관리 서버(200)는 공개키, 인코딩키 등과 같은 각 인증 단말(100)의 정보 교환, 사용자 서명의 로컬 재구성, 서명 유효성 검증 등을 지원하도록 구성될 수 있다. 이를 위해, 상기 인증 관리 서버(200)는 정책 저장 모듈(210), 사용자 그룹 지정 모듈(220), 채널 생성 모듈(230), 채널 연결 모듈(240), 정보 저장 모듈(250) 및 정보 제공 모듈(260) 등을 포함할 수 있다.
상기 정책 저장 모듈(210)은 전자 인증 시스템(10)에 적용되는 다중 서명에 관한 정책, 다중 서명 절차에 요구되는 인증에 관한 정책, 다중 서명 제한 시간, 서명 대상별로 요구되는 다중 서명자의 수 등의 다양한 정책들을 저장하여 관리하도록 구성될 수 있다.
상기 사용자 그룹 지정 모듈(220)은 서명 대상의 종류나 정책 저장 모듈(210)에 저장된 정책에 따라, 다중 서명에 참여할 복수의 사용자를 포함하는 사용자 그룹을 지정하도록 구성될 수 있다. 또한, 상기 사용자 그룹 지정 모듈(220)은 미리 정해진 정책 또는 상기 복수의 사용자 중 1 또는 2 이상의 사용자의 요청에 따라 상기 사용자 그룹에 가상 사용자(virtual user)를 더 포함시키도록 구성될 수 있다. 앞서 언급한 바와 같이, 상기 가상 사용자는 다중 서명 절차에서의 인증 권한과 상황에 따른 다중 서명 절차 중지 권한을 가지도록 구성될 수 있다.
상기 채널 생성 모듈(230)은 인증 단말들 간의 통신이나 인증 단말들과 가상 사용자의 역할을 수행하는 가상 사용자 서버(300) 간의 통신을 위한 통신 채널을 생성하도록 구성될 수 있다. 그 결과, 인증 단말들과 가상 사용자 서버(300)는 다중 서명을 수행하기 전에 상기 통신 채널을 통해 자신의 암호화 키를 서로 교환하는 등 안전한 정보 교환을 위한 전처리 단계를 수행할 수 있다.
상기 채널 연결 모듈(240)은 생성된 통신 채널에 인증 단말들과 가상 사용자 서버(300)를 접속시켜 인증 단말들 상호 간 또는 인증 단말들과 가상 사용자 서버(300) 간의 정보 교환이나 정보 공유를 가능하게 한다. 예컨대, 인증 단말들은 통신 채널을 통해 다중 서명 지갑의 공통 공개키(common public key)를 생성할 수 있다. 이 경우, 공통 공개키는 다중 서명 지갑의 대표 어드레스로 사용될 수 있다. 이러한 어드레스는 블록체인 네트워크에서 디지털 자산을 송수신하는데 사용될 수 있다.
한편, 상기 정보 저장 모듈(250)은 각 인증 단말(100)이나 가상 사용자 서버(300)에 의해 생성된 정보를 인증 관리 서버(200)에 저장하도록 구성될 수 있다. 인증 관리 서버(200)에 저장된 모든 정보는 암호화되어 악의적인 서버 관리자로부터 해당 정보를 보호할 수 있다.
상기 정보 제공 모듈(260)은 정보 저장 모듈(250)에 저장된 사용자들의 정보를 인증 단말들 또는 가상 사용자 서버(300)로 전달하도록 구성될 수 있다. 예컨대, 정보 저장 모듈(250)은 사용자들의 공개키나 인코딩키 등을 저장하여 관리할 수 있다. 이 경우, 각 인증 단말(100)은 정보 제공 모듈(260)에 특정 사용자의 공개키나 인코딩키를 요청할 수 있으며, 상기 정보 제공 모듈(260)은 요청된 키를 정보 저장 모듈(250)로부터 전달받아 해당 인증 단말(100)로 제공할 수 있다.
참고로, 인코딩키는 높은 보안을 위해 다중 서명에 필요한 정보들을 암호화하는데 사용될 수 있다. 해당 인코딩키가 올바른지 확인하기 위해 데이터를 공개하지 않고 데이터를 검증할 수 있는 방법인 영지식 증명(zero-knowledge proof)이 사용될 수 있다. 증명이 유효하지 않으면 키 생성 프로세스나 서명 프로세스가 중지될 수 있다.
도 4에는 본 발명의 일 실시예에 따른 전자 인증 시스템의 가상 사용자 서버(300)가 도시되어 있다.
도 4에 도시된 바와 같이, 상기 가상 사용자 서버(300)는 다중 서명의 유효성 인증, 다중 서명 절차의 중지 등을 지원하도록 구성될 수 있다. 이를 위해, 상기 가상 사용자 서버(300)는 통신 모듈(310), 인증 정보 저장 모듈(320), 다중 서명 인증 모듈(330) 및 서명 절차 관리 모듈(340) 등을 포함할 수 있다.
상기 통신 모듈(310)은 인증 관리 서버(200)에 의해 제공되는 통신 채널을 통해 인증 관리 서버(200)나 인증 단말들과 데이터 통신을 수행하며, 데이터나 정보를 송수신하도록 구성될 수 있다.
상기 인증 정보 저장 모듈(320)은 인증 단말들로부터 전송된 사용자들의 공개키, 다중 서명자 인증 정보를 저장한 블룸 필터(Bloom-filter), 블룸 필터에 사용되는 해시 함수 세트, 인증 관리 서버(200)에 의해 지정된 서명 제한 시간 정보 등을 저장하도록 구성될 수 있다.
상기 다중 서명 인증 모듈(330)은 다중 서명을 수행한 사용자가 발생하면, 다중 서명의 유효성을 인증하기 위한 다중 서명자 인증 정보를 생성 및 저장하고, 사용자 그룹에 공유된 공개키와 미리 정해진 해시 함수를 이용하여 생성된 값과 상기 다중 서명자 인증 정보의 값을 비교하여 상기 다중 서명자 인증 정보의 유효성 또는 해당 다중 서명의 유효성을 인증하도록 구성될 수 있다. 이러한 다중 서명자 인증 정보는 블룸 필터을 이용하여 생성 및 저장될 수 있다.
앞서 언급한 바와 같이, 상기 다중 서명자 인증 정보는 다중 서명을 수행한 사용자의 공개키를 서로 다른 복수의 해시 함수에 각각 입력하여 산출된 복수의 해시 값을 포함하거나, 상기 산출된 복수의 해시 값을 각각 미리 정해진 비트열 내의 특정 비트와 매핑하여 매핑된 비트의 값을 1로 설정하고 매핑되지 않은 비트의 값을 0으로 설정함으로써 생성되는 이진수의 비트열 값을 포함할 수 있다. 이러한 다중 서명자 인증 정보는 다중 서명을 수행한 사용자의 공개키를 서로 다른 복수의 해시 함수에 각각 입력하여 복수의 해시 값을 산출하고, 미리 정해진 비트열의 비트들 중 상기 복수의 해시 값에 각각 대응하는 위치의 비트 값을 1 값으로 설정하는 상기 블룸 필터를 통해 생성 및 저장될 수 있다.
상기 다중 서명 인증 모듈(330)은 이러한 블룸 필터를 통해 다중 서명의 유효성 또는 다중 서명자 인증 정보의 유효성을 인증하도록 구성될 수 있다.
또한, 상기 다중 서명 인증 모듈(330)은 특정 이벤트가 발생하여 다중 서명 절차가 중지된 경우, 다중 서명 절차의 중지 전 다중 서명을 수행한 사용자의 공개키와, 다중 서명을 미수행한 사용자의 공개키와, 미리 정해진 해시 함수를 이용하여 상기 다중 서명자 인증 정보를 갱신 및 저장하거나, 새로운 다중 서명자 인증 정보를 생성하여 저장할 수 있다.
상기 서명 절차 관리 모듈(340)은 다중 서명 절차의 진행 상황을 모니터링하여, 다중 서명의 유효성 인증 또는 다중 서명자 인증 정보의 유효성 인증에 실패한 경우, 또는 다중 서명 절차가 미리 정해진 제한 시간 내에 완료되지 않은 경우 등에, 해당 다중 서명 절차를 중지시키도록 구성될 수 있다.
도 5에는 다중 서명자 인증 정보 저장용 블룸 필터(Bloom-filter)의 일례가 도시되어 있다.
도 5에 도시된 바와 같이, 다중 서명의 유효성을 인증하기 위해 또는 다중 서명자 인증 정보의 유효성을 인증하기 위해, 상기 인증 단말(100)의 검증 모듈(160)이나 상기 가상 사용자 서버(300)의 다중 서명 인증 모듈(330)은 블룸 필터를 이용하여 다중 서명자 인증 정보를 생성 및 저장할 수 있다.
블룸 필터는 공간 효율적인 확률 데이터 구조에 해당하며, 특정 요소가 집합의 구성원인지 여부를 확인하는데 사용될 수 있다. 이러한 블룸 필터는 m 비트 크기의 비트열 구조로 구성되며 k 개의 서로 다른 해시 함수를 사용할 수 있다. 블룸 필터 크기는 수학식 1을 사용하여 m 비트 크기의 비트열과 k 개의 해시 함수로 결정될 수 있다.
[수학식 1]
수학식 1에서, m은 블룸 필터의 비트 수, k는 블룸 필터에 사용되는 해시 함수의 개수이고, N은 필터에 추가되는 아이템의 최대 개수이고, P는 긍정 오류(false-positive)의 확률이다.
블룸 필터는 두 가지 프로세스를 포함한다. 우선, 필터에 요소를 추가하고 해당 요소가 집합에 있는지 여부를 검증한다. 요소를 추가하기 위해 블룸 필터는 k개의 해시 함수를 사용하여 k 개의 배열 위치를 획득한다.
그 다음, 블룸 필터는 이러한 모든 위치의 비트 값을 m 비트 크기의 배열에서 1로 설정한다. 요소가 집합에 있는지 확인하기 위해 블룸 필터는 k 개의 해시 함수 각각을 사용하여 k 개의 배열 위치를 얻는다. 해당 위치의 비트가 0이면 요소는 확실히 집합에 없다는 것을 의미한다. 반면, 해당 위치의 비트가 1이면 요소는 아마도 세트에 있다는 것을 의미한다.
본 발명에서 이러한 블룸 필터는 다중 서명의 유효성을 인증하는데 사용된다. 사용자의 정보(공개키 또는 어드레스) 대신 블룸 필터를 블록체인에 저장함으로써 더 높은 신뢰도를 제공하고 트랜잭션 크기를 줄일 수 있다.
수학식 1에, 확정된 참여자 수와 긍정 오류 확률을 적용하여 블룸 필터의 비트 크기와 블룸 필터 생성에 이용되는 해시 함수 개수를 계산할 수 있다.
확률적으로 안전한 상태를 2-20으로 설정하고 트랜잭션의 최대 참여자 수를 10으로 설정하면, 블룸 필터는 최적 블룸 필터 수인 29비트에서 최대 289비트의 크기와 20개의 해시 함수를 갖게 된다.
도 5와 같이, 각 인증 단말은 사용자 수(즉, 2)로 비트 크기를 계산하면, 블룸 필터의 크기는 58비트이다. 다음으로, 각 인증 단말은 각 사용자의 공개 키(즉, A_pub 및 B_pub)로 자신의 20개의 해시 값(H1∼H20)을 계산하고 각 해시 값에 대응하는 비트의 값을 1로 설정한다(500). 각 인증 단말은 생성된 블룸 필터를 커미트먼트 스킴(commitment scheme)을 사용하여 교환 및 검증할 수 있다.
예컨대, 사용자 A가 다중 서명을 수행했는지 확인하기 위해 모든 인증 단말은 사전에 공유된 사용자 A의 공개키로 20개의 해시 값(H1~H20)을 각각 계산한다. 그리고 각 해시 값에 대응하는 비트의 값을 확인한다(510). 확인된 모든 값이 1이면 사용자 A가 다중 서명을 수행했음을 나타낸다. 이러한 프로세스는 사용자 B에 대해서도 동일한 방식으로 수행될 수 있다. 이러한 블룸 필터를 통해 모든 사용자(사용자 A 및 B)가 다중 서명 프로세스에 참여했다는 것을 인증한 후 인증 단말은 해당 블룸 필터를 저장할 수 있다. 유효성 검증에 실패하면 다중 서명 프로세스가 중지될 수 있다.
한편, 도 5에서 상기 블룸 필터가 하나의 비트열을 포함하는 것으로 나타나 있으나, 실시예에 따라 상기 블룸 필터는 다중 서명에 참여할 사용자의 수에 대응하는 복수의 비트열을 포함할 수 있다. 이 경우, 각각의 비트열은 다중 서명에 참여할 사용자들 중 어느 한 사용자에 관한 다중 서명자 인증 정보를 저장하도록 구성될 수 있다.
이와 같이, 인증 단말들은 블룸 필터를 생성한 후 다중 서명 프로세스를 수행할 수 있다. 본 발명에서는 높은 보안성을 보장하기 위해 T-ECDSA(Threshold Elliptic Curve Digital Signature Algorithm)를 사용하여 서명 권한을 분배할 수 있다. T-ECDSA에서는 MPC(Multi-party Computation)를 사용한다. 이는 권한을 여러 인증 단말에 분배하여 단일 서명을 생성하는 방법이다. 이 과정에서 권한을 분배하고 정보를 숨기기 위해 각 인증 단말은 난수들과 로컬 서명을 생성할 수 있다.
도 6에는 본 발명의 일 실시예에 따른 전자 인증 방법의 다중 서명 프로세스가 흐름도로 도시되어 있다. 도 6을 참조하여 상술한 전자 인증 시스템(10)의 세부 동작들을 시계열적으로 설명한다.
도 6에 도시된 바와 같이, 인증 관리 서버(200)에 의해 다중 서명 절차에 참여할 복수의 사용자를 포함한 사용자 그룹이 지정되면, 상기 사용자 그룹에 포함된 사용자의 인증 단말(100)은 해당 사용자의 개인키 및 공개키를 생성할 수 있다(S610).
이 경우, 인증 관리 서버(200)는 미리 정해진 정책 또는 상기 복수의 사용자 중 1 또는 2 이상의 사용자의 요청에 따라 가상 사용자를 상기 사용자 그룹에 더 포함시킬 수 있다. 또한, 인증 관리 서버(200)는 상기 사용자 그룹에 대해 타임스탬프(time stamp)를 할당하여 각 인증 단말에 전달할 수 있다.
그 다음, 상기 복수의 사용자의 각 인증 단말(100)은 해당 사용자의 개인키를 상기 복수의 사용자에 대응하는 개수로 분할하여 복수의 개인키 프래그먼트(private key fragment)를 생성할 수 있다(S620).
그 다음, 각 인증 단말(100)은 복수의 개인키 프래그먼트 중 하나의 개인키 프래그먼트와 인증 관리 서버(200)가 할당한 타임스탬프를 이용하여 해당 사용자의 인코딩키와 디코딩키를 생성할 수 있다(S630).
그 다음, 각 인증 단말(100)은 타 인증 단말들과 공개키와 인코딩키를 공유할 수 있다(S640). 이 경우, 각 인증 단말(100)은 인증 관리 서버(200)를 통해 해당 사용자의 공개키와 인코딩키를 타 인증 단말로 배포할 수 있다.
그 다음, 각 인증 단말(100)은 복수의 개인키 프래그먼트 중 하나는 자체 보유하면서 나머지는 각각 타 사용자의 인코딩키로 인코딩하여, 인코딩된 개인키 프래그먼트를 해당 타 사용자에게 분배할 수 있다(S650). 예컨대, 사용자 A의 인증 단말은 사용자 A의 개인키 프래그먼트를 사용자 B의 인코딩키로 인코딩하여 인증 관리 서버(200)를 통해 사용자 B에게 전송하는 한편, 사용자 A의 다른 개인키 프래그먼트를 사용자 C의 인코딩키로 인코딩하여 인증 관리 서버(200)를 통해 사용자 C에게 전송할 수 있다.
그 다음, 각 인증 단말(100)은 해당 사용자의 인코딩키로 암호화된 타 사용자의 개인키 프래그먼트를 수신할 수 있다(S660). 예컨대, 사용자 A는 사용자 A의 인코딩키로 각각 인코딩된 사용자 B의 개인키 프래그먼트와 사용자 C의 개인키 프래그먼트를 수신할 수 있다. 이 경우, 사용자 A는 보관 중인 자신의 디코딩키로 수신된 개인키 프래그먼트들을 디코딩할 수 있다.
그 다음, 각 인증 단말(100)은 사용자별 개인키 프래그먼트들을 조합하여 다중 서명용 개인키를 생성할 수 있다(S670).
그 다음, 각 인증 단말(100)은 다중 서명용 개인키를 이용하여 로컬 서명을 생성하고, 생성된 로컬 서명을 인증 관리 서버(200)를 통해 타 인증 단말과 공유할 수 있다(S680).
그 다음, 각 인증 단말(100)은 공유된 사용자별 로컬 서명들을 T-ECDSA(Threshold Elliptic Curve Digital Signature Algorithm)를 통해 재구성하여 단일 서명을 생성할 수 있다(S690).
이 경우, 상기 각 인증 단말(100)은 상기 생성된 로컬 서명을, 상기 타임스탬프와 상기 하나의 개인키 프래그먼트로 생성된 인코딩키로 인코딩하고, 인코딩된 로컬 서명을 공유할 수 있다.
한편, T-ECDSA의 t는 t+1의 사용자가가 다중 서명을 완료하는 임계값으로 정의된다. T-ECDSA에서는 t+1 다중 사용자 로컬 서명을 수행하고, 각각의 사용자마다 인코딩되어 공유된 로컬 서명들을 이용하여 단일 서명을 생성한다. 생성된 단일 서명은 공통 공개키로 서명의 유효성을 검증할 수 있다. T-ECDSA의 기반이 되는 ECDSA는 수학식 2와 같이 나타낼 수 있다.
[수학식 2]
수학식 2에서, Pxy는 타원곡선상의 점이고, G는 타원 곡선의 제너레이션 포인트이고, Px는 포인트 P의 x 좌표이고, n은 G의 차수, r은 서명(Px의 값을 n으로 나눈 나머지)이고, s는 서명값이고, k는 서명 r을 구할 때 사용된 난수(random number)이고, z는 서명 대상의 해시값이고, Pk는 개인키이다.
도 7에는 본 발명의 일 실시예에 따른 전자 인증 방법의 다중 서명 인증 프로세스가 흐름도로 도시되어 있다. 도 7을 참조하여 상술한 전자 인증 시스템(10)의 세부 동작들을 시계열적으로 설명한다.
도 7에 도시된 바와 같이, 인증 관리 서버(200)는 사전에 다중 서명 인증 정책, 서명 제한 시간, 서명 대상에 요구되는 다중 서명자의 수 등과 같은 다양한 정책들을 저장하여 관리할 수 있다(S700).
그 다음, 상기 인증 관리 서버(200)는 다중 서명에 참여할 복수의 사용자를 포함한 사용자 그룹을 지정할 수 있다(S710). 이 경우, 상기 인증 관리 서버(200)는 미리 정해진 정책 또는 복수의 사용자 중 1 또는 2 이상의 사용자의 요청에 따라 가상 사용자를 상기 사용자 그룹에 더 포함시킬 수 있다.
그 다음, 상기 인증 관리 서버(200)는 상기 사용자 그룹과의 통신을 위한 통신 채널을 생성할 수 있다(S712, S714).
그러면, 인증 단말(100)은 해당 사용자의 공개키를 생성하고(S720), 상기 사용자 그룹에 함께 포함된 나머지 사용자 또는 상기 가상 사용자와 공개키를 공유할 수 있다(S722, S724). 이 경우, 상기 인증 관리 서버(200)는 상기 통신 채널을 통해 상기 사용자 그룹의 인증 단말들로부터 사용자별 공개키를 각각 수신하여 상기 사용자 그룹 전체 또는 가상 사용자에게 배포함으로써, 상기 사용자 그룹의 사용자들이나 가상 사용자로 하여금 해당 공개키들을 공유하도록 할 수 있다.
그 다음, 상기 인증 관리 서버(200)가 인증 단말(100)로 다중 서명의 수행을 요청하면, 인증 단말(100)은 도 6과 같이 다중 서명용 개인키를 생성하여 다중 서명 프로세스를 진행하게 된다(S730).
이미 다중 서명을 수행한 타 사용자가 존재하여 다중 서명의 유효성을 인증하는 다중 서명자 인증 정보가 생성 및 저장된 경우(S740), 인증 단말(100)은 상기 가상 사용자(300)에게 해당 다중 서명자 인증 정보의 유효성 인증을 요청할 수 있다(S742). 이 경우, 가상 사용자(300)는 상기 인증 관리 서버(200)와 구별되는 별도의 서버나 컴퓨터 장치를 통해 구현될 수 있다. 실시예에 따라, 상기 인증 단말(100)이 상기 다중 서명자 인증 정보의 유효성 인증을 직접 수행하도록 구성될 수도 있다.
그 다음, 상기 가상 사용자(300)는, 미리 정해진 서명 제한 시간이 경과한 경우, 해당 다중 서명 절차의 진행을 중지시킬 수 있다(S752). 이 경우, 상기 가상 사용자(300)는 사전에 공유된 공개키들 중 다중 서명을 수행한 사용자의 공개키와, 다중 서명을 미수행한 사용자의 공개키와, 미리 정해진 해시 함수를 이용하여, 상기 다중 서명자 인증 정보를 갱신 및 저장하거나 새로운 다중 서명자 인증 정보를 생성하여 저장할 수 있다. 이 경우, 상기 다중 서명자 인증 정보 또는 새로운 다중 서명자 인증 정보는 상술한 바와 같이 블룸 필터로 저장될 수 있다. 이 경우, 블룸 필터의 비트열에는 서명 수행 여부를 나타내는 비트가 추가될 수 있다.
반면, 상기 서명 제한 시간이 경과하지 않은 경우, 상기 가상 사용자(300)는 다중 서명을 수행한 타 사용자의 공개키와 미리 정해진 해시 함수를 이용하여 새로운 다중 서명자 인증 정보를 생성하고, 생성된 다중 서명자 인증 정보와 기 저장된 다중 서명자 인증 정보를 비교하여 기 저장된 다중 서명자 인증 정보의 유효성을 인증함으로써 상기 타 사용자에 의해 수행된 다중 서명의 유효성을 인증할 수 있다(S760). 이 경우, 각각의 다중 서명자 인증 정보에는 블룸 필터 값이 포함될 수 있다.
다중 서명자 인증 정보의 유효성 인증에 실패한 경우(S770), 해당 다중 서명 절차는 중지될 수 있다(S752). 반면, 다중 서명자 인증 정보의 유효성 인증에 성공한 경우, 인증 단말(100)은 다중 서명 절차를 속행할 수 있다(S780).
다중 서명이 완료되면, 인증 단말(100)은 해당 사용자의 공개키를 포함하는 다중 서명 결과를 상기 가상 사용자(300)에게 전송할 수 있다(S782).
그러면, 상기 가상 사용자(300)는 전송된 공개키와 미리 정해진 해시 함수를 이용하여, 기존의 다중 서명자 인증 정보를 갱신 및 저장하거나 새로운 다중 서명자 인증 정보를 생성하여 저장할 수 있다(S790). 앞서 언급한 바와 같이, 해당 다중 서명자 인증 정보는 블룸 필터로 저장될 수 있다.
한편, 본 발명에 따른 실시예들은 컴퓨터 시스템과 이러한 컴퓨터 시스템을 구동하는 컴퓨터 프로그램으로 구현될 수 있다. 본 발명의 실시예들이 컴퓨터 프로그램으로 구현되는 경우, 본 발명의 구성요소들은 해당 컴퓨터 시스템을 통해 해당 동작이나 작업을 실행하는 프로그램 세그먼트들을 포함할 수 있다. 이러한 컴퓨터 프로그램 내지 프로그램 세그먼트들은 컴퓨터로 판독 가능한 다양한 기록매체에 저장될 수 있다. 컴퓨터로 판독 가능한 기록매체에는 컴퓨터 시스템이 읽어들일 수 있는 데이터를 기록하는 모든 종류의 매체가 포함될 수 있다. 예컨대, 컴퓨터로 판독 가능한 기록매체에는 ROM, RAM, EEPROM, 레지스터, 플래시 메모리, CD-ROM, 자기 테이프, 하드 디스크, 플로피디스크, 또는 광 데이터 기록장치 등이 포함될 수 있다. 또한, 이러한 기록매체는 다양한 네트워크로 연결된 컴퓨터 시스템들에 분산 배치되어 프로그램 코드들을 분산 방식으로 저장하거나 실행시킬 수 있다.
상술한 바와 같이, 본 발명에 따르면, 공신력 있는 가상 사용자가 다중 서명의 유효성을 인증하는 다중 서명자 인증 정보를 저장 및 관리하면서 다중 서명에 대한 인증을 수행함으로써, 다중 서명의 보안성과 신뢰성을 강화할 수 있다.
또한, 사용자의 공개키나 어드레스 대신 실질적인 데이터를 저장하지 않고 데이터 크기가 작은 블룸 필터를 사용하여 다중 서명자 인증 정보를 저장 및 관리함으로써, 개인 정보 유출을 방지하면서도 다중 서명 검증 성능과 데이터 저장 효율을 동시에 개선할 수 있다.
또한, 다중 서명자가 생성한 로컬 서명들을 T-ECDSA(Threshold Elliptic Curve Digital Signature Algorithm)를 통해 재구성하여 최종적으로 단일 서명을 생성함으로써, 다중 서명 검증 성능을 더욱 개선할 수 있다.
또한, 다중 서명이 완료된 경우는 물론, 다중 서명 절차가 중지된 경우에도 다중 서명에 참여한 사용자들 다중 서명 수행 여부에 관한 정보를 생성함으로써, 체계적인 서명자 관리를 가능하게 한다.
또한, 비트코인, 이더리움 등과 같은 블록체인 프로토콜이나 ECDSA의 수정 없이 적용 가능하여, 다중 서명 시스템 구축을 용이하게 하고 시스템 구축 비용을 절감할 수 있다.
나아가, 본 발명에 따른 실시예들은, 해당 기술 분야는 물론 관련 기술 분야에서 본 명세서에 언급된 내용 이외의 다른 여러 기술적 과제들을 해결할 수 있음은 물론이다.
지금까지 본 발명에 대해 구체적인 실시예들을 참고하여 설명하였다. 그러나 당업자라면 본 발명의 기술적 범위에서 다양한 변형 실시예들이 구현될 수 있음을 명확하게 이해할 수 있을 것이다. 그러므로 앞서 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 할 것이다. 즉, 본 발명의 진정한 기술적 사상의 범위는 청구범위에 나타나 있으며, 그와 균등범위 내에 있는 모든 차이점은 본 발명에 포함되는 것으로 해석되어야 할 것이다.

Claims (13)

  1. 다중 서명을 지원하는 서버의 전자 인증 방법에 있어서,
    상기 서버가 다중 서명에 참여할 복수의 사용자를 포함한 사용자 그룹을 지정하는 Aa 단계;
    상기 서버가 미리 정해진 정책 또는 상기 복수의 사용자 중 1 또는 2 이상의 사용자의 요청에 따라 가상 사용자를 상기 사용자 그룹에 더 포함시키는 Ab 단계;
    상기 서버가 상기 사용자 그룹과의 통신을 위한 통신 채널을 생성하는 Ac 단계;
    상기 서버가 상기 통신 채널을 통해 상기 사용자 그룹의 사용자별 공개키를 각각 수신하여 수신된 공개키를 상기 사용자 그룹의 사용자나 가상 사용자에게 공유하는 Ad 단계; 및
    상기 서버가 상기 사용자 그룹의 사용자에 의해 생성된 로컬 서명을 상기 통신 채널을 통해 공유하는 Ae 단계를 포함하고,
    상기 사용자 그룹의 사용자는 상기 로컬 서명과 다중 서명용 개인키를 이용하여 다중 서명을 수행하고, 수행된 다중 서명의 유효성을 인증할 수 있는 다중 서명자 인증 정보를 생성하고,
    상기 사용자 그룹의 사용자나 가상 사용자는 상기 사용자 그룹의 사용자별 공개키 및 미리 정해진 해시 함수와 상기 다중 서명자 인증 정보를 이용하여 상기 수행된 다중 서명의 유효성을 인증하는 것을 특징으로 하는 전자 인증 방법.
  2. 제1항에 있어서,
    상기 다중 서명자 인증 정보는, 블룸 필터(bloom filter)로 저장되는 것을 특징으로 하는 전자 인증 방법.
  3. 제1항에 있어서,
    상기 다중 서명자 인증 정보의 인증은, 상기 다중 서명을 수행하는 사용자가 상기 가상 사용자에게 인증을 요청하여 수행되는 것을 특징으로 하는 전자 인증 방법.
  4. 제1항에 있어서,
    상기 Ae 단계에 공유되는 상기 로컬 서명은, 상기 사용자 그룹에 할당된 타임스탬프 및 상기 다중 서명을 수행하는 사용자의 다중 서명용 개인키에 포함된 개인키 프래그먼트를 이용하여 인코딩된 로컬 서명인 것을 특징으로 하는 전자 인증 방법.
  5. 제1항에 있어서,
    상기 가상 사용자는, 미리 정해진 제한 시간 이내에 상기 복수의 사용자의 다중 서명이 완료되지 않으면, 해당 다중 서명의 진행을 중지시키는 것을 특징으로 하는 전자 인증 방법.
  6. 제5항에 있어서,
    상기 가상 사용자는, 상기 제한 시간 이내에 다중 서명을 수행한 사용자의 공개키, 상기 제한 시간 이내에 상기 다중 서명을 미수행한 사용자의 공개키, 및 상기 해시 함수를 이용하여 상기 다중 서명자 인증 정보를 갱신 및 저장하거나 새로운 다중 서명자 인증 정보를 저장하는 것을 특징으로 하는 전자 인증 방법.
  7. 다중 서명을 지원하는 전자 단말의 전자 인증 방법에 있어서,
    상기 전자 단말이 다중 서명에 참여할 복수의 사용자를 포함하는 사용자 그룹의 사용자별 공개키를 공유하는 Ba 단계;
    상기 다중 서명의 유효성을 인증하기 위한 다중 서명자 인증 정보를 상기 전자 단말이 공유된 공개키를 이용하여 인증하는 Bb 단계;
    상기 전자 단말이 다중 서명용 개인키를 이용하여 상기 다중 서명을 수행하고, 상기 다중 서명을 위해 생성된 로컬 서명을 공유하는 Bc 단계; 및
    상기 전자 단말이 상기 공유된 공개키와 미리 정해진 해시 함수를 이용하여 상기 다중 서명자 인증 정보를 갱신 및 저장하거나 새로운 다중 서명자 인증 정보를 저장하는 Bd 단계를 포함하고,
    상기 사용자 그룹에 대하여 미리 정해진 정책 또는 상기 사용자 그룹에 포함된 1 또는 2 이상의 사용자의 요청에 따라 상기 사용자 그룹에 가상 사용자가 포함되면, 상기 사용자 그룹의 사용자나 가상 사용자는 상기 사용자 그룹의 사용자별 공개키 및 상기 해시 함수와 상기 다중 서명자 인증 정보를 이용하여 상기 다중 서명의 유효성을 인증하는 전자 인증 방법.
  8. 제7항에 있어서,
    상기 Bd 단계에서 저장되는 다중 서명자 인증 정보는, 블룸 필터(bloom filter)로 저장되는 것을 특징으로 하는 전자 인증 방법.
  9. 제7항에 있어서,
    상기 Bc 단계는, 상기 다중 서명을 수행하기 위해 상기 사용자 그룹의 타 전자 단말에 의해 공유된 로컬 서명과 상기 다중 서명용 개인키를 이용하여 T-ECDSA(Threshold Elliptic Curve Digital Signature Algorithm) 방법으로 단일 서명을 생성하는 단계를 포함하는 것을 특징으로 하는 전자 인증 방법.
  10. 제7항에 있어서,
    상기 Bc 단계는, 상기 로컬 서명을 공유하기 전에 상기 사용자 그룹에 할당된 타임스탬프와 상기 다중 서명용 개인키에 포함된 개인키 프래그먼트를 이용하여 상기 로컬 서명을 인코딩하는 단계를 포함하는 것을 특징으로 하는 전자 인증 방법.
  11. 제7항에 있어서,
    상기 가상 사용자는, 미리 정해진 제한 시간 이내에 상기 복수의 사용자의 다중 서명이 완료되지 않으면, 해당 다중 서명의 진행을 중지시키는 것을 특징으로 하는 전자 인증 방법.
  12. 제11항에 있어서,
    상기 가상 사용자는, 상기 제한 시간 이내에 다중 서명을 수행한 사용자의 공개키, 상기 제한 시간 이내에 상기 다중 서명을 미수행한 사용자의 공개키, 및 상기 해시 함수를 이용하여 상기 다중 서명자 인증 정보를 갱신 및 저장하거나 새로운 다중 서명자 인증 정보를 저장하는 것을 특징으로 하는 전자 인증 방법.
  13. 제7항에 있어서,
    상기 Bb 단계는, 상기 전자 단말이 상기 가상 사용자에게 요청하여 상기 인증을 수행하는 단계를 포함하는 것을 특징으로 하는 전자 인증 방법.
KR1020210113306A 2021-08-26 2021-08-26 다중 서명을 지원하는 전자 인증 시스템 및 방법 KR102568418B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210113306A KR102568418B1 (ko) 2021-08-26 2021-08-26 다중 서명을 지원하는 전자 인증 시스템 및 방법
US17/822,520 US20230060347A1 (en) 2021-08-26 2022-08-26 Electronic authentication system and method of supporting multi-signature

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210113306A KR102568418B1 (ko) 2021-08-26 2021-08-26 다중 서명을 지원하는 전자 인증 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20230030982A KR20230030982A (ko) 2023-03-07
KR102568418B1 true KR102568418B1 (ko) 2023-08-18

Family

ID=85287412

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210113306A KR102568418B1 (ko) 2021-08-26 2021-08-26 다중 서명을 지원하는 전자 인증 시스템 및 방법

Country Status (2)

Country Link
US (1) US20230060347A1 (ko)
KR (1) KR102568418B1 (ko)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004260664A (ja) 2003-02-27 2004-09-16 Nec Corp タイムスタンプ付与機能をもつxml署名生成システム,装置,方法およびプログラム
WO2006027933A1 (ja) 2004-09-03 2006-03-16 Nec Corporation グループ署名システム、メンバ状態判定装置、グループ署名方法及びメンバ状態判定プログラム
JP2010087690A (ja) 2008-09-30 2010-04-15 Kddi Corp 多重署名生成システム、多重署名生成方法、および多重署名生成プログラム
KR100966412B1 (ko) 2005-03-31 2010-06-28 콸콤 인코포레이티드 다중 서명 - 확고한 다중 당사자 전자 서명에 대한프로토콜
WO2019043466A1 (ja) 2018-06-12 2019-03-07 フレセッツ株式会社 暗号通貨のためのウォレット装置及びその装置を用いる署名方法
JP2019145925A (ja) 2018-02-16 2019-08-29 株式会社bitFlyer ブロックチェーン・ネットワークにおいてトランザクションを検証するための方法及び当該ネットワークを構成するためのノード

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004260664A (ja) 2003-02-27 2004-09-16 Nec Corp タイムスタンプ付与機能をもつxml署名生成システム,装置,方法およびプログラム
WO2006027933A1 (ja) 2004-09-03 2006-03-16 Nec Corporation グループ署名システム、メンバ状態判定装置、グループ署名方法及びメンバ状態判定プログラム
KR100966412B1 (ko) 2005-03-31 2010-06-28 콸콤 인코포레이티드 다중 서명 - 확고한 다중 당사자 전자 서명에 대한프로토콜
JP2010087690A (ja) 2008-09-30 2010-04-15 Kddi Corp 多重署名生成システム、多重署名生成方法、および多重署名生成プログラム
JP2019145925A (ja) 2018-02-16 2019-08-29 株式会社bitFlyer ブロックチェーン・ネットワークにおいてトランザクションを検証するための方法及び当該ネットワークを構成するためのノード
WO2019043466A1 (ja) 2018-06-12 2019-03-07 フレセッツ株式会社 暗号通貨のためのウォレット装置及びその装置を用いる署名方法

Also Published As

Publication number Publication date
KR20230030982A (ko) 2023-03-07
US20230060347A1 (en) 2023-03-02

Similar Documents

Publication Publication Date Title
US20230120742A1 (en) Quantumproof blockchain
US11496310B2 (en) Methods and systems for universal storage and access to user-owned credentials for trans-institutional digital authentication
US10783260B2 (en) Method for providing simplified account registration service and user authentication service, and authentication server using same
CN111429254B (zh) 一种业务数据处理方法、设备以及可读存储介质
US20200396089A1 (en) Digital certificate management method and apparatus, computer device, and storage medium
EP3454238B1 (en) Registration and authorization method, device and system
EP3726804B1 (en) Device authentication method, service access control method, device, and non-transitory computer-readable recording medium
US11238543B2 (en) Payroll based blockchain identity
Jin et al. Dynamic and public auditing with fair arbitration for cloud data
CN110417750B (zh) 基于区块链技术的文件读取和存储的方法、终端设备和存储介质
US20190295069A1 (en) Systems and methods for integrating cryptocurrency wallet identifiers with digital certificates
CN110915183A (zh) 经由硬/软令牌验证的区块链认证
US11251975B1 (en) Block chain based trusted security infrastructure
KR102118962B1 (ko) 블록체인 네트워크를 이용하여 사용자의 아이덴티티를 관리하는 방법 및 서버, 그리고, 블록체인 네트워크 기반의 사용자 아이덴티티를 이용하여 사용자를 인증하는 방법 및 단말
CA2499092A1 (en) Methods and systems for providing a secure data distribution via public networks
EP3961442A2 (en) Digital certificate invalidation and verification method and device
US10887110B2 (en) Method for digital signing with multiple devices operating multiparty computation with a split key
Yu et al. Veridedup: A verifiable cloud data deduplication scheme with integrity and duplication proof
US20230232222A1 (en) User terminal, authentication terminal, registration terminal, management system and program
Riad et al. A blockchain-based key-revocation access control for open banking
KR102568418B1 (ko) 다중 서명을 지원하는 전자 인증 시스템 및 방법
CN113139209B (zh) 一种基于原子性签名的可验证凭据实现方法和系统
KR20200134187A (ko) 분산 환경에서의 신원 인증 방법
CN113746630A (zh) 区块链证书管理方法、装置、联盟链及存储介质
AU2015271650A1 (en) Identity verification

Legal Events

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