KR20070033289A - 변용성있는 가명 인증 시스템 및 방법 - Google Patents

변용성있는 가명 인증 시스템 및 방법 Download PDF

Info

Publication number
KR20070033289A
KR20070033289A KR1020060091745A KR20060091745A KR20070033289A KR 20070033289 A KR20070033289 A KR 20070033289A KR 1020060091745 A KR1020060091745 A KR 1020060091745A KR 20060091745 A KR20060091745 A KR 20060091745A KR 20070033289 A KR20070033289 A KR 20070033289A
Authority
KR
South Korea
Prior art keywords
user
certificate
public key
root certificate
pseudonym
Prior art date
Application number
KR1020060091745A
Other languages
English (en)
Inventor
케 젱
후지따 도모유끼
슈에 민유
Original Assignee
엔이씨 (차이나) 씨오., 엘티디.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엔이씨 (차이나) 씨오., 엘티디. filed Critical 엔이씨 (차이나) 씨오., 엘티디.
Publication of KR20070033289A publication Critical patent/KR20070033289A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3255Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using group based signatures, e.g. ring or threshold signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • H04L9/0836Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/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/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
    • 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)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 통신 네트워크에 대해 변용성있는 가명 인증 시스템 및 방법을 제공한다. 본 발명의 일 실시예에 따르면, 사용자는 신뢰된 개체로부터 루트 증명서를 획득하고, 그 루트 증명서에 기초하여 하나 이상의 가명 인증서들을 생성하고, 각각이 하나의 가명 인증서를 구비하는 익명의 공개 키들을 검증기들에 송신한다. 가명 인증서의 사용을 통해, 검증기는 사용자의 익명 공개 키가 신뢰된 개체에 의해 인증된 것으로 믿는다. 가명 인증서는 검증기가 사용자의 실제 아이덴티티를 알아낼 수 있는 정보를 포함하지 않는다. 변용성있는 가명 인증 시스템에 의해, 신뢰된 개체는 사용자 루트 공개 키에 대해 단지 한 번의 인증을 필요로 한다. 사용자는 각 익명 공개 키가 별개의 가명 인증서를 구비하는 대중 익명 공개 키들을 스스로 생성할 수 있다.
가명 인증서, 루트 증명서, 인증 시스템, 공개 키, 비밀 키

Description

변용성있는 가명 인증 시스템 및 방법{MALLEABLE PSEUDONYM CERTIFICATE SYSTEM AND METHOD}
본 발명 자체뿐만 아니라 본 발명의 상기 및 다른 목적, 다양한 특징은 첨부된 도면을 참조하는 경우 이하의 설명으로부터 보다 충분히 이해될 수 있다.
도 1은 APK 기술에 따른 익명의 공개 키 암호 체계를 이용하는 2개의 단말기들를 갖는 예시적인 시스템 - 상기 단말기들 중 하나는 다른 단말기와 새로운 통신 세션을 위한 상이한 공개 키를 나타낼 수 있음 - 을 나타내는 블록도 .
도 2는 APK 기술에 따른 익명의 공개 키 암호 작성 체계를 이용하는 몇몇 단말기를 갖는 예시적인 시스템 - 하나의 단말기는 상이한 통신에 사용되는 상이한 공개 키를 갖는 다른 단말기들과 통신할 수도 있음 - 을 나타내는 블록도.
도 3은 도 1 및 도 2에 나타낸 통신 시스템에 참여하는 송신기와 수신기 간의 예시적인 통신 세션을 나타내는 흐름도.
도 4는 APK 기술에 따른 공개 비밀 키 쌍들에 기초하는 통신 세션에서 송신기와 수신기 간의 예시적인 기능 블록들을 나타내는 블록도.
도 5는 APK 기술에 따른 도 4의 APK 생성 장치의 예시적인 기능 블록들을 나타내는 블록도.
도 6은 APK 기술에 따른 익명의 공개 키들을 생성하는 예시적인 처리 흐름을 나타내는 흐름도.
도 7은 APK 기술에 따른 메시지의 암호화 및 복호화의 예시적인 프로시저를 나타내는 도면.
도 8a는 본 발명의 일반적인 개념을 개략적으로 나타내는 블록도.
도 8b는 본 발명의 일반적인 검증 처리를 개략적으로 나타내는 흐름도.
도 9는 본 발명의 제1 실시예의 시스템 아키텍처를 개략적으로 나타내는 블록도.
도 10은 제1 실시예에 따른 시스템 개시 단계 동안 CA 초기화 프로시저의 예를 나타내는 흐름도.
도 11은 제1 실시예에 따른 시스템 개시 단계 동안 사용자 초기화 프로시저의 예를 나타내는 흐름도.
도 12는 제1 실시예에 따른 RC 요청 처리의 예를 나타내는 흐름도.
도 13은 제1 실시예에 따른 익명의 공개 키를 사용자가 어떻게 생성하는지를 나타내는 흐름도.
도 14는 제1 실시예에 다른 익명의 공개 키에 대한 루트 인증서(root certificate)로부터 가명 인증서(pseudonym certificate)를 사용자가 어떻게 유도하는지를 나타내는 흐름도.
도 15는 제1 실시예에 따른 익명의 인증 처리의 예를 나타내는 흐름도.
도 16은 제1 실시예에 따른 추적 처리를 나타내는 흐름도.
도 17은 제1 실시예에 따른 사용자의 예시적인 장치를 나타내는 블록도.
도 18은 제1 실시예에 따른 CA의 예시적인 장치를 나타내는 블록도.
도 19는 본 발명의 제2 실시예의 시스템 아키텍처를 개략적으로 나타내는 블록도.
도 20은 제2 실시예에 따른 가명 인증 방법의 예를 나타내는 흐름도.
도 21은 전형적인 그룹 서명 스킴을 갖는 그룹 내에 그/그녀가 있다는 것을 검증기(verifier)에 증명하는 증명기(prover)에 대한 처리를 나타내는 도면.
도 22는 본 발명에 따른 제2 실시예의 해결책을 갖는 공개 키 및 가명의 인증서의 확인(validation)을 검증하는 예시적인 처리를 나타내는 도면.
도 23은 본 발명에 따른 제2 실시예의 해결책을 갖는 공개 키 및 가명의 인증서의 확인을 검증하는 또다른 예시적인 처리를 나타내는 도면.
도 24는 본 발명에 따른 제2 실시예의 검증부의 예를 나타내는 블록도.
도 25는 인증서가 인증 당국(Certificate Authority)에 의해 발행되는 전통적인 인증 시스템을 나타내는 블록도.
도 26은 인증서가 사용자의 친구에 의해 발행되는 또다른 전통적인 인증 시스템을 나타내는 블록도.
<도면의 주요 부분에 대한 부호의 설명>
171: 루트 증명부
172: 가명 인증서 생성부
173: 송신부
174: 루트 증명 요청부
175: 익명의 공개 키 생성부
176: 증명부
177: 저장부
178: 검증부
본 발명은 컴퓨터 통신 네트워크 보안에 관한 것으로, 특히, 프라이버시(privacy)를 보호하는 통신 시스템에 관한 것이다.
현재, 공개 키 암호 시스템이 널리 이용되고 있다. 통상적으로, 어느 정도의 보안뿐만 아니라 프라이버시를 제공하기 위해 다수의 공개 키 암호 부호화 및 복호화 기술들이 쉽게 이용가능하다. 예를 들어, Rivest 등에게 발행된 미국 특허 번호 제4,405,829호 및 El Gamal(Tahir ElGamal, A public-key cryptosystem and a signature scheme based on discrete logarithms, Advances in Cryptology Proceedings; CRYPTO 84, pages 10-18, 1985)은 이 분야에서 잘 인식되어 있는 기술들이다. Rivest 특허 및 El Gamal의 기술들은 참조로서 포함되어 있다.
RSA 및 El Gamal과 같은 종래의 공개 키 암호 시스템들에 의하면, 상대방과 안전하게 통신하기 위해서, 사용자는 외부 세계(outer world)에 그의 공개 키를 개시하도록 요구받는다. 그러나, 대부분의 경우, 사용자는 단지 하나의 공개/비밀 키 쌍, 즉, 하나의 공개 키와 그의 대응하는 고유의 비밀 키를 소유하고 있다. 공 개 키 암호 시스템의 이러한 종래의 사용은, 사용자의 공개 키를 그의 아이덴티티(identity)로서 적절하게 제공하게 하는 의도되지 않은 결과를 가져온다. 이것은, 프라이버시를 염려하는 사용자가 이러한 종류의 공개 키 암호 시스템뿐만 아니라 다른 잘 설계된 프라이버시 보호 방법들에 의해 보호받더라도, 상대방은 여전히 고유의 공개 키의 사용 패턴에 기초하여 사용자에 의해 공개된 정보의 수집 및 관찰을 통하여 보호되고 있는 사용자의 활동들을 서로 관련시킬 수 있다는 것을 의미한다.
RSA 및 El Gamal에 의해 개시되어 있는 것과 같은 종래의 공개 키 암호 시스템들에 의하면, 사용자가 그의 단일 공개 키가 그의 프라이버시를 침해할 수 있다는 점에 대해 염려하고 있다면, 하나의 가능한 해결책은 염려하는 개개인에게 여러 개의 별개의 공개 키들을 소유하게 하고 공개 키들 각각을 주의하면서 서로 다른 대응하는 것들에 공개하게 하는 것이다.
다수의 공개 키 쌍들을 소유하는 것을 제외하고, Waters 등은 사용자가 여러 개의 공개 키(모든 이들 공개 키들은 단일 비밀 키에 대응함)를 동시에 소유할 수 있는 비교할 수 없는 공개 키 방식(Incomparable Public Keys Scheme)을 실현하기 위해 El Gamal 암호 시스템을 사용하는 방법을 제안하였다. B. R. Waters, E. W. Felten, A. Sahai, Receiver Anonymity via Incomparable Public keys, CCS'03, Washington, DC, USA, pp.112-121(이하, "Waters")을 참조한다. Waters의 교시도 또한 참조로서 포함되어 있다.
전술한 바와 같이, 사용자는 여러 개의 공개 키들을 소유할 수 있다. 그러 나, 대부분의 경우, A라는 사람이 공개 키를 취득할 때, 그 공개 키는 어느 다른 누군가에 의해 인증되어야 한다. 예를 들어, 공개 키는 잘 알려져 있는 인증 기관(Certificate Authority: CA)에 의해 인증될 수 있거나, 또는 공개 키는 그 사람의 C라는 친구에 의해 인증될 수 있다. 제3자인 B라는 사람이 공개 키 및 그의 인증서를 보는 경우, B가 CA를 신뢰하기 때문에, 또는 대안적으로 B가 C를 신뢰하기 때문에, 상기 사람은 공개 키를 신뢰할 수 있다.
사용자가 여러 개의 공개 키를 소유하는 경우, 이들 공개 키를 인증하는 하나의 가능한 방법은 도 25에 도시된 바와 같이, 그것들 각각의 인증을 CA에 요청하는 것이다. CA는 모든 인증서 요구들을 온라인에서 처리해야 하기 때문에, 매우 강력한 CA가 요구되어, 소유 총비용 및 유지 보수 비용이 증가할 것이다. 이러한 비용들은 네트워크 내의 각 사용자가 다수의 공개 키를 소유하는 경우에 증대된다.
다른 가능성은 도 26에 도시된 바와 같이, 공개 키들 각각의 인증을 일부 친구들에게 요청하는 것이다. 그러나, 이것은 사용자가 프라이버시를 염려하는 것에 모순된다. 이것뿐만 아니라, 공개 키들의 인증을 친구들에게 요청하는 것은, 비능률적일 뿐만 아니라, 효과가 없을 수 있으며, 많은 비즈니스 시나리오들에서 신뢰할 수 없다.
공개 키들의 인증 이외에, CA 중심 해결책 및 친구 인증 해결책를 포함하는 해결책들의 전술한 단점들은 또한 여러 사용자 데이터가 인증되어야 하는 많은 다른 경우에 존재한다.
본 발명은 통신 네트워크에 변용성있는 가명 인증서 시스템 및 방법을 제공한다.
본 발명의 일 양태에 따르면, 사용자가 통신 네트워크에서 데이터를 인증하기 위한 컴퓨팅 장치가 제공된다. 네트워킹은 신뢰된 개체(trusted entity) 및 적어도 하나의 검증기(verifier)를 포함한다. 이 컴퓨팅 장치는, 네트워크에 동작가능하게 연결되어 있고 신뢰된 개체로부터 루트 검증을 수신하는 루트 검증부(root proof unit), 루트 검증부에 동작가능하게 연결되어 있고 루트 검증에 기초하여 적어도 하나의 가명 인증서를 생성하는 가명 인증서 생성부, 및 가명 인증서 생성부에 동작가능하게 연결되어 있고 통신 네트워크에 가명 인증서와 연결되는 사용자의 데이터를 송신하는 송신부를 포함한다.
본 발명의 다른 양태에 따르면, 사용자가 통신 네트워크의 데이터를 증명하는 방법이 제공된다. 네트워킹은 신뢰된 개체 및 적어도 하나의 검증기를 포함한다. 상기 방법은 신뢰된 개체로부터 루트 증명(root proof)을 수신하는 단계; 루트 증명에 기초하여 적어도 하나의 가명 인증서를 생성하는 단계; 및 하나의 가명 인증서와 결합된 상기 사용자의 데이터를 하나의 검증기에 송신하는 단계를 포함한다.
본 발명의 다른 양태에 따르면, 통신 네트워크에서 증명서들을 관리하는 장치가 제공된다. 네트워킹은 적어도 하나의 사용자 및 적어도 하나의 검증기를 포함한다. 상기 장치는 시스템 파라미터들을 계산하도록 구성된 시스템 파라미터 계산부; 시스템 파라미터 계산부에 동작가능하게 결합되고, 사용자와 검증기에 의해 공유되어야 하는 공유 시스템 파라미터들을 공개하도록 구성된 파라미터 공개부; 네트워크에 동작가능하게 결합되고 사용자로부터의 루트 증명 요구를 수신하도록 구성된 루트 증명 요구 수신부; 및 루트 증명 요구 수신부와 시스템 파라미터 계산부에 동작가능하게 결합되고 루트 증명 요구에 응답하여 사용자를 위한 요구 증거를 생성하도록 구성된 루트 증명 생성부를 포함하고, 루트 증명은 사용자가 다수의 가명 인증서를 생성하기 위해 사용된다.
본 발명의 다른 양태에 따르면, 통신 네트워크에서 증명서들을 관리하는 방법이 제공된다. 네트워킹은 적어도 하나의 사용자 및 적어도 하나의 검증기를 포함한다. 상기 방법은 시스템 파라미터를 계산하는 단계; 사용자와 검증기에 의해 공유되는 공유 시스템 파라미터들을 공개하는 단계; 사용자로부터의 루트 증명 요구를 수신하는 단계; 및 루트 증명 요구에 응답하여 사용자를 위한 루트 증명을 생성하는 단계를 포함하며, 루트 증명은 사용자가 다수의 가명 인증서를 생성하기 위해 사용된다.
본 발명의 다른 양태에 따르면, 통신 네트워크에서 사용자를 위한 변용성있는 가명 인증서 시스템이 제공된다. 네트워킹은 신뢰된 개체를 포함한다. 상기 시스템은 네트워크에 동작가능하게 결합되고 신뢰된 개체로부터의 루트 증명을 수신하도록 구성된 루트 증명부; 루트 증명부에 동작가능하게 결합되고 루트 증명에 기초하여 적어도 하나의 가명 인증서를 생성하도록 구성된 가명 인증서 생성부; 가명 인증서 생성부에 동작가능하게 결합되고 가명 인증서와 결합된 사용자의 데이터를 통신 네트워크에 송신하도록 구성된 송신부; 및 통신 네트워크에 동작가능하게 결합되고 수신된 가명 인증서에 의해 사용자의 데이터를 검증하도록 구성된 검증부를 포함한다.
본 발명의 다른 양태에 따르면, 통신 네트워크에서 가명 인증서에 의해 사용자의 데이터를 증명하는 방법이 제공된다. 네트워킹은 신뢰된 개체 및 적어도 하나의 검증기를 포함한다. 상기 방법은 신뢰된 개체로부터의 루트 증명을 사용자에게 발행하는 단계; 사용자에 의한 루트 증명에 기초하여 적어도 하나의 가명 인증서를 생성하는 단계; 및 하나의 가명 인증서와 결합된 사용자의 데이터를 하나의 검증기에 송신하는 단계를 포함하며, 상기 검증기는 가명 인증서에 의해 사용자의 데이터를 검증한다.
본 발명의 다른 양태에 따르면, 제조 물품이 제공된다. 제조 물품은 하나 이상의 프로세서들에 의해 실행되는 경우, 프로세서들로 하여금, 신뢰된 개체로부터의 루트 증명을 수신하고; 루트 증명로부터 적어도 하나의 가명 인증서들을 생성하고; 가명 인증서들 중 하나와 결합된 데이터를 검증기에 송신하게 하는 명령어들이 기록된 머신 판독가능한 매체를 갖는다.
본 발명의 다른 양태에 따르면, 제조 물품이 제공된다. 제조 물품은 하나 이상의 프로세서들에 의해 실행되는 경우에, 프로세서들로 하여금, 시스템 파라미터를 계산하고; 모든 네트워크 사용자에 의해 공유되는 공유 파라미터들을 공개하고; 네트워크 사용자들 중 하나로부터의 기초 루트 요구를 수신하고; 사용자를 위한 루트 증명을 생성하게 하는 명령어들이 기록된 머신 판독가능한 매체를 가지며, 루트 증명은 사용자가 다수의 가명 인증서를 생성하기 위해 사용된다.
변용성있는 가명 인증서는 특히 익명의 공개 키들과 함께 사용되는 경우에 여러 이점을 갖는다. 사용자는 익명의 공개 키가 가명 인증서에 의해 증명된 CA로서 보증되는 경우에 믿을만한 익명의 공개 키를 생성할 수 있다. 사용자 프라이버시 보호의 기능은 완전히 분산된다. 사용자는 자신이 개별적인 익명의 공개 키들을 생성할 수 있으며 자신이 개별적인 가명 인증서들을 생성할 수 있는 것은 물론이다. 증명서 권한의 개입이 최소화되므로 CA의 가벼운 구현을 가능하게 한다. 사용자는 가명 인증서가 CA측에서 추적가능하기 때문에 익명 가능성을 남용할 수 없다.
본 출원은 ZENG, Ke 및 FUJITA, Tomoyuki가 제시하는 새로운 APK(Anonymous Public Key, 익명의 공개 키) 기술에 관한 것이다. APK 기술의 상세 내용은 NEC(China)사에 의해 2004년 11월 10일 출원된 "Method, Devices and Systems for Generating Anonymous Public Keys in a Secure Communucation Systems"라는 제목의 공동 계류 중국 특허 출원번호 200410090903.X에서 찾을 수 있다.
먼저, APK의 기술적 솔루션이 후술된다.
전술한 바와 같이, 사용자는 여러 공개 키를 처리하길 원한다. 각각의 개별 공개 키가 대응하는 개별 비밀 키를 가지는 다수의 공개 키 쌍을 채택함에 의해, 종래의 공개 키 암호화시스템(cryptosystem)은 프라이버시 문제를 어느 정도 경감시킨다. 그러나, 공개 키의 수가 증가함에 따라, 사설 공개 키 쌍의 관리 비용도 증가한다. 더욱이, 비밀 키의 수가 증가함에 따라, 비밀 키의 손실 또는 공개의 보안 위험도 증가한다.
뛰어난 공개 키 스킴은 계산 최적화를 어렵게 하는 E1 가말(Gamal) 암호화시스템의 공개 키를 구성하는 다른 생성기를 활용함에 의해 새로운 공개 키를 생성한다. 예컨대, (g,ga) 및 (h,ha)는 워터(Water)의 뛰어난 공개 키 스킴에 의해 생성된 다른 공개 키이다. 여기서, g 및 h는 다른 생성기이다. 종래에는, E1 가말 암호화시스템은 단지 하나의 생성기만을 이용함으로써, 생성기의 전력을 오프라인으로 계산하고 생성기의 전력의 단지 하나의 테이블을 유지하는 것을 이점으로 할 수 있었다. 워터 스킴은 다른 생성기의 전력의 여러 테이블을 유지하거나, 오프라인 계산을 요구하는데, 이는 계산 최적화 및 비용 관리의 관점에서 매우 바람직하지 않았다.
본 발명은 APK(anonymous public key) 기술을 채용했다. APK는 최종 사용자가 대량의 공개 키를 생성하면서 단지 하나의 비밀 키가 유지 및 보존되는 점에 특징이 있다.
APK 기술은 도 1-7을 참고로 후술된다.
APK 기술에서, 용어 "그룹"은 다음과 같이 정의된 수학적 개념이다.
그룹 (G,◇)는 다음을 만족하는 이진 동작 ◇ 및 G을 갖는 세트 G로 이루어진다;
ⅰ)그룹 동작은 연관적이다. 즉, G의 모든 엘리먼트 a,b,c에 대해 a◇(b◇c)=(a◇b)◇c
ⅱ) 예컨대, G의 모든 엘리먼트에 대해 a◇e=e◇a=a인 G의 식별 엘리먼트가 있다.
ⅲ) G의 각 엘리먼트에는, 예컨대, a◇a-1=a-1◇a=e인 a의 역이라 불리는 G의 엘리먼트 a-1이 존재한다.
예컨대, 부가 동작을 갖는 정수 Z의 세트는 그룹을 형성한다. 식별 엘리먼트는 0이고, 정수의 역은 정수 -a이다. 보다 많은 정보를 보기 위해서는 온라인 http://cacr.math.uwaterloo.ca/hac에서 구입가능한 Handbook of Applied Crytography를 참조하라.
APK 기술에 따른 통신 시스템은 여러 터미널 및 여러 통신 채널을 가진다. 도 1은 APK 솔루션의 일례를 간략화된 블록도로 도시한다. 도 1에서, 터미널 A는 여러 세션 동안 터미널 a와 통신한다. 정보를 터미널 a에 송신하기 위한 터미널 A에 대한 적어도 하나의 통신 채널이 있다. 세션은 하나 또는 여러 통신 채널을 사용한다. 터미널 a는 정보를 터미널 A에 송신하기 위해 동일 통신 채널을 사용 또는 사용하지 않을 수 있다. 통신 채널을 통해, 터미널 A는 다른 통신 세션 동안 터미널 a에 다른 공개 키 Ea-Ez를 드러내나, 그 비밀 키 x를 비밀로 유지한다. 터미널 a는 터미널 A에 대해 여러 다른 공개 키를 드러낼 필요가 없다면 이런 관점에서 터미널 A와 균등하다.
도 1에 도시된 바와 같이, 다른 세션 동안 다른 공개 키를 생성함에 의해, 터미널 a, 또는 임의의 제3 자에 대해 터미널 A의 활동 패턴을 상관시키기가 실제 로 불가능하다. 예컨대, 전자 경매 설정에서, 터미널 A로부터 사용자는 다른 사람이 사용자의 입찰 패턴 및 전략을 상관 및 분석하는 것을 방지할 수 있다. 그 이유는 다른 공개 키가 각 세션에 대해 생성되기 때문이다.
도 2는 또한 APK 기술의 다른 구현을 간략화된 블록도로 도시한다. 도 2에서, 터미널 A는 다수의 터미널, 즉 터미널 a-z와 통신한다. 터미널 A와 그 대응하는 것들 각각의 사이에서 사용되는 통신 채널은 동일 또는 동일하지 않을 수 있다. 도 2의 좌측 전반부에 도시된 바와 같이, 통신 채널을 통해, 터미널 A는 다른 것들 중에서 터미널 a, b,...z에 대해 다른 공개 키 Ea-Ez를 드러낸다. 이 경우, 터미널 A와 터미널 a-z 간에는 "일 대 다수(one-to-many)" 관계가 존재한다고 가정한다. 상기 관계는 여러 방식으로 수행될 수 있다. 예컨대, 공개 키와 함께 드러나는 다른 정보가 있을 수 있거나, 공개 키가 이메일 또는 증명서에 통합될 수 있다. 터미널 a-z은 이들 각각이, 수신되는 공개 키로 암호화된 정보를 터미널 A에 송신하기 위해 터미널 A의 공개 키를 수신하는 동일한 통신 채널을 이용 또는 이용하지 않을 수 있다. 이전과 같이, 터미널 A는 그 비밀 키 x를 비밀로 유지한다. 유사하게, 터미널 a-z는 터미널 A에 대해 여러 다른 공개 키를 드러낼 필요가 없다면, 이런 관점에서 터미널 A와 균등하다. 터미널 a-z는 그 각각의 공개 키 Ea-Ez를 터미널 A에 대해 드러낸다. 이 경우, 터미널 a-z와 터미널 A간에는 "다수 대 일(many-to-one)" 관계가 존재한다고 가정한다.
도 3은 도 1 및 도 2에 예시된 통신 시스템에 참여하는 송신기와 수신기 사 이의 예시적인 통신 세션을 도시한다. 도 3에서, 송신기가 공개 키를 수신기에 공개하고자 할 때마다. 송신자는 기존의 공개 키들이 풀로부터 하나를 선택하거나(단계 S32) 새로운 공개 키를 생성하는 WL(단계 S33) 결정한다(단계 S31). 그 후 송신기는 공개 키를 수신기에 송신한다(단계 S34). 송신될 메시지가 있을 때마다(단계 S35), 수신기는 메시지를 암호화하기 위해(단계 S37) 송신기의 공개 키를 찾으며(단계 S36), 그 후 암호화된 메시지를 송신기에 송신한다. 결국, 송신기는 수신된 암호화 메시지를 해독하고(단계 S38), 수신기로부터 송신된 원 메시지를 복원한다. 암호화된 메시지를 송신기에 송신하길 원하기 훨씬 오래 전에 수신기가 송신기로부터 공개 키를 수신함에 유의해야 한다.
송신기가 어떤 기존 키에 의존함이 없이 다른 공개 키를 항상 생성시키도록 (단계 S33) 설계될 수 있음에 유의해야 한다. 그러나, 당업자가 이해하는 바와 같이, 공개 키의 기존 풀의 사용은, 기존 키의 조작이 스크래치로부터 계산하는 것보다 훨씬 덜 계산 강도가 낮기 때문에, 전체 계산을 많이 감소시킨다.
또한, 송신기가 그 공개 키를 수신기에 먼저 송신하기 때문에, 도 3에서는 송신기 및 수신기만이 설명의 편의상 지정됨에 유의해야 한다. 수신기가 송신기로부터 공개 키를 가질 때, 수신기는 암호화 메시지를 수신기에 송신할 때 송신기가 실제로 된다. 2개의 터미널 간의 전형적인 양방향 통신 세션에서는 세션을 통해 자주 개정되는 규칙이 있다.
도 4를 참조하면, APK 기술에 따르는 공용-비밀 키 쌍에 기초한 통신 세션에서 송신기 및 수신기의 예시적인 기능 블록도가 도시된다. 여기서, 송신기(41)는 통신 채널을 다루는 송신부(43) 및 수신부(45)와, 암호화 텍스트의 복호화(decryption)를 다루는 디코딩 디바이스(47), 및 APK 생성을 다루는 APK 생성디바이스(49)를 적어도 포함한다. 수신기(42)는 송신부(44), 수신부(46), 및 일반 텍스트와 같이 송신될 정보의 암호화를 다루는 인코딩 디바이스(48)를 포함한다. 송신기(41)는 다수의 공개 키를 수신기(42)에 대해 공개하여, 송신기(41)와 수신기(42) 사이에 다수의 세션이 존재한다면, 각 세션이 송신기(41)의 다른 공개 키를 사용하게 된다. 송신기(41)가 수신기로서 또한 동작하는 경우, 인코딩 디바이스(48)를 더 포함할 수 있다. 유사하게, 수신기(42)가 송신기로서 동작하는 경우, 디코딩 디바이스(47) 및 APK 생성 디바이스(49)를 더 포함한다.
도 4에 도시된 인코딩 디바이스(48) 및 디코딩 디바이스(47)는 데이터 통신 및 암호화 분야에서는 공지되어 있다. APK 생성 디바이스(49)는 도 5에서 더 설명된다. 도 5를 참조하면, 제어부(55)는 공개 키의 생성 프로세스를 조작하며, 키를 관리한다. 레지스터(54)는 비밀 키, 생성된 공개 키, 수신된 공개 키, 및 제어부(55)에 의해 요구된 다른 데이터를 저장하는데 사용된다. 또한, 이하 사용되는 레지스터(54)는 온칩 레지스터, ROM 및 RAM과 같은 정보를 저장할 수 있는 임의의 디바이스로 구현될 수 있다. 공개 키 생성 디바이스(49)는 레지스터(54)를 디코딩 디바이스(47)와 공유하여, 수신된 암호화 텍스트를 저장하고 복호화에 그 출력을 중개한다. APK 생성 디바이스(49)의 다른 구성요소는 후술된다.
도 5에서, "그룹" 동작은 그룹 지수 오퍼레이터(group exponentiation operator)(57)에 의해 조절된다. 그룹 동작이 개별 그룹 오퍼레이터에 의해 조절 되는 APK 생성 디바이스(49)의 다른 구현도 있을 수 있다.
다음으로, APK 기술에 따라 APK를 생성하기 위한, 도 5 및 6의 APK 생성 디바이스(49)의 프로세스에 대한 설명이 뒤따른다.
도 6은 APK/비밀 키 쌍을 생성하는 예시적인 프로세스 흐름을 도시한다. 먼저, 그룹 G는 그룹 선택기(51)에 의해 선택된다(단계 S60). 예컨대, 컴퓨터는 여러 적합한 그룹을 나타내는 여러 데이터 구조가 저장된 메모리를 가진다. 제어부(55)의 제어하에서, 그룹 선택기(51)는 그룹을 나타내는 데이터 구조를 선택함에 의해 하나의 그룹을 선택한다. 실제로는, 컴퓨터상에서 실행될 수 있고 이런 서비스를 제공할 수 있는 여러 상용 기능 라이브러리가 이미 존재한다. APK 기술을 구현하고자 하는 어플리케이션 프로그램은 일부 특정 파라미터, 이런 라이브러리에 의해 제공된 특정 기능을 호출한다. 그 후, 호출된 기능은 소정 그룹을 복귀시킬 수 있다. 일 구현예에서, G는 유한한 주기적 그룹이며, 그 순서는 양의 정수인 n이다. 유한 주기 그룹 G의 캔디데이트는 제한적이지 않게,
유한 필드 Fq1을 통한 타원형 커브 상의 포인트들의 그룹과,
유한 필드 Fq2의 복제 그룹 Fq2 *과(여기서 q2=pm1, m1은 양의 정수이고, p는 프라임이다),
Zn1 *의 그룹(여기서 n1은 합성 정수임)과,
Zn2 *의 복제 그룹(여기서 n2는 프라임임)
를 포함한다.
상술한 4개의 예시적인 그룹들 중에서, 제1 그룹은 최상의 보안 성능을 가지며, 반면에 나머지 3개는 본 기술 분야에서보다 일반적으로 사용된다. 그룹 G의 "유한 주기" 속성은 그룹 지수 동작의 결과가 결국 그룹 G로 매핑됨을 보장한다. 그러나, 매핑 방법은 그룹별로 다를 수 있다. 더욱이, 생성기의 존재를 보장할 수도 있다.
그 후, 서브그룹 선택기(52)는 순서 m의 서브그룹 G를 선택한다(여기서, m≤n)(단계 S61). m이 프라임으로서 선택된다면, 양호한 보안 성능을 가질 것이다. 서브그룹이 G 자체로서 선택될 수 있는, 또한 m=n을 의미함에 유의해야 한다. 대안의 구현예에서, 그룹 G가 결정 또는 선택된 후라면, G가 수학적으로 그 자체의 서브그룹이기 때문에, 서브그룹의 선택이 생략될 수 있어, 또한 G 자체가 서브그룹으로서 암시적으로 선택될 수 있다. 즉, G 자체가 서브그룹으로서 선택될 때(m=n을 야기함), 이런 선택은 겉보기에는 소멸된다. 물론, 서브그룹의 선택이 생략된다면, 서브그룹 선택기(52)(도 5에서 후술됨)도 또한 생략될 수 있다.
그 후, 정수 선택기(56)는 정수를 비밀 키 x로서 선택하며, 여기서 예컨대, x는 1〈│x│〈m을 만족한다(단계 S62). 간략화를 위해, 이하 개시된 내용이 복수의 공개 키를 하나의 비밀 키로부터 생성하는 방법에 초점을 맞춘다 할지라도, 하나의 터미널이 복수의 비밀 키를 가짐에 유의해야 한다.
그 후, 생성기 생성기(53)는 그룹 G의 생성기를 선택하고 고정한다(단계 S63). G가 유한 주기 그룹인 경우, 적어도 하나의 생성기를 항상 가진다. g 및 x 의 선택이 서로 독립적임에 유의해야 한다. 즉, 단계 S62가 단계 S63 이전에 설명되었다 할지라도, 그 수행 순서는 바뀔 수 있으며, 또는 병렬로 수행될 수 있다.
G, m, x 및 g의 선택 후, 정수 r은 제어부(55)의 제어 하에서 새로운 공개 키를 생성하도록 0 〈│r│〈m을 만족하는 인디케이터로서 선택된다.
G, m, x, g 및 r의 선택 후, 새로운 공개 키는 y1=gr, 및 y2=y1 x의 계산식으로 생성된다(단계 S65). 그 후 공개 키(y1 및 y2)는 단계 S66에서 암호화를 위해 수신기에게 해제될 수 있다. 물론, 공개 키와 함께 해제되는 다른 정보도 있을 수 있다.
g, x 및 r의 선택이 그 선택들 간에 어떤 필수적이며 종속적인 요건이 없음에 유의해야 한다. 예컨대, 단계 S62, S63, S64는 임의의 순서로, 순차적이거나 동시에 수행될 수 있다. 또한, g, x 및 r의 선택은 바람직한 일부 기준에 따라 또는 랜덤하게 수행될 수 있다.
대안적으로, 일부 전술한 절차는 제어부(55)에 의해 생략될 수 있으나, 그렇지 않게 수행될 수도 있다. 예컨대, 그룹 G 및 서브그룹은 위탁 조직과 같은 제3 자에 의해 할당될 수 있다. 그 결과, 제어부(55)는 그룹 및 서브그룹을 선택하는 단계로 스킵하는데, 그 이유는 이들이 외부에서 결정되었기 때문이다. 더욱이, 하나의 익명의 공개 키가 이전에 생성되었다면, 그룹, 서브그룹, 생성기 및 비밀 키 모두가 선택되고 고정되는 것이 확실하다. 따라서, 새로운 공개 키가 생성될 때, 제어부(55)는 이들 4 단계로 스킵하고 후행 단계들로 직접 진행한다.
y1 또는 y2가 원래 그룹 G의 범위 밖에 있다면, 이들은 그룹 G로 매핑되야만 한다. 매핑 방법은 다른 그룹에서는 변할 수 있다. 그러나, 주기 그룹 G는 이런 매핑 방법의 존재를 보장한다.
전술한 단계가 시스템의 단일 디바이스/모듈(직접되거나 개별 컴포넌트로서)에서, 또는 일부 단계를 수행하는 시스템의 각 디바이스에서의 분산 방식 중 어느 하나로 수행된다.
그룹, 서브그룹 및 생성기 선택의 예는 이하에 개시된다. 그룹 Zp *가 선택된다고 가정할 때(p=11), Z11 * ={1,2,3,4,5,6,7,8,9,10}이다. 11이 프라임이기 때문에, 수학적으로 Z11 *의 순서는 11-1=10이다. 엘리먼트 2는 Z11 *={2imod 11/i=0,1,...,9}인 것을 용이하게 검증할 수 있는 Z11 *의 생성기이다. 그룹이 또한 그 자체의 서브그룹이기 때문에, 서브그룹은 Z11 *로서 선택된다. 예컨대 서브그룹의 다른 선택은 순서 5의 생성기(3)을 갖는 {1,2,3,4,5,9}이다. 이것은 35=1 mod 11을 용이하게 검증한다.
더욱이, 당업자에게 이해될 수 있는 바와 같이, 모든 디바이스 및 컴포넌트는 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합에서 각종 고려에 따라 구현될 수 있다.
도 6에 일차적으로 도시된 예시적인 방법은 APK 기술에 따라 익명의 공개 키를 생성하는데 이용가능한 수많은 방법 중 유일한 방법이다. 동일한 목적에 대해 사용될 수 있으며, 성능의 최적화를 달성하는 보다 진보된 방법이 존재한다. 최적화 방법을 기술하기 위하여, 공지된 인코딩 및 디코딩 절차가 도 4, 5 및 7을 참고로 간단히 요약된다. 여기서, ⊙은 그룹 G의 반전가능한 동작이며, Ø은 ⊙의 정확한 반전 동작이다. APK 기술은 도 7의 절차에 적용된다.
일반 텍스트 M을 암화화하기 위하여, M은 G의 엘리먼트로서 먼저 표현된다(예컨대, M은 ASCII 코드로서 표현된다)(단계 S70). 그 후 정수 k는 1〈│k│〈m을 만족하는 지정자로서 선택되고(단계 S71), 한쌍의 값은 다음과 같이 계산된다(단계 S72).
C1 = y1 k , 및
C2 = M⊙y2 k
여기서, C1 및 C2는 그룹 G 맴버이다. 이들 동작 모두는 도 4에서 인코딩 디바이스(48)에 의해 행해질 수 있다. ⊙의 예는 그룹 G의 곱샘, 나눗셈, 덧셈 및 뺄셈일 수 있다. C1 또는 C2가 원래 그룹 G의 밖에 있다면, 이들은 그룹 G로 매핑되야만 한다. 매핑 방법은 다른 그룹에서는 변한다.
이때, 메시지 M의 암호화 텍스트는 C=(C1,C2)로서 얻어지며(단계 S73), 송신부(44)에 의해 통신 채널을 통해 송신될 수 있다.
인코딩될 그룹 G의 범위 밖에 있는 메시지 M에 대해서는, 그것은 인코딩 전에 수 개의 그룹 멤버들로 변환되어야 한다. 후속 디코딩에 이어서, 복원된 그룹 멤버들은 다시 최초의 메시지로 변환될 수 있다. 변환 방법들은 서로 다른 그룹들에 대하여 변할 수 있다. 하나의 예는 메시지를, 각각이 그룹 G의 멤버인, 수 개의 블록들로 분해하고, 모든 블록들을 연쇄(concatenate)시켜 M을 재구성한다.
통신 채널의 다른 쪽에서는, 암호-텍스트 메시지 C가 수신된다(단계 S74). 암호 텍스트 C로부터 일반 텍스트(plain text)를 검색(retrieve)하기 위하여, 먼저 직접 멱승법(direct exponentiation)인지 아닌지 2개의 방법 사이에서 결정되어야 한다(단계 S75). 만일 그렇다면, rb=C1 x가 먼저 계산되고(단계 S76) 그 후 M=C2Ørb를 계산하여(단계 S77) M이 얻어지고; 그렇지 않다면, ra=C1 -x가 먼저 계산되고(단계 S78) 그 후 M=C2⊙ra를 계산하여(단계 S79) M이 얻어진다.
암호 텍스트(C1, C2)의 성공적인 복호화 후에, 복호화의 구현에 따라서는, APK 생성 장치(49)는, APK 기법에 따라서, 수신된 암호 텍스트뿐만 아니라 중간 복호화 출력 ra를 이용하여 (y1=C1 -1, y2=ra)의 형태의 새로운 익명 공개 키(anonymous public key)를 생성시킬 수 있다. 유사하게, APK 생성 장치(49)는 수신된 암호 텍스트뿐만 아니라 중간 복호화 출력 rb를 이용하여 (y1=C1, y2=rb)의 형태의 새로운 익명 공개 키를 생성시킬 수 있다. 새로운 익명 공개 키를 생성시키는 어느 쪽 방 법에서든, 멱승법 계산이 회피되고 계산 효율이 향상된다.
또한, 단일 익명 공개 키 (y1, y2)가 제공되는 경우, APK 생성 장치(49)는 (y2, y2 x)의 형태의 새로운 익명 공개 키를 생성시킬 수 있다. 이 방법은 일련(chain)의 공개 키들을 생성시키기 위해 다수 회 이용될 수 있다. 이런 식으로, 공개 키의 제2 부분, y2가 그것의 다음 것의 제1 부분과 동일하기 때문에 생성된 공개 키들의 저장 소비(storage consumption)가 크게 저감된다. 일련의 w개 공개 키들에 대해서는, 저장의 (w-1)/2w 퍼센트까지 절약되고 이는 충분히 큰 w에 대해서는 대략 50% 절약을 의미한다.
APK 기법에서는, 생성기(generator)의 멱승들(powers)에 기초하여 동일한 생성기를 이용하여 공개 키들이 생성되므로, 생성기 g의 멱승들은 일련(series)의 공개 키들을 생성시키기 위해 재사용될 수 있고, 그것은 멱승법 대신에 승법(multiplication)을 수반하므로, 메모리 저장을 절약하고 계산을 가속화한다. 한편, 생성기의 멱승들의 하나의 테이블만 디코딩 장치에 유지될 필요가 있으므로, 새로운 공개 키들의 계산은 오프라인으로 수행될 수 있다.
예를 들면, 컴플리멘테이션(complementation)에서, 암호 텍스트 메시지 C=(C1,C2)가 디코딩 장치에서 수신되는 경우, 새로운 공개 키들을 생성시키기 위해 C1이 검색되어 이용될 수 있다. 설명한 바와 같이, C1=y1 k=grk이고, 곱 "rk"는 또 하나의 정수일뿐이므로 새로운 공개 키들을 생성시키기 위해 grk가 저장될 수 있다. 비록 새로운 공개 키들을 생성시키기 위해 grk가 저장될 수는 있지만, 인코딩 장치가 인코딩된 메시지를 송신할 때 k를 드러내지 않는 한, rk의 값은 여전히 디코딩 장치에게 미지의 것일 수 있음을 유의해야 할 것이다.
단일 익명 공개 키 (y1, y2)가 제공되는 경우, APK 생성 장치(49)는 (y1× y1, y2×y2)의 형태의 새로운 익명 공개 키를 생성시킬 수 있고, 여기서 ×는 그룹 승법(group multiplication)이다. 일반적으로, 수 개의 익명 공개 키들 (y11, y21), (y12, y22), ...,(y1j, y2j)(여기서, j≥2)이 제공되면, g의 복수의 저장된 멱승들에 기초하여, y11=gr1, y12=gr2, ..., y1j=grj, 및 y21=y11 x, y22=y12 x, ..., y2j=y1j x이고, 새로운 공개 키는 (y1(j+1)=y11y12...y1j, y2(j+1)=y21y22...y2j)로서 계산될 수 있고, 여기서 y11y12...y1j는 y11, y12, ..., y1j의 곱이고, y21y22...y2j는 y21, y22, ..., y2j의 곱이다. 분명히, 새로운 익명 공개 키를 생성시키기 위해, 멱승법 계산은 승법으로 대체되어 계산 효율이 향상된다. 승법은 온라인으로 수행될 수 있으므로, 이런 식으로 생성된 새로운 공개 키들은 미리 계산될 필요가 없고, 이는 바로 저장 공간의 절약을 의미한다.
상기 최적화 기법들은 새로운 익명 공개 키들을 생성시키기 위해 공동으로 사용될 수 있다. 예를 들면, 일련의 암호 텍스트들 (C11, C21), (C12, C22) ...(C1j, C2j)(여기서, j≥2)를 수신하여 성공적으로 복호화한 후에, APK 생성 장치(49)는 수신된 암호 텍스트들뿐만 아니라 중간 복호화 출력들 rb1, rb2, ..., rbj를 이용하여 (y1=(C11C12...C1j), y2=(rb1rb2...rbj))의 형태의 새로운 익명 공개 키를 생성시킬 수 있고, 여기서 C11C12...C1j는 C11,C12, ...C1j의 곱이고, rb1rb2...rbj는 rb1,rb2,...,rbj의 곱이다.
또한, y2의 계산을 이용하여, 일련의 공개 키들이 (y2 W1, y2 W2)로서 계산될 수 있고, 여기서 w1=xw, w2=x(w+1), w≥0이다. 또한, 이 계산에서 얻어진 모든 결과들, 구체적으로 g의 멱승들은 추가적인 공개 키들을 생성시키기 위해 이용될 수 있다.
또한, 암호 텍스트 메시지 C로부터 검색된 C1에 기초하여, 디코딩 장치는 더 많은 새로운 공개 키들을 생성시킬 수 있다. 이를 위하여, C1 x 및 C1 -x가 계산되어 저장될 수 있고, 그 후 2개의 일련의 공개 키들이 생성될 수 있다. 일반적으로, 복수의 암호화된 메시지들 CC1=(C11,C12), CC2=(C21,C22),..., CCj=(Cj1,Cj2)가 수신되는 경우, C1 x의 경우에 대해서는, 일련의 공개 키들이 ((C11C21...Cj1)u1, ((C11C21...Cj1)u2)로서 생성될 수 있고, 여기서 C11C21...Cj1는 C11, C21,..., Cj1(여기서 j≥1)의 곱이고, u1=xu, u2=x(u+1)(여기서 u≥0)이고, C1 -x의 경우 대해서는, 또 다른 일련의 공개 키들이 ((C11C21...Cj1)v1, ((C11C21...Cj1)v2)로서 생성될 수 있고, 여기서 C11C21...Cj1는 C11, C21,..., Cj1(여기서 j≥1)의 곱이고, v1=-xv, v2=-x(v+1)(여기서 v≥0)이다. 또한, 이 계산에서 얻어진 모든 결과들, 구체적으로 g의 멱승들은 추가적인 공개 키들을 생성시키기 위해 이용될 수 있다.
[변용성있는 가명 인증서(Malleable Pseudonym Certificate)]
다음 설명에서, 본 발명의 일반적인 개념을 설명한다.
전술한 공동 계류중인 출원에서 설명한 바와 같이, APK 기술은, 대량의 익명 공개 키를 어떻게 증명할 것인가에 대하여 문제를 제기한다. 대량의 익명 공개 키를 증명할 수 있는 솔루션에 대하여, 우리는 다음과 같을 것을 희망한다:
1. 보안성. 누구도 증명서를 위조할 수 없고, 누구도 증명서의 소유자로서 눈속임을 할 수 없다.
2. 신뢰성. 사용자 프라이버시는 어떠한 증명서를 통해서도 노출되지 않는다.
3. 취소가능성. 사용자가 익명성을 남용하는 경우에는, 사용자의 실제 신분을 노출시킬 수 있다.
4. 신용성. 증명서는 비지니스 의의를 갖는다.
5. 분산화. APK의 배분 방법에서와 같이, 증명 솔루션은 분산화되어야 한 다.
6. 효율성. 제3 당국의 관련이 없을수록 더 좋다.
전술한 바와 같이, 전통적인 증명 방법은 많은 결점이 있다. 또한, APK는 배분 프라이버시 보호 솔루션이기 때문에, 집중화 증명 솔루션은 APK 솔루션에는 적당하지 않다.
따라서, 사용자의 데이터를 증명하기 위한 배분 솔루션, 즉 MPC(Malleable Pseudonym Certificate) 솔루션이 앞당겨진다.
본 발명의 MPC 솔루션은 대량의 익명 공개 키를 증명하기 위한 신규한 솔루션이다. 증명서 전체가 신뢰하는 개체에 의해 생성되어 발행되는 전통적인 솔루션과는 달리, MPC 솔루션은, 데이터를 다른 사람들에 의해 검증할 필요가 있는 사용자가 자기 혼자서 신뢰된 개체로부터 취득한 루트 증명로부터 가명 인증서를 생성하는 배분 솔루션이다.
루트 증명(root proof)는 사용자가 가명 인증서를 생성하기 위한 신뢰하는 개체에 의해 발행되는 증명서일 수 있다. 이하, 이러한 증명서를 루트 증명서라고 부른다. 루트 증명은 또한, 사용자가 그룹 멤버의 이름으로 가명 인증서를 생성할 수 있게 하는 그룹 공개 키일 수 있다. 그러나, 루트 증명은 그렇게 제한적이지 않다. 루트 증명은, 사용자의 신용을 증명받고, 가명 인증서가 특정한 알고리즘에 의해 생성될 수 있게 하는 임의의 데이터일 수 있다.
도 8a는 MPC 솔루션의 일반적인 개념을 개략적으로 나타내는 블록도이다.
사용자 U는, 네트워크를 통해 다른 사용자들과 통신하는 네트워크 내의 사용 자이다. 통신 세션동안, U 데이터의 일부는 또 다른 사용자 혹은 피어(peer)에 의해 검증을 요청받을 수도 있다. 예를 들어, 사용자 U의 데이터 DATA1은 사용자 V1에 의해 검증되고, U의 데이터 DATA2는 사용자 V2에 의해 검증되고, U의 데이터 DATA3은 사용자 V3에 의해 검증된다. 이후에, 신용을 얻기 위해 사용자 U의 데이터를 검증하기를 원하는 사용자 혹은 피어는 검증기로 칭한다.
DATA1, DATA2, 및 DATA3은 서로 다른 통신 세션에 대한 사용자의 서로 다른 공개 키일 수 있다. 일 구현에서, 이들 데이터는 비교불가능한 공개 키(incomparable public keys)이거나 APK이다. 그러나, 데이터는 공개 키에 한정되지 않는다. 인증될 데이터는 다양한 목적을 위한 임의의 데이터일 수 있다.
데이터를 인증하기 위해, 사용자 U는 데이터를 검증기(V1, V2, V3, 등)에게 보내는데, 여기서 데이터는 PC1, PC2, PC3 등과 같은 인증서를 갖추고 있다. MPC 솔루션에서, 이 증명서들은 모두 신뢰된 개체(trusted entity)로부터 사용자 U에게 발행된 루트 증명으로부터 생성된다. 이 증명서들(PC1, PC2, PC3 등)은 신뢰된 개체의 어떠한 개입도 없이 사용자 U 자신에 의해 산출된다는 것은 주목할만하다. 검증기는 그러한 첨부된 인증서에 의해 사용자 U의 데이터를 검증하고, 그 데이터는 신뢰된 개체에 의해 인증된 인증서에 의해 보증될 수 있다. 검증기가 상기 신뢰된 개체를 신뢰한다면, 그는 사용자 U의 데이터의 진정성(authenticity)을 믿을 수 있다.
신뢰된 개체는 CA, 믿을만한 그룹, U의 친구, 혹은 U의 신뢰를 받는다는 것이 증명될 수 있는 그 외의 일행(party)일 수 있다.
본 발명에 따른 MPC 솔루션에서, 검증기는 U의 데이터가 신뢰된 개체에 의해 인증된다는 것을 인증서에 의해 검증하고 신용을 얻을 수 있는 반면, 인증서는 사용자에 의해 생성될 수 있으므로 검증기는 사용자 U의 실제 ID(real identity), 즉, 사용자 데이터의 홀더는 결코 파악할 수 없다. 따라서, 사용자에 의해 생성된 인증서는 이후에 가명 인증서(pseudonym certificates)라 칭한다.
사용자의 데이터가 APK인 경우에, APK와 가명 인증서의 각 쌍은 검증기, 예컨대, V1에게 보여질 수 있다. V1은 APK가 신뢰된 개체에 의해 인증된다는 것을 검증하고 신용을 얻는 반면, V1은 APK 및 가명 인증서 쌍의 홀더는 결코 파악할 수 없다. 사용자가 V1과 여러 번 통신했다고 하더라도, 사용자는 매번 별개의 익명 공개 키(anonymous public key) 및 가명 인증서(pseudonym certificate) 쌍를 보게 되므로, V1은 자신이 그 사용자와 교신하고 있는지 여부를 이야기할 수가 없다.
도 8b는 본 발명에 따른 MPC 솔루션의 일반적인 검증 프로세스를 개략적으로 나타내는 순서도이다.
단계 81에서, 사용자는 신뢰된 개체로부터 루트 증명을 얻는다. 예를 들어, 사용자는 그/그녀의 기본 데이터(이후에 루트 데이터라 칭함) 및 그들의 사용자 증명을 CA에게 준다. CA는 사용자의 루트 데이터 및 루트 데이터의 사용자 증명(user's proof)의 식별 조사(identification examination)를 수행한다. 사용자가 CA의 식별 조사를 통과한 후, CA는 사용자에게 증명서(certificate)를 발행한다.
단계 82에서, 사용자는 루트 증명으로부터 가명 증명서를 생성한다. 동일한 루프 증명으로부터, 사용자는 복수의 구별되는 가명 인증서들을 생성할 수 있다.
단계 83에서, 사용자는 사용자의 데이터(하나의 가명 인증서를 갖춤)를 검증기에 보낸다.
단계 84에서, 검증기는 가명 인증서에 의하여 상기 사용자의 데이터를 확인한다. 데이터는 신뢰된 개체(trusted entity)에 의하여 증명되는 바대로 가명 인증서에 의하여 증명되므로, 검증기는 검증기가 신뢰된 개체에서 신뢰한다면 사용자의 데이터는 믿을 수 있는 것으로 확신할 수 있다. 그 후, 검증기는 상기 데이터에 기초하여 유저와 안전하게 통신할 수 있다. 예를 들어, 사용자의 데이터가 익명의 공개 키(anonymous public key)인 경우에, 사용자는 그 또는 그녀의 메시지를 디지털 서명할 수 있거나 검증기가 그 또는 그녀의 익명의 공개 키에 모두 기초하여 그 또는 그녀에 대한 메시지를 암호화할 수 있다. 그러나, 사용자의 데이터는 사용자의 익명의 공개 키에 한정되는 것은 아니다. 예를 들어, 사용자의 비교 불능의 공개 키일 수 있다.
도 8a 및 8b로부터 알 수 있는 바와 같이, 사용자는 신뢰된 개체에 의하여 증명된 바대로 가명 인증서에 의하여 데이터가 확인되는 신뢰할 만한 데이터를 생성할 수 있다. 사용자 사생활 보호의 기능은 전체적으로 분포된다. 사용자는 그 또는 그녀에 의한 구별되는(distinct) 가명 인증서 뿐만 아니라 구별되는 익명의 공개 키를 생성한다. 신뢰된 개체는 사용자의 루트 데이터에 대한 루트 증명을 발행할 필요만 있다. 예를 들어, CA는 그 또는 그녀의 루트 공개 키에 대한 루트 증명서(RC)를 사용자에게 발행한다. 증명서 인가 개입(Certificate Authority intervention)은 최소화되므로 CA의 경량 실행(lightweight implementation)이 실행 가능하다.
또한, 본 발명에 따른 MPC 솔루션으로, 사용자의 루트 증명은 신뢰된 개체에 의하여 저장되어 가명 인증서는 신뢰된 개체에서 추적가능(traceable)하게 될 수 있다.
사용자 U가 부적절하게 행동하는 경우, 예를 들면, 그 또는 그녀가 메시지를 디지털 서명하지만 나중에 그것을 부인하는 경우, 희생자(victim)는 신뢰된 개체에 사용자 U의 가명 인증서를 다시 보낼 수 있다. 가명 인증서의 실제 보유자를 찾는 능력을 갖는 것은 신뢰된 개체일 것이고 오직 신뢰된 개체일 것이다.
U가 쌍을 이루는 익명의 공개 키와 가명 인증서를 생성하는 구체적인 예를 고려한다. 그 후 그 또는 그녀는 상기 키와 증명서를 입증하는 V1과 통신한다. 가명 인증서에 기초하여, V1은 익명의 공개 키가 신뢰된 개체에 의하여 진정으로 증명되는 것을 확인한다. 따라서, 그 또는 그녀가 V1 50$를 지불할 것을 서명할 때, V1은 그 또는 그녀가 만든 e-북(e-book)을 U에게 보낸다. V1은 익명의 공개 키와 가명 인증서만 보기 때문에, 그 또는 그녀는 구매자의 실제 신원을 모른다.
그럼에도 불구하고, U 가 사취한다면 (bilk), V1 은 신뢰된 개체 (trusted entity)가 가명 인증서의 실제 홀더를 노출시킬 수 있는 신뢰된 개체로 가명 인증서를 송신할 수 있다. 이러한 경우에, 홀더는 페널티를 그 결과로서 수신할 U 이다. 이러한 방식으로, 사용자는 시스템의 익명 용량을 악용할 수 없다.
[제1 실시예]
이하의 설명에서, 본 발명에 따른 제1 실시예는 도 9-18 을 참조하여 설명될 것이다.
도 9 는 본 발명의 제1 실시예의 시스템 구성을 대략적으로 나타내는 블록도이다.
제1 실시예에 따르면, 신뢰된 개체는 인증 기관이다. 검증기에 의해 검증될 사용자 U의 데이터는 사용자 U의 공개 키이다.
U가 개인 식별 검사를 통과한다면, CA 는 루트 인증서를 발행한다. U는 그의/그녀의 익명 공개 키를 위하여 루트 인증서로부터 가명 인증서를 생성한다. 그 후, U는 가명 인증서 (PC1, PC2, PC3,...) 가 설치된 익명의 공개 키 (APK1, APK2, APK3,...) 를 검증기 V(V1, V2, V3,...) 로 송신한다. 소정의 조건들이 충족된다면, V는 U로부터 수신한 가명 인증서를 검증하고, 인증서를 수용한다.
제1 실시예에서, U는 CA 의 개입 없이 RC로부터 소정의 익명의 공개 키를 위한 가명 인증서를 도출할 수 있으며, V는 역시 CA 와 연관될 필요없이 가명 인증서에 기초하여 U의 진위를 판정할 수 있다.
또한, V는 U로부터 수집된 데이터를 저장할 것이며, 소정의 환경하에서, 예를 들어 U 가 위법적으로 행동한다면, V는 U로부터 CA 로 수집된 데이터를 건네주고, CA는 U의 실제 아이덴티티를 밝힐 수 있다.
이하의 설명에서, 암호는 스트롱 RSA (SRSA) 가정에 기초하는 것으로 추정된다. SRSA 의 상세사항을 위해서, 참조로서 통합된 N. Baric', B. Pfitzmann, Collision-free Accumulators and Fail-stop Signature Schemes without Trees, Advances in Cryptology-EUROCRYPT'97, pp. 480~494, 1997; 그리고 R. Cramer, V. Shoup, Signature Schemes Based on The Strong RSA Assumption, ACM Transaction on Information and System Security, vol. 3(3): 161~185,2000 를 참조하라.
또한, 몇몇 증명 기술이 본 발명의 실시예들에서 이용될 수도 있는데, 이는 하나의 증명기로 하여금 소정의 값의 지식에 대한 검증기를 확인시키며, 그 값 자체에 대한 유용한 정보가 누설되지 않는다.
본 발명에 따른 제1 실시예에서는, 소위 정보 증명 기법이 이용된다(참조로서 사용되는 S. Goldwasser, S. Micali, C. Rackoff의 The Knowledge Complexity of Interactive Proof Systems, 17th ACM Symposium on Theory of Computation, pp. 291~304, 1985 참조). 제로-지식에서의 이산 로그(logarithm)의 지식을 증명하는 많은 방법이 제안되었다(참조로 사용되는 A. Fiat, A. Shamir의 How To Prove Yourself: Practical Solutions to Identification and Signature Problems, Advances in Cryptology-CRYPTO'86, pp. 186~194, 1986; D. Chaum의 Demonstrating Possession of a Discrete Logarithm without Revealing It, Advances in Cryptology-CRYPTO'86, pp. 200~212, 1987; D. Chaum, J. H. Evertse, J. van de Graaf의 An Improved Protocol for Demonstrating Possession of Discrete Logarithms and Some Generalizations, Advances in Cryptology-EUROCRYPTO'87, pp. 127~141, 1987; D. Chaum, T. P. Pedersen의 Wallet Databases with Observers, Advances in Cryptology-CRYPTO'92, pp. 89~105, 1993; 및 K. Sako, J. Kilian의 Receipt-Free Mix-Type Voting Scheme-A Practical Solution to the Implementation of a Voting Booth, Advances in Cryptology-CRYPTO'98, pp. 393~403, 1998 참조).
본 발명의 제1 실시예에서, 다음의 수학식1을 이용하여 공통 입력 (gj, yj)을 대한 프로버와 검증기 간의 정보 증명을 표시한다:
Figure 112006068320357-PAT00001
여기서 gj는, 모든 j = 1, ..., i에 대해 xj의 지식을 증명하는 <gj>, j = 1, ..., i를 생성하여 yj = gj xi 및 aj < xj < bj가 유지되게 한다. aj < xj < bj를 증명하는 방법은 T. Okamoto의 An Efficient Divisible Electronic Cash Scheme, Advances in Cryptology-CRYPTO'95, pp. 438~451, 1995, 및 RBC(Range Bounded Commitment)란 이름으로 후에 발간된 A. Chan, Y. Frankel, Y. Tsiounis의 Easy Come-Easy Go Divisible Cash, Advances in Cryptology-EUROCRYPT'98, pp. 561~575, 1998에 제시되어 있다. 상술한 문헌들의 개시 내용은 본 명세서에 참조로 사용된다.
상기 수학식 1은 곱셈식에 대한 증명의 경우로 일반화될 수 있다. 예를 들면,
Figure 112006068320357-PAT00002
은, a < x1 < b라고 주어진다면, x1과 x2의 제로-정보 증명을 표시하여 y1 = g1 x1h1 x2와 y2 = g2 x2가 동시에 유지되게 한다.
다음으로, 도 10 내지 도 16을 참조하여 본 발명의 제1 실시예에 따른 방법의 세부 사항을 설명한다.
본 발명의 제1 실시예에 따른 방법은 시스템 개시, RC 요청, MPC 유도, 익명 인증 및 (필요한 경우의) 추적 등의 다섯 단계로 주로 구성된다.
도 10은 본 발명의 실시예에 따라 시스템 개시 단계 동안의 CA 초기화 프로세스의 일례를 보여주는 순서도이다.
단계 101에서, CA는 SRSA률 nc를 생성한다. nc의 인수 분해는 비밀로 유지된다.
단계 102에서, CA는 소수 p와 q를 생성하고, p-1은 q로 정확히 나눠진다.
단계 103에서, CA는 정수 Iq =
Figure 112006068320357-PAT00003
, 즉 q의 길이를 계산한다.
단계 104에서, CA는 Z* p로부터 GF(q)(q차 유한 필드)의 하나의 생성기를 선택한다.
단계 105에서, CA는 QR(nc)로부터 정수 ca, cb 및 cc를 선택한다.
단계 106에서, CA는 정수 Ic < Iq를 선택한다.
전술한 수학적 개념은 참조로 인용되는 A. Menezes, P. van Oorschot, S. Vanstone의 Handbook of Applied Cryptography(CRC 출판사, 1996)에서 볼 수 있다. 마지막으로, 단계 107에서, CA는 nc, p, q, g, lq, ca, cb, cc 및 lc를 인터넷 등의 네트워크에 발행한다.
도 11은 본 실시예에 따라 시스템 개시 단계 동안의 사용자 초기화 프로세스의 일례를 보여주는 흐름도이다.
CA에 의해 발행된 시스템 파라미터에 따라, 사용자 U는 단계 111에서 자신의 비밀 키 xu ∈ (0,2lq)를 선택한다.
단계 112에서, 사용자 U는 자신의 루트 공개 키(g,yu=gxu)(mod p)를 계산한다.
RC를 얻기 위해, U는 자신의 아이덴티티를 CA에 인증할 필요가 있고, CA는 yu가 다른 사용자에 의해 공개 키로서 사용되지 않았음을 확인하여야 한다.
도 12는 본 발명의 실시예에 따른 RC 요청 프로세스의 일례를 보여주는 흐름도이다.
단계 121에서, 사용자 U는 au = ca xu(mod nc)를 계산한다.
단계 122에서, 사용자 U는 자신의 루트 공개 키(g,yu) 및 au를 CA에 제공한 다.
단계 123에서, 사용자 U 및 CA는 다음과 같은 정보 증명을 수행한다.
Figure 112006068320357-PAT00004
정보 증명이 성공적이면, 단계 124에서, CA는 충분히 큰 랜덤 소수 eu > 22lq+1, gcd(eu,f(nc))=1를 선택하고, eu가 다른 사용자에게 할당되지 않았음을 확인하며, su = (cb/au)1/eu(mod nc)를 계산한다.
단계 125에서, CA는 (g,yu) 내지 (eu,su)를 RC로서 사용자 U에게 제공한다.
단계 126에서, CA는 가능한 추적을 위해 사용자 U의 이름으로 디마스킹 eu를 데이터베이스에 저장한다.
단계 127에서, 사용자 U는 합동식 cb = su eu x au(mod nc)가 유효하다는 것을 증명한다.
상기 RC는 2짝 (eu,su)이며, eu는 진정한 RSA 공개 키이고, su는 cb/au의 디지털 서명이다. 하지만, 다음 단계에서 증명되는 바와 같이, 이 단일 서명의 제공시에, U는 자신의 모든 익명 공개 키에 대한 증명을 효과적으로 유도할 수 있다. RC는 (gr,yu r) 형식에 따라 모든 익명의 공개 키를 서명하는 디지털 서명이다.
도 13은 본 실시예에 따라 사용자 U가 익명의 공개 키를 생성하는 방법을 보 여주는 흐름도이며, 도 14는 본 실시예에 따라 사용자 U가 RC로부터 익명의 공개 키에 대한 가명 인증서를 유도하는 방법을 보여주는 흐름도이다. 익명의 공개 키 및 가명 인증서 모두는 사생활 보호와 익명의 인증성을 보장한다.
도 13에 도시되어 있는 바와 같이, 사용자 U는 단계 131에서 {0,1,...,2lc-1}로부터 정수 r을 선택하고, 단계 132에서 익명의 공개 키(gr,yu r)(mod p)를 계산한다.
도 14에 도시되어 있는 바와 같이, 사용자 U는 단계 141에서 {0,1,...,q-1}로부터 정수 t를 선택하고, 단계 142에서
Figure 112006068320357-PAT00005
Figure 112006068320357-PAT00006
를 계산한다.
가명 인증서는 실제로 2 터플(tuple)
Figure 112006068320357-PAT00007
이다.
이제, U는
Figure 112006068320357-PAT00008
를 가졌으며, eu,xu 및 -teu의 정보는 다음 단계에서 검증기로 증명될 것이다.
익명의 공개 키 및 가명 인증서의 준비 후에, U는 이를 검증기로 제공할 수 있다.
도 15는 본 실시예에 따른 익명의 인증 프로세스의 일례를 보여주는 흐름도이다.
단계 151에서, 사용자 U는 익명의 공개 키(y1r=gr, y2r=yu r) 및 가명 인증서
Figure 112006068320357-PAT00009
을 검증기 V에 제공한다.
단계 152에서, V는
Figure 112006068320357-PAT00010
를 계산한다.
단계 153에서, 사용자 U 및 검증기 V는 다음의 정보 증명을 수행한다:
Figure 112006068320357-PAT00011
단계 154에서, V는 가능한 추적에 대한 상기 정보 증명의 사본을 저장한다.
CA가, 도 12의 단계 126에서 사용자 U의 명칭으로 자신의 데이터베이스에 디마스킹 eu를 저장했기 때문에, CA는 추적 능력을 갖는다.
V가, U의 익명의 공개 키를 공인된 CA CMS로서 접수하고, U와의 트랜잭션(transaction)을 수행한 후에, U가 부적절하게 동작하면, V는 U의 부적절한 동작의 증거를 CA에 제공할 수 있고, CA에 도움을 요청할 수 있다. CA는 V로부터 수신된 증거를 명확하게 조사할 것이다. CA의 관점에서, V가 U의 실제 아이덴티티(real identity)를 안다는 확실한 이유가 존재하면, CA는 V와 협력하여, U의 실제 아이덴티티를 확인할 수 있다.
도 16은 본 실시예에 따른 추적 처리를 나타내는 순서도이다.
단계 161에서, V는 가명 인증서
Figure 112006068320357-PAT00012
를 CA에 제출한다.
단계 162에서, 데이터베이스에 저장된 모든 디마스킹 eu에 대해서, CA는
Figure 112006068320357-PAT00013
를 계산하고, 그 결과를
Figure 112006068320357-PAT00014
와 비교한다.
Figure 112006068320357-PAT00015
의 매칭은 가명 인증서
Figure 112006068320357-PAT00016
보유자의 디마스킹 값을 밝힌다. 이러한 방식으로, CA는 U의 실제 아이덴티티를 발견 및 공개할 수 있다.
다음으로, 사용자측 및 CA측의 예시적 장치가 도 17 및 18을 참조하여 기술될 것이다.
도 17은 제1 실시예에 따라서 사용자의 예시적 장치(170)를 나타내는 블록도이다.
도 17에 도시된 바와 같이, 사용자 장치(170)는 기본적으로, CA로부터 RC를 수신하기 위한 루트 증명부(171), RC에 기초해서 가명 인증서를 생성하기 위한, 루트 증명부(171)에 접속된 가명 인증서 생성부(172), 및 가명 인증서를 갖는 사용자의 데이터를 송신하기 위한, 가명 인증서 생성부(172)과 접속된 송신부(173)를 포함한다.
루트 증명서가 네트워크를 통한 디지털 요청에 의해 요청되는 경우, 사용자 장치(170)는, RC에 대한 요청을 생성하고, 그 요청을 CA에 송신하기 위한 루트 증명 요청부(174)를 더 포함할 수 있다.
검증기에 의해 검증될 사용자의 데이터는 공개 키, 비교불가능 공개 키, 익명의 공개 키 등일 수도 있다. 익명의 공개 키의 경우, 사용자 장치(170)는 익명의 공개 키를 생성하기 위한 익명의 공개 키 생성부(175)를 더 포함할 수도 있다. 익명의 공개 키 생성부(175)의 상세한 구조는 전술한 APK 기법에서 발견할 수 있다. 가명 인증서에 의해 증명되는 사용자의 데이터가 익명의 공개 키가 아닐 때, 익명의 공개 키 생성부(175)은 대응하는 데이터 생성부에 의해 대체될 수 있다.
RC의 발행에 사용자와 CA 간의 프로세스를 증명하는 것이 요구되거나, 검증기가 인증 프로세스 동안의 정보 증명을 요구하면, 사용자 장치(170)는 검증기 또 는 CA로 증명 동작을 실행하기 위한 증명부(176)를 더 포함할 수도 있다.
전술한 유닛은 각 유닛에 의해 사용된 데이터를 저장하기 위한 메모리를 각각 포함할 수도 있다. 또 다른 구현에서는, 사용자 장치(170)는 그 장치가 동작하는 동안 모든 유닛에 의해 사용된 데이터를 저장하기 위한 저장부(177)를 포함할 수도 있다.
대부분, 사용자는 또 다른 사용자의 수신 데이터를 검증할 필요가 있다. 그러므로 사용자 장치(170)는 첨부된 가명 인증서에 의해 또 다른 사용자로부터 수신되는 데이터를 검증하기 위한 검증부(178)를 포함할 수도 있다.
루트 증명부(171), 송신부(173), 루트 증명 요청부(174), 증명부(176) 및 검증부(178)은 각 통신 유닛을 통해, 또는 그러한 유닛과 연결된 사용자 장치(170) 내의 통신 유닛을 통해 네트워크에/로부터 데이터를 송신/수신하여 네트워크를 통해 다른 장치와 통신한다.
전술한 유닛은 서로 연결되어 본 발명의 제1 실시예에 따른 프로세스를 실행한다. 유닛이 하드웨어 모듈로서 구현될 때, 그 유닛은 데이터 버스에 의해 서로 연결될 수 있다.
도 18은 제1 실시예에 따른 CA의 예시적인 장치(180)을 나타내는 블록도이다.
도 18에 도시한 바와 같이, CA 장치(180)는 시스템 파라미터를 계산하기 위한 시스템 파라미터 계산부(181), 시스템 파라미터 계산부(181)에 연결되고, 네트워크의 모든 사용자에 의해 공유되는 파라미터를 공개하기 위한 파라미터 공개 부(182), 네트워크에 연결되고, 사용자로부터 RC 요청을 수신하기 위한 루트 증명 요청 수신부(183), 루트 증명 요청 수신부(183) 및 시스템 파라미터 계산부(181)에 연결되고, 루트 증명 요청에 응답하여 사용자를 위한 RC를 생성하기 위한 루트 증명 생성부(184)을 기본적으로 포함한다.
사용자의 RC 요청이 조사된 다음 루트 증명서가 발행되는 경우, CA 장치(180)는, 루트 증명 요청 수신부(183)에 연결되고, 사용자의 RC 요청에 응답하여 식별 조사를 실행하기 위한 검사부(185)를 더 포함한다. 식별 조사는 전술한 정보 증명 프로세스를 포함할 수도 있다.
추적 능력이 필요한 경우에는, 루트 증명 생성부(184)에 의해 생성된 루트 증명의 저장된 디마스킹 값을 사용하여, 검증기로부터 수신된 가명 인증서 보유자의 아이덴티티를 추적하는 네트워크에 접속된 추적부(186)를 더 포함할 수 있다.
전술한 유닛은 개별 유닛이 사용하는 데이터를 저장하는 메모리를 각각 포함할 수 있다. 또 다른 구현예에서, CA 장치(180)는 이 장치가 동작하는 동안 모든 유닛에 사용되는 데이터를 저장하는 저장부(187)를 포함할 수 있다. 예를 들면, 루트 증명 생성부(184)이 생성한 RC는 루트 증명 생성부(184) 내부의 메모리에 저장되거나 저장부(187)에 저장될 수 있다.
상기 유닛은 서로 접속되어 본 발명의 제1 실시예에 따른 프로세스를 수행한다. 상기 유닛이 하드웨어 모듈로서 구현되는 경우에, 이들 유닛은 데이터 버스에 의해 서로 접속될 수 있다.
파라미터 공개부(182) 및 루트 증명 요청 수신부(183)는 개별 통신 포트를 통해 네트워크로/로부터 데이터를 송수신하거나, 상기 네트워크를 통해 다른 장치와 통신하는 상기 유닛에 접속된 CA 장치(180)에 있는 통신 유닛으로/로부터 데이터를 송수신할 수 있다.
전술한 사용자 장치 및 CA 장치는 단순히 예일 뿐이다. 그러나, 상기 장치에 포함된 컴포넌트는 전술한 유닛에 한정되는 것은 아니고, 상기 특정 구조는 수정되거나 변경될 수 있다. 예를 들면, 상기 장치는 네트워크 내의 컴퓨팅 장치에 일반적으로 설치된 다른 유닛, 예를 들면, 데이터를 입출력하는 I/O 인터페이스, 네트워크를 통해 다른 장치에 접속되는 다양한 통신 인터페이스, 각 유닛의 동작을 제어하는 컨트롤러 등를 포함할 수 있다. 그러한 유닛은 해당 분야에 공지되어 있고 당업자라면 이들은 전술한 장치에 부가하는 것을 용이하게 고려할 수 있기 때문에 도면에서는 생략하였다.
본 발명의 제1 실시예를 예로서 설명하였다. 그러나, 본 발명은 제1 실시예에 설명된 특정 설명에 한정되는 것은 아니다. 예를 들면, 다른 방법을 사용하여 사용자의 공개 키를 생성할 수도 있다. 가명 인증서에 의해 증명될 사용자 데이터로서 비교불가능한 공개 키를 사용할 수 있다(B.R. Waters, E.W. Felten, A. Sahai, Receiver Anonymity via Incomparable Public Keys, CCS'03, Washington, DC, USA, pp.112~121, 2003). 또한, 가명 인증서에 의해 증명되는 사용자 데이터는 공개 키에 한정되는 것이 아니라, 사용자가 송신한 임의의 데이터 또는 메시지일 수 있다. 더불어, 본 실시예는 기타 증명 기술 및 CA의 방법에 적응하도록 수정될 수 있다. 도 14에 설명된 알고리즘 외에, 다른 알고리즘이 가명 인증서가 동 일한 검증가능 증명 또는 RC로서 비밀을 유지하는 동시에, 검증기가 상기 데이터 보유자의 아이덴티티에 관한 정보에 무관심하게 할 수 있다는 것만 보장되면, 이 알고리즘을 사용하여 RC로부터 가명 인증서를 계산할 수 있다. 제1 실시예는 루트 공개 키가 (g,yu)라는 것을 설명하였다. 그러나, 루트 공개 키는 익명 공개 키(gr,yu r) 중 임의의 하나일 수 있다.
[제2 실시예]
다음 설명에서, 본 발명에 따른 제1 실시예가 도 19-20을 참조하여 설명될 것이다.
본 발명의 제2 실시예는 그룹 서명 스킴을 사용하여 공개 키에 대한 가명 인증서를 생성한다. 여기서, 그 공개 키는 사용자의 비교불가능한 공개 키,익명의 공개 키 또는 임의의 다른 공개 키일 수 있다.
그룹 서명 스킴은 지난 15년 동안 잘 연구되어 왔다(인용에 의해 본원에 포함되는 것으로 하는, D.Chaum, E. Van Heyst, Group Signatures, Advances in Cryptology - EUROCRYPTO'91, pp. 257~265, 1991; J. Camenisch, M. Michels, A Group Signature Scheme Based on an RSA-Variant, Advances in Cryptology - ASIACRYPT'98, pp. 160~174, 1998; 및 G. Ateniese, J. Camenisch, M. Joye, G. Tsudik, A Practical and Provably Secure Coalition-Resistant Group Signature Scheme, Advances in Cryptology - CRYPTO'2000, pp. 255~270, 2000을 참조). 개략적으로 말하자면, 그룹을 설정하고 그룹 멤버의 승인 및 철회를 처리하는 그룹 관리자가 존재한다. 그룹 멤버들 모두는 동일한 그룹 공개 키 PKg를 공유하지만, 멤버 Ui 각각은 상이한 비밀 키 SKi도 갖는다. 메시지 m이 주어지면, 그룹 멤버 Ui는 s=SIG(m, PKg, SKi)로서 그룹을 대표하여 메시지에 서명할 수 있으며, 여기서 SIG()는 구체적인 그룹 서명 알고리즘이다. 메시지 m 상의 서명 s은 그룹 공개 키 PKg에 의해 검증될 수 있는데, 즉, 서명 검증 알고리즘 VERIF()가 존재하며, PKg, s 및 m이 주어지면, VERIF(s, m, PKg)는 s=SIG(m, PKg, SKi)일 때만 유효하다고 출력한다. 그러나, 검증기가 s의 서명자 Ui를 결정하는 것은 매우 어려울 수 있다. 검증기의 관점에서 보면, 임의의 그룹 멤버들은 s의 서명자일 동일한 가능성을 갖는다. 이 흥미있는 특징은 "그룹 서명"이란 명칭이 생성되는 경우이다.
몇몇의 그룹 서명 스킴은 그룹 관리자가 s의 서명자 Ui를 결정할 수 있는 능력을 제공하는데, 즉, 추적 알고리즘 TRACE()이 존재하며, PKg, s 및 SKm이 주어지면, TRACE(s, PKg, SKm)는 s=SIG(m, PKg, SKi)일 때만 Ui라고 출력하며, 여기서 SKm은 그룹 관리자의 비밀 키이다.
도 19는 본 발명의 제2 실시예의 시스템 구조를 개요적으로 나타내는 블럭도이다.
제2 실시예에 따르면, 신뢰적인 개체는 그룹 관리자 M에 의해 설정된 그룹(190)이다. 사용자는 U는 그룹의 멤버이고, 그/그녀에게 할당된 그룹 비밀 키를 소유한다. 종래의 그룹 서명 스킴에서, 메시지는 그룹을 대표하여 서명된다. 그러나, 본 발명의 제2 실시예에서는, 그룹 서명을 사용하여 공개 키의 가명 인증서를 생성한다.
도 20은 제2 실시예에 따른 가명 인증 방법의 예를 나타내는 흐름도이다.
초기화 단계 201에서, 그룹 관리자는 그룹을 설정하고 그룹 공개 키 PKg를 공개한다. 이외에, 그룹 관리자는 비밀 키 SKm를 비밀로 유지하는데, 여기서 비밀 키 SKm는 악의적으로 행동하는 사용자를 추적하는 데 사용될 것이다.
단계 202에서, 그룹 멤버 U는 그룹에 가입하고 이 그룹에 대한 그/그녀의 그룹 비밀 키 SKu를 획득한다.
단계 203에서, U는 익명 공개 키 apk=(gr,yu r)(mod p)를 계산한다.
단계 204에서, U는 메시지의 일부로서 apk를 취하고, s=SIG(apk, PKg, SKu)로 익명 공개 키 apk에 디지털적으로 서명한다. 이 방법에서, s가 apk에 대한 그룹 서명이란 것이 명백하다.
단계 205에서, U는 검증을 위해 검증기에게 s 및 apk를 제공하고, 단계 206에서 검증기는 사용자의 익명 공개 키를 검증한다. VERIF(s, apk, PKg)가 유효한 응답을 출력할 것이기 때문에, apk는 익명의 그룹 멤버에 의해 디지털적으로 서명된 것으로서 검증기에게 받아들여질 것이다. 따라서, s는 익명의 그룹 멤버가 익 명 공개 키 apk를 소유하고 있음을 보증한다. 즉, s는 익명 공개 키 apk에 대한 가명 인증서이다.
본 발명에 따른 제2 실시예에서 루트 증명은 사용자의 그룹 비밀 키임이 명백하다.
추적이 필요한 경우에, s가 그룹 멤버 M에게 제시될 것이며, 여기서 추적 알고리즘 TRACE(s, PKg, SKm)이 U를 출력할 것이기 때문에, 그룹 멤버는 U의 신분을 결정 및 공개할 수 있다.
상기 예에서, 사용자 데이터는 익명 공개 키이다. 그러나, 사용자 데이터는 사용자의 비교불가능한 공개 키 또는 임의의 다른 공개 키 등의 다른 사용자 데이터일 수 있다.
본 발명에 따른 제2 실시예의 사용자 장치는 도 17에 도시된 장치(170)와 유사하다. 제2 실시예에서, 루트 증명부는 그룹 관리자로부터 사용자의 그룹 비밀 키를 수신하고, 가명 인증서 생성부은 그룹 서명의 방법으로 가명 인증서를 생성하고, 송신부은 가명 인증서를 포함한 사용자 데이터를 네트워크에 송신한다. 제2 실시예의 루트 증명 요청부를 사용하여, 그룹 멤버쉽에 대한 요청을 생성하고, 그 요정을 그룹 관리자에게 송신한다.
전술된 바와 같이, 그룹 서명 검증 알고리즘을 통해, 검증기는 사용자 데이터가 그룹 멤버에 의해 인증되었음을 확신할 수 있었다. 그러나, 여러 경우에, 검증기는 그룹 멤버의 명칭에 서명된 데이터를 송신한 사용자가 데이터의 진짜 소유자인지 또는 그 데이터에 서명한 진짜 멤버인지를 알 필요가 있다.
도 21은 증명기가 종래의 그룹 서명 스킴을 사용하여, 증명기가 그룹 내에 있음을 검증기에게 증명하기 위한 프로세스를 나타내는 다이어그램이다.
도 21에 나타낸 바와 같이, 시작시에, 검증기는 첼린지 메시지를 생성하고(단계 211, 그것을 증명기에게 송신한다. 검증기로부터 첼린지 메시지를 수신하면, 증명기는 그/그녀의 그룹 비밀 키를 사용하여 첼린지 메시지에 서명하고(단계 212), 생성된 그룹 서명을 검증기에게 다시 송신한다. 그 후, 검증기는 그룹 공개 키를 사용하여 증명기로부터 수신한 데이터에 대해 그룹 서명 검증을 수행한다(단계 213). 올바른 검증은 증명기가 그룹 내에 있음을 검증기에게 확신시킨다.
종래의 그룹 서명 스킴으로, 증명기는 검증기에 의해 생성된 첼린지 메시지에 응답하고, 온라인 방식으로 첼린지 메시지에 대한 그룹 서명을 계산한다. 그룹 서명의 이러한 온라인 계산은 시간 소모적으로 비용이 많이 든다. 게다가, 증명기가 검증기와 몇 회 접촉하면, 검증기는 매번 새로운 첼린지 메시지를 생성하고 증명기는 몇몇 개의 그룹 서명을 계산해야만 한다.
본 발명에 따른 제2 실시예의 해결 방법에 의해, 가명 인증서 및 사용자 데이터(즉, 그/그녀의 공개 키)의 유효성을 검증하는 것이 보다 편리하고 효율적이 된다.
도 22는 본 발명에 따른 제2 실시예의 해결 방법에 따라 가명 인증서 및 공개 키의 유효성을 검증하기 위한 예시적인 프로세스를 나타내는 도면이다.
도 22에 나타낸 바와 같이, 증명기는 그/그녀의 그룹 비밀 키를 사용해 공개 키에 서명하여 향후 그룹 서명을 생성한다(단계 221). 증명기가 검증기와 접촉하 길 원하면, 그/그녀는 생성된 가명 인증서(즉, 공개 키에 따른 그룹 서명)를 따라 공개 키를 검증기에게 송신한다. 증명기로부터 공개 키 및 가명 인증서를 수신하면, 검증기는 가명 인증서 및 그룹 공개 키로 사용자 데이터에 대해 그룹 서명 검증을 수행한다(단계 222).
올바른 검증은 검증기에게 공개 키가 그룹 멤버들에 의해 서명된 것임을 확인시킨다. 사용자가 그 공개 키에 서명한 바로 그 그룹 멤버인지 여부를 검증기가 알기 원할 경우, 검증기는 공개 키에 관련된 지식을 증명하도록 증명기에게 요청할 수 있다. 단계 223 및 단계 224에서, 정보 증명은 공개 키에 대해 행해진다. 특정 증명 프로세스는 도 15에 도시된 프로세스와 유사하다. 증명기가 공개 키에 대응하는 비밀 키의 지식을 검증기에게 증명하는 경우, 검증기는 그 증명기를 신뢰할 수 있다.
본 발명에 따른 전술된 방법에 의하면, 가명 인증서가 검증기의 시도에 응답하여 온라인 방식으로 계산되기 보다는 오히려 사전에 계산될 수 있음이 분명하다. 즉, 증명기는 증명기 측에서 컴퓨팅 장치의 여분의 시간에 그룹 서명을 계산할 수 있다. 검증기에 접촉하기 전에, 공개 키들뿐만 아니라 다수의 가명 인증서가 이미 이용가능할 수 있다. 검증기에 접촉할 때, 증명기는 검증기에 대한 가명 인증서와 함께 공개 키를 송신하는 것만 필요로 된다. 검증기는 가명 인증서의 유효성을 체크한다. 그런 다음 증명기는 검증기에게 공개 키에 대응하는 비밀 키의 지식만을 증명한다. 이런 증명은 그룹 서명 서명하기보다 훨씬 더 효율적이다.
도 23은 본 발명에 따른 제2 실시예의 해결 방법에 따라 공개 키와 가명 인 증서의 유효성을 검증하기 위한 또 다른 예시적인 프로세스를 나타내는 도면이다.
검증기가 이미 올바르게 검증된 공개 키들을 저장하였다고 가정하자. 검증기가 가명 인증서와 함게 공개 키를 증명기로부터 수신할 때(단계 231), 검증기는 수신된 공개 키와 올바르게 검증되어 저장되었던 공개 키들을 비교한다(단계 232). 수신된 공개 키가 저장된 공개 키 중 하나와 매치되면, 검증기는 공개 키에 관련된 지식 검증으로 바로 진행할 수 있다(단계 235). 매치되는 공개 키가 존재하지 않을 경우, 검증기는 공개 키의 가명 인증서와 그룹 공개 키에 의한 그룹 서명 검증을 수신된 공개 키에 대해 수행한다(단계 233). 수신된 가명 인증서가 그룹 서명 검증을 통과하는 경우, 검증기는 수신된 공개 키를 올바르게 검증된 공개 키로서 저장하고(단계 234), 프로세스는 단계 235로 진행한다. 그렇지 않을 경우, 프로세스는 종료한다.
증명기가 동일한 가명 인증서를 갖고 검증기를 다수 회 접촉하기로 결정하는 경우, 검증기는 첫 회에 가명 인증서의 유효성을 체크하는 것만 필요로 된다. 이하의 세션에서, 검증기는 증명기로부터 수신된 공개 키와 그 로컬 캐시된 공개 키들을 단순히 매칭시킨다. 매칭이 존재하면, 검증기와 증명기는 공개 키에 관련된 정보 증명으로 바로 진행할 수 있다. 이런 종류의 사용법은 익명성과 신뢰성이 모두 유지되는 동시에 매우 효율적이다.
도 24는 본 발명에 따른 제2 실시예의 검증부의 예를 나타내는 블록도이다. 검증부(240)은 검증기의 컴퓨팅 장치에 배치되거나, 도 17에 도시된 검증부(178)로서 사용자 장치에 배치될 수 있다.
검증부(240)는 그룹 서명과 공개 키에 대해 검증을 수행하는 검증 모듈(245)을 포함한다. 검증 모듈(245)은 그룹 서명 검증부(241)와 공개 키 지식 검증부(242)로 나누어질 수 있다. 그룹 서명과 결합된 공개 키를 증명기로부터 수신할 때, 검증 모듈(245)은 수신된 공개 키와 그룹 공개 키를 사용하는 그룹 서명 검증부(241)에 의해 그룹 서명을 검증한다. 증명기로부터 수신된 공개 키가 그룹 서명 검증부(241)에 의해 올바르게 검증된 이후에, 공개 키 지식 검증부(242)가 그룹 서명과 함께 수신된 공개 키에 관련된 정보 증명을 증명기로 수행한다.
검증부(240)은 검증 모듈(245)에 결합된 메모리(243), 검증 모듈(245)과 메모리(243)에 결합된 비교 모듈(244)를 더 포함할 수 있다. 메모리(243)가 올바르게 검증되었던 공개 키들을 저장한다. 공개 키와 그룹 서명을 증명기로부터 수신 할 때, 비교 모듈(244)은 수신된 공개 키와 메모리(243)에 저장된 공개 키들을 비교하고, 검증 모듈(245)에 비교 결과를 알린다. 수신된 공개 키가 이미 올바르게 검증되었던 공개 키들 중 하나와 동일한 경우, 검증 모듈(245)은 그룹 서명 검증 알고리즘의 계산을 생략하고, 바로 공개 키 지식 검증부(242)에 의해 증명기로 그룹 서명과 함께 수신된 공개 키에 관련한 정보 증명을 수행한다. 수신된 공개 키가 저장된 공개 키들 중 임의 하나와 매치되지 않을 경우, 검증 모듈(245)은 그룹 서명 검증부(241)에 의해, 전술된 바와 같은 그룹 서명 검증 알고리즘의 계산을 수행한다.
본 발명에 따르면, 신뢰된 개체가 CA인 경우에, 인증기와 공개 키에 대한 검증이 유사한 방식으로 수행될 수 있다. 도 15를 참조해 보면, 사용자가 익명의 공 개 키와 가명 인증서를 계산한 이후에, 익명의 공개 키는 구비된 가명 인증서와 함께 검증기로 송신된다(단계 151). 그런 다음, 검증기는 가명 인증서와 익명의 공개 키를 검증하기 위해 사용자와 함께 정보 증명을 수행한다(단계 153). 단계 153에 도시된 바와 같이, 본 발명으로, 가명 인증서와 익명의 공개 키는 한번의 정보 증명으로 다같이 검증될 수 있다. 사용자는 익명의 공개 키를 계산하는 일 구현예에서는, 정보 증명에 필요한 가명 인증서와 데이터가 오프라인 방식으로 증명된다. 이런 데이터를 수신한 이후에, 검증기는 가명 인증서와 공개 키를 로컬 계산을 통해 검증할 수 있다. 다른 구현에서, 검증기는 올바르다고 검증된 적이 있는 공개 키를 저장한다. 사용자에 의해 송신된 공개 키 및 인증서를 검증할 때, 검증기는 우선 사용자의 공개 키를 저장된 공개 키와 비교한다. 매칭되면, 이는 공개 키가 올바르다고 검증된 것임을 의미한다. 사용자와의 정보 증명을 할 때, 검증기는 인증서에 관련된 정보 증명의 계산은 건너뛸 것이고, 사용자와의 공개 키에 관련된 검사만이 필요할 것이다. 종래의 해결책의 공개 키 및 인증서의 단계식 검사 또는 온라인 검사와 비교해 볼 때, 상술한 본 발명에 따른 검증은 보다 효율적이다.
신뢰된 개체가 CA인 경우, 검증기의 장치의 검증부는 또한 검증 모듈을 포함한다. 일 구현에서, 검증부는 예를 들면, 도 15의 단계(153)에 도시된 정보 증명을 수행한다. 다른 구현에서, 검증부는 검증 모듈에 연결된 메모리 및 검증 모듈 및 메모리에 연결된 비교 모듈을 더 포함할 수 있다. 메모리는 올바르다고 검증된 적이 있었던 공개 키를 저장한다. 증명기로부터 공개 키 및 인증서를 수신할 때, 비교 모듈은 이 수신된 공개 키를 메모리에 저장된 공개 키와 비교하고 비교의 결 과를 검증 모듈에 통지한다. 수신된 공개 키가 올바르다고 검증된 적이 있었던 공개 키들 중 하나와 동일하다면, 검증 모듈은 인증서에 관련된 정보 증명의 계산을 생략하고, 증명기와의 공개 키에 대한 정보 증명만을 수행한다. 수신된 공개 키가 저장된 공개 키들 중의 어느 것에도 매칭되지 않는다면, 예를 들어 도 15의 단계(153)에 도시된 바와 같이 검증 모듈은 공개 키 및 인증서에 관련된 정보 증명의 계산을 수행한다.
본 발명에 따른 2가지 경우의 사용자의 데이터 및 인증서의 검증을 위한 장치 및 프로세스를 앞서 기술하였다. 그러나, 본 발명은 상술한 특정 세부 사항에 한정되지 않는다. 검증을 위한 장치 및 프로세스의 변형 또는 변경이 특정 애플리케이션 및 알고리즘에 따라 본 기술 분야에서 숙련된 자에 의해 이루어질 수 있다.
상기 설명으로부터 알 수 있는 바와 같이, 본 발명에 따르면, 익명 공개 키가 신뢰된 개체에 의해 인증된 암호 인증서에 의해 보장되는 경우 사용자는 신뢰될 수 있는 익명 공개 키를 생성할 수 있다. 사용자 프라이버시 보호 기능이 전체적으로 분산된다. 사용자는 스스로 별개의 익명 공개 키, 및 별개의 암호 인증서를 생성한다. 본 발명에 따른 일 실시예에서, CA의 간섭을 최소한으로 함으로써 신뢰된 개체의 경량의 구현이 가능하다. 또한, 암호 인증서가 CA 또는 그룹 관리자 수준에서 추적될 수 있기 때문에 사용자는 익명 기능을 남용할 수 없다.
본 발명은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합으로 구현되고 시스템, 서브시스템, 컴포넌트 또는 이들의 서브-컴포넌트로 이용될 수 있다. 소프트웨어로 구현되는 경우, 본 발명의 구성요소는 본질적으로 필요한 태스크를 수행 하는 데에 이용되는 코드 세그먼트 또는 프로그램이다. 프로그램 또는 코드 세그먼트는 통신 매체 또는 통신 링크를 통해 반송파로 구현되는 데이터 신호에 의해 송신되거나 머신 판독가능한 매체에 저장될 수 있다. "머신 판독가능한 매체"는 정보를 저장하고 송신할 수 있는 임의의 매체를 포함할 수 있다. 머신 판독가능한 매체의 예로는 전자 회로, 반도체 메모리 장치, ROM, 플래시 메모리, EROM(erasable ROM), 플로피 디스켓, CD-ROM, 광 디스크, 하드 디스크, 광 섬유 매체, RF(radio frequency) 링크 등을 포함한다. 데이터 신호는 전자 네트워크 채널, 광 섬유, 무선, 전자석, RF 링크, 등과 같은 송신 매체를 통해 전달될 수 있는 임의의 신호를 포함할 수 있다. 코드 세그먼트는 인터넷, 인트라넷, 등과 같은 컴퓨터 네트워크를 통해 다운로드될 수 있다.
본 발명은 그 본질적인 특징 및 사상으로부터 벗어나지 않고 다른 특정 형식으로 구현될 수 있다. 예를 들면, 시스템 아키텍처가 본 발명의 기본 사상으로부터 벗어나지 않으면서 특정 실시예에 기술된 알고리즘이 수정될 수 있다. 그러므로 본 실시예는 예시적이며 제한적이지 않는, 전술한 설명보다는 특허 청구 범위에 의해서 지정되는 것인 본 발명의 범위로서의 모든 양상으로 고려될 수 있어서 특허 청구 범위의 균등의 범위 및 의미 내에 포함되는 모든 변경들이 본 발명에 포함되는 것을 의도한다.
본 발명에 따르면, 통신 네트워크에 변용성있는 가명 인증 시스템 및 방법을 제공할 수 있다.

Claims (58)

  1. 신뢰된 개체 및 적어도 하나의 검증기를 포함하는 통신 네트워크에서 사용자가 데이터를 인증하기 위한 컴퓨팅 장치로서,
    상기 네트워크에 동작가능하게 결합되며, 상기 신뢰된 개체로부터 루트 증명서를 수신하는 루트 증명부;
    상기 루트 증명부에 동작가능하게 결합되며, 상기 루트 증명서에 기초하여 적어도 하나의 가명 인증서를 생성하는 가명 인증서 생성부(pseudonym certificate generating unit); 및
    상기 가명 인증서 생성부에 동작가능하게 결합되며, 상기 가명 인증서와 결합된 상기 사용자 데이터를 상기 통신 네트워크에 송신하는 송신부
    를 포함하는 컴퓨팅 장치.
  2. 제1항에 있어서,
    상기 가명 인증서는, 상기 검증기가 상기 사용자의 실제 아이덴티티를 알아낼 수 있는(figure out) 정보를 포함하지 않도록 생성되는 컴퓨팅 장치.
  3. 제1항에 있어서,
    상기 사용자 데이터는 상기 사용자의 공개 키를 포함하는 컴퓨팅 장치.
  4. 제3항에 있어서,
    상기 사용자 데이터에 포함되는 상기 공개 키(public key)는 비교불가능한(incomparable) 공개 키인 컴퓨팅 장치.
  5. 제3항에 있어서,
    상기 사용자 데이터에 포함되는 상기 공개 키는 익명의 공개 키이며,
    상기 컴퓨팅 장치는, 상기 송신부에 동작가능하게 결합되며 상기 사용자의 복수의 익명 공개 키들을 생성하도록 구성되는 익명 공개 키 생성부 - 상기 복수의 익명 공개 키들은 상기 사용자의 비밀 키(private key)에 대응함 -
    를 포함하는 컴퓨팅 장치.
  6. 제5항에 있어서,
    상기 익명 공개 키 생성부는, 상기 비밀 키 및 생성기로부터 상기 복수의 익명 공개 키들을 생성하며,
    상기 비밀 키 및 상기 생성기는 소정의 그룹으로부터 유래하는 컴퓨팅 장치.
  7. 제1항에 있어서,
    상기 루트 증명서는, 상기 신뢰된 개체에 의해 상기 사용자에 발행되는 루트 인증서인 컴퓨팅 장치.
  8. 제1항에 있어서,
    상기 루트 증명서는 상기 사용자의 그룹 비밀 키이며, 상기 가명 인증서는 상기 사용자 데이터의 그룹 서명인 컴퓨팅 장치.
  9. 제1항에 있어서,
    상기 네트워크에 동작가능하게 결합되는 루트 증명서 요청부를 더 포함하며, 상기 루트 증명서 요청부는 상기 루트 증명서에 대한 요청을 생성하고, 상기 요청을 상기 신뢰된 개체에 송신하는 컴퓨팅 장치.
  10. 제1항에 있어서,
    상기 네트워크에 동작가능하게 결합되는 증명부(proving unit)를 더 포함하며,
    상기 증명부는 상기 신뢰된 개체 또는 상기 검증기에 의해 정보(knowledge) 증명을 수행하는 컴퓨팅 장치.
  11. 신뢰된 개체 및 적어도 하나의 검증기를 포함하는 통신 네트워크에서 사용자가 데이터를 인증하는 방법으로서,
    상기 신뢰된 개체로부터 루트 증명서를 수신하는 단계;
    상기 루트 증명서에 기초하여 적어도 하나의 가명 인증서를 생성하는 단계; 및
    상기 가명 인증서와 결합되는 상기 사용자 데이터를 하나의 검증기에 송신하는 단계
    를 포함하는 방법.
  12. 제11항에 있어서,
    상기 가명 인증서는, 상기 검증기가 상기 사용자의 실제 아이덴티티를 알아낼 수 있는 정보를 포함하지 않도록 생성되는 방법.
  13. 제11항에 있어서,
    상기 사용자 데이터는 상기 사용자의 공개 키를 포함하는 방법.
  14. 제13항에 있어서,
    상기 사용자 데이터에 포함되는 상기 공개 키는 비교불가능한 공개 키인 방법.
  15. 제13항에 있어서,
    상기 사용자 데이터에 포함된 상기 공개 키는 익명의 공개 키이며,
    상기 방법은, 상기 사용자에 의해 복수의 익명 공개 키들을 생성하는 단계를 더 포함하며,
    상기 복수의 익명 공개 키들은 상기 사용자의 비밀 키에 대응하는 방법.
  16. 제15항에 있어서,
    상기 복수의 익명 공개 키들은 상기 비밀 키 및 생성기로부터 생성되며,
    상기 비밀 키 및 상기 생성기는 소정의 그룹으로부터 유래하는 방법.
  17. 제11항에 있어서,
    상기 루트 증명서는, 상기 신뢰된 개체에 의해 상기 사용자에게 발행되는 루트 인증서인 방법.
  18. 제11항에 있어서,
    상기 루트 증명서는 상기 사용자의 그룹 비밀 키이며, 상기 가명 인증서는 상기 사용자 데이터의 그룹 서명인 방법.
  19. 제11항에 있어서,
    상기 루트 증명서에 대한 요청을 생성하는 단계 및 상기 요청을 상기 신뢰된 개체에 송신하는 단계를 더 포함하는 방법.
  20. 제11항에 있어서,
    상기 신뢰된 개체 또는 상기 검증기에 의해 정보 증명을 수행하는 단계를 더 포함하는 방법.
  21. 적어도 한 명의 사용자 및 적어도 하나의 검증기를 포함하는 통신 네트워크에서 인증서들을 관리하기 위한 장치로서,
    시스템 파라미터들을 계산하기 위한 시스템 파라미터 계산부;
    상기 시스템 파라미터 계산부에 동작가능하게 결합되며, 상기 사용자 및 검증기에 의해 공유될 공유 시스템 파라미터들을 공개하도록 구성되는 파라미터 공개부(publishing unit);
    상기 네트워크에 동작가능하게 결합되며, 상기 사용자로부터 루트 증명서 요청을 수신하도록 구성된 루트 증명서 요청 수신부; 및
    상기 루트 증명서 요청 수신부 및 상기 시스템 파라미터 계산부에 동작가능하게 결합되는 루트 증명서 생성부 - 상기 루트 증명서 생성부는 상기 루트 증명서 요청에 응답하여 상기 사용자에 대한 루트 증명서를 생성하고, 상기 루트 증명서는 사용자가 복수의 가명 인증서들을 생성하게 하는 데 사용됨 -
    를 포함하는 장치.
  22. 제21항에 있어서,
    상기 루트 증명서는 상기 사용자의 공개 키에 발행되는 루트 인증서인 장치.
  23. 제21항에 있어서,
    상기 루트 증명서는, 상기 사용자의 루트 익명 공개 키에 발행되는 루트 인 증서인 장치.
  24. 제21항에 있어서,
    상기 루트 증명서는 상기 사용자에 발행되는 그룹 비밀 키인 장치.
  25. 제21항에 있어서,
    상기 루트 증명서 생성부에 동작가능하게 결합되는 검사부(examining unit)를 더 포함하며, 상기 검사부는 상기 루트 증명서 요청에 대해 동일성(identification) 검사를 수행하는 장치.
  26. 제21항에 있어서,
    상기 네트워크에 동작가능하게 결합되는 추적부를 더 포함하며, 상기 추적부는 상기 루트 증명서에 기초하여 상기 검증기로부터 수신된 가명 인증서의 소유자의 아이덴티티를 추적하도록 구성되는 장치.
  27. 적어도 한 명의 사용자 및 적어도 하나의 검증기를 포함하는 통신 네트워크에서 인증서들을 관리하는 방법으로서,
    시스템 파라미터들을 계산하는 단계;
    상기 사용자 및 검증기에 의해 공유될 공유 시스템 파라미터들을 공개하는 단계;
    상기 사용자로부터 루트 증명서 요청을 수신하는 단계; 및
    상기 루트 증명서 요청에 응답하여 상기 사용자에 대한 루트 증명서를 생성하는 단계 - 상기 루트 증명서는 사용자가 복수의 가명 인증서들을 생성하게 하는 데 사용됨 -
    를 포함하는 방법.
  28. 제27항에 있어서,
    상기 루트 증명서를 생성하는 단계는, 상기 사용자의 공개 키에 발행되는 루트 인증서를 생성하는 단계를 포함하는 방법.
  29. 제27항에 있어서,
    상기 루트 증명서를 생성하는 단계는, 상기 사용자의 루트 익명 공개 키에 발행되는 루트 인증서를 생성하는 단계를 포함하는 방법.
  30. 제27항에 있어서,
    상기 루트 증명서를 생성하는 단계는, 상기 사용자에 발행되는 그룹 비밀 키를 생성하는 단계를 포함하는 방법.
  31. 제27항에 있어서,
    상기 루트 증명서 요청을 수신하는 단계 후에, 상기 루트 증명서 요청에 대 해 동일성 검사를 수행하는 단계를 더 포함하는 방법.
  32. 제27항에 있어서,
    상기 루트 증명서에 기초하여 상기 검증기로부터 수신된 가명 인증서의 소유자의 아이덴티티를 추적하는 단계를 더 포함하는 방법.
  33. 신뢰된 개체를 포함하는 통신 네트워크에서 사용자에 대한 변용성있는(malleable) 가명 인증 시스템으로서,
    상기 네트워크에 동작가능하게 결합되며, 상기 신뢰된 개체로부터 루트 증명서를 수신하도록 구성된 루트 증명부;
    상기 루트 증명부에 동작가능하게 결합되며, 상기 루트 증명서에 기초하여 적어도 하나의 가명 인증서를 생성하도록 구성되는 가명 인증서 생성부;
    상기 가명 인증서 생성부에 동작가능하게 결합되는 송신부 - 상기 송신부는 상기 가명 인증서와 결합되는 상기 사용자 데이터를 상기 통신 네트워크에 송신함 - ; 및
    상기 통신 네트워크에 동작가능하게 결합되며, 상기 수신된 가명 인증서에 의해 상기 사용자 데이터를 검증하도록 구성되는 검증부
    를 포함하는 시스템.
  34. 제33항에 있어서,
    상기 가명 인증서는, 상기 검증부가 상기 사용자의 실제 아이덴티티를 알아낼 수 있는 정보를 포함하지 않도록 생성되는 시스템.
  35. 제33항에 있어서,
    상기 사용자 데이터는 상기 사용자의 공개 키를 포함하는 시스템.
  36. 제35항에 있어서,
    상기 사용자 데이터에 포함되는 상기 공개 키는 비교불가능한 공개 키인 시스템.
  37. 제35항에 있어서,
    상기 사용자 데이터에 포함되는 상기 공개 키는 익명의 공개 키이며,
    상기 시스템은, 상기 송신부에 동작가능하게 결합되는 익명 공개 키 생성부를 더 포함하며,
    상기 익명 공개 키 생성부는 상기 사용자의 복수의 익명 공개 키들을 생성하도록 구성되고, 상기 복수의 익명 공개 키들은 상기 사용자의 비밀 키에 대응하는 시스템.
  38. 제37항에 있어서,
    상기 익명 공개 키 생성부는, 상기 비밀 키 및 생성기로부터 상기 복수의 익 명 공개 키들을 생성하며, 상기 비밀 키 및 상기 생성기는 소정의 그룹으로부터 유래하는 시스템.
  39. 제33항에 있어서,
    상기 루트 증명서는 상기 신뢰된 개체에 의해 상기 사용자에 발행되는 루트 인증서인 시스템.
  40. 제33항에 있어서,
    상기 루트 증명서는 상기 사용자의 그룹 비밀 키이며, 상기 가명 인증서는 상기 사용자 데이터의 그룹 서명인 시스템.
  41. 제33항에 있어서,
    상기 검증부는, 상기 가명 인증서 및 상기 사용자 데이터에 대한 검증을 수행하기 위한 검증 모듈을 포함하는 시스템.
  42. 제41항에 있어서,
    상기 검증부는,
    상기 검증 모듈에 결합되며, 올바르게 검증된 데이터를 저장하는 메모리; 및
    상기 메모리 및 상기 검증 모듈에 동작가능하게 결합되며, 상기 수신된 사용자 데이터를 상기 저장된 데이터와 비교하는 비교 모듈
    을 더 포함하는 시스템.
  43. 제33항에 있어서,
    상기 검증부에 동작가능하게 결합되는 추적부를 더 포함하며,
    상기 추적부는, 상기 루트 증명서에 기초하여 상기 검증부로부터 수신되는 가명 인증서의 소유자의 아이덴티티를 추적하도록 구성되는 시스템.
  44. 신뢰된 개체 및 적어도 하나의 검증기를 포함하는 통신 네트워크에서 가명 인증서에 의해 사용자 데이터를 인증하는 방법으로서,
    상기 신뢰된 개체로부터 상기 사용자에게 루트 증명서를 발행하는 단계;
    사용자에 의한 상기 루트 증명서에 기초하여 적어도 하나의 가명 인증서를 생성하는 단계; 및
    상기 하나의 가명 인증서와 결합되는 상기 사용자 데이터를 하나의 검증기에 송신하는 단계 - 상기 검증기는 상기 가명 인증서에 의한 상기 사용자 데이터를 검증함 -
    를 포함하는 방법.
  45. 제44항에 있어서,
    상기 가명 인증서는, 상기 검증기가 상기 사용자의 실제 아이덴티티를 알아낼 수 있는 정보를 포함하지 않도록 생성되는 방법.
  46. 제44항에 있어서,
    상기 사용자 데이터는 상기 사용자의 공개 키를 포함하는 방법.
  47. 제46항에 있어서,
    상기 사용자 데이터에 포함되는 상기 공개 키는 비교불가능한 공개 키인 방법.
  48. 제46항에 있어서,
    상기 사용자 데이터에 포함되는 상기 공개 키는 익명의 공개 키이며,
    상기 방법은 상기 사용자에 의해 복수의 익명 공개 키들을 생성하는 단계 - 상기 복수의 익명 공개 키들은 상기 사용자의 비밀 키에 대응함 -
    를 더 포함하는 방법.
  49. 제48항에 있어서,
    상기 복수의 익명 공개 키들은 상기 비밀 키 및 생성기로부터 생성되며, 상기 비밀 키 및 상기 생성기는 소정의 그룹으로부터 유래하는 방법.
  50. 제44항에 있어서,
    루트 증명서를 발행하는 단계는, 루트 인증서를 상기 사용자의 공개 키에 발 행하는 단계를 포함하는 방법.
  51. 제44항에 있어서,
    루트 증명서를 발행하는 단계는 그룹 비밀 키를 상기 사용자에게 발행하는 단계를 포함하며, 상기 적어도 하나의 가명 인증서를 생성하는 단계는 상기 사용자 데이터의 그룹 서명을 생성하는 단계를 포함하는 방법.
  52. 제44항에 있어서,
    상기 검증기는, 상기 사용자에 의해 정보 증명을 수행함으로써 상기 가명 인증서 및 상기 사용자 데이터를 검증하는 방법.
  53. 제44항에 있어서,
    상기 검증기는,
    상기 검증기에 의해 올바르게 검증된 데이터를 저장하는 단계;
    상기 사용자로부터 수신되는 사용자 데이터를 상기 저장된 데이터와 비교하는 단계;
    상기 사용자 데이터가 상기 저장된 데이터 중 어느 하나와 일치하는 경우, 상기 사용자 데이터 및 상기 사용자에 관련된 정보 증명을 행하는 단계; 및
    상기 사용자 데이터가 상기 저장된 데이터 중 어느 것과도 일치하지 않는 경우, 상기 가명 인증서 및 상기 사용자 데이터에 대해 검증을 행하는 단계
    를 수행함으로써 상기 가명 인증서 및 상기 사용자 데이터를 검증하는 방법.
  54. 제44항에 있어서,
    상기 루트 증명서에 기초하여 상기 검증기로부터 수신되는 가명 인증서의 소유자의 아이덴티티를 상기 신뢰된 개체에 의해 추적하는 단계를 더 포함하는 방법.
  55. 명령문들이 기록된 머신(machine) 판독가능한 매체를 갖는 제품으로서,
    하나 이상의 프로세서들에 의해 실행되는 경우, 상기 프로세서들은,
    신뢰된 개체로부터 루트 증명서를 수신하는 단계;
    상기 루트 증명서으로부터 적어도 하나의 가명 인증서들을 생성하는 단계; 및
    상기 가명 인증서들 중 하나에 결합된 데이터를 검증기에 송신하는 단계
    를 수행하는 제품.
  56. 제55항에 있어서,
    상기 데이터는 익명의 공개 키인 제품.
  57. 명령문들이 기록된 머신 판독가능한 매체를 갖는 제품으로서,
    프로세서에 의해 실행되는 경우, 상기 프로세서는,
    시스템 파라미터들을 계산하는 단계;
    네트워크의 모든 사용자들에 의해 공유될 공유 파라미터들을 공개하는 단계;
    네트워크의 상기 사용자들 중 한 사용자로부터 루트 증명서 요청을 수신하는 단계; 및
    상기 사용자에 대해 루트 증명서를 생성하는 단계 - 상기 루트 증명서는 상기 사용자가 복수의 가명 인증서들을 생성하게 하는 데 사용됨 -
    를 수행하는 제품.
  58. 제57항에 있어서,
    상기 루트 증명서는 상기 사용자의 루트 익명 공개 키에 대한 루트 인증서인 제품.
KR1020060091745A 2005-09-21 2006-09-21 변용성있는 가명 인증 시스템 및 방법 KR20070033289A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN200510103562.X 2005-09-21
CNA200510103562XA CN1937496A (zh) 2005-09-21 2005-09-21 可延展伪名证书系统和方法

Publications (1)

Publication Number Publication Date
KR20070033289A true KR20070033289A (ko) 2007-03-26

Family

ID=37596265

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060091745A KR20070033289A (ko) 2005-09-21 2006-09-21 변용성있는 가명 인증 시스템 및 방법

Country Status (6)

Country Link
US (1) US20070143608A1 (ko)
EP (1) EP1768304A1 (ko)
JP (1) JP2007089171A (ko)
KR (1) KR20070033289A (ko)
CN (1) CN1937496A (ko)
CA (1) CA2560038A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101330245B1 (ko) * 2008-11-11 2013-11-15 한국전자통신연구원 권한 분산형 가명 인증서 처리 시스템
WO2018230914A1 (ko) * 2017-06-12 2018-12-20 이승진 보안카메라와 사용자 장치 간의 보안키 생성방법

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7698565B1 (en) 2000-03-30 2010-04-13 Digitalpersona, Inc. Crypto-proxy server and method of using the same
US7409543B1 (en) * 2000-03-30 2008-08-05 Digitalpersona, Inc. Method and apparatus for using a third party authentication server
JP5457171B2 (ja) 2006-03-20 2014-04-02 オランジュ オーディオデコーダ内で信号を後処理する方法
WO2008127446A2 (en) * 2006-12-01 2008-10-23 President And Fellows Of Harvard College A method and apparatus for time-lapse cryptography
EP2127195A2 (en) * 2007-01-22 2009-12-02 Global Crypto Systems Methods and systems for digital authentication using digitally signed images
US7958057B2 (en) * 2007-03-28 2011-06-07 King Fahd University Of Petroleum And Minerals Virtual account based new digital cash protocols with combined blind digital signature and pseudonym authentication
US20090327141A1 (en) * 2007-04-18 2009-12-31 Rabin Michael O Highly efficient secrecy-preserving proofs of correctness of computation
CN101335622B (zh) * 2007-06-27 2012-08-29 日电(中国)有限公司 使用匿名柔性凭证的用于分布式授权的方法和装置
US7877331B2 (en) * 2007-09-06 2011-01-25 King Fahd University Of Petroleum & Minerals Token based new digital cash protocols with combined blind digital signature and pseudonym authentication
US20090177591A1 (en) * 2007-10-30 2009-07-09 Christopher Thorpe Zero-knowledge proofs in large trades
JP2009253530A (ja) * 2008-04-03 2009-10-29 Murata Mach Ltd サーバ装置
CN102187618B (zh) * 2008-10-14 2013-11-27 皇家飞利浦电子股份有限公司 生成和验证伪名的方法和装置
US20100122080A1 (en) * 2008-11-11 2010-05-13 Electronics And Telecommunications Research Institute Pseudonym certificate process system by splitting authority
US9621341B2 (en) * 2008-11-26 2017-04-11 Microsoft Technology Licensing, Llc Anonymous verifiable public key certificates
US8499154B2 (en) * 2009-01-27 2013-07-30 GM Global Technology Operations LLC System and method for establishing a secure connection with a mobile device
US20100199095A1 (en) * 2009-01-30 2010-08-05 Texas Instruments Inc. Password-Authenticated Association Based on Public Key Scrambling
US20100241852A1 (en) * 2009-03-20 2010-09-23 Rotem Sela Methods for Producing Products with Certificates and Keys
CN104380653B (zh) * 2012-06-08 2017-07-11 诺基亚技术有限公司 用于参与式感测系统的隐私保护
US9582671B2 (en) * 2014-03-06 2017-02-28 Sensity Systems Inc. Security and data privacy for lighting sensory networks
US9374870B2 (en) 2012-09-12 2016-06-21 Sensity Systems Inc. Networked lighting infrastructure for sensing applications
WO2015000120A1 (en) * 2013-07-01 2015-01-08 Nokia Corporation A method and apparatus for anonymous authentication on trust in social networking
US9288672B2 (en) * 2013-09-23 2016-03-15 Qualcomm Incorporated Method for configuring a remote station with a certificate from a local root certificate authority for securing a wireless network
US9473490B2 (en) * 2014-10-13 2016-10-18 Wells Fargo Bank, N.A. Bidirectional authentication
JP6293716B2 (ja) 2015-11-10 2018-03-14 株式会社アメニディ 匿名通信システムおよび該通信システムに加入するための方法
US10938570B2 (en) * 2016-02-08 2021-03-02 Intel Corporation Technologies for remote attestation
CN105933121A (zh) * 2016-04-11 2016-09-07 南京邮电大学 一种具有隐私保护功能的服务发现机制实现方法和系统
JP6961960B2 (ja) * 2017-03-13 2021-11-05 ソニーグループ株式会社 情報処理装置および情報処理方法
US10447665B2 (en) * 2017-03-31 2019-10-15 Konica Minolta Laboratory U.S.A., Inc. IPv6 link local secure network with biometric security to secure IOT devices
US11082846B2 (en) * 2018-03-20 2021-08-03 Qualcomm Incorporated Method and system for onboard equipment misbehavior detection report routing
TWI772648B (zh) * 2019-06-03 2022-08-01 銓鴻資訊有限公司 基於集體驗證的部分資料驗證方法
CN111428279B (zh) * 2020-03-26 2023-12-08 国汽(北京)智能网联汽车研究院有限公司 一种显式证书生成方法、装置、设备及存储介质
US11777720B2 (en) 2020-06-12 2023-10-03 Nagravision Sàrl Distributed anonymized compliant encryption management system
IL275954A (en) * 2020-07-09 2022-02-01 Google Llc Anonymous event confirmation with group signatures
US20230396600A1 (en) * 2020-10-12 2023-12-07 Goat Software Limited Data transmission system, communications adapter and method
CN113127910B (zh) * 2021-04-30 2022-04-12 复旦大学 基于区块链和去中心可追踪属性签名的可控匿名投票系统
CN116566623B (zh) * 2023-07-05 2023-09-22 北京天润基业科技发展股份有限公司 一种获取匿名数字证书的方法、系统及电子设备

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4405829A (en) * 1977-12-14 1983-09-20 Massachusetts Institute Of Technology Cryptographic communications system and method
EP0804003A3 (en) * 1996-04-26 2000-11-15 Canon Kabushiki Kaisha Digital signature method and communication system
DE69836455T2 (de) * 1997-08-20 2007-03-29 Canon K.K. System für elektronische Wasserzeichen, elektronisches Informationsverteilungssystem und Gerät zur Abspeicherung von Bildern
JP3862397B2 (ja) * 1998-01-16 2006-12-27 キヤノン株式会社 情報通信システム
EP1145479A3 (en) * 1998-06-30 2001-12-05 Privada, Inc. Bi-directional, anonymous electronic transactions
JP2001202013A (ja) 2000-01-21 2001-07-27 Nec Corp 匿名参加権限管理システム
US20020004900A1 (en) 1998-09-04 2002-01-10 Baiju V. Patel Method for secure anonymous communication
US20010020228A1 (en) * 1999-07-09 2001-09-06 International Business Machines Corporation Umethod, system and program for managing relationships among entities to exchange encryption keys for use in providing access and authorization to resources
AU4508001A (en) * 1999-11-29 2001-06-18 Microsoft Corporation System and method for flexible micropayment of low value electronic assets
JP3757732B2 (ja) * 2000-01-25 2006-03-22 日本電信電話株式会社 登録証格納方法及びシステム及びコンピュータ読み取り可能な記録媒体
US20020049681A1 (en) * 2000-07-20 2002-04-25 International Business Machines Corporation Secure anonymous verification, generation and/or proof of ownership of electronic receipts
US7360080B2 (en) * 2000-11-03 2008-04-15 International Business Machines Corporation Non-transferable anonymous credential system with optional anonymity revocation
CA2365441C (en) * 2001-12-19 2010-02-16 Diversinet Corp. Method of establishing secure communications in a digital network using pseudonymic digital identifiers
US7543139B2 (en) * 2001-12-21 2009-06-02 International Business Machines Corporation Revocation of anonymous certificates, credentials, and access rights
JP2003258787A (ja) * 2002-02-26 2003-09-12 Nippon Telegr & Teleph Corp <Ntt> 電子証明書、電子証明書の発行および検証方法、装置、プログラム、プログラムの記録媒体
US7461251B2 (en) * 2002-05-09 2008-12-02 Canon Kabushiki Kaisha Public key certification issuing apparatus
FR2847401A1 (fr) * 2002-11-14 2004-05-21 France Telecom Procede d'acces a un service avec authentification rapide et anonymat revocable et systeme d'ouverture et de maintien de session
US7318155B2 (en) * 2002-12-06 2008-01-08 International Business Machines Corporation Method and system for configuring highly available online certificate status protocol responders
JP2004289347A (ja) * 2003-03-20 2004-10-14 Hitachi Kokusai Electric Inc 無線移動通信システム
US7107447B2 (en) * 2003-04-17 2006-09-12 America Online, Inc. Use of pseudonyms vs. real names
KR20040099943A (ko) * 2003-05-20 2004-12-02 삼성전자주식회사 컨텐츠 사용자 인증 시스템 및 방법
EP1521390B1 (en) * 2003-10-01 2008-08-13 Hewlett-Packard Development Company, L.P. Digital signature method and apparatus
BR0318621A (pt) * 2003-11-27 2006-10-17 Telecom Italia Spa método de arranjar comunicação entre um dispositivo de administrador e um dispositivo administrado em uma rede, sistema de um dispositivo de administrador e um dispositivo administrado em uma rede, rede de comunicação, e, produto de programa de computador
AU2004201058B1 (en) * 2004-03-15 2004-09-09 Lockstep Consulting Pty Ltd Means and method of issuing Anonymous Public Key Certificates for indexing electronic record systems
US7490070B2 (en) * 2004-06-10 2009-02-10 Intel Corporation Apparatus and method for proving the denial of a direct proof signature
CN1773905B (zh) * 2004-11-10 2010-08-18 日电(中国)有限公司 在安全通信系统中生成匿名公钥的方法、设备和系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101330245B1 (ko) * 2008-11-11 2013-11-15 한국전자통신연구원 권한 분산형 가명 인증서 처리 시스템
WO2018230914A1 (ko) * 2017-06-12 2018-12-20 이승진 보안카메라와 사용자 장치 간의 보안키 생성방법
KR20180135161A (ko) * 2017-06-12 2018-12-20 이승진 보안카메라와 사용자 장치 간의 보안키 생성방법

Also Published As

Publication number Publication date
CA2560038A1 (en) 2007-03-21
CN1937496A (zh) 2007-03-28
US20070143608A1 (en) 2007-06-21
JP2007089171A (ja) 2007-04-05
EP1768304A1 (en) 2007-03-28

Similar Documents

Publication Publication Date Title
KR20070033289A (ko) 변용성있는 가명 인증 시스템 및 방법
Sonnino et al. Coconut: Threshold issuance selective disclosure credentials with applications to distributed ledgers
Mandt et al. Certificateless authenticated two-party key agreement protocols
Gupta et al. A provably secure and lightweight identity-based two-party authenticated key agreement protocol for IIoT environments
Brickell et al. A new direct anonymous attestation scheme from bilinear maps
US8245047B2 (en) Group signature scheme with improved efficiency, in particular in a join procedure
CN101641905B (zh) 隐式证书验证
US9571274B2 (en) Key agreement protocol
CN114710275B (zh) 物联网环境下基于区块链的跨域认证和密钥协商方法
EP2384562B1 (en) Management of cryptographic credentials in data processing systems
Battagliola et al. Threshold ecdsa with an offline recovery party
Wei et al. Remove key escrow from the BF and Gentry identity-based encryption with non-interactive key generation
Shim Design principles of secure certificateless signature and aggregate signature schemes for IoT environments
US20160352689A1 (en) Key agreement protocol
Vijayalakshmi et al. Performance analysis of RSA and ECC in identity-based authenticated new multiparty key agreement protocol
EP2384563B1 (en) Verification of data items in data processing systems
Mangipudi et al. Authentication and Key Agreement Protocols Preserving Anonymity.
Wu et al. A publicly verifiable PCAE scheme for confidential applications with proxy delegation
Fajiang et al. An efficient anonymous remote attestation scheme for trusted computing based on improved CPK
Hajny et al. Anonymous credentials with practical revocation
Fiore et al. Identity-based key exchange protocols without pairings
Bultel et al. Improving the efficiency of report and trace ring signatures
Syta et al. Deniable anonymous group authentication
Wen et al. Delegatable secret handshake scheme
Lee et al. Cloud server aided computation for elgamal elliptic curve cryptosystem

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application