[go: up one dir, main page]

KR102790869B1 - Device and method for anonymous credential with efficient recocations - Google Patents

Device and method for anonymous credential with efficient recocations Download PDF

Info

Publication number
KR102790869B1
KR102790869B1 KR1020220087092A KR20220087092A KR102790869B1 KR 102790869 B1 KR102790869 B1 KR 102790869B1 KR 1020220087092 A KR1020220087092 A KR 1020220087092A KR 20220087092 A KR20220087092 A KR 20220087092A KR 102790869 B1 KR102790869 B1 KR 102790869B1
Authority
KR
South Korea
Prior art keywords
credential
user device
anonymous
public key
user
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020220087092A
Other languages
Korean (ko)
Other versions
KR20240009774A (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 KR1020220087092A priority Critical patent/KR102790869B1/en
Publication of KR20240009774A publication Critical patent/KR20240009774A/en
Application granted granted Critical
Publication of KR102790869B1 publication Critical patent/KR102790869B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • 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/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • 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/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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)
  • Storage Device Security (AREA)

Abstract

효율적으로 사용자 탈퇴 기능을 제공하는 익명 크리덴셜 인증 시스템, 장치 및 방법이 개시된다. 상기 익명 크리덴셜 인증 시스템은 CS(Complete Subtree) 기법을 이용하여 시스템 공개키와 마스터 비밀키를 생성하는 크리덴셜 발급 서버, 상기 시스템 공개키를 이용하여 사용자 공개키와 사용자 비밀키를 생성하는 사용자 기기, 및 상기 사용자 기기로부터 수신된 익명 크리덴셜 서명을 검증하는 검증 서버를 포함하고, 상기 크리덴셜 발급 서버와 상기 사용자 기기는 크리덴셜 발급 알고리즘을 수행하여 크리덴셜을 발급하고, 상기 크리덴셜 발급 서버는 탈퇴한 사용자 목록에 기초한 정보를 생성하여 배포하고, 상기 검증 서버는 상기 탈퇴한 사용자 목록에 기초한 정보를 이용하여 상기 익명 크리덴셜 서명을 검증한다.An anonymous credential authentication system, device and method for efficiently providing a user withdrawal function are disclosed. The anonymous credential authentication system includes a credential issuing server which generates a system public key and a master private key using a CS (Complete Subtree) technique, a user device which generates a user public key and a user private key using the system public key, and a verification server which verifies an anonymous credential signature received from the user device, wherein the credential issuing server and the user device perform a credential issuing algorithm to issue a credential, the credential issuing server generates and distributes information based on a list of users who have withdrawn, and the verification server verifies the anonymous credential signature using information based on the list of users who have withdrawn.

Description

효율적으로 사용자 탈퇴 기능을 제공하는 익명 크리덴셜 인증 장치 및 방법{DEVICE AND METHOD FOR ANONYMOUS CREDENTIAL WITH EFFICIENT RECOCATIONS}{DEVICE AND METHOD FOR ANONYMOUS CREDENTIAL WITH EFFICIENT RECOCATIONS}

본 발명은 익명 크리덴셜 인증 방법에 관한 것으로, 특히 사용자의 신원을 나타내는 다수의 속성을 크리덴셜로 인증받고, 이를 이용하여 원하는 속성만 노출하는 동시에 나머지 속성들에 대해서는 익명성을 제공하며 신원을 증명할 수 있는 익명 크리덴셜 방법에 관한 것이다.The present invention relates to an anonymous credential authentication method, and more particularly, to an anonymous credential method capable of authenticating a plurality of attributes representing the identity of a user as credentials, exposing only the desired attributes using the credentials, while providing anonymity for the remaining attributes and proving the identity.

개인은 본인이 원하는 서비스를 제공받기 위해 서비스 제공자에게 본인의 신원(identity)을 인증하고, 이로부터 서비스 제공자는 막대한 경제적인 이윤을 창출한다. 하지만, 기존 인증 체계에서 신원 데이터는 개인이 아닌 서비스 제공자가 소유 및 관리하는 등 신원 데이터의 주권은 서비스 제공자에게 있다. 최근 자기결정권을 위한 개인의 주권에 대한 중요성이 강조되고 있으며, 이에 따라 개인이 스스로 자신의 신원 데이터에 대하여 주권을 갖고 인증을 수행하는 자기 주권 신원(self-sovereign identity) 개념이 도입되었다. 실제로 마이데이터 체계를 마련하고 블록체인을 활용한 분산 신원 인증(Decentralized identifier, DID) 서비스에 대하여 표준화가 활발하게 진행 중이다.In order to receive the services they want, individuals authenticate their identities to service providers, and from this, service providers generate enormous economic profits. However, in the existing authentication system, identity data is owned and managed by service providers, not individuals, and thus the sovereignty of identity data lies with service providers. Recently, the importance of individual sovereignty for self-determination has been emphasized, and accordingly, the concept of self-sovereign identity, in which individuals have sovereignty over their own identity data and perform authentication, has been introduced. In fact, the MyData system is being established and standardization of decentralized identifier (DID) services utilizing blockchain is actively underway.

DID 서비스를 실현하기 위한 핵심 기술로 익명 인증 크리덴셜이 있다. 익명 인증 크리덴셜은 사용자가 사전에 신원을 인증해 주는 기관(기업)으로부터 크리덴셜을 발급받고, 검증자(서비스 제공자)가 요청할 때마다 익명 크리덴셜을 생성하여 신원 및 자격을 증명하는 기술이다. 이때, 신원 정보는 다수의 속성으로 표현할 수 있는데 사용자는 자신이 원하는 속성만 노출하고 나머지는 안전하게 숨기면서 인증을 수행하는 선택적 노출(Selective disclosure) 기능을 기본적으로 제공하며 선택적 노출 기능과 더불어 기관으로부터 탈퇴되어 기관이 관리하는 탈퇴 목록에 포함된 사용자는 더 이상 신원 증명 값을 생성할 수 없는 사용자 탈퇴(Revocation) 기능을 제공할 수 있다. 사용자 탈퇴 기능을 실현하기 위한 기술로, 트리 기반 사용자 탈퇴 방법인 SD(Subset Difference) 기법과 CS(Complete Subtree) 기법을 사용할 수 있다.A key technology for realizing DID services is anonymous authentication credentials. Anonymous authentication credentials are technologies that allow users to receive credentials from an organization (company) that authenticates their identity in advance, and generate anonymous credentials whenever a verifier (service provider) requests them to prove their identity and qualifications. At this time, identity information can be expressed as multiple attributes, and a selective disclosure function is provided by default, which allows users to perform authentication by exposing only the attributes they want and safely hiding the rest. In addition to the selective disclosure function, a user revocation function can be provided, which allows users who have been withdrawn from an organization and are included in the withdrawal list managed by the organization to no longer generate identity verification values. As technologies for realizing the user revocation function, the SD (Subset Difference) technique and the CS (Complete Subtree) technique, which are tree-based user revocation methods, can be used.

대한민국 공개특허 제2021-0064076호 (2021.06.02. 공개)Republic of Korea Publication Patent No. 2021-0064076 (Published on June 2, 2021)

본 발명이 이루고자 하는 기술적인 과제는 효율적인 사용자 탈퇴 기능을 제공하는 익명 크리덴셜 인증 기법을 제공하는 것이다. 폐기 목록을 사용하는 기존 익명 크리덴셜 기술은 효율적으로 사용자 폐기 여부를 확인할 수 없다. 탈퇴한 사용자가 증명 값을 생성하였는지 확인하기 위해서 검증자는 먼저 검증 시간에 유효한 폐기 목록(RL)을 확인하고, 각 항목에 명시되어 있는 탈퇴한 사용자에 대한 추적 값이 증명 값과 적합한지 정해진 검증식을 통하여 확인하여야 한다. 이때, 검증 계산량과 시간은 폐기 목록(RL)의 크기에 비례한다. 따라서 고정된 검증 계산량과 시간으로만 사용자 탈퇴를 효율적으로 지원하는 것은 중요한 해결 과제이다.The technical problem to be achieved by the present invention is to provide an anonymous credential authentication technique that provides an efficient user withdrawal function. Existing anonymous credential technologies that use a revocation list cannot efficiently check whether a user has been revoked. In order to check whether a revoked user has generated a proof value, a verifier must first check a valid revocation list (RL) at the verification time, and check whether the tracking value for the revoked user specified in each item matches the proof value through a set verification formula. At this time, the verification calculation amount and time are proportional to the size of the revocation list (RL). Therefore, it is an important task to efficiently support user withdrawal with only a fixed verification calculation amount and time.

본 발명이 이루고자 하는 다른 기술적인 과제는 이상적인 위조 불가능성을 만족하는 익명 크리덴셜 인증 기법을 제공하는 것이다. 기존 익명 크리덴셜 기술은 사용자가 탈퇴하여도 신원 증명 값을 생성하는 것을 방지할 수 없으며, 미리 생성된 서명의 유효성을 사후에 검증하는 방식이다. 탈퇴 목록을 이전 것으로 잘못 참조하거나, 확인하는 과정을 생략한다면 탈퇴 사용자가 생성한 증명 값이 여전히 유효한 것으로 인식되므로 이를 악용할 수 있다. 이상적인 해결책은 사용자가 탈퇴한 후 증명 값을 원천적으로 생성하지 못하는 위조 불가능성을 제공하는 것이다.Another technical problem that the present invention seeks to achieve is to provide an anonymous credential authentication technique that satisfies ideal unforgeability. Existing anonymous credential technologies cannot prevent users from generating identity proof values even after they withdraw, and they verify the validity of pre-generated signatures afterward. If the withdrawal list is incorrectly referenced as a previous one or the verification process is omitted, the proof values generated by the withdrawn users are still recognized as valid, which can be exploited. An ideal solution is to provide unforgeability that prevents users from generating proof values after they withdraw.

또한, 본 발명이 이루고자 하는 또 다른 기술적인 과제는 비밀키의 크기를 줄여 높은 효율성을 갖는 익명 크리덴셜 인증 기법을 제공하는 것이다. 익명 크리덴셜 인증 기술에서 사용자 개인은 일반적으로 리소스가 제한된 모바일 기기와 같은 소형 디바이스를 활용하여 익명 크리덴셜을 생성하므로 키 크기를 줄여 효율성을 높이는 것이 중요하다. 더불어, 실생활에서 도시화 현상으로 인해 발생하는 다양한 문제들의 대안으로 스마트 시티가 부각되고 있는데, 일반적으로 스마트 시티를 구성하는 IoT(Internet of Things) 장비, 각종 센서 등의 디바이스 또한 물리적으로 제한된 리소스 환경에서 구동되므로 익명 크리덴셜을 생성하는 데에 필요한 비밀키의 크기를 줄여 효율성을 높이는 것은 반드시 개선되어야 할 중요한 과제이다.In addition, another technical problem to be achieved by the present invention is to provide an anonymous credential authentication technique with high efficiency by reducing the size of a secret key. In anonymous credential authentication technology, since individual users generally generate anonymous credentials by utilizing small devices such as mobile devices with limited resources, it is important to increase efficiency by reducing the key size. In addition, smart cities are emerging as an alternative to various problems occurring due to urbanization in real life, and devices such as IoT (Internet of Things) equipment and various sensors that constitute smart cities are generally operated in a physically limited resource environment, so it is an important task that must be improved to increase efficiency by reducing the size of a secret key required to generate anonymous credentials.

본 발명의 일 실시예에 따른 익명 크리덴셜 인증 시스템은 CS(Complete Subtree) 기법을 이용하여 시스템 공개키와 마스터 비밀키를 생성하는 크리덴셜 발급 서버, 상기 시스템 공개키를 이용하여 사용자 공개키와 사용자 비밀키를 생성하는 사용자 기기, 및 상기 사용자 기기로부터 수신된 익명 크리덴셜 서명을 검증하는 검증 서버를 포함하고, 상기 크리덴셜 발급 서버와 상기 사용자 기기는 크리덴셜 발급 알고리즘을 수행하여 크리덴셜을 발급하고, 상기 크리덴셜 발급 서버는 탈퇴한 사용자 목록에 기초한 정보를 생성하여 배포하고, 상기 검증 서버는 상기 탈퇴한 사용자 목록에 기초한 정보를 이용하여 상기 익명 크리덴셜 서명을 검증한다.An anonymous credential authentication system according to one embodiment of the present invention includes a credential issuing server which generates a system public key and a master private key using a CS (Complete Subtree) technique, a user device which generates a user public key and a user private key using the system public key, and a verification server which verifies an anonymous credential signature received from the user device, wherein the credential issuing server and the user device perform a credential issuing algorithm to issue a credential, the credential issuing server generates and distributes information based on a list of users who have withdrawn, and the verification server verifies the anonymous credential signature using information based on the list of users who have withdrawn.

본 발명의 일 실시예에 따른 크리덴셜 발급 서버는 익명 크리덴셜 인증 시스템에서 사용자 기기에게 크리덴셜을 발급하는 크리덴셜 발급 서버로써, 보안 상수()와 최대 속성 수(m, m은 임의의 자연수)를 입력으로 하는 시스템키 생성 알고리즘을 수행하여 시스템 공개키와 마스터 비밀키를 생성하는 키 생성부, 및 상기 사용자 기기에게 상기 크리덴셜을 발급하는 크리덴셜 발급부를 포함하고, 상기 키 생성부는 페어링 파라미터()를 생성하고, 암호학적 해쉬 함수()를 선택하고, CS(Complete Subtree) 기법의 셋업 알고리즘()을 이용하여 최대 사용자 수(, n은 임의의 자연수)에 대응하는 바이너리 트리(BT)를 생성하고, 임의의 를 생성하여 , , , , , 를 계산하고, 임의의 를 생성하여 을 계산하여, 상기 마스터 비밀키(와 상기 시스템 공개키()를 생성한다.A credential issuance server according to one embodiment of the present invention is a credential issuance server that issues a credential to a user device in an anonymous credential authentication system, and includes a security constant ( ) and a maximum number of attributes (m, m is an arbitrary natural number) as inputs to generate a system public key and a master private key, and a credential issuing unit that issues the credential to the user device, wherein the key generating unit includes a pairing parameter ( ) and generate a cryptographic hash function ( ) and select the setup algorithm of the CS (Complete Subtree) technique ( ) to set the maximum number of users ( , n is an arbitrary natural number) and generates a binary tree (BT) corresponding to an arbitrary By creating and , , , , , Compute and random By creating class By calculating the master secret key ( and the above system public key ( ) is created.

본 발명의 일 실시예에 따른 익명 크리덴셜 인증 방법은 크리덴셜 발급 서버, 사용자 기기, 및 검증 서버를 포함하는 익명 크리덴셜 인증 시스템 상에서 수행되고, CS(Complete Subtree) 기법을 이용하여, 상기 크리덴셜 발급 서버가 시스템 공개키와 마스터 비밀키를 생성하는 단계, 상기 사용자 기기가 상기 시스템 공개키를 이용하여 사용자 공개키와 사용자 비밀키를 생성하는 단계, 상기 크리덴셜 발급 서버가 상기 사용자 기기에게 크리덴셜을 발급하는 단계, 상기 크리덴셜 발급 서버가 탈퇴한 사용자 목록에 기초한 정보를 생성하여 배포하는 단계, 상기 사용자 기기가 익명 크리덴셜 서명을 생성하고 상기 익명 크리덴셜 서명을 상기 검증 서버로 송신하는 단계, 및 상기 검증 서버가 상기 익명 크리덴셜 서명을 검증하는 단계를 포함한다.According to one embodiment of the present invention, an anonymous credential authentication method is performed on an anonymous credential authentication system including a credential issuing server, a user device, and a verification server, and includes: a step in which the credential issuing server generates a system public key and a master private key using a CS (Complete Subtree) technique; a step in which the user device generates a user public key and a user private key using the system public key; a step in which the credential issuing server issues a credential to the user device; a step in which the credential issuing server generates and distributes information based on a list of users who have withdrawn; a step in which the user device generates an anonymous credential signature and transmits the anonymous credential signature to the verification server; and a step in which the verification server verifies the anonymous credential signature.

본 발명의 일 실시예에 따른, 크리덴셜 발급 서버가 사용자 기기에게 크리덴셜을 발급하는 방법은 보안 상수()와 최대 속성 수(m, m은 임의의 자연수)를 입력으로 하는 시스템키 생성 알고리즘을 수행하여 시스템 공개키와 마스터 비밀키를 생성하는 단계, 및 상기 사용자 기기에게 상기 크리덴셜을 발급하는 단계를 포함하고, 상기 시스템 공개키와 마스터 비밀키를 생성하는 단계는, 페어링 파라미터()를 생성하는 단계, 암호학적 해쉬 함수()를 선택하는 단계, CS(Complete Subtree) 기법의 셋업 알고리즘(CS.Setup(N))을 이용하여 최대 사용자 수(, n은 임의의 자연수)에 대응하는 바이너리 트리(BT)를 생성하는 단계, 임의의 를 생성하여 , , , , , 를 계산하는 단계, 임의의 를 생성하여 을 계산하는 단계, 및 상기 마스터 비밀키(와 상기 시스템 공개키()를 설정하는 단계를 포함한다.According to one embodiment of the present invention, a method for issuing a credential to a user device by a credential issuing server comprises: ) and a maximum number of attributes (m, m is an arbitrary natural number) as inputs to generate a system public key and a master private key, and a step of issuing the credential to the user device, wherein the step of generating the system public key and the master private key comprises a step of generating a pairing parameter ( ) generating a cryptographic hash function ( ) is selected, and the maximum number of users ( is determined by using the setup algorithm (CS.Setup(N)) of the CS (Complete Subtree) technique. , n is an arbitrary natural number) to generate a binary tree (BT), By creating and , , , , , Steps to calculate, arbitrary By creating class Step of calculating the master secret key ( and the above system public key ( ) includes a step of setting.

본 발명의 실시예에 따른 익명 크리덴셜 인증 장치 및 방법에 의할 경우, 효율적인 사용자 탈퇴 기능을 제공할 수 있다.An anonymous credential authentication device and method according to an embodiment of the present invention can provide an efficient user withdrawal function.

또한, 탈퇴한 사용자가 증명 값을 원천적으로 생성하지 못하게 함으로써 위조 불가능성을 제공할 수 있다.Additionally, it can provide unforgeability by preventing a user who has withdrawn from generating proof values in the first place.

또한, 사용되는 비밀키의 크기를 줄임으로써, 리소스가 부족한 모바일 장치 등에서도 효율적으로 익명 크리덴셜 인증을 수행할 수 있다.Additionally, by reducing the size of the secret key used, anonymous credential authentication can be performed efficiently even on resource-poor mobile devices.

본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 CS 기법에서 이용되는 바이너리 트리를 설명하기 위한 도면이다.
도 2는 CS 기법의 할당 알고리즘에서 도출되는 개인 집합과 커버 집합을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 익명 크리덴셜 인증 시스템을 도시한다.
도 4는 도 3에 도시된 크리덴셜 발급 서버의 기능 블럭도이다.
도 5는 도 3에 도시된 익명 크리덴셜 인증 시스템 상에서 수행되는 익명 크리덴셜 인증 방법을 설명하기 위한 흐름도이다.
In order to more fully understand the drawings cited in the detailed description of the present invention, a detailed description of each drawing is provided.
Figure 1 is a diagram explaining a binary tree used in CS techniques.
Figure 2 is a diagram for explaining the individual set and cover set derived from the allocation algorithm of the CS technique.
FIG. 3 illustrates an anonymous credential authentication system according to one embodiment of the present invention.
Figure 4 is a functional block diagram of the credential issuance server illustrated in Figure 3.
FIG. 5 is a flowchart for explaining an anonymous credential authentication method performed on the anonymous credential authentication system illustrated in FIG. 3.

본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.Specific structural or functional descriptions of embodiments according to the concept of the present invention disclosed in this specification are merely exemplified for the purpose of explaining embodiments according to the concept of the present invention, and embodiments according to the concept of the present invention can be implemented in various forms and are not limited to the embodiments described in this specification.

본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.Since embodiments according to the concept of the present invention can have various changes and can have various forms, the embodiments are illustrated in the drawings and described in detail in this specification. However, this is not intended to limit the embodiments according to the concept of the present invention to specific disclosed forms, but includes all modifications, equivalents, or substitutes included in the spirit and technical scope of the present invention.

제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1 구성 요소는 제2 구성 요소로 명명될 수 있고 유사하게 제2 구성 요소는 제1 구성 요소로도 명명될 수 있다.The terms first or second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are only intended to distinguish one component from another, for example, without departing from the scope of the invention, a first component may be referred to as a second component, and similarly, a second component may also be referred to as a first component.

어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.When it is said that a component is "connected" or "connected" to another component, it should be understood that it may be directly connected or connected to that other component, but that there may be other components in between. On the other hand, when it is said that a component is "directly connected" or "directly connected" to another component, it should be understood that there are no other components in between. Other expressions that describe the relationship between components, such as "between" and "directly between" or "adjacent to" and "directly adjacent to", should be interpreted similarly.

본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is only used to describe particular embodiments and is not intended to be limiting of the present invention. The singular expression includes the plural expression unless the context clearly indicates otherwise. It should be understood that, as used herein, the terms "comprises" or "has" and the like are intended to specify the presence of a feature, number, step, operation, component, part, or combination thereof described in the present specification, but do not exclude in advance the possibility of the presence or addition of one or more other features, numbers, steps, operations, components, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms defined in commonly used dictionaries, such as those defined in common use dictionaries, should be interpreted as having a meaning consistent with the meaning they have in the context of the relevant art, and will not be interpreted in an idealized or overly formal sense unless explicitly defined herein.

이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시예들을 상세히 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings attached to this specification. However, the scope of the patent application is not limited or restricted by these embodiments. The same reference numerals presented in each drawing represent the same components.

우선, 본 발명에서 이용되는 배경 지식을 기술한다.First, background knowledge used in the present invention is described.

[페어링 함수][Pairing function]

페어링 (겹선형) 함수 란 위수가 인 대수적 순환 그룹 , 의 임의의 원소 에 대해서, 겹선형 성질 을 제공하는 함수를 의미한다. 이러한 겹선형 성질을 이용하여 를 만족한다.Pairing (bilinear) function The orchid is Algebraic cyclic group of , Any element of About, bilinear property It means a function that provides. By using this bilinear property, Satisfies .

페어링 함수는 사용하는 , 의 관계에 따라 Type 1, Type 2, Type 3로 구분할 수 있으며, 이 중 Type-3 비대칭 페어링 함수는 이면서 인 동형함수가 존재하지 않을 때를 의미한다. 즉, 페어링 함숫값을 얻기 위해 반드시 는 정해진 위치에 입력하여야 한다.The pairing function is used , Depending on the relationship, they can be classified into Type 1, Type 2, and Type 3, and among these, the Type-3 asymmetric pairing function is While This means that when there is no homomorphic function, i.e., in order to obtain the pairing function value, must be entered in the specified location.

[CS(Complete Subtree) 기법][CS(Complete Subtree) Technique]

CS 기법은 트리 기반 사용자 탈퇴 방법이며 브로드캐스트 암호 설계를 위해 제시된 방법이다(Dalit Naor, Moni Naor, Jeffery Lotspiech: Revocation and Tracing Schemes for Stateless Receivers. CRYPTO 2001).The CS technique is a tree-based user revocation scheme and is a method proposed for designing broadcast ciphers (Dalit Naor, Moni Naor, Jeffery Lotspiech: Revocation and Tracing Schemes for Stateless Receivers. CRYPTO 2001).

CS 기법은 잎 노드(leaf node)의 수가 인 바이너리 트리(binary tree) 를 사용한다. 참고로, N=23인 경우의 바이너리 트리는 도 1에 도시되어 있다. 바이너리 트리에서 잎 노드를 제외한 루트 노드(root node)와 중간 노드들 각각은 2개의 자식 노드를 가진다. 바이너리 트리에 포함된 모든 노드, 즉 총 개의 노드를 식별자 를 이용하여 로 표기할 수 있다. 또한, 는 보통 루트 노드를 1로 시작하여 왼쪽에서 오른쪽, 위에서 아래 방향으로 차례대로 할당된다. 이러한 규칙을 통해 잎 노드는 식별자 를 이용하여 나타낼 수 있다.The CS technique has a number of leaf nodes. In binary tree For reference, the binary tree for the case of N = 2 3 is illustrated in Figure 1. In the binary tree, the root node and each of the intermediate nodes, excluding the leaf nodes, have two child nodes. All nodes included in the binary tree, i.e., the total The node identifier of the dog By using can be expressed as . Also, are usually assigned in order from left to right and top to bottom, starting with the root node as 1. Through this rule, leaf nodes are assigned identifiers can be expressed using .

CS 기법은 4개의 알고리즘(CS.Setup, CS.Assign, CS.Cover, CS.Match)을 포함하며, 각 알고리즘에 대한 설명은 다음과 같다. 단, CS 기법에 대한 상세한 설명은 생략하기로 하고, 구체적인 내용에 관하여는 Kwangsu Lee 등의 논문(Kwangsu Lee, Woo Kwon Koo, Dong Hoon Lee, and Jong Hwan Park. Public-key revocation and tracing schemes with subset difference methods revisited. In Miroslaw Kutylowski and Jaideep Vaidya, editors, ESORICS 2014, Part II)과 Dalit Naor 등의 논문(Dalit Naor, Moni Naor, Jeffery Lotspiech: Revocation and Tracing Schemes for Stateless Receivers. CRYPTO 2001) 등이 참조될 수 있다.The CS technique includes four algorithms (CS.Setup, CS.Assign, CS.Cover, CS.Match), and the description of each algorithm is as follows. However, a detailed description of the CS technique will be omitted, and for specific contents, reference can be made to the paper by Kwangsu Lee et al. (Kwangsu Lee, Woo Kwon Koo, Dong Hoon Lee, and Jong Hwan Park. Public-key revocation and tracing schemes with subset difference methods revisited. In Miroslaw Kutylowski and Jaideep Vaidya, editors, ESORICS 2014, Part II) and the paper by Dalit Naor et al. (Dalit Naor, Moni Naor, Jeffery Lotspiech: Revocation and Tracing Schemes for Stateless Receivers. CRYPTO 2001).

- (CS 기법의 셋업 알고리즘). 사용자 수 을 입력받아 잎 노드의 수가 인 바이너리 트리 를 생성한다.- (Setup algorithm of CS technique). Number of users The number of leaf nodes is input. In binary tree Creates .

- (CS 기법의 할당 알고리즘). 사용자 를 잎 노드 에 할당한다. 사용자의 식별자 는 노드의 식별자와 같은 범위 에 있음을 가정한다. 만약, 사용자 명의 식별자를 일반 집합 에서 선택한다면 일대일 함수 를 통해 가정을 만족할 수 있다. 임의의 에 대해 를 루트 노드로 하는 서브트리 의 모든 잎 노드로 구성된 집합이라 하고, 의 루트 노드 로부터 잎 노드 까지의 경로로 정의하고, 집합 로 출력한다. 예시적으로, 에 대한 는 도 2에 도시되어 있다. 여기서, 는 개인 집합(private set)이나 경로 집합 등으로 명명될 수 있다.- (Allocation algorithm of CS technique). User to the leaf node Assigns to the user's identifier is the same range as the node identifier Assuming that the user is in A generic set of identifiers One-to-one function if selected from can satisfy the assumption through arbitrary About cast Subtree with root node Let be a set consisting of all leaf nodes, second The root node of From leaf node Defined as a path to , and a set second It outputs as follows. For example, for is illustrated in Fig. 2. Here, can be named as a private set or a path set.

- (CS 기법의 커버 알고리즘). 탈퇴 사용자 목록 RL에 대한 커버 집합 를 할당한다. 여기서, 를 구성하는 모든 잎 노드들은 탈퇴하지 않은 사용자의 노드들을 포함하며 의 원소 들은 서로 교집합이 없는 서로소 집합이다. 도 2에는 탈퇴한 에 대한 커버 집합 가 도시되어 있다.- (Cover algorithm of CS technique). Cover set for the list of withdrawn users RL is allocated. Here, All leaf nodes that make up the node include nodes of users who have not withdrawn. Element of are disjoint sets that do not intersect with each other. In Fig. 2, the withdrawn A set of covers for is depicted.

- (CS 기법의 매치 알고리즘). 의 공통 원소, 즉 (1) 와 (2) 를 동시에 만족하는 가 존재하면 를 출력하고, 모든 원소에 대해 조건을 만족하지 않으면 를 출력한다.- (Match algorithm of CS technique). and The common element of , i.e. (1) Wow (2) Satisfying both at the same time If exists Outputs , and if the condition is not satisfied for all elements, Prints out .

이하에서는 본 명세서에서 사용하는 표기와 알고리즘에 대해 설명한다.Below we describe the notations and algorithms used in this specification.

- : 문자열 x와 y의 연결(예, x=010이고 y=110이면 x∥y=010110)- : Concatenation of strings x and y (e.g., if x=010 and y=110, then x∥y=010110)

- : 집합 - : set

- : 암호학적 해쉬 함수. 임의의 문자열을 입력받아 의 한 원소를 출력- : A cryptographic hash function. It takes an arbitrary string as input. Output one element of

- : 보안 상수. 값이 클수록 높은 보안 등급을 제공- : Security constant. A higher value provides a higher level of security.

- : 사용자를 나타내는 속성. 해쉬 함수를 이용하여 값으로 할당하는 것을 가정 (예, 성별속성: "gender.att=men"→ H("gender.att=men")=t)- : An attribute representing the user. Using a hash function. Assuming assignment by value (e.g. gender attribute: "gender.att=men" → H ("gender.att=men")=t)

- : 속성 집합 - : set of properties

- : 의 속성에 대한 메타 데이터의 인덱스 집합. 메타 데이터마다 고유의 인덱스가 할당 됨. 예를 들어, 사용자를 {홍길동, 남자, 21세}로 나타낸다면 각 속성을 나타내는 메타 데이터는 {Name, Gender, Age}임. 메타 데이터와 인덱스를 다음과 같이 Name → 1, Gender → 2, Age → 3로 할당한다면, 이고 이 됨- : A set of indexes of metadata for the properties of a. Each metadata is assigned a unique index. For example, if a user is represented as {Hong Gil-dong, male, 21 years old}, the metadata representing each property is {Name, Gender, Age}. If metadata and indexes are assigned as follows: Name → 1, Gender → 2, Age → 3, And This is it

- : 집합 X와 집합 Y의 차집합 (예, X={1,2,3}이고 Y={2}이면 X\Y={1,3})- : The difference between sets X and Y (e.g., if X={1,2,3} and Y={2}, then X\Y={1,3})

- : 크리덴셜 발급 서버의 시스템 공개키/마스터 비밀키- : System public key/master private key of the credential issuing server

- : 사용자의 공개키/비밀키- : User's public/private key

- : 크리덴셜- : Credentials

- : 익명 크리덴셜 서명- : Anonymous credential signing

- : 시간(epoch). 특정 기간의 개념- : Time (epoch). The concept of a specific period of time.

- : 시간에 탈퇴한 사용자 목록- : List of users who have left in time

- : 시간에 익명 크리덴셜 서명을 생성하기 위한 탈퇴 목록 기반 정보- : Information based on the opt-out list to generate anonymous credential signatures over time

익명 크리덴셜 시스템을 구성하는 객체는 I(크리덴셜 발급 서버), U(사용자 기기), 및 V(검증 서버)이다. 또한 Ikg(시스템키 발급) 알고리즘, Issue(크리덴셜 발급 요청 및 발급) 알고리즘, Update(탈퇴 목록 기반 정보 생성) 알고리즘, Show(익명 크리덴셜 서명 생성) 알고리즘, Verify(익명 크리덴셜 서명 검증) 알고리즘으로 구성된다. 이 중 Issue 프로토콜은 U가 수행하는 Obtain(크리덴셜 발급 요청) 서브 알고리즘, I가 수행하는 Iss(크리덴셜 발급) 서브 알고리즘으로 구성할 수 있다.The objects that make up the anonymous credential system are I (credential issuance server), U (user device), and V (verification server). In addition, it is composed of the Ikg (system key issuance) algorithm, the Issue (credential issuance request and issuance) algorithm, the Update (information generation based on the withdrawal list) algorithm, the Show (anonymous credential signature generation) algorithm, and the Verify (anonymous credential signature verification) algorithm. Among these, the Issue protocol can be composed of the Obtain (credential issuance request) sub-algorithm performed by U , and the Iss (credential issuance) sub-algorithm performed by I.

각 알고리즘 및 프로토콜에 대한 상세한 설명은 다음과 같다.A detailed description of each algorithm and protocol follows.

- . 크리덴셜 발급 서버(I)가 실행하는 알고리즘(시스템 키 발급 알고리즘, 시스템 키 생성 알고리즘 등으로 명명될 수 있음)으로, 보안 상수 와 최대 속성 수 m(m은 임의의 자연수)에 대해서 공개키(시스템 공개키) ipk와 마스터 비밀키 isk를 다음과 같이 생성한다.- . The algorithm (which may be named as system key issuance algorithm, system key generation algorithm, etc.) executed by the credential issuance server ( I ) is a security constant. For the maximum number of attributes m (m is an arbitrary natural number), the public key (system public key) ipk and the master secret key isk are generated as follows.

1. Type-3 페어링 파라미터 를 생성한다. 다만, 본 발명에서 다른 타입의 페어링 함수나 페어링 파라미터의 이용을 배제하는 것은 아니며, 실시예에 따라 다른 타입의 페어링 함수나 페어링 파라미터가 이용될 수도 있다.1. Type-3 pairing parameters However, the present invention does not exclude the use of other types of pairing functions or pairing parameters, and other types of pairing functions or pairing parameters may be used depending on the embodiment.

2. 암호학적 해쉬 함수(즉, 임의의 해쉬 함수) 를 선택한다.2. Cryptographic hash function (i.e. any hash function) Select .

3. 최대 사용자 수 (n은 임의의 자연수)에 대하여 CS 기법의 셋업 알고리즘()을 실행하고 그 결과로 바이너리 트리 를 얻는다.3. Maximum number of users (n is any natural number) for the CS technique setup algorithm ( ) and the resulting binary tree Get .

4. 임의의 를 생성하여 , , , , , 를 계산한다.4. Any By creating and , , , , , Calculate .

5. 임의의 를 생성하여 을 계산한다.5. Any By creating class Calculate .

6. 로 설정한다. 생성된 시스템 공개키 ipk는 공개될 수 있다(또는 사용자 기기(U) 및/또는 검증 서버(V)로 전송될 수 있다).6. and is set to . The generated system public key ipk can be made public (or transmitted to the user device ( U ) and/or the verification server ( V )).

- . 사용자 기기(U)가 실행하는 알고리즘(사용자 키 발급 알고리즘, 사용자 키 생성 알고리즘 등으로 명명될 수 있음)으로, 사용자의 공개키 upk와 비밀키 usk를 생성하기 위해 아래 과정을 수행한다.- . An algorithm (which may be named a user key issuance algorithm, a user key generation algorithm, etc.) executed by a user device ( U ) performs the following steps to generate the user's public key upk and private key usk.

1. U를 대표할 수 있는 고유한 값 를 선택한다.1. A unique value that can represent U Select .

2. 를 계산한다.2. Calculate .

3. 를 출력한다. 생성된 사용자 공개키 upk는 공개될 수 있다(또는 크리덴셜 서버(I) 및/또는 검증 서버(V)로 전송될 수 있다).3. and The generated user public key upk can be made public (or transmitted to a credential server ( I ) and/or a verification server ( V )).

- . 속성 집합 A를 대표하는 (식별자가 인) 사용자 기기(U)가 크리덴셜을 발급받기 위하여 크리덴셜 발급 서버(I)와 함께 실행하는 프로토콜(알고리즘)이며(크리덴셜 발급 알고리즘으로 명명될 수 있음), 서브 알고리즘으로 Obtain(제1 서브 알고리즘)과 Iss(제2 서브 알고리즘)는 최종 결과로 각각 사용자 기기(U)에 대한 크리덴셜 cre과 결과 메시지 M을 출력한다. 자세한 과정은 다음과 같이 순차적으로 진행된다.- . (identifier) representing a set of attributes A A protocol (algorithm) that a user device ( U ) executes together with a credential issuance server ( I ) to obtain a credential (may be named a credential issuance algorithm), and sub-algorithms Obtain (the first sub-algorithm) and Iss (the second sub-algorithm) output a credential cre and a result message M for the user device ( U ) as final results, respectively. The detailed process is sequentially performed as follows.

1. Obtain : 사용자 기기(U)에 의해 수행되며, 아래 과정을 수행한다.1. Obtain: This is performed by the user device ( U ) and performs the following process.

(1-1). 사용자 기기(U)는 자신의 비밀키 를 알고 있다는 사실을 비대화식 영지식(non-interactive zero-knowledge, NIZK) 프로토콜을 이용하여 증명한다. 영지식 프로토콜의 증명 값은 로 나타낼 수 있으며 아래 과정을 통해 생성한다.(1-1). The user device ( U ) has its own secret key We prove that we know using the non-interactive zero-knowledge (NIZK) protocol. The proof value of the zero-knowledge protocol is It can be expressed as and is generated through the process below.

(1-1-1). usk와 ipk를 이용하여 를 계산한다.(1-1-1). Using usk and ipk Calculate .

(1-1-2). 임의의 를 선택한다.(1-1-2). Any Select .

(1-1-3). 암호학적 해쉬 함수 H를 이용하여 을 계산한다.(1-1-3). Using the cryptographic hash function H. Calculate .

(1-1-4). 를 계산한다.(1-1-4). Calculate .

(1-1-5). 증명 값을 로 설정한다.(1-1-5). Proof value Set to .

(1-2). 생성한 증명 값 과 함께 공개키 , 속성 집합 를 함께 전송한다.(1-2). Generated proof value Public key with , a set of properties Send together.

요컨대, Obtain 알고리즘은 비밀키 를 알고 있음을 증명하기 위한 영지식 프로토콜(또는 영지식 증명)의 증명 값을 생성하는 알고리즘을 의미할 수 있다.In short, the Obtain algorithm is a secret key It may mean an algorithm that generates a proof value for a zero-knowledge protocol (or zero-knowledge proof) to prove that one knows something.

2. Iss : 크리덴셜 발급 서버(I)에 의해 수행되며, 아래 과정을 수행한다.2. Iss: It is performed by the credential issuance server ( I ) and performs the following process.

(2-1). 전송받은 가 시스템 내 고유한 값인지 확인한다. 다른 크리덴셜 발급 세션에서 가 이미 사용되었다면 (또는 사용 중이라면) 을 출력하고 프로토콜을 중단한다.(2-1). Received Verify that it is a unique value within the system. In other credential issuance sessions. If has already been used (or is in use) Prints and aborts the protocol.

(2-2). 가 만족하는지 확인하여 의 유효성을 검증한다. 등식이 성립하면 계속 진행하고, 성립하지 않으면 을 출력하고 프로토콜을 중단한다.(2-2). Make sure you are satisfied Verify the validity of the equation. If the equation holds, continue, if it does not hold, Prints and aborts the protocol.

(2-3). CS 기법의 할당 알고리즘()을 실행하여 경로 집합 을 얻는다.(2-3). Allocation algorithm of CS technique( ) to run the path set Get .

(2-4). 각각의 마다 다음을 수행한다.(2-4). Each Each time, do the following:

(2-4-1). 다항식 을 내부 저장소에 저장한다. 여기서, 에서 임의로 선택되므로 에 속한 임의의 노드 는 고유한 를 가진다.(2-4-1). Polynomial Save it to internal storage. Here, Is is randomly selected from Any node belonging to is unique has

(2-4-2). 의 인덱스 집합을 라고 하였을 때, 임의로 선택한 값 과 다항식을 이용하여 을 계산한다.(2-4-2). A set of indices of When said, a randomly selected value and using polynomials and Calculate .

(2-5). 결과 메시지 를 전송한다. 결과 메시지 M은 크리덴셜에 포함된 정보의 적어도 일부를 포함하는 메시지로, 실시예에 따라 크리덴셜 또는 제1 크리덴셜로 명명될 수도 있다.(2-5). Result message The resulting message M is a message containing at least part of the information contained in the credential, which may be named credential or first credential, depending on the embodiment.

3. Obtain : 사용자 기기(U)에 의해 수행되며, 아래 과정을 수행한다.3. Obtain: This is performed by the user device ( U ) and performs the following process.

(3-1). 를 계산한다.(3-1). Calculate .

(3-2). 크리덴셜 을 저장한다.(3-2). Credentials Save it.

(3-3). (optional) 만약 서명 생성 과정에서 연산량이 늘어나도 저장량을 줄이는 것이 더 중요하다면 (3-1)을 생략할 수 있다. 이때의 크리덴셜 이다. 즉, 크리덴셜 발급 서버(I)로부터 수신된 메시지 M이 크리덴셜이 될 수 있다.(3-3). (optional) If it is more important to reduce the storage volume even if the computational amount increases during the signature generation process, (3-1) can be omitted. Credentials at this time That is, the message M received from the credential issuing server ( I ) can become a credential.

- . 크리덴셜 발급 서버(I)는 시간에 탈퇴한 사용자 목록 을 이용하여 다음 시간 에 대한 정보 를 다음과 같이 생성한다. 이 알고리즘은 업데이트 알고리즘 등으로 명명될 수 있다.- . The credential issuing server ( I ) List of users who have left in time Next time using Information about is generated as follows. This algorithm can be named as an update algorithm, etc.

1. CS 기법의 커버 알고리즘()을 실행하여 커버 집합 을 얻는다.1. Cover algorithm of CS technique ( ) to run the cover set Get .

2. 커버 집합의 원소 에 대하여 다음을 수행한다.2. Elements of the cover set Do the following about:

(2-1). 이전에 에 속한 노드 에 대해 정의한 를 불러온다.(2-1). Previously Nodes belonging to Defined for Calls up.

(2-2). 을 만족하는 임의의 을 선택한다.(2-2). Any arbitrary Select .

(2-3). 임의로 를 선택하여 를 계산한다.(2-3). Arbitrarily By selecting and Calculate .

(2-4). 를 배포(또는 검증 서버(V)로 전송)한다.(2-4). distributes (or sends to the verification server ( V )).

- . 사용자 기기(U)에 의해 수행되는 익명 크리덴셜 서명 값 생성 알고리즘으로, 시간에 사용자 기기(U)는 저장하고 있는 를 이용하여 공개하고 싶은 속성들로 이루어진 부분 속성 집합 에 대한 익명 크리덴셜 서명 값 를 다음과 같이 생성한다.- . An anonymous credential signature value generation algorithm performed by the user device ( U ). At the time, the user device ( U ) is storing A partial set of properties that you want to make public using Anonymous credential signature value for is created as follows:

1. CS 기법의 매치 알고리즘()을 수행하여 이 나오면 서명을 만들 수 없으므로 중단한다. 이는 이미 탈퇴한 사용자이기 때문이다. 를 만족하는 정당한 를 얻을 수 있으면(즉, 탈퇴하지 않은 사용자라면) 다음 단계로 넘어간다.1. Matching algorithm of CS technique ( ) by performing If this appears, you will be stopped from creating a signature. This is because the user has already left. A legitimate one that satisfies If you can get it (i.e., if you are a non-deleted user), you can move on to the next step.

2. 집합 에 대한 에서 찾는다.2. Set for class cast Find it in .

3. 에 대한 에서 찾는다.3. for and cast Find it in .

4. 를 계산한다. 이는 에서 에 대한 함숫값을 보간(interpolation)할 수 있는 라그랑주 계수(Lagrange's coefficient)이다. 즉, 를 만족하는 값이다.4. class It calculates. This is at It is the Lagrange's coefficient that can interpolate the function value for . That is, is a value that satisfies .

5. (공개하고 싶은 속성 집합)에 대한 인덱스 집합을 로 정의하고 A와 B의 차집합 (숨기고 싶은 속성 집합)에 대한 인덱스 집합 을 정의하였을 때, 임의값 을 선택하여 아래 값을 계산한다.5. A set of indices for (the set of properties you want to make public) Defined as the difference between A and B A set of indices for (the set of attributes you want to hide) When defining an arbitrary value Select to calculate the values below.

위의 식에서 이고 이다.In the above equation And am.

6. 고윳값 , 사용한 난수 , 숨기고 싶은 속성들을 모두 알고 있다는 사실을 비대화식 영지식(NIZK) 프로토콜을 이용하여 증명한다. 영지식 프로토콜의 증명 값은 로 나타낼 수 있으며 아래 과정을 통해 생성한다.6. Eigenvalue , random number used , proves that he knows all the properties he wants to hide using the non-interactive zero-knowledge (NIZK) protocol. The proof value of the zero-knowledge protocol is It can be expressed as and is generated through the process below.

(6-1) 앞선 정의에 의하여 이므로 이를 이용하여 를 계산한다.(6-1) According to the above definition So, using this Calculate .

(6-2) 임의의 를 선택한다.(6-2) Any Select .

(6-3) 해쉬 함수를 이용하여 를 계산한다.(6-3) Using a hash function Calculate .

(6-4) 를 계산한다.(6-4) Calculate .

(6-5) 증명 값을 로 설정한다.(6-5) Proof value Set to .

7. 익명 크리덴셜 서명 와 함께 공개 속성 집합 B를 출력한다. 여기서 B에 할당된 본래 속성을 함께 공개하는 것을 가정한다.7. Anonymous credential signing Output a set of public properties B together with the assumption that the original properties assigned to B are also public.

- . 검증 서버(V)에 의해 수행되는 검증 알고리즘으로써, 검증 서버(V)는 익명 크리덴셜 서명 을 검증하기 위해 아래 조건을 만족하는지 확인한다.- . A verification algorithm performed by a verification server ( V ), where the verification server ( V ) signs anonymous credentials. To verify, check if the conditions below are satisfied.

1. (6-1)에서처럼 B를 이용하여 를 계산한다.1. Using B as in (6-1) Calculate .

2. 가 유효한지 로 확인한다. 성립하면 다음으로 넘어가고, 그렇지 않으면 중단하고 0을 출력한다.2. Is it valid? Check with . If it is established, move on to the next step, otherwise stop and output 0.

3. 를 이용하여 를 계산한다.3. and By using Calculate .

4. 를 만족하는지 확인한다.4. Check if it satisfies .

5. 위의 모든 과정을 통과하면 1 (검증 성공)을 출력하고, 그렇지 않으면 0 (검증 실패)를 출력한다.5. If all the above processes are passed, output 1 (verification success), otherwise output 0 (verification failure).

도 3은 본 발명의 일 실시예에 따른 익명 크리덴셜 인증 시스템을 도시한다. 익명 크리덴셜 인증 시스템을 설명함에 있어 앞선 기재와 중복되는 내용에 관하여는 그 상세한 기재를 생략하기로 한다.Figure 3 illustrates an anonymous credential authentication system according to one embodiment of the present invention. In describing the anonymous credential authentication system, detailed descriptions of content that overlaps with the previous descriptions will be omitted.

도 3을 참조하면, 익명 크리덴셜 시스템 등으로 명명될 수도 있는 익명 크리덴셜 인증 시스템(10)은 크리덴셜 발급 서버(100), 사용자 기기(200), 및 검증 서버(300)를 포함한다.Referring to FIG. 3, an anonymous credential authentication system (10), which may also be named an anonymous credential system, includes a credential issuing server (100), a user device (200), and a verification server (300).

크리덴셜 발급 서버(100), 사용자 기기(200), 및 검증 서버(300)는 적어도 프로세서 및/또는 메모리를 포함하는 컴퓨팅 장치로 구현될 수 있다. 컴퓨팅 장치는 서버(예컨대, 범용 서버), PC(Personal Computer), 태블릿 PC, 스마트폰, HMD(Head Mounted Device, 두부 장착 디바이스), 노트북(note PC), 스마트 안경(smart glasses), 스마트 와치(smart watch) 등을 포함할 수 있다.The credential issuing server (100), the user device (200), and the verification server (300) may be implemented as a computing device including at least a processor and/or a memory. The computing device may include a server (e.g., a general-purpose server), a PC (Personal Computer), a tablet PC, a smart phone, an HMD (Head Mounted Device), a notebook PC, smart glasses, a smart watch, etc.

크리덴셜 발급 서버(100)는 시스템키 발급 알고리즘을 수행하여 공개키(시스템 공개키) ipk와 마스터 비밀키 isk를 생성하고, 생성된 공개키(시스템 공개키) ipk를 배포(또는 사용자 기기(200) 및/또는 검증 서버(300)로 송신)할 수 있다. 또한, 크리덴셜 발급 서버(100)는 사용자 기기(200)와의 유무선 통신을 통해 크리덴셜 발급 알고리즘의 적어도 일부를 수행함으로써 결과 메시지(또는 크리덴셜)를 생성하고 생성된 결과 메시지를 사용자 기기(200)로 송신할 수 있다. 또한, 크리덴셜 발급 서버(100)는 업데이트 알고리즘을 수행함으로써 탈퇴 목록 기반 정보를 생성하고 생성된 탈퇴 목록 기반 정보를 배포(또는 사용자 기기(200) 및/또는 검증 서버(300)로 송신)할 수 있다.The credential issuing server (100) can generate a public key (system public key) ipk and a master private key isk by performing a system key issuing algorithm, and distribute (or transmit to a user device (200) and/or a verification server (300)) the generated public key (system public key) ipk. In addition, the credential issuing server (100) can generate a result message (or a credential) by performing at least a part of the credential issuing algorithm through wired or wireless communication with the user device (200), and transmit the generated result message to the user device (200). In addition, the credential issuing server (100) can generate withdrawal list-based information by performing an update algorithm, and distribute (or transmit to the user device (200) and/or a verification server (300)) the generated withdrawal list-based information.

사용자 기기(200)는 사용자키 발급 알고리즘을 수행함으로써 공개키(시스템 공개키) ipk로부터 사용자 공개키 upk와 사용자 비밀키 usk를 생성할 수 있다. 또한, 사용자 기기(200)는 크리덴셜 발급 서버(100)와의 유무선 통신을 통해 크리덴셜 발급 알고리즘의 적어도 일부를 수행함으로써 크리덴셜 발급 서버(100)로부터 생성된 결과 메시지(또는 크리덴셜)을 수신할 수 있다. 실시예에 따라, 사용자 기기(200)는 수신된 결과 메시지를 포함하는 크리덴셜을 생성하는 것도 가능하다. 또한, 사용자 기기(200)는 익명 크리덴셜 서명 알고리즘을 수행함으로써 익명 크리덴셜 서명을 생성하고 생성된 익명 크리덴셜 서명을 검증 서버(300)로 송신할 수 있다. 이때, 사용자 기기(200)는 공개 속성 집합을 익명 크리덴셜 서명과 함께 전송할 수도 있다.The user device (200) can generate a user public key upk and a user secret key usk from a public key (system public key) ipk by performing a user key issuance algorithm. In addition, the user device (200) can receive a generated result message (or credential) from the credential issuance server (100) by performing at least a part of the credential issuance algorithm through wired or wireless communication with the credential issuance server (100). According to an embodiment, the user device (200) can also generate a credential including the received result message. In addition, the user device (200) can generate an anonymous credential signature by performing an anonymous credential signing algorithm and transmit the generated anonymous credential signature to the verification server (300). At this time, the user device (200) can also transmit a set of public attributes together with the anonymous credential signature.

검증 서버(300)는 익명 크리덴셜 서명 검증 알고리즘을 수행함으로써 사용자 기기(200)로부터 수신된 익명 크리덴셜 서명을 검증할 수 있다. 여기서, 검증 서버(300)는 검증 동작을 수행할 수 있는 엔티티로써, 검증 동작 이외의 다른 동작의 수행이 제한되는 것은 아니다.The verification server (300) can verify an anonymous credential signature received from a user device (200) by performing an anonymous credential signature verification algorithm. Here, the verification server (300) is an entity that can perform a verification operation, and is not restricted from performing any operation other than the verification operation.

도 4는 도 3에 도시된 크리덴셜 발급 서버의 기능 블럭도이다.Figure 4 is a functional block diagram of the credential issuance server illustrated in Figure 3.

도 3과 도 4를 참조하면, 크리덴셜 발급 서버(100)는 키 생성부(110), 크리덴셜 발급부(120), 및 업데이트부(130) 중 적어도 하나 이상을 포함한다. 실시예에 따라, 크리덴셜 발급 서버(100)는 저장부(140)를 더 포함할 수도 있다.Referring to FIGS. 3 and 4, the credential issuance server (100) includes at least one of a key generation unit (110), a credential issuance unit (120), and an update unit (130). According to an embodiment, the credential issuance server (100) may further include a storage unit (140).

키 생성부(110)는 시스템키 발급 알고리즘을 수행하여 공개키(시스템 공개키) ipk와 마스터 비밀키 isk를 생성하고, 생성된 공개키(시스템 공개키) ipk를 배포(또는 사용자 기기(200) 및/또는 검증 서버(300)로 송신)할 수 있다.The key generation unit (110) can generate a public key (system public key) ipk and a master secret key isk by performing a system key issuance algorithm, and distribute (or transmit to a user device (200) and/or a verification server (300)) the generated public key (system public key) ipk.

크리덴셜 발급부(120)는 사용자 기기(200)와의 유무선 통신을 통해 크리덴셜 발급 알고리즘의 적어도 일부를 수행함으로써 결과 메시지(또는 크리덴셜)를 생성하고 생성된 결과 메시지를 사용자 기기(200)로 송신할 수 있다.The credential issuing unit (120) can generate a result message (or credential) by performing at least a part of the credential issuing algorithm through wired or wireless communication with the user device (200) and transmit the generated result message to the user device (200).

업데이트부(130)는 업데이트 알고리즘을 수행함으로써 탈퇴 목록 기반 정보를 생성하고 생성된 탈퇴 목록 기반 정보를 배포(또는 사용자 기기(200) 및/또는 검증 서버(300)로 송신)할 수 있다.The update unit (130) can generate withdrawal list-based information by performing an update algorithm and distribute (or transmit to a user device (200) and/or a verification server (300)) the generated withdrawal list-based information.

저장부(140)에는 키 생성부(110)에 의한 키 생성 동작 과정에서 이용되는 데이터, 일시적으로 또는 비일시적으로 생성되는 데이터, 크리덴셜 발급부(120)에 의한 크리덴셜 발급 동작 과정에서 이용되는 데이터, 일시적으로 또는 비일시적으로 생성되는 데이터, 및 업데이트부(130)에 의한 업데이트 동작 과정에서 이용되는 데이터, 일시적으로 또는 비일시적으로 생성되는 데이터 등이 저장될 수 있다.The storage unit (140) may store data used in the key generation operation process by the key generation unit (110), data generated temporarily or non-temporarily, data used in the credential issuance operation process by the credential issuance unit (120), data generated temporarily or non-temporarily, and data used in the update operation process by the update unit (130), data generated temporarily or non-temporarily, etc.

도 5는 도 3에 기재된 익명 크리덴셜 인증 시스템 상에서 수행되는 익명 크리덴셜 인증 방법을 설명하기 위한 흐름도이다. 도 5에 도시된 방법을 구성하는 단계들 각각은 크리덴셜 발급 서버(100), 사용자 기기(200), 또는 검증 서버(300)에 의해 수행될 수 있다. 다시 말하면, 각 단계는 크리덴셜 발급 서버(100), 사용자 기기(200), 또는 검증 서버(300)에 포함된 프로세서의 동작으로 이해될 수도 있다.FIG. 5 is a flow chart for explaining an anonymous credential authentication method performed on the anonymous credential authentication system described in FIG. 3. Each of the steps constituting the method illustrated in FIG. 5 may be performed by a credential issuance server (100), a user device (200), or a verification server (300). In other words, each step may be understood as an operation of a processor included in the credential issuance server (100), a user device (200), or a verification server (300).

우선, 크리덴셜 발급 서버(100)는 소정의 알고리즘을 수행함으로써 공개키(시스템 공개키)와 마스터 비밀키를 생성할 수 있다(S110). 생성된 시스템 공개키는 공개(배포, 또는 전송)될 수 있다.First, the credential issuing server (100) can generate a public key (system public key) and a master secret key by performing a predetermined algorithm (S110). The generated system public key can be made public (distributed or transmitted).

사용자 기기(200)는 수신된(또는 공개된) 공개키(시스템 공개키)를 이용하여 사용자 공개키와 사용자 비밀키를 생성할 수 있다(S120). 생성된 사용자 공개키는 공개(배포, 또는 전송)될 수 있다.The user device (200) can generate a user public key and a user secret key using the received (or disclosed) public key (system public key) (S120). The generated user public key can be disclosed (distributed or transmitted).

S130 단계에서, 크리덴셜 발급 서버(100)와 사용자 기기(200)는 소정의 데이터(또는 메시지)를 주고받으면서 크리덴셜 발급 알고리즘을 수행함으로써 크리덴셜 발급 동작을 수행할 수 있다.At step S130, the credential issuance server (100) and the user device (200) can perform a credential issuance operation by performing a credential issuance algorithm while exchanging predetermined data (or messages).

또한, 크리덴셜 발급 서버(100)는 탈퇴한 사용자가 크리덴셜 서명을 생성할 수 없도록 탈퇴 목록 기반 정보를 생성하고 생성된 탈퇴 목록 기반 정보를 공개(배포, 또는 전송)할 수 있다(S140).In addition, the credential issuance server (100) can generate withdrawal list-based information so that a user who has withdrawn cannot generate a credential signature and can disclose (distribute or transmit) the generated withdrawal list-based information (S140).

다음으로, 사용자 기기(200)는 익명 크리덴셜 서명을 생성하고, 생성된 익명 크리덴셜 서명과 공개 속성 집합을 검증 서버(300)로 송신할 수 있다(S150).Next, the user device (200) can generate an anonymous credential signature and transmit the generated anonymous credential signature and a set of public attributes to the verification server (300) (S150).

익명 크리덴셜 서명을 수신한 검증 서버(300)는 익명 크리덴셜 검증 알고리즘을 수행함으로써 사용자 기기(200)로부서 수신된 익명 크리덴셜에 대한 검증 동작을 수행할 수 있다(S160).The verification server (300) that receives the anonymous credential signature can perform a verification operation on the anonymous credential received from the user device (200) by performing an anonymous credential verification algorithm (S160).

이상에서 설명된 장치는 하드웨어 구성 요소, 소프트웨어 구성 요소, 및/또는 하드웨어 구성 요소 및 소프트웨어 구성 요소의 집합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성 요소는, 예를 들어, 프로세서, 콘트롤러, ALU(Arithmetic Logic Unit), 디지털 신호 프로세서(Digital Signal Processor), 마이크로컴퓨터, FPA(Field Programmable array), PLU(Programmable Logic Unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(Operation System, OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술 분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(Processing Element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(Parallel Processor)와 같은, 다른 처리 구성(Processing Configuration)도 가능하다.The devices described above may be implemented as hardware components, software components, and/or a collection of hardware components and software components. For example, the devices and components described in the embodiments may be implemented using one or more general-purpose computers or special-purpose computers, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA), a programmable logic unit (PLU), a microprocessor, or any other device capable of executing instructions and responding. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. In addition, the processing device may access, store, manipulate, process, and generate data in response to the execution of the software. For ease of understanding, the processing device is sometimes described as being used alone, but those skilled in the art will appreciate that the processing device may include multiple processing elements and/or multiple types of processing elements. For example, the processing unit may include multiple processors, or one processor and one controller. Other processing configurations, such as a parallel processor, are also possible.

소프트웨어는 컴퓨터 프로그램(Computer Program), 코드(Code), 명령(Instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(Collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성 요소(Component), 물리적 장치, 가상 장치(Virtual Equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(Signal Wave)에 영구적으로, 또는 일시적으로 구체화(Embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of these, and may configure a processing device to perform a desired operation or may independently or collectively command the processing device. The software and/or data may be permanently or temporarily embodied in any type of machine, component, physical device, virtual equipment, computer storage medium or device, or transmitted signal wave to be interpreted by the processing device or to provide instructions or data to the processing device. The software may be distributed on network-connected computer systems and stored or executed in a distributed manner. The software and data may be stored in one or more computer-readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM, DVD와 같은 광기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-optical Media), 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program commands that can be executed through various computer means and recorded on a computer-readable medium. The computer-readable medium may include program commands, data files, data structures, etc., alone or in combination. The program commands recorded on the medium may be those specially designed and configured for the embodiment or may be those known to and usable by those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, and hardware devices specially configured to store and execute program commands such as ROMs, RAMs, and flash memories. Examples of the program commands include not only machine language codes generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter, etc. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiment, and vice versa.

본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성 요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성 요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.Although the present invention has been described with reference to the embodiments illustrated in the drawings, this is merely exemplary, and those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom. For example, appropriate results can be achieved even if the described techniques are performed in a different order than the described method, and/or components of the described systems, structures, devices, circuits, etc. are combined or combined in a different form than the described method, or are replaced or substituted by other components or equivalents. Accordingly, the true technical protection scope of the present invention should be defined by the technical spirit of the appended claims.

10 : 익명 크리덴셜 인증 시스템
100 : 크리덴셜 발급 서버
110 : 키 생성부
120 : 크리덴셜 발급부
130 : 업데이트부
140 : 저장부
200 : 사용자 기기
300 : 검증 서버
10: Anonymous Credential Authentication System
100: Credential issuing server
110 : Key generation section
120: Credential Issuance Department
130 : Update Department
140 : Storage
200 : User Device
300 : Verification Server

Claims (15)

CS(Complete Subtree) 기법을 이용하여 시스템 공개키와 마스터 비밀키를 생성하는 크리덴셜 발급 서버;
상기 시스템 공개키를 이용하여 사용자 공개키와 사용자 비밀키를 생성하는 사용자 기기; 및
상기 사용자 기기로부터 수신된 익명 크리덴셜 서명을 검증하는 검증 서버를 포함하고,
상기 크리덴셜 발급 서버와 상기 사용자 기기는 크리덴셜 발급 알고리즘을 수행하여 크리덴셜을 발급하고,
상기 크리덴셜 발급 서버는 탈퇴한 사용자 목록에 기초한 정보를 생성하여 배포하고,
상기 검증 서버는 상기 탈퇴한 사용자 목록에 기초한 정보를 이용하여 상기 익명 크리덴셜 서명을 검증하고,
상기 크리덴셜 발급 서버는 보안 상수()와 최대 속성 수(m, m은 임의의 자연수)를 입력으로 하는 시스템키 생성 알고리즘을 수행하여 상기 시스템 공개키와 상기 마스터 비밀키를 생성하는,
익명 크리덴셜 인증 시스템.
A credential issuing server that generates a system public key and a master private key using the CS (Complete Subtree) technique;
A user device that generates a user public key and a user private key using the above system public key; and
Includes a verification server that verifies an anonymous credential signature received from the user device,
The above credential issuing server and the above user device issue a credential by performing a credential issuing algorithm.
The above credential issuing server generates and distributes information based on the list of users who have withdrawn.
The above verification server verifies the anonymous credential signature using information based on the list of withdrawn users,
The above credential issuing server is a security constant ( ) and the maximum number of attributes (m, m is an arbitrary natural number) as inputs to generate the system public key and the master secret key.
Anonymous credential authentication system.
삭제delete 제1항에 있어서,
상기 크리덴셜 발급 서버는,
페어링 파라미터()를 생성하고,
암호학적 해쉬 함수()를 선택하고,
최대 사용자 수(, n은 임의의 자연수)에 대하여 상기 CS 기법의 셋업 알고리즘(CS.Setup(N))을 실행하여 바이너리 트리(BT)를 생성하고,
임의의 를 생성하여 , , , , , 를 계산하고,
임의의 를 생성하여 을 계산하여,
상기 마스터 비밀키(와 상기 시스템 공개키()를 생성하는,
익명 크리덴셜 인증 시스템.
In the first paragraph,
The above credential issuing server is,
Pairing parameters ( ) and create
Cryptographic hash function( ) and select
Maximum number of users ( , n is an arbitrary natural number) to generate a binary tree (BT) by executing the setup algorithm (CS.Setup(N)) of the CS technique,
Any By creating and , , , , , Calculate ,
Any By creating class By calculating,
The above master secret key ( and the above system public key ( ) to create,
Anonymous credential authentication system.
제3항에 있어서,
상기 사용자 기기는,
고유한 값()을 선택하고,
를 계산하여,
상기 사용자 비밀키()와 상기 사용자 공개키()를 생성하는,
익명 크리덴셜 인증 시스템.
In the third paragraph,
The above user device,
Unique values( ) and select
By calculating,
The above user secret key ( ) and the above user public key ( ) to create,
Anonymous credential authentication system.
제4항에 있어서,
상기 사용자 기기는 상기 사용자 비밀키를 알고 있다는 사실을 증명하기 위해 비대화식 영지식 증명(Non-Interactive Zero-Knowledge, NIZK)의 증명 값을 생성하여 상기 크리덴셜 발급 서버로 송신하고,
상기 증명 값을 생성하기 위하여, 상기 사용자 기기는
상기 사용자 비밀키(usk)와 상기 사용자 공개키(ipk)를 이용하여 를 계산하고,
임의의 를 선택하고,
상기 암호학적 해쉬 함수(H)를 이용하여 을 계산하고,
를 계산하여 상기 증명 값()을 생성하고,
상기 사용자 기기는 상기 증명 값(), 상기 사용자 공개키(), 속성 집합( )을 상기 크리덴셜 발급 서버로 전송하는,
익명 크리덴셜 인증 시스템.
In paragraph 4,
The user device generates a proof value of a non-interactive zero-knowledge (NIZK) to prove that it knows the user secret key and sends it to the credential issuing server.
To generate the above proof value, the user device
Using the above user secret key (usk) and the above user public key (ipk), Calculate ,
Any Select ,
Using the above cryptographic hash function ( H), Calculate ,
By calculating the above proof value ( ) and create
The above user device is the proof value ( ), the user's public key ( ), a set of properties ( ) is transmitted to the credential issuing server.
Anonymous credential authentication system.
제5항에 있어서,
상기 크리덴셜 발급 서버는,
상기 증명 값()의 유효성을 검증하고,
CS 기법의 할당 알고리즘(CS.Assign(BT,i))을 실행하여 경로 집합()을 생성하고,
상기 경로 집합에 포함된 각각의 경로()에 대하여,
에서 임의로 선택하여 다항식()을 생성하고,
의 인덱스 집합을 라고 하였을 때, 임의로 선택한 값( )과 상기 다항식을 이용하여 을 계산하여,
결과 메시지()를 생성하고,
상기 결과 메시지를 상기 사용자 기기로 전송하는,
익명 크리덴셜 인증 시스템.
In paragraph 5,
The above credential issuing server is,
The above proof value ( ) to verify the validity,
The path set (CS.Assign(BT,i)) is executed by executing the CS technique's assignment algorithm (CS.Assign(BT,i)). ) and create
Each path included in the above set of paths ( ) about,
cast A polynomial is randomly selected from ) and create
A set of indices of When said, a randomly selected value ( ) and using the above polynomial and By calculating,
Result message( ) and create
Transmitting the above result message to the user device;
Anonymous credential authentication system.
제6항에 있어서,
상기 사용자 기기는 를 계산하여 상기 크리덴셜 ()을 생성하는,
익명 크리덴셜 인증 시스템.
In Article 6,
The above user device is By calculating the above credentials ( ) to create,
Anonymous credential authentication system.
제6항에 있어서,
상기 사용자 기기는 상기 결과 메시지를 상기 크리덴셜로 설정하는,
익명 크리덴셜 인증 시스템.
In Article 6,
The above user device sets the above result message as the above credential,
Anonymous credential authentication system.
제7항 또는 제8항에 있어서,
상기 크리덴셜 발급 서버는
CS 기법의 커버 알고리즘(을 실행하여 커버 집합()을 생성하고,
상기 커버 집합의 각 원소()에 대하여, 을 만족하는 임의의 를 선택하여 를 계산하여, 상기 탈퇴한 사용자 목록에 기초한 정보()를 생성하고,
상기 탈퇴한 사용자 목록에 기초한 정보를 공개하는,
익명 크리덴셜 인증 시스템.
In clause 7 or 8,
The above credential issuing server is
Cover algorithm of CS technique( Run the cover set ( ) and create
Each element of the above cover set ( ) about, Any arbitrary and By selecting and By calculating the information based on the list of users who have left the above ( ) and create
Disclosing information based on the list of users who have left the service;
Anonymous credential authentication system.
제9항에 있어서,
상기 사용자 기기는, 를 만족하는 정당한 에 대하여
를 계산하고,
가 공개하고 싶은 속성 집합()에 대한 인덱스 집합이고 가 A와 B의 차집합()에 대한 인덱스 집합일 때 임의값 을 선택하여 를 계산하고(, ),
를 계산하고,
임의의 를 선택하고,
를 계산하고,
를 계산하고,
증명 값()을 생성하고,
상기 익명 크리덴셜 서명()과 상기 공개하고 싶은 속성 집합(B)를 상기 검증 서버로 송신하는,
익명 크리덴셜 인증 시스템.
In Article 9,
The above user device, A legitimate one that satisfies About
class Calculate ,
A set of properties that we want to disclose ( ) is a set of indices for A is the difference between A and B ( ) is an index set for an arbitrary value By selecting Calculate ( , ),
Calculate ,
Any Select ,
Calculate ,
Calculate ,
Proof value( ) and create
The above anonymous credential signature ( ) and transmit the set of properties (B) to be disclosed to the verification server.
Anonymous credential authentication system.
제10항에 있어서,
검증 서버는
를 계산하고,
제1 검증식()을 이용하여 상기 증명 값()의 유효성을 검증하고,
를 계산하고,
제2 검증식()의 만족 여부에 따라 상기 익명 크리덴셜 서명을 검증하는,
익명 크리덴셜 인증 시스템.
In Article 10,
The verification server is
Calculate ,
The first verification formula ( ) using the above proof value ( ) to verify the validity,
Calculate ,
Second verification formula ( ) to verify the anonymous credential signature,
Anonymous credential authentication system.
익명 크리덴셜 인증 시스템에서 사용자 기기에게 크리덴셜을 발급하는 크리덴셜 발급 서버에 있어서,
보안 상수()와 최대 속성 수(m, m은 임의의 자연수)를 입력으로 하는 시스템키 생성 알고리즘을 수행하여 시스템 공개키와 마스터 비밀키를 생성하는 키 생성부; 및
상기 사용자 기기에게 상기 크리덴셜을 발급하는 크리덴셜 발급부를 포함하고,
상기 키 생성부는
페어링 파라미터()를 생성하고,
암호학적 해쉬 함수()를 선택하고,
CS(Complete Subtree) 기법의 셋업 알고리즘()을 이용하여 최대 사용자 수(, n은 임의의 자연수)에 대응하는 바이너리 트리(BT)를 생성하고,
임의의 를 생성하여 , , , , , 를 계산하고,
임의의 를 생성하여 을 계산하여,
상기 마스터 비밀키(와 상기 시스템 공개키()를 생성하는,
크리덴셜 발급 서버.
In a credential issuing server that issues credentials to user devices in an anonymous credential authentication system,
Security constant( ) and a key generation unit that generates a system public key and a master secret key by performing a system key generation algorithm that takes as input the maximum number of attributes (m, m is an arbitrary natural number); and
Including a credential issuing unit that issues the credential to the user device;
The above key generation section
Pairing parameters ( ) and create
Cryptographic hash function( ) and select
Setup algorithm of CS(Complete Subtree) technique( ) to set the maximum number of users ( , generate a binary tree (BT) corresponding to n (where n is an arbitrary natural number),
Any By creating and , , , , , Calculate ,
Any By creating class By calculating,
The above master secret key ( and the above system public key ( ) to create,
Credential issuing server.
크리덴셜 발급 서버, 사용자 기기, 및 검증 서버를 포함하는 익명 크리덴셜 인증 시스템 상에서 수행되는 익명 크리덴셜 인증 방법에 있어서,
CS(Complete Subtree) 기법을 이용하여, 상기 크리덴셜 발급 서버가 시스템 공개키와 마스터 비밀키를 생성하는 단계;
상기 사용자 기기가 상기 시스템 공개키를 이용하여 사용자 공개키와 사용자 비밀키를 생성하는 단계;
상기 크리덴셜 발급 서버가 상기 사용자 기기에게 크리덴셜을 발급하는 단계;
상기 크리덴셜 발급 서버가 탈퇴한 사용자 목록에 기초한 정보를 생성하여 배포하는 단계;
상기 사용자 기기가 익명 크리덴셜 서명을 생성하고 상기 익명 크리덴셜 서명을 상기 검증 서버로 송신하는 단계; 및
상기 검증 서버가 상기 익명 크리덴셜 서명을 검증하는 단계를 포함하고,
상기 시스템 공개키와 상기 마스터 비밀키를 생성하는 단계는,
페어링 파라미터()를 생성하는 단계;
암호학적 해쉬 함수()를 선택하는 단계;
최대 사용자 수(, n은 임의의 자연수)에 대하여 상기 CS(Complete Subtree) 기법의 셋업 알고리즘(CS.Setup(N))을 실행하여 바이너리 트리(BT)를 생성하는 단계;
임의의 를 생성하여 , , , , , 를 계산하는 단계;
임의의 를 생성하여 을 계산하는 단계; 및
상기 마스터 비밀키(와 상기 시스템 공개키()를 설정하는 단계를 포함하는,
익명 크리덴셜 인증 방법.
A method for anonymous credential authentication performed on an anonymous credential authentication system including a credential issuing server, a user device, and a verification server,
A step in which the credential issuing server generates a system public key and a master private key using the CS (Complete Subtree) technique;
A step in which the user device generates a user public key and a user secret key using the system public key;
A step in which the credential issuing server issues a credential to the user device;
A step in which the credential issuing server generates and distributes information based on a list of users who have withdrawn;
The step of the user device generating an anonymous credential signature and transmitting the anonymous credential signature to the verification server; and
The above verification server comprises a step of verifying the anonymous credential signature,
The steps for generating the above system public key and the above master private key are:
Pairing parameters ( ) generating step;
Cryptographic hash function( ) step of selecting;
Maximum number of users ( , a step of generating a binary tree (BT) by executing the setup algorithm (CS.Setup(N)) of the CS (Complete Subtree) technique for n (where n is an arbitrary natural number);
Any By creating and , , , , , Steps to calculate ;
Any By creating class Steps for calculating; and
The above master secret key ( and the above system public key ( ), comprising the steps of setting
Anonymous credential authentication method.
삭제delete 크리덴셜 발급 서버가 사용자 기기에게 크리덴셜을 발급하는 방법에 있어서,
보안 상수()와 최대 속성 수(m, m은 임의의 자연수)를 입력으로 하는 시스템키 생성 알고리즘을 수행하여 시스템 공개키와 마스터 비밀키를 생성하는 단계; 및
상기 사용자 기기에게 상기 크리덴셜을 발급하는 단계를 포함하고,
상기 시스템 공개키와 마스터 비밀키를 생성하는 단계는
페어링 파라미터()를 생성하는 단계;
암호학적 해쉬 함수()를 선택하는 단계;
CS(Complete Subtree) 기법의 셋업 알고리즘(CS.Setup(N))을 이용하여 최대 사용자 수(, n은 임의의 자연수)에 대응하는 바이너리 트리(BT)를 생성하는 단계;
임의의 를 생성하여 , , , , , 를 계산하는 단계;
임의의 를 생성하여 을 계산하는 단계; 및
상기 마스터 비밀키(와 상기 시스템 공개키()를 설정하는 단계를 포함하는,
크리덴셜을 발급하는 방법.
In a method for a credential issuing server to issue a credential to a user device,
Security constant( ) and a maximum number of attributes (m, m is an arbitrary natural number) as inputs to generate a system public key and a master secret key by performing a system key generation algorithm; and
Comprising a step of issuing the credential to the user device,
The steps for generating the above system public key and master private key are:
Pairing parameters ( ) generating step;
Cryptographic hash function( ) step of selecting;
The maximum number of users (CS.Setup(N)) is obtained by using the setup algorithm of the CS(Complete Subtree) technique. , a step of generating a binary tree (BT) corresponding to n (where n is an arbitrary natural number);
Any By creating and , , , , , Steps to calculate ;
Any By creating class Steps for calculating; and
The above master secret key ( and the above system public key ( ), comprising the steps of setting
How to issue credentials.
KR1020220087092A 2022-07-14 2022-07-14 Device and method for anonymous credential with efficient recocations Active KR102790869B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220087092A KR102790869B1 (en) 2022-07-14 2022-07-14 Device and method for anonymous credential with efficient recocations

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220087092A KR102790869B1 (en) 2022-07-14 2022-07-14 Device and method for anonymous credential with efficient recocations

Publications (2)

Publication Number Publication Date
KR20240009774A KR20240009774A (en) 2024-01-23
KR102790869B1 true KR102790869B1 (en) 2025-04-02

Family

ID=89713933

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220087092A Active KR102790869B1 (en) 2022-07-14 2022-07-14 Device and method for anonymous credential with efficient recocations

Country Status (1)

Country Link
KR (1) KR102790869B1 (en)

Citations (2)

* 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
US20140359289A1 (en) 2013-05-29 2014-12-04 International Business Machines Corporation Method for deriving a verification token from a credential

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102460299B1 (en) 2019-11-25 2022-10-28 한국전자통신연구원 Anonymous credential authentication system and method thereof
KR102477363B1 (en) * 2020-11-12 2022-12-14 성신여자대학교 연구 산학협력단 Anonymous Attribute Proof System and Method with Efficient Key Revocation

Patent Citations (2)

* 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
US20140359289A1 (en) 2013-05-29 2014-12-04 International Business Machines Corporation Method for deriving a verification token from a credential

Also Published As

Publication number Publication date
KR20240009774A (en) 2024-01-23

Similar Documents

Publication Publication Date Title
Liu et al. MuR-DPA: Top-down levelled multi-replica merkle hash tree based secure public auditing for dynamic big data storage on cloud
Li et al. OPoR: Enabling proof of retrievability in cloud computing with resource-constrained devices
US10686799B2 (en) Blockchain-based method and system for providing tenant security and compliance in a cloud computing environment
Sookhak et al. Auditing big data storage in cloud computing using divide and conquer tables
Liu et al. Authorized public auditing of dynamic big data storage on cloud with efficient verifiable fine-grained updates
Zheng et al. VABKS: Verifiable attribute-based keyword search over outsourced encrypted data
He et al. An efficient and provably‐secure certificateless signature scheme without bilinear pairings
Sun et al. Outsourced decentralized multi-authority attribute based signature and its application in IoT
EP2761487B1 (en) Parameter based key derivation
CN112671720A (en) Token construction method, device and equipment for cloud platform resource access control
Yan et al. Access control scheme based on blockchain and attribute-based searchable encryption in cloud environment
KR102460299B1 (en) Anonymous credential authentication system and method thereof
US7930763B2 (en) Method of authorising a computing entity
TW202131659A (en) Computer implemented method and system for storing certified data on a blockchain
Zhu et al. Cryptographic attribute-based access control (ABAC) for secure decision making of dynamic policy with multiauthority attribute tokens
Fathalla et al. PT-SSIM: A proactive, trustworthy self-sovereign identity management system
Li et al. A Blockchain‐Based Public Auditing Protocol with Self‐Certified Public Keys for Cloud Data
Heshmati et al. Blockchain based authentication and access verfication scheme in smart home
Zhang et al. Stateless blockchain-based lightweight identity management architecture for industrial IoT applications
Mishra et al. BB-tree based secure and dynamic public auditing convergence for cloud storage.
KR102790869B1 (en) Device and method for anonymous credential with efficient recocations
CN116975937B (en) Anonymous attestation method and anonymous verification method
KR20250135250A (en) Access gateway system for accessing resources
KR102690974B1 (en) Device and method for anonymous credential with efficient recocations
JP6808609B2 (en) Server devices, communication devices, key sharing systems, key sharing methods, and programs

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20220714

PA0201 Request for examination
PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20241111

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20250317

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20250331

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20250331

End annual number: 3

Start annual number: 1

PG1601 Publication of registration