KR20230015257A - 분산 키 생성 및 임계 서명 과정 - Google Patents

분산 키 생성 및 임계 서명 과정 Download PDF

Info

Publication number
KR20230015257A
KR20230015257A KR1020220000737A KR20220000737A KR20230015257A KR 20230015257 A KR20230015257 A KR 20230015257A KR 1020220000737 A KR1020220000737 A KR 1020220000737A KR 20220000737 A KR20220000737 A KR 20220000737A KR 20230015257 A KR20230015257 A KR 20230015257A
Authority
KR
South Korea
Prior art keywords
holder
signature
terminal
information
critical
Prior art date
Application number
KR1020220000737A
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 KR1020220000737A priority Critical patent/KR20230015257A/ko
Publication of KR20230015257A publication Critical patent/KR20230015257A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

본 발명은 보안 기술에 관한 것이다.
또한 본 발명은 DID 서명 및 검증을 이용한 임계 서명 시스템과 방법에 관한 것이다.

Description

분산 키 생성 및 임계 서명 과정 {Distributed key generation and critical signing process}
본 발명은 보안 기술에 관한 것이다.
또한 본 발명은 DID 서명 및 검증을 이용한 임계 서명 시스템과 방법에 관한 것이다.
DID(Decentralized Identity, 탈중앙화 신원증명)는 분산원장을 기반으로 SSI(Self Sovereign Identity, 자기주권신원)가 가능한 인증기술이다.
도 1을 참조하면, DID 시스템(1)은 다음과 같은 4가지 요소로 구성된다.
소지자(Holder)(20)는 증명하고자 하는 주체가 된다. 발급자(Issuer)(10)는 검증가능한 자격증명(Verifiable Credential, VC)을 소지자(20)에게 발행한다. 분산원장(혹은 블록체인)(40)은 검증가능한 자격증명(VC)을 증명하는데 사용되는 데이터를 저장한다. 검증자(Verifier)(30)는 검증가능한 자격증명로부터 소지자(20)의 필요한 인증을 검증한다. 본 발명에서 검증가능한 자격증명이라 함은 암호화된 (사용자의) 계정, 비밀번호, 기타 여러가지 암호화된 개인 정보를 나타낼 수 있다.
DID 시스템(1)에서는 소지자(20)와 검증자(30)가 직접적으로 통신하지 않고, 필요한 상황에서 소지자(20)가 사전에 발급받은 검증가능한 자격증명을 활용하여 검증자(30)에게 발급 사실을 증명할 수 있다. 검증자(30)는 블록체인(40)에 저장된 데이터와 소지자(20)가 제시한 검증가능한 자격증명으로부터 인증할 사실을 검증한다.
그러나, 기존의 권한 인증 방식은 신뢰할 수 있는 제3자(trusted third party)을 통해 이루어지는 중앙화 방식으로 이루어진다. 이 또한 당연하게도 중앙화 네트워크의 문제점을 내포하고 있으며, 일종의 단일점 장애로 분산 키 생성 및 임계 서명의 목적에 어긋난다.
공개특허공보 10-2021-0014865 (공개일자 2021년02월10일)
본 발명은 상기한 문제점을 해결하기 위해 개발된 것으로, 실시예들은, DID 서명 및 검증을 이용한 임계 서명 시스템과 방법을 제공할 수 있다.
실시예들에서 이루고자 하는 기술적 과제들은 이상에서 언급한 사항들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 이하 설명할 다양한 실시예들로부터 당해 기술분야에서 통상의 지식을 가진 자에 의해 고려될 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서 일 실시예에 따르면, DID 서명 및 검증을 이용한 임계 서명 시스템은, 임계 서명 전 DID 서명 및 검증에 사용될 제1 비대칭키 및 임계 서명에 사용될 제2 비대칭 키를 생성하는 소지자 단말; 생성된 제1 비대칭 키 중에서 제1 공개 키를 전달받고, 제1 공개 키가 포함된 DID 문서(DID Document)를 생성하고, 분산 키 생성 과정에서 발생하는 비밀 정보의 권한 인증을 위해 소지자 정보 및 키 식별 문자(sequence)를 포함하는 검증가능한 자격증명(Verifiable Credential)을 생성하는 발급자 단말; 소지자 단말에서 생성된 제1 공개 키를 이용하여 소지자 단말의 비밀정보에 대한 권한과 소지자 정보를 검증하는 검증자 단말; 분산 키 생성 및 임계 서명 과정에서 요구되는 다자간 계산(multi-party computation)을 위해 필요한 데이터를 검증자 단말(130)을 통하여 소지자 단말들(120)에게 전달하는 임계 서명 서버; DID 문서, 검증가능한 자격증명, 소지자 정보 중 적어도 하나를 블록체인 저장소에 저장하며, 임계 서명에 필요한 각종 요청에 필요한 데이터를 요청한 단말에 전달하는 노드들을 포함하는 블록체인 네트워크를 포함할 수 있다.
다른 실시예에 따르면, DID 서명 및 검증을 이용한 임계 서명 시스템에서 수행되는 서명 및 검증 방법은, 발급자 단말이 소지자의 정보를 조회하는 단계; 소지자 단말이 임계 서명 전 DID 서명 및 검증에서 사용될 제1 비대칭 키를 생성하는 단계; 발급자 단말이 생성된 제1 비대칭 키 중에서 제1 공개 키를 전달받고, 제1 공개 키가 포함된 DID 문서를 생성하는 단계; 발급자 단말이 DID 문서 및 소지자 정보를 블록체인 네트워크에 전송하는 단계; 검증자 단말이 분산 키를 생성하기 전에 블록체인 네트워크 및 소지자 단말 중 적어도 하나로부터 소지자 정보를 전달받는 단계; 소지자 단말이 소지자 정보에 대응하는 제1 개인 키로 소지자 정보에 서명하고, 제1 개인 키로 서명된 소지자 정보를 검증자 단말에 전달하는 단계; 검증자 단말이 소지자 정보에 저장되어 있는 발행자 단말의 공개 키를 이용하여 개인 키의 서명값과 대응하는 소지자 정보를 검증(attestation)하는 단계; 소지자 정보를 검증받은 복수의 소지자 단말이 분산 키 생성 과정에 참여하여 분산 키를 생성하는 단계; 발급자 단말이 소지자 정보 및 키 식별 문자(sequence) 중 적어도 하나를 포함하는 검증가능한 자격증명(Verifiable Credential)을 생성하는 단계; 검증자 단말이 임계 서명을 수행하기 전에 블록체인 네트워크 및 소지자 단말 중 적어도 하나로부터 소지자 정보를 전달받는 단계; 소지자 단말이 소지자 정보에 대응하는 제1 개인 키로 소지자 정보에 서명하고, 제1 개인 키로 서명된 소지자 정보를 검증자 단말에 전달하는 단계; 검증자 단말이 소지자 정보에 저장되어 있는 발행자 단말의 제1 공개 키를 이용하여 제1 개인 키의 서명값과 대응하는 소지자 정보를 검증(attestation)하는 단계; 소지자 단말이 비밀 정보에 대한 권한을 인증하는 단계; 소지자 단말이 비밀 정보에 대한 권한 인증에 대응하는 검증가능한 자격증명에 제1 개인 키로 서명하여 검증자 단말에게 전송하고, 검증자 단말은 제1 개인 키의 서명값과 제1 공개 키의 서명 값을 비교하여 검증하는 단계; 및 비밀정보에 대한 권한과 소지자 정보를 검증받은 복수의 소지자 단말이 분산 키를 이용하여 임계 서명을 수행하는 단계를 포함할 수 있다.
다른 실시예에 따르면, DID 서명 및 검증을 이용한 임계 서명 시스템에서 수행되는 서명 및 검증 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체가 개시된다. 상기 방법은, 발급자 단말이 소지자의 정보를 조회하는 단계; 소지자 단말이 임계 서명 전 DID 서명 및 검증에서 사용될 제1 비대칭 키를 생성하는 단계; 발급자 단말이 생성된 제1 비대칭 키 중에서 제1 공개 키를 전달받고, 제1 공개 키가 포함된 DID 문서를 생성하는 단계; 발급자 단말이 DID 문서 및 소지자 정보를 블록체인 네트워크에 전송하는 단계; 검증자 단말이 분산 키를 생성하기 전에 블록체인 네트워크 및 소지자 단말 중 적어도 하나로부터 소지자 정보를 전달받는 단계; 소지자 단말이 소지자 정보에 대응하는 제1 개인 키로 소지자 정보에 서명하고, 제1 개인 키로 서명된 소지자 정보를 검증자 단말에 전달하는 단계; 검증자 단말이 소지자 정보에 저장되어 있는 발행자 단말의 공개 키를 이용하여 개인 키의 서명값과 대응하는 소지자 정보를 검증(attestation)하는 단계; 소지자 정보를 검증받은 복수의 소지자 단말이 분산 키 생성 과정에 참여하여 분산 키를 생성하는 단계; 발급자 단말이 소지자 정보 및 키 식별 문자(sequence) 중 적어도 하나를 포함하는 검증가능한 자격증명(Verifiable Credential)을 생성하는 단계; 검증자 단말이 임계 서명을 수행하기 전에 블록체인 네트워크 및 소지자 단말 중 적어도 하나로부터 소지자 정보를 전달받는 단계; 소지자 단말이 소지자 정보에 대응하는 제1 개인 키로 소지자 정보에 서명하고, 제1 개인 키로 서명된 소지자 정보를 검증자 단말에 전달하는 단계; 검증자 단말이 소지자 정보에 저장되어 있는 발행자 단말의 제1 공개 키를 이용하여 제1 개인 키의 서명값과 대응하는 소지자 정보를 검증(attestation)하는 단계; 소지자 단말이 비밀 정보에 대한 권한을 인증하는 단계; 소지자 단말이 비밀 정보에 대한 권한 인증에 대응하는 검증가능한 자격증명에 제1 개인 키로 서명하여 검증자 단말에게 전송하고, 검증자 단말은 제1 개인 키의 서명값과 제1 공개 키의 서명 값을 비교하여 검증하는 단계; 및 비밀정보에 대한 권한과 소지자 정보를 검증받은 복수의 소지자 단말이 분산 키를 이용하여 임계 서명을 수행하는 단계를 포함할 수 있다.
다른 실시예에 다르면, DID 서명 및 검증을 이용한 임계 서명 시스템에서 수행되는 서명 및 검증 방법을 수행하기 위해 매체에 저장된 컴퓨터 프로그램이 개시된다. 상기 방법은, 발급자 단말이 소지자의 정보를 조회하는 단계; 소지자 단말이 임계 서명 전 DID 서명 및 검증에서 사용될 제1 비대칭 키를 생성하는 단계; 발급자 단말이 생성된 제1 비대칭 키 중에서 제1 공개 키를 전달받고, 제1 공개 키가 포함된 DID 문서를 생성하는 단계; 발급자 단말이 DID 문서 및 소지자 정보를 블록체인 네트워크에 전송하는 단계; 검증자 단말이 분산 키를 생성하기 전에 블록체인 네트워크 및 소지자 단말 중 적어도 하나로부터 소지자 정보를 전달받는 단계; 소지자 단말이 소지자 정보에 대응하는 제1 개인 키로 소지자 정보에 서명하고, 제1 개인 키로 서명된 소지자 정보를 검증자 단말에 전달하는 단계; 검증자 단말이 소지자 정보에 저장되어 있는 발행자 단말의 공개 키를 이용하여 개인 키의 서명값과 대응하는 소지자 정보를 검증(attestation)하는 단계; 소지자 정보를 검증받은 복수의 소지자 단말이 분산 키 생성 과정에 참여하여 분산 키를 생성하는 단계; 발급자 단말이 소지자 정보 및 키 식별 문자(sequence) 중 적어도 하나를 포함하는 검증가능한 자격증명(Verifiable Credential)을 생성하는 단계; 검증자 단말이 임계 서명을 수행하기 전에 블록체인 네트워크 및 소지자 단말 중 적어도 하나로부터 소지자 정보를 전달받는 단계; 소지자 단말이 소지자 정보에 대응하는 제1 개인 키로 소지자 정보에 서명하고, 제1 개인 키로 서명된 소지자 정보를 검증자 단말에 전달하는 단계; 검증자 단말이 소지자 정보에 저장되어 있는 발행자 단말의 제1 공개 키를 이용하여 제1 개인 키의 서명값과 대응하는 소지자 정보를 검증(attestation)하는 단계; 소지자 단말이 비밀 정보에 대한 권한을 인증하는 단계; 소지자 단말이 비밀 정보에 대한 권한 인증에 대응하는 검증가능한 자격증명에 제1 개인 키로 서명하여 검증자 단말에게 전송하고, 검증자 단말은 제1 개인 키의 서명값과 제1 공개 키의 서명 값을 비교하여 검증하는 단계; 및 비밀정보에 대한 권한과 소지자 정보를 검증받은 복수의 소지자 단말이 분산 키를 이용하여 임계 서명을 수행하는 단계를 포함할 수 있다.
실시예들에 따르면, 임계 서명에 필요한 분산 키 생성과정 및 임계 서명과정 전에 상기 과정을 참여하는 소지자 단말에 대하여 DID 서명 및 검증을 수행함으로써, 분산 키 조각(share)을 보다 안전하게 관리할 수 있다.
실시예들로부터 얻을 수 있는 효과들은 이상에서 언급된 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 이하의 상세한 설명을 기반으로 당해 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다.
실시예들에 대한 이해를 돕기 위해 상세한 설명의 일부로 포함된, 첨부 도면은 다양한 실시예들을 제공하고, 상세한 설명과 함께 다양한 실시예들의 기술적 특징을 설명한다.
도 1은 DID 시스템에 대한 개념도이다.
도 2는 실시예들에 따른 임계 서명을 이용한 DID 시스템의 예시도를 나타낸다.
도 3은 본 발명의 일 실시예에 따른 임계 서명을 이용한 DID 방법의 순서도이다.
도 4 내지 도 5는 DID 문서를 설명하기 위한 도면이다.
도 6은 검증가능한 자격증명(Verifiable Credential)을 설명하기 위한 도면이다.
도 7은 임계서명을 2명의 소지자 단말이 수행하는 과정(threshold가 2인 경우)을 도시한 도면이다.
상기 도면들을 통해, 유사 참조 번호들은 동일한 혹은 유사한 엘리먼트들과, 특징들 및 구조들을 도시하기 위해 사용된다는 것에 유의해야만 한다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
실시예를 설명함에 있어서 본 발명이 속하는 기술 분야에 익히 알려져 있고 본 발명과 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 발명의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다.
마찬가지 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시되었다. 또한, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 각 도면에서 동일한 또는 대응하는 구성요소에는 동일한 참조 번호를 부여하였다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이 때, 본 실시 예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(field-Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
본 발명의 실시예들을 구체적으로 설명함에 있어서, 특정 시스템의 예를 주된 대상으로 할 것이지만, 본 명세서에서 청구하고자 하는 주요한 요지는 유사한 기술적 배경을 가지는 여타의 통신 시스템 및 서비스에도 본 명세서에 개시된 범위를 크게 벗어나지 아니하는 범위에서 적용 가능하며, 이는 당해 기술분야에서 숙련된 기술적 지식을 가진 자의 판단으로 가능할 것이다.
이하 첨부된 도면을 참고하여 본 발명을 상세히 설명하기로 한다.
도 2는 실시예들에 따른 DID 서명 및 검증을 이용한 임계 서명 시스템의 예시도를 나타낸다.
도 2를 참조하면, DID 서명 및 검증을 이용한 임계 서명 시스템(100)은 발급자 단말(110), 소지자 단말(120), 검증자 단말(130), DID 저장소(혹은 블록체인 네트워크)(140) 및/또는 임계 서명 서버(150)를 포함한다.
DID 저장소(DID Repository)(140)는 블록체인 기반으로 구성되며, 소정의 기능을 수행하는 복수의 노드들을 포함하는 블록체인 네트워크(140)일 수 있다. 특히, 블록체인 네트워크(140)는 DID 문서, 검증가능한 자격증명, 소지자 정보 중 적어도 하나를 블록체인 저장소에 저장하며, 임계 서명에 필요한 각종 요청에 필요한 데이터를 요청한 단말에 전달하는 노드들을 포함할 수 있다. 본 발명에서 검증가능한 자격증명이라 함은 암호화된 (사용자의) 계정, 비밀번호, 기타 여러가지 암호화된 개인 정보를 나타낼 수 있다.
본 발명의 일 실시예에서 발급자 단말(110), 소지자 단말(120), 검증자 단말(130)은 블록체인 네트워크(140)에 접속이 가능하고 소정의 프로그램(혹은 애플리케이션) 실행이 가능한 컴퓨팅 장치로서, 예를 들어 PC, 노트북, 태블릿PC, 스마트폰 등일 수 있다.
임계 서명 서버(140)는 검증자 단말(130)과 네트워크로 연결되어 검증자 단말(130)로부터 임계 서명 서버(140)로 검증자 단말(130)에서 인증을 마친 각각의 요청들이 전송될 수 있다. 이때, 임계 서명 서버(140)는 분산 키 생성 및 임계 서명 과정에서 요구되는 다수의 소지자-계산(multi-party computation)을 위해 값을 소지자 단말들(120)에게 연계할 수 있으며, 임계 서명 서버(140)는 전달받은 값들에 대해 어떤 연산이나 기록을 수행하지 않는다. 또한, 임계 서명 서버(150)에 저장된 메타데이터에는 단순히 키 생성과 서명의 로그만 기록할 뿐, 어떠한 비밀 정보(secret)나 소지자 단말로부터 전달받은 공개되어도 상관없는(즉, 영지식 증명(zero-knowledge proof)의) 값들은 저장되지 않을 수 있다.
발급자 단말(110)은 DID 문서(DID document)와 검증가능한 자격증명(VC, Verifiable Credential)을 생성(발급)할 수 있고, 생성된 검증가능한 자격증명을 분산원장 혹은 블록체인 네트워크(140)에 저장할 수 있다. 다른 예로, 발급자 단말(110)은 생성된 검증가능한 자격증명을 QR 코드의 형식으로 소지자 단말에 제공할 수 있다. 이때 DID 문서는 소지자인 DID 대상을 설명하는 데이터들의 모음이다. DID 대상을 설명하는 데이터에는 DID 대상이 자기 자신을 인증하고 DID와의 연관성을 입증하는데 사용할 수 있는 공개키나 유사 생체 인식과 같은 데이터를 포함한다. 또한, 발급자 단말(110)은 소지자 정보 중 필요한 일부 소지자 정보만을 이용하여 검증가능한 자격증명(VC)을 생성할 수 있다. 검증가능한 자격증명(VC)에는, 임계 서명과 관련된 소지자 식별 정보, 소지자 단말 정보, 다자간 계산에 참여하는 참여자를 식별 정보가 포함된다.
소지자 단말(120)은 비대칭 키를 생성할 수 있다. 이때, 비대칭 키에는 '개인 키(private key)'와 상기 개인 키에 대응된 '공개 키(public key)'가 쌍으로 구성될 수 있다.
관련하여, 소지자 단말(120)은 임계 서명 전 DID 서명 및 검증에 사용될 제1 비대칭 키를 생성할 수 있다. 또한, 후술할 분산 키 생성 단계에서, 소지자 단말(120)은 임계 서명에 사용될 제2 비대칭 키를 생성할 수 있다. 제2 비대칭 키는 임계 서명에 사용될 분산 키이다. 이때, 소지자 단말(120)은 제1 비대칭 키와 제2 비대칭 키 모두 소지자 단말 내의 신뢰 실행 환경(Trusted Execution Environment, Tee)에 저장할 수 있다. 이때, 제1 비대칭 키는 제1 공개 키와 제1 개인 키를 포함하고, 제2 비대칭 키는 제2 공개 키와 제2 개인 키를 포함한다. 또한, 제1 비대칭 키와 제2 비대칭 키 모두 소지자 단말 내의 신뢰 실행 환경(TEE)에 안전하게 보관되어진다.
또한, 소지자 단말(120)은, 임계 서명을 수행하기 위해서, 검증자 단말(130)에게 소지자 정보를 전송하면서, 제1 개인 키를 이용하여 소지자 정보에 서명할 수 있다. 이때, 제1 개인 키는 분산 키 생성에 참여하는 소지자 단말 내의 신뢰 실행 환경(Trusted Execution Environment, TEE)에 저장되어질 수 있고, 신뢰할 수 있는 응용프로그램(Trusted Application, TA)이 신뢰되는 경로로만 해당 개인키에 접근하여 연산할 수 있다.
검증자 단말(130)은 소지자 단말(120)에서 생성된 제1 공개 키를 이용하여 소지자 단말(120)의 비밀정보에 대한 권한과 소지자 정보를 검증할 수 있다.
도 3은 본 발명의 일 실시예에 따른 임계 서명을 이용한 DID 방법의 순서도이다.
도 3을 참조하면, 임계 서명을 이용한 DID 방법은 DID 문서 생성(발급)에 해당하는 S310단계, 분산 키를 생성하는 S320단계, 임계 서명하는 S330단계의 순으로 이루어 질 수 있다. S310단계, S320단계 및 S330단계에 대해서는 이하 자세히 설명한다.
(1) DID 문서 생성(발급)
S310단계는, 임계 서명에 참여하는 소지자를 등록하는 과정으로, 해당 소지자의 DID 문서를 생성하는 단계이다.
소지자를 등록하기 이전에, 발급자 단말(110)은 소지자의 정보를 조회할 수 있다. 이때, 소지자 정보 조회는 요청을 보내온 대상이 진정 그 대상이 맞는 지 여부(authentication)을 위한 것으로, 통신사 인증이나 은행의 계좌 인증 등의 방식으로 수행될 수 있다. 또한, 등록하려는 단말에 대한 검증(attestation)을 위한 정보도 포함될 수 있다. 예를 들어, 기기의 고유 번호나 TEE 중 intel SGX를 사용하는 경우, 개인 키와 분산 키 정보 등을 저장하는 Enclave에 대한 정보나 quote에 대한 정보 등이 포함될 수 있다.
동시에, 소지자 단말(120)은 비대칭 키를 생성할 수 있다. 이때, 비대칭 키에는 개인 키와 개인 키에 대응된 공개 키가 쌍으로 구성될 수 있다.
관련하여, 소지자 단말(120)은 임계 서명 전 DID 서명 및 검증에 사용될 제1 비대칭 키를 생성할 수 있다. 또한, 후술할 분산 키 생성 단계에서, 소지자 단말(120)은 임계 서명에 사용될 제2 비대칭 키를 생성할 수 있다. 제2 비대칭 키는 임계 서명에 사용될 분산 키이다. 이때, 소지자 단말(120)은 제1 비대칭 키와 제2 비대칭 키 모두 소지자 단말 내의 신뢰 실행 환경(Trusted Execution Environment, Tee)에 저장할 수 있다. 이때, 제1 비대칭 키는 제1 공개 키와 제1 개인 키를 포함하고, 제2 비대칭 키는 제2 공개 키와 제2 개인 키를 포함한다.
이후, 발급자 단말(110)은 생성된 제1 비대칭 키 중에서 제1 공개 키를 전달받고, 제1 공개 키가 포함된 DID 문서를 생성(발급)할 수 있다.
이후, 발급자 단말(110)은 DID 문서와 소지자 정보(가령, 단말 정보, IP정보 등 포함)를 분산원장 혹은 블록체인 네트워크(140)에 전송할 수 있다. 또는, 발급자 단말(110)은 DID 문서와 소지자 정보를 QR 코드 형식으로 소지자 단말(120)에 제공할 수 있다.
또한, 분산 키 생성에 참여하는 복수의 소지자 단말(120)은 모두 DID 문서를 생성(발급)할 수 있다. 여기서, 소지자는 동일한 소지자가 여러 단말을 사용하는 경우에도, 분산 키 생성에 참여하는 소지자 단말(120)은 모두 DID 문서를 생성(발급)해야 한다. 즉, 동일한 소지자라 하더라도 각각의 단말에 대해 모두 다른 참여자로 취급된다.
도 4 내지 도 5는 DID 문서를 설명하기 위한 도면이다.
도 4를 참조하면, DID 문서는 DID체계에서 사람이나 기관 같은 주체를 가리키기 위한 식별자(ID, Identifier)를 선언하는 자료 구조를 의미하며, 식별자와 공개키와 포함되어 있는 형식으로 구성될 수 있다. DID는 분산 환경에서 안전하고 검증 가능한 방식으로 블록체인에 저장할 수 있다. 예를 들면, DID는 속성, 공개키, 유효기간 등이 함께 블록체인에 저장될 수 있다.
도 5를 참조하면, 일반적으로 DID 식별자 값은 공개키로부터 유도할 수 있는 값이 사용될 수 있다. 예를 들면, 이더리움 계좌 주소의 경우, Address = Last160bits(Hash(publicKey))와 같이 정의될 수 있다. 식별자의 주인이 식별자에 대응하는 개인키를 가지고 데이터를 서명함으로써 식별자의 주인임을 증명할 수 있다. 이와 같이, 식별자와 공개키를 연결할 경우, 특정 암호 알고리즘을 사용해야 한다. 예를 들면, DID를 이더리움 블록체인에 저장하고자 한다면, 모든 사용자가 secp256k1 알고리즘의 개인키를 지녀야 한다. FIDO 표준에서는 FIDO 인증 기기가 RSA, secp25641, secp256k1를 포함하는 비대칭 알고리즘 중 어느 하나에 제한되지 않는다.
(2) 분산 키 생성
임계 서명을 위한 분산 키를 생성하기 전에, 임계 서명에 참여하는 각 소지자들에 대응하는 분산 키 조각(share)에 대한 권한 인증이 필히 요구되어진다.
관련하여, 단순히 분산 키 조각에 대한 권한을 포함할 뿐만 아니라, 서명하고자 하는 개인 키에 대응하는 분산 키조각이 맞는 지, 정당한 소지자 단말에서 만들어진 결과값이 맞는 지 등등에 대한 여러 인증 및 검증이 필요하다. 이때, 검증자 단말(130)이 권한을 인증하는 방법은 다음과 같이 이루어진다.
먼저, 분산 키를 생성하기 전에, 검증자 단말(130)은 블록체인 네트워크(140)나 소지자 단말(120)로부터 소지자 정보를 전달받을 수 있다. 이때, 검증자 단말(130)은 소지자 단말(120)로부터는 QR 코드의 형식으로 소지자 정보를 전달받을 수 있다.
동시에, 소지자 단말(120)은 소지자 정보에 대응하는 제1 개인 키로 소지자 정보에 서명할 수 있고, 제1 개인 키로 서명된 소지자 정보를 검증자 단말(130)에 전달할 수 있다. 이때, 제1 개인 키는 분산 키 생성에 참여하는 소지자 단말 내의 신뢰 실행 환경(Trusted Execution Environment, TEE)에 저장되어 있으며, 신뢰할 수 있는 응용프로그램(Trusted Application, TA)이 신뢰되는 경로로만 해당 제1 개인 키에 접근하여 연산할 수 있다.
이후, 검증자 단말(130)은 소지자 정보에 저장되어 있는 발행자 단말(110)의 제1 공개 키를 이용하여 제1 개인 키의 서명값과 대응하는 소지자 정보를 검증(attestation)할 수 있다. 이를 통하여, 검증자 단말(130)은 소지자의 신원을 확인할 수 있다.
이후, 신원 확인이 끝난 복수의 소지자 단말(130)은 분산 키 생성 과정에 참여하여 분산 키를 생성할 수 있다.
관련하여, 소지자 정보를 검증받은 복수의 소지자 단말(130)은 임계 서명(Threshold Signature)에 필요한 분산 키를 생성할 수 있다.
자세하게는, 소지자 정보를 검증받은 복수의 소지자 단말(130)은 분산 키 생성 과정에 참여함으로써, 분산 키 조각을 각각 생성할 수 있다. 또한, 각각의 소지자 단말(130)에 저장된 분산 키 조각에 다자간 계산(multi-party computation)을 이용하여 공통된 공개 키인 제2 공개 키와 제2 개인 키를 생성할 수 있다. 이때, 임계 서명 서버(140)는 분산 키 생성 및 임계 서명 과정에서 요구되는 다자간 계산(multi-party computation)을 위해 필요한 데이터를 검증자 단말(130)을 통하여 소지자 단말들(120)에게 전달할 수 있으며, 임계 서명 서버(140)는 전달받은 값들에 대해 어떤 연산이나 기록을 수행하지 않는다.
관련하여, 소지자 단말(130)이 제2 비대칭 키인 분산 키를 생성하는 과정은 다음과 같다.
관련하여, 분산 키 생성 과정은 비밀분산(secret sharing)에 기반을 둔다. 즉, 비밀분산은 비밀정보(e.g., secret key)를 수학적 알고리즘에 근거하여 공유(나누는 것을 의미)하고, 공유된 정보들(shares)을 이용하여 비밀정보를 원래대로 구성하는 방법을 다루는 분야이다.
일 실시예에 있어서, 비밀분산 방법은 타원 곡선 암호(ECC, Elliptic curve cryptography) 방식을 이용한 타원 곡선 전자 서명 알고리즘(Elliptic Curve Digital Signature Algorithm, ECDSA)에 기반을 둔다.
먼저, 각 소지자 단말(130)은 분산 키 조각과 암호키를 생성할 수 있다. 분산키 조각은 임계 서명을 위한 임계키 조각이며, 암호키는 임계서명 중간값을 암복호화하는데 사용되는 Paillier 암/복호화 키이다. 이때 Paillier는 합성수 잉여류(composite residuosity class)에 기반을 둔 공개키 암호 방식을 나타낼 수 있다.
이후, 임계키에 대응하는 공개키를 생성하기 위해, 각 소지자 단말(130)은 공개키 생성을 위한 중간값인
Figure pat00001
를 암호키로 암호화하여 다른 소지자 단말에게 전달할 수 있다. 이때, 복호화키를 함께 전달할 수 있다.
이후, 각각의 소지자 단말(130)은 상기 전달한 중간값을 정상적으로 복호화하였을 경우, 결과값(yi)를 다른 소지자 단말에게 전달할 수 있다.
이후, 각 소지자 단말(130)은 상기 결과값(yi)에 Feldman-VSS를 사용할 수 있다.
이후, 상기 검증 과정을 통해 모든 소지자 단말은
Figure pat00002
를 계산하여 공개키를 생성할 수 있다. 만약, 상기 검증 과정에서 검증이 실패한 경우, 상기 모든 과정은 즉시 종료될 수 있다. 검증 실패는 상기 과정에 참여하는 소지자 단말이 부정한 경우 일 수 있다.
이후, 분산 키 생성 과정으로 발생하는 비밀 정보의 권한 인증을 위해, 발급자 단말(110)은 소지자 정보 및 키 식별 문자(sequence) 등을 포함하는 검증가능한 자격증명(VC)을 생성(발급)할 수 있다. 검증가능한 자격증명(VC)에는, 임계 서명과 관련된 소지자 식별 정보, 소지자 단말 정보, 다자간 계산에 참여하는 참여자를 식별 정보가 포함된다. 발급자 단말(110)은 검증가능한 자격증명을 분산원장 혹은 블록체인 네트워크(140)에 전송할 수 있다. 또는, 발급자 단말(110)은 자격증명을 QR 코드 형식으로 소지자 단말(120)에 제공할 수 있다.
도 6은 검증가능한 자격증명(Verifiable Credential, VC)을 설명하기 위한 도면이다.
도 6을 참조하면, 검증가능한 자격증명은 신뢰할 수 있는 발행자 단말(110)에 의해 발급되며, PKI에서 인증서에 CA의 전자서명이 포함된 것처럼, 검증가능 자격증명의 Proof에는 발행자 단말(110)의 전자서명이 포함된다. 검증가능한 자격증명(VC)에는, 임계 서명과 관련된 소지자 식별 정보, 소지자 단말 정보, 다자간 계산에 참여하는 참여자를 식별 정보가 포함된다. 발급자 단말(110)은 소지자 정보 중 필요한 일부 소지자 정보만을 이용하여 검증가능한 자격증명(VC)을 생성할 수 있다. 여기서, 필요한 일부 사용자 정보는 예를 들어, 편의점 주류 구매시, 사용자의 나이 정보와 같은 익명화된 필수정보, 은행의 계좌 이체 서비스시 사용자의 게좌정보와 같은 익명화된 필수정보가 될 수 있다.
(3) 임계 서명(Threshold Signature)
임계 서명을 수행하기 전에, 비밀정보에 대한 권한과 소지자 정보를 인증 받아야 한다.
관련하여, 임계 서명을 수행하기 전에, 검증자 단말(130)은 블록체인 네트워크(140) 및/또는 소지자 단말(120)로부터 소지자 정보를 전달받을 수 있다. 이때, 검증자 단말(130)은 소지자 단말(120)로부터는 QR 코드의 형식으로 구성된 소지자 정보를 전달받을 수 있다.
동시에, 소지자 단말(120)은 소지자 정보에 대응하는 제1 개인 키로 소지자 정보에 서명할 수 있고, 제1 개인 키로 서명된 소지자 정보를 검증자 단말(130)에 전달할 수 있다. 이때, 제1 개인키는 분산 키 생성에 참여하는 소지자 단말(120) 내의 메모리 및/또는 신뢰 실행 환경(Trusted Execution Environment, TEE)에 저장되어 있으며, 신뢰할 수 있는 응용프로그램(Trusted Application, TA)이 신뢰되는 경로로만 해당 제1 개인키에 접근하여 연산할 수 있다. 한편, 상기 신뢰 실행 환경(TEE)은 상기 메모리를 통하여 구현되는 모듈 및/또는 프로그램(및/또는 명령어들의 집단)에 상응할 수 있다.
이후, 검증자 단말(130)은 소지자 정보에 저장되어 있는 발행자 단말(110)의 제1 공개 키를 이용하여 제1 개인 키의 서명값과 대응하는 소지자 정보를 검증(attestation)할 수 있다. 이를 통하여, 검증자 단말(130)은 소지자 단말(120)의 사용자, 즉 소지자의 신원을 확인할 수 있다.
이후, 신원 확인이 끝난 소지자 단말(120)은 비밀 정보에 대한 권한을 인증할 수 있다. 이때, 검증자 단말(130)은 소지자 정보를 인증하는 것과 비슷한 과정으로 비밀 정보에 대한 권한을 인증할 수 있다.
관련하여, 소지자 단말(120)은 비밀 정보에 대한 권한 인증에 대응하는 검증가능한 자격증명(VC)에 제1 개인 키로 서명하여 검증자 단말(130)에 전송할 수 있다. 이때, 검증자 단말(130)은 제1 개인 키의 서명 값과 블록체인 네트워크(140)에서 전송된 제1 공개 키의 서명 값을 비교하여 검증(authentication)할 수 있다. 추가적으로, 검증자 단말(130)은 비밀 정보에 대응하는 개인 키에 대한 서명 과정인지 여부를 검증할 수 있다. 또한, 검증가능한 자격증명(VC)에는 소지자 식별 정보, 소지자 단말 정보, 다자간 계산에 참여하는 참여자를 식별 정보가 포함된다.
이후, 비밀정보에 대한 권한과 소지자 정보를 검증받은 복수의 소지자 단말(120)은 분산 키를 이용하여 임계 서명을 수행할 수 있다. 이때, 임계 서명 서버(140)는 분산 키 생성 및 임계 서명 과정에서 요구되는 다자간 계산(multi-party computation)을 위해 필요한 데이터를 검증자 단말(130)을 통하여 소지자 단말들(120)에게 전달할 수 있으며, 임계 서명 서버(140)는 전달받은 값들에 대해 어떤 연산이나 기록을 수행하지 않는다.
관련하여, 도 7은 임계서명을 2명의 소지자 단말이 수행하는 과정(threshold가 2인 경우)을 도시한 도면이다.
관련하여, 각각의 소지자 단말(121, 123)이 임계서명에 사용될 서명값 r 과 서명값 s을 생성하기 위하여, 제1 소지자 단말(121)은
Figure pat00003
Figure pat00004
를 생성하여 제2 소지자 단말(123)에게 전송하고, 제2 소지자 단말(123)은
Figure pat00005
Figure pat00006
를 생성하여 제1 소지자 단말(121)에게 전송한다. 이후, 제1 소지자 단말(121) 및 제2 소지자 단말(123)은 각각
Figure pat00007
,
Figure pat00008
,
Figure pat00009
,
Figure pat00010
에 기초하여 서명값 r과 서명값 s를 생성하고, 임계키에 대응하는 공개키를 이용하여 서명을 검증(verify)할 수 있다. 즉, 각 소지자 단말(121, 123)은 임계서명에 필요한 값 교환을 통해 동일한 서명값 r 및 s를 생성하고 임계키에 대응하는 공개키를 이용하여 생성된 서명(r,s)를 검증(verify)할 수 있다.
또한, 복수의 소지자 단말(120)이 분산 키를 이용하여 메시지 M에 대한 ECDSA 서명 프로토콜을 수행하는 방법은 2019년 Rosario Gennaro가 제시한 ECDSA 임계서명(Rosario Gennaro, Steven Goldfeder: Fast Multiparty Threshold ECDSA with Fast Trustless Setup, 2019)이 이용될 수 있다.
한편, 검증자 단말(130)을 통해 인증을 마친 각각의 임계 서명에 필요한 요청들은 임계 서명 서버(150)로 리다이렉트(redirect)될 수 있다. 또한, 임계 서명 서버(150)는 분산 키 생성 및 임계 서명 과정에서 요구되는 다자간 계산(Multi-Party Computation, MPC)을 위해 필요한 데이터를 검증자 단말(130)을 통하여 소지자 단말(120)들에게 전달할 수 있다. 이때, 다자간 계산이란 다수의 사용자가 각각의 비밀 값을 입력값으로 하여 함숫값을 함께 계산하는 기술을 말한다. 또한, 임계 서명 서버(150)는 메타데이터에 단순히 키 생성과 서명의 로그만 저장할 수 있고, 어떤 비밀정보나 소지자 단말(120)로부터 전달받은 공개되어도 상관없는(영지식 증명(zero-knowledge proof)의)값들은 저장하지 않을 수 있다. 이때, 영지식 증명은 사전 정의된 연산에 대해 비밀 입력값은 공개하지 않으면서도 입출력값의 관계에 해당하는 비밀 입력값을 알고 있음을 증명하는 암호 기술이다.
그리고, 본 발명의 일 실시예는 다음과 같은 특징을 더 포함할 수 있다.
관련하여, 제1 소지자 단말(120)은, 분산 키 조각을 소유한 총 소지자 단말의 수(n)와 임계 서명에 필요한 소지자 단말의 개수인 임계값(t)의 조건이 설정된 임계 서명 요청을 임계 서명 서버(150)에게 전송할 수 있다. 임계 서명 요청을 받은 임계 서명 서버(150)는, 신원 확인이 끝난 t개의 제2 소지자 단말(130)로부터 임계 서명에 필요한 데이터(shares)를 전송받은 경우, 임계 서명에 필요한 데이터(shares)를 제1 소지자 단말(120)에게 전송하고, 제1 소지자 단말(120)은 임계 서명에 필요한 데이터(shares)를 이용하여 임계 서명을 수행할 수 있다.
이를 위해 본 발명의 일 실시예에 따른 DID 서명 및 검증을 이용한 임계 서명 시스템(100)은 하나의 제1 소지자 단말(120)과 복수의 제2 소지자 단말(120)들을 포함할 수 있다. 이때, 임계 서명 서버(150)는 제2 소지자 단말(130)로부터 임계 서명에 필요한 데이터의 개수를 카운팅할 수 있으며, 전체 제2소지자 단말(130)에게 임계서명에 필요한 데이터를 요청할 수 있다. 또한, 소지자 단말(120)이 임계 서명에 필요한 데이터의 개수를 카운팅하여 임계 서명 서버(150)에 필요한 데이터를 요청할 수도 있다.
일 실시예에서, 제1 소지자 단말(120)은 상기 제1 소지자 단말(120)의 검증가능한 자격증명(VC)에 기초한 조건의 임계 서명 요청을 임계 서명 서버(150)에게 전송할 수 있다.
관련하여, 제1 소지자 단말(120)은 분산 키를 소유한 총 소지자 단말의 수(n)와 상기 제1 소지자 단말(120)의 검증가능한 자격증명에 포함된 주소 정보와 동일한 주소 정보를 포함된 검증가능한 자격증명을 소유하면서, 임계 서명에 필요한 제2 소지자 단말의 수(t)의 조건이 설정된 임계 서명 요청을 임계 서명 서버(150)에게 전송할 수 있다. 임계 서명 요청을 받은 임계 서명(150)는, 신원 확인이 끝난 제2 소지자 단말 중에서 제1 소지자 단말과 동일한 주소 정보만 포함된 검증가능한 자격증명을 소유한 t개의 제2 소지자 단말(130)로부터 임계 서명에 필요한 데이터(shares)를 전송받은 경우, 임계 서명에 필요한 데이터(shares)를 제1 소지자 단말(120)에게 전송하고, 제1 소지자 단말(120)은 t개의 임계 서명에 필요한 데이터(shares)를 이용하여 임계 서명을 수행할 수 있다. 동일한 주소의 일정 개수 이상의 소지자 단말이 모여야 소지자 단말(120)이 임계 서명을 수행할 수 있음을 통하여, 동일한 주소의 인원수가 일정 명수 이상이 있음이 검증되고, 해당 소지자 단말은 동일한 주소의 일정 인원수가 일정 명수 이상이 있어야 제공받을 수 있는 서비스(예, 카풀 서비스, 렌터카 서비스, 주택/숙박 공유 서비스, 물품 공유 서비스 등)를 받을 수 있다.
다른 예로, 제1 소지자 단말(120)은 분산 키를 소유한 총 소지자 단말의 수(n), 상기 제1 소지자 단말(120)의 검증가능한 자격증명에 포함된 주소 정보와 동일한 주소 정보를 포함된 검증가능한 자격증명을 소유하면서, 임계 서명에 필요한 제2 소지자 단말의 수(t1)와 임계 서명에 필요한 데이터의 전송횟수에 대한 제2 임계값(t2)의 조건이 설정된 임계 서명 요청을 임계 서명 서버(150)에게 전송할 수 있다. 이때, t2에 대한 조건은 수학식 1에 정의될 수 있다.
[수학식 1]
Figure pat00011
여기서,
Figure pat00012
는 특정 소지자 단말의 임계 서명에 필요한 데이터의 전송횟수를 의미하여,
Figure pat00013
는 전체 소지자 단말(n개)의 임계 서명에 필요한 데이터의 전송횟수의 평균을 의미한다. 이때 임계 서명 서버(150)는, 특정 소지자 단말의 임계 서명에 필요한 데이터의 전송횟수를 카운팅할 수 있으며, 전체 소지자 단말(n개)의 임계 서명에 필요한 데이터의 전송횟수의 평균을 계산할 수 있다.
이후, 임계 서명 요청을 받은 임계 서명 서버(150)는, 신원 확인이 끝난 제2 소지자 단말 중에서 수학식 1을 만족하면서, 신원 확인이 끝난 제2 소지자 단말 중에서 제1 소지자 단말과 동일한 주소 정보만 포함된 검증가능한 자격증명을 소유한 t1개의 제2 소지자 단말(130)로부터 임계 서명에 필요한 데이터(shares)를 전송받은 경우, 임계 서명에 필요한 데이터(shares)를 제1 소지자 단말에게 전송하고, 제1 소지자 단말(120)은 임계 서명에 필요한 데이터(shares)를 이용하여 임계 서명을 수행할 수 있다. 특정 소지자 단말의 임계 서명에 필요한 데이터의 전송횟수가, 전체 소지자 단말의 임계 서명에 필요한 데이터의 평균 전송횟수 대비 일정 이상인 소지자 단말만 임계 서명에 참여하게 함으로써, 특정 사용자가 악의적으로 동일한 주소에서 복수 개의 소지자 단말을 등록하여 임계 서명을 수행하는 것을 예방할 수 있다.
본 문서의 다양한 실시예들에 따른 전자 장치(예; 발급자 단말(110), 소지자 단말(120), 검증자 단말(130), DID 저장소(혹은 블록체인 네트워크)(140), 임계 서명 서버(150) 등)는, 예를 들면, 스마트폰, 태블릿 PC, 이동 전화기, 영상 전화기, 전자책 리더기, 데스크탑 PC, 랩탑 PC, 넷북 컴퓨터, 워크스테이션, 서버, PDA, PMP(portable multimedia player), MP3 플레이어, 의료기기, 카메라, 또는 웨어러블 장치 중 적어도 하나를 포함할 수 있다. 웨어러블 장치는 액세서리형(예: 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(head-mounted-device(HMD)), 직물 또는 의류 일체형(예: 전자 의복), 신체 부착형(예: 스킨 패드 또는 문신), 또는 생체 이식형 회로 중 적어도 하나를 포함할 수 있다. 어떤 실시예들에서, 전자 장치는, 예를 들면, 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스, 홈 오토매이션 컨트롤 패널, 보안 컨트롤 패널, 미디어 박스(예: 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM), 게임 콘솔(예: XboxTM, PlayStationTM), 전자 사전, 전자 키, 캠코더, 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
다른 실시예에서, 전자 장치는, 각종 의료기기(예: 각종 휴대용 의료측정기기(혈당 측정기, 심박 측정기, 혈압 측정기, 또는 체온 측정기 등), MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 또는 초음파기 등), 네비게이션 장치, 위성 항법 시스템(GNSS(global navigation satellite system)), EDR(event data recorder), FDR(flight data recorder), 자동차 인포테인먼트 장치, 선박용 전자 장비(예: 선박용 항법 장치, 자이로 콤파스 등), 항공 전자기기(avionics), 보안 기기, 차량용 헤드 유닛(head unit), 산업용 또는 가정용 로봇, 드론(drone), 금융 기관의 ATM, 상점의 POS(point of sales), 또는 사물 인터넷 장치 (예: 전구, 각종 센서, 스프링클러 장치, 화재 경보기, 온도조절기, 가로등, 토스터, 운동기구, 온수탱크, 히터, 보일러 등) 중 적어도 하나를 포함할 수 있다. 어떤 실시예에 따르면, 전자 장치는 가구, 건물/구조물 또는 자동차의 일부, 전자 보드(electronic board), 전자 사인 수신 장치(electronic signature receiving device), 프로젝터, 또는 각종 계측 기기(예: 수도, 전기, 가스, 또는 전파 계측 기기 등) 중 적어도 하나를 포함할 수 있다. 다양한 실시예에서, 전자 장치는 플렉서블하거나, 또는 전술한 다양한 장치들 중 둘 이상의 조합일 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다. 본 문서에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.
또한 전자 장치는 버스, 프로세서, 메모리, 입출력 인터페이스, 디스플레이, 및 통신 인터페이스를 포함할 수 있다. 어떤 실시예에서는, 전자 장치는, 구성요소들 중 적어도 하나를 생략하거나 다른 구성요소를 추가적으로 구비할 수 있다. 버스는 구성요소들을 서로 연결하고, 구성요소들 간의 통신(예: 제어 메시지 또는 데이터)을 전달하는 회로를 포함할 수 있다. 프로세서는, 중앙처리장치, 어플리케이션 프로세서, 또는 커뮤니케이션 프로세서(communication processor(CP)) 중 하나 또는 그 이상을 포함할 수 있다. 프로세서는, 예를 들면, 전자 장치의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다.
메모리는, 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 메모리는, 예를 들면, 전자 장치의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다. 한 실시예에 따르면, 메모리는 소프트웨어 및/또는 프로그램을 저장할 수 있다. 프로그램은, 예를 들면, 커널, 미들웨어, 어플리케이션 프로그래밍 인터페이스(API), 및/또는 어플리케이션 프로그램(또는 "어플리케이션") 등을 포함할 수 있다. 커널, 미들웨어, 또는 API의 적어도 일부는, 운영 시스템으로 지칭될 수 있다. 커널은, 예를 들면, 다른 프로그램들(예: 미들웨어, API, 또는 어플리케이션 프로그램)에 구현된 동작 또는 기능을 실행하는 데 사용되는 시스템 리소스들(예: 버스, 프로세서, 또는 메모리 등)을 제어 또는 관리할 수 있다. 또한, 커널은 미들웨어, API, 또는 어플리케이션 프로그램에서 전자 장치의 개별 구성요소에 접근함으로써, 시스템 리소스들을 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.
미들웨어는, 예를 들면, API 또는 어플리케이션 프로그램이 커널과 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다. 또한, 미들웨어는 어플리케이션 프로그램으로부터 수신된 하나 이상의 작업 요청들을 우선 순위에 따라 처리할 수 있다. 예를 들면, 미들웨어는 어플리케이션 프로그램 중 적어도 하나에 전자 장치의 시스템 리소스(예: 버스, 프로세서, 또는 메모리 등)를 사용할 수 있는 우선 순위를 부여하고, 상기 하나 이상의 작업 요청들을 처리할 수 있다. API는 어플리케이션이 커널 또는 미들웨어에서 제공되는 기능을 제어하기 위한 인터페이스로, 예를 들면, 파일 제어, 창 제어, 영상 처리, 또는 문자 제어 등을 위한 적어도 하나의 인터페이스 또는 함수(예: 명령어)를 포함할 수 있다. 입출력 인터페이스는, 예를 들면, 사용자 또는 다른 외부 기기로부터 입력된 명령 또는 데이터를 전자 장치의 다른 구성요소(들)에 전달하거나, 또는 전자 장치의 다른 구성요소(들)로부터 수신된 명령 또는 데이터를 사용자 또는 다른 외부 기기로 출력할 수 있다.
디스플레이는, 예를 들면, 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 또는 마이크로 전자기계 시스템(MEMS) 디스플레이, 또는 전자종이(electronic paper) 디스플레이를 포함할 수 있다. 디스플레이는, 예를 들면, 사용자에게 각종 콘텐츠(예: 텍스트, 이미지, 비디오, 아이콘, 및/또는 심볼 등)을 표시할 수 있다. 디스플레이는, 터치 스크린을 포함할 수 있으며, 예를 들면, 전자 펜 또는 사용자의 신체의 일부를 이용한 터치, 제스쳐, 근접, 또는 호버링 입력을 수신할 수 있다. 통신 인터페이스는, 예를 들면, 전자 장치와 외부 장치(예: 제1 외부 전자 장치, 제2 외부 전자 장치, 또는 서버) 간의 통신을 설정할 수 있다. 예를 들면, 통신 인터페이스는 무선 통신 또는 유선 통신을 통해서 네트워크에 연결되어 외부 장치(예: 제2 외부 전자 장치 또는 서버)와 통신할 수 있다.
무선 통신은, 예를 들면, LTE, LTE-A(LTE Advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband), 또는 GSM(Global System for Mobile Communications) 등 중 적어도 하나를 사용하는 셀룰러 통신을 포함할 수 있다. 한 실시예에 따르면, 무선 통신은, 예를 들면, WiFi(wireless fidelity), 블루투스, 블루투스 저전력(BLE), 지그비(Zigbee), NFC(near field communication), 자력 시큐어 트랜스미션(Magnetic Secure Transmission), 라디오 프리퀀시(RF), 또는 보디 에어리어 네트워크(BAN) 중 적어도 하나를 포함할 수 있다. 한실시예에 따르면, 무선 통신은 GNSS를 포함할 수 있다. GNSS는, 예를 들면, GPS(Global Positioning System), Glonass(Global Navigation Satellite System), Beidou Navigation Satellite System(이하 "Beidou") 또는 Galileo, the European global satellite-based navigation system일 수 있다. 이하, 본 문서에서는, "GPS"는 "GNSS"와 상호 호환적으로 사용될 수 있다. 유선 통신은, 예를 들면, USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard232), 전력선 통신, 또는 POTS(plain old telephone service) 등 중 적어도 하나를 포함할 수 있다. 네트워크는 텔레커뮤니케이션 네트워크, 예를 들면, 컴퓨터 네트워크(예: LAN 또는 WAN), 인터넷, 또는 텔레폰 네트워크 중 적어도 하나를 포함할 수 있다.
제1 및 제2 외부 전자 장치 각각은 전자 장치와 동일한 또는 다른 종류의 장치일 수 있다. 다양한 실시예에 따르면, 전자 장치에서 실행되는 동작들의 전부 또는 일부는 다른 하나 또는 복수의 전자 장치(예: 전자 장치, 또는 서버에서 실행될 수 있다. 한 실시예에 따르면, 전자 장치가 어떤 기능이나 서비스를 자동으로 또는 요청에 의하여 수행해야 할 경우에, 전자 장치는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 그와 연관된 적어도 일부 기능을 다른 장치(예: 전자 장치, 또는 서버)에게 요청할 수 있다. 다른 전자 장치(예: 전자 장치, 또는 서버)는 요청된 기능 또는 추가 기능을 실행하고, 그 결과를 전자 장치에게 전달할 수 있다. 전자 장치는 수신된 결과를 그대로 또는 추가적으로 처리하여 요청된 기능이나 서비스를 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
전자 장치는 하나 이상의 프로세서(예: AP), 통신 모듈, (가입자 식별 모듈, 메모리, 센서 모듈, 입력 장치, 디스플레이, 인터페이스, 오디오 모듈, 카메라 모듈, 전력 관리 모듈, 배터리, 인디케이터, 및 모터를 포함할 수 있다. 프로세서는, 예를 들면, 운영 체제 또는 응용 프로그램을 구동하여 프로세서에 연결된 다수의 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다. 프로세서는, 예를 들면, SoC(system on chip)로 구현될 수 있다. 한 실시예에 따르면, 프로세서는 GPU(graphic processing unit) 및/또는 이미지 신호 프로세서를 더 포함할 수 있다. 프로세서는 다른 구성요소들(예: 비휘발성 메모리) 중 적어도 하나로부터 수신된 명령 또는 데이터를 휘발성 메모리에 로드)하여 처리하고, 결과 데이터를 비휘발성 메모리에 저장할 수 있다.
통신 모듈(예: 통신 인터페이스)와 동일 또는 유사한 구성을 가질 수 있다. 통신 모듈은, 예를 들면, 셀룰러 모듈, WiFi 모듈, 블루투스 모듈, GNSS 모듈, NFC 모듈 및 RF 모듈을 포함할 수 있다. 셀룰러 모듈은, 예를 들면, 통신망을 통해서 음성 통화, 영상 통화, 문자 서비스, 또는 인터넷 서비스 등을 제공할 수 있다. 한 실시예에 따르면, 셀룰러 모듈은 가입자 식별 모듈(예: SIM 카드)을 이용하여 통신 네트워크 내에서 전자 장치의 구별 및 인증을 수행할 수 있다. 한 실시예에 따르면, 셀룰러 모듈은 프로세서가 제공할 수 있는 기능 중 적어도 일부 기능을 수행할 수 있다. 한 실시예에 따르면, 셀룰러 모듈은 커뮤니케이션 프로세서(CP)를 포함할 수 있다. 어떤 실시예에 따르면, 셀룰러 모듈, WiFi 모듈, 블루투스 모듈, GNSS 모듈 또는 NFC 모듈 중 적어도 일부(예: 두 개 이상)는 하나의 integrated chip(IC) 또는 IC 패키지 내에 포함될 수 있다. RF 모듈은, 예를 들면, 통신 신호(예: RF 신호)를 송수신할 수 있다. RF 모듈은, 예를 들면, 트랜시버, PAM(power amp module), 주파수 필터, LNA(low noise amplifier), 또는 안테나 등을 포함할 수 있다. 다른 실시예에 따르면, 셀룰러 모듈, WiFi 모듈, 블루투스 모듈, GNSS 모듈 또는 NFC 모듈 중 적어도 하나는 별개의 RF 모듈을 통하여 RF 신호를 송수신할 수 있다. 가입자 식별 모듈은, 예를 들면, 가입자 식별 모듈을 포함하는 카드 또는 임베디드 SIM을 포함할 수 있으며, 고유한 식별 정보(예: ICCID(integrated circuit card identifier)) 또는 가입자 정보(예: IMSI(international mobile subscriber identity))를 포함할 수 있다.
메모리(예: 메모리)는, 예를 들면, 내장 메모리 또는 외장 메모리를 포함할 수 있다. 내장 메모리는, 예를 들면, 휘발성 메모리(예: DRAM, SRAM, 또는 SDRAM 등), 비휘발성 메모리(예: OTPROM(one time programmable ROM), PROM, EPROM, EEPROM, mask ROM, flash ROM, 플래시 메모리, 하드 드라이브, 또는 솔리드 스테이트 드라이브(SSD) 중 적어도 하나를 포함할 수 있다. 외장 메모리는 플래시 드라이브(flash drive), 예를 들면, CF(compact flash), SD(secure digital), Micro-SD, Mini-SD, xD(extreme digital), MMC(multi-media card) 또는 메모리 스틱 등을 포함할 수 있다. 외장 메모리는 다양한 인터페이스를 통하여 전자 장치와 기능적으로 또는 물리적으로 연결될 수 있다.
센서 모듈은, 예를 들면, 물리량을 계측하거나 전자 장치의 작동 상태를 감지하여, 계측 또는 감지된 정보를 전기 신호로 변환할 수 있다. 센서 모듈은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러(color) 센서(예: RGB(red, green, blue) 센서), 생체 센서, 온/습도 센서, 조도 센서, 또는 UV(ultra violet) 센서 중의 적어도 하나를 포함할 수 있다. 추가적으로 또는 대체적으로, 센서 모듈은, 예를 들면, 후각(e-nose) 센서, 일렉트로마이오그라피(EMG) 센서, 일렉트로엔씨팔로그램(EEG) 센서, 일렉트로카디오그램(ECG) 센서, IR(infrared) 센서, 홍채 센서 및/또는 지문 센서를 포함할 수 있다. 센서 모듈은 그 안에 속한 적어도 하나 이상의 센서들을 제어하기 위한 제어 회로를 더 포함할 수 있다. 어떤 실시예에서는, 전자 장치는 프로세서의 일부로서 또는 별도로, 센서 모듈을 제어하도록 구성된 프로세서를 더 포함하여, 프로세서가 슬립(sleep) 상태에 있는 동안, 센서 모듈을 제어할 수 있다.
입력 장치는, 예를 들면, 터치 패널, (디지털) 펜 센서, 키, 또는 초음파 입력 장치를 포함할 수 있다. 터치 패널은, 예를 들면, 정전식, 감압식, 적외선 방식, 또는 초음파 방식 중 적어도 하나의 방식을 사용할 수 있다. 또한, 터치 패널은 제어 회로를 더 포함할 수도 있다. 터치 패널은 택타일 레이어(tactile layer)를 더 포함하여, 사용자에게 촉각 반응을 제공할 수 있다. (디지털) 펜 센서는, 예를 들면, 터치 패널의 일부이거나, 별도의 인식용 쉬트를 포함할 수 있다. 키는, 예를 들면, 하드웨어 버튼, 광학식 키, 또는 키패드를 포함할 수 있다. 초음파 입력 장치는 마이크를 통해, 입력 도구에서 발생된 초음파를 감지하여, 상기 감지된 초음파에 대응하는 데이터를 확인할 수 있다.
디스플레이는 패널, 홀로그램 장치, 프로젝터, 및/또는 이들을 제어하기 위한 제어 회로를 포함할 수 있다. 패널은, 예를 들면, 유연하게, 투명하게, 또는 착용할 수 있게 구현될 수 있다. 패널은 터치 패널과 하나 이상의 모듈로 구성될 수 있다. 한 실시예에 따르면, 패널은 사용자의 터치에 대한 압력의 세기를 측정할 수 있는 압력 센서(또는 포스 센서)를 포함할 수 있다. 상기 압력 센서는 터치 패널과 일체형으로 구현되거나, 또는 터치 패널과는 별도의 하나 이상의 센서로 구현될 수 있다. 홀로그램 장치는 빛의 간섭을 이용하여 입체 영상을 허공에 보여줄 수 있다. 프로젝터는 스크린에 빛을 투사하여 영상을 표시할 수 있다. 스크린은, 예를 들면, 전자 장치의 내부 또는 외부에 위치할 수 있다. 인터페이스는, 예를 들면, HDMI, USB, 광 인터페이스(optical interface), 또는 D-sub(D-subminiature)를 포함할 수 있다. 추가적으로 또는 대체적으로, 인터페이스는, 예를 들면, MHL(mobile high-definition link) 인터페이스, SD카드/MMC(multi-media card) 인터페이스, 또는 IrDA(infrared data association) 규격 인터페이스를 포함할 수 있다.
오디오 모듈은, 예를 들면, 소리와 전기 신호를 쌍방향으로 변환시킬 수 있다. 오디오 모듈은, 예를 들면, 스피커, 리시버, 이어폰, 또는 마이크 등을 통해 입력 또는 출력되는 소리 정보를 처리할 수 있다. 카메라 모듈은, 예를 들면, 정지 영상 및 동영상을 촬영할 수 있는 장치로서, 한 실시예에 따르면, 하나 이상의 이미지 센서(예: 전면 센서 또는 후면 센서), 렌즈, 이미지 시그널 프로세서(ISP), 또는 플래시(예: LED 또는 xenon lamp 등)를 포함할 수 있다. 전력 관리 모듈은, 예를 들면, 전자 장치의 전력을 관리할 수 있다. 한 실시예에 따르면, 전력 관리 모듈은 PMIC(power management integrated circuit), 충전 IC, 또는 배터리 또는 연료 게이지를 포함할 수 있다. PMIC는, 유선 및/또는 무선 충전 방식을 가질 수 있다. 무선 충전 방식은, 예를 들면, 자기공명 방식, 자기유도 방식 또는 전자기파 방식 등을 포함하며, 무선 충전을 위한 부가적인 회로, 예를 들면, 코일 루프, 공진 회로, 또는 정류기 등을 더 포함할 수 있다. 배터리 게이지는, 예를 들면, 배터리의 잔량, 충전 중 전압, 전류, 또는 온도를 측정할 수 있다. 배터리는, 예를 들면, 충전식 전지 및/또는 태양 전지를 포함할 수 있다.
인디케이터는 전자 장치 또는 그 일부(예: 프로세서)의 특정 상태, 예를 들면, 부팅 상태, 메시지 상태 또는 충전 상태 등을 표시할 수 있다. 모터는 전기적 신호를 기계적 진동으로 변환할 수 있고, 진동, 또는 햅틱 효과 등을 발생시킬 수 있다. 전자 장치는, 예를 들면, DMB(digital multimedia broadcasting), DVB(digital video broadcasting), 또는 미디어플로(mediaFloTM) 등의 규격에 따른 미디어 데이터를 처리할 수 있는 모바일 TV 지원 장치(예: GPU)를 포함할 수 있다. 본 문서에서 기술된 구성요소들 각각은 하나 또는 그 이상의 부품(component)으로 구성될 수 있으며, 해당 구성요소의 명칭은 전자 장치의 종류에 따라서 달라질 수 있다. 다양한 실시예에서, 전자 장치(예: 전자 장치)는 일부 구성요소가 생략되거나, 추가적인 구성요소를 더 포함하거나, 또는, 구성요소들 중 일부가 결합되어 하나의 개체로 구성되되, 결합 이전의 해당 구성요소들의 기능을 동일하게 수행할 수 있다.
본 발명의 다양한 실시예에서, 전자 장치(또는, 전자 장치)는, 전면, 후면 및 상기 전면과 상기 후면 사이의 공간을 둘러싸는 측면을 포함하는 하우징을 포함할 수도 있다. 터치스크린 디스플레이(예: 디스플레이)는, 상기 하우징 안에 배치되며, 상기 전면을 통하여 노출될 수 있다. 마이크는, 상기 하우징 안에 배치되며, 상기 하우징의 부분을 통하여 노출될 수 있다. 적어도 하나의 스피커는, 상기 하우징 안에 배치되며, 상기 하우징의 다른 부분을 통하여 노출될 수 있다. 하드웨어 버튼(예: 키)는, 상기 하우징의 또 다른 부분에 배치되거나 또는 상기 터치스크린 디스플레이 상에 표시하도록 설정될 수 있다. 무선 통신 회로(예: 통신 모듈)은, 상기 하우징 안에 위치할 수 있다. 상기 프로세서(또는, 프로세서)는, 상기 하우징 안에 위치하며, 상기 터치스크린 디스플레이, 상기 마이크, 상기 스피커 및 상기 무선 통신 회로에 전기적으로 연결될 수 있다. 상기 메모리(또는, 메모리)는, 상기 하우징 안에 위치하며, 상기 프로세서에 전기적으로 연결될 수 있다.
본 발명의 다양한 실시예에서, 상기 메모리는, 텍스트 입력을 수신하기 위한 제1 사용자 인터페이스를 포함하는 제1 어플리케이션 프로그램을 저장하도록 설정되고, 상기 메모리는, 실행 시에, 상기 프로세서가, 제1 동작과 제2 동작을 수행하도록 야기하는 인스트럭션들을 저장하고, 상기 제1 동작은, 상기 제1 사용자 인터페이스가 상기 터치스크린 디스플레이 상에 표시되지 않는 도중에, 상기 버튼을 통하여 제1 타입의 사용자 입력을 수신하고, 상기 제1 타입의 사용자 입력을 수신한 이후에, 상기 마이크를 통하여 제1 사용자 발화를 수신하고, 자동 스피치 인식(ASR: automatic speech recognition) 및 지능 시스템(intelligence system)을 포함하는 외부 서버로 상기 제1 사용자 발화에 대한 제1 데이터를 제공하고, 상기 제1 데이터를 제공한 이후에, 상기 외부 서버로부터 상기 제1 사용자 발화에 응답하여 상기 지능 시스템에 의하여 생성되는 태스크를 수행하도록 하는 적어도 하나의 명령을 수신하고, 상기 제2 동작은, 상기 터치스크린 디스플레이 상에 상기 제1 사용자 인터페이스가 표시되는 도중에 상기 버튼을 통하여 상기 제1 사용자 입력을 수신하고, 상기 제1 타입의 사용자 입력을 수신한 이후에, 상기 마이크를 통하여 제2 사용자 발화를 수신하고, 상기 외부 서버로 상기 제2 사용자 발화에 대한 제2 데이터를 제공하고, 상기 제2 데이터를 제공한 이후에, 상기 서버로부터, 상기 제2 사용자 발화로부터 상기 자동 스피치 인식에 의하여 생성된 텍스트에 대한 데이터를 수신하지만, 상기 지능 시스템에 의하여 생성되는 명령은 수신하지 않고, 상기 제1 사용자 인터페이스에 상기 텍스트를 입력할 수 있다.
본 발명의 다양한 실시예에서, 상기 버튼은, 상기 하우징의 상기 측면에 위치하는 물리적인 키를 포함할 수 있다.
본 발명의 다양한 실시예에서, 상기 제1 타입의 사용자 입력은, 상기 버튼에 대한 1회 누름, 상기 버튼에 대한 2회 누름, 상기 버튼에 대한 3회 누름, 상기 버튼에 대한 1회 누른 이후에 누름 유지, 또는 상기 버튼에 대한 2회 누름 및 누름 유지 중 하나일 수 있다.
본 발명의 다양한 실시예에서, 상기 인스트럭션들은, 상기 프로세서가 상기 제1 사용자 인터페이스를 가상 키보드와 함께 표시하도록 더 야기할 수 있다. 상기 버튼은, 상기 가상 키보드의 일부가 아닐 수 있다.
본 발명의 다양한 실시예에서, 상기 인스트럭션들은, 상기 프로세서가, 상기 외부 서버로부터, 상기 제1 동작 내에서의 상기 제1 사용자 발화로부터 ASR에 의하여 생성되는 텍스트에 대한 데이터를 수신하도록 더 야기할 수 있다.
본 발명의 다양한 실시예에서, 상기 제1 어플리케이션 프로그램은, 노트 어플리케이션 프로그램, 이메일 어플리케이션 프로그램, 웹 브라우저 어플리케이션 프로그램 또는 달력 어플리케이션 프로그램 중 적어도 하나를 포함할 수 있다.
본 발명의 다양한 실시예에서, 상기 제1 어플리케이션 프로그램은, 메시지 어플리케이션을 포함하고, 상기 인스트럭션들은, 상기 프로세서가, 상기 텍스트를 입력한 이후에 선택된 시간 기간이 초과하면, 상기 무선 통신 회로를 통하여 자동으로 입력된 텍스트를 송신하도록 더 야기할 수 있다.
본 발명의 다양한 실시예에서, 상기 인스트럭션들은, 상기 프로세서가, 제3 동작을 수행하도록 더 야기하고, 상기 제3 동작은, 상기 터치스크린 디스플레이 상에 상기 제1 사용자 인터페이스를 표시하는 도중에, 상기 버튼을 통하여 제2 타입의 사용자 입력을 수신하고, 상기 제2 타입의 사용자 입력을 수신한 이후에, 상기 마이크를 통하여 제3 사용자 발화를 수신하고, 상기 외부 서버로 상기 제3 사용자 발화에 대한 제3 데이터를 제공하고, 상기 제3 데이터를 제공한 이후에, 상기 제3 사용자 발화에 응답하여 상기 지능 시스템에 의하여 생성된 태스크를 수행하기 위한 적어도 하나의 명령을 상기 외부 서버로부터 수신할 수 있다.
본 발명의 다양한 실시예에서, 상기 인스트럭션들은, 상기 프로세서가, 제4 동작을 수행하도록 더 야기하고, 상기 제4 동작은, 상기 터치스크린 디스플레이 상에 상기 제1 사용자 인터페이스가 표시되지 않는 도중에, 상기 버튼을 통하여 상기 제2 타입의 사용자 입력을 수신하고, 상기 제2 타입의 사용자 입력을 수신한 이후에, 상기 마이크를 통하여 제4 사용자 발화를 수신하고, 상기 제4 사용자 발화에 대한 제4 데이터를 상기 외부 서버로 제공하고, 상기 제4 데이터를 제공한 이후에, 상기 제4 사용자 발화에 응답하여, 상기 지능 시스템에 의하여 생성된 태스크를 수행하기 위한 적어도 하나의 명령을 상기 외부 서버로부터 수신하고, 상기 마이크를 통하여 제5 사용자 발화를 수신하고, 상기 외부 서버로, 상기 제5 사용자 발화에 대한 제5 데이터를 제공하고, 및 상기 제5 데이터를 제공한 이후에, 상기 제5 사용자 발화에 응답하여 상기 지능 시스템에 의하여 생성된 태스크를 수행하기 위한 적어도 하나의 명령을 상기 외부 서버로부터 수신할 수 있다.
본 발명의 다양한 실시예에서, 상기 제1 타입의 사용자 입력 및 상기 제2 타입의 사용자 입력은 서로 다르며, 상기 버튼에 대한 1회 누름, 상기 버튼에 대한 2회 누름, 상기 버튼에 대한 3회 누름, 상기 버튼에 대한 1회 누른 이후에 누름 유지, 또는 상기 버튼에 대한 2회 누름 및 누름 유지 중 하나로부터 선택될 수 있다.
본 발명의 다양한 실시예에서, 상기 메모리는, 텍스트 입력을 수신하기 위한 제2 사용자 인터페이스를 포함하는 제2 어플리케이션 프로그램을 저장하도록 더 설정되며, 상기 인스트럭션들은, 실행 시에, 상기 프로세서가, 제3 동작을 수행하도록 더 야기하고, 상기 제3 동작은, 상기 제2 사용자 인터페이스를 표시하는 도중에 상기 버튼을 통하여 상기 제1 타입의 사용자 입력을 수신하고, 상기 제1 타입의 사용자 입력이 수신된 이후에, 상기 마이크를 통하여 제3 사용자 발화를 수신하고, 상기 외부 서버로, 상기 제3 사용자 발화에 대한 제3 데이터를 제공하고, 상기 제3 데이터를 제공한 이후에, 상기 외부 서버로부터, 상기 제3 사용자 발화로부터 ASR에 의하여 생성된 텍스트에 대한 데이터를 수신하면서, 상기 지능 시스템에 의하여 생성되는 명령은 수신하지 않고, 상기 제2 사용자 인터페이스에 상기 텍스트를 입력하고, 및 상기 텍스트를 입력하고, 선택된 시간 기간이 초과하면, 상기 무선 통신 회로를 통하여 상기 입력된 텍스트를 자동으로 송신할 수 있다.
본 발명의 다양한 실시예에서, 상기 메모리는, 텍스트 입력을 수신하기 위한 제1 사용자 인터페이스를 포함하는 제1 어플리케이션 프로그램을 저장하도록 설정되고, 상기 메모리는, 실행 시에, 상기 프로세서가, 제1 동작과 제2 동작을 수행하도록 야기하는 인스트럭션들을 저장하고, 상기 제1 동작은, 상기 버튼을 통하여 제1 타입의 사용자 입력을 수신하고, 상기 제1 타입의 사용자 입력을 수신한 이후에, 상기 마이크를 통하여 제1 사용자 발화를 수신하고, 자동 스피치 인식(ASR: automatic speech recognition) 및 지능 시스템(intelligence system)을 포함하는 외부 서버로, 상기 제1 사용자 발화에 대한 제1 데이터를 제공하고, 및 상기 제1 데이터를 제공한 이후에, 상기 제1 사용자 발화에 응답하여 상기 지능 시스템에 의하여 생성된 태스크를 수행하기 위한 적어도 하나의 명령을 상기 외부 서버로부터 수신하고, 상기 제2 동작은, 상기 버튼을 통하여 제2 타입의 사용자 입력을 수신하고, 상기 제2 타입의 사용자 입력을 수신한 이후에, 상기 마이크를 통하여 제2 사용자 발화를 수신하고, 상기 외부 서버로 상기 제2 사용자 발화에 대한 제2 데이터를 제공하고, 상기 제2 데이터를 제공한 이후에, 상기 서버로부터, 상기 제2 사용자 발화로부터 ASR에 의하여 생성된 텍스트에 대한 데이터를 수신하면서, 상기 지능 시스템에 의하여 생성되는 명령은 수신하지 않으며, 상기 제1 사용자 인터페이스에 상기 텍스트를 입력할 수 있다.
본 발명의 다양한 실시예에서, 상기 인스트럭션들은, 상기 프로세서가 상기 제1 사용자 인터페이스를 가상 키보드와 함께 표시하도록 더 야기할 수 있으며, 상기 버튼은, 상기 가상 키보드의 일부가 아닐 수 있다.
본 발명의 다양한 실시예에서, 상기 인스트럭션들은, 상기 프로세서가, 상기 외부 서버로부터 상기 제1 동작 내에서 상기 제1 사용자 발화로부터 상기 ASR에 의하여 생성되는 텍스트에 대한 데이터를 수신하도록 더 야기할 수 있다.
본 발명의 다양한 실시예에서, 상기 제1 어플리케이션 프로그램은, 노트 어플리케이션 프로그램, 이메일 어플리케이션 프로그램, 웹 브라우저 어플리케이션 프로그램 또는 달력 어플리케이션 프로그램 중 적어도 하나를 포함할 수 있다.
본 발명의 다양한 실시예에서, 상기 제1 어플리케이션 프로그램은, 메시지 어플리케이션을 포함하고, 상기 인스트럭션들은, 상기 프로세서가, 상기 텍스트를 입력한 이후에 선택된 시간 기간이 초과하면, 상기 무선 통신 회로를 통하여 자동으로 입력된 텍스트를 송신하도록 더 야기할 수 있다.
본 발명의 다양한 실시예에서, 상기 인스트럭션들은, 상기 프로세서가 상기 제1 사용자 인터페이스의 상기 디스플레이 상에 표시와 독립적으로 상기 제1 동작을 수행하도록 더 야기할 수 있다.
본 발명의 다양한 실시예에서, 상기 인스트럭션들은, 상기 프로세서가, 상기 전자 장치가 잠금 상태에 있거나 또는 상기 터치스크린 디스플레이가 턴 오프된 것 중 적어도 하나인 경우에, 상기 제2 동작을 수행하도록 더 야기할 수 있다.
본 발명의 다양한 실시예에서, 상기 인스트럭션들은, 상기 프로세서가, 상기 터치스크린 디스플레이 상에 상기 제1 사용자 인터페이스를 표시하는 도중에, 상기 제2 동작을 수행하도록 더 야기할 수 있다.
본 발명의 다양한 실시예에서, 상기 메모리는, 실행 시에, 상기 프로세서가, 상기 마이크를 통하여 사용자 발화를 수신하고, 자동 스피치 인식(automatic speech recognition: ASR) 또는 자연어 이해(natural language understanding: NLU) 중 적어도 하나를 수행하는 외부 서버로, 상기 사용자 발화에 대한 데이터와 함께, 상기 사용자 발화에 대한 데이터에 대하여 상기 ASR을 수행하여 획득된 텍스트에 대하여 상기 자연어 이해를 수행할지 여부와 연관된 정보를 송신하고, 상기 정보가 상기 자연어 이해를 수행하지 않을 것을 나타내면, 상기 외부 서버로부터 상기 사용자 발화에 대한 데이터에 대한 상기 텍스트를 수신하고, 상기 정보가 상기 자연어 이해를 수행할 것을 나타내면, 상기 외부 서버로부터 상기 텍스트에 대한 상기 자연어 이해 수행 결과 획득된 명령을 수신하도록 야기하는 인스트럭션을 저장할 수 있다.
한 실시예에 따르면, 프로그램 모듈(예: 프로그램)은 전자 장치(예: 전자 장치)에 관련된 자원을 제어하는 운영 체제 및/또는 운영 체제 상에서 구동되는 다양한 어플리케이션(예: 어플리케이션 프로그램)을 포함할 수 있다. 운영 체제는, 예를 들면, AndroidTM, iOSTM, WindowsTM, SymbianTM, TizenTM, 또는 BadaTM를 포함할 수 있다. 프로그램 모듈은 커널(예: 커널), 미들웨어(예: 미들웨어), (API(예: API), 및/또는 어플리케이션(예: 어플리케이션 프로그램)을 포함할 수 있다. 프로그램 모듈의 적어도 일부는 전자 장치 상에 프리로드 되거나, 외부 전자 장치(예: 전자 장치, 서버 등)로부터 다운로드 가능하다.
커널은, 예를 들면, 시스템 리소스 매니저 및/또는 디바이스 드라이버를 포함할 수 있다. 시스템 리소스 매니저는 시스템 리소스의 제어, 할당, 또는 회수를 수행할 수 있다. 한 실시예에 따르면, 시스템 리소스 매니저는 프로세스 관리부, 메모리 관리부, 또는 파일 시스템 관리부를 포함할 수 있다. 디바이스 드라이버는, 예를 들면, 디스플레이 드라이버, 카메라 드라이버, 블루투스 드라이버, 공유 메모리 드라이버, USB 드라이버, 키패드 드라이버, WiFi 드라이버, 오디오 드라이버, 또는 IPC(inter-process communication) 드라이버를 포함할 수 있다. 미들웨어는, 예를 들면, 어플리케이션이 공통적으로 필요로 하는 기능을 제공하거나, 어플리케이션이 전자 장치 내부의 제한된 시스템 자원을 사용할 수 있도록 API를 통해 다양한 기능들을 어플리케이션으로 제공할 수 있다. 한 실시예에 따르면, 미들웨어는 런타임 라이브러리, 어플리케이션 매니저, 윈도우 매니저, 멀티미디어 매니저, 리소스 매니저, 파워 매니저, 데이터베이스 매니저, 패키지 매니저, 커넥티비티 매니저, 노티피케이션 매니저, 로케이션 매니저, 그래픽 매니저, 또는 시큐리티 매니저 중 적어도 하나를 포함할 수 있다.
런타임 라이브러리는, 예를 들면, 어플리케이션이 실행되는 동안에 프로그래밍 언어를 통해 새로운 기능을 추가하기 위해 컴파일러가 사용하는 라이브러리 모듈을 포함할 수 있다. 런타임 라이브러리는 입출력 관리, 메모리 관리, 또는 산술 함수 처리를 수행할 수 있다. 어플리케이션 매니저는, 예를 들면, 어플리케이션의 생명 주기를 관리할 수 있다. 윈도우 매니저는 화면에서 사용되는 GUI 자원을 관리할 수 있다. 멀티미디어 매니저는 미디어 파일들의 재생에 필요한 포맷을 파악하고, 해당 포맷에 맞는 코덱을 이용하여 미디어 파일의 인코딩 또는 디코딩을 수행할 수 있다. 리소스 매니저는 어플리케이션의 소스 코드 또는 메모리의 공간을 관리할 수 있다. 파워 매니저는, 예를 들면, 배터리의 용량 또는 전원을 관리하고, 전자 장치의 동작에 필요한 전력 정보를 제공할 수 있다. 한 실시예에 따르면, 파워 매니저는 바이오스(BIOS: basic input/output system)와 연동할 수 있다. 데이터베이스 매니저는, 예를 들면, 어플리케이션에서 사용될 데이터베이스를 생성, 검색, 또는 변경할 수 있다. 패키지 매니저는 패키지 파일의 형태로 배포되는 어플리케이션의 설치 또는 갱신을 관리할 수 있다.
커넥티비티 매니저는, 예를 들면, 무선 연결을 관리할 수 있다. 노티피케이션 매니저는, 예를 들면, 도착 메시지, 약속, 근접성 알림 등의 이벤트를 사용자에게 제공할 수 있다. 로케이션 매니저는, 예를 들면, 전자 장치의 위치 정보를 관리할 수 있다. 그래픽 매니저는, 예를 들면, 사용자에게 제공될 그래픽 효과 또는 이와 관련된 사용자 인터페이스를 관리할 수 있다. 보안 매니저는, 예를 들면, 시스템 보안 또는 사용자 인증을 제공할 수 있다. 한 실시예에 따르면, 미들웨어는 전자 장치의 음성 또는 영상 통화 기능을 관리하기 위한 통화(telephony) 매니저 또는 전술된 구성요소들의 기능들의 조합을 형성할 수 있는 하는 미들웨어 모듈을 포함할 수 있다. 한 실시예에 따르면, 미들웨어는 운영 체제의 종류 별로 특화된 모듈을 제공할 수 있다. 미들웨어는 동적으로 기존의 구성요소를 일부 삭제하거나 새로운 구성요소들을 추가할 수 있다. API는, 예를 들면, API 프로그래밍 함수들의 집합으로, 운영 체제에 따라 다른 구성으로 제공될 수 있다. 예를 들면, 안드로이드 또는 iOS의 경우, 플랫폼 별로 하나의 API 셋을 제공할 수 있으며, 타이젠의 경우, 플랫폼 별로 두 개 이상의 API 셋을 제공할 수 있다.
어플리케이션은, 예를 들면, 홈, 다이얼러, SMS/MMS, IM(instant message), 브라우저, 카메라, 알람, 컨택트, 음성 다이얼, 이메일, 달력, 미디어 플레이어, 앨범, 와치, 헬스 케어(예: 운동량 또는 혈당 등을 측정), 또는 환경 정보(예: 기압, 습도, 또는 온도 정보) 제공 어플리케이션을 포함할 수 있다. 한 실시예에 따르면, 어플리케이션은 전자 장치와 외부 전자 장치 사이의 정보 교환을 지원할 수 있는 정보 교환 어플리케이션을 포함할 수 있다. 정보 교환 어플리케이션은, 예를 들면, 외부 전자 장치에 특정 정보를 전달하기 위한 노티피케이션 릴레이 어플리케이션, 또는 외부 전자 장치를 관리하기 위한 장치 관리 어플리케이션을 포함할 수 있다. 예를 들면, 알림 전달 어플리케이션은 전자 장치의 다른 어플리케이션에서 발생된 알림 정보를 외부 전자 장치에게 전달하거나, 또는 외부 전자 장치로부터 알림 정보를 수신하여 사용자에게 제공할 수 있다. 장치 관리 어플리케이션은, 예를 들면, 전자 장치와 통신하는 외부 전자 장치의 기능(예: 외부 전자 장치 자체(또는, 일부 구성 부품)의 턴-온/턴-오프 또는 디스플레이의 밝기(또는, 해상도) 조절), 또는 외부 전자 장치에서 동작하는 어플리케이션을 설치, 삭제, 또는 갱신할 수 있다. 한 실시예에 따르면, 어플리케이션은 외부 전자 장치의 속성에 따라 지정된 어플리케이션(예: 모바일 의료 기기의 건강 관리 어플리케이션)을 포함할 수 있다. 한 실시예에 따르면, 어플리케이션은 외부 전자 장치로부터 수신된 어플리케이션을 포함할 수 있다. 프로그램 모듈의 적어도 일부는 소프트웨어, 펌웨어, 하드웨어(예: 프로세서), 또는 이들 중 적어도 둘 이상의 조합으로 구현(예: 실행)될 수 있으며, 하나 이상의 기능을 수행하기 위한 모듈, 프로그램, 루틴, 명령어 세트 또는 프로세스를 포함할 수 있다.
실시예들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬(ROM), 램(RAM), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 상술한 방법 또는 장치는 그 구성이나 기능의 전부 또는 일부가 결합되어 구현되거나, 분리되어 구현될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (1)

  1. 분산 키 생성 및 임계 서명 과정.
KR1020220000737A 2021-04-30 2022-01-04 분산 키 생성 및 임계 서명 과정 KR20230015257A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220000737A KR20230015257A (ko) 2021-04-30 2022-01-04 분산 키 생성 및 임계 서명 과정

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20210056362 2021-04-30
KR20210057105 2021-05-03
KR1020210096377A KR102348401B1 (ko) 2021-04-30 2021-07-22 Did 서명 및 검증을 이용한 임계 서명 시스템과 방법
KR1020220000737A KR20230015257A (ko) 2021-04-30 2022-01-04 분산 키 생성 및 임계 서명 과정

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020210096377A Division KR102348401B1 (ko) 2021-04-30 2021-07-22 Did 서명 및 검증을 이용한 임계 서명 시스템과 방법

Publications (1)

Publication Number Publication Date
KR20230015257A true KR20230015257A (ko) 2023-01-31

Family

ID=79355219

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020210096377A KR102348401B1 (ko) 2021-04-30 2021-07-22 Did 서명 및 검증을 이용한 임계 서명 시스템과 방법
KR1020220000737A KR20230015257A (ko) 2021-04-30 2022-01-04 분산 키 생성 및 임계 서명 과정
KR1020220000734A KR20230015256A (ko) 2021-04-30 2022-01-04 보안 기술을 제공하는 플랫폼을 위한 시스템

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020210096377A KR102348401B1 (ko) 2021-04-30 2021-07-22 Did 서명 및 검증을 이용한 임계 서명 시스템과 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020220000734A KR20230015256A (ko) 2021-04-30 2022-01-04 보안 기술을 제공하는 플랫폼을 위한 시스템

Country Status (1)

Country Link
KR (3) KR102348401B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210014865A (ko) 2019-07-31 2021-02-10 주식회사 티이이웨어 FIDO 프로토콜 상의 전자 서명을 다수의 기기에서 threshold signature 방식으로 서명하는 방법 및 시스템

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102173426B1 (ko) * 2020-07-08 2020-11-03 주식회사 아이오트러스트 Did 환경의 프라이버시 보호를 지원하는 공개키 인프라구조 기반 서명 및 검증 시스템과 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210014865A (ko) 2019-07-31 2021-02-10 주식회사 티이이웨어 FIDO 프로토콜 상의 전자 서명을 다수의 기기에서 threshold signature 방식으로 서명하는 방법 및 시스템

Also Published As

Publication number Publication date
KR102348401B1 (ko) 2022-01-07
KR20230015256A (ko) 2023-01-31

Similar Documents

Publication Publication Date Title
KR102598613B1 (ko) 개인 인증 및 차량 인증 기반으로 차량 정보를 제공하는 시스템 및 방법
KR102604046B1 (ko) 전자 기기의 프로그램 관리 방법 및 장치
US10044510B2 (en) Storing and using data with secure circuitry
US10275581B2 (en) Method and apparatus for sharing content between electronic devices
CN105450627B (zh) 电子装置和用于在电子装置中处理数据的方法
KR102294118B1 (ko) 보안 연결 장치 및 방법
US10237269B2 (en) Method of providing information security and electronic device thereof
US10187359B2 (en) Secure message transmission apparatus and processing method thereof
KR20180072389A (ko) 액세서리에 대응하는 콘텐트를 제공하기 위한 방법 및 그 전자 장치
KR20180041532A (ko) 전자 장치들 간 연결 방법 및 장치
KR20160105261A (ko) 전자 장치를 이용한 카드 서비스 방법 및 장치
US10027715B2 (en) Electronic device and method for encrypting content
KR20170027160A (ko) 결제 거래를 수행하는 방법 및 장치
KR20170035294A (ko) 전자 장치 및 이의 보안을 제공하는 결제 방법
KR102544488B1 (ko) 인증을 수행하기 위한 전자 장치 및 방법
KR20160040872A (ko) 전자 장치의 인증 방법 및 장치
US10554627B2 (en) Proximity communication method and apparatus
US10887109B2 (en) Electronic device for including signature in electronic document and method of controlling the same
CN106250770B (zh) 用于对内容加密的电子设备和方法
US9614673B2 (en) Method of managing keys and electronic device adapted to the same
KR102430528B1 (ko) 이모지가 포함된 메시지를 송수신하는 전자 장치 및 그 전자 장치를 제어하는 방법
KR20170084934A (ko) 전자 장치 및 전자 장치의 식별 정보 인증 방법
KR20170098112A (ko) 전자 장치 및 그의 동작 방법
KR102349714B1 (ko) 전자 기기의 프로그램 관리 방법 및 장치
KR20160026313A (ko) 데이터 암호화 또는 복호화를 위한 장치 및 방법