KR20240009774A - 효율적으로 사용자 탈퇴 기능을 제공하는 익명 크리덴셜 인증 장치 및 방법 - Google Patents
효율적으로 사용자 탈퇴 기능을 제공하는 익명 크리덴셜 인증 장치 및 방법 Download PDFInfo
- Publication number
- KR20240009774A KR20240009774A KR1020220087092A KR20220087092A KR20240009774A KR 20240009774 A KR20240009774 A KR 20240009774A KR 1020220087092 A KR1020220087092 A KR 1020220087092A KR 20220087092 A KR20220087092 A KR 20220087092A KR 20240009774 A KR20240009774 A KR 20240009774A
- Authority
- KR
- South Korea
- Prior art keywords
- credential
- user
- user device
- anonymous
- public key
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 65
- 238000012795 verification Methods 0.000 claims abstract description 51
- 230000002452 interceptive effect Effects 0.000 claims description 3
- 208000033748 Device issues Diseases 0.000 claims 1
- 230000006870 function Effects 0.000 description 25
- 230000008569 process Effects 0.000 description 14
- 238000012545 processing Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000009021 linear effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3263—Cryptographic 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/3268—Cryptographic 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3218—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/42—Anonymization, 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) 기법을 이용하여 시스템 공개키와 마스터 비밀키를 생성하는 크리덴셜 발급 서버, 상기 시스템 공개키를 이용하여 사용자 공개키와 사용자 비밀키를 생성하는 사용자 기기, 및 상기 사용자 기기로부터 수신된 익명 크리덴셜 서명을 검증하는 검증 서버를 포함하고, 상기 크리덴셜 발급 서버와 상기 사용자 기기는 크리덴셜 발급 알고리즘을 수행하여 크리덴셜을 발급하고, 상기 크리덴셜 발급 서버는 탈퇴한 사용자 목록에 기초한 정보를 생성하여 배포하고, 상기 검증 서버는 상기 탈퇴한 사용자 목록에 기초한 정보를 이용하여 상기 익명 크리덴셜 서명을 검증한다.
Description
본 발명은 익명 크리덴셜 인증 방법에 관한 것으로, 특히 사용자의 신원을 나타내는 다수의 속성을 크리덴셜로 인증받고, 이를 이용하여 원하는 속성만 노출하는 동시에 나머지 속성들에 대해서는 익명성을 제공하며 신원을 증명할 수 있는 익명 크리덴셜 방법에 관한 것이다.
개인은 본인이 원하는 서비스를 제공받기 위해 서비스 제공자에게 본인의 신원(identity)을 인증하고, 이로부터 서비스 제공자는 막대한 경제적인 이윤을 창출한다. 하지만, 기존 인증 체계에서 신원 데이터는 개인이 아닌 서비스 제공자가 소유 및 관리하는 등 신원 데이터의 주권은 서비스 제공자에게 있다. 최근 자기결정권을 위한 개인의 주권에 대한 중요성이 강조되고 있으며, 이에 따라 개인이 스스로 자신의 신원 데이터에 대하여 주권을 갖고 인증을 수행하는 자기 주권 신원(self-sovereign identity) 개념이 도입되었다. 실제로 마이데이터 체계를 마련하고 블록체인을 활용한 분산 신원 인증(Decentralized identifier, DID) 서비스에 대하여 표준화가 활발하게 진행 중이다.
DID 서비스를 실현하기 위한 핵심 기술로 익명 인증 크리덴셜이 있다. 익명 인증 크리덴셜은 사용자가 사전에 신원을 인증해 주는 기관(기업)으로부터 크리덴셜을 발급받고, 검증자(서비스 제공자)가 요청할 때마다 익명 크리덴셜을 생성하여 신원 및 자격을 증명하는 기술이다. 이때, 신원 정보는 다수의 속성으로 표현할 수 있는데 사용자는 자신이 원하는 속성만 노출하고 나머지는 안전하게 숨기면서 인증을 수행하는 선택적 노출(Selective disclosure) 기능을 기본적으로 제공하며 선택적 노출 기능과 더불어 기관으로부터 탈퇴되어 기관이 관리하는 탈퇴 목록에 포함된 사용자는 더 이상 신원 증명 값을 생성할 수 없는 사용자 탈퇴(Revocation) 기능을 제공할 수 있다. 사용자 탈퇴 기능을 실현하기 위한 기술로, 트리 기반 사용자 탈퇴 방법인 SD(Subset Difference) 기법과 CS(Complete Subtree) 기법을 사용할 수 있다.
본 발명이 이루고자 하는 기술적인 과제는 효율적인 사용자 탈퇴 기능을 제공하는 익명 크리덴셜 인증 기법을 제공하는 것이다. 폐기 목록을 사용하는 기존 익명 크리덴셜 기술은 효율적으로 사용자 폐기 여부를 확인할 수 없다. 탈퇴한 사용자가 증명 값을 생성하였는지 확인하기 위해서 검증자는 먼저 검증 시간에 유효한 폐기 목록(RL)을 확인하고, 각 항목에 명시되어 있는 탈퇴한 사용자에 대한 추적 값이 증명 값과 적합한지 정해진 검증식을 통하여 확인하여야 한다. 이때, 검증 계산량과 시간은 폐기 목록(RL)의 크기에 비례한다. 따라서 고정된 검증 계산량과 시간으로만 사용자 탈퇴를 효율적으로 지원하는 것은 중요한 해결 과제이다.
본 발명이 이루고자 하는 다른 기술적인 과제는 이상적인 위조 불가능성을 만족하는 익명 크리덴셜 인증 기법을 제공하는 것이다. 기존 익명 크리덴셜 기술은 사용자가 탈퇴하여도 신원 증명 값을 생성하는 것을 방지할 수 없으며, 미리 생성된 서명의 유효성을 사후에 검증하는 방식이다. 탈퇴 목록을 이전 것으로 잘못 참조하거나, 확인하는 과정을 생략한다면 탈퇴 사용자가 생성한 증명 값이 여전히 유효한 것으로 인식되므로 이를 악용할 수 있다. 이상적인 해결책은 사용자가 탈퇴한 후 증명 값을 원천적으로 생성하지 못하는 위조 불가능성을 제공하는 것이다.
또한, 본 발명이 이루고자 하는 또 다른 기술적인 과제는 비밀키의 크기를 줄여 높은 효율성을 갖는 익명 크리덴셜 인증 기법을 제공하는 것이다. 익명 크리덴셜 인증 기술에서 사용자 개인은 일반적으로 리소스가 제한된 모바일 기기와 같은 소형 디바이스를 활용하여 익명 크리덴셜을 생성하므로 키 크기를 줄여 효율성을 높이는 것이 중요하다. 더불어, 실생활에서 도시화 현상으로 인해 발생하는 다양한 문제들의 대안으로 스마트 시티가 부각되고 있는데, 일반적으로 스마트 시티를 구성하는 IoT(Internet of Things) 장비, 각종 센서 등의 디바이스 또한 물리적으로 제한된 리소스 환경에서 구동되므로 익명 크리덴셜을 생성하는 데에 필요한 비밀키의 크기를 줄여 효율성을 높이는 것은 반드시 개선되어야 할 중요한 과제이다.
본 발명의 일 실시예에 따른 익명 크리덴셜 인증 시스템은 CS(Complete Subtree) 기법을 이용하여 시스템 공개키와 마스터 비밀키를 생성하는 크리덴셜 발급 서버, 상기 시스템 공개키를 이용하여 사용자 공개키와 사용자 비밀키를 생성하는 사용자 기기, 및 상기 사용자 기기로부터 수신된 익명 크리덴셜 서명을 검증하는 검증 서버를 포함하고, 상기 크리덴셜 발급 서버와 상기 사용자 기기는 크리덴셜 발급 알고리즘을 수행하여 크리덴셜을 발급하고, 상기 크리덴셜 발급 서버는 탈퇴한 사용자 목록에 기초한 정보를 생성하여 배포하고, 상기 검증 서버는 상기 탈퇴한 사용자 목록에 기초한 정보를 이용하여 상기 익명 크리덴셜 서명을 검증한다.
본 발명의 일 실시예에 따른 크리덴셜 발급 서버는 익명 크리덴셜 인증 시스템에서 사용자 기기에게 크리덴셜을 발급하는 크리덴셜 발급 서버로써, 보안 상수()와 최대 속성 수(m, m은 임의의 자연수)를 입력으로 하는 시스템키 생성 알고리즘을 수행하여 시스템 공개키와 마스터 비밀키를 생성하는 키 생성부, 및 상기 사용자 기기에게 상기 크리덴셜을 발급하는 크리덴셜 발급부를 포함하고, 상기 키 생성부는 페어링 파라미터()를 생성하고, 암호학적 해쉬 함수()를 선택하고, CS(Complete Subtree) 기법의 셋업 알고리즘()을 이용하여 최대 사용자 수(, n은 임의의 자연수)에 대응하는 바이너리 트리(BT)를 생성하고, 임의의 를 생성하여 와 , , , , , 를 계산하고, 임의의 를 생성하여 과 을 계산하여, 상기 마스터 비밀키(와 상기 시스템 공개키()를 생성한다.
본 발명의 일 실시예에 따른 익명 크리덴셜 인증 방법은 크리덴셜 발급 서버, 사용자 기기, 및 검증 서버를 포함하는 익명 크리덴셜 인증 시스템 상에서 수행되고, CS(Complete Subtree) 기법을 이용하여, 상기 크리덴셜 발급 서버가 시스템 공개키와 마스터 비밀키를 생성하는 단계, 상기 사용자 기기가 상기 시스템 공개키를 이용하여 사용자 공개키와 사용자 비밀키를 생성하는 단계, 상기 크리덴셜 발급 서버가 상기 사용자 기기에게 크리덴셜을 발급하는 단계, 상기 크리덴셜 발급 서버가 탈퇴한 사용자 목록에 기초한 정보를 생성하여 배포하는 단계, 상기 사용자 기기가 익명 크리덴셜 서명을 생성하고 상기 익명 크리덴셜 서명을 상기 검증 서버로 송신하는 단계, 및 상기 검증 서버가 상기 익명 크리덴셜 서명을 검증하는 단계를 포함한다.
본 발명의 일 실시예에 따른, 크리덴셜 발급 서버가 사용자 기기에게 크리덴셜을 발급하는 방법은 보안 상수()와 최대 속성 수(m, m은 임의의 자연수)를 입력으로 하는 시스템키 생성 알고리즘을 수행하여 시스템 공개키와 마스터 비밀키를 생성하는 단계, 및 상기 사용자 기기에게 상기 크리덴셜을 발급하는 단계를 포함하고, 상기 시스템 공개키와 마스터 비밀키를 생성하는 단계는, 페어링 파라미터()를 생성하는 단계, 암호학적 해쉬 함수()를 선택하는 단계, CS(Complete Subtree) 기법의 셋업 알고리즘(CS.Setup(N))을 이용하여 최대 사용자 수(, n은 임의의 자연수)에 대응하는 바이너리 트리(BT)를 생성하는 단계, 임의의 를 생성하여 와 , , , , , 를 계산하는 단계, 임의의 를 생성하여 과 을 계산하는 단계, 및 상기 마스터 비밀키(와 상기 시스템 공개키()를 설정하는 단계를 포함한다.
본 발명의 실시예에 따른 익명 크리덴셜 인증 장치 및 방법에 의할 경우, 효율적인 사용자 탈퇴 기능을 제공할 수 있다.
또한, 탈퇴한 사용자가 증명 값을 원천적으로 생성하지 못하게 함으로써 위조 불가능성을 제공할 수 있다.
또한, 사용되는 비밀키의 크기를 줄임으로써, 리소스가 부족한 모바일 장치 등에서도 효율적으로 익명 크리덴셜 인증을 수행할 수 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 CS 기법에서 이용되는 바이너리 트리를 설명하기 위한 도면이다.
도 2는 CS 기법의 할당 알고리즘에서 도출되는 개인 집합과 커버 집합을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 익명 크리덴셜 인증 시스템을 도시한다.
도 4는 도 3에 도시된 크리덴셜 발급 서버의 기능 블럭도이다.
도 5는 도 3에 도시된 익명 크리덴셜 인증 시스템 상에서 수행되는 익명 크리덴셜 인증 방법을 설명하기 위한 흐름도이다.
도 1은 CS 기법에서 이용되는 바이너리 트리를 설명하기 위한 도면이다.
도 2는 CS 기법의 할당 알고리즘에서 도출되는 개인 집합과 커버 집합을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 익명 크리덴셜 인증 시스템을 도시한다.
도 4는 도 3에 도시된 크리덴셜 발급 서버의 기능 블럭도이다.
도 5는 도 3에 도시된 익명 크리덴셜 인증 시스템 상에서 수행되는 익명 크리덴셜 인증 방법을 설명하기 위한 흐름도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.
본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1 구성 요소는 제2 구성 요소로 명명될 수 있고 유사하게 제2 구성 요소는 제1 구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시예들을 상세히 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
우선, 본 발명에서 이용되는 배경 지식을 기술한다.
[페어링 함수]
페어링 (겹선형) 함수 란 위수가 인 대수적 순환 그룹 , 의 임의의 원소 에 대해서, 겹선형 성질 을 제공하는 함수를 의미한다. 이러한 겹선형 성질을 이용하여 를 만족한다.
페어링 함수는 사용하는 , 의 관계에 따라 Type 1, Type 2, Type 3로 구분할 수 있으며, 이 중 Type-3 비대칭 페어링 함수는 이면서 인 동형함수가 존재하지 않을 때를 의미한다. 즉, 페어링 함숫값을 얻기 위해 반드시 는 정해진 위치에 입력하여야 한다.
[CS(Complete Subtree) 기법]
CS 기법은 트리 기반 사용자 탈퇴 방법이며 브로드캐스트 암호 설계를 위해 제시된 방법이다(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로 시작하여 왼쪽에서 오른쪽, 위에서 아래 방향으로 차례대로 할당된다. 이러한 규칙을 통해 잎 노드는 식별자 를 이용하여 나타낼 수 있다.
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) 등이 참조될 수 있다.
- (CS 기법의 셋업 알고리즘). 사용자 수 을 입력받아 잎 노드의 수가 인 바이너리 트리 를 생성한다.
- (CS 기법의 할당 알고리즘). 사용자 를 잎 노드 에 할당한다. 사용자의 식별자 는 노드의 식별자와 같은 범위 에 있음을 가정한다. 만약, 사용자 명의 식별자를 일반 집합 에서 선택한다면 일대일 함수 를 통해 가정을 만족할 수 있다. 임의의 에 대해 를 를 루트 노드로 하는 서브트리 의 모든 잎 노드로 구성된 집합이라 하고, 을 의 루트 노드 로부터 잎 노드 까지의 경로로 정의하고, 집합 을 로 출력한다. 예시적으로, 에 대한 는 도 2에 도시되어 있다. 여기서, 는 개인 집합(private set)이나 경로 집합 등으로 명명될 수 있다.
- (CS 기법의 커버 알고리즘). 탈퇴 사용자 목록 RL에 대한 커버 집합 를 할당한다. 여기서, 를 구성하는 모든 잎 노드들은 탈퇴하지 않은 사용자의 노드들을 포함하며 의 원소 들은 서로 교집합이 없는 서로소 집합이다. 도 2에는 탈퇴한 에 대한 커버 집합 가 도시되어 있다.
- (CS 기법의 매치 알고리즘). 와 의 공통 원소, 즉 (1) 와 (2) 를 동시에 만족하는 가 존재하면 를 출력하고, 모든 원소에 대해 조건을 만족하지 않으면 를 출력한다.
이하에서는 본 명세서에서 사용하는 표기와 알고리즘에 대해 설명한다.
- : 문자열 x와 y의 연결(예, x=010이고 y=110이면 x∥y=010110)
- : 집합
- : 암호학적 해쉬 함수. 임의의 문자열을 입력받아 의 한 원소를 출력
- : 보안 상수. 값이 클수록 높은 보안 등급을 제공
- : 사용자를 나타내는 속성. 해쉬 함수를 이용하여 값으로 할당하는 것을 가정 (예, 성별속성: "gender.att=men"→ H("gender.att=men")=t)
- : 속성 집합
- : 의 속성에 대한 메타 데이터의 인덱스 집합. 메타 데이터마다 고유의 인덱스가 할당 됨. 예를 들어, 사용자를 {홍길동, 남자, 21세}로 나타낸다면 각 속성을 나타내는 메타 데이터는 {Name, Gender, Age}임. 메타 데이터와 인덱스를 다음과 같이 Name → 1, Gender → 2, Age → 3로 할당한다면, 이고 이 됨
- : 집합 X와 집합 Y의 차집합 (예, X={1,2,3}이고 Y={2}이면 X\Y={1,3})
- : 크리덴셜 발급 서버의 시스템 공개키/마스터 비밀키
- : 사용자의 공개키/비밀키
- : 크리덴셜
- : 익명 크리덴셜 서명
- : 시간(epoch). 특정 기간의 개념
- : 시간에 탈퇴한 사용자 목록
- : 시간에 익명 크리덴셜 서명을 생성하기 위한 탈퇴 목록 기반 정보
익명 크리덴셜 시스템을 구성하는 객체는 I(크리덴셜 발급 서버), U(사용자 기기), 및 V(검증 서버)이다. 또한 Ikg(시스템키 발급) 알고리즘, Issue(크리덴셜 발급 요청 및 발급) 알고리즘, Update(탈퇴 목록 기반 정보 생성) 알고리즘, Show(익명 크리덴셜 서명 생성) 알고리즘, Verify(익명 크리덴셜 서명 검증) 알고리즘으로 구성된다. 이 중 Issue 프로토콜은 U가 수행하는 Obtain(크리덴셜 발급 요청) 서브 알고리즘, I가 수행하는 Iss(크리덴셜 발급) 서브 알고리즘으로 구성할 수 있다.
각 알고리즘 및 프로토콜에 대한 상세한 설명은 다음과 같다.
- . 크리덴셜 발급 서버(I)가 실행하는 알고리즘(시스템 키 발급 알고리즘, 시스템 키 생성 알고리즘 등으로 명명될 수 있음)으로, 보안 상수 와 최대 속성 수 m(m은 임의의 자연수)에 대해서 공개키(시스템 공개키) ipk와 마스터 비밀키 isk를 다음과 같이 생성한다.
1. Type-3 페어링 파라미터 를 생성한다. 다만, 본 발명에서 다른 타입의 페어링 함수나 페어링 파라미터의 이용을 배제하는 것은 아니며, 실시예에 따라 다른 타입의 페어링 함수나 페어링 파라미터가 이용될 수도 있다.
2. 암호학적 해쉬 함수(즉, 임의의 해쉬 함수) 를 선택한다.
3. 최대 사용자 수 (n은 임의의 자연수)에 대하여 CS 기법의 셋업 알고리즘()을 실행하고 그 결과로 바이너리 트리 를 얻는다.
4. 임의의 를 생성하여 와 , , , , , 를 계산한다.
5. 임의의 를 생성하여 과 을 계산한다.
6. 와 로 설정한다. 생성된 시스템 공개키 ipk는 공개될 수 있다(또는 사용자 기기(U) 및/또는 검증 서버(V)로 전송될 수 있다).
- . 사용자 기기(U)가 실행하는 알고리즘(사용자 키 발급 알고리즘, 사용자 키 생성 알고리즘 등으로 명명될 수 있음)으로, 사용자의 공개키 upk와 비밀키 usk를 생성하기 위해 아래 과정을 수행한다.
1. U를 대표할 수 있는 고유한 값 를 선택한다.
2. 를 계산한다.
3. 와 를 출력한다. 생성된 사용자 공개키 upk는 공개될 수 있다(또는 크리덴셜 서버(I) 및/또는 검증 서버(V)로 전송될 수 있다).
- . 속성 집합 A를 대표하는 (식별자가 인) 사용자 기기(U)가 크리덴셜을 발급받기 위하여 크리덴셜 발급 서버(I)와 함께 실행하는 프로토콜(알고리즘)이며(크리덴셜 발급 알고리즘으로 명명될 수 있음), 서브 알고리즘으로 Obtain(제1 서브 알고리즘)과 Iss(제2 서브 알고리즘)는 최종 결과로 각각 사용자 기기(U)에 대한 크리덴셜 cre과 결과 메시지 M을 출력한다. 자세한 과정은 다음과 같이 순차적으로 진행된다.
1. Obtain : 사용자 기기(U)에 의해 수행되며, 아래 과정을 수행한다.
(1-1). 사용자 기기(U)는 자신의 비밀키 를 알고 있다는 사실을 비대화식 영지식(non-interactive zero-knowledge, NIZK) 프로토콜을 이용하여 증명한다. 영지식 프로토콜의 증명 값은 로 나타낼 수 있으며 아래 과정을 통해 생성한다.
(1-1-1). usk와 ipk를 이용하여 를 계산한다.
(1-1-2). 임의의 를 선택한다.
(1-1-3). 암호학적 해쉬 함수 H를 이용하여 을 계산한다.
(1-1-4). 를 계산한다.
(1-1-5). 증명 값을 로 설정한다.
(1-2). 생성한 증명 값 과 함께 공개키 , 속성 집합 를 함께 전송한다.
요컨대, Obtain 알고리즘은 비밀키 를 알고 있음을 증명하기 위한 영지식 프로토콜(또는 영지식 증명)의 증명 값을 생성하는 알고리즘을 의미할 수 있다.
2. Iss : 크리덴셜 발급 서버(I)에 의해 수행되며, 아래 과정을 수행한다.
(2-1). 전송받은 가 시스템 내 고유한 값인지 확인한다. 다른 크리덴셜 발급 세션에서 가 이미 사용되었다면 (또는 사용 중이라면) 을 출력하고 프로토콜을 중단한다.
(2-2). 가 만족하는지 확인하여 의 유효성을 검증한다. 등식이 성립하면 계속 진행하고, 성립하지 않으면 을 출력하고 프로토콜을 중단한다.
(2-3). CS 기법의 할당 알고리즘()을 실행하여 경로 집합 을 얻는다.
(2-4). 각각의 마다 다음을 수행한다.
(2-4-1). 다항식 을 내부 저장소에 저장한다. 여기서, 는 에서 임의로 선택되므로 에 속한 임의의 노드 는 고유한 를 가진다.
(2-4-2). 의 인덱스 집합을 라고 하였을 때, 임의로 선택한 값 과 다항식을 이용하여 와 을 계산한다.
(2-5). 결과 메시지 를 전송한다. 결과 메시지 M은 크리덴셜에 포함된 정보의 적어도 일부를 포함하는 메시지로, 실시예에 따라 크리덴셜 또는 제1 크리덴셜로 명명될 수도 있다.
3. Obtain : 사용자 기기(U)에 의해 수행되며, 아래 과정을 수행한다.
(3-1). 를 계산한다.
(3-2). 크리덴셜 을 저장한다.
(3-3). (optional) 만약 서명 생성 과정에서 연산량이 늘어나도 저장량을 줄이는 것이 더 중요하다면 (3-1)을 생략할 수 있다. 이때의 크리덴셜 이다. 즉, 크리덴셜 발급 서버(I)로부터 수신된 메시지 M이 크리덴셜이 될 수 있다.
- . 크리덴셜 발급 서버(I)는 시간에 탈퇴한 사용자 목록 을 이용하여 다음 시간 에 대한 정보 를 다음과 같이 생성한다. 이 알고리즘은 업데이트 알고리즘 등으로 명명될 수 있다.
1. CS 기법의 커버 알고리즘()을 실행하여 커버 집합 을 얻는다.
2. 커버 집합의 원소 에 대하여 다음을 수행한다.
(2-1). 이전에 에 속한 노드 에 대해 정의한 를 불러온다.
(2-2). 을 만족하는 임의의 을 선택한다.
(2-3). 임의로 를 선택하여 와 를 계산한다.
(2-4). 를 배포(또는 검증 서버(V)로 전송)한다.
- . 사용자 기기(U)에 의해 수행되는 익명 크리덴셜 서명 값 생성 알고리즘으로, 시간에 사용자 기기(U)는 저장하고 있는 를 이용하여 공개하고 싶은 속성들로 이루어진 부분 속성 집합 에 대한 익명 크리덴셜 서명 값 를 다음과 같이 생성한다.
1. CS 기법의 매치 알고리즘()을 수행하여 이 나오면 서명을 만들 수 없으므로 중단한다. 이는 이미 탈퇴한 사용자이기 때문이다. 를 만족하는 정당한 를 얻을 수 있으면(즉, 탈퇴하지 않은 사용자라면) 다음 단계로 넘어간다.
2. 집합 에 대한 과 를 에서 찾는다.
3. 에 대한 와 를 에서 찾는다.
4. 과 를 계산한다. 이는 에서 에 대한 함숫값을 보간(interpolation)할 수 있는 라그랑주 계수(Lagrange's coefficient)이다. 즉, 를 만족하는 값이다.
5. (공개하고 싶은 속성 집합)에 대한 인덱스 집합을 로 정의하고 A와 B의 차집합 (숨기고 싶은 속성 집합)에 대한 인덱스 집합 을 정의하였을 때, 임의값 을 선택하여 아래 값을 계산한다.
위의 식에서 이고 이다.
6. 고윳값 , 사용한 난수 , 숨기고 싶은 속성들을 모두 알고 있다는 사실을 비대화식 영지식(NIZK) 프로토콜을 이용하여 증명한다. 영지식 프로토콜의 증명 값은 로 나타낼 수 있으며 아래 과정을 통해 생성한다.
(6-1) 앞선 정의에 의하여 이므로 이를 이용하여 를 계산한다.
(6-2) 임의의 를 선택한다.
(6-3) 해쉬 함수를 이용하여 를 계산한다.
(6-4) 를 계산한다.
(6-5) 증명 값을 로 설정한다.
7. 익명 크리덴셜 서명 와 함께 공개 속성 집합 B를 출력한다. 여기서 B에 할당된 본래 속성을 함께 공개하는 것을 가정한다.
- . 검증 서버(V)에 의해 수행되는 검증 알고리즘으로써, 검증 서버(V)는 익명 크리덴셜 서명 을 검증하기 위해 아래 조건을 만족하는지 확인한다.
1. (6-1)에서처럼 B를 이용하여 를 계산한다.
2. 가 유효한지 로 확인한다. 성립하면 다음으로 넘어가고, 그렇지 않으면 중단하고 0을 출력한다.
3. 와 를 이용하여 를 계산한다.
4. 를 만족하는지 확인한다.
5. 위의 모든 과정을 통과하면 1 (검증 성공)을 출력하고, 그렇지 않으면 0 (검증 실패)를 출력한다.
도 3은 본 발명의 일 실시예에 따른 익명 크리덴셜 인증 시스템을 도시한다. 익명 크리덴셜 인증 시스템을 설명함에 있어 앞선 기재와 중복되는 내용에 관하여는 그 상세한 기재를 생략하기로 한다.
도 3을 참조하면, 익명 크리덴셜 시스템 등으로 명명될 수도 있는 익명 크리덴셜 인증 시스템(10)은 크리덴셜 발급 서버(100), 사용자 기기(200), 및 검증 서버(300)를 포함한다.
크리덴셜 발급 서버(100), 사용자 기기(200), 및 검증 서버(300)는 적어도 프로세서 및/또는 메모리를 포함하는 컴퓨팅 장치로 구현될 수 있다. 컴퓨팅 장치는 서버(예컨대, 범용 서버), PC(Personal Computer), 태블릿 PC, 스마트폰, HMD(Head Mounted Device, 두부 장착 디바이스), 노트북(note PC), 스마트 안경(smart glasses), 스마트 와치(smart watch) 등을 포함할 수 있다.
크리덴셜 발급 서버(100)는 시스템키 발급 알고리즘을 수행하여 공개키(시스템 공개키) ipk와 마스터 비밀키 isk를 생성하고, 생성된 공개키(시스템 공개키) ipk를 배포(또는 사용자 기기(200) 및/또는 검증 서버(300)로 송신)할 수 있다. 또한, 크리덴셜 발급 서버(100)는 사용자 기기(200)와의 유무선 통신을 통해 크리덴셜 발급 알고리즘의 적어도 일부를 수행함으로써 결과 메시지(또는 크리덴셜)를 생성하고 생성된 결과 메시지를 사용자 기기(200)로 송신할 수 있다. 또한, 크리덴셜 발급 서버(100)는 업데이트 알고리즘을 수행함으로써 탈퇴 목록 기반 정보를 생성하고 생성된 탈퇴 목록 기반 정보를 배포(또는 사용자 기기(200) 및/또는 검증 서버(300)로 송신)할 수 있다.
사용자 기기(200)는 사용자키 발급 알고리즘을 수행함으로써 공개키(시스템 공개키) ipk로부터 사용자 공개키 upk와 사용자 비밀키 usk를 생성할 수 있다. 또한, 사용자 기기(200)는 크리덴셜 발급 서버(100)와의 유무선 통신을 통해 크리덴셜 발급 알고리즘의 적어도 일부를 수행함으로써 크리덴셜 발급 서버(100)로부터 생성된 결과 메시지(또는 크리덴셜)을 수신할 수 있다. 실시예에 따라, 사용자 기기(200)는 수신된 결과 메시지를 포함하는 크리덴셜을 생성하는 것도 가능하다. 또한, 사용자 기기(200)는 익명 크리덴셜 서명 알고리즘을 수행함으로써 익명 크리덴셜 서명을 생성하고 생성된 익명 크리덴셜 서명을 검증 서버(300)로 송신할 수 있다. 이때, 사용자 기기(200)는 공개 속성 집합을 익명 크리덴셜 서명과 함께 전송할 수도 있다.
검증 서버(300)는 익명 크리덴셜 서명 검증 알고리즘을 수행함으로써 사용자 기기(200)로부터 수신된 익명 크리덴셜 서명을 검증할 수 있다. 여기서, 검증 서버(300)는 검증 동작을 수행할 수 있는 엔티티로써, 검증 동작 이외의 다른 동작의 수행이 제한되는 것은 아니다.
도 4는 도 3에 도시된 크리덴셜 발급 서버의 기능 블럭도이다.
도 3과 도 4를 참조하면, 크리덴셜 발급 서버(100)는 키 생성부(110), 크리덴셜 발급부(120), 및 업데이트부(130) 중 적어도 하나 이상을 포함한다. 실시예에 따라, 크리덴셜 발급 서버(100)는 저장부(140)를 더 포함할 수도 있다.
키 생성부(110)는 시스템키 발급 알고리즘을 수행하여 공개키(시스템 공개키) ipk와 마스터 비밀키 isk를 생성하고, 생성된 공개키(시스템 공개키) ipk를 배포(또는 사용자 기기(200) 및/또는 검증 서버(300)로 송신)할 수 있다.
크리덴셜 발급부(120)는 사용자 기기(200)와의 유무선 통신을 통해 크리덴셜 발급 알고리즘의 적어도 일부를 수행함으로써 결과 메시지(또는 크리덴셜)를 생성하고 생성된 결과 메시지를 사용자 기기(200)로 송신할 수 있다.
업데이트부(130)는 업데이트 알고리즘을 수행함으로써 탈퇴 목록 기반 정보를 생성하고 생성된 탈퇴 목록 기반 정보를 배포(또는 사용자 기기(200) 및/또는 검증 서버(300)로 송신)할 수 있다.
저장부(140)에는 키 생성부(110)에 의한 키 생성 동작 과정에서 이용되는 데이터, 일시적으로 또는 비일시적으로 생성되는 데이터, 크리덴셜 발급부(120)에 의한 크리덴셜 발급 동작 과정에서 이용되는 데이터, 일시적으로 또는 비일시적으로 생성되는 데이터, 및 업데이트부(130)에 의한 업데이트 동작 과정에서 이용되는 데이터, 일시적으로 또는 비일시적으로 생성되는 데이터 등이 저장될 수 있다.
도 5는 도 3에 기재된 익명 크리덴셜 인증 시스템 상에서 수행되는 익명 크리덴셜 인증 방법을 설명하기 위한 흐름도이다. 도 5에 도시된 방법을 구성하는 단계들 각각은 크리덴셜 발급 서버(100), 사용자 기기(200), 또는 검증 서버(300)에 의해 수행될 수 있다. 다시 말하면, 각 단계는 크리덴셜 발급 서버(100), 사용자 기기(200), 또는 검증 서버(300)에 포함된 프로세서의 동작으로 이해될 수도 있다.
우선, 크리덴셜 발급 서버(100)는 소정의 알고리즘을 수행함으로써 공개키(시스템 공개키)와 마스터 비밀키를 생성할 수 있다(S110). 생성된 시스템 공개키는 공개(배포, 또는 전송)될 수 있다.
사용자 기기(200)는 수신된(또는 공개된) 공개키(시스템 공개키)를 이용하여 사용자 공개키와 사용자 비밀키를 생성할 수 있다(S120). 생성된 사용자 공개키는 공개(배포, 또는 전송)될 수 있다.
S130 단계에서, 크리덴셜 발급 서버(100)와 사용자 기기(200)는 소정의 데이터(또는 메시지)를 주고받으면서 크리덴셜 발급 알고리즘을 수행함으로써 크리덴셜 발급 동작을 수행할 수 있다.
또한, 크리덴셜 발급 서버(100)는 탈퇴한 사용자가 크리덴셜 서명을 생성할 수 없도록 탈퇴 목록 기반 정보를 생성하고 생성된 탈퇴 목록 기반 정보를 공개(배포, 또는 전송)할 수 있다(S140).
다음으로, 사용자 기기(200)는 익명 크리덴셜 서명을 생성하고, 생성된 익명 크리덴셜 서명과 공개 속성 집합을 검증 서버(300)로 송신할 수 있다(S150).
익명 크리덴셜 서명을 수신한 검증 서버(300)는 익명 크리덴셜 검증 알고리즘을 수행함으로써 사용자 기기(200)로부서 수신된 익명 크리덴셜에 대한 검증 동작을 수행할 수 있다(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)도 가능하다.
소프트웨어는 컴퓨터 프로그램(Computer Program), 코드(Code), 명령(Instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(Collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성 요소(Component), 물리적 장치, 가상 장치(Virtual Equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(Signal Wave)에 영구적으로, 또는 일시적으로 구체화(Embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM, DVD와 같은 광기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-optical Media), 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성 요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성 요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10 : 익명 크리덴셜 인증 시스템
100 : 크리덴셜 발급 서버
110 : 키 생성부
120 : 크리덴셜 발급부
130 : 업데이트부
140 : 저장부
200 : 사용자 기기
300 : 검증 서버
100 : 크리덴셜 발급 서버
110 : 키 생성부
120 : 크리덴셜 발급부
130 : 업데이트부
140 : 저장부
200 : 사용자 기기
300 : 검증 서버
Claims (15)
- CS(Complete Subtree) 기법을 이용하여 시스템 공개키와 마스터 비밀키를 생성하는 크리덴셜 발급 서버;
상기 시스템 공개키를 이용하여 사용자 공개키와 사용자 비밀키를 생성하는 사용자 기기; 및
상기 사용자 기기로부터 수신된 익명 크리덴셜 서명을 검증하는 검증 서버를 포함하고,
상기 크리덴셜 발급 서버와 상기 사용자 기기는 크리덴셜 발급 알고리즘을 수행하여 크리덴셜을 발급하고,
상기 크리덴셜 발급 서버는 탈퇴한 사용자 목록에 기초한 정보를 생성하여 배포하고,
상기 검증 서버는 상기 탈퇴한 사용자 목록에 기초한 정보를 이용하여 상기 익명 크리덴셜 서명을 검증하는,
익명 크리덴셜 인증 시스템. - 제1항에 있어서,
상기 크리덴셜 발급 서버는 보안 상수()와 최대 속성 수(m, m은 임의의 자연수)를 입력으로 하는 시스템키 생성 알고리즘을 수행하여 상기 시스템 공개키와 상기 마스터 비밀키를 생성하는,
익명 크리덴셜 인증 시스템. - 제2항에 있어서,
상기 크리덴셜 발급 서버는,
페어링 파라미터()를 생성하고,
암호학적 해쉬 함수()를 선택하고,
최대 사용자 수(, n은 임의의 자연수)에 대하여 상기 CS 기법의 셋업 알고리즘(CS.Setup(N))을 실행하여 바이너리 트리(BT)를 생성하고,
임의의 를 생성하여 와 , , , , , 를 계산하고,
임의의 를 생성하여 과 을 계산하여,
상기 마스터 비밀키(와 상기 시스템 공개키()를 생성하는,
익명 크리덴셜 인증 시스템. - 제3항에 있어서,
상기 사용자 기기는,
고유한 값()을 선택하고,
를 계산하여,
상기 사용자 비밀키()와 상기 사용자 공개키()를 생성하는,
익명 크리덴셜 인증 시스템. - 제4항에 있어서,
상기 사용자 기기는 상기 사용자 비밀키를 알고 있다는 사실을 증명하기 위해 비대화식 영지식 증명(Non-Interactive Zero-Knowledge, NIZK)의 증명 값을 생성하여 상기 크리덴셜 발급 서버로 송신하고,
상기 증명 값을 생성하기 위하여, 상기 사용자 기기는
상기 사용자 비밀키(usk)와 상기 사용자 공개키(ipk)를 이용하여 를 계산하고,
임의의 를 선택하고,
상기 암호학적 해쉬 함수(H)를 이용하여 을 계산하고,
를 계산하여 상기 증명 값()을 생성하고,
상기 사용자 기기는 상기 증명 값(), 상기 사용자 공개키(), 속성 집합( )을 상기 크리덴셜 발급 서버로 전송하는,
익명 크리덴셜 인증 시스템. - 제5항에 있어서,
상기 크리덴셜 발급 서버는,
상기 증명 값()의 유효성을 검증하고,
CS 기법의 할당 알고리즘(CS.Assign(BT,i))을 실행하여 경로 집합()을 생성하고,
상기 경로 집합에 포함된 각각의 경로()에 대하여,
를 에서 임의로 선택하여 다항식()을 생성하고,
의 인덱스 집합을 라고 하였을 때, 임의로 선택한 값( )과 상기 다항식을 이용하여 와 을 계산하여,
결과 메시지()를 생성하고,
상기 결과 메시지를 상기 사용자 기기로 전송하는,
익명 크리덴셜 인증 시스템. - 제6항에 있어서,
상기 사용자 기기는 를 계산하여 상기 크리덴셜 ()을 생성하는,
익명 크리덴셜 인증 시스템. - 제6항에 있어서,
상기 사용자 기기는 상기 결과 메시지를 상기 크리덴셜로 설정하는,
익명 크리덴셜 인증 시스템. - 제7항 또는 제8항에 있어서,
상기 크리덴셜 발급 서버는
CS 기법의 커버 알고리즘(을 실행하여 커버 집합()을 생성하고,
상기 커버 집합의 각 원소()에 대하여, 을 만족하는 임의의 와 를 선택하여 와 를 계산하여, 상기 탈퇴한 사용자 목록에 기초한 정보()를 생성하고,
상기 탈퇴한 사용자 목록에 기초한 정보를 공개하는,
익명 크리덴셜 인증 시스템. - 제9항에 있어서,
상기 사용자 기기는, 를 만족하는 정당한 에 대하여
과 를 계산하고,
가 공개하고 싶은 속성 집합()에 대한 인덱스 집합이고 가 A와 B의 차집합()에 대한 인덱스 집합일 때 임의값 을 선택하여 를 계산하고(, ),
를 계산하고,
임의의 를 선택하고,
를 계산하고,
를 계산하고,
증명 값()을 생성하고,
상기 익명 크리덴셜 서명()과 상기 공개하고 싶은 속성 집합(B)를 상기 검증 서버로 송신하는,
익명 크리덴셜 인증 시스템. - 제10항에 있어서,
검증 서버는
를 계산하고,
제1 검증식()을 이용하여 상기 증명 값()의 유효성을 검증하고,
를 계산하고,
제2 검증식()의 만족 여부에 따라 상기 익명 크리덴셜 서명을 검증하는,
익명 크리덴셜 인증 시스템. - 익명 크리덴셜 인증 시스템에서 사용자 기기에게 크리덴셜을 발급하는 크리덴셜 발급 서버에 있어서,
보안 상수()와 최대 속성 수(m, m은 임의의 자연수)를 입력으로 하는 시스템키 생성 알고리즘을 수행하여 시스템 공개키와 마스터 비밀키를 생성하는 키 생성부; 및
상기 사용자 기기에게 상기 크리덴셜을 발급하는 크리덴셜 발급부를 포함하고,
상기 키 생성부는
페어링 파라미터()를 생성하고,
암호학적 해쉬 함수()를 선택하고,
CS(Complete Subtree) 기법의 셋업 알고리즘()을 이용하여 최대 사용자 수(, n은 임의의 자연수)에 대응하는 바이너리 트리(BT)를 생성하고,
임의의 를 생성하여 와 , , , , , 를 계산하고,
임의의 를 생성하여 과 을 계산하여,
상기 마스터 비밀키(와 상기 시스템 공개키()를 생성하는,
크리덴셜 발급 서버. - 크리덴셜 발급 서버, 사용자 기기, 및 검증 서버를 포함하는 익명 크리덴셜 인증 시스템 상에서 수행되는 익명 크리덴셜 인증 방법에 있어서,
CS(Complete Subtree) 기법을 이용하여, 상기 크리덴셜 발급 서버가 시스템 공개키와 마스터 비밀키를 생성하는 단계;
상기 사용자 기기가 상기 시스템 공개키를 이용하여 사용자 공개키와 사용자 비밀키를 생성하는 단계;
상기 크리덴셜 발급 서버가 상기 사용자 기기에게 크리덴셜을 발급하는 단계;
상기 크리덴셜 발급 서버가 탈퇴한 사용자 목록에 기초한 정보를 생성하여 배포하는 단계;
상기 사용자 기기가 익명 크리덴셜 서명을 생성하고 상기 익명 크리덴셜 서명을 상기 검증 서버로 송신하는 단계; 및
상기 검증 서버가 상기 익명 크리덴셜 서명을 검증하는 단계를 포함하는 익명 크리덴셜 인증 방법. - 제13항에 있어서,
상기 시스템 공개키와 상기 마스터 비밀키를 생성하는 단계는,
페어링 파라미터()를 생성하는 단계;
암호학적 해쉬 함수()를 선택하는 단계;
최대 사용자 수(, n은 임의의 자연수)에 대하여 상기 CS(Subset Difference) 기법의 셋업 알고리즘(CS.Setup(N))을 실행하여 바이너리 트리(BT)를 생성하는 단계;
임의의 를 생성하여 와 , , , , , 를 계산하는 단계;
임의의 를 생성하여 과 을 계산하는 단계; 및
상기 마스터 비밀키(와 상기 시스템 공개키()를 설정하는 단계를 포함하는,
익명 크리덴셜 인증 방법. - 크리덴셜 발급 서버가 사용자 기기에게 크리덴셜을 발급하는 방법에 있어서,
보안 상수()와 최대 속성 수(m, m은 임의의 자연수)를 입력으로 하는 시스템키 생성 알고리즘을 수행하여 시스템 공개키와 마스터 비밀키를 생성하는 단계; 및
상기 사용자 기기에게 상기 크리덴셜을 발급하는 단계를 포함하고,
상기 시스템 공개키와 마스터 비밀키를 생성하는 단계는
페어링 파라미터()를 생성하는 단계;
암호학적 해쉬 함수()를 선택하는 단계;
CS(Complete Subtree) 기법의 셋업 알고리즘(CS.Setup(N))을 이용하여 최대 사용자 수(, n은 임의의 자연수)에 대응하는 바이너리 트리(BT)를 생성하는 단계;
임의의 를 생성하여 와 , , , , , 를 계산하는 단계;
임의의 를 생성하여 과 을 계산하는 단계; 및
상기 마스터 비밀키(와 상기 시스템 공개키()를 설정하는 단계를 포함하는,
크리덴셜을 발급하는 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220087092A KR20240009774A (ko) | 2022-07-14 | 2022-07-14 | 효율적으로 사용자 탈퇴 기능을 제공하는 익명 크리덴셜 인증 장치 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220087092A KR20240009774A (ko) | 2022-07-14 | 2022-07-14 | 효율적으로 사용자 탈퇴 기능을 제공하는 익명 크리덴셜 인증 장치 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240009774A true KR20240009774A (ko) | 2024-01-23 |
Family
ID=89713933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220087092A KR20240009774A (ko) | 2022-07-14 | 2022-07-14 | 효율적으로 사용자 탈퇴 기능을 제공하는 익명 크리덴셜 인증 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20240009774A (ko) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210064076A (ko) | 2019-11-25 | 2021-06-02 | 한국전자통신연구원 | 익명 크리덴셜 인증 시스템 및 그 방법 |
-
2022
- 2022-07-14 KR KR1020220087092A patent/KR20240009774A/ko unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210064076A (ko) | 2019-11-25 | 2021-06-02 | 한국전자통신연구원 | 익명 크리덴셜 인증 시스템 및 그 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102687781B1 (ko) | 증명 검증에 기초하여 오프-체인 데이터를 인증하기 위한 시스템 및 방법 | |
JP7220702B2 (ja) | ブロックチェーンにおける擬似乱数生成 | |
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 | |
AU2018202251B2 (en) | Parameter based key derivation | |
US9178701B2 (en) | Parameter based key derivation | |
US20180205738A1 (en) | Parameter based key derivation | |
He et al. | A privacy-preserving Internet of Things device management scheme based on blockchain | |
CN112671720B (zh) | 一种云平台资源访问控制的令牌构造方法、装置及设备 | |
US20210344500A1 (en) | Computer-implemented system and method for transferring access to digital resource | |
CN108259438A (zh) | 一种基于区块链技术的认证的方法和装置 | |
US20200374137A1 (en) | Systems, methods, and storage media for permissioned delegation in a computing environment | |
KR20210027332A (ko) | 개인정보의 익명성을 제공하는 블록체인 시스템 및 블록체인에서 개인정보의 익명성을 제공하는 방법 | |
Ghaffari et al. | Identity and access management using distributed ledger technology: A survey | |
TW202131659A (zh) | 用以儲存已認證資料於區塊鏈上之電腦實行方法及系統 | |
KR20200081101A (ko) | 개인정보의 익명성을 제공하는 블록체인 시스템 및 블록체인에서 개인정보의 익명성을 제공하는 방법 | |
US11856095B2 (en) | Apparatus and methods for validating user data by using cryptography | |
Thomas et al. | Single sign-on in cloud federation using cloudsim | |
Fathalla et al. | PT-SSIM: A proactive, trustworthy self-sovereign identity management system | |
Heshmati et al. | Blockchain based authentication and access verfication scheme in smart home | |
KR102690974B1 (ko) | 효율적으로 사용자 탈퇴 기능을 제공하는 익명 크리덴셜 인증 장치 및 방법 | |
KR20240009774A (ko) | 효율적으로 사용자 탈퇴 기능을 제공하는 익명 크리덴셜 인증 장치 및 방법 | |
KR20190114424A (ko) | 블록체인 기반의 통합 로그인 방법, 단말 및 이를 이용한 서버 | |
Piechotta et al. | A secure dynamic collaboration environment in a cloud context | |
Li et al. | Audit as You Go: A Smart Contract‐Based Outsourced Data Integrity Auditing Scheme for Multiauditor Scenarios with One Person, One Vote |