KR20210064076A - 익명 크리덴셜 인증 시스템 및 그 방법 - Google Patents

익명 크리덴셜 인증 시스템 및 그 방법 Download PDF

Info

Publication number
KR20210064076A
KR20210064076A KR1020200156208A KR20200156208A KR20210064076A KR 20210064076 A KR20210064076 A KR 20210064076A KR 1020200156208 A KR1020200156208 A KR 1020200156208A KR 20200156208 A KR20200156208 A KR 20200156208A KR 20210064076 A KR20210064076 A KR 20210064076A
Authority
KR
South Korea
Prior art keywords
value
credential
signature
information
anonymous
Prior art date
Application number
KR1020200156208A
Other languages
English (en)
Other versions
KR102460299B1 (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 US17/104,695 priority Critical patent/US11451519B2/en
Publication of KR20210064076A publication Critical patent/KR20210064076A/ko
Application granted granted Critical
Publication of KR102460299B1 publication Critical patent/KR102460299B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • H04L63/0421Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0884Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/42Anonymization, e.g. involving pseudonyms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

익명 크리덴셜 인증 시스템은 개인정보를 구성하는 다중의 속성정보들이 결합된 크리덴셜을 발급 받은 사용자 기기로부터, 상기 크리덴셜을 이용하여 설정된 명제정보를 만족함을 나타내는 익명 크리덴셜 서명값을 수신하면, 확인키를 이용하여 상기 익명 크리덴셜 서명값의 서명자를 확인해 주는 서명자증명정보를 생성하여 출력한다.

Description

익명 크리덴셜 인증 시스템 및 그 방법{ANONYMOUS CREDENTIAL AUTHENTICATION SYSTEM AND METHOD THEREOF}
본 발명은 익명 크리덴셜 인증 시스템 및 그 방법에 관한 것으로, 특히 개인 신원정보를 구성하는 다중의 속성정보 기반의 크리덴셜을 이용하여 신원을 노출하지 않고 자격 요건을 입증하는 익명 크리덴셜 서명에 대해 제어가능 익명성 및 제어가능 연결성을 제공할 수 있는 익명 크리덴셜 인증 시스템 및 그 방법에 관한 것이다.
IT(Information technology) 서비스가 공공, 국방, 의료, 금융, 자율 주행, 기반시설 등 생활 전반의 영역에서 지능화, 고도화되면서 다양한 사용자 정보들을 기반으로 하는 인증 수단이 필요해지고 있다. 아이디/패스워드(id/password) 인증 기법, 실명 기반 PKI(Public Key Infrastructure) 인증 기법, 그리고 아이핀(i-Pin) 기법 등 일반적인 인증 기법들은 개인정보의 등록 및 확인 과정에서의 정보 노출, 서비스 제공자의 과도한 개인정보 수집 및 관리 부주의로 인한 유출, 광범위한 행위 추적의 문제 등과 같이 프라이버시 측면에서 많은 단점을 가지고 있다.
이러한 단점들을 해결하고 사용자의 프라이버시(privacy)를 보호하기 위한 다양한 형태의 암호학적 인증 기법들, 예를 들어서 익명 크리덴셜(anonymous credential), DAA(Direct Anonymous Attestation) 그리고 그룹서명(group signature) 기법들이 폭넓게 연구되고 있다. 이러한 기법들은 대체로 익명성(anonymity)과 연결성(linkability)의 제어 가능 형태에 따라서 기술이 구분된다.
익명 크리덴셜 기법은 다중의 속성정보를 증명할 수 있는 익명 인증 기법이다. 다수의 속성 항목들을 포함한 크리덴셜을 발급받은 사용자는 이 항목들 중 서비스에 따라 필요한 항목만을 노출시키고 나머지는 감출 수 있는 부분은닉이 가능하다. 서명값으로부터 서명자의 익명성이 보장되며 다중의 서명값들이 주어졌을 때 단일 서명자가 생성했는지 알 수 없도록 비연결성(unlinkability)을 제공한다.
DAA 기법은 기기 사용자의 프라이버시 보호를 위해서 기기의 원격 인증을 가능하게 하는 익명 인증 기법으로, 사용자 제어형 연결성(user-controlled linkability)을 제공한다. 사용자 제어형 연결성은 사용자가 베이스네임(basename)으로 불리우는 일종의 고정 태그 정보를 이용하여 서명의 연결 가능성을 결정할 수 있는 특성을 의미한다.
상기 기법들은 모두 순수한 익명성을 위해서 설계되며 서명자가 누구인지 확인할 수 있는 기능을 제공하지 않는다. 따라서 책임성 또는 부인방지 기능이 요구되는 프라이버시 보호 응용 분야에서는 이용성이 제한된다.
책임성을 고려한 프라이버시를 위한 대표적인 암호학적 인증 기법 중 하나로 그룹서명(group signature) 기법이 알려져 있다. 그룹 서명 기법은 기본적으로 서명값으로부터 서명자의 신원 정보 또는 신원 식별자(identifier)가 노출되지 않는다. 즉, 서명은 그룹 멤버 중 한 사용자가 메시지에 대한 서명을 생성했음을 증명한다. 또한 여러 개의 서명값들이 주어졌을 때 동일한 서명자가 생성했는지 알 수 없도록 비연결성을 제공한다. 그룹서명은 책임성을 위해서 제어가능 익명성을 제공한다. 제어가능 익명성은 확인키(opening key)가 주어질 경우, 서명자의 식별자를 확인할 수 있는 기능을 의미한다. 예를 들어서, 서명 행위에 대한 문제가 발생할 경우 책임을 부과하거나 서명자 증명을 통해 서명자에게 수혜를 제공하기 위해서 이용될 수 있다. 하지만 서명자의 식별자만을 은닉/복구하는 이분법적인 구조로 단편적인 익명성을 다루고 있다. 따라서 서비스를 제공하는 측면에서는 단순한 익명성 제어만으로는 서비스 제공으로부터 얻은 본래의 목적을 달성하기 쉽지 않기 때문에 실제적인 응용 환경에서는 활용에 제한을 가지게 된다.
최근에는 단순한 제어가능 익명성을 제공하는 그룹 서명 기법들을 확장하여 제어가능 연결성(controllable linkability)을 제공하는 그룹서명 기법이 제시되고 있다. 제어가능 연결성은 특별한 연결키(linking key)가 주어질 경우에는 서명값들이 서로 연결됨을 확인할 수 있는 기능을 의미한다. 즉, 한 서명자 또는 서명자키에 의해서 서명값들이 생성되었음을 확인할 수 있다. 이러한 특성을 이용하면, 신원정보의 익명성을 유지하면서, 즉 신원 식별자를 드러내지 않으면서도, 서비스 제공자는 다양한 익명성 기반의 서비스들을 제공할 수 있다. 예를 들어, 웹 기반의 개인화된 익명 인증 서비스 또는 데이터 마이닝의 경우, 사용자를 노출시키지 않으면서 익명 인증 데이터를 분석하여 유용한 정보를 제공할 수 있다.
그러나 상기에서 설명한 그룹 서명 기법들은 모두 단일 식별자만 은닉/노출 처리할 수 있는 한계를 가지고 있다. 따라서 현재의 지능화되고 고도화된 ICT(Information and Communication Technology) 응용분야에서 다양한 속성 증명에 대한 요구사항을 충족시키기가 어렵다. 개인 신원정보는 이름, 생년월일, 성별, 주소, 소지한 신용카드 정보, 학력과 같은 다양한 속성정보들의 집합들로 구성되며 헬스케어, 소셜, 교육, 직장, 취미, 전자상거래 등 응용분야에 따라서 다양한 속성들의 조합이 개인정보로 활용된다. 이때 개인정보의 오남용을 막고 응용에 따라서 필요한 속성정보만 제공하여 사용자 프라이버시를 보호하며 책임성을 적절하게 부과할 수 있는 제어가능한 프라이버시 기능을 갖는 인증 시스템은 매우 필요성이 높을 것이다.
본 발명이 해결하려는 과제는 개인정보의 오남용을 막고 응용에 따라서 필요한 속성정보만 제공하여 사용자 프라이버시를 보호하며 책임성을 적절하게 부과할 수 있는 익명 크리덴셜 인증 시스템 및 그 방법을 제공하는 것이다.
본 발명의 한 실시 예에 따르면, 익명 크리덴셜 인증 시스템의 인증 방법이 제공된다. 익명 크리덴셜 인증 시스템의 인증 방법은 개인정보를 구성하는 다중의 속성정보들이 결합된 크리덴셜을 발급 받은 사용자 기기로부터, 상기 크리덴셜을 이용하여 설정된 명제정보를 만족함을 나타내는 익명 크리덴셜 서명값을 수신하는 단계, 그리고 확인키를 이용하여 상기 익명 크리덴셜 서명값의 서명자를 확인해 주는 서명자증명정보를 생성하여 출력하는 단계를 포함한다.
상기 익명 크리덴셜 인증 시스템의 인증 방법은 상기 서명자증명정보를 검증하는 단계를 더 포함할 수 있다.
상기 익명 크리덴셜 인증 시스템의 인증 방법은 상기 익명 크리덴셜 서명값의 유효성을 검증하는 단계를 더 포함할 수 있다.
상기 익명 크리덴셜 서명값의 유효성을 검증하는 단계는 상기 사용자 기기로부터 상기 명제정보, 상기 크리덴셜 및 상기 익명 크리덴셜 서명값을 수신하는 단계, 상기 크리덴셜에 결합된 속성정보들을 은닉속성정보, 직접노출속성정보 및 설정함수와 연관되는 속성정보들로 구분하는 단계, 상기 익명 크리덴셜 서명값에 대해 기본 검증을 수행하는 단계, 그리고 상기 기본 검증이 성공적으로 이루어지면, 상기 구분된 속성정보들에 대해서 각각 검증하는 단계를 포함할 수 있다.
상기 출력하는 단계는 상기 명제정보에 대한 익명 크리덴셜 서명값을 수신하는 단계, 상기 확인키와 상기 익명 크리덴셜 서명값을 이용하여 발급자의 서명값을 계산하는 단계, 상기 발급자의 서명값을 이용하여 사용자 등록 목록에서 사용자 등록 정보를 획득하는 단계, 그리고 상기 사용자 등록 정보 및 상기 익명 크리덴셜 서명값에 포함된 값을 이용하여 상기 서명자증명정보를 생성하는 단계를 포함할 수 있다.
상기 익명 크리덴셜 인증 시스템의 인증 방법은 상기 사용자 기기가 생성한 두 익명 크리덴셜 서명값이 주어지면, 연결키를 이용하여 상기 두 이 익명 크리덴셜 서명값이 서로 연결되어 있는지 확인하는 단계를 더 포함할 수 있다.
상기 익명 크리덴셜 인증 시스템의 인증 방법은 상기 확인키와 연관된 제1 공개 파라미터와 상기 연결키와 연관된 제2 공개 파라미터를 생성하는 단계, 상기 제1 및 제2 공개 파라미터를 포함한 시스템 공개키를 생성하는 단계, 그리고 상기 시스템 공개키에 대응하여 상기 크리덴셜을 발급하는 단계를 더 포함할 수 있다.
상기 익명 크리덴셜 인증 시스템의 인증 방법은 상기 시스템 공개키를 공개하는 단계를 더 포함할 수 있다.
상기 발급하는 단계는 상기 사용자 기기로부터, 상기 다중의 속성정보에 대한 위임값, 상기 위임값에 대한 영지식 증명값 및 상기 위임값에 대한 사용자 서명값을 포함한 크리덴셜 발급 요청 메시지를 수신하는 단계, 상기 영지식 증명값 및 상기 사용자 서명값의 유효성을 검증하는 단계, 상기 다중의 속성정보를 나타내는 정수 집합 중에서 선택된 임의의 값, 상기 시스템 공개키, 발급키 및 상기 위임값을 이용하여 발급자의 서명값을 계산하는 단계, 그리고 상기 임의의 값 및 상기 발급자의 서명값을 포함한 크리덴셜을 상기 사용자 기기에게 발급하는 단계를 포함할 수 있다.
상기 발급하는 단계는 상기 사용자 기기에게 발급된 크리덴셜, 상기 위임값, 상기 영지식 증명값 및 상기 사용자 서명값을 포함하는 사용자 등록 정보를 사용자 등록 목록에 추가하는 단계를 더 포함할 수 있다.
본 발명의 다른 한 실시 예에 따르면, 사용자 기기가 익명 크리덴셜 인증 시스템으로부터 인증 받는 방법이 제공된다. 상기 사용자 기기의 인증 방법은 개인정보를 구성하는 다중의 속성정보, 상기 다중의 속성정보에 대한 위임값, 상기 위임값에 대한 영지식 증명값 및 상기 위임값에 대한 사용자 서명값을 포함한 크리덴셜 발급 요청 메시지를 크리덴셜 발급 서버로 전송하는 단계, 상기 다중의 속성정보를 나타내는 정수 집합 중에서 선택된 임의의 값과 발급키를 이용하여 생성된 상기 크리덴셜 발급 서버의 서명값을 포함한 크리덴셜을 상기 크리덴셜 발급 서버로부터 발급 받는 단계, 상기 크리덴셜 발급 서버가 공개한 시스템 공개키, 상기 크리덴셜과 상기 다중의 속성정보를 결합하여 속성증명 서명키를 생성하는 단계, 상기 크리덴셜과 상기 속성증명 서명키를 이용하여 설정된 명제정보를 만족함을 나타내는 익명 크리덴셜 서명값을 제시하는 단계, 그리고 상기 익명 크리덴셜 서명값에 대한 검증 결과를 수신하는 단계를 포함한다.
상기 시스템 공개키는 서명자를 확인하는 기능을 제공하는 제1 공개 파라미터와 두 서명값에 대한 연결성 확인 기능을 제공하는 제2 공개 파라미터 중 적어도 하나를 포함할 수 있다.
상기 제시하는 단계는 상기 제1 공개 파라미터와 상기 크리덴셜 발급 서버의 서명값을 이용하여 서명자 확인 기능을 제공하는 값을 생성하는 단계, 각 속성정보를 증명해주는 증명값을 계산하는 단계, 상기 명제정보 중 자격요건에 대한 영지식 증명값을 생성하는 단계, 그리고 적어도 상기 증명값, 상기 서명자 확인 기능을 제공하는 값, 상기 자격요건에 대한 영지식 증명값 및 상기 다중의 속성정보를 포함한 익명 크리덴셜 서명값을 생성하는 단계를 포함할 수 있다.
상기 제시하는 단계는 상기 제2 공개 파라미터를 이용하여 연결성 확인 기능을 제공하는 값을 생성하는 단계, 각 속성정보를 증명해주는 증명값을 계산하는 단계, 상기 명제정보 중 자격요건에 대한 영지식 증명값을 생성하는 단계, 그리고 적어도 상기 증명값, 상기 연결성 확인 기능을 제공하는 값, 상기 자격요건에 대한 영지식 증명값 및 상기 다중의 속성정보를 포함한 익명 크리덴셜 서명값을 생성하는 단계를 포함할 수 있다.
본 발명의 또 다른 한 실시 예에 따르면, 익명 크리덴셜 기법으로 사용자를 인증하는 익명 크리덴셜 인증 시스템이 제공된다. 익명 크리덴셜 인증 시스템은 크리덴셜 발급 서버, 그리고 확인자 서버를 포함한다. 상기 크리덴셜 발급 서버는 시스템 공개키에 대응하여 개인정보를 구성하는 다중의 속성정보들이 결합된 크리덴셜을 상기 사용자에게 발급한다. 그리고 상기 확인자 서버는 상기 크리덴셜을 발급 받은 사용자로부터, 상기 크리덴셜을 이용하여 설정된 명제정보를 만족함을 나타내는 익명 크리덴셜 서명값을 수신하면, 상기 익명 크리덴셜 서명값의 서명자를 확인해 주는 서명자증명정보를 생성하여 출력한다.
상기 익명 크리덴셜 인증 시스템은 상기 크리덴셜에 결합된 속성정보들을 은닉속성정보, 직접노출속성정보 및 설정함수와 연관되는 속성정보들로 구분하고, 상기 익명 크리덴셜 서명값에 대해 기본 검증을 수행한 후, 상기 구분된 속성정보들을 각각 검증하여, 상기 익명 크리덴셜 서명값의 유효성을 검증하는 서명검증 서버를 더 포함할 수 있다.
상기 익명 크리덴셜 인증 시스템은 상기 서명자증명정보의 검증 요청에 따라 상기 서명자증명정보의 유효성을 검증하는 서명자증명확인 서버를 더 포함할 수 있다.
상기 익명 크리덴셜 인증 시스템은 상기 사용자가 생성한 두 익명 크리덴셜 서명값이 주어지면, 연결키를 이용하여 상기 두 이 익명 크리덴셜 서명값이 서로 연결되어 있는지 확인하는 연결자 서버를 더 포함할 수 있다.
상기 시스템 공개키는 서명자를 확인하는 기능을 제공하는 제1 공개 파라미터와 두 익명 크리덴셜 서명값에 대한 연결성 확인 기능을 제공하는 제2 공개 파라미터 중 적어도 하나를 포함할 수 있다.
상기 크리덴셜 발급 서버는 상기 사용자로부터 다중의 속성정보, 상기 다중의 속성정보에 대한 위임값, 상기 위임값에 대한 영지식 증명값 및 상기 위임값에 대한 사용자 서명값을 포함한 크리덴셜 발급 요청 메시지를 수신하면, 상기 다중의 속성정보를 나타내는 정수 집합 중에서 선택된 임의의 값, 상기 시스템 공개키, 발급키 및 상기 위임값을 이용하여 발급자의 서명값을 계산하고, 상기 임의의 값 및 상기 발급자의 서명값을 포함한 크리덴셜을 생성할 수 있다.
본 발명의 실시 예에 의하면, 이름, 생년월일, 성별, 주소, 전화번호, 결제(신용카드) 정보와 같은 다양한 속성정보들을 포함하는 크리덴셜을 발급받은 사용자가 응용서비스에서 요구하는 자격요건(명제 또는 기준)을 만족함을 보이는 익명성 기반의 서명값을 제시함으로써, 서비스 제공자에게 개인정보의 노출을 최소화하며 서비스에 따라서 선택적 노출 기능 등을 제공하여 개인정보의 오남용을 방지하는 효과를 거둘 수 있다. 특히, 분산원장기술 또는 블록체인 기술과 더불어 자기주권신원(self-sovereign identity)을 위한 효과적인 인증시스템으로 이용가능성이 매우 높을 것으로 예상된다.
또한 본 발명의 실시 예에 의하면, 필요에 따라서 책임성을 부과하거나 서명연결정보를 제공하여 서명자를 은닉하며 개인화된 맞춤형 서비스를 제공할 수 있으며, 익명 크리덴셜 기반의 인증을 한 사용자가 제공받은 서비스를 부인하는 경우 신뢰된 제3자 또는 다중의 공동 관리 주체가 관리하는 확인키를 이용하여 사용자를 확인할 수 있어, 부인방지 기능을 제공할 수 있다. 또한 감사 기능을 위해서 제어 가능 익명성과 제어가능 연결성 등이 활용될 수 있다.
도 1은 본 발명의 실시 예에 따른 익명 크리덴셜 인증 시스템의 구성을 나타낸 도면이다.
도 2는 본 발명의 실시 예에 따른 크리덴셜 발급 서버에서 시스템 공개키와 이에 대응하는 발급키, 확인키 및 연결키를 생성하는 방법을 나타낸 흐름도이다.
도 3은 본 발명의 실시 예에 따른 크리덴셜 발급 서버에서 사용자 기기와 상호적으로 크리덴셜을 생성하는 방법을 나타낸 흐름도이다.
도 4는 본 발명의 실시 예에 따른 사용자 기기가 주어진 메시지에 대해 익명 크리덴셜 서명을 생성 및 제시하는 방법을 나타낸 흐름도이다.
도 5는 본 발명의 실시 예에 따른 서명검증 서버에서 사용자 기기가 생성한 메시지와 명제정보에 대한 익명 크리덴셜 서명을 검증하는 방법을 나타낸 흐름도이다.
도 6은 본 발명의 실시 예에 따른 확인자 서버에서 서명자증명정보를 생성하는 방법을 나타낸 흐름도이다.
도 7은 본 발명의 실시 예에 따른 서명자증명확인 서버에서 서명자증명정보의 유효성을 검증하는 방법을 나타낸 흐름도이다.
도 8은 본 발명의 실시 예에 따른 연결자 서버에서 사용자 기기가 생성한 두 그룹서명들에 대해 연결키를 이용하여 서로 연결되었는지를 확인하는 방법을 나타낸 흐름도이다.
도 9는 본 발명의 실시 예에 따른 확인자 서버가 폐기 확인 요청을 처리하는 방법을 나타낸 도면이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 및 청구범위 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
이제 본 발명의 실시 예에 따른 익명 크리덴셜 인증 시스템 및 그 방법에 대하여 도면을 참고로 하여 상세하게 설명한다.
도 1은 본 발명의 실시 예에 따른 익명 크리덴셜 인증 시스템의 구성을 나타낸 도면이다.
도 1을 참조하면, 익명 크리덴셜 인증 시스템은 크리덴셜 발급 서버(Credential issuing sever)(100), 확인자 서버(Opening sever)(200), 연결자 서버(Linking sever)(300), 사용자 기기(400), 서명검증 서버(500), 그리고 서명자증명확인 서버(600)로 구성된다. 익명 크리덴셜 인증 시스템의 구성은 이에 한정되는 것은 아니며 설계되는 방식에 따라 유연하게 구성요소의 역할이 분리되거나 또는 통합될 수 있으며, 필요한 경우 알려진 실명 인증 기법과 연동을 위해 새로운 구성요소가 정의될 수 있다. 예를 들면, 크리덴셜 발급 서버(100)와 확인자 서버(200)가 통합될 수 있고, 확인자 서버(200)와 연결자 서버(300)가 통합될 수도 있다. 또는 확인자 서버(200), 연결자 서버(300), 서명검증 서버(500) 및 서명자증명확인 서버(600)가 통합될 수도 있다.
또한 크리덴셜 발급 서버(100), 확인자 서버(200), 연결자 서버(300), 서명검증 서버(500) 및 서명자증명확인 서버(600)는 각각 프로세서에 의해 아래에서 설명하는 기능을 수행할 수 있다. 프로세서는 중앙 처리 유닛(central processing unit, CPU)이나 기타 칩셋, 마이크로프로세서 등으로 구현될 수 있다. 프로세서는 해당 기능을 구현하기 위한 프로그램 명령을 메모리에 로드시켜 해당 기능을 위한 동작이 수행되도록 제어할 수 있다. 또한 크리덴셜 발급 서버(100), 확인자 서버(200), 연결자 서버(300), 서명검증 서버(500) 및 서명자증명확인 서버(600)는 외부로 데이터를 송수신하기 위한 입출력 인터페이스를 더 포함할 수 있다.
크리덴셜 발급 서버(100), 확인자 서버(200) 및 연결자 서버(300)는 신뢰된 주체에 해당한다.
크리덴셜 발급 서버(100)는 초기에 또는 필요 시 확인자 서버(200) 및 연결자 서버(300)와 협력하여 시스템 공개키(system public key)를 생성한다.
크리덴셜 발급 서버(100)는 시스템 공개키를 익명 크리덴셜 인증 시스템 내의 모든 구성요소들(200~600)에게 공개한다.
크리덴셜 발급 서버(100)는 사용자 기기(400)로부터 크리덴셜 발급 요청 메시지를 수신하면, 사용자 기기(400)와 상호적인 프로토콜을 수행한 후, 시스템 공개키를 이용하여 발급키(Issuing key)를 생성하고, 발급키를 이용하여 사용자 기기(400)에게 사용자의 다중의 속성정보들과 결합된 크리덴셜을 발급한다. 크리덴셜 발급 요청 메시지에는 속성 및 개인키에 대한 위임값, 이에 대응하는 속성 및 개인키 소유에 대한 지식(또는 영지식) 증명 정보와 크리덴셜 발급을 요청한 사용자를 보증하는 메시지 등을 포함될 수 있다. 크리덴셜 발급 서버(100)와 사용자 기기(400)간에는 인증을 위한 보안채널이 형성될 수 있다.
크리덴셜 발급 서버(100)는 발급키 및 발급된 크리덴셜 등을 포함하는 사용자 등록 정보를 관리한다.
확인자 서버(200)는 시스템 공개키를 이용하여 확인키(Opening key)를 생성하고 관리한다. 또한 확인자 서버(200)는 시스템 공개키를 이용하여 연결키(Linking key)를 생성하고 생성한 연결키를 연결자 서버(300)로 전달한다. 확인자 서버(200)는 유효한 익명 크리덴셜 서명값이 주어진 경우, 확인키를 이용하여 서명자가 누구인지 확인할 수 있는 서명자증명정보를 생성하여 출력한다. 출력된 서명자증명정보는 누구든지 공개적으로 확인 가능하다.
연결자 서버(300)는 연결키를 관리한다. 연결자 서버(300)는 유효한 두 개의 익명 크리덴셜 서명값들이 주어진 경우, 연결키를 이용하여 서로 연결되는지 즉, 두 개의 익명 크리덴셜 서명값을 한 명의 서명자가 생성했는지 서명연결결과를 출력한다.
사용자 기기(400)는 크리덴셜 발급 서버(100)로부터 발급된 크리덴셜을 이용하여 익명 크리덴셜 서명값을 생성한다.
서명검증 서버(500)는 주어진 익명 크리덴셜 서명값에 대한 유효성을 검증한다.
서명자증명확인 서버(600)는 확인자 서버(200)로부터 생성된 서명자증명정보의 유효성을 검증한다.
도 2는 본 발명의 실시 예에 따른 크리덴셜 발급 서버에서 시스템 공개키와 이에 대응하는 발급키, 확인키 및 연결키를 생성하는 방법을 나타낸 흐름도이다.
도 2를 참고하면, 크리덴셜 발급 서버(100)는 초기에 보안 파라미터 k를 입력으로 수신하고, 먼저 이선형 그룹(bilinear group) 쌍
Figure pat00001
와 이와 결합된 이선형 함수(bilinear map) e와 해시 함수 H를 생성한다. 이선형 함수 e와 해시 함수 H는 각각 수학식 1 및 수학식 2와 같이 생성될 수 있다.
Figure pat00002
Figure pat00003
여기서, 그룹들의 위수는 소수 p라고 하며,
Figure pat00004
는 1부터 (p-1)까지의 정수 집합을 나타낸다.
익명 크리덴셜 인증 시스템에 따라서 크리덴셜 발급 서버(100)는 파라미터들을 생성하기 위해서 다음의 동작을 수행한다.
크리덴셜 발급 서버(100)는 임의의 원소
Figure pat00005
Figure pat00006
를 선택하고(S210), 임의의
Figure pat00007
를 선택하여 발급키 K를 생성한 후(S220),
Figure pat00008
을 계산하여, 시스템 공개키의 일부를 생성한다(S230). 이때 발급키 IK는 수학식 3과 같이 정의될 수 있다.
Figure pat00009
확인자 서버(200)는 임의의
Figure pat00010
를 선택하여 확인키 OK를 생성하고(S240), 공개 파라미터 u0와 d를 수학식 4와 같이 계산한 후(S250), 크리덴셜 발급 서버(100)에게 전송한다(S260). 이때 확인키 OK는 수학식 5와 같이 정의된다.
Figure pat00011
Figure pat00012
또한 확인자 서버(200)는 연결키 LK를 수학식 6과 같이 생성하고 연결키 LK를 연결자 서버(300)에게 전송한다(S270).
Figure pat00013
이 경우, 크리덴셜 발급 서버(100)는 확인키 정보를 알지 못하므로 서명자 확인 권한이 분산될 수 있다.
또한 확인자 서버(200)의 운영을 다중의 신뢰 주체로 구성하고 비밀 분산 기법 등을 이용하여 서명자 확인에 대한 권한을 제어함으로써, 서명자 프라이버시를 강화시킬 수 있다. 단일 기관이 확인키를 가지면 권한을 오남용할 수 있다. 따라서, 확인키를 분할하여 여러 신뢰기관이 관리하도록 하고, 필요한 경우 분할된 확인키를 재구성하여 사용하도록 함으로써, 서명자 프라이버시를 강화시킬 수 있다.
크리덴셜 발급 서버(100)는 선택적으로 확인키 OK와 연결키 LK 및 공개 파라미터 u0와 d를 생성할 수 있으며, 확인자 서버(200)에게 확인키 OK를 전송하고 연결자 서버(300)에게 연결키 LK를 전송할 수도 있다.
크리덴셜 발급 서버(100)는 확인자 서버(200)로부터 받은 공개 파라미터(u0, d)를 시스템 공개키 spk에 포함하여 시스템 공개키 spk를 수학식 7과 같이 생성하고(S280), 시스템 공개키 spk를 공개적으로 이용할 수 있도록 공개한다(S290).
Figure pat00014
도 3은 본 발명의 실시 예에 따른 크리덴셜 발급 서버에서 사용자 기기와 상호적으로 크리덴셜을 생성하는 방법을 나타낸 흐름도이다.
도 3을 참고하면, 사용자 기기(400)와 크리덴셜 발급 서버(100)는 이용하려는 익명 크리덴셜 인증 시스템에 따라 상호적으로 다음과 같은 동작을 수행한다. 필요 시, 사용자 기기(400)와 크리덴셜 발급 서버(100) 사이에는 인증 및 보안 채널이 형성되어 있을 수 있다.
사용자의 속성들은
Figure pat00015
로 정의된다. 서비스에 따라서 다양한 속성정보들이 조합되어 정의될 수 있다. 예를 들면, a0는 개인키, a1은 성명, a2는 생년월일, a3는 성별 등으로 정의될 수 있다. 다른 예를 들면, a0는 개인키1, a1은 개인키2, a2는 성명, a3는 카드 정보1, a4는 금융 정보 등으로 정의될 수 있다. 각 속성은 별도로 정해진 인코딩 방법으로 인코딩되어, 0과 소수 p 사이의 정수 형태로 변환될 수 있다. 또한 전체 속성들 중 일부 또는 전부는 응용에 따라서 크리덴셜 발급 서버(100)와 사용자 기기(400)에서 서로 공유될 수 있다. 예를 들면, 크리덴셜 발급 서버(100)가 이동통신사인 경우 크리덴셜 발급 서버(100)와 사용자 기기(400)는 휴대 전화번호 등을 공유할 수 있다. 또한 크리덴셜 발급 서버(100)가 금융사인 경우 크리덴셜 발급 서버(100)와 사용자 기기(400)는 계좌정보 등을 공유할 수 있으며, 크리덴셜 발급 서버(100)가 중앙/지방자치단체인 경우 크리덴셜 발급 서버(100)와 사용자 기기(400)는 주민등록번호나 주소 등을 공유할 수 있다.
크리덴셜을 발급받으려는 사용자 기기(400)는 사용자의 속성정보(a0,a1,…,an)에 대하여, 난수
Figure pat00016
을 선택하고 위임(commitment) (commitment) 값 F를 수학식 8과 같이 생성한다(S310).
Figure pat00017
사용자 기기(400)는 위임값 F에 대해서 난수 y'와 속성정보(a0,a1,…,an)를 알고 있음을 증명하는 지식 증명(knowledge proof) 또는 영지식 증명(zero-knowledge proof) 값 ZK-PF를 수학식 9와 같이 생성한다(S320).
Figure pat00018
사용자 기기(400)는 크리덴셜 발급 요청 메시지 Req_Cred를 크리덴셜 발급 서버(100)로 전송한다(S330). 이때 사용자 기기(400)는 크리덴셜 발급 요청 메시지 Req_Cred를 통해 위임값 F, 이와 관련된 영지식 증명값 ZK-PF, 크리덴셜 발급을 요청한 사용자를 보증하는 보증 메시지 warr, 보증 메시지 warr와 위임값 F에 대한 사용자 서명값 S를 크리덴셜 발급 서버(100)에게 제공할 수 있다.
크리덴셜 발급 서버(100)는 크리덴셜 발급 요청 메시지 Req_Cred와 서명값 S와 영지식 증명값 ZK-PF이 유효한지 검증한다(S340).
모든 검증이 성공하면 크리덴셜 발급 서버(100)는 임의의
Figure pat00019
를 선택하고, 발급키 θ, 위임값 F를 이용하여 발급하고자 하는 크리덴셜의 일부값인 크리덴셜 발급 서버(100)의 서명값 A를 수학식 10과 같이 계산한다.
Figure pat00020
다음, 크리덴셜 발급 서버(100)는 크리덴셜 Cre'를 수학식 11과 같이 생성하고, 크리덴셜 Cre'를 사용자 기기(400)에게 발급한다(S350).
Figure pat00021
상기 발급 과정에서, 정해진 정책에 따라서 크리덴셜 발급 서버(100)는 부가적으로 속성정보를 추가하거나 속성정보를 변형할 수 있다. 예를 들면, 크리덴셜 발급 서버(100)는 위임값 F에
Figure pat00022
를 곱하여 최초 i번째의 속성값 ai를 새로운 속성값
Figure pat00023
으로 변경한 후, 크리덴셜 발급 서버(100)의 서명값 A를 수학식 12와 같이 생성하고, 사용자 기기에게 크리덴셜 Cre'를 발급할 수 있다.
Figure pat00024
이 경우, 크리덴셜 발급 서버(100)는 사용자 기기(400)로 속성정보의 변경을 알리고 변경을 위해 이용된 값
Figure pat00025
를 사용자 기기(400)로 제공할 수 있다. 다른 예를 들면, 만일 위임값 F의 i번째의 속성값이 정의되지 않은 경우, 상기와 유사하게 위임값 F에
Figure pat00026
를 곱하여 i번째의 속성값을 ci로 정의한 후, 사용자 기기(400)에게 크리덴셜 Cre'을 제공할 수 있다.
사용자 기기(400)는 크리덴셜 발급 서버(100)로부터 크리덴셜 Cre'을 발급받은 후, 크리덴셜 Cre'의 유효성을 검증한다(S360). 이를 위해, 사용자 기기(400)는 수학식 13과 같이 t1과 t2를 계산한 후, t1과 t2가 동일한 값인지 확인함으로써, 크리덴셜 Cre'의 유효성을 검증할 수 있다.
Figure pat00027
사용자 기기(400)는 t1과 t2가 동일한 값이면, y를 수학식 14와 같이 계산하고, 수학식 15와 같이 완전한 크리덴셜에 해당하는 속성증명 서명키 usk를 생성하고, 속성증명 서명키 usk를 안전하게 저장한다(S370).
Figure pat00028
Figure pat00029
크리덴셜 발급 서버(100)는 사용자 등록 목록 REG에 등록 정보 REGi[크리데셜 Cre', 위임값 F, 영지식 증명값 ZK-PF, 부가정보, (보증 메시지 warr, 서명값 S)]를 추가한다(S390). 여기서, 부가정보는 예를 들면, 발급 시 크리덴셜 발급 서버(100)에 의해서 추가적으로 정의한 속성값들이 포함될 수 있다.
위 방법들은 비상호적 영지식증명(non-interactive zero-knowledge proof of knowledge) 방법을 이용하면 동시 가입을 지원할 수 있다.
도 4는 본 발명의 실시 예에 따른 사용자 기기가 주어진 메시지에 대해 익명 크리덴셜 서명을 생성 및 제시하는 방법을 나타낸 흐름도이다.
도 4를 참고하면, 사용자 기기(400)는 주어진 시스템 공개키 spk, 메시지 M, 명제정보 QI, 크리덴셜 Cre', 이에 대응하는 속성증명 서명키 usk를 입력으로 수신한다(S410). 사용자 기기(400)는 크리덴셜 Cre', 이에 대응하는 속성증명 서명키 usk를 저장소로부터 읽을 수 있다.
사용자 기기(400)는 입력에 대해 다음과 같이 익명 크리덴셜 서명값 σ을 생성한다.
구체적으로, 사용자 기기(400)는 명제정보 QI에 따라서 크리덴셜 Cre'에 결합된 속성정보들을 은닉속성정보, 직접노출속성정보, 일정함수(예를 들면, 범위 증명)에 연관된 속성정보 등으로 구분한다(S420).
설명의 편의상, 전체속성정보는 "a0,a1,…,a10"와 같이 11개의 항목들로 구성되고, 속성들이 'a0=비밀키', 'a1=이름', 'a2=생년월일', 'a3=성별', 'a4=주소-우편번호', 'a5=주소-시', 'a6=주소-상세', 'a7=휴대전화번호', 'a5=신용카드-발급자', 'a9=신용카드-16자리번호', 'a10=신용카드-만기일'로 정의된다고 가정한다.
명제정보 QI는 속성들이 만족해야 하는 기준을 나타낸다. 예를 들면, 사용자가 성인임을 증명해야 할 때, 명제정보 QI는 "나이>18"을 나타낼 수 있다. 아래에서는 설명의 명확성을 위해서 예시를 통해 설명을 한다. 명제정보 QI를 나타내기 위해서 부가적인 집합들이 표 1과 같이 정의될 수 있다.
Figure pat00030
HIX={0,1,3,4,6,7,8,9,10}, DIX={5}, RIX={2}, RIF={(2:18,200)}인 경우, 명제정보 QI는 프라이버시 보호를 위한 선택적 노출을 위해서 크리덴셜의 속성들 중 "a0,a1,a3,a4,a6,a7,a8,a9,a10"은 은닉하고 "a5=서울시"는 직접 노출시키며 "a2=생년월일=19800101"은 범위증명[18<나이(=현재연월일-a2)<200]을 하는 것을 나타낸다. 예를 들어, 서울시민이고 성인(18세 이상)인 경우 할인이 제공되는 서울 와인 행사에서, 사용자는 할인을 받기 위해서 명제정보 QI=(HIX, DIX, RIX, RIF)를 만족하는 익명 크리덴셜 서명값을 제시한다. 여기에서는 범위 증명만을 설명하고 있으나 다양한 산술 함수 또는 술어(predicate) 함수에 대해서 정의될 수 있다.
다음, 사용자 기기(400)는 먼저, 임의의 난수
Figure pat00031
를 선택하고 익명 크리덴셜 서명값의 일부에 해당하는
Figure pat00032
, D1, D2, D3를 수학식 16과 같이 계산한다.
Figure pat00033
또한 사용자 기기(400)는 임의의 난수들
Figure pat00034
을 선택하고 익명 크리덴셜 서명값 생성을 위한 중간값 R1, R2, 및 R3을 수학식 17과 같이 계산한다.
Figure pat00035
또한 사용자 기기(400)는 수학식 18과 같이 해시함수를 이용하여 c를 계산하고, 익명 크리덴셜 서명값의 일부인
Figure pat00036
를 수학식 19와 같이 계산한다.
Figure pat00037
Figure pat00038
사용자 기기(400)는 HIX와 RIX에 속하는 모든 인덱스 i(i=0,1,2,3,4,6,7,8,9,10)에 대해서 각 속성을 증명해주는 값 si를 수학식 20과 같이 계산한다.
Figure pat00039
사용자 기기(400)는 DIX에 속하는 모든 인덱스 j(예를 들면, j=5)에 대해서 sj=aj 즉, 해당 속성을 증명해주는 값을 원본 속성값으로 정의한다. 또한 RIX에 속하는 모든 인덱스 k(예를 들면, k=2)에 대해서, 범위 증명에 대한 영지식 증명값 πrange을 생성한다. 위에서 예제로 주어진 명제정보 QI를 고려하면 영지식 증명값 πrange은 π2 [18,200]로만 구성될 수 있다. 편의상, π2 [18,200]을 a2에 관한 범위 증명(18<나이(=현재연월일-a2)<200)에 대한 영지식 증명값으로 나타낸다.
이와 같이, 사용자 기기(400)는 구분된 속성정보에 대해서 각각 적합한 증명값 si을 생성한다(S430).
마지막으로, 사용자 기기(400)는 수학식 21과 같이 익명 크리덴셜 서명값 σ를 생성하고, 익명 크리덴셜 서명값 σ를 출력한다(S440).
Figure pat00040
익명 크리덴셜 서명값을 생성하는 과정에서, 만일 서명자 확인이 요구되는 책임성이 필요하지 않은 서비스를 위해서 서명을 생성하고 싶다면,
Figure pat00041
대신 랜덤한 값 w0를 이용하여 서명을 생성할 수 있다. 이 경우, 확인키 OK를 적용할 수 없으므로 서명자는 은닉된 상태로 남을 수 있다. 또한 유사하게 연결키 LK가 불능이 되도록 하여, 서명 연결 기능이 제공되지 않은 익명 크리덴셜 서명값을 생성하기 위해서
Figure pat00042
대신 랜덤한 값 w1를 이용하여 서명을 생성할 수 있다.
도 5는 본 발명의 실시 예에 따른 서명검증 서버에서 사용자 기기가 생성한 메시지와 명제정보에 대한 익명 크리덴셜 서명을 검증하는 방법을 나타낸 흐름도이다.
도 5를 참고하면, 서명검증 서버(500)는 사용자 기기(400)로부터 메시지 M과 명제정보 QI[=(HIX, DIX, RIX, RIF)], 이에 대한 익명 크리덴셜 서명값 σ을 입력으로 수신한다(S510).
서명검증 서버(500)는 명제정보 QI에 대해서 크리덴셜 Cre'에 결합된 속성정보들을 은닉속성정보, 직접노출속성정보, 일정함수(예를 들면, 범위증명)를 만족하는 속성정보들로 구분한다(S520).
서명검증 서버(500)는 주어진 익명 크리덴셜 서명값 σ에 대해 기본 검증을 수행한다(S530). 예를 들면, 수학식 21에 도시된 익명 크리덴셜 서명값 σ에 대해 기본 검증을 수행하기 위해, 서명검증 서버(500)는 먼저 수학식 22와 같이 R1, R2, R3를 계산한다.
Figure pat00043
서명검증 서버(500)는 해시함수 값 c'을 수학식 23과 같이 계산한 후, 익명 크리덴셜 서명값 σ에 포함된 c와 계산된 c'가 같은지 확인한다.
Figure pat00044
서명검증 서버(500)는 c와 c'가 같으면, 구분된 속성정보들에 대해서 각각 적합한 검증을 수행한다(S540). 즉, 서명검증 서버(500)는 속성정보들이 명제정보 QI[=(HIX, DIX, RIX, RIF)]를 만족하는지 검증하는 과정을 진행한다. 서명검증 서버(500)는 DIX의 모든 인덱스에 대응하는 속성값들이 일정 형식을 만족하는지 확인한다. 예를 들어서, "a5=주소-시" 정보가 α비트 문자열이며(필요시 한국의 도시 목록 중에 하나이며), "서울"과 동일함을 검증한다. 또한 익명 크리덴셜 서명값 σ에 포함된 영지식 증명값 πrange 즉, π2[18,200]이 성인임을 증명하는, 다시 말해서 범위 증명(18<나이(=현재연월일-a2)<200)에 대해서 유효한 영지식 증명값인지 검증한다.
서명검증 서버(500)는 익명 크리덴셜 서명 검증 결과를 출력한다(S550). 서명검증 서버(500)는 익명 크리덴셜 서명 검증 결과가 모두 유효하면, 주어진 익명 크리덴셜 서명값 σ이 유효함을 나타내는 1을 출력하고, 만일 아니라면 0을 출력할 수 있다.
도 6은 본 발명의 실시 예에 따른 확인자 서버에서 서명자증명정보를 생성하는 방법을 나타낸 흐름도이다.
도 6을 참고하면, 확인자 서버(200)는 메시지 M, 명제정보 QI 및 명제정보 QI에 대한 익명 크리덴셜 서명값 σ을 입력으로 수신하고(S610), 익명 크리덴셜 서명값 σ의 유효성을 검증한다(S620). 확인자 서버(200)는 서명검증 서버(500)로부터 익명 크리덴셜 서명값 σ에 대한 서명검증결과를 수신하고, 서명검증결과로부터 익명 크리덴셜 서명값 σ의 유효성을 검증할 수 있다.
확인자 서버(200)는 익명 크리덴셜 서명값 σ의 유효성이 검증되면, 서명자증명정보 τ를 생성한다.
구체적으로, 확인자 서버(200)는 확인키 OK를 이용하여 익명 크리덴셜 서명값 σ에 포함된 K와 A를 각각 수학식 24 및 수학식 25와 같이 계산한다(S630).
Figure pat00045
Figure pat00046
확인자 서버(200)는 A를 이용하여 사용자 등록 목록 REG에서 이진 검색을 통해서 사용자 등록 정보 REGi[Cre', 위임값 F, 영지식 증명값 ZK-PF, 부가정보, (보증 메시지 warr, 서명값 S)]를 획득한다(S640). 이때 필요시 크리덴셜 발급 서버(100)와 협력할 수 있다.
확인자 서버(200)는 메시지 M과 명제정보 QI, 익명 크리덴셜 서명값 σ, 시스템 공개키 등을 포함하는 서명자 확인 처리를 위한 메시지 Mopen를 생성하고, 난수
Figure pat00047
을 선택한 후 Copen과 Sopen을 각각 수학식 26 및 수학식 27과 같이 계산한다.
Figure pat00048
Figure pat00049
다음, 확인자 서버(200)는 익명 크리덴셜 서명값 σ에 대응하는 서명자증명정보 τ를 수학식 28과 같이 계산하여 출력한다(S650).
Figure pat00050
도 7은 본 발명의 실시 예에 따른 서명자증명확인 서버에서 서명자증명정보의 유효성을 검증하는 방법을 나타낸 흐름도이다.
도 7을 참고하면, 서명자증명확인 서버(600)는 확인자 서버(200)로부터 메시지 M과 명제정보 QI, 유효한 익명 크리덴셜 서명값 σ, 그리고 서명자증명정보 τ에 대한 검증 요청을 수신한다(S710).
서명자증명확인 서버(600)는 메시지 M과 명제정보 QI, 유효한 익명 크리덴셜 서명값 σ, 그리고 서명자증명정보 τ에 대하여, 다음과 같이 유효성을 확인한다(S720).
서명자증명확인 서버(600)는 W1, W2, 그리고 해시함수 값 Copen'을 수학식 29와 같이 계산한다.
Figure pat00051
서명자증명확인 서버(600)는 계산된 Copen'과 서명자증명정보 τ에 포함된 Copen이 같은지 확인한다.
서명자증명확인 서버(600)는 A를 수학식 30과 같이 계산한 후, 수학식 31의 등식이 성립하는지 확인한다.
Figure pat00052
Figure pat00053
다음, 서명자증명확인 서버(600)는 위임값 F와 보증 메시지 warr에 대한 서명값 S를 검증한다.
서명자증명확인 서버(600)는 Copen'와 Copen이 같은지 여부, 수학식 31의 등식 성립 여부 및 서명값 S의 검증 여부에 따라 서명자증명정보 τ의 검증결과를 출력한다(S730). 서명자증명확인 서버(600)는 Copen'과 Copen이 같고, 수학식 31의 등식이 성립하며, 서명값 S의 검증이 성공적이면, 서명자증명정보 τ가 유효함을 나타내는 1을 출력하고, 그렇지 않으면 0을 출력할 수 있다.
도 8은 본 발명의 실시 예에 따른 연결자 서버에서 사용자 기기가 생성한 두 그룹서명들에 대해 연결키를 이용하여 서로 연결되었는지를 확인하는 방법을 나타낸 흐름도이다.
도 8을 참고하면, 연결자 서버(300)는 두 개의 그룹서명쌍[(M,QI,σ=(D1, D2, D3, …)), (M',QI',σ'=(D1', D2', D3', …))]을 입력으로 수신한다(S810). 그룹서명은 (메시지, 명제정보, 익명 크리덴셜 서명값)으로 구성될 수 있다.
연결자 서버(300)는 연결키
Figure pat00054
를 이용하여 두 개의 연결 태그 LT1과 LT2를 수학식 32 및 수학식 33과 같이 계산한다(S820).
Figure pat00055
Figure pat00056
연결자 서버(300)는 LT1과 LT2를 비교하여 두 그룹서명들의 연결 결과를 출력한다(S830). 연결자 서버(300)는 LT1과 LT2가 같으면, 연결됨을 나타내는 1을 출력하고, 그렇지 않으면 연결되지 않음을 나타내는 0을 출력한다.
도 9는 본 발명의 실시 예에 따른 확인자 서버가 폐기 확인 요청을 처리하는 방법을 나타낸 도면이다.
도 9를 참고하면, 확인자 서버(200)는 폐기 확인 요청을 수신한다(S910). 폐기 확인 요청은 메시지 M과 명제정보 QI, 크리덴셜 Cre', 이에 대응하는 익명 크리덴셜 서명값 σ을 포함할 수 있다.
확인자 서버(200)는 익명 크리덴셜 서명값 σ으로부터 확인키 OK를 이용하여 폐기태그 RT를 계산한다(S920). 확인키 OK를 이용하여 다양한 폐기 태그 값 계산이 가능하다. 예를 들면 폐기태그 RT는 수학식 34와 같이 계산될 수 있다.
Figure pat00057
다른 예를 들면, 도 8의 연결 태그 값이 폐기태그로 이용될 수 있다.
확인자 서버(200)는 폐기 목록(Revocation List)에서 계산된 폐기태그 값이 존재하는지 확인하고(S930), 확인 결과를 출력한다(S940).
확인자 서버(200)는 폐기 목록에서 계산된 폐기태그 값이 존재하면 1을 출력하고, 그렇지 않으면 0을 출력할 수 있다.
즉, 확인자 서버(200)는 폐기 요청 시, 해당 정보(크리덴셜 Cre', 이에 대응하는 익명 크리덴셜 서명값 σ)를 이용하여 폐기태그를 생성하여 폐기 목록에 등록한다. 이후, 폐기 확인 요청 시에는 앞에서 설명한 바와 같이 폐기태그를 생성한 후 폐기 목록에 존재하는지 확인하고 그 결과를 출력한다.
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리 범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리 범위에 속하는 것이다.

Claims (20)

  1. 익명 크리덴셜 인증 시스템의 인증 방법에서,
    개인정보를 구성하는 다중의 속성정보들이 결합된 크리덴셜을 발급 받은 사용자 기기로부터, 상기 크리덴셜을 이용하여 설정된 명제정보를 만족함을 나타내는 익명 크리덴셜 서명값을 수신하는 단계, 그리고
    확인키를 이용하여 상기 익명 크리덴셜 서명값의 서명자를 확인해 주는 서명자증명정보를 생성하여 출력하는 단계
    를 포함하는 인증 방법.
  2. 제1항에서,
    상기 서명자증명정보를 검증하는 단계
    를 더 포함하는 인증 방법.
  3. 제1항에서,
    상기 익명 크리덴셜 서명값의 유효성을 검증하는 단계
    를 더 포함하는 인증 방법.
  4. 제3항에서,
    상기 검증하는 단계는
    상기 사용자 기기로부터 상기 명제정보, 상기 크리덴셜 및 상기 익명 크리덴셜 서명값을 수신하는 단계,
    상기 크리덴셜에 결합된 속성정보들을 은닉속성정보, 직접노출속성정보 및 설정함수와 연관되는 속성정보들로 구분하는 단계,
    상기 익명 크리덴셜 서명값에 대해 기본 검증을 수행하는 단계, 그리고
    상기 기본 검증이 성공적으로 이루어지면, 상기 구분된 속성정보들에 대해서 각각 검증하는 단계를 포함하는 인증 방법.
  5. 제1항에서,
    상기 출력하는 단계는
    상기 명제정보에 대한 익명 크리덴셜 서명값을 수신하는 단계,
    상기 확인키와 상기 익명 크리덴셜 서명값을 이용하여 발급자의 서명값을 계산하는 단계,
    상기 발급자의 서명값을 이용하여 사용자 등록 목록에서 사용자 등록 정보를 획득하는 단계, 그리고
    상기 사용자 등록 정보 및 상기 익명 크리덴셜 서명값에 포함된 값을 이용하여 상기 서명자증명정보를 생성하는 단계를 포함하는 인증 방법.
  6. 제1항에서,
    상기 사용자 기기가 생성한 두 익명 크리덴셜 서명값이 주어지면, 연결키를 이용하여 상기 두 이 익명 크리덴셜 서명값이 서로 연결되어 있는지 확인하는 단계
    를 더 포함하는 인증 방법.
  7. 제6항에서,
    상기 확인키와 연관된 제1 공개 파라미터와 상기 연결키와 연관된 제2 공개 파라미터를 생성하는 단계,
    상기 제1 및 제2 공개 파라미터를 포함한 시스템 공개키를 생성하는 단계, 그리고
    상기 시스템 공개키에 대응하여 상기 크리덴셜을 발급하는 단계
    를 더 포함하는 인증 방법.
  8. 제7항에서,
    상기 시스템 공개키를 공개하는 단계
    를 더 포함하는 인증 방법.
  9. 제7항에서,
    상기 발급하는 단계는
    상기 사용자 기기로부터, 상기 다중의 속성정보에 대한 위임값, 상기 위임값에 대한 영지식 증명값 및 상기 위임값에 대한 사용자 서명값을 포함한 크리덴셜 발급 요청 메시지를 수신하는 단계,
    상기 영지식 증명값 및 상기 사용자 서명값의 유효성을 검증하는 단계,
    상기 다중의 속성정보를 나타내는 정수 집합 중에서 선택된 임의의 값, 상기 시스템 공개키, 발급키 및 상기 위임값을 이용하여 발급자의 서명값을 계산하는 단계, 그리고
    상기 임의의 값 및 상기 발급자의 서명값을 포함한 크리덴셜을 상기 사용자 기기에게 발급하는 단계를 포함하는 인증 방법.
  10. 제9항에서,
    상기 발급하는 단계는 상기 사용자 기기에게 발급된 크리덴셜, 상기 위임값, 상기 영지식 증명값 및 상기 사용자 서명값을 포함하는 사용자 등록 정보를 사용자 등록 목록에 추가하는 단계를 더 포함하는 인증 방법.
  11. 사용자 기기가 익명 크리덴셜 인증 시스템으로부터 인증 받는 방법에서,
    개인정보를 구성하는 다중의 속성정보, 상기 다중의 속성정보에 대한 위임값, 상기 위임값에 대한 영지식 증명값 및 상기 위임값에 대한 사용자 서명값을 포함한 크리덴셜 발급 요청 메시지를 크리덴셜 발급 서버로 전송하는 단계,
    상기 다중의 속성정보를 나타내는 정수 집합 중에서 선택된 임의의 값과 발급키를 이용하여 생성된 상기 크리덴셜 발급 서버의 서명값을 포함한 크리덴셜을 상기 크리덴셜 발급 서버로부터 발급 받는 단계,
    상기 크리덴셜 발급 서버가 공개한 시스템 공개키, 상기 크리덴셜과 상기 다중의 속성정보를 결합하여 속성증명 서명키를 생성하는 단계,
    상기 크리덴셜과 상기 속성증명 서명키를 이용하여 설정된 명제정보를 만족함을 나타내는 익명 크리덴셜 서명값을 제시하는 단계, 그리고
    상기 익명 크리덴셜 서명값에 대한 검증 결과를 수신하는 단계
    를 포함하는 인증 방법.
  12. 제11항에서,
    상기 시스템 공개키는 서명자를 확인하는 기능을 제공하는 제1 공개 파라미터와 두 서명값에 대한 연결성 확인 기능을 제공하는 제2 공개 파라미터 중 적어도 하나를 포함하는 인증 방법.
  13. 제12항에서,
    상기 제시하는 단계는
    상기 제1 공개 파라미터와 상기 크리덴셜 발급 서버의 서명값을 이용하여 서명자 확인 기능을 제공하는 값을 생성하는 단계,
    각 속성정보를 증명해주는 증명값을 계산하는 단계,
    상기 명제정보 중 자격요건에 대한 영지식 증명값을 생성하는 단계, 그리고
    적어도 상기 증명값, 상기 서명자 확인 기능을 제공하는 값, 상기 자격요건에 대한 영지식 증명값 및 상기 다중의 속성정보를 포함한 익명 크리덴셜 서명값을 생성하는 단계를 포함하는 인증 방법.
  14. 제12항에서,
    상기 제시하는 단계는
    상기 제2 공개 파라미터를 이용하여 연결성 확인 기능을 제공하는 값을 생성하는 단계,
    각 속성정보를 증명해주는 증명값을 계산하는 단계,
    상기 명제정보 중 자격요건에 대한 영지식 증명값을 생성하는 단계, 그리고
    적어도 상기 증명값, 상기 연결성 확인 기능을 제공하는 값, 상기 자격요건에 대한 영지식 증명값 및 상기 다중의 속성정보를 포함한 익명 크리덴셜 서명값을 생성하는 단계를 포함하는 인증 방법.
  15. 익명 크리덴셜 기법으로 사용자를 인증하는 익명 크리덴셜 인증 시스템에서,
    시스템 공개키에 대응하여 개인정보를 구성하는 다중의 속성정보들이 결합된 크리덴셜을 상기 사용자에게 발급하는 크리덴셜 발급 서버, 그리고
    상기 크리덴셜을 발급 받은 사용자로부터, 상기 크리덴셜을 이용하여 설정된 명제정보를 만족함을 나타내는 익명 크리덴셜 서명값을 수신하면, 상기 익명 크리덴셜 서명값의 서명자를 확인해 주는 서명자증명정보를 생성하여 출력하는 확인자 서버
    를 포함하는 익명 크리덴셜 인증 시스템.
  16. 제15항에서,
    상기 크리덴셜에 결합된 속성정보들을 은닉속성정보, 직접노출속성정보 및 설정함수와 연관되는 속성정보들로 구분하고, 상기 익명 크리덴셜 서명값에 대해 기본 검증을 수행한 후, 상기 구분된 속성정보들을 각각 검증하여, 상기 익명 크리덴셜 서명값의 유효성을 검증하는 서명검증 서버
    를 더 포함하는 익명 크리덴셜 인증 시스템.
  17. 제15항에서,
    상기 서명자증명정보의 검증 요청에 따라 상기 서명자증명정보의 유효성을 검증하는 서명자증명확인 서버
    를 더 포함하는 익명 크리덴셜 인증 시스템.
  18. 제15항에서,
    상기 사용자가 생성한 두 익명 크리덴셜 서명값이 주어지면, 연결키를 이용하여 상기 두 이 익명 크리덴셜 서명값이 서로 연결되어 있는지 확인하는 연결자 서버
    를 더 포함하는 익명 크리덴셜 인증 시스템.
  19. 제15항에서,
    상기 시스템 공개키는 서명자를 확인하는 기능을 제공하는 제1 공개 파라미터와 두 익명 크리덴셜 서명값에 대한 연결성 확인 기능을 제공하는 제2 공개 파라미터 중 적어도 하나를 포함하는 익명 크리덴셜 인증 시스템.
  20. 제15항에서,
    상기 크리덴셜 발급 서버는 상기 사용자로부터 다중의 속성정보, 상기 다중의 속성정보에 대한 위임값, 상기 위임값에 대한 영지식 증명값 및 상기 위임값에 대한 사용자 서명값을 포함한 크리덴셜 발급 요청 메시지를 수신하면, 상기 다중의 속성정보를 나타내는 정수 집합 중에서 선택된 임의의 값, 상기 시스템 공개키, 발급키 및 상기 위임값을 이용하여 발급자의 서명값을 계산하고, 상기 임의의 값 및 상기 발급자의 서명값을 포함한 크리덴셜을 생성하는 익명 크리덴셜 인증 시스템.
KR1020200156208A 2019-11-25 2020-11-20 익명 크리덴셜 인증 시스템 및 그 방법 KR102460299B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/104,695 US11451519B2 (en) 2019-11-25 2020-11-25 Anonymous credential authentication system and method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20190152716 2019-11-25
KR1020190152716 2019-11-25

Publications (2)

Publication Number Publication Date
KR20210064076A true KR20210064076A (ko) 2021-06-02
KR102460299B1 KR102460299B1 (ko) 2022-10-28

Family

ID=76373010

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200156208A KR102460299B1 (ko) 2019-11-25 2020-11-20 익명 크리덴셜 인증 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR102460299B1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114169011A (zh) * 2021-12-16 2022-03-11 福州大学 基于属性凭证的隐私保护电子票据系统
KR102402797B1 (ko) * 2021-06-23 2022-05-27 구본호 인공지능형 원격 동작평가 장치 및 방법
CN114900313A (zh) * 2022-04-18 2022-08-12 中国科学院大学 一种保护隐私的匿名工作证书生成和验证方法
KR20230018207A (ko) * 2021-07-29 2023-02-07 주식회사 에어핏 환기 장치의 필터 교체 구독 서비스 제공 방법 및 장치
KR20230132922A (ko) 2022-03-10 2023-09-19 상명대학교산학협력단 효율적으로 사용자 탈퇴 기능을 제공하는 익명 크리덴셜 인증 장치 및 방법
KR20240009774A (ko) 2022-07-14 2024-01-23 상명대학교산학협력단 효율적으로 사용자 탈퇴 기능을 제공하는 익명 크리덴셜 인증 장치 및 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120124379A1 (en) * 2009-07-13 2012-05-17 Nec Corporation Anonymous authentication signature system, user device, verification device, signature method, verification method, and program therefor
KR20120071015A (ko) * 2010-12-22 2012-07-02 한국전자통신연구원 제어가능 연결성을 제공하는 그룹서명 장치 및 방법
US20140359289A1 (en) * 2013-05-29 2014-12-04 International Business Machines Corporation Method for deriving a verification token from a credential
KR101817152B1 (ko) * 2015-08-11 2018-02-21 한국전자통신연구원 신뢰된 권한 정보 제공 방법, 신뢰된 권한 정보를 포함하는 사용자 크리덴셜 발급 방법 및 사용자 크리덴셜 획득 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120124379A1 (en) * 2009-07-13 2012-05-17 Nec Corporation Anonymous authentication signature system, user device, verification device, signature method, verification method, and program therefor
KR20120071015A (ko) * 2010-12-22 2012-07-02 한국전자통신연구원 제어가능 연결성을 제공하는 그룹서명 장치 및 방법
US20140359289A1 (en) * 2013-05-29 2014-12-04 International Business Machines Corporation Method for deriving a verification token from a credential
KR101817152B1 (ko) * 2015-08-11 2018-02-21 한국전자통신연구원 신뢰된 권한 정보 제공 방법, 신뢰된 권한 정보를 포함하는 사용자 크리덴셜 발급 방법 및 사용자 크리덴셜 획득 방법

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102402797B1 (ko) * 2021-06-23 2022-05-27 구본호 인공지능형 원격 동작평가 장치 및 방법
KR20230018207A (ko) * 2021-07-29 2023-02-07 주식회사 에어핏 환기 장치의 필터 교체 구독 서비스 제공 방법 및 장치
CN114169011A (zh) * 2021-12-16 2022-03-11 福州大学 基于属性凭证的隐私保护电子票据系统
CN114169011B (zh) * 2021-12-16 2024-06-04 福州大学 基于属性凭证的隐私保护电子票据系统
KR20230132922A (ko) 2022-03-10 2023-09-19 상명대학교산학협력단 효율적으로 사용자 탈퇴 기능을 제공하는 익명 크리덴셜 인증 장치 및 방법
KR102690974B1 (ko) 2022-03-10 2024-08-05 상명대학교산학협력단 효율적으로 사용자 탈퇴 기능을 제공하는 익명 크리덴셜 인증 장치 및 방법
CN114900313A (zh) * 2022-04-18 2022-08-12 中国科学院大学 一种保护隐私的匿名工作证书生成和验证方法
KR20240009774A (ko) 2022-07-14 2024-01-23 상명대학교산학협력단 효율적으로 사용자 탈퇴 기능을 제공하는 익명 크리덴셜 인증 장치 및 방법

Also Published As

Publication number Publication date
KR102460299B1 (ko) 2022-10-28

Similar Documents

Publication Publication Date Title
KR102460299B1 (ko) 익명 크리덴셜 인증 시스템 및 그 방법
US10547643B2 (en) Systems and methods for distributed data sharing with asynchronous third-party attestation
US9871655B2 (en) Method for deriving a verification token from a credential
US12015714B2 (en) System and method for an electronic identity brokerage
Bertino et al. Identity management: Concepts, technologies, and systems
US11451519B2 (en) Anonymous credential authentication system and method thereof
CN110874464A (zh) 用户身份认证数据的管理方法和设备
US9021572B2 (en) Anonymous access to a service by means of aggregated certificates
Bobolz et al. Issuer-hiding attribute-based credentials
Buccafurri et al. Integrating digital identity and blockchain
Ribeiro et al. STORK: a real, heterogeneous, large-scale eID management system
CN109981287A (zh) 一种代码签名方法及其存储介质
Camenisch et al. Concepts and languages for privacy-preserving attribute-based authentication
CN110189184A (zh) 一种电子发票存储方法和装置
CN114503508A (zh) 用于在区块链上存储经认证的数据的计算机实施的方法和系统
Buccafurri et al. Ethereum Transactions and Smart Contracts among Secure Identities.
KR102477363B1 (ko) 효율적인 키 폐기가 가능한 익명 속성 증명 시스템 및 방법
CN106533681B (zh) 一种支持部分出示的属性证明方法与系统
CN116975936B (zh) 金融资质证明方法、金融资质验证方法
Payeras-Capellà et al. Design and performance evaluation of two approaches to obtain anonymity in transferable electronic ticketing schemes
Buccafurri et al. Implementing advanced electronic signature by public digital identity system (SPID)
US20240031341A1 (en) Methods, devices and system related to a distributed ledger and user identity attribute
Namazi et al. zkFaith: Soonami's Zero-Knowledge Identity Protocol
Liang et al. Decentralised functional signatures
Liang et al. An efficient blockchain-based anonymous authentication and supervision system

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