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

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

Info

Publication number
KR101432462B1
KR101432462B1 KR1020137023636A KR20137023636A KR101432462B1 KR 101432462 B1 KR101432462 B1 KR 101432462B1 KR 1020137023636 A KR1020137023636 A KR 1020137023636A KR 20137023636 A KR20137023636 A KR 20137023636A KR 101432462 B1 KR101432462 B1 KR 101432462B1
Authority
KR
South Korea
Prior art keywords
integer
del
base
ran
key
Prior art date
Application number
KR1020137023636A
Other languages
English (en)
Other versions
KR20130122678A (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 KR20130122678A publication Critical patent/KR20130122678A/ko
Application granted granted Critical
Publication of KR101432462B1 publication Critical patent/KR101432462B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • H04L9/0836Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy

Landscapes

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

Abstract

연산 등의 효율을 좋게 한 계층적 내적 술어 암호를 제공하는 것을 목적으로 한다. 암호 처리 시스템(10)은, 키 생성 장치(100)와 암호화 장치(200)와 복호 장치(300)를 구비한다. 키 생성 장치(100)는, t=1, …, L의 각 정수 t에 대한 기저 B* t의 기저 벡터에 술어 정보 v t를 삽입한 벡터를 복호 키 skL로서 생성한다. 암호화 장치(200)는, t=1, …, L 중 적어도 일부의 정수 t에 대한 기저 Bt의 기저 벡터에 속성 정보 x t를 삽입한 벡터를 암호화 데이터 ct로서 생성한다. 복호 장치(300)는, 키 생성 장치(100)가 생성한 복호 키 skL과 암호화 장치(200)가 생성한 암호화 데이터 ct에 대하여 페어링 연산을 행하여, 암호화 데이터 ct를 복호한다.

Description

암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 키 위양 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체{ENCRYPTION PROCESSING SYSTEM, KEY GENERATION DEVICE, ENCRYPTION DEVICE, DECRYPTION DEVICE, KEY DELEGATION DEVICE, ENCRYPTION PROCESSING METHOD, AND COMPUTER READABLE RECORDING MEDIUM STORING ENCRYPTION PROCESSING PROGRAM}
본 발명은, 계층적 술어 암호(Hierarchical Predicate Encryption)에 관한 것이다.
비특허 문헌 21에는, 계층적 내적 술어 암호(Hierarchical Predicate Encryption for Inner Products)에 대한 기재가 있다. 또한, 비특허 문헌 18에는, 함수형 암호(Functional Encryption)에 대한 기재가 있다.
(선행 기술 문헌)
(비특허 문헌)
(비특허 문헌 1) Beimel, A., Secure schemes for secret sharing and key distribution. PhD Thesis, Israel Institute of Technology, Technion, Haifa, Israel, 1996.
(비특허 문헌 2) Bethencourt, J., Sahai, A., Waters, B.:Ciphertext-policy attribute-based encryption. In:2007 IEEE Symposium on Security and Privacy, pp. 321ㆍ34. IEEE Press(2007)
(비특허 문헌 3) 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ㆍ38. Springer Heidelberg(2004)
(비특허 문헌 4) Boneh, D., Boyen, X.:Secure identity based encryption without random oracles. In:Franklin, M. K. (ed.) CRYPTO 2004. LNCS, vol. 3152, pp. 443ㆍ59. Springer Heidelberg(2004)
(비특허 문헌 5) 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ㆍ56. Springer Heidelberg(2005)
(비특허 문헌 6) Boneh, D., Franklin, M.:Identity-based encryption from the Weil pairing. In:Kilian, J. (ed.) CRYPTO 2001. LNCS, vol. 2139, pp. 213ㆍ29. Springer Heidelberg(2001)
(비특허 문헌 7) Boneh, D., Hamburg, M.:Generalized identity based and broadcast encryption scheme. In:Pieprzyk, J. (ed.) ASIACRYPT 2008. LNCS, vol. 5350, pp. 455ㆍ70. Springer Heidelberg(2008)
(비특허 문헌 8) Boneh, D., Katz, J., Improved efficiency for CCA-secure cryptosystems built using identity based encryption. RSA-CT 2005, LNCS, Springer Verlag(2005)
(비특허 문헌 9) Boneh, D., Waters, B.:Conjunctive, subset, and range queries on encrypted data. In:Vadhan, S. P. (ed.) TCC 2007. LNCS, vol. 4392, pp. 535ㆍ54. Springer Heidelberg(2007)
(비특허 문헌 10) Boyen, X., Waters, B.:Anonymous hierarchical identity-based encryption(without random oracles). In:Dwork, C. (ed.) CRYPTO 2006. LNCS, vol. 4117, pp. 290ㆍ07. Springer Heidelberg(2006)
(비특허 문헌 11) Canetti, R., Halevi S., Katz J.:Chosen-ciphertext security from identity-based encryption. EUROCRYPT 2004, LNCS, Springer-Verlag(2004)
(비특허 문헌 12) Cocks, C.:An identity based encryption scheme based on quadratic residues. In:Honary, B. (ed.) IMA Int. Conf. LNCS, vol. 2260, pp. 360ㆍ63. Springer Heidelberg(2001)
(비특허 문헌 13) Gentry, C.:Practical identity-based encryption without random oracles. In:Vaudenay, S. (ed.) EUROCRYPT 2006. LNCS, vol. 4004, pp. 445ㆍ64. Springer Heidelberg(2006)
(비특허 문헌 14) Gentry, C., Halevi, S.:Hierarchical identity-based encryption with polynomially many levels. In:Reingold, O. (ed.) TCC 2009. LNCS, vol. 5444, pp. 437ㆍ56. Springer Heidelberg(2009)
(비특허 문헌 15) Gentry, C., Silverberg, A.:Hierarchical ID-based cryptography. In:Zheng, Y. (ed.) ASIACRYPT 2002. LNCS, vol. 2501, pp. 548ㆍ66. Springer Heidelberg(2002)
(비특허 문헌 16) 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ㆍ8, ACM(2006)
(비특허 문헌 17) 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ㆍ62. Springer Heidelberg(2008)
(비특허 문헌 18) Lewko, A., Okamoto, T., Sahai, A., Takashima, K., Waters, B.:Fully secure functional encryption:Attribute-based encryption and (hierarchical) inner product encryption, EUROCRYPT 2010. LNCS, Springer Heidelberg(2010)
(비특허 문헌 19) Lewko, A. B., Waters, B.:New techniques for dual system encryption and fully secure HIBE with short ciphertexts. In:Micciancio, D. (ed.) TCC 2010. LNCS, vol. 5978, pp. 455ㆍ79. Springer Heidelberg(2010)
(비특허 문헌 20) 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ㆍ4. Springer Heidelberg(2008)
(비특허 문헌 21) Okamoto, T., Takashima, K.:Hierarchical predicate encryption for inner-products, In:ASIACRYPT 2009, Springer Heidelberg(2009)
(비특허 문헌 22) 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ㆍ03, ACM(2007)
(비특허 문헌 23) Pirretti, M., Traynor, P., McDaniel, P., Waters, B.:Secure attribute-based systems. In:ACM Conference on Computer and Communication Security 2006, pp. 99ㆍ12, ACM, (2006)
(비특허 문헌 24) Sahai, A., Waters, B.:Fuzzy identity-based encryption. In:Cramer, R. (ed.) EUROCRYPT 2005. LNCS, vol. 494, pp. 457ㆍ73. Springer Heidelberg(2005)
(비특허 문헌 25) Shi, E., Waters, B.:Delegating capability in predicate encryption systems. In:Aceto, L., Damgaard, I., Goldberg, L. A., Halldorsson, M. M., Ingolfsdottir, A., Walukiewicz, I. (eds.) ICALP (2) 2008. LNCS, vol. 5126, pp. 560. 578. Springer Heidelberg(2008)
(비특허 문헌 26) Waters, B.:Efficient identity based encryption without random oracles. Eurocrypt 2005, LNCS, vol. 3152, pp. 443ㆍ59. Springer Verlag, (2005)
(비특허 문헌 27) Waters, B.:Ciphertext-policy attribute-based encryption: an expressive, efficient, and provably secure realization. ePrint, IACR, http://eprint.iacr.org/2008/290
(비특허 문헌 28) Waters, B.:Dual system encryption: realizing fully secure IBE and HIBE under simple assumptions. In:Halevi, S. (ed.) CRYPTO 2009. LNCS, vol. 5677, pp. 619ㆍ36. Springer Heidelberg(2009)
비특허 문헌 21에 기재된 계층적 내적 술어 암호 방식에서는, 하나의 큰 공간을 사용하여 암호 처리를 구축하고 있었다. 그 때문에, 이 계층적 내적 술어 암호 방식을 실장한 경우, 키의 사이즈가 커지고, 연산 등의 효율이 나빠질 우려가 있다.
본 발명은, 연산 등의 효율을 좋게 한 계층적 내적 술어 암호를 제공하는 것을 목적으로 한다.
본 발명에 따른 암호 처리 시스템은, t=1, …, L+1(L은 1 이상의 정수)의 각 정수 t에 대한 기저 Bt와 기저 B* t를 이용하여 암호 처리를 행하는 암호 처리 시스템으로서, t=1, …, L 중 적어도 일부의 정수 t에 대한 기저 Bt의 기저 벡터에 속성 정보 x t를 삽입한 벡터를 암호화 데이터 ct로서 생성하는 암호화 장치와, t=1, …, L의 각 정수 t에 대한 기저 B* t의 기저 벡터에 술어 정보 v t를 삽입한 벡터를 복호 키 skL로 하여, 상기 암호화 장치가 생성한 암호화 데이터 ct와 상기 복호 키 skL에 대하여 페어링 연산을 행하여 상기 암호화 데이터 ct를 복호하는 복호 장치와, 기저 B* L+1의 기저 벡터에 술어 정보를 삽입한 벡터와, 상기 복호 장치가 사용한 복호 키 skL에 근거하여, 상기 복호 키 skL의 하위의 복호 키 skL +1을 생성하는 키 위양 장치를 구비하는 것을 특징으로 한다.
본 발명에 따른 암호 처리 시스템에서는, 복수의 공간을 이용하여 계층 구조를 구축하고 있다. 그 때문에, 키의 사이즈를 작게 할 수 있고, 연산 효율이 좋아진다.
도 1은 「권한 위양(계층적인 권한 위양)」이라고 하는 개념을 설명하기 위한 도면.
도 2는 계층을 도외시한 권한 위양을 설명하기 위한 도면.
도 3은 속성 정보와 술어 정보의 계층 구조를 나타내는 도면.
도 4는 계층적 ID 베이스 암호의 예를 나타내는 도면.
도 5는 기저와 기저 벡터를 설명하기 위한 도면.
도 6은 벡터 공간에 있어서의 계층 구조의 실현 방법의 일례를 설명하기 위한 도면.
도 7은 계층적 내적 술어 암호 방식의 알고리즘을 실행하는 암호 처리 시스템(10)의 구성도.
도 8은 키 생성 장치(100)의 기능을 나타내는 기능 블록도.
도 9는 암호화 장치(200)의 기능을 나타내는 기능 블록도.
도 10은 복호 장치(300)의 기능을 나타내는 기능 블록도.
도 11은 키 위양 장치(400)의 기능을 나타내는 기능 블록도.
도 12는 Setup 알고리즘의 처리를 나타내는 플로차트.
도 13은 KeyGen 알고리즘의 처리를 나타내는 플로차트.
도 14는 Enc 알고리즘의 처리를 나타내는 플로차트.
도 15는 Dec 알고리즘의 처리를 나타내는 플로차트.
도 16은 DelegateL 알고리즘의 처리를 나타내는 플로차트.
도 17은 KeyGen 알고리즘의 처리를 나타내는 플로차트.
도 18은 Dec 알고리즘의 처리를 나타내는 플로차트.
도 19는 DelegateL 알고리즘의 처리를 나타내는 플로차트.
도 20은 키 생성 장치(100), 암호화 장치(200), 복호 장치(300)의 하드웨어 구성의 일례를 나타내는 도면.
이하, 도면에 근거하여, 발명의 실시의 형태를 설명한다.
이하의 설명에 있어서, 처리 장치는 후술하는 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 112013081656622-pct00001
A가 집합일 때, 수학식 102는, A로부터 y를 균등하게 선택하는 것을 나타낸다. 다시 말해, 수학식 102에 있어서, y는 균등 난수이다.
[수학식 102]
Figure 112013081656622-pct00002
수학식 103은, y가 z에 의해 정의된 집합인 것, 또는 y가 z가 대입된 집합인 것을 나타낸다.
[수학식 103]
Figure 112013081656622-pct00003
a가 상수일 때, 수학식 104는, 기계(알고리즘) A가 입력 x에 대하여 a를 출력하는 것을 나타낸다.
[수학식 104]
Figure 112013081656622-pct00004
수학식 105, 다시 말해 Fq는, 위수 q의 유한체를 나타낸다.
[수학식 105]
Figure 112013081656622-pct00005
벡터 표기는, 유한체 Fq에 있어서의 벡터 표시를 나타낸다. 다시 말해, 수학식 106이다.
[수학식 106]
Figure 112013081656622-pct00006
수학식 107은, 수학식 108에 나타내는 2개의 벡터 x와 v의 수학식 109에 나타내는 내적을 나타낸다.
[수학식 107]
Figure 112013081656622-pct00007
[수학식 108]
Figure 112013081656622-pct00008
[수학식 109]
Figure 112013081656622-pct00009
XT는, 행렬 X의 전치 행렬을 나타낸다.
수학식 110에 나타내는 기저 B와 기저 B*에 대하여, 수학식 111이다.
[수학식 110]
Figure 112013081656622-pct00010
[수학식 111]
Figure 112013081656622-pct00011
e t, j는, 수학식 112에 나타내는 정규 기저 벡터를 나타낸다.
[수학식 112]
Figure 112013081656622-pct00012
또한, 수학식 113으로부터 수학식 117이다.
[수학식 113]
Figure 112013081656622-pct00013
[수학식 114]
Figure 112013081656622-pct00014
[수학식 115]
Figure 112013081656622-pct00015
[수학식 116]
Figure 112013081656622-pct00016
[수학식 117]
Figure 112013081656622-pct00017
또한, 수학식 118인 경우에, 수학식 119이다.
[수학식 118]
Figure 112013081656622-pct00018
[수학식 119]
Figure 112013081656622-pct00019
또한, 이하의 설명에 있어서, Fq nt에 있어서의 nt는 nt이다.
마찬가지로, 비밀 키 sk(v→1, …, v→L)에 있어서의 (v→1, …, v→L)은 (v 1, …, v L)이고, 비밀 키 sk(v→1, …, v→L+1)에 있어서의 (v→1, …, v→L+1)은 (v 1, …, v L+1)이다.
마찬가지로, “δi, j”가 어깨 글자(superior letter)로 나타나 있는 경우, 이 δi, j는, δi, j를 의미한다.
또한, 벡터를 의미하는 “→”가 다리 글자(inferior letter) 또는 어깨 글자에 붙어 있는 경우, 이 “→”는 다리 글자 또는 어깨 글자에 어깨 글자로 붙어 있는 것을 의미한다.
또한, 이하의 설명에 있어서, 암호 처리란, 암호화 처리, 복호 처리, 키 생성 처리, 키 위양 처리를 포함하는 것이다.
실시의 형태 1.
본 실시의 형태에서는, 「계층적 내적 술어 암호」를 실현하는 기초가 되는 개념과, 「계층적 내적 술어 암호」의 구성에 대하여 설명한다.
제 1에, 계층적 내적 술어 암호의 개념에 대하여 설명한다. 계층적 내적 술어 암호라고 하는 개념을 설명함에 있어서, 우선 「권한 위양」이라고 하는 개념을 설명한다. 또한, 아울러, 「계층적(Hierarchial)인 권한 위양」이라고 하는 개념을 설명한다. 다음으로, 「내적 술어 암호」를 설명한다. 그리고, 계층적인 권한 위양이라고 하는 개념을 내적 술어 암호에 더한 「계층적 내적 술어 암호」를 설명한다. 또한, 계층적 내적 술어 암호의 이해를 깊게 하기 위해, 계층적 내적 술어 암호의 응용예를 설명한다.
제 2에, 벡터 공간에 있어서의 계층적 내적 술어 암호를 설명한다. 본 실시의 형태 및 이하의 실시의 형태에서는, 계층적 술어 암호와 계층적 술어 키 비닉 방식을 벡터 공간에 있어서 실현한다. 여기서는, 우선, 「기저」와 「기저 벡터」에 대하여 설명한다. 다음으로, 「벡터 공간에 있어서의 내적 술어 암호」에 대하여 설명한다. 그리고, 「벡터 공간에 있어서의 계층 구조의 실현 방법」에 대하여 설명한다. 또한, 이해를 깊게 하기 위해, 계층 구조의 실현예를 설명한다.
제 3에, 계층적 내적 술어 암호를 실현하기 위한 공간인 「쌍대 페어링 벡터 공간(Dual Pairing Vector Spaces, DPVS)」이라고 하는 풍부한 수학적 구조를 갖는 공간을 설명한다.
제 4에, 본 실시의 형태에 따른 「계층적 내적 술어 암호 방식」의 기본 구성을 설명한다. 다음으로, 계층적 술어 암호를 실행하는 「암호 처리 시스템(10)」의 기본 구성을 설명한다. 그리고, 본 실시의 형태에 따른 계층적 술어 암호 방식 및 암호 처리 시스템(10)에 대하여 상세히 설명한다.
<제 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), 암호문을 복호할 수 있는 암호 방식이라고도 말할 수 있다.
또, 술어 암호에 대하여 상세하게는 비특허 문헌 17에 기재되어 있다.
내적 술어 암호란, 속성 정보 x와 술어 정보 fv의 내적이 소정의 값인 경우에, fv(x)=1이 되는 술어 암호이다. 다시 말해, 속성 정보 x와 술어 정보 fv의 내적이 소정의 값인 경우에만, 속성 정보 x에 의해 암호화된 암호문 c를, 술어 정보 fv에 근거하여 생성된 비밀 키 SKf에 의해 복호할 수 있다.
실시의 형태 1에서는, 원칙으로서, 속성 정보 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인 경우, 내적 술어는 수학식 120과 같이 정의된다.
[수학식 120]
Figure 112013081656622-pct00020
다시 말해, 속성 벡터 x와 술어 벡터 v의 내적, 다시 말해 요소마다의 내적의 합이 0인 경우에, 술어 정보 fv에 속성 정보 x를 입력한 결과가 1(True)이 된다. 또한, 속성 벡터 x와 술어 벡터 v의 내적이 0이 아닌 경우에, 술어 정보 fv에 속성 정보 x를 입력한 결과가 0(False)이 되는 술어 암호이다.
<제 2-3. 벡터 공간에 있어서의 계층 구조의 실현 방법>
다음으로, 벡터 공간에 있어서의 계층 구조의 실현 방법을 설명한다.
도 6은 벡터 공간에 있어서의 계층 구조의 실현 방법의 일례를 설명하기 위한 도면이다.
여기서는 d개(d는 1 이상의 정수)의 벡터 공간을 다룬다. 각 벡터 공간은, 고차원(Nt차원(t=1, …, d)) 벡터 공간이다. 다시 말해, 각 벡터 공간에 있어서의 소정의 기저 Ct(t=1, …, d)에는, 기저 벡터 ci(i=1, …, Nt)의 Nt개의 기저 벡터가 존재한다.
그리고, 기저 C1을 제 1층째의 속성 정보나 술어 정보를 설정하기 위한 공간으로 한다. 또한, 기저 C2를 제 2층째의 속성 정보나 술어 정보를 설정하기 위한 공간으로 한다. 이하 마찬가지로, 기저 CL을 제 L층째의 속성 정보나 술어 정보를 설정하기 위한 공간으로 한다. 따라서, 여기서는, d층의 계층을 나타낼 수 있다.
여기서, 제 L층째의 비밀 키는, 기저 CL을 이용하여 제 L층째의 술어 정보를 설정할 뿐 아니라, 기저 C1로부터 기저 CL -1을 이용하여 제 1층째로부터 제 L-1층째의 술어 정보를 설정하여 생성된다. 다시 말해, 하위의 층의 비밀 키에는, 상위의 층의 비밀 키에 설정되는 술어 정보도 설정된다. 이것에 의해, 술어 정보에 계층 구조를 갖게 한다. 그리고, 이 술어 정보에 갖게 한 계층 구조를 이용하여, 내적 술어 암호에 있어서의 권한 위양 시스템을 구성한다.
또, 이하의 설명에 있어서는, 벡터 공간에 있어서의 계층적 구조를 나타내기 위해, 계층 정보 n:=(d;N1, …, Nd)를 이용한다. 여기서, d는, 상술한 계층의 깊이를 나타내는 값이다. Ni(i=1, …, d)는, 각 층 i에 할당된 공간의 차원수, 다시 말해 기저 벡터의 수를 나타내는 값이다.
<제 2-4. 계층 구조의 실현예>
여기서, 간단한 예를 이용하여 계층 구조를 설명한다. 여기서는, 3개의 계층을 구비하고, 각 계층에 할당된 공간이 2차원으로 구성된 예를 이용하여 설명한다. 다시 말해, n:=(d;N1, …, Nd)=(3;2, 2, 2)이다.
제 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. 쌍대 페어링 벡터 공간>
우선, 대칭 쌍선형 페어링군(Symmetric Bilinear Pairing Groups)에 대하여 설명한다.
대칭 쌍선형 페어링군 (q, G, GT, g, e)는, 소수 q와, 위수 q의 순회 가법군(cyclic additive group) G와, 위수 q의 순회 승법군(cyclic multiplicative group) GT와, g≠0∈G와, 다항식 시간으로 계산 가능한 비퇴화 쌍선형 페어링(Nondegenerate Bilinear Pairing) e:G×G→GT의 조이다. 비퇴화 쌍선형 페어링은, e(sg, tg)=e(g, g)st이고, e(g, g)≠1이다.
이하의 설명에 있어서, 수학식 121을, 1λ를 입력으로 하여, 시큐리티 파라미터를 λ로 하는 쌍선형 페어링군의 파라미터 paramG:=(q, G, GT, g, e)의 값을 출력하는 알고리즘으로 한다.
[수학식 121]
Figure 112013081656622-pct00021
다음으로, 쌍대 페어링 벡터 공간에 대하여 설명한다.
쌍대 페어링 벡터 공간 (q, V, GT, A, e)는, 대칭 쌍선형 페어링군 (paramG:=(q, G, GT, g, e))의 직적에 의해 구성할 수 있다. 쌍대 페어링 벡터 공간 (q, V, GT, A, e)는, 소수 q, 수학식 122에 나타내는 Fq상의 N차원 벡터 공간 V, 위수 q의 순회군 GT, 공간 V의 표준 기저 A:=(a1, …, aN)의 조이고, 이하의 연산 (1), (2)를 갖는다. 여기서, ai는, 수학식 123에 나타내는 바와 같다.
[수학식 122]
Figure 112013081656622-pct00022
[수학식 123]
Figure 112013081656622-pct00023
연산 (1) : 비퇴화 쌍선형 페어링
공간 V에 있어서의 페어링은, 수학식 124에 의해 정의된다.
[수학식 124]
Figure 112013081656622-pct00024
이것은, 비퇴화 쌍선형이다. 다시 말해, e(sx, ty)=e(x, y)st이고, 모든 y∈V에 대하여, e(x, y)=1인 경우, x=0이다. 또한, 모든 i와 j에 대하여, e(ai, aj)=e(g, g)δi, j이다. 여기서, i=j이면, δi, j=1이고, i≠j이면, δi, j=0이다. 또한, e(g, g)≠1∈GT이다.
연산 (2) : 디스토션 사상
수학식 125에 나타내는 공간 V에 있어서의 선형 변환 φi, j는, 수학식 126을 행할 수 있다.
[수학식 125]
Figure 112013081656622-pct00025
[수학식 126]
Figure 112013081656622-pct00026
여기서, 선형 변환 φi, j를 디스토션 사상이라고 부른다.
이하의 설명에 있어서, 수학식 127을, 1λ(λ∈자연수), N∈자연수, 쌍선형 페어링군의 파라미터 paramG:=(q, G, GT, g, e)의 값을 입력으로 하여, 시큐리티 파라미터가 λ이고, N차원의 공간 V로 하는 쌍대 페어링 벡터 공간의 파라미터 paramV:=(q, V, GT, A, e)의 값을 출력하는 알고리즘으로 한다.
[수학식 127]
Figure 112013081656622-pct00027
또, 여기서는, 상술한 대칭 쌍선형 페어링군에 의해, 쌍대 페어링 벡터 공간을 구성한 경우에 대하여 설명한다. 또, 비대칭 쌍선형 페어링군에 의해 쌍대 페어링 벡터 공간을 구성하는 것도 가능하다. 이하의 설명을, 비대칭 쌍선형 페어링군에 의해 쌍대 페어링 벡터 공간을 구성한 경우에 응용하는 것은 용이하다.
<제 4. 계층적 술어 암호의 구성과 암호 처리 시스템(10)>
<제 4-1. 계층적 내적 술어 암호의 기본 구성>
계층적 내적 술어 암호 방식의 구성을 간단히 설명한다.
계층적 내적 술어 암호 방식은, Setup, KeyGen, Enc, Dec, DelegateL(L=1, …, d-1)의 5개의 확률적 다항식 시간 알고리즘을 구비한다.
(Setup)
Setup 알고리즘에서는, 시큐리티 파라미터 1λ와 계층 정보 n:=(d;N0, …, Nd)가 입력되고, 마스터 공개 키 pk와 마스터 비밀 키 sk가 출력된다. 마스터 비밀 키 sk는 가장 상위의 키이다.
(KeyGen)
KeyGen 알고리즘에서는, 마스터 공개 키 pk와 마스터 비밀 키 sk와 술어 벡터 (v 1, …, v L)(1≤L≤d)가 입력되고, 제 L층째의 비밀 키 sk(v→1, …, v→L)가 출력된다.
(Enc)
Enc 알고리즘에서는, 마스터 공개 키 pk와 속성 벡터 (x 1, …, x h)(1≤h≤d)와 평문 정보 m이 입력되고, 암호화 데이터 ct(암호문)가 출력된다. 다시 말해, Enc 알고리즘에서는, 평문 정보 m을 삽입하고, 속성 벡터 (x 1, …, x h)에 의해 암호화된 암호화 데이터 ct가 출력된다.
(Dec)
Dec 알고리즘에서는, 마스터 공개 키 pk와 제 L층째의 비밀 키 sk(v→1, …, v→L)와 암호화 데이터 ct가 입력되고, 평문 정보 m 또는 식별 정보 ⊥가 출력된다. 식별 정보 ⊥란, 복호에 실패한 것을 나타내는 정보이다. 다시 말해, Dec 알고리즘에서는, 암호화 데이터 ct를 제 L층째의 비밀 키로 복호하여, 평문 정보 m을 추출한다. 또한, 복호에 실패한 경우에는 식별 정보 ⊥를 출력한다.
(DelegateL)
DelegateL에서는, 마스터 공개 키 pk와 제 L층째의 비밀 키 sk(v→1, …, v→L)과 제 L+1층째의 술어 벡터 v L+1(L+1≤d)이 입력되고, 제 L+1층째의 비밀 키 sk(v→1, …, v→L+1)이 출력된다. 다시 말해, DelegateL 알고리즘에서는, 하위의 비밀 키가 출력된다.
<제 4-2. 암호 처리 시스템(10)>
계층적 내적 술어 암호 방식의 알고리즘을 실행하는 암호 처리 시스템(10)에 대하여 설명한다.
도 7은 계층적 내적 술어 암호 방식의 알고리즘을 실행하는 암호 처리 시스템(10)의 구성도이다.
암호 처리 시스템(10)은, 키 생성 장치(100), 암호화 장치(200), 복호 장치(300), 키 위양 장치(400)를 구비한다. 또, 여기서는, 복호 장치(300)가, 키 위양 장치(400)를 구비하는 것으로 하여 설명하지만, 키 위양 장치(400)는, 복호 장치(300)와는 별도로 마련되어 있더라도 좋다.
키 생성 장치(100)는, 시큐리티 파라미터 λ와, 계층 정보 n:=(d;N0, …, Nd)를 입력으로 하여 Setup 알고리즘을 실행하여, 마스터 공개 키 pk와 마스터 비밀 키 sk를 생성한다. 그리고, 키 생성 장치(100)는, 생성한 마스터 공개 키 pk를 공개한다. 또한, 키 생성 장치(100)는, 마스터 공개 키 pk와 마스터 비밀 키 sk와 술어 벡터 (v 1, …, v L)(1≤L≤d)을 입력으로 하여 KeyGen 알고리즘을 실행하여, 제 L층째의 비밀 키 sk(v→1, …, v→L)을 생성하여 제 L층째의 복호 장치(300)에 비밀리에 배포한다.
암호화 장치(200)는, 마스터 공개 키 pk와 속성 벡터 (x 1, …, x h)(1≤h≤d)와 평문 정보 m을 입력으로 하여 Enc 알고리즘을 실행하여, 암호화 데이터 ct를 생성한다. 암호화 장치(200)는, 생성한 암호화 데이터 ct를 복호 장치(300)에 송신한다.
복호 장치(300)는, 마스터 공개 키 pk와 제 L층째의 비밀 키 sk(v→1, …, v→L)과 암호화 데이터 ct를 입력으로 하여 Dec 알고리즘을 실행하여, 평문 정보 m 또는 식별 정보 ⊥를 출력한다.
키 위양 장치(400)는, 마스터 공개 키 pk와 제 L층째의 비밀 키 sk(v→1, …, v→L)과 제 L+1층째의 술어 벡터 v L+1(L+1≤d)을 입력으로 하여 DelegateL 알고리즘을 실행하여, 제 L+1층째의 비밀 키 sk(v→1, …, v→L+1)을 생성하여 제 L+1층째의 복호 장치(300)에 비밀리에 배포한다.
<제 4-3. 계층적 내적 술어 암호 방식 및 암호 처리 시스템(10)의 상세>
도 8로부터 도 16에 근거하여, 실시의 형태 1에 따른 계층적 내적 술어 암호 방식 및 계층적 내적 술어 암호 방식을 실행하는 암호 처리 시스템(10)의 기능과 동작에 대하여 설명한다.
도 8은 키 생성 장치(100)의 기능을 나타내는 기능 블록도이다. 도 9는 암호화 장치(200)의 기능을 나타내는 기능 블록도이다. 도 10은 복호 장치(300)의 기능을 나타내는 기능 블록도이다. 도 11은 키 위양 장치(400)의 기능을 나타내는 기능 블록도이다.
도 12와 도 13은 키 생성 장치(100)의 동작을 나타내는 플로차트이다. 또, 도 12는 Setup 알고리즘의 처리를 나타내는 플로차트이고, 도 13은 KeyGen 알고리즘의 처리를 나타내는 플로차트이다. 도 14는 암호화 장치(200)의 동작을 나타내는 플로차트이고, Enc 알고리즘의 처리를 나타내는 플로차트이다. 도 15는 복호 장치(300)의 동작을 나타내는 플로차트이고, Dec 알고리즘의 처리를 나타내는 플로차트이다. 도 16은 키 위양 장치(400)의 동작을 나타내는 플로차트이고, DelegateL 알고리즘의 처리를 나타내는 플로차트이다.
또, 이하의 설명에 있어서, 첨자의 「dec」는 「decryption」의 약자이고, 첨자에 「dec」가 있는 것은, 암호화 데이터의 복호에 이용되는 복호 요소이다. 또한, 첨자의 「ran」은 「randomization」의 약자이고, 첨자에 「ran」이 있는 것은, 하위의 복호 키의 소정의 기저 벡터에 대한 계수를 랜덤화하기 위한 랜덤화 요소이다. 또한, 첨자의 「del」은 「delegation」의 약자이고, 첨자에 「del」이 있는 것은, 하위의 복호 키를 생성하기 위한 위양 요소이다.
키 생성 장치(100)의 기능과 동작에 대하여 설명한다.
도 8에 나타내는 바와 같이, 키 생성 장치(100)는, 마스터 키 생성부(110), 마스터 키 기억부(120), 정보 입력부(130)(제 1 정보 입력부), 복호 키 생성부(140), 키 배포부(150)(복호 키 송신부)를 구비한다.
또한, 복호 키 생성부(140)는, 난수 생성부(141), 복호 요소 생성부(142), 랜덤화 요소 생성부(143), 위양 요소 생성부(144)를 구비한다.
우선, 도 12에 근거하여, Setup 알고리즘의 처리에 대하여 설명한다.
(S101 : 정규 직교 기저 생성 단계)
마스터 키 생성부(110)는, 처리 장치에 의해, 수학식 128을 계산하여, paramn→와, t=0, …, d의 각 정수 t에 대하여 기저 Bt 및 기저 B* t를 랜덤으로 생성한다.
[수학식 128]
Figure 112013081656622-pct00028
다시 말해, 마스터 키 생성부(110)는 이하의 처리를 실행한다.
(1) 마스터 키 생성부(110)는, 입력 장치에 의해, 시큐리티 파라미터 λ(1λ)와, 속성의 포맷 n:=(d;n1, …, nd, u0, …, ud, w0, …, wd, z0, …, zd)를 입력한다. 여기서, d는 1 이상의 정수이다. t=1, …, d의 각 정수 t에 대하여 nt는 1 이상의 정수이다. t=0, …, d까지의 각 정수 t에 대하여 ut, wt, zt는 1 이상의 정수이다. 또한, 마스터 키 생성부(110)는, N0:=1+u0+1+w0+z0으로 하고, t=1, …, d의 각 정수 t에 대하여 Nt:=nt+ut+wt+zt로 한다.
(2) 마스터 키 생성부(110)는, 처리 장치에 의해, (1)에서 입력한 시큐리티 파라미터 λ(1λ)를 입력으로 하여 알고리즘 Gbpg를 실행하여, 랜덤으로 쌍선형 페어링군의 파라미터 paramG:=(q, G, GT, g, e)의 값을 생성한다.
(3) 마스터 키 생성부(110)는, 처리 장치에 의해, 난수 ψ를 생성한다.
그 다음에, 마스터 키 생성부(110)는, t=0, …, d의 각 정수 t에 대하여 이하의 (4)로부터 (8)까지의 처리를 실행한다.
(4) 마스터 키 생성부(110)는, 처리 장치에 의해, (1)에서 입력한 시큐리티 파라미터 λ(1λ) 및 Nt와, (2)에서 생성한 paramG:=(q, G, GT, g, e)의 값을 입력으로 하여 알고리즘 Gdpvs를 실행하여, 쌍대 페어링 벡터 공간의 파라미터 paramVt:=(q, Vt, GT, At, e)의 값을 생성한다.
(5) 마스터 키 생성부(110)는, 처리 장치에 의해, (1)에서 설정한 Nt와, Fq를 입력으로 하여, 선형 변환 Xt:=(χt, i, j)i, j를 랜덤으로 생성한다. 또, GL은, General Linear의 약자이다. 다시 말해, GL은, 일반 선형군이고, 행렬식이 0이 아닌 정방 행렬의 집합이고, 승법에 관한 군이다. 또한, (χt, i, j)i, j는, 행렬 χt, i, j의 첨자 i, j에 관한 행렬이라고 하는 의미이고, 여기서는, i, j=1, …, Nt이다.
(6) 마스터 키 생성부(110)는, 처리 장치에 의해, 난수 ψ와 선형 변환 Xt에 근거하여, (νt, i, j)i, j:=ψㆍ(Xt T)-1을 생성한다. 또, (νt, i, j)i, j도 (χt, i, j)i, j와 마찬가지로, 행렬 νt, i, j의 첨자 i, j에 관한 행렬이라고 하는 의미이고, 여기서는, i, j=1, …, Nt이다.
(7) 마스터 키 생성부(110)는, 처리 장치에 의해, (5)에서 생성한 선형 변환 Xt에 근거하여, (4)에서 생성한 표준 기저 At로부터 기저 Bt를 생성한다.
(8) 마스터 키 생성부(110)는, 처리 장치에 의해, (6)에서 생성한 (νt, i, j)i, j에 근거하여, (4)에서 생성한 표준 기저 At로부터 기저 B* t를 생성한다.
(9) 마스터 키 생성부(110)는, 처리 장치에 의해, gT에 e(g, g)ψ를 설정한다. 또한, 마스터 키 생성부(110)는, paramn 에 (4)에서 생성한 {paramVt}t=0, …, d와, gT를 설정한다. 또, t=0, …, d와 i=1, …, Nt의 각 정수 t, i에 대하여, gT=e(bt, i, b* t, i)이다.
즉, (S101)에서, 마스터 키 생성부(110)는, 수학식 129에 나타내는 알고리즘 Gob를 실행하여, paramn 와, t=0, …, d의 각 정수 t에 대하여 기저 Bt 및 기저 B* t를 생성한다.
[수학식 129]
Figure 112013081656622-pct00029
(S102 : 마스터 공개 키 생성 단계)
마스터 키 생성부(110)는, 처리 장치에 의해, 기저 B0의 부분 기저 B^ 0과, t=1, …, d의 각 정수 t에 대하여, 기저 Bt의 부분 기저 B^ t를 수학식 130에 나타내는 바와 같이 생성한다.
[수학식 130]
Figure 112013081656622-pct00030
마스터 키 생성부(110)는, 생성한 부분 기저 B^ 0 및 부분 기저 B^ t와, (S101)에서 입력된 시큐리티 파라미터 λ(1λ)와, (S101)에서 생성한 paramn 와, 기저 벡터 b* 0, 1+ u0 +1+1, …, b* 0, 1+ u0 +1+ w0(여기서 u0, w0은, u0, w0이다)과, t=1, …, d의 각 정수 t에 대하여 기저 벡터 b* t, nt + ut +1, …, b* t, nt + ut +wt(여기서 nt, ut, wt는, nt, ut, wt이다)를 합쳐, 마스터 공개 키 pk로 한다.
(S103 : 마스터 비밀 키 생성 단계)
마스터 키 생성부(110)는, 처리 장치에 의해, 기저 B* 0의 부분 기저 B^* 0과, t=1, …, d의 각 정수 t에 대하여, 기저 B* t의 부분 기저 B^* t를 수학식 131에 나타내는 바와 같이 생성한다.
[수학식 131]
Figure 112013081656622-pct00031
마스터 키 생성부(110)는, 생성한 부분 기저 B^* 0 및 부분 기저 B^* t를 마스터 비밀 키로 한다.
(S104 : 마스터 키 기억 단계)
마스터 키 기억부(120)는, (S102)에서 생성한 마스터 공개 키 pk를 기억 장치에 기억한다. 또한, 마스터 키 기억부(120)는, (S103)에서 생성한 마스터 비밀 키 sk를 기억 장치에 기억한다.
다시 말해, (S101)로부터 (S103)에 있어서, 키 생성 장치(100)는 수학식 132에 나타내는 Setup 알고리즘을 실행하여, 마스터 공개 키 pk와 마스터 비밀 키 sk를 생성한다. 그리고, (S104)에서, 키 생성 장치(100)는 생성된 마스터 공개 키 pk와 마스터 비밀 키 sk를 기억 장치에 기억한다.
또, 마스터 공개 키 pk는, 예컨대, 네트워크를 통하여 공개되고, 복호 장치(300)가 취득 가능한 상태가 된다.
[수학식 132]
Figure 112013081656622-pct00032
다음으로, 도 13에 근거하여, 키 생성 장치(100)가 실행하는 KeyGen 알고리즘의 처리에 대하여 설명한다.
(S201 : 정보 입력 단계)
정보 입력부(130)는, 입력 장치에 의해, 술어 정보 (v 1, …, v L):=((v1 , i(i=1, …, n1)), …, (vL , i(i=1, …, nL)))을 입력한다. 또, 술어 정보로서는, 키를 사용하는 자의 속성이 입력된다.
(S202 : 난수 생성 단계)
난수 생성부(141)는, 처리 장치에 의해, j=1, …, 2L과, τ=L+1, …, d와, (τ, ι)=(τ, 1), …, (τ, nτ)의 각 정수 j, τ, ι에 대하여, 난수 ψ와, 난수 sdec, t, sran , j, t(t=1, …, L)와, 난수 θdec , t, θran , j, t, η dec , t, η ran , j, t(t=0, …, L)와, 난수 sran , (τ, ι), t, sdel , (τ, ι), t(t=1, …, L+1)와, 난수 θran , (τ, ι), t, θdel, (τ, ι), t, η ran , (τ, ι), t, η del , (τ, ι), t(t=0, …, L+1)를 수학식 133에 나타내는 바와 같이 생성한다.
[수학식 133]
Figure 112013081656622-pct00033
또한, 수학식 134에 나타내는 바와 같이 sdec , 0과, sran , j, 0과, sran , (τ, ι), 0과, sdel , (τ, ι), 0을 설정한다.
[수학식 134]
Figure 112013081656622-pct00034
(S203 : 복호 요소 생성 단계)
복호 요소 생성부(142)는, 처리 장치에 의해, 복호 키 skL의 요소인 복호 요소 k* L, dec를 수학식 135에 나타내는 바와 같이 생성한다.
[수학식 135]
Figure 112013081656622-pct00035
또, 상술한 바와 같이, 수학식 110에 나타내는 기저 B와 기저 B*에 대하여, 수학식 111이다. 따라서, 수학식 135는, 이하와 같이, 기저 B* 0 및 기저 B* t(t=1, …, L)의 기저 벡터의 계수가 설정되고, 복호 요소 k* L, dec가 생성되는 것을 의미한다.
우선, 기저 B* 0의 부분에 대하여 설명한다. 여기서는, 표기를 간략화하여, 기저 벡터 b* 0, i 중, i의 부분만으로 기저 벡터를 특정한다. 예컨대, 기저 벡터 1이면, 기저 벡터 b* 0, 1을 의미한다. 또한, 기저 벡터 1, …, 3이면, 기저 벡터 b* 0, 1, …, b* 0, 3을 의미한다.
기저 B* 0의 기저 벡터 1의 계수로서 -sdec, 0이 설정된다. 기저 벡터 1+1, …, 1+u0의 계수로서 0이 설정된다. 기저 벡터 1+u0+1의 계수로서 1이 설정된다. 기저 벡터 1+u0+1+1, …, 1+u0+1+w0의 계수로서 ηdec, 0, 1, …, ηdec, 0, w0(여기서, w0은 w0이다)이 설정된다. 기저 벡터 1+u0+1+w0+1, …, 1+u0+1+w0+z0의 계수로서 0이 설정된다.
다음으로, 기저 B* t(t=1, …, L)의 부분에 대하여 설명한다. 여기서는, 표기를 간략화하여, 기저 벡터 b* t, i 중, i의 부분만으로 기저 벡터를 특정한다. 예컨대, 기저 벡터 1이면, 기저 벡터 b* t, 1을 의미한다. 또한, 기저 벡터 1, …, 3이면, 기저 벡터 b* t, 1, …, b* t, 3을 의미한다.
기저 B* t(t=1, …, L)의 기저 벡터 1의 계수로서 sdec , tdec , tvt , 1이 설정된다. 기저 벡터 2, …, nt의 계수로서 θdec , tvt , 2, …, θdec , tvt , nt(여기서, nt는 nt이다)가 설정된다. 기저 벡터 nt+1, …, nt+ut의 계수로서 0이 설정된다. 기저 벡터 nt+ut+1, …, nt+ut+wt의 계수로서 ηdec , t, 1, …, ηdec , t, wt(여기서, wt는 wt이다)가 설정된다. 기저 벡터 nt+ut+wt+1, …, nt+ut+wt+zt의 계수로서 0이 설정된다.
(S204 : 제 1 랜덤화 요소 생성 단계)
랜덤화 요소 생성부(143)는, 처리 장치에 의해, j=1, …, 2L의 각 정수 j에 대하여, 복호 키 skL의 요소인 제 1 랜덤화 요소 k* L, ran , j를 수학식 136에 나타내는 바와 같이 생성한다.
[수학식 136]
Figure 112013081656622-pct00036
또, 상술한 바와 같이, 수학식 110에 나타내는 기저 B와 기저 B*에 대하여, 수학식 111이다. 따라서, 수학식 136은, 이하와 같이, 기저 B* 0 및 기저 B* t(t=1, …, L)의 기저 벡터의 계수가 설정되고, 제 1 랜덤화 요소 k* L, ran , j가 생성되는 것을 의미한다.
우선, 기저 B* 0의 부분에 대하여 설명한다. 여기서는, 표기를 간략화하여, 기저 벡터 b* 0, i 중, i의 부분만으로 기저 벡터를 특정한다. 예컨대, 기저 벡터 1이면, 기저 벡터 b* 0, 1을 의미한다. 또한, 기저 벡터 1, …, 3이면, 기저 벡터 b* 0, 1, …, b* 0, 3을 의미한다.
기저 B* 0의 기저 벡터 1의 계수로서 -sran, j, 0이 설정된다. 기저 벡터 1+1, …, 1+u0+1의 계수로서 0이 설정된다. 기저 벡터 1+u0+1+1, …, 1+u0+1+w0의 계수로서 ηran, j, 0, 1, …, ηran, j, 0, w0(여기서, w0은 w0이다)이 설정된다. 기저 벡터 1+u0+1+w0+1, …, 1+u0+1+w0+z0의 계수로서 0이 설정된다.
다음으로, 기저 B* t(t=1, …, L)의 부분에 대하여 설명한다. 여기서는, 표기를 간략화하여, 기저 벡터 b* t, i 중, i의 부분만으로 기저 벡터를 특정한다. 예컨대, 기저 벡터 1이면, 기저 벡터 b* t, 1을 의미한다. 또한, 기저 벡터 1, …, 3이면, 기저 벡터 b* t, 1, …, b* t, 3을 의미한다.
기저 B* t(t=1, …, L)의 기저 벡터 1의 계수로서 sran , j, tran , j, tvt , 1이 설정된다. 기저 벡터 2, …, nt의 계수로서 θran , j, tvt , 2, …, θran , j, tvt , nt(여기서, nt는 nt이다)가 설정된다. 기저 벡터 nt+1, …, nt+ut의 계수로서 0이 설정된다. 기저 벡터 nt+ut+1, …, nt+ut+wt의 계수로서 ηran , j, t, 1, …, ηran , j, t, wt(여기서, wt는 wt이다)가 설정된다. 기저 벡터 nt+ut+wt+1, …, nt+ut+wt+zt의 계수로서 0이 설정된다.
(S205 : 제 2 랜덤화 요소 생성 단계)
랜덤화 요소 생성부(143)는, 처리 장치에 의해, τ=L+1, …, d의 각 정수 τ와, 각 정수 τ에 대하여 ι=1, …, nτ의 각 정수 ι에 대하여, 복호 키 skL의 요소인 제 2 랜덤화 요소 k* L, ran , (τ, ι)를 수학식 137에 나타내는 바와 같이 생성한다.
[수학식 137]
Figure 112013081656622-pct00037
또, 상술한 바와 같이, 수학식 110에 나타내는 기저 B와 기저 B*에 대하여, 수학식 111이다. 따라서, 수학식 137은, 이하와 같이, 기저 B* 0과 기저 B* t(t=1, …, L)와 기저 B* τ의 기저 벡터의 계수가 설정되고, 제 2 랜덤화 요소 k* L, ran , (τ, ι)가 생성되는 것을 의미한다.
우선, 기저 B* 0의 부분에 대하여 설명한다. 여기서는, 표기를 간략화하여, 기저 벡터 b* 0, i 중, i의 부분만으로 기저 벡터를 특정한다. 예컨대, 기저 벡터 1이면, 기저 벡터 b* 0, 1을 의미한다. 또한, 기저 벡터 1, …, 3이면, 기저 벡터 b* 0, 1, …, b* 0, 3을 의미한다.
기저 B* 0의 기저 벡터 1의 계수로서 -sran, (τ, ι), 0이 설정된다. 기저 벡터 1+1, …, 1+u0+1의 계수로서 0이 설정된다. 기저 벡터 1+u0+1+1, …, 1+u0+1+w0의 계수로서 ηran, (τ, ι), 0, 1, …, ηran, (τ, ι), 0, w0(여기서, w0은 w0이다)이 설정된다. 기저 벡터 1+u0+1+w0+1, …, 1+u0+1+w0+z0의 계수로서 0이 설정된다.
다음으로, 기저 B* t(t=1, …, L)의 부분에 대하여 설명한다. 여기서는, 표기를 간략화하여, 기저 벡터 b* t, i 중, i의 부분만으로 기저 벡터를 특정한다. 예컨대, 기저 벡터 1이면, 기저 벡터 b* t, 1을 의미한다. 또한, 기저 벡터 1, …, 3이면, 기저 벡터 b* t, 1, …, b* t, 3을 의미한다.
기저 B* t(t=1, …, L)의 기저 벡터 1의 계수로서 sran , (τ, ι), tran , (τ, ι), tvt, 1이 설정된다. 기저 벡터 2, …, nt의 계수로서 θran , (τ, ι), tvt , 2, …, θran , (τ, ι), tvt , nt(여기서, nt는 nt이다)가 설정된다. 기저 벡터 nt+1, …, nt+ut의 계수로서 0이 설정된다. 기저 벡터 nt+ut+1, …, nt+ut+wt의 계수로서 ηran , (τ, ι), t, 1, …, ηran , (τ, ι), t, wt(여기서, wt는 wt이다)가 설정된다. 기저 벡터 nt+ut+wt+1, …, nt+ut+wt+zt의 계수로서 0이 설정된다.
다음으로, 기저 B* τ의 부분에 대하여 설명한다. 여기서는, 표기를 간략화하여, 기저 벡터 b* τ, i 중, i의 부분만으로 기저 벡터를 특정한다. 예컨대, 기저 벡터 1이면, 기저 벡터 b* τ, 1을 의미한다. 또한, 기저 벡터 1, …, 3이면, 기저 벡터 b* τ, 1, …, b* τ, 3을 의미한다.
기저 B* τ의 기저 벡터 1의 계수로서 sran , (τ, ι), L+1이 설정된다. 기저 벡터 2, …, nτ, …, nτ+uτ의 계수로서 0이 설정된다. 기저 벡터 nτ+uτ+1, …, nτ+uτ+wτ의 계수로서 ηran , (τ, ι), L+1, 1, …, ηran , (τ, ι), L+1, wτ(여기서, wτ는 wτ이다)가 설정된다. 기저 벡터 nτ+uτ+wτ+1, …, nτ+uτ+wτ+zτ의 계수로서 0이 설정된다.
(S206 : 위양 요소 생성 단계)
위양 요소 생성부(144)는, 처리 장치에 의해, τ=L+1, …, d의 각 정수 τ와, 각 정수 τ에 대하여 ι=1, …, nτ의 각 정수 ι에 대하여, 복호 키 skL의 요소인 위양 요소 k* L, del , (τ, ι)를 수학식 138에 나타내는 바와 같이 생성한다.
[수학식 138]
Figure 112013081656622-pct00038
또, 상술한 바와 같이, 수학식 110에 나타내는 기저 B와 기저 B*에 대하여, 수학식 111이다. 따라서, 수학식 138은, 이하와 같이, 기저 B* 0과 기저 B* t(t=1, …, L)와 기저 B* τ의 기저 벡터의 계수가 설정되고, 위양 요소 k* L, del , (τ, ι)가 생성되는 것을 의미한다.
우선, 기저 B* 0의 부분에 대하여 설명한다. 여기서는, 표기를 간략화하여, 기저 벡터 b* 0, i 중, i의 부분만으로 기저 벡터를 특정한다. 예컨대, 기저 벡터 1이면, 기저 벡터 b* 0, 1을 의미한다. 또한, 기저 벡터 1, …, 3이면, 기저 벡터 b* 0, 1, …, b* 0, 3을 의미한다.
기저 B* 0의 기저 벡터 1의 계수로서 -sdel, (τ, ι), 0이 설정된다. 기저 벡터 1+1, …, 1+u0+1의 계수로서 0이 설정된다. 기저 벡터 1+u0+1+1, …, 1+u0+1+w0의 계수로서 ηdel, (τ, ι), 0, 1, …, ηdel, (τ, ι), 0, w0(여기서, w0은 w0이다)이 설정된다. 기저 벡터 1+u0+1+w0+1, …, 1+u0+1+w0+z0의 계수로서 0이 설정된다.
다음으로, 기저 B* t(t=1, …, L)의 부분에 대하여 설명한다. 여기서는, 표기를 간략화하여, 기저 벡터 b* t, i 중, i의 부분만으로 기저 벡터를 특정한다. 예컨대, 기저 벡터 1이면, 기저 벡터 b* t, 1을 의미한다. 또한, 기저 벡터 1, …, 3이면, 기저 벡터 b* t, 1, …, b* t, 3을 의미한다.
기저 B* t(t=1, …, L)의 기저 벡터 1의 계수로서 sdel , (τ, ι), tdel , (τ, ι), tvt, 1이 설정된다. 기저 벡터 2, …, nt의 계수로서 θdel , (τ, ι), tvt , 2, …, θdel , (τ, ι), tvt , nt(여기서, nt는 nt이다)가 설정된다. 기저 벡터 nt+1, …, nt+ut의 계수로서 0이 설정된다. 기저 벡터 nt+ut+1, …, nt+ut+wt의 계수로서 ηdel , (τ, ι), t, 1, …, ηdel , (τ, ι), t, wt(여기서, wt는 wt이다)가 설정된다. 기저 벡터 nt+ut+wt+1, …, nt+ut+wt+zt의 계수로서 0이 설정된다.
다음으로, 기저 B* τ의 부분에 대하여 설명한다. 여기서는, 표기를 간략화하여, 기저 벡터 b* τ, i 중, i의 부분만으로 기저 벡터를 특정한다. 예컨대, 기저 벡터 1이면, 기저 벡터 b* τ, 1을 의미한다. 또한, 기저 벡터 1, …, 3이면, 기저 벡터 b* τ, 1, …, b* τ, 3을 의미한다.
기저 B* τ의 기저 벡터 1, …, nτ의 계수로서 sdel , (τ, ι), L+1e τ, 1+ψe τ, ι가 설정된다. 기저 벡터 nτ+1, …, nτ+uτ의 계수로서 0이 설정된다. 기저 벡터 nτ+uτ+1, …, nτ+uτ+wτ의 계수로서 ηdel , (τ, ι), L+1, 1, …, ηdel , (τ, ι), L+1, wτ(여기서, wτ는 wτ이다)가 설정된다. 기저 벡터 nτ+uτ+wτ+1, …, nτ+uτ+wτ+zτ의 계수로서 0이 설정된다.
(S207 : 키 배포 단계)
키 배포부(150)는, 복호 요소 k* L, dec와, 제 1 랜덤화 요소 k* L, ran , j(j=1, …, 2L)와, 제 2 랜덤화 요소 k* L, ran , (τ, ι)(τ=L+1, …, d;(τ, ι)=(τ, 1), …, (τ, nτ))와, 위양 요소 k* L, del , (τ, ι)(τ=L+1, …, d;(τ, ι)=(τ, 1), …, (τ, nτ))를 요소로 하는 복호 키 skL을, 예컨대 통신 장치에 의해 네트워크를 통하여 비밀리에 복호 장치(300)에 배포한다. 물론, 복호 키 skL은, 다른 방법에 의해 복호 장치(300)에 배포되더라도 좋다.
다시 말해, (S201)로부터 (S206)에 있어서, 키 생성 장치(100)는 수학식 139, 수학식 140에 나타내는 KeyGen 알고리즘을 실행하여, 복호 키 skL을 생성한다. 그리고, (S207)에서, 키 생성 장치(100)는 생성된 복호 키 skL을 복호 장치(300)에 배포한다.
[수학식 139]
Figure 112013081656622-pct00039
[수학식 140]
Figure 112013081656622-pct00040
암호화 장치(200)의 기능과 동작에 대하여 설명한다.
도 9에 나타내는 바와 같이, 암호화 장치(200)는, 마스터 공개 키 취득부(210), 정보 입력부(220)(제 2 정보 입력부), 암호화 데이터 생성부(230), 데이터 송신부(240)를 구비한다.
또한, 정보 입력부(220)는, 속성 정보 입력부(221), 메시지 입력부(222)를 구비한다. 또한, 암호화 데이터 생성부(230)는, 난수 생성부(231), 암호화 데이터 c1 생성부(232), 암호화 데이터 c2 생성부(233)를 구비한다.
도 14에 근거하여, 암호화 장치(200)가 실행하는 Enc 알고리즘의 처리에 대하여 설명한다.
(S301 : 마스터 공개 키 취득 단계)
마스터 공개 키 취득부(210)는, 예컨대, 통신 장치에 의해 네트워크를 통하여, 키 생성 장치(100)가 생성한 마스터 공개 키 pk를 취득한다.
(S302 : 정보 입력 단계)
속성 정보 입력부(221)는, 입력 장치에 의해, 속성 정보 (x 1, …, x L):=((x1, i(i=1, …, n1)), …, (xL , i(i=1, …, nL)))을 입력한다. 또, 속성 정보로서는, 암호화한 메시지를 복호 가능한 자의 속성이 입력된다.
또한, 메시지 입력부(222)는, 입력 장치에 의해, 암호화하는 메시지 m을 입력한다.
(S303 : 난수 생성 단계)
난수 생성부(231)는, 처리 장치에 의해, 난수 (x L+1, …, x d):=((xL +1, i(i=1, …, nL +1)), …, (xd , i(i=1, …, nd)))와, 난수 ω, ζ, φ t(t=0, …, d)를 수학식 141에 나타내는 바와 같이 생성한다.
[수학식 141]
Figure 112013081656622-pct00041
(S304 : 암호화 데이터 c1 생성 단계)
암호화 데이터 c1 생성부(232)는, 처리 장치에 의해, 암호화 데이터 ct의 요소인 암호화 데이터 c1을 수학식 142에 나타내는 바와 같이 생성한다.
[수학식 142]
Figure 112013081656622-pct00042
또, 상술한 바와 같이, 수학식 110에 나타내는 기저 B와 기저 B*에 대하여, 수학식 111이다. 따라서, 수학식 142는, 이하와 같이, 기저 B0 및 기저 Bt(t=1, …, d)의 기저 벡터의 계수가 설정되고, 암호화 데이터 c1이 생성되는 것을 의미한다.
우선, 기저 B0의 부분에 대하여 설명한다. 여기서는, 표기를 간략화하여, 기저 벡터 b0 , i 중, i의 부분만으로 기저 벡터를 특정한다. 예컨대, 기저 벡터 1이면, 기저 벡터 b0 , 1을 의미한다. 또한, 기저 벡터 1, …, 3이면, 기저 벡터 b0 , 1, …, b0 , 3을 의미한다.
기저 B0의 기저 벡터 1의 계수로서 ω가 설정된다. 기저 벡터 1+1, …, 1+u0의 계수로서 0이 설정된다. 기저 벡터 1+u0+1의 계수로서 ζ가 설정된다. 기저 벡터 1+u0+1+1, …, 1+u0+1+w0의 계수로서 0이 설정된다. 기저 벡터 1+u0+1+w0+1, …, 1+u0+1+w0+z0의 계수로서 φ0, 1, …, φ0, z0(여기서, z0은 z0이다)이 설정된다.
다음으로, 기저 Bt(t=1, …, d)의 부분에 대하여 설명한다. 여기서는, 표기를 간략화하여, 기저 벡터 bt , i 중, i의 부분만으로 기저 벡터를 특정한다. 예컨대, 기저 벡터 1이면, 기저 벡터 bt , 1을 의미한다. 또한, 기저 벡터 1, …, 3이면, 기저 벡터 bt , 1, …, bt , 3을 의미한다.
기저 Bt(t=1, …, d)의 기저 벡터 1, …, nt의 계수로서 ωxt , 1, …, ωxt , nt(여기서, nt는 nt이다)가 설정된다. 기저 벡터 nt+1, …, nt+ut+wt의 계수로서 0이 설정된다. 기저 벡터 nt+ut+wt+1, …, nt+ut+wt+zt의 계수로서 φt, 1, …, φt, zt(여기서, zt는 zt이다)가 설정된다.
(S305 : 암호화 데이터 c2 생성 단계)
암호화 데이터 c2 생성부(233)는, 처리 장치에 의해, 암호화 데이터 ct의 요소인 암호화 데이터 c2를 수학식 143에 나타내는 바와 같이 생성한다.
[수학식 143]
Figure 112013081656622-pct00043
(S306 : 데이터 송신 단계)
데이터 송신부(240)는, 암호화 데이터 c1과, 암호화 데이터 c2를 포함하는 암호화 데이터 ct를, 예컨대 통신 장치에 의해 네트워크를 통하여 복호 장치(300)에 송신한다. 물론, 암호화 데이터 ct는, 다른 방법에 의해 복호 장치(300)에 송신되더라도 좋다.
다시 말해, (S301)로부터 (S305)에 있어서, 암호화 장치(200)는 수학식 144에 나타내는 Enc 알고리즘을 실행하여, 암호화 데이터 ct를 생성한다. 그리고, (S306)에서, 암호화 장치(200)는 생성된 암호화 데이터 ct를 복호 장치(300)에 송신한다.
[수학식 144]
Figure 112013081656622-pct00044
복호 장치(300)의 기능과 동작에 대하여 설명한다.
도 10에 나타내는 바와 같이, 복호 장치(300)는, 복호 키 취득부(310), 데이터 수신부(320), 페어링 연산부(330), 메시지 계산부(340)를 구비한다.
도 15에 근거하여, 복호 장치(300)가 실행하는 Dec 알고리즘의 처리에 대하여 설명한다.
(S401 : 복호 키 취득 단계)
복호 키 취득부(310)는, 예컨대, 통신 장치에 의해 네트워크를 통하여, 복호 키 skL을 취득한다. 또한, 복호 키 취득부(310)는, 키 생성 장치(100)가 생성한 마스터 공개 키 pk를 취득한다.
(S402 : 데이터 수신 단계)
데이터 수신부(320)는, 예컨대, 통신 장치에 의해 네트워크를 통하여, 암호화 장치(200)가 송신한 암호화 데이터 ct를 수신한다.
(S403 : 페어링 연산 단계)
페어링 연산부(330)는, 처리 장치에 의해, 수학식 145에 나타내는 페어링 연산을 행하여, 세션 키 K=gT ζ를 계산한다.
[수학식 145]
Figure 112013081656622-pct00045
또, (v 1, …, v L)과 (x 1, …, x L)의 내적이 0이면, 수학식 145를 계산하는 것에 의해, 세션 키 K가 계산된다.
(S404 : 메시지 계산 단계)
메시지 계산부(340)는, 처리 장치에 의해, 암호화 데이터 c2를 세션 키 K로 나누는 것에 의해, 메시지 m’(=m)를 계산한다.
다시 말해, (S401)로부터 (S404)에 있어서, 복호 장치(300)는 수학식 146에 나타내는 Dec 알고리즘을 실행하여, 메시지 m’(=m)를 계산한다.
[수학식 146]
Figure 112013081656622-pct00046
키 위양 장치(400)의 기능과 동작에 대하여 설명한다.
도 11에 나타내는 바와 같이, 키 위양 장치(400)는, 복호 키 취득부(410), 정보 입력부(420)(제 3 정보 입력부), 위양 키 생성부(430), 키 배포부(440)(위양 키 송신부)를 구비한다.
또한, 위양 키 생성부(430)는, 난수 생성부(431), 하위 복호 요소 생성부(432), 하위 랜덤화 요소 생성부(433), 하위 위양 요소 생성부(434)를 구비한다.
도 16에 근거하여, 키 위양 장치(400)가 실행하는 DelegateL 알고리즘의 처리에 대하여 설명한다.
(S501 : 복호 키 취득 단계)
복호 키 취득부(410)는, 예컨대, 통신 장치에 의해 네트워크를 통하여, 복호 키 skL을 취득한다. 또한, 복호 키 취득부(410)는, 키 생성 장치(100)가 생성한 마스터 공개 키 pk를 취득한다.
(S502 : 정보 입력 단계)
정보 입력부(420)는, 입력 장치에 의해, 술어 정보 v L+1:=(vL +1, i(i=1, …, nL+1))을 입력한다. 또, 술어 정보로서는, 키가 위양되는 자의 속성이 입력된다.
(S503 : 난수 생성 단계)
난수 생성부(431)는, 처리 장치에 의해, j=1, …, 2L과, j’=1, …, 2(L+1)과, τ=L+2, …, d와, (τ, ι)=(τ, 1), …, (τ, nτ)와, t=0, …, L+1, τ와, (t, i)=(t, 1), …, (t, nt)의 각 정수 j, j’, τ, ι, t, i에 대하여, 난수 αdec , j, σdec, αran , j’, j, σran , j’, αran , (τ, ι), j, σran , (τ, ι), φran , (τ, ι), αdel , (τ, ι), j, σdel , (τ, ι), φdel , (τ, ι), ψ’, ηdec , (t, i), ηran , j’, (t, i), ηran , (τ, ι), (t, i), ηdel, (τ, ι), (t, i)를 수학식 147에 나타내는 바와 같이 생성한다.
[수학식 147]
Figure 112013081656622-pct00047
(S504 : 하위 복호 요소 생성 단계)
하위 복호 요소 생성부(432)는, 처리 장치에 의해, 위양 키 skL +1의 요소인 하위 복호 요소 k* L+1, dec를 수학식 148에 나타내는 바와 같이 생성한다.
[수학식 148]
Figure 112013081656622-pct00048
(S505 : 제 1 하위 랜덤화 요소 생성 단계)
하위 랜덤화 요소 생성부(433)는, 처리 장치에 의해, j’=1, …, 2(L+1)의 각 정수 j’에 대하여, 위양 키 skL +1의 요소인 제 1 하위 랜덤화 요소 k* L+1, ran , j’를 수학식 149에 나타내는 바와 같이 생성한다.
[수학식 149]
Figure 112013081656622-pct00049
(S506 : 제 2 하위 랜덤화 요소 생성 단계)
하위 랜덤화 요소 생성부(433)는, 처리 장치에 의해, τ=L+2, …, d의 각 정수 τ와, 각 정수 τ에 관하여 ι=1, …, nτ의 각 정수 ι에 대하여, 위양 키 skL +1의 요소인 제 2 하위 랜덤화 요소 k* L+1, ran , (τ, ι)를 수학식 150에 나타내는 바와 같이 생성한다.
[수학식 150]
Figure 112013081656622-pct00050
(S507 : 하위 위양 요소 생성 단계)
하위 위양 요소 생성부(434)는, 처리 장치에 의해, τ=L+2, …, d의 각 정수 τ와, 각 정수 τ에 대하여 ι=1, …, nτ의 각 정수 ι에 대하여, 위양 키 skL +1의 요소인 하위 위양 요소 k* L+1, del , (τ, ι)를 수학식 151에 나타내는 바와 같이 생성한다.
[수학식 151]
Figure 112013081656622-pct00051
(S508 : 키 배포 단계)
키 배포부(150)는, 하위 복호 요소 k* L+1, dec와, 제 1 하위 랜덤화 요소 k* L+1, ran, j’(j’=1, …, 2(L+1))와, 제 2 하위 랜덤화 요소 k* L+1, ran , (τ, ι)(τ=L+2, …, d;(τ, ι)=(τ, 1), …, (τ, nτ))와, 하위 위양 요소 k* L+1, del , (τ, ι)(τ=L+2, …, d;(τ, ι)=(τ, 1), …, (τ, nτ))를 요소로 하는 위양 키 skL +1(하위의 복호 키)을, 예컨대 통신 장치에 의해 네트워크를 통하여 비밀리에 하위의 복호 장치(300)에 배포한다. 물론, 위양 키 skL +1은, 다른 방법에 의해 하위의 복호 장치(300)에 배포되더라도 좋다.
다시 말해, (S501)로부터 (S507)에 있어서, 키 위양 장치(400)는 수학식 152, 153에 나타내는 DelegateL 알고리즘을 실행하여, 위양 키 skL +1을 생성한다. 그리고, (S508)에서, 키 위양 장치(400)는 생성된 위양 키 skL +1을 하위의 복호 장치(300)에 배포한다.
[수학식 152]
Figure 112013081656622-pct00052
[수학식 153]
Figure 112013081656622-pct00053
또, 하위의 복호 장치(300)가, 위양 키 skL +1을 이용하여 Dec 알고리즘을 실행한 경우, 도 15의 (S403)에서는, (v 1, …, v L+1)과 (x 1, …, x L+1)의 내적이 0이면, 수학식 145를 계산하는 것에 의해, 세션 키 K가 계산된다.
이상과 같이, 실시의 형태 1에 따른 암호 처리 시스템(10)은, d+1개의 Nt(t=0, …, d)차원 공간을 이용하여, d계층의 계층적 내적 술어 암호 방식을 실현한다. 여기서, 제 L층째(1≤L≤d)의 암호 처리에 필요한 공간은, L+1개의 Nt(t=0, …, L)차원 공간이다. 따라서, 키의 사이즈를 작게 할 수 있고, 연산 등의 효율을 좋게 할 수 있다. 또한, 키를 기록하는 메모리나 레지스터 등의 영역도 작아진다.
또, 상기 설명에 있어서, ut, wt, zt(t=0, …, d)의 차원은, 안전성을 높이기 위해 마련한 차원이다. 따라서, 안전성이 낮아져 버리지만, ut, wt, zt(t=0, …, d)를 각각 0으로 하여, ut, wt, zt(t=0, …, d)의 차원을 마련하지 않더라도 좋다.
또한, 상기 설명에서는, N0에 1+u0+1+w0+z0을 설정하고, Nt에 nt+ut+wt+zt를 설정했다. 그러나, 1+u0+1+w0+z0을 1+1+1+1+1로 하여 N0에 5를 설정하고, nt+ut+wt+zt를 nt+nt+nt+1로 하여 Nt에 3nt+1을 설정하더라도 좋다.
이 경우, 수학식 132에 나타내는 Setup 알고리즘은, 수학식 154와 같이 다시 쓸 수 있다. 또, Gob는 수학식 155와 같이 다시 쓸 수 있다.
[수학식 154]
Figure 112013081656622-pct00054
[수학식 155]
Figure 112013081656622-pct00055
또한, 수학식 139, 수학식 140에 나타내는 KeyGen 알고리즘은, 수학식 156, 수학식 157과 같이 다시 쓸 수 있다.
[수학식 156]
Figure 112013081656622-pct00056
[수학식 157]
Figure 112013081656622-pct00057
또한, 수학식 144에 나타내는 Enc 알고리즘은, 수학식 158과 같이 다시 쓸 수 있다.
[수학식 158]
Figure 112013081656622-pct00058
또한, 수학식 152, 수학식 153에 나타내는 DelegateL 알고리즘은, 수학식 159, 수학식 160과 같이 다시 쓸 수 있다.
[수학식 159]
Figure 112013081656622-pct00059
[수학식 160]
Figure 112013081656622-pct00060
또, 수학식 146에 나타내는 Dec 알고리즘에 변경은 없다.
또한, Setup 알고리즘은, 암호 처리 시스템(10)을 셋업할 때에 한 번 실행하면 되고, 복호 키를 생성할 때마다 실행할 필요는 없다. 또한, 상기 설명에서는, Setup 알고리즘과 KeyGen 알고리즘을 키 생성 장치(100)가 실행하는 것으로 했지만, Setup 알고리즘과 KeyGen 알고리즘을 각각 다른 장치가 실행하는 것으로 하더라도 좋다.
실시의 형태 2.
본 실시의 형태에서는, 실시의 형태 1에서 설명한 방식을 일반화한 계층적 내적 술어 암호 방식에 대하여 설명한다.
실시의 형태 1에서 설명한 계층적 내적 술어 암호 방식에서는, 원칙으로서 암호화 데이터 ct에 설정된 속성 정보와, 복호 키에 설정된 술어 정보의 내적이 0인 경우에, 암호화 데이터 ct를 복호 키로 복호 가능했다.
그러나, 실시의 형태 2에서 설명하는 계층적 내적 술어 암호 방식에서는, 암호화 데이터 ct에 설정된 속성 정보와, 복호 키에 설정된 술어 정보의 내적이 0이 되지 않는 경우에도 복호 가능하게 되도록 설정할 수 있다.
구체적으로는, 이하의 설명에 있어서, ρt(t=1, …, d)의 값이 0인 정수 t에 대해서는, 속성 정보 x t와 술어 정보 v t의 내적이 0이 되고, ρt(t=1, …, d)의 값이 1인 정수 t에 대해서는, 속성 정보 x t와 술어 정보 v t의 내적이 0이 되지 않는 경우에, 복호 가능하게 된다.
이것에 의해, 예컨대, ρt(t=1, …, d)의 값의 설정에 따라, 긍정형의 조건식(예컨대, 속성 정보=술어 정보)과 부정형의 조건식(속성 정보≠술어 정보)의 설정을 할 수 있다.
도 17로부터 도 19에 근거하여, 실시의 형태 2에 따른 계층적 내적 술어 암호 방식 및 계층적 내적 술어 암호 방식을 실행하는 암호 처리 시스템(10)의 기능과 동작에 대하여 설명한다.
또, 실시의 형태 2에 따른 암호 처리 시스템(10)의 기능 구성에 대해서는, 도 8로부터 도 11에 나타내는 실시의 형태 1에 따른 암호 처리 시스템(10)의 기능 구성과 동일하다.
도 17은 키 생성 장치(100)의 동작을 나타내는 플로차트이고, KeyGen 알고리즘의 처리를 나타내는 플로차트이다. 도 18은 복호 장치(300)의 동작을 나타내는 플로차트이고, Dec 알고리즘의 처리를 나타내는 플로차트이다. 도 19는 키 위양 장치(400)의 동작을 나타내는 플로차트이고, DelegateL 알고리즘의 처리를 나타내는 플로차트이다.
또, 실시의 형태 2에 따른 Setup 알고리즘과 Enc 알고리즘의 처리는, 실시의 형태 1에 따른 Setup 알고리즘과 Enc 알고리즘의 처리와 동일하기 때문에, 설명을 생략한다. 단, Enc 알고리즘에서는, 암호화 데이터 ct에, 암호화 데이터 c1, c2뿐 아니라, 속성 정보 x i(i=1, …, L)도 포함시켜, 복호 장치(300)에 송신한다.
도 17에 근거하여, 키 생성 장치(100)가 실행하는 KeyGen 알고리즘의 처리에 대하여 설명한다.
(S601 : 정보 입력 단계)
정보 입력부(130)는, 입력 장치에 의해, 술어 정보 ((v 1, ρ1), …, (v L, ρL)):=((v1 , i(i=1, …, n1), ρ1∈{0, 1}), …, (vL , i(i=1, …, nL), ρL∈{0, 1}))을 입력한다. 또, 술어 정보로서는, 키를 사용하는 자의 속성이 입력된다.
(S602 : 난수 생성 단계)
난수 생성부(141)는, 처리 장치에 의해, j=1, …, 2L과, τ=L+1, …, d와, (τ, ι)=(τ, 1), …, (τ, nτ)의 각 정수 j, τ, ι에 대하여, 난수 ψ와, 난수 sdec, t, sran , j, t(t=1, …, L)와, 난수 θdec , t, θran , j, t, η dec , t, η ran , j, t, η ran , 0, t, η del , 0, t, η del , 1, t(t=0, …, L)와, 난수 sran , 0, t, sdel , 0, t, sdel , 1, t(t=0, …, L+1)와, 난수 θran , 0, t, θdel , 0, t, θdel , 1, t(t=0, …, L+1)와, 난수 η ran , (τ, ι), η del , 0, (τ, ι), η del , 1, (τ, ι)를 수학식 161에 나타내는 바와 같이 생성한다.
[수학식 161]
Figure 112013081656622-pct00061
또한, 수학식 162에 나타내는 바와 같이 sdec , 0과, sran , j, 0과, sran , 0, 0과, sdel, 0, 0과, sdel , 1, 0을 설정한다.
[수학식 162]
Figure 112013081656622-pct00062
(S603 : 복호 요소 생성 단계)
복호 요소 생성부(142)는, 처리 장치에 의해, 복호 키 skL의 요소인 복호 요소 k* L, dec를 수학식 163에 나타내는 바와 같이 생성한다.
[수학식 163]
Figure 112013081656622-pct00063
또, 상술한 바와 같이, 수학식 110에 나타내는 기저 B와 기저 B*에 대하여, 수학식 111이다. 따라서, 수학식 163은, 이하와 같이, 기저 B* 0 및 기저 B* t(t=1, …, L)의 기저 벡터의 계수가 설정되고, 복호 요소 k* L, dec가 생성되는 것을 의미한다.
우선, 기저 B* 0의 부분에 대하여 설명한다. 여기서는, 표기를 간략화하여, 기저 벡터 b* 0, i 중, i의 부분만으로 기저 벡터를 특정한다. 예컨대, 기저 벡터 1이면, 기저 벡터 b* 0, 1을 의미한다. 또한, 기저 벡터 1, …, 3이면, 기저 벡터 b* 0, 1, …, b* 0, 3을 의미한다.
기저 B* 0의 기저 벡터 1의 계수로서 -sdec, 0이 설정된다. 기저 벡터 1+1, …, 1+u0의 계수로서 0이 설정된다. 기저 벡터 1+u0+1의 계수로서 1이 설정된다. 기저 벡터 1+u0+1+1, …, 1+u0+1+w0의 계수로서 ηdec, 0, 1, …, ηdec, 0, w0(여기서, w0은 w0이다)이 설정된다. 기저 벡터 1+u0+1+w0+1, …, 1+u0+1+w0+z0의 계수로서 0이 설정된다.
다음으로, 기저 B* t(t=1, …, L)의 부분에 대하여 설명한다. 여기서는, 표기를 간략화하여, 기저 벡터 b* t, i 중, i의 부분만으로 기저 벡터를 특정한다. 예컨대, 기저 벡터 1이면, 기저 벡터 b* t, 1을 의미한다. 또한, 기저 벡터 1, …, 3이면, 기저 벡터 b* t, 1, …, b* t, 3을 의미한다. 또한, 기저 B* t(t=1, …, L)에 대해서는, ρt의 값이 0인지 1인지에 따라 달라진다.
ρt의 값이 0인 경우, 기저 B* t(t=1, …, L)의 기저 벡터 1의 계수로서 sdec , tdec , tvt , 1이 설정된다. 기저 벡터 2, …, nt의 계수로서 θdec , tvt , 2, …, θdec , tvt, nt(여기서, nt는 nt이다)가 설정된다. 기저 벡터 nt+1, …, nt+ut의 계수로서 0이 설정된다. 기저 벡터 nt+ut+1, …, nt+ut+wt의 계수로서 ηdec , t, 1, …, ηdec , t, wt(여기서, wt는 wt이다)가 설정된다. 기저 벡터 nt+ut+wt+1, …, nt+ut+wt+zt의 계수로서 0이 설정된다.
한편, ρt의 값이 1인 경우, 기저 B* t(t=1, …, L)의 기저 벡터 1, …, nt의 계수로서 sdec , tvt , 1, …, sdec , tvt , nt(여기서, nt는 nt이다)가 설정된다. 기저 벡터 nt+1, …, nt+ut의 계수로서 0이 설정된다. 기저 벡터 nt+ut+1, …, nt+ut+wt의 계수로서 ηdec , t, 1, …, ηdec , t, wt(여기서, wt는 wt이다)가 설정된다. 기저 벡터 nt+ut+wt+1, …, nt+ut+wt+zt의 계수로서 0이 설정된다.
(S604 : 제 1 랜덤화 요소 생성 단계)
랜덤화 요소 생성부(143)는, 처리 장치에 의해, j=1, …, 2L의 각 정수 j에 대하여, 복호 키 skL의 요소인 제 1 랜덤화 요소 k* L, ran , j를 수학식 164에 나타내는 바와 같이 생성한다.
[수학식 164]
Figure 112013081656622-pct00064
또, 상술한 바와 같이, 수학식 110에 나타내는 기저 B와 기저 B*에 대하여, 수학식 111이다. 따라서, 수학식 164는, 이하와 같이, 기저 B* 0 및 기저 B* t(t=1, …, L)의 기저 벡터의 계수가 설정되고, 제 1 랜덤화 요소 k* L, ran , j가 생성되는 것을 의미한다.
우선, 기저 B* 0의 부분에 대하여 설명한다. 여기서는, 표기를 간략화하여, 기저 벡터 b* 0, i 중, i의 부분만으로 기저 벡터를 특정한다. 예컨대, 기저 벡터 1이면, 기저 벡터 b* 0, 1을 의미한다. 또한, 기저 벡터 1, …, 3이면, 기저 벡터 b* 0, 1, …, b* 0, 3을 의미한다.
기저 B* 0의 기저 벡터 1의 계수로서 -sran, j, 0이 설정된다. 기저 벡터 1+1, …, 1+u0+1의 계수로서 0이 설정된다. 기저 벡터 1+u0+1+1, …, 1+u0+1+w0의 계수로서 ηran, j, 0, 1, …, ηran, j, 0, w0(여기서, w0은 w0이다)이 설정된다. 기저 벡터 1+u0+1+w0+1, …, 1+u0+1+w0+z0의 계수로서 0이 설정된다.
다음으로, 기저 B* t(t=1, …, L)의 부분에 대하여 설명한다. 여기서는, 표기를 간략화하여, 기저 벡터 b* t, i 중, i의 부분만으로 기저 벡터를 특정한다. 예컨대, 기저 벡터 1이면, 기저 벡터 b* t, 1을 의미한다. 또한, 기저 벡터 1, …, 3이면, 기저 벡터 b* t, 1, …, b* t, 3을 의미한다. 또한, 기저 B* t(t=1, …, L)에 대해서는, ρt의 값이 0인지 1인지에 따라 달라진다.
ρt의 값이 0인 경우, 기저 B* t(t=1, …, L)의 기저 벡터 1의 계수로서 sran , j, tran , j, tvt , 1이 설정된다. 기저 벡터 2, …, nt의 계수로서 θran , j, tvt , 2, …, θran, j, tvt , nt(여기서, nt는 nt이다)가 설정된다. 기저 벡터 nt+1, …, nt+ut의 계수로서 0이 설정된다. 기저 벡터 nt+ut+1, …, nt+ut+wt의 계수로서 ηran , j, t, 1, …, ηran, j, t, wt(여기서, wt는 wt이다)가 설정된다. 기저 벡터 nt+ut+wt+1, …, nt+ut+wt+zt의 계수로서 0이 설정된다.
한편, ρt의 값이 1인 경우, 기저 B* t(t=1, …, L)의 기저 벡터 1, …, nt의 계수로서 sran , j, tvt , 1, …, sran , j, tvt , nt(여기서, nt는 nt이다)가 설정된다. 기저 벡터 nt+1, …, nt+ut의 계수로서 0이 설정된다. 기저 벡터 nt+ut+1, …, nt+ut+wt의 계수로서 ηran , j, t, 1, …, ηran , j, t, wt(여기서, wt는 wt이다)가 설정된다. 기저 벡터 nt+ut+wt+1, …, nt+ut+wt+zt의 계수로서 0이 설정된다.
(S605 : 제 2 랜덤화 요소 생성 단계)
랜덤화 요소 생성부(143)는, 처리 장치에 의해, τ=L+1, …, d의 각 정수 τ와, 각 정수 τ에 관하여 ι=1, …, nτ의 각 정수 ι에 대하여, 복호 키 skL의 요소인 제 2 랜덤화 요소 k* L, ran , (τ, ι, 0)을 수학식 165에 나타내는 바와 같이 생성한다.
[수학식 165]
Figure 112013081656622-pct00065
또, 상술한 바와 같이, 수학식 110에 나타내는 기저 B와 기저 B*에 대하여, 수학식 111이다. 따라서, 수학식 165는, 이하와 같이, 기저 B* 0과 기저 B* t(t=1, …, L)와 기저 B* τ의 기저 벡터의 계수가 설정되고, 제 2 랜덤화 요소 k* L, ran , (τ, ι, 0)이 생성되는 것을 의미한다.
우선, 기저 B* 0의 부분에 대하여 설명한다. 여기서는, 표기를 간략화하여, 기저 벡터 b* 0, i 중, i의 부분만으로 기저 벡터를 특정한다. 예컨대, 기저 벡터 1이면, 기저 벡터 b* 0, 1을 의미한다. 또한, 기저 벡터 1, …, 3이면, 기저 벡터 b* 0, 1, …, b* 0, 3을 의미한다.
기저 B* 0의 기저 벡터 1의 계수로서 -sran, 0, 0이 설정된다. 기저 벡터 1+1, …, 1+u0+1의 계수로서 0이 설정된다. 기저 벡터 1+u0+1+1, …, 1+u0+1+w0의 계수로서 ηran, 0, 0, 1, …, ηran, 0, 0, w0(여기서, w0은 w0이다)이 설정된다. 기저 벡터 1+u0+1+w0+1, …, 1+u0+1+w0+z0의 계수로서 0이 설정된다.
다음으로, 기저 B* t(t=1, …, L)의 부분에 대하여 설명한다. 여기서는, 표기를 간략화하여, 기저 벡터 b* t, i 중, i의 부분만으로 기저 벡터를 특정한다. 예컨대, 기저 벡터 1이면, 기저 벡터 b* t, 1을 의미한다. 또한, 기저 벡터 1, …, 3이면, 기저 벡터 b* t, 1, …, b* t, 3을 의미한다. 또한, 기저 B* t(t=1, …, L)에 대해서는, ρt의 값이 0인지 1인지에 따라 달라진다.
ρt의 값이 0인 경우, 기저 B* t(t=1, …, L)의 기저 벡터 1의 계수로서 sran , 0, tran , 0, tvt , 1이 설정된다. 기저 벡터 2, …, nt의 계수로서 θran , 0, tvt , 2, …, θran, 0, tvt , nt(여기서, nt는 nt이다)가 설정된다. 기저 벡터 nt+1, …, nt+ut의 계수로서 0이 설정된다. 기저 벡터 nt+ut+1, …, nt+ut+wt의 계수로서 ηran , 0, t, 1, …, ηran, 0, t, wt(여기서, wt는 wt이다)가 설정된다. 기저 벡터 nt+ut+wt+1, …, nt+ut+wt+zt의 계수로서 0이 설정된다.
한편, ρt의 값이 1인 경우, 기저 B* t(t=1, …, L)의 기저 벡터 1, …, nt의 계수로서 sran , 0, tvt , 1, …, sran , 0, tvt , nt(여기서, nt는 nt이다)가 설정된다. 기저 벡터 nt+1, …, nt+ut의 계수로서 0이 설정된다. 기저 벡터 nt+ut+1, …, nt+ut+wt의 계수로서 ηran , 0, t, 1, …, ηran , 0, t, wt(여기서, wt는 wt이다)가 설정된다. 기저 벡터 nt+ut+wt+1, …, nt+ut+wt+zt의 계수로서 0이 설정된다.
다음으로, 기저 B* τ의 부분에 대하여 설명한다. 여기서는, 표기를 간략화하여, 기저 벡터 b* τ, i 중, i의 부분만으로 기저 벡터를 특정한다. 예컨대, 기저 벡터 1이면, 기저 벡터 b* τ, 1을 의미한다. 또한, 기저 벡터 1, …, 3이면, 기저 벡터 b* τ, 1, …, b* τ, 3을 의미한다.
기저 B* τ의 기저 벡터 1의 계수로서 sran , 0, L+1이 설정된다. 기저 벡터 2, …, nτ, …, nτ+uτ의 계수로서 0이 설정된다. 기저 벡터 nτ+uτ+1, …, nτ+uτ+wτ의 계수로서 ηran , 0, (τ, ι), 1, …, ηran , 0, (τ, ι)s, wτ(여기서, wτ는 wτ이다)가 설정된다. 기저 벡터 nτ+uτ+wτ+1, …, nτ+uτ+wτ+zτ의 계수로서 0이 설정된다.
(S606 : 제 1 위양 요소 생성 단계)
위양 요소 생성부(144)는, 처리 장치에 의해, τ=L+1, …, d의 각 정수 τ와, 각 정수 τ에 관하여 ι=1, …, nτ의 각 정수 ι에 대하여, 복호 키 skL의 요소인 제 1 위양 요소 k* L, del , (τ, ι, 0)을 수학식 166에 나타내는 바와 같이 생성한다.
[수학식 166]
Figure 112013081656622-pct00066
또, 상술한 바와 같이, 수학식 110에 나타내는 기저 B와 기저 B*에 대하여, 수학식 111이다. 따라서, 수학식 166은, 이하와 같이, 기저 B* 0과 기저 B* t(t=1, …, L)와 기저 B* τ의 기저 벡터의 계수가 설정되고, 제 1 위양 요소 k* L, del , (τ, ι, 0)이 생성되는 것을 의미한다.
우선, 기저 B* 0의 부분에 대하여 설명한다. 여기서는, 표기를 간략화하여, 기저 벡터 b* 0, i 중, i의 부분만으로 기저 벡터를 특정한다. 예컨대, 기저 벡터 1이면, 기저 벡터 b* 0, 1을 의미한다. 또한, 기저 벡터 1, …, 3이면, 기저 벡터 b* 0, 1, …, b* 0, 3을 의미한다.
기저 B* 0의 기저 벡터 1의 계수로서 -sdel, 0, 0이 설정된다. 기저 벡터 1+1, …, 1+u0+1의 계수로서 0이 설정된다. 기저 벡터 1+u0+1+1, …, 1+u0+1+w0의 계수로서 ηdel, 0, 0, 1, …, ηdel, 0, 0, w0(여기서, w0은 w0이다)이 설정된다. 기저 벡터 1+u0+1+w0+1, …, 1+u0+1+w0+z0의 계수로서 0이 설정된다.
다음으로, 기저 B* t(t=1, …, L)의 부분에 대하여 설명한다. 여기서는, 표기를 간략화하여, 기저 벡터 b* t, i 중, i의 부분만으로 기저 벡터를 특정한다. 예컨대, 기저 벡터 1이면, 기저 벡터 b* t, 1을 의미한다. 또한, 기저 벡터 1, …, 3이면, 기저 벡터 b* t, 1, …, b* t, 3을 의미한다. 또한, 기저 B* t(t=1, …, L)에 대해서는, ρt의 값이 0인지 1인지에 따라 달라진다.
ρt의 값이 0인 경우, 기저 B* t(t=1, …, L)의 기저 벡터 1의 계수로서 sdel , 0, tdel , 0, tvt , 1이 설정된다. 기저 벡터 2, …, nt의 계수로서 θdel , 0, tvt , 2, …, θdel, 0, tvt , nt(여기서, nt는 nt이다)가 설정된다. 기저 벡터 nt+1, …, nt+ut의 계수로서 0이 설정된다. 기저 벡터 nt+ut+1, …, nt+ut+wt의 계수로서 ηdel , 0, t, 1, …, ηdel, 0, t, wt(여기서, wt는 wt이다)가 설정된다. 기저 벡터 nt+ut+wt+1, …, nt+ut+wt+zt의 계수로서 0이 설정된다.
한편, ρt의 값이 1인 경우, 기저 B* t(t=1, …, L)의 기저 벡터 1, …, nt의 계수로서 sdel , 0, tvt , 1, …, sdel , 0, tvt , nt(여기서, nt는 nt이다)가 설정된다. 기저 벡터 nt+1, …, nt+ut의 계수로서 0이 설정된다. 기저 벡터 nt+ut+1, …, nt+ut+wt의 계수로서 ηdel , 0, t, 1, …, ηdel , 0, t, wt(여기서, wt는 wt이다)가 설정된다. 기저 벡터 nt+ut+wt+1, …, nt+ut+wt+zt의 계수로서 0이 설정된다.
다음으로, 기저 B* τ의 부분에 대하여 설명한다. 여기서는, 표기를 간략화하여, 기저 벡터 b* τ, i 중, i의 부분만으로 기저 벡터를 특정한다. 예컨대, 기저 벡터 1이면, 기저 벡터 b* τ, 1을 의미한다. 또한, 기저 벡터 1, …, 3이면, 기저 벡터 b* τ, 1, …, b* τ, 3을 의미한다.
기저 B* τ의 기저 벡터 1, …, nτ의 계수로서 sdel , 0, L+1e τ, 1+ψe τ, ι가 설정된다. 기저 벡터 nτ+1, …, nτ+uτ의 계수로서 0이 설정된다. 기저 벡터 nτ+uτ+1, …, nτ+uτ+wτ의 계수로서 ηdel , 0, (τ, ι), 1, …, ηdel , 0, (τ, ι), wτ(여기서, wτ는 wτ이다)가 설정된다. 기저 벡터 nτ+uτ+wτ+1, …, nτ+uτ+wτ+zτ의 계수로서 0이 설정된다.
(S607 : 제 2 위양 요소 생성 단계)
위양 요소 생성부(144)는, 처리 장치에 의해, τ=L+1, …, d의 각 정수 τ와, 각 정수 τ에 관하여 ι=1, …, nτ의 각 정수 ι에 대하여, 복호 키 skL의 요소인 제 2 위양 요소 k* L, del , (τ, ι, 1)을 수학식 167에 나타내는 바와 같이 생성한다.
[수학식 167]
Figure 112013081656622-pct00067
또, 상술한 바와 같이, 수학식 110에 나타내는 기저 B와 기저 B*에 대하여, 수학식 111이다. 따라서, 수학식 167은, 이하와 같이, 기저 B* 0과 기저 B* t(t=1, …, L)와 기저 B* τ의 기저 벡터의 계수가 설정되고, 제 2 위양 요소 k* L, del , (τ, ι, 1)이 생성되는 것을 의미한다.
우선, 기저 B* 0의 부분에 대하여 설명한다. 여기서는, 표기를 간략화하여, 기저 벡터 b* 0, i 중, i의 부분만으로 기저 벡터를 특정한다. 예컨대, 기저 벡터 1이면, 기저 벡터 b* 0, 1을 의미한다. 또한, 기저 벡터 1, …, 3이면, 기저 벡터 b* 0, 1, …, b* 0, 3을 의미한다.
기저 B* 0의 기저 벡터 1의 계수로서 -sdel, 1, 0이 설정된다. 기저 벡터 1+1, …, 1+u0+1의 계수로서 0이 설정된다. 기저 벡터 1+u0+1+1, …, 1+u0+1+w0의 계수로서 ηdel, 1, 0, 1, …, ηdel, 1, 0, w0(여기서, w0은 w0이다)이 설정된다. 기저 벡터 1+u0+1+w0+1, …, 1+u0+1+w0+z0의 계수로서 0이 설정된다.
다음으로, 기저 B* t(t=1, …, L)의 부분에 대하여 설명한다. 여기서는, 표기를 간략화하여, 기저 벡터 b* t, i 중, i의 부분만으로 기저 벡터를 특정한다. 예컨대, 기저 벡터 1이면, 기저 벡터 b* t, 1을 의미한다. 또한, 기저 벡터 1, …, 3이면, 기저 벡터 b* t, 1, …, b* t, 3을 의미한다. 또한, 기저 B* t(t=1, …, L)에 대해서는, ρt의 값이 0인지 1인지에 따라 달라진다.
ρt의 값이 0인 경우, 기저 B* t(t=1, …, L)의 기저 벡터 1의 계수로서 sdel , 1, tdel , 1, tvt , 1이 설정된다. 기저 벡터 2, …, nt의 계수로서 θdel , 1, tvt , 2, …, θdel, 1, tvt , nt(여기서, nt는 nt이다)가 설정된다. 기저 벡터 nt+1, …, nt+ut의 계수로서 0이 설정된다. 기저 벡터 nt+ut+1, …, nt+ut+wt의 계수로서 ηdel , 1, t, 1, …, ηdel, 1, t, wt(여기서, wt는 wt이다)가 설정된다. 기저 벡터 nt+ut+wt+1, …, nt+ut+wt+zt의 계수로서 0이 설정된다.
한편, ρt의 값이 1인 경우, 기저 B* t(t=1, …, L)의 기저 벡터 1, …, nt의 계수로서 sdel , 1, tvt , 1, …, sdel , 1, tvt , nt(여기서, nt는 nt이다)가 설정된다. 기저 벡터 nt+1, …, nt+ut의 계수로서 0이 설정된다. 기저 벡터 nt+ut+1, …, nt+ut+wt의 계수로서 ηdel , 1, t, 1, …, ηdel , 1, t, wt(여기서, wt는 wt이다)가 설정된다. 기저 벡터 nt+ut+wt+1, …, nt+ut+wt+zt의 계수로서 0이 설정된다.
다음으로, 기저 B* τ의 부분에 대하여 설명한다. 여기서는, 표기를 간략화하여, 기저 벡터 b* τ, i 중, i의 부분만으로 기저 벡터를 특정한다. 예컨대, 기저 벡터 1이면, 기저 벡터 b* τ, 1을 의미한다. 또한, 기저 벡터 1, …, 3이면, 기저 벡터 b* τ, 1, …, b* τ, 3을 의미한다.
기저 B* τ의 기저 벡터 1, …, nτ의 계수로서 sdel , 1, L+1e τ, ι가 설정된다. 기저 벡터 nτ+1, …, nτ+uτ의 계수로서 0이 설정된다. 기저 벡터 nτ+uτ+1, …, nτ+uτ+wτ의 계수로서 ηdel , 1, (τ, ι), 1, …, ηdel , 1, (τ, ι), wτ(여기서, wτ는 wτ이다)가 설정된다. 기저 벡터 nτ+uτ+wτ+1, …, nτ+uτ+wτ+zτ의 계수로서 0이 설정된다.
(S608 : 키 배포 단계)
키 배포부(150)는, 복호 요소 k* L, dec와, 제 1 랜덤화 요소 k* L, ran , j(j=1, …, 2L)와, 제 2 랜덤화 요소 k* L, ran , (τ, ι, 0)(τ=L+1, …, d;(τ, ι)=(τ, 1), …, (τ, nτ))과, 제 1 위양 요소 k* L, del , (τ, ι, 0)(τ=L+1, …, d;(τ, ι)=(τ, 1), …, (τ, nτ))과, 제 2 위양 요소 k* L, del , (τ, ι, 1)(τ=L+1, …, d;(τ, ι)=(τ, 1), …, (τ, nτ))을 요소로 하는 복호 키 skL을, 예컨대 통신 장치에 의해 네트워크를 통하여 비밀리에 복호 장치(300)에 배포한다. 물론, 복호 키 skL은, 다른 방법에 의해 복호 장치(300)에 배포되더라도 좋다.
다시 말해, (S601)로부터 (S607)에 있어서, 키 생성 장치(100)는 수학식 168, 수학식 169에 나타내는 KeyGen 알고리즘을 실행하여, 복호 키 skL을 생성한다. 그리고, (S608)에서, 키 생성 장치(100)는 생성된 복호 키 skL을 복호 장치(300)에 배포한다.
[수학식 168]
Figure 112013081656622-pct00068
[수학식 169]
Figure 112013081656622-pct00069
도 18에 근거하여, 복호 장치(300)가 실행하는 Dec 알고리즘의 처리에 대하여 설명한다.
(S701 : 복호 키 취득 단계)
복호 키 취득부(310)는, 예컨대, 통신 장치에 의해 네트워크를 통하여, 복호 키 skL을 취득한다. 또한, 복호 키 취득부(310)는, 키 생성 장치(100)가 생성한 마스터 공개 키 pk를 취득한다.
(S702 : 데이터 수신 단계)
데이터 수신부(320)는, 예컨대, 통신 장치에 의해 네트워크를 통하여, 암호화 장치(200)가 송신한 암호화 데이터 ct를 수신한다.
(S703 : 페어링 연산 단계)
페어링 연산부(330)는, 처리 장치에 의해, 수학식 170에 나타내는 페어링 연산을 행하여, 세션 키 K=gT ζ를 계산한다.
[수학식 170]
Figure 112013081656622-pct00070
여기서, 수학식 171이다.
[수학식 171]
Figure 112013081656622-pct00071
또, t=1, …, L의 각 정수 t에 관하여, ρt=0의 정수 t에 대하여 v t와 x t의 내적이 0이고, ρt=1의 정수 t에 대하여 v t와 x t의 내적이 0이 아니면, 수학식 170을 계산하는 것에 의해, 세션 키 K가 계산된다.
(S704 : 메시지 계산 단계)
메시지 계산부(340)는, 처리 장치에 의해, 암호화 데이터 c2를 세션 키 K로 나누는 것에 의해, 메시지 m’(=m)를 계산한다.
다시 말해, (S701)로부터 (S704)에 있어서, 복호 장치(300)는 수학식 172에 나타내는 Dec 알고리즘을 실행하여, 메시지 m’(=m)를 계산한다.
[수학식 172]
Figure 112013081656622-pct00072
도 19에 근거하여, 키 위양 장치(400)가 실행하는 DelegateL 알고리즘의 처리에 대하여 설명한다.
(S801 : 복호 키 취득 단계)
복호 키 취득부(410)는, 예컨대, 통신 장치에 의해 네트워크를 통하여, 복호 키 skL을 취득한다. 또한, 복호 키 취득부(410)는, 키 생성 장치(100)가 생성한 마스터 공개 키 pk를 취득한다.
(S802 : 정보 입력 단계)
정보 입력부(420)는, 입력 장치에 의해, 술어 정보 (v L+1, ρL+1):=(vL +1, i(i=1, …, nL +1), ρL+1∈{0, 1})을 입력한다. 또, 술어 정보로서는, 키가 위양되는 자의 속성이 입력된다.
(S803 : 난수 생성 단계)
난수 생성부(431)는, 처리 장치에 의해, j=1, …, 2L과, j’=1, …, 2(L+1)과, τ=L+2, …, d와, (τ, ι)=(τ, 1), …, (τ, nτ)와, t=0, …, L+1, τ와, (t, i)=(t, 1), …, (t, nt)의 각 정수 j, j’, τ, ι, t, i에 대하여, 난수 αdec , j, σdec, αran , j’, j, σran , j’, αran , (τ, ι, 0), j, σran , (τ, ι, 0), φran , (τ, ι, 0), αdel , (τ, ι, 0), j, σdel , (τ, ι, 0), φdel , (τ, ι, 0), αdel , (τ, ι, 1), j, σdel , (τ, ι, 1), φdel , (τ, ι, 1), ηdec , (t, i), ηran , j’, (t, i), ηran , (τ, ι, 0), (t, i), ηdel , (τ, ι, 0), (t, i), ηdel , (τ, ι, 1), (t, i), ψ0, ψ1을 수학식 173에 나타내는 바와 같이 생성한다.
[수학식 173]
Figure 112013081656622-pct00073
(S804 : 하위 복호 요소 생성 단계)
하위 복호 요소 생성부(432)는, 처리 장치에 의해, 위양 키 skL +1의 요소인 하위 복호 요소 k* L+1, dec를 수학식 174에 나타내는 바와 같이 생성한다.
[수학식 174]
Figure 112013081656622-pct00074
(S805 : 제 1 하위 랜덤화 요소 생성 단계)
하위 랜덤화 요소 생성부(433)는, 처리 장치에 의해, j’=1, …, 2(L+1)의 각 정수 j’에 대하여, 위양 키 skL +1의 요소인 제 1 하위 랜덤화 요소 k* L+1, ran , j’를 수학식 175에 나타내는 바와 같이 생성한다.
[수학식 175]
Figure 112013081656622-pct00075
(S806 : 제 2 하위 랜덤화 요소 생성 단계)
하위 랜덤화 요소 생성부(433)는, 처리 장치에 의해, τ=L+2, …, d의 각 정수 τ와, 각 정수 τ에 대하여 ι=1, …, nτ의 각 정수 ι에 대하여, 위양 키 skL +1의 요소인 제 2 하위 랜덤화 요소 k* L+1, ran , (τ, ι)를 수학식 176에 나타내는 바와 같이 생성한다.
[수학식 176]
Figure 112013081656622-pct00076
(S807 : 제 1 하위 위양 요소 생성 단계)
하위 위양 요소 생성부(434)는, 처리 장치에 의해, τ=L+2, …, d의 각 정수 τ와, 각 정수 τ에 대하여 ι=1, …, nτ의 각 정수 ι에 대하여, 위양 키 skL +1의 요소인 제 1 하위 위양 요소 k* L+1, del , (τ, ι, 0)을 수학식 177에 나타내는 바와 같이 생성한다.
[수학식 177]
Figure 112013081656622-pct00077
(S808 : 제 2 하위 위양 요소 생성 단계)
하위 위양 요소 생성부(434)는, 처리 장치에 의해, τ=L+2, …, d의 각 정수 τ와, 각 정수 τ에 대하여 ι=1, …, nτ의 각 정수 ι에 대하여, 위양 키 skL +1의 요소인 제 2 하위 위양 요소 k* L+1, del , (τ, ι, 1)을 수학식 178에 나타내는 바와 같이 생성한다.
[수학식 178]
Figure 112013081656622-pct00078
(S809 : 키 배포 단계)
키 배포부(150)는, 하위 복호 요소 k* L+1, dec와, 제 1 하위 랜덤화 요소 k* L+1, ran, j’(j’=1, …, 2(L+1))와, 제 2 하위 랜덤화 요소 k* L+1, ran , (τ, ι, 0)(τ=L+2, …, d;(τ, ι)=(τ, 1), …, (τ, nτ))과, 제 1 하위 위양 요소 k* L+2, del , (τ, ι, 0)(τ=L+2, …, d;(τ, ι)=(τ, 1), …, (τ, nτ))과, 제 2 하위 위양 요소 k* L+2, del , (τ, ι, 1)(τ=L+2, …, d;(τ, ι)=(τ, 1), …, (τ, nτ))을 요소로 하는 위양 키 skL +1을, 예컨대 통신 장치에 의해 네트워크를 통하여 비밀리에 하위의 복호 장치(300)에 배포한다. 물론, 위양 키 skL +1은, 다른 방법에 의해 하위의 복호 장치(300)에 배포되더라도 좋다.
다시 말해, (S501)로부터 (S507)에 있어서, 키 위양 장치(400)는 수학식 179, 수학식 180에 나타내는 DelegateL 알고리즘을 실행하여, 위양 키 skL +1을 생성한다. 그리고, (S508)에서, 키 위양 장치(400)는 생성된 위양 키 skL +1을 하위의 복호 장치(300)에 배포한다.
[수학식 179]
Figure 112013081656622-pct00079
[수학식 180]
Figure 112013081656622-pct00080
또, 하위의 복호 장치(300)가, 위양 키 skL +1을 이용하여 Dec 알고리즘을 실행한 경우, 도 15의 (S403)에서는, (v 1, …, v L+1)과 (x 1, …, x L+1)의 내적이 0이면, 수학식 170을 계산하는 것에 의해, 세션 키 K가 계산된다.
이상과 같이, 실시의 형태 2에 따른 암호 처리 시스템(10)은, 일부에 대해서는 속성 정보와 술어 정보의 내적이 0이 되고, 나머지의 부분에 대해서는 속성 정보와 술어 정보의 내적이 0이 되지 않는 경우에, 복호 가능한 계층적 내적 술어 암호 방식을 실현한다. 그 때문에, 예컨대, 긍정형과 부정형의 조건 설정 등이 가능하다.
또, 상기 설명에 있어서, ut, wt, zt(t=0, …, d)의 차원은, 안전성을 높이기 위해 마련한 차원이다. 따라서, 안전성이 낮아져 버리지만, ut, wt, zt(t=0, …, d)를 각각 0으로 하여, ut, wt, zt(t=0, …, d)의 차원을 마련하지 않더라도 좋다.
또한, 상기 설명에서는, N0에 1+u0+1+w0+z0을 설정하고, Nt에 nt+ut+wt+zt를 설정했다. 그러나, 1+u0+1+w0+z0을 1+1+1+1+1로 하여 N0에 5를 설정하고, nt+ut+wt+zt를 nt+nt+nt+1로 하여 Nt에 3nt+1을 설정하더라도 좋다.
이 경우, 수학식 168, 수학식 169에 나타내는 KeyGen 알고리즘은, 수학식 181, 수학식 182와 같이 다시 쓸 수 있다.
[수학식 181]
Figure 112013081656622-pct00081
[수학식 182]
Figure 112013081656622-pct00082
또한, 수학식 179, 수학식 180에 나타내는 DelegateL 알고리즘은, 수학식 183, 수학식 184와 같이 다시 쓸 수 있다.
[수학식 183]
Figure 112013081656622-pct00083
[수학식 184]
Figure 112013081656622-pct00084
또, 수학식 172에 나타내는 Dec 알고리즘에 변경은 없다.
또한, Setup 알고리즘은, 암호 처리 시스템(10)을 셋업할 때에 한 번 실행하면 되고, 복호 키를 생성할 때마다 실행할 필요는 없다. 또한, 상기 설명에서는, Setup 알고리즘과 KeyGen 알고리즘을 키 생성 장치(100)가 실행하는 것으로 했지만, Setup 알고리즘과 KeyGen 알고리즘을 각각 다른 장치가 실행하는 것으로 하더라도 좋다.
실시의 형태 3.
이상의 실시의 형태에서는, 쌍대 벡터 공간에 있어서 암호 처리를 실현하는 방법에 대하여 설명했다. 본 실시의 형태에서는, 쌍대 가군에 있어서 암호 처리를 실현하는 방법에 대하여 설명한다.
다시 말해, 이상의 실시의 형태에서는, 소수 위수 q의 순회군에 있어서 암호 처리를 실현했다. 그러나, 합성수 M을 이용하여 수학식 185와 같이 환 R을 나타낸 경우, 환 R을 계수로 하는 가군에 있어서도, 상기 실시의 형태에서 설명한 암호 처리를 적용할 수 있다.
[수학식 185]
Figure 112013081656622-pct00085
실시의 형태 1에서 설명한 계층적 술어 암호 방식을, 환 R을 계수로 하는 가군에 있어서 실현하면 수학식 186으로부터 수학식 193과 같이 된다.
[수학식 186]
Figure 112013081656622-pct00086
[수학식 187]
Figure 112013081656622-pct00087
[수학식 188]
Figure 112013081656622-pct00088
[수학식 189]
Figure 112013081656622-pct00089
[수학식 190]
Figure 112013081656622-pct00090
[수학식 191]
Figure 112013081656622-pct00091
[수학식 192]
Figure 112013081656622-pct00092
[수학식 193]
Figure 112013081656622-pct00093
실시의 형태 2에서 설명한 계층적 술어 암호 방식을, 환 R을 계수로 하는 가군에 있어서 실현하면 수학식 194로부터 수학식 199와 같이 된다. 또, Setup 알고리즘과 Gob 알고리즘은, 수학식 186과 수학식 187에 나타내는 바와 같다.
[수학식 194]
Figure 112013081656622-pct00094
[수학식 195]
Figure 112013081656622-pct00095
[수학식 196]
Figure 112013081656622-pct00096
[수학식 197]
Figure 112013081656622-pct00097
[수학식 198]
Figure 112013081656622-pct00098
[수학식 199]
Figure 112013081656622-pct00099
다음으로, 실시의 형태에 있어서의 암호 처리 시스템(10)(키 생성 장치(100), 암호화 장치(200), 복호 장치(300), 키 위양 장치(400))의 하드웨어 구성에 대하여 설명한다.
도 20은 키 생성 장치(100), 암호화 장치(200), 복호 장치(300), 키 위양 장치(400)의 하드웨어 구성의 일례를 나타내는 도면이다.
도 20에 나타내는 바와 같이, 키 생성 장치(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)」, 「마스터 공개 키 취득부(210)」, 「정보 입력부(220)」, 「암호화 데이터 생성부(230)」, 「데이터 송신부(240)」, 「복호 키 취득부(310)」, 「데이터 수신부(320)」, 「페어링 연산부(330)」, 「메시지 계산부(340)」, 「복호 키 취득부(410)」, 「정보 입력부(420)」, 「위양 키 생성부(430)」, 「키 배포부(440)」 등으로서 설명한 기능을 실행하는 소프트웨어나 프로그램이나 그 밖의 프로그램이 기억되어 있다. 프로그램은, CPU(911)에 의해 판독되어 실행된다.
파일군(924)에는, 상기의 설명에 있어서 「마스터 공개 키 pk」, 「마스터 비밀 키 sk」, 「복호 키 skL」, 「위양 키 skL +1」, 「암호화 데이터 ct」, 「속성 정보」, 「술어 정보」, 「메시지 m」 등의 정보나 데이터나 신호값이나 변수값이나 파라미터가, 「파일」이나 「데이터베이스」의 각 항목으로서 기억된다. 「파일」이나 「데이터베이스」는, 디스크나 메모리 등의 기록 매체에 기억된다. 디스크나 메모리 등의 기억 매체에 기억된 정보나 데이터나 신호값이나 변수값이나 파라미터는, 읽기/쓰기 회로를 통하여 CPU(911)에 의해 메인 메모리나 캐시 메모리에 판독되어, 추출ㆍ검색ㆍ참조ㆍ비교ㆍ연산ㆍ계산ㆍ처리ㆍ출력ㆍ인쇄ㆍ표시 등의 CPU(911)의 동작에 이용된다. 추출ㆍ검색ㆍ참조ㆍ비교ㆍ연산ㆍ계산ㆍ처리ㆍ출력ㆍ인쇄ㆍ표시의 CPU(911)의 동작 동안, 정보나 데이터나 신호값이나 변수값이나 파라미터는, 메인 메모리나 캐시 메모리나 버퍼 메모리에 일시적으로 기억된다.
또한, 상기의 설명에 있어서의 플로차트의 화살표의 부분은 주로 데이터나 신호의 입출력을 나타내고, 데이터나 신호값은, RAM(914)의 메모리, 그 밖의 광 디스크 등의 기록 매체나 IC칩에 기록된다. 또한, 데이터나 신호는, 버스(912)나 신호선이나 케이블, 그 밖의 전송 매체나 전파에 의해 온라인 전송된다.
또한, 상기의 설명에 있어서 「~부」로서 설명하는 것은, 「~회로」, 「~장치」, 「~기기」, 「~수단」, 「~기능」이더라도 좋고, 또한, 「~단계」, 「~수순」, 「~처리」이더라도 좋다. 또한, 「~장치」로서 설명하는 것은, 「~회로」, 「~기기」, 「~수단」, 「~기능」이더라도 좋고, 또한, 「~단계」, 「~수순」, 「~처리」이더라도 좋다. 또한, 「~처리」로서 설명하는 것은 「~단계」이더라도 상관없다. 즉, 「~부」로서 설명하는 것은, ROM(913)에 기억된 펌웨어로 실현되고 있더라도 상관없다. 혹은, 소프트웨어만, 혹은, 소자ㆍ디바이스ㆍ기판ㆍ배선 등의 하드웨어만, 혹은, 소프트웨어와 하드웨어의 조합, 또한, 펌웨어와의 조합으로 실시되더라도 상관없다. 펌웨어와 소프트웨어는, 프로그램으로서, ROM(913) 등의 기록 매체에 기억된다. 프로그램은 CPU(911)에 의해 판독되어, CPU(911)에 의해 실행된다. 즉, 프로그램은, 상기에서 말한 「~부」로서 컴퓨터 등을 기능시키는 것이다. 혹은, 상기에서 말한 「~부」의 수순이나 방법을 컴퓨터 등에 실행시키는 것이다.
10 : 암호 처리 시스템 100 : 키 생성 장치
110 : 마스터 키 생성부 120 : 마스터 키 기억부
130 : 정보 입력부 140 : 복호 키 생성부
141 : 난수 생성부 142 : 복호 요소 생성부
143 : 랜덤화 요소 생성부 144 : 위양 요소 생성부
150 : 키 배포부 200 : 암호화 장치
210 : 마스터 공개 키 취득부 220 : 정보 입력부
221 : 속성 정보 입력부 222 : 메시지 입력부
230 : 암호화 데이터 생성부 231 : 난수 생성부
232 : 암호화 데이터 c1 생성부 233 : 암호화 데이터 c2 생성부
240 : 데이터 송신부 300 : 복호 장치
310 : 복호 키 취득부 320 : 데이터 수신부
330 : 페어링 연산부 340 : 메시지 계산부
400 : 키 위양 장치 410 : 복호 키 취득부
420 : 정보 입력부 430 : 위양 키 생성부
431 : 난수 생성부 432 : 하위 복호 요소 생성부
433 : 하위 랜덤화 요소 생성부 434 : 하위 위양 요소 생성부
440 : 키 배포부

Claims (18)

  1. t=1, …, L+1(L은 1 이상의 정수)의 각 정수 t에 대한 기저 Bt와 기저 B* t를 이용하여 암호 처리를 행하는 암호 처리 시스템으로서,
    t=1, …, L 중 적어도 일부의 정수 t에 대한 기저 Bt의 기저 벡터에 속성 정보 x t를 삽입한 벡터를 암호화 데이터 ct로서 생성하는 암호화 장치와,
    t=1, …, L의 각 정수 t에 대한 기저 B* t의 기저 벡터에 술어 정보 v t를 삽입한 벡터를 복호 키 skL로 하여, 상기 암호화 장치가 생성한 암호화 데이터 ct와 상기 복호 키 skL에 대하여 페어링 연산을 행하여 상기 암호화 데이터 ct를 복호하는 복호 장치와,
    기저 B* L+1의 기저 벡터에 술어 정보 v L+1을 삽입한 벡터와, 상기 복호 장치가 사용한 복호 키 skL에 근거하여, 상기 복호 키 skL의 하위의 복호 키 skL +1을 생성하는 키 위양 장치
    를 구비하는 것을 특징으로 하는 암호 처리 시스템.

  2. 제 1 항에 있어서,
    상기 암호 처리 시스템은, 상기 복호 키 skL을 생성하는 키 생성 장치를 더 구비하고,
    상기 키 생성 장치는,
    t=1, …, L의 각 정수 t에 대하여 술어 정보 v t:=(vt , i)(i=1, …, nt)를 입력하는 제 1 정보 입력부와,
    상기 제 1 정보 입력부가 입력한 술어 정보 v t와, 소정의 값 Δ와, t=1, …, L의 각 정수 t에 대한 소정의 값 θdec , t와, sdec , 0t=1 Lsdec , t인 t=0, …, L의 각 정수 t에 대한 소정의 값 sdec , t를 이용하여, 기저 B* 0의 기저 벡터 b* 0, p(p는 소정의 값)의 계수로서 -sdec , 0을 설정하고, 기저 B* 0의 기저 벡터 b* 0, q(q는 소정의 값)의 계수로서 상기 Δ를 설정하고, t=1, …, L의 각 정수 t에 대한 기저 B* t의 기저 벡터 b* t, i(i=1, …, nt)의 계수로서 sdec , te t, 1dec , tvt , i(i=1, …, nt)를 설정한 복호 요소 k* L, dec를 생성하는 복호 요소 생성부와,
    상기 복호 요소 생성부가 생성한 복호 요소 k* L, dec를 포함하는 복호 키 skL을 상기 복호 장치에 송신하는 복호 키 송신부
    를 구비하고,
    상기 암호화 장치는,
    t=1, …, L의 적어도 일부의 정수 t에 대하여 속성 정보 x t:=(xt , i)(i=1, …, nt)를 입력하는 제 2 정보 입력부와,
    상기 제 2 정보 입력부가 입력한 속성 정보 x t와, 소정의 값 ω, ζ를 이용하여, 기저 B0의 기저 벡터 b0 , p의 계수로서 상기 ω를 설정하고, 기저 B0의 기저 벡터 b0 , q의 계수로서 상기 ζ를 설정하고, 상기 적어도 일부의 정수 t에 대한 기저 Bt의 기저 벡터 bt , i(i=1, …, nt)의 계수로서 ωxt , i(i=1, …, nt)를 설정한 암호화 데이터 c1을 생성하는 암호화 데이터 c1 생성부와,
    상기 암호화 데이터 c1 생성부가 생성한 암호화 데이터 c1을 포함하는 암호화 데이터 ct를 상기 복호 장치에 송신하는 데이터 송신부
    를 구비하고,
    상기 복호 장치는, 상기 데이터 송신부가 송신한 암호화 데이터 ct에 포함되는 암호화 데이터 c1과, 상기 복호 키 송신부가 송신한 상기 복호 키 skL에 포함되는 복호 요소 k* L, dec에 대하여, 페어링 연산 e(c1, k* L, dec)를 행하는 페어링 연산부를 구비하는
    것을 특징으로 하는 암호 처리 시스템.
  3. 제 2 항에 있어서,
    상기 암호화 장치는, 값 gT=e(b0 , 1, b* 0, 1)과, 상기 Δ와, 상기 ζ로부터 얻어지는 gT Δζ를, 메시지 m에 곱한 암호화 데이터 c2를 생성하는 암호화 데이터 c2 생성부를 더 구비하고,
    상기 데이터 송신부는, 암호화 데이터 c1과, 상기 암호화 데이터 c2 생성부가 생성한 암호화 데이터 c2를 포함하는 암호화 데이터 ct를 상기 복호 장치에 송신하고,
    상기 페어링 연산부는, 상기 페어링 연산 e(c1, k* L, dec)를 행하여, 세션 키 K:=gT Δζ를 계산하고,
    상기 복호 장치는, 상기 페어링 연산부가 계산한 세션 키 K로, 상기 암호화 데이터 c2를 나누어, 상기 메시지 m을 계산하는 메시지 계산부를 더 구비하는
    것을 특징으로 하는 암호 처리 시스템.
  4. 제 2 항에 있어서,
    상기 키 생성 장치는, τ=L+1인 정수 τ와, ι=1, …, nτ의 각 정수 ι에 대하여 위양 요소 k* L, del , (τ, ι)를 생성하는 위양 요소 생성부로서, t=1, …, L의 각 정수 t에 대한 소정의 값 θdel , (τ, ι), t와, 소정의 값 ψ와, sdel , (τ, ι), 0t=1 L+1sdel , (τ, ι), t인 t=0, …, L+1의 각 정수 t에 대한 소정의 값 sdel , (τ, ι), t를 이용하여, 기저 B* 0의 기저 벡터 b* 0, p의 계수로서 -sdel , (τ, ι), 0을 설정하고, t=1, …, L의 각 정수 t에 대한 기저 B* t의 기저 벡터 b* t, i(i=1, …, nt)의 계수로서 sdel , (τ, ι), te t, 1del , (τ, ι), tvt , i(i=1, …, nt)를 설정하고, 기저 B* τ의 기저 벡터 b* τ, i(i=1, …, nτ)의 계수로서 sdel , (τ, ι), L+1e τ, 1+ψe τ, ι(i=1, …, nτ)를 설정하여 위양 요소 k* L, del , (τ, ι)를 생성하는 위양 요소 생성부를 더 구비하고,
    상기 복호 키 송신부는, 상기 복호 요소 k* L, dec와, 상기 위양 요소 생성부가 생성한 위양 요소 k* L, del , (τ, ι)를 포함하는 복호 키 skL을 상기 위양 장치에 송신하고,
    상기 키 위양 장치는,
    술어 정보 v L+1:=(vL +1, i)(i=1, …, nL +1)를 입력하는 제 3 정보 입력부와,
    상기 제 3 정보 입력부가 입력한 술어 정보 v L+1과, 상기 복호 키 송신부가 송신한 복호 키 skL을 이용하여, 수학식 1에 나타내는 벡터를 포함하는 하위 복호 요소 k* L+1, dec를 생성하는 하위 복호 요소 생성부와,
    상기 하위 복호 요소 생성부가 생성한 하위 복호 요소 k* L+1, dec를 포함하는 하위의 복호 키 skL +1을 하위의 복호 장치에 송신하는 위양 키 송신부
    를 구비하는
    것을 특징으로 하는 암호 처리 시스템.
    [수학식 1]
    Figure 112013081656622-pct00100

  5. 제 4 항에 있어서,
    상기 암호 처리 시스템은,
    적어도 기저 벡터 b0, i(i=1, …, 1+n0, 1+n0+1, …, 1+n0+1+u0, …, 1+n0+1+u0+w0, …, 1+n0+1+u0+w0+z0)(n0, u0, w0, z0은 1 이상의 정수)를 갖는 기저 B0과,
    적어도 기저 벡터 b* 0, i(i=1, …, 1+n0, 1+n0+1, …, 1+n0+1+u0, …, 1+n0+1+u0+w0, …, 1+n0+1+u0+w0+z0)(n0, u0, w0, z0은 1 이상의 정수)를 갖는 기저 B* 0과,
    적어도 기저 벡터 bt, i(i=1, …, nt, …, nt+ut, …, nt+ut+wt, …, nt+ut+wt+zt)(ut, wt, zt는 1 이상의 정수)를 갖는 기저 Bt(t=1, …, L+1)와,
    적어도 기저 벡터 b* t, i(i=1, …, nt, …, nt+ut, …, nt+ut+wt, …, nt+ut+wt+zt)를 갖는 기저 B* t(t=1, …, L+1)
    를 이용하여 암호 처리를 행하고,
    상기 복호 요소 생성부는, t=0, …, L의 각 정수 t에 대한 난수 η dec, t:=(ηdec, t, i)(i=1, …, wt)에 근거하여, 수학식 2에 나타내는 복호 요소 k* L, dec를 생성하고,
    상기 암호화 데이터 c1 생성부는, t=0, …, L의 각 정수 t에 대한 난수 φ t:=(φt, i)(i=1, …, zt)에 근거하여, 수학식 3에 나타내는 암호화 데이터 c1을 생성하는
    것을 특징으로 하는 암호 처리 시스템.
    [수학식 2]
    Figure 112013081756746-pct00101

    [수학식 3]
    Figure 112013081756746-pct00102

  6. 제 5 항에 있어서,
    상기 키 생성 장치는, j=1, …, 2L의 각 정수 j에 대하여, 제 1 랜덤화 요소 k* L, ran , j를 생성함과 아울러, τ=L+1, …, d(d는 L+1 이상의 정수)의 각 정수 τ와, 각 정수 τ에 관하여 ι=1, …, nτ의 각 정수 ι에 대하여, 제 2 랜덤화 요소 k* L, ran, (τ, ι)를 생성하는 랜덤화 요소 생성부로서, t=1, …, L의 각 정수 t에 대한 소정의 값 θran , j, t와, sran , j, 0t=1 Lsran , j, t인 t=0, …, L에 대한 소정의 값 sran , j, t와, t=0, …, L의 각 정수 t에 대한 난수 η ran , j, t:=(ηran , j, t, i)(i=1, …, wt)에 근거하여, 수학식 4에 나타내는 제 1 랜덤화 요소 k* L, ran , j를 생성하고, t=1, …, L의 각 정수 t에 대한 소정의 값 θran , (τ, ι), t와, sran , (τ, ι), 0t=1 L+1sran , (τ, ι), t인 t=0, …, L+1에 대한 소정의 값 sran , (τ, ι), t와, t=0, …, L+1의 각 정수 t에 대한 난수 η ran , (τ, ι), t:=(ηran , (τ, ι), t, i)(i=1, …, wt)에 근거하여, 수학식 5에 나타내는 제 2 랜덤화 요소 k* L, ran , (τ, ι)를 생성하는 랜덤화 요소 생성부를 더 구비하고,
    상기 위양 요소 생성부는, τ=L+1, …, d의 각 정수 τ와, 각 정수 τ에 관하여 ι=1, …, nτ의 각 정수 ι에 대하여, t=0, …, L+1의 각 정수 t에 대한 난수 η del, (τ, ι), t:=(ηdel , (τ, ι), t, i)(i=1, …, wt)에 근거하여, 수학식 6에 나타내는 위양 요소 k* L, del , (τ, ι)를 생성하고,
    상기 복호 키 송신부는, 상기 복호 요소 k* L, dec와, 상기 랜덤화 요소 생성부가 생성한 제 1 랜덤화 요소 k* L, ran , j 및 제 2 랜덤화 요소 k* L, ran , (τ, ι)와, 상기 위양 요소 생성부가 생성한 위양 요소 k* L, del , (τ, ι)를 포함하는 복호 키 skL을 상기 위양 장치에 송신하고,
    상기 하위 복호 요소 생성부는, 상기 술어 정보 v L+1과, 상기 복호 키 송신부가 송신한 복호 키 skL과, j=1, …, 2L의 각 정수 j에 대한 난수 αdec , j와, 난수 σdec와, t=0, …, L+1의 각 정수 t와 i=1, …, wt의 각 정수 i에 대한 난수 ηdec , (t, i)를 이용하여, 수학식 7에 나타내는 하위 복호 요소 k* L+1, dec를 생성하는
    것을 특징으로 하는 암호 처리 시스템.
    [수학식 4]
    Figure 112013081656622-pct00103

    [수학식 5]
    Figure 112013081656622-pct00104

    [수학식 6]
    Figure 112013081656622-pct00105

    [수학식 7]
    Figure 112013081656622-pct00106

  7. 제 6 항에 있어서,
    상기 위양 장치는,
    j’=1, …, 2(L+1)의 각 정수 j’에 대하여, 제 1 하위 랜덤화 요소 k* L+1, ran, j’를 생성함과 아울러, τ=L+2, …, d(d는 L+2 이상의 정수)의 각 정수 τ와, 각 정수 τ에 관하여 ι=1, …, nτ의 각 정수 ι에 대하여, 제 2 하위 랜덤화 요소 k* L+1, ran, (τ, ι)를 생성하는 하위 랜덤화 요소 생성부로서, 상기 술어 정보 v L+1과, 상기 복호 키 skL과, j=1, …, 2L의 각 정수 j와 j’=1, …, 2(L+1)의 각 정수 j’에 대한 난수 αran, j’, j와, j’=1, …, 2(L+1)의 각 정수 j’에 대한 난수 σran, j’와, t=0, …, L+1의 각 정수 t와 i=1, …, wt의 각 정수 i에 대한 난수 ηran, j’, (t, i)에 근거하여, 수학식 8에 나타내는 제 1 하위 랜덤화 요소 k* L+1, ran, j’를 생성하고, 상기 술어 정보 v L+1과, 상기 복호 키 skL과, j=1, …, 2L의 각 정수 j에 대한 난수 αran, (τ, ι), j와, 난수 σran, (τ, ι)와, 난수 φran, (τ, ι)와, t=0, …, L+1, τ의 각 정수 t와 i=1, …, wt의 각 정수 i에 대한 난수 ηran, (τ, ι), (t, i)에 근거하여, 수학식 9에 나타내는 제 2 하위 랜덤화 요소 k* L+1, ran, (τ, ι)를 생성하는 하위 랜덤화 요소 생성부와,
    τ=L+2, …, d(d는 L+2 이상의 정수)의 각 정수 τ와, 각 정수 τ에 관하여 ι=1, …, nτ의 각 정수 ι에 대하여, 하위 위양 요소 k* L+1, del, (τ, ι)를 생성하는 하위 위양 요소 생성부로서, 상기 술어 정보 v L+1과, 상기 복호 키 skL과, j=1, …, 2L의 각 정수 j에 대한 난수 αdel, (τ, ι), j와, 난수 σdel, (τ, ι)와, 난수 ψ’와, 난수 φdel, (τ, ι)와, t=0, …, L+1, τ의 각 정수 t와 i=1, …, wt의 각 정수 i에 대한 난수 ηdel, (τ, ι), (t, i)에 근거하여, 수학식 10에 나타내는 하위 위양 요소 k* L+1, del, (τ, ι)를 생성하는 하위 위양 요소 생성부
    를 더 구비하고,
    상기 위양 키 송신부는, 상기 하위 복호 요소 생성부가 생성한 하위 복호 요소 k* L+1, dec와, 상기 하위 랜덤화 요소 생성부가 생성한 제 1 하위 랜덤화 요소 k* L+1, ran, j’ 및 제 2 하위 랜덤화 요소 k* L+1, ran, (τ, ι)와, 상기 하위 위양 요소 생성부가 생성한 하위 위양 요소 k* L+1, del, (τ, ι)를 포함하는 하위의 복호 키 skL+1을 하위의 위양 장치에 송신하는
    것을 특징으로 하는 암호 처리 시스템.
    [수학식 8]
    Figure 112013081756746-pct00107

    [수학식 9]
    Figure 112013081756746-pct00108

    [수학식 10]
    Figure 112013081756746-pct00109

  8. 제 2 항에 있어서,
    상기 제 1 정보 입력부는, t=1, …, L의 각 정수 t에 대하여 술어 정보 (v t:=(vt, i)(i=1, …, nt), ρt∈{0, 1})을 입력하고,
    상기 복호 요소 생성부는, 기저 벡터 b* 0, p의 계수로서 -sdec , 0을 설정하고, 기저 벡터 b* 0, q의 계수로서 상기 Δ를 설정하고, t=1, …, L의 각 정수 t에 대한 기저 벡터 b* t, i의 계수로서, ρt가 0인 경우에는 sdec , te t, 1dec , tvt , i(i=1, …, nt)를 설정하고, ρt가 1인 경우에는 sdec , tvt , i(i=1, …, nt)를 설정한 복호 요소 k* L, dec를 생성하는
    것을 특징으로 하는 암호 처리 시스템.
  9. 제 8 항에 있어서,
    상기 키 생성 장치는, τ=L+1인 정수 τ와, ι=1, …, nτ의 각 정수 ι에 대하여 제 1 위양 요소 k* L, del , (τ, ι, 0)과 제 2 위양 요소 k* L, del , (τ, ι, 1)을 생성하는 위양 요소 생성부로서, t=1, …, L의 각 정수 t에 대한 소정의 값 θdel , 0, t와, 소정의 값 ψ와, sdel , 0, 0t=1 L+1sdel , 0, t인 t=0, …, L+1에 대한 소정의 값 sdel , 0, t를 이용하여, 기저 B* 0의 기저 벡터 b* 0, p의 계수로서 -sdel , 0, 0을 설정하고, t=1, …, L의 각 정수 t에 대한 기저 B* t의 기저 벡터 b* t, i(i=1, …, nt)의 계수로서, ρt가 0인 경우에는 sdel , 0, te t, 1del , 0, tvt , i(i=1, …, nt)를 설정하고, ρt가 1인 경우에는 sdel , 0, tvt , i(i=1, …, nt)를 설정하고, 기저 B* τ의 기저 벡터 b* τ, i(i=1, …, nτ)의 계수로서 sdel , 0, L+1e τ, 1+ψe τ, ι(i=1, …, nτ)를 설정하여 제 1 위양 요소 k* L, del, (τ, ι, 0)을 생성하고, t=1, …, L의 각 정수 t에 대한 소정의 값 θdel , 1, t와, sdel, 1, 0t=1 L+1sdel , 1, t인 t=0, …, L+1에 대한 소정의 값 sdel , 1, t를 이용하여, 기저 B* 0의 기저 벡터 b* 0, p의 계수로서 -sdel , 1, 0을 설정하고, t=1, …, L의 각 정수 t에 대한 기저 B* t의 기저 벡터 b* t, i(i=1, …, nt)의 계수로서, ρt가 0인 경우에는 sdel , 1, te t, 1del , 1, tvt , i(i=1, …, nt)를 설정하고, ρt가 1인 경우에는 sdel , 1, tvt , i(i=1, …, nt)를 설정하고, 기저 B* τ의 기저 벡터 b* τ, i(i=1, …, nτ)의 계수로서 sdel, 1, L+1e τ, 1(i=1, …, nτ)을 설정하여 제 2 위양 요소 k* L, del , (τ, ι, 1)을 생성하는 위양 요소 생성부를 더 구비하고,
    상기 복호 키 송신부는, 상기 복호 요소 k* L, dec와, 상기 위양 요소 생성부가 생성한 제 1 위양 요소 k* L, del , (τ, ι, 0) 및 제 2 위양 요소 k* L, del , (τ, ι, 1)을 포함하는 복호 키 skL을 상기 위양 장치에 송신하고,
    상기 키 위양 장치는,
    술어 정보 (v L+1:=(vL +1, i)(i=1, …, nL +1), ρL+1∈{0, 1})을 입력하는 제 3 정보 입력부와,
    상기 제 3 정보 입력부가 입력한 술어 정보 v L+1과, 상기 복호 키 송신부가 송신한 복호 키 skL을 이용하여, 수학식 11에 나타내는 벡터를 포함하는 하위 복호 요소 k* L+1, dec를 생성하는 하위 복호 요소 생성부
    를 구비하는
    것을 특징으로 하는 암호 처리 시스템.
    [수학식 11]
    Figure 112013081656622-pct00110

  10. 제 9 항에 있어서,
    상기 암호 처리 시스템은,
    적어도 기저 벡터 b0, i(i=1, …, 1+n0, 1+n0+1, …, 1+n0+1+u0, …, 1+n0+1+u0+w0, …, 1+n0+1+u0+w0+z0)(n0, u0, w0, z0은 1 이상의 정수)를 갖는 기저 B0과,
    적어도 기저 벡터 b* 0, i(i=1, …, 1+n0, 1+n0+1, …, 1+n0+1+u0, …, 1+n0+1+u0+w0, …, 1+n0+1+u0+w0+z0)(n0, u0, w0, z0은 1 이상의 정수)를 갖는 기저 B* 0과,
    적어도 기저 벡터 bt, i(i=1, …, nt, …, nt+ut, …, nt+ut+wt, …, nt+ut+wt+zt)(ut, wt, zt는 1 이상의 정수)를 갖는 기저 Bt(t=1, …, L+1)와,
    적어도 기저 벡터 b* t, i(i=1, …, nt, …, nt+ut, …, nt+ut+wt, …, nt+ut+wt+zt)를 갖는 기저 B* t(t=1, …, L+1)
    를 이용하여 암호 처리를 행하고,
    상기 복호 요소 생성부는, t=0, …, L의 각 정수 t에 대한 난수 η dec, t:=(ηdec, t, i)(i=1, …, wt)에 근거하여, 수학식 12에 나타내는 복호 요소 k* L, dec를 생성하고,
    상기 암호화 데이터 c1 생성부는, t=0, …, L의 각 정수 t에 대한 난수 φ t:=(φt, i)(i=1, …, zt)에 근거하여, 수학식 13에 나타내는 암호화 데이터 c1을 생성하는
    것을 특징으로 하는 암호 처리 시스템.
    [수학식 12]
    Figure 112013081756746-pct00111

    [수학식 13]
    Figure 112013081756746-pct00112


  11. 제 10 항에 있어서,
    상기 키 생성 장치는, j=1, …, 2L의 각 정수 j에 대하여, 제 1 랜덤화 요소 k* L, ran , j를 생성함과 아울러, τ=L+1, …, d(d는 L+1 이상의 정수)의 각 정수 τ와, 각 정수 τ에 관하여 ι=1, …, nτ의 각 정수 ι에 대하여, 제 2 랜덤화 요소 k* L, ran, (τ, ι, 0)을 생성하는 랜덤화 요소 생성부로서, t=1, …, L의 각 정수 t에 대한 소정의 값 θran , j, t와, sran , j, 0t=1 Lsran , j, t인 t=0, …, L에 대한 소정의 값 sran , j, t와, t=0, …, L의 각 정수 t에 대한 난수 η ran , j, t:=(ηran , j, t, i)(i=1, …, wt)에 근거하여, 수학식 14에 나타내는 제 1 랜덤화 요소 k* L, ran , j를 생성하고, t=1, …, L의 각 정수 t에 대한 소정의 값 θran , 0, t와, sran , 0, 0t=1 L+1sran , 0, t인 t=0, …, L+1에 대한 소정의 값 sran , 0, t와, t=0, …, L의 각 정수 t에 대한 난수 η ran , 0, t:=(ηran, 0, t, i)(i=1, …, wt)와, 난수 η ran , 0, (τ, ι):=(ηran , 0, (τ, ι), i)(i=1, …, wt)에 근거하여, 수학식 15에 나타내는 제 2 랜덤화 요소 k* L, ran , (τ, ι, 0)을 생성하는 랜덤화 요소 생성부를 더 구비하고,
    상기 위양 요소 생성부는, τ=L+1, …, d의 각 정수 τ와, 각 정수 τ에 관하여 ι=1, …, nτ의 각 정수 ι에 대하여, t=0, …, L의 각 정수 t에 대한 난수 η del, 0, t:=(ηdel , 0, t, i)(i=1, …, wt)와, 난수 η del , 0, (τ, ι):=(ηdel , 0, (τ, ι), i)(i=1, …, wt)에 근거하여, 수학식 16에 나타내는 제 1 위양 요소 k* L, del , (τ, ι, 0)을 생성함과 아울러, τ=L+1, …, d의 각 정수 τ와, 각 정수 τ에 관하여 ι=1, …, nτ의 각 정수 ι에 대하여, t=0, …, L의 각 정수 t에 대한 난수 η del , 1, t:=(ηdel , 1, t, i)(i=1, …, wt)와, 난수 η del , 1, (τ, ι):=(ηdel , 1, (τ, ι), i)(i=1, …, wt)에 근거하여, 수학식 17에 나타내는 제 2 위양 요소 k* L, del , (τ, ι, 1)을 생성하고,
    상기 복호 키 송신부는, 상기 복호 요소 k* L, dec와, 상기 랜덤화 요소 생성부가 생성한 제 1 랜덤화 요소 k* L, ran , j 및 제 2 랜덤화 요소 k* L, ran , (τ, ι, 0)과, 상기 위양 요소 생성부가 생성한 제 1 위양 요소 k* L, del , (τ, ι, 0) 및 제 2 위양 요소 k* L, del, (τ, ι, 1)을 포함하는 복호 키 skL을 상기 위양 장치에 송신하고,
    상기 하위 복호 요소 생성부는, 상기 술어 정보 v L+1과, 상기 복호 키 송신부가 송신한 복호 키 skL과, j=1, …, 2L의 각 정수 j에 대한 난수 αdec , j와, 난수 σdec와, t=0, …, L+1의 각 정수 t와 i=1, …, wt의 각 정수 i에 대한 난수 ηdec , (t, i)를 이용하여, 수학식 18에 나타내는 하위 복호 요소 k* L+1, dec를 생성하는
    것을 특징으로 하는 암호 처리 시스템.
    [수학식 14]
    Figure 112013081656622-pct00113

    [수학식 15]
    Figure 112013081656622-pct00114

    [수학식 16]
    Figure 112013081656622-pct00115

    [수학식 17]
    Figure 112013081656622-pct00116

    [수학식 18]
    Figure 112013081656622-pct00117

  12. 제 11 항에 있어서,
    상기 위양 장치는,
    j’=1, …, 2(L+1)의 각 정수 j’에 대하여, 제 1 하위 랜덤화 요소 k* L+1, ran, j’를 생성함과 아울러, τ=L+2, …, d(d는 L+2 이상의 정수)의 각 정수 τ와, 각 정수 τ에 관하여 ι=1, …, nτ의 각 정수 ι에 대하여, 제 2 하위 랜덤화 요소 k* L+1, ran , (τ, ι, 0)을 생성하는 하위 랜덤화 요소 생성부로서, 상기 술어 정보 v L+1과, 상기 복호 키 skL과, j=1, …, 2L의 각 정수 j와 j’=1, …, 2(L+1)의 각 정수 j’에 대한 난수 αran , j’, j와, j’=1, …, 2(L+1)의 각 정수 j’에 대한 난수 σran , j’와, t=0, …, L+1의 각 정수 t와 i=1, …, wt의 각 정수 i에 대한 난수 ηran , j’, (t, i)에 근거하여, 수학식 19에 나타내는 제 1 하위 랜덤화 요소 k* L+1, ran , j’를 생성하고, 상기 술어 정보 v L+1과, 상기 복호 키 skL과, j=1, …, 2L의 각 정수 j에 대한 난수 αran , (τ, ι), j와, 난수 σran , (τ, ι, 0)과, 난수 φran , (τ, ι, 0)과, t=0, …, L+1의 각 정수 t와 i=1, …, wt의 각 정수 i에 대한 ηran , (τ, ι, 0), (t, i)에 근거하여, 수학식 20에 나타내는 제 2 하위 랜덤화 요소 k* L+1, ran , (τ, ι, 0)을 생성하는 하위 랜덤화 요소 생성부와,
    τ=L+2, …, d(d는 L+2 이상의 정수)의 각 정수 τ와, 각 정수 τ에 관하여 ι=1, …, nτ의 각 정수 ι에 대하여, 제 1 하위 위양 요소 k* L+1, del , (τ, ι, 0)과 제 2 하위 위양 요소 k* L+1, del , (τ, ι, 1)을 생성하는 하위 위양 요소 생성부로서, 상기 술어 정보 v L+1과, 상기 복호 키 skL과, j=1, …, 2L의 각 정수 j에 대한 난수 αdel , (τ, ι, 0), j와, 난수 σdel , (τ, ι, 0)과, 난수 ψ0과, 난수 φdel , (τ, ι, 0)과, t=0, …, L+1의 각 정수 t와 i=1, …, wt의 각 정수 i에 대한 ηdel , (τ, ι, 0), (t, i)에 근거하여, 수학식 21에 나타내는 제 1 하위 위양 요소 k* L+1, del , (τ, ι, 0)을 생성하고, 상기 술어 정보 v L+1과, 상기 복호 키 skL과, j=1, …, 2L의 각 정수 j에 대한 난수 αdel , (τ, ι, 1), j와, 난수 σdel , (τ, ι, 1)과, 난수 ψ1과, 난수 φdel , (τ, ι, 1)과, t=0, …, L+1의 각 정수 t와 i=1, …, wt의 각 정수 i에 대한 ηdel , (τ, ι, 1), (t, i)에 근거하여, 수학식 22에 나타내는 제 2 하위 위양 요소 k* L+1, del , (τ, ι, 1)을 생성하는 하위 위양 요소 생성부
    를 더 구비하는 것을 특징으로 하는 암호 처리 시스템.
    [수학식 19]
    Figure 112013081656622-pct00118

    [수학식 20]
    Figure 112013081656622-pct00119

    [수학식 21]
    Figure 112013081656622-pct00120

    [수학식 22]
    Figure 112013081656622-pct00121

  13. t=1, …, L(L은 1 이상의 정수)의 각 정수 t에 대한 기저 Bt와 기저 B* t를 이용하여 암호 처리를 행하는 암호 처리 시스템에 있어서, 복호 키 skL을 생성하는 키 생성 장치로서,
    t=1, …, L의 각 정수 t에 대하여 술어 정보 v t:=(vt , i)(i=1, …, nt)를 입력하는 제 1 정보 입력부와,
    상기 제 1 정보 입력부가 입력한 술어 정보 v t와, 소정의 값 Δ와, t=1, …, L의 각 정수 t에 대한 소정의 값 θdec , t와, sdec , 0t=1 Lsdec , t인 t=0, …, L의 각 정수 t에 대한 소정의 값 sdec , t를 이용하여, 기저 B* 0의 기저 벡터 b* 0, p(p는 소정의 값)의 계수로서 -sdec , 0을 설정하고, 기저 B* 0의 기저 벡터 b* 0, q(q는 소정의 값)의 계수로서 상기 Δ를 설정하고, t=1, …, L의 각 정수 t에 대한 기저 B* t의 기저 벡터 b* t, i(i=1, …, nt)의 계수로서 sdec , te t, 1dec , tvt , i(i=1, …, nt)를 설정한 복호 요소 k* L, dec를 생성하는 복호 요소 생성부와,
    상기 복호 요소 생성부가 생성한 복호 요소 k* L, dec를 포함하는 복호 키 skL을 복호 장치에 송신하는 복호 키 송신부
    를 구비하는 것을 특징으로 하는 키 생성 장치.
  14. t=1, …, L(L은 1 이상의 정수)의 각 정수 t에 대한 기저 Bt와 기저 B* t를 이용하여 암호 처리를 행하는 암호 처리 시스템에 있어서, 암호화 데이터 ct를 생성하는 암호화 장치로서,
    t=1, …, L의 적어도 일부의 정수 t에 대하여 속성 정보 x t:=(xt , i)(i=1, …, nt)를 입력하는 제 2 정보 입력부와,
    상기 제 2 정보 입력부가 입력한 속성 정보 x t와, 소정의 값 ω, ζ를 이용하여, 기저 B0의 기저 벡터 b0 , p(p는 소정의 값)의 계수로서 상기 ω를 설정하고, 기저 B0의 기저 벡터 b0 , q(q는 소정의 값)의 계수로서 상기 ζ를 설정하고, 상기 적어도 일부의 정수 t에 대한 기저 Bt의 기저 벡터 bt , i(i=1, …, nt)의 계수로서 ωxt, i(i=1, …, nt)를 설정한 암호화 데이터 c1을 생성하는 암호화 데이터 c1 생성부와,
    상기 암호화 데이터 c1 생성부가 생성한 암호화 데이터 c1을 포함하는 암호화 데이터 ct를 복호 장치에 송신하는 데이터 송신부
    를 구비하는 것을 특징으로 하는 암호화 장치.
  15. t=1, …, L(L은 1 이상의 정수)의 각 정수 t에 대한 기저 Bt와 기저 B* t를 이용하여 암호 처리를 행하는 암호 처리 시스템에 있어서, 암호화 데이터 c1을 복호 키 skL에 의해 복호하는 복호 장치로서,
    속성 정보 x t:=(xt, i)(i=1, …, nt)와, 소정의 값 ω, ζ를 이용하여, 기저 B0의 기저 벡터 b0, p(p는 소정의 값)의 계수로서 상기 ω를 설정하고, 기저 B0의 기저 벡터 b0, q(q는 소정의 값)의 계수로서 상기 ζ를 설정하고, 적어도 일부의 정수 t에 대한 기저 Bt의 기저 벡터 bt, i(i=1, …, nt)의 계수로서 ωxt, i(i=1, …, nt)를 설정한 암호화 데이터 c1을 암호화 장치로부터 수신하는 데이터 수신부와,
    술어 정보 v t:=(vt, i)(i=1, …, nt)와, 소정의 값 Δ와, t=1, …, L의 각 정수 t에 대한 소정의 값 θdec, t와, sdec, 0t=1 Lsdec, t인 t=0, …, L의 각 정수 t에 대한 소정의 값 sdec, t를 이용하여, 기저 B* 0의 기저 벡터 b* 0, p(p는 소정의 값)의 계수로서 -sdec, 0을 설정하고, 기저 B* 0의 기저 벡터 b* 0, q(q는 소정의 값)의 계수로서 상기 Δ를 설정하고, t=1, …, L의 각 정수 t에 대한 기저 B* t의 기저 벡터 b* t, i(i=1, …, nt)의 계수로서 sdec, te t, 1dec, tvt, i(i=1, …, nt)를 설정한 복호 요소 k* L, dec를 포함하는 복호 키 skL을 키 생성 장치로부터 취득하는 복호 키 취득부와,
    상기 데이터 수신부가 수신한 암호화 데이터 c1과, 상기 복호 키 취득부가 취득한 상기 복호 키 skL에 포함되는 복호 요소 k* L, dec에 대하여, 페어링 연산 e(c1, k* L, dec)를 행하여, 상기 암호화 데이터 c1을 복호하는 페어링 연산부
    를 구비하는 것을 특징으로 하는 복호 장치.
  16. t=1, …, L+1(L은 1 이상의 정수)의 각 정수 t에 대한 기저 Bt와 기저 B* t를 이용하여 암호 처리를 행하는 암호 처리 시스템에 있어서, 복호 키 skL의 하위의 복호 키 skL +1을 생성하는 키 위양 장치로서,
    t=1, …, L의 각 정수 t에 대한 기저 B* t의 기저 벡터에 술어 정보 v t를 삽입한 벡터를 복호 키 skL로서 취득하는 복호 키 취득부와,
    상기 복호 키 취득부가 취득한 복호 키 skL과, 기저 B* L+1의 기저 벡터에 술어 정보 v L+1을 삽입한 벡터에 근거하여, 상기 복호 키 skL의 하위의 복호 키 skL +1을 생성하는 위양 키 생성부
    를 구비하는 것을 특징으로 하는 키 위양 장치.
  17. t=1, …, L+1(L은 1 이상의 정수)의 각 정수 t에 대한 기저 Bt와 기저 B* t를 이용한 암호 처리 방법으로서,
    암호화 장치가, t=1, …, L 중 적어도 일부의 정수 t에 대한 기저 Bt의 기저 벡터에 속성 정보 x t를 삽입한 벡터를 암호화 데이터 ct로서 생성하는 암호화 공정과,
    복호 장치가, t=1, …, L의 각 정수 t에 대한 기저 B* t의 기저 벡터에 술어 정보 v t를 삽입한 벡터를 복호 키 skL로 하여, 상기 암호화 공정에서 생성한 암호화 데이터 ct와 상기 복호 키 skL에 대하여, 페어링 연산을 행하여 상기 암호화 데이터 ct를 복호하는 복호 공정과,
    키 위양 장치가, 기저 B* L+1의 기저 벡터에 술어 정보를 삽입한 벡터 v L+1과, 상기 복호 공정에서 사용한 복호 키 skL에 근거하여, 상기 복호 키 skL의 하위의 복호 키 skL +1을 생성하는 키 위양 공정
    을 구비하는 것을 특징으로 하는 암호 처리 방법.
  18. t=1, …, L+1(L은 1 이상의 정수)의 각 정수 t에 대한 기저 Bt와 기저 B* t를 이용하여 암호 처리를 실행하는 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체로서,
    t=1, …, L 중 적어도 일부의 정수 t에 대한 기저 Bt의 기저 벡터에 속성 정보 x t를 삽입한 벡터를 암호화 데이터 ct로서 생성하는 암호화 처리와,
    t=1, …, L의 각 정수 t에 대한 기저 B* t의 기저 벡터에 술어 정보 v t를 삽입한 벡터를 복호 키 skL로 하여, 상기 암호화 처리에서 생성한 암호화 데이터 ct와 상기 복호 키 skL에 대하여, 페어링 연산을 행하여 상기 암호화 데이터 ct를 복호하는 복호 처리와,
    기저 B* L+1의 기저 벡터에 술어 정보를 삽입한 벡터 v L+1과, 상기 복호 처리에서 사용한 복호 키 skL에 근거하여, 상기 복호 키 skL의 하위의 복호 키 skL+1을 생성하는 키 위양 처리
    를 구비하는 것을 특징으로 하는 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
KR1020137023636A 2011-02-09 2011-12-12 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 키 위양 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 KR101432462B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011026216A JP5606351B2 (ja) 2011-02-09 2011-02-09 暗号処理システム、鍵生成装置、暗号化装置、復号装置、鍵委譲装置、暗号処理方法及び暗号処理プログラム
JPJP-P-2011-026216 2011-02-09
PCT/JP2011/078668 WO2012108100A1 (ja) 2011-02-09 2011-12-12 暗号処理システム、鍵生成装置、暗号化装置、復号装置、鍵委譲装置、暗号処理方法及び暗号処理プログラム

Publications (2)

Publication Number Publication Date
KR20130122678A KR20130122678A (ko) 2013-11-07
KR101432462B1 true KR101432462B1 (ko) 2014-08-20

Family

ID=46638329

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137023636A KR101432462B1 (ko) 2011-02-09 2011-12-12 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 키 위양 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체

Country Status (7)

Country Link
US (1) US9385867B2 (ko)
EP (1) EP2675107B1 (ko)
JP (1) JP5606351B2 (ko)
KR (1) KR101432462B1 (ko)
CN (1) CN103354984B (ko)
ES (1) ES2699535T3 (ko)
WO (1) WO2012108100A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014112170A1 (ja) * 2013-01-16 2014-07-24 三菱電機株式会社 情報処理装置及び情報処理方法及びプログラム
WO2016088251A1 (ja) * 2014-12-05 2016-06-09 三菱電機株式会社 暗号システム、マスター鍵更新装置及びマスター鍵更新プログラム
WO2018131129A1 (ja) * 2017-01-12 2018-07-19 三菱電機株式会社 暗号化タグ生成装置、検索クエリ生成装置及び秘匿検索システム
JP6885325B2 (ja) * 2017-12-26 2021-06-16 日本電信電話株式会社 暗号化装置、復号装置、暗号化方法、復号方法、プログラム
JP6971917B2 (ja) * 2018-06-11 2021-11-24 三菱電機株式会社 復号装置、暗号化装置及び暗号システム
JP7233265B2 (ja) * 2019-03-15 2023-03-06 三菱電機株式会社 署名装置、検証装置、署名方法、検証方法、署名プログラム及び検証プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003081780A2 (en) 2002-03-21 2003-10-02 Docomo Communications Laboratories Usa, Inc. Hierarchical identity-based encryption and signature schemes
WO2008099831A1 (ja) 2007-02-13 2008-08-21 Nec Corporation 鍵生成装置、鍵導出装置、暗号化装置、復号化装置、方法、及び、プログラム
US20090080658A1 (en) 2007-07-13 2009-03-26 Brent Waters Method and apparatus for encrypting data for fine-grained access control

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5214698A (en) * 1991-03-20 1993-05-25 International Business Machines Corporation Method and apparatus for validating entry of cryptographic keys
US8422681B2 (en) * 2008-03-06 2013-04-16 International Business Machines Corporation Non-interactive hierarchical identity-based key-agreement
JP5349261B2 (ja) * 2009-04-23 2013-11-20 三菱電機株式会社 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003081780A2 (en) 2002-03-21 2003-10-02 Docomo Communications Laboratories Usa, Inc. Hierarchical identity-based encryption and signature schemes
WO2008099831A1 (ja) 2007-02-13 2008-08-21 Nec Corporation 鍵生成装置、鍵導出装置、暗号化装置、復号化装置、方法、及び、プログラム
US20090080658A1 (en) 2007-07-13 2009-03-26 Brent Waters Method and apparatus for encrypting data for fine-grained access control

Also Published As

Publication number Publication date
CN103354984A (zh) 2013-10-16
US9385867B2 (en) 2016-07-05
ES2699535T3 (es) 2019-02-11
JP5606351B2 (ja) 2014-10-15
KR20130122678A (ko) 2013-11-07
US20130336474A1 (en) 2013-12-19
WO2012108100A1 (ja) 2012-08-16
EP2675107A4 (en) 2017-07-19
CN103354984B (zh) 2015-11-25
EP2675107B1 (en) 2018-10-24
JP2012163917A (ja) 2012-08-30
EP2675107A1 (en) 2013-12-18

Similar Documents

Publication Publication Date Title
KR101386294B1 (ko) 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 서명 처리 시스템, 서명 장치 및 검증 장치
KR101359200B1 (ko) 암호 처리 시스템
KR101393899B1 (ko) 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
KR101336349B1 (ko) 암호 처리 시스템, 키 생성 장치, 키 위양 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
KR101443553B1 (ko) 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
KR101310439B1 (ko) 암호 처리 시스템, 키 생성 장치, 키 위양 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
KR101588992B1 (ko) 암호 시스템, 암호 방법 및 암호 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
KR101432462B1 (ko) 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 키 위양 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
KR101676977B1 (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: 20170720

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180801

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190730

Year of fee payment: 6