KR101336349B1 - 암호 처리 시스템, 키 생성 장치, 키 위양 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 - Google Patents

암호 처리 시스템, 키 생성 장치, 키 위양 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 Download PDF

Info

Publication number
KR101336349B1
KR101336349B1 KR1020127013861A KR20127013861A KR101336349B1 KR 101336349 B1 KR101336349 B1 KR 101336349B1 KR 1020127013861 A KR1020127013861 A KR 1020127013861A KR 20127013861 A KR20127013861 A KR 20127013861A KR 101336349 B1 KR101336349 B1 KR 101336349B1
Authority
KR
South Korea
Prior art keywords
vector
key
basis
vectors
equation
Prior art date
Application number
KR1020127013861A
Other languages
English (en)
Other versions
KR20120088774A (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 KR20120088774A publication Critical patent/KR20120088774A/ko
Application granted granted Critical
Publication of KR101336349B1 publication Critical patent/KR101336349B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • H04L9/0836Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/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/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
    • 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

Landscapes

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

Abstract

권한 위양을 가능하게 한 술어 암호를 실현하는 것을 목적으로 한다. 페어링 연산에 의해 관련지어진 쌍대 벡터 공간(쌍대 디스토션 벡터 공간)인 공간 V와 공간 V*를 이용하여 암호 처리를 행한다. 암호화 장치는, 공간 V에 있어서의 벡터로서, 송신 정보를 삽입한 벡터를 암호 벡터로서 생성한다. 복호 장치는, 공간 V*에 있어서의 소정의 벡터를 키 벡터로서, 암호화 장치가 생성한 암호 벡터와 키 벡터에 대하여, 페어링 연산을 행하여 상기 암호 벡터를 복호하여 송신 정보에 관한 정보를 추출한다.

Description

암호 처리 시스템, 키 생성 장치, 키 위양 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체{CIPHER PROCESSING SYSTEM, KEY GENERATING DEVICE, KEY DELEGATING DEVICE, ENCRYPTING DEVICE, DECRYPTING DEVICE, CIPHER PROCESSING METHOD, AND COMPUTER READABLE RECORDING MEDIUM STORING CIPHER PROCESSING PROGRAM}
본 발명은, 계층적 술어 키 비닉 방식(hierarchical predicate key encapsulation mechanism) 및 계층적 술어 암호에 관한 것이다.
비특허 문헌 18에는, 페어링 연산(pairing operation)에 의해 관련지어진 쌍대 공간에 있어서 계층적 술어 키 비닉 방식 및 계층적 술어 암호를 실현하는 것이 기재되어 있다.
(선행 기술 문헌)
(비특허 문헌)
(비특허 문헌 1) Bethencourt, J., Sahai, A., Waters, B. : Ciphertext-policy attribute-based encryption. In : 2007 IEEE Symposium on Security and Privacy, pp. 321--334. IEEE Press(2007)
(비특허 문헌 2) Boneh, D., Boyen, X. : Efficient selective-ID secure identity based encryption without random oracles. In : Cachin, C., Camenisch, J.(eds.) EUROCRYPT 2004. LNCS, vol. 3027, pp. 223--238. Springer Heidelberg(2004)
(비특허 문헌 3) Boneh, D., Boyen, X. : Secure identity based encryption without random oracles. In : Franklin, M. K.(ed.) CRYPTO 2004. LNCS, vol. 3152, pp. 443--459. Springer Heidelberg(2004)
(비특허 문헌 4) Boneh, D., Boyen, X., Goh, E. : Hierarchical identity based encryption with constant size ciphertext. In : Cramer, R.(ed.) EUROCRYPT 2005. LNCS, vol. 3494, pp. 440--456. Springer Heidelberg(2005)
(비특허 문헌 5) Boneh, D., Franklin, M. : Identity-based encryption from the Weil pairing. In : Kilian, J.(ed.) CRYPTO 2001. LNCS, vol. 2139, pp. 213--229. Springer Heidelberg(2001)
(비특허 문헌 6) Boneh, D., Hamburg, M. : Generalized identity based and broadcast encryption scheme. In : Pieprzyk, J.(ed.) ASIACRYPT 2008. LNCS, vol. 5350, pp. 455--470. Springer Heidelberg(2008)
(비특허 문헌 7) Boneh, D., Waters, B. : Conjunctive, subset, and range queries on encrypted data. In : Vadhan, S. P.(ed.) TCC 2007. LNCS, vol. 4392, pp. 535--554. Springer Heidelberg(2007)
(비특허 문헌 8) Boyen, X., Waters, B. : Anonymous hierarchical identity-based encryption(without random oracles). In : Dwork, C.(ed.) CRYPTO 2006. LNCS, vol. 4117, pp. 290--307. Springer Heidelberg(2006)
(비특허 문헌 9) Cocks, C. : An identity based encryption scheme based on quadratic residues. In : Honary, B.(ed.) IMA Int. Conf. LNCS, vol. 2260, pp. 360--363. Springer Heidelberg(2001)
(비특허 문헌 10) Gentry, C. : Practical identity-based encryption without random oracles. In : Vaudenay, S.(ed.) EUROCRYPT 2006. LNCS, vol. 4004, pp. 445--464. Springer Heidelberg(2006)
(비특허 문헌 11) Gentry, C., Halevi, S. : Hierarchical identity-based encryption with polynomially many levels. In : Reingold, O.(ed.) TCC 2009. LNCS, vol. 5444, pp. 437--456. Springer Heidelberg(2009)
(비특허 문헌 12) Gentry, C., Silverberg, A. : Hierarchical ID-based cryptography. In : Zheng, Y.(ed.) ASIACRYPT 2002. LNCS, vol. 2501, pp. 548--566. Springer Heidelberg(2002)
(비특허 문헌 13) Goyal, V., Pandey, O., Sahai, A., Waters, B. : Attribute-based encryption for fine-grained access control of encrypted data. In : ACM Conference on Computer and Communication Security 2006, pp. 89--98, ACM(2006)
(비특허 문헌 14) Groth, J., Sahai, A. : Efficient non-interactive proof systems for bilinear groups. In : Smart, N. P.(ed.) EUROCRYPT 2008. LNCS, vol. 4965, pp. 415--432. Springer Heidelberg(2008)
(비특허 문헌 15) Horwitz, J., Lynn, B. : Towards hierarchical identity-based encryption. In : Knudsen, L.R.(ed.) EUROCRYPT 2002. LNCS, vol. 2332, pp. 466--481. Springer Heidelberg(2002)
(비특허 문헌 16) Katz, J., Sahai, A., Waters, B. : Predicate encryption supporting disjunctions, polynomial equations, and inner products. In : Smart, N. P.(ed.) EUROCRYPT 2008. LNCS, vol. 4965, pp. 146--162. Springer Heidelberg(2008)
(비특허 문헌 17) Okamoto, T., Takashima, K. : Homomorphic encryption and signatures from vector decomposition. In : Galbraith, S. D., Paterson, K. G.(eds.) Pairing 2008. LNCS, vol. 5209, pp. 57--74. Springer Heidelberg(2008)
(비특허 문헌 18) Okamoto, T., Takashima, K. : A geometric approach on pairings and hierarchical predicate encryption. In : Poster session, EUROCRYPT 2009.(2009)
(비특허 문헌 19) Ostrovsky, R., Sahai, A., Waters, B. : Attribute-based encryption with non-monotonic access structures. In : ACM Conference on Computer and Communication Security 2007, pp. 195--203, ACM, (2007)
(비특허 문헌 20) Pirretti, M., Traynor, P., McDaniel, P., Waters, B. : Secure attribute-based systems. In : ACM Conference on Computer and Communication Security 2006, pp. 99--112, ACM, (2006)
(비특허 문헌 21) Sahai, A., Waters, B. : Fuzzy identity-based encryption. In : Cramer, R.(ed.) EUROCRYPT 2005. LNCS, vol. 3494, pp. 457--473. Springer Heidelberg(2005)
(비특허 문헌 22) Shi, E., Waters, B. : Delegating capability in predicate encryption systems. In : Aceto, L., Damgard, I., Goldberg, L. A., Halldorsson, M. M., Ingolfsdottir, A., Walukiewicz, I.(eds.) ICALP (2) 2008. LNCS, vol. 5126, pp. 560--578. Springer Heidelberg(2008)
(비특허 문헌 23) Takashima, K. : Efficiently computable distortion maps for super singular curves. In : van der Poorten, A. J., Stein, A.(eds.) ANTS VIII, LNCS, vol. 5011, pp. 88--101. Springer Heidelberg(2008)
(비특허 문헌 24) Waters, B. : Ciphertext-policy attribute-based encryption : an expressive, efficient, and provably secure realization. ePrint, IACR, http://eprint.iacr.org/2008/290
비특허 문헌 18에서 제안되어 있는 계층적 술어 키 비닉 방식 및 계층적 술어 암호는, 이상화된 모델(Generic Model)에 있어서의 안전성이 증명되어 있다. 그러나, 비특허 문헌 18에서 제안되어 있는 계층적 술어 키 비닉 방식 및 계층적 술어 암호는, 표준의 모델(Standard Model)에 있어서의 안전성은 증명되어 있지 않다.
본 발명은, 안전성이 높은 술어 암호 및 술어 키 비닉 방식을 제공하는 것을 목적으로 한다. 특히, 권한 위양을 가능하게 한 술어 암호 및 술어 키 비닉 방식을 제공하는 것을 목적으로 한다.
본 발명에 따른 암호 처리 시스템은, 예컨대, 수학식 1에 나타내는 페어링 연산에 의해 관련지어진 쌍대 벡터 공간(dual vector spaces)인 공간 V와 공간 V*를 이용하여 술어 암호 처리를 행하는 암호 처리 시스템이며, 상기 공간 V에 있어서의 소정의 기저 B를 구성하는 기저 벡터 bi(i=1, …, n, …, N)(N은 3 이상의 정수, n은 1 이상 N-2 이하의 정수)의 기저 벡터 bi(i=1, …, n)와, 기저 벡터 bi(i=n+1, …, N) 중 2개 이상의 기저 벡터 bi(i=n+1, …, m)의 합인 기저 벡터 dn +1을 기저 벡터로서 갖는 기저 B^에 있어서의 벡터로서, 기저 벡터 bi(i=1, …, n) 중 적어도 일부의 기저 벡터에 대한 계수로서 속성 정보를 삽입함과 아울러, 상기 기저 벡터 dn +1에 대한 계수로서 소정의 정보를 삽입한 벡터를 암호 벡터 c1로서 처리 장치에 의해 생성하는 암호화 장치와, 상기 공간 V*의 기저 B*에 있어서의 벡터로서, 기저 B*를 구성하는 기저 벡터 b* i(i=1, …, n, …, N)의 기저 벡터 b* i(i=1, …, n) 중 적어도 일부의 기저 벡터에 대한 계수로서 술어 정보를 삽입함과 아울러, 상기 기저 B*의 기저 벡터 b* i(i=n+1, …, m)에 대한 계수의 합이 1이 되도록, 상기 기저 벡터 b* i(i=n+1, …, m)에 대한 계수를 삽입한 벡터를 키 벡터 k* L, dec로 하여, 상기 암호화 장치가 생성한 암호 벡터 c1과 상기 키 벡터 k* L, dec에 대하여, 처리 장치에 의해 수학식 1에 나타내는 페어링 연산 e(c1, k* L, dec)를 행하고 상기 암호 벡터 c1을 복호하여 상기 소정의 정보에 관한 값을 추출하는 복호 장치를 구비하는 것을 특징으로 한다.
[수학식 1]
Figure 112012042794047-pct00001

본 발명에 따른 암호 시스템에 의하면, 안전성이 높은 술어 암호 및 술어 키 비닉 방식을 실현할 수 있다.
도 1은 「권한 위양(계층적인 권한 위양)」이라고 하는 개념을 설명하기 위한 도면.
도 2는 계층을 도외시한 권한 위양을 설명하기 위한 도면.
도 3은 속성 정보와 술어 정보의 계층 구조를 나타내는 도면.
도 4는 계층적 내적 술어 암호의 응용예인 계층적 ID 베이스 암호의 예를 나타내는 도면.
도 5는 기저와 기저 벡터를 설명하기 위한 도면.
도 6은 벡터 공간에 있어서의 계층 구조의 실현 방법의 일례를 설명하기 위한 도면.
도 7은 암호 처리 시스템(10)의 구성도.
도 8은 암호 처리 시스템(10)의 키 생성 장치(100)와 제 L 층째의 암호화 장치(200)와 복호 장치(300)의 동작을 나타내는 플로우차트.
도 9는 암호 처리 시스템(10)의 제 L 층째의 키 위양 장치(400)와, 제 L+1 층째의 암호화 장치(200)와 복호 장치(300)의 동작을 나타내는 플로우차트.
도 10은 기저 변환 방법을 설명하기 위한 도면.
도 11은 실시의 형태 2에 따른 계층적 술어 암호를 실현하는 암호 처리 시스템(10)의 기능을 나타내는 기능 블록도.
도 12는 실시의 형태 2에 따른 키 생성 장치(100)의 동작을 나타내는 플로우차트.
도 13은 실시의 형태 2에 따른 암호화 장치(200)의 동작을 나타내는 플로우차트.
도 14는 실시의 형태 2에 따른 복호 장치(300)의 동작을 나타내는 플로우차트.
도 15는 실시의 형태 2에 따른 키 위양 장치(400)의 동작을 나타내는 플로우차트.
도 16은 실시의 형태 2에 따른 쌍대 페어링 벡터 공간의 기저의 구조를 나타내는 개념도.
도 17은 실시의 형태 2에 따른 계층적 술어 키 비닉 방식을 실현하는 암호 처리 시스템(10)의 기능을 나타내는 기능 블록도.
도 18은 실시의 형태 2에 따른 암호화 장치(200)의 동작을 나타내는 플로우차트.
도 19는 실시의 형태 2에 따른 복호 장치(300)의 동작을 나타내는 플로우차트.
도 20은 실시의 형태 3에 따른 권한 위양이 가능한 술어 암호를 실현하는 암호 처리 시스템(10)의 기능을 나타내는 기능 블록도.
도 21은 키 생성 장치(100), 암호화 장치(200), 복호 장치(300), 키 위양 장치(400)의 하드웨어 구성의 일례를 나타내는 도면.
이하, 도면에 근거하여, 발명의 실시의 형태를 설명한다.
이하의 설명에 있어서, 처리 장치는 후술하는 CPU(911) 등이다. 기억 장치는 후술하는 ROM(913), RAM(914), 자기 디스크(920) 등이다. 통신 장치는 후술하는 통신 보드(915) 등이다. 입력 장치는 후술하는 키보드(902), 통신 보드(915) 등이다. 출력 장치는 후술하는 RAM(914), 자기 디스크(920), 통신 보드(915), LCD(901) 등이다. 다시 말해, 처리 장치, 기억 장치, 통신 장치, 입력 장치, 출력 장치는 하드웨어이다.
이하의 설명에 있어서의 기법에 대하여 설명한다.
A가 랜덤한 변수 또는 분포일 때, 수학식 101은, A의 분포에 따라 A로부터 y를 랜덤하게 선택하는 것을 나타낸다. 다시 말해, 수학식 101에 있어서, y는 난수이다.
[수학식 101]
Figure 112012042794047-pct00002
A가 집합일 때, 수학식 102는, A로부터 y를 균등하게 선택하는 것을 나타낸다. 즉, 수학식 102에 대해, y는 균등 난수이다.
[수학식 102]
Figure 112012042794047-pct00003
수학식 103은, y가 z에 의해 정의된 집합인 것, 또는 y가 z가 대입된 집합인 것을 나타낸다.
[수학식 103]
Figure 112012042794047-pct00004
a가 상수일 때, 수학식 104는, 기계(알고리즘) A가 입력 x에 대하여 a를 출력하는 것을 나타낸다.
[수학식 104]
Figure 112012042794047-pct00005
벡터 표기는, 유한체 Fq에 있어서의 벡터 표시를 나타낸다. 다시 말해, 수학식 105이다.
[수학식 105]
Figure 112012042794047-pct00006
수학식 106은, 수학식 107에 나타내는 2개의 벡터 x와 v의 수학식 108에 나타내는 내적을 나타낸다.
[수학식 106]
Figure 112012042794047-pct00007
[수학식 107]
Figure 112012042794047-pct00008
[수학식 108]
Figure 112012042794047-pct00009
XT는, 행렬 X의 전치 행렬을 나타낸다.
또한, 이하의 설명에 있어서, 암호 처리란, 암호화 처리, 복호 처리, 키 생성 처리를 포함하는 것이며, 키 비닉 처리도 포함하는 것이다.
실시의 형태 1.
이 실시의 형태에서는, 이후의 실시의 형태에서 설명하는 「권한 위양을 갖는 술어 암호(Predicate Encryption with Delegation)」나 「권한 위양을 갖는 술어 키 비닉 방식(Predicate Key Encapsulation Mechanism with Delegation)」을 실현하는 기초가 되는 개념과, 권한 위양을 갖는 술어 암호(술어 키 비닉 방식)의 기본 구성에 대하여 설명한다.
제 1에, 권한 위양을 갖는 술어 암호(술어 키 비닉 방식)의 일종인 「권한 위양을 갖는 내적 술어 암호(내적 술어 키 비닉 방식)」라고 하는 개념을 설명한다. 이후의 실시의 형태에서 설명하는 권한 위양을 갖는 술어 암호(술어 키 비닉 방식)는, 권한 위양을 갖는 내적 술어 암호(내적 술어 키 비닉 방식)이다. 권한 위양을 갖는 내적 술어 암호라고 하는 개념을 설명함에 있어서, 우선 「권한 위양」이라고 하는 개념을 설명한다. 또한, 아울러, 「계층적(Hierarchial)인 권한 위양」이라고 하는 개념을 설명한다. 다음으로, 「내적 술어 암호」를 설명한다. 그리고, 계층적인 권한 위양이라고 하는 개념을 내적 술어 암호에 더한 「계층적 내적 술어 암호(계층적 내적 술어 키 비닉 방식)」를 설명한다. 또한, 계층적 내적 술어 암호의 이해를 깊게 하기 위해, 계층적 내적 술어 암호의 응용예를 설명한다.
제 2에, 벡터 공간에 있어서의 계층적 내적 술어 암호를 설명한다. 이 실시의 형태 및 이하의 실시의 형태에서는, 계층적 술어 암호와 계층적 술어 키 비닉 방식을 벡터 공간에 있어서 실현한다. 여기에서는, 우선, 「기저」와 「기저 벡터」에 대하여 설명한다. 다음으로, 「벡터 공간에 있어서의 내적 술어 암호」에 대하여 설명한다. 그리고, 「벡터 공간에 있어서의 계층 구조의 실현 방법」에 대하여 설명한다. 또한, 이해를 깊게 하기 위해, 계층 구조의 실현예를 설명한다.
제 3에, 이 실시의 형태 및 이후의 실시의 형태에 따른 「계층적 술어 암호」와 「계층적 술어 키 비닉 방식」의 기본 구성을 설명한다. 아울러, 계층적 술어 암호와 계층적 술어 키 비닉 방식을 실행하는 「암호 처리 시스템(10)」의 개요를 설명한다.
제 4에, 계층적 술어 키 비닉 방식이나 계층적 술어 암호를 실현하기 위한 개념을 설명한다. 여기에서는, 「쌍선형 페어링 그룹」, 「벡터 공간 V와 벡터 공간 V*」, 「표준적인 쌍대 기저 A, A*」, 「페어링 연산」, 「기저 변환」, 「디스토션 사상」을 설명한다.
제 5에, 계층적 술어 키 비닉 방식과 계층적 술어 암호를 실현하기 위한 공간인 「쌍대 페어링 벡터 공간(Dual Pairing Vector Spaces, DPVS)」이라고 하는 풍부한 수학적 구조를 갖는 공간을 설명한다.
그리고, 제 6에, 이상의 설명을 근거로 하여, 이후의 실시의 형태에서 상세하게 설명하는 계층적 술어 암호와 계층적 술어 키 비닉 방식의 실현 방법을 간단하게 설명한다.
<제 1. 계층적 내적 술어 암호>
<제 1-1. 권한 위양(계층적인 권한 위양)이라고 하는 개념>
도 1은 「권한 위양(계층적인 권한 위양)」이라고 하는 개념을 설명하기 위한 도면이다.
권한 위양이란, 상위의 키를 갖는 이용자가, 그 키(상위의 키)보다 기능이 제한된 하위의 키를 생성하는 것이다.
도 1에서는, Root(키 생성 장치)는, 마스터 비밀 키를 이용하여, 제 1 층째(Level-1)의 이용자에게 비밀 키를 생성한다. 다시 말해, Root는, 제 1 층째의 이용자 1, 2, 3 각각에 키 1, 2, 3을 생성한다. 그리고, 예컨대, 이용자 1이면, 키 1을 이용하여, 이용자 1의 하위(제 2 층째)의 이용자인 이용자 11, 12, 13 각각에 키 11, 12, 13을 생성할 수 있다. 여기서, 이용자 1이 갖는 키 1보다, 이용자 11, 12, 13이 갖는 키 11, 12, 13은 기능이 제한되어 있다. 기능이 제한되어 있다는 것은, 그 비밀 키에 의해 복호할 수 있는 암호문이 한정되어 있다고 하는 것이다. 다시 말해, 상위의 비밀 키로 복호할 수 있는 암호문의 일부의 암호문만 하위의 비밀 키로 복호할 수 있는 것을 의미한다. 즉, 이용자 1이 갖는 키 1로 복호할 수 있는 암호문 중, 일부의 암호문만 이용자 11, 12, 13이 갖는 키 11, 12, 13으로 복호할 수 있다. 또한, 통상은, 키 11과 키 12와 키 13이 복호할 수 있는 암호문은 다르다. 한편, 키 11과 키 12와 키 13이 복호할 수 있는 암호문은, 키 1로 복호할 수 있다.
또한, 도 1에 나타내는 바와 같이, 각 비밀 키가 계층(레벨)별로 나누어져 있는 것을 「계층적」이라고 한다. 다시 말해, 도 1에 나타내는 바와 같이, 계층적으로 하위의 키를 생성하는 것을 「계층적인 권한 위양」이라고 부른다.
또, 도 1에서는, Root가 제 1 층째의 이용자에게 비밀 키를 생성하고, 제 1 층째의 이용자가 제 2 층째의 이용자에게 비밀 키를 생성하고, 제 2 층째의 이용자가 제 3 층째의 이용자에게 비밀 키를 생성한다고 설명했다. 그러나, 도 2에 나타내는 바와 같이, Root는, 제 1 층째의 이용자에게 비밀 키를 생성할 뿐만 아니라, 제 2 층째 이하의 층의 이용자에게 비밀 키를 생성할 수도 있다. 마찬가지로, 제 1 층째의 이용자는, 제 2 층째의 이용자에게 비밀 키를 생성할 뿐만 아니라, 제 3 층째 이하의 층의 이용자에게 비밀 키를 생성할 수도 있다. 다시 말해, Root나 이용자는, 자신이 갖는 비밀 키보다 하위의 층의 비밀 키를 생성할 수 있다.
<제 1-2. 내적 술어 암호>
다음으로, 「내적 술어 암호」에 대하여 설명한다.
우선, 술어 암호란, 술어 정보 fv에 속성 정보 x를 입력한 경우에 1(True)이 되는 경우(fv(x)=1이 되는 경우)에, 암호문을 복호할 수 있는 암호 방식이다. 통상, 암호문에 속성 정보 x가 삽입되고, 비밀 키에 술어 정보 fv가 삽입된다. 다시 말해, 술어 암호에서는, 속성 정보 x에 근거하여 암호화된 암호문 c를, 술어 정보 fv에 근거하여 생성된 비밀 키 SKf에 의해 복호한다. 술어 암호는, 예컨대, 술어 정보 fv가 조건식이며, 속성 정보 x가 그 조건식으로의 입력 정보이며, 입력 정보(속성 정보 x)가 조건식(술어 정보 fv)을 만족시키면(fv(x)=1), 암호문을 복호할 수 있는 암호 방식이라고도 말할 수 있다.
또, 술어 암호에 대하여 자세하게는 비특허 문헌 16에 기재되어 있다.
내적 술어 암호란, 속성 정보 x와 술어 정보 fv의 내적이 소정의 값인 경우에, fv(x)=1이 되는 술어 암호이다. 다시 말해, 속성 정보 x와 술어 정보 fv의 내적이 소정의 값인 경우에만, 속성 정보 x에 의해 암호화된 암호문 c를, 술어 정보 fv에 근거하여 생성된 비밀 키 SKf에 의해 복호할 수 있다. 이하의 설명에서는, 속성 정보 x와 술어 정보 fv의 내적이 0인 경우에, fv(x)=1이 되는 것으로 한다.
<제 1-3. 계층적 내적 술어 암호>
계층적 내적 술어 암호(계층적 내적 술어 키 비닉 방식)란, 상술한 「계층적인 권한 위양」이라고 하는 개념을 갖는 「내적 술어 암호」이다.
계층적 내적 술어 암호는, 내적 술어 암호에 계층적인 권한 위양 시스템을 갖게 하기 위해, 속성 정보와 술어 정보에 계층 구조를 갖게 한다.
도 3은 속성 정보와 술어 정보의 계층 구조를 나타내는 도면이다.
도 3에 있어서, 부호가 대응하는 속성 정보와 술어 정보는 대응하는(다시 말해, 내적이 0이 되는) 것으로 한다. 다시 말해, 속성 1과 술어 1의 내적은 0이 되고, 속성 11과 술어 11의 내적은 0이 되고, 속성 12와 술어 12의 내적은 0이 되고, 속성 13과 술어 13의 내적은 0이 되는 것으로 한다. 즉, 속성 1에 의해 암호화된 암호문 c1은, 술어 1에 근거하여 생성된 비밀 키 k1이면 복호할 수 있다. 또한, 속성 11에 의해 암호화된 암호문 c11은, 술어 11에 근거하여 생성된 비밀 키 k11이면 복호할 수 있다. 속성 12와 술어 12, 속성 13과 술어 13에 대해서도 같다고 말할 수 있다.
상기한 바와 같이, 계층적 내적 술어 암호는 계층적인 권한 위양 시스템을 갖는다. 그 때문에, 술어 1에 근거하여 생성된 비밀 키 k1과, 술어 11에 근거하여, 비밀 키 k11을 생성할 수 있다. 다시 말해, 상위의 비밀 키 k1을 갖는 이용자는, 그 비밀 키 k1과 하위의 술어 11로부터, 비밀 키 k1의 하위의 비밀 키 k11을 생성할 수 있다. 마찬가지로, 비밀 키 k1과 술어 12로부터 비밀 키 k12를 생성할 수 있고, 비밀 키 k1과 술어 13으로부터 비밀 키 k13을 생성할 수 있다.
또한, 하위의 비밀 키에 대응하는 키(공개 키)로 암호화된 암호문을 상위의 비밀 키로 복호할 수 있다. 한편, 상위의 비밀 키에 대응하는 키(공개 키)로 암호화된 암호문은, 하위의 비밀 키로 복호할 수 없다. 다시 말해, 속성 11, 속성 12, 속성 13에 의해 암호화된 암호문 c11, c12, c13은, 술어 1에 근거하여 생성된 비밀 키 k1이면 복호할 수 있다. 한편, 속성 1에 의해 암호화된 암호문 c1은, 술어 11, 술어 12, 술어 13에 근거하여 생성된 비밀 키 k11, k12, k13으로는 복호할 수 없다. 즉, 속성 11, 속성 12, 속성 13과 술어 1의 내적은 0이 된다. 한편, 속성 1과 술어 11, 술어 12, 술어 13의 내적은 0이 되지 않는다.
<제 1-4. 계층적 내적 술어 암호의 응용예>
도 4는 후술하는 계층적 내적 술어 암호의 응용예인 계층적 ID 베이스 암호(Hierarchial Identifier Based Encryption, HIBE)의 예를 나타내는 도면이다. 또, 계층적 ID 베이스 암호란, ID 베이스 암호가 계층적으로 이루어진 암호 처리이다. ID 베이스 암호는, 술어 암호의 일종이며, 암호문에 포함되는 ID와 비밀 키에 포함되는 ID가 일치하는 경우에 암호문을 복호할 수 있는 매칭 술어 암호이다.
도 4에 나타내는 예에서는, Root(키 생성 장치)는, 마스터 비밀 키 sk와 A 회사의 ID인 「A」에 근거하여, ID 「A」에 대응하는 비밀 키(키 A)를 생성한다. 예컨대, A 회사의 보안 담당자는, 키 A와 각 부문의 ID에 근거하여, 그 ID에 대응하는 비밀 키를 생성한다. 예컨대, 보안 담당자는, 영업 부문의 ID인 「A-1」에 대응하는 비밀 키(키 1)를 생성한다. 다음으로, 예컨대, 각 부문의 관리자는, 그 부문의 비밀 키와 그 부문에 속하는 각 과의 ID에 근거하여, 그 ID에 대응하는 비밀 키를 생성한다. 예컨대, 영업 부문의 관리자는, 영업 1과의 ID인 「A-11」에 대응하는 비밀 키(키 11)를 생성한다.
여기서, 영업 1과의 ID 「A-11」에 대응하는 비밀 키인 키 11에 의해, 영업 1과의 ID 「A-11」로 암호화된 암호문을 복호할 수 있다. 그러나, 키 11에 의해, 영업 2과나 영업 3과의 ID로 암호화된 암호문은 복호할 수 없다. 또한, 키 11에 의해, 영업 부문의 ID로 암호화된 암호문은 복호할 수 없다.
영업 부문의 ID 「A-1」에 대응하는 비밀 키인 키 1에 의해, 영업 부문의 ID 「A-1」로 암호화된 암호문을 복호할 수 있다. 또한, 키 1에 의해, 영업 부문에 속하는 과의 ID로 암호화된 암호문을 복호할 수 있다. 다시 말해, 키 1에 의해, 영업 1과, 영업 2과, 영업 3과의 ID로 암호화된 암호문을 복호할 수 있다. 그러나, 키 1에 의해, 제조 부문(ID : A-2)이나 스태프 부문(ID : A-3)의 ID로 암호화된 암호문은 복호할 수 없다. 또한, 키 1에 의해, A 회사의 ID로 암호화된 암호문은 복호할 수 없다.
A 회사의 ID 「A」에 대응하는 비밀 키인 키 A에 의해, A 회사의 ID 「A」로 암호화된 암호문을 복호할 수 있다. 또한, A 회사에 속하는 각 부문이나, 그 부문에 속하는 과의 ID로 암호화된 암호문을 복호할 수 있다.
계층적 내적 술어 암호는, ID 베이스 암호 이외에도 여러 가지 응용이 가능하다. 특히, 이하에 설명하는 암호 처리는, 등호 관계 테스트의 클래스로 한정된 것은 아니기 때문에, 매우 많은 응용이 가능하다. 예컨대, 내적 술어 암호의 일종인 검색 가능 암호 등에 대해서도, 계층마다 검색 가능한 범위를 AND 조건이나 OR 조건 등의 조건식을 이용하여 한정하는 등, 종래의 권한 위양 시스템을 갖는 술어 암호에서는 실현할 수 없었던 응용이 가능하다.
다시 말해, 이후의 실시의 형태에서 설명하는 계층적 술어 키 비닉 방식과 계층적 술어 암호는, ID 베이스 암호나 검색 가능 암호 등에 폭넓은 응용이 가능하다.
<제 2. 벡터 공간에 있어서의 계층적 내적 술어 암호>
계층적 술어 키 비닉 방식과 계층적 술어 암호는, 후술하는 쌍대 페어링 벡터 공간이라고 하는 고차원 벡터 공간에 있어서 실현된다. 그래서, 벡터 공간에 있어서의 계층적 내적 술어 암호를 설명한다.
<제 2-1. 기저와 기저 벡터>
우선, 벡터 공간의 설명에 있어서 사용하는 「기저」와 「기저 벡터」에 대하여 간단하게 설명한다.
도 5는 기저와 기저 벡터를 설명하기 위한 도면이다.
도 5는 2차원 벡터 공간에 있어서의 벡터 v를 나타낸다. 벡터 v는, c1a1+c2a2이다. 또한, 벡터 v는, y1b1+y2b2이다. 여기서, a1, a2를 기저 A에 있어서의 기저 벡터라고 하고, 기저 A:=(a1, a2)로 나타낸다. 또한, b1, b2를 기저 B에 있어서의 기저 벡터라고 하고, 기저 B:=(b1, b2)로 나타낸다. 또한, c1, c2, y1, y2는, 각 기저 벡터에 대한 계수이다. 도 5에서는, 2차원 벡터 공간이었기 때문에, 각 기저에 있어서의 기저 벡터는 2개였다. 그러나, N차원 벡터 공간이면, 각 기저에 있어서의 기저 벡터는 N개이다.
<제 2-2. 벡터 공간에 있어서의 내적 술어 암호>
다음으로, 벡터 공간에 있어서의 내적 술어 암호를 설명한다.
상기한 바와 같이, 내적 술어 암호란, 속성 정보 x와 술어 정보 fv의 내적이 소정의 값(여기에서는, 0)인 경우에, fv(x)=1이 되는 술어 암호이다. 속성 정보 x와 술어 정보 fv가 벡터인 경우, 다시 말해 속성 벡터 x와 술어 벡터 v인 경우, 내적 술어는 수학식 109와 같이 정의된다.
[수학식 109]
Figure 112012042794047-pct00010
다시 말해, 속성 벡터 x와 술어 벡터 v의 내적, 다시 말해 요소마다의 내적의 합이 0인 경우에, 술어 정보 fv에 속성 정보 x를 입력한 결과가 1(True)이 된다. 또한, 속성 벡터 x와 술어 벡터 v의 내적이 0이 아닌 경우에, 술어 정보 fv에 속성 정보 x를 입력한 결과가 0(False)이 되는 술어 암호이다.
<제 2-3. 벡터 공간에 있어서의 계층 구조의 실현 방법>
다음으로, 벡터 공간에 있어서의 계층 구조의 실현 방법을 설명한다.
도 6은 벡터 공간에 있어서의 계층 구조의 실현 방법의 일례를 설명하기 위한 도면이다.
여기서 다루는 벡터 공간은, 고차원(N차원) 벡터 공간인 것으로 한다. 다시 말해, 벡터 공간에 있어서의 소정의 기저 C에는, 기저 벡터 ci(i=1, …, N)의 N개의 기저 벡터가 존재한다.
N개의 기저 벡터 중 n개의 기저 벡터(기저 벡터 ci(i=1, …, n))를 계층 구조를 나타내기 위해 사용한다. 또한, 기저 벡터 ci(i=1, …, n)를, 기저 벡터 ci(i=1, …, μ1)와, 기저 벡터 ci(i=μ1+1, …, μ2)와, …, 기저 벡터 ci(i=μd-1+1, …, n)의 d개로 분할한다. 여기서, d는, 계층의 깊이를 나타내는 수가 된다.
그리고, μ1개의 기저 벡터 ci(i=1, …, μ1)를 제 1 층째의 속성 정보나 술어 정보를 나타내기 위해 할당한다. 또한, μ21개의 기저 벡터 ci(i=μ1+1, …, μ2)를 제 2 층째의 속성 정보나 술어 정보를 나타내기 위해 할당한다. 이하 마찬가지로, μdd-1개의 기저 벡터 ci(i=μd-1+1, …, μd(=n))를 제 d 층째의 속성 정보나 술어 정보를 나타내기 위해 할당한다.
또한, 제 L 층째의 속성 정보에 의해 암호문을 생성하는 경우에는, 제 L 층째의 속성 정보뿐만이 아니라, 제 1 층째로부터 제 L 층째까지의 속성 정보를 이용하여 암호문을 생성한다. 마찬가지로, 제 L 층째의 술어 정보에 의해 비밀 키를 생성하는 경우에는, 제 L 층째의 술어 정보뿐만이 아니라, 제 1 층째로부터 제 L 층째까지의 술어 정보를 이용하여 비밀 키를 생성한다. 다시 말해, 제 L 층째의 속성 정보에 의해 암호문을 생성하는 경우나, 제 L 층째의 술어 정보에 의해 비밀 키를 생성하는 경우에는, 제 1 층째로부터 제 L 층째까지 할당된 μL개의 기저 벡터 ci(i=1, …, μL)를 이용한다. 예컨대, 제 3 층째의 속성 정보에 의해 암호문을 생성하는 경우에는, 제 1 층째로부터 제 3 층째까지 할당된 μ3개의 기저 벡터 ci(i=1, …, μ3)를 이용하여, 제 1 층째로부터 제 3 층째까지의 속성 정보를 이용하여 암호문을 생성한다. 마찬가지로, 제 3 층째의 술어 정보에 의해 비밀 키를 생성하는 경우에는, 제 1 층째로부터 제 3 층째까지 할당된 μ3개의 기저 벡터 ci(i=1, …, μ3)를 이용하여, 제 1 층째로부터 제 3 층째까지의 술어 정보를 나타내어 비밀 키를 생성한다. 다시 말해, 하위의 층에서 사용되는 속성 정보나 술어 정보에는, 상위의 층에서 사용되는 속성 정보나 술어 정보가 포함된다. 이에 의해, 속성 정보와 술어 정보에 계층 구조를 갖게 한다. 그리고, 이 속성 정보와 술어 정보에 계층 구조를 이용하여, 내적 술어 암호에 권한 위양 시스템을 갖게 한다.
또, 이하의 설명에 있어서는, 벡터 공간에 있어서의 계층적 구조를 나타내기 위해, 계층 정보 μ를 이용한다. 계층 정보 μ를 수학식 110에 나타낸다.
[수학식 110]
Figure 112012042794047-pct00011
다시 말해, 계층 정보 μ는, 계층 구조를 나타내기 위해 할당된 기저 벡터수(차원수)를 나타내는 n과, 계층의 깊이를 나타내는 d와, 각 계층에 할당된 기저 벡터를 나타내기 위한 μ1, …, μd의 정보를 갖는다.
다음으로, 벡터 공간에 있어서의 계층적 내적 술어 암호를 설명한다.
속성 공간 ΣL(L=1, …, d)을, 제 L 층째의 속성 정보를 나타내기 위해 할당된 공간인 것으로 한다. 여기서, 각 ΣL은, 수학식 111이다.
[수학식 111]
Figure 112012042794047-pct00012
계층적인 속성을 수학식 112에 나타내는 Σ로 한다. 여기서, 합집합은 서로소인 합집합이다.
[수학식 112]
Figure 112012042794047-pct00013
그러면, 수학식 113에 나타내는 계층적인 속성에 있어서의 수학식 114에 나타내는 계층적인 술어는, 수학식 115와 같이 정의된다.
[수학식 113]
Figure 112012042794047-pct00014
[수학식 114]
Figure 112012042794047-pct00015
[수학식 115]
Figure 112012042794047-pct00016
계층적인 술어 공간을 수학식 116에 나타내는 F로 한다.
[수학식 116]
Figure 112012042794047-pct00017
또한, 수학식 117의 h와 수학식 118의 L을 계층이라고 부른다.
[수학식 117]
Figure 112012042794047-pct00018
[수학식 118]
Figure 112012042794047-pct00019
<제 2-4. 계층 구조의 실현예>
여기서, 간단한 예를 이용하여 계층 구조를 설명한다. 여기에서는, 3개의 계층을 구비하고, 각 계층이 2차원으로 구성된 6차원 공간을 이용하여 설명한다. 다시 말해, μ:=(n, d ; μ1, …, μd)=(6, 3 ; 2, 4, 6)이다.
제 1 층째의 술어 벡터 v 1:=(v1, v2)에 근거하여 생성된 제 1 층째의 비밀 키 sk1을 갖는 이용자는, 제 1 층째의 비밀 키 sk1과 제 2 층째의 술어 벡터 v 2:=(v3, v4)에 근거하여 제 2 층째의 비밀 키 sk2를 생성할 수 있다. 다시 말해, 제 2 층째의 비밀 키 sk2는, 술어 벡터(v 1, v 2)에 근거하여 생성된다. 마찬가지로, 제 2 층째의 비밀 키 sk2를 갖는 이용자는, 제 2 층째의 비밀 키 sk2와 제 3 층째의 술어 벡터 v 3:=(v5, v6)에 근거하여 제 3 층째의 비밀 키 sk3을 생성할 수 있다. 다시 말해, 제 3 층째의 비밀 키 sk3은, 술어 벡터(v 1, v 2, v 3)에 근거하여 생성된다.
제 1 층째의 술어 벡터 v 1에 근거하여 생성된 제 1 층째의 비밀 키 sk1은, (v 1, (0, 0), (0, 0))에 의해 생성된 비밀 키이다. 그 때문에, 제 1 층째의 비밀 키 sk1은, 속성 벡터(x 1, (*, *), (*, *)):=((x1, x2), (*, *), (*, *))에 의해 암호화된 암호문을, v 1ㆍx 1=0인 경우에는 복호할 수 있다. 왜냐하면, (*, *)ㆍ(0, 0)=0이기 때문이다. 여기서, "*"는, 임의의 값을 나타낸다.
마찬가지로, 제 2 층째의 술어 벡터(v 1, v 2)에 근거하여 생성된 제 2 층째의 비밀 키 sk2는, (v 1, v 2, (0, 0))에 의해 생성된 비밀 키이다. 그 때문에, 제 2 층째의 비밀 키 sk2는, 속성 벡터(x 1, x 2, (*, *)):=((x1, x2), (x3, x4), (*, *))에 의해 암호화된 암호문을, v 1ㆍx 1=0 또한 v 2ㆍx 2=0인 경우에는 복호할 수 있다.
그러나, 제 2 층째의 비밀 키 sk2는, 제 1 층째의 속성 벡터 x 1:=(x1, x2)(다시 말해, (x 1, (*, *), (*, *))에 의해 암호화된 암호문을 복호할 수 없다. 왜냐하면, v 2=(0, 0)이 아니면, (*, *)ㆍv 2≠0이며, v 2ㆍx 2≠0이기 때문이다. 그 때문에, 제 2 층째의 비밀 키 sk2는, 부모인 비밀 키 sk1보다 한정된 능력만을 갖고 있다고 말할 수 있다.
<제 3. 계층적 술어 암호와 계층적 술어 키 비닉 방식의 구성>
<제 3-1. 계층적 술어 암호>
계층적 술어 암호의 구성을 간단하게 설명한다.
계층적 술어 암호는, Setup, GenKey, Enc, Dec, DelegateL(L=1, …, d-1)의 5개의 확률적 다항식 시간 알고리즘을 구비한다.
(Setup)
Setup 알고리즘에서는, 시큐리티 파라미터 1λ와 계층 정보 μ가 입력되고, 마스터 공개 키 pk와 마스터 비밀 키 sk가 출력된다. 마스터 비밀 키 sk는 가장 상위의 키이다.
(GenKey)
GenKey 알고리즘에서는, 마스터 공개 키 pk와 마스터 비밀 키 sk와 수학식 119에 나타내는 술어 벡터가 입력되고, 수학식 120에 나타내는 제 L 층째의 비밀 키가 출력된다.
[수학식 119]
Figure 112012042794047-pct00020
[수학식 120]
Figure 112012042794047-pct00021
(Enc)
Enc 알고리즘에서는, 마스터 공개 키 pk와 수학식 121에 나타내는 속성 벡터와 평문 정보 m이 입력되고, 암호문 c가 출력된다. 다시 말해, Enc 알고리즘에서는, 평문 정보 m을 삽입하고, 수학식 121에 나타내는 속성 벡터에 의해 암호화된 암호문 c가 출력된다.
[수학식 121]
Figure 112012042794047-pct00022
(Dec)
Dec 알고리즘에서는, 마스터 공개 키 pk와 수학식 122에 나타내는 제 L 층째의 비밀 키와 암호문 c가 입력되고, 평문 정보 m 또는 식별 정보 ⊥가 출력된다. 식별 정보 ⊥란, 복호에 실패한 것을 나타내는 정보이다. 다시 말해, Dec 알고리즘에서는, 암호문 c를 제 L 층째의 비밀 키로 복호하여, 평문 정보 m을 추출한다. 또한, 복호에 실패한 경우에는 식별 정보 ⊥를 출력한다.
[수학식 122]
Figure 112012042794047-pct00023
(DelegateL)
DelegateL에서는, 마스터 공개 키 pk와 수학식 123에 나타내는 제 L 층째의 비밀 키와 수학식 124에 나타내는 제 L+1 층째의 술어 벡터가 입력되고, 수학식 125에 나타내는 제 L+1 층째의 비밀 키가 출력된다. 다시 말해, DelegateL 알고리즘에서는, 하위의 비밀 키가 출력된다.
[수학식 123]
Figure 112012042794047-pct00024
[수학식 124]
Figure 112012042794047-pct00025
[수학식 125]
Figure 112012042794047-pct00026
<제 3-2. 계층적 술어 키 비닉 방식>
계층적 술어 키 비닉 방식의 구성을 간단하게 설명한다.
계층적 술어 키 비닉 방식은, 계층적 술어 암호와 같이, Setup, GenKey, Enc, Dec, DelegateL(L=1, …, d-1)의 5개의 확률적 다항식 시간 알고리즘을 구비한다.
(Setup)
Setup 알고리즘에서는, 시큐리티 파라미터 1λ와 계층 정보 μ가 입력되고, 마스터 공개 키 pk와 마스터 비밀 키 sk가 출력된다. 마스터 비밀 키 sk는 가장 상위의 키이다.
(GenKey)
GenKey 알고리즘에서는, 마스터 공개 키 pk와 마스터 비밀 키 sk와 수학식 126에 나타내는 술어 벡터가 입력되고, 수학식 127에 나타내는 제 L 층째의 비밀 키가 출력된다.
[수학식 126]
Figure 112012042794047-pct00027
[수학식 127]
Figure 112012042794047-pct00028
(Enc)
Enc 알고리즘에서는, 마스터 공개 키 pk와 수학식 128에 나타내는 속성 벡터가 입력되고, 암호문 c와 세션 키 K가 출력된다. 다시 말해, Enc 알고리즘에서는, 소정의 정보(ρ)를 삽입하고, 수학식 128에 나타내는 속성 벡터에 의해 암호화된 암호문 c와, 소정의 정보(ρ)로부터 생성한 세션 키 K가 출력된다.
[수학식 128]
Figure 112012042794047-pct00029
(Dec)
Dec 알고리즘에서는, 마스터 공개 키 pk와 수학식 129에 나타내는 제 L 층째의 비밀 키와 암호문 c가 입력되고, 세션 키 K 또는 식별 정보 ⊥가 출력된다. 식별 정보 ⊥란, 복호에 실패한 것을 나타내는 정보이다. 다시 말해, Dec 알고리즘에서는, 암호문 c를 제 L 층째의 비밀 키로 복호하여, 소정의 정보(ρ)에 관한 정보를 추출하고, 세션 키 K를 생성한다. 또한, 복호에 실패한 경우에는 식별 정보 ⊥를 출력한다.
[수학식 129]
Figure 112012042794047-pct00030
(DelegateL)
DelegateL 알고리즘에서는, 마스터 공개 키 pk와 수학식 130에 나타내는 제 L 층째의 비밀 키와 수학식 131에 나타내는 제 L+1 층째의 술어 벡터가 입력되고, 수학식 132에 나타내는 제 L+1 층째의 비밀 키가 출력된다. 다시 말해, DelegateL 알고리즘에서는, 하위의 비밀 키가 출력된다.
[수학식 130]
Figure 112012042794047-pct00031
[수학식 131]
Figure 112012042794047-pct00032
[수학식 132]
Figure 112012042794047-pct00033
<제 3-3. 암호 처리 시스템(10)>
암호 처리 시스템(10)에 대하여 설명한다. 암호 처리 시스템(10)은, 상술한 계층적 술어 암호와 계층적 술어 키 비닉 방식의 알고리즘을 실행한다.
도 7은 암호 처리 시스템(10)의 구성도이다.
암호 처리 시스템(10)은, 키 생성 장치(100), 암호화 장치(200), 복호 장치(300), 키 위양 장치(400)를 구비한다. 또, 여기에서는, 복호 장치(300)는, 키 위양 장치(400)를 구비하는 것으로 한다. 또한, 상술한 것처럼, 암호 처리 시스템(10)은, 계층적인 암호 처리를 실행하는 것이기 때문에, 암호 처리 시스템(10)은, 복수의 암호화 장치(200), 복수의 복호 장치(300), 복수의 키 위양 장치(400)를 구비하는 것으로 한다.
키 생성 장치(100)는, 계층적 술어 키 비닉 방식과 계층적 술어 암호의 Setup, GenKey 알고리즘을 실행한다.
암호화 장치(200)는, 계층적 술어 키 비닉 방식과 계층적 술어 암호의 Enc 알고리즘을 실행한다.
복호 장치(300)는, 계층적 술어 키 비닉 방식과 계층적 술어 암호의 Dec 알고리즘을 실행한다.
키 위양 장치(400)는, 계층적 술어 키 비닉 방식과 계층적 술어 암호의 DelegateL 알고리즘을 실행한다.
도 8은 암호 처리 시스템(10)의 키 생성 장치(100)와 제 L 층째의 암호화 장치(200)와 복호 장치(300)의 동작을 나타내는 플로우차트이다. 다시 말해, 도 8은 마스터 키(마스터 공개 키와 마스터 비밀 키)의 생성, 제 L 층째의 비밀 키의 생성으로부터, 제 L 층째에 있어서의 암호화와 복호까지의 동작을 나타내는 플로우차트이다.
(S101 : 키 생성 단계)
키 생성 장치(100)는, Setup 알고리즘을 실행하여 마스터 공개 키 pk와 마스터 비밀 키 sk를 생성한다. 또한, 키 생성 장치(100)는, 생성한 마스터 공개 키 pk와 마스터 비밀 키 sk와, 소정의 복호 장치(300)(제 L 층째의 복호 장치(300))에 대응하는 술어 벡터 v L(v L=(v1, …, vi)(i=μL))에 근거하여, GenKey 알고리즘을 실행하여 제 L 층째의 비밀 키를 생성한다. 그리고, 키 생성 장치(100)는, 생성한 마스터 공개 키 pk를 공개(배포)함과 아울러, 제 L 층째의 비밀 키를 상기 소정의 복호 장치(300)에 비밀리에 배포한다. 또, 키 생성 장치(100)는, 마스터 비밀 키를 비밀리에 보지(保持)한다.
(S102 : 암호화 단계)
암호화 장치(200)는, (S101)에서 키 생성 장치(100)가 배포한 마스터 공개 키 pk와, 상기 복호 장치(300)의 속성 벡터 x L(x L=(x1, …, xi)(i=μL))에 근거하여, Enc 알고리즘을 실행하여 암호문 c를 생성한다. 또, 계층적 술어 키 비닉 방식이면, 암호화 장치(200)는, 세션 키 K도 아울러 생성한다. 그리고, 암호화 장치(200)는, 생성한 암호문 c를 상기 복호 장치(300)에 네트워크 등을 통해 송신한다. 또, 속성 벡터 x L은, 공개되어 있는 것으로 하더라도 좋고, 암호화 장치(200)가 키 생성 장치(100)나 복호 장치(300)로부터 취득하는 것으로 하더라도 좋다.
(S103 : 복호 단계)
복호 장치(300)는, (S101)에서 키 생성 장치(100)가 배포한 마스터 공개 키 pk와 제 L 층째의 비밀 키에 근거하여, 알고리즘 Dec를 실행하여, 암호화 장치(200)로부터 수신한 암호문 c를 복호한다. 복호 장치(300)는, 암호문 c를 복호한 결과, 계층적 술어 키 비닉 방식이면 세션 키 K를 취득하고, 계층적 술어 암호이면 평문 정보 m을 취득한다. 복호 장치(300)는, 복호에 실패한 경우에는 식별 정보 ⊥를 출력한다.
도 9는 암호 처리 시스템(10)의 제 L 층째의 키 위양 장치(400)와, 제 L+1 층째의 암호화 장치(200)와 복호 장치(300)의 동작을 나타내는 플로우차트이다. 다시 말해, 도 9는 제 L+1 층째의 비밀 키의 생성으로부터, 제 L+1 층째에 있어서의 암호화와 복호까지의 동작을 나타내는 플로우차트이다.
(S201 : 키 위양 단계)
제 L 층째의 키 위양 장치(400)(제 L 층째의 복호 장치(300)가 구비하는 키 위양 장치(400))는, (S101)에서 키 생성 장치(100)가 배포한 마스터 공개 키 pk와, 키 생성 장치(100) 또는 제 L-1 층째의 키 위양 장치(400)가 배포한 제 L 층째의 비밀 키와, 제 L+1 층째의 복호 장치(300)에 대응하는 술어 벡터 v L+1(v L+1=(vi, …, vj)(i=μL+1, j=μL+1))에 근거하여, 알고리즘 DelegateL을 실행하여 제 L+1 층째의 비밀 키를 생성한다. 그리고, 제 L 층째의 키 위양 장치(400)는, 생성한 비밀 키를 제 L+1 층째의 복호 장치(300)에 비밀리에 배포한다.
(S202 : 암호화 단계)
암호화 장치(200)는, (S101)에서 키 생성 장치(100)가 배포한 마스터 공개 키 pk와, 제 L+1 층째까지의 복호 장치(300)의 속성 벡터 x 1로부터 속성 벡터 x L+1(x i(i=1, …, L+1)(=(x1, …, xi)(i=μL+1)))에 근거하여, Enc 알고리즘을 실행하여 암호문 c를 생성한다. 또, 계층적 술어 키 비닉 방식이면, 암호화 장치(200)는, 세션 키 K도 아울러 생성한다. 그리고, 암호화 장치(200)는, 생성한 암호문 c를 상기 복호 장치(300)에 네트워크 등을 통해 송신한다. 또, 속성 벡터 x 1로부터 속성 벡터 x L+1(x i(i=1, …, L+1))은, 공개되어 있는 것으로 하더라도 좋고, 암호화 장치(200)가 키 생성 장치(100)나 복호 장치(300)로부터 취득하는 것으로 하더라도 좋다.
(S203 : 복호 단계)
복호 장치(300)는, (S101)에서 키 생성 장치(100)가 배포한 마스터 공개 키 pk와, (S201)에서 제 L 층째의 키 위양 장치(400)가 배포한 비밀 키에 근거하여, 알고리즘 Dec를 실행하여, 암호화 장치(200)로부터 수신한 암호문 c를 복호한다. 복호 장치(300)는, 암호문 c를 복호한 결과, 계층적 술어 키 비닉 방식이면 세션 키 K를 취득하고, 계층적 술어 암호이면 평문 정보 m을 취득한다.
<제 4. 계층적 술어 키 비닉 방식과 계층적 술어 암호를 실현하기 위한 개념>
다음으로, 상술한 계층적 술어 암호와 계층적 술어 키 비닉 방식의 각 알고리즘을 실현하기 위해 필요한 개념을 설명한다.
여기에서는, 비대칭 페어링 그룹의 직적에 의해 후술하는 쌍대 페어링 벡터 공간을 구성하는 예를 이용하여, 암호 처리를 실현하는 방법을 설명한다. 그러나, 쌍대 페어링 벡터 공간은, 비대칭 페어링 그룹의 직적에 의해 실현되는 것으로 한정되지 않는다. 다시 말해, 다른 방법에 의해 구성된 쌍대 페어링 벡터 공간에 있어서도, 이하에 설명하는 암호 처리는 실현 가능하다. 또, 쌍대 페어링 벡터 공간의 전형적인 3개의 예가, 비특허 문헌 17에 기재되어 있다.
<제 4-1. 쌍선형 페어링 그룹>
쌍선형 페어링 그룹(q, G1, G2, GT, g1, g2, gT)을 설명한다.
쌍선형 페어링 그룹(q, G1, G2, GT, g1, g2, gT)은, 위수 q의 3개의 순회군 G1, G2, GT의 조(組)이다. g1은 G1의 생성원이며, g2는 G2의 생성원이다. 그리고, 쌍선형 페어링 그룹(q, G1, G2, GT, g1, g2, gT)은, 이하의 비퇴화 쌍선형 페어링의 조건을 만족시킨다.
(조건 : 비퇴화 쌍선형 페어링)
다항식 시간으로 계산 가능한 수학식 133에 나타내는 비퇴화 쌍선형 페어링이 존재하는 것.
[수학식 133]
Figure 112012042794047-pct00034
여기서, G1=G2(=:G)인 경우, 대칭 쌍선형 페어링이라고 부른다. 한편, G1≠G2인 경우, 비대칭 쌍선형 페어링이라고 부른다. 대칭 쌍선형 페어링은, 초특이 (초)타원 곡선을 이용하여 구축할 수 있다. 한편, 비대칭 쌍선형 페어링은, 어떤 (초)타원 곡선을 이용하더라도 구축할 수 있다. 비대칭 쌍선형 페어링은, 예컨대, 통상의 타원 곡선을 이용하여 구축할 수 있다.
<제 4-2. 벡터 공간 V와 벡터 공간 V*>
1차원 공간의 순회군을 고차원 공간(고차원 벡터 공간)으로 확장한다. 다시 말해, 수학식 134에 나타내는 바와 같이, G1과 G2의 직적에 의해 N차원 벡터 공간 V와 N차원 벡터 공간 V*를 구축한다.
[수학식 134]
Figure 112012042794047-pct00035
<제 4-3. 표준적인 쌍대 기저 A, A*>
N차원 벡터 공간 V의 표준 기저 A와, N차원 벡터 공간 V*의 표준 기저 A*를 설명한다.
수학식 135는, 표준 기저 A와 표준 기저 A*를 나타낸다.
[수학식 135]
Figure 112012042794047-pct00036
표준 기저 A와 표준 기저 A*는, 수학식 136에 나타내는 조건을 만족시킨다.
[수학식 136]
Figure 112012042794047-pct00037
다시 말해, 표준 기저 A와 표준 기저 A*는, 쌍대 정규 직교 기저이며, 공간 V와 공간 V*는, 페어링 연산 e에 의해 관련지어진 쌍대 벡터 공간이다.
표준 기저 A와 표준 기저 A*가 수학식 136에 나타내는 조건을 만족시키는 것에 대하여 보충한다.
우선, e(ai, a* i)=gT인 것에 대하여 설명한다. 일례로서 e(a1, a* 1)에 대하여 계산한다. 상기한 바와 같이, a1=(g1, 0, …, 0)이며, a* 1=(g2, 0, …, 0)이다. 따라서, e(a1, a* 1)=e(g1, g2)×e(0, 0)×, …, ×e(0, 0)이다. 여기서, 상기한 바와 같이, e(g1, g2)=gT이다. 또한, e(0, 0)=e(0ㆍg1, 0ㆍg2)=e(g1, g2)0이기 때문에, e(0, 0)=1이다. 따라서, e(a1, a* 1)=gT가 된다. 다른 e(ai, a* i)에 대해서도 같은 계산이 성립하고, e(ai, a* i)=gT가 된다.
다음으로, e(ai, a* j)=1(i≠j)인 것에 대하여 설명한다. 일례로서, e(a1, a* 2)에 대하여 계산한다. 상기한 바와 같이, a1=(g1, 0, …, 0)이며, a* 2=(0, g2, 0, …, 0)이다. 따라서, e(a1, a* 2)=e(g1, 0)×e(0, g2)×e(0, 0)×, …, ×e(0, 0)이다. e(g1, 0)=e(g1, 0ㆍg2)=e(g1, g2)0이기 때문에, e(g1, 0)=1이다. 마찬가지로, e(0, g2)=1이다. 또한, 상기한 바와 같이, e(0, 0)=1이다. 따라서, e(ai, a* j)=1이 된다. 다른 e(ai, a* j)에 대해서도 같은 계산이 성립하고, e(ai, a* j)=1이 된다.
따라서, 표준 기저 A와 표준 기저 A*에 있어서, e(ai, a* i)=gT이며, e(ai, a* j)=1(i≠j)이다.
<제 4-4. 페어링 연산>
N차원 벡터 공간 V, V*에 있어서의 페어링 연산 e를 수학식 137에 나타내는 바와 같이 정의한다.
[수학식 137]
Figure 112012042794047-pct00038
다시 말해, N차원 벡터 공간 V의 벡터 x:=(x1g1, x2g1, …, xNg1)와 N차원 벡터 공간 V*의 벡터 y:=(y1g2, y2g2, …, yNg2)의 페어링 연산 e(x, y)는, 벡터 x와 벡터 y의 요소마다의 페어링 연산의 곱이라고 정의한다. 그러면, 상술한 비퇴화 쌍선형 페어링의 조건으로부터, 페어링 연산 e(x, y)는, 수학식 138에 나타내는 바와 같이 나타낼 수 있다.
[수학식 138]
Figure 112012042794047-pct00039
<제 4-5. 기저 변환>
표준 기저 A와 표준 기저 A*로부터 다른 기저 B와 기저 B*로 변환하는 기저 변환 방법에 대하여 설명한다. 도 10은 기저 변환 방법을 설명하기 위한 도면이다.
공간 V에 있어서의 표준 기저 A로부터 공간 V에 있어서의 다른 기저 B:=(b1, …, bN)로 변환한다. 여기에서는, 수학식 139에 나타내는 균등하게 선택된 선형 변환 X를 이용하여, 수학식 140에 나타내는 바와 같이 공간 V에 있어서의 표준 기저 A로부터 공간 V에 있어서의 다른 기저 B로 변환한다.
[수학식 139]
Figure 112012042794047-pct00040
[수학식 140]
Figure 112012042794047-pct00041
여기서, GL은, General Linear의 약어이다. 다시 말해, GL은, 일반 선형군이며, 행렬식이 0이 아닌 정방 행렬의 집합이며, 곱셈에 관한 군이다.
X를 이용하는 것에 의해, 공간 V*에 있어서의 표준 기저 A*로부터 공간 V*에 있어서의 기저 B*:=(b* 1, …, b* N)를 효율적으로 계산할 수 있다. 여기에서는, 수학식 141에 나타내는 바와 같이 X를 이용하여, 공간 V*에 있어서의 기저 B*를 계산한다.
[수학식 141]
Figure 112012042794047-pct00042
여기서, 수학식 142가 성립한다.
[수학식 142]
Figure 112012042794047-pct00043
다시 말해, 기저 B와 기저 B*는, 쌍대 공간 V와 V*에 있어서의 쌍대 정규 직교 기저이다. 즉, X를 이용하여 표준 기저 A와 A*를 변형한 경우이더라도, 쌍대 정규 직교 기저는 보존된다.
<제 4-6. 디스토션 사상>
표준 기저 A에 있어서의 공간 V의 생성원 x에 대한 디스토션 사상이라고 하는 선형 변환에 대하여 설명한다.
공간 V의 표준 기저 A에 있어서의 디스토션 사상 φi, j는, 수학식 143에 나타내는 사상이다.
[수학식 143]
Figure 112012042794047-pct00044
수학식 144가 성립하기 때문에, 디스토션 사상 φi, j는, 수학식 145의 변환을 행할 수 있다.
[수학식 144]
Figure 112012042794047-pct00045
[수학식 145]
Figure 112012042794047-pct00046
다시 말해, 표준 기저 A의 벡터 x의 기저 벡터 j의 요소를 기저 벡터 i의 요소로 변환할 수 있다. 이때, 변환된 기저 벡터 j의 요소를 제외한 다른 요소는, 모두 0이 된다. 즉, 벡터 x의 기저 벡터 j의 요소가 기저 벡터 i의 요소가 되고, 그 외의 요소는 0이 된다.
공간 V*의 표준 기저 A*에 있어서의 디스토션 사상 φ* i, j도, 공간 V의 표준 기저 A에 있어서의 디스토션 사상 φi, j와 같이 나타낼 수 있다.
디스토션 사상 φi, j* i, j)를 이용하는 것에 의해, 수학식 146에 나타내는 N×N 행렬로서 나타내는 선형 변환 W로서, x∈V에 대한 어떤 선형 변환 W도 수학식 147에 의해 효율적으로 계산할 수 있다.
[수학식 146]
Figure 112012042794047-pct00047
[수학식 147]
Figure 112012042794047-pct00048
<제 5. 쌍대 페어링 벡터 공간>
제 4에서 설명한 개념을 근거로 하여, 쌍대 페어링 벡터 공간에 대하여 설명한다. 후술하는 계층적 술어 암호와 계층적 술어 키 비닉 방식은, 쌍대 페어링 벡터 공간에 있어서 실현된다.
쌍대 페어링 벡터 공간(q, V, V*, GT, A, A*)은, 소수 위수 q와 Fq상의 2개의 N차원 벡터 공간 V, V*와, 위수 q의 순회군 GT와, 공간 V의 표준 기저 A:=(a1, …, aN-1)와, 공간 V*의 표준 기저 A*:=(a* 1, …, a* N-1)를 갖는 공간이다. 그리고, 쌍대 페어링 벡터 공간(q, V, V*, GT, A, A*)은, 이하의 (1) 비퇴화 쌍선형 페어링이 존재함, (2) 표준 기저 A, A*가 쌍대 정규 직교 기저임, (3) 디스토션 사상이 존재한다고 하는 3개의 조건을 만족시키는 공간이다.
(1) 비퇴화 쌍선형 페어링(상기 제 4-1 참조)
다항식 시간으로 계산 가능한 비퇴화 쌍선형 페어링 e가 존재하는 것.
다시 말해, 수학식 148에 나타내는 비퇴화 쌍선형 페어링 e가 존재하는 것이 1번째의 조건이다.
[수학식 148]
Figure 112012042794047-pct00049
(2) 쌍대 정규 직교 기저(상기 제 4-2 참조)
공간 V의 표준 기저 A와 공간 V*의 표준 기저 A*가 쌍대 정규 직교 기저인 것.
다시 말해, 공간 V의 표준 기저 A와 공간 V*의 표준 기저 A*가, 수학식 149에 나타내는 조건을 만족시키는 것이 2번째의 조건이다.
[수학식 149]
Figure 112012042794047-pct00050
(3) 디스토션 사상(상기 제 4-6 참조)
다항식 시간으로 계산 가능한 디스토션 사상 φi, j와 φ* i, j가 존재하는 것.
다시 말해, 수학식 150에 나타내는 공간 V의 준동형 φi, j와 공간 V*의 준동형 φ* i, j가 다항식 시간으로 계산 가능하다고 하는 것이 3번째의 조건이다.
[수학식 150]
Figure 112012042794047-pct00051
2번째의 조건을 만족시키는 것에 의해, 공간 V와 공간 V*가 페어링 연산 e(상기 제 4-2 참조)에 의해 관련지어진 쌍대 공간이라고 말할 수도 있다.
<제 6. 계층적 술어 암호와 계층적 술어 키 비닉 방식의 실현 방법의 개요>
상술한 개념(상기 제 4 참조)과, 쌍대 페어링 벡터 공간(상기 제 5 참조)을 근거로 하여, 상술한 암호 처리 시스템(10)(상기 제 3 참조)이 계층적 술어 암호와 계층적 술어 키 비닉 방식을 실현하는 방법을 간단하게 설명한다.
우선, 암호 처리 시스템(10)에 의해 실현되는 내적 술어 암호의 개요에 대하여 설명한다. 또, 설명을 간단하게 하기 위해, 여기에서는, 계층적이라고 하는 개념을 생략하고, 1 계층만으로 구성되는 내적 술어 암호의 개요에 대하여 설명한다.
암호 처리 시스템(10)은, 쌍대 페어링 벡터 공간(q, V, V*, GT, A, A*)에 있어서 내적 술어 암호를 실현한다. 또, 여기서, 공간 V, V*는, 모두 n+3차원 공간이다.
키 생성 장치(100)는, 제 4-5에서 설명한 기저 변환에 의해, 표준 기저 A, A*로부터 정규 직교 기저 B:=(b1, …, bn+3)와, B*:=(b* 1, …, b* n+3)를 생성한다. 키 생성 장치(100)는, 기저 B:=(b1, …, bn+3) 중 기저 벡터 bn+1과 기저 벡터 bn+2를, 기저 벡터 bn+1과 기저 벡터 bn+2의 합인 기저 벡터 dn+1로 치환한 기저 B^:=(b1, …, bn, dn+1, bn+3)를 생성한다. 그리고, 기저 B^를 마스터 공개 키 pk로 하고, 기저 B*를 마스터 비밀 키 sk로 한다. 또한, 키 생성 장치(100)는, 술어 벡터 v(v=(v1, …, vn)∈Fn q)로부터 비밀 키 k*를 수학식 151과 같이 생성하여 복호 장치(300)에 비밀리에 송신한다.
[수학식 151]
Figure 112012042794047-pct00052
암호화 장치(200)는, 속성 벡터 x(x=(x1, …, xn)∈Fn q)와 평문 정보 m으로부터, 2개의 암호문 c1과 c2를 생성한다. 암호문 c1과 c2는 수학식 152와 같이 생성된다.
[수학식 152]
Figure 112012042794047-pct00053
복호 장치(300)는, 암호문 c1, c2와 비밀 키 k*에 근거하여, 수학식 153을 계산하여, 평문 정보 m을 추출한다.
[수학식 153]
Figure 112012042794047-pct00054
여기서, vㆍx=0이라면, 수학식 154에 나타내는 바와 같이, 수학식 153을 계산하는 것에 의해, 복호 장치(300)는 평문 정보 m을 얻을 수 있다.
[수학식 154]
Figure 112012042794047-pct00055
다음으로, 계층적인 권한 위양을 가능하게 한 내적 술어 암호, 다시 말해 계층적 내적 술어 암호의 개요에 대하여, 간단한 예를 이용하여 설명한다. 여기에서는, 3개의 계층을 구비하고, 각 계층이 2차원으로 구성된 6차원을 술어 벡터와 속성 벡터에 이용하고, 그 외에 3차원을 갖는 9차원 공간을 이용하여 설명한다. 다시 말해, 공간 V, V*는, 9차원 공간이다. 따라서, 마스터 공개 키에 포함되는 기저 B^:=(b1, …, b6, d7, b9)이다. 또, d7:=b7+b8이다. 또한, 마스터 비밀 키에 포함되는 기저 B*:=(b* 1, …, b* 9)이다.
또, 이하의 설명에 있어서, 첨자의 「dec」는 「decryption」의 약어이며, 첨자에 「dec」가 있는 것은, 암호문의 복호에 이용되는 키 벡터이다. 또한, 첨자의 「ran」은 「randomization」의 약어이며, 첨자에 「ran」이 있는 것은, 하위의 키 벡터의 소정의 기저 벡터에 대한 계수를 랜덤화하기 위한 랜덤화 벡터이다. 또한, 첨자의 「del」은 「delegation」의 약어이며, 첨자에 「del」이 있는 것은, 하위의 키 벡터를 생성하기 위한 키 생성용 벡터이다.
여기서, 암호문 c1, c2는, 속성 벡터(x 1, x 2, x 3):=((x1, x2), (x3, x4), (x5, x6))와 평문 정보 m에 의해, 수학식 155와 같이 생성된다.
[수학식 155]
Figure 112012042794047-pct00056
만약, 속성 벡터가, x 1:=(x1, x2)와 같이 높은 계층인 경우, 속성 벡터를 수학식 156과 같이 수정한다.
[수학식 156]
Figure 112012042794047-pct00057
다시 말해, 속성 벡터 x 1로 생성된 암호문 c1은, 수학식 156에 나타내는 속성 벡터 x→+로 생성된 암호문 c1로서 생성된다.
제 1 층째의 술어 벡터 v 1:=(v1, v2)∈F2 q에 근거하여 생성된 제 1 층째의 비밀 키 k→* 1:=(k* 1, dec, k* 1, ran , 1, k* 1, ran , 2, k* 1, del , 3, …, k* 1, del , 6)은, k* 1, dec와, (k* 1, ran , 1, k* 1, ran , 2)와, (k* 1, del , 3, …, k* 1, del , 6)의 3개의 요소로 이루어진다. 여기서, k* 1, dec는, 암호문의 복호에 이용되는 키 벡터이다. (k* 1, ran , 1, k* 1, ran , 2)는, 하위의 키 벡터의 소정의 기저 벡터에 대한 계수를 랜덤화하기 위한 랜덤화 벡터이다. (k* 1, del , 3, …, k* 1, del , 6)은, 하위의 키 벡터를 생성하기 위한 키 생성용 벡터이다. k* 1, dec와, (k* 1, ran , 1, k* 1, ran , 2)와, (k* 1, del , 3, …, k* 1, del , 6)은, 수학식 157과 같이 생성된다.
[수학식 157]
Figure 112012042794047-pct00058
암호문 c1을 생성할 때 이용된 속성 벡터가, (x1, x2)ㆍ(v1, v2)=0이 되는 ((x1, x2), (*, *), (*, *))이라면, 수학식 158이기 때문에, k* 1, 0은, 수학식 159를 계산하는 것에 의해, 암호문 c1, c2를 복호할 수 있다.
[수학식 158]
Figure 112012042794047-pct00059
[수학식 159]
Figure 112012042794047-pct00060
제 2 층째의 술어 벡터 v 2:=(v3, v4)에 의해 제 2 층째의 비밀 키 k→* 2:=(k* 2, dec, k* 2, ran , 1, k* 2, ran , 2, k* 2, ran , 3, k* 2, del , 5, k* 2, del , 6)을 생성한다.
우선, k* 2, dec를 생성하는 경우, σ2, 0(v3k* 1, del, 3+v4k* 1, del, 4)를, k* 1, dec에 더한다. k* 2, ran , j를 생성하는 경우, σ2, j(v3k* 1, del , 3+v4k* 1, del , 4)를 0에 더한다(j=1, 2, 3). k* 2, del , j를 생성하는 경우, σ2, j(v3k* 1, del , 3+v4k* 1, del , 4)를 ψ+k* 1, del , j에 더한다(j=5, 6). 여기서, σ2, j(j=0, 1, 2, 3, 5, 6)와, ψ+는 균등하게 선택된 값이다.
또한, 제 2 층째의 비밀 키의 (v1b* 1+v2b* 2)와 b* 7과 b* 8의 계수의 값을 랜덤화한다(균등하게 분포시킨다). 거기서, k* 2, dec를 생성하는 경우, (α0, 1k* 1, ran , 10, 2k* 1, ran , 2)를 더 더한다. k* 2, ran , j를 생성하는 경우, (αj, 1k* 1, ran , 1j, 2k* 1, ran , 2)를 더한다(j=1, 2, 3). k* 2, del , j를 생성하는 경우, (αj, 1k* 1, ran , 1j, 2k* 1, ran , 2)를 더한다(j=5, 6). 여기서, αj, 1과 αj, 2(j=0, 1, 2, 3, 5, 6)는 균등하게 선택된 값이다.
다시 말해, 제 2 층째의 비밀 키 k→* 2:=(k* 2, dec, k* 2, ran, 1, k* 2, ran, 2, k* 2, ran, 3, k* 2, del, 5, k* 2, del, 6)이 수학식 160과 같이 생성된다.
[수학식 160]
Figure 112012042794047-pct00061
또, k* 2, dec는, 암호문의 복호에 이용되는 키 벡터이다. (k* 2, ran , 1, k* 2, ran , 2, k* 2, ran , 3)은, 하위의 키 벡터의 소정의 기저 벡터에 대한 계수를 랜덤화하기 위한 랜덤화 벡터이다. (k* 2, del , 5, k* 2, del , 6)은, 하위의 키의 생성에 이용된다.
일반적으로, 제 L 층째의 비밀 키 k→* L:=(k* L, dec, k* L, ran , j, k* L, del , j)에 있어서, k* L, dec는, 암호문의 복호에 이용되는 키 벡터이다. k* L, ran , j는, 하위의 키 벡터의 소정의 기저 벡터에 대한 계수를 랜덤화하기 위한 랜덤화 벡터이다. k* L, del , j는, 하위의 키 벡터를 생성하기 위한 키 생성용 벡터이다.
실시의 형태 2.
이 실시의 형태에서는, 실시의 형태 1에서 설명한 개념에 근거하여, 계층적 술어 암호를 실현하는 암호 처리 시스템(10)에 대하여 설명한다.
도 11로부터 도 16에 근거하여, 실시의 형태 2에 따른 암호 처리 시스템(10)의 기능과 동작에 대하여 설명한다.
도 11은 계층적 술어 암호를 실현하는 암호 처리 시스템(10)의 기능을 나타내는 기능 블록도이다. 암호 처리 시스템(10)은, 상술한 것처럼, 키 생성 장치(100), 암호화 장치(200), 복호 장치(300), 키 위양 장치(400)를 구비한다. 또한, 여기에서도, 복호 장치(300)가 키 위양 장치(400)를 구비하는 것으로 한다.
도 12는 키 생성 장치(100)의 동작을 나타내는 플로우차트이다. 도 13은 암호화 장치(200)의 동작을 나타내는 플로우차트이다. 도 14는 복호 장치(300)의 동작을 나타내는 플로우차트이다. 도 15는 키 위양 장치(400)의 동작을 나타내는 플로우차트이다.
도 16은 쌍대 페어링 벡터 공간의 기저의 구조를 나타내는 개념도이다.
키 생성 장치(100)의 기능과 동작에 대하여 설명한다. 키 생성 장치(100)는, 마스터 키 생성부(110), 마스터 키 기억부(120), 키 벡터 생성부(130), 랜덤화 벡터 생성부(140), 키 생성용 벡터 생성부(150), 키 배포부(160)를 구비한다.
(S301 : 마스터 키 생성 단계)
마스터 키 생성부(110)는, 수학식 161을 계산하여, 마스터 공개 키 pk와 마스터 비밀 키 sk를 처리 장치에 의해 생성하여 마스터 키 기억부(120)에 기억한다.
[수학식 161]
Figure 112012042794047-pct00062
다시 말해, (1) 마스터 키 생성부(110)는, 보안 파라미터 1λ로, N(=n+3)차원의 쌍대 페어링 벡터 공간(q, V, V*, GT, A, A*)을 처리 장치에 의해 생성한다. 여기서, Gdpvs는, 1λ와 N을 입력으로 하여, 보안 파라미터 1λ와 N차원 공간에 대한 쌍대 페어링 벡터 공간(q, V, V*, GT, A, A*)을 출력하는 쌍대 페어링 벡터 공간 생성 알고리즘이다.
(2) 마스터 키 생성부(110)는, 표준 기저 A로부터 기저 B를 생성하기 위한 선형 변환 X를 처리 장치에 의해 랜덤하게 선택한다.
(3) 마스터 키 생성부(110)는, 선택한 선형 변환 X에 근거하여, 기저 A:=(a1, …, aN)으로부터 기저 B:=(b1, …, bN)을 처리 장치에 의해 생성한다.
(4) 마스터 키 생성부(110)는, 기저 B에 있어서의 기저 벡터 bn +1과 기저 벡터 bn +2를, 기저 벡터 bn +1과 기저 벡터 bn +2의 합인 기저 벡터 dn +1로 치환한 기저 벡터 B^:=(b1, …, bn, dn +1, bn +3)을 처리 장치에 의해 생성한다.
(5) 마스터 키 생성부(110)는, 기저 A*:=(a* 1, …, a* N)으로부터 기저 B*:=(b* 1, …, b* N)을 생성하기 위한 선형 변환 (XT)-1을 선형 변환 X로부터 처리 장치에 의해 생성한다.
(6) 마스터 키 생성부(110)는, 생성한 선형 변환 (XT)-1에 근거하여, 기저 A*로부터 기저 B*:=(b* 1, …, b* N)을 처리 장치에 의해 생성한다.
(7) 마스터 키 생성부(110)는, 생성한 선형 변환 X와 기저 B*를 마스터 비밀 키 sk로 하고, 생성한 기저 B^를 포함하는 (1λ, q, V, V*, GT, A, A*, B^)를 마스터 공개 키 pk로 한다. 그리고, 마스터 키 기억부(120)는, 마스터 키 생성부(110)가 생성한 마스터 공개 키 pk와 마스터 비밀 키 sk를 기억 장치에 기억한다.
또, 쌍대 페어링 벡터 공간의 차원수는, N(=n+3)인 것으로 했다. 여기서, n은, 계층 정보 μ가 갖는 계층 구조를 나타내기 위해 할당되어 있는 기저수를 나타내는 n이다. 다시 말해, 여기에서는, 계층 구조를 나타내기 위해 할당되어 있는 기저수 n에 더하여, 3개의 기저 벡터가 마련되어 있다. 물론, 이것보다 많은 기저 벡터를 마련하더라도 좋다.
도 16에 나타내는 바와 같이, N(=n+3)개의 기저 벡터 중, n개의 기저 벡터가 술어 벡터나 속성 벡터를 위해 할당되어 있다. 술어 벡터나 속성 벡터를 위해 할당되어 있는 기저 벡터의 구조는, 도 6에 나타내는 구조와 같다. 나머지 3개의 기저 벡터 중 2개의 기저 벡터(n+1번째와 n+2번째의 기저 벡터)는, 세션 키를 생성하는 정보를 위한 기저 벡터이다. 나머지의 1개의 기저 벡터(n+3번째의 기저 벡터)는, 암호문 c1을 랜덤화하기 위한 기저 벡터이다.
즉, (S301)에 있어서, 마스터 키 생성부(110)는, 수학식 162에 나타내는 Setup 알고리즘을 실행하여, 마스터 공개 키 pk와 마스터 비밀 키 sk를 생성한다.
[수학식 162]
Figure 112012042794047-pct00063
(S302 : 키 벡터 k* L, dec 생성 단계)
키 벡터 생성부(130)는, 마스터 공개 키 pk와 마스터 비밀 키 sk와, 수학식 163에 나타내는 술어 벡터(v 1, …, v L)에 근거하여, 수학식 164를 계산하여, 제 L 층째(레벨 L)의 비밀 키의 선두 요소인 키 벡터 k* L, dec를 처리 장치에 의해 생성한다.
[수학식 163]
Figure 112012042794047-pct00064
[수학식 164]
Figure 112012042794047-pct00065
다시 말해, (1) 키 벡터 생성부(130)는, 난수 σ0, i(i=1, …, L)와 난수 η0을 처리 장치에 의해 생성한다.
(2) 키 벡터 생성부(130)는, 기저 벡터 b* i(i=1, …, μL)에 대한 계수로서 생성한 난수 σ0, t로 랜덤화한 술어 벡터의 각 요소를 처리 장치에 의해 설정한다. 다시 말해, 기저 벡터 b* i(i=1, …, μL)에 대한 계수에는, 술어 벡터의 각 요소가 삽입된다. 또한, 키 벡터 생성부(130)는, 기저 벡터 b* n+1에 대한 계수로서 난수 η0을 처리 장치에 의해 설정함과 아울러, 기저 벡터 b* n+2에 대한 계수로서 1로부터 난수 η0을 뺀 값(1-η0)을 처리 장치에 의해 설정한다. 다시 말해, 기저 벡터 b* n+1에 대한 계수와 기저 벡터 b* n+2에 대한 계수의 합이 1이 되도록, 기저 벡터 b* n+1에 대한 계수와 기저 벡터 b* n+2에 대한 계수가 설정된다. 이에 의해, 키 벡터 생성부(130)는, 키 벡터 k* L, dec를 생성한다.
(S303 : 랜덤화 벡터 k* L, ran , j 생성 단계)
랜덤화 벡터 생성부(140)는, 마스터 공개 키 pk와 마스터 비밀 키 sk와, 수학식 163에 나타내는 술어 벡터(v 1, …, v L)에 근거하여, 수학식 165를 계산하여, 랜덤화 벡터 k* L, ran , j(j=1, …, L+1)를 생성한다. 랜덤화 벡터 k* L, ran , j(j=1, …, L+1)는, 하위의 키 중, 술어 벡터의 각 요소가 삽입되는 기저 벡터에 대한 계수를 균등하게 분포시키기 위한 벡터이다. 또, 랜덤화 벡터 k* L, ran , j는, 제 L 층째의 비밀 키의 j번째의 요소이다.
[수학식 165]
Figure 112012042794047-pct00066
다시 말해, (1) 랜덤화 벡터 생성부(140)는, 난수 σj, i(j=1, …, L+1; i=1, …, L)와 난수 ηj(j=1, …, L+1)를 처리 장치에 의해 생성한다.
(2) 랜덤화 벡터 생성부(140)는, j=1, …, L+1의 각 j에 대하여, 기저 벡터 b* i(i=1, …, μL)에 대한 계수로서, 난수 σj, t로 랜덤화한 술어 벡터의 각 요소를 설정한 벡터 vvj를 처리 장치에 의해 생성한다. 다시 말해, 기저 벡터 b* i(i=1, …, μL)에 대한 계수에는, 술어 벡터의 각 요소가 삽입된다.
(3) 랜덤화 벡터 생성부(140)는, j=1, …, L+1의 각 j에 대하여, 기저 벡터 b* n+1에 대한 계수로서 난수 ηj를 처리 장치에 의해 설정함과 아울러, 기저 벡터 b* n+2에 대한 계수로서 0으로부터 난수 ηj를 뺀 값(-ηj)을 설정한 벡터 dvj를 처리 장치에 의해 생성한다. 다시 말해, 기저 벡터 b* n+1에 대한 계수와 기저 벡터 b* n+2에 대한 계수의 합이 0이 되도록, 기저 벡터 b* n+1에 대한 계수와 기저 벡터 b* n+2에 대한 계수가 설정된다.
(4) 랜덤화 벡터 생성부(140)는, j=1, …, L+1의 각 j에 대하여, 생성한 벡터 vvj와 벡터 dvj와 가산하여, 랜덤화 벡터 k* L, ran , j(j=1, …, L+1)를 생성한다.
(S304 : 키 생성용 벡터 k* L, del , j 생성 단계)
키 생성용 벡터 생성부(150)는, 마스터 공개 키 pk와 마스터 비밀 키 sk와, 수학식 163에 나타내는 술어 벡터(v 1, …, v L)에 근거하여, 수학식 166을 계산하여, 키 생성용 벡터 k* L, del , j(j=μL+1, …, n)를 처리 장치에 의해 생성한다. 키 생성용 벡터 k* L, del , j(j=μL+1, …, n)는, 하위의 비밀 키(하위의 키 벡터)를 생성하기 위한 벡터이다. 또, 키 생성용 벡터 k* L, del , j는, 제 L 층째의 비밀 키의 j번째의 요소이다.
[수학식 166]
Figure 112012042962718-pct00181
다시 말해, (1) 키 생성용 벡터 생성부(150)는, 난수 σj, i(j=μL+1, …, n; i=1, …, L)와 난수 ψ와 난수 ηj(j=μL+1, …, n)를 처리 장치에 의해 생성한다.
(2) 키 생성용 벡터 생성부(150)는, j=μL+1, …, n의 각 j에 대하여, 기저 벡터 b* i(i=1, …, μL)에 대한 계수로서, 난수 σj, t로 랜덤화한 술어 벡터의 각 요소를 설정하여, 벡터 vvj를 처리 장치에 의해 생성한다. 다시 말해, 기저 벡터 b* i(i=1, …, μL)에 대한 계수에는, 술어 벡터의 각 요소가 삽입된다.
(3) 키 생성용 벡터 생성부(150)는, j=μL+1, …, n의 각 j에 대하여, 기저 벡터 b* j에 대한 계수로서 난수 ψ를 설정하여, 벡터 ψvj를 처리 장치에 의해 생성한다.
(4) 키 생성용 벡터 생성부(150)는, j=μL+1, …, n의 각 j에 대하여, 기저 벡터 b* n+1에 대한 계수로서 난수 ηj를 처리 장치에 의해 설정함과 아울러, 기저 벡터 b* n+2에 대한 계수로서 0으로부터 난수 ηj를 뺀 값(-ηj)을 설정하여, 벡터 dvj를 처리 장치에 의해 생성한다. 다시 말해, 기저 벡터 b* n+1에 대한 계수와 기저 벡터 b* n+2에 대한 계수의 합이 0이 되도록, 기저 벡터 b* n+1에 대한 계수와 기저 벡터 b* n+2에 대한 계수가 설정된다.
(5) 키 생성용 벡터 생성부(150)는, j=μL+1, …, n의 각 j에 대하여, 벡터 vvj와, 벡터 ψvj와, 벡터 dvj를 가산하여, 키 생성용 벡터 k* L, del , j(j=μL+1, …, n)를 생성한다.
즉, (S302)로부터 (S304)에 있어서, 키 벡터 생성부(130)와 랜덤화 벡터 생성부(140)와 키 생성용 벡터 생성부(150)는, 수학식 167에 나타내는 GenKey 알고리즘을 처리 장치에 의해 실행한다. 이에 의해, 키 벡터 k* L, dec와, 랜덤화 벡터 k* L, ran, j(j=1, …, L+1)와, 키 생성용 벡터 k* L, del , j(j=μL+1, …, n)를 포함하는 제 L 층째의 비밀 키(키 정보 k→* L)가 생성된다.
[수학식 167]
Figure 112012042794047-pct00068
(S305 : 키 배포 단계)
키 배포부(160)는, 마스터 키 생성부(110)가 생성한 마스터 공개 키와, 키 벡터 생성부(130)와 랜덤화 벡터 생성부(140)와 키 생성용 벡터 생성부(150)가 생성한 키 정보 k→* L을 복호 장치(300)에 통신 장치를 통해 송신한다. 또한, 키 배포부(160)는, 마스터 공개 키를 암호화 장치(200)에 통신 장치를 통해 송신한다. 여기서, 키 정보 k→* L은 비밀리에 복호 장치(300)에 송신되지만, 키 정보 k→* L을 비밀리에 복호 장치(300)에 송신하는 방법에 관해서는, 어떠한 방법이더라도 상관없다. 예컨대, 종래의 암호 처리를 사용하여 송신하더라도 좋다.
암호화 장치(200)의 기능과 동작에 대하여 설명한다. 암호화 장치(200)는, 송신 정보 설정부(210), 암호 벡터 생성부(220), 암호 정보 생성부(230), 데이터 송신부(240), 공개 키 취득부(250)를 구비한다.
또, 이하의 처리의 이전에, 공개 키 취득부(250)는, 마스터 공개 키 pk와, 복호 장치(300)의 술어 정보 벡터에 대응하는 속성 정보 벡터를 취득하고 있는 것으로 한다.
(S401 : 송신 정보 설정 단계)
송신 정보 설정부(210)는, 마스터 공개 키 pk에 근거하여, 수학식 168을 처리 장치에 의해 계산하여 송신 정보 벡터 ζv를 생성한다.
[수학식 168]
Figure 112012042794047-pct00069
다시 말해, (1) 송신 정보 설정부(210)는, 난수 ζ를 처리 장치에 의해 생성한다.
(2) 송신 정보 설정부(210)는, 마스터 공개 키 pk에 포함되는 기저 B^의 기저 벡터 dn +1에 대한 계수로서 난수 ζ를 처리 장치에 의해 설정하여, 송신 정보 벡터 ζv를 생성한다.
(S402 : 암호 벡터 c1 생성 단계)
암호 벡터 생성부(220)는, 마스터 공개 키 pk와, 수학식 169에 나타내는 속성 벡터(x 1, …, x L)에 근거하여, 수학식 170을 처리 장치에 의해 계산하여 암호 벡터 c1을 생성한다.
[수학식 169]
Figure 112012042794047-pct00070
[수학식 170]
Figure 112012042794047-pct00071
다시 말해, (1) 암호 벡터 생성부(220)는, 난수(x L+1, …, x d)와, 난수 δi(i=1, …, d, n+3)를 처리 장치에 의해 생성한다.
(2) 암호 벡터 생성부(220)는, 마스터 공개 키 pk에 포함되는 기저 B의 기저 벡터 bi(i=1, …, μL)에 대한 계수로서 속성 벡터의 각 요소를 처리 장치에 의해 설정한다. 다시 말해, 기저 벡터 bi(i=1, …, μL)에 대한 계수에는, 속성 벡터의 각 요소가 삽입된다. 또한, 암호 벡터 생성부(220)는, 기저 벡터 bi(i=μL+1, …, n)에 대한 계수로서 난수를 처리 장치에 의해 설정한다. 이에 의해, 암호 벡터 생성부(220)는, 벡터 xv를 생성한다.
(3) 암호 벡터 생성부(220)는, 마스터 공개 키 pk에 포함되는 기저 B의 기저 벡터 bn +3에 대한 계수로서 난수 δn+3을 처리 장치에 의해 설정하여, 벡터 rv를 생성한다.
(4) 암호 벡터 생성부(220)는, 생성한 벡터 xv와 벡터 rv를, 송신 정보 설정부(210)가 생성한 송신 정보 벡터 ζv에 가산하여 암호 벡터 c1을 처리 장치에 의해 생성한다.
또, 벡터 rv는, 안전성을 높게 하기 위해서 더해지는 것이며, 필수 요소는 아니다.
(S403 : 암호 정보 c2 생성 단계)
암호 정보 생성부(230)는, 평문 정보 m에 근거하여, 수학식 171을 처리 장치에 의해 계산하여 암호 정보 c2를 생성한다.
[수학식 171]
Figure 112012042794047-pct00072
(S404 : 데이터 송신 단계)
데이터 송신부(240)는, 암호 벡터 생성부(220)가 생성한 암호 벡터 c1과, 암호 정보 생성부(230)가 생성한 암호 정보 c2를 복호 장치(300)에 통신 장치를 통해 송신한다.
즉, 암호화 장치(200)는, 수학식 172에 나타내는 Enc 알고리즘을 실행하여, 암호 벡터 c1과 암호 정보 c2를 생성한다.
[수학식 172]
Figure 112012042794047-pct00073
복호 장치(300)의 기능과 동작에 대하여 설명한다. 복호 장치(300)는, 벡터 입력부(310), 키 벡터 기억부(320), 페어링 연산부(330)를 구비한다.
(S501 : 벡터 입력 단계)
벡터 입력부(310)는, 암호화 장치(200)의 데이터 송신부(240)가 송신한 암호 벡터 c1과 암호 정보 c2를 통신 장치를 통해 수신하여 입력한다.
(S502 : 복호 단계)
페어링 연산부(330)는, 마스터 공개 키 pk와 제 L 층째의 비밀 키의 선두 요소인 키 벡터 k* L, dec에 근거하여, 수학식 173을 처리 장치에 의해 계산하여 평문 정보 m'를 생성한다.
[수학식 173]
Figure 112012042794047-pct00074
다시 말해, 페어링 연산부(330)는, 벡터 입력부(310)가 입력한 암호 벡터 c1과, 키 벡터 기억부(320)가 기억 장치에 기억한 키 벡터 k* L, dec에 대하여, 페어링 연산 e를 처리 장치에 의해 행한다. 이에 의해, 페어링 연산부(330)는, gζ T를 계산한다. 그리고, 계산한 gζ T로 암호 정보 c2(=gζ Tm)를 나누는 것에 의해, 평문 정보 m'(=m)를 계산한다. 또, 키 벡터 기억부(320)는, 키 생성 장치(100) 또는 상위의 키 위양 장치(400)로부터 키 벡터 k* L, dec가 배포되었을 때, 키 벡터 k* L, dec를 기억 장치에 기억하고 있다.
여기서, 암호화 장치(200)가 암호화에 이용한 속성 벡터 x i(i=1, …, h)와, 복호 장치(300)가 복호에 이용한 키 벡터의 술어 벡터 v i(i=1, …, L)에 대하여, L≤h이며, 모든 i(i=1, …, L)에 대하여 x iㆍv i=0이면, 수학식 174에 나타내는 바와 같이, 암호 벡터 c1과 키 벡터 k* L, dec에 대하여 페어링 연산 e를 행하는 것에 의해, gζ T를 얻을 수 있다.
[수학식 174]
Figure 112012042794047-pct00075
다시 말해, 복호 장치(300)는, 수학식 175에 나타내는 Dec 알고리즘을 실행하여, 평문 정보 m'를 생성한다.
[수학식 175]
Figure 112012042794047-pct00076
키 위양 장치(400)의 기능과 동작에 대하여 설명한다. 키 위양 장치(400)는, 키 벡터 취득부(410)(키 생성용 벡터 취득부), 키 벡터 생성부(420), 랜덤화 벡터 생성부(430), 키 생성용 벡터 생성부(440), 키 배포부(450)를 구비한다.
(S601 : 키 정보 k* L 취득 단계)
키 벡터 취득부(410)는, 제 L 층째의 비밀 키의 선두 요소인 키 벡터 k* L, dec와, 랜덤화 벡터 k* L, ran , j(j=1, …, L+1)와, 키 생성용 벡터 k* L, del , j(j=μL+1, …, n)를 포함하는 제 L 층째의 비밀 키(키 정보 k→* L)를 통신 장치를 통해 취득한다.
(S602 : 키 벡터 k* L+1, dec 생성 단계)
키 벡터 생성부(420)는, 마스터 공개 키 pk와 키 정보 k→* L과 수학식 176에 나타내는 술어 벡터 v L+1에 근거하여, 수학식 177을 계산하여, 제 L+1 층째의 비밀 키의 선두 요소인 키 벡터 k* L+1, dec를 처리 장치에 의해 생성한다.
[수학식 176]
Figure 112012042794047-pct00077
[수학식 177]
Figure 112012042794047-pct00078
다시 말해, (1) 키 벡터 생성부(420)는, 난수 α0, i(i=1, …, L+1)와 난수 σ0을 처리 장치에 의해 생성한다.
(2) 키 벡터 생성부(420)는, i=1, …, L+1의 각 i에 대하여, 랜덤화 벡터 k* L, ran , i의 계수를 난수 α0, i배한 벡터를 가산하여, 벡터 rv를 처리 장치에 의해 생성한다. 또, 랜덤화 벡터 k* L, ran , i(i=1, …, L+1)에 있어서의 기저 벡터 b* i(i=1, …, μL)에 대한 계수에는, 술어 벡터의 각 요소가 삽입되어 있다. 그 때문에, 벡터 rv에 있어서의 기저 벡터 b* i(i=1, …, μL)에 대한 계수에는, 난수배된 술어 벡터의 각 요소가 삽입된다.
(3) 키 벡터 생성부(420)는, 키 생성용 벡터 k* L, del , i(i=μL+1, …, μL+1)의 계수에 술어 벡터 v L+1의 각 요소를 설정한 벡터를 가산하고, 난수 σ0배하여 되어 벡터 vv를 처리 장치에 의해 생성한다. 다시 말해, 기저 벡터 b* i(i=μL+1, …, μL+1)에 대한 계수에는, 술어 벡터의 각 요소가 삽입된다.
(4) 키 벡터 생성부(420)는, 키 벡터 k* L, dec와, 벡터 rv와 벡터 vv를 가산하여, 키 벡터 k* L+1, dec를 처리 장치에 의해 생성한다.
(S603 : 랜덤화 벡터 k* L+1, ran , j 생성 단계)
랜덤화 벡터 생성부(430)는, 마스터 공개 키 pk와 키 정보 k→* L과 수학식 176에 나타내는 술어 벡터 v L+1에 근거하여, 수학식 178을 계산하여, 랜덤화 벡터 k* L+1, ran, j(j=1, …, L+2)를 생성한다. 랜덤화 벡터 k* L+1, ran, j(j=1, …, L+2)는, 하위의 키 중, 술어 벡터의 각 요소가 삽입되는 기저 벡터에 대한 계수를 균등하게 분포시키기 위한 벡터이다. 또, 랜덤화 벡터 k* L+1, ran, j는, 제 L+1 층째의 비밀 키의 j번째의 요소이다.
[수학식 178]
다시 말해, (1) 랜덤화 벡터 생성부(430)는, 난수 αj, i(j=1, …, L+2; i=1, …, L)와 난수 σj(j=1, …, L+2)를 처리 장치에 의해 생성한다.
(2) 랜덤화 벡터 생성부(430)는, j=1, …, L+2의 각 j에 대하여, 랜덤화 벡터 k* L, ran , i(i=1, …, L+1)의 계수를 난수 αj, i(i=1, …, L+1)배하여 벡터 rvj를 처리 장치에 의해 생성한다. 상술한 것처럼, 랜덤화 벡터 k* L, ran , i(i=1, …, L+1)에 있어서의 기저 벡터 b* i(i=1, …, μL)에 대한 계수에는, 술어 벡터의 각 요소가 삽입되어 있다. 그 때문에, 벡터 rvj에 있어서의 기저 벡터 b* i(i=1, …, μL)에 대한 계수에는, 난수배된 술어 벡터의 각 요소가 삽입된다.
(3) 랜덤화 벡터 생성부(430)는, j=1, …, L+2의 각 j에 대하여, 키 생성용 벡터 k* L, del , i(i=μL+1, …, μL+1)의 계수에 술어 벡터의 각 요소를 설정한 벡터를 가산하고, 난수 σj배하여 벡터 vvj를 처리 장치에 의해 생성한다. 다시 말해, 기저 벡터 b* i(i=μL+1, …, μL+1)에 대한 계수에는, 술어 벡터의 각 요소가 삽입된다.
(4) 랜덤화 벡터 생성부(430)는, j=1, …, L+2의 각 j에 대하여, 생성한 벡터 rvj와 벡터 vvj를 가산하여, 랜덤화 벡터 k* L+1, ran , j를 처리 장치에 의해 생성한다.
(S604 : 키 생성용 벡터 k* L+1, del , j 생성 단계)
키 생성용 벡터 생성부(440)는, 마스터 공개 키 pk와 키 정보 k→* L과 수학식 176에 나타내는 술어 벡터 v L+1에 근거하여, 수학식 179를 계산하여, 키 생성용 벡터 k* L+1, del , j(j=μL+1+1, …, n)를 처리 장치에 의해 생성한다. 키 생성용 벡터 k* L+1, del , j(j=μL+1+1, …, n)는, 하위의 비밀 키(하위의 키 벡터)를 생성하기 위한 벡터이다. 또, 키 생성용 벡터 k* L+1, del , j는, 제 L+1 층째의 비밀 키의 j번째의 요소이다.
[수학식 179]
Figure 112012042794047-pct00080
다시 말해, (1) 키 생성용 벡터 생성부(440)는, 난수 αj, i(j=μL+1+1, …, n; i=1, …, L+1)와, 난수 σj(j=μL+1+1, …, n)와, 난수 ψ'를 처리 장치에 의해 생성한다.
(2) 키 생성용 벡터 생성부(440)는, j=μL+1+1, …, n의 각 j에 대하여, 랜덤화 벡터 k* L, ran , i(i=1, …, L+1)의 계수를 난수 αj, i배한 벡터 rvj를 처리 장치에 의해 생성한다. 상술한 것처럼, 랜덤화 벡터 k* L, ran , i(i=1, …, L+1)에 있어서의 기저 벡터 b* i(i=1, …, μL)에 대한 계수에는, 술어 벡터의 각 요소가 삽입되어 있다. 그 때문에, 벡터 rvj에 있어서의 기저 벡터 b* i(i=1, …, μL)에 대한 계수에는, 난수배된 술어 벡터의 각 요소가 삽입된다.
(3) 키 생성용 벡터 생성부(440)는, j=μL+1+1, …, n의 각 j에 대하여, 키 생성용 벡터 k* L, del , i(i=μL+1, …, μL+1)의 계수에 술어 벡터의 각 요소를 설정한 벡터를 가산하고, 난수 σj배하여 벡터 vvj를 처리 장치에 의해 생성한다. 다시 말해, 기저 벡터 b* i(i=μL+1, …, μL+1)에 대한 계수에는, 술어 벡터의 각 요소가 삽입된다.
(4) 키 생성용 벡터 생성부(440)는, j=μL+1+1, …, n의 각 j에 대하여, 키 생성용 벡터 k* L, del , j의 계수를 난수 ψ'배하여, 벡터 ψvj를 처리 장치에 의해 생성한다. 또, 키 생성용 벡터 k* L, del , j에 있어서의 기저 벡터 b* j(j=μL+1+1, …, n)에 대한 계수에는, 술어 벡터의 요소가 삽입되어 있다. 그 때문에, 벡터 ψvj(j=μL+1+1, …, n)에 있어서의 기저 벡터 b* j에 대한 계수에는, 난수배된 술어 벡터의 요소가 삽입된다.
(5) 키 생성용 벡터 생성부(440)는, j=μL+1+1, …, n의 각 j에 대하여, 생성한 벡터 rvj와, 벡터 vvj와, 벡터 ψvj를 가산하여, 키 생성용 벡터 k* L+1, del , j(j=μL+1+1, …, n)를 처리 장치에 의해 생성한다.
즉, (S602)로부터 (S604)에 있어서, 키 벡터 생성부(420)와 랜덤화 벡터 생성부(430)와 키 생성용 벡터 생성부(440)는, 수학식 180에 나타내는 DelegateL 알고리즘을 실행하여, 키 벡터 k* L+1, dec와, 랜덤화 벡터 k* L+1, ran , j(j=1, …, L+2)와, 키 생성용 벡터 k* L+1, del , j(j=μL+1+1, …, n)를 포함하는 제 L+1 층째의 비밀 키(키 정보 k→* L+1)를 처리 장치에 의해 생성한다.
[수학식 180]
Figure 112012042794047-pct00081
(S605 : 키 배포 단계)
키 배포부(440)는, 키 벡터 생성부(420)와 랜덤화 벡터 생성부(430)와 키 생성용 벡터 생성부(440)가 생성한 키 정보 k→* L+1을 하위의 복호 장치(300)에 통신 장치를 통해 송신한다. 여기서, 키 정보 k→* L+1은 비밀리에 복호 장치(300)에 송신되지만, 키 정보 k→* L+1을 비밀리에 복호 장치(300)에 송신하는 방법에 관해서는, 어떠한 방법이더라도 상관없다. 예컨대, 종래의 암호 처리를 사용하여 송신하더라도 좋다.
이상과 같이, 암호 처리 시스템(10)이 실현하는 암호 처리는, 비특허 문헌 18에서 제안되어 있는 암호 처리보다 안전성이 높고, 표준의 모델(Standard Model)에 있어서의 안전성을 증명할 수 있다.
이 이유는, 주로 이하의 (1), (2) 때문이다.
암호화 장치(200)가 송신 정보를 설정하는 기저 벡터 dn +1이 2차원(기저 벡터 bn+1과 기저 벡터 bn +2)이다. 이에 의해, 기저 벡터 dn +1에 대응하는 키 벡터 k* L, dec에 있어서의 기저 벡터 b* n+1과 기저 벡터 b* n+2에 대한 계수를 랜덤으로 선택하는 것이 가능해진다. 또한, 기저 벡터 dn +1이 공개되는 것뿐이며, 기저 벡터 bn +1과 기저 벡터 bn +2는 비밀로 되어 있다.
(2) 키 위양 장치(400)가 하위의 키를 생성하는 경우에, 랜덤화 벡터를 이용하여 생성한다. 이에 의해, 하위의 키의 소정의 기저 벡터에 대한 계수를 랜덤화할 수 있어, 하위의 키를 생성하는 것에 의해, 키의 안전성이 열화되지 않는다.
여기서, 랜덤화 벡터를 이용하지 않는 경우, 키 정보 k→* L로부터 생성되는 2개의 하위의 키 벡터 k* L+1, dec(A)와 키 벡터 k* L+1, dec(B)는, 수학식 181과 같이 된다.
[수학식 181]
Figure 112012042794047-pct00082
다시 말해, 랜덤화 벡터를 이용하지 않는 경우, 키 벡터 k* L, dec에 포함되는 술어 정보가 설정된 기저 벡터 b* i(i=1, …, μL)의 계수는, 키 벡터 k* L+1, dec(A)와 키 벡터 k* L+1, dec(B)의 사이에서 공통이 되어 버린다.
그러나, 랜덤화 벡터를 이용하는 경우, 키 정보 k→* L로부터 생성되는 2개의 하위의 키 벡터 k* L+1, dec(A)와 키 벡터 k* L+1, dec(B)는, 수학식 182와 같이 된다.
[수학식 182]
Figure 112012042794047-pct00083
다시 말해, 랜덤화 벡터를 이용하는 경우, 키 벡터 k* L+1, dec(A)에는, 난수 αA, i로 계수의 값을 균등하게 분포한 랜덤화 벡터 k* L, ran , i가 더해지고, 키 벡터 k* L+1, dec(B)에는, 난수 αB, i로 계수의 값을 균등하게 분포한 랜덤화 벡터 k* L, ran , i가 더해진다. 여기서, 랜덤화 벡터 k* L, ran , i에는, 기저 벡터 b* i(i=1, …, μL)가 포함되어 있다. 따라서, 키 벡터 k* L+1, dec(A)와 키 벡터 k* L+1, dec(B)에 있어서의 기저 벡터 b* i(i=1, …, μL)의 계수의 값은 균등하게 분포하고 있다. 다시 말해, 키 벡터 k* L+1, dec(A)와 키 벡터 k* L+1, dec(B)에 있어서, 술어 정보가 설정된 기저 벡터 b* i(i=1, …, μL)의 계수는 다르다.
또, 이상의 설명에서는, 암호화 장치(200)가 송신 정보를 설정하는 기저 벡터 dn +1을 2차원으로 했다. 그러나, 기저 벡터 dn +1은 3차원 이상의 m차원(기저 벡터 bn+1, …, 기저 벡터 bn +m)이더라도 좋다.
이 경우에는, (S301)에 있어서, 마스터 키 생성부(110)는, N=n+m+1로 한다. 또한, 키 벡터 k* L, dec 생성 단계(S302)에 있어서, 키 벡터 생성부(130)는, 기저 벡터 bn +1, …, 기저 벡터 bn +m에 대한 계수의 합이 1이 되도록, 기저 벡터 bn +1, …, 기저 벡터 bn +m에 대한 계수를 설정한다. 또한, 랜덤화 벡터 k* L, ran , j 생성 단계(S303)에 있어서, 랜덤화 벡터 생성부(140)는, 기저 벡터 bn +1, …, 기저 벡터 bn +m에 대한 계수의 합이 0이 되도록, 기저 벡터 bn +1, …, 기저 벡터 bn +m에 대한 계수를 설정한다. 마찬가지로, 키 생성 벡터 k* L, del , j 생성 단계(S304)에 있어서, 키 생성용 벡터 생성부(150)는, 기저 벡터 bn +1, …, 기저 벡터 bn +m에 대한 계수의 합이 0이 되도록, 기저 벡터 bn +1, …, 기저 벡터 bn +m에 대한 계수를 설정한다. 또한, 암호 벡터 c1 생성 단계(S402)에 있어서, 암호 벡터 생성부(220)는, 기저 벡터 bn +m+1에 대한 계수로서 난수를 설정하여 벡터 rv를 생성한다.
또한, 상기 설명에서는, N(=n+3)차원 벡터 공간에서 암호 처리를 실현했지만, 권한 위양이 없는 암호 처리이면, n은 1 이상의 정수이다. 따라서, N은 4 이상의 정수이다. 또한, 권한 위양을 갖는 암호 처리이면, n은 2 이상의 정수이다. 따라서, N은 5 이상의 정수이다. 또, 상술한 것처럼, (S402)에 있어서, 암호화 장치(200)가 기저 벡터 bn +3을 이용하여, 벡터 rv를 생성하는 것은 필수는 아니다. 벡터 rv를 생성하지 않는 것이면, N(=n+2)차원 벡터 공간에서 암호 처리를 실현할 수 있다. 따라서, 권한 위양이 없는 암호 처리이면, N은 3 이상의 정수이며, 권한 위양을 갖는 암호 처리이면, N은 4 이상의 정수이다.
또한, 상술한 암호 처리에서는, 쌍대 페어링 벡터 공간인 것의 조건에 포함되어 있던 디스토션 사상을 이용하고 있지 않다. 디스토션 사상에 대해서는, 암호 처리를 실현하는 알고리즘에서는 사용하지 않고, 암호 처리의 안전성을 증명하기 위해 사용한다. 따라서, 상술한 암호 처리는, 디스토션 사상이 없는 공간이더라도 성립한다고 할 수 있다. 즉, 상술한 암호 처리를 실현하는 공간에 디스토션 사상이 있는 것은, 필수는 아니다. 이하에 설명하는 암호 처리에 대해서도 같다.
또한, 상기 설명에서는, 계층적 술어 암호에 대하여 설명했다. 다음으로, 계층적 술어 키 비닉 방식에 대하여 설명한다. 계층적 술어 키 비닉 방식에 대하여, 상술한 계층적 술어 암호와 다른 부분만을 설명한다.
도 17은 계층적 술어 키 비닉 방식을 실현하는 암호 처리 시스템(10)의 기능을 나타내는 기능 블록도이다.
여기서, 키 생성 장치(100)의 처리와 키 위양 장치(400)의 처리는, 상술한 계층적 술어 암호의 경우와 같다. 그래서, 여기에서는, 암호화 장치(200)의 처리와 복호 장치(300)의 처리만을 설명한다.
도 18은 암호화 장치(200)의 동작을 나타내는 플로우차트이다. 도 19는 복호 장치(300)의 동작을 나타내는 플로우차트이다.
암호화 장치(200)의 기능과 동작에 대하여 설명한다.
도 17에 나타내는 암호화 장치(200)는, 도 11에 나타내는 암호화 장치(200)가 구비하는 기능에 더하여, 세션 키 생성부(260)를 구비한다. 또, 도 17에 나타내는 암호화 장치(200)는, 도 11에 나타내는 암호화 장치(200)가 구비하는 암호 정보 생성부(230)는 구비하지 않고 있다.
(S701)과 (S702)는, (S401)과 (S402)와 같다.
(S703 : 데이터 송신 단계)에서는, (S702)에서 암호 벡터 생성부(220)가 생성한 암호 벡터 c1을 복호 장치(300)에 통신 장치를 통해 송신한다. 다시 말해, 계층적 술어 키 비닉 방식에서는, 평문 정보 m을 삽입한 암호 정보 c2는 생성되지 않고, 복호 장치(300)에 송신되지 않는다.
(S704 : 세션 키 생성 단계)에서는, 세션 키 생성부(260)가 수학식 183을 처리 장치에 의해 계산하여 세션 키 K를 생성한다.
[수학식 183]
Figure 112012042794047-pct00084
즉, 암호화 장치(200)는, 수학식 184에 나타내는 Enc 알고리즘을 실행하여, 암호 벡터 c1과 세션 키 K를 생성한다.
[수학식 184]
Figure 112012042794047-pct00085
복호 장치(300)의 기능과 동작에 대하여 설명한다.
도 17에 나타내는 복호 장치(300)는, 도 11에 나타내는 복호 장치(300)와 같은 기능 구성이다.
(S801 : 벡터 입력 단계)
벡터 입력부(310)는, 암호화 장치(200)의 데이터 송신부(240)가 송신한 암호 벡터 c1을 통신 장치를 통해 수신하여 입력한다.
(S802 : 복호 단계)
페어링 연산부(330)는, 마스터 공개 키 pk와 제 L 층째의 비밀 키의 선두 요소인 키 벡터 k* L, dec에 근거하여, 수학식 185를 처리 장치에 의해 계산하여 세션 키 K를 생성한다.
[수학식 185]
Figure 112012042794047-pct00086
다시 말해, 페어링 연산부(330)는, 벡터 입력부(310)가 입력한 암호 벡터 c1과, 키 벡터 기억부(320)가 기억 장치에 기억한 키 벡터 k* L, dec에 대하여, 페어링 연산 e를 처리 장치에 의해 행한다. 이에 의해, 페어링 연산부(330)는, 암호화 장치(200)가 삽입한 ζ에 관한 값인 gζ T(=K)를 계산한다.
즉, 복호 장치(300)는, 수학식 186에 나타내는 Dec 알고리즘을 실행하여, 세션 키 K'(=K)를 생성한다.
[수학식 186]
Figure 112012042794047-pct00087
이상과 같이, 계층적 술어 키 비닉 방식에 의하면, 암호화 장치(200)로부터 복호 장치(300)에, 세션 키 K를 비밀리에 송신할 수 있다. 다시 말해, 암호화 장치(200)와 복호 장치(300)의 사이에서 세션 키를 공유할 수 있다.
실시의 형태 3.
실시의 형태 3에서는, 실시의 형태 2에서 설명한 계층적 술어 암호와 계층적 술어 키 비닉 방식보다 일반화된 권한 위양을 갖는 술어 암호에 대하여 설명한다.
상술한 것처럼, 실시의 형태 2에서 설명한 계층적 술어 암호와 계층적 술어 키 비닉 방식에서는, 도 16에 나타내는 바와 같이 기저 벡터를 사용했다. 다시 말해, n+3개의 기저 벡터 중, n개의 기저 벡터를 속성 벡터나 술어 벡터를 위한 기저 벡터로서, 계층 구조를 나타내기 위해 사용했다. 특히, 처음의 μ1개의 기저 벡터를 제 1 층째의 속성 벡터나 술어 벡터를 위한 기저 벡터로 하고, μ21개의 기저 벡터를 제 2 층째의 속성 벡터나 술어 벡터를 위한 기저 벡터로 하고, 이하 마찬가지로, μLL-1개의 기저 벡터를 제 L 층째의 속성 벡터나 술어 벡터를 위한 기저 벡터로 했다.
그리고, 제 L 층째의 키 벡터 k* L, dec를 수학식 164에 나타내는 바와 같이 계산했다. 다시 말해, 제 L 층째의 키 벡터 k* L, dec는, 기저 벡터 b* i(i=1, …, L)에 대한 계수로서 술어 벡터의 각 요소가 할당되고, 기저 벡터 b* i(i=L+1, …, n)에 대한 계수로서 0이 할당되었다.
또한, 제 L 층째의 암호 벡터 c1을 수학식 170에 나타내는 바와 같이 계산했다. 다시 말해, 제 L 층째의 암호 벡터 c1은, 기저 벡터 bi(i=1, …, L)에 대한 계수로서 속성 벡터의 각 요소가 할당되고, 기저 벡터 bi(i=L+1, …, n)에 대한 계수로서 난수가 할당되었다.
이에 의해, 계층적으로 권한 위양하는 것이 실현되었다.
실시의 형태 3에서 설명하는 술어 암호(술어 키 비닉 방식)에서는, 실시의 형태 2의 경우와 같이, n+3개의 기저 벡터 중, n개의 기저 벡터를 속성 벡터나 술어 벡터를 위한 기저 벡터로서 사용한다. 그러나, 어느 키이더라도(상위의 키이더라도, 하위의 키이더라도), n개의 기저 벡터 모두를 술어 벡터를 위한 기저 벡터로 한다. 다시 말해, n개의 기저 벡터 모두를 항상 속성 벡터나 술어 벡터를 위한 기저 벡터로 한다.
그리고, 키 벡터 k* L, dec는, 기저 벡터 b* i(i=1, …, n)에 대한 계수로서 술어 벡터의 각 요소가 할당된다. 또한, 제 L 층째의 암호 벡터 c1은, 기저 벡터 bi(i=1, …, n)에 대한 계수로서 속성 벡터의 각 요소가 할당된다.
다시 말해, n개의 기저 벡터에 대하여 계층 구조라고 하는 개념은 없다. 또한, 비밀 키가 계층적으로 권한 위양되는 개념은 없다. 그 때문에, 실시의 형태 2에서 설명한 암호 방식에 비하여, 보다 자유도가 높은 권한 위양이 가능해진다.
우선, 권한 위양을 갖는 술어 암호를 실현하는 경우에 대하여 설명한다.
도 20은 권한 위양을 갖는 술어 암호를 실현하는 암호 처리 시스템(10)의 기능을 나타내는 기능 블록도이다. 또, 도 20에 나타내는 암호 처리 시스템(10)이 구비하는 기능은, 도 11에 나타내는 암호 처리 시스템(10)이 구비하는 기능과 같다.
권한 위양을 갖는 술어 암호를 실현하는 경우에 있어서의 실시의 형태 3에 따른 암호 처리 시스템(10)의 동작의 흐름은, 실시의 형태 2에 따른 암호 처리 시스템(10)의 동작의 흐름과 같다. 그래서, 도 20과, 도 12로부터 도 16에 근거하여, 실시의 형태 3에 따른 암호 처리 시스템(10)의 기능과 동작에 대하여 설명한다.
키 생성 장치(100)의 기능과 동작에 대하여 설명한다.
(S301 : 마스터 키 생성 단계)
실시의 형태 2에 있어서의 (S301)과 같이, 마스터 키 생성부(110)는, 수학식 187을 계산하여, 마스터 공개 키 pk와 마스터 비밀 키 sk를 처리 장치에 의해 생성하여 마스터 키 기억부(120)에 기억한다.
[수학식 187]
Figure 112012042794047-pct00088
(S302 : 키 벡터 k* L, dec 생성 단계)
키 벡터 생성부(130)는, 마스터 공개 키 pk와 마스터 비밀 키 sk와, 수학식 188에 나타내는 술어 벡터(v 1, …, v L)에 근거하여, 수학식 189를 계산하여, 제 L 층째(레벨 L)의 비밀 키의 선두 요소인 키 벡터 k* L, dec를 처리 장치에 의해 생성한다.
[수학식 188]
Figure 112012042794047-pct00089
[수학식 189]
Figure 112012042794047-pct00090
(S303 : 랜덤화 벡터 k* L, ran , j 생성 단계)
랜덤화 벡터 생성부(140)는, 마스터 공개 키 pk와 마스터 비밀 키 sk와, 수학식 188에 나타내는 술어 벡터(v 1, …, v L)에 근거하여, 수학식 190을 계산하여, 랜덤화 벡터 k* L, ran , j(j=1, …, L+1)를 생성한다.
[수학식 190]
Figure 112012042794047-pct00091
(S304 : 키 생성용 벡터 k* L, del , j 생성 단계)
키 생성용 벡터 생성부(150)는, 마스터 공개 키 pk와 마스터 비밀 키 sk와, 수학식 188에 나타내는 술어 벡터(v 1, …, v L)에 근거하여, 수학식 191을 계산하여, 키 생성용 벡터 k* L, del , j(j=1, …, n)를 처리 장치에 의해 생성한다.
[수학식 191]
Figure 112012042794047-pct00092
즉, (S302)로부터 (S304)에 있어서, 키 벡터 생성부(130)와 랜덤화 벡터 생성부(140)와 키 생성용 벡터 생성부(150)는, 수학식 192에 나타내는 GenKey 알고리즘을 처리 장치에 의해 실행한다. 이에 의해, 키 벡터 k* L, dec와, 랜덤화 벡터 k* L, ran, j(j=1, …, L+1)와, 키 생성용 벡터 k* L, del , j(j=1, …, n)를 포함하는 제 L 층째의 비밀 키(키 정보 k→* L)가 생성된다.
[수학식 192]
Figure 112012042794047-pct00093
(S305 : 키 배포 단계)
실시의 형태 2에 있어서의 (S305)와 같이, 키 배포부(160)는, 마스터 키 생성부(110)가 생성한 마스터 공개 키와, 키 벡터 생성부(130)와 랜덤화 벡터 생성부(140)와 키 생성용 벡터 생성부(150)가 생성한 키 정보 k→* L을 복호 장치(300)에 통신 장치를 통해 송신한다. 또한, 키 배포부(160)는, 마스터 공개 키를 암호화 장치(200)에 통신 장치를 통해 송신한다.
암호화 장치(200)의 기능과 동작에 대하여 설명한다.
(S401 : 송신 정보 설정 단계)
실시의 형태 2에 있어서의 (S401)과 같이, 송신 정보 설정부(210)는, 마스터 공개 키 pk에 근거하여, 수학식 193을 처리 장치에 의해 계산하여 송신 정보 벡터 ζv를 생성한다.
[수학식 193]
Figure 112012042794047-pct00094
(S402 : 암호 벡터 c1 생성 단계)
암호 벡터 생성부(220)는, 마스터 공개 키 pk와, 수학식 194에 나타내는 속성 벡터(x 1, …, x L)에 근거하여, 수학식 195를 처리 장치에 의해 계산하여 암호 벡터 c1을 생성한다.
[수학식 194]
Figure 112012042794047-pct00095
[수학식 195]
Figure 112012042794047-pct00096
(S403 : 암호 정보 c2 생성 단계)
실시의 형태 2에 있어서의 (S403)과 같이, 암호 정보 생성부(230)는, 평문 정보 m에 근거하여, 수학식 196을 처리 장치에 의해 계산하여 암호 정보 c2를 생성한다.
[수학식 196]
Figure 112012042794047-pct00097
(S404 : 데이터 송신 단계)
실시의 형태 2에 있어서의 (S404)와 같이, 데이터 송신부(240)는, 암호 벡터 생성부(220)가 생성한 암호 벡터 c1과, 암호 정보 생성부(230)가 생성한 암호 정보 c2를 복호 장치(300)에 통신 장치를 통해 송신한다.
즉, 암호화 장치(200)는, 수학식 197에 나타내는 Enc 알고리즘을 실행하여, 암호 벡터 c1과 암호 정보 c2를 생성한다.
[수학식 197]
Figure 112012042794047-pct00098
복호 장치(300)의 기능과 동작에 대하여 설명한다.
(S501 : 벡터 입력 단계)
실시의 형태 2에 있어서의 (S501)과 같이, 벡터 입력부(310)는, 암호화 장치(200)의 데이터 송신부(240)가 송신한 암호 벡터 c1과 암호 정보 c2를 통신 장치를 통해 수신하여 입력한다.
(S502 : 복호 단계)
실시의 형태 2에 있어서의 (S502)와 같이, 페어링 연산부(330)는, 마스터 공개 키 pk와 제 L 층째의 비밀 키의 선두 요소인 키 벡터 k* L, dec에 근거하여, 수학식 198을 처리 장치에 의해 계산하여 평문 정보 m'를 생성한다.
[수학식 198]
Figure 112012042794047-pct00099
여기서, 암호화 장치(200)가 암호화에 이용한 속성 벡터 x i(i=1, …, h)와, 복호 장치(300)가 복호에 이용한 키 벡터의 술어 벡터 v j(j=1, …, L)에 대하여, 모든 i(i=1, …, h), j(j=1, …, L)에 대하여 x iㆍv j=0이라면, 페어링 연산부(330)는, 평문 정보 m을 생성할 수 있다. 또, 평문 정보 m∈GT인 것으로 한다.
다시 말해, 복호 장치(300)는, 수학식 199에 나타내는 Dec 알고리즘을 실행하여, 평문 정보 m'를 생성한다.
[수학식 199]
Figure 112012042794047-pct00100
키 위양 장치(400)의 기능과 동작에 대하여 설명한다.
(S601 : 키 정보 k→* L 취득 단계)
실시의 형태 2에 있어서의 (S601)과 같이, 키 벡터 취득부(410)는, 제 L 층째의 비밀 키의 선두 요소인 키 벡터 k* L, dec와, 랜덤화 벡터 k* L, ran , j(j=1, …, L+1)와, 키 생성용 벡터 k* L, del , j(j=1, …, n)를 포함하는 제 L 층째의 비밀 키(키 정보 k→* L)를 통신 장치를 통해 취득한다.
(S602 : 키 벡터 k* L+1, dec 생성 단계)
키 벡터 생성부(420)는, 마스터 공개 키 pk와 키 정보 k→* L과 수학식 200에 나타내는 술어 벡터 v L+1에 근거하여, 수학식 201을 계산하여, 제 L+1 층째의 비밀 키의 선두 요소인 키 벡터 k* L+1, dec를 처리 장치에 의해 생성한다.
[수학식 200]
Figure 112012042794047-pct00101
[수학식 201]
Figure 112012042794047-pct00102
(S603 : 랜덤화 벡터 k* L+1, ran , j 생성 단계)
랜덤화 벡터 생성부(430)는, 마스터 공개 키 pk와 키 정보 k→* L과 수학식 200에 나타내는 술어 벡터 v L+1에 근거하여, 수학식 202를 계산하여, 랜덤화 벡터 k* L+1, ran , j(j=1, …, L+2)를 생성한다.
[수학식 202]
Figure 112012042794047-pct00103
(S604 : 키 생성용 벡터 k* L+1, del , j 생성 단계)
키 생성용 벡터 생성부(440)는, 마스터 공개 키 pk와 키 정보 k→* L과 수학식 200에 나타내는 술어 벡터 v L+1에 근거하여, 수학식 203을 계산하여, 키 생성용 벡터 k* L+1, del , j(j=1, …, n)를 처리 장치에 의해 생성한다.
[수학식 203]
Figure 112012042794047-pct00104
즉, (S602)로부터 (S604)에 있어서, 키 벡터 생성부(420)와 랜덤화 벡터 생성부(430)와 키 생성용 벡터 생성부(440)는, 수학식 204에 나타내는 DelegateL 알고리즘을 실행하여, 키 벡터 k* L+1, dec와, 랜덤화 벡터 k* L+1, ran , j(j=1, …, L+2)와, 키 생성용 벡터 k* L+1, del , j(j=1, …, n)를 포함하는 제 L+1 층째의 비밀 키(키 정보 k→* L+1)를 처리 장치에 의해 생성한다.
[수학식 204]
Figure 112012042794047-pct00105
(S605 : 키 배포 단계)
실시의 형태 2에 있어서의 (S605)와 같이, 키 배포부(450)는, 키 벡터 생성부(420)와 랜덤화 벡터 생성부(430)와 키 생성용 벡터 생성부(440)가 생성한 키 정보 k→* L+1을 하위의 복호 장치(300)에 통신 장치를 통해 송신한다.
상술한 것처럼, 암호화 장치(200)가 암호화에 이용한 속성 벡터 x i(i=1, …, h)와, 복호 장치(300)가 복호에 이용한 키 벡터 k* L, dec의 술어 벡터 v j(j=1, …, L)에 대하여, 모든 i(i=1, …, h), j(j=1, …, L)에 대하여 x iㆍv j=0이라면, 복호 장치(300)는 복호할 수 있다. 다시 말해, 술어 벡터(v 1)에 근거하여 생성된 키 벡터 k* 1, dec로 복호하는 경우, xㆍv 1=0이라면, 복호 장치(300)는 복호할 수 있다. 또한, 술어 벡터(v 1, v 2)에 근거하여 생성된 키 벡터 k* 2, dec로 복호하는 경우, xㆍv 1=0, 또한 xㆍv 2=0이라면, 복호 장치(300)는 복호할 수 있다. 다시 말해, 실시의 형태 2에서 설명한 알고리즘과 같이, 하위의 키 벡터 k* 2, dec는, 상위의 키 벡터 k* 1, dec보다 기능이 제한되어 있다.
또, 실시의 형태 2와 같이, 이상의 설명에서는, 암호화 장치(200)가 송신 정보를 설정하는 기저 벡터 dn +1을 2차원으로 했다. 그러나, 기저 벡터 dn +1은 3차원 이상의 m차원(기저 벡터 bn +1, …, 기저 벡터 bn +m)이더라도 좋다.
또한, 실시의 형태 2와 같이, 암호화 장치(200)가 실행하는 Enc 알고리즘과, 복호 장치(300)가 실행하는 Dec 알고리즘을, 각각 수학식 205와 수학식 206과 같이 변경하는 것에 의해, 계층적 술어 키 비닉 방식을 실현하는 것도 가능하다.
[수학식 205]
Figure 112012042794047-pct00106
[수학식 206]
Figure 112012042794047-pct00107
실시의 형태 4.
이상의 실시의 형태에서는, 쌍대 벡터 공간에 있어서 암호 처리를 실현하는 방법에 대하여 설명했다. 이 실시의 형태에서는, 쌍대 가군(dual module)에 있어서 암호 처리를 실현하는 방법에 대하여 설명한다.
다시 말해, 이상의 실시의 형태에서는, 소수 위수 q의 순회군에 있어서 암호 처리를 실현했다. 그러나, 합성수 M을 이용하여 수학식 207과 같이 환 R을 나타낸 경우, 환 R을 계수로 하는 가군에 있어서도, 상기 실시의 형태에서 설명한 암호 처리를 적용할 수 있다.
[수학식 207]
Figure 112012042794047-pct00108
예컨대, 실시의 형태 2에서 설명한 계층적 술어 암호를, 환 R을 계수로 하는 가군에 있어서 실현하면 수학식 208로부터 수학식 212와 같이 된다.
[수학식 208]
Figure 112012042794047-pct00109
[수학식 209]
Figure 112012042794047-pct00110
[수학식 210]
Figure 112012042794047-pct00111
[수학식 211]
Figure 112012042794047-pct00112
[수학식 212]
Figure 112012042794047-pct00113
여기에서는, 실시의 형태 2에서 설명한 계층적 술어 암호에 대해서만, 환 R을 계수로 하는 가군에 있어서 실현하는 방법을 나타냈다. 그러나, 원칙적으로, 이상의 실시의 형태에서 체(field) Fq로서 설명한 처리를, 환 R로 치환하는 것에 의해, 이상의 실시의 형태에서 설명한 다른 암호 처리에 대해서도, 환 R을 계수로 하는 가군에 있어서 실현할 수 있다.
다음으로, 실시의 형태에 있어서의 암호 처리 시스템(10)(키 생성 장치(100), 암호화 장치(200), 복호 장치(300), 키 위양 장치(400))의 하드웨어 구성에 대하여 설명한다.
도 21은 키 생성 장치(100), 암호화 장치(200), 복호 장치(300), 키 위양 장치(400)의 하드웨어 구성의 일례를 나타내는 도면이다.
도 21에 나타내는 바와 같이, 키 생성 장치(100), 암호화 장치(200), 복호 장치(300), 키 위양 장치(400)는, 프로그램을 실행하는 CPU(911)(Central Processing Unit, 중앙 처리 장치, 처리 장치, 연산 장치, 마이크로 프로세서, 마이크로 컴퓨터, 프로세서라고도 한다)를 구비하고 있다. CPU(911)는, 버스(912)를 통해 ROM(913), RAM(914), LCD(901)(Liquid Crystal Display), 키보드(902)(K/B), 통신 보드(915), 자기 디스크 장치(920)와 접속되고, 이들 하드웨어 디바이스를 제어한다. 자기 디스크 장치(920)(고정 디스크 장치) 대신에, 광 디스크 장치, 메모리 카드 판독 기록 장치 등의 기억 장치이더라도 좋다. 자기 디스크 장치(920)는, 소정의 고정 디스크 인터페이스를 통해 접속된다.
ROM(913), 자기 디스크 장치(920)는, 비휘발성 메모리의 일례이다. RAM(914)은, 휘발성 메모리의 일례이다. ROM(913)과 RAM(914)과 자기 디스크 장치(920)는, 기억 장치(메모리)의 일례이다. 또한, 키보드(902), 통신 보드(915)는, 입력 장치의 일례이다. 또한, 통신 보드(915)는, 통신 장치(네트워크 인터페이스)의 일례이다. 또한, LCD(901)는, 표시 장치의 일례이다.
자기 디스크 장치(920) 또는 ROM(913) 등에는, 오퍼레이팅 시스템(921)(OS), 윈도우 시스템(922), 프로그램군(923), 파일군(924)이 기억되어 있다. 프로그램군(923)의 프로그램은, CPU(911), 오퍼레이팅 시스템(921), 윈도우 시스템(922)에 의해 실행된다.
프로그램군(923)에는, 상기의 설명에 있어서 「마스터 키 생성부(110)」, 「마스터 키 기억부(120)」, 「키 벡터 생성부(130)」, 「랜덤화 벡터 생성부(140)」, 「키 생성용 벡터 생성부(150)」, 「키 배포부(160)」, 「송신 정보 설정부(210)」, 「암호 벡터 생성부(220)」, 「암호 정보 생성부(230)」, 「데이터 송신부(240)」, 「공개 키 취득부(250)」, 「세션 키 생성부(260)」, 「벡터 입력부(310)」, 「키 벡터 기억부(320)」, 「페어링 연산부(330)」, 「키 벡터 취득부(410)」, 「키 벡터 생성부(420)」, 「랜덤화 벡터 생성부(430)」, 「키 생성용 벡터 생성부(440)」, 「키 배포부(450)」 등으로서 설명한 기능을 실행하는 소프트웨어나 프로그램이나 그 외의 프로그램이 기억되어 있다. 프로그램은, CPU(911)에 의해 판독되어 실행된다.
파일군(924)에는, 상기의 설명에 있어서 「마스터 공개 키 pk」, 「마스터 비밀 키 sk」, 「암호 벡터 c」, 「키 벡터」 등의 정보나 데이터나 신호치나 변수치나 파라미터가, 「파일」이나 「데이터베이스」의 각 항목으로서 기억된다. 「파일」이나 「데이터베이스」는, 디스크나 메모리 등의 기록 매체에 기억된다. 디스크나 메모리 등의 기억 매체에 기억된 정보나 데이터나 신호치나 변수치나 파라미터는, 판독 기록 회로를 통해 CPU(911)에 의해 메인 메모리나 캐시 메모리에 판독되어, 추출ㆍ검색ㆍ참조ㆍ비교ㆍ연산ㆍ계산ㆍ처리ㆍ출력ㆍ인쇄ㆍ표시 등의 CPU(911)의 동작에 이용된다. 추출ㆍ검색ㆍ참조ㆍ비교ㆍ연산ㆍ계산ㆍ처리ㆍ출력ㆍ인쇄ㆍ표시의 CPU(911)의 동작 중, 정보나 데이터나 신호치나 변수치나 파라미터는, 메인 메모리나 캐시 메모리나 버퍼 메모리에 일시적으로 기억된다.
또한, 상기의 설명에 있어서의 플로우차트의 화살표의 부분은 주로 데이터나 신호의 입출력을 나타내고, 데이터나 신호치는, RAM(914)의 메모리, 그 외의 광 디스크 등의 기록 매체나 IC 칩에 기록된다. 또한, 데이터나 신호는, 버스(912)나 신호선이나 케이블, 그 외의 전송 매체나 전파에 의해 온라인 전송된다.
또한, 상기의 설명에 있어서 「~부」로서 설명하는 것은, 「~회로」, 「~장치」, 「~기기」, 「~수단」, 「~기능」이더라도 좋고, 또한, 「~단계」, 「~순서」, 「~처리」이더라도 좋다. 또한, 「~장치」로서 설명하는 것은, 「~회로」, 「~기기」, 「~수단」, 「~기능」이더라도 좋고, 또한, 「~단계」, 「~순서」, 「~처리」이더라도 좋다. 또한, 「~처리」로서 설명하는 것은 「~단계」이더라도 상관없다. 즉, 「~부」로서 설명하는 것은, ROM(913)에 기억된 펌웨어로 실현되고 있더라도 상관없다. 혹은, 소프트웨어만, 혹은, 소자ㆍ디바이스ㆍ기판ㆍ배선 등의 하드웨어만, 혹은, 소프트웨어와 하드웨어의 조합, 또한, 펌웨어와의 조합으로 실시되더라도 상관없다. 펌웨어와 소프트웨어는, 프로그램으로서, ROM(913) 등의 기록 매체에 기억된다. 프로그램은 CPU(911)에 의해 판독되어, CPU(911)에 의해 실행된다. 즉, 프로그램은, 상기에서 말한 「~부」로서 컴퓨터 등을 기능시키는 것이다. 혹은, 상기에서 말한 「~부」의 순서나 방법을 컴퓨터 등에 실행시키는 것이다.
10 : 암호 처리 시스템
100 : 키 생성 장치
110 : 마스터 키 생성부
120 : 마스터 키 기억부
130 : 키 벡터 생성부
140 : 랜덤화 벡터 생성부
150 : 키 생성용 벡터 생성부
160 : 키 배포부
200 : 암호화 장치
210 : 송신 정보 설정부
220 : 암호 벡터 생성부
230 : 암호 정보 생성부
240 : 데이터 송신부
250 : 공개 키 취득부
260 : 세션 키 생성부
300 : 복호 장치
310 : 벡터 입력부
320 : 키 벡터 기억부
330 : 페어링 연산부
400 : 키 위양 장치
410 : 키 벡터 취득부
420 : 키 벡터 생성부
430 : 랜덤화 벡터 생성부
440 : 키 생성용 벡터 생성부
450 : 키 배포부

Claims (32)

  1. 수학식 1에 나타내는 페어링 연산(pairing operation)에 의해 관련지어진 쌍대 벡터 공간(dual vector spaces)인 공간 V와 공간 V*를 이용하여 술어 암호 처리를 행하는 암호 처리 시스템으로서,
    상기 공간 V에 있어서의 소정의 기저 B를 구성하는 기저 벡터 bi(i=1, …, n, …, N)(N은 3 이상의 정수, n은 1 이상 N-2 이하의 정수)의 기저 벡터 bi(i=1, …, n)와, 기저 벡터 bi(i=n+1, …, N) 중 2개 이상의 기저 벡터 bi(i=n+1, …, m)의 합인 기저 벡터 dn +1을 기저 벡터로서 갖는 기저 B^에 있어서의 벡터로서, 기저 벡터 bi(i=1, …, n) 중 적어도 일부의 기저 벡터에 대한 계수로서 속성 정보를 삽입하는 것과 아울러, 상기 기저 벡터 dn +1에 대한 계수로서 소정의 정보를 삽입한 벡터를 암호 벡터 c1로서 처리 장치에 의해 생성하는 암호화 장치와,
    상기 공간 V*의 기저 B*에 있어서의 벡터로서, 기저 B*를 구성하는 기저 벡터 b* i(i=1, …, n, …, N)의 기저 벡터 b* i(i=1, …, n) 중 적어도 일부의 기저 벡터에 대한 계수로서 술어 정보를 삽입하는 것과 아울러, 상기 기저 B*의 기저 벡터 b* i(i=n+1, …, m)에 대한 계수의 합이 1이 되도록, 상기 기저 벡터 b* i(i=n+1, …, m)에 대한 계수를 삽입한 벡터를 키 벡터 k* L, dec로 하여, 상기 암호화 장치가 생성한 암호 벡터 c1과 상기 키 벡터 k* L, dec에 대하여, 처리 장치에 의해 수학식 1에 나타내는 페어링 연산 e(c1, k* L, dec)를 행하고 상기 암호 벡터 c1을 복호하여 상기 소정의 정보에 관한 값을 추출하는 복호 장치
    를 구비하는 것을 특징으로 하는 암호 처리 시스템.

    [수학식 1]
    Figure 112012042794047-pct00114

  2. 제 1 항에 있어서,
    상기 암호 처리 시스템은, 상기 기저 B*를 구성하는 기저 벡터 b* i(i=1, …, N) 중, 기저 벡터 b* i(i=1, …, n)의 적어도 일부의 기저 벡터에 대한 계수로서 술어 정보를 설정함과 아울러, 기저 벡터 b* i(i=n+1, …, m)에 대한 계수의 합이 1이 되도록, 기저 벡터 b* i(i=n+1, …, m)에 대한 계수를 설정한 벡터를 키 벡터 k* L, dec로서 처리 장치에 의해 생성하는 키 생성 장치를 더 구비하고,
    상기 복호 장치는, 상기 키 생성 장치가 생성한 키 벡터 k* L, dec를 취득하여, 취득한 키 벡터 k* L, dec와 암호 벡터 c1에 대하여 상기 페어링 연산을 행하는
    것을 특징으로 하는 암호 처리 시스템.
  3. 제 2 항에 있어서,
    상기 암호 처리 시스템은, 상기 키 생성 장치가 생성한 키 벡터 k* L, dec가 복호 가능한 암호 벡터 중 일부의 암호 벡터를 복호 가능한 벡터로서, 술어 정보를 설정한 기저 벡터에 대한 계수로서 균등하게 분포시킨 값을 갖는 난수를 설정한 벡터를 키 벡터 k* L+1, dec로서 생성하는 키 위양 장치를 더 구비하는 것을 특징으로 하는 암호 처리 시스템.
  4. 술어 암호에 있어서의 비밀 키인 키 벡터 k* L, dec를 생성하는 키 생성 장치로서,
    페어링 연산에 의해 관련지어진 쌍대 벡터 공간인 공간 V와 공간 V* 중 상기 공간 V*에 있어서의 소정의 기저 B*를 기억 장치에 기억하는 마스터 키 기억부와,
    상기 마스터 키 기억부가 기억한 상기 기저 B*를 구성하는 기저 벡터 b* i(i=1, …, n, …, N)(N은 3 이상의 정수, n은 1 이상 N-2 이하의 정수) 중, 기저 벡터 b* i(i=1, …, n)의 적어도 일부의 기저 벡터 b* i(i=1, …, μL)에 대한 계수로서 술어 정보를 설정함과 아울러, 기저 벡터 b* i(i=n+1, …, N) 중 2개 이상의 소정의 기저 벡터에 대한 계수의 합이 1이 되도록, 상기 소정의 기저 벡터에 대한 계수를 설정한 벡터를 키 벡터 k* L, dec로서 처리 장치에 의해 생성하는 키 벡터 생성부
    를 구비하는 것을 특징으로 하는 키 생성 장치.
  5. 제 4 항에 있어서,
    상기 키 벡터 생성부는, 수학식 2에 나타내는 키 벡터 k* L, dec를 생성하는 것을 특징으로 하는 키 생성 장치.

    [수학식 2]
    Figure 112012042794047-pct00115

  6. 제 4 항에 있어서,
    상기 키 벡터 생성부는, 수학식 3에 나타내는 키 벡터 k* L, dec를 생성하는 것을 특징으로 하는 키 생성 장치.

    [수학식 3]
    Figure 112012042794047-pct00116

  7. 제 4 항에 있어서,
    상기 키 생성 장치는,
    상기 키 벡터 생성부가 생성한 키 벡터 k* L, dec로 복호 가능한 암호 벡터 중 일부의 암호 벡터를 복호 가능한 키 벡터 k* L+1, dec를 생성하기 위한 벡터로서, 적어도 j=μL+1, …, n의 각 j에 대하여, 기저 벡터 b* j에 대한 계수로서 소정의 값이 설정된 적어도 n-μL개의 벡터를 키 생성용 벡터 k* L, del , j로서 처리 장치에 의해 생성하는 키 생성용 벡터 생성부와,
    상기 키 생성용 벡터 생성부가 생성한 키 생성용 벡터 k* L, del , j로 생성되는 키 벡터 k* L+1, dec 중, 술어 정보가 설정되는 기저 벡터의 계수에 균등하게 분포한 값을 설정하기 위한 벡터로서, 적어도 j=1, …, L+1의 각 j에 대하여, 기저 벡터 b* j에 대한 계수로서 소정의 값이 설정된 적어도 L+1개의 벡터를 랜덤화 벡터 k* L, ran , j로서 처리 장치에 의해 생성하는 랜덤화 벡터 생성부
    를 더 구비하는 것을 특징으로 하는 키 생성 장치.
  8. 제 7 항에 있어서,
    상기 키 벡터 생성부는, 수학식 4에 나타내는 키 생성용 벡터 k* L, del , j를 생성하고,
    상기 랜덤화 벡터 생성부는, 수학식 5에 나타내는 랜덤화 벡터 k* L, ran , j를 생성하는
    것을 특징으로 하는 키 생성 장치.

    [수학식 4]
    Figure 112012042794047-pct00117

    [수학식 5]
    Figure 112012042794047-pct00118

  9. 제 7 항에 있어서,
    상기 키 벡터 생성부는, 수학식 6에 나타내는 키 생성용 벡터 k* L, del , j를 생성하고,
    상기 랜덤화 벡터 생성부는, 수학식 7에 나타내는 랜덤화 벡터 k* L, ran , j를 생성하는
    것을 특징으로 하는 키 생성 장치.

    [수 6]
    Figure 112012042794047-pct00119

    [수 7]
    Figure 112012042794047-pct00120

  10. 술어 암호에 있어서의 비밀 키인 키 벡터 k* L, dec로 복호 가능한 암호 벡터 중 일부의 암호 벡터를 복호 가능한 키 벡터 k* L+1, dec를 생성하는 키 위양 장치로서,
    페어링 연산에 의해 관련지어진 쌍대 벡터 공간인 공간 V와 공간 V* 중 상기 공간 V*에 있어서의 소정의 기저 B*를 구성하는 기저 벡터 b* i(i=1, …, n, …, N)(N은 3 이상의 정수, n은 1 이상 N-2 이하의 정수) 중, 기저 벡터 b* i(i=1, …, n)의 적어도 일부의 기저 벡터 b* i(i=1, …, μL)에 대한 계수로서 술어 정보가 설정되는 것과 아울러, 기저 벡터 b* i(i=n+1, …, N) 중 2개 이상의 소정의 기저 벡터에 대한 계수의 합이 1이 되도록, 상기 소정의 기저 벡터에 대한 계수가 설정된 키 벡터 k* L, dec를 취득하는 키 벡터 취득부와,
    적어도 j=μL+1, …, n의 각 j에 대하여, 기저 벡터 b* j에 대한 계수로서 소정의 값이 설정된 적어도 n-μL개의 키 생성용 벡터 k* L, del , j를 취득하는 키 생성용 벡터 취득부와,
    상기 키 생성용 벡터 취득부가 취득한 상기 키 생성용 벡터 k* L, del , j의 적어도 일부의 상기 키 생성용 벡터 k* L, del , j의 각 기저 벡터의 계수를 술어 정보배하고, 상기 키 벡터 취득부가 취득한 상기 키 벡터 k* L, dec에 가산하여 키 벡터 k* L+1, dec를 생성하는 키 벡터 생성부
    를 구비하는 것을 특징으로 하는 키 위양 장치.
  11. 제 10 항에 있어서,
    상기 키 위양 장치는, 적어도 j=1, …, L+1의 각 j에 대하여, 기저 벡터 b* j에 대한 계수로서 소정의 값이 설정된 적어도 L+1개의 랜덤화 벡터 k* L, ran , j를 취득하는 랜덤화 벡터 취득부를 더 구비하고,
    상기 키 벡터 생성부는, 상기 랜덤화 벡터 취득부가 취득한 상기 랜덤화 벡터 k* L, ran , j의 적어도 일부의 상기 랜덤화 벡터 k* L, ran , j의 각 기저 벡터의 계수를 난수배하고, 상기 키 벡터 k* L+1, dec에 더 가산하여 키 벡터 k* L+1, dec를 생성하는
    것을 특징으로 하는 키 위양 장치.
  12. 제 11 항에 있어서,
    상기 키 벡터 취득부는, 수학식 8에 나타내는 키 벡터 k* L, dec를 취득하고,
    상기 키 생성용 벡터 취득부는, 수학식 9에 나타내는 키 생성용 벡터 k* L, del , j를 취득하고,
    상기 랜덤화 벡터 취득부는, 수학식 10에 나타내는 랜덤화 벡터 k* L, ran , j를 취득하고,
    상기 키 벡터 생성부는, 수학식 11에 나타내는 키 벡터 k* L+1, dec를 생성하는
    것을 특징으로 하는 키 위양 장치.

    [수학식 8]
    Figure 112012042794047-pct00121

    [수학식 9]
    Figure 112012042794047-pct00122

    [수학식 10]
    Figure 112012042794047-pct00123

    [수학식 11]
    Figure 112012042794047-pct00124

  13. 제 11 항에 있어서,
    상기 키 벡터 취득부는, 수학식 12에 나타내는 키 벡터 k* L, dec를 취득하고,
    상기 키 생성용 벡터 취득부는, 수학식 13에 나타내는 키 생성용 벡터 k* L, del, j를 취득하고,
    상기 랜덤화 벡터 취득부는, 수학식 14에 나타내는 랜덤화 벡터 k* L, ran , j를 취득하고,
    상기 키 벡터 생성부는, 수학식 15에 나타내는 키 벡터 k* L+1, dec를 생성하는
    것을 특징으로 하는 키 위양 장치.

    [수학식 12]
    Figure 112012042794047-pct00125

    [수학식 13]
    Figure 112012042794047-pct00126

    [수학식 14]
    Figure 112012042794047-pct00127

    [수학식 15]
    Figure 112012042794047-pct00128

  14. 제 11 항에 있어서,
    상기 키 위양 장치는,
    상기 키 벡터 생성부가 생성한 키 벡터 k* L+1, dec로 복호 가능한 암호 벡터 중 일부의 암호 벡터를 복호 가능한 키 벡터 k* L+2, dec를 생성하기 위한 벡터로서, 적어도 j=μL+1+1, …, n의 각 j에 대하여, 기저 벡터 b* j에 대한 계수로서 소정의 값을 설정한 적어도 n-μL+1개의 벡터를 키 생성용 벡터 k* L+1, del , j로서 처리 장치에 의해 생성하는 키 생성용 벡터 생성부와,
    상기 키 생성용 벡터 생성부가 생성한 키 생성용 벡터 k* L+1, del , j로 생성되는 키 벡터 k* L+2, dec 중, 술어 정보가 설정되는 기저 벡터의 계수에 균등하게 분포한 값을 설정하기 위한 벡터로서, 적어도 j=1, …, L+2의 각 j에 대하여, 기저 벡터 b* j에 대한 계수로서 소정의 값을 설정한 적어도 L+2개의 벡터를 랜덤화 벡터 k* L+1, ran , j로서 처리 장치에 의해 생성하는 랜덤화 벡터 생성부
    를 더 구비하는 것을 특징으로 하는 키 위양 장치.
  15. 제 14 항에 있어서,
    상기 키 생성용 벡터 취득부는, 수학식 16에 나타내는 키 생성용 벡터 k* L, del, j를 취득하고,
    상기 랜덤화 벡터 취득부는, 수학식 17에 나타내는 랜덤화 벡터 k* L, ran , j를 취득하고,
    상기 키 벡터 생성부는, 수학식 18에 나타내는 키 생성용 벡터 k* L+1, del , j를 생성하고,
    상기 랜덤화 벡터 생성부는, 수학식 19에 나타내는 랜덤화 벡터 k* L+1, ran , j를 생성하는
    것을 특징으로 하는 키 위양 장치.

    [수학식 16]
    Figure 112012042794047-pct00129

    [수학식 17]
    Figure 112012042794047-pct00130

    [수학식 18]
    Figure 112012042794047-pct00131

    [수학식 19]
    Figure 112012042794047-pct00132

  16. 제 14 항에 있어서,
    상기 키 생성용 벡터 취득부는, 수학식 20에 나타내는 키 생성용 벡터 k* L, del, j를 취득하고,
    상기 랜덤화 벡터 취득부는, 수학식 21에 나타내는 랜덤화 벡터 k* L, ran , j를 취득하고,
    상기 키 벡터 생성부는, 수학식 22에 나타내는 키 생성용 벡터 k* L+1, del , j를 생성하고,
    상기 랜덤화 벡터 생성부는, 수학식 23에 나타내는 랜덤화 벡터 k* L+1, ran , j를 생성하는
    것을 특징으로 하는 키 위양 장치.

    [수학식 20]
    Figure 112012042794047-pct00133

    [수학식 21]
    Figure 112012042794047-pct00134

    [수학식 22]
    Figure 112012042794047-pct00135

    [수학식 23]
    Figure 112012042794047-pct00136

  17. 술어 암호에 있어서의 암호문인 암호 벡터 c1을 생성하는 암호화 장치로서,
    페어링 연산에 의해 관련지어진 쌍대 벡터 공간인 공간 V와 공간 V* 중 상기 공간 V에 있어서의 소정의 기저 B를 구성하는 기저 벡터 bi(i=1, …, n, …, N)(N은 3 이상의 정수, n은 1 이상 N-2 이하의 정수)의 기저 벡터 bi(i=1, …, n)와, 기저 벡터 bi(i=n+1, …, N) 중 2개 이상의 소정의 기저 벡터의 합인 기저 벡터 dn +1을 기저 벡터로서 갖는 기저 B^를 취득함과 아울러, 소정의 속성 정보를 취득하는 공개 키 취득부와,
    상기 공개 키 취득부가 취득한 기저 B^에 있어서의 벡터로서, 상기 기저 벡터 dn +1에 대한 계수로서 소정의 정보를 설정한 벡터를 송신 정보 벡터 ζv로서 처리 장치에 의해 생성하는 송신 정보 설정부와,
    상기 기저 B^의 상기 기저 벡터 bi(i=1, …, n) 중 적어도 일부의 기저 벡터에 대한 계수로서 속성 정보를 설정한 속성 정보 벡터를, 상기 송신 정보 설정부가 생성한 송신 정보 벡터 ζv에 가산하여 암호 벡터 c1을 처리 장치에 의해 생성하는 암호 벡터 생성부
    를 구비하는 것을 특징으로 하는 암호화 장치.
  18. 제 17 항에 있어서,
    상기 송신 정보 설정부는, 수학식 24에 나타내는 송신 정보 벡터 ζv를 생성하고,
    상기 암호 벡터 생성부는, 수학식 25에 나타내는 암호 벡터 c1을 생성하는
    것을 특징으로 하는 암호화 장치.

    [수학식 24]
    Figure 112012042794047-pct00137

    [수학식 25]
    Figure 112012042794047-pct00138

  19. 제 17 항에 있어서,
    상기 송신 정보 설정부는, 수학식 26에 나타내는 송신 정보 벡터 ζv를 생성하고,
    상기 암호 벡터 생성부는, 수학식 27에 나타내는 암호 벡터 c1을 생성하는
    것을 특징으로 하는 암호화 장치.

    [수학식 26]
    Figure 112012042794047-pct00139

    [수학식 27]
    Figure 112012042794047-pct00140

  20. 제 17 항에 있어서,
    상기 암호화 장치는, 수학식 28에 나타내는 암호 정보 c2를 생성하는 암호 정보 생성부를 더 구비하는 것을 특징으로 하는 암호화 장치.

    [수학식 28]
    Figure 112012042794047-pct00141

  21. 술어 암호에 있어서의 암호문을 복호하는 복호 장치로서,
    페어링 연산에 의해 관련지어진 쌍대 벡터 공간인 공간 V와 공간 V* 중 상기 공간 V에 있어서의 소정의 기저 B를 구성하는 기저 벡터 bi(i=1, …, n, …, N)(N은 3 이상의 정수, n은 1 이상 N-2 이하의 정수)의 기저 벡터 bi(i=1, …, n)와, 기저 벡터 bi(i=n+1, …, N) 중 2개 이상의 소정의 기저 벡터의 합인 기저 벡터 dn +1을 갖는 기저 B^에 있어서의 벡터로서, 기저 벡터 bi(i=1, …, n) 중 적어도 기저 벡터 bi(i=1, …, μh)에 대한 계수로서 속성 정보가 설정되는 것과 아울러, 상기 기저 벡터 dn +1에 대한 계수로서 소정의 정보가 설정된 벡터인 암호 벡터 c1을 입력하는 벡터 입력부와,
    상기 공간 V*에 있어서의 소정의 기저 B*의 기저 벡터 b* i(i=1, …, n, …, N) 중, 기저 벡터 b* i(i=1, …, n)의 적어도 기저 벡터 b* i(i=1, …, μL)(μL≤μh)에 대한 계수로서 술어 정보 vi(i=1, …, μL)가 설정되는 것과 아울러, 상기 기저 벡터 dn +1을 구성하는 기저 벡터 bi에 대응하는 기저 벡터 b* i에 대한 계수의 합이 1이 되도록, 상기 소정의 기저 벡터에 대한 계수가 설정된 키 벡터 k* L, dec를 기억 장치에 기억하는 키 벡터 기억부와,
    상기 벡터 입력부가 입력한 암호 벡터 c1과, 상기 키 벡터 기억부가 기억한 키 벡터 k* L, dec에 대하여 처리 장치에 의해 상기 페어링 연산을 행하여, 상기 암호 벡터 c1로부터 상기 소정의 정보에 관한 값을 추출하는 페어링 연산부
    를 구비하는 것을 특징으로 하는 복호 장치.
  22. 제 21 항에 있어서,
    상기 벡터 입력부는, 수학식 29에 나타내는 암호 벡터 c1을 입력하고,
    상기 키 벡터 기억부는, 수학식 30에 나타내는 키 벡터 k* L, dec를 기억하고,
    상기 페어링 연산부는, 수학식 31에 나타내는 페어링 연산을 행하여, 상기 암호 벡터로부터 상기 소정의 정보에 관한 값을 추출하는
    것을 특징으로 하는 복호 장치.

    [수학식 29]
    Figure 112012042794047-pct00142

    [수학식 30]
    Figure 112012042794047-pct00143

    [수학식 31]
    Figure 112012042794047-pct00144

  23. 제 21 항에 있어서,
    상기 벡터 입력부는, 수학식 32에 나타내는 암호 벡터 c1을 입력하고,
    상기 키 벡터 기억부는, 수학식 33에 나타내는 키 벡터 k* L, dec를 기억하고,
    상기 페어링 연산부는, 수학식 34에 나타내는 페어링 연산을 행하여, 상기 암호 벡터로부터 상기 소정의 정보에 관한 값을 추출하는
    것을 특징으로 하는 복호 장치.

    [수학식 32]
    Figure 112012042794047-pct00145

    [수학식 33]
    Figure 112012042794047-pct00146

    [수학식 34]
    Figure 112012042794047-pct00147

  24. 제 21 항에 있어서,
    상기 벡터 입력부는, 수학식 35에 나타내는 암호 벡터 c1과, 평문 정보 m을 암호화한 수학식 36에 나타내는 암호 정보 c2를 입력하고,
    상기 키 벡터 기억부는, 수학식 37에 나타내는 키 벡터 k* L, dec를 기억하고,
    상기 페어링 연산부는, 수학식 38에 나타내는 연산을 행하여, 상기 암호 벡터 c1로부터 상기 평문 정보 m을 추출하는
    것을 특징으로 하는 복호 장치.

    [수학식 35]
    Figure 112012042794047-pct00148

    [수학식 36]
    Figure 112012042794047-pct00149

    [수학식 37]
    Figure 112012042794047-pct00150

    [수학식 38]
    Figure 112012042794047-pct00151

  25. 제 21 항에 있어서,
    상기 벡터 입력부는, 수학식 39에 나타내는 암호 벡터 c1과, 평문 정보 m을 암호화한 수학식 40에 나타내는 암호 정보 c2를 입력하고,
    상기 키 벡터 기억부는, 수학식 41에 나타내는 키 벡터 k* L, dec를 기억하고,
    상기 페어링 연산부는, 수학식 42에 나타내는 연산을 행하여, 상기 암호 벡터 c1로부터 상기 평문 정보 m을 추출하는
    것을 특징으로 하는 복호 장치.

    [수학식 39]
    Figure 112012042794047-pct00152

    [수학식 40]
    Figure 112012042794047-pct00153

    [수학식 41]
    Figure 112012042794047-pct00154

    [수학식 42]
    Figure 112012042794047-pct00155

  26. 수학식 43에 나타내는 페어링 연산에 의해 관련지어진 쌍대 가군(雙對加群)인 공간 V와 공간 V*를 이용하여 술어 암호 처리를 행하는 암호 처리 시스템으로서,
    상기 공간 V에 있어서의 소정의 기저 B를 구성하는 기저 벡터 bi(i=1, …, n, …, N)(N은 3 이상의 정수, n은 1 이상 N-2 이하의 정수)의 기저 벡터 bi(i=1, …, n)와, 기저 벡터 bi(i=n+1, …, N) 중 2개 이상의 기저 벡터 bi(i=n+1, …, m)의 합인 기저 벡터 dn +1을 기저 벡터로서 갖는 기저 B^에 있어서의 벡터로서, 기저 벡터 bi(i=1, …, n) 중 적어도 일부의 기저 벡터에 대한 계수로서 속성 정보를 삽입하는 것과 아울러, 상기 기저 벡터 dn +1에 대한 계수로서 소정의 정보를 삽입한 벡터를 암호 벡터 c1로서 처리 장치에 의해 생성하는 암호화 장치와,
    상기 공간 V*의 기저 B*에 있어서의 벡터로서, 기저 B*를 구성하는 기저 벡터 b* i(i=1, …, n, …, N)의 기저 벡터 b* i(i=1, …, n) 중 적어도 일부의 기저 벡터에 대한 계수로서 술어 정보를 삽입하는 것과 아울러, 상기 기저 B*의 기저 벡터 b* i(i=n+1, …, m)에 대한 계수의 합이 1이 되도록, 상기 기저 벡터 b* i(i=n+1, …, m)에 대한 계수를 삽입한 벡터를 키 벡터 k* L, dec로 하여, 상기 암호화 장치가 생성한 암호 벡터 c1과 상기 키 벡터 k* L, dec에 대하여, 처리 장치에 의해 수학식 43에 나타내는 페어링 연산 e(c1, k* L, dec)를 행하고 상기 암호 벡터 c1을 복호하여 상기 소정의 정보에 관한 값을 추출하는 복호 장치
    를 구비하는 것을 특징으로 하는 암호 처리 시스템.

    [수학식 43]
    Figure 112012042794047-pct00156

  27. 술어 암호에 있어서의 비밀 키인 키 벡터 k* L, dec를 생성하는 키 생성 장치로서,
    페어링 연산에 의해 관련지어진 쌍대 가군(雙對加群)인 공간 V와 공간 V* 중 상기 공간 V*에 있어서의 소정의 기저 B*를 기억 장치에 기억하는 마스터 키 기억부와,
    상기 마스터 키 기억부가 기억한 상기 기저 B*를 구성하는 기저 벡터 b* i(i=1, …, n, …, N)(N은 3 이상의 정수, n은 1 이상 N-2 이하의 정수) 중, 기저 벡터 b* i(i=1, …, n)의 적어도 일부의 기저 벡터에 대한 계수로서 술어 정보를 설정함과 아울러, 기저 벡터 b* i(i=n+1, …, N) 중 2개 이상의 소정의 기저 벡터에 대한 계수의 합이 1이 되도록, 상기 소정의 기저 벡터에 대한 계수를 설정한 벡터를 키 벡터 k* L, dec로서 처리 장치에 의해 생성하는 키 벡터 생성부
    를 구비하는 것을 특징으로 하는 키 생성 장치.
  28. 술어 암호에 있어서의 비밀 키인 키 벡터 k* L, dec로 복호 가능한 암호 벡터 중 일부의 암호 벡터를 복호 가능한 키 벡터 k* L+1, dec를 생성하는 키 위양 장치로서,
    페어링 연산에 의해 관련지어진 쌍대 가군인 공간 V와 공간 V* 중 상기 공간 V*에 있어서의 소정의 기저 B*를 구성하는 기저 벡터 b* i(i=1, …, n, …, N)(N은 3 이상의 정수, n은 1 이상 N-2 이하의 정수) 중, 기저 벡터 b* i(i=1, …, n)의 적어도 일부의 기저 벡터 b* i(i=1, …, μL)에 대한 계수로서 술어 정보가 설정되는 것과 아울러, 기저 벡터 b* i(i=n+1, …, N) 중 2개 이상의 소정의 기저 벡터에 대한 계수의 합이 1이 되도록, 상기 소정의 기저 벡터에 대한 계수가 설정된 키 벡터 k* L, dec를 취득하는 키 벡터 취득부와,
    적어도 j=μL+1, …, n의 각 j에 대하여, 기저 벡터 b* j에 대한 계수로서 소정의 값이 설정된 적어도 n-μL개의 키 생성용 벡터 k* L, del, j를 취득하는 키 생성용 벡터 취득부와,
    상기 키 생성용 벡터 취득부가 취득한 상기 키 생성용 벡터 k* L, del, j의 적어도 일부의 상기 키 생성용 벡터 k* L, del, j의 각 기저 벡터의 계수를 술어 정보배하고, 상기 키 벡터 취득부가 취득한 상기 키 벡터 k* L, dec에 가산하여 키 벡터 k* L+1, dec를 생성하는 키 벡터 생성부
    를 구비하는 것을 특징으로 하는 키 위양 장치.
  29. 페어링 연산에 의해 관련지어진 쌍대 가군인 공간 V와 공간 V* 중 상기 공간 V에 있어서의 소정의 기저 B를 구성하는 기저 벡터 bi(i=1, …, n, …, N)(N은 3 이상의 정수, n은 1 이상 N-2 이하의 정수)의 기저 벡터 bi(i=1, …, n)와, 기저 벡터 bi(i=n+1, …, N) 중 2개 이상의 소정의 기저 벡터의 합인 기저 벡터 dn +1을 기저 벡터로서 갖는 기저 B^를 취득함과 아울러, 소정의 속성 정보를 취득하는 공개 키 취득부와,
    상기 공개 키 취득부가 취득한 기저 B^에 있어서의 벡터로서, 상기 기저 벡터 dn +1에 대한 계수로서 소정의 정보를 설정한 벡터를 송신 정보 벡터 ζv로서 처리 장치에 의해 생성하는 송신 정보 설정부와,
    상기 기저 B^의 상기 기저 벡터 bi(i=1, …, n) 중 적어도 일부의 기저 벡터에 대한 계수로서 속성 정보를 설정한 속성 정보 벡터를, 상기 송신 정보 설정부가 생성한 송신 정보 벡터에 가산하여 암호 벡터 c1을 처리 장치에 의해 생성하는 암호 벡터 생성부
    를 구비하는 것을 특징으로 하는 암호화 장치.
  30. 페어링 연산에 의해 관련지어진 쌍대 가군인 공간 V와 공간 V* 중 상기 공간 V에 있어서의 소정의 기저 B를 구성하는 기저 벡터 bi(i=1, …, n, …, N)(N은 3 이상의 정수, n은 1 이상 N-2 이하의 정수)의 기저 벡터 bi(i=1, …, n)와, 기저 벡터 bi(i=n+1, …, N) 중 2개 이상의 소정의 기저 벡터의 합인 기저 벡터 dn +1을 갖는 기저 B^에 있어서의 벡터로서, 기저 벡터 bi(i=1, …, n)의 적어도 기저 벡터 bi(i=1, …, μh)에 대한 계수로서 속성 정보가 설정되는 것과 아울러, 상기 기저 벡터 dn +1에 대한 계수로서 소정의 정보가 설정된 벡터인 암호 벡터 c1을 입력하는 벡터 입력부와,
    상기 공간 V*에 있어서의 소정의 기저 B*의 기저 벡터 b* i(i=1, …, n, …, N) 중, 기저 벡터 b* i(i=1, …, n)의 적어도 기저 벡터 b* i(i=1, …, μL)(μL≤μh)에 대한 계수로서 술어 정보 vi(i=1, …, μL)가 설정되는 것과 아울러, 상기 기저 벡터 dn +1을 구성하는 기저 벡터 bi에 대응하는 기저 벡터 b* i에 대한 계수의 합이 1이 되도록, 상기 소정의 기저 벡터에 대한 계수가 설정된 키 벡터 k* L, dec를 기억 장치에 기억하는 키 벡터 기억부와,
    상기 벡터 입력부가 입력한 암호 벡터 c1과, 상기 키 벡터 기억부가 기억한 키 벡터 k* L, dec에 대하여 처리 장치에 의해 상기 페어링 연산을 행하여, 상기 암호 벡터 c1로부터 상기 소정의 정보에 관한 값을 추출하는 페어링 연산부
    를 구비하는 것을 특징으로 하는 복호 장치.
  31. 수학식 44에 나타내는 페어링 연산에 의해 관련지어진 쌍대 벡터 공간인 공간 V와 공간 V*를 이용하여 술어 암호 처리를 행하는 암호 처리 방법으로서,
    상기 공간 V에 있어서의 소정의 기저 B를 구성하는 기저 벡터 bi(i=1, …, n, …, N)(N은 3 이상의 정수, n은 1 이상 N-2 이하의 정수)의 기저 벡터 bi(i=1, …, n)와, 기저 벡터 bi(i=n+1, …, N) 중 2개 이상의 기저 벡터 bi(i=n+1, …, m)의 합인 기저 벡터 dn+1을 기저 벡터로서 갖는 기저 B^에 있어서의 벡터로서, 기저 벡터 bi(i=1, …, n) 중 적어도 일부의 기저 벡터에 대한 계수로서 속성 정보를 삽입하는 것과 아울러, 상기 기저 벡터 dn+1에 대한 계수로서 소정의 정보를 삽입한 벡터를 암호 벡터 c1로서 생성하고,
    상기 공간 V*의 기저 B*에 있어서의 벡터로서, 기저 B*를 구성하는 기저 벡터 b* i(i=1, …, n, …, N)의 기저 벡터 b* i(i=1, …, n) 중 적어도 일부의 기저 벡터에 대한 계수로서 술어 정보를 삽입하는 것과 아울러, 상기 기저 B*의 기저 벡터 b* i(i=n+1, …, m)에 대한 계수의 합이 1이 되도록, 상기 기저 벡터 b* i(i=n+1, …, m)에 대한 계수를 삽입한 벡터를 키 벡터 k* L, dec로 하여, 생성한 암호 벡터 c1과 상기 키 벡터 k* L, dec에 대하여, 수학식 44에 나타내는 페어링 연산 e(c1, k* L, dec)를 행하고 상기 암호 벡터 c1을 복호하여 상기 소정의 정보에 관한 값을 추출하는
    것을 특징으로 하는 암호 처리 방법.

    [수학식 44]
    Figure 112012042962718-pct00157

  32. 수학식 45에 나타내는 페어링 연산에 의해 관련지어진 쌍대 벡터 공간인 공간 V와 공간 V*를 이용하여 술어 암호 처리를 행하는 암호 처리 프로그램으로서,
    상기 공간 V에 있어서의 소정의 기저 B를 구성하는 기저 벡터 bi(i=1, …, n, …, N)(N은 3 이상의 정수, n은 1 이상 N-2 이하의 정수)의 기저 벡터 bi(i=1, …, n)와, 기저 벡터 bi(i=n+1, …, N) 중 2개 이상의 기저 벡터 bi(i=n+1, …, m)의 합인 기저 벡터 dn+1을 기저 벡터로서 갖는 기저 B^에 있어서의 벡터로서, 기저 벡터 bi(i=1, …, n) 중 적어도 일부의 기저 벡터에 대한 계수로서 속성 정보를 삽입하는 것과 아울러, 상기 기저 벡터 dn+1에 대한 계수로서 소정의 정보를 삽입한 벡터를 암호 벡터 c1로서 생성하는 암호화 처리와,
    상기 공간 V*의 기저 B*에 있어서의 벡터로서, 기저 B*를 구성하는 기저 벡터 b* i(i=1, …, n, …, N)의 기저 벡터 b* i(i=1, …, n) 중 적어도 일부의 기저 벡터에 대한 계수로서 술어 정보를 삽입하는 것과 아울러, 상기 기저 B*의 기저 벡터 b* i(i=n+1, …, m)에 대한 계수의 합이 1이 되도록, 상기 기저 벡터 b* i(i=n+1, …, m)에 대한 계수를 삽입한 벡터를 키 벡터 k* L, dec로 하여, 상기 암호화 처리에서 생성한 암호 벡터 c1과 상기 키 벡터 k* L, dec에 대하여, 수학식 45에 나타내는 페어링 연산 e(c1, k* L, dec)를 행하고 상기 암호 벡터 c1을 복호하여 상기 소정의 정보에 관한 값을 추출하는 복호 처리
    를 컴퓨터에 실행시키는 것을 특징으로 하는 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.

    [수학식 45]
    Figure 112012042962718-pct00158
KR1020127013861A 2009-11-20 2010-11-15 암호 처리 시스템, 키 생성 장치, 키 위양 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 KR101336349B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2009-264454 2009-11-20
JP2009264454 2009-11-20
PCT/JP2010/070280 WO2011062136A1 (ja) 2009-11-20 2010-11-15 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム

Publications (2)

Publication Number Publication Date
KR20120088774A KR20120088774A (ko) 2012-08-08
KR101336349B1 true KR101336349B1 (ko) 2013-12-04

Family

ID=44059614

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127013861A KR101336349B1 (ko) 2009-11-20 2010-11-15 암호 처리 시스템, 키 생성 장치, 키 위양 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체

Country Status (7)

Country Link
US (1) US8577030B2 (ko)
EP (1) EP2503533B1 (ko)
JP (1) JP5769401B2 (ko)
KR (1) KR101336349B1 (ko)
CN (1) CN103038805B (ko)
ES (1) ES2602052T3 (ko)
WO (1) WO2011062136A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8615668B2 (en) 2010-01-15 2013-12-24 Mitsubishi Electric Corporation Confidential search system and cryptographic processing system
US8462939B2 (en) * 2010-12-07 2013-06-11 King Fahd University Of Petroleum And Minerals RNS-based cryptographic system and method
US10211984B2 (en) 2011-09-28 2019-02-19 Koninklijke Philips N.V. Hierarchical attribute-based encryption and decryption
WO2013094018A1 (ja) * 2011-12-20 2013-06-27 三菱電機株式会社 暗号化データ管理装置、暗号化データ管理方法及び暗号化データ管理プログラム
JP5730805B2 (ja) * 2012-04-04 2015-06-10 日本電信電話株式会社 格子問題に基づく階層型内積暗号システム,格子問題に基づく階層型内積暗号方法,装置
EP2947641B1 (en) * 2013-01-16 2018-03-14 Mitsubishi Electric Corporation Information processing device, information processing method, and program
EP2860905A1 (en) * 2013-10-09 2015-04-15 Thomson Licensing Method for ciphering a message via a keyed homomorphic encryption function, corresponding electronic device and computer program product
CN106031080B (zh) 2014-02-24 2019-07-16 三菱电机株式会社 加密系统
WO2016088251A1 (ja) * 2014-12-05 2016-06-09 三菱電機株式会社 暗号システム、マスター鍵更新装置及びマスター鍵更新プログラム
CN107454975B (zh) 2015-04-07 2020-11-27 三菱电机株式会社 加密系统和密钥生成装置
JP6534778B2 (ja) * 2016-07-06 2019-06-26 日本電信電話株式会社 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム
US10205713B2 (en) * 2017-04-05 2019-02-12 Fujitsu Limited Private and mutually authenticated key exchange
US11157612B2 (en) * 2017-05-25 2021-10-26 Nippon Telegraph And Telephone Corporation Secret tampering detection system, secret tampering detection apparatus, secret tampering detection method, and program
JP6456451B1 (ja) 2017-09-25 2019-01-23 エヌ・ティ・ティ・コミュニケーションズ株式会社 通信装置、通信方法、及びプログラム
US11483136B2 (en) 2019-12-10 2022-10-25 Google Llc Wrapped keys with access control predicates
CN112733111B (zh) * 2020-12-31 2023-05-23 暨南大学 一种基于片段分割的阈值谓词加密生物特征认证方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070223686A1 (en) 2004-09-16 2007-09-27 Shidong Li Methods and apparatus for data and signal encryption and decryption by irregular subspace leaping
WO2009090750A1 (ja) 2008-01-18 2009-07-23 Mitsubishi Electric Corporation 暗号パラメータ設定装置及び鍵生成装置及び暗号システム及びプログラム及び暗号パラメータ設定方法及び鍵生成方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008011092A (ja) * 2006-06-28 2008-01-17 Fuji Xerox Co Ltd 暗号化コンテンツ検索方式
CN101335615B (zh) * 2008-05-30 2010-12-29 北京飞天诚信科技有限公司 用于usb key音频加解密装置密钥协商的方法
CN101404577B (zh) * 2008-10-30 2010-04-21 南京大学 一种融合多种保密技术的保密通信方法
JP5349261B2 (ja) * 2009-04-23 2013-11-20 三菱電機株式会社 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
JP5291795B2 (ja) * 2009-04-24 2013-09-18 日本電信電話株式会社 暗号化装置、復号装置、暗号化方法、復号方法、セキュリティ方法、プログラム及び記録媒体
US8615668B2 (en) * 2010-01-15 2013-12-24 Mitsubishi Electric Corporation Confidential search system and cryptographic processing system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070223686A1 (en) 2004-09-16 2007-09-27 Shidong Li Methods and apparatus for data and signal encryption and decryption by irregular subspace leaping
WO2009090750A1 (ja) 2008-01-18 2009-07-23 Mitsubishi Electric Corporation 暗号パラメータ設定装置及び鍵生成装置及び暗号システム及びプログラム及び暗号パラメータ設定方法及び鍵生成方法

Also Published As

Publication number Publication date
EP2503533A4 (en) 2014-09-10
CN103038805B (zh) 2015-07-29
US20120284530A1 (en) 2012-11-08
ES2602052T3 (es) 2017-02-17
EP2503533A1 (en) 2012-09-26
CN103038805A (zh) 2013-04-10
KR20120088774A (ko) 2012-08-08
JP2011128609A (ja) 2011-06-30
WO2011062136A1 (ja) 2011-05-26
US8577030B2 (en) 2013-11-05
EP2503533B1 (en) 2016-10-05
JP5769401B2 (ja) 2015-08-26

Similar Documents

Publication Publication Date Title
KR101336349B1 (ko) 암호 처리 시스템, 키 생성 장치, 키 위양 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
KR101359200B1 (ko) 암호 처리 시스템
KR101310439B1 (ko) 암호 처리 시스템, 키 생성 장치, 키 위양 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
KR101386294B1 (ko) 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 서명 처리 시스템, 서명 장치 및 검증 장치
KR101393899B1 (ko) 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
KR101443553B1 (ko) 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
CN104718566B (zh) 密码系统
KR101432462B1 (ko) 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 키 위양 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체

Legal Events

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

Payment date: 20161028

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20171030

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20181119

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20191118

Year of fee payment: 7