KR20120042901A - 함수 암호 응용 시스템, 정보 출력 장치, 정보 처리 장치, 암호 프로토콜 실행 방법, 정보 출력 방법, 정보 처리 방법, 프로그램, 및 기록 매체 - Google Patents

함수 암호 응용 시스템, 정보 출력 장치, 정보 처리 장치, 암호 프로토콜 실행 방법, 정보 출력 방법, 정보 처리 방법, 프로그램, 및 기록 매체 Download PDF

Info

Publication number
KR20120042901A
KR20120042901A KR1020127002779A KR20127002779A KR20120042901A KR 20120042901 A KR20120042901 A KR 20120042901A KR 1020127002779 A KR1020127002779 A KR 1020127002779A KR 20127002779 A KR20127002779 A KR 20127002779A KR 20120042901 A KR20120042901 A KR 20120042901A
Authority
KR
South Korea
Prior art keywords
information
specific
function
combination
identifier
Prior art date
Application number
KR1020127002779A
Other languages
English (en)
Other versions
KR101362443B1 (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 KR20120042901A publication Critical patent/KR20120042901A/ko
Application granted granted Critical
Publication of KR101362443B1 publication Critical patent/KR101362443B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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
    • H04L9/3073Public 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 involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • 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/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0847Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving identity based encryption [IBE] 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Landscapes

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

Abstract

정보 출력 장치가, 함수 암호 방식에 따른 프로토콜마다 정해진 규칙, 또는 당해 프로토콜의 조합마다 정해진 규칙에 따라, 함수 암호 방식에 따른 특정의 프로토콜 또는 당해 특정의 프로토콜의 조합에 대응하는 1종류의 식별자 또는 복수 종류의 식별자를 특정하고, 그들 대응하는 특정의 제1 대응 정보를 설정하고, 특정의 제1 대응 정보에 대응하는 함수 암호 방식의 암호문 또는 키 정보인 제1 정보를 출력한다. 정보 처리 장치가, 제1 정보, 및 특정의 제2 대응 정보에 대응하는 함수 암호 방식의 키 정보 또는 암호문인 제2 정보를 함수 암호 방식의 복호함수에 입력하고, 제1 정보에 대응하는 특정의 제1 대응 정보 및 제2 정보에 대응하는 특정의 제2 대응 정보의 조합에 대응하는 논리식의 진리값이 참인 경우에 복호 결과를 생성한다.

Description

함수 암호 응용 시스템 및 방법{FUNCTION CIPHER APPLICATION SYSTEM}
본 발명은 암호 기술에 관한 것으로, 특히, 함수 암호 기술에 관한 것이다.
ID 베이스 암호(IBE : Identity-based Encryption) 방식은 공개 파라미터와 어떤 식별자(ID)를 사용하여 암호문을 생성할 수 있고, 당해 식별자와 일대일로 대응하는 키 정보 SKID를 사용하여 당해 암호문을 복호할 수 있는 방식이다(예를 들면, 비특허문헌 1 등 참조). 최근, 이러한 ID 베이스 암호 방식을 응용한 다양한 프로토콜이 제안되어 있다.
예를 들면, ID 베이스 암호 방식에 있어서, 현재의 일시를 포함하는 시간 구간에 대응하는 값과 수신자 장치의 고유 식별자를 포함하는 값을 식별자로서 암호화나 키 정보 생성을 행함으로써, Forward-secure 암호나 Key-Insulated 암호를 구성할 수 있는 것이 알려져 있다(예를 들면, 비특허문헌 2, 3 등 참조). 또, ID 베이스 암호 방식에 있어서, 검색 대상에 대응하는 키워드를 포함하는 정보를 식별자로 한 암호문을 암호화된 검색 대상에 대응지은 암호화 데이터베이스를 격납해 두고, 키워드를 포함하는 정보를 식별자로 한 키 정보를 사용하여 암호화 데이터베이스를 검색하는 Keyword 검색 암호를 구성할 수 있는 것이 알려져 있다(예를 들면, 비특허문헌 4 등 참조). 그 밖에, 예를 들면, 암호문을 복호해야 할 시점을 식별자로 하면 Timed-Release 암호를 실현할 수 있고, 랜덤수와 같은 일회용 정보를 식별자로 하면 CCA2(Chosen Ciphertext Attack 2) 암호를 실현할 수 있다.
D.Boneh, M. Franklin, "Identity Based Encryption from the Weil Pairing," Crypto 2001, Lecture Notes in Computer Science, Vol. 2139, Springer-Verlag, pp. 213-229, 2001. R. Canetti, S. Halevi, J. Katz, "A Forward-Secure Public-Key Encryption Scheme," EUROCRYPT '2003, 255-271. Y. Dodis, M. Franklin, J. Katz, A. Miyaji and M. Yung, "Intrusion-Resilient Public-Key Encryption," CT RSA 2003, Lecture Notes in Computer Science, 2612(2003), Springer-Verlag, 19-32. D. Boneh, G. Di Crescenzo, R. Ostrovsky, and G. Persiano, "Public Key Encryption with keyword Serch," Eurocrypt 2004.
상기 서술한 바와 같이, ID 베이스 암호 방식에서는, 사용하는 식별자에 따라서 다양한 프로토콜을 구성할 수 있다. 그 때문에, 사용하는 식별자를 전환함으로써 프로토콜을 전환할 수 있다. 또, 복수의 프로토콜에 대응하는 식별자의 조합을 새로운 식별자로서 사용하면, 복수의 프로토콜의 조합, 즉, 복수의 프로토콜의 특징을 겸비한 새로운 프로토콜을 구성할 수도 있다.
그러나, ID 베이스 암호 방식의 키 정보와 식별자는 일대일로 대응한다. 즉, ID 베이스 암호 방식을 응용한 프로토콜에서는, 프로토콜마다 별개의 키 정보가 필요하게 된다. 그 때문에, 암호문을 생성하는 측의 장치가 암호문의 생성에 사용하는 식별자를 선택하고, 선택한 식별자에 따라서 프로토콜을 전환하는 시스템을 구성한 경우, 암호문의 복호를 행하는 장치는, 전환되는 각 프로토콜에 각각 별개로 대응하는 각 키 정보를 유지해 둘 필요가 있다. 이러한 키 정보의 생성?관리는 번잡하여 바람직하지 않다.
마찬가지로, 1개의 평문에 대한 ID 베이스 암호 방식의 암호문과 식별자는 일대일로 대응한다. 즉, ID 베이스 암호 방식을 응용한 프로토콜에서는, 프로토콜마다 별개의 암호문이 필요하게 된다. 그 때문에, 키 정보를 생성하는 측의 장치가 키 정보의 생성에 사용하는 식별자를 선택하고, 선택한 식별자에 따라서 프로토콜을 전환하는 시스템을 구성한 경우, 암호문의 생성을 행하는 장치는, 전환되는 각 프로토콜에 각각 별개로 대응하는 각 암호문을 유지해 둘 필요가 있다. 이러한 암호문의 생성?관리는 번잡하여 바람직하지 않다.
이러한 문제는, 키 정보를 생성하는 측의 장치가 키 정보의 생성에 사용하는 식별자를 선택하고, 선택한 식별자에 따라서 프로토콜을 전환하는 것이 가능함과 아울러, 암호문을 생성하는 측의 장치가 암호문의 생성에 사용하는 식별자를 선택하고, 선택한 식별자에 따라서 프로토콜을 전환하는 것도 가능한 시스템을 구성하는 경우에도 마찬가지로 생긴다.
본 발명은 이러한 점을 감안하여 이루어진 것으로, 번잡한 처리?관리를 필요로 하지 않고, 선택한 식별자에 따라서 프로토콜을 전환하는 것이 가능한 기술을 제공하는 것을 목적으로 한다.
본 발명에서는 상기 과제를 해결하기 위해서, 제1 대응 정보 및 제2 대응 정보의 조합에 대응하는 논리식의 진리값이 참인 경우에 암호문이 올바르게 복호되는 함수 암호 방식에 따른 프로토콜을 구성한다.
본 발명의 정보 출력 장치는, 함수 암호 방식에 따른 프로토콜마다 정해진 규칙, 또는 함수 암호 방식에 따른 프로토콜의 조합마다 정해진 규칙에 따라, 함수 암호 방식에 따른 특정의 프로토콜 또는 함수 암호 방식에 따른 특정의 프로토콜의 조합에 대응하는 1종류의 식별자 또는 복수 종류의 식별자를 특정하고, 1종류의 식별자 또는 복수 종류의 식별자의 조합에 대응하는 특정의 제1 대응 정보를 설정하고, 특정의 제1 대응 정보에 대응하는 함수 암호 방식의 암호문 또는 키 정보인 제1 정보를 출력한다.
본 발명의 정보 처리 장치는, 제1 정보, 및 특정의 제2 대응 정보에 대응하는 함수 암호 방식의 키 정보 또는 암호문인 제2 정보를 함수 암호 방식의 복호함수에 입력하고, 제1 정보에 대응하는 특정의 제1 대응 정보 및 제2 정보에 대응하는 특정의 제2 대응 정보의 조합에 대응하는 논리식의 진리값이 참인 경우에 복호 결과를 생성한다. 또한, 제1 정보가 특정의 제1 대응 정보에 대응하는 암호문인 경우에는 제2 정보는 특정의 제2 대응 정보에 대응하는 키 정보이며, 제1 정보가 특정의 제1 대응 정보에 대응하는 키 정보인 경우에는 제2 정보는 특정의 제2 대응 정보에 대응하는 암호문이다.
상기 서술한 바와 같이, 함수 암호 방식에서는, 제1 정보에 대응하는 특정의 제1 대응 정보와 제2 정보에 대응하는 특정의 제2 대응 정보의 조합에 대응하는 논리식의 진리값이 참인 경우에, 올바른 복호 결과가 생성된다. 또, 특정의 제1 대응 정보는, 1종류의 식별자 또는 복수 종류의 식별자의 조합에 대하여 정해지는 정보이다. 또, 특정의 제2 대응 정보는, 특정의 제1 대응 정보에 대응하는 제1 정보, 및 특정의 제2 대응 정보에 대응하는 제2 정보가 복호함수에 입력된 경우, 특정의 제1 대응 정보가 취하는 1종류의 값 또는 복수 종류의 값에 대하여 각각 복호 결과가 얻어지는 값을 취한다. 즉, 본 발명에서는, 1종류 이상의 제1 정보에 대하여 동일한 제2 정보를 공용하여, 올바른 복호를 행할 수 있다.
이상과 같이 본 발명에서는 1종류 이상의 제1 정보에 대하여 동일한 제2 정보를 공용할 수 있다. 그 때문에, 정보 출력 장치가 1종류의 식별자 또는 2종류 이상의 당해 식별자의 조합을 선택하고, 선택한 식별자에 따라서 프로토콜을 전환하여 제1 정보를 생성하는 경우여도, 정보 처리 장치는 전환되는 프로토콜마다 별개로 제2 정보를 생성할 필요는 없다. 그 결과, 본 발명에서는, 번잡한 처리?관리를 필요로 하지 않고, 선택한 식별자에 따라서 프로토콜을 전환할 수 있다.
도 1은 제1 실시형태의 함수 암호 응용 시스템의 전체 구성을 설명하기 위한 블록도이다.
도 2는 도 1의 송신자 장치(정보 출력 장치)의 구성을 설명하기 위한 블록도이다.
도 3은 도 1의 수신자 장치(정보 처리 장치)의 구성을 설명하기 위한 블록도이다.
도 4는 도 1의 키 생성 장치의 구성을 설명하기 위한 블록도이다.
도 5A는 제1 실시형태에 있어서의 1종류 이상의 프로토콜을 특정하기 위한 특정 정보 PI와 프로토콜의 대응 관계를 예시한 도면이다. 도 5B는 제1 실시형태에 있어서의 1종류 이상의 프로토콜을 특정하기 위한 특정 정보 PI와 프로토콜의 대응 관계를 예시한 도면이다.
도 6A는 제1 실시형태에 있어서, 프로토콜마다 또는 당해 프로토콜의 조합마다 정해진, 식별자 ID(h)를 특정하기 위한 규칙의 일례를 설명하기 위한 도면이다. 도 6B는 제1 실시형태에 있어서, 프로토콜마다 또는 당해 프로토콜의 조합마다 정해진, 식별자 ID(h)를 특정하기 위한 규칙의 일례를 설명하기 위한 도면이다.
도 7은 제1 실시형태에 있어서, 프로토콜마다 또는 당해 프로토콜의 조합마다 정해진, 식별자 ID(h)를 특정하기 위한 규칙의 일례를 설명하기 위한 도면이다.
도 8A는 1종류의 식별자 ID(h) 또는 2종류 이상의 식별자 ID(h)의 조합에 대하여 1개의 속성 정보 ATT를 특정하기 위한 속성 정보 테이블의 일례를 설명하기 위한 도면이며, 도 8B는 당해 속성 정보 테이블에 의해 정해지는 속성 정보 ATT의 데이터 구성을 설명하기 위한 도면이다.
도 9A는 1종류의 식별자 ID(h) 또는 2종류 이상의 식별자 ID(h)의 조합에 대하여 1개의 속성 정보 ATT를 특정하기 위한 속성 정보 테이블의 일례를 설명하기 위한 도면이다. 도 9B는 당해 속성 정보 테이블에 의해 정해지는 속성 정보 ATT의 데이터 구성을 설명하기 위한 도면이다.
도 10A는 각각 다항식 f(x0,...,xH-1)에 대응하는 술어 정보 PRE의 일례를 설명하기 위한 도면이다. 도 10B는 당해 술어 정보 PRE의 데이터 구성을 설명하기 위한 도면이다.
도 11A는 각각 다항식 f(x0,...,xH-1)에 대응하는 술어 정보 PRE의 일례를 설명하기 위한 도면이다. 도 11B는 당해 술어 정보 PRE의 데이터 구성을 설명하기 위한 도면이다.
도 12A는 제1 실시형태의 암호화 처리를 설명하기 위한 플로우차트이다. 도 12B는 제1 실시형태의 키 정보 생성 처리를 설명하기 위한 플로우차트이다.
도 13은 제1 실시형태의 복호 처리를 설명하기 위한 플로우차트이다.
도 14A는 속성 정보 ATT 및 술어 정보 PRE의 일부의 영역을 예비 영역으로 한 예를 설명하기 위한 도면이다. 도 14B는 속성 정보 ATT 및 술어 정보 PRE의 일부의 영역을 예비 영역으로 한 예를 설명하기 위한 도면이다.
도 15A는 속성 정보 ATT 및 술어 정보 PRE의 일부의 영역을 예비 영역으로 한 예를 설명하기 위한 도면이다. 도 15B는 속성 정보 ATT 및 술어 정보 PRE의 일부의 영역을 예비 영역으로 한 예를 설명하기 위한 도면이다.
도 16은 특정 정보 PI의 값에 관계없이, 미리 참이 되도록 설정된 명제의 논리곱을 일부에 포함하는 논리식에 대응하는 속성 정보 ATT 및 술어 정보 PRE를 설정하는 경우의 일례를 설명하기 위한 도면이다.
도 17A는 특정 정보 PI의 값에 관계없이, 미리 참이 되도록 설정된 명제의 논리곱을 일부에 포함하는 논리식에 대응하는 속성 정보 ATT 및 술어 정보 PRE를 설정하는 경우의 일례를 설명하기 위한 도면이다. 도 17B는 특정 정보 PI의 값에 관계없이, 미리 참이 되도록 설정된 명제의 논리곱을 일부에 포함하는 논리식에 대응하는 속성 정보 ATT 및 술어 정보 PRE를 설정하는 경우의 일례를 설명하기 위한 도면이다.
도 18A는 특정 정보 PI의 값에 관계없이, 미리 참이 되도록 설정된 명제의 논리곱을 일부에 포함하는 논리식에 대응하는 속성 정보 ATT 및 술어 정보 PRE를 설정하는 경우의 일례를 설명하기 위한 도면이다. 도 18B는 특정 정보 PI의 값에 관계없이, 미리 참이 되도록 설정된 명제의 논리곱을 일부에 포함하는 논리식에 대응하는 속성 정보 ATT 및 술어 정보 PRE를 설정하는 경우의 일례를 설명하기 위한 도면이다.
도 19는 제2 실시형태의 함수 암호 응용 시스템의 전체 구성을 설명하기 위한 블록도이다.
도 20은 도 19의 송신자 장치(정보 출력 장치)의 구성을 설명하기 위한 블록도이다.
도 21은 도 19의 수신자 장치(정보 처리 장치)의 구성을 설명하기 위한 블록도이다.
도 22A는 제2 실시형태에 있어서의 1종류 이상의 프로토콜을 특정하기 위한 특정 정보 PI와 프로토콜의 대응 관계를 예시한 도면이다. 도 22B는 제2 실시형태에 있어서의 1종류 이상의 프로토콜을 특정하기 위한 특정 정보 PI와 프로토콜의 대응 관계를 예시한 도면이다.
도 23A는 제2 실시형태에 있어서, 프로토콜마다 또는 당해 프로토콜의 조합마다 정해진, 식별자 ID(h)를 특정하기 위한 규칙의 일례를 설명하기 위한 도면이다. 도 23B는 제2 실시형태에 있어서, 프로토콜마다 또는 당해 프로토콜의 조합마다 정해진, 식별자 ID(h)를 특정하기 위한 규칙의 일례를 설명하기 위한 도면이다.
도 24는 제2 실시형태에 있어서, 프로토콜마다 또는 당해 프로토콜의 조합마다 정해진, 식별자 ID(h)를 특정하기 위한 규칙의 일례를 설명하기 위한 도면이다.
도 25는 제2 실시형태의 암호화 DB의 일례를 설명하기 위한 도면이다.
도 26A는 제2 실시형태의 검색 의뢰 처리를 설명하기 위한 플로우차트이다. 도 26B는 제2 실시형태의 키 정보 생성 처리를 설명하기 위한 플로우차트이다.
도 27은 제2 실시형태의 검색 처리를 설명하기 위한 플로우차트이다.
도 28은 제3 실시형태의 함수 암호 응용 시스템의 전체 구성을 설명하기 위한 블록도이다.
도 29는 도 28의 송신자 장치(정보 출력 장치)의 구성을 설명하기 위한 블록도이다.
도 30은 도 28의 수신자 장치(정보 처리 장치)의 구성을 설명하기 위한 블록도이다.
도 31A는 제3 실시형태의 송신자 장치의 처리를 설명하기 위한 플로우차트이다. 도 31B는 제3 실시형태의 수신자 장치의 처리를 설명하기 위한 플로우차트이다.
도 32는 표준형 논리식을 표현하는 나무구조 데이터를 예시하는 도면이다.
도 33은 표준형 논리식을 표현하는 나무구조 데이터를 예시하는 도면이다.
도 34는 함수 암호의 (Dec-1)의 처리의 구체예를 설명하기 위한 도면이다.
도 35는 제4 실시형태의 함수 암호 응용 시스템의 전체 구성을 설명하기 위한 블록도이다.
도 36은 제4 실시형태의 송신자 장치(정보 출력 장치)의 구성을 설명하기 위한 블록도이다.
도 37은 제4 실시형태의 수신자 장치(정보 처리 장치)의 구성을 설명하기 위한 블록도이다.
도 38은 제4 실시형태의 키 생성 장치의 구성을 설명하기 위한 블록도이다.
도 39A는 제4 실시형태에 있어서의 1종류 이상의 프로토콜을 특정하기 위한 특정 정보 PI와 프로토콜의 대응 관계를 예시한 도면이다. 도 39B는 제4 실시형태에 있어서의 1종류 이상의 프로토콜을 특정하기 위한 특정 정보 PI와 프로토콜의 대응 관계를 예시한 도면이다.
도 40A는 제4 실시형태에 있어서, 프로토콜마다 또는 당해 프로토콜의 조합마다 정해진, 식별자 ID(λ)를 특정하기 위한 규칙의 일례를 설명하기 위한 도면이다. 도 40B는 제4 실시형태에 있어서, 프로토콜마다 또는 당해 프로토콜의 조합마다 정해진, 식별자 ID(λ)를 특정하기 위한 규칙의 일례를 설명하기 위한 도면이다.
도 41은 제4 실시형태에 있어서, 프로토콜마다 또는 당해 프로토콜의 조합마다 정해진, 식별자 ID(λ)를 특정하기 위한 규칙의 일례를 설명하기 위한 도면이다.
도 42A는 속성 정보 VSET1의 데이터 구성을 설명하기 위한 도면이다. 도 42B는 조건 정보 VSET2의 데이터 구성을 설명하기 위한 도면이다.
도 43A는 제4 실시형태의 암호화 처리를 설명하기 위한 플로우차트이다. 도 43B는 제4 실시형태의 키 정보 생성 처리를 설명하기 위한 플로우차트이다.
도 44는 제4 실시형태의 복호 처리를 설명하기 위한 플로우차트이다.
도 45A는 속성 정보 VSET1의 일부의 영역을 예비 영역으로 한 예를 설명하기 위한 도면이다. 도 45B는 조건 정보 VSET2의 일부의 영역을 예비 영역으로 한 예를 설명하기 위한 도면이다.
도 46은 제5 실시형태의 송신자 장치(정보 출력 장치)의 구성을 설명하기 위한 블록도이다.
도 47은 제5 실시형태의 수신자 장치(정보 처리 장치)의 구성을 설명하기 위한 블록도이다.
도 48A는 제5 실시형태에 있어서의 1종류 이상의 프로토콜을 특정하기 위한 특정 정보 PI와 프로토콜의 대응 관계를 예시한 도면이다. 도 48B는 제5 실시형태에 있어서의 1종류 이상의 프로토콜을 특정하기 위한 특정 정보 PI와 프로토콜의 대응 관계를 예시한 도면이다.
도 49A는 제5 실시형태에 있어서, 프로토콜마다 또는 당해 프로토콜의 조합마다 정해진, 식별자 ID(λ)를 특정하기 위한 규칙의 일례를 설명하기 위한 도면이다. 도 49B는 제5 실시형태에 있어서, 프로토콜마다 또는 당해 프로토콜의 조합마다 정해진, 식별자 ID(λ)를 특정하기 위한 규칙의 일례를 설명하기 위한 도면이다.
도 50은 제5 실시형태에 있어서, 프로토콜마다 또는 당해 프로토콜의 조합마다 정해진, 식별자 ID(λ)를 특정하기 위한 규칙의 일례를 설명하기 위한 도면이다.
도 51은 제5 실시형태의 암호화 DB의 일례를 설명하기 위한 도면이다.
도 52는 제5 실시형태의 검색 의뢰 처리를 설명하기 위한 플로우차트이다.
도 53A는 제5 실시형태의 키 정보 생성 처리를 설명하기 위한 플로우차트이다. 도 53B는 제5 실시형태의 검색 처리를 설명하기 위한 플로우차트이다.
도 54는 제6 실시형태의 송신자 장치(정보 출력 장치)의 구성을 설명하기 위한 블록도이다.
도 55는 제6 실시형태의 수신자 장치(정보 처리 장치)의 구성을 설명하기 위한 블록도이다.
도 56A는 제6 실시형태의 송신자 장치의 처리를 설명하기 위한 플로우차트이다. 도 56B는 제6 실시형태의 수신자 장치의 처리를 설명하기 위한 플로우차트이다.
이하, 본 발명을 실시하기 위한 형태를 설명한다.
〔제1~3 실시형태에서의 정의〕
우선, 제1~3 실시형태에서 사용하는 용어나 기호를 정의한다.
행렬 : 「행렬」은 연산이 정의된 집합의 원소를 직사각형으로 늘어놓은 것을 나타낸다. 환의 원소를 요소로 하는 것 뿐만아니라, 군의 원소를 요소로 하는 것도 「행렬」이라고 표현한다.
(?)T : (?)T는 ?의 전치행렬을 나타낸다.
(?)-1 : (?)-1은 ?의 역행렬을 나타낸다.
∧ : ∧는 논리곱을 나타낸다.
∨ : ∨는 논리합을 나타낸다.
Z : Z는 정수 집합을 나타낸다.
k : k는 세큐리티 파라미터(k∈Z, k>0)를 나타낸다.
{0,1}* : {0,1}*는 임의 비트 길이의 바이너리 계열을 나타낸다. 그 일례는, 정수 0 및 1로 이루어지는 계열이다. 그러나, {0,1}*는 정수 0 및 1로 이루어지는 계열에 한정되지 않는다. {0,1}*는 위수 2의 유한체 또는 그 확대체와 동의이다.
q : q는 1 이상의 정수를 나타낸다.
Zq : Zq는 위수 q의 유한환을 나타낸다. 유한환 상의 연산은, 예를 들면, 위수 q를 법으로 하는 잉여연산에 의해 용이하게 구성할 수 있다.
Fq : Fq는 위수 q의 유한체를 나타낸다. Fq가 유한체이기 위해서는, 위수 q는 소수 또는 소수의 멱승값이어야 한다. 유한체 Fq의 예는 소체나 그것을 기초체로 한 확대체이다. 또한, 유한체 Fq가 소체인 경우의 연산은, 예를 들면, 위수 q를 법으로 하는 잉여연산에 의해 용이하게 구성할 수 있다. 또, 유한체 Fq가 확대체인 경우의 연산은, 예를 들면, 기약다항식을 법으로 하는 잉여연산에 의해 용이하게 구성할 수 있다. 유한체 Fq의 구체적인 구성 방법은, 예를 들면, 참고문헌 1 「ISO/IEC 18033-2 : Information technology-Security techniques-Encryption algorithms-Part 2 : Asymmetric ciphers」에 개시되어 있다.
0F : 0F는 유한체 Fq의 가법단위원(영원)을 나타낸다.
1F : 1F는 유한체 Fq의 승법단위원을 나타낸다.
δ(i, j) : δ(i, j)는 크로네커의 델타 함수를 나타낸다. i=j인 경우에 δ(i, j)=1F를 만족하고, i≠j인 경우에 δ(i, j)=0F를 만족한다.
E : E는 유한체 Fq상에서 정의된 타원곡선을 나타낸다. 타원곡선 E는 아핀(affine) 좌표판의 Weierstrass 방정식
y2+a1?x?y+a3?y=x3+a2?x2+a4?x+a6…(1)
(단, a1, a2, a3, a4, a6∈Fq)를 만족하는 x, y∈Fq로 이루어지는 점(x, y)의 집합에 무한원점이라고 불리는 특별한 점 O를 부가한 것으로 정의된다. 타원곡선 E상의 임의의 2점에 대하여 타원가산이라고 불리는 2항 연산 + 및 타원곡선 E상의 임의의 1점에 대하여 타원역원이라고 불리는 단항 연산 -를 각각 정의할 수 있다. 또, 타원곡선 E상의 유리점으로 이루어지는 유한집합이 타원가산에 관하여 군을 이루는 것, 타원가산을 사용하여 타원 스칼라 배산이라고 불리는 연산을 정의할 수 있는 것, 및 컴퓨터상에서의 타원가산 등의 타원연산의 구체적인 연산 방법은 잘 알려져 있다(예를 들면, 참고문헌 1, 참고문헌 2 「RFC 5091 : Identity-Based Cryptography Standard(IBCS)#1 : Supersingular Curve Implementations of the BF and BB1 Cryptosystems」, 참고문헌 3 「이언?F?블라케, 가디엘?셀로시, 나이젤?P?스마트=저, 「타원 곡선 암호」, 출판=피어슨?에듀케이션, ISBN4-89471-431-0」등 참조).
또, 타원곡선 E상의 유리점으로 이루어지는 유한집합은 위수 p(p≥1)의 부분군을 가진다. 예를 들면, 타원곡선 E상의 유리점으로 이루어지는 유한집합의 요소수를 #E로 하고, p를 #E를 정제(整除)하는 큰 소수로 한 경우, 타원곡선 E의 p등분점으로 이루어지는 유한집합 E[p]는 타원곡선 E상의 유리점으로 이루어지는 유한집합의 부분군을 구성한다. 또한, 타원곡선 E의 p등분점은 타원곡선 E상의 점 A 중, 타원곡선 E상에서의 타원 스칼라 배산값 p?A가 p?A=O를 만족하는 점을 의미한다.
G1, G2, GT : G1, G2, GT는 위수 q의 순회군을 나타낸다. 순회군 G1, G2의 구체예는, 타원곡선 E의 p등분점으로 이루어지는 유한집합 E[p]나 그 부분군이다. G1=G2여도 되고 G1≠G2여도 된다. 또, 순회군 GT의 구체예는, 유한체 Fq를 기초체로 하는 확대체의 가법에 대한 부분군이다. 그 일례는 유한체 Fq의 대수 폐포에 있어서의 1의 p승근으로 이루어지는 유한집합이다.
또한, 제1~3 실시형태에서는, 순회군 G1, G2상에서 정의된 연산을 가법적으로 표현하고, 순회군 GT상에서 정의된 연산을 승법적으로 표현한다. 즉, χ∈Fq 및 Ω∈G1에 대한 χ?Ω∈G1은 Ω∈G1에 대하여 순회군 G1으로 정의된 연산을 χ회 시행하는 것을 의미하고, Ω1, Ω2∈G1에 대한 Ω12∈G1은 Ω1∈G1과 Ω2∈G1을 피연산자로 하여 순회군 G1으로 정의된 연산을 행하는 것을 의미한다. 마찬가지로, χ∈Fq 및 Ω∈G2에 대한 χ?Ω∈G2는 Ω∈G2에 대하여 순회군 G2로 정의된 연산을 χ회 시행하는 것을 의미하고, Ω1, Ω2∈G2에 대한 Ω12∈G2는 Ω1∈G2와 Ω2∈G2를 피연산자로 하여 순회군 G2로 정의된 연산을 행하는 것을 의미한다. 한편, χ∈Fq 및 Ω∈G1에 대한 Ωχ∈GT는 Ω∈GT에 대하여 순회군 GT로 정의된 연산을 χ회 시행하는 것을 의미하고, Ω1, Ω2∈GT에 대한 Ω12∈GT는 Ω1∈GT와 Ω2∈GT를 피연산자로 하여 순회군 GT로 정의된 연산을 행하는 것을 의미한다.
G1 n+1 : G1 n+1은 n+1(n≥1)개의 순회군 G1의 직적을 나타낸다.
G2 n+1 : n+1개의 순회군 G2의 직적을 나타낸다.
g1, g2, gT : g1, g2, gT는 순회군 G1, G2, GT의 생성원을 나타낸다.
V : V는 n+1개의 순회군 G1의 직적으로 이루어지는 n+1차원의 벡터 공간을 나타낸다.
V* : V*는 n+1개의 순회군 G2의 직적으로 이루어지는 n+1차원의 벡터 공간을 나타낸다.
e : e는 직적 G1 n+1과 직적 G2 n+1의 직적 G1 n+1×G2 n+1을 순회군 GT에 그리는 비퇴화한 쌍선형사상(bilinear map)을 나타낸다. 쌍선형사상 e는 순회군 G1의 n+1개의 원소 γL(L=1,...,n+1)(n≥1)과 순회군 G2의 n+1개의 원소 γL *(L=1,...,n+1)를 입력으로 하고, 순회군 GT의 1개의 원소를 출력한다.
e : G1 n+1×G2 n+1→GT…(2)
쌍선형사상 e는 이하의 성질을 만족한다.
[쌍선형성] 모든 Γ1∈G1 n+1, Γ2∈G2 n+1 및 υ, κ∈Fq에 대해서 이하의 관계를 만족한다.
e(υ?Γ1, κ?Γ2)=e(Γ12)υ?κ…(3)
[비퇴화성] 모든 Γ1∈G1 n+1, Γ2∈G2 n+1을 순회군 GT의 단위원에 그리는 것이 아니다.
[계산 가능성] 모든 Γ1∈G1 n+1, Γ2∈G2 n+1에 대해서 e(Γ1, Γ2)를 효율적으로 계산하는 알고리즘이 존재한다.
제1~3 실시형태에서는, 순회군 G1과 순회군 G2의 직적 G1×G2를 순회군 GT에 그리는 비퇴화한 쌍선형사상
Pair : G1×G2→GT…(4)
를 사용하여 쌍선형사상 e를 구성한다. 제1~3 실시형태의 쌍선형사상 e는 순회군 G1의 n+1개의 원소 γL(L=1,...,n+1)로 이루어지는 n+1차원 벡터(γ1,...,γn+1)와, 순회군 G2의 n+1개의 원소 γL *(L=1,...,n+1)으로 이루어지는 n+1차원 벡터(γ1 *, ...,γn+1 *)의 입력에 대하여, 순회군 GT의 1개의 원소
e=ΠL=1 n+1Pair(γL, γL *)…(5)
를 출력한다.
또한, 쌍선형사상 Pair는 순회군 G1의 1개의 원소와 순회군 G2의 1개의 원소의 세트를 입력으로 하고, 순회군 GT의 1개의 원소를 출력하는 것이며, 이하의 성질을 만족한다.
[쌍선형성] 모든 Ω1∈G1,Ω2∈G2 및 ν,κ∈Fq에 대해서 이하의 관계를 만족한다.
Pair(ν?Ω1,κ?Ω2)=Pair(Ω12)ν?κ…(6)
[비퇴화성] 모든 Ω1∈G1,Ω2∈G2를 순회군 GT의 단위원에 그리는 것이 아니다.
[계산 가능성] 모든 Ω1∈G1,Ω2∈G2에 대해서 Pair(Ω12)을 효율적으로 계산하는 알고리즘이 존재한다.
또한, 쌍선형사상 Pair의 구체예는 Weil 페어링이나 Tate 페어링 등의 페어링 연산을 행하기 위한 함수이다(예를 들면, 참고문헌 4 「Alfred. J. Menezes, ELLIPTIC CURVE PUBLIC KEY CRYPTOSYSTEMS, KLUWER ACADEMIC PUBLISHERS, ISBN 0-7923-9368-6,pp. 61-81」 등 참조). 또, 타원곡선 E의 종류에 따라, Tate 페어링 등의 페어링 연산을 행하기 위한 함수와 소정의 함수 phi를 조합시킨 변경 페어링 함수 e(Ω1,phi(Ω2))(Ω1∈G1,Ω2∈G2)를 쌍선형사상 Pair로서 사용해도 된다(예를 들면, 참고문헌 2 등 참조). 또, 페어링 연산을 컴퓨터상에서 행하기 위한 알고리즘으로서는, 주지의 Miller의 알고리즘(참고문헌 5 「V. S. Miller, "Short Programs for functions on Curves," 1986, 인터넷 <http://crypto.stanford.edu/miller/miller.pdf>」 등이 존재한다. 또, 페어링 연산을 효율적으로 행하기 위한 타원곡선이나 순회군의 구성 방법은 잘 알려져 있다(예를 들면, 참고문헌 2, 참고문헌 6 「A. Miyaji, M. Nakabayashi, S.Takano, "New explicit conditions of elliptic curve Traces for FR-Reduction," IEICE Trans. Fundamentals, vol. E84-A, no05, pp. 1234-1243, May 2001」, 참고문헌 7 「P.S.L.M. Barreto, B. Lynn, M. Scott, "Constructing elliptic curves with prescribed embedding degrees," Proc. SCN '2002, LNCS 2576, pp. 257-267, Springer-Verlag. 2003」, 참고문헌 8 「R. Dupont, A. Enge, F. Morain, "Building curves with arbitrary small MOV degree over finite prime fields," http://eprint.iacr.org/2002/094/」등 참조).
ai(i=1,...,n+1) : ai는 순회군 G1의 n+1개의 원소를 요소로 하는 n+1차원의 기저 벡터를 나타낸다. 기저 벡터 ai의 일례는, κ1?g1∈G1을 i차원째의 요소로 하고, 나머지의 n개의 요소를 순회군 G1의 단위원(가법적으로 「0」이라고 표현)으로 하는 n+1차원의 기저 벡터이다. 이 경우, n+1차원의 기저 벡터 ai(i=1,...,n+1)의 각 요소를 각각 열거하여 표현하면, 이하와 같다.
a1=(κ1?g1,0,0,...,0)
a2=(0,κ1?g1,0,...,0)…(7)
...
an+1=(0,0,0,...,κ1?g1)
여기서, κ1은 가법단위원 0F 이외의 유한체 Fq의 원소로 이루어지는 상수이며, κ1∈Fq의 구체예는 κ1=1F이다. 기저 벡터 ai는 직교기저이며, 순회군 G1의 n+1개의 원소를 요소로 하는 모든 n+1차원 벡터는 n+1차원의 기저 벡터 ai(i=1,...,n+1)의 선형합에 의해 표시된다. 즉, n+1차원의 기저 벡터 ai는 상기 서술한 벡터 공간 V를 펼친다.
ai *(i=1,...,n+1) : ai *는 순회군 G2의 n+1개의 원소를 요소로 하는 n+1차원의 기저 벡터를 나타낸다. 기저 벡터 ai *의 일례는, κ2?g2∈G2를 i차원째의 요소로 하고, 나머지 n개의 요소를 순회군 G2의 단위원(가법적으로 「0」이라고 표현)으로 하는 n+1차원의 기저 벡터이다. 이 경우, 기저 벡터 ai *(i=1,...,n+1)의 각 요소를 각각 열거하여 표현하면, 이하와 같다.
a1 *=(κ2?g2,0,0,...,0)
a2 *=(0,κ2?g2,0,...,0)…(8)
...
an+1 *=(0,0,0,...,κ2?g2)
여기서, κ2는 가법단위원 0F 이외의 유한체 Fq의 원소로 이루어지는 상수이며, κ2∈Fq의 구체예는 κ2=1F이다. 기저 벡터 ai *는 직교기저이며, 순회군 G2의 n+1개의 원소를 요소로 하는 모든 n+1차원 벡터는 n+1차원의 기저 벡터 ai *(i=1,...,n+1)의 선형합에 의해 표시된다. 즉, n+1차원의 기저 벡터 ai *는 상기 서술한 벡터 공간 V*를 펼친다.
또한, 기저 벡터 ai와 기저 벡터 ai *는 0F를 제외한 유한체 Fq의 원소 τ=κ12에 대해서
e(ai, aj *)=gT τ?δ(i,j)…(9)
를 만족한다. 즉, i=j인 경우에는, 식(5)(6)의 관계로부터,
e(ai, aj *)= Pair(κ1?g12?g2)?Pair(0, 0)?...?Pair(0, 0)
= Pair(g1, g2)κ1?κ2?Pair(g1, g2)0?0?...?Pair(g1, g2)0?0
= Pair(g1, g2)κ1?κ2=gT τ
를 만족한다. 한편, i≠j인 경우에는, e(ai, aj *)는 Pair(κ1?g12?g2)를 포함하지 않고, Pair(κ1?g1,0)와 Pair(0,κ2?g2)와 Pair(0,0)의 곱이 된다. 또한, 식(6)의 관계로부터 Pair(g1,0)=Pair(0, g2)=Pair(g1, g2)0를 만족한다. 그 때문에, i≠j인 경우에는,
e(ai, aj *)=e(g1, g2)0=gT 0
를 만족한다.
특히, τ=κ12=1F인 경우(예를 들면, κ12=1F인 경우),
e(ai, aj *)=gT δ(i,j)…(10)
를 만족한다. 여기서, gT 0=1은 순회군 GT의 단위원이며, gT 1=gT는 순회군 GT의 생성원이다. 이 경우, 기저 벡터 ai와 기저 벡터 ai *는 쌍대 정규 직교 기저이며, 벡터 공간 V와 벡터 공간 V*는 쌍선형사상을 구성 가능한 쌍대 벡터 공간〔쌍대 페어링 벡터 공간(DPVS : Dual Paring Vector space)〕이다.
A : A는 기저 벡터 ai(i=1,...,n+1)를 요소로 하는 n+1행n+1열의 행렬을 나타낸다. 예를 들면, 기저 벡터 ai(i=1,...,n+1)가 식(7)에 의해 표현되는 경우, 행렬 A는,
[수 1]
Figure pct00001
이 된다.
A* : A*는 기저 벡터 ai *(i=1,...,n+1)을 요소로 하는 n+1행n+1열의 행렬을 나타낸다. 예를 들면, 기저 벡터 ai *(i=1,...,n+1)가 식(8)에 의해 표현되는 경우, 행렬 A*는,
[수 2]
Figure pct00002
가 된다.
X : X는 유한체 Fq의 원소를 요소로 하는 n+1행n+1열의 행렬을 나타낸다. 기저 벡터 ai의 좌표 변환에 사용된다. 행렬 X의 i행j열(i=1,...,n+1,j=1,...,n+1)의 요소를 χi,j∈Fq로 하면, 행렬 X는,
[수 3]
Figure pct00003
이 된다. 또한, 행렬 X의 각 요소 χi,j를 변환 계수라고 한다.
X* : X*는 행렬 X의 역행렬의 전치행렬 X*=(X-1)T를 나타낸다. 기저 벡터 ai *의 좌표 변환에 사용된다. 행렬 X*의 i행j열의 요소를 χi,j *∈Fq로 하면, 행렬 X*는,
[수 4]
Figure pct00004
가 된다. 또한, 행렬 X*의 각 요소 χi,j *를 변환 계수라고 한다.
이 경우, n+1행n+1열의 단위행렬을 I로 하면 X?(X*)T=I를 만족한다. 즉, 단위행렬
[수 5]
Figure pct00005
에 대해,
[수 6]
Figure pct00006
을 만족한다. 여기서, n+1차원 벡터
χi =(χi,1,...,χi,n+1)…(17)
χj →*=(χj,1 *,...,χj,n+1 *)…(18)
을 정의한다. 그러면, 식(16)의 관계로부터, n+1차원 벡터 χi 와 χj →*의 내적은,
χi j →*=δ(i,j)…(19)
가 된다.
bi : bi는 순회군 G1의 n+1개의 원소를 요소로 하는 n+1차원의 기저 벡터를 나타낸다. bi는 행렬 X를 사용하여 기저 벡터 ai(i=1,...,n+1)를 좌표 변환함으로써 얻어진다. 구체적으로는, 기저 벡터 bi는,
bij=1 n+1χi,j?aj…(20)
의 연산에 의해 얻어진다. 예를 들면, 기저 벡터 aj(j=1,...,n+1)가 식(7)에 의해 표현되는 경우, 기저 벡터 bi의 각 요소를 각각 열거하여 표현하면, 이하와 같다.
bi=(χi,11?g1i,21?g1 ,...,χi,n+11?g1)…(21)
순회군 G1의 n+1개의 원소를 요소로 하는 모든 n+1차원 벡터는 n+1차원의 기저 벡터 bi(i=1,...,n+1)의 선형합에 의해 표시된다. 즉, n+1차원의 기저 벡터 bi는 상기 서술한 벡터 공간 V를 펼친다.
bi * : bi *는 순회군 G2의 n+1개의 원소를 요소로 하는 n+1차원의 기저 벡터를 나타낸다. bi *는 행렬 X*를 사용하여 기저 벡터 ai *(i=1,...,n+1)를 좌표 변환함으로써 얻어진다. 구체적으로는, 기저 벡터 bi *는,
bi *j=1 n+1χi,j *?aj *…(22)
의 연산에 의해 얻어진다. 예를 들면, 기저 벡터 aj *(j=1,...,n+1)가 식(8)에 의해 표현되는 경우, 기저 벡터 bi *의 각 요소를 각각 열거하여 표현하면, 이하와 같다.
bi *=(χi,1 *2?g2i,2 *2?g2 ,...,χi,n+1 *2?g2)…(23)
순회군 G2의 n+1개의 원소를 요소로 하는 모든 n+1차원 벡터는 n+1차원의 기저 벡터 bi *(i=1,...,n+1)의 선형합에 의해 표시된다. 즉, n+1차원의 기저 벡터 bi *는 상기 서술한 벡터 공간 V*를 펼친다.
또한, 기저 벡터 bi와 기저 벡터 bi *는 0F를 제외한 유한체 Fq의 원소 τ=κ12에 대해서
e(bi, bj *)=gT τ?δ(i,j)…(24)
를 만족한다. 즉, 식(5)(19)(21)(23)의 관계로부터,
[수 7]
Figure pct00007
을 만족한다. 특히, τ=κ12=1F인 경우(예를 들면, κ12=1F인 경우),
e(bi, bj *)=gT δ(i,j)…(25)
를 만족한다. 이 경우, 기저 벡터 bi와 기저 벡터 bi *는 쌍대 페어링 벡터 공간(벡터 공간 V와 벡터 공간 V*)의 쌍대 정규 직교 기저이다.
또한, 식(24)의 관계를 만족하는 것이면, 식(7)(8)에서 예시한 것 이외의 기저 벡터 ai 및 ai *나, 식(20)(22)에서 예시한 것 이외의 기저 벡터 bi 및 bi *를 사용해도 된다.
B : B는 기저 벡터 bi(i=1,...,n+1)를 요소로 하는 n+1행n+1열의 행렬을 나타낸다. B는 B=X?A를 만족한다. 예를 들면, 기저 벡터 bi가 식(21)에 의해 표현되는 경우, 행렬 B는,
[수 8]
Figure pct00008
이 된다.
B* : B*는 기저 벡터 bi *(i=1,...,n+1)를 요소로 하는 n+1행n+1열의 행렬을 나타낸다. B*=X*?A*를 만족한다. 예를 들면, 기저 벡터 bi *(i=1,...,n+1)가 식(23)에 의해 표현되는 경우, 행렬 B*는,
[수 9]
Figure pct00009
가 된다.
w : w는 유한체 Fq의 원소를 요소로 하는 n차원 벡터를 나타낸다.
w=(w1,...,wn)∈Fq n…(28)
wμ : wμ는 n차원 벡터의 μ(μ=1,...,n)번째의 요소를 나타낸다.
v : v는 유한체 Fq의 원소를 요소로 하는 n차원 벡터를 나타낸다.
v=(v1,...,vn)∈Fq n…(29)
vμ : vμ는 n차원 벡터의 μ(μ=1,...,n)번째의 요소를 나타낸다.
Enc : Enc는 공통 키 암호 방식의 암호화 처리를 나타내는 공통 키 암호함수. 공통 키 암호 방식의 구체예는, 카멜리아(Camellia)(등록상표)나 AES 등을 나타낸다.
Enck(M) : Enck(M)은 공통 키 K를 사용하고, 공통 키 암호 함수 Enc에 따라 평문 M을 암호화하여 얻어진 암호문을 나타낸다.
Dec : Dec는 공통 키 암호 방식의 복호 처리를 나타내는 공통 키 복호함수를 나타낸다.
Deck(C) : Deck(C)는 공통 키 K를 사용하고, 공통 키 복호함수 Dec에 따라 암호문 C를 복호하여 얻어진 복호 결과를 나타낸다.
〔내적 술어 암호〕
다음에, 함수 암호의 일종인 내적 술어 암호의 기본적인 구성을 예시한다.
<함수 암호>
함수 암호는 「속성 정보」라고 불리는 정보와 「술어 정보」라고 불리는 정보의 조합이 소정의 논리식의 진리값을 「참」으로 하는 경우에 암호문을 복호할 수 있는 방식이다. 즉, 함수 암호에서는 「속성 정보」와 「술어 정보」의 일방이 암호문에 메워넣어지고, 타방이 키 정보에 메워넣어지며, 암호문 또는 키 정보인 제1 정보에 대응하는 속성 정보와, 키 정보 또는 암호문인 제2 정보에 대응하는 술어 정보가 미리 정해진 함수에 입력된 경우의 당해 함수값이 미리 정해진 값이 되는 경우에, 올바른 복호 결과를 생성한다. 예를 들면, 참고문헌 9 「"Predicate Encryption Supporting Disjunctions, Polynomial Equations, and Inner Products," with Amit Sahai and Brent Waters One of 4 papers from Eurocrypt 2008 invited to the Journal of Cryptology」 등에 개시된 술어 암호는 함수 암호의 일종이다.
<내적 술어 암호>
내적 술어 암호는 속성 정보나 술어 정보로서 서로 차원이 동일한 벡터를 사용하고, 그들의 내적이 0이 되는 경우에 암호문이 복호되는 술어 암호이다. 내적 술어 암호에서는 내적이 0이 되는 것과 논리식이 「참」이 되는 것이 등가이다. 또한, 참고문헌 9에 기재된 술어 암호도 내적 술어 암호의 일종이다.
[논리식과 다항식의 관계]
내적 술어 암호에서는 논리합이나 논리곱으로 이루어지는 논리식을 다항식으로 표현한다.
우선, 「x가 η0이다」라는 명제 1과 「x가 η1이다」라는 명제 2의 논리합 (x=η0)∨(x=η1)을
(x-η0)?(x-η1)…(30)
이라는 다항식으로 표현한다. 그러면, 각 진리값과 식(30)의 함수값의 관계는 이하와 같다.
Figure pct00010
[표 1]로부터 알 수 있는 바와 같이, 논리합 (x=η0)∨(x=η1)이 참인 경우, 식(30)의 함수값은 0이 되고, 논리합 (x=η0)∨(x=η1)이 거짓인 경우, 식(30)의 함수값은 0 이외의 값이 된다. 즉, 논리합 (x=η0)∨(x=η1)이 참인 것과, 식(30)의 함수값이 0이 되는 것은 등가이다. 따라서, 논리합은 식(30)으로 표현할 수 있다.
또, 「x가 η0이다」라는 명제 1과 「x가 η1이다」라는 명제 2의 논리곱 (x=η0)∧(x=η1)을
ι0?(x-η0)+ι1(x-η1)…(31)
이라는 다항식으로 표현한다. 단, ι0 및 ι1은 난수이다(그 밖의 첨자가 붙은 ι도 동일). 그러면, 진리값과 식(31)의 함수값은 이하의 관계가 된다.
Figure pct00011
[표 2]로부터 알 수 있는 바와 같이 , 논리곱 (x=η0)∧(x=η1)이 참인 경우, 식(31)의 함수값은 0이 되고, 논리곱 (x=η0)∧(x=η1)이 거짓인 경우, 식(31)의 함수값은 0 이외의 값이 된다. 즉, 논리곱 (x=η0)∧(x=η1)이 참인 것과, 식(31)의 함수값이 0이 되는 것은 등가이다. 따라서, 논리곱은 식(31)으로 표현할 수 있다.
이상과 같이, 식(30)과 식(31)을 사용함으로써 논리합이나 논리곱으로 이루어지는 논리식을 다항식 f(x)으로 표현할 수 있다. 예를 들면, 논리식 {(x=η0)∨(x=η1)∨(x=η2)}∧(x=η3)∧(x=η4)은, 다항식
f(x)=ι0?{(x-η0)?(x-η1)?(x-η2)}+ι1?(x=-η3)+ι2?(x=-η4)…(32)
으로 표현할 수 있다.
또한, 식(30)에서는, 1개의 부정원 x를 사용하여 논리합을 표현했지만, 복수의 부정원을 사용하여 논리합을 표현하는 것도 가능하다. 예를 들면, 2개의 부정원 x0 및 x1을 사용하고, 「x0이 η0이다」라는 명제 1과 「x1이 η1이다」라는 명제 2의 논리합 (x00)∨(x11)을
(x00)?(x11)…(33)
이라는 다항식으로 표현하는 것도 가능하며, 3개 이상의 부정원을 사용하고, 논리합을 다항식으로 표현하는 것도 가능하다.
또, 식(31)에서는, 1개의 부정원 x를 사용하여 논리곱을 표현했지만, 복수의 부정원을 사용하여 논리곱을 표현하는 것도 가능하다. 예를 들면, 또, 「x0이 η0이다」라는 명제 1과 「x1이 η1이다」라는 명제 2의 논리곱 (x00)∧(x11)을
ι0?(x00)+ι1?(x11)…(34)
라는 다항식으로 표현하는 것도 가능하며, 3개 이상의 부정원을 사용하고, 논리곱을 다항식으로 표현하는 것도 가능하다.
이하에서는, 논리합 및/또는 논리곱을 포함하는 논리식을 H(H≥1)개의 부정원 x0,...,xH-1을 사용하여 표현한 다항식을 f(x0,...,xH-1)로 표현한다. 또, 각 부정원 x0,...,xH-1에 대응하는 명제를 「xh가 ηh이다」로 한다. 단, ηh(h=0,...H-1)는 명제마다 정해지는 상수이다. 이 경우, 당해 논리식을 나타내는 다항식 f(x0,...,xH-1)은 부정원 xh와 상수 ηh의 차를 취하는 다항식에 의해 당해 부정원 xh가 당해 상수 ηh라는 명제를 표현하고, 명제를 각각 표현하는 다항식의 곱에 의해 당해 명제의 논리합을 표현하고, 명제 또는 명제의 논리합을 각각 표현하는 다항식의 선형합에 의해 당해 명제 또는 명제의 논리합의 논리곱을 표현하고, 그것에 의해서 논리식을 표현한 다항식이 된다. 예를 들면, 5개의 부정원 x0,...,x4를 사용하고, 논리식 {(x00)∨(x11)∨(x22)}∧(x3=-η3)∧(x4=-η4)을 다항식으로 표현하면,
f(x0,...,x4)=ι0?{(x00)?(x11)?(x22)}+ι1?(x33)+ι2?(x44)
이 된다.
[다항식과 내적의 관계]
논리식을 나타내는 다항식 f(x0,...,xH-1)은 2개의 n차원 벡터의 내적으로 표현할 수 있다. 즉, 다항식 f(x0,...,xH-1)은 당해 다항식 f(x0,...,xH-1)의 각 항의 부정원 성분을 각 요소로 하는 벡터
v=(v1,...,vn)…(35)
와, 당해 다항식 f(x0,...,xH-1)의 각 항의 계수성분을 각 요소로 하는 벡터
w=(w1,...,wn)…(36)
의 내적
f(x0,...,xH-1)=w?v…(37)
과 동일하다. 예를 들면, 1개의 부정원 x로 표현된 다항식 f(x)=θ0?x01?x+...+θn-1?xn-1는, 2개의 n차원 벡터
v=(v1,...,vn)=(x0 ,...,xn-1)…(38)
w=(w1,...,wn)=(θ0,...,θn-1)…(39)
의 내적
f(x)= w?v…(40)
과 동일하다.
즉, 논리식을 나타내는 다항식 f(x0,...,xH-1)가 0인지 여부와, 다항식 f(x0,...,xH-1)의 각 항의 부정원 성분을 각 요소로 하는 벡터 v와, 다항식 f(x0,...,xH-1)의 각 항의 계수성분을 각 요소로 하는 벡터 w의 내적이 0인지 여부는 등가이다.
f(x0,...,xH-1)=0 ←→ w?v=0…(41)
제1~3 실시형태에서 예시하는 내적 술어 암호에서는, 당해 부정원 성분에 프로토콜마다 또는 당해 프로토콜의 조합마다 정해진 식별자가 대입된 값을 각 요소로 하는 벡터 v=(v0,...,vn-1)을 속성 정보 ATT로 하고, 계수성분을 각 요소로 하는 벡터 w=(w0,...,wn-1)을 술어 정보 PRE로 한다. 즉,
속성 정보 ATT : v=(v1,...,vn)…(42)
술어 정보 PRE : w=(w1,...,wn)…(43)
이다. 그리고, 속성 정보 ATT와 술어 정보 PRE의 일방이 암호문에 메워넣어지고, 타방이 키 정보에 메워넣어진다.
[내적 술어 암호의 기본 구성예 1]
다음에 내적 술어 암호의 구체예를 나타낸다. 기본 구성예 1은 내적 술어 암호에 의해 키 캡슐화 메커니즘 KEM(Key Encapsulation Mechanisms)을 구성하는 예이다. 기본 구성예 1에서는, 술어 정보 PRE에 대응하는 암호문이 생성되고, 속성 정보 ATT에 대응하는 키 정보가 생성된다. 기본 구성예 1은 Setup(1k), GenKey(MSK, w),Enc(PA, v),Dec(SKw, C1,C2)를 포함한다.
《Setup(1k) : 셋업》
-입력 : 세큐리티 파라미터 k
-출력 : 마스터 비밀 정보 MSK, 공개 파라미터 PK
Setup(1k)의 일례에서는, 우선, 세큐리티 파라미터 k를 n으로 하여, n+1차원의 기저 벡터 ai(i=1,...,n+1)을 요소로 하는 n+1행n+1열의 행렬 A와, 기저 벡터 ai *(i=1,...,n+1)을 요소로 하는 n+1행n+1열의 행렬 A*와, 좌표변환을 위한 n+1행n+1열의 행렬 X, X*가 선택된다. 다음에, 식(20)에 따라서 좌표변환된 n+1차원의 기저 벡터 bi(i=1,...,n+1)가 산출되고, 식(22)에 따라서 좌표변환된 n+1차원의 기저 벡터 bi *(i=1,...,n+1)가 산출된다. 그리고, 기저 벡터 bi *(i=1,...,n+1)를 요소로 하는 n+1행n+1열의 행렬 B*가 마스터 비밀 정보 MSK로서 출력되고, 벡터 공간 V, V*, 기저 벡터 bi(i=1,...,n+1)를 요소로 하는 n+1행n+1열의 행렬 B, 세큐리티 파라미터 k, 유한체 Fq, 타원곡선 E, 순회군 G1, G2, GT, 생성원 g1, g2, gT, 쌍선형사상 e 등이 공개 파라미터 PK로서 출력된다.
《GenKey(MSK, w) : 키 정보 생성》
-입력 : 마스터 비밀 정보 MSK, 벡터 w
-출력 : 벡터 w에 대응하는 키 정보 D*
GenKey(MSK, w)의 일례에서는, 우선, 유한체 Fq로부터 원소 α∈Fq가 선택된다. 그리고, 마스터 비밀 정보 MSK인 행렬 B*를 사용하여, 벡터 w에 대응하는 키 정보
D*=α?(Σμ=1 nwμ?bμ *)+bn+1 *∈G2 n+1…(44)
가 생성되고 출력된다. 또한, 순회군 G2 상에서의 이산대수 문제의 구해가 곤란한 경우, 키 정보 D*로부터 wμ?bμ *나 bn+1 *의 성분을 분리 추출하는 것은 곤란하다.
《Enc(PA, v) : 암호화》
-입력 : 공개 파라미터 PK, 벡터 v, 평문 M
-출력 : 암호문 C1, C2, 공통 키 K
Enc(PA, v)의 일례에서는, 우선, 공통 키 K와 유한체 Fq의 원소인 난수 υ1이 생성된다. 그리고, 행렬 B 등의 공개 파라미터 PK와, 공통 키 K를 포함하는 값에 대응하는 유한체 Fq의 원소 υ2와, 벡터 v와, 난수 υ1을 사용하여, 암호문
C21?(Σμ=1 nvμ?bμ)+υ2?bn+1∈G1 n+1…(45)
가 생성된다.
그리고, 암호문
C1=Enck(M)…(46)
이 생성되고, 암호문 C1과 암호문 C2와 공통 키 K가 출력된다. 공통 키 K의 일례는 K=gT τ?υ2∈GT이다. 여기서, 첨자인 υ2는 υ2를 의미한다. 또, 상기 서술한 바와 같이 τ의 일례는 τ=1F이다. 또한, 순회군 G1 상에서의 이산대수 문제의 구해가 곤란한 경우, 암호문 C2로부터 vμ?bμ나 υ2?bn+1의 성분을 분리 추출하는 것은 곤란하다.
《Dec(SKw, C1, C2) : 키 공유?복호》
-입력 : 벡터 w에 대응하는 키 정보 D1 *, 암호문 C1, C2
-출력 : 공통 키 K, 평문 M
Dec(SKw, C1, C2)의 일례에서는, 우선, 암호문 C2와 키 정보 D1 *가 식(2)의 쌍선형사상 e에 입력된다. 그러면, 식(3)(24)의 성질로부터,
[수 10]
Figure pct00012
을 만족한다.
여기서, 내적 w?v=0이면, 식(47)은,
[수 11]
Figure pct00013
로 변형할 수 있다. 이 결과로부터 공통 키 K가 생성되어 출력된다. 공통 키 K의 일례는 K=gT τ?υ2∈GT이다.
다음에, 당해 공통 키 K와 암호문 C1을 사용하고, 복호 결과
M=Deck(C1)…(49)
가 산출되어 출력된다.
[내적 술어 암호의 기본 구성예 2]
기본 구성예 2도 내적 술어 암호를 사용하여 키 캡슐화 메커니즘 KEM을 구성하는 경우의 기본 구성예인데, 기본 구성예 2에서는, 속성 정보 ATT에 대응하는 암호문이 생성되고, 술어 정보 PRE에 대응하는 키 정보가 생성된다. 이 구성은 Setup(1k), GenKey(MSK, v), Enc(PA, w), Dec(SKv, C1, C2)를 포함한다. 기본 구성예 2는, 기본 구성예 1의 벡터 v와 벡터 w를 역으로 한 구성이 된다.
즉, GenKey(MSK, v)에서는, 식(44) 대신에, 키 정보
D*=α?(Σμ=1 nvμ?bμ *)+bn+1 *∈G2 n+1…(50)
가 생성되어 출력된다. 또, Enc(PA, w)에서는, 식(45) 대신에, 암호문
C21?(Σμ=1 nwμ?bμ)+υ2?bn+1∈G1 n+1…(51)
이 생성된다. 또, Dec(SKv, C1, C2)에서는, 식(44)에서 생성된 키 정보 대신에 식(50)에서 생성된 키 정보가 사용된다. 그 밖에는 기본 구성예 1과 마찬가지이다.
〔제1~3 실시형태의 원리〕
다음에, 제1~3 실시형태의 원리를 설명한다.
제1~3 실시형태에서는 함수 암호로서 술어 암호가 사용된다. 제1~3 실시형태의 함수 암호 응용 시스템은 송신자 장치(정보 출력 장치)와 수신자 장치(정보 처리 장치)를 포함하고, 속성 정보 ATT(제1 대응 정보)와 술어 정보 PRE(제2 대응 정보)를 사용하는 술어 암호 방식을 응용한 프로토콜(함수 암호 방식에 따른 프로토콜)을 실행한다.
우선, 송신자 장치의 식별자 특정부에, 실행하는 술어 암호 방식을 응용한 1종류 이상의 프로토콜을 특정하기 위한 특정 정보가 입력된다. 식별자 특정부는 당해 특정 정보에 의해 특정되는 프로토콜마다 또는 당해 프로토콜의 조합마다 정해진 규칙에 따라, 당해 프로토콜마다 또는 당해 프로토콜의 조합마다 식별자를 특정하고, 특정한 1종류 이상의 당해 식별자를 출력한다.
또한, 술어 암호 방식을 응용한 프로토콜에는, 각각, 그것에 사용해야 할 속성 정보 ATT의 종별(바꾸어 말하면 속성 정보 ATT의 성질)이 정해져 있다. 당해 규칙은 특정 정보에 의해 특정되는 프로토콜 또는 당해 프로토콜의 조합에 사용해야 할 종별의 속성 정보 ATT를 정하는 식별자를 특정하는 것이다. 예를 들면, 당해 프로토콜이 Timed-Release 암호 프로토콜인 경우의 당해 규칙은 제1 정보의 생성 시점보다 미래의 시점을 특정하는 정보를 식별자로 하는 규칙이며, 당해 프로토콜이 Forward Secure 암호 프로토콜 또는 Key Insulated 암호 프로토콜인 경우의 당해 규칙은, 각각, 제1 정보의 생성 시점을 포함하는 시간 구간 또는 제1 정보의 생성 시점보다 미래의 시간 구간을 특정하는 정보를 식별자로 하는 규칙이며, 당해 프로토콜이 CCA2 안전 암호 프로토콜인 경우의 당해 규칙은, 제1 정보의 생성마다 새롭게 설정되는 일회용 정보를 특정하는 정보를 식별자로 하는 규칙이며, 당해 프로토콜이 Keyword 검색 암호 프로토콜인 경우의 규칙은, 데이터베이스의 검색용 키워드를 특정하는 정보를 식별자로 하는 규칙이다.
식별자 특정부에서 특정된 1종류 이상의 식별자는, 송신자 장치의 속성 정보 설정부에 입력된다. 속성 정보 설정부는 1종류의 당해 식별자 또는 2종류 이상의 당해 식별자의 조합에 대하여 정해지는 1개의 속성 정보 ATT(특정의 제1 대응 정보)를 설정하고, 설정한 당해 속성 정보 ATT를 출력한다. 그리고, 송신자 장치의 출력부는 속성 정보 설정부로부터 출력된 속성 정보 ATT가 술어 암호 방식의 암호화 함수 또는 키 생성 함수에 입력됨으로써 얻어진, 당해 속성 정보 ATT에 대응하는 술어 암호 방식의 암호문 또는 키 정보인 제1 정보를 출력한다.
수신자 장치의 복호부에는, 제1 정보와 기억부로부터 읽어낸 제2 정보가 입력된다. 또한, 제2 정보는 술어 암호 방식의 키 정보 또는 암호문이며, 제1 정보가 속성 정보 ATT에 대응하는 암호문인 경우에는 제2 정보는 술어 정보 PRE(특정의 제2 대응 정보)에 대응하는 키 정보이며, 제1 정보가 속성 정보 ATT에 대응하는 키 정보인 경우에는 제2 정보는 술어 정보 PRE(특정의 제2 대응 정보)에 대응하는 암호문이다. 또, 술어 정보 PRE는 당해 술어 정보 PRE와 어느 하나의 속성 정보 ATT가 미리 정해진 함수에 입력된 경우에, 1종류 이상의 속성 정보 ATT에 대해서 당해 함수의 함수값이 미리 정해진 값이 되는 정보이다. 또, 상기 서술한 바와 같이, 속성 정보 ATT 및 술어 정보 PRE의 예는, 서로 차원이 동일한 벡터이며, 당해 미리 정해진 함수의 예는 속성 정보 ATT와 술어 정보 PRE의 내적을 산출하는 함수이며, 미리 정해진 값의 예는 0(영원)이다.
수신자 장치의 복호부는 당해 제1 정보와 당해 제2 정보를 술어 암호 방식의 복호함수에 입력하여 복호 처리를 실행하고, 그것에 의해 얻어진 복호 결과를 출력한다. 또한, 술어 암호 방식의 복호함수는, 제1 정보에 대응하는 속성 정보 ATT와 제2 정보에 대응하는 술어 정보 PRE가 미리 정해진 함수에 입력된 경우의 함수값이 미리 정해진 값이 되는 경우에, 올바른 복호 결과를 생성하는 함수이다. 바꾸어 말하면, 제1 정보에 대응하는 속성 정보 ATT 및 제2 정보에 대응하는 술어 정보 PRE의 조합에 대응하는 논리식의 진리값이 참인 경우에 올바른 복호 결과를 생성하는 함수이다.
상기 서술한 바와 같이, 술어 암호 방식에서는, 제1 정보에 대응하는 속성 정보 ATT와 제2 정보에 대응하는 술어 정보 PRE가 미리 정해진 함수에 입력된 경우의 함수값이 미리 정해진 값이 되는 경우에, 올바른 복호 결과가 생성된다. 또, 속성 정보 ATT는 1종류의 식별자 또는 2종류 이상의 당해 식별자의 조합에 대하여 정해지는 정보이며, 술어 정보 PRE와 어느 하나의 속성 정보 ATT가 미리 정해진 함수에 입력된 경우에, 1종류 이상의 속성 정보 ATT에 대해서 당해 함수의 함수값이 미리 정해진 값이 된다. 즉, 제1~3 실시형태에서는, 1종류 이상의 제1 정보에 대하여 동일한 제2 정보를 공용하고, 올바른 복호를 행할 수 있다. 그 때문에, 송신자 장치가 1종류의 식별자 또는 2종류 이상의 당해 식별자의 조합을 선택하고, 선택한 식별자에 따라서 프로토콜을 전환하여 제1 정보를 생성하는 경우라도, 수신자 장치는 전환된 프로토콜마다 별개로 제2 정보를 생성할 필요는 없다. 즉, 수신자 장치의 기억부에 1종류의 술어 정보 PRE에 대응하는 1종류의 제2 정보만이 격납되어 있었다고 해도, 수신자 장치는 선택된 1종류 이상의 프로토콜 또는 프로토콜의 조합에 대한 제1 정보에 대응할 수 있다. 그 결과, 제1~3 실시형태에서는, 번잡한 처리를 필요로 하지 않고, 선택한 식별자에 따라서 프로토콜을 전환할 수 있다. 이러한 효과는 모든 술어 정보 PRE가, 당해 술어 정보 PRE와 어느 하나의 속성 정보 ATT가 미리 정해진 함수에 입력된 경우에, 2종류 이상의 속성 정보 ATT에 대해서 당해 함수의 함수값이 미리 정해진 값이 되는 경우에 특히 커진다. 또한, 상기 서술한 논리식이 논리합을 포함하는 경우, 술어 정보 PRE와 어느 하나의 속성 정보 ATT가 미리 정해진 함수에 입력된 경우에, 2종류 이상의 속성 정보 ATT에 대해서 당해 함수의 함수값이 미리 정해진 값 「0」(영원)이 된다.
또, 식별자 특정부에 2종류 이상의 프로토콜을 특정하기 위한 특정 정보가 입력된 경우, 2종류 이상의 프로토콜의 조합, 즉, 2종류 이상의 프로토콜의 특징을 겸비한 새로운 프로토콜을 구성할 수도 있다.
또, 제1~3 실시형태에서는, 술어 암호 방식을 사용하기 때문에, 프로토콜의 조합법의 자유도가 높다. 즉, 제1~3 실시형태에서는, 제1 정보에 대응하는 속성 정보 ATT와 제2 정보에 대응하는 술어 정보 PRE가 미리 정해진 함수에 입력된 경우의 함수값이 미리 정해진 값이 되는 경우에 올바른 복호 결과가 생성된다. 2종류 이상의 프로토콜의 조합은 식별자의 조합에 대응하고, 당해 식별자의 조합은 속성 정보 ATT에 대응하는데, 당해 함수값이 미리 정해진 값이 되는 것이라면, 당해 식별자의 조합 방법에 제한은 없다.
이것에 대하여, ID 베이스 암호 방식을 응용한 계층형 ID 베이스 암호 방식(예를 들면, 참고문헌 10 「C. Gentry, A. Silverberg, "Hierarchical ID-based cryptography," Proceedings of ASIACRYPT 2002, Lecture Notes in Computer Science, Springer-Verlag, 2002.」 등)을 사용한 경우에는, 프로토콜의 조합법이 제한된다. 즉, 계층형 ID 베이스 암호 방식에서는, 복수의 프로토콜에 각각 대응하는 복수의 식별자의 조합법이 제한된다. 즉, 계층형 ID 베이스 암호 방식에서는, 복수의 식별자의 조합에 의해 생성된 새로운 식별자가 나무구조를 이룰 필요가 있어, 새로운 식별자는 반드시 그 부모 식별자를 포함해야 한다. 예를 들면, 식별자 ID1과 식별자 ID2의 조합 ID1|ID2를 새로운 식별자로 한 경우, 그 이후, 예를 들면, 식별자 ID1과 식별자 ID2와 식별자 ID3의 조합을 새로운 식별자 ID1|ID2|ID3로 할 수는 있지만, 식별자 ID1과 식별자 ID3의 조합을 새로운 식별자 ID1|ID3로 할 수는 없다.
또, 송신자 장치가 특정 정보에 의해 특정되는 프로토콜에 따라, 속성 정보 ATT를 술어 암호 방식의 암호화 함수에 입력시킬지, 속성 정보 ATT를 술어 암호 방식의 키 생성 함수에 입력시킬지를 전환하는 제1 전환부를 추가로 가지고, 수신자 장치가 특정 정보에 의해 특정되는 프로토콜에 따라, 술어 정보 PRE를 술어 암호 방식의 키 생성 함수에 입력시킬지, 술어 정보 PRE를 술어 암호 방식의 암호화 함수에 입력시킬지를 전환하는 제2 전환부를 추가로 가져도 된다. 이것에 의해, 프로토콜의 선택의 폭이 넓어진다.
또, 속성 정보 ATT 및 술어 정보 PRE의 일부의 영역을, 용도가 결정되어 있지 않은 예비 영역으로서 두어도 된다. 예를 들면, 속성 정보 ATT 및 술어 정보 PRE가 서로 차원이 동일한 벡터이며, 속성 정보 ATT와 술어 정보 PRE의 내적이 0일 때에 올바른 복호가 가능한 시스템의 경우에는, 적어도 일부의 속성 정보 ATT에 있어서의 일부의 요소(예비 영역)의 값이 미리 고정된 벡터이며, 술어 정보 PRE의 일부의 요소(예비 영역)의 값이 미리 고정된 벡터이며, 당해 속성 정보 ATT의 예비 영역의 위치와 당해 술어 정보 PRE의 예비 영역의 위치가 서로 동일하고, 당해 속성 정보 ATT의 예비 영역의 요소로 이루어지는 벡터와 당해 술어 정보 PRE의 예비 영역의 요소로 이루어지는 벡터의 내적이 특정 정보의 값에 관계없이 0이 되도록 설정해 두어도 된다. 이것에 의해, 나중에 선택 가능한 프로토콜을 증가시키거나, 논리식을 나타내는 다항식의 항을 증가시키거나 할 필요가 생긴 경우에도, 예비 영역에 그들의 증가분을 할당하면 시스템의 설정을 변경하지 않고, 이들의 증가를 행할 수 있다.
또, 속성 정보 ATT의 예비 영역의 값을 모두 0(영원)으로서 둔 경우, 당해 예비 영역을 포함하는 속성 정보 ATT에 대응하는 제1 정보는 당해 예비 영역에 어떠한 값이 들어간 갱신후의 제1 정보에 대하여 상위 호환성을 가진다. 즉, 속성 정보 ATT나 술어 정보 PRE의 예비 영역에 어떠한 값이 주어짐으로써 속성 정보 ATT나 술어 정보 PRE가 갱신되었다고 해도, 갱신전에 올바른 복호가 행해진 것이라면, 갱신전의 속성 정보 ATT에 대응하는 제1 정보와 갱신후의 술어 정보 PRE에 대응하는 제2 정보에 의해 올바른 복호가 행해진다. 갱신후의 술어 정보 PRE의 예비 영역에 들어간 값에 관계없이, 속성 정보 ATT 및 술어 정보 PRE의 예비 영역끼리의 내적은 0이 되기 때문이다. 마찬가지의 이유에 의해, 술어 정보 PRE의 예비 영역의 값을 모두 0으로서 둔 경우, 당해 예비 영역을 포함하는 술어 정보 PRE에 대응하는 제2 정보는 당해 예비 영역에 어떠한 값이 들어간 갱신후의 제2 정보에 대하여 상위 호환성을 가진다.
속성 정보 ATT의 예비 영역의 값을 모두 0(영원)으로서 두고, 또한, 술어 정보 PRE의 예비 영역의 적어도 일부의 값을 0 이외로서 둔 경우, 당해 예비 영역을 포함하는 속성 정보 ATT에 대응하는 제1 정보는 당해 예비 영역에 어떠한 값이 들어간 갱신후의 제1 정보에 대하여 상위 호환성을 가지지만, 당해 예비 영역을 포함하는 술어 정보 PRE에 대응하는 제2 정보는 당해 예비 영역에 어떠한 값이 들어간 갱신후의 제2 정보에 대하여 상위 호환성을 가지지 않는다. 반대로, 술어 정보 PRE의 예비 영역의 값을 모두 0으로서 두고, 또한, 속성 정보 ATT의 예비 영역의 적어도 일부의 값을 0 이외로서 둔 경우, 당해 예비 영역을 포함하는 술어 정보 PRE에 대응하는 제2 정보는 당해 예비 영역에 어떠한 값이 들어간 갱신후의 제2 정보에 대하여 상위 호환성을 가지지만, 당해 예비 영역을 포함하는 속성 정보 ATT에 대응하는 제1 정보는 당해 예비 영역에 어떠한 값이 들어간 갱신후의 제1 정보에 대하여 상위 호환성을 가지지 않는다. 이와 같이, 예비 영역의 값을 어떻게 설정해 두는지에 따라, 갱신 전후에서의 상위 호환성을 변화시킬 수 있다.
또, 속성 정보 ATT나 술어 정보 PRE의 일부의 요소를 예비 영역으로 하는 것이 아니라, 특정 정보의 값에 관계없이 미리 참이 되도록 설정된 명제의 논리곱을 일부에 포함하는 논리식에 대응하는 속성 정보 ATT 및 술어 정보 PRE를 설정해도 된다. 그리고, 당해 특정 정보의 값에 관계없이 미리 참이 되도록 설정된 명제를, 나중에 특정 정보의 값에 따라 참 또는 거짓이 되는 명제로 치환함으로써 논리식을 갱신하고, 이 갱신후의 논리식에 대응하는 속성 정보 ATT 및 술어 정보 PRE를 새로운 속성 정보 ATT 및 술어 정보 PRE로 해도 된다.
〔제1 실시형태〕
다음에, 본 발명의 제1 실시형태를 설명한다. 제1 실시형태는 제1 정보가 속성 정보 ATT에 대응하는 암호문이며, 제2 정보가 술어 정보 PRE에 대응하는 키 정보이며, 송신자 장치가 암호화를 행하고, 수신자 장치가 복호를 행하는 형태이다. 이러한 형태는, 예를 들면, 술어 암호 방식을 응용한 프로토콜이 Timed-Release 암호 프로토콜, Forward Secure 암호 프로토콜, Key Insulated 암호 프로토콜 혹은 CCA2 안전 암호 프로토콜, 또는, 그 조합인 경우 등에 적용할 수 있다.
<구성>
도 1은 제1 실시형태의 함수 암호 응용 시스템(1)의 전체 구성을 설명하기 위한 블록도이다. 도 1에 나타내는 바와 같이, 본 형태의 함수 암호 응용 시스템(1)은 네트워크(140)에 접속된 송신자 장치(110)(정보 출력 장치)와 수신자 장치(120)(정보 처리 장치)와 키 생성 장치(130)를 가진다. 또한, 설명의 편의상, 도 1에는 송신자 장치(110)와 수신자 장치(120)와 키 생성 장치(130)가 1개씩 표기되어 있지만, 2개 이상의 송신자 장치(110)나 수신자 장치(120)나 키 생성 장치(130)가 존재해도 된다.
[송신자 장치(110)(정보 출력 장치)]
도 2는 도 1의 송신자 장치(110)의 구성을 설명하기 위한 블록도이다.
도 2에 나타내는 바와 같이, 본 형태의 송신자 장치(110)는 일시 메모리(111a)와, 기억부(111b, 111c)와, 입력부(112)와, 제어부(113)와, 식별자 특정부(114a)와, 속성 정보 설정부(114b)(대응 정보 설정부)와, 암호화부(114c)와, 통신부(115)를 가진다.
송신자 장치(110)는 예를 들면, CPU(central processing unit), RAM(random-access memory), ROM(read-only memory) 등을 구비하는 공지 또는 전용의 컴퓨터에 특별한 프로그램이 읽어들여져 실행됨으로써 구성되는 특별한 장치이다. 즉, 제어부(113), 식별자 특정부(114a), 속성 정보 설정부(114b) 및 암호화부(114c)는 예를 들면, CPU가 소정의 프로그램을 실행함으로써 구성되는 처리부이다. 또, 송신자 장치(110)의 처리부의 적어도 일부가 집적 회로여도 된다. 또, 일시 메모리(111a)나 기억부(111b, 111c)는 예를 들면, RAM, 레지스터, 캐시 메모리, 집적 회로 내의 소자 혹은 하드디스크 등의 보조 기억 장치, 또는, 이들의 적어도 일부의 결합으로 이루어지는 기억 영역이다. 또, 입력부(112)는, 예를 들면, 키보드, 마우스, 입력 포트 등이며, 통신부(115)는, 예를 들면, 모뎀, LAN 카드 등의 통신 장치이다.
또, 송신자 장치(110)는 제어부(113)의 제어하에서 각 처리를 실행한다. 또, 이하에서는 설명을 생략하는데, 송신자 장치(110)의 각 처리부로부터 출력된 데이터나 통신부(115)에서 수신된 데이터는 차례대로 일시 메모리(111a)에 격납된다. 일시 메모리(111a)에 격납된 데이터는 필요에 따라서 읽어내어져, 송신자 장치(110)의 각 처리부에 입력되어 그 처리에 이용된다.
[수신자 장치(120)(정보 처리 장치)]
도 3은 도 1의 수신자 장치(120)의 구성을 설명하기 위한 블록도이다.
도 3에 나타내는 바와 같이, 본 형태의 수신자 장치(120)는 일시 메모리(121a)와, 기억부(121b)와, 제어부(123)와, 식별자 특정부(124a)와, 다항식 생성부(124b)와, 술어 정보 생성부(124c)와, 키 생성 처리부(124d)와, 복호부(124e)와, 통신부(125)를 가진다. 또한, 도면 표기의 편의상, 도 3에는 통신부(125)를 나타내는 블록이 2개 표기되어 있지만, 이것은 별개의 통신부(125)가 2개 필요한 것을 의미하지 않는다.
수신자 장치(120)는, 예를 들면, CPU, RAM, ROM 등을 구비하는 공지 또는 전용의 컴퓨터에 특별한 프로그램이 읽어들여져 실행됨으로써 구성되는 특별한 장치이다. 즉, 제어부(123), 식별자 특정부(124a), 다항식 생성부(124b), 술어 정보 생성부(124c), 키 생성 처리부(124d) 및 복호부(124e)는, 예를 들면, CPU가 소정의 프로그램을 실행함으로써 구성되는 처리부이다. 또, 수신자 장치(120)의 처리부의 적어도 일부가 집적 회로여도 된다. 또, 일시 메모리(121a)나 기억부(121b)는, 예를 들면, RAM, 레지스터, 캐시 메모리, 집적 회로 내의 소자 혹은 하드디스크 등의 보조 기억 장치, 또는, 이들의 적어도 일부의 결합으로 이루어지는 기억 영역이다. 또, 통신부(125)는, 예를 들면, 모뎀, LAN 카드 등의 통신 장치이다.
또, 수신자 장치(120)는 제어부(123)의 제어하에서 각 처리를 실행한다. 또, 이하에서는 설명을 생략하는데, 수신자 장치(120)의 각 처리부로부터 출력된 데이터나 통신부(125)에서 수신된 데이터는 차례대로 일시 메모리(121a)에 격납된다. 일시 메모리(121a)에 격납된 데이터는 필요에 따라서 읽어내어져, 수신자 장치(120)의 각 처리부에 입력되어 그 처리에 이용된다.
[키 생성 장치(130)]
도 4는 도 1의 키 생성 장치(130)의 구성을 설명하기 위한 블록도이다.
도 4에 나타내는 바와 같이, 본 형태의 키 생성 장치(130)는 일시 메모리(131a)와, 기억부(131b)와, 제어부(133)와, 키 생성부(134)와, 통신부(135)를 가진다.
키 생성 장치(130)는, 예를 들면, CPU, RAM, ROM 등을 구비하는 공지 또는 전용의 컴퓨터에 특별한 프로그램이 읽어들여져 실행됨으로써 구성되는 특별한 장치이다. 즉, 제어부(133) 및 키 생성부(134)는, 예를 들면, CPU가 소정의 프로그램을 실행함으로써 구성되는 처리부이다. 또, 키 생성 장치(130)의 처리부의 적어도 일부가 집적 회로여도 된다. 또, 일시 메모리(131a)나 기억부(131b)는, 예를 들면, RAM, 레지스터, 캐시 메모리, 집적 회로 내의 소자 혹은 하드디스크 등의 보조 기억 장치, 또는, 이들의 적어도 일부의 결합으로 이루어지는 기억 영역이다. 또, 통신부(135)는, 예를 들면, 모뎀, LAN 카드 등의 통신 장치이다.
또, 키 생성 장치(130)는 제어부(133)의 제어하에서 각 처리를 실행한다. 또, 이하에서는 설명을 생략하는데, 키 생성 장치(130)의 각 처리부로부터 출력된 데이터나 통신부(135)에서 수신된 데이터는 차례대로 일시 메모리(131a)에 격납된다. 일시 메모리(131a)에 격납된 데이터는 필요에 따라서 읽어내어져, 키 생성 장치(130)의 각 처리부에 입력되어 그 처리에 이용된다.
<사전 설정>
다음에, 본 형태의 함수 암호 응용 시스템(1)의 사전 설정을 설명한다.
[특정 정보]
도 5A 및 도 5B는 제1 실시형태에 있어서의 1종류 이상의 프로토콜을 특정하기 위한 특정 정보 PI와 프로토콜의 대응 관계를 예시한 도면이다.
도 5A의 예에서는, 프로토콜마다 특정 정보 PI가 할당되어 있다. 즉, 이 예에서는, 특정 정보 PI=0에 대하여 Timed-Release 암호 프로토콜이 할당되고, 특정 정보 PI=1에 대하여 Forward Secure 암호 프로토콜이 할당되고, 특정 정보 PI=2에 대하여 Key Insulated 암호 프로토콜이 할당되고, 특정 정보 PI=3에 대하여 CCA2 안전 암호 프로토콜이 할당되어 있다. 이 예에서 어느 하나의 프로토콜을 단체(單體)로 선택하는 경우에는, 선택하는 프로토콜에 대응하는 1개의 특정 정보 PI를 특정하고, 2종류 이상의 프로토콜의 조합을 선택하는 경우에는, 선택하는 2종류 이상의 프로토콜에 각각 대응하는 특정 정보 PI의 조합을 특정한다.
한편, 도 5B의 예에서는, 프로토콜마다 특정 정보 PI가 할당되어 있는 것 이외에, 2종류 이상의 프로토콜의 조합에 대해서도 특정 정보 PI가 할당되어 있다. 이 예에서 어느 하나의 프로토콜을 단체로 선택하는 경우에는, 선택하는 프로토콜에 대응하는 1개의 특정 정보 PI를 특정하고, 2종류 이상의 프로토콜의 조합을 선택하는 경우에는, 선택하는 2종류 이상의 프로토콜의 조합에 대응하는 특정 정보 PI를 특정한다.
또한, 도 5A 및 도 5B에 나타낸 특정 정보 PI는 일례이며, 그 밖의 방법에 의해 1종류 이상의 프로토콜에 대응하는 특정 정보 PI가 특정되어도 된다.
[식별자]
도 6A, 도 6B 및 도 7은 제1 실시형태에 있어서, 프로토콜마다 또는 당해 프로토콜의 조합마다 정해진 식별자 ID(h)를 특정하기 위한 규칙의 일례를 설명하기 위한 도면이다.
도 6A의 예에서는, 선택 가능한 프로토콜마다 식별자 ID(h)가 할당된다.
선택된 프로토콜에 할당된 식별자 ID(h)에는, 그 프로토콜에 정해진 규칙에 따른 값이 입력된다. 예를 들면, Timed-Release 암호 프로토콜이 선택된 경우에는, 미래의 시점을 특정하는 정보(일시나 카운트값 등)가 식별자 ID(0)에 입력된다. 또한, 「미래의 시점」의 일례는, 제1 정보의 생성 시점보다 미래의 시점이다. 또, 예를 들면, Forward Secure 암호 프로토콜이나 Key Insulated 암호 프로토콜이 선택된 경우에는, 수신자 장치(120)나 그 이용자의 고유 식별자(메일 어드레스나 전화번호나 MAC 어드레스 등)와 현재 시점을 포함하는 시간 구간(일시 구간이나 카운트값 구간 등)의 조합으로 정해지는 값(비트 결합값 등)이 식별자 ID(1)나 식별자 ID(2)에 입력된다. 또한, 「현재 시점」의 일례는, 제1 정보의 생성 시점이다. 또, 예를 들면, CCA2 안전 암호 프로토콜이 선택된 경우에는, 일회용 정보(랜덤수)가 식별자 ID(3)에 입력된다.
한편, 선택되지 않은 프로토콜에 할당된 식별자 ID(h)에는, 상수(const.)가 입력된다. 예를 들면, Timed-Release 암호 프로토콜만이 선택된 경우에는, 미래의 시점을 특정하는 정보가 식별자 ID(0)에 입력되고, 그 밖의 식별자 ID(1), ID(2), ID(3)에는 상수(const.)가 입력된다. 또한, 상수(const.)의 예는 0이나 1이다. 또한, 각 식별자 ID(h)에 입력되는 상수(const.)는 동일값이어도 되고, 상이한 값이어도 된다.
또, 복수의 프로토콜의 조합이 선택된 경우에는, 그 조합을 구성하는 복수의 프로토콜이 선택된 것으로 하여 식별자 ID(h)의 값이 결정된다. 예를 들면, Forward Secure 암호 프로토콜과 CCA2 안전 암호 프로토콜의 조합이 선택된 경우에는, 수신자 장치(120)나 그 이용자의 고유 식별자와 현재 시점을 포함하는 시간 구간의 조합으로 정해지는 값이 식별자 ID(1)에 입력되고, 일회용 정보가 식별자 ID(3)에 입력되고, 그 밖의 식별자 ID(0), ID(2)에는 상수(const.)가 입력된다.
도 6B의 예에서는, 선택된 프로토콜에만 식별자 ID(h)가 할당된다. 예를 들면, Timed-Release 암호 프로토콜만이 선택된 경우에는, 미래의 시점을 특정하는 정보를 나타내는 식별자 ID(0)만이 할당된다. 또, 예를 들면, Forward Secure 암호 프로토콜과 CCA2 안전 암호 프로토콜의 조합이 선택된 경우에는, 수신자 장치(120)나 그 이용자의 고유 식별자와 현재 시점을 포함하는 시간 구간의 조합으로 정해지는 값을 나타내는 식별자 ID(1)와, 일회용 정보를 나타내는 식별자 ID(3)만이 할당된다.
도 7의 예에서는, 선택 가능한 프로토콜 및 프로토콜의 조합마다 식별자 ID(h)가 할당된다. 선택된 프로토콜 및 프로토콜의 조합에 할당된 식별자 ID(h)에는, 선택된 프로토콜 또는 조합을 구성하는 각 프로토콜에 정해진 각 규칙에 따른 값이 입력되고, 선택되지 않은 프로토콜이나 조합에 할당된 식별자 ID(h)에는 상수(const.)가 입력된다. 예를 들면, Forward Secure 암호 프로토콜과 CCA2 안전 암호 프로토콜의 조합이 선택된 경우에는, 수신자 장치(120)나 그 이용자의 고유 식별자와 현재 시점을 포함하는 시간 구간과 일회용 정보의 조합으로 정해지는 값이 식별자 ID(5)에 입력되고, 그 밖의 식별자 ID(h)에는 상수(const.)가 입력된다.
또, 상기 서술한 식별자의 결정 방법은 일례에 지나지 않고, 그 밖의 방법으로 식별자가 특정해도 된다. 예를 들면, 도 7의 예의 변형으로서, 선택된 프로토콜 및 프로토콜의 조합에만 식별자 ID(h)가 할당되어 있어도 된다. 또, 상기 서술한 바와 같이 얻어진 각 식별자 ID(h)의 조합(예를 들면 비트 결합)에 의해 1개의 식별자를 구성해도 된다.
[속성 정보(제1 대응 정보)]
도 8A 및 도 9A는 1종류의 식별자 ID(h) 또는 2종류 이상의 식별자 ID(h)의 조합에 대하여 1개의 속성 정보 ATT를 특정하기 위한 속성 정보 테이블의 일례를 설명하기 위한 도면이며, 도 8B 및 도 9B는 당해 속성 정보 테이블에 의해 정해지는 속성 정보 ATT의 데이터 구성을 설명하기 위한 도면이다.
본 형태에서는, 상기 서술한 논리식을 나타내는 다항식 f(x0,...,xH-1)의 각 항의 부정원 성분에 식별자 ID(h)가 대입된 값을 각 요소로 하는 벡터 v=(v0,...,vn-1)를 속성 정보 ATT로 한다(식(42) 등 참조). 또, 속성 정보 ATT의 차원 n은 다항식 f(x0,...,xH-1)에 허용되는 항수(상수항을 포함함)의 최대값이 된다. 도 8A 및 도 9A에서는, 각 항의 부정원 성분과, 각 부정원 성분에 대응하는 요소값과, 각 요소에 대응하는 요소 번호를 대응짓고 있다. 또, 도 8B 및 도 9B에 기재된 각 번호는 각각 도 8A 및 도 9A의 요소 번호를 나타내고, 도 8B 및 도 9B에 기재된 각 번호의 위치에는 도 8A 및 도 9A의 요소 번호에 대응하는 요소값이 배치된다.
도 8A는 부정원의 종류를 4종류(H=4)로 하고, 다항식 f(x0,x1,x2,x3)에 부정원의 멱승을 포함하는 항이 허용되지 않는 경우의 속성 정보 테이블의 일례이다. 다항식 f(x0,x1,x2,x3)에 부정원의 멱승을 포함하는 항이 허용되지 않는 경우, 다항식 f(x0,x1,x2,x3)의 항수(상수항을 포함함)의 최대값은 16이 되고, 취할 수 있는 부정원 성분은 x0?x1?x2?x3,x0?x1?x2,x0?x1?x3,x0?x2?x3,...,{x0}0?{x1}0?{x2}0?{x3}0의 16종류가 된다. 도 8A의 예에서는, 이들 16종류의 부정원 성분에 각 식별자 ID(0) ,...,ID(3)를 대입한 값을 각 요소로 하는 벡터 v=(v0,...,vn-1)를 속성 정보 ATT로 한다. 또한, 도 6B와 같이, 선택된 프로토콜이나 프로토콜의 조합에만 식별자 ID(h)가 할당되어 있는 경우, 할당되어 있지 않은 식별자 ID(h)를 상수(예를 들면 0이나 1)로 하여 부정원 성분에 각 식별자를 대입하면 된다. 도 8A 및 도 8B의 예에서는, 부정원 xh에 식별자 ID(h)가 대입되고, ID(0)?ID(1)?ID(2)?ID(3),ID(0)?ID(1)?ID(2),ID(0)?ID(1)?ID(3),ID(0)?ID(2)?ID(3),...,{ID(0)}0?{ID(1)}0?{ID(2)}0?{ID(3)}0을 각 요소로 하는 16차원의 벡터 v=(v0,...,vn-1)가 속성 정보 ATT가 된다.
도 9A는 부정원의 종류를 4종류(H=4)로 하고, 다항식 f(x0,x1,x2,x3)에 부정원의 2승을 포함하는 항이 허용되지만 부정원의 3승 이상의 멱승을 포함하는 항이 허용되지 않는 경우의 속성 정보 테이블의 일례이다. 도 9A 및 도 9B의 예에서는, 이 경우의 각 부정원 성분에 각 식별자 ID(0) ,...,ID(3)를 대입한 값을 각 요소로 하는 벡터 v=(v0,...,vn-1)를 속성 정보 ATT로 한다. 도 9의 예에서도, 부정원 xh에 식별자 ID(h)가 대입된다. 또, 도 6B와 같이, 선택된 프로토콜이나 프로토콜의 조합에만 식별자 ID(h)가 할당되어 있는 경우, 할당되어 있지 않은 식별자 ID(h)를 상수(예를 들면 0이나 1)로 하여 부정원 성분에 각 식별자를 대입하면 된다.
또한, 도 8이나 도 9의 속성 정보 ATT의 생성 방법은 일례에 지나지 않고, 부정원의 종류가 4 이외여도 되고, 다항식 f(x0,...,xH-1)에 부정원의 3승 이상의 멱승을 포함하는 항이 허용되어도 된다. 또, 특정의 부정원의 2승을 포함하는 항은 허용되지만 그 밖의 부정원의 2승을 포함하는 항은 허용되지 않는 등, 속성 정보 ATT가 다항식 f(x0,...,xH-1)에 허용되지 않는 부정원 성분에 대응하는 요소를 포함하지 않는 구성이어도 된다. 혹은 식별자 ID(h)나 식별자 ID(h)의 논리식 ({ID(0)∨ID(1)}∧ID(3) 등)의 각각과 당해 논리식에 대응하는 속성 정보 ATT가 대응지어진 테이블을 속성 정보 테이블로 해도 된다.
[술어 정보(제2 대응 정보)]
도 10A 및 도 11A는 각각 다항식 f(x0,...,xH-1)에 대응하는 술어 정보 PRE의 일례를 설명하기 위한 도면이며, 도 10B 및 도 11B는 당해 술어 정보 PRE의 데이터 구성을 설명하기 위한 도면이다.
본 형태에서는 상기 서술한 논리식을 나타내는 다항식 f(x0,...,xH-1)의 각 항의 계수성분을 각 요소로 하는 벡터 w=(w0,...,wn-1)를 술어 정보 PRE로 한다(식(43) 등 참조). 또, 술어 정보 PRE의 차원 n은 다항식 f(x0,...,xH-1)에 허용되는 항수(상수항을 포함함)의 최대값이 된다. 도 10A 및 도 11A에서는, 각 항의 부정원 성분과, 각 부정원 성분에 대응하는 각 항의 계수성분인 요소값과, 각 요소에 대응하는 요소 번호를 대응짓고 있다. 또, 도 10B 및 도 11B에 기재된 각 번호는 각각 도 10A 및 도 11A에서의 요소 번호를 나타내고, 도 10B 및 도 11B에 기재된 각 번호의 위치에는 도 10A 및 도 11A의 요소 번호에 대응하는 요소값이 배치된다.
도 10A의 예는 부정원의 종류를 4종류(H=4)로 하고, 부정원의 멱승을 포함하는 항이 허용되지 않는 조건화로 설정된 다항식
f(x0,x1,x2,x3)=ι0?(x1-ID'(1))?(x2-ID'(2))+ι1?(x3-ID'(3))
       =ι0?x1?x20?ID'(2)?x10?ID'(1)?x21?x3…(52)
       +(ι0?ID'(1)?ID'(2)-ι1?ID'(3))
에 대응한다. 또한, ID'(1), ID'(2) 및 ID'(3)은 각각 상기 서술한 바와 같이 각 프로토콜에 대응하는 규칙으로 정해진 식별자이며, 이 예의 다항식 f(x0,x1,x2,x3)은 논리식 {(x1=ID'(1))∨(x2=ID'(2))}∧(x3=ID'(3))에 대응한다. 예를 들면, ID'(1), ID'(2) 및 ID'(3)가 각각 Forward Secure 암호 프로토콜, Key Insulated 암호 프로토콜 및 CCA2 안전 암호 프로토콜에 대응하는 규칙으로 정해진 식별자라고 하면, 식(52)의 다항식 f(x0,x1,x2,x3)은 Forward Secure 암호 프로토콜 또는 Key Insulated 암호 프로토콜과, CCA2 안전 암호 프로토콜의 조합에 대하여 참이 되는 논리식에 대응한다. 이 예의 경우, 요소 번호 8의 요소를 ι0로 하고, 요소 번호 12의 요소를 -ι0?ID'(2)로 하고, 요소 번호 13의 요소를 -ι0?ID'(1)로 하고, 요소 번호 14의 요소를 ι로 하고, 요소 번호 15의 요소를 ι0?ID'(1)?ID'(2)-ι1?ID'(3)으로 하고, 그 밖의 요소를 0로 한 16차원의 벡터 w가 술어 정보 PRE가 된다. 이 예의 술어 정보 PRE와, {(x1=ID(1))∨(x2=ID(2))}∧(x3=ID(3))의 경우에 도 8에 따라 생성된 속성 정보 ATT와의 내적은 0이 된다.
도 11A의 예는 부정원의 종류를 4종류(H=4)로 하고, 부정원의 2승을 포함하는 항이 허용되지만 부정원의 3승 이상의 멱승을 포함하는 항이 허용되지 않는 조건화로 설정된 다항식
f(x0,x1,x2,x3)={ι0?(x1-ID'(1))+ι1?(x3-ID'(3))}?(x3-ID'(3))
       =ι1?(x3)2+{-ι0?ID'(1)-2?ι1?ID'(3)}?x30?x1?x3
       -ι0?ID'(3)?x1+{ι0?ID'(1)?ID'(3) +ι1?{ID'(3)}2}
…(53)
에 대응한다. 또한, ID'(1), ID'(2) 및 ID'(3)은 각각 상기 서술한 바와 같이 각 프로토콜에 대응하는 규칙으로 정해진 식별자이며, 이 예의 다항식 f(x0,x1,x2,x3)은 논리식 {(x1=ID'(1))∧(x2=ID'(3))}∨(x3=ID'(3))에 대응한다. 예를 들면, ID'(1) 및 ID'(3)가 각각 Forward Secure 암호 프로토콜 및 CCA2 안전 암호 프로토콜에 대응하는 규칙으로 정해진 식별자라고 하면, 식(53)의 다항식 f(x0,x1,x2,x3)은 Forward Secure 암호 프로토콜과 CCA2 안전 암호 프로토콜의 조합, 또는 CCA2 안전 암호 프로토콜에 대하여 참이 되는 논리식에 대응한다. 이 예의 경우, 요소 번호 9의 요소를 ι0로 하고, 요소 번호 12의 요소를 -ι0?ID'(3)로 하고, 요소 번호 14의 요소를 -ι0?ID'(1)-2?ι1?ID'(3)로 하고, 요소 번호 15의 요소를 ι0?ID'(1)?ID'(3)+ι1?{ID'(3)}2로 하고, 요소 번호 en의 요소를 ι1로 하고, 그 밖의 요소를 0로 한 16차원의 벡터 w가 술어 정보 PRE가 된다. 이 예의 술어 정보 PRE와, {(x1=ID(1))∧(x2=ID(3))}∨(x3=ID(3))의 경우에 도 9에 따라 생성된 속성 정보 ATT와의 내적은 0이 된다.
도 10이나 도 11의 술어 정보 PRE의 생성 방법은 일례에 지나지 않고, 부정원의 종류가 4 이외여도 되고, 다항식 f(x0,...,xH-1)에 부정원의 3승 이상의 멱승을 포함하는 항이 허용되어도 된다. 또, 특정의 부정원의 2승을 포함하는 항은 허용되지만 그 밖의 부정원의 2승을 포함하는 항은 허용되지 않는 등 일부의 부정원 성분이 허용되지 않는 구성이어도 된다. 또, 1개의 속성 정보 ATT와의 내적이 0이 되는 술어 정보 PRE는 1개 뿐만아니라, 상기 이외의 방법에 의해, 원하는 속성 정보 ATT와의 내적이 0이 되는 술어 정보 PRE가 설정되어도 된다.
[평문]
본 형태에서는 송신자 장치(110)의 기억부(111c)에 암호화 대상의 평문 Mt가 격납된다.
[수신자 장치(120)에서 미리 정해진 논리식]
본 형태에서는 수신자 장치(120)에 있어서, 몇개의 프로토콜 및/또는 당해 프로토콜의 조합으로 이루어지는 조건에 대응하는 논리식의 구성(예를 들면, {(x1=ID'(1))∨(x2=ID'(2))}∧(x3=ID'(3)))가 미리 정해져 있다. 단, 당해 논리식을 구성하는 식별자 ID'(h)의 값은 특정되어 있지 않고, 당해 식별자 ID'(h)의 값이 정해짐으로써 술어 정보 PRE가 정해진다.
[마스터 비밀 정보]
본 형태의 키 생성 장치(130)의 기억부(131b)에는 술어 암호 방식의 마스터 비밀 정보 MSK가 격납된다. 마스터 비밀 정보 MSK의 일례는 상기 서술한 기저 벡터 bi*(i=1,...,n+1)을 요소로 하는 n+1행n+1열의 행렬 B*이다.
<처리>
도 12A는 제1 실시형태의 암호화 처리를 설명하기 위한 플로우차트이다. 도 12B는 제1 실시형태의 키 정보 생성 처리를 설명하기 위한 플로우차트이다. 또, 도 13은 제1 실시형태의 복호 처리를 설명하기 위한 플로우차트이다. 이하, 이들 도면을 사용하여 본 형태의 처리를 설명한다.
[암호화 처리]
본 형태의 암호화 처리에서는, 우선, 실행하는 술어 암호 방식을 응용한 1종류 이상의 프로토콜을 특정하기 위한 특정 정보 PI가 송신자 장치(110)(도 2)의 입력부(112)에 입력된다(스텝 S111). 예를 들면, 특정 정보 PI가 도 5A와 같이 정해지는 것이면, 이용자에게 선택된 1종류의 프로토콜에 대응하는 특정 정보 PI, 또는 이용자에게 선택된 2종류 이상의 프로토콜에 각각 대응하는 특정 정보 PI의 조합이 입력부(112)에 입력된다. 또, 예를 들면, 특정 정보 PI가 도 5B와 같이 정해지는 것이면, 이용자에게 선택된 1종류의 프로토콜 또는 2종류 이상의 프로토콜에 대응하는 특정 정보 PI가 입력부(112)에 입력된다.
입력부(112)에 입력된 특정 정보 PI는 식별자 특정부(114a)에 입력된다. 식별자 특정부(114a)는 당해 특정 정보 PI에 의해 특정되는 프로토콜마다 또는 당해 프로토콜의 조합마다 정해진 규칙에 따라서(도 6 및 도 7 등 참조), 당해 프로토콜마다 또는 당해 프로토콜의 조합마다 식별자 ID(h)를 특정하고, 특정한 1종류 이상의 당해 식별자 ID(h)를 출력한다(스텝 S112).
식별자 특정부(114a)로부터 출력된 1종류 이상의 식별자 ID(h)는 속성 정보 설정부(114b)에 입력된다. 속성 정보 설정부(114b)는 기억부(111b)에 격납된 속성 정보 테이블(도 8A~도 9B 등 참조)을 사용하고, 1종류의 당해 식별자 ID(h) 또는 2종류 이상의 당해 식별자 ID(h)의 조합에 대하여 정해지는 1개의 속성 정보 ATT를 설정하고, 설정한 당해 속성 정보 ATT를 출력한다(스텝 S113).
속성 정보 설정부(114b)로부터 출력된 속성 정보 ATT는 암호화부(114c)에 입력된다. 암호화부(114c)는 기억부(111c)로부터 평문 Mt를 읽어내고, 속성 정보 ATT와 평문 Mt를 술어 암호 방식의 암호화 함수에 입력하고, 평문 Mt의 암호문 Ct를 생성한다(스텝 S114). 술어 암호 방식의 암호화 함수의 일례는 상기 서술한 식(45)(46)이다.
생성된 암호문 Ct는 통신부(115)에 보내진다. 통신부(115)(출력부)는 당해 암호문 Ct(제1 정보)를 네트워크(140) 경유로 수신자 장치(120)에 송신한다(스텝 S115).
[복호 처리?키 정보 생성 처리]
본 형태의 복호 처리에서는, 우선, 수신자 장치(120)(도 3)의 통신부(125)가 암호문 Ct(제1 정보)를 수신한다(스텝 S121).
이것을 계기로 하여, 식별자 특정부(124a)가 프로토콜마다 또는 당해 프로토콜의 조합마다, 당해 프로토콜마다 또는 당해 프로토콜의 조합마다 정해진 규칙에 따라, 상기 서술한 수신자 장치(120)에서 미리 정해진 논리식에 사용되는 1종류 이상의 식별자 ID'(h)를 특정한다(스텝 S122). 또한, 당해 규칙은 송신자 장치(110)의 식별자 특정부(114a)에서 식별자 ID(h)를 특정하기 위한 규칙과 동일하다.
식별자 특정부(124a)에서 특정된 1종류 이상의 식별자 ID'(h)는 다항식 생성부(124b)에 입력된다. 다항식 생성부(124b)는 당해 식별자 ID'(h)를 사용하여, 상기 서술한 수신자 장치(120)에서 미리 정해진 논리식을 구성하는 식별자 ID'(h)의 값을 정하고, 그것에 의해서 정해지는 논리식에 대응하는 다항식 f(x0,...,xH-1)을 생성하고(예를 들면, 식(52)(53)참조), 생성한 다항식 f(x0,...,xH -1)을 출력한다(스텝 S123).
다항식 생성부(124b)로부터 출력된 다항식 f(x0,...,xH-1)은 술어 정보 생성부(124c)에 입력된다. 술어 정보 생성부(124c)는 입력된 다항식 f(x0,...,xH-1)의 각 항의 계수성분을 각 요소로 하는 벡터 w=(w0,...,wn-1)를 술어 정보 PRE로서 생성하고(예를 들면, 도 10A~도 11B 참조), 당해 술어 정보 PRE를 출력한다(스텝 S124).
술어 정보 생성부(124c)로부터 출력된 술어 정보 PRE는 키 생성 처리부(124d)에 입력된다. 키 생성 처리부(124d)는 술어 정보 PRE를 통신부(125)로부터 네트워크(140) 경유로 키 생성 장치(130)에 송신하고, 술어 정보 PRE에 대응하는 키 정보 SKr의 생성을 의뢰한다(스텝 S125).
본 형태의 키 정보 생성 처리에서는, 우선, 키 생성 장치(130)(도 4)의 통신부(135)가 상기한 술어 정보 PRE를 수신한다(스텝 S131). 통신부(135)에서 수신된 술어 정보 PRE는 키 생성부(134)에 입력된다. 키 생성부(134)는 기억부(131b)로부터 마스터 비밀 정보 MSK를 읽어내고, 마스터 비밀 정보 MSK와 술어 정보 PRE를 술어 암호 방식의 키 생성 함수에 입력하고, 술어 정보 PRE에 대응하는 키 정보 SKr를 생성하여 출력한다(스텝 S132). 또한, 키 생성 함수의 일례는 식(44)의 함수이다. 생성된 키 정보 SKr는 통신부(135)에 보내지고, 통신부(135)는 당해 키 정보 SKr를 네트워크(140) 경유로 수신자 장치(120)에 송신한다(스텝 S133).
수신자 장치(120)(도 3)의 통신부(125)는 송신된 키 정보 SKr를 수신하고, 키 생성 처리부(124d)에 보낸다. 키 생성 처리부(124d)는 당해 키 정보 SKr(제2 정보)를 기억부(121b)에 격납한다(스텝 S126).
다음에, 스텝 S121에서 통신부(125)가 수신한 암호문 Ct(제1 정보)와, 기억부(121b)로부터 읽어낸 키 정보 SKr(제2 정보)이 복호부(124e)에 입력된다. 복호부(124e)는 암호문 Ct(제1 정보)와 키 정보 SKr(제2 정보)을 술어 암호 방식의 복호함수에 입력하여 복호 처리를 실행하고, 그것에 의해 얻어진 복호 결과 Mr을 출력한다(스텝 S127). 또한, 복호함수의 일례는 식(47)~(49)이다.
여기서, 암호문 Ct(제1 정보)에 대응하는 속성 정보 ATT와, 키 정보 SKr(제2 정보)에 대응하는 술어 정보 PRE가 미리 정해진 함수에 입력된 경우의 함수값이 미리 정해진 값이 되는 경우(예를 들면, 당해 속성 정보 ATT와 당해 술어 정보 PRE의 내적이 0이 되는 경우)에는, 올바른 복호 결과가 얻어지고, 복호 결과 Mr=평문 Mt가 된다(예를 들면, 식(48)(49) 참조). 한편, 당해 속성 정보 ATT와 당해 술어 정보 PRE가 미리 정해진 함수에 입력된 경우의 함수값이 미리 정해진 값이 되지 않는 경우(예를 들면, 당해 속성 정보 ATT와 당해 술어 정보 PRE의 내적이 0이 되지 않는 경우)에는, 올바른 복호 결과가 얻어지지 않는다. 이것은 수신자 장치(120)에서 미리 정해진 프로토콜 및/또는 당해 프로토콜의 조합으로 이루어지는 조건에 합치하는 암호문 Ct만이 정확하게 복호되는 것을 의미한다.
이상과 같이, 본 형태에서는 송신자 장치(110)가 사용하는 프로토콜이나 프로토콜의 조합을 선택할 수 있고, 수신자 장치(120)에 있어서 복호 가능하게 되는 암호문의 프로토콜이나 프로토콜의 조합의 조건을 설정해 둘 수 있다. 그리고, 송신자 장치(110)에서 선택된 프로토콜이나 프로토콜의 조합이 수신자 장치(120)에 설정된 조건에 합치한 경우에만, 수신자 장치(120)는 송신된 암호문을 올바르게 복호할 수 있다. 또, 수신자 장치(120)에 있어서 복호 가능하게 되는 암호문의 프로토콜이나 프로토콜의 조합의 조건은 논리합이나 논리곱을 자유롭게 조합시켜 설정할 수 있다. 특히, 수신자 장치(120)에서 논리합을 포함하는 조건을 설정해 두면, 수신자 장치(120)가 송신자 장치(110)에서 선택된 프로토콜 등에 따라 키 정보를 구분해서 사용할 필요가 없어진다.
〔제1 실시형태의 변형예 1〕
상기 서술한 바와 같이, 속성 정보 ATT 및 술어 정보 PRE의 일부의 영역을 예비 영역으로서 두어도 된다. 이것에 의해, 나중에 선택 가능한 프로토콜을 증가시키거나, 논리식을 나타내는 다항식의 항을 증가시키거나 할 필요가 생긴 경우에도, 예비 영역에 그들의 증가분을 할당하면 시스템의 설정을 변경하지 않고, 이들의 증가를 행할 수 있다.
도 14A, 도 14B, 도 15A 및 도 15B는 속성 정보 ATT 및 술어 정보 PRE의 일부의 영역을 예비 영역으로 한 예를 설명하기 위한 도면이다.
도 14A, 도 14B, 도 15A 및 도 15B에서는, 속성 정보 ATT 및 술어 정보 PRE가 서로 차원이 동일한 벡터이며, 속성 정보 ATT와 술어 정보 PRE의 내적이 0일 때에 올바른 복호가 가능한 경우의 예비 영역을 예시하고 있다. 이 예에서는, 특정 정보 PI의 값에 관계없이, 속성 정보 ATT의 요소 번호 0,...,4의 요소(예비 영역)의 값이 각각 상수 const.(0) ,...,const.(4)가 되고, 술어 정보 PRE의 요소 번호 0,...,4의 요소(예비 영역)의 값이 각각 상수 const.'(0) ,...,const.'(4)가 된다. 이들의 예비 영역은 속성 정보 ATT의 요소 번호 0,...,4의 요소로 이루어지는 벡터와 술어 정보 PRE의 요소 번호 0,...,4의 요소로 이루어지는 벡터의 내적이, 특정 정보 PI의 값에 관계없이 0이 되도록 설정되어 있다. 예를 들면, 상수 const.(0),...,const.(4)가 모두 0이어도 되고, 상수 const.'(0) ,...,const.'(4)가 모두 0이어도 되며, 상수 const.(0) ,...,const.(4)가 모두 0이며 상수 const.'(0) ,...,const.'(4)의 일부가 0 이외여도 되고, 상수 const.'(0) ,...,const.'(4)가 모두 0이며 상수 const.(0) ,...,const.(4)의 일부가 0 이외여도 되고, 상수 const.(0) ,...,const.(4)의 일부가 0 이외이며 상수 const.'(0) ,...,const.'(4)의 일부가 0 이외이며 const.(0)?const.'(0)+...+const.(4)?const.'(4)=0이어도 된다.
〔제1 실시형태의 변형예 2〕
또, 상기 서술한 바와 같이, 속성 정보 ATT나 술어 정보 PRE의 일부의 요소를 예비 영역으로 하지 않고, 특정 정보 PI의 값에 관계없이 미리 참이 되도록 설정된 명제의 논리곱을 일부에 포함하는 논리식에 대응하는 속성 정보 ATT 및 술어 정보 PRE를 설정해도 된다. 이것에 의해, 나중에 선택 가능한 프로토콜을 증가시키거나, 논리식을 나타내는 다항식의 항을 증가시키거나 할 필요가 생긴 경우에도, 예비 영역에 그들의 증가분을 할당하면 시스템의 설정을 변경하지 않고, 이들의 증가를 행할 수 있다.
도 16 내지 도 18은, 특정 정보 PI의 값에 관계없이, 미리 참이 되도록 설정된 명제의 논리곱을 일부에 포함하는 논리식에 대응하는 속성 정보 ATT 및 술어 정보 PRE를 설정하는 경우의 일례를 설명하기 위한 도면이다.
이 예에서는, 식별자 ID(3)를 미사용의 식별자로 하고, 특정 정보 PI의 값에 관계없이 미리 참이 되도록 설정된 명제 「부정원 x3가 ID(3)이다」의 논리곱을 일부에 포함하는 논리식에 대응하는 속성 정보 ATT 및 술어 정보 PRE가 설정된다.
예를 들면, 도 16 내지 도 18B의 예는, 특정 정보 PI의 값에 관계없이 식별자 ID(3) 및 식별자 ID'(3)를 동일한 상수(const.)로 하고, 상기 서술한 바와 같이 속성 정보 ATT 및 술어 정보 PRE가 설정된 예이다. 이러한 설정에서는, 명제 「부정원 x3가 ID(3)이다」는 특정 정보 PI의 값에 관계없이 참이 된다. 실제로 도 17A 및 도 17B의 속성 정보 ATT와 도 18A 및 도 18B의 술어 정보 PRE의 내적은 특정 정보 PI의 값에 관계없이 참이 된다. 그리고, 나중에 식별자 ID(3)를 사용하는 것 같은 시스템으로 확장된 경우에는, 식별자 ID(3)에 특정 정보 PI에 대응하는 값을 입력하여 속성 정보 ATT 및 술어 정보 PRE를 갱신할 수 있다.
〔제2 실시형태〕
다음에 본 발명의 제2 실시형태를 설명한다.
제2 실시형태는, 제1 정보가 속성 정보 ATT에 대응하는 키 정보이며, 제2 정보가 술어 정보 PRE에 대응하는 암호문이며, 송신자 장치가 키 정보를 출력하고, 수신자 장치에 격납된 암호문이 복호되는 형태이다. 이러한 형태는 술어 암호 방식을 응용한 프로토콜이 예를 들면 Keyword 검색 암호 프로토콜인 경우, 또는 Keyword 검색 암호 프로토콜과 Forward Secure 암호 프로토콜, Key Insulated 암호 프로토콜 혹은 CCA2 안전 암호 프로토콜의 조합인 경우 등에 적용할 수 있다. 이하에서는, 제1 실시형태와의 상이점을 중심으로 설명하고, 제1 실시형태와 공통되는 사항에 대해서는 설명을 간략화한다.
<구성>
도 19는 제2 실시형태의 함수 암호 응용 시스템(2)의 전체 구성을 설명하기 위한 블록도이다. 도 19에 나타내는 바와 같이, 본 형태의 함수 암호 응용 시스템(2)은 네트워크(140)에 접속된 송신자 장치(210)(정보 출력 장치)와 수신자 장치(220)(정보 처리 장치)와 키 생성 장치(130)를 가진다. 또한, 설명의 편의상, 도 19에는 송신자 장치(210)와 수신자 장치(220)와 키 생성 장치(130)가 1개씩 표기되어 있지만, 2개 이상의 송신자 장치(210)나 수신자 장치(220)나 키 생성 장치(130)가 존재해도 된다.
[송신자 장치(210)(정보 출력 장치)]
도 20은 도 19의 송신자 장치(210)의 구성을 설명하기 위한 블록도이다. 또한, 본 형태에 있어서, 제1 실시형태와 공통되는 부분에 대해서는 제1 실시형태와 동일한 부호를 붙이고 설명을 생략한다(이하, 동일).
도 20에 나타내는 바와 같이, 본 형태의 송신자 장치(210)는 일시 메모리(111a)와, 기억부(111b, 211d)와, 입력부(112)와, 제어부(113)와, 식별자 특정부(114a)와, 속성 정보 설정부(114b)와, 키 생성 처리부(214d)와, 통신부(115)를 가진다.
송신자 장치(210)는 예를 들면 CPU, RAM, ROM 등을 구비하는 공지 또는 전용의 컴퓨터에 특별한 프로그램이 읽어들여져 실행됨으로써 구성되는 특별한 장치이다. 예를 들면, 키 생성 처리부(214d)는 CPU가 소정의 프로그램을 실행함으로써 구성되는 처리부나 집적 회로 등이며, 기억부(211d)는 RAM, 레지스터, 캐시 메모리, 집적 회로 내의 소자 혹은 하드디스크 등의 보조 기억 장치, 또는 이들의 적어도 일부의 결합으로 이루어지는 기억 영역이다.
[수신자 장치(220)(정보 처리 장치)]
도 21은 도 19의 수신자 장치(220)의 구성을 설명하기 위한 블록도이다.
도 21에 나타내는 바와 같이, 본 형태의 수신자 장치(220)는 일시 메모리(121a)와, 기억부(221b, 221c)와, 제어부(123)와, 식별자 특정부(124a)와, 다항식 생성부(124b)와, 술어 정보 생성부(124c)와, 암호화부(224d)와, 복호부(124e)와, 통신부(125)를 가진다.
수신자 장치(220)는 예를 들면 CPU, RAM, ROM 등을 구비하는 공지 또는 전용의 컴퓨터에 특별한 프로그램이 읽어들여져 실행됨으로써 구성되는 특별한 장치이다. 예를 들면, 암호화부(224d)는 CPU가 소정의 프로그램을 실행함으로써 구성되는 처리부나 집적 회로 등이며, 기억부(221b, 221c)는 RAM, 레지스터, 캐시 메모리, 집적 회로 내의 소자 혹은 하드디스크 등의 보조 기억 장치, 또는 이들의 적어도 일부의 결합으로 이루어지는 기억 영역이다.
<사전 설정>
다음에 본 형태의 함수 암호 응용 시스템(2)의 사전 설정을 설명한다.
[특정 정보]
도 22A 및 도 22B는, 제2 실시형태에 있어서의 1종류 이상의 프로토콜을 특정하기 위한 특정 정보 PI와 프로토콜의 대응 관계를 예시한 도면이다.
도 22A의 예에서는, 프로토콜마다 특정 정보 PI가 할당되어 있다. 즉, 이 예에서는, 특정 정보 PI=0에 대하여 Keyword 검색 암호 프로토콜이 할당되고, 특정 정보 PI=1에 대하여 Forward Secure 암호 프로토콜이 할당되고, 특정 정보 PI=2에 대하여 Key Insulated 암호 프로토콜이 할당되고, 특정 정보 PI=3에 대하여 CCA2 안전 암호 프로토콜이 할당되어 있다. 이 예에서 어느 하나의 프로토콜을 단체로 선택하는 경우에는 선택하는 프로토콜에 대응하는 1개의 특정 정보 PI를 특정하고, 2종류 이상의 프로토콜의 조합을 선택하는 경우에는 선택하는 2종류 이상의 프로토콜에 각각 대응하는 특정 정보 PI의 조합을 특정한다.
한편, 도 22B의 예에서는, 프로토콜마다 특정 정보 PI가 할당되어 있는 것 외에, 2종류 이상의 프로토콜의 조합에 대해서도 특정 정보 PI가 할당되어 있다. 이 예에서 어느 하나의 프로토콜을 단체로 선택하는 경우에는 선택하는 프로토콜에 대응하는 1개의 특정 정보 PI를 특정하고, 2종류 이상의 프로토콜의 조합을 선택하는 경우에는 선택하는 2종류 이상의 프로토콜의 조합에 대응하는 특정 정보 PI를 특정한다.
또한, 도 22에 나타낸 특정 정보 PI는 일례이며, 그 밖의 방법에 의해 1종류 이상의 프로토콜에 대응하는 특정 정보 PI가 특정되어도 된다.
[식별자]
도 23A 및 도 23B 및 도 24는, 제2 실시형태에 있어서, 프로토콜마다 또는 당해 프로토콜의 조합마다 정해진 식별자 ID(h)를 특정하기 위한 규칙의 일례를 설명하기 위한 도면이다.
도 23A의 예에서는, 선택 가능한 프로토콜마다 식별자 ID(h)가 할당된다. 선택된 프로토콜에 할당된 식별자 ID(h)에는 그 프로토콜에 정해진 규칙에 따른 값이 입력된다. 예를 들면, Keyword 검색 암호 프로토콜이 선택된 경우에는 검색용 키워드가 식별자 ID(0)에 입력된다. 한편, 선택되지 않은 프로토콜에 할당된 식별자 ID(h)에는 상수(const.)가 입력된다. 또, 복수의 프로토콜의 조합이 선택된 경우에는 그 조합을 구성하는 복수의 프로토콜이 선택된 것으로 하여 식별자 ID(h)의 값이 결정된다. 예를 들면, Keyword 검색 암호 프로토콜과 CCA2 안전 암호 프로토콜의 조합이 선택된 경우에는 검색용 키워드가 식별자 ID(0)에 입력되고, 일회용 정보가 식별자 ID(3)에 입력되며, 그 밖의 식별자 ID(1), ID(2)에는 상수(const.)가 입력된다.
도 23B의 예에서는, 선택된 프로토콜에만 식별자 ID(h)가 할당된다. 예를 들면, Keyword 검색 암호 프로토콜이 선택된 경우에는 검색용 키워드를 나타내는 식별자 ID(0)만이 할당된다. 또, 예를 들면, Keyword 검색 암호 프로토콜과 CCA2 안전 암호 프로토콜의 조합이 선택된 경우에는 검색용 키워드를 나타내는 식별자 ID(0)와, 일회용 정보를 나타내는 식별자 ID(3)만이 할당된다.
도 24의 예에서는, 선택 가능한 프로토콜 및 프로토콜의 조합마다 식별자 ID(h)가 할당된다. 선택된 프로토콜 및 프로토콜의 조합에 할당된 식별자 ID(h)에는 선택된 프로토콜 또는 조합을 구성하는 각 프로토콜에 정해진 각 규칙에 따른 값이 입력되고, 선택되지 않은 프로토콜이나 조합에 할당된 식별자 ID(h)에는 상수(const.)가 입력된다. 예를 들면, Keyword 검색 암호 프로토콜과 CCA2 안전 암호 프로토콜의 조합이 선택된 경우에는 검색용 키워드와 일회용 정보의 조합으로 정해지는 값이 식별자 ID(3)에 입력되고, 그 밖의 식별자 ID(h)에는 상수(const.)가 입력된다.
또, 상기 서술한 식별자의 결정 방법은 일례에 지나지 않고, 그 밖의 방법으로 식별자가 특정해도 된다. 예를 들면, 도 24의 예의 변형으로서, 선택된 프로토콜 및 프로토콜의 조합에만 식별자 ID(h)가 할당되어도 된다. 또, 상기 서술한 바와 같이 얻어진 각 식별자 ID(h)의 조합(예를 들면 비트 결합)에 의해 1개의 식별자를 구성해도 된다.
[속성 정보?술어 정보]
제1 실시형태와 동일하기 때문에 설명을 생략한다.
[암호화 데이터베이스(DB)]
도 25는 제2 실시형태의 암호화 DB의 일례를 설명하기 위한 도면이다.
도 25에 있어서의 Mr1~Mr99는 각각 도큐먼트 등의 검색 대상 정보이며, KWr1~KWr9는 각각 단어 등의 키워드이며, True는 「참」을 의미하는 「1」 등의 데이터이다. 또, C(Mr1) ,...,C(Mr99)는 각각 검색 대상 정보 Mr1~Mr99의 암호문이다. 암호문 C(Mr1) ,...,C(Mr99)의 암호화 방식은 공통 키 암호 방식, 공개 키 암호 방식, ID 베이스 암호 방식, 술어 암호 방식 등 어떤 것이어도 된다. 또, Cr(KWr1,True) ,...,Cr(KWr9,True)는 각각 술어 정보 PRE와 평문 True를 술어 암호 방식의 암호화 함수에 입력하여 얻어지는 술어 암호 방식의 암호문(제2 정보)이다. 암호문 Cr(KWr1,True) ,...,Cr(KWr9,True)는 각각 키워드 KWr1~KWr9에 각각 대응하는 각 속성 정보 ATT에 대응하는 키 정보를 사용하여 올바르게 복호 가능하다. 즉, 예를 들면, 키워드 KWr1에 대응하는 속성 정보 ATT와, 암호문 Cr(KWr1,True)을 암호화하기 위해서 사용한 술어 정보 PRE가 미리 정해진 함수에 입력된 경우에 당해 함수의 함수값은 미리 정해진 값이 된다(예를 들면, 당해 속성 정보 ATT와 당해 술어정보 PRE의 내적이 0이 된다).
암호화 DB는 검색 대상 정보(「Mr」이라고 총칭함)의 암호문 C(Mr1) ,...,C(Mr99)에 대하여, 각각, 대응하는 키워드에 대응하는 암호문을 Cr(KWr1,True) ,...,Cr(KWr9,True)를 대응지은 것이다. 예를 들면, 검색 대상 정보 Mr1에 대응하는 키워드가 KWr1, KWr2, KWr3, KWr4인 경우, 검색 대상 정보 Mr1의 암호문 C(Mr1)과, 키워드 KWr1, KWr2, KWr3, KWr4에 대응하는 암호문 Cr(KWr1,True), Cr(KWr2,True), Cr(KWr3,True), Cr(KWr4,True)가 대응지어진다. 이것에 의해, 예를 들면, 키워드 KWr1에 대응하는 속성 정보 ATT에 대응하는 키 정보를 사용하여 암호문 Cr(KWr1,True)이 올바르게 복호된 것을 가지고, 검색 대상 정보 Mr1의 암호문 C(Mr1)을 복호하지 않고, 키워드 KWr1이 검색 대상 정보 Mr1에 대응하는 것을 알 수 있다.
본 형태에서는, 이러한 암호화 DB가 수신자 장치(220)의 기억부(221c)에 격납되고, 기억부(221c)에는 각 키워드(「KWr」이라고 총칭함)와 평문 True가 격납된다. 또, 암호화 DB를 구성하는 각 키워드 KWr에 대응하는 각 암호문 Cr(KWr, True)은 후술하는 바와 같이 순차 갱신된다.
[수신자 장치(220)에서 미리 정해진 논리식]
본 형태에서도 수신자 장치(220)에 있어서, 몇 개의 프로토콜 및/또는 당해 프로토콜의 조합으로 이루어지는 조건에 대응하는 논리식이 미리 정해져 있다. 단, 당해 논리식을 구성하는 식별자 ID'(h)의 값은 특정되어 있지 않고, 당해 식별자 ID'(h)의 값이 정해짐으로써 술어 정보 PRE가 정해진다.
[마스터 비밀 정보]
본 형태의 키 생성 장치(130)의 기억부(131b)에는 술어 암호 방식의 마스터 비밀 정보 MSK가 격납된다. 마스터 비밀 정보 MSK의 일례는 상기 서술한 기저 벡터 bi *(i=1,...,n+1)를 요소로 하는 n+1행n+1열의 행렬 B*이다.
<처리>
도 26A는 제2 실시형태의 검색 의뢰 처리를 설명하기 위한 플로우차트이다. 도 26B는 제2 실시형태의 키 정보 생성 처리를 설명하기 위한 플로우차트이다. 또, 도 27은 제2 실시형태의 검색 처리를 설명하기 위한 플로우차트이다. 이하, 이들 도면을 사용하여 본 형태의 처리를 설명한다.
[검색 의뢰 처리?키 정보 생성 처리]
본 형태의 암호화 처리에서는, 우선, 실행하는 술어 암호 방식을 응용한 1종류 이상의 프로토콜을 특정하기 위한 특정 정보 PI와, 검색용 키워드 KWt가 송신자 장치(210)(도 20)의 입력부(112)에 입력된다(스텝 S211). 예를 들면, 특정 정보 PI가 도 22A와 같이 정해지는 것이면, 이용자에게 선택된 1종류의 프로토콜에 대응하는 특정 정보 PI, 또는 이용자에게 선택된 2종류 이상의 프로토콜에 각각 대응하는 특정 정보 PI의 조합이 입력부(112)에 입력된다. 또, 예를 들면, 특정 정보 PI가 도 22B와 같이 정해지는 것이면, 이용자에게 선택된 1종류의 프로토콜 또는 2종류 이상의 프로토콜에 대응하는 특정 정보 PI가 입력부(112)에 입력된다. 또한, 본 형태에서는, 선택되는 프로토콜 또는 프로토콜의 조합에 Keyword 검색 암호 프로토콜이 포함되는 것으로 한다.
입력부(112)에 입력된 특정 정보 PI와 검색용 키워드 KWt는 식별자 특정부(114a)에 입력된다. 식별자 특정부(114a)는 당해 특정 정보 PI에 의해 특정되는 프로토콜마다 또는 당해 프로토콜의 조합마다 정해진 규칙에 따라(도 23 및 도 24등 참조), 당해 프로토콜마다 또는 당해 프로토콜의 조합마다, 검색용 키워드 KWt에 대응하는 식별자 ID(h)를 특정하고, 특정한 1종류 이상의 당해 식별자 ID(h)를 출력한다(스텝 S212).
식별자 특정부(114a)로부터 출력된 1종류 이상의 식별자 ID(h)는 속성 정보 설정부(114b)에 입력된다. 속성 정보 설정부(114b)는 기억부(111b)에 격납된 속성 정보 테이블(도 8, 도 9 등 참조)을 사용하고, 1종류의 당해 식별자 ID(h) 또는 2종류 이상의 당해 식별자 ID(h)의 조합에 대하여 정해지는 1개의 속성 정보 ATT를 설정하고, 설정한 당해 속성 정보 ATT를 출력한다(스텝 S213).
속성 정보 설정부(114b)로부터 출력된 속성 정보 ATT는 키 생성 처리부(214d)에 입력된다. 키 생성 처리부(214d)는 속성 정보 ATT를 통신부(115)로부터 네트워크(140) 경유로 키 생성 장치(130)에 송신하고, 속성 정보 ATT에 대응하는 키 정보 SKt의 생성을 의뢰한다(스텝 S214).
본 형태의 키 정보 생성 처리에서는, 우선, 키 생성 장치(130)(도 4)의 통신부(135)가 상기한 속성 정보 ATT를 수신한다(스텝 S231). 통신부(135)에서 수신된 속성 정보 ATT는 키 생성부(134)에 입력된다. 키 생성부(134)는 기억부(131b)로부터 마스터 비밀 정보 MSK를 읽어내고, 마스터 비밀 정보 MSK와 속성 정보 ATT를 술어 암호 방식의 키 생성 함수에 입력하고, 속성 정보 ATT에 대응하는 키 정보 SKt를 생성하여 출력한다(스텝 S232). 또한, 키 생성 함수의 일례는 식(50)의 함수이다. 생성된 키 정보 SKt는 통신부(135)에 보내지고, 통신부(135)는 당해 키 정보 SKt을 네트워크(140) 경유로 송신자 장치(210)에 송신한다(스텝 S233).
송신자 장치(210)(도 20)의 통신부(115)는 키 정보 SKt를 수신하고, 키 생성 처리부(214d)에 보낸다. 키 생성 처리부(214d)는 당해 키 정보 SKt를 기억부(211d)에 격납한다(스텝 S215). 다음에 기억부(211d)로부터 읽어낸 검색용 키워드 KWt에 대응하는 키 정보 SKt(제1 정보)는 통신부(115)에 보내지고, 그곳으로부터 네트워크(140) 경유로 수신자 장치(220)에 송신된다(스텝 S216).
[검색 처리]
본 형태의 검색 처리에서는, 우선, 수신자 장치(220)(도 21)의 통신부(125)가 송신된 검색용 키워드 KWt에 대응하는 키 정보 SKt(제1 정보)를 수신하고, 기억부(221b)에 격납한다(스텝 S221).
이것을 계기로 하여, 식별자 특정부(124a)가 상기 서술한 수신자 장치(220)에서 미리 정해진 논리식에 대응하는 프로토콜마다 또는 당해 프로토콜의 조합마다, 당해 프로토콜마다 또는 당해 프로토콜의 조합마다 정해진 규칙에 따라, 각 검색 대상 정보 Mr에 각각 대응하는 각 키워드 KWr에 대응하는 1종류 이상의 식별자 ID'(h)를 특정한다(스텝 S222). 또한, 당해 규칙은 송신자 장치(210)의 식별자 특정부(114a)에서 식별자 ID(h)를 특정하기 위한 규칙과 동일하다.
식별자 특정부(124a)에서 키워드 KWr마다 특정된 1종류 이상의 식별자 ID'(h)는 다항식 생성부(124b)에 입력된다. 다항식 생성부(124b)는 각 키워드 KWr에 대하여, 각각, 대응하는 식별자 ID'(h)를 사용하여, 상기 서술한 수신자 장치(220)에서 미리 정해진 논리식을 구성하는 식별자 ID'(h)의 값을 정하고, 그것에 의해 정해지는 논리식에 대응하는 다항식 f(x0,...,xH-1)을 생성하고, 생성한 다항식 f(x0,...,xH-1)을 출력한다(스텝 S223).
다항식 생성부(124b)로부터 출력된 각 다항식 f(x0,...,xH-1)은 술어 정보 생성부(124c)에 입력된다. 술어 정보 생성부(124c)는 각 키워드 KWr에 대하여, 각각 입력된 다항식 f(x0,...,xH-1)의 각 항의 계수성분을 각 요소로 하는 벡터 w=(w0,...,wn-1)를 술어 정보 PRE로서 생성하고, 당해 술어 정보 PRE를 출력한다(스텝 S224).
술어 정보 생성부(124c)로부터 출력된 각 키워드 KWr에 대한 각 술어 정보 PRE는 암호화부(224d)에 입력된다. 암호화부(224d)는 기억부(111c)로부터 평문 True를 읽어내고, 각 키워드 KWr에 대한 각 술어 정보 PRE와 평문 True를 각각 술어 암호 방식의 암호화 함수에 입력하고, 각 키워드 KWr에 대하여, 각각, 평문 True의 암호문 Cr(KWr, True)(제2 정보)을 생성하고, 이들에 의해 암호화 DB의 각 키워드에 대응하는 각 암호문을 갱신하고, 암호화 DB를 갱신한다(스텝 S225). 또한, 술어 암호 방식의 암호화 함수의 일례는 상기 서술한 식(51)(46)이다.
다음에 스텝 S221에서 통신부(125)가 수신한 검색용 키워드 KWt에 대응하는 키 정보 SKt(제1 정보)와, 기억부(221c)로부터 읽어낸 암호화 DB의 어느 하나의 암호문 Cr(KWr, True)(제2 정보)이 복호부(124e)에 입력된다. 복호부(124e)는 키 정보 SKt(제1 정보)와 암호문 Cr(KWr, True)(제2 정보)을 술어 암호 방식의 복호함수에 입력하여 복호 처리를 실행하고, 그것에 의해 얻어진 복호 결과 Mr="True" or Not을 출력한다(스텝 S226). 또한, 복호함수의 일례는 식(47)~(49)이다.
여기서, 정보 SKt(제1 정보)에 대응하는 속성 정보 ATT와, 암호문 Cr(KWr, True)(제2 정보)에 대응하는 술어 정보 PRE가 미리 정해진 함수에 입력된 경우의 함수값이 미리 정해진 값이 되는 경우(예를 들면, 당해 속성 정보 ATT와 당해 술어 정보 PRE의 내적이 0이 되는 경우)에는 올바른 복호 결과가 얻어지고, 복호 결과 Mr=평문 True가 된다(예를 들면, 식(48)(49)참조). 한편, 당해 속성 정보 ATT와 당해 술어 정보 PRE가 미리 정해진 함수에 입력된 경우의 함수값이 미리 정해진 값이 되지 않는 경우(예를 들면, 당해 속성 정보 ATT와 당해 술어 정보 PRE의 내적이 0이 되지 않는 경우)에는 올바른 복호 결과가 얻어지지 않는다. 그리고, 올바른 복호 결과가 얻어진 경우에는 그 암호문 Cr(KWr, True)에 대응지어진 검색 대상 정보 Mr의 암호문 C(Mr)이 검색 결과로서 추출된다. 이러한 스텝 S226의 처리는 암호화 DB를 구성하는 모든 암호문 Cr(KWr, True)에 대하여 각각 실행된다.
검색용 키워드 KWt에 대응하는 키 정보 SKt(제1 정보)가 수신자 장치(220)에서 미리 정해진 프로토콜 및/또는 당해 프로토콜의 조합 및/또는 키워드로 이루어지는 조건에 합치하는 것이었던 경우에는, 당해 검색용 키워드 KWt와 동일한 키워드 KW에 대응하는 검색 대상 정보 Mr의 암호문 C(Mr)이 검색 결과로서 추출된다.
한편, 검색용 키워드 KWt에 대응하는 키 정보 SKt(제1 정보)가 수신자 장치(220)에서 미리 정해진 프로토콜 및/또는 당해 프로토콜의 조합 및/또는 키워드로 이루어지는 조건에 합치하지 않는 것이었던 경우에는, 올바른 복호가 이루어지지 않기 때문에, 검색용 키워드 KWt와 동일한 키워드 KW에 대응하는 검색 대상 정보 Mr의 암호문 C(Mr)은 추출되지 않는다. 즉, 실질적으로는 암호화 DB의 검색을 실행할 수 없다.
이상과 같이, 본 형태에서는 송신자 장치(210)가 사용하는 프로토콜이나 프로토콜의 조합이나 키워드를 선택할 수 있고, 수신자 장치(220)에 있어서 암호화 DB의 검색이 가능한 키 정보 SKt(제1 정보)의 프로토콜이나 프로토콜의 조합이나 키워드의 조건을 설정해 둘 수 있다. 그리고, 실질적으로는 수신자 장치(220)는 송신자 장치(210)에서 선택된 프로토콜이나 프로토콜의 조합이나 키워드가 수신자 장치(220)에 설정된 조건에 합치한 경우에만, 암호화 DB의 검색을 실행하게 된다.
〔제2 실시형태의 변형예〕
제2 실시형태에 있어서도, 속성 정보 ATT 및 술어 정보 PRE에 대하여, 제1 실시형태의 변형예 1, 2에서 설명한 바와 같은 예비 영역을 설치해도 된다.
또, 본 형태에서는, 제1 정보가 속성 정보 ATT에 대응하는 키 정보이며, 제2 정보가 술어 정보 PRE에 대응하는 암호문인 경우의 일례로서, Keyword 검색 암호 프로토콜을 기본으로 한 프로토콜이 실행되는 경우를 예시했다. 그러나, 본 발명은 이것에 한정되지 않는다.
〔제3 실시형태〕
제3 실시형태는 제1 실시형태와 제2 실시형태의 전환이 가능한 형태이다. 즉, 송신자 장치가 특정 정보 PI에 의해 특정되는 프로토콜에 따라, 속성 정보 ATT를 술어 암호 방식의 암호화 함수에 입력시킬지 키 생성 함수에 입력시킬지를 전환하고, 수신자 장치가 특정 정보 PI에 의해 특정되는 프로토콜에 따라, 술어 정보를 술어 암호 방식의 키 생성 함수에 입력시킬지 암호화 함수에 입력시킬지를 전환하는 형태이다. 이하에서는, 제1 실시형태와의 상이점을 중심으로 설명하고, 제1 실시형태와 공통되는 부분에 대해서는 설명을 생략한다.
<구성>
도 28은 제3 실시형태의 함수 암호 응용 시스템(3)의 전체 구성을 설명하기 위한 블록도이다. 도 28에 나타내는 바와 같이, 본 형태의 함수 암호 응용 시스템(3)은 네트워크(140)에 접속된 송신자 장치(310)(정보 출력 장치)와 수신자 장치(320)(정보 처리 장치)와 키 생성 장치(130)를 가진다. 또한, 설명의 편의상, 도 28에는 송신자 장치(310)와 수신자 장치(320)와 키 생성 장치(130)가 1개씩 표기되어 있지만, 2개 이상의 송신자 장치(310)나 수신자 장치(320)나 키 생성 장치(130)가 존재해도 된다.
[송신자 장치(310)(정보 출력 장치)]
도 29는 도 28의 송신자 장치(310)의 구성을 설명하기 위한 블록도이다. 또한, 본 형태에 있어서, 제1, 2 실시형태와 공통되는 부분에 대해서는 제1, 2 실시형태와 동일한 부호를 붙이고 설명을 생략한다(이하, 동일).
도 29에 나타내는 바와 같이, 본 형태의 송신자 장치(310)는 일시 메모리(111a)와, 기억부(111b, 111c, 211d)와, 입력부(112)와, 제어부(113)와, 식별자 특정부(114a)와, 속성 정보 설정부(114b)와, 암호화부(114c)와, 키 생성 처리부(214d)와, 전환부(314)와, 통신부(115)를 가진다.
송신자 장치(310)는 예를 들면 CPU, RAM, ROM 등을 구비하는 공지 또는 전용의 컴퓨터에 특별한 프로그램이 읽어들여져 실행됨으로써 구성되는 특별한 장치이다. 예를 들면, 전환부(314)는 CPU가 소정의 프로그램을 실행함으로써 구성되는 처리부나 집적 회로 등이다.
[수신자 장치(320)(정보 처리 장치)]
도 30은 도 28의 수신자 장치(320)의 구성을 설명하기 위한 블록도이다.
도 30에 나타내는 바와 같이, 본 형태의 수신자 장치(320)는 일시 메모리(121a)와, 기억부(121b, 221c)와, 제어부(123)와, 식별자 특정부(124a)와, 다항식 생성부(124b)와, 술어 정보 생성부(124c)와, 키 생성 처리부(124d)와, 암호화부(224d)와, 복호부(124e)와, 전환부(324a, 324b)와, 통신부(125)를 가진다. 또한, 설명의 편의상, 도 30에는 통신부(125)를 나타내는 블록이 2개 표기되어 있지만, 이것은 별개의 통신부(125)가 2개 필요한 것을 의미하지 않는다.
수신자 장치(320)는, 예를 들면, CPU, RAM, ROM 등을 구비하는 공지 또는 전용의 컴퓨터에 특별한 프로그램이 읽어들여져 실행됨으로써 구성되는 특별한 장치이다. 예를 들면, 전환부(324a, 324b)는 CPU가 소정의 프로그램을 실행함으로써 구성되는 처리부나 집적 회로 등이다.
<사전 설정>
제1, 2 실시형태와 동일하기 때문에 설명을 생략한다.
<처리>
도 31A는 제3 실시형태의 송신자 장치(310)의 처리를 설명하기 위한 플로우차트이다. 도 31B는 제3 실시형태의 수신자 장치(320)의 처리를 설명하기 위한 플로우차트이다. 이하, 이들 도면을 사용하여 본 형태의 처리를 설명한다.
본 형태의 송신자 장치(310)의 처리에서는, 우선, 실행하는 술어 암호 방식을 응용한 1종류 이상의 프로토콜을 특정하기 위한 특정 정보 PI가 송신자 장치(310)(도 29)의 입력부(112)에 입력된다(스텝 S311).
여기서, 특정 정보 PI에 의해 특정되는 프로토콜 또는 프로토콜의 조합이 제1 실시형태와 같은 속성 정보 ATT를 술어 암호 방식의 암호화 함수에 입력시켜 암호문을 생성하는 암호화 처리인 경우에는, 전환부(314)의 제어하, 제1 실시형태의 스텝 S111~S115의 암호화 처리가 실행된다. 단, 본 형태의 송신자 장치(310)는 암호문 Ct와 함께 특정 정보 PI를 수신자 장치(320)에 송신한다.
한편, 특정 정보 PI에 의해 특정되는 프로토콜 또는 프로토콜의 조합이 제2 실시형태와 같은 속성 정보 ATT를 술어 암호 방식의 키 생성 함수에 입력시켜 키 정보를 생성하는 검색 의뢰 처리 및 키 정보 생성 처리인 경우에는, 전환부(314)의 제어하, 제2 실시형태의 스텝 S211~S216, S231~S233의 검색 의뢰 처리 및 키 정보 생성 처리가 실행된다. 단, 본 형태의 송신자 장치(310)는 키 정보 SKt와 함께 특정 정보 PI를 수신자 장치(320)에 송신한다.
본 형태의 수신자 장치(320)의 처리에서는, 우선, 수신자 장치(320)(도 30)의 통신부(125)가 송신자 장치(310)로부터 송신된 암호문 Ct와 특정 정보 PI의 세트, 또는 키 정보 SKt와 특정 정보 PI의 세트를 수신한다(스텝 S311).
여기서, 특정 정보 PI에 의해 특정되는 프로토콜 또는 프로토콜의 조합이 제1 실시형태와 같은 술어 정보 PRE를 술어 암호 방식의 키 생성 함수에 입력시켜 키 정보를 생성하는 복호 처리 및 키 정보 생성 처리인 경우에는, 전환부(324a, 324b)의 제어하, 제1 실시형태의 스텝 S121~S127, S131~S133의 복호 처리 및 키 정보 생성 처리가 실행된다.
한편, 특정 정보 PI에 의해 특정되는 프로토콜 또는 프로토콜의 조합이 제2 실시형태와 같은 술어 정보 PRE를 술어 암호 방식의 암호화 함수에 입력시켜 암호문을 생성하는 검색 처리인 경우에는, 전환부(324a, 324b)의 제어하, 제2 실시형태의 스텝 S221~S226의 검색 처리가 실행된다.
〔제1~3 실시형태의 그 밖의 변형예〕
또한, 본 발명은 상기 서술한 제1~3의 실시형태에 한정되는 것은 아니다. 예를 들면, 상기 서술한 기본 구성예 1, 2에서 예시한 암호문 C2는 n+1차원의 기저 벡터를 사용하여 구성되었지만(식(45)(51)), 서로 직교하는 n+2차원 이상의 기저 벡터 b1,...bn+ξ를 사용하여 암호문 C2가 구성되어도 된다. 예를 들면, 이하의 식(54)(55)의 암호문 C2가 생성되어도 된다. 또한, ξ는 2 이상의 정수이며, υξ+1은 상수나 변수(난수 등) 등이다.
C21?(Σμ=1 nvμ?bμ)+υ2?bn+1+…+υξ+1?bn+ξ∈G1 n+ξ…(54)
C21?(Σμ=1 nwμ?bμ)+υ2?bn+1+…+υξ+1?bn+ξ∈G1 n+ξ…(55)
또, 식(44) 대신에
D*=α?(Σμ=1 nwμ?bμ *)+υn+1?bn+1 *∈G2 n+1…(56)
또는
D*=α?(Σμ=1 nwμ?bμ *)+Σι=n+1 n+ξυι?bι *∈G2 n+ξ…(57)
을 사용해도 된다.
또, 식(50) 대신에
D*=α?(Σμ=1 nvμ?bμ *)+υn+1?bn+1 *∈G2 n+1…(58)
또는
D*=α?(Σμ=1 nvμ?bμ *)+Σι=n+1 n+ξυι?bι *∈G2 n+ξ…(59)
를 사용해도 된다. 단, υι은 상수나 변수(난수 등) 등이다. 또, 식(57)(59)의 경우에는 Σι=n+1 n+ξυι이 상수가 되도록 각 υι이 선택되어도 된다. 예를 들면,
Σι=n+1 n+ξυι=0F…(60)
이 되도록 각 υι이 랜덤으로 선택되어도 된다.
또, 상기 서술한 유한체 Fq상에서 정의된 각 연산을 위수 q의 유한환 Zq상에서 정의된 연산으로 치환해도 된다. 유한체 Fq상에서 정의된 각 연산을 유한환 Zq상에서 정의된 연산으로 치환하는 방법의 일례는 소수나 그 멱승값 이외의 q를 허용하는 방법이다. 그 밖에, KEM 방식이 아니라, 참고문헌 9의 내적 술어 암호와 같이, 내적 술어 암호에 의해 평문 M을 직접 암호화하는 방식을 사용해도 된다. 또한, 참고문헌 9의 내적 술어 암호 방식의 구체적인 구성은 참고문헌 9의 P24-25 등에 개시되어 있기 때문에 여기서는 설명을 생략하지만, 참고문헌 9의 내적 술어 암호 방식도 서로 차원이 동일한 벡터인 술어 정보와 속성 정보의 내적이 0인 경우에 올바르게 복호되는 방식이다. 그 밖에, 어떠한 술어 암호 방식을 사용해도 상관없다.
또, 제1~3 실시형태에서는, 송신자 장치나 수신자 장치의 외부에 키 생성 장치가 설치되어 있었지만, 송신자 장치나 수신자 장치가 키 생성 장치의 기능을 구비하고 있어도 된다. 이러한 송신자 장치나 수신자 장치는 키 정보의 생성을 키 생성 장치에 의뢰하지 않고, 스스로 키 정보를 생성할 수 있다.
또, 제1~3 실시형태에서는, 수신자 장치가 송신자 장치로부터 송신된 암호문 또는 키 정보를 수신한 후에, 수신자 장치에서 술어 정보 PRE가 정해졌다. 그러나, 프로토콜에 따라서는, 수신자 장치가 송신자 장치로부터 송신된 암호문 또는 키 정보를 수신하기 전에 수신자 장치에서 술어 정보 PRE를 정할 수 있는 경우도 있다. 이 경우에는 수신자 장치가 송신자 장치로부터 송신된 암호문 또는 키 정보를 수신하기 전에 술어 정보 PRE를 정하고, 당해 술어 정보 PRE에 대응하는 키 정보 또는 암호문을 생성해도 된다.
또, 속성 정보 ATT 대신에 술어 정보 PRE를 사용하고, 술어 정보 PRE 대신에 속성 정보 ATT를 사용해도 된다. 즉, 술어 정보 PRE가 제1 대응 정보에 상당하고, 속성 정보 ATT가 제2 대응 정보에 상당해도 된다.
또, 제1~3 실시형태에서는, 각 장치가 네트워크를 통하여 정보를 주고받았다. 그러나, 각 장치가 USB 메모리 등의 가반형 기록 매체를 통하여 정보를 주고 받아도 된다.
또, 상기 서술한 각종 처리는 기재에 따라 시계열로 실행될 뿐만아니라, 처리를 실행하는 장치의 처리 능력 또는 필요에 따라서 병렬적으로 또는 개별적으로 실행되어도 된다. 그 밖에 본 발명의 취지를 일탈하지 않는 범위에서 적당히 변경이 가능한 것은 말할 필요도 없다.
〔제4~6 실시형태에서의 정의〕
다음에 제4~6 실시형태에서 사용하는 용어나 기호를 정의한다.
행렬 : 「행렬」은 연산이 정의된 집합의 원소를 직사각형으로 늘어놓은 것을 나타낸다. 환의 원소를 요소로 하는 것 뿐만아니라, 군의 원소를 요소로 하는 것도 「행렬」이라고 표현한다.
(?)T : (?)T는 ?의 전치행렬을 나타낸다.
(?)-1 : (?)-1은 ?의 역행렬을 나타낸다.
∧ : ∧는 논리곱(AND)을 나타내는 논리기호이다.
∨ : ∨는 논리합(OR)을 나타내는 논리기호이다.
¬ : ¬은 부정(NOT)을 나타내는 논리기호이다.
명제변수 : 명제변수는 명제의 「참」, 「거짓」("false", "true")를 요소로 하는 집합 {참, 거짓}상의 변수이다. 명제변수 및 명제변수의 부정을 총칭하여 리터럴(literal)이라고 한다.
논리식 : 논리식은 수리 논리학에 있어서의 명제를 나타내는 형식적 문법을 가지는 식을 의미한다. 구체적으로는 「참」 및 「거짓」은 논리식이며, 명제변수는 논리식이며, 논리식의 부정은 논리식이며, 논리식과 논리식의 논리곱은 논리식이며, 논리식과 논리식의 논리합은 논리식이다.
Z : Z는 정수 집합을 나타낸다.
sec : sec는 세큐리티 파라미터(sec∈Z, sec>0)를 나타낸다.
0* : 0*는 *개의 0으로 이루어지는 열을 나타낸다.
1* : 1*는 *개의 1로 이루어지는 열을 나타낸다.
Fq : Fq는 위수 q의 유한체를 나타낸다. 위수 q는 1 이상의 정수이며, 예를 들면, 소수나 소수의 멱승값을 위수 q로 한다. 즉, 유한체 Fq의 예는 소체나 그것을 기초체로 한 확대체이다. 또한, 유한체 Fq가 소체인 경우의 연산은, 예를 들면, 위수 q를 법으로 하는 잉여연산에 의해 용이하게 구성할 수 있다. 또, 유한체 Fq가 확대체인 경우의 연산은, 예를 들면, 기약다항식을 법으로 하는 잉여연산에 의해 용이하게 구성할 수 있다. 유한체 Fq의 구체적인 구성 방법은, 예를 들면, 참고문헌 1 「ISO/IEC 18033-2: Information technology-Security techniques-Encryption algorithms - Part 2: Asymmetric ciphers」에 개시되어 있다.
0F : 0F는 유한체 Fq의 가법단위원을 나타낸다.
1F : 1F는 유한체 Fq의 승법단위원을 나타낸다.
δ(i,j) : δ(i,j)는 크로네커의 델타 함수를 나타낸다. i=j인 경우에 δ(i,j)=1F를 만족하고, i≠j인 경우에 δ(i,j)=0 F를 만족한다.
E : E는 유한체 Fq상에서 정의된 타원곡선을 나타낸다. E는 아핀(affine) 좌표판의 Weierstrass 방정식
y2+a1?x?y+a3?y=x3+a2?x2+a4?x+a6
(단, a1, a2, a3, a4, a6∈Fq)를 만족하는 x, y∈Fq로 이루어지는 점(x, y)의 집합에 무한원점이라고 불리는 특별한 점 O를 부가한 것으로 정의된다. 타원곡선 E상의 임의의 2점에 대하여 타원가산이라고 불리는 2항 연산 + 및 타원곡선 E상의 임의의 1점에 대하여 타원역원이라고 불리는 단항 연산 -를 각각 정의할 수 있다. 또, 타원곡선 E상의 유리점으로 이루어지는 유한집합이 타원가산에 관하여 군을 이루는 것, 타원가산을 사용하여 타원 스칼라 배산이라고 불리는 연산을 정의할 수 있는 것, 및 컴퓨터상에서의 타원가산 등의 타원연산의 구체적인 연산 방법은 잘 알려져 있다(예를 들면, 참고문헌 1, 참고문헌 2 「RFC 5091: Identity-Based Cryptography Standard(IBCS)#1: Supersingular Curve Implementations of the BF and BB1 Cryptosystems」, 참고문헌 3 「이언?F?블라케, 가디엘?셀로시, 나이젤?P?스마트=저, 「타원 곡선 암호」, 출판=피어슨?에듀케이션, ISBN4-89471-431-0」등 참조).
또, 타원곡선 E상의 유리점으로 이루어지는 유한집합은 위수 p(p≥1)의 부분군을 가진다. 예를 들면, 타원곡선 E상의 유리점으로 이루어지는 유한집합의 요소수를 #E로 하고, p를 #E를 정제하는 큰 소수로 한 경우, 타원곡선 E의 p등분점으로 이루어지는 유한집합 E[p]는 타원곡선 E상의 유리점으로 이루어지는 유한집합의 부분군을 구성한다. 또한, 타원곡선 E의 p등분점은 타원곡선 E상의 점 A 중, 타원곡선 E상에서의 타원 스칼라 배산값 p?A가 p?=O를 만족하는 점을 의미한다.
G1, G2, GT : G1, G2, GT는 위수 q의 순회군을 나타낸다. 순회군 G1, G2의 구체예는 타원곡선 E의 p등분점으로 이루어지는 유한집합 E[p]나 그 부분군이다. G1=G2여도 되고 G1≠G2여도 된다. 또, 순회군 GT의 구체예는 유한체 Fq를 기초체로 하는 확대체를 구성하는 유한집합이다. 그 일례는 유한체 Fq의 대수폐포에 있어서의 1의 p승근으로 이루어지는 유한집합이다. 순회군 G1, G2, GT의 위수와 유한체 Fq의 위수를 동일하게 함으로써 안전성이 향상한다.
또한, 본 형태에서는, 순회군 G1, G2상에서 정의된 연산을 가법적으로 표현하고, 순회군 GT상에서 정의된 연산을 승법적으로 표현한다. 즉, χ∈Fq 및 Ω∈G1에 대한 χ?Ω∈G1은 Ω∈G1에 대하여 순회군 G1으로 정의된 연산을 χ회 시행하는 것을 의미하고, Ω1, Ω2∈G1에 대한 Ω12∈G1은 Ω1∈G1과 Ω2∈G1을 피연산자로서 순회군 G1에서 정의된 연산을 행하는 것을 의미한다. 마찬가지로, χ∈Fq 및 Ω∈G2에 대한 χ?Ω∈G2는 Ω∈G2에 대하여 순회군 G2에서 정의된 연산을 χ회 시행하는 것을 의미하고, Ω1, Ω2∈G2에 대한 Ω12∈G2는 Ω1∈G2와 Ω2∈G2를 피연산자로서 순회군 G2에서 정의된 연산을 행하는 것을 의미한다. 한편, χ∈Fq 및 Ω∈GT에 대한 Ωχ∈GT는 Ω∈GT에 대하여 순회군 GT에서 정의된 연산을 χ회 시행하는 것을 의미하고, Ω12∈GT에 대한 Ω12∈GT는 Ω1∈GT와 Ω2∈GT를 피연산자로서 순회군 GT에서 정의된 연산을 행하는 것을 의미한다.
Ψ : Ψ는 1 이상의 정수를 나타낸다.
ψ : ψ는 0 이상 Ψ 이하의 정수 ψ=0,...,Ψ를 나타낸다.
λ : λ는 1 이상 Ψ 이하의 정수 λ=1,...,Ψ를 나타낸다.
n(ψ) : n(ψ)는 1 이상의 정수를 나타낸다.
ζ(ψ) : ζ(ψ)는 0 이상의 정수를 나타낸다.
G1 n(ψ)+ζ(ψ) : G1 n(ψ)+ζ(ψ)는 n(ψ)+ζ(ψ)개의 순회군 G1의 직적을 나타낸다.
G2 n(ψ)+ζ(ψ) : G2 n(ψ)+ζ(ψ)는 n(ψ)+ζ(ψ)개의 순회군 G2의 직적을 나타낸다.
g1, g2, gT : g1, g2, gT는 순회군 G, G1, G2, GT의 생성원을 나타낸다.
V(ψ) : V(ψ)는 n(ψ)+ζ(ψ)개의 순회군 G1의 직적으로 이루어지는 n(ψ)+ζ(ψ)차원의 벡터 공간을 나타낸다.
V*(ψ) : V*(ψ)는 n(ψ)+ζ(ψ)개의 순회군 G2의 직적으로 이루어지는 n(ψ)+ζ(ψ)차원의 벡터 공간을 나타낸다.
eψ : eψ는 직적 G1 n(ψ)+ζ(ψ)과 직적 G2 n(ψ)+ζ(ψ)의 직적 G1 n(ψ)+ζ(ψ)×G2 n(ψ)+ζ(ψ)을 순회군 GT에 그리는 비퇴화한 쌍선형사상(bilinear map)을 나타낸다. 쌍선형사상 eψ는 순회군 G1의 n(ψ)+ζ(ψ)개의 원소 γβ(β=1,...,n(ψ)+ζ(ψ))과 순회군 G2의 n(ψ)+ζ(ψ)개의 원소 γβ *(β=1,...,n(ψ)+ζ(ψ))을 입력으로 하고, 순회군 GT의 1개의 원소를 출력한다.
eψ:G1 n(ψ)+ζ(ψ)×G2 n(ψ)+ζ(ψ)→GT…(61)
쌍선형사상 eψ는 이하의 성질을 만족한다.
[쌍선형성] 모든 Γ1∈G1 n(ψ)+ζ(ψ), Γ2∈G2 n(ψ)+ζ(ψ) 및 ν,κ∈Fq에 대해서 이하의 관계를 만족한다.
eψ(ν?Γ1,κ?Γ2)=eψ12)ν?κ…(62)
[비퇴화성] 모든 Γ1∈G1 n(ψ)+ζ(ψ),Γ2∈G2 n(ψ)+ζ(ψ)을 순회군 GT의 단위원에 그리는 사상이 아니다.
[계산 가능성] 모든
Γ1∈G1 n(ψ)+ζ(ψ),Γ2∈G2 n(ψ)+ζ(ψ)…(63)
에 대해서 eψ12)를 효율적으로 계산하는 알고리즘이 존재한다.
본 형태에서는, 순회군 G1과 순회군 G2의 직적 G1×G2를 순회군 GT에 그리는 비퇴화한 쌍선형사상
Pair:G1×G2→GT…(64)
를 사용하여 쌍선형사상 eψ를 구성한다. 본 형태의 쌍선형사상 eψ는 순회군 G1의 n(ψ)+ζ(ψ)개의 원소 γβ(β=1,...,n(ψ)+ζ(ψ))로 이루어지는 n(ψ)+ζ(ψ)차원 벡터 (γ1,...,γn(ψ)+ζ(ψ))와, 순회군 G2의 n(ψ)+ζ(ψ)개의 원소 γβ *(β=1,...,n(ψ)+ζ(ψ))로 이루어지는 n(ψ)+ζ(ψ)차원 벡터 (γ1 *,...,γn(ψ)+ζ(ψ) *)의 입력에 대하여, 순회군 GT의 1개의 원소를 출력한다.
eψ:Πβ=1 n(ψ)+ζ(ψ)Pair(γβ, γβ *)…(65)
또한, 쌍선형사상 Pair는 순회군 G1의 1개의 원소와 순회군 G2의 1개의 원소의 세트를 입력으로 하고, 순회군 GT의 1개의 원소를 출력한다. 쌍선형사상 Pair는 이하의 성질을 만족한다.
[쌍선형성] 모든 Ω1∈G1,Ω2∈G2 및 ν,κ∈Fq에 대해서 이하의 관계를 만족한다.
Pair(ν?Ω1,κ?Ω2)=Pair(Ω12)ν?κ…(66)
[비퇴화성] 모든
Ω1∈G1,Ω2∈G2…(67)
를 순회군 GT의 단위원에 그리는 사상이 아니다.
[계산 가능성] 모든 Ω1∈G1,Ω2∈G2에 대해서 Pair(Ω12)를 효율적으로 계산하는 알고리즘이 존재한다.
쌍선형사상 Pair의 구체예는 Weil 페어링이나 Tate 페어링 등의 페어링 연산을 행하기 위한 함수이다(예를 들면, 참고문헌 4 「Alfred. J. Menezes, ELLIPTIC CURVE PUBLIC KEY CRYPTOSYSTEMS, KLUWER ACADEMIC PUBLISHERS, ISBN0-7923-9368-6,pp. 61-81」등 참조). 또, 타원곡선 E의 종류에 따라, Tate 페어링 등의 페어링 연산을 행하기 위한 함수와 소정의 함수 phi를 조합한 변경 페어링 함수 e(Ω1,phi(Ω2))(Ω1∈G1,Ω2∈G2)를 쌍선형사상 Pair로서 사용해도 된다(예를 들면, 참고문헌 2 등 참조). 또, 페어링 연산을 컴퓨터상에서 행하기 위한 알고리즘으로서는, 주지의 Miller의 알고리즘(참고문헌 5 「V. S. Miller, "Short Programs for functions on Curves," 1986, 인터넷 <http://crypto.stanford.edu/miller/miller.pdf>」 등이 존재한다. 또, 페어링 연산을 효율적으로 행하기 위한 타원곡선이나 순회군의 구성 방법은 잘 알려져 있다(예를 들면, 참고문헌 2, 참고문헌 6 「A. Miyaji, M. Nakabayashi, S.Takano, "New explicit conditions of elliptic curve Traces for FR-Reduction," IEICE Trans. Fundamentals, vol. E84-A, no05, pp. 1234-1243, May 2001」, 참고문헌 7 「P.S.L.M. Barreto, B. Lynn, M. Scott, "Constructing elliptic curves with prescribed embedding degrees," Proc. SCN ' 2002, LNCS 2576, pp. 257-267, Springer-Verlag. 2003」, 참고문헌 8 「R. Dupont, A. Enge, F. Morain, "Building curves with arbitrary small MOV degree over finite prime fields," http://eprint.iacr.org/2002/094/」 등 참조).
ai(ψ)(i=1,...,n(ψ)+ζ(ψ)) : ai(ψ)는 순회군 G1의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 n(ψ)+ζ(ψ)차원의 기저 벡터를 나타낸다. 기저 벡터 ai(ψ)의 일례는 κ1?g1∈G1을 i차원째의 요소로 하고, 나머지 n(ψ)+ζ(ψ)-1개의 요소를 순회군 G1의 단위원(가법적으로 「0」으로 표현)으로 하는 n(ψ)+ζ(ψ)차원의 기저 벡터이다. 이 경우, n(ψ)+ζ(ψ)차원의 기저 벡터 ai(ψ)(i=1,...,n(ψ)+ζ(ψ))의 각 요소를 각각 열거하여 표현하면, 이하와 같이 된다.
a1(ψ)=(κ1?g1,0,0,...,0)
a2(ψ)=(0,κ1?g1,0,...,0)…(68)
...
an(ψ)+ζ(ψ)(ψ)=(0,0,0,...,κ1?g1)
여기서, κ1은 가법단위원 0F 이외의 유한체 Fq의 원소로 이루어지는 상수이며, κ1∈Fq의 구체예는 κ1=1F이다. 기저 벡터 ai(ψ)는 직교기저이며, 순회군 G1의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 모든 n(ψ)+ζ(ψ)차원 벡터는 n(ψ)+ζ(ψ)차원의 기저 벡터 ai(ψ)(i=1,...,n(ψ)+ζ(ψ))의 선형합에 의해 표시된다. 즉, n(ψ)+ζ(ψ)차원의 기저 벡터 ai(ψ)는 상기 서술한 벡터 공간 V(ψ)를 펼친다.
ai *(ψ)(i=1,...,n(ψ)+ζ(ψ)) : 순회군 G2의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 n(ψ)+ζ(ψ)차원의 기저 벡터를 나타낸다. 기저 벡터 ai *(ψ)의 일례는 κ2?g2∈G2를 i차원째의 요소로 하고, 나머지 n(ψ)+ζ(ψ)-1개의 요소를 순회군 G2의 단위원(가법적으로 「0」으로 표현)으로 하는 n(ψ)+ζ(ψ)차원의 기저 벡터이다. 이 경우, 기저 벡터 ai *(ψ)(i=1,...,n(ψ)+ζ(ψ))의 각 요소를 각각 열거하여 표현하면, 이하와 같이 된다.
a1 *(ψ)=(κ2?g2,0,0,...,0)
a2 *(ψ)=(0,κ2?g2,0,...,0)…(69)
...
an(ψ)+ζ(ψ) *(ψ)=(0,0,0,...,κ2?g2)
여기서, κ2는 가법단위원 0F 이외의 유한체 Fq의 원소로 이루어지는 상수이며, κ2∈Fq의 구체예는 κ2=1F이다. 기저 벡터 ai *(ψ)는 직교기저이며, 순회군 G2의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 모든 n(ψ)+ζ(ψ)차원 벡터는 n(ψ)+ζ(ψ)차원의 기저 벡터 ai *(ψ)(i=1,...,n(ψ)+ζ(ψ))의 선형합에 의해 표시된다. 즉, n(ψ)+ζ(ψ)차원의 기저 벡터 ai *(ψ)는 상기 서술한 벡터 공간 V*(ψ)를 펼친다.
또한, 기저 벡터 ai(ψ)와 기저 벡터 ai *(ψ)는 0F를 제외하는 유한체 Fq의 원소 τ=κ12에 대해서
eψ(ai(ψ), aj *(ψ))=gT τ?δ(i,j)…(70)
을 만족한다. 즉, i=j인 경우에는, 식(65)(66)의 관계로부터,
eψ(ai(ψ), aj *(ψ))
= Pair(κ1?g12?g2)?Pair(0, 0)?...?Pair(0, 0)
= Pair(g1, g2)κ1?κ2?Pair(g1, g2)0?0?...?Pair(g1, g2)0?0
= Pair(g1, g2)κ1?κ2=gT τ
를 만족한다. 또한, 위첨자 κ1,κ2는 각각 κ1,κ2를 나타낸다. 한편, i≠j인 경우에는 eψ(ai(ψ), aj *(ψ))=Πi=1 n(ψ)+ζ(ψ) Pair(ai(ψ), aj *(ψ))의 우변은 Pair(κ1?g12?g2)를 포함하지 않고, Pair(κ1?g1,0)와 Pair(0,κ2?g2)와 Pair(0,0)의 곱이 된다. 또한, 식(66)의 관계로부터 Pair(g1, 0)=Pair(0, g2)=Pair(g1, g2)0을 만족한다. 그 때문에, i≠j인 경우에는,
eψ(ai(ψ), aj *(ψ))=eψ(g1, g2)0=gT 0
를 만족한다.
특히, τ=κ12=1F인 경우(예를 들면, κ12=1F인 경우),
e(ai(ψ), aj *(ψ))=gT δ(i,j)…(71)
을 만족한다. 여기서, gT 0=1은 순회군 GT의 단위원이며, gT 1=gT는 순회군 GT의 생성원이다. 이 경우, 기저 벡터 ai(ψ)와 기저 벡터 ai *(ψ)는 쌍대 정규 직교 기저이며, 벡터 공간 V(ψ)와 벡터 공간 V*(ψ)는 쌍선형사상을 구성 가능한 쌍대 벡터 공간〔쌍대 페어링 벡터 공간(DPVS:Dual Paring Vector space)〕이다.
A(ψ) : 기저 벡터 ai(ψ)(i=1,...,n(ψ)+ζ(ψ))를 요소로 하는 n(ψ)+ζ(ψ)행n(ψ)+ζ(ψ)열의 행렬을 나타낸다. 예를 들면, 기저 벡터 ai(ψ)(i=1,...,n(ψ)+ζ(ψ))가 식(68)에 의해 표현되는 경우, 행렬 A(ψ)는,
[수 12]
Figure pct00014
가 된다.
A*(ψ) : 기저 벡터 ai *(ψ)(i=1,...,n(ψ)+ζ(ψ))를 요소로 하는 n(ψ)+ζ(ψ)행n(ψ)+ζ(ψ)열의 행렬을 나타낸다. 예를 들면, 기저 벡터 ai *(ψ)(i=1,...,n(ψ)+ζ(ψ))가 식(69)에 의해 표현되는 경우, 행렬 A*(ψ)는,
[수 13]
Figure pct00015
이 된다.
X(ψ) : X(ψ)는 유한체 Fq의 원소를 요소로 하는 n(ψ)+ζ(ψ)행n(ψ)+ζ(ψ)열의 행렬을 나타낸다. 행렬 X(ψ)는 기저 벡터 ai(ψ)의 좌표변환에 사용된다. 행렬 X(ψ)의 i행j열(i=1,...,n(ψ)+ζ(ψ),j=1,...,n(ψ)+ζ(ψ))의 요소를 χi,j(ψ)∈Fq로 하면, 행렬 X(ψ)는,
[수 14]
Figure pct00016
가 된다. 또한, 행렬 X(ψ)의 각 요소 χi,j(ψ)를 변환 계수라고 한다.
X *(ψ) : X *(ψ)와 행렬 X(ψ)는 X*(ψ)=τ'?(X(ψ)-1)T의 관계를 만족한다. 단, τ'∈Fq는 유한체 Fq에 속하는 임의의 상수이며, 예를 들면, τ'=1F이다. X*(ψ)는 기저 벡터 ai *(ψ)의 좌표변환에 사용된다. 행렬 X*(ψ)의 i행j열의 요소를 χi,j *(ψ)∈Fq로 하면, 행렬 X*(ψ)는,
[수 15]
Figure pct00017
가 된다. 또한, 행렬 X*(ψ)의 각 요소 χi,j *(ψ)를 변환 계수라고 한다.
이 경우, n(ψ)+ζ(ψ)행n(ψ)+ζ(ψ)열의 단위행렬을 I(ψ)로 하면 X(ψ)?(X*(ψ))T=τ'?I(ψ)를 만족한다. 즉, 단위행렬
[수 16]
Figure pct00018
에 대하여,
[수 17]
Figure pct00019
을 만족한다. 여기서, n(ψ)+ζ(ψ)차원 벡터
χi (ψ)=(χi,1(ψ),...,χi,n(ψ)+ζ(ψ)(ψ))…(78)
χj →*(ψ)=(χj,1 *(ψ),...,χj,n(ψ)+ζ(ψ) *(ψ))…(79)
를 정의한다. 그러면, 식(77)의 관계로부터, n(ψ)+ζ(ψ)차원 벡터 χi (ψ)와 χj →*(ψ)의 내적은,
χi (ψ)?χj →*(ψ)=τ'?δ(i,j)…(80)
이 된다.
bi(ψ) : bi(ψ)는 순회군 G1의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 n(ψ)+ζ(ψ)차원의 기저 벡터를 나타낸다. bi(ψ)는 행렬 X(ψ)를 사용하여 기저 벡터 ai(ψ) (i=1,...,n(ψ)+ζ(ψ))를 좌표변환함으로써 얻어진다. 구체적으로는 기저 벡터 bi(ψ)는,
bi(ψ)=Σj=1 n(ψ)+ζ(ψ)χi,j(ψ)?aj(ψ)…(81)
의 연산에 의해 얻어진다. 예를 들면, 기저 벡터 aj(ψ)(j=1,...,n(ψ)+ζ(ψ))가 식(68)에 의해 표현되는 경우, 기저 벡터 bi(ψ)의 각 요소를 각각 열거하여 표현하면, 이하와 같이 된다.
bi(ψ)=(χi,1(ψ)?κ1?g1i,2(ψ)?κ1?g1
...,χi,n(ψ)+ζ(ψ)(ψ)?κ1?g1)…(82)
순회군 G1의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 모든 n(ψ)+ζ(ψ)차원 벡터는 n(ψ)+ζ(ψ)차원의 기저 벡터 bi(ψ)(i=1,...,n(ψ)+ζ(ψ))의 선형합에 의해 표시된다. 즉, n(ψ)+ζ(ψ)차원의 기저 벡터 bi(ψ)는 상기 서술한 벡터 공간 V(ψ)를 펼친다.
bi *(ψ) : bi *(ψ)는 순회군 G2의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 n(ψ)+ζ(ψ)차원의 기저 벡터를 나타낸다. bi *(ψ)는 행렬 X*(ψ)를 사용하여 기저 벡터 ai *(ψ)(i=1,...,n(ψ)+ζ(ψ))를 좌표변환함으로써 얻어진다. 구체적으로는, 기저 벡터 bi *(ψ)는,
bi *(ψ)=Σj=1 n(ψ)+ζ(ψ)χi,j *(ψ)?aj *(ψ)…(83)
의 연산에 의해 얻어진다. 예를 들면, 기저 벡터 aj *(ψ) (j=1,...,n(ψ)+ζ(ψ))가 식(69)에 의해 표현되는 경우, 기저 벡터 bi *(ψ)의 각 요소를 각각 열거하여 표현하면, 이하와 같이 된다.
bi *(ψ)=(χi,1 *(ψ)?κ2?g2i,2 *(ψ)?κ2?g2,
...,χi,n(ψ)+ζ(ψ) *(ψ)?κ2?g2)…(84)
가 된다. 순회군 G2의 n(ψ)+ζ(ψ)개의 원소를 요소로 하는 모든 n(ψ)+ζ(ψ)차원 벡터는 n(ψ)+ζ(ψ)차원의 기저 벡터 bi *(ψ)(i=1,...,n(ψ)+ζ(ψ))의 선형합에 의해 표시된다. 즉, n(ψ)+ζ(ψ)차원의 기저 벡터 bi *(ψ)는 상기 서술한 벡터 공간 V*(ψ)를 펼친다.
또한, 기저 벡터 bi(ψ)와 기저 벡터 bi *(ψ)는 0F를 제외한 유한체 Fq의 원소 τ=κ12에 대해서
eψ(bi(ψ), bj *(ψ))=gT τ?τ'?δ(i,j)…(85)
를 만족한다. 즉, 식(65)(80)(82)(84)의 관계로부터,
[수 18]
Figure pct00020
을 만족한다. 특히 τ=κ12=1F(예를 들면, κ12=1F) 및 τ'=1F인 경우,
eψ(bi(ψ), bj *(ψ))=gT δ(i,j)…(86)
을 만족한다. 이 경우, 기저 벡터 bi(ψ)와 기저 벡터 bi *(ψ)는 쌍대 페어링 벡터 공간(벡터 공간 V(ψ)와 벡터 공간 V*(ψ))의 쌍대 정규 직교 기저이다.
또한, 식(85)의 관계를 만족하는 것이면, 식(68)(69)에서 예시한 것 이외의 기저 벡터 ai(ψ) 및 ai *(ψ)나, 식(81)(83)에서 예시한 것 이외의 기저 벡터 bi(ψ) 및 bi *(ψ)를 사용해도 된다.
B(ψ) : B(ψ)는 기저 벡터 bi(ψ) (i=1,...,n(ψ)+ζ(ψ))를 요소로 하는 n(ψ)+ζ(ψ)행n(ψ)+ζ(ψ)열의 행렬이다. B(ψ)=X(ψ)?A(ψ)를 만족한다. 예를 들면, 기저 벡터 bi(ψ)가 식(82)에 의해 표현되는 경우, 행렬 B(ψ)는,
[수 19]
Figure pct00021
가 된다.
B*(ψ) : B*(ψ)는 기저 벡터 bi *(ψ) (i=1,...,n(ψ)+ζ(ψ))를 요소로 하는 n(ψ)+ζ(ψ)행n(ψ)+ζ(ψ)열의 행렬을 나타낸다. B*(ψ)=X*(ψ)?A*(ψ)를 만족한다. 예를 들면, 기저 벡터 bi *(ψ) (i=1,...,n(ψ)+ζ(ψ))가 식(84)에 의해 표현되는 경우, 행렬 B*(ψ)는,
[수 20]
Figure pct00022
이 된다.
v(λ) : v(λ)는 유한체 Fq의 원소를 요소로 하는 n(λ)차원 벡터를 나타낸다.
v(λ)=(v1(λ),...,vn(λ)(λ))∈Fq n(λ)…(89)
vμ(λ) : vμ(λ)는 n(λ)차원 벡터 v(λ)의 μ(μ=1,...,n(λ))번째의 요소를 나타낸다.
w(λ) : w(λ)는 유한체 Fq의 원소를 요소로 하는 n(λ)차원 벡터를 나타낸다.
w(λ)=(w1(λ),...,wn(λ)(λ))∈Fq n(λ)…(90)
wμ(λ) : wμ(λ)는 n(λ)차원 벡터 w(λ)のμ(μ=1,...,n(λ))번째의 요소를 나타낸다.
Enc : Enc는 공통 키 암호 방식의 암호화 처리를 나타내는 공통 키 암호함수를 나타낸다.
EncK(M) : EncK(M)은 공통 키 K를 사용하고, 공통 키 암호 함수 Enc에 따라서 평문 M을 암호화하여 얻어진 암호문을 나타낸다.
Dec : Dec는 공통 키 암호 방식의 복호 처리를 나타내는 공통 키 복호함수를 나타낸다.
DecK(C) : DecK(C)는 공통 키 K를 사용하고, 공통 키 복호함수 Dec에 따라서 암호문 C를 복호하여 얻어진 복호 결과를 나타낸다.
〔함수 암호 방식〕
다음에 제4~6 실시형태에서의 함수 암호 방식의 기본적인 구성에 대해서 설명한다.
함수 암호 방식은 조건 정보와 속성 정보의 조합에 의해 정해지는 논리식의 진리값이 「참」이 되는 경우에 암호문이 복호되는 방식이다. 「조건 정보」와 「속성 정보」의 일방이 암호문에 메워넣어지고, 타방이 키 정보에 메워넣어진다. 예를 들면, 「"Predicate Encryption Supporting Disjunctions, Polynomial Equations, and Inner Products," with Amit Sahai and Brent Waters One of 4 papers from Eurocrypt 2008 invited to the Journal of Cryptology」(참고문헌 9)에 개시된 술어 암호 방식은 함수 암호 방식의 일종이다.
이 이외에도 여러가지 공지의 함수 암호 방식이 존재하는데, 이하에서는 미공개의 새로운 함수 암호 방식을 설명한다. 이하에 설명하는 새로운 함수 암호 방식에서는 비밀 정보에 따른 값이 소정의 논리식에 따른 태양에서 계층적으로 비밀 분산된다. 소정의 논리식은 조건 정보와 속성 정보의 조합에 의해 진리값이 정해지는 명제변수를 포함하고, 필요에 따라서 추가로 논리기호 ∧,∨,¬의 어느 하나 또는 모두를 포함한다. 그리고, 각 명제변수의 진리값이 특정됨으로써 정해지는 당해 소정의 논리식의 진리값이 「참」이 되는 경우에 비밀 정보에 따른 값이 복원되고, 그것에 기초하여 암호문이 복호된다.
<논리식과 계층적인 비밀 분산의 관계>
상기 서술한 소정의 논리식과 계층적인 비밀 분산의 관계를 설명한다.
비밀 분산은 역치 Kt(Kt≥1)개 이상의 쉐어 정보가 얻어진 경우에만 비밀 정보가 복원되도록, 비밀 정보를 N(N≥2)개의 쉐어 정보로 분산하는 것이다. Kt=N을 만족하는 비밀 분산의 방식(SSS : Secret Sharing Scheme)을 N-out-of-N 분산 방식(또는 「N-out-of-N 역치 분산 방식」)이라고 하고, Kt<N을 만족하는 비밀 분산의 방식을 Kt-out-of-N 분산 방식(또는 「Kt-out-of-N 역치 분산 방식」)이라고 한다(예를 들면, 참고문헌 11 「쿠로사와 카오루, 오가타 와카하, "현대 암호의 기초수리(전자정보통신 렉처 시리즈)", 코로나사, 2004년 3월, p.116-119」, 참고문헌 12 「A. Shamir, "How to Share a Secret", Communications of the ACM, November 1979, Volume 22, Number 11, pp. 612-613.」 등 참조).
N-out-of-N 분산 방식은 모든 쉐어 정보 Share(1) ,...,share(N)이 주어지면 비밀 정보 SE를 복원할 수 있는데, 임의의 N-1개의 쉐어 정보 Share(φ1) ,...,share(φn-1)이 주어져도 비밀 정보 SE의 정보는 전혀 얻어지지 않는 방식이다. 이하에, 그 일례를 나타낸다.
?SH1,...,SHN-1을 랜덤으로 선택한다.
?SHN=SE-(SH1+...+SHN-1)의 계산을 행한다.
?SH1,...,SHN을 각 쉐어 정보 Share(1) ,...,share(N)로 한다.
?모든 쉐어 정보 Share(1) ,...,share(N)이 주어지면,
SE=share(1)+...+share(N)…(91)
의 복원 처리에 의해 비밀 정보 SE의 복원이 가능하다.
Kt-out-of-N 분산 방식은 임의의 상이한 Kt개의 쉐어 정보 share(φ1),...,share(φKt)가 주어지면 비밀 정보 SE를 복원할 수 있는데, 임의의 Kt-1개의 쉐어 정보 share(φ1),...,share(φKt-1)가 주어져도 비밀 정보 SE의 정보는 전혀 얻어지지 않는 방식이다. 또한, 첨자인 Kt는 Kt를 나타낸다. 이하에 Kt-out-of-N 분산 방식의 일례를 나타낸다.
?f(0)=SE를 만족하는 Kt-1차의 다항식 f(x)=ξ01?x+ξ2?x2+...+ξKt-1?xKt-1를 랜덤으로 선택한다. 즉, ξ0=SE로 하고, ξ1,..., ξKt-1을 랜덤으로 선택한다. 쉐어 정보를 share(ρ)=(ρ, f(ρ))(ρ=1,...,N)로 한다. 또한, (ρ, f(ρ))는 ρ 및 f(ρ)의 값을 각각 추출 가능한 정보이며, 예를 들면 ρ와 f(ρ)의 비트 결합값이다.
?임의의 상이한 Kt개의 쉐어 정보 share(φ1),...,share(φKt)((φ1,...,φKt)⊂(1,...,N))가 얻어진 경우, 예를 들면, 라그랑지(Lagrange)의 보간 공식을 사용하고, 이하와 같은 복원 처리에 의해 비밀 정보 SE의 복원이 가능하다.
SE=f(0)=LA1?f(φ1)+...+ LAKt?f(φKt)…(92)
[수 21]
Figure pct00023
은 선두부터 ρ번째의 피연산자〔분모의 요소(φρρ), 분자의 요소(x-φρ)〕가 존재하지 않는 것을 의미한다. 즉, 식(93)의 분모는,
ρ1)?...?(φρρ-1)?(φρρ+1)?...?(φρKt)
이며, 식(93)의 분자는,
(x-φ1)?...?(x-φρ-1)?(x-φρ+1)?...?(x-φKt)
이다.
상기 서술한 각 비밀 분산은 체상에서도 실행 가능하다. 또, 이들을 확장하여 비밀 정보 SE에 따른 값을 쉐어 정보 Share에 따른 값에 비밀 분산할 수도 있다. 비밀 정보 SE에 따른 값은 비밀 정보 SE 그 자체나 비밀 정보 SE의 함수값이며, 쉐어 정보 Share에 따른 값은 쉐어 정보 Share 그 자체나 쉐어 정보의 함수값이다. 예를 들면, 유한체 Fq의 원소인 비밀 정보 SE∈Fq에 따른 순회군 GT의 원소 gT SE∈GT를 비밀 정보 SE의 각 쉐어 정보 Share(1), share(2)에 따른 순회군 GT의 원소 gT share(1),gT share(2)∈GT에 비밀 분산할 수도 있다. 또, 상기 서술한 비밀 정보 SE는 쉐어 정보 Share의 선형 결합이 된다(식(91)(92)). 이와 같이 비밀 정보 SE가 쉐어 정보 Share의 선형 결합이 되는 비밀 분산 방식을 선형 비밀 분산 방식이라고 한다.
상기 서술한 소정의 논리식은 비밀 정보를 계층적으로 비밀 분산하여 얻어지는 나무구조 데이터에 의해 표현할 수 있다. 즉, 드?모르간 법칙에 의해, 상기 서술한 소정의 논리식은 리터럴로 이루어지는 논리식, 또는 논리기호 ∧, ∨의 적어도 일부와 리터럴로 이루어지는 논리식(이들을 「표준형 논리식」이라고 부르기로 함)에 의해 표현할 수 있고, 이 표준형 논리식은 비밀 정보를 계층적으로 비밀 분산하여 얻어지는 나무구조 데이터에 의해 표현할 수 있다.
표준형 논리식을 표현하는 나무구조 데이터는 복수의 노드를 포함하고, 적어도 일부의 노드는 1개 이상의 자노드의 친노드로 되어 있고, 친노드의 1개는 루트노드로 되어 있고, 자노드의 적어도 일부는 잎노드로 되어 있다. 루트노드의 친노드나, 잎노드의 자노드는 존재하지 않는다. 루트노드에는 비밀 정보에 따른 값이 대응하고, 각 친노드의 자노드에는 당해 친노드에 대응하는 값을 비밀 분산한 쉐어 정보에 따른 값이 대응한다. 각 노드에서의 비밀 분산 형태(비밀 분산 방식이나 역치)는 표준형 논리식에 따라 정해진다. 또, 각 잎노드에는 표준형 논리식을 구성하는 각 리터럴이 대응하고, 당해 각 리터럴의 진리값은 조건 정보와 속성 정보의 조합에 의해 정해진다.
여기서, 진리값이 참이 된 리터럴에 대응하는 잎노드에 대응하는 쉐어 정보에 따른 값은 얻어지지만, 진리값이 거짓이 된 리터럴에 대응하는 잎노드에 대응하는 쉐어 정보에 따른 값은 얻어지지 않는 것으로 한다. 또, 상기 서술한 비밀 분산의 성질에 의해, 친노드에 대응하는 쉐어 정보에 따른 값(그 친노드가 루트노드이면 비밀 정보에 따른 값)은 그 자노드에 대응하는 쉐어 정보에 따른 값이 당해 친노드에 대응하는 역치 이상의 개수만큼 얻어진 경우에만 복원된다. 그 때문에, 어느 잎노드에 대응하는 리터럴의 진리값이 참이 되었는지와 나무구조 데이터의 구성(각 노드에서의 비밀 분산의 형태를 포함함)에 따라, 최종적으로 루트노드에 대응하는 비밀 정보에 따른 값을 복원할 수 있는지 여부가 정해진다. 그리고, 각 잎노드에 대응하는 각 리터럴의 진리값이 표준형 논리식의 진리값을 참으로 하는 경우에만 최종적으로 루트노드에 대응하는 비밀 정보에 따른 값을 복원할 수 있도록 나무구조 데이터가 구성되어 있는 경우, 이러한 나무구조 데이터는 표준형 논리식을 표현한다. 이러한 표준형 논리식을 표현하는 나무구조 데이터는 용이하게 설정할 수 있다. 이하에 구체예를 나타낸다.
도 32는 명제변수 PRO(1), PRO(2)와 명제변수 PRO(3)의 부정 ¬PRO(3)와 논리기호 ∧, ∨를 포함하는 표준형 논리식 PRO(1)∧PRO(2)∨¬PRO(3)를 표현하는 나무구조 데이터를 예시하는 도면이다. 도 32에 예시하는 나무구조 데이터는 복수의 노드 N1,...,N5를 포함한다. 노드 N1은 노드 N2, N5의 친노드가 되고, 노드 N2는 노드 N3, N4의 친노드가 되고, 친노드의 1개 노드 N1이 루트노드가 되고, 자노드의 일부인 노드 N3, N4, N5가 잎노드가 된다. 노드 N1에는 비밀 정보 SE에 따른 값이 대응하고, 노드 N1의 자노드 N2, N5에는 비밀 정보 SE에 따른 값이 1-out-of-2 분산 방식으로 비밀 분산된 각 쉐어 정보 SE, SE에 따른 값이 각각 대응한다. 노드 N2의 자노드 N3, N4에는 쉐어 정보 SE에 따른 값이 2-out-of-2 분산 방식으로 비밀 분산된 각 쉐어 정보 SE-SH1, SH1에 따른 값이 각각 대응한다. 즉, 잎노드 N3에는 쉐어 정보 Share(1)=SE-SH1에 따른 값이 대응하고, 잎노드 N4에는 쉐어 정보 Share(2)=SH1에 따른 값이 대응하고, 잎노드 N5에는 쉐어 정보 Share(3)=SE에 따른 값이 대응한다. 또, 잎노드 N3, N4, N5에는 표준형 논리식 PRO(1)∧PRO(2)∨¬PRO(3)을 구성하는 각 리터럴 PRO(1), PRO(2), ¬PRO(3)가 각각 대응하고, 당해 각 리터럴 PRO(1), PRO(2), ¬PRO(3)의 진리값은 조건 정보와 속성 정보의 조합에 의해 정해진다. 여기서, 진리값이 참이 된 리터럴에 대응하는 잎노드에 대응하는 쉐어 정보에 따른 값은 얻어지지만, 진리값이 거짓이 된 리터럴에 대응하는 잎노드에 대응하는 쉐어 정보에 따른 값은 얻어지지 않는다. 이 경우, 조건 정보와 속성 정보의 조합이 표준형 논리식 PRO(1)∧PRO(2)∨¬PRO(3)의 진리값을 참으로 하는 경우에만 비밀 정보 SE에 따른 값이 복원된다.
도 33은, 명제변수 PRO(1), PRO(2), PRO(3), PRO(6), PRO(7)와 명제변수 PRO(4), PRO(5)의 부정 ¬PRO(4), ¬PRO(5)와 논리기호 ∧, ∨를 포함하는 표준형 논리식 PRO(1)∧PRO(2)∨PRO(2)∧PRO(3)∨PRO(1)∧PRO(3)∨¬PRO(4)∨(¬PRO(5)∧PRO(6))∧PRO(7)을 표현하는 나무구조 데이터를 예시하는 도면이다.
도 33에 예시하는 나무구조 데이터는 복수의 노드 N1,...,N11을 포함한다. 노드 N1은 노드 N2, N6, N7의 친노드가 되고, 노드 N2는 노드 N3, N4, N5의 친노드가 되고, 노드 N7은 노드 N8, N11의 친노드가 되고, 노드 N8은 노드 N9, N10의 친노드가 되고, 친노드의 1개인 노드 N1이 루트노드가 되고, 노드 N3, N4, N5, N6, N9, N10, N11이 잎노드가 된다. 노드 N1에는 비밀 정보 SE에 따른 값이 대응하고, 노드 N1의 자노드 N2, N6, N7에는 비밀 정보 SE에 따른 값이 1-out-of-3 분산 방식으로 비밀 분산된 각 쉐어 정보 SE, SE, SE에 따른 값이 각각 대응한다. 노드 N2의 자노드 N3, N4, N5에는 쉐어 정보 SE에 따른 값이 2-out-of-3 분산 방식으로 비밀 분산된 각 쉐어 정보(1,f(1)),(2,f(2)),(3,f(3))에 따른 값이 각각 대응한다. 노드 N7의 자노드 N8, N11에는 쉐어 정보 SE에 따른 값이 2-out-of-2 분산 방식으로 비밀 분산된 각 쉐어 정보 SH4, SE-SH4에 따른 값이 각각 대응한다. 노드 N8의 자노드 N9, N10에는 쉐어 정보 SH4에 따른 값이 1-out-of-2 분산 방식으로 비밀 분산된 각 쉐어 정보 SH4, SH4에 따른 값이 각각 대응한다. 즉, 잎노드 N3에는 쉐어 정보 Share(1)=(1,f(1))에 따른 값이 대응하고, 잎노드 N4에는 쉐어 정보 Share(2)=(2,f(2))에 따른 값이 대응하고, 잎노드 N5에는 쉐어 정보 Share(3)=(3,f(3))에 따른 값이 대응하고, 잎노드 N6에는 쉐어 정보 Share(4)=SE에 따른 값이 대응하고, 잎노드 N9에는 쉐어 정보 Share(5)=SH4에 따른 값이 대응하고, 잎노드 N10에는 쉐어 정보 Share(6)=SH4에 따른 값이 대응하고, 잎노드 N11에는 쉐어 정보 Share(7)=SE-SH4에 따른 값이 대응한다. 또, 잎노드인 노드 N3, N4, N5, N6, N9, N10, N11에는 표준형 논리식 PRO(1)∧PRO(2)∨PRO(2)∧PRO(3)∨PRO(1)∧PRO(3)∨¬PRO(4)∨(¬PRO(5)∧PRO(6))∧PRO(7)을 구성하는 각 리터럴 PRO(1), PRO(2), PRO(2), PRO(3), PRO(1), PRO(3), ¬PRO(4), ¬PRO(5), PRO(6), PRO(7)이 각각 대응하고, 각 리터럴 PRO(1), PRO(2), PRO(2), PRO(3), PRO(1), PRO(3), ¬PRO(4), ¬PRO(5), PRO(6), PRO(7)의 진리값은 조건 정보와 속성 정보의 조합에 의해 정해진다. 여기서, 진리값이 참이 된 리터럴에 대응하는 잎노드에 대응하는 쉐어 정보에 따른 값은 얻어지지만, 진리값이 거짓이 된 리터럴에 대응하는 잎노드에 대응하는 쉐어 정보에 따른 값은 얻어지지 않는다. 이 경우, 조건 정보와 속성 정보의 조합이 표준형 논리식 PRO(1)∧PRO(2)∨PRO(2)∧PRO(3)∨PRO(1)∧PRO(3)∨¬PRO(4)∨(¬PRO(5)∧PRO(6))∧PRO(7)의 진리값을 참으로 하는 경우에만 비밀 정보 SE에 따른 값이 복원된다.
<액세스 구조>
상기 서술한 바와 같이 비밀 정보를 계층적으로 비밀 분산하여 얻어지는 나무구조 데이터에 의해 소정의 논리식을 표현한 경우, 조건 정보와 속성 정보의 조합에 대하여 얻어지는 잎노드에서의 쉐어 정보에 따른 값으로부터 비밀 정보에 따른 값을 복원할 수 있는지 여부에 의해, 조건 정보와 속성 정보의 조합에 의해 정해지는 논리식의 진리값이 「참」이 되는지 「거짓」이 되는지를 판정할 수 있다. 이하, 조건 정보와 속성 정보의 조합에 의해 정해지는 논리식의 진리값이 「참」이 되는 경우에 조건 정보와 속성 정보의 조합을 받아들이고, 「거짓」이 되는 경우에 조건 정보와 속성 정보의 조합을 거절하는 구조를 액세스 구조라고 한다.
상기 서술한 바와 같이 소정의 논리식을 표현한 나무구조 데이터의 잎노드의 총수를 Ψ로 하고, 각 잎노드에 대응하는 식별자를 λ=1,...,Ψ로 한다. 각 잎노드에 대응하는 n(λ)차원 벡터 v(λ)의 집합 {v(λ)}λ=1,...,Ψ를 조건 정보로 하고, n(λ)차원 벡터 w(λ)의 집합 {w(λ)}λ=1,...,Ψ를 속성 정보로 한다. 또, 상기 서술한 나무구조 데이터를 라벨이 붙은 행렬 LMT(MT, LAB)로서 실장한다.
라벨이 붙은 행렬 LMT(MT, LAB)는 Ψ행COL열(COL=1)의 행렬
[수 22]
Figure pct00024
와, 행렬 MT의 각 행 λ=1,...,Ψ에 대응지어진 라벨 LAB(λ)을 포함한다.
행렬 MT의 각 요소 mtλ,col(col=1,...,COL)는 다음의 2개의 요건을 만족한다. 첫번째로, 상기 서술한 바와 같이 소정의 논리식을 표현한 나무구조 데이터의 루트노드에 비밀 정보 SE∈Fq에 따른 값이 대응하는 경우, 미리 정해진 유한체 Fq의 원소를 요소로 하는 COL차원 벡터
GV=(gv1,...,gvCOL)∈Fq COL…(95)
와, 비밀 정보 SE에 따른 유한체 Fq의 원소를 요소로 하는 COL차원 벡터
CV=(cv1,...,cvCOL)∈Fq COL…(96)
에 대해
SE=GV?(CV)T…(97)
이 성립한다. COL차원 벡터 GV의 구체예는,
GV=(1F,...,1F)∈Fq COL…(98)
이지만, GV=(1F,0F,...,0F)∈Fq COL 등의 그 밖의 COL차원 벡터여도 된다. 두번째로, 식별자 λ에 대응하는 잎노드에 쉐어 정보 share(λ)∈Fq에 따른 값이 대응하는 경우,
(share(1),...,share(Ψ))T=MT?(CV)T…(99)
가 성립한다. 상기 서술한 바와 같이 소정의 논리식을 표현한 나무구조 데이터가 정해지면, 이들 2개의 요건을 만족하는 행렬 MT를 선택하는 것은 용이하다. 또, 비밀 정보 SE나 쉐어 정보 Share(λ)가 변수였다고 해도, 이들 2개의 요건을 만족하는 행렬 MT를 선택하는 것은 용이하다. 즉, 행렬 MT를 정한 후에 비밀 정보 SE나 쉐어 정보 Share(λ)의 값이 정해져도 된다.
또, 행렬 MT의 각 행 λ=1,...,Ψ에 대응지어진 라벨 LAB(λ)은 식별자 λ에 대응하는 잎노드에 대응하는 리터럴 (PRO(λ) 또는 ¬(PRO(λ))에 대응한다. 여기서, 명제변수 PRO(λ)의 진리값이 「참」인 것과 조건 정보 VSET2={λ,v(λ)|λ=1,...,Ψ}가 포함하는 v(λ)와 속성 정보 VSET1={λ,w(λ)|λ=1,...,Ψ}가 포함하는 w(λ)의 내적 v(λ)?w(λ)이 0이 되는 것이 등가라고 취급하고, 명제변수 PRO(λ)의 진리값이 「거짓」인 것과 내적 v(λ)?w(λ)이 0이 되지 않는 것이 등가라고 취급한다. 그리고, PRO(λ)에 대응하는 라벨 LAB(λ)이 v(λ)를 나타내고, ¬PRO(λ)에 대응하는 라벨 LAB(λ)이 ¬v(λ)를 나타내는 것으로 한다. 또한, ¬v(λ)는 v(λ)의 부정을 나타내는 논리식이며, ¬v(λ)로부터 v(λ)의 특정이 가능하다. 또, LAB(λ)이 v(λ)를 나타내는 것을 「LAB(λ)=v(λ)」로 표기하고, LAB(λ)이 ¬v(λ)를 나타내는 것을 「LAB(λ)=¬v(λ)」로 표기한다. 또, LAB(λ)(λ=1,...,Ψ)의 집합 {LAB(λ)}λ=1,...,Ψ을 LAB으로 표기한다.
또한, Ψ차원 벡터
TFV=(tfv(1),...,tfv(Ψ))…(100)
을 정의한다. 요소 tfv(λ)는 내적 v(λ)?w(λ)이 0일 때에 tfv(λ)=1이 되고, 0 이외일 때에 tfv(λ)=0이 된다.
tfv(λ)=1 (PRO(λ)가 참) if v(λ)?w(λ)=0…(101)
tfv(λ)=0 (PRO(λ)가 거짓) if v(λ)?w(λ)≠0…(102)
또한, 논리식
{(LAB(λ)=v(λ))∧(tfv(λ)=1)}∨{(LAB(λ)=¬v(λ))∧(tfv(λ)=0)}…(103)
의 진리값이 「참」이 될 때 LIT(λ)=1로 표기하고 「거짓」이 될 때 LIT(λ)=0로 표기한다. 즉, 식별자 λ에 대응하는 잎노드에 대응하는 리터럴의 진리값이 「참」이 될 때 LIT(λ)=1로 표기하고 「거짓」이 될 때 LIT(λ)=0로 표기한다. 그러면, 행렬 MT가 포함하는 행 벡터 중 LIT(λ)=1이 되는 행 벡터 mtλ =(mtλ,1,...,mtλ,COL)만으로 이루어지는 부분 행렬 MTTFV는 이하와 같이 표기할 수 있다.
MTTFV=(MT)LIT(λ)=1…(104)
상기 서술한 비밀 분산 방식이 선형 비밀 분산 방식인 경우, 식별자 λ에 대응하는 쉐어 정보 share(λ)에 따른 값으로부터 비밀 정보 SE에 따른 값을 복원할 수 있는 것과, 식별자 λ에 대응하는 행 벡터 mtλ 로 펼쳐지는 벡터 공간에 COL차원 벡터 GV가 속하는 것은 등가이다. 즉, 식별자 λ에 대응하는 행 벡터 mtλ 로 펼쳐지는 벡터 공간에 COL차원 벡터 GV가 속하는지 여부를 판정함으로써, 식별자 λ에 대응하는 쉐어 정보 share(λ)에 따른 값으로부터 비밀 정보 SE에 따른 값을 복원할 수 있는지 여부를 판정할 수 있다. 또한, 행 벡터 mtλ 로 펼쳐지는 벡터 공간은 행 벡터 mtλ 의 선형 결합으로 나타낼 수 있는 벡터 공간을 의미한다.
여기서, 상기 서술한 부분 행렬 MTTFV의 각 행 벡터 mtλ 로 펼쳐지는 벡터 공간 span<MTTFV>에 COL차원 벡터 GV가 속하는 경우에 조건 정보와 속성 정보의 조합이 받아들여지고, 그렇지 않은 경우에 조건 정보와 속성 정보의 조합이 거절되는 것으로 한다. 이것에 의해, 상기 서술한 액세스 구조가 구체화된다. 또한, 상기 서술한 바와 같이 라벨이 붙은 행렬 LMT(MT, LAB)이 조건 정보에 대응하는 경우, 액세스 구조가 조건 정보와 속성 정보의 조합을 받아들이는 것을 「액세스 구조가 속성 정보를 받아들인다」고 하고, 액세스 구조가 조건 정보와 속성 정보의 조합을 받아들이지 않는 것을 「액세스 구조가 속성 정보를 거절한다」고 한다.
받아들임 if GV∈span<MTTFV>
거절 if ¬(GV∈span<MTTFV>)
또, GV∈span<MTTFV>의 경우,
SE=Σμ∈SETconst(μ)?share(μ)…(105)
{const(μ)∈Fq|μ∈SET},SET⊆{1,...,λ|LIT(λ)=1}
를 만족하는 계수 const(μ)가 존재하고, 이러한 계수 const(μ)는 행렬 MT의 사이즈의 다항식 시간으로 구할 수 있다.
<액세스 구조를 사용한 함수 암호 방식의 기본 구성>
이하에서는, 액세스 구조를 사용한 함수 암호 방식에 의해 키 캡슐화 메커니즘 KEM(Key Encapsulation Mechanisms)을 구성하는 경우의 기본 구성을 예시한다. 이 구성은 Setup(1sec,(Ψ;n(1),...,n(Ψ))), GenKey(PK,MSK,LMT(MT,LAB)), Enc(PK,M,{λ,v(λ)|λ=1,...,Ψ})(v1(λ)=1F), Dec(PK,SKS,C)를 포함한다. 또, 속성 정보 VSET1={λ,w(λ)|λ=1,...,Ψ}의 1번째의 요소 w1(λ)가 1F가 된다.
[Setup(1sec,(Ψ;n(1),...,n(Ψ))) : 셋업]
-입력 : 1sec,(Ψ;n(1),...,n(Ψ))
-출력 : 마스터 비밀 정보 MSK, 공개 파라미터 PK
Setup에서는 각 ψ=0,...,Ψ에 대해서 이하의 처리가 실행된다.
(Setup-1) 1sec을 입력으로 하여 세큐리티 파라미터 sec에서의 위수 q, 타원곡선 E, 순회군 G1, G2, GT, 쌍선형사상 eψ(ψ=0,...,Ψ)이 생성된다(param=(q, E, G1, G2, GT, eψ)).
(Setup-2) τ'∈Fq가 선택되고, X*(ψ)=τ'?(X(ψ)-1)T를 만족하는 행렬 X(ψ),X*(ψ)이 선택된다.
(Setup-3) 기저 벡터 ai(ψ) (i=1,...,n(ψ)+ζ(ψ))가 식(81)에 따라 좌표변환되어, n(ψ)+ζ(ψ)차원의 기저 벡터 bi(ψ) (i=1,...,n(ψ)+ζ(ψ))가 생성된다. 기저 벡터 bi(ψ) (i=1,...,n(ψ)+ζ(ψ))를 요소로 하는 n(ψ)+ζ(ψ)행n(ψ)+ζ(ψ)열의 행렬 B(ψ)이 생성된다.
(Setup-4) 기저 벡터 ai *(ψ) (i=1,...,n(ψ)+ζ(ψ))가 식(83)에 따라 좌표변환되어, n(ψ)+ζ(ψ)차원의 기저 벡터 bi *(ψ)(i=1,...,n(ψ)+ζ(ψ))가 생성된다. 기저 벡터 bi *(ψ) (i=1,...,n(ψ)+ζ(ψ))를 요소로 하는 n(ψ)+ζ(ψ)행n(ψ)+ζ(ψ)열의 행렬 B*(ψ)이 생성된다.
(Setup-5) B*(ψ)^의 집합 {B*(ψ)^}ψ=0,...,Ψ을 마스터 비밀 정보 MSK={B*(ψ)^}ψ=0,...,Ψ로 한다. 또, B(ψ)^의 집합 {B(ψ)^}ψ=0,...,Ψ와 1sec과 param을 공개 파라미터 PK로 한다. 단, B*(ψ)^는 행렬 B*(ψ) 또는 그 부분 행렬이며, B(ψ)^는 행렬 B(ψ) 또는 그 부분 행렬이다. 또, 집합 {B*(ψ)^}ψ=0,...,Ψ은 적어도 b1 *(0),b1 *(λ) …,bn(λ) *(λ)(λ=1,...,Ψ)을 포함한다. 또, 집합 {B(ψ)^}ψ=0,...,Ψ은 적어도 b1(0),b1(λ),…,bn(λ)(λ)(λ=1,...,Ψ)을 포함한다. 이하에 일례를 나타낸다.
?n(0)+ζ(0)≥5, ζ(λ)=3?n(λ)
?B(0)^=(b1(0) b3(0) b5(0))T
?B(λ)^=(b1(λ) … bn(λ)(λ) b3?n(λ)+1(λ) … b4?n(λ)(λ))T
(λ=1,...,Ψ)
?B*(0)^=(b1 *(0) b3 *(0) b4 *(0))T
?B*(λ)^=(b1 *(λ) … bn(λ) *(λ) b2?n(λ)+1 *(λ) … b3?n(λ) *(λ))T
(λ=1,...,Ψ)
[GenKey(PK, MSK, LMT(MT, LAB)) : 키 정보 생성]
-입력 : 공개 파라미터 PK, 마스터 비밀 정보 MSK, 조건 정보 VSET2={λ,v(λ)|λ=1,...,Ψ}에 대응하는 라벨이 붙은 행렬 LMT(MT, LAB)
-출력 : 키 정보 SKS
(GenKey-1) 식(95)-(99)을 만족하는 비밀 정보 SE에 대하여 이하의 처리가 실행된다.
D*(0)=-SE?b1 *(0)+Σι=2 Icoefι(0)?bι *(0)…(106)
단, I는 2 이상 n(0)+ζ(0) 이하의 상수이다. coefι(0)∈Fq는 상수 또는 난수이다. 「난수」는 진성 난수나 유사 난수를 의미한다. 이하에 D*(0)의 일례를 나타낸다. 또한, 식(107)의 coef4(0)는 난수이다.
D*(0)=-SE?b1 *(0)+b3 *(0)+coef4(0)?b4 *(0)…(107)
(GenKey-2) 식(95)-(99)을 만족하는 share(λ)(λ=1,...,Ψ)에 대하여 이하의 처리가 실행된다.
LAB(λ)=v(λ)이 되는 λ에 대하여
D*(λ)=(share(λ)+coef(λ)?v1(λ))?b1 *(λ)
ι=2 n(λ)coef(λ)?vι(λ)?bι *(λ)
    +Σι=n(λ)+1 n(λ)+ζ(λ)coefι(λ)?bι *(λ)…(108)
이 생성되고,
LAB(λ)=¬v(λ)이 되는 λ에 대하여
D*(λ)=share(λ)?Σι=1 n(λ)vι(λ)?bι *(λ)
   +Σι=n(λ)+1 n(λ)+ζ(λ)coefι(λ)?bι *(λ)…(109)
가 생성된다. 단, coef(λ), coefι(λ)∈Fq는 상수 또는 난수이다. 이하에 일례를 나타낸다.
LAB(λ)=v(λ)이 되는 λ에 대하여
D*(λ)=(share(λ)+coef(λ)?v1(λ))?b1 *(λ)
   +Σι=2 n(λ)coef(λ)?vι(λ)?bι *(λ)
   +Σι=2?n(λ)+1 3?n(λ)coefι(λ)?bι *(λ)…(110)
이 생성되고,
LAB(λ)=¬v(λ)이 되는 λ에 대하여
D*(λ)=share(λ)?Σι=1 n(λ)vι(λ)?bι *(λ)
   +Σι=2?n(λ)+1 3?n(λ)coefι(λ)?bι *(λ)…(111)
이 생성된다. 또한, 식(110)(111)의 coef(λ) 및 coefι(λ)은 난수이다.
(GenKey-3) 키 정보
SKS=(LMT(MT,LAB),D*(0),D*(1),...,D(Ψ))…(112)
가 생성된다.
[Enc(PK, M, VSET1) : 암호화]
-입력 : 공개 파라미터 PK, 평문 M, 속성 정보 VSET1={λ,w(λ)|λ=1,...,Ψ}(w1(λ)=1F)
-출력 : 암호문 C
(Enc-1) 이하의 처리에 의해 공통 키 K의 암호문 C(ψ)(ψ=0,...,Ψ)이 생성된다.
C(0)=υ?b1(0)+Σι=2 Iυι(0)?bι(0)…(113)
C(λ)=υ?Σι=1 n(λ)wι(λ)?bι(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)υι(λ)?bι(λ)…(114)
단, υ,υι(ψ)∈Fq(ψ=0,...,Ψ)은 상수 또는 난수이며,
(coef2(0),...,coefI(0))?(υ2(0),...,υI(0))=υ'…(115)
coefι(λ)?υι(λ)=0F (ι=n(λ)+1,...,n(λ)+ζ(λ))…(116)
을 만족한다. υ'의 예는 υ2(0),...,υI(0)의 어느 1개이다. 예를 들면, υ,υ3(0),υ5(0),υ3?n(λ)+1(λ),...,υ4?n(λ)(λ)가 난수이며, ζ(λ)=3?n(λ), I=5이며,
2(0),...,υI(0))=(0F3(0),0F5(0))
υ'=υ3(0)
n(λ)+1(λ),...,υ3?n(λ)(λ))=(0F,...,0F)
이다.
(Enc-2) 공통 키
K=gT τ?τ'?υ'∈GT…(117)
이 생성된다. 예를 들면, τ=τ'=1F의 경우,
K=gT υ'∈GT…(118)
이다.
(Enc-3) 공통 키 K를 사용하여 평문 M의 암호문
C(Ψ+1)=EncK(M)…(119)
가 생성된다. 또한, 공통 키 암호 방식 Enc는, 예를 들면 공통 키 K를 사용하여 암호화 가능하게 구성된 카멜리아(Camellia)(등록상표)나 AES나 공통 키와 평문의 배타적 논리합 등이면 되지만, 그 밖의 간단한 예로서 이하와 같이 EncK(M)를 생성해도 된다. 단, 식(120)의 예에서는 M∈GT가 된다.
C(Ψ+1)=gT υ'?M…(120)
(Enc-4) 암호문
C=(VSET1,C(0),{C(λ)}(λ,w(λ)→)∈VSET1,C(Ψ+1))…(121)
이 생성된다. 단, 아래 첨자의 「w(λ)→」는 「w(λ)」를 나타낸다.
[Dec(PK, SKS, C) : 복호]
-입력 : 공개 파라미터 PK, 키 정보 SKS, 암호문 C
-출력 : 평문 M'
(Dec-1) λ=1,...,Ψ에 대해서, 키 정보 SKS가 포함하는 라벨이 붙은 행렬LMT(MT, LAB)의 각 라벨 LAB(λ)인 n(λ)차원 벡터 v(λ)와 암호문 C의 VSET1이 포함하는 n(λ)차원 벡터 w(λ)의 내적 v(λ)?w(λ)이 0이 되는지 여부가 판정되고, 이것과 LMT(MT, LAB)의 각 라벨 LAB(λ)에 의해 GV∈span<MTTFV>인지 여부가 판정된다(식(100)-(105)). GV∈span<MTTFV>이 아니면 암호문 C가 거절되고, GV∈span<MTTFV>이면 암호문 C가 받아들여진다.
(Dec-2) 암호문 C가 받아들여지면, SET⊆{1,...,λ|LIT(λ)=1}와 식(105)을 만족하는 계수 const(μ)(μ∈SET)가 계산된다.
(Dec-3) 공통 키
[수 23]
Figure pct00025
이 생성된다. 여기서, 식(66)(85)(115)으로부터,
[수 24]
Figure pct00026
를 만족한다. 또, 식(66)(85)(101)(108)(114)(116) 및 w1(λ)=1F로부터
[수 25]
Figure pct00027
를 만족한다. 또, 식(66)(85)(102)(109)(114)(116)으로부터
[수 26]
Figure pct00028
을 만족한다. 따라서, 식(105)(123)-(125)으로부터
[수 27]
Figure pct00029
을 만족한다. 예를 들면, τ=τ'=1F의 경우,
K=gT υ'∈GT…(127)
을 만족한다.
(Dec-4) 공통 키 K를 사용하여 평문
M'=DecK(C(Ψ+1))…(128)
이 생성된다. 예를 들면, 식(120)에 예시한 공통 키 암호 방식의 경우,
M'=C(Ψ+1)/K…(129)
에 따라 평문 M'이 생성된다.
[(Dec-1)의 처리의 구체예]
이하에 (Dec-1)의 처리의 구체예를 설명한다. 또한, 이하에서는 설명의 간략화를 위해 식(98)의 COL차원 벡터 GV가 사용되는 경우를 예시한다. 단, 이것은 본 발명을 한정하는 것은 아니며, 식(96)과 같이 일반화된 COL차원 벡터 GV가 사용되는 경우에 이하의 처리를 확장하여 적용해도 된다.
도 34에 예시하는 바와 같이, 우선 복호부는 라벨이 붙은 행렬 LMT(MT, LAB)에 대응하는 조건 정보 VSET2={λ,v(λ)|λ=1,...,Ψ}, 암호문 C1'이 포함하는 속성 정보 VSET1'={λ,w(λ)|λ=1,...,Ψ}, 및 LMT(MT, LAB)의 각 라벨 LAB(λ)을 사용하고, 식(101)-(104)에 나타낸 부분 행렬 MTTFV를 생성한다. 여기서는 MTTFV를 이하와 같이 표현한다.
[수 28]
Figure pct00030
...(130)
단, 식(130)의 MTTFV는 ω행COL열의 행렬이며, ω는 1 이상의 정수이며, ROW(1),...,ROW(ω)는 각각 LIT(ROW(1))=1,..., LIT(ROW(ω))=1이 되는 행렬 MT(식(94))의 행번호 ROW(1),...,ROW(ω)⊂{1,...,Ψ}이다(스텝 S401).
다음에 복호부는 MTTFV의 행 벡터 mtλ' =(mtλ',1,...,mtλ', COL)(λ'= ROW(1),...,ROW(ω))마다의 연산이나 MTTFV의 행 벡터 mtλ' 사이의 연산을 행하여, 대각성분을 승법단위원 1F로 한 Ω×Ω의 상삼각 행렬을 1행1열로부터 Ω행Ω열까지의 부분 행렬로 하고, Ω+1행 이후의 행 벡터 mtλ' 가 존재하는 경우에는 Ω+1행 이후의 행 벡터 mtλ' 의 전체 요소를 가법단위원 0F로 한 상삼각화 행렬 MTTFV'을 생성한다. 단, Ω은 1 이상이며 부분 행렬 MTTFV의 행수 및 열수 이하의 정수이다. MTTFV'은 예를 들면 이하와 같이 된다.
[수 29]
Figure pct00031
단 Ω+1행 이후의 각 요소가 존재하지 않는 경우도 있을 수 있고, 또, Ω+1열 이후의 각 요소가 존재하지 않는 경우도 있을 수 있다.
이러한 상삼각화 행렬 MTTFV'은 예를 들면, 가우스의 소거법을 이용하여 생성할 수 있다. 즉, 예를 들면 우선 부분 행렬 MTTFV의 1행째의 행 벡터 mt1 =(mt1,1,...,mt1,COL)을 mt1,1로 제산한 것을 MTTFV'의 1행째의 행 벡터로 한다. 다음에, 부분 행렬 MTTFV의 2행째의 행 벡터 mt2 =(mt2,1,...,mt2,COL)로부터 MTTFV'의 1행째의 행 벡터를 mt2 ,1배 한 행 벡터를 뺀 행 벡터 (0F,mt2 ,2'',...,mt2 , COL'')를 mt2 ,2''로 제산한 것을 MTTFV'의 2행째의 행 벡터로 한다. 마찬가지로, 이미 생성한 MTTFV'의 각 행 벡터를 사용하여 그 보다 큰 행번호의 행 벡터를 가공해감으로써, 상삼각화 행렬 MTTFV'를 생성할 수 있다. 또한, 상삼각화 행렬 MTTFV'를 생성하기 위한 연산은 행 벡터 단위의 연산과 행 벡터간의 연산이며, 동일한 행 벡터의 상이한 요소에 대하여 상이한 연산을 행하는 것은 허용되지 않는다. 또, 제산하기 위한 법이 가법단위원 0F가 된 경우에는 가공 대상의 행 벡터가 다시 선택된다. 또, 부분 행렬 MTTFV가 서로 선형독립이 아닌 복수의 행 벡터(즉 1차종속의 복수의 행 벡터)를 포함하는 경우, 그러한 행 벡터를 대표하는 1개의 행 벡터가 Ω×Ω의 상삼각 행렬의 요소를 포함하는 행 벡터가 되고, 그 밖의 행 벡터는 가법단위원 0F만을 요소로 한 행 벡터가 된다(스텝 S402).
다음에 복호부는 λ'=2로 설정한다(스텝 S403). 복호부는
(mt1,1' ... mt1,COL')-(mt1,λ' - 1F)?(mtλ',1' ... mtλ',COL')…(132)
를 새로운 (mt1,1' ... mt1,COL')로 하여, 상삼각화 행렬 MTTFV'의 1행째의 행 벡터 (mt1,1' ... mt1,COL')를 갱신한다. 또한, (mtλ',1' ... mtλ',COL')는 상삼각화 행렬 MTTFV'의 λ'행째의 행 벡터를 나타낸다. 복호부는 λ'=Ω인지 여부를 판정하고(스텝 S405), λ'=Ω가 아니면 λ'+1을 새로운 λ'로 하고(스텝 S406), 스텝 S404의 처리로 되돌아간다. 한편, λ'=Ω이면 복호부는
(mt1,1' ... mt1,COL')=(1F,...,1F)…(133)
을 만족하는지 여부를 판정하고(스텝 S407), 이것을 만족하면 K'의 복호가 가능하다고 하고(스텝 S408), 이것을 만족하지 않으면 K'의 복호가 불가능하다고 한다(스텝 S409).
또한, 스텝 S402의 상삼각화 행렬 MTTFV'을 생성하기 위한 모든 연산 내용과 스텝 S404에서의 모든 연산 내용을 기억부에 격납해 두고, 이들 연산을 부분 행렬 MTTFV의 각 요소를 부정원으로 한 행렬에 시행하여 얻어지는 1행째의 요소의 계수를 식(105)을 만족하는 계수 const(ind)로 할 수 있다. 즉, 이들 연산을 부분 행렬 MTTFV의 각 요소를 부정원으로 한 행렬에 시행하여 얻어지는, 행렬 MT의 ind행째의 행 벡터에 대응하는 부분 행렬 MTTFV의 행 벡터에 대응하는 부정원을 요소로 하는 1행째의 행 벡터의 계수를, 계수 const(ind)로 할 수 있다(식(97)(99)의 관계 참조).
[변형예]
또한, gT를 GT의 생성원으로 하는 대신에 gT τ나 gT τ'나 gT τ?τ'를 GT의 생성원으로 취급해도 된다. 또, 키 정보 SKS의 λ와 암호문의 λ의 대응 관계를 특정하는 사상을 사용하여 C(λ)와 D*(λ)의 조합을 특정하고, [Dec(PK, SKS, C):복호]의 처리가 실행되어도 된다. 또, 속성 정보 VSET1={λ,w(λ)|λ=1,...,Ψ}의 1번째의 요소 w1(λ)가 1F로 될 뿐만아니라, 조건 정보 VSET2={λ,v(λ)|λ=1,...,Ψ}의 n(λ)번째의 요소 vn(λ)(λ)가 1F로 되어도 된다. 또, 요소 w1(λ)가 1F가 아닌 경우에는 w(λ) 대신에 w(λ)/w1(λ)을 사용해도 되고, 요소 vn(λ)(λ)가 1F가 아닌 경우에는 v(λ) 대신에 v(λ)/vn(λ)(λ)를 사용해도 된다.
또, 상기 서술한 바와 같이 속성 정보 VSET1이 암호문에 대응하고, 조건 정보 VSET2가 키 정보에 대응하는 방식을 키 폴리시(KP) 방식이라고 부른다. 이것에 대하여, 속성 정보 VSET1이 키 정보에 대응하고, 조건 정보 VSET2가 암호문에 대응하는 사이퍼 텍스트(CP) 방식이 사용되어도 된다. 즉, 조건 정보 VSET2={λ,v(λ)|λ=1,...,Ψ} 대신에 속성 정보 VSET1={λ,w(λ)|λ=1,...,Ψ}가 사용되고, 속성 정보 VSET1={λ,w(λ)|λ=1,...,Ψ} 대신에 조건 정보 VSET2={λ,v(λ)|λ=1,...,Ψ}가 사용되어도 된다.
CP 방식의 경우에는 조건 정보 VSET2={λ,v(λ)|λ=1,...,Ψ}의 1번째의 요소 v1(λ)가 1F가 되고, PRO(λ)에 대응하는 라벨 LAB(λ)이 w(λ)를 나타내고, ¬PRO(λ)에 대응하는 라벨 LAB(λ)이 ¬w(λ)를 나타낸다. 또, CP 방식의 경우에는, 식(108)(109) 대신에,
LAB(λ)=w(λ)가 되는 λ에 대하여
D*(λ)=(share(λ)+coef(λ)?w1(λ))?b1 *(λ)
     +Σι=2 n(λ)coef(λ)?wι(λ)?bι *(λ)
     +Σι=n(λ)+1 n(λ)+ζ(λ)coefι(λ)?bι *(λ)…(134)
가 생성되고,
LAB(λ)=¬w(λ)가 되는 λ에 대하여
D*(λ)=share(λ)?Σι=1 n(λ)wι(λ)?bι *(λ)
   +Σι=n(λ)+1 n(λ)+ζ(λ)coefι(λ)?bι *(λ)…(135)
가 생성된다. 또, CP 방식의 경우에는 식(114) 대신에
C(λ)=υ?Σι=1 n(λ)vι(λ)?bι(λ)+Σι=n(λ)+1 n(λ)+ζ(λ)υι(λ)?bι(λ)…(136)
이 생성되고, 식(121) 대신에,
C=(VSET2,C(0),{C(λ)}(λ,v(λ)→)∈VSET2,C(Ψ+1))…(137)
단, 아래 첨자의 「v(λ)→」는 「v(λ)」를 나타낸다.
〔제4~6 실시형태의 원리〕
다음에, 제4~6 실시형태의 원리를 설명한다.
제4~6 실시형태에서는 상기 서술한 액세스 구조를 사용한 함수 암호 방식이 사용된다. 제4~6 실시형태의 함수 암호 응용 시스템은 송신자 장치(정보 출력 장치)와 수신자 장치(정보 처리 장치)를 포함하고, 속성 정보 VSET1(제1 대응 정보)와 조건 정보 VSET2(제2 대응 정보)의 조합에 대응하는 논리식의 진리값이 참인 경우에 암호문이 올바르게 복호되는 함수 암호 방식을 응용한 프로토콜(함수 암호 방식에 따른 프로토콜)을 실행한다.
우선, 송신자 장치의 식별자 특정부에, 실행하는 함수 암호 방식을 응용한 1종류 이상의 프로토콜을 특정하기 위한 특정 정보가 입력된다. 식별자 특정부는 당해 특정 정보에 의해 특정되는 프로토콜마다 또는 당해 프로토콜의 조합마다 정해진 규칙에 따라, 당해 프로토콜마다 또는 당해 프로토콜의 조합마다 식별자를 특정하고, 특정한 1종류 이상의 당해 식별자를 출력한다. 제4~6 실시형태에 있어서의 식별자는 벡터이다.
또한, 함수 암호 방식을 응용한 프로토콜에는 각각 그것에 사용해야 할 속성 정보 VSET1의 종별(바꾸어 말하면 속성 정보 VSET1의 성질)이 정해져 있다. 당해 규칙은 특정 정보에 의해 특정되는 프로토콜 또는 당해 프로토콜의 조합에 사용해야 할 종별의 속성 정보 VSET1을 정하는 식별자를 특정하는 것이다. 예를 들면, 당해 프로토콜이 Timed-Release 암호 프로토콜인 경우의 당해 규칙은 제1 정보의 생성 시점보다 미래의 시점을 특정하는 정보를 식별자로 하는 규칙이며, 당해 프로토콜이 Forward Secure 암호 프로토콜 또는 Key Insulated 암호 프로토콜인 경우의 당해 규칙은 각각 제1 정보의 생성 시점을 포함하는 시간 구간 또는 제1 정보의 생성 시점보다 미래의 시간 구간을 특정하는 정보를 식별자로 하는 규칙이며, 당해 프로토콜이 CCA2 안전 암호 프로토콜인 경우의 당해 규칙은 제1 정보의 생성마다 새롭게 설정되는 일회용 정보를 특정하는 정보를 식별자로 하는 규칙이며, 당해 프로토콜이 Keyword 검색 암호 프로토콜인 경우의 규칙은 데이터베이스의 검색용 키워드를 특정하는 정보를 식별자로 하는 규칙이다.
식별자 특정부에서 특정된 1종류 이상의 식별자는 송신자 장치의 속성 정보 설정부에 입력된다. 속성 정보 설정부는 1종류의 당해 식별자 또는 2종류 이상의 당해 식별자의 조합에 대하여 정해지는 1개의 속성 정보 VSET1(특정의 제1 대응 정보)를 설정하고, 설정한 당해 속성 정보 VSET1을 출력한다. 그리고, 송신자 장치의 출력부는 속성 정보 설정부로부터 출력된 속성 정보 VSET1에 대응하는 함수 암호 방식의 암호문 또는 키 정보인 제1 정보를 출력한다.
수신자 장치의 복호부에는 제1 정보와 기억부로부터 읽어낸 제2 정보가 입력된다. 또한, 제2 정보는 함수 암호 방식의 키 정보 또는 암호문이며, 제1 정보가 속성 정보 VSET1에 대응하는 암호문인 경우에는 제2 정보는 조건 정보 VSET2(특정의 제2 대응 정보)에 대응하는 키 정보이며, 제1 정보가 속성 정보 VSET1에 대응하는 키 정보인 경우에는 제2 정보는 조건 정보 VSET2(특정의 제2 대응 정보)에 대응하는 암호문이다.
상기 서술한 바와 같이, 속성 정보 VSET1(제1 대응 정보)는 하나 또는 복수의 벡터 w(λ)(제1 부분 대응 정보)를 포함하고, 조건 정보 VSET2(제2 대응 정보)는 하나 또는 복수의 벡터 v(λ)(제2 부분 대응 정보)를 포함한다. 벡터 w(λ) 및 벡터 v(λ)가 그들의 내적을 산출하는 함수(미리 정해진 함수)에 입력된 경우에, 벡터 w(λ)의 값 및 벡터 v(λ)의 값의 조합에 따라 그들의 내적이 0(미리 정해진 값)이 되거나, 또는 0 이외의 값이 된다. 벡터 w(λ) 및 벡터 v(λ)의 조합마다, 그들의 내적이 0(미리 정해진 값)이 되는 경우를 벡터 w(λ) 및 벡터 v(λ)의 조합이 참이라고 할지, 또는 그들의 내적이 0이 되지 않는 경우를 벡터 w(λ) 및 벡터 v(λ)의 조합이 참이라고 할지가 정해져 있다(식(101)(102)).
수신자 장치의 복호부는 당해 제1 정보와 당해 제2 정보를 함수 암호 방식의 복호함수에 입력하여 복호 처리를 실행하고, 그것에 의해 얻어진 복호 결과를 출력한다. 상기 서술한 바와 같이, 액세스 구조를 사용한 함수 암호 방식의 복호함수는 참이 되는 벡터 w(λ) 및 벡터 v(λ)의 조합의 집합이 미리 정해진 조건을 만족한 경우에, 올바른 복호 결과를 생성하는 함수이다. 상세하게는 벡터 w(λ)의 각각 또는 벡터 v(λ)의 각각에 벡터 (mtλ,1,...,mtλ,COL)가 대응지어져 있다(라벨이 붙은 행렬 LMT(MT,LAB), 식(34) 참조). 즉, KP 방식의 경우에는 벡터 v(λ)가 벡터 (mtλ,1,...,mtλ,COL)(LIT(λ)=1)가 대응지어지고, CP 방식의 경우에는 벡터 w(λ)가 벡터 (mtλ,1,...,mtλ,COL)(LIT(λ)=1)가 대응지어져 있다. 상기 서술한 바와 같이, 액세스 구조를 사용한 함수 암호 방식의 복호함수는 참이 되는 벡터 w(λ) 및 벡터 v(λ)의 조합이 각각 포함하는 벡터 w(λ) 또는 벡터 v(λ)에 대응지어진 벡터 벡터 (mtλ,1,...,mtλ,COL)(LIT(λ)=1)로 펼쳐지는 벡터 공간내에 특정의 벡터 GV가 존재하는 경우(GV∈span<MTTFV>)에, 올바른 복호 결과를 생성한다. 상기 서술한 바와 같이, 벡터 (mtλ,1,...,mtλ,COL)(LIT(λ)=1)로 펼쳐지는 벡터 공간내에 특정의 벡터 GV가 존재하는 것은 제1 정보에 대응하는 속성 정보 VSET1과 제2 정보에 대응하는 조건 정보 VSET2의 조합에 대응하는 논리식의 진리값이 참이 되는 것과 등가이다. 즉, 이 함수 암호 방식에서는 속성 정보 VSET1과 조건 정보 VSET2의 조합에 대응하는 논리식의 진리값이 참인 경우에 암호문이 올바르게 복호된다.
또, 속성 정보 VSET1은 1종류의 식별자 또는 2종류 이상의 당해 식별자의 조합에 대하여 정해지는 정보이며, 조건 정보 VSET2와 어느 하나의 속성 정보 VSET1이 복호함수에 입력된 경우, 속성 정보 VSET1이 취하는 복수 종류의 값에 대하여 각각 올바른 복호 결과가 얻어지는 값을 취한다. 즉, 제4~6 실시형태에서는, 1종류 이상의 제1 정보에 대하여 동일한 제2 정보를 공용하여, 올바른 복호를 행할 수 있다. 그 때문에, 송신자 장치가 1종류의 식별자 또는 2종류 이상의 당해 식별자의 조합을 선택하고, 선택한 식별자에 따라서 프로토콜을 전환하여 제1 정보를 생성하는 경우여도, 수신자 장치는 전환되는 프로토콜마다 별개로 제2 정보를 생성할 필요는 없다. 즉, 수신자 장치의 기억부에 1종류의 조건 정보 VSET2에 대응하는 1종류의 제2 정보만이 격납되어 있었다고 해도, 수신자 장치는 선택된 1종류 이상의 프로토콜 또는 프로토콜의 조합에 대한 제1 정보에 대응할 수 있다. 그 결과, 본 형태에서는 번잡한 처리를 필요로 하지 않고, 선택한 식별자에 따라서 프로토콜을 전환할 수 있다.
또, 식별자 특정부에 2종류 이상의 프로토콜을 특정하기 위한 특정 정보가 입력되는 경우, 2종류 이상의 프로토콜의 조합, 즉, 2종류 이상의 프로토콜의 특징을 겸비한 새로운 프로토콜을 구성할 수도 있다.
또, 제4~6 실시형태에서는, 함수 암호 방식을 사용하기 때문에, 프로토콜의 조합 방법의 자유도가 높다. 즉, 제4~6 실시형태에서는, 제1 정보에 대응하는 속성 정보 VSET1과 제2 정보에 대응하는 조건 정보 VSET2의 조합이 논리식의 진리값을 참으로 하는 경우에 올바른 복호 결과가 생성된다. 2종류 이상의 프로토콜의 조합은 식별자의 조합에 대응하고, 당해 식별자의 조합은 속성 정보 VSET1에 대응하는데, 당해 논리식의 진리값이 참이 되는 것이면, 당해 식별자의 조합 방법에 제한은 없다.
이에 대해, ID 베이스 암호 방식을 응용한 계층형 ID 베이스 암호 방식(예를 들면, 참고문헌 10 「C. Gentry, A. Silverberg, "Hierarchical ID-based cryptography," Proceedings of ASIACRYPT 2002, Lecture Notes in Computer Science, Springer-Verlag, 2002.」 등)을 사용한 경우에는, 프로토콜의 조합 방법이 제한된다. 즉, 계층형 ID 베이스 암호 방식에서는, 복수의 프로토콜에 각각 대응하는 복수의 식별자를 조합시키는 방법이 제한된다. 즉, 계층형 ID 베이스 암호 방식에서는, 복수의 식별자의 조합에 의해 생성된 새로운 식별자가 나무구조를 이룰 필요가 있으며, 새로운 식별자는 반드시 그 부모가 되는 식별자를 포함해야 한다. 예를 들면, 식별자 ID1과 식별자 ID2의 조합 ID1|ID2을 새로운 식별자로 한 경우, 그 이후, 예를 들면, 식별자 ID1과 식별자 ID2와 식별자 ID3의 조합을 새로운 식별자 ID1|ID2|ID3로 할 수는 있지만, 식별자 ID1과 식별자 ID3의 조합을 새로운 식별자 ID1|ID3로 할 수는 없다.
또, 송신자 장치가 특정 정보에 의해 특정되는 프로토콜에 따라, 속성 정보 VSET1을 함수 암호 방식의 암호화 함수에 대응시킬지, 속성 정보 VSET1을 함수 암호 방식의 키 생성 함수에 대응시킬지를 전환하는 제1 전환부를 추가로 가지고, 수신자 장치가 특정 정보에 의해 특정되는 프로토콜에 따라, 조건 정보 VSET2를 함수 암호 방식의 키 생성 함수에 대응시킬지, 조건 정보 VSET2를 함수 암호 방식의 암호화 함수에 대응시킬지를 전환하는 제2 전환부를 추가로 가져도 된다. 이것에 의해, 프로토콜의 선택의 폭이 넓어진다.
또, 속성 정보 VSET1 및 조건 정보 VSET2의 일부의 영역을, 용도가 결정되어 있지 않은 예비 영역으로서 두어도 된다. 예를 들면, 속성 정보 VSET1이 포함하는 적어도 일부의 벡터 w(λ)(제1 부분 대응 정보)의 값이 미리 고정되어 있고, 조건 정보 VSET2(제2 대응 정보)가 포함하는 적어도 일부의 벡터 v(λ)(제2 부분 대응 정보)의 값이 미리 고정되며, 이들 값이 고정된 벡터를 예비 영역의 것으로 해도 된다. 예를 들면, 값이 미리 고정된 벡터 w(λ)인 제1 부분 대응 정보와 값이 미리 고정된 벡터 v(λ)인 제2 부분 대응 정보와의 내적이 1종류의 식별자 또는 복수 종류의 식별자의 조합에 관계없이 0(영원)이 되어도 된다. 이것에 의해, 나중에 선택 가능한 프로토콜을 증가시키거나, 논리식을 구성하는 명제변수나 논리기호를 증가시키거나 할 필요가 생긴 경우라도, 예비 영역에 그들의 증가분을 할당하면 시스템의 설정을 변경하지 않고, 이들의 증가를 행할 수 있다.
또, 예비 영역이 된 벡터 w(λ)(제1 부분 대응 정보)를 모든 요소가 영원의 벡터(영벡터)로 한 경우, 당해 예비 영역을 포함하는 속성 정보 VSET1에 대응하는 제1 정보는 당해 예비 영역에 어떠한 값이 들어간 갱신후의 제1 정보에 대하여 상위 호환성을 가진다. 즉, 속성 정보 VSET1이나 조건 정보 VSET2의 예비 영역에 어떠한 값이 주어짐으로써 속성 정보 VSET1이나 조건 정보 VSET2가 갱신되었다고 해도, 갱신전에 올바른 복호가 행해진 것이면, 갱신전의 속성 정보 VSET1에 대응하는 제1 정보와 갱신후의 조건 정보 VSET2에 대응하는 제2 정보에 의해 올바른 복호가 행해진다. 갱신후의 조건 정보 VSET2의 예비 영역에 들어간 값에 관계없이, 속성 정보 VSET1 및 조건 정보 VSET2의 예비 영역끼리의 내적은 0이 되기 때문이다. 마찬가지의 이유에 의해, 예비 영역이 된 v(λ)(제2 부분 대응 정보)를 모든 요소가 영원의 벡터(영벡터)로 한 경우, 당해 예비 영역을 포함하는 조건 정보 VSET2에 대응하는 제2 정보는 당해 예비 영역에 어떠한 값이 들어간 갱신후의 제2 정보에 대하여 상위 호환성을 가진다.
속성 정보 VSET1의 예비 영역이 된 벡터 w(λ)를 영벡터로서 두고, 또한 조건 정보 VSET2의 예비 영역이 된 벡터 v(λ)를 영원 이외의 요소를 포함하는 벡터로서 둔 경우, 당해 예비 영역을 포함하는 속성 정보 VSET1에 대응하는 제1 정보는 당해 예비 영역에 어떠한 값이 들어간 갱신후의 제1 정보에 대하여 상위 호환성을 가지지만, 당해 예비 영역을 포함하는 조건 정보 VSET2에 대응하는 제2 정보는 당해 예비 영역에 어떠한 값이 들어간 갱신후의 제2 정보에 대하여 상위 호환성을 가지지 않는다. 반대로, 조건 정보 VSET2의 예비 영역이 된 벡터 v(λ)를 영벡터로서 두고, 또한 속성 정보 VSET1의 예비 영역이 된 벡터 w(λ)를 영원 이외의 요소를 포함하는 벡터로서 둔 경우, 당해 예비 영역을 포함하는 조건 정보 VSET2에 대응하는 제2 정보는 당해 예비 영역에 어떠한 값이 들어간 갱신후의 제2 정보에 대하여 상위 호환성을 가지지만, 당해 예비 영역을 포함하는 속성 정보 VSET1에 대응하는 제1 정보는 당해 예비 영역에 어떠한 값이 들어간 갱신후의 제1 정보에 대하여 상위 호환성을 가지지 않는다. 이와 같이, 예비 영역의 값을 어떻게 설정해 두는지에 따라, 갱신 전후에서의 상위 호환성을 변화시킬 수 있다.
〔제4 실시형태〕
다음에, 본 발명의 제4 실시형태를 설명한다. 제4 실시형태는 제1 정보가 속성 정보 VSET1에 대응하는 암호문이며, 제2 정보가 조건 정보 VSET2에 대응하는 키 정보이며, 송신자 장치가 암호화를 행하고, 수신자 장치가 복호를 행하는 형태이다. 이러한 형태는, 예를 들면, 함수 암호 방식을 응용한 프로토콜이 Timed-Release 암호 프로토콜, Forward Secure 암호 프로토콜, Key Insulated 암호 프로토콜 혹은 CCA2 안전 암호 프로토콜, 또는 그 조합인 경우 등에 적용할 수 있다. 또, 본 형태에서는 KP 방식을 사용한다.
<구성>
도 35는 제4 실시형태의 함수 암호 응용 시스템(4)의 전체 구성을 설명하기 위한 블록도이다. 도 35에 나타내는 바와 같이, 본 형태의 함수 암호 응용 시스템(4)은 네트워크(140)에 접속된 송신자 장치(410)(정보 출력 장치)와 수신자 장치(420)(정보 처리 장치)와 키 생성 장치(430)를 가진다. 또한, 설명의 편의상, 도 35에는 송신자 장치(410)와 수신자 장치(420)와 키 생성 장치(430)가 1개씩 표기되어 있지만, 2개 이상의 송신자 장치(410)나 수신자 장치(420)나 키 생성 장치(430)가 존재해도 된다.
[송신자 장치(410)(정보 출력 장치)]
도 36은 도 35의 송신자 장치(410)의 구성을 설명하기 위한 블록도이다.
도 36에 나타내는 바와 같이, 본 형태의 송신자 장치(410)는 일시 메모리(111a)와, 기억부(111c)와, 입력부(112)와, 제어부(113)와, 식별자 특정부(414a)와, 속성 정보 설정부(414b)(대응 정보 설정부)와, 암호화부(414c)와, 통신부(115)를 가진다.
송신자 장치(410)는 예를 들면, CPU(central processing unit), RAM(random-access memory), ROM(read-only memory) 등을 구비하는 공지 또는 전용의 컴퓨터에 특별한 프로그램이 읽어들여져 실행됨으로써 구성되는 특별한 장치이다. 즉, 제어부(113), 식별자 특정부(414a), 속성 정보 설정부(414b) 및 암호화부(414c)는, 예를 들면, CPU가 소정의 프로그램을 실행함으로써 구성되는 처리부이다. 또, 송신자 장치(410)의 처리부의 적어도 일부가 집적 회로여도 된다. 또, 일시 메모리(111a)나 기억부(111c)는 예를 들면 RAM, 레지스터, 캐시 메모리, 집적 회로내의 소자 혹은 하드디스크 등의 보조 기억 장치, 또는 이들의 적어도 일부의 결합으로 이루어지는 기억 영역이다. 또, 입력부(112)는 예를 들면 키보드, 마우스, 입력 포트 등이며, 통신부(115)는 예를 들면 모뎀, LAN 카드 등의 통신 장치이다.
또, 송신자 장치(410)는 제어부(113)의 제어하에서 각 처리를 실행한다. 또, 이하에서는 설명을 생략하지만, 송신자 장치(410)의 각 처리부로부터 출력된 데이터나 통신부(115)에서 수신된 데이터는 차례대로 일시 메모리(111a)에 격납된다. 일시 메모리(111a)에 격납된 데이터는 필요에 따라서 읽어내어져, 송신자 장치(410)의 각 처리부에 입력되어 그 처리에 이용된다.
[수신자 장치(420)(정보 처리 장치)]
도 37은 도 35의 수신자 장치(420)의 구성을 설명하기 위한 블록도이다.
도 37에 나타내는 바와 같이, 본 형태의 수신자 장치(420)는 일시 메모리(121a)와, 기억부(421b)와, 제어부(123)와, 식별자 특정부(424a)와, 조건 정보 생성부(424c)와, 키 생성 처리부(424d)와, 복호부(424e)와, 통신부(125)를 가진다. 또한, 도면 표기의 편의상, 도 37에는 통신부(125)를 나타내는 블록이 2개 표기되어 있지만, 이것은 별개의 통신부(125)가 2개 필요한 것을 의미하지 않는다.
수신자 장치(420)는 예를 들면 CPU, RAM, ROM 등을 구비하는 공지 또는 전용의 컴퓨터에 특별한 프로그램이 읽어들여져 실행됨으로써 구성되는 특별한 장치이다. 즉, 제어부(123), 식별자 특정부(424a), 조건 정보 생성부(424c), 키 생성 처리부(424d) 및 복호부(424e)는 예를 들면 CPU가 소정의 프로그램을 실행함으로써 구성되는 처리부이다. 또, 수신자 장치(420)의 처리부의 적어도 일부가 집적 회로여도 된다. 또, 일시 메모리(121a)나 기억부(421b)는 예를 들면 RAM, 레지스터, 캐시 메모리, 집적 회로내의 소자 혹은 하드디스크 등의 보조 기억 장치, 또는 이들의 적어도 일부의 결합으로 이루어지는 기억 영역이다. 또, 통신부(115)는 예를 들면 모뎀, LAN 카드 등의 통신 장치이다.
또, 수신자 장치(420)는 제어부(123)의 제어하에서 각 처리를 실행한다. 또, 이하에서는 설명을 생략하지만, 수신자 장치(420)의 각 처리부로부터 출력된 데이터나 통신부(125)에서 수신된 데이터는 차례대로 일시 메모리(121a)에 격납된다. 일시 메모리(121a)에 격납된 데이터는 필요에 따라서 읽어내어져, 수신자 장치(420)의 각 처리부에 입력되어 그 처리에 이용된다.
[키 생성 장치(430)]
도 38은 도 35의 키 생성 장치(430)의 구성을 설명하기 위한 블록도이다.
도 38에 나타내는 바와 같이, 본 형태의 키 생성 장치(430)는 일시 메모리(131a)와, 기억부(431b)와, 제어부(133)와, 키 생성부(434)와, 통신부(135)를 가진다.
키 생성 장치(430)는 예를 들면 CPU, RAM, ROM 등을 구비하는 공지 또는 전용의 컴퓨터에 특별한 프로그램이 읽어들여져 실행됨으로써 구성되는 특별한 장치이다. 즉, 제어부(133) 및 키 생성부(434)는 예를 들면 CPU가 소정의 프로그램을 실행함으로써 구성되는 처리부이다. 또, 키 생성 장치(430)의 처리부의 적어도 일부가 집적 회로여도 된다. 또, 일시 메모리(131a)나 기억부(431b)는 예를 들면 RAM, 레지스터, 캐시 메모리, 집적 회로내의 소자 혹은 하드디스크 등의 보조 기억 장치, 또는 이들의 적어도 일부의 결합으로 이루어지는 기억 영역이다. 또, 통신부(135)는 예를 들면 모뎀, LAN 카드 등의 통신 장치이다.
또, 키 생성 장치(430)는 제어부(133)의 제어하에서 각 처리를 실행한다. 또, 이하에서는 설명을 생략하지만, 키 생성 장치(430)의 각 처리부로부터 출력된 데이터나 통신부(135)에서 수신된 데이터는 차례대로 일시 메모리(131a)에 격납된다. 일시 메모리(131a)에 격납된 데이터는 필요에 따라서 읽어내어져, 키 생성 장치(430)의 각 처리부에 입력되어 그 처리에 이용된다.
<사전 설정>
다음에 본 형태의 함수 암호 응용 시스템(4)의 사전 설정을 설명한다.
[특정 정보]
도 39A 및 도 39B는, 제4 실시형태에 있어서의 1종류 이상의 프로토콜을 특정하기 위한 특정 정보 PI와 프로토콜의 대응 관계를 예시한 도면이다.
도 39A의 예에서는, 프로토콜마다 특정 정보 PI가 할당되어 있다. 즉, 이 예에서는, 특정 정보 PI=0에 대하여 Timed-Release 암호 프로토콜이 할당되고, 특정 정보 PI=1에 대하여 Forward Secure 암호 프로토콜이 할당되고, 특정 정보 PI=2에 대하여 Key Insulated 암호 프로토콜이 할당되고, 특정 정보 PI=3에 대하여 CCA2 안전 암호 프로토콜이 할당되어 있다. 이 예에서 어느 하나의 프로토콜을 단체로 선택하는 경우에는, 선택하는 프로토콜에 대응하는 1개의 특정 정보 PI를 특정하고, 2종류 이상의 프로토콜의 조합을 선택하는 경우에는, 선택하는 2종류 이상의 프로토콜에 각각 대응하는 특정 정보 PI의 조합을 특정한다.
한편, 도 39B의 예에서는, 프로토콜마다 특정 정보 PI가 할당되어 있는 것 외에, 2종류 이상의 프로토콜의 조합에 대해서도 특정 정보 PI가 할당되어 있다. 이 예에서 어느 하나의 프로토콜을 단체로 선택하는 경우에는, 선택하는 프로토콜에 대응하는 1개의 특정 정보 PI를 특정하고, 2종류 이상의 프로토콜의 조합을 선택하는 경우에는, 선택하는 2종류 이상의 프로토콜의 조합에 대응하는 특정 정보 PI를 특정한다.
또한, 도 39에 나타낸 특정 정보 PI는 일례이며, 그 밖의 방법에 의해 1종류 이상의 프로토콜에 대응하는 특정 정보 PI가 특정되어도 된다.
[식별자]
도 40A, 도 40B 및 도 41은, 제4 실시형태에 있어서, 프로토콜마다 또는 당해 프로토콜의 조합마다 정해진, 식별자 ID(λ)를 특정하기 위한 규칙의 일례를 설명하기 위한 도면이다. 또한, 본 형태의 식별자 ID(λ)는 유한체 Fq의 원소를 요소로 하는 n(λ)차원 벡터이다.
도 40A의 예에서는, 선택 가능한 프로토콜마다 식별자 ID(λ)가 할당된다.
선택된 프로토콜에 할당된 식별자 ID(λ)에는, 그 프로토콜에 정해진 규칙에 따른 값이 입력된다. 예를 들면, Timed-Release 암호 프로토콜이 선택된 경우에는, 미래의 시점을 특정하는 정보(일시나 카운트값 등에 대응하는 n(λ)차원 벡터)가 식별자 ID(1)에 입력된다. 또한, 「미래의 시점」의 일례는, 제1 정보의 생성 시점보다 미래의 시점이다. 또, 예를 들면, Forward Secure 암호 프로토콜이나 Key Insulated 암호 프로토콜이 선택된 경우에는, 수신자 장치(420)나 그 이용자의 고유 식별자(메일 어드레스나 전화번호나 MAC 어드레스 등)와 현재 시점을 포함하는 시간 구간(일시 구간이나 카운트값 구간 등)의 조합으로 정해지는 값(n(λ)차원 벡터)이 식별자 ID(2)나 식별자 ID(3)에 입력된다. 또한, 「현재 시점」의 일례는 제1 정보의 생성 시점이다. 또, 예를 들면, CCA2 안전 암호 프로토콜이 선택된 경우에는, n(λ)차원 벡터인 일회용 정보(랜덤값을 요소로 하는 랜덤 벡터)가 식별자 ID(4)에 입력된다.
한편, 선택되지 않은 프로토콜에 할당된 식별자 ID(λ)에는 n(λ)차원 벡터인 상수(const.)가 입력된다. 예를 들면, Timed-Release 암호 프로토콜만이 선택된 경우에는, 미래의 시점을 특정하는 정보가 식별자 ID(1)에 입력되고, 그 밖의 식별자 ID(2), ID(3), ID(4)에는 상수(const.)가 입력된다. 또한, 상수(const.)의 예는 n(λ)차원의 영벡터이다. 또한, 각 식별자 ID(λ)에 입력되는 상수(const.)는 동일값이어도 되고, 상이한 값이어도 된다.
또, 복수의 프로토콜의 조합이 선택된 경우에는, 그 조합을 구성하는 복수의 프로토콜이 선택된 것으로서 식별자 ID(λ)의 값이 결정된다. 예를 들면, Forward Secure 암호 프로토콜과 CCA2 안전 암호 프로토콜의 조합이 선택된 경우에는, 수신자 장치(420)나 그 이용자의 고유 식별자와 현재 시점을 포함하는 시간 구간의 조합으로 정해지는 값이 식별자 ID(2)에 입력되고, 일회용 정보가 식별자 ID(4)에 입력되며, 그 밖의 식별자 ID(1), ID(3)에는 상수(const.)가 입력된다.
도 40B의 예에서는, 선택된 프로토콜에만 식별자 ID(λ)가 할당된다. 예를 들면, Timed-Release 암호 프로토콜만이 선택된 경우에는, 미래의 시점을 특정하는 정보를 나타내는 식별자 ID(1)만이 할당된다. 또, 예를 들면, Forward Secure 암호 프로토콜과 CCA2 안전 암호 프로토콜의 조합이 선택된 경우에는, 수신자 장치(420)나 그 이용자의 고유 식별자와 현재 시점을 포함하는 시간 구간의 조합으로 정해지는 값을 나타내는 식별자 ID(2)와, 일회용 정보를 나타내는 식별자 ID(4)만이 할당된다.
도 41의 예에서는, 선택 가능한 프로토콜 및 프로토콜의 조합마다 식별자 ID(λ)가 할당된다. 선택된 프로토콜 및 프로토콜의 조합에 할당된 식별자 ID(λ)에는 선택된 프로토콜 또는 조합을 구성하는 각 프로토콜에 정해진 각 규칙에 따른 값이 입력되고, 선택되지 않은 프로토콜이나 조합에 할당된 식별자 ID(λ)에는 상수(const.)가 입력된다. 예를 들면, Forward Secure 암호 프로토콜과 CCA2 안전 암호 프로토콜의 조합이 선택된 경우에는, 수신자 장치(420)나 그 이용자의 고유 식별자와 현재 시점을 포함하는 시간 구간과 일회용 정보의 조합으로 정해지는 값이 식별자 ID(6)에 입력되고, 그 밖의 식별자 ID(λ)에는 상수(const.)가 입력된다.
또, 상기 서술한 식별자의 결정 방법은 일례에 지나지 않고, 그 밖의 방법으로 식별자가 특정해도 된다. 예를 들면, 도 41의 예의 변형으로서, 선택된 프로토콜 및 프로토콜의 조합에만 식별자 ID(λ)가 할당되어도 된다. 또, 상기 서술한 바와 같이 얻어진 각 식별자 ID(λ)의 조합(예를 들면 비트 결합)에 의해 1개의 식별자를 구성해도 된다.
[속성 정보(제1 대응 정보)]
도 42A는 속성 정보 VSET1의 데이터 구성을 설명하기 위한 도면이다.
본 형태에서는, 각 식별자 ID(λ)를 n(λ)차원 벡터 w(λ)(제1 부분 대응 정보)로 하고 (w(λ)=ID(λ)), n(λ)차원 벡터 w(λ)(λ=1,...,Ψ)의 집합 {w(λ)}λ=1,...,Ψ을 속성 정보 VSET1으로 한다.
[조건 정보(제2 대응 정보)]
도 42B는 조건 정보 VSET2의 데이터 구성을 설명하기 위한 도면이다.
본 형태에서는, 각 식별자 ID’(λ)를 n(λ)차원 벡터 v(λ)(제2 부분 대응 정보)로 하고 (v(λ)=ID’(λ)), n(λ)차원 벡터 v(λ)(λ=1,...,Ψ)의 집합 {v(λ)}λ=1,...,Ψ을 조건 정보 VSET2로 한다.
식별자 ID’(λ)는 수신자 장치(420)측에서 상정된 소정값의 식별자 ID(λ)에 대응하는 n(λ)차원 벡터이다. 즉, 식별자 ID’(λ)와 상정된 소정값의 식별자 ID(λ)와의 내적이 0이 되도록 식별자 ID’(λ)의 값이 정해진다. 예를 들면, 도 40A의 예에 의해 식별자 ID(λ)가 설정되는 경우에는, 도 40A의 규칙에 따라서 정해지는 상정된 소정값의 식별자 ID(1), ID(2), ID(3), ID(4)에 대하여, 내적 ID(1)?ID’(1)=0, ID(2)?ID’(2)=0, ID(3)?ID’(3)=0, ID(4)?ID’(4)=0이 되는 식별자 ID’(λ)가 정해진다.
또한 「상정된 소정값」은 수신자 장치(420)측에서 상정된 프로토콜 및/또는 당해 프로토콜의 조합으로 이루어지는 조건에 대응한다. 구체적으로는 「상정된 소정값」은 수신자 장치(420)측에서 상정된 표준형 논리식의 리터럴에 대응한다. 예를 들면, 표준형 논리식의 λ=1에 대응하는 리터럴을 「식별자 ID(1)는 소정 시점에서 복호가 가능해지는 Timed-Release 암호 프로토콜에 대응하는 값을 취한다」라는 명제의 명제변수 PRO(1) 또는 그 부정 ¬PRO(1)로 하는 경우에는, 소정 시점에서 복호가 가능해지는 Timed-Release 암호 프로토콜에 대응하는 값의 식별자 ID(1)에 대하여 내적 ID(1)?ID’(1)=0이 되는 식별자 ID'(1)가 설정된다. 예를 들면, 표준형 논리식의 λ=2에 대응하는 리터럴을 「식별자 ID(2)는 Forward Secure 암호 프로토콜이 선택되지 않는 것에 대응하는 값을 취한다」라는 명제의 명제변수 PRO(2) 또는 그 부정 ¬PRO(2)로 하는 경우에는, Forward Secure 암호 프로토콜이 선택되지 않는 것에 대응하는 식별자 ID(2)=const.에 대하여 내적 ID(2)?ID’(2)=0이 되는 식별자 ID'(2)가 설정된다. 이러한 각 식별자 ID’(λ)를 특정하기 위한 규칙은 미리 정해지고, 수신자 장치(420)의 식별자 특정부(424a)에 설정된다. 또, 상기 서술한 바와 같이, 내적 ID(λ)?ID’(λ)가 0인 경우에 표준형 논리식의 리터럴이 참이 되는지 거짓이 되는지, 즉, 리터럴을 명제변수 PRO(λ)로 할지 그 부정 ¬PRO(λ)로 할지는, 라벨이 붙은 행렬 LMT(MT, LAB)의 라벨 LAB(λ)에 의해 지정할 수 있다.
[수신자 장치(420)에서 미리 정해진 논리식]
본 형태에서는 수신자 장치(420)의 키 생성 처리부(424d) 및 복호부(424e)에 몇개의 프로토콜 및/또는 당해 프로토콜의 조합으로 이루어지는 조건에 대응하는 표준형 논리식(예를 들면, PRO(1)∧PRO(2)∨¬PRO(3))이 미리 설정되어 있다. 바꾸어 말하면, 당해 표준형 논리식에 대응하는 라벨이 붙은 행렬 LMT(MT, LAB)이 미리 키 생성 처리부(424d) 및 복호부(424e)에 정해져 있다. 단, 표준형 논리식의 리터럴인 PRO(λ)나 ¬PRO(λ)를 특정하는 PRO(λ)나 라벨 LAB(λ)을 특정하는 n(λ)차원 벡터 v(λ)의 값은 정해져 있지 않다. 즉, 미리 라벨이 LAB(λ)=v(λ)인지 LAB(λ)=¬v(λ)인지는 정해져 있지만, n(λ)차원 벡터 v(λ)의 값은 정해져 있지 않다. 식별자 ID’(λ)에 대응하는 n(λ)차원 벡터 v(λ)가 정해짐으로써 PRO(λ)나 라벨 LAB(λ)을 특정하는 n(λ)차원 벡터 v(λ)의 값이 정해지고, 표준형 논리식이나 라벨이 붙은 행렬 LMT(MT, LAB)을 특정할 수 있다.
[평문]
본 형태에서는 송신자 장치(410)의 기억부(111c)에 암호화 대상의 평문 Mt가 격납된다.
[마스터 비밀 정보]
본 형태의 키 생성 장치(430)의 기억부(431b)에는 함수 암호 방식의 마스터 비밀 정보 MSK([Setup(1sec,(Ψ;n(1),...,n(Ψ))) : 셋업] 참조)가 격납된다.
<처리>
도 43A는 제4 실시형태의 암호화 처리를 설명하기 위한 플로우차트이다. 도 43B는 제4 실시형태의 키 정보 생성 처리를 설명하기 위한 플로우차트이다. 또, 도 44는 제4 실시형태의 복호 처리를 설명하기 위한 플로우차트이다. 이하, 이들 도면을 사용하여 본 형태의 처리를 설명한다.
[암호화 처리]
본 형태의 암호화 처리에서는, 우선, 실행하는 함수 암호 방식을 응용한 1종류 이상의 프로토콜을 특정하기 위한 특정 정보 PI가 송신자 장치(410)(도 36)의 입력부(112)에 입력된다(스텝 S411). 예를 들면, 특정 정보 PI가 도 39A와 같이 정해지는 것이면, 이용자에게 선택된 1종류의 프로토콜에 대응하는 특정 정보 PI,또는, 이용자에게 선택된 2종류 이상의 프로토콜에 각각 대응하는 특정 정보 PI의 조합이 입력부(112)에 입력된다. 또, 예를 들면, 특정 정보 PI가 도 39B와 같이 정해지는 것이면, 이용자에게 선택된 1종류의 프로토콜 또는 2종류 이상의 프로토콜에 대응하는 특정 정보 PI가 입력부(112)에 입력된다.
입력부(112)에 입력된 특정 정보 PI는 식별자 특정부(414a)에 입력된다. 식별자 특정부(414a)는 당해 특정 정보 PI에 의해 특정되는 프로토콜마다 또는 당해 프로토콜의 조합마다 정해진 규칙에 따라(도 40A, 도 40B 및 도 41 등 참조), 당해 프로토콜마다 또는 당해 프로토콜의 조합마다 식별자 ID(λ)를 특정하고, 특정한 1종류 이상의 당해 식별자 ID(λ)를 출력한다(스텝 S412).
식별자 특정부(414a)로부터 출력된 1종류 이상의 식별자 ID(λ)는 속성 정보 설정부(414b)에 입력된다. 속성 정보 설정부(414b)는 1종류의 당해 식별자 ID(λ) 또는 2종류 이상의 당해 식별자 ID(λ)의 조합에 대하여 정해지는 1개의 속성 정보 VSET1={w(λ)}λ=1,...,Ψ(특정의 제1 대응 정보)를 설정하고, 설정한 당해 속성 정보 VSET1을 출력한다(스텝 S413).
속성 정보 설정부(414b)로부터 출력된 속성 정보 VSET1은 암호화부(414c)에 입력된다. 암호화부(414c)는 기억부(111c)로부터 평문 Mt를 읽어내고, 속성 정보 VSET1과 평문 Mt를 함수 암호 방식의 암호화 함수에 입력하고, 평문 Mt의 암호문 Ct를 생성한다(스텝 S414). 함수 암호 방식의 암호화 함수의 일례는 상기 서술한 식(113)(114)(119)으로 특정되는 식(121)이다(C=Ct, M=Mt).
생성된 암호문 Ct는 통신부(115)에 보내진다. 통신부(115)(출력부)는 당해 암호문 Ct(제1 정보)를 네트워크(140) 경유로 수신자 장치(420)에 송신한다(스텝 S415).
[복호 처리?키 정보 생성 처리]
본 형태의 복호 처리에서는, 우선, 수신자 장치(420)(도 37)의 통신부(125)가 암호문 Ct(제1 정보)를 수신한다(스텝 S421).
이것을 계기로 하여, 식별자 특정부(424a)가 프로토콜마다 또는 당해 프로토콜의 조합마다, 당해 프로토콜마다 또는 당해 프로토콜의 조합마다 정해진 규칙에 따라, 상기 서술한 수신자 장치(420)에서 미리 정해진 표준형 논리식에 사용되는 1종류 이상의 식별자 ID'(λ)를 특정한다(스텝 S422).
식별자 특정부(424a)에서 특정된 1종류 이상의 식별자 ID'(λ)는 조건 정보 생성부(424c)에 입력된다. 조건 정보 생성부(424c)는
v(λ)=ID’(λ)…(138)
로 하고, n(λ)차원 벡터 v(λ)(λ=1,...,Ψ)의 집합 {v(λ)}λ=1,...,Ψ을 조건 정보 VSET2(특정의 제2 대응 정보)로 하고, 당해 조건 정보 VSET2를 출력한다(스텝 S423).
조건 정보 생성부(424c)로부터 출력된 조건 정보 VSET2는 키 생성 처리부(424d)에 입력된다. 키 생성 처리부(424d)는 조건 정보 VSET2가 포함하는 n(λ)차원 벡터 v(λ)를 사용하여 라벨 LAB(λ)을 특정하고, 라벨이 붙은 행렬 LMT(MT, LAB)을 정한다(스텝 S424). 라벨 LAB(λ)이 특정된 라벨이 붙은 행렬 LMT(MT, LAB)은 통신부(125)에 보내진다. 통신부(125)는 네트워크(140) 경유로 당해 라벨이 붙은 행렬 LMT(MT, LAB)을 키 생성 장치(430)에 송신하고, 당해 라벨이 붙은 행렬 LMT(MT, LAB)에 대응하는 키 정보 SKS의 생성을 의뢰한다(스텝 S425).
본 형태의 키 정보 생성 처리에서는, 우선, 키 생성 장치(430)(도 38)의 통신부(135)가 상기한 조건 정보 VSET2에 대응하는 라벨이 붙은 행렬 LMT(MT, LAB)을 수신한다(스텝 S431). 통신부(135)에서 수신된 라벨이 붙은 행렬 LMT(MT, LAB)은 키 생성부(434)에 입력된다. 키 생성부(434)는 기억부(431b)로부터 마스터 비밀 정보 MSK를 읽어내고, 마스터 비밀 정보 MSK와 라벨이 붙은 행렬 LMT(MT, LAB)을 사용하여, 라벨이 붙은 행렬 LMT(MT, LAB)에 대응하는 키 정보 SKS를 생성하여 출력한다(스텝 S432). 예를 들면, 키 생성부(434)는 식(95)-(99)(106)(108)(109)에 의해 특정되는 식(112)의 키 정보 SKS를 생성하여 출력한다. 예를 들면, 키 생성부(434)는 유한체 Fq의 원소를 요소로 하는 COL차원 벡터 CV∈Fq COL(식(36))를 임의로 선택하고, 행렬 MT(식(94))와 COL차원 벡터 CV를 사용하여, 식(99)에 따라 쉐어 정보 share(λ)∈Fq(λ=1,...,Ψ)를 계산하고, COL차원 벡터 CV를 사용하여 식(97)에 따라 비밀 정보 SE를 생성하고, 식(106)에 따라 키 정보 D*(0)를 생성하고, 라벨 정보 LAB(λ)(λ=1,...,Ψ)를 사용하여 키 생성부(434)는 (108)(109)에 따라 키 정보 D*(λ)(λ=1,...,Ψ)를 생성하고, 식(112)에 따라 키 정보 SKS를 생성한다. 생성된 키 정보 SKS는 통신부(135)에 보내지고, 통신부(135)는 당해 키 정보 SKS를 네트워크(140) 경유로 수신자 장치(420)에 송신한다(스텝 S433).
수신자 장치(420)(도 37)의 통신부(125)는 송신된 키 정보 SKS를 수신하고, 키 생성 처리부(424d)에 보낸다. 키 생성 처리부(424d)는 당해 키 정보 SKS(제2 정보)를 기억부(421b)에 격납한다(스텝 S426).
다음에 스텝 S421에서 통신부(125)가 수신한 암호문 Ct(제1 정보)와, 기억부(421b)로부터 읽어낸 키 정보 SKS(제2 정보)가 복호부(424e)에 입력된다. 복호부(424e)는 암호문 Ct(제1 정보)와 키 정보 SKS(제2 정보)를 함수 암호 방식의 복호함수에 입력하여 복호 처리를 실행하고, 그것에 의해 얻어진 복호 결과 Mr을 출력한다(스텝 S427). 예를 들면, 복호부(424e)는 C=Ct(식(121)) 및 키 정보 SKS(식(112))를 사용하여, 상기 서술한 (Dec-1)-(Dec-4)에 따른 처리를 행한다(식(122)(128)).
여기서, 암호문 Ct(제1 정보)에 대응하는 속성 정보 VSET1과 키 정보 SKS(제2 정보)에 대응하는 조건 정보 VSET2가 키 생성 처리부(424d)에 설정되어 있던 표준형 논리식의 진리값을 참으로 하는 경우에는 GV∈span<MTTFV>가 되고, 올바른 복호 결과가 얻어지고, 복호 결과 Mr=Mt(Mt=M'=M)가 된다. 한편, 당해 속성 정보 VSET1과 당해 조건 정보 VSET2가 키 생성 처리부(424d)에 설정되어 있던 표준형 논리식의 진리값을 거짓으로 하는 경우에는 GV∈span<MTTFV>가 되지 않고, 올바른 복호 결과가 얻어지지 않는다. 이것은 수신자 장치(420)에서 미리 정해진 프로토콜 및/또는 당해 프로토콜의 조합으로 이루어지는 조건에 합치하는 암호문 Ct만이 올바르게 복호되는 것을 의미한다.
이상과 같이, 본 형태에서는, 송신자 장치(410)가 사용하는 프로토콜이나 프로토콜의 조합을 선택할 수 있고, 수신자 장치(420)에 있어서 복호 가능하게 되는 암호문의 프로토콜이나 프로토콜의 조합의 조건을 설정해 둘 수 있다. 그리고, 송신자 장치(410)에서 선택된 프로토콜이나 프로토콜의 조합이 수신자 장치(420)에 설정된 조건에 합치한 경우에만, 수신자 장치(420)는 송신된 암호문을 올바르게 복호할 수 있다. 또, 수신자 장치(420)에 있어서 복호 가능하게 되는 암호문의 프로토콜이나 프로토콜의 조합의 조건은, 논리합이나 논리곱이나 부정을 자유롭게 조합시켜 설정할 수 있다. 특히, 수신자 장치(420)에서 논리합을 포함하는 조건을 설정해 두면, 수신자 장치(420)가 송신자 장치(410)에서 선택된 프로토콜 등에 따라 키 정보를 구분하여 쓸 필요가 없어진다.
〔제4 실시형태의 변형예 1〕
상기 서술한 바와 같이, 속성 정보 VSET1 및 조건 정보 VSET2의 일부의 영역을 예비 영역으로서 두어도 된다. 즉, 속성 정보 VSET1이 포함하는 벡터(제1 부분 대응 정보) 및 조건 정보 VSET2가 포함하는 벡터(제2 부분 대응 정보)의 적어도 일부를 예비 영역으로서 두어도 된다. 이것에 의해, 나중에 선택 가능한 프로토콜을 증가시키거나, 논리식을 나타내는 다항식의 항을 증가시키거나 할 필요가 생긴 경우라도, 예비 영역에 그들의 증가분을 할당하면 시스템의 설정을 변경하지 않고, 이들의 증가를 행할 수 있다.
도 45A 및 도 45B는, 속성 정보 VSET1 및 조건 정보 VSET2의 일부의 영역을 예비 영역으로 한 예를 설명하기 위한 도면이다.
도 45A 및 도 45B에서는, 속성 정보 VSET1이 포함하는 벡터 v(Ψ-s),...,v(Ψ) 및 조건 정보 VSET2가 포함하는 벡터 w(Ψ-s),...,w(Ψ)가 예비 영역이 된다. 또한, s는 1 이상 Ψ 미만의 정수 상수이다. 이 예에서는, 특정 정보 PI의 값에 관계없이, 벡터 v(Ψ-s),...,v(Ψ)가 각각 상수 요소로 이루어지는 상수 벡터 const.(Ψ-s),...,const.(Ψ)가 되고, 벡터 w(Ψ-s),...,w(Ψ)가 각각 상수 요소로 이루어지는 상수 벡터 const.'(Ψ-s),...,const.'(Ψ)가 된다. 이들의 예비 영역은 예비 영역의 벡터 w(λ)와 예비 영역의 벡터 v(λ)의 내적이 특정 정보 PI의 값에 관계없이 0이 되도록 설정되어 있다. 예를 들면, 상수 벡터 const.(Ψ-s),...,const.(Ψ)가 모두 영벡터여도 되고, 상수 벡터 const.'(Ψ-s),...,const.'(Ψ)가 모두 영벡터여도 된다. 또, 상수 벡터 const.(Ψ-s),...,const.(Ψ)가 모두 영벡터이며, 또한, 상수 벡터 const.'(Ψ-s),...,const.'(Ψ)의 일부가 영벡터 이외여도 된다. 또, 상수 벡터 const.'(Ψ-s),...,const.'(Ψ)가 모두 영벡터이며, 또한, 상수 벡터 const.(Ψ-s),...,const.(Ψ)의 적어도 일부가 영벡터 이외여도 된다. 상수 벡터 const.(Ψ-s),...,const.(Ψ)의 적어도 일부가 영벡터 이외이며, 또한, 상수 벡터 const.'(Ψ-s),...,const.'(Ψ)의 일부가 영벡터 이외이며, 또한, 예비 영역의 벡터 w(λ)와 예비 영역의 벡터 v(λ)의 내적이 0이 되어도 된다. 예비 영역에 대응하는 λ에서의 라벨이 LAB(λ)=v(λ)인 경우에는 특정 정보 PI의 값에 관계없이 LIT(λ)=1이 되고, 예비 영역에 대응하는 λ에서의 라벨이 LAB(λ)=¬v(λ)인 경우에는 특정 정보 PI의 값에 관계없이 LIT(λ)=0이 된다(식(101)-(103)).
〔제5 실시형태〕
다음에 본 발명의 제5 실시형태를 설명한다.
제5 실시형태는, 제1 정보가 속성 정보 VSET1에 대응하는 키 정보이며, 제2 정보가 조건 정보 VSET2에 대응하는 암호문이며, 송신자 장치가 키 정보를 출력하고, 수신자 장치에 격납된 암호문이 복호되는 형태이다. 이러한 형태는 함수 암호 방식을 응용한 프로토콜이 예를 들면 Keyword 검색 암호 프로토콜인 경우, 또는 Keyword 검색 암호 프로토콜과 Forward Secure 암호 프로토콜, Key Insulated 암호 프로토콜 혹은 CCA2 안전 암호 프로토콜의 조합인 경우 등에 적용할 수 있다. 또, 본 형태에서는 CP 방식을 사용한다. 이하에서는 제4 실시형태와의 상이점을 중심으로 설명하고, 제4 실시형태와 공통되는 사항에 대해서는 설명을 간략화한다.
<구성>
도 35에 나타내는 바와 같이, 본 형태의 함수 암호 응용 시스템(5)은 네트워크(140)에 접속된 송신자 장치(510)(정보 출력 장치)와 수신자 장치(520)(정보 처리 장치)와 키 생성 장치(430)를 가진다. 또한, 설명의 편의상, 도 35에는 송신자 장치(510)와 수신자 장치(520)와 키 생성 장치(430)가 1개씩 표기되어 있지만, 2개 이상의 송신자 장치(510)나 수신자 장치(520)나 키 생성 장치(430)가 존재해도 된다.
[송신자 장치(510)(정보 출력 장치)]
도 46은 본 형태의 송신자 장치(510)의 구성을 설명하기 위한 블록도이다. 또한, 본 형태에 있어서, 제4 실시형태와 공통되는 부분에 대해서는 제4 실시형태와 동일한 부호를 붙이고 설명을 생략한다(이하, 동일).
도 46에 나타내는 바와 같이, 본 형태의 송신자 장치(510)는 일시 메모리(111a)와, 기억부(511d)와, 입력부(112)와, 제어부(113)와, 식별자 특정부(414a)와, 속성 정보 설정부(414b)와, 키 생성 처리부(514d)와, 통신부(115)를 가진다.
송신자 장치(510)는 예를 들면 CPU, RAM, ROM 등을 구비하는 공지 또는 전용의 컴퓨터에 특별한 프로그램이 읽어들여져 실행됨으로써 구성되는 특별한 장치이다. 예를 들면, 키 생성 처리부(514d)는 CPU가 소정의 프로그램을 실행함으로써 구성되는 처리부나 집적 회로 등이며, 기억부(511d)는 RAM, 레지스터, 캐시 메모리, 집적 회로내의 소자 혹은 하드디스크 등의 보조 기억 장치, 또는 이들의 적어도 일부의 결합으로 이루어지는 기억 영역이다.
[수신자 장치(520)(정보 처리 장치)]
도 47은 본 형태의 수신자 장치(520)의 구성을 설명하기 위한 블록도이다.
도 47에 나타내는 바와 같이, 본 형태의 수신자 장치(520)는 일시 메모리(121a)와, 기억부(421b, 521c)와, 제어부(123)와, 식별자 특정부(524a)와, 조건 정보 생성부(524c)와, 암호화부(524d)와, 복호부(524e)와, 통신부(125)를 가진다.
수신자 장치(520)는 예를 들면 CPU, RAM, ROM 등을 구비하는 공지 또는 전용의 컴퓨터에 특별한 프로그램이 읽어들여져 실행됨으로써 구성되는 특별한 장치이다. 예를 들면, 암호화부(524d)는 CPU가 소정의 프로그램을 실행함으로써 구성되는 처리부나 집적 회로 등이며, 기억부(421b, 521c)는 RAM, 레지스터, 캐시 메모리, 집적 회로내의 소자 혹은 하드디스크 등의 보조 기억 장치, 또는 이들의 적어도 일부의 결합으로 이루어지는 기억 영역이다.
<사전 설정>
다음에 본 형태의 함수 암호 응용 시스템(5)의 사전 설정을 설명한다.
[특정 정보]
도 48A 및 도 48B는, 제5 실시형태에 있어서의 1종류 이상의 프로토콜을 특정하기 위한 특정 정보 PI와 프로토콜의 대응 관계를 예시한 도면이다.
도 48A의 예에서는, 프로토콜마다 특정 정보 PI가 할당되어 있다. 즉, 이 예에서는, 특정 정보 PI=0에 대하여 Keyword 검색 암호 프로토콜이 할당되고, 특정 정보 PI=1에 대하여 Forward Secure 암호 프로토콜이 할당되고, 특정 정보 PI=2에 대하여 Key Insulated 암호 프로토콜이 할당되고, 특정 정보 PI=3에 대하여 CCA2 안전 암호 프로토콜이 할당되어 있다. 이 예에서 어느 하나의 프로토콜을 단체로 선택하는 경우에는, 선택하는 프로토콜에 대응하는 1개의 특정 정보 PI를 특정하고, 2종류 이상의 프로토콜의 조합을 선택하는 경우에는, 선택하는 2종류 이상의 프로토콜에 각각 대응하는 특정 정보 PI의 조합을 특정한다.
한편, 도 48B의 예에서는, 프로토콜마다 특정 정보 PI가 할당되어 있는 것 외에, 2종류 이상의 프로토콜의 조합에 대해서도 특정 정보 PI가 할당되어 있다. 이 예에서 어느 하나의 프로토콜을 단체로 선택하는 경우에는, 선택하는 프로토콜에 대응하는 1개의 특정 정보 PI를 특정하고, 2종류 이상의 프로토콜의 조합을 선택하는 경우에는, 선택하는 2종류 이상의 프로토콜의 조합에 대응하는 특정 정보 PI를 특정한다.
또한, 도 48A 및 도 48B에 나타낸 특정 정보 PI는 일례이며, 그 밖의 방법에 의해 1종류 이상의 프로토콜에 대응하는 특정 정보 PI가 특정되어도 된다.
[식별자]
도 49A 및 도 49B 및 도 50은, 제5 실시형태에 있어서, 프로토콜마다 또는 당해 프로토콜의 조합마다 정해진, 식별자 ID(λ)를 특정하기 위한 규칙의 일례를 설명하기 위한 도면이다. 또한, 본 형태의 식별자 ID(λ)는 유한체 Fq의 원소를 요소로 하는 n(λ)차원 벡터이다.
도 49A의 예에서는, 선택 가능한 프로토콜마다 식별자 ID(λ)가 할당된다. 선택된 프로토콜에 할당된 식별자 ID(λ)에는 그 프로토콜에 정해진 규칙에 따른 값이 입력된다. 예를 들면, Keyword 검색 암호 프로토콜이 선택된 경우에는, 검색용 키워드에 대응하는 n(λ)차원 벡터가 식별자 ID(1)에 입력된다. 한편, 선택되지 않은 프로토콜에 할당된 식별자 ID(λ)에는 n(λ)차원 벡터인 상수(const.)가 입력된다. 또, 복수의 프로토콜의 조합이 선택된 경우에는, 그 조합을 구성하는 복수의 프로토콜이 선택된 것으로 하여 식별자 ID(λ)의 값이 결정된다. 예를 들면, Keyword 검색 암호 프로토콜과 CCA2 안전 암호 프로토콜의 조합이 선택된 경우에는, 검색용 키워드에 대응하는 n(λ)차원 벡터가 식별자 ID(1)에 입력되고, n(λ)차원 벡터인 일회용 정보가 식별자 ID(4)에 입력되고, 그 밖의 식별자 ID(2), ID(3)에는 n(λ)차원 벡터인 상수(const.)가 입력된다.
도 49B의 예에서는, 선택된 프로토콜에만 식별자 ID(λ)가 할당된다. 예를 들면, Keyword 검색 암호 프로토콜이 선택된 경우에는, 검색용 키워드를 나타내는 n(λ)차원 벡터인 식별자 ID(1)만이 할당된다. 또, 예를 들면, Keyword 검색 암호 프로토콜과 CCA2 안전 암호 프로토콜의 조합이 선택된 경우에는, 검색용 키워드를 나타내는 n(λ)차원 벡터인 식별자 ID(1)와, n(λ)차원 벡터인 일회용 정보를 나타내는 식별자 ID(3)만이 할당된다.
도 50의 예에서는, 선택 가능한 프로토콜 및 프로토콜의 조합마다 식별자 ID(λ)가 할당된다. 선택된 프로토콜 및 프로토콜의 조합에 할당된 식별자 ID(λ)에는 선택된 프로토콜 또는 조합을 구성하는 각 프로토콜에 정해진 각 규칙에 따른 값이 입력되고, 선택되지 않은 프로토콜이나 조합에 할당된 식별자 ID(λ)에는 n(λ)차원 벡터인 상수(const.)가 입력된다. 예를 들면, Keyword 검색 암호 프로토콜과 CCA2 안전 암호 프로토콜의 조합이 선택된 경우에는, 검색용 키워드와 일회용 정보의 조합으로 정해지는 n(λ)차원 벡터가 식별자 ID(4)에 입력되고, 그 밖의 식별자 ID(λ)에는 n(λ)차원 벡터인 상수(const.)가 입력된다.
또, 상기 서술한 식별자의 결정 방법은 일례에 지나지 않고, 그 밖의 방법으로 식별자가 특정해도 된다. 예를 들면, 도 50의 예의 변형으로서, 선택된 프로토콜 및 프로토콜의 조합에만 식별자 ID(λ)가 할당되어도 된다.
[속성 정보(제1 대응 정보)]
제4 실시형태와 마찬가지이기 때문에 설명을 생략한다.
[조건 정보(제2 대응 정보)]
본 형태에서도 각 식별자 ID’(λ)를 n(λ)차원 벡터 v(λ)(제2 부분 대응 정보)로 하고 (v(λ)=ID’(λ)), n(λ)차원 벡터 v(λ)(λ=1,...,Ψ)의 집합 {v(λ)}λ=1,...,Ψ을 조건 정보 VSET2로 한다.
식별자 ID’(λ)는 상정된 소정값의 식별자 ID(λ)에 대응하는 n(λ)차원 벡터이다. 즉, 식별자 ID’(λ)와 상정된 소정값의 식별자 ID(λ)와의 내적이 0이 되도록 식별자 ID’(λ)의 값이 정해진다. 예를 들면, 도 49A의 예에 의해 식별자 ID(λ)가 설정되는 경우에는, 도 49A의 규칙에 따라 정해지는 상정된 소정값의 식별자 ID(1), ID(2), ID(3), ID(4)에 대하여, 내적 ID(1)?ID’(1)=0, ID(2)?ID’(2)=0, ID(3)?ID’(3)=0, ID(4)?ID’(4)=0이 되는 식별자 ID’(λ)가 정해진다.
또한 「상정된 소정값」은 수신자 장치(520)측에서 상정된 프로토콜 및/또는 당해 프로토콜의 조합 및/또는 키워드로 이루어지는 조건에 대응한다. 구체적으로는 「상정된 소정값」은 수신자 장치(520)측에서 상정된 표준형 논리식의 리터럴에 대응한다. 예를 들면, 표준형 논리식의 λ=1에 대응하는 리터럴을 「식별자 ID(1)은 키워드 KWr에 대응하는 값을 취한다」라는 명제의 명제변수 PRO(1)로 하는 경우에는, 키워드 KWr에 대응하는 식별자 ID(1)에 대하여 내적 ID(1)?ID’(1)=0이 되는 식별자 ID'(1)이 설정된다. 이러한 각 식별자 ID’(λ)를 특정하기 위한 규칙은 미리 정해지고, 수신자 장치(520)의 식별자 특정부(524a)에 설정된다.
[암호화 데이터베이스(DB)]
도 51은 제5 실시형태의 암호화 DB의 일례를 설명하기 위한 도면이다.
도 51에 있어서의 Mr1~Mr99는 각각 도큐먼트 등의 검색 대상 정보이며, KWr1~KWr9는 각각 단어 등의 키워드이며, True는 「참」을 의미하는 「1」 등의 데이터이다. 또, C(Mr1) ,...,C(Mr99)는 각각 검색 대상 정보 Mr1~Mr99의 암호문이다. 암호문 C(Mr1) ,...,C(Mr99)의 암호화 방식은 공통 키 암호 방식, 공개 키 암호 방식, ID 베이스 암호 방식, 함수 암호 방식 등 어떤 것이어도 된다. 또, Cr(KWr1,True) ,...,Cr(KWr9,True)는 각각 조건 정보 VSET2와 평문 True를 함수 암호 방식의 암호화 함수에 입력하여 얻어지는 함수 암호 방식의 암호문(제2 정보)이다. 암호문 Cr(KWr1,True) ,...,Cr(KWr9,True)는 각각 키워드 KWr1~KWr9에 각각 대응하는 각 속성 정보 VSET1에 대응하는 키 정보를 사용하여 올바르게 복호 가능하다. 즉, 예를 들면, 키워드 KWr1에 대응하는 속성 정보 VSET1과, 암호문 Cr(KWr1,True)를 암호화하기 위해서 사용한 조건 정보 VSET2는 논리식의 윤리값을 참으로 한다.
암호화 DB는 검색 대상 정보(「Mr」라고 총칭함)의 암호문 C(Mr1) ,...,C(Mr99)에 대하여, 각각 대응하는 키워드에 대응하는 암호문을 Cr(KWr1,True),...,Cr(KWr9,True)을 대응지은 것이다. 예를 들면, 검색 대상 정보 Mr1에 대응하는 키워드가 KWr1, KWr2, KWr3, KWr4인 경우, 검색 대상 정보 Mr1의 암호문 C(Mr1)과, 키워드 KWr1, KWr2, KWr3, KWr4에 대응하는 암호문 Cr(KWr1,True), Cr(KWr2,True), Cr(KWr3,True), Cr(KWr4,True)이 대응지어진다. 이것에 의해, 예를 들면, 키워드 KWr1에 대응하는 속성 정보 VSET1에 대응하는 키 정보를 사용하여 암호문 Cr(KWr1,True)이 올바르게 복호된 것으로써, 검색 대상 정보 Mr1의 암호문 C(Mr1)을 복호하지 않고, 키워드 KWr1이 검색 대상 정보 Mr1에 대응하는 것을 알 수 있다.
본 형태에서는 이러한 암호화 DB가 수신자 장치(520)의 기억부(521c)에 격납되고, 기억부(521c)에는 각 키워드(「KWr」라고 총칭함)와 평문 True가 격납된다. 또, 암호화 DB를 구성하는 각 키워드 KWr에 대응하는 각 암호문 Cr(KWr, True)은 후술하는 바와 같이 순차 갱신된다.
[송신자 장치(510)에서 미리 정해진 논리식]
본 형태에서는 송신자 장치(510)의 키 생성 처리부(514d) 및 수신자 장치(520)의 복호부(524e)에 몇개의 프로토콜 및/또는 당해 프로토콜의 조합 및/또는 키워드로 이루어지는 조건에 대응하는 표준형 논리식(예를 들면, PRO(1)∧PRO(2)∨¬PRO(3))이 미리 설정되어 있다. 바꾸어 말하면, 당해 표준형 논리식에 대응하는 라벨이 붙은 행렬 LMT(MT, LAB)이 미리 키 생성 처리부(514d) 및 복호부(524e)에 정해져 있다. 단, 표준형 논리식의 리터럴인 PRO(λ)나 ¬PRO(λ)를 특정하는 PRO(λ)나 라벨 LAB(λ)을 특정하는 n(λ)차원 벡터 w(λ)의 값은 정해져 있지 않다. 즉, 미리 라벨이 LAB(λ)=w(λ)인지 LAB(λ)=¬w(λ)인지는 정해져 있지만, n(λ)차원 벡터 w(λ)의 값은 정해져 있지 않다. 또한, 검색용 키워드에 대응하는 n(λ)차원 벡터 w(λ)에 대응하는 라벨(도 49A의 예에서는 λ=1의 라벨)은 LAB(λ)=w(λ)이다. 식별자 ID(λ)에 대응하는 n(λ)차원 벡터 w(λ)가 정해짐으로써 PRO(λ)나 라벨 LAB(λ)을 특정하는 n(λ)차원 벡터 w(λ)의 값이 정해지고, 표준형 논리식이나 라벨이 붙은 행렬 LMT(MT, LAB)을 특정할 수 있다.
[마스터 비밀 정보]
본 형태의 키 생성 장치(430)의 기억부(431b)에는 함수 암호 방식의 마스터 비밀 정보 MSK([Setup(1sec,(Ψ;n(1),...,n(Ψ))) : 셋업] 참조)가 격납된다.
<처리>
도 52는 제5 실시형태의 검색 의뢰 처리를 설명하기 위한 플로우차트이다. 도 53A는 제5 실시형태의 키 정보 생성 처리를 설명하기 위한 플로우차트이다. 또, 도 53B는 제5 실시형태의 검색 처리를 설명하기 위한 플로우차트이다. 이하, 이들 도면을 사용하여 본 형태의 처리를 설명한다.
[검색 의뢰 처리?키 정보 생성 처리]
본 형태의 암호화 처리에서는 우선 실행하는 함수 암호 방식을 응용한 1종류 이상의 프로토콜을 특정하기 위한 특정 정보 PI와, 검색용 키워드 KWt가, 송신자 장치(510)(도 46)의 입력부(112)에 입력된다(스텝 S511). 예를 들면, 특정 정보 PI가 도 48A와 같이 정해지는 것이면, 이용자에게 선택된 1종류의 프로토콜에 대응하는 특정 정보 PI, 또는 이용자에게 선택된 2종류 이상의 프로토콜에 각각 대응하는 특정 정보 PI의 조합이 입력부(112)에 입력된다. 또, 예를 들면, 특정 정보 PI가 도 48B와 같이 정해지는 것이면, 이용자에게 선택된 1종류의 프로토콜 또는 2종류 이상의 프로토콜에 대응하는 특정 정보 PI가 입력부(112)에 입력된다. 또한, 본 형태에서는 선택되는 프로토콜 또는 프로토콜의 조합에 Keyword 검색 암호 프로토콜이 포함되는 것으로 한다.
입력부(112)에 입력된 특정 정보 PI와 검색용 키워드 KWt는 식별자 특정부(414a)에 입력된다. 식별자 특정부(414a)는 당해 특정 정보 PI에 의해 특정되는 프로토콜마다 또는 당해 프로토콜의 조합마다 정해진 규칙에 따라(도 49A, 도 49B 및 도 50 등 참조), 당해 프로토콜마다 또는 당해 프로토콜의 조합마다, 검색용 키워드 KWt에 대응하는 식별자 ID(λ)를 특정하고, 특정한 1종류 이상의 당해 식별자 ID(λ)를 출력한다(스텝 S512).
식별자 특정부(414a)로부터 출력된 1종류 이상의 식별자 ID(λ)는 속성 정보 설정부(414b)에 입력된다. 속성 정보 설정부(414b)는,
w(λ)=ID(λ)…(139)
로 하고, n(λ)차원 벡터 w(λ)(λ=1,...,Ψ)의 집합 {w(λ)}λ=1,...,Ψ을 속성 정보 VSET1(특정의 제1 대응 정보)으로 하고, 당해 속성 정보 VSET1을 출력한다(스텝 S513).
속성 정보 설정부(414b)로부터 출력된 속성 정보 VSET1은 키 생성 처리부(514d)에 입력된다. 키 생성 처리부(514d)는 속성 정보 VSET1이 포함하는 n(λ)차원 벡터 w(λ)를 사용하여 라벨 LAB(λ)을 특정하고, 라벨이 붙은 행렬 LMT(MT, LAB)을 정한다(스텝 S514). 라벨 LAB(λ)이 특정된 라벨이 붙은 행렬 LMT(MT, LAB)은 통신부(115)에 보내진다. 통신부(115)는 네트워크(140) 경유로 당해 라벨이 붙은 행렬 LMT(MT, LAB)을 키 생성 장치(430)에 송신하고, 당해 라벨이 붙은 행렬 LMT(MT, LAB)에 대응하는 키 정보 SKS(검색용 키워드 KWt에 대응하는 키 정보 SKS)의 생성을 의뢰한다(스텝 S515).
본 형태의 키 정보 생성 처리에서는 우선 키 생성 장치(430)(도 38)의 통신부(135)가 상기한 속성 정보 VSET1에 대응하는 라벨이 붙은 행렬 LMT(MT, LAB)을 수신한다(스텝 S531). 통신부(135)에서 수신된 라벨이 붙은 행렬 LMT(MT, LAB)은 키 생성부(434)에 입력된다. 키 생성부(434)는 기억부(431b)로부터 마스터 비밀 정보 MSK를 읽어내고, 마스터 비밀 정보 MSK와 라벨이 붙은 행렬 LMT(MT, LAB)을 사용하여, 라벨이 붙은 행렬 LMT(MT, LAB)에 대응하는 키 정보 SKS를 생성하여 출력한다(스텝 S532). 구체적인 생성 순서는 예를 들면 v(λ) 대신에 w(λ)이 사용되는 것 이외에는 제4 실시형태와 동일해도 된다. 생성된 키 정보 SKS는 통신부(135)에 보내지고, 통신부(135)는 당해 키 정보 SKS를 네트워크(140) 경유로 송신자 장치(510)에 송신한다(스텝 S533).
송신자 장치(510)(도 46)의 통신부(115)는 키 정보 SKS를 수신하고, 키 생성 처리부(514d)에 보낸다. 키 생성 처리부(514d)는 당해 키 정보 SKS를 기억부(511d)에 격납한다(스텝 S516). 다음에 기억부(511d)로부터 읽어낸 검색용 키워드 KWt에 대응하는 키 정보 SKS(제1 정보)는 통신부(115)에 보내지고, 거기로부터 네트워크(140) 경유로 수신자 장치(520)에 송신된다(스텝 S517).
[검색 처리]
본 형태의 검색 처리에서는 우선 수신자 장치(520)(도 47)의 통신부(125)가 송신된 검색용 키워드 KWt에 대응하는 키 정보 SKS(제1 정보)를 수신하고, 기억부(421b)에 격납한다(스텝 S521).
이것을 계기로 하여, 식별자 특정부(524a)가 프로토콜마다 또는 당해 프로토콜의 조합마다 정해진 규칙에 따라, 각 검색 대상 정보 Mr에 각각 대응하는 각 키워드 KWr에 대응하는 1종류 이상의 식별자 ID'(λ)를 특정한다(스텝 S522).
식별자 특정부(524a)에서 키워드 KWr마다 특정된 1종류 이상의 식별자 ID'(λ)는 조건 정보 생성부(524c)에 입력된다. 조건 정보 생성부(524c)는 각 키워드 KWr에 대하여, 각각,
v(λ)=ID’(λ)…(140)
으로 하고, n(λ)차원 벡터 v(λ)(λ=1,...,Ψ)의 집합 {v(λ)}λ=1,...,Ψ을 조건 정보 VSET2(특정의 제2 대응 정보)로 하고, 각 키워드 KWr에 각각 대응하는 각 조건 정보 VSET2를 출력한다(스텝 S523).
조건 정보 생성부(524c)로부터 출력된 각 키워드 KWr에 대한 각 조건 정보 VSET2는 암호화부(524d)에 입력된다. 암호화부(524d)는 기억부(111c)로부터 평문 True를 읽어내고, 각 키워드 KWr에 대한 각 조건 정보 VSET2와 평문 True를 각각 함수 암호 방식의 암호화 함수에 입력하고, 각 키워드 KWr에 대하여, 각각 평문 True의 암호문 Cr(KWr, True)(제2 정보)을 생성하고, 이들에 의해 암호화 DB의 각 키워드에 대응하는 각 암호문을 갱신하고, 암호화 DB를 갱신한다(스텝 S524). 또한, 함수 암호 방식의 암호화 함수의 일례는 상기 서술한 식(113)(136)으로 특정되는 식(137)이다(C=Cr(KWr, True), M=KWr).
다음에 스텝 S521에서 통신부(125)가 수신한 검색용 키워드 KWt에 대응하는 키 정보 SKS(제1 정보)와, 기억부(521c)로부터 읽어낸 암호화 DB의 어느 하나의 암호문 Cr(KWr, True)(제2 정보)이 복호부(524e)에 입력된다. 복호부(524e)는 키 정보 SKS(제1 정보)와 암호문 Cr(KWr, True)(제2 정보)을 함수 암호 방식의 복호함수에 입력하여 복호 처리를 실행하고, 그것에 의해 얻어진 복호 결과 Mr="True" or Not을 출력한다(스텝 S525). 예를 들면, 복호부(524e)는 C=Cr(KWr, True)(식(137)) 및 키 정보 SKS(식(112))를 사용하여, 상기 서술한 (Dec-1)-(Dec-4)의 처리중의 조건 정보 VSET2={λ,v(λ)|λ=1,...,Ψ} 대신에 속성 정보 VSET1={λ,w(λ)|λ=1,...,Ψ}가 사용되고, 속성 정보 VSET1={λ,w(λ)|λ=1,...,Ψ} 대신에 조건 정보 VSET2={λ,v(λ)|λ=1,...,Ψ}가 사용되는 처리를 행한다(식(122)(128)).
여기서, 키 정보 SKS(제1 정보)에 대응하는 속성 정보 VSET1과, 암호문 Cr(KWr, True)(제2 정보)에 대응하는 조건 정보 VSET2가 키 생성 처리부(514d) 및 복호부(524e)에 설정되어 있던 표준형 논리식의 진리값을 참으로 하는 경우에는 GV∈span<MTTFV>가 되고, 올바른 복호 결과가 얻어지고, 복호 결과 Mr=평문 True가 된다. 한편, 당해 속성 정보 VSET1과 당해 조건 정보 VSET2가 키 생성 처리부(514d) 및 복호부(524e)에 설정되어 있던 표준형 논리식의 진리값을 거짓으로 하는 경우에는 GV∈span<MTTFV>가 되지 않고, 올바른 복호 결과가 얻어지지 않는다. 올바른 복호 결과가 얻어진 경우에는, 그 암호문 Cr(KWr, True)에 대응지어진 검색 대상 정보 Mr의 암호문 C(Mr)이 검색 결과로서 추출된다. 이러한 스텝 S525의 처리는 암호화 DB를 구성하는 모든 암호문 Cr(KWr, True)에 대하여 각각 실행된다.
검색용 키워드 KWt에 대응하는 키 정보 SKS(제1 정보)가 수신자 장치(520)측에서 상정된 프로토콜 및/또는 당해 프로토콜의 조합 및/또는 키워드로 이루어지는 조건에 합치하는 것이었던 경우에는, 당해 검색용 키워드 KWt와 동일한 키워드 KW에 대응하는 검색 대상 정보 Mr의 암호문 C(Mr)이 검색 결과로서 추출된다.
한편, 검색용 키워드 KWt에 대응하는 키 정보 SKS(제1 정보)가 수신자 장치(520)에서 미리 정해진 프로토콜 및/또는 당해 프로토콜의 조합 및/또는 키워드로 이루어지는 조건에 합치하지 않는 것이었던 경우에는, 올바른 복호가 행해지지 않기 때문에, 검색용 키워드 KWt와 동일한 키워드 KW에 대응하는 검색 대상 정보 Mr의 암호문 C(Mr)은 추출되지 않는다. 즉, 실질적으로는 암호화 DB의 검색을 실행할 수 없다.
이상과 같이, 본 형태에서는, 송신자 장치(510)가 사용하는 프로토콜이나 프로토콜의 조합이나 키워드를 선택할 수 있고, 수신자 장치(520)에 있어서 암호화 DB의 검색이 가능한 키 정보 SKS(제1 정보)의 프로토콜이나 프로토콜의 조합이나 키워드의 조건을 설정해 둘 수 있다. 그리고, 실질적으로는 수신자 장치(520)는 송신자 장치(510)에서 선택된 프로토콜이나 프로토콜의 조합이나 키워드가 수신자 장치(520)에 설정된 조건에 합치한 경우에만, 암호화 DB의 검색을 실행하게 된다.
〔제5 실시형태의 변형예〕
제5 실시형태에 있어서도, 속성 정보 VSET1 및 조건 정보 VSET2에 대하여, 제4 실시형태의 변형예 1에서 설명한 것 같은 예비 영역을 설치해도 된다.
또, 본 형태에서는, 제1 정보가 속성 정보 VSET1에 대응하는 키 정보이며, 제2 정보가 조건 정보 VSET2에 대응하는 암호문인 경우의 일례로서, Keyword 검색 암호 프로토콜을 기본으로 한 프로토콜이 실행되는 경우를 예시했다. 그러나, 본 발명은 이것에 한정되지 않는다.
〔제6 실시형태〕
제6 실시형태는, 제4 실시형태와 제5 실시형태의 전환이 가능한 형태이다. 즉, 본 형태의 송신자 장치는 특정 정보 PI에 의해 특정되는 프로토콜에 따라, 속성 정보 VSET1에 대응하는 암호문을 생성할지 속성 정보 VSET1에 대응하는 키 정보를 생성할지를 전환한다. 또, 본 형태의 수신자 장치는 특정 정보 PI에 의해 특정되는 프로토콜에 따라, 조건 정보에 대응하는 키 정보를 생성할지 조건 정보에 대응하는 암호문을 생성할지를 전환한다. 이하에서는, 제4 실시형태와의 상이점을 중심으로 설명하고, 제4 실시형태와 공통되는 부분에 대해서는 설명을 생략한다.
<구성>
도 35에 나타내는 바와 같이, 본 형태의 함수 암호 응용 시스템(6)은 네트워크(140)에 접속된 송신자 장치(610)(정보 출력 장치)와 수신자 장치(620)(정보 처리 장치)와 키 생성 장치(430)를 가진다. 또한, 설명의 편의상, 도 35에는 송신자 장치(610)와 수신자 장치(620)와 키 생성 장치(430)가 1개씩 표기되어 있지만, 2개 이상의 송신자 장치(610)나 수신자 장치(620)나 키 생성 장치(430)가 존재해도 된다.
[송신자 장치(610)(정보 출력 장치)]
도 54는 본 형태의 송신자 장치(610)의 구성을 설명하기 위한 블록도이다. 또한, 본 형태에 있어서, 상기 서술한 실시형태와 공통되는 부분에 대해서는 상기 서술한 실시형태와 동일한 부호를 붙이고 설명을 생략한다(이하, 동일).
도 54에 나타내는 바와 같이, 본 형태의 송신자 장치(610)는 일시 메모리(111a)와, 기억부(111c, 511d)와, 입력부(112)와, 제어부(113)와, 식별자 특정부(414a)와, 속성 정보 설정부(414b)와, 암호화부(414c)와, 키 생성 처리부(514d)와, 전환부(614)와, 통신부(115)를 가진다.
송신자 장치(610)는 예를 들면 CPU, RAM, ROM 등을 구비하는 공지 또는 전용의 컴퓨터에 특별한 프로그램이 읽어들여져 실행됨으로써 구성되는 특별한 장치이다. 예를 들면, 전환부(614)는 CPU가 소정의 프로그램을 실행함으로써 구성되는 처리부나 집적 회로 등이다.
[수신자 장치(620)(정보 처리 장치)]
도 55는 본 형태의 수신자 장치(620)의 구성을 설명하기 위한 블록도이다.
도 55에 나타내는 바와 같이, 본 형태의 수신자 장치(620)는 일시 메모리(121a)와, 기억부(421b, 521c)와, 제어부(123)와, 식별자 특정부(624a)와, 조건 정보 생성부(624c)와, 키 생성 처리부(424d)와, 암호화부(524d)와, 복호부(624e)와, 전환부(624a, 624b)와, 통신부(125)를 가진다. 식별자 특정부(624a)는 상기 서술한 식별자 특정부(424a 및 524a)의 양쪽의 기능을 구비한다. 조건 정보 생성부(624c)는 상기 서술한 조건 정보 생성부(424c 및 524c)의 양쪽의 기능을 구비한다. 복호부(624e)는 상기 서술한 복호부(424e 및 524e)의 양쪽의 기능을 구비한다. 또한, 설명의 편의상, 도 55에는 통신부(125)를 나타내는 블록이 2개 표기되어 있지만, 이것은 별개의 통신부(125)가 2개 필요한 것을 의미하지 않는다.
수신자 장치(620)는 예를 들면 CPU, RAM, ROM 등을 구비하는 공지 또는 전용의 컴퓨터에 특별한 프로그램이 읽어들여져 실행됨으로써 구성되는 특별한 장치이다. 예를 들면, 전환부(624a, 624b)는 CPU가 소정의 프로그램을 실행함으로써 구성되는 처리부나 집적 회로 등이다.
<사전 설정>
제4, 5 실시형태와 동일하기 때문에 설명을 생략한다.
<처리>
도 56A는 제6 실시형태의 송신자 장치(610)의 처리를 설명하기 위한 플로우차트이다. 도 56B는 제6 실시형태의 수신자 장치(620)의 처리를 설명하기 위한 플로우차트이다. 이하, 이들 도면을 사용하여 본 형태의 처리를 설명한다.
본 형태의 송신자 장치(610)의 처리에서는 우선 실행하는 함수 암호 방식을 응용한 1종류 이상의 프로토콜을 특정하기 위한 특정 정보 PI가 송신자 장치(610)(도 54)의 입력부(112)에 입력된다(스텝 S611).
여기서, 특정 정보 PI에 의해 특정되는 프로토콜 또는 프로토콜의 조합이, 제4 실시형태와 같은 속성 정보 VSET1에 대응하는 암호문을 생성하는 암호화 처리였던 경우에는, 전환부(614)의 제어하, 제4 실시형태의 스텝 S411~S415의 암호화 처리가 실행된다. 단, 본 형태의 송신자 장치(610)는 암호문 Ct와 함께 특정 정보 PI를 수신자 장치(620)에 송신한다.
한편, 특정 정보 PI에 의해 특정되는 프로토콜 또는 프로토콜의 조합이, 제5 실시형태와 같은 속성 정보 VSET1에 대응하는 키 정보를 생성하는 검색 의뢰 처리 및 키 정보 생성 처리였던 경우에는, 전환부(614)의 제어하, 제5 실시형태의 스텝 S511~S517, S531~S533의 검색 의뢰 처리 및 키 정보 생성 처리가 실행된다. 단, 본 형태의 송신자 장치(610)는 키 정보 SKS와 함께 특정 정보 PI를 수신자 장치(620)에 송신한다.
본 형태의 수신자 장치(620)의 처리에서는 우선 수신자 장치(620)(도 55)의 통신부(125)가, 송신자 장치(610)로부터 송신된 암호문 Ct와 특정 정보 PI의 세트, 또는 키 정보 SKS와 특정 정보 PI의 세트를 수신한다(스텝 S621).
여기서, 특정 정보 PI에 의해 특정되는 프로토콜 또는 프로토콜의 조합이, 제4 실시형태와 같은 조건 정보 VSET2에 대응하는 키 정보를 생성하는 복호 처리 및 키 정보 생성 처리였던 경우에는, 전환부(624a, 624b)의 제어하, 제4 실시형태의 스텝 S421~S427, S431~S433의 복호 처리 및 키 정보 생성 처리가 실행된다.
한편, 특정 정보 PI에 의해 특정되는 프로토콜 또는 프로토콜의 조합이, 제5 실시형태와 같은 조건 정보 VSET2에 대응하는 암호문을 생성하는 검색 처리였던 경우에는, 전환부(624a, 624b)의 제어하, 제5 실시형태의 스텝 S521~S525의 검색 처리가 실행된다.
〔제4~6 실시형태의 그 밖의 변형예〕
또한, 본 발명은 상기 서술한 제4~6의 실시형태에 한정되는 것은 아니다. 예를 들면, 상기 서술한 유한체 Fq상에서 정의된 각 연산을 위수 q의 유한환 Zq상에서 정의된 연산으로 치환해도 된다. 유한체 Fq상에서 정의된 각 연산을 유한환 Zq상에서 정의된 연산으로 치환하는 방법의 일례는, 소수나 그 멱승값 이외의 q를 허용하는 방법이다.
또, 제4~6 실시형태에서는 송신자 장치나 수신자 장치의 외부에 키 생성 장치가 설치되어 있었지만, 송신자 장치나 수신자 장치가 키 생성 장치의 기능을 구비하고 있어도 된다. 이러한 송신자 장치나 수신자 장치는 키 정보의 생성을 키 생성 장치에 의뢰하지 않고, 스스로 키 정보를 생성할 수 있다.
또, 제4~6 실시형태에서는 수신자 장치가 송신자 장치로부터 송신된 암호문 또는 키 정보를 수신한 후에, 수신자 장치에서 조건 정보 VSET2가 정해졌다. 그러나, 프로토콜에 따라서는 수신자 장치가 송신자 장치로부터 송신된 암호문 또는 키 정보를 수신하기 전에 수신자 장치에서 조건 정보 VSET2를 정할 수 있는 경우도 있다. 이 경우에는 수신자 장치가 송신자 장치로부터 송신된 암호문 또는 키 정보를 수신하기 전에 조건 정보 VSET2를 정하고, 당해 조건 정보 VSET2에 대응하는 키 정보 또는 암호문을 생성해도 된다.
또, 속성 정보 VSET1 대신에 조건 정보 VSET2를 사용하고, 조건 정보 VSET2 대신에 속성 정보 VSET1을 사용해도 된다. 즉, 조건 정보 VSET2가 제1 대응 정보에 상당하고, 속성 정보 VSET1이 제2 대응 정보에 상당해도 된다.
또, 제4~6 실시형태에서는 각 장치가 네트워크를 통하여 정보를 주고받았다. 그러나, 각 장치가 USB 메모리 등의 가반형 기록 매체를 통하여 정보를 주고받아도 된다.
또, 상기 서술한 각종 처리는 기재에 따라 시계열로 실행될 뿐만아니라, 처리를 실행하는 장치의 처리 능력 또는 필요에 따라서 병렬적으로 또는 개별적으로 실행되어도 된다. 그 밖에 본 발명의 취지를 일탈하지 않는 범위에서 적당히 변경이 가능한 것은 말할 필요도 없다.
〔프로그램 및 기록 매체〕
또, 상기 서술한 제1~6 실시형태의 구성을 컴퓨터에 의해 실현하는 경우, 각 장치가 가져야 할 기능의 처리 내용은 프로그램에 의해 기술된다. 그리고, 이 프로그램을 컴퓨터로 실행함으로써, 상기 처리 기능이 컴퓨터상에서 실현된다.
이 처리 내용을 기술한 프로그램은 컴퓨터로 판독 가능한 기록 매체에 기록해 둘 수 있다. 컴퓨터로 판독 가능한 기록 매체로서는, 예를 들면, 자기 기록 장치, 광디스크, 광자기 기록 매체, 반도체 메모리 등 어떤 것이어도 된다.
또, 이 프로그램의 유통은 예를 들면 그 프로그램을 기록한 DVD, CD-ROM 등의 가반형 기록 매체를 판매, 양도, 대여하거나 함으로써 행한다. 또한, 이 프로그램을 서버 컴퓨터의 기억 장치에 격납해 두고, 네트워크를 통하여 서버 컴퓨터로부터 다른 컴퓨터에 그 프로그램을 전송함으로써, 이 프로그램을 유통시키는 구성으로 해도 된다.
이러한 프로그램을 실행하는 컴퓨터는 예를 들면 우선 가반형 기록 매체에 기록된 프로그램 혹은 서버 컴퓨터로부터 전송된 프로그램을, 일단 자기의 기억 장치에 격납한다. 그리고, 처리의 실행시, 이 컴퓨터는 자기의 기록 매체에 격납된 프로그램을 판독하고, 판독한 프로그램에 따른 처리를 실행한다. 또, 이 프로그램의 다른 실행 형태로서, 컴퓨터가 가반형 기록 매체로부터 직접 프로그램을 판독하고, 그 프로그램에 따른 처리를 실행하는 것으로 해도 되고, 또한, 이 컴퓨터에 서버 컴퓨터로부터 프로그램이 전송될 때마다, 차례로 수취한 프로그램에 따른 처리를 실행하는 것으로 해도 된다. 또, 서버 컴퓨터로부터 이 컴퓨터로의 프로그램의 전송은 행하지 않고, 그 실행 지시와 결과 취득만에 의해 처리 기능을 실현하는, 소위 ASP(Application Service Provider)형의 서비스에 의해, 상기 서술한 처리를 실행하는 구성으로 해도 된다. 또한, 본 형태에 있어서의 프로그램에는 전자 계산기에 의한 처리의 용도로 제공하는 정보로서 프로그램에 준하는 것(컴퓨터에 대한 직접적인 지령은 아니지만 컴퓨터의 처리를 규정하는 성질을 가지는 데이터 등)을 포함하는 것으로 한다.
또, 이 형태에서는 컴퓨터상에서 소정의 프로그램을 실행시킴으로써, 본 장치를 구성하는 것으로 했지만, 이들의 처리 내용의 적어도 일부를 하드웨어적으로 실현하는 것으로 해도 된다.
1~3…함수 암호 응용 시스템
110, 210, 310…송신자 장치(정보 출력 장치)
120, 220, 320…수신자 장치(정보 처리 장치)
130…키 생성 장치

Claims (47)

  1. 제1 대응 정보 및 제2 대응 정보의 조합에 대응하는 논리식의 진리값이 참인 경우에 암호문이 올바르게 복호되는 함수 암호 방식에 따른 프로토콜마다 정해진 규칙, 또는 상기 함수 암호 방식에 따른 프로토콜의 조합마다 정해진 규칙에 따라, 상기 함수 암호 방식에 따른 특정의 프로토콜 또는 상기 함수 암호 방식에 따른 특정의 프로토콜의 조합에 대응하는 1종류의 식별자 또는 복수 종류의 식별자를 특정하는 식별자 특정부와,
    상기 1종류의 식별자 또는 상기 복수 종류의 식별자의 조합에 대응하는 특정의 제1 대응 정보를 설정하는 대응 정보 설정부와,
    상기 특정의 제1 대응 정보에 대응하는 함수 암호 방식의 암호문 또는 키 정보인 제1 정보를 출력하는 출력부를 포함하는 정보 출력 장치와,
    상기 제1 정보, 및 특정의 제2 대응 정보에 대응하는 함수 암호 방식의 키 정보 또는 암호문인 제2 정보를 함수 암호 방식의 복호함수에 입력하고, 상기 제1 정보에 대응하는 상기 특정의 제1 대응 정보 및 상기 제2 정보에 대응하는 상기 특정의 제2 대응 정보의 조합에 대응하는 논리식의 진리값이 참인 경우에 복호 결과를 생성하는 복호부를 포함하는 정보 처리 장치를 가지고,
    상기 특정의 제2 대응 정보는, 상기 특정의 제1 대응 정보에 대응하는 상기 제1 정보, 및 상기 특정의 제2 대응 정보에 대응하는 상기 제2 정보가 상기 복호함수에 입력된 경우, 상기 특정의 제1 대응 정보가 취하는 1종류의 값 또는 복수 종류의 값에 대하여 각각 복호 결과가 얻어지는 값을 취하고,
    상기 제1 정보가 상기 특정의 제1 대응 정보에 대응하는 암호문인 경우에는 상기 제2 정보는 상기 특정의 제2 대응 정보에 대응하는 키 정보이며, 상기 제1 정보가 상기 특정의 제1 대응 정보에 대응하는 키 정보인 경우에는 상기 제2 정보는 상기 특정의 제2 대응 정보에 대응하는 암호문인 것을 특징으로 하는 함수 암호 응용 시스템.
  2. 제 1 항에 있어서,
    상기 특정의 제2 대응 정보는, 상기 특정의 제1 대응 정보에 대응하는 상기 제1 정보, 및 상기 특정의 제2 대응 정보에 대응하는 상기 제2 정보가 상기 복호함수에 입력된 경우, 상기 특정의 제1 대응 정보가 취하는 복수 종류의 값에 대하여 각각 복호 결과가 얻어지는 값을 취하는 것을 특징으로 하는 함수 암호 응용 시스템.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 식별자 특정부는, 상기 특정의 프로토콜의 조합에 대응하는 상기 1종류의 식별자 또는 복수 종류의 식별자를 특정하고,
    상기 특정의 프로토콜의 조합은, 상기 함수 암호 방식에 따른 복수 종류의 프로토콜로 이루어지는 조합인 것을 특징으로 하는 함수 암호 응용 시스템.
  4. 제 3 항에 있어서,
    상기 정보 출력 장치는, 상기 특정의 프로토콜에 따라, 상기 제1 정보가 암호문인지 키 정보인지를 전환하는 제1 전환부를 추가로 가지고,
    상기 정보 처리 장치는, 상기 특정의 프로토콜에 따라, 상기 제2 정보가 키 정보인지 암호문인지를 전환하는 제2 전환부를 추가로 가지는 것을 특징으로 하는 함수 암호 응용 시스템.
  5. 제 1 항 또는 제 2 항에 있어서,
    상기 정보 출력 장치는, 상기 특정의 프로토콜에 따라, 상기 제1 정보가 암호문인지 키 정보인지를 전환하는 제1 전환부를 추가로 가지고,
    상기 정보 처리 장치는, 상기 특정의 프로토콜에 따라, 상기 제2 정보가 키 정보인지 암호문인지를 전환하는 제2 전환부를 추가로 가지는 것을 특징으로 하는 함수 암호 응용 시스템.
  6. 제 1 항에 있어서,
    상기 제2 대응 정보는, 당해 제2 대응 정보와 상기 제1 대응 정보가 미리 정해진 함수에 입력된 경우에, 상기 제1 대응 정보가 취하는 1종류 또는 복수 종류의 값에 대하여 당해 함수의 함수값을 미리 정해진 값으로 하고,
    상기 복호함수는, 상기 제1 정보에 대응하는 상기 특정의 제1 대응 정보와 상기 제2 정보에 대응하는 상기 특정의 제2 대응 정보가 상기 미리 정해진 함수에 입력된 경우의 함수값이 상기 미리 정해진 값이 되는 경우에, 올바른 복호 결과를 생성하는 함수인 것을 특징으로 하는 함수 암호 응용 시스템.
  7. 제 6 항에 있어서,
    상기 제2 대응 정보는, 당해 제2 대응 정보와 상기 제1 대응 정보가 미리 정해진 함수에 입력된 경우에, 상기 제1 대응 정보가 취하는 복수 종류의 값에 대하여 당해 함수의 함수값을 상기 미리 정해진 값으로 하는 것을 특징으로 하는 함수 암호 응용 시스템.
  8. 제 7 항에 있어서,
    상기 제1 대응 정보 및 상기 제2 대응 정보는 벡터이며,
    상기 미리 정해진 함수는, 상기 제1 대응 정보와 상기 제2 대응 정보의 내적을 산출하는 함수이며, 상기 미리 정해진 값은 0인 것을 특징으로 하는 함수 암호 응용 시스템.
  9. 제 8 항에 있어서,
    적어도 일부의 상기 제1 대응 정보는, 일부의 요소인 제1 예비 영역의 값이 미리 고정된 벡터이며,
    적어도 일부의 상기 제2 대응 정보는, 일부의 요소인 제2 예비 영역의 값이 미리 고정된 벡터이며,
    상기 제1 예비 영역을 포함하는 상기 제1 대응 정보의 당해 제1 예비 영역의 위치와, 상기 제2 대응 정보의 상기 제2 예비 영역의 위치는 서로 동일하고,
    상기 제1 예비 영역을 포함하는 상기 제1 대응 정보의 당해 제1 예비 영역을 이루는 벡터와 상기 제2 대응 정보의 상기 제2 예비 영역을 이루는 벡터의 내적은, 상기 1종류의 식별자 또는 상기 복수 종류의 식별자의 조합에 관계없이 0인 것을 특징으로 하는 함수 암호 응용 시스템.
  10. 제 9 항에 있어서,
    상기 제1 예비 영역의 값은 모두 0인 것을 특징으로 하는 함수 암호 응용 시스템.
  11. 제 9 항에 있어서,
    상기 제2 예비 영역의 값은 모두 0인 것을 특징으로 하는 함수 암호 응용 시스템.
  12. 제 10 항에 있어서,
    상기 제2 예비 영역의 적어도 일부의 값은 0 이외인 것을 특징으로 하는 함수 암호 응용 시스템.
  13. 제 11 항에 있어서,
    상기 제1 예비 영역의 적어도 일부의 값은 0 이외인 것을 특징으로 하는 함수 암호 응용 시스템.
  14. 제 8 항 내지 제 13 항 중 어느 한 항에 있어서,
    상기 제1 대응 정보는, 논리합 및/또는 논리곱을 포함하는 논리식을 나타내는 다항식의 각 항의 부정원 성분에 상기 식별자가 대입된 값을 각 요소로 하는 벡터이며,
    상기 제2 대응 정보는, 상기 논리식을 나타내는 다항식의 각 항의 계수 성분을 각 요소로 하는 벡터이며,
    상기 논리식을 나타내는 다항식은, 부정원과 상수의 차를 취하는 다항식에 의해 당해 부정원이 당해 상수이다라는 명제를 표현하고, 명제를 각각 표현하는 다항식의 곱에 의해 당해 명제의 논리합을 표현하고, 명제 또는 명제의 논리합을 각각 표현하는 다항식의 선형합에 의해 당해 명제 또는 명제의 논리합의 논리곱을 표현하고, 그것에 의해 상기 논리식을 표현한 다항식이며,
    상기 논리식을 나타내는 다항식은, 상기 제1 대응 정보와 상기 제2 대응 정보의 내적과 동일하고, 상기 논리식이 참인 것과 상기 논리식을 나타내는 다항식이 0인 것이 등가인 것을 특징으로 하는 함수 암호 응용 시스템.
  15. 제 14 항에 있어서,
    상기 제1 대응 정보 및 상기 제2 대응 정보는, 상기 1종류의 식별자 또는 상기 복수 종류의 식별자의 조합에 관계없이 미리 참이 되도록 설정된 명제의 논리곱을 일부에 포함하는 상기 논리식에 대응하는 것을 특징으로 하는 함수 암호 응용 시스템.
  16. 제 1 항에 있어서,
    상기 제1 대응 정보는 하나 또는 복수의 제1 부분 대응 정보를 포함하고, 상기 제2 대응 정보는 하나 또는 복수의 제2 부분 대응 정보를 포함하고,
    상기 제1 부분 대응 정보 및 상기 제2 부분 대응 정보가 미리 정해진 함수에 입력된 경우에, 상기 제1 부분 대응 정보의 값 및 상기 제2 부분 대응 정보의 값의 조합에 따라 당해 함수의 함수값이 미리 정해진 값이 되거나, 또는, 당해 미리 정해진 값 이외의 값이 되고,
    상기 제1 부분 대응 정보 및 상기 제2 부분 대응 정보의 조합마다, 상기 함수의 함수값이 상기 미리 정해진 값이 되는 경우를 상기 제1 부분 대응 정보 및 상기 제2 부분 대응 정보의 조합이 참이라고 할지, 또는, 상기 함수의 함수값이 상기 미리 정해진 값이 되지 않는 경우를 상기 제1 부분 대응 정보 및 상기 제2 부분 대응 정보의 조합이 참이라고 할지가 정해져 있고,
    상기 복호함수는, 참이 되는 상기 제1 부분 대응 정보 및 상기 제2 부분 대응 정보의 조합의 집합이 미리 정해진 조건을 만족한 경우에, 올바른 복호 결과를 생성하는 함수인 것을 특징으로 하는 함수 암호 응용 시스템.
  17. 제 16 항에 있어서,
    상기 제1 부분 대응 정보의 각각 또는 상기 제2 부분 대응 정보의 각각에 벡터가 대응지어져 있고,
    상기 복호함수는, 참이 되는 상기 제1 부분 대응 정보 및 상기 제2 부분 대응 정보의 조합이 각각 포함하는, 상기 제1 부분 대응 정보 또는 상기 제2 부분 대응 정보에 대응지어진 벡터로 펼쳐진 벡터 공간내에 특정의 벡터가 존재하는 경우에, 올바른 복호 결과를 생성하는 함수인 것을 특징으로 하는 함수 암호 응용 시스템.
  18. 제 16 항 또는 제 17 항에 있어서,
    상기 제1 부분 대응 정보 및 상기 제2 부분 대응 정보는 벡터이며,
    상기 미리 정해진 함수는, 상기 제1 부분 대응 정보와 상기 제2 부분 대응 정보의 내적을 산출하는 함수이며, 상기 미리 정해진 값은 0인 것을 특징으로 하는 함수 암호 응용 시스템.
  19. 제 18 항에 있어서,
    적어도 일부의 상기 제1 부분 대응 정보는 값이 미리 고정된 벡터이며,
    적어도 일부의 상기 제2 부분 대응 정보는 값이 미리 고정된 벡터이며,
    값이 미리 고정된 벡터인 상기 제1 부분 대응 정보와 값이 미리 고정된 벡터인 상기 제2 부분 대응 정보의 내적은, 상기 1종류의 식별자 또는 상기 복수 종류의 식별자의 조합에 관계없이 0인 것을 특징으로 하는 함수 암호 응용 시스템.
  20. 제 19 항에 있어서,
    값이 미리 고정된 벡터인 상기 제1 부분 대응 정보는 모든 요소가 0의 벡터인 것을 특징으로 하는 함수 암호 응용 시스템.
  21. 제 19 항에 있어서,
    값이 미리 고정된 벡터인 상기 제2 부분 대응 정보는 모든 요소가 0의 벡터인 것을 특징으로 하는 함수 암호 응용 시스템.
  22. 제 20 항에 있어서,
    값이 미리 고정된 벡터인 상기 제2 부분 대응 정보는 0 이외의 요소를 포함하는 벡터인 것을 특징으로 하는 함수 암호 응용 시스템.
  23. 제 21 항에 있어서,
    값이 미리 고정된 벡터인 상기 제1 부분 대응 정보는 0 이외의 요소를 포함하는 벡터인 것을 특징으로 하는 함수 암호 응용 시스템.
  24. 제 1 항에 있어서,
    상기 정보 처리 장치는, 1종류의 상기 특정의 제2 대응 정보에 대응하는 1종류의 상기 제2 정보를 격납하는 것을 특징으로 하는 함수 암호 응용 시스템.
  25. 제 1 항에 있어서,
    상기 함수 암호 방식에 따른 프로토콜 또는 상기 함수 암호 방식에 따른 프로토콜의 조합에 대하여 사용해야 할 제1 대응 정보의 종별이 정해져 있고, 상기 규칙은, 상기 특정의 프로토콜 또는 상기 특정의 프로토콜의 조합에 사용해야 할 종별의 상기 특정의 제1 대응 정보를 정하는 상기 1종류의 식별자 또는 상기 복수 종류의 식별자의 조합을 특정하는 것인 것을 특징으로 하는 함수 암호 응용 시스템.
  26. 제 1 항 또는 제 25 항에 있어서,
    상기 프로토콜은, Timed-Release 암호 프로토콜, Forward Secure 암호 프로토콜, Key Insulated 암호 프로토콜, CCA2 안전 암호 프로토콜, Keyword 검색 암호 프로토콜의 적어도 하나를 포함하는 집합으로부터 선택된 것이며,
    상기 프로토콜이 Timed-Release 암호 프로토콜인 경우의 상기 규칙은, 상기 제1 정보의 생성 시점보다 미래의 시점을 특정하는 정보를 상기 식별자로 하는 규칙이며,
    상기 프로토콜이 Forward Secure 암호 프로토콜 또는 Key Insulated 암호 프로토콜인 경우의 상기 규칙은, 각각, 상기 제1 정보의 생성 시점을 포함하는 시간 구간 또는 상기 제1 정보의 생성 시점보다 미래의 시간 구간을 특정하는 정보를 상기 식별자로 하는 규칙이며,
    상기 프로토콜이 CCA2 안전 암호 프로토콜인 경우의 상기 규칙은, 상기 제1 정보의 생성마다 새롭게 설정되는 일회용 정보를 특정하는 정보를 상기 식별자로 하는 규칙이며,
    상기 프로토콜이 Keyword 검색 암호 프로토콜인 경우의 상기 규칙은, 데이터베이스의 검색용 키워드를 특정하는 정보를 상기 식별자로 하는 규칙인 것을 특징으로 하는 함수 암호 응용 시스템.
  27. 제1 대응 정보 및 제2 대응 정보의 조합에 대응하는 논리식의 진리값이 참인 경우에 암호문이 올바르게 복호되는 함수 암호 방식에 따른 프로토콜마다 정해진 규칙, 또는 상기 함수 암호 방식에 따른 프로토콜의 조합마다 정해진 규칙에 따라, 상기 함수 암호 방식에 따른 특정의 프로토콜 또는 상기 함수 암호 방식에 따른 특정의 프로토콜의 조합에 대응하는 1종류의 식별자 또는 복수 종류의 식별자를 특정하는 식별자 특정부와,
    상기 1종류의 식별자 또는 상기 복수 종류의 식별자의 조합에 대응하는 특정의 제1 대응 정보를 설정하는 대응 정보 설정부와,
    상기 특정의 제1 대응 정보에 대응하는 함수 암호 방식의 암호문 또는 키 정보인 제1 정보를 출력하는 출력부를 가지는 것을 특징으로 하는 정보 출력 장치.
  28. 제 27 항에 있어서,
    상기 식별자 특정부는, 상기 특정의 프로토콜의 조합에 대응하는 상기 1종류의 식별자 또는 복수 종류의 식별자를 특정하고,
    상기 특정의 프로토콜의 조합은, 상기 함수 암호 방식에 따른 복수 종류의 프로토콜로 이루어지는 조합인 것을 특징으로 하는 정보 출력 장치.
  29. 제 27 항 또는 제 28 항에 있어서,
    상기 특정의 프로토콜에 따라, 상기 제1 정보가 암호문인지 키 정보인지를 전환하는 제1 전환부를 추가로 가지는 것을 특징으로 하는 정보 출력 장치.
  30. 제1 대응 정보 및 제2 대응 정보의 조합에 대응하는 논리식의 진리값이 참인 경우에 암호문이 올바르게 복호되는 함수 암호 방식에 따른 프로토콜마다 정해진 규칙, 또는 상기 함수 암호 방식에 따른 프로토콜의 조합마다 정해진 규칙에 따라 정해지는 1종류의 식별자 또는 복수 종류의 식별자의 조합에 대응하는 특정의 제1 대응 정보에 대응하는 함수 암호 방식의 암호문 또는 키 정보인 제1 정보, 및 특정의 제2 대응 정보에 대응하는 상기 함수 암호 방식의 키 정보 또는 암호문인 제2 정보를 함수 암호 방식의 복호함수에 입력하고, 상기 제1 정보에 대응하는 특정의 제1 대응 정보 및 상기 제2 정보에 대응하는 상기 특정의 제2 대응 정보의 조합에 대응하는 논리식의 진리값이 참인 경우에 복호 결과를 생성하는 복호부를 가지고,
    상기 특정의 제2 대응 정보는, 상기 특정의 제1 대응 정보에 대응하는 상기 제1 정보, 및 상기 특정의 제2 대응 정보에 대응하는 상기 제2 정보가 상기 복호함수에 입력된 경우, 상기 특정의 제1 대응 정보가 취하는 1종류의 값 또는 복수 종류의 값에 대하여 각각 복호 결과가 얻어지는 값을 취하고,
    상기 제1 정보가 상기 특정의 제1 대응 정보에 대응하는 암호문인 경우에는 상기 제2 정보는 상기 특정의 제2 대응 정보에 대응하는 키 정보이며, 상기 제1 정보가 상기 특정의 제1 대응 정보에 대응하는 키 정보인 경우에는 상기 제2 정보는 상기 특정의 제2 대응 정보에 대응하는 암호문인 것을 특징으로 하는 정보 처리 장치.
  31. 제 30 항에 있어서,
    상기 특정의 제2 대응 정보는, 상기 특정의 제1 대응 정보에 대응하는 상기 제1 정보, 및 상기 특정의 제2 대응 정보에 대응하는 상기 제2 정보가 상기 복호함수에 입력된 경우, 상기 특정의 제1 대응 정보가 취하는 복수 종류의 값에 대하여 각각 복호 결과가 얻어지는 값을 취하는 것을 특징으로 하는 정보 처리 장치.
  32. 제 30 항 또는 제 31 항에 있어서,
    상기 식별자 특정부는, 상기 특정의 프로토콜의 조합에 대응하는 상기 1종류의 식별자 또는 복수 종류의 식별자를 특정하고,
    상기 특정의 프로토콜의 조합은, 상기 함수 암호 방식에 따른 복수 종류의 프로토콜로 이루어지는 조합인 것을 특징으로 하는 정보 처리 장치.
  33. 제 32 항에 있어서,
    상기 특정의 프로토콜에 따라, 상기 제2 정보가 키 정보 또는 암호문인지를 전환하는 제2 전환부를 추가로 가지는 것을 특징으로 하는 정보 처리 장치.
  34. 제 30 항 또는 제 31 항에 있어서,
    상기 특정의 프로토콜에 따라, 상기 제2 정보가 키 정보 또는 암호문인지를 전환하는 제2 전환부를 추가로 가지는 것을 특징으로 하는 정보 처리 장치.
  35. 정보 출력 장치가, 제1 대응 정보 및 제2 대응 정보의 조합에 대응하는 논리식의 진리값이 참인 경우에 암호문이 올바르게 복호되는 함수 암호 방식에 따른 프로토콜마다 정해진 규칙, 또는 상기 함수 암호 방식에 따른 프로토콜의 조합마다 정해진 규칙에 따라, 상기 함수 암호 방식에 따른 특정의 프로토콜 또는 상기 함수 암호 방식에 따른 특정의 프로토콜의 조합에 대응하는 1종류의 식별자 또는 복수 종류의 식별자를 특정하는 식별자 특정 스텝과,
    상기 정보 출력 장치가, 상기 1종류의 식별자 또는 상기 복수 종류의 식별자의 조합에 대응하는 특정의 제1 대응 정보를 설정하는 대응 정보 설정 스텝과,
    상기 정보 출력 장치가, 상기 특정의 제1 대응 정보에 대응하는 함수 암호 방식의 암호문 또는 키 정보인 제1 정보를 출력하는 출력 스텝과,
    정보 처리 장치가, 상기 제1 정보, 및 특정의 제2 대응 정보에 대응하는 함수 암호 방식의 키 정보 또는 암호문인 제2 정보를 함수 암호 방식의 복호함수에 입력하고, 상기 제1 정보에 대응하는 상기 특정의 제1 대응 정보 및 상기 제2 정보에 대응하는 상기 특정의 제2 대응 정보의 조합에 대응하는 논리식의 진리값이 참인 경우에 복호 결과를 생성하는 복호 스텝을 가지고,
    상기 특정의 제2 대응 정보는, 상기 특정의 제1 대응 정보에 대응하는 상기 제1 정보, 및 상기 특정의 제2 대응 정보에 대응하는 상기 제2 정보가 상기 복호함수에 입력된 경우, 상기 특정의 제1 대응 정보가 취하는 1종류의 값 또는 복수 종류의 값에 대하여 각각 복호 결과가 얻어지는 값을 취하고,
    상기 제1 정보가 상기 특정의 제1 대응 정보에 대응하는 암호문인 경우에는 상기 제2 정보는 상기 특정의 제2 대응 정보에 대응하는 키 정보이며, 상기 제1 정보가 상기 특정의 제1 대응 정보에 대응하는 키 정보인 경우에는 상기 제2 정보는 상기 특정의 제2 대응 정보에 대응하는 암호문인 것을 특징으로 하는 암호 프로토콜 실행 방법.
  36. 식별자 특정부가, 제1 대응 정보 및 제2 대응 정보의 조합에 대응하는 논리식의 진리값이 참인 경우에 암호문이 올바르게 복호되는 함수 암호 방식에 따른 프로토콜마다 정해진 규칙, 또는 상기 함수 암호 방식에 따른 프로토콜의 조합마다 정해진 규칙에 따라, 상기 함수 암호 방식에 따른 특정의 프로토콜 또는 상기 함수 암호 방식에 따른 특정의 프로토콜의 조합에 대응하는 1종류의 식별자 또는 복수 종류의 식별자를 특정하는 식별자 특정 스텝과,
    대응 정보 설정부가, 상기 1종류의 식별자 또는 상기 복수 종류의 식별자의 조합에 대응하는 특정의 제1 대응 정보를 설정하는 대응 정보 설정 스텝과,
    출력부가, 상기 특정의 제1 대응 정보에 대응하는 함수 암호 방식의 암호문 또는 키 정보인 제1 정보를 출력하는 출력 스텝을 가지는 것을 특징으로 하는 정보 출력 방법.
  37. 제 36 항에 있어서,
    상기 식별자 특정 스텝은, 상기 특정의 프로토콜의 조합에 대응하는 상기 1종류의 식별자 또는 복수 종류의 식별자를 특정하는 스텝이며,
    상기 특정의 프로토콜의 조합은, 상기 함수 암호 방식에 따른 복수 종류의 프로토콜로 이루어지는 조합인 것을 특징으로 하는 정보 출력 방법.
  38. 제 36 항 또는 제 37 항에 있어서,
    전환부가, 상기 특정의 프로토콜에 따라, 상기 제1 정보가 암호문인지 키 정보인지를 전환하는 스텝을 추가로 가지는 것을 특징으로 하는 정보 출력 방법.
  39. 복호부가, 제1 대응 정보 및 제2 대응 정보의 조합에 대응하는 논리식의 진리값이 참인 경우에 암호문이 올바르게 복호되는 함수 암호 방식에 따른 프로토콜마다 정해진 규칙, 또는 상기 함수 암호 방식에 따른 프로토콜의 조합마다 정해진 규칙에 따라 정해지는 1종류의 식별자 또는 복수 종류의 식별자의 조합에 대응하는 특정의 제1 대응 정보에 대응하는 함수 암호 방식의 암호문 또는 키 정보인 제1 정보, 및 특정의 제2 대응 정보에 대응하는 상기 함수 암호 방식의 키 정보 또는 암호문인 제2 정보를 함수 암호 방식의 복호함수에 입력하고, 상기 제1 정보에 대응하는 특정의 제1 대응 정보 및 상기 제2 정보에 대응하는 상기 특정의 제2 대응 정보의 조합에 대응하는 논리식의 진리값이 참인 경우에 복호 결과를 생성하는 복호 스텝을 가지고,
    상기 특정의 제2 대응 정보는, 상기 특정의 제1 대응 정보에 대응하는 상기 제1 정보, 및 상기 특정의 제2 대응 정보에 대응하는 상기 제2 정보가 상기 복호함수에 입력된 경우, 상기 특정의 제1 대응 정보가 취하는 1종류의 값 또는 복수 종류의 값에 대하여 각각 복호 결과가 얻어지는 값을 취하고,
    상기 제1 정보가 상기 특정의 제1 대응 정보에 대응하는 암호문인 경우에는 상기 제2 정보는 상기 특정의 제2 대응 정보에 대응하는 키 정보이며, 상기 제1 정보가 상기 특정의 제1 대응 정보에 대응하는 키 정보인 경우에는 상기 제2 정보는 상기 특정의 제2 대응 정보에 대응하는 암호문인 것을 특징으로 하는 정보 처리 방법.
  40. 제 39 항에 있어서,
    상기 특정의 제2 대응 정보는, 상기 특정의 제1 대응 정보에 대응하는 상기 제1 정보, 및 상기 특정의 제2 대응 정보에 대응하는 상기 제2 정보가 상기 복호함수에 입력된 경우, 상기 특정의 제1 대응 정보가 취하는 복수 종류의 값에 대하여 각각 복호 결과가 얻어지는 값을 취하는 것을 특징으로 하는 정보 처리 방법.
  41. 제 39 항 또는 제 40 항에 있어서,
    상기 1종류의 식별자 또는 복수 종류의 식별자는, 상기 특정의 프로토콜의 조합에 대응하고, 상기 특정의 프로토콜의 조합은, 상기 함수 암호 방식에 따른 복수 종류의 프로토콜로 이루어지는 조합인 것을 특징으로 하는 정보 처리 방법.
  42. 제 41 항에 있어서,
    전환부가, 상기 특정의 프로토콜에 따라, 상기 제2 정보가 키 정보 또는 암호문인지를 전환하는 스텝을 추가로 가지는 것을 특징으로 하는 정보 처리 방법.
  43. 제 39 항 또는 제 40 항에 있어서,
    전환부가, 상기 특정의 프로토콜에 따라, 상기 제2 정보가 키 정보 또는 암호문인지를 전환하는 스텝을 추가로 가지는 것을 특징으로 하는 정보 처리 방법.
  44. 제 27 항에 기재된 정보 출력 장치로서 컴퓨터를 기능시키기 위한 것을 특징으로 하는 프로그램.
  45. 제 30 항에 기재된 정보 처리 장치로서 컴퓨터를 기능시키기 위한 것을 특징으로 하는 프로그램.
  46. 제 27 항에 기재된 정보 출력 장치로서 컴퓨터를 기능시키기 위한 프로그램을 격납한 것을 특징으로 하는 컴퓨터 판독 가능한 기록 매체.
  47. 제 30 항에 기재된 정보 처리 장치로서 컴퓨터를 기능시키기 위한 프로그램을 격납한 것을 특징으로 하는 컴퓨터 판독 가능한 기록 매체.
KR1020127002779A 2009-08-03 2010-07-30 함수 암호 응용 시스템, 정보 출력 장치, 정보 처리 장치, 암호 프로토콜 실행 방법, 정보 출력 방법, 정보 처리 방법, 프로그램, 및 기록 매체 KR101362443B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2009-180493 2009-08-03
JP2009180493 2009-08-03
PCT/JP2010/062948 WO2011016401A1 (ja) 2009-08-03 2010-07-30 関数暗号応用システム及び方法

Publications (2)

Publication Number Publication Date
KR20120042901A true KR20120042901A (ko) 2012-05-03
KR101362443B1 KR101362443B1 (ko) 2014-02-11

Family

ID=43544296

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127002779A KR101362443B1 (ko) 2009-08-03 2010-07-30 함수 암호 응용 시스템, 정보 출력 장치, 정보 처리 장치, 암호 프로토콜 실행 방법, 정보 출력 방법, 정보 처리 방법, 프로그램, 및 기록 매체

Country Status (6)

Country Link
US (1) US8938068B2 (ko)
EP (1) EP2464051B1 (ko)
JP (1) JP5285778B2 (ko)
KR (1) KR101362443B1 (ko)
CN (1) CN102484586B (ko)
WO (1) WO2011016401A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1775880A1 (en) * 2005-10-11 2007-04-18 STMicroelectronics S.r.l. Method of processing information to be confidentially transmitted
CN103004129B (zh) * 2010-07-23 2015-04-08 日本电信电话株式会社 加密装置、解密装置、加密方法、解密方法、程序及记录介质
US9237013B2 (en) * 2011-12-20 2016-01-12 Mitsubishi Electric Corporation Encrypted data management device, encrypted data management method, and encrypted data management program
US8566601B1 (en) 2012-09-12 2013-10-22 Zeutro Llc Systems and methods for functional encryption using a string of arbitrary length
JP5852551B2 (ja) * 2012-11-12 2016-02-03 日本電信電話株式会社 関数型暗号システム、鍵生成装置、暗号化装置、復号装置、関数型暗号方法、およびプログラム
WO2014092105A1 (ja) * 2012-12-12 2014-06-19 日本電気株式会社 データベース検索装置、データベース検索方法及びプログラム
CA2906232C (en) * 2013-03-15 2023-09-19 Locus Analytics, Llc Domain-specific syntax tagging in a functional information system
JP6244728B2 (ja) * 2013-08-07 2017-12-13 富士通株式会社 情報処理方法及びプログラム
JP6144992B2 (ja) * 2013-08-08 2017-06-07 株式会社日立製作所 検索可能暗号処理システム及び方法
WO2015194117A1 (ja) * 2014-06-16 2015-12-23 日本電気株式会社 条件生成装置、条件生成方法、条件生成プログラムが格納された記録媒体、データベース検索システム、及び、データベース検索プログラムが格納された記録媒体
JP6104469B2 (ja) * 2014-07-02 2017-03-29 三菱電機株式会社 行列生成装置及び行列生成方法及び行列生成プログラム
CN107251479B (zh) * 2015-02-20 2020-08-11 三菱电机株式会社 数据保管装置和数据处理方法
US9209974B1 (en) * 2015-05-03 2015-12-08 Zeutro, Llc Functional encryption key management
CN106452770B (zh) * 2015-08-12 2020-10-13 深圳市腾讯计算机系统有限公司 一种数据加密方法、解密方法、装置和系统
WO2018070932A1 (en) * 2016-10-14 2018-04-19 Huawei International Pte. Ltd. System and method for querying an encrypted database for documents satisfying an expressive keyword access structure
US11818254B2 (en) * 2017-08-22 2023-11-14 Nippon Telegraph And Telephone Corporation Share generating device, reconstructing device, secure computation system, share generation method, reconstruction method, program, and recording medium
CN108733802B (zh) * 2018-05-17 2023-03-24 腾讯科技(深圳)有限公司 识别码生成及解析方法、装置、存储介质和电子设备
US11228432B2 (en) * 2019-03-04 2022-01-18 Siavash Bayat-Sarmadi Quantum-resistant cryptoprocessing

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL113259A (en) * 1995-04-05 2001-03-19 Diversinet Corp A device and method for a secure interface for secure communication and data transfer
US5751811A (en) * 1995-08-30 1998-05-12 Magnotti; Joseph C. 32N +D bit key encryption-decryption system using chaos
US6259789B1 (en) * 1997-12-12 2001-07-10 Safecourier Software, Inc. Computer implemented secret object key block cipher encryption and digital signature device and method
US7194092B1 (en) * 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
US6937728B1 (en) * 1999-05-19 2005-08-30 Nippon Telegraph And Telephone Corporation Verifiable anonymous channel
US7184549B2 (en) * 2000-01-14 2007-02-27 Mitsubishi Denki Kabushiki Kaisha Method and apparatus for encryption, method and apparatus for decryption, and computer-readable medium storing program
EP1278331A4 (en) * 2000-03-30 2006-06-07 Sanyo Electric Co CONTENTS DATA STORAGE
US20040073790A1 (en) * 2001-07-13 2004-04-15 Giuseppe Ateniese Intermediated delivery scheme for asymmetric fair exchange of electronic items
US20030053625A1 (en) * 2001-09-10 2003-03-20 The Titan Corporation Self-synchronizing, stream-oriented data encryption technique
US7139918B2 (en) * 2002-01-31 2006-11-21 International Business Machines Corporation Multiple secure socket layer keyfiles for client login support
US7349538B2 (en) * 2002-03-21 2008-03-25 Ntt Docomo Inc. Hierarchical identity-based encryption and signature schemes
US7549147B2 (en) * 2002-04-15 2009-06-16 Core Sdi, Incorporated Security framework for protecting rights in computer software
EP1520369B1 (en) * 2002-05-31 2006-10-18 Scientific Generics Limited Biometric authentication system
JP2004015667A (ja) * 2002-06-10 2004-01-15 Takeshi Sakamura Icカード間暗号通信方法、電子チケット流通システムにおけるicカード間暗号通信方法およびicカード
KR100886551B1 (ko) * 2003-02-21 2009-03-02 삼성전자주식회사 이동통신시스템에서 인터넷 프로토콜 버전에 따른 트래픽플로우 탬플릿 패킷 필터링 장치 및 방법
KR20060069452A (ko) * 2003-08-08 2006-06-21 코닌클리케 필립스 일렉트로닉스 엔.브이. 데이터 처리 시스템 및 처리 방법
US7200226B2 (en) * 2003-09-04 2007-04-03 Intel Corporation Cipher block chaining decryption
GB0321335D0 (en) * 2003-09-11 2003-10-15 Rogers Paul J Method and apparatus for use in security
ATE552709T1 (de) * 2003-09-26 2012-04-15 Ericsson Telefon Ab L M Verbesserter sicherheitsentwurf für die kryptographie in mobilkommunikationssystemen
US8086536B2 (en) * 2004-09-16 2011-12-27 Microsoft Corporation Location based licensing
US20060075220A1 (en) * 2004-10-01 2006-04-06 Baugher Mark J System and method to authorize a device to receive a content work based on device capabilities and content-work permissions
US20060126841A1 (en) * 2004-12-14 2006-06-15 Tata Consultancy Services Ltd. Method and apparatus for a security system for wireless networks
US7634085B1 (en) * 2005-03-25 2009-12-15 Voltage Security, Inc. Identity-based-encryption system with partial attribute matching
US7546460B2 (en) * 2005-03-30 2009-06-09 Oracle International Corporation Secure communications across multiple protocols
JP2006333095A (ja) * 2005-05-26 2006-12-07 Hiromi Fukaya 暗号通信方法、暗号通信システム、暗号通信装置及び暗号通信プログラム
JP2007036364A (ja) * 2005-07-22 2007-02-08 Nec Corp タイム装置、暗号化装置、復号化装置、暗号化/復号化システム
EP1758337B1 (fr) * 2005-08-23 2012-08-01 Alcatel Lucent Procédé de transmission securisée de données, via des reseaux, par échange d'informations d'encryptage, et dispositif d'encryptage/decryptage correspondant
US20070223703A1 (en) * 2005-10-07 2007-09-27 Sanjeev Verma Method and apparatus for providing service keys within multiple broadcast networks
EP1855223A1 (en) * 2006-05-12 2007-11-14 Telefonaktiebolaget LM Ericsson (publ) Extending the DRM realm to external devices
WO2008066671A2 (en) 2006-11-08 2008-06-05 Voltage Security, Inc. Indentity-based-encryption extensions formed using multiple instances of an identity based encryption scheme
JP4358239B2 (ja) * 2007-01-10 2009-11-04 株式会社東芝 コンテンツ提供システム、追跡システム、コンテンツ提供方法及び不正ユーザ特定方法
US8958562B2 (en) * 2007-01-16 2015-02-17 Voltage Security, Inc. Format-preserving cryptographic systems
EP2120227B1 (en) * 2007-01-19 2015-04-15 Mitsubishi Electric Corporation Cryptogram generating device, cryptogram communication system, and group parameter generating device
US20080304664A1 (en) * 2007-06-07 2008-12-11 Shanmugathasan Suthaharan System and a method for securing information
US8291231B2 (en) * 2007-11-07 2012-10-16 Nippon Telegraph And Telephone Corporation Common key setting method, relay apparatus, and program
US20090132423A1 (en) * 2007-11-15 2009-05-21 Ebay Inc. Send money plug in for web mails
US8964982B2 (en) * 2009-04-24 2015-02-24 Nippon Telegraph And Telephone Corporation Cryptographic system, cryptographic communication method, encryption apparatus, key generation apparatus, decryption apparatus, content server, program, and storage medium
KR101246241B1 (ko) * 2009-04-24 2013-03-22 니뽄 덴신 덴와 가부시키가이샤 암호화 장치, 복호장치, 암호화 방법, 복호방법, 세큐러티 방법, 프로그램 및 기록매체
JP5454673B2 (ja) * 2010-03-17 2014-03-26 富士通株式会社 通信装置、プログラムおよび方法

Also Published As

Publication number Publication date
WO2011016401A1 (ja) 2011-02-10
EP2464051B1 (en) 2015-05-27
KR101362443B1 (ko) 2014-02-11
JP5285778B2 (ja) 2013-09-11
EP2464051A4 (en) 2013-05-22
CN102484586B (zh) 2014-12-03
CN102484586A (zh) 2012-05-30
EP2464051A1 (en) 2012-06-13
US20120163588A1 (en) 2012-06-28
JPWO2011016401A1 (ja) 2013-01-10
US8938068B2 (en) 2015-01-20

Similar Documents

Publication Publication Date Title
KR101362443B1 (ko) 함수 암호 응용 시스템, 정보 출력 장치, 정보 처리 장치, 암호 프로토콜 실행 방법, 정보 출력 방법, 정보 처리 방법, 프로그램, 및 기록 매체
KR101456579B1 (ko) 비밀 분산 시스템, 분산 장치, 분산 관리 장치, 취득 장치, 비밀 분산 방법, 프로그램, 및 기록 매체
KR101478766B1 (ko) 암호화 장치, 복호 장치, 암호화 방법, 복호 방법, 프로그램, 및 기록 매체
KR101443553B1 (ko) 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
KR101344353B1 (ko) 비밀 분산 시스템, 분산 장치, 분산 관리 장치, 취득 장치, 그들의 처리 방법, 비밀 분산 방법, 및 프로그램을 기록한 기록 매체
KR101588992B1 (ko) 암호 시스템, 암호 방법 및 암호 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
KR101676977B1 (ko) 암호 시스템
KR20110135962A (ko) 암호화 장치, 복호장치, 암호화 방법, 복호방법, 세큐러티 방법, 프로그램 및 기록매체
Saidi et al. SHARE-ABE: an efficient and secure data sharing framework based on ciphertext-policy attribute-based encryption and Fog computing
Seo et al. Revocable hierarchical identity-based encryption
Lee et al. Anonymous HIBE with short ciphertexts: full security in prime order groups
He et al. A fine-grained and lightweight data access control scheme for WSN-integrated cloud computing
Pasupuleti et al. Lightweight ciphertext-policy attribute-based encryption scheme for data privacy and security in cloud-assisted IoT
Bkakria Robust and provably secure attribute-based encryption supporting access revocation and outsourced decryption
Mandal et al. Efficient identity-based outsider anonymous public-key trace and revoke with constant ciphertext-size and fast decryption
Ding et al. Ciphertext retrieval via attribute-based FHE in cloud computing

Legal Events

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

Payment date: 20180126

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20200120

Year of fee payment: 7