KR100668016B1 - 믹스넷 시스템 - Google Patents

믹스넷 시스템 Download PDF

Info

Publication number
KR100668016B1
KR100668016B1 KR1020057016228A KR20057016228A KR100668016B1 KR 100668016 B1 KR100668016 B1 KR 100668016B1 KR 1020057016228 A KR1020057016228 A KR 1020057016228A KR 20057016228 A KR20057016228 A KR 20057016228A KR 100668016 B1 KR100668016 B1 KR 100668016B1
Authority
KR
South Korea
Prior art keywords
hash value
data
verification
output
validity
Prior art date
Application number
KR1020057016228A
Other languages
English (en)
Other versions
KR20060033707A (ko
Inventor
준 후루까와
가즈에 사꼬
Original Assignee
닛본 덴끼 가부시끼가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 닛본 덴끼 가부시끼가이샤 filed Critical 닛본 덴끼 가부시끼가이샤
Publication of KR20060033707A publication Critical patent/KR20060033707A/ko
Application granted granted Critical
Publication of KR100668016B1 publication Critical patent/KR100668016B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • H04L2209/463Electronic voting

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

각 참가자 장치(103)가, 평문을 공통 키 암호 방식의 공통 키를 사용하여 암호화함과 함께, 상기 암호 키를 공통 키에 의해 암호화하고, 이들을 치환 복호 장치(112)로 송부한다. 이에 의해, 취급하는 것이 가능한 암호문의 길이에 제한을 없앨 수 있다. 또한, 본 발명에서는, 각 치환 복호 장치가 행한, 공개 키를 사용한 검증 가능한 증명문을, 검증 장치(109)가 공개 키를 이용하여 검증한다. 이에 의해, 암호문의 복호와 교체를 행하는 복수의 기관 중에 조작을 정확하게 행하지 않았던 것이 존재한 경우, 이것을 제3자가 특정하고, 특정된 것이 부정자인 것을 증명할 수 있다.
참가자 장치, 검증 장치, 해시값 일치 검증 수단, 치환 복호 장치, 증명문 결합 수단

Description

믹스넷 시스템{MIXNET SYSTEM}
본 발명은, 복수의 암호문이 입력되었을 때, 복수의 기관이 공동하여 이들의 순서의 교체와 복호를 행하고, 입력된 암호문과의 대응을 알 수 없도록 하여 출력하는 믹스넷의 기술에 관한 것으로, 특히 입력되는 암호문의 길이에 제한이 없고, 또한 복수의 기관 중에 정확하게 조작을 행하지 않았던 것이 있으면, 제3자라도 그것을 특정하고, 그 사실을 증명할 수 있는 기술에 관한 것이다.
믹스넷은 입력된 암호문의 열에 대하여 요소 사이의 치환과 각 요소의 복호를 행함으로써, 출력되는 복호문의 열의 각 요소와 입력된 암호문의 열의 각 요소의 대응을 알지 못하게 하는 조작이다.
[종래의 기술 (1)]
종래의 믹스넷으로, 정확하게 조작을 행하지 않은 기관을 특정하고 그 사실을 특정할 수 있는 것으로서, 증명 장치와 검증 장치를 이용하는 방법이 있다(예를 들면, 일본 특개 공개 제2002-344445호 공보(문헌 1) 참조). 이 방법을 도 8을 이용하여 설명한다.
문헌 1의 증명 장치는, 치환과 복호를 정확하게 행한 것을 증명하는 장치로서, 문헌 1의 검증 장치는, 증명 장치가 행한 증명이 정확하다는 것을 검증하는 장 치이다. 이 양 장치의 작용에 의해, 만약 증명 장치가 정확하게 조작(치환과 복호)하지 않으면, 증명에 실패하고, 검증 장치는 이 증명 장치가 정확하게 조작하지 않은 것을 밝혀낼 수 있다.
문헌 1의 증명 장치와 검증 장치를 이하에 설명하는 바와 같이 이용하여, 전체적으로 믹스넷으로서 움직인다. 최초에, 각 치환 복호 장치(912)에 대응하여 비밀 키(906)가 결정된다. 이 비밀 키(906)로부터 공개 키(901)를 생성하고, 이 공개 키(901)를 모든 참가자 장치(903)에 분배한다. 길이가 결정된 짧은 평문(902)을 믹스넷의 참가자 장치(903)가, 공개 키(901)를 이용하여 암호화한다.
치환 복호 장치(912)는, 입력된 암호문의 열(913)을 치환 복호하고, 다음의 치환 복호 장치(912)에 전달한다(처리 907). 이하, 이것을 반복하면 마지막으로 평문의 열(911)이 얻어진다. 치환 복호 장치(912)는, 자신이 행한 치환과 복호의 조작이 정확하다는 것을, 문헌 1의 증명 장치를 이용하여 증명한다(처리 908). 검증 장치(909)는, 문헌 1의 검증 장치를 이용하여 치환 복호 장치가 행하는 증명을 검증한다. 이 검증은 검증 장치만 준비할 수 있으면 제3자에게도 가능하다.
이상으로, 참가자 장치(903)가 암호화할 수 있는 평문(902)은, 공개 키의 길이와 동일한 정도의 길이의 것에 한정된다. 그렇기 때문에, 보다 긴 암호문을 평문을 취급할 수는 없다.
[종래의 기술 (2)]
종래의 믹스넷으로, 임의의 길이의 암호문을 취급할 수 있는 것으로서, 쥴(Juels)과 야콥슨(Jakobsson)에 의한 방식이 있다(예를 들면, 「An Optimally Robust Hybrid Mix Network, Proc. of the 20th annual ACM Symposium on Principles of Distributed Computation, 2001」(문헌 2) 참조). 이 방식에서는, 입력되는 암호문은, 임의의 공통 키 암호 방식에 의해 평문을 암호화한 것이기 때문에, 평문의 길이에 특히 제한이 없다. 그 한편으로, 이 방식은, 암호문의 복호와 교체를 행하는 복수의 기관 중, 이들 조작을 정확하게 행하지 않은 것이 있었던 경우, 이 공동 복호와 교체에 해당하는 기관은 이것을 특정할 수 있다. 그러나, 이들 복수의 기관의 협력이 없는 제3자에게는, 암호문의 조작을 정확하게 행하지 않은 기관을 특정할 수는 없다.
상기 관계를 도 9를 이용하여 설명한다. 문헌 2에 기재된 믹스넷은, 종래의 기술 (1)의 믹스넷과 거의 마찬가지로 동작하지만, 입력되는 평문이 긴 평문(1002)이더라도 된다. 또한, 치환과 복호가 정확하게 행해졌는지를 치환 복호 장치끼리로 상호 검증할 수 있다(처리 1014). 그러나, 제3자가 이것을 검증하는 것은, 종래의 기술 (1)과 다르게 할 수 없다.
<발명의 개시>
(발명이 해결하고자 하는 과제)
종래의 기술 (1)은, 암호문의 복호와 교체를 행하는 복수의 기관 중, 이들 조작을 정확하게 행하지 않은 것이 존재한 경우, 이것을 제3자가 특정하고, 특정한 것이 부정자인 것을 증명할 수 있다. 한편 이 방식은, 취급할 수 있는 암호문의 길이가 한정되어 있다고 하는 결점을 갖는다.
종래의 기술 (2)는, 취급할 수 있는 암호문의 길이에 제한이 없는 한편, 암호문의 복호와 교체를 행하는 복수의 기관 중, 이들 조작을 정확하게 행하지 않은 것이 존재한 경우, 이것을 제3자가 단독으로 특정하는 것은 불가능하다고 하는 결점을 갖는다.
따라서, 본 발명의 목적은, 암호문의 복호와 교체를 복수의 기관에서 행하는 경우에, 제3자가 부정자를 특정할 수 있도록 하는 것에 있다.
또한, 다른 목적은, 암호문의 길이의 제한을 없애는 것에 있다.
(과제를 해결하기 위한 수단)
본 발명의 참가자 장치는,
공통 키 암호 방식의 복수의 공통 키의 하나를, 복수의 치환 복호 장치의 하나의 공개 키에 의해 암호화하는 키 암호화 수단과,
공통 키 암호 방식의 복수의 공통 키의 하나로, 주어진 데이터를 암호화하는 데이터 암호화 수단과,
암호학적인 해시 함수를 이용하여, 주어진 데이터의 해시값을 계산하고, 이 해시값을 상기 복수의 치환 복호 장치의 하나의 공개 키에 의해 암호화하는 해시값 암호화 수단과,
상기 데이터 암호화 수단의 최초의 입력을 평문으로 하고, 다음부터의, 상기 데이터 암호화 수단의 입력을 전회의 상기 데이터 암호화 수단, 상기 키 암호화 수단, 상기 해시값 암호화 수단의 출력으로 하는 처리를, 상기 치환 복호 장치의 수만큼 반복하는 반복 수단과,
상기 반복 수단의 처리에 의해 얻어진 데이터를 출력하는 출력 수단
을 포함하는 것을 특징으로 한다.
본 발명의 정리 장치는,
복수의 데이터가 입력되고, 이들 데이터의 정당성을 검증하고, 정당하다는 것이 판명된 것만을 출력하는 구성을 구비하는 것을 특징으로 한다.
본 발명의 치환 복호 장치는,
입력 데이터 열의 각 요소를, 공개 키 암호 방식에 의해 암호화된 공통 키 암호 방식의 공통 키, 공통 키 암호 방식에 의해 암호화된 데이터 공개 키 암호 방식에 의해 암호화된 해시값으로 분할하는 데이터 분할 수단과,
상기 암호화된 공통 키 암호 방식의 공통 키를 상기 공개 키 암호 방식의 비밀 키에 의해 복호하는 공통 키 복호 수단과,
복호한 상기 공통 키를 이용하여, 상기 암호화된 데이터를 복호하여 출력 데이터를 생성하는 데이터 복호 수단과,
상기 암호화된 해시값을, 상기 공개 키 암호 방식의 비밀 키에 의해 복호한 것을 출력하는 해시값 복호 수단과,
상기 복호된 해시값과 상기 생성된 출력 데이터의 해시값을 비교하여, 일치하면 해시값 수리를, 상이하면 해시값 불수리를 출력하는 해시값 검증 수단과,
상기 출력 데이터에서, 상기 입력 데이터 열의 동일한 요소의 데이터로부터 생성된 것이라는 의미에서 대응하는 상기 해시값 검증 수단에서 수리를 출력받은 것만을 열의 요소로 하는 데이터 열을 생성하고, 또한 각 요소의 순서를 일정하게 무작위로 재배열하여 출력 데이터 열로 하는 출력 데이터 열 생성 수단과,
상기 출력 데이터 열의 각 요소의 해시값이, 반드시 상기 입력 데이터 열이 있는 요소에 포함되는 상기 암호화된 해시값을 복호한 것이고, 또한 양자의 대응이 일대일인 것의 증명문인 해시값 복호 정당성 증명문을 생성하는 해시값 복호 정당성 증명 수단과,
상기 해시값 검증 수단에서 불수리를 출력받은 경우, 이 불수리의 출력이 정당하다는 것의 증명문인 해시값 불수리 정당성 증명문을 생성하는 해시값 불수리 정당성 증명 수단과,
상기 해시값 복호 정당성 증명문과 상기 해시값 불수리 정당성 증명문을 정당성 증명문으로 하고, 이것과 상기 출력 데이터 열 생성 수단이 출력한 상기 출력 데이터 열을 출력하는 출력 수단
을 포함하는 것을 특징으로 한다.
본 발명의 검증 장치는,
해시값 복호 정당성 증명문에 포함되는 복호된 해시값이, 입력 데이터 열이 있는 요소의 암호화된 해시값을 복호한 것에 일치하여, 양자에 일대일의 관계가 있는 것을 검증하여, 양자가 일치하여 일대일의 관계가 있으면 수리를, 없으면 불수리를 출력하는 해시값 복호 정당성 검증 수단과,
상기 복호된 해시값이, 출력 데이터 열의 각 요소의 해시값과 일치하면 수리를, 일치하지 않으면 불수리를 출력하는 해시값 일치 검증 수단과,
입력 암호문의 열의 요소 중, 상기 해시값 일치 검증 수단에서 불수리가 출력된 해시값에 대응하는 요소에 관해서는, 이 불수리의 출력이 정당하다는 것의 증명문인 해시값 불수리 정당성 증명문을 검증하여, 이 증명문이 정당하면 수리를, 부당하면 불수리를 출력하는 해시값 불수리 정당성 검증 수단과,
상기 입력 데이터 열의 요소에 관하여, 상기 해시값 복호 정당성 검증 수단에 의해 수리되고, 또한 상기 해시값 일치 검증 수단에 의한 수리, 상기 해시값 일치 검증 수단에 의한 불수리, 상기 해시값 불수리 정당성 검증 수단에 의한 수리 중 어느 하나이고, 또한 상기 출력 데이터 열에는 상기 해시값 일치 검증 수단에 의해 수리된 요소에 대응하는 것만이며, 또한 이들이 모두 포함되어 있으면 수리를, 그렇지 않으면 불수리를 출력하는 정당성 판정 수단
을 구비하는 것을 특징으로 한다.
본 발명의 믹스넷 시스템은,
상기 참가자 장치 복수와, 상기 정리 장치와, 상기 치환 복호 장치와, 상기 검증 장치를 구비하고,
안전 변수, 공개 키 암호 방식의 영역 변수, 암호학적인 해시 함수, 공통 키 암호 방식의 암호화 함수를 생성하여, 공개하는 초기 설정 처리와,
상기 복수의 치환 복호 장치의 각각의 공개 키를 생성하여, 공개하는 치환 복호 장치의 초기 설정 처리와,
안전 변수, 공개 키 암호 방식의 영역 변수, 암호학적인 해시 함수, 공통 키 암호 방식의 암호화 함수, 상기 복수의 치환 복호 장치의 각각의 공개 키, 복수의 상기 공통 키 암호 방식의 공통 키 및 상기 참가자마다 다른 평문이 상기 참가자 장치의 각각에 입력되고,
상기 참가자 장치의 각각으로부터, 상기 치환 복호 장치로 입력하는 데이터를 각각 출력하는 참가 처리와,
상기 참가 처리에서 얻어진 치환 복호 장치로 입력하는 데이터 전부가 상기 정리 장치에 입력되고, 이 때의 상기 정리 장치의 출력을 입력 데이터 열로 하는 정리 처리와,
상기 치환 복호 장치의 하나로, 입력 데이터 열과 공개 키 암호 방식의 비밀 키가 입력되고, 이 치환 복호 장치가 출력 데이터 열, 정당성 증명문의 열을 출력하는 치환 복호 처리와,
상기 정리 처리의 출력인 입력 데이터 열을 최초의 입력 데이터 열로 하여 상기 치환 복호 처리를, 이용하는 치환 복호 장치를 교환하면서 차례차례 반복하여 행하는 처리로, 최초의 치환 복호 처리에서의 입력 데이터 열은, 상기 정리 처리가 출력하는 입력 데이터 열이고, 이후의 치환 복호 처리에서의 입력 데이터 열은, 직전의 치환 복호 처리에서의 출력 데이터의 열로 하며, 최후의 치환 복호 처리가 출력하는 출력 데이터 열을 복호 결과로 하여, 최후의 치환 복호 처리를 제외하는 각 치환 복호 처리가 출력하는 출력 데이터 열을 복호 도중 결과로 하고, 모든 치환 복호 처리가 출력하는 정당성 증명문을, 전체의 정당성 증명문으로 하고, 복호 결과, 복호 도중 결과, 전체의 정당성 증명문을 출력하는 통합 치환 복호 처리와,
복호 결과, 복호 도중 결과, 전체의 정당성 증명문으로부터 각 치환 복호 장치의 입력 및 출력을 분리하고, 각 치환 복호 처리의 입력 데이터 열과 출력 데이터 열과 정당성 증명문이 상기 검증 장치에 입력되고, 상기 검증 장치가 수리 또는 불수리를 출력하는 검증 처리와,
모든 치환 복호 처리에 관한 검증 처리의 출력을 모아, 전부가 수리이면 전체로서의 수리를, 그렇지 않으면 전체로서의 불수리를 출력하는 믹스넷 판정 처리를 행하는 것을 특징으로 한다.
(발명의 효과)
본 발명에서는, 각 참가자 장치가, 평문을 공통 키 암호 방식의 공통 키를 사용하여 암호화함과 함께, 상기 암호 키를 공개 키에 의해 암호화하고, 이들을 치환 복호 장치로 송부한다. 이에 의해, 취급할 수 있는 암호문의 길이에 제한을 없앨 수 있다.
또한, 본 발명에서는, 각 치환 복호 장치가 행한, 공개 키를 이용한 검증 가능한 증명문을, 검증 장치가 공개 키를 이용하여 검증한다. 이에 의해, 암호문의 복호와 교체를 행하는 복수의 기관 중에 조작을 정확하게 행하지 않은 것이 존재한 경우, 이것을 제3자가 특정하고, 특정된 것이 부정자인 것을 증명할 수 있다.
도 1은 본 발명에 따른 믹스넷 시스템의 전체 구성을 도시하는 블록도.
도 2는 본 발명의 실시예 1에서의 참가자 장치의 구성예를 도시하는 블록도.
도 3은 본 발명의 실시예 1에서의 치환 복호 장치의 구성예를 도시하는 블록도.
도 4는 본 발명의 실시예 1에서의 검증 장치의 구성예를 도시하는 블록도.
도 5는 본 발명의 실시예 2에서의 참가자 장치의 구성예를 도시하는 블록도.
도 6은 본 발명의 실시예 2에서의 치환 복호 장치의 구성예를 도시하는 블록도.
도 7은 본 발명의 실시예 2에서의 검증 장치의 구성예를 도시하는 블록도.
도 8은 종래의 기술 1을 설명하기 위한 블록도.
도 9는 종래의 기술 2를 설명하기 위한 블록도.
<발명을 실시하기 위한 최량의 형태>
다음으로 본 발명의 실시예에 대하여 도면을 참조하여 상세히 설명한다.
1 실시예 1
1.1 개요
실시예 1의 개요에 대하여, 도 1~도 4를 참조하여 설명한다.
본 실시예에 따른 믹스넷 시스템은, 도 1에 도시한 바와 같이, 복수의 참가자 장치(103)와, 정리 장치(104)와, 복수의 치환 복호 장치(112)와, 검증 장치(109)로 구성된다.
[참가자 장치]
도 2에 도시한 바와 같이, 참가자 장치(103)는, 키 암호화 수단(205)과, 데이터 암호화 수단(206)과, 해시값 암호화 수단(207)과, 지식의 연결 수단(208)과, 반복 수단(213)과, 난수의 지식의 증명 수단(210)과, 출력 수단(215)을 갖는다.
여기서, 키 암호화 수단(205)은, 공통 키 암호 방식의 복수의 공통 키의 하 나를, 복수의 치환 복호 장치(112)의 하나의 공개 키(101)에 의해 암호화하고, 또한 이 때 암호화한 공통 키의 지식의 증명문을 생성한다. 데이터 암호화 수단(206)은, 공통 키 암호 방식의 복수의 공통 키의 하나로, 주어진 데이터(214)를 암호화한다. 해시값 암호화 수단(207)은, 암호학적인 해시 함수를 이용하여, 주어진 데이터의 해시값을 계산하고, 이 해시값을 복수의 치환 복호 장치(112)의 하나의 공개 키에 의해 암호화한다. 지식의 연결 수단(208)은, 주어진 데이터(214)를, 복수의 치환 복호 장치(112)의 하나의 공개 키(101)에 의해 암호화하고, 또한 이 때의 암호화에 이용한 비밀의 난수의 지식의 증명문을 생성한다.
반복 수단(213)은, 데이터 암호화 수단(206)의 최초의 입력을 평문(102)으로 하고, 다음부터의, 데이터 암호화 수단(206)의 입력을 전회의 데이터 암호화 수단(206), 키 암호화 수단(205), 해시값 암호화 수단(207), 지식의 연결 수단(208)의 출력으로 하는 처리를, 치환 복호 장치(112)의 수만큼 반복한다. 전체의 난수의 지식의 증명 수단(210)은, 지식의 연결 수단(208)에 의한 처리를 반복함으로써 최종적으로 얻어진 데이터에 관하여, 처리의 반복 전체에서 사용한 비밀의 난수의 합의 지식의 증명문을 생성하여 출력한다. 출력 수단(215)은, 반복 수단(213)의 처리에 의해 얻어진 데이터를 암호문(211)으로서 출력함과 함께, 이 암호문(211)을 작성한 것이 정당한 참가자 장치인 것을 증명하는 데이터를 출력한다.
[정리 장치]
정리 장치(104)에는, 복수의 참가자 장치(103)의 각각으로부터, 암호문(211)과, 이 암호문(211)을 작성한 것이 정당한 참가자 장치인 것을 증명하는 데이터가 입력된다. 그리고, 정리 장치(104)는, 입력된 암호문(211)이 정당한 참가자 장치에 의해서 생성된 것을 검증하여, 정당하다는 것이 판명된 것만을 치환 복호 장치(112)의 하나로 출력한다.
[치환 복호 장치]
도 3에 도시한 바와 같이, 치환 복호 장치(112)는, 데이터 분할 수단(322)과, 공통 키의 지식의 검증 수단(307)과, 비밀의 난수의 지식의 검증 수단(308)과, 공통 키 복호 수단(310)과, 데이터 복호 수단(313)과, 해시값 복호 수단(312)과, 해시값 검증 수단(317)과, 연결 데이터 복호 수단(314)과, 출력 데이터 열 생성 수단(311)과, 해시값 복호 정당성 증명 수단(315)과, 연결 데이터 복호 정당성 증명 수단(316)과, 해시값 불수리 정당성 증명 수단(318)과, 출력 수단을 갖는다.
여기서, 데이터 분할 수단(322)은, 정리 장치(104) 또는 다른 치환 복호 장치로부터 입력되는 입력 데이터 열(105)의 각 요소를, 공개 키 암호 방식에 의해 암호화된 공통 키 암호 방식의 공통 키(302), 공통 키 암호 방식에 의해 암호화된 데이터(303), 공개 키 암호 방식에 의해 암호화된 해시값(304), 공개 키 암호 방식에 의해 암호화된 연결 데이터(305), 암호화된 공통 키의 지식의 증명문(301), 연결 데이터 암호화에 이용한 비밀의 난수의 지식의 증명문(306)으로 분할한다.
공통 키의 지식의 검증 수단(307)은, 공통 키의 지식의 증명문(301)의 정당성을 검증하여, 정당하면 수리를, 부당하면 불수리를 출력한다. 비밀의 난수의 지식의 검증 수단(308)은, 비밀의 난수의 지식의 증명문(306)을 검증하여, 정당하면 수리를, 부당하면 불수리를 출력한다. 공통 키 복호 수단(310)은, 암호화된 공통 키 암호 방식의 공통 키를, 공개 키 암호 방식의 비밀 키(106)에 의해 복호한다. 데이터 복호 수단(313)은, 복호한 공통 키를 이용하여, 암호화된 데이터(303)를 복호하여 출력 데이터를 생성한다. 해시값 복호 수단(312)은, 암호화된 해시값(304)을, 공개 키 암호 방식의 비밀 키(106)에 의해 복호한 것을 출력한다. 해시값 검증 수단(317)은, 복호된 해시값과 생성된 출력 데이터의 해시값을 비교하여, 일치하면 해시값 수리를, 상이하면 해시값 불수리를 출력한다. 연결 데이터 복호 수단(314)은, 암호화된 연결 데이터(305)를, 공개 키 암호 방식의 비밀 키에 의해 복호한다.
출력 데이터 열 생성 수단(311)은, 출력 데이터와 복호된 연결 데이터에서, 입력 데이터 열(105)의 동일한 요소의 데이터로부터 생성된다는 의미에서 대응하는 해시값 검증 수단(317), 공통 키의 지식의 검증 수단(307), 비밀의 난수의 지식의 검증 수단(306)의 모두에서 수리를 출력받은 것만을 열의 요소로 하는 데이터 열을 생성하고, 또한 각 요소의 순서를 일정하게 무작위로 재배열하여 출력 데이터 열(107)로 한다.
해시값 복호 정당성 증명 수단(315)은, 출력 데이터 열(107)의 각 요소의 해시값이, 반드시 입력 데이터 열(105)이 있는 요소에 포함되는 암호화된 해시값을 복호한 것이고, 또한 양자의 대응이 일대일인 것의 증명문인 해시값 복호 정당성 증명문을 생성한다. 연결 데이터 복호 정당성 증명 수단(316)은, 출력 데이터 열(107)의 각 요소에 포함되는 복호된 연결 데이터가, 반드시 입력 데이터 열(105)이 있는 요소에 포함되는 암호화된 연결 데이터를 복호한 것이고, 또한 양자의 대응이 일대일인 것의 증명문인 연결 데이터 복호 정당성 증명문을 생성한다. 해시값 불수리 정당성 증명 수단(318)은, 해시값 검증 수단(317)에서 불수리를 출력받은 경우, 이 불수리의 출력이 정당하다는 것의 증명문인 해시값 불수리 정당성 증명문을 생성한다.
출력 수단은, 해시값 복호 정당성 증명문과 연결 데이터 복호 정당성 증명문과 해시값 불수리 정당성 증명문을 정당성 증명문(108)으로 하여, 이것과 출력 데이터 열 생성 수단(311)의 출력한 출력 데이터 열(107)을 출력한다.
[검증 장치]
도 4에 도시한 바와 같이, 검증 장치(109)는, 공통 키의 지식의 검증 수단(402)과, 비밀의 난수의 지식의 검증 수단(404)과, 해시값 복호 정당성 검증 수단(406)과, 해시값 일치 검증 수단(408)과, 연결 데이터 복호 정당성 검증 수단(407)과, 해시값 불수리 정당성 검증 수단(409)과, 정당성 판정 수단(405)을 갖는다.
공통 키의 지식의 검증 수단(402)은, 정리 장치(104) 또는 치환 복호 장치(112)로부터 입력되는 입력 데이터 열(105)의 각 요소에 속하는 공통 키의 지식의 증명문(301)의 정당성을 검증하여, 정당하면 수리를, 부당하면 불수리를 출력한다. 비밀의 난수의 지식의 검증 수단(404)은, 입력 데이터 열(105)의 각 요소에 속하는 비밀의 난수의 지식의 증명문(306)을 검증하여, 정당하면 수리를, 부당하면 불수리를 출력한다. 해시값 복호 정당성 검증 수단(406)은, 해시값 복호 정당성 증명문(401)에 포함되는 복호된 해시값이, 입력 데이터 열(105)이 있는 요소의 암호화된 해시값을 복호한 것에 일치하여, 양자에 일대일의 관계가 있는 것을 검증하여, 양 자가 일치하여 일대일의 관계가 있으면 수리를, 없으면 불수리를 출력한다.
해시값 일치 검증 수단(408)은, 복호된 해시값이, 치환 복호 장치(112)의 출력 데이터 열(107)의 각 요소의 해시값과 일치하면 수리를, 일치하지 않으면 불수리를 출력한다. 연결 데이터 복호 정당성 검증 수단(407)은, 출력 데이터 열(107)의 각 요소에 포함되는 복호된 연결 데이터가, 입력 데이터 열(105)이 있는 요소에 포함되는, 암호화된 연결 데이터(305)를 복호한 것에 일치하여, 양자에 일대일의 관계가 있는 것을 검증하여, 양자가 일치하여 일대일의 관계가 있으면 수리를, 없으면 불수리를 출력한다. 해시값 불수리 정당성 검증 수단(409)은, 입력 암호문의 열(303)의 요소 중에서, 해시값 일치 검증 수단(408)에서 불수리가 출력된 해시값에 대응하는 요소에 관해서는, 이 불수리의 출력이 정당하다는 것의 증명문인 해시값 불수리 정당성 증명문(400)을 검증하여, 이 증명문이 정당하면 수리를, 부당하면 불수리를 출력한다.
정당성 판정 수단(405)은, 입력 데이터 열(105)의 요소 중에서, 이 요소에 대한 공통 키의 지식의 검증 수단(402)과 비밀의 난수의 지식의 검증 수단(404)의 양쪽에서 수리된 것의 모두에 대하여, 이하의 모든 조건이 만족되어 있으면 수리를, 그렇지 않으면 불수리를 출력한다.
(A) 해시값 복호 정당성 검증 수단(406)과, 연결 데이터 복호 정당성 검증 수단(407)의 양쪽에서 수리.
(B) 해시값 일치 검증 수단(408)에서 수리, 혹은 해시값 일치 검증 수단(408)에서 불수리 또한 해시값 불수리 정당성 검증 수단(409)에서 수리.
(C) 출력 데이터 열(107)에는, 공통 키의 지식의 검증 수단(402)과 비밀의 난수의 지식의 검증 수단(404)과 해시값 일치 검증 수단(408)에서 수리된 요소에 대응하는 것만이며, 또한 이들이 모두 포함되어 있다.
[믹스넷 시스템의 동작]
먼저, 안전 변수, 공개 키 암호 방식의 영역 변수, 암호학적인 해시 함수, 공통 키 암호 방식의 암호화 함수를 생성하고, 공개할 초기 설정 처리(100)를 행한다. 계속하여, 복수의 치환 복호 장치(112)의 각각의 공개 키를 생성하고, 공개할 치환 복호 장치의 초기 설정 처리(320)를 행한다.
계속하여, 복수의 참가자 장치(103)의 각각에서, 안전 변수, 공개 키 암호 방식의 영역 변수, 암호학적인 해시 함수, 공통 키 암호 방식의 암호화 함수, 복수의 치환 복호 장치(112)의 각각의 공개 키, 공통 키 암호 방식의 복수의 공통 키 및 참가자 장치(103)마다 다른 평문을 입력하고, 정리 장치(104)를 통해 치환 복호 장치에 출력하는 데이터를 생성하는 참가 처리를 행한다. 계속하여, 참가 처리에서 얻어진 데이터 모두를 정리 장치(104)에 입력하고, 정리 처리를 행하여, 그 결과를 입력 데이터 열(105)로서 치환 복호 장치(112) 중 하나에 출력한다.
계속하여, 복수의 치환 복호 장치(112)의 각각에서, 입력 데이터 열(105)과 공개 키 암호 방식의 비밀 키(106)를 입력하고, 출력 데이터 열(107)과 정당성 증명문(108)의 열을 생성하는 치환 복호 처리를 행한다. 이 때, 최초의 치환 복호 장치(112)에서의 입력 데이터 열(105)은, 정리 장치(104)로부터의 입력 데이터 열(105)로 하고, 이후의 치환 복호 장치(112)에서의 입력 데이터 열(105)은, 각각의 직전의 치환 복호 장치(112)로부터의 출력 데이터 열(107)로 한다. 최후의 치환 복호 장치(112)로부터의 출력 데이터 열(107)을 복호 결과로 하고, 최후의 치환 복호 장치(112)를 제외한 각 치환 복호 장치(112)로부터의 출력 데이터 열(107)을 복호 도중 결과로 한다. 모든 치환 복호 장치(112)로부터 출력되는 정당성 증명문(108)을, 전체의 정당성 증명문으로 하여, 복호 결과, 복호 도중 결과, 전체의 정당성 증명문을 출력한다. 이상의 처리를 통합 치환 복호 처리라 한다.
계속하여, 복호 결과, 복호 도중 결과, 전체의 정당성 증명문으로부터 각 치환 복호 장치(112)의 입력 및 출력을 분리하고, 각 치환 복호 장치(112)에서의 입력 데이터 열(105)과 출력 데이터 열(107)과 정당성 증명문(108)을 검증 장치(109)에 입력하고, 검증 장치(109)에서 수리 또는 불수리를 출력하는 검증 처리를 행한다. 모든 치환 복호 처리에 관한 검증 처리의 결과를 모아서, 전체가 수리이면 전체로서의 수리를, 그렇지 않으면 전체로서의 불수리를 출력하는 믹스넷 판정 처리를 행한다.
또한, 참가자 장치(103)는, 해시값 암호화 수단(207)의 최초의 입력으로서, 평문(102)과 아울러, 난수, 일시, 믹스넷의 세션에 고유한 값, 및 이들을 조합한 데이터 중 어느 하나를 사용하여도 된다.
1.2 기법
이하에서 이용하는 기법의 설명을 한다. Hash()를 암호학적인 해시 함수, q를 소수, C를 자리수가 q인 타원 곡선, G를 C 상의 임의의 점, 공통 키 암호 방식의 암호화 함수를 enc[e](), 복호 함수를 dec[e]()로 한다. 단 여기서, e는 암호 화 또는 복호에 사용하는 공통 키를 나타내는 것으로 한다. 해시 함수의 치역의 비트 수를 L로 하고, 공통 키 암호 방식의 암호화 함수의 키의 비트 수는 L로 하며, q의 비트 수는 L보다 5 비트 이상 큰 것으로 한다. L을 안전 변수라 한다. 수식 X=[x]G는 X가 G의 타원 곡선 상의 x 배점인 것을 나타낸다. 또한, 가산 기호 「+」는, 타원 곡선 상의 점에 대하여 사용된 경우, 이것은 타원 곡선 상의 연산을 의미한다.
본 발명의 임의의 길이의 암호문을 취급할 수 있는 제3자 검증 가능한 믹스넷 시스템은, 복수의 치환 복호 장치와, 복수의 믹스넷 참가자의 참가자 장치와, 검증 기관의 검증 장치와, 정리 기관의 정리 장치로 구성된다. 치환 복호 장치의 수를 m, 참가자 장치의 수를 n으로 하고, j번째의 치환 복호 장치를 S(j), i번째의 참가자 장치를 Ui로 한다.
Ψ는, L 비트의 정수값으로부터 타원 곡선 C 상의 점으로의 일대일의 사상이며, Φ는, 타원 곡선 상의 점으로부터 L 비트의 정수값으로의 전사이고, Φ·Ψ는 항등 사상이며, Φ, Ψ 모두 효율적으로 계산할 수 있는 것으로 한다. 구체적인 Φ의 예로서, 타원 곡선의 점 E가 주어졌을 때 e=Φ(E)로 하고, E의 x 좌표의 아래로부터 L 비트를 채용하는 사상을 들 수 있다. 이 경우의 Ψ의 구체예로서는, L 비트의 비트 열 e가 주어졌을 때, 타원 곡선 상의 점의 x 좌표의 아래 L 비트를 e로 하고, 나머지 비트에 결정된 0을 패딩한다. 그리고, C 상의 이와 같은 x 좌표를 갖는 점이 있는지를 조사한다. 만일 없으면 패딩을 정해진 수순으로 변경해 가 며, 이것이 C 상의 점인 x 좌표로 될 때까지 계속한다. C 상의 점이 발견되면 이것을 Ψ(e)로 한다. 이 점(Ψ(e))의 x 좌표의 아래 L 비트는 항상 e이기 때문에, 분명히 Φ·Ψ(e)=e이어서, Φ·Ψ는 항등 사상이다.
1.3 구체예
실시예 1에 대하여, 도 1~도 4를 참조하면서 구체적으로 설명한다.
[초기 설정]
최초에 초기 설정을 위한 초기 설정 기관은, 컴퓨터 등에 의해 실현되는 초기 설정 장치(100)를 이용하여, 평문의 비트 길이 A와, 안전 변수 L과, L보다 5 그 비트 길이가 큰 소수 q와, 자리수가 q인 타원 곡선 C와, C 상의 점 G, 출력 비트 길이가 L인 암호학적인 해시 함수 Hash()와, 길이 L의 키를 사용하는 공통 키 암호 방식과, 상기 공통 키 암호 방식의 암호화 함수 enc[e]() 및 복호 함수 dec[e]와, L 비트의 비트 열로부터 C 상으로의 점으로의 함수 Ψ()와, C 상의 점으로부터 L 비트의 비트 열에의 사상 Φ()을 결정하여 공개한다. 여기서, 소수 q와, 자리수가 q인 타원 곡선 C와, C 상의 점 G가, 공개 키 암호 방식의 영역 변수로 된다.
[치환 복호 장치의 초기 설정]
다음으로 모든 치환 복호 장치(112)는, 다음의 초기 설정 처리를 행한다. 모든 치환 복호 장치 S(j)(j=1, …, m) 내의 초기 설정 수단(320)(도 3 참조)은, 비밀 키(106) x(j)∈Z/qZ를 일정하게 무작위로 선택하고, 그것을 자치환 복호 장치 S(j) 내에 보존함과 함께, 공개 키 101X(j)=[X(j)]를 생성하고, 공개한다.
또한, 각 치환 복호 장치 S(j) 내의 초기 설정 수단(320)은, r(j)∈Z/qZ를 일정하게 무작위로 선택하고,
γ(j)=Hash(G, [r(j)] X(j))
α(j)=r(j)(j)r(j) mod q
를 계산하고, γ(j), α(j)를 X(j)의 지식의 영 지식 증명문(321)으로서 공개한다.
[참가자 장치의 암호문 생성]
i=1, …, n에 대하여, 참가자 장치(103)Ui(도 2 참조)는, 길이가 A 비트인 평문(102)Mi을 결정한다. 각 참가자 장치(103)Ui는, 최초의 데이터(214)로서, ci (m+1)=Mi와, T'(m+1)=G와, 임의 데이터(203)(각각이 L 비트인 임의의 문자열 Ki (m+1), K'i (m+1), Si (m+1), S'i (m+1), pi (m+1))를 포함하는 데이터를 생성한다(처리(200)). 또한, 키 생성 수단(204)이, j=1, …, m에 대하여 Z/qZ의 요소 r[1]i (j), r[2]i (j), r[3]i (j), r[4]i (j), r[5]i (j) 및 C 상의 점 Ei (j)을 일정하게 무작위로 선택한다.
그 후, 키 암호화 수단(205), 데이터 암호화 수단(206), 해시값 암호화 수단(207), 지식의 연결 수단(208), 증명문 결합 수단(209), 증명 생성 수단(210) 및 출력 수단(215)이 j=m, (m-1), …, 1의 순서로 반복하여 이하의 처리(213)를 행한다.
여기서 임의의 문자열로서는, 난수, 세션 고유의 수, 일시 등을 선택하는 경우가 있다.
난수를 이용하면, 최종적인 복호문의 집합으로부터 자신의 평문의 존재를 참가자 장치가 확인할 수 있는 효과가 있고, 세션 고유의 수나 일시를 넣으면, 다른 세션에 사용된 암호문을 재이용하고 있지 않다는 것을 알 수 있는 효과가 있다.
·키 암호화 수단(205)에서의 암호화 처리
공통 키 ei (j)의 암호화를 위해,
ei (j)=Φ(Ei (j))
로 되는 Ei (j)를 구하고,
(Ki (j), K'i (j))=([r[1]i (j)]X(j), [r[1]i (j)]G+Ei (j))
를 계산하고, 계산 결과를 출력 수단(215)에 입력한다.
·키 암호화 수단(205)에서의 공통 키의 지식의 증명문의 생성 처리
γi (j)=Hash(Ki (j), K'i (j), ci (j), Si (j), S'i (j), Ti (j), T'i (j), [r[4]i (j)]X(j))
와,
αi (j)=r[4]i (j)i (j)r[1]i (j) mod q
를 계산하고, 이들을 증명문 결합 수단(209)에 입력한다.
·데이터 암호화 수단(206)에서의 데이터 암호화 처리
ei (j)=Φ(Ei (j))
와,
ci (j)=enc[ei (j)](Ki (j+1), K'i (j+1), ci (j+1), Si (j+1), S'i (j+1), Ti (j+1), T'i (j+1), Pi (j+1))
를 계산하고, Ci (j)를 출력 수단(215)에 입력한다.
·해시값 암호화 수단(207)에서의 해시값 암호화 처리
(Si (j), S'i (j))=(r[2]i (j)]X(j), [r[2]i (j)〕G+Ψ(Hash(Ki (j+1), K'i (j+1), ci (j+1), Si (j+1), S'i (j+1), Ti (j+1), T'i (j+1), Pi (j+1))))
를 계산하고, Si (j), S'i (j)를 출력 수단(215)에 입력한다.
·지식의 연결 수단(208)에서의 지식의 연결 처리
(Ti (j), T'i (j))=(r[3]i (j)]X(j), [r[3]i (j)〕G+T'(j+1))
를 계산하고, Ti (j), T'i (j)를 출력 수단(215)에 입력한다.
·지식의 연결 수단(208)에서의 난수의 지식의 증명문의 생성 처리
γ'i (j)=Hash(Ki (j+1), K'i (j+1), ci (j+1), Si (j+1), S'i (j+1), Ti (j+1), T'i (j+1), [r[5]i (j)]Xi (j))
와,
α'i (j)=r[5]i (j)-γ'i (j)r[3]i (j) mod q
를 계산하고, 이들을 증명문 결합 수단(209)에 입력한다.
·증명문 결합 수단(209)에서의 공통 키의 지식의 증명문과 난수의 지식의 증명문의 결합 처리
공통 키의 지식의 증명문 γi (j), αi (j)와, 난수의 지식의 증명문 γ'i (j), α'i (j)를 통합한 증명문 Pi (j)=[γi (j), αi (j), γ'i (j), α'i (j)]를 생성하고, j=1이면(Pi (j)이면), 그것을 증명문(212)의 일부로서 출력한다.
·증명 생성 수단(210)에서의 처리
Z/qZ의 요소 r[4]i (0)을 일정하게 무작위로 선택하고, 이하의 전체의 난수의 지식의 증명을 계산하여, Pi (0)을 증명문의 일부로서 출력한다.
γ'i (0)=Hash((Ki (1), K'i (1), ci (1), Si (1), S'i (1), Ti (1), T'i (1), [r[4]i (0)]G)
α'i (0)=r[4]i (0)-γ'i (0)Σi=1m r[3]i (j) mod q
Pi (0)=[γ'i (0), α'i (0)]
·출력 수단(215)에서의 처리
키 암호화 수단(205)으로부터의 입력 Ki (j), K'i (j)와, 데이터 암호화 수단(206)으로부터의 입력 ci (j)와, 해시값 암호화 수단(207)으로부터의 입력 Si (j), S'i (j)와, 지식의 연결 수단(208)으로부터의 입력 Ti (j), T'i (j)로부터 데이터(214')(Ki (j), K'i (j), ci (j), Si (j), S'i (j), Ti (j), T'i (j))를 생성하고, j=1이 아니면, 데이터(214')를 데이터(214)로 하여 피드백하고, j=1이면, (Ki (1), K'i (1), ci (1), Si (1), S'i (1), Ti (1), T'i (1))를 암호문(11)으로서 출력한다.
즉, 참가자 장치(103)Ui는, 암호문(211)(Ki (1), K'i (1), ci (1), Si (1), S'i (1), Ti (1), T'i (1))과, 증명문 Pi (1), Pi (0)을 정리 기관의 정리 장치(104)에 송부한다.
[정리 장치에 의한 암호문의 검증]
정리 장치(104)는, i=1, …, n에 대하여, 전체에 대한 증명문을 검증하고,
γ'i (0)=Hash(Ki (1), K'i (1), ci (1), Si (1), S'i (1), Ti (1), T'i (1), [α'i (0)]Gi (1)+[γ'i (0)]G)
가 성립하는 것을 확인한다.
또한, 이 전체에 대한 증명문을 검증 장치(109)에 보낸다(도 1, 처리(110)). 이것이 성립하는 것을 확인할 수 있었던 i에 대해서만,
Ki (1), K'i (1), ci (1), Si (1), S'i (1), Ti (1), T'i (1), Pi (1), P'i (0)
을 첫번째의 치환 복호 장치에 보낸다(처리105). 도 1에서는 정리 장치(104)에 입력된 데이터는 5개이었던 것이, 4개로 되어 나온 예를 나타내고 있다. 이하, 암호문의 수가 감소하는데, 감소한 후의 이 수도 n으로 나타내며, 각각의 암호문을 i=1부터 n까지의 번호로 순서 매김한다. 또한, 이하에서,
Ki (j), K'i (j), ci (j), Si (j), S'i (j), Ti (j), T'i (j), Pi (j), P'i (j)
는 j=1의 경우를 제외하고 상기한 것과는 일반적으로 상이하다.
[치환 복호 장치에 의한 암호문의 순서 교체와 복호]
j=1, …, m에 대하여 순서대로, 치환 복호 장치(112)S(j)는, 이하의 계산 및 검증을 행한다. 치환 복호 장치(112)S(j)에는,
암호화된 공통 키 암호 방식의 공통 키(302)(도 3 중, 공통 키 암호문으로 약기함)
Ki (j), K'i (j)와,
암호화된 데이터(303)(도 3 중, 데이터 암호문으로 약기함)
ci (j)와,
암호화된 해시값(304)(도 3 중, 해시값 암호문으로 약기함)
Si (j), S'i (j)와,
암호화된 연결 데이터(305)(도 3 중, 연결 데이터 암호문으로 약기함)
Ti (j), T'i (j)와,
공통 키의 지식의 증명문(301)(도 3 중, 키의 지식 증명문으로 약기함)과 비밀의 난수의 지식의 증명문(306)(도 3 중, 난수 지식 증명문으로 약기함)
pi (j)
로 이루어지는 입력 데이터 열(105)이 입력된다. 이 입력 데이터 열(105)은, 데이터 분할 수단(322)에 의해 상기한 각 요소(301~306)로 분해된다.
치환 복호 장치(112)S(j)에서는 모든 i(i=1, …, n)에 대하여, 이하의 처리를 행한다. 공통 키의 지식의 검증 수단(307)이,
γi (j)=Hash(Ki (j), K'i (j), ci (j), Si (j), S'i (j), Ti (j), T'i (j), [αi (j)]X(j)+[γi (j)]Ki (j))
를 확인한다.
비밀의 난수의 지식의 검증 수단(308)이,
γ'i (j)=Hash(Ki (j), K'i (j), ci (j), Si (j), S'i (j), Ti (j), T'i (j), [α'i (j)]X(j)+[γ'i (j)]T'i (j))
를 확인한다. 등식이 성립하지 않는 i에 대해서는, 최종적인 출력 데이터 열에는 가하지 않는다
여기서도 암호문의 수가 감소하는데, 감소한 후의 이 수도 n으로 나타내며, 각각의 암호문을 i=1부터 n까지의 번호로 순서매길 수 있다.
공통 키 복호 수단(310)이,
Ei (j)=K'i (j)-[1/x(j)]Ki (j)
를 데이터 복호 수단(313)에 입력한다.
데이터 복호 수단(313)이,
ei (j)=Φ(Ei (j)),
(Ki (j+1), K'i (j+1), ci (j+1), Si (j+1), S'i (j+1), T'i (j+1), Pi (j+1))=dec[ei (j)][ci (j)]
로 되는 연산을 행한다.
해시값 복호 수단(312)이,
Hi (j)=S'i (j)-[1/x(j)]Si (j)
로 되는 연산을 행한다.
연결 데이터 복호 수단(314)이,
T'i (j+1)=T'i (j)-[1/xi (j)]Ti (j)
로 되는 연산을 행한다.
얻어진 데이터 열은 (Ki (j+1), K'i (j+1), ci (j+1), Si (j+1), S'i (j+1), T'i (j+1), Pi (j+1), Hi (j), T'i (j+1))이다.
치환 수단(311)은, 일정하게 무작위로 [1, …, n]으로부터 [1, …, n]으로의 치환 π[j]()를 선택하고, 이하의 치환 처리를 행한다.
Ki (j+1)=Kπ[j][i](j+1)
K'i (j+1)=K'π[j][i](j+1)
ci (j+1)=cπ[j][i](j+1)
Si (j+1)=Sπ[j][i](j+1)
S'i (j+1)=S'π[j][i](j+1)
T'i (j+1)=T'π[j][i](j+1)
Pi (j+1)=Pπ[j][i](j+1)
Hi (j)=Hπ[j][i](j)
T'i (j+1)=T'π[j][i](j+1)
다음으로, 해시값 복호 정당성 증명 수단(315)에 의해, 상기 Hi (j)가 정확하게 생성되었다는 것의 증명(해시값 복호 정당성 증명문)을 생성한다.
연결 데이터 복호 정당성 증명 수단(316)에 의해, T'i (j+1)이 정확하게 생성되었다는 것의 증명(연결 데이터 복호 정당성 증명문)을 생성한다.
이들 증명에는, 예를 들면 문헌 「An Implementation of a Universally Verifiable Electronic Voting Scheme based on Shuffling, Financial Cryptography 2002」의 방법을 이용하면 가능하다.
다음으로, 모든 i(i=1, …, n)에 대하여, 해시값 검증 수단(317)에서,
Φ(Hi (j))=Hash(Ki (j+1), K'i (j+1), ci (j+1), Si (j+1), S'i (j+1), Ti (j+1), T'i (j+1), Pi (j+1))
가 성립하는 것을 확인한다. 이 식이 성립하지 않는 i가 존재하면, 해시값 불수리 정당성 증명 수단(318)에 의해, 그 i에 대하여 π[j](i), Ei (j)를 분명하게 하여, Ei (j)를 정확하게 생성하였다는 것의 영 지식 증명(해시값 불수리 정당성 증명문)을 생성한다. 여기서도 암호문의 수가 감소하는데(처리(319)), 감소한 후의 이 수도 n으로 나타내며, 각각의 암호문을 i=1부터 n까지의 번호로 순서 매김한다.
마지막으로, 출력 데이터 열(107)(Ki (j+1), K'i (j+1), ci (j+1), Si (j+1), S'i (j+1), Ti (j+1), T'i (j+1), Pi (j+1), Hi (j+1))를 다음의 치환 복호 장치 S(j+1)에 보낸다.
해시값 복호 정당성 증명문과 연결 데이터 복호 정당성 증명문과 해시값 불수리 정당성 증명문을 정당성 증명문(108)으로 하여 검증 장치(109)에 보낸다.
모든 치환 복호 장치 S(j)(j=1, …, m)에 대하여 처리가 끝나면 순서가 교체된 평문(111) [Mi]i=1, …, n이 얻어진다.
[검증 장치의 처리]
검증자의 검증 장치(109)에는,
해시값 복호 정당성 증명문(401)(도 4 중, 해시값 증명문으로 약기함), 연결 데이터 복호 정당성 증명문(403)(도 4 중, 연결 증명문으로 약기함) 및 해시값 불 수리 정당성 증명문(400)(도 4 중, 불수리 증명문으로 약기함)으로 이루어지는 정당성 증명문(108)과,
입력 데이터 열(105)과,
출력 데이터 열(107)과,
전체의 난수의 지식의 증명문(110)이 입력된다.
최초에 모든 i에 대하여, 전체의 난수의 지식의 증명문(110)을 검증하는 검증 수단(500)에 의해,
γ'i (0)=Hash(Ki (1), K'i (1), ci (1), Si (1), S'i (1), Ti (1), T'i (1), [α'i (0)]Gi (1)+[γ'i (0)]G)
가 성립하는 것을 확인한다.
모든 j=1, …, m에 대하여 순서대로 이하의 계산 및 검증을 행한다. 모든 i(i=1, …, n)에 대하여, 공통 키의 지식의 검증 처리를 행하는 검증 수단(402)에 의해,
γi (j)=Hash(Ki (j), K'i (j), ci (j), Si (j), S'i (j), Ti (j), T'i (j), [αi (j)]X(j)+[γi (j)]Ki (j))
를 확인하고, 비밀의 난수의 지식의 검증 처리를 행하는 검증 수단(404)에 의해,
γ'i (j)=Hash(Ki (j), K'i (j), ci (j), Si (j), S'i (j), Ti (j), T'i (j), [α'i (j)]X(j)+[γ'i (j)]Ti (j))
를 확인한다. 등식이 성립하지 않는 i에 대해서만 이후의 처리를 행하지 않는다.
해시값 복호 정당성의 검증 처리를 행하는 검증 수단(406)에 의해, [Hi (j)]i=1, …, n이 정확하게 생성되어 있는 것을 검증한다(증명에 대응한 방법으로 행하며, 예를 들면 상술한 문헌의 방법을 사용함).
연결 데이터 복호 정당성의 검증 처리를 행하는 검증 수단(407)에 의해, {T'i (j)]i=1, …, n}이 생성되어 있는 것을 검증한다(증명에 대응한 방법으로 행하며, 예를 들면 상술한 문헌의 방법을 사용함).
해시값 일치 검증 처리를 행하는 비교 수단(408)에서, 모든 i(i=1, …, n)에 대하여,
Φ(Hi (j))=Hash(Ki (j+1), K'i (j+1), ci (j+1), Si (j+1), S'i (j+1), Ti (j+1), T'i (j+1), Pi (j+1))
가 성립하는 것을 확인한다. 만일 성립하지 않는 i가 존재하면, 해시값 불수리 정당성의 검증 처리를 행하는 검증 수단(409)에서, 그 i에 대하여 π[j](i), Ei (j)를 명백하게 하고 있는 것, 식 Ei (j)가 정확하게 생성되어 있는 것을 검증하여, cπ[j](i)(j)가 정확하게 복호되어 있는 것을 확인한다.
정당성 판정 처리를 행하는 검증 수단(405)에서, 공통 키의 지식의 검증 처리를 행하는 검증 수단(402)과 비밀의 난수의 지식의 검증 처리를 행하는 검증 수단(404)의 양쪽에서 수리된 것의 모두에 대하여, 해시값 복호 정당성의 검증 처리를 행하는 검증 수단(406)과 연결 데이터 복호 정당성의 검증 처리를 행하는 검증 수단(407)의 양쪽에서 수리되며, 또한 해시값 일치 검증 처리를 행하는 비교 수단(408)에 의한 수리 혹은 해시값 일치 검증 처리를 행하는 비교 수단(408)에 의한 불수리이며 또한 해시값 불수리 정당성 검증 처리를 행하는 검증 수단(409)에 의한 수리이고, 또한 출력 데이터 열에는, 공통 키의 지식의 검증 처리와, 비밀의 난수의 지식의 검증 처리와, 해시값 일치 검증 처리에서 수리된 요소에 대응하는 것만이며, 또한 그것이 모두 포함되어 있으면 수리를, 그렇지 않으면 불수리를 출력한다.
2 실시예 2
2.1
실시예 2의 개요에 대하여, 도 1, 도 5, 도 6, 도 7을 참조하면서 설명한다.
본 실시예에 따른 믹스넷 시스템은, 도 1에 도시한 바와 같이 복수의 참가자 장치(103)와, 정리 장치(104)와, 복수의 치환 복호 장치(112)와, 검증 장치(109)로 구성된다. 참가자 장치(103)는, 도 5에 도시한 바와 같은 구성을 가지며, 지식의 연결 수단(208) 및 난수의 지식의 증명 수단(210)을 갖지 않는 점을 제외하고, 제1 실시예에서의 참가자 장치와 마찬가지이다. 정리 장치(104)도 또한, 제1 실시예에서의 정리 장치와 마찬가지이다.
[치환 복호 장치]
도 6에 도시한 바와 같이, 치환 복호 장치(112)는, 데이터 분할 수단(723)과, 공통 키의 지식의 검증 수단(707)과, 공통 키 복호 수단(710)과, 데이터 복호 수단(713)과, 해시값 복호 수단(712)과, 해시값 검증 수단(717)과, 출력 데이터 열 생성 수단(711)과, 중복 데이터 삭제 확인 수단(720)과, 해시값 복호 정당성 증명 수단(715)과, 해시값 불수리 정당성 증명 수단(718)과, 출력 수단을 갖는다.
여기서, 데이터 분할 수단(723)은, 정리 장치(104) 또는 다른 치환 복호 장치로부터 입력되는 입력 데이터 열(105)의 각 요소를, 공개 키 암호 방식에 의해 암호화된 공통 키 암호력식의 공통 키(702), 공통 키 암호 방식에 의해 암호화된 데이터(703), 공개 키 암호 방식에 의해 암호화된 해시값(704), 암호화된 공통 키의 지식의 증명문(701)으로 분할한다.
출력 데이터 열 생성 수단(711)은, 출력 데이터에서, 입력 데이터 열(105)의 동일한 요소의 데이터로부터 생성되었다는 의미에서 대응하는 해시값 검증 수단(717) 및 공통 키의 지식의 검증 수단(707)의 모두에서 수리가 출력된 것만을 열의 요소로 하는 데이터 열을 생성하고, 또한 각 요소의 순서를 일정하게 무작위로 재배열하여 출력 데이터 열(107)로 한다. 중복 데이터 삭제 확인 수단(720)은, 출력 데이터 열(107)의 각 요소에 중복이 있는 경우, 이후의 처리에서 이것이 삭제되어 있는 것을 확인하면 수리를, 아니면 불수리를 출력한다.
해시값 불수리 정당성 증명 수단(715)은, 출력 데이터 열(107)의 각 요소에 포함되는 복호된 연결 데이터가, 반드시 입력 데이터 열(105)이 있는 요소에 포함되는 암호화된 연결 데이터를 복호한 것이며, 해시값 검증 수단(717)에서 불수리가 출력된 경우, 이 불수리의 출력이 정당하다는 것의 증명문인 해시값 불수리 정당성 증명문을 생성한다. 출력 수단은, 해시값 복호 정당성 증명문과 해시값 불수리 정당성 증명문을 정당성 증명문(108)으로 하고, 이것과 출력 데이터 열 생성 수단(711)의 출력한 출력 데이터 열(107)을 출력한다. 그 밖의 구성은, 제1 실시예에서의 치환 복호 장치와 마찬가지이다.
[검증 장치]
도 7에 도시한 바와 같이, 검증 장치(109)는, 공통 키의 지식의 검증 수단(802)과, 해시값 복호 정당성 검증 수단(806)과, 해시값 일치 검증 수단(808)과, 해시값 불수리 정당성 검증 수단(809)과, 정당성 판정 수단(805)을 갖는다.
정당성 판정 수단(805)은, 입력 데이터 열(105)의 요소 중에서, 이 요소에 대한 공통 키의 지식의 검증 수단(402)에서 수리된 것의 모두에 대하여, 이하의 모든 조건이 만족되어 있으면 수리를, 그렇지 않으면 불수리를 출력한다.
(A) 해시값 복호 정당성 검증 수단(806)에 의한 수리.
(B) 해시값 일치 검증 수단(808)에 의한 수리, 혹은 해시값 일치 검증 수단(808)에 의한 불수리 또한 해시값 불수리 정당성 검증 수단(809)에 의한 수리.
(C) 출력 데이터 열(107)에는, 공통 키의 지식의 검증 수단(802)과 해시값 일치 검증 수단(808)에 의한 수리된 요소에 대응하는 것만이며, 또한 이들이 모두 포함되어 있다.
그 밖의 구성은, 제2 실시예에서의 검증 장치와 마찬가지이다.
믹스넷 시스템의 동작은, 제1 실시예와 마찬가지이므로, 그 설명을 생략한다.
2.2 구체예
실시예 2에 대하여, 도 1, 도 5, 도 6, 도 7을 참조하면서 구체적으로 설명한다.
[초기 설정]
최초에 초기 설정 장치(100)는, 평문의 비트 길이 A와, 안전 변수 L과, L보다 5 그 비트 길이가 큰 소수 q와, 자리수가 q인 타원 곡선 C와, C 상의 점 G와, 출력 비트 길이가 L인 암호학적인 해시 함수 Hash()와, 길이 L의 키를 사용하는 공통 키 암호 방식과, 상기 공통 키 암호 방식의 암호화 함수 enc[e]() 및 복호 함수 dec[e]와, L 비트의 비트 열로부터 C 상으로의 점으로의 함수 ψ()와, C 상의 점으로부터 L 비트의 비트 열로의 사상 Φ()를 결정하여 공개한다.
[치환 복호 장치의 초기 설정]
다음으로, 모든 치환 복호 장치 S(j)(j=1, …, m)는, 다음의 초기 설정 처리를 행한다. 모든 치환 복호 장치 S(j) 내의 초기 설정 수단(721)(도 6 참조)은, 비밀 키(106) x(j)∈Z/qZ를 일정하게 무작위로 선택하고, 그것을 자신의 치환 복호 장 치 S(j) 내에 보존함과 함께, 공개 키(101) X(j)=[X(j)]G를 생성하여 공개한다. 또한, 각 치환 복호 장치 S(j) 내의 초기 설정 수단(721)은, r(j)∈Z/qZ를 일정하게 무작위로 선택하고,
γ(j)=Hash(G, [r(j)]X(j))와
α(j)=r(j)-r(j)r(j) mod q
를 계산하고, γ(j), α(j)를 x(j)의 지식의 영 지식 증명문(722)으로 하여 공개한다.
[참가자 장치의 암호문 생성]
i=1, …, n에 대하여, 참가자 장치(103)Ui(도 5 참조)는 길이가 Λ 비트인 평문(102)Mi를 결정한다. 각 참가자 장치(103)Ui는, 초기의 데이터(614)로서, ci (m+1)=Mi와, 임의 데이터(603)(각각이 L 비트인 임의의 문자열 Ki (m+1), K'i (m+1), Si (m+1), S'i (m+1), Pi (m+1))를 포함하는 데이터를 생성한다. 또한, 키 생성 수단(604)이, j=1, …, m에 대하여 Z/qZ의 요소 r[1]i (j), r[2]i (j), r[3]i (j) 및 C 상의 점 Ei (j)를 일정하게 무작위로 선택한다.
그 후, 키 암호화 수단(605), 데이터 암호화 수단(606), 해시값 암호화 수단 (607), 및 출력 수단(615)이, j=m, (m+1), …, 1의 순서로 반복하여 이하의 처리(613)를 행한다.
실시예 1과 마찬가지로, 여기서 임의의 문자열로서는, 난수, 세션 고유의 수, 일시 등을 선택하는 경우가 있다. 난수를 이용하면, 최종적인 복호문의 집합으로부터 자신의 평문의 존재를 참가자 장치가 확인할 수 있는 효과가 있으며, 세션 고유의 수나 일시를 입력하면, 다른 세션에 사용된 암호문을 재이용하고 있지 않는 것을 알 수 있는 효과가 있다.
·키 암호화 수단(605)에서의 공통 키의 암호화 처리
공통 키 ei (j)의 암호화를 위해,
공통 키 ei (j)=Φ(Ei (j))
로 되는 Ei (j)를 구하고,
(Ki (j), K'i (j))=([r[1]i (j)]X(j), [r[1]i (j)]G+Ei (j))
를 계산하고, 계산 결과 Ki (j), K'i (j)를 출력 수단(615)에 입력한다.
·키 암호화 수단(605)에서의 공통 키의 지식의 증명문의 생성 처리
γi (j)=Hash(Ki (j), K'i (j), ci (j), Si (j), S'i (j), [r[3]i (j)]X(j))
와,
αi (j)=r[3]i (j)i (j)r[1]i (j)mod q
와,
Pi(j)=[γi (j), αi (j)]
를 계산하고, Pi (1), Pi (0)을 공통 키의 지식의 증명문(612)으로서 정리 장치(104)에 송부한다.
·데이터 암호화 수단(606)에서의 데이터의 암호화 처리
ei (j)=Φ(E)
와,
ci (j)=enc[ei (j)](Ki (j+1), K'i (j+1), ci (j+1), Si (j+1),S'i (j+1), Pi (j+1))
을 계산하고, ci (j)를 출력 수단(615)에 입력한다.
·해시값 암호화 수단(607)에서의 해시값의 암호화 처리
(Si (j), S'i (j))=([r[2]i (j)X(j), [r[2]i (j)G+Ψ(Hash(Ki (j+1), K'i (j+1), ci (j+1), Si (j+1), S'i (j+1) ,Pi (j+1))))
를 계산하고, Si (j), S'i (j)를 출력 수단(615)에 입력한다.
·출력 수단(615)에서의 처리
키 암호화 수단(605)으로부터의 입력 Ki (j), K'i (j)와, 데이터 암호화 수단(606)으로부터의 입력 ci (j)와, 해시값 암호화 수단(607)으로부터의 입력 Si (j), S'i (j)로부터 데이터(614')(Ki (j), K'i (j), ci (j), Si (j), S'i (j))를 생성하고, j=1이 아니면, 데이터(614')를 데이터(614)로서 피드백하고, j=1이면, (Ki (j), K'i (j), ci (j), Si (j), S'i (j))를 암호문(211)으로서 출력한다.
즉, 참가자 장치(103) Ui는, 암호문(611)(Ki (j), K'i (j), ci (j), Si (j), S'i (j))과 증명문 Pi (1), P'i (0)을 정리 장치(104)에 송부한다.
[정리 장치에 의한 암호문의 검증]
정리 장치(104)는, 참가자 장치로부터 모은 데이터를 결합하여 첫번째의 치환 복호 장치에 보낸다. 이하에서, Ki (j), K'i (j), ci (j), Si (j), S'i (j), Pi (j)는, j=1의 경우를 제외하고 상기한 그것과는 일반적으로 다르다.
[치환 복호 장치에 의한 암호문의 순서 교체와 복호]
j=1, …, m에 관하여 순서대로, 치환 복호 장치(112) S(j)는 이하의 계산 및 검증을 행한다.
암호화된 공통 키 암호 방식의 공통 키(702)(도 6에서, 공통 키 암호문으로 약기)
Ki (j), K'i (j)와,
암호화된 데이터(703)(도 6에서, 데이터 암호문으로 약기)
ci (j)와,
암호화된 해시값(704)(도 6에서, 해시값 암호문으로 약기)
Si (j), S'i (j)와,
공통 키의 지식의 증명문(701)(도 6에서, 키의 지식 증명문으로 약기)
Pi (j)로 이루어지는 입력 데이터 열(105)
비밀 키(106)
x(j)
가 입력된다. 입력 데이터 열(105)은, 데이터 분할 수단(723)에 의해 상기 각 요소(701∼704)로 분할된다.
모든 i(i=1, …, n)에 관하여, 이하의 처리를 행한다.
공통 키의 지식의 검증 수단(707)은,
γi (j)=Hash(Ki (j), K'i (j), ci (j), Si (j), S'i (j), [αi (j)]X(j)+[γi (j)]Ki (j))
를 확인한다. 등식이 성립하지 않는 i에 관해서는, 최종적인 출력 데이터 열에는 가하지 않는다(처리(709)).
여기서는 암호문의 수가 감소하지만, 감소한 후의 이 수도 n으로 나타내며, 각각의 암호문을 i=1 내지 n까지의 번호로 순서를 붙인다.
공통 키 복호 수단(710)에서, Ei (j)=K'i (j)-[1/x(j)]Ki (j)로 되는 연산을 행한다.
데이터 복호 수단(713)에서,
ei (j)=Φ(Ei (j))
(Ki (j+1), K'i (j+1), ci (j+1), Si (j+1), S'i (j+1), Pi (j+1))=dec[ei (j)](ci (j))
로 되는 연산을 행한다. 얻어진 데이터는,
Ki (j+1), K'i (j+1), ci (j+1), Si (j+1), Pi (j+1)
이다.
치환 수단(711)은, 일정하게 무작위로 [1, …, n]으로부터 [1, …, n]으로의 치환π[j]( )를 선택하고, 이하를 계산한다.
Ki (j+1)=Kπ[j](i)(j+1)
K'i (j+1)=K'π[j](i)(j+1)
ci (j+1)=cπ[j](i)(j+1)
Si (j+1)=Sπ[j](i)(j+1)
S'i (j+1)=S'π[j](i)(j+1)
Pi (j+1)=Pπ[j](i)(j+1)
해시값 복호 수단(712) 및 치환 수단(711)은,
Hi (j)=S'π[j](i)(j)-[1/x(j)]Sπ[j](i)(j)
로 되는 연산을 행한다.
다음으로, 해시값 복호 정당성 증명 수단(715)에 의해 상기 Hi (j)가 정확하게 생성되었다는 것의 증명(해시값 복호 정당성 증명문)을 생성한다. 이 증명에는 예를 들면, 앞에 언급한 문헌의 방법을 사용한다.
다음으로, 모든 i(i=1, …, n)에 관하여, 해시값 검증 수단(717)에서,
Φ(Hi (j))=Hash(Ki (j+1), K'i (j+1), ci (j+1), Si (j+1), S'i (j+1), Pi (j+1))
가 성립하는 것을 확인한다.
이 식이 성립하지 않는 i가 존재하면, 해시값 불수리 정당성 증명 수단(718) 에 의해, 그 i에 관하여 π[j](i), Ei (j)를 분명하게 하여, Ei (j)를 정확하게 생성하였다는 것의 영 지식 증명(해시값 불수리 정당성 증명문)을 생성한다.
여기서도 암호문의 수가 감소하지만(처리(719)), 감소한 후의 이 수도 n으로 나타내며, 각각의 암호문을 i=1부터 n까지의 번호로 순서를 붙인다.
중복 데이터 삭제 수단(720)은, i=1, …, n에 관하여 (Ki (j+1), K'i (j+1), ci (j+1), Si (j+1), S'i (j+1), Pi (j+1))의 조 중 동일한 것이 없는 것을 확인한다. 동일한 것이 있었던 경우에는 하나의 조를 남기고 다른 것은 소거한다. 여기서도 암호문의 수가 감소하지만, 감소한 후의 이 수도 n으로 나타내며, 각각의 암호문을 i=1부터 n까지의 번호로 순서를 붙인다.
마지막으로, 출력 데이터 열(107)
Ki (j+1), K'i (j+1), ci (j+1), Si (j+1), S'i (j+1), Pi (j+1), Hi (j)
를 다음의 치환 복호 장치 S(j+1)에 보낸다.
해시값 복호 정당성 증명문과 해시값 불수리 정당성 증명문을 정당성 증명문(108)으로 하고, 검증 장치(109)에 보낸다.
모든 치환 복호 장치 S(j)(j=1, …, m)에 관하여 처리가 종료되면 순서가 교체된 평문(111) [M]ji =1, …, n이 얻어진다.
[검증 장치의 처리]
검증 장치(109)에는, 해시값 복호 정당성 증명문(801)(도 7에서, 해시값 증명문으로 약기) 및 해시값 불수리 정당성 증명문(800)(도 7에서, 불수리 증명문으로 약기)으로 이루어지는 정당성 증명문(108)과, 입력 데이터 열(105)과, 출력 데이터 열(107)이 입력된다.
모든 j=1, …, m에 관하여 순서대로 이하의 계산 및 검증을 행한다. 모든 i(i=1, …, n)에 관하여, 공통 키의 지식의 검증 수단(802)에 의해,
γi (j)=Hash(Ki (j), K'i (j), ci (j), Si (j), S'i (j), [αi (j)]X(j)+[γi (j)]Ki (j))
를 확인한다. 등식이 성립하지 않는 i에 대해서만은 이후의 처리를 행하지 않는다.
해시값 복호 정당성 검증 수단(806)에 의해, [Hi (j)]i=1, …, n이 정확하게 생성되어 있는 것을 검증한다(검증에 대응한 방법으로 행하는 예를 들면 앞에서 언급한 문헌의 방법을 사용함).
해시값 일치 검증 처리를 행하는 비교 수단(808)에서, 모든 i(i=1, …, n)에 관하여,
Φ(Hi (j))=Hash(Ki (j+1), K'i (j+1), ci (j+1), Si (j+1), S'i (j+1), Pi (j+1))
가 성립하는 것을 확인한다.
만약 성립하지 않는 i가 존재하면, 해시값 불수리 정당성 검증 수단(809)에 서, 그 i에 관하여 π[j](i), Ei (j)를 명백하게 되어 있는 것, 식 Ei (j)가 정확하게 생성되어 있는 것을 검증하여, cπ[j](i)(j)가 정확하게 복호되어 있는 것을 확인한다.
정당성 판정 처리를 행하는 검증 수단(805)에서, 공통 키의 지식의 검증 처리와 비밀의 난수의 지식의 검증 처리의 양쪽에서 수리된 것의 모두에 관하여, 해시값 복호 정당성 검증 처리에서 수리되고, 또한 해시값 일치 검증 처리에서 수리 혹은 해시값 일치 검증 처리에서 불수리 또한 해시값 불수리 정당성 검증 처리에서 수리이고, 또한 출력 데이터 열에는 공통 키의 지식의 검증 처리와 비밀의 난수의 지식의 검증 처리와 해시값 일치 검증 처리에서 수리된 요소에 대응하며, [Ki (j+1), K'i (j+1), ci (j+1), Si (j+1), S'i (j+1), Pi (j+1)]의 집합에 중복이 있으면 그 중복을 제외하고, 이들이 모두 포함되어 있으면 수리를, 그렇지 않으면 불수리를 출력한다.
〔발명이 유효한 이유〕
치환 복호 장치에서의 데이터의 복호 및 치환 dec[ei (j)](cπ[j](i)(j))가 정당하다는 것을 증명하기 위해, 해시값과, dec[ei (j)](cπ[j](i)(j)), 참가자 장치가 생성한 이것의 공개 키에 의한 암호문의 복호 결과가 동일한 것을 증명한다. 이 증명 처리가, 해시값 복호 증명 처리이다. 이 증명 처리가 공개 검증 가능한 형태 로 행해지는 것이, 본 발명이 공개 검증 가능한 것의 주된 이유이다.
단, 상술한 증명의 효과가 발휘되는 것은, 참가자 장치가 정확하게 해시값의 암호문을 생성한 경우만이다. 이것이 이루어지지 않은 경우에는, 치환 복호 장치는 자신의 조작의 정당성을 증명할 필요가 있다.
우선, 참가자 장치가 정당한 처리로 해시값 암호문을 생성하였는지를, 해시값 검증 처리에 의해 확인한다. 정당한 처리가 행해지지 않은 경우에는, 해시값 불수리 정당성 증명 처리에 의해, 참가자 장치의 부정을 증명하고, 이것으로 치환 복호 장치의 처리의 정당성을 증명한다.
그런데, 참가자 장치의 처리가 정당하지 않은 이유가, 다른 참가자 장치의 부정에 의한 경우가 있다. 임의의 참가자 장치의 데이터를 그 밖의 참가자 장치가 카피하고, 그 암호문에 기초하여 적당한 데이터를 생성하는 것이다. 이 경우, 치환 복호 장치는 참가자 장치가 부정한 것으로 하고, 참가자 장치의 암호문을 복호하고, 또한 그 복호의 정당성을 증명하게 되지만, 이 증명이 참가자 장치의 암호문의 공격으로 되는 경우가 있다.
애당초 참가자 장치가 자기의 암호문을 부정하게 처리한 경우에는, 자신이 초래한 결과이기 때문에 어쩔 수 없지만, 타인에 복사된 경우에는 이 공격을 방지할 필요가 있다. 이 방어책이, 공통 키의 지식의 증명 처리이다. 이것은, 타인의 암호문으로부터 부정한 암호문을 작성한 경우, 치환 복호 처리에 의해 최초에 처리가 거절되는 효과를 갖는다.
타인의 암호문을 카피하여 부정한 처리를 행한 경우는, 상술한 바와 같이 치 환 복호 장치에 의해 처리가 거절되지만, 단순히 카피하여 그것을 그대로 이용한 것만으로는 상술한 방법에서는 거절되지 않는다. 이러한 것을 허용하면, 카피한 암호문은 복수 복호되는 등의 현상이 발생한다. 이것이 발생하면, 최종적으로 복호된 평문으로부터, 복수개 있는 것을 발견함으로써, 복사한 암호문의 내용을 알 수 있다. 이러한 프라이버시에 대한 공격을 방지하는 처리가, 실시예 1에서는 연결 데이터에 관한 증명 처리이고, 실시예 2에서는 중복 데이터를 삭제하는 처리이다.
연결 데이터는, 스스로 생성한 것이 아니면 마지막으로 증명을 생성할 수 없기 때문에, 단순한 복사를 방지한다. 중복 데이터의 삭제는, 카피된 것을 그대로 삭제하는 처리에 해당한다.
참가자 장치가, 평문과 아울러 난수, 세션 고유의 수, 일시 등의 문자열을 입력하는 경우가 있지만, 이들 값은 최종적으로 복호되기 때문에, 이 복호된 문자열을 사용하여 다양한 것을 확인할 수 있다. 예를 들면, 난수를 이용하면, 최종적인 복호문의 집합으로부터 자신의 평문의 존재를 참가자 장치가 확인할 수 있는 효과가 있고, 세션 고유의 수나 일시를 입력하면, 다른 세션에 사용된 암호문을 재이용하지 않은 것을 알 수 있는 효과가 있다.

Claims (18)

  1. 공통 키 암호 방식의 복수의 공통 키의 하나를, 복수의 치환 복호 장치의 하나의 공개 키에 의해 암호화하는 키 암호화 수단과,
    공통 키 암호 방식의 복수의 공통 키의 하나로, 주어진 데이터를 암호화하는 데이터 암호화 수단과,
    암호학적인 해시 함수를 이용하여, 주어진 데이터의 해시값을 계산하고, 이 해시값을 상기 복수의 치환 복호 장치의 하나의 공개 키에 의해 암호화하는 해시값 암호화 수단과,
    상기 데이터 암호화 수단의 최초의 입력을 평문으로 하고, 다음부터의, 상기 데이터 암호화 수단의 입력을 전회의 상기 데이터 암호화 수단, 상기 키 암호화 수단, 상기 해시값 암호화 수단의 출력으로 하는 처리를, 상기 치환 복호 장치의 수만큼 반복하는 반복 수단과,
    상기 반복 수단의 처리에 의해 얻어진 데이터를 출력하는 출력 수단
    을 구비하는 참가자 장치.
  2. 제1항에 있어서,
    상기 키 암호화 수단은, 암호화한 상기 공통 키의 지식의 증명문을 생성하는 수단을 포함하는 참가자 장치.
  3. 제2항에 있어서,
    상기 주어진 데이터를, 상기 복수의 치환 복호 장치의 하나의 공개 키에 의해 암호화하고, 또한 이 때의 암호화에 이용한 비밀의 난수의 지식의 증명문을 생성하는 지식의 연결 수단을 더 구비하며,
    상기 반복 수단은, 상기 데이터 암호화 수단의 최초의 입력을 상기 평문으로 하고, 다음부터의, 상기 데이터 암호화 수단의 입력을 전회의 상기 데이터 암호화 수단, 상기 키 암호화 수단, 상기 해시값 암호화 수단, 상기 지식의 연결 수단의 출력으로 하는 처리를, 상기 치환 복호 장치의 수만큼 반복하는 수단을 구비하고,
    상기 지식의 연결 수단에 의한 처리를 반복함으로써 최종적으로 얻어진 데이터에 관하여, 상기 처리의 반복 모두에서 사용한 비밀의 난수의 합의 지식의 증명문을 생성하는 전체의 난수의 지식의 증명 수단을 더 구비하는 참가자 장치.
  4. 제1항에 있어서,
    상기 출력 수단은, 상기 반복 수단의 처리에 의해 얻어진 상기 데이터와 함께, 이 데이터를 작성한 것이 정당한 참가자 장치인 것을 증명하는 데이터를 출력하는 수단을 구비하는 참가자 장치.
  5. 입력 데이터 열의 각 요소를, 공개 키 암호 방식에 의해 암호화된 공통 키 암호 방식의 공통 키, 공통 키 암호 방식에 의해 암호화된 데이터, 공개 키 암호 방식에 의해 암호화된 해시값으로 분할하는 데이터 분할 수단과,
    상기 암호화된 공통 키 암호 방식의 공통 키를 상기 공개 키 암호 방식의 비밀 키에 의해 복호하는 공통 키 복호 수단과,
    복호한 상기 공통 키를 이용하여, 상기 암호화된 데이터를 복호하여 출력 데이터를 생성하는 데이터 복호 수단과,
    상기 암호화된 해시값을, 상기 공개 키 암호 방식의 비밀 키에 의해 복호한 것을 출력하는 해시값 복호 수단과,
    상기 복호된 해시값과 상기 생성된 출력 데이터의 해시값을 비교하여, 일치하면 해시값 수리를, 다르면 해시값 불수리를 출력하는 해시값 검증 수단과,
    상기 출력 데이터에서, 상기 입력 데이터 열의 동일한 요소의 데이터로부터 생성되었다는 의미에서 대응하는 상기 해시값 검증 수단에서 수리가 출력된 것만을 열의 요소로 하는 데이터 열을 생성하고, 또한 각 요소의 순서를 일정하게 무작위로 재배열하여 출력 데이터 열로 하는 출력 데이터 열 생성 수단과,
    상기 출력 데이터 열의 각 요소의 해시값이, 반드시 상기 입력 데이터 열의 임의의 요소에 포함되는 상기 암호화된 해시값을 복호한 것이며, 또한 양자의 대응이 일대일인 것의 증명문인 해시값 복호 정당성 증명문을 생성하는 해시값 복호 정당성 증명 수단과,
    상기 해시값 검증 수단에서 불수리가 출력된 경우, 이 불수리의 출력이 정당하다는 것의 증명문인 해시값 불수리 정당성 증명문을 생성하는 해시값 불수리 정당성증명 수단과,
    상기 해시값 복호 정당성 증명문과 상기 해시값 불수리 정당성 증명문을 정 당성 증명문으로 하고, 이것과 상기 출력 데이터 열 생성 수단이 출력한 상기 출력 데이터 열을 출력하는 출력 수단
    을 구비하는 치환 복호 장치.
  6. 제5항에 있어서,
    상기 데이터 분할 수단은, 상기 입력 데이터 열의 각 요소를, 암호화된 상기 공통 키의 지식의 증명문으로 더 분할하는 수단을 구비하고,
    상기 공통 키의 지식의 증명문의 정당성을 검증하여, 정당하면 수리를, 부당하면 불수리를 출력하는 공통 키의 지식의 검증 수단을 더 구비하고,
    상기 출력 데이터 열 생성 수단은, 상기 출력 데이터에서, 상기 입력 데이터 열의 동일한 요소의 데이터로부터 생성되었다는 의미에서 대응하는 상기 해시값 검증 수단 및 상기 공통 키의 지식의 검증 수단의 모두에서 수리가 출력된 것만을 열의 요소로 하는 데이터 열을 생성하고, 또한 각 요소의 순서를 일정하게 무작위로 재배열하여 출력 데이터 열로 하는 수단을 포함하는 치환 복호 장치.
  7. 제6항에 있어서,
    상기 데이터 분할 수단은, 상기 입력 데이터 열의 각 요소를, 공개 키 암호 방식에 의해 암호화된 연결 데이터, 연결 데이터 암호화에 이용한 비밀의 난수의 지식의 증명문으로 더 분할하는 수단을 구비하고,
    상기 비밀의 난수의 지식의 증명문을 검증하여, 정당하면 수리를, 부당하면 불수리를 출력하는 비밀의 난수의 지식의 검증 수단과,
    상기 암호화된 연결 데이터를, 상기 공개 키 암호 방식의 비밀 키에 의해 복호하는 연결 데이터 복호 수단을 더 구비하고,
    상기 출력 데이터 열 생성 수단은, 상기 출력 데이터와 상기 복호된 연결 데이터에서, 상기 입력 데이터 열의 동일한 요소의 데이터로부터 생성되었다는 의미에서 대응하는 상기 해시값 검증 수단, 상기 공통 키의 지식의 검증 수단, 상기 비밀의 난수의 지식의 검증 수단 모두에서 수리가 출력된 것만을 열의 요소로 하는 데이터 열을 생성하고, 또한 각 요소의 순서를 일정하게 무작위로 재배열하여 출력 데이터 열로 하는 수단을 구비하고,
    상기 출력 데이터 열의 각 요소에 포함되는 상기 복호된 연결 데이터가, 반드시 상기 입력 데이터 열의 임의의 요소에 포함되는 상기 암호화된 연결 데이터를 복호한 것이며, 또한 양자의 대응이 일대일인 것의 증명문인 연결 데이터 복호 정당성 증명문을 출력하는 연결 데이터 복호 정당성 증명 수단을 더 구비하고,
    상기 출력 수단은, 상기 해시값 복호 정당성 증명문과 상기 연결 데이터 복호 정당성 증명문과 상기 해시값 불수리 정당성 증명문을 상기 정당성 증명문으로 하고, 이것과 상기 출력 데이터 열 생성 수단이 출력한 상기 출력 데이터 열을 출력하는 수단을 구비하는 치환 복호 장치.
  8. 제6항에 있어서,
    상기 출력 데이터 열 중에 동일한 요소가 있었던 경우, 이후의 처리에서 하 나를 남기고 중복되는 요소를 삭제한 것을 새롭게 출력 데이터로 하는 중복 데이터 삭제 수단을 더 구비하고,
    상기 해시값 불수리 정당성 증명 수단은, 상기 출력 데이터 열의 각 요소에 포함되는 상기 복호된 연결 데이터가, 반드시 상기 입력 데이터 열의 임의의 요소에 포함되는 상기 암호화된 연결 데이터를 복호한 것이며, 상기 해시값 검증 수단에서 불수리가 출력된 경우, 이 불수리의 출력이 정당하다는 것의 증명문인 해시값 불수리 정당성 증명문을 생성하는 수단을 구비하는 치환 복호 장치.
  9. 해시값 복호 정당성 증명문에 포함되는 복호된 해시값이, 입력 데이터 열의 임의의 요소의 암호화된 해시값을 복호한 것에 일치하고, 양자에 일대일의 관계가 있는 것을 검증하여, 양자가 일치하고 일대일의 관계가 있으면 수리를, 없으면 불수리를 출력하는 해시값 복호 정당성 검증 수단과,
    상기 복호된 해시값이, 출력 데이터 열의 각 요소의 해시값과 일치하면 수리를, 일치하지 않으면 불수리를 출력하는 해시값 일치 검증 수단과,
    입력 암호문의 열의 요소 중, 상기 해시값 일치 검증 수단에서 불수리가 출력된 해시값에 대응하는 요소에 관해서는, 이 불수리의 출력이 정당하다는 것의 증명문인 해시값 불수리 정당성 증명문을 검증하여, 이 증명문이 정당하면 수리를, 부당하면 불수리를 출력하는 해시값 불수리 정당성 검증 수단과,
    상기 입력 데이터 열의 요소에 관하여, 상기 해시값 복호 정당성 검증 수단에 의한 수리되고, 또한 상기 해시값 일치 검증 수단에 의한 수리, 상기 해시값 일 치 검증 수단에 의한 불수리, 및 상기 해시값 불수리 정당성 검증 수단에 의한 수리 중 어느 하나이며, 또한 상기 출력 데이터 열에는 상기 해시값 일치 검증 수단에 의한 수리된 요소에 대응하는 것만이며, 또한 이들이 모두 포함되어 있으면 수리를, 그렇지 않으면 불수리를 출력하는 정당성 판정 수단
    을 구비하는 검증 장치.
  10. 제9항에 있어서,
    상기 입력 데이터 열의 각 요소에 속하는 공통 키의 지식의 증명문의 정당성을 검증하여, 정당하면 수리를, 부당하면 불수리를 출력하는 공통 키의 지식의 검증 수단을 더 구비하며,
    상기 정당성 판정 수단은, 상기 입력 데이터 열의 요소 중에서, 이 요소에 대한 상기 공통 키의 지식의 검증 수단에서 수리된 것의 모두에 관하여, 상기 해시값 복호 정당성 검증 수단에 의한 수리되고, 또한 상기 해시값 일치 검증 수단에 의한 수리, 상기 해시값 일치 검증 수단에 의한 불수리, 및 상기 해시값 불수리 정당성 검증 수단에 의한 수리 중 어느 하나이며, 또한 상기 출력 데이터 열에는 상기 공통 키의 지식의 검증 수단과 상기 해시값 일치 검증 수단에 의한 수리된 요소에 대응하는 것만이며, 또한 이들이 모두 포함되어 있으면 수리를, 그렇지 않으면 불수리를 출력하는 수단을 포함하는 검증 장치.
  11. 제10항에 있어서,
    상기 입력 데이터 열의 각 요소에 속하는 비밀의 난수의 지식의 증명문을 검증하여, 정당하면 수리를, 부당하면 불수리를 출력하는 비밀의 난수의 지식의 검증 수단과,
    상기 출력 데이터 열의 각 요소에 포함되는 복호된 연결 데이터가, 상기 입력 데이터 열의 임의의 요소에 포함되는, 암호화된 연결 데이터를 복호한 것에 일치하고, 양자에 일대일의 관계가 있는 것을 검증하여, 양자가 일치하고 일대일의 관계가 있으면 수리를, 없으면 불수리를 출력하는 연결 데이터 복호 정당성 검증 수단을 더 구비하고,
    상기 정당성 판정 수단은, 상기 입력 데이터 열의 요소 중에서, 이 요소에 대한 상기 공통 키의 지식의 검증 수단과 상기 비밀의 난수의 지식의 검증 수단의 양쪽에서 수리된 것의 모두에 관하여, 상기 해시값 복호 정당성 검증 수단과 상기 연결 데이터 복호 정당성 검증 수단의 양쪽에서 수리되고, 또한 상기 해시값 일치 검증 수단에 의한 수리, 상기 해시값 일치 검증 수단에 의한 불수리, 및 상기 해시값 불수리 정당성 검증 수단에 의한 수리 중 어느 하나이고, 또한 상기 출력 데이터 열에는 상기 공통 키의 지식의 검증 수단과 상기 비밀의 난수의 지식의 검증 수단과 상기 해시값 일치 검증 수단에 의한 수리된 요소에 대응하는 것만이며, 또한 이들이 모두 포함되어 있으면 수리를, 그렇지 않으면 불수리를 출력하는 수단을 포함하는 검증 장치.
  12. 제10항에 있어서,
    상기 출력 데이터 열의 각 요소에 중복이 있는 경우, 이후의 처리에서 이것이 삭제되어 있는 것을 확인하면 수리를, 아니면 불수리를 출력하는 중복 데이터 삭제 확인 수단을 더 구비하고,
    상기 정당성 판정 수단은, 상기 입력 데이터 열의 요소 중에서, 이 요소에 대한 상기 공통 키의 지식의 검증 수단에서 수리된 것의 모두에 관하여, 상기 해시값 복호 정당성 검증 수단과 상기 중복 데이터 삭제 확인 수단에서 수리되며, 또한 상기 해시값 일치 검증 수단에 의한 수리, 상기 해시값 일치 검증 수단에 의한 불수리, 및 상기 해시값 불수리 정당성 검증 수단에 의한 수리 중 어느 하나이고, 또한 상기 출력 데이터 열에는 상기 공통 키의 지식의 검증 수단과 상기 해시값 일치 검증 수단에 의한 수리된 요소에 대응하는 것만이며, 또한 이들이 모두 포함되어 있으면 수리를, 그렇지 않으면 불수리를 출력하는 수단을 구비하는 검증 장치.
  13. 복수의 참가자 장치와, 정리 장치와, 복수의 치환 복호 장치와, 검증 장치를 구비하고,
    상기 참가자 장치의 각각은,
    공통 키 암호 방식의 복수의 공통 키의 하나를, 상기 복수의 치환 복호 장치의 하나의 공개 키에 의해 암호화하는 키 암호화 수단과,
    공통 키 암호 방식의 복수의 공통 키의 하나로, 주어진 데이터를 암호화하는 데이터 암호화 수단과,
    암호학적인 해시 함수를 이용하여, 주어진 데이터의 해시값을 계산하고, 이 해시값을 상기 복수의 치환 복호 장치의 하나의 공개 키에 의해 암호화하는 해시값 암호화 수단과,
    상기 데이터 암호화 수단의 최초의 입력을 평문으로 하고, 다음부터의, 상기 데이터 암호화 수단의 입력을 전회의 상기 데이터 암호화 수단, 상기 키 암호화 수단, 상기 해시값 암호화 수단의 출력으로 하는 처리를, 상기 치환 복호 장치의 수만큼 반복하는 반복 수단과,
    상기 반복 수단의 처리에 의해 얻어진 데이터를 상기 정리 장치에 출력하는 출력 수단을 구비하고,
    상기 정리 장치는, 상기 복수의 참가자 장치로부터 복수의 데이터가 입력되어, 이들 데이터의 정당성을 검증하고, 정당하다는 것이 판명된 것만을 상기 치환 복호 장치 중 어느 하나에 출력하는 구성을 갖고,
    상기 치환 복호 장치의 각각은,
    상기 정리 장치 및 다른 치환 복호 장치 중 어느 하나로부터 입력되는 입력 데이터 열의 각 요소를, 공개 키 암호 방식에 의해 암호화된 공통 키 암호 방식의 공통 키, 공통 키 암호 방식에 의해 암호화된 데이터 공개 키 암호 방식에 의해 암호화된 해시값으로 분할하는 데이터 분할 수단과,
    상기 암호화된 공통 키 암호 방식의 공통 키를 상기 공개 키 암호 방식의 비밀 키에 의해 복호하는 공통 키 복호 수단과,
    복호한 상기 공통 키를 이용하여, 상기 암호화된 데이터를 복호하여 출력 데이터를 생성하는 데이터 복호 수단과,
    상기 암호화된 해시값을, 상기 공개 키 암호 방식의 비밀 키에 의해 복호한 것을 출력하는 해시값 복호 수단과,
    상기 복호된 해시값과 상기 생성된 출력 데이터의 해시값을 비교하여, 일치하면 해시값 수리를, 다르면 해시값 불수리를 출력하는 해시값 검증 수단과,
    상기 출력 데이터에서, 상기 입력 데이터 열의 동일한 요소의 데이터로부터 생성되었다는 의미에서 대응하는 상기 해시값 검증 수단에서 수리가 출력된 것만을 열의 요소로 하는 데이터 열을 생성하고, 또한 각 요소의 순서를 일정하게 무작위로 재배열하여 출력 데이터 열로 하는 출력 데이터 열 생성 수단과,
    상기 출력 데이터 열의 각 요소의 해시값이, 반드시 상기 입력 데이터 열의 임의의 요소에 포함되는 상기 암호화된 해시값을 복호한 것이고, 또한 양자의 대응이 일대일인 것의 증명문인 해시값 복호 정당성 증명문을 생성하는 해시값 복호 정당성 증명 수단과,
    상기 해시값 검증 수단에서 불수리가 출력된 경우, 이 불수리의 출력이 정당하다는 것의 증명문인 해시값 불수리 정당성 증명문을 생성하는 해시값 불수리 정당성 증명 수단과,
    상기 해시값 복호 정당성 증명문과 상기 해시값 불수리 정당성 증명문을 정당성 증명문으로 하고, 이것과 상기 출력 데이터 열 생성 수단이 출력한 상기 출력 데이터 열을 출력하는 출력 수단
    을 구비하고,
    상기 검증 장치는,
    상기 해시값 복호 정당성 증명문에 포함되는 복호된 해시값이, 상기 치환 복호 장치의 입력 데이터 열의 임의의 요소의 암호화된 해시값을 복호한 것에 일치하며, 양자에 일대일의 관계가 있는 것을 검증하여, 양자가 일치하고 일대일의 관계가 있으면 수리를, 없으면 불수리를 출력하는 해시값 복호 정당성 검증 수단과,
    상기 복호된 해시값이, 상기 치환 복호 장치의 출력 데이터 열의 각 요소의 해시값과 일치하면 수리를, 일치하지 않으면 불수리를 출력하는 해시값 일치 검증 수단과,
    입력 암호문의 열의 요소 중, 상기 해시값 일치 검증 수단에서 불수리가 출력된 해시값에 대응하는 요소에 관해서는, 이 불수리의 출력이 정당하다는 것의 증명문인 해시값 불수리 정당성 증명문을 검증하여, 이 증명문이 정당하면 수리를, 부당하면 불수리를 출력하는 해시값 불수리 정당성 검증 수단과,
    상기 입력 데이터 열의 요소에 관하여, 상기 해시값 복호 정당성 검증 수단에 의한 수리, 상기 해시값 일치 검증 수단에 의한 수리, 상기 해시값 일치 검증 수단에 의한 불수리, 및 상기 해시값 불수리 정당성 검증 수단에 의한 수리 중 어느 하나이고, 또한 상기 출력 데이터 열에는 상기 해시값 일치 검증 수단에 의한 수리된 요소에 대응하는 것만이며, 또한 이들이 모두 포함되어 있으면 수리를, 그렇지 않으면 불수리를 출력하는 정당성 판정 수단
    을 구비하고,
    안전 변수, 공개 키 암호 방식의 영역 변수, 암호학적인 해시 함수, 공통 키 암호 방식의 암호화 함수를 생성하여, 공개하는 초기 설정 처리와,
    상기 복수의 치환 복호 장치의 각각의 공개 키를 생성하여, 공개하는 치환 복호 장치의 초기 설정 처리와,
    안전 변수, 공개 키 암호 방식의 영역 변수, 암호학적인 해시 함수, 공통 키 암호 방식의 암호화 함수, 상기 복수의 치환 복호 장치의 각각의 공개 키, 복수의 상기 공통 키 암호 방식의 공통 키 및 상기 참가자마다 다른 평문이 상기 참가자 장치의 각각에 입력되고,
    상기 참가자 장치의 각각으로부터, 상기 치환 복호 장치에 입력하는 데이터를 각각 출력하는 참가 처리와.
    상기 참가 처리에서 얻어진 치환 복호 장치에 입력하는 데이터 모두가 상기 정리 장치에 입력되며, 이 때의 상기 정리 장치의 출력을 입력 데이터 열로 하는 정리 처리와,
    상기 치환 복호 장치의 하나에, 입력 데이터 열과 공개 키 암호 방식의 비밀 키가 입력되며, 이 치환 복호 장치가 출력 데이터 열, 정당성 증명문의 열을 출력하는 치환 복호 처리와,
    상기 정리 처리의 출력인 입력 데이터 열을 최초의 입력 데이터 열로 하여 상기 치환 복호 처리를, 이용하는 치환 복호 장치를 교환하면서 차례차례로 반복하여 행하는 처리로, 최초의 치환 복호 처리에서의 입력 데이터 열은, 상기 정리 처리가 출력하는 입력 데이터 열이고, 이후의 치환 복호 처리에서의 입력 데이터 열은, 직전의 치환 복호 처리에서의 출력 데이터의 열로 하며, 최후의 치환 복호 처리가 출력하는 출력 데이터 열을 복호 결과로 하며, 최후의 치환 복호 처리를 제외 한 각 치환 복호 처리가 출력하는 출력 데이터 열을 복호 도중 결과로 하고, 모든 치환 복호 처리가 출력하는 정당성 증명문을, 전체의 정당성 증명문으로 하며, 복호 결과, 복호 도중 결과, 전체의 정당성 증명문을 출력하는 통합 치환 복호 처리와,
    복호 결과, 복호 도중 결과, 전체의 정당성 증명문으로부터 각 치환 복호 장치의 입력 및 출력을 분리하고, 각 치환 복호 처리의 입력 데이터 열과 출력 데이터 열과 정당성 증명문이 상기 검증 장치에 입력되며, 상기 검증 장치가 수리 또는 불수리를 출력하는 검증 처리와,
    모든 치환 복호 처리에 관한 검증 처리의 출력을 모아, 모두가 수리이면 전체로서의 수리를, 그렇지 않으면 전체로서의 불수리를 출력하는 믹스넷 판정 처리를 행하는 믹스넷 시스템.
  14. 제13항에 있어서,
    상기 참가자 장치는,
    상기 키 암호화 수단이, 암호화한 상기 공통 키의 지식의 증명문을 생성하는 수단을 구비하고,
    상기 치환 복호 장치는,
    상기 데이터 분할 수단이, 상기 입력 데이터 열의 각 요소를, 암호화된 상기 공통 키의 지식의 증명문으로 더 분할하는 수단을 구비하고,
    상기 공통 키의 지식의 증명문의 정당성을 검증하여, 정당하면 수리를, 부당 하면 불수리를 출력하는 공통 키의 지식의 검증 수단을 더 구비하고,
    상기 출력 데이터 열 생성 수단이, 상기 출력 데이터에서, 상기 입력 데이터 열의 동일한 요소의 데이터로부터 생성되었다는 의미에서 대응하는 상기 해시값 검증 수단 및 상기 공통 키의 지식의 검증 수단의 모두에서 수리가 출력된 것만을 열의 요소로 하는 데이터 열을 생성하고, 또한 각 요소의 순서를 일정하게 무작위로 재배열하여 출력 데이터 열로 하는 수단을 구비하고,
    상기 검증 장치는,
    상기 입력 데이터 열의 각 요소에 속하는 공통 키의 지식의 증명문의 정당성을 검증하여, 정당하면 수리를, 부당하면 불수리를 출력하는 공통 키의 지식의 검증 수단을 더 구비하며,
    상기 정당성 판정 수단이, 상기 입력 데이터 열의 요소 중에서, 이 요소에 대한 상기 공통 키의 지식의 검증 수단에서 수리된 것의 모두에 관하여, 상기 해시값 복호 정당성 검증 수단에 의한 수리, 상기 해시값 일치 검증 수단에 의한 수리, 상기 해시값 일치 검증 수단에 의한 불수리, 및 상기 해시값 불수리 정당성 검증 수단에 의한 수리 중 어느 하나이고, 또한 상기 출력 데이터 열에는 상기 공통 키의 지식의 검증 수단과 상기 해시값 일치 검증 수단에 의한 수리된 요소에 대응하는 것만이며, 또한 이들이 모두 포함되어 있으면 수리를, 그렇지 않으면 불수리를 출력하는 수단을 구비하는 믹스넷 시스템.
  15. 제14항에 있어서,
    상기 참가자 장치는,
    상기 주어진 데이터를, 상기 복수의 치환 복호 장치의 하나의 공개 키에 의해 암호화하고, 또한 이 때의 암호화에 이용한 비밀의 난수의 지식의 증명문을 생성하는 지식의 연결 수단을 더 구비하며,
    상기 반복 수단이, 상기 데이터 암호화 수단의 최초의 입력을 상기 평문으로 하고, 다음부터의, 상기 데이터 암호화 수단의 입력을 전회의 상기 데이터 암호화 수단, 상기 키 암호화 수단, 상기 해시값 암호화 수단, 상기 지식의 연결 수단의 출력으로 하는 처리를, 상기 치환 복호 장치의 수만큼 반복하는 수단을 구비하고,
    상기 지식의 연결 수단에 의한 처리를 반복함으로써 최종적으로 얻어진 데이터에 관하여, 상기 처리의 반복 모두에서 사용한 비밀의 난수의 합의 지식의 증명문을 생성하는 전체의 난수의 지식의 증명 수단을 더 구비하고,
    상기 치환 복호 장치는,
    상기 데이터 분할 수단이, 상기 입력 데이터 열의 각 요소를, 공개 키 암호 방식에 의해 암호화된 연결 데이터, 연결 데이터 암호화에 이용한 비밀의 난수의 지식의 증명문으로 더 분할하는 수단을 구비하고,
    상기 비밀의 난수의 지식의 증명문을 검증하여, 정당하면 수리를, 부당하면 불수리를 출력하는 비밀의 난수의 지식의 검증 수단과,
    상기 암호화된 연결 데이터를, 상기 공개 키 암호 방식의 비밀 키에 의해 복호하는 연결 데이터 복호 수단을 더 구비하고,
    상기 출력 데이터 열 생성 수단이, 상기 출력 데이터와 상기 복호된 연결 데 이터에서, 상기 입력 데이터 열의 동일한 요소의 데이터로부터 생성되었다는 의미에서 대응하는 상기 해시값 검증 수단, 상기 공통 키의 지식의 검증 수단, 상기 비밀의 난수의 지식의 검증 수단의 모두에서 수리가 출력된 것만을 열의 요소로 하는 데이터 열을 생성하고, 또한 각 요소의 순서를 일정하게 무작위로 재배열하여 출력 데이터 열로 하는 수단을 구비하고,
    상기 출력 데이터 열의 각 요소에 포함되는 상기 복호된 연결 데이터가, 반드시 상기 입력 데이터 열의 임의의 요소에 포함되는 상기 암호화된 연결 데이터를 복호한 것이고, 또한 양자의 대응이 일대일인 것의 증명문인 연결 데이터 복호 정당성 증명문을 출력하는 연결 데이터 복호 정당성 증명 수단을 더 구비하고,
    상기 출력 수단이, 상기 해시값 복호 정당성 증명문과 상기 연결 데이터 복호 정당성 증명문과 상기 해시값 불수리 정당성 증명문을 상기 정당성 증명문으로 하며, 이것과 상기 출력 데이터 열 생성 수단이 출력한 상기 출력 데이터 열을 출력하는 수단을 구비하고,
    상기 검증 장치는,
    상기 입력 데이터 열의 각 요소에 속하는 비밀의 난수의 지식의 증명문을 검증하여, 정당하면 수리를, 부당하면 불수리를 출력하는 비밀의 난수의 지식의 검증 수단과,
    상기 출력 데이터 열의 각 요소에 포함되는 복호된 연결 데이터가, 상기 입력 데이터 열의 임의의 요소에 포함되는, 암호화된 연결 데이터를 복호한 것에 일치하고, 양자에 일대일의 관계가 있는 것을 검증하여, 양자가 일치하고 일대일의 관계가 있으면 수리를, 없으면 불수리를 출력하는 연결 데이터 복호 정당성 검증 수단을 더 구비하고,
    상기 정당성 판정 수단이, 상기 입력 데이터 열의 요소 중에서, 이 요소에 대한 상기 공통 키의 지식의 검증 수단과 상기 비밀의 난수의 지식의 검증 수단의 양쪽에서 수리된 것의 모두에 관하여, 상기 해시값 복호 정당성 검증 수단과 상기 연결 데이터 복호 정당성 검증 수단의 양쪽에서 수리되고, 또한 상기 해시값 일치 검증 수단에 의한 수리, 상기 해시값 일치 검증 수단에 의한 불수리, 및 상기 해시값 불수리 정당성 검증 수단에 의한 수리 중 어느 하나이고, 또한 상기 출력 데이터 열에는 상기 공통 키의 지식의 검증 수단과 상기 비밀의 난수의 지식의 검증 수단과 상기 해시값 일치 검증 수단에 의한 수리된 요소에 대응하는 것만이며, 또한 이들이 모두 포함되어 있으면 수리를, 그렇지 않으면 불수리를 출력하는 수단을 구비하는 믹스넷 시스템.
  16. 제14항에 있어서,
    상기 치환 복호 장치는,
    상기 출력 데이터 열 중에 동일한 요소가 있었던 경우, 이후의 처리에서 하나를 남기고 중복되는 요소를 삭제한 것을 새롭게 출력 데이터로 하는 중복 데이터 삭제 수단을 더 구비하고,
    상기 해시값 불수리 정당성 증명 수단이, 상기 출력 데이터 열의 각 요소에 포함되는 상기 복호된 연결 데이터가, 반드시 상기 입력 데이터 열의 임의의 요소 에 포함되는 상기 암호화된 연결 데이터를 복호한 것이고, 상기 해시값 검증 수단에서 불수리가 출력된 경우, 이 불수리의 출력이 정당하다는 것의 증명문인 해시값 불수리 정당성 증명문을 생성하는 수단을 구비하고,
    상기 검증 장치는,
    상기 출력 데이터 열의 각 요소에 중복이 있는 경우, 이후의 처리에서 이것이 삭제되어 있는 것을 확인하면 수리를, 아니면 불수리를 출력하는 중복 데이터 삭제 확인 수단을 더 구비하고,
    상기 정당성 판정 수단이, 상기 입력 데이터 열의 요소 중에서, 이 요소에 대한 상기 공통 키의 지식의 검증 수단에서 수리된 것의 모두에 관하여, 상기 해시값 복호 정당성 검증 수단과 상기 중복 데이터 삭제 확인 수단에서 수리되며, 또한 상기 해시값 일치 검증 수단에 의한 수리, 상기 해시값 일치 검증 수단에 의한 불수리, 및 상기 해시값 불수리 정당성 검증 수단에 의한 수리 중 어느 하나이고, 또한 상기 출력 데이터 열에는 상기 공통 키의 지식의 검증 수단과 상기 해시값 일치 검증 수단에 의한 수리된 요소에 대응하는 것만이며, 또한 이들이 모두 포함되어 있으면 수리를, 그렇지 않으면 불수리를 출력하는 수단을 구비하는 믹스넷 시스템.
  17. 제13항에 있어서,
    상기 참가자 장치는,
    상기 출력 수단이, 상기 반복 수단의 처리에 의해 얻어진 상기 데이터와 함께, 이 데이터를 작성한 것이 정당한 참가자 장치인 것을 증명하는 데이터를 출력 하는 수단을 구비하고,
    상기 정리 장치는,
    입력된 상기 데이터가 정당한 참가자 장치에 의해 생성된 것을 검증하는 구성을 더 구비하는 믹스넷 시스템.
  18. 제13항에 있어서,
    상기 참가자 장치는,
    상기 해시값 암호화 수단의 최초의 입력으로서, 평문과 아울러, 난수, 일시, 믹스넷의 세션에 고유한 값, 및 이들을 조합한 데이터 중 어느 하나를 사용하는 믹스넷 시스템.
KR1020057016228A 2004-01-22 2005-01-24 믹스넷 시스템 KR100668016B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004014560 2004-01-22
JPJP-P-2004-00014560 2004-01-22

Publications (2)

Publication Number Publication Date
KR20060033707A KR20060033707A (ko) 2006-04-19
KR100668016B1 true KR100668016B1 (ko) 2007-01-16

Family

ID=34805420

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057016228A KR100668016B1 (ko) 2004-01-22 2005-01-24 믹스넷 시스템

Country Status (5)

Country Link
US (4) US7672460B2 (ko)
EP (1) EP1708407A4 (ko)
JP (1) JP4687465B2 (ko)
KR (1) KR100668016B1 (ko)
WO (1) WO2005071881A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170127105A (ko) * 2016-05-10 2017-11-21 주식회사 엔젠소프트 암호화 방법 및 이를 이용한 송신 장치, 복호화 방법 및 이를 이용한 수신 장치

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4771053B2 (ja) * 2005-05-27 2011-09-14 日本電気株式会社 統合シャッフル正当性証明装置、証明統合装置、統合シャッフル正当性検証装置及びミックスネットシステム
US9141819B2 (en) * 2006-11-08 2015-09-22 International Business Machines Corporation Encrypted tape access control via challenge-response protocol
JP2008306395A (ja) * 2007-06-06 2008-12-18 Canon Inc 情報処理装置、情報処理方法
US20090077371A1 (en) * 2007-09-14 2009-03-19 Valicore Technologies, Inc. Systems and methods for a template-based encryption management system
EP2124382A1 (de) * 2008-05-20 2009-11-25 Siemens Aktiengesellschaft Verfahren zum verschlüsselten Datenaustausch und Kommunikationssystem
US8175268B2 (en) * 2008-05-22 2012-05-08 Red Hat, Inc. Generating and securing archive keys
US9240883B2 (en) * 2008-09-04 2016-01-19 Intel Corporation Multi-key cryptography for encrypting file system acceleration
US8880879B2 (en) 2008-09-04 2014-11-04 Intel Corporation Accelerated cryptography with an encryption attribute
US8356177B2 (en) * 2008-12-30 2013-01-15 Cisco Technology, Inc. Key transport in authentication or cryptography
US8762642B2 (en) * 2009-01-30 2014-06-24 Twinstrata Inc System and method for secure and reliable multi-cloud data replication
ES2365887B1 (es) * 2009-05-05 2012-09-03 Scytl Secure Electronic Voting S.A. Metodo de verificacion de procesos de descifrado
US8515058B1 (en) * 2009-11-10 2013-08-20 The Board Of Trustees Of The Leland Stanford Junior University Bootstrappable homomorphic encryption method, computer program and apparatus
US8630422B2 (en) * 2009-11-10 2014-01-14 International Business Machines Corporation Fully homomorphic encryption method based on a bootstrappable encryption scheme, computer program and apparatus
US8861716B2 (en) 2010-03-30 2014-10-14 International Business Machines Corporation Efficient homomorphic encryption scheme for bilinear forms
US8565435B2 (en) 2010-08-16 2013-10-22 International Business Machines Corporation Efficient implementation of fully homomorphic encryption
US9083526B2 (en) 2011-04-29 2015-07-14 International Business Machines Corporation Fully homomorphic encryption
WO2013005505A1 (ja) * 2011-07-05 2013-01-10 日本電気株式会社 暗号化装置、暗号文比較システム、暗号文比較方法、および暗号文比較プログラム
US9185089B2 (en) * 2011-12-20 2015-11-10 Apple Inc. System and method for key management for issuer security domain using global platform specifications
US9281941B2 (en) 2012-02-17 2016-03-08 International Business Machines Corporation Homomorphic evaluation including key switching, modulus switching, and dynamic noise management
US8918651B2 (en) * 2012-05-14 2014-12-23 International Business Machines Corporation Cryptographic erasure of selected encrypted data
US10218496B2 (en) 2014-08-04 2019-02-26 Cryptography Research, Inc. Outputting a key based on an authorized sequence of operations
US9639687B2 (en) 2014-11-18 2017-05-02 Cloudfare, Inc. Multiply-encrypting data requiring multiple keys for decryption
US10333696B2 (en) 2015-01-12 2019-06-25 X-Prime, Inc. Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency
EP3119031A1 (en) * 2015-07-16 2017-01-18 ABB Schweiz AG Encryption scheme using multiple parties
EP3462668A1 (en) * 2017-10-02 2019-04-03 Airbus Defence and Space GmbH Plaintext equivalence proof techniques in communication systems
US11290430B2 (en) * 2018-06-25 2022-03-29 Virtual Software Systems, Inc. Systems and methods for securing communications

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6011848A (en) * 1994-03-07 2000-01-04 Nippon Telegraph And Telephone Corporation Method and system for message delivery utilizing zero knowledge interactive proof protocol
JPH10133576A (ja) * 1996-10-31 1998-05-22 Hitachi Ltd 公開鍵暗号方法および装置
JP3316466B2 (ja) * 1999-02-16 2002-08-19 日本電信電話株式会社 電子無記名投票方法、その装置及びプログラム記録媒体
DK1302020T3 (da) * 2000-03-24 2006-03-20 Dategrity Corp Verificerbar, hemmelig blanding af krypterede data, såsom ElGamal krypterede data, for sikre multimyndighedsvalg
JP2002259621A (ja) 2001-02-27 2002-09-13 Ntt Advanced Technology Corp 電子投票システムおよび電子投票方法
JP3901471B2 (ja) 2001-05-18 2007-04-04 日本電気株式会社 証明付シャッフル復号システムと証明付シャッフル復号方法、シャッフル復号検証方法
JP2004013606A (ja) 2002-06-07 2004-01-15 Nippon Telegr & Teleph Corp <Ntt> 電子投票方法及びシステム及び投票者装置及び管理者装置及び集計者装置及び電子投票プログラム及び電子投票プログラムを格納した記憶媒体
JP4622811B2 (ja) * 2005-11-04 2011-02-02 株式会社日立製作所 電子文書の真正性保証システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170127105A (ko) * 2016-05-10 2017-11-21 주식회사 엔젠소프트 암호화 방법 및 이를 이용한 송신 장치, 복호화 방법 및 이를 이용한 수신 장치
KR101924047B1 (ko) * 2016-05-10 2019-02-25 주식회사 엔젠소프트 암호화 방법 및 이를 이용한 송신 장치, 복호화 방법 및 이를 이용한 수신 장치

Also Published As

Publication number Publication date
US8223973B2 (en) 2012-07-17
EP1708407A1 (en) 2006-10-04
US20060262933A1 (en) 2006-11-23
US8553889B2 (en) 2013-10-08
JP4687465B2 (ja) 2011-05-25
US20100115285A1 (en) 2010-05-06
US8583925B2 (en) 2013-11-12
KR20060033707A (ko) 2006-04-19
US7672460B2 (en) 2010-03-02
EP1708407A4 (en) 2014-03-26
JPWO2005071881A1 (ja) 2007-09-06
US20120250855A1 (en) 2012-10-04
WO2005071881A1 (ja) 2005-08-04
US20120250868A1 (en) 2012-10-04

Similar Documents

Publication Publication Date Title
KR100668016B1 (ko) 믹스넷 시스템
Mironov Hash functions: Theory, attacks, and applications
Delfs et al. Introduction to cryptography
JP2004534333A (ja) コンピュータネットワークにおける分散データ処理に関する統合された保護方法及びシステム
CN107872322A (zh) 基于同态加密的数字签名协同生成方法及系统
CN113711564A (zh) 用于加密数据的计算机实现的方法和系统
US20230224147A1 (en) Generating shared private keys
CN109951276B (zh) 基于tpm的嵌入式设备远程身份认证方法
CN114362971B (zh) 一种基于哈希算法的数字资产确权和溯源方法
TW202318833A (zh) 臨界簽章方案
JP4867916B2 (ja) シャッフル復号正当性証明装置と方法、シャッフル復号検証装置と方法、プログラムと記録媒体
CN112487464A (zh) 一种基于区块链的加密数据分享方法及装置
CN114760072B (zh) 签名及验签方法、装置及存储介质
JP2004228916A (ja) 署名暗号方法、その装置およびそのプログラム
KR20240045231A (ko) 디지털 서명 셰어의 생성
Maurer et al. Information Security and Cryptography
Lu Almost universal forgery attacks on the COPA and marble authenticated encryption algorithms
JP4437411B2 (ja) 相互検証を可能とする秘密情報分配装置、秘密情報検証装置、秘密情報照合装置、秘密情報分配システム及びプログラム
CN114520728B (zh) 一种分布式匿名阅卷评分方法与系统
Qahur Al Mahri et al. Fault analysis of AEZ
JP2005234069A5 (ko)
JP3540718B2 (ja) 検証可能匿名通信路システム、それを実施する方法及びその方法を記録した記録媒体
Kandikatla et al. Enhancing Security in Online Voting Systems: A Cryptographic Approach Utilizing Galois Fields.
WO2023143880A1 (en) Generating shared private keys
CN114189329A (zh) 一种公钥认证可否认加密方法及系统

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20091224

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee