KR101588992B1 - 암호 시스템, 암호 방법 및 암호 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 - Google Patents

암호 시스템, 암호 방법 및 암호 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 Download PDF

Info

Publication number
KR101588992B1
KR101588992B1 KR1020147026078A KR20147026078A KR101588992B1 KR 101588992 B1 KR101588992 B1 KR 101588992B1 KR 1020147026078 A KR1020147026078 A KR 1020147026078A KR 20147026078 A KR20147026078 A KR 20147026078A KR 101588992 B1 KR101588992 B1 KR 101588992B1
Authority
KR
South Korea
Prior art keywords
vector
index
key
integer
information
Prior art date
Application number
KR1020147026078A
Other languages
English (en)
Other versions
KR20140138176A (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 KR20140138176A publication Critical patent/KR20140138176A/ko
Application granted granted Critical
Publication of KR101588992B1 publication Critical patent/KR101588992B1/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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • H04L9/16Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
    • 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)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

공개 파라미터의 재발행을 하는 일 없이, 속성 카테고리의 추가를 가능하게 하는 것을 목적으로 한다. 암호 시스템(10)은, 쌍대 페어링 벡터 공간에 있어서의 쌍대 시스템 암호에 있어서, 인덱스 부가의 기법을 이용한다. 구체적으로는, 암호 시스템(10)은, 인덱스 j에 대한 송신측 벡터 tj에 대해서는, 소정의 기저 벡터의 계수로서 인덱스 j에 미리 할당된 정보 J를 설정하고, 인덱스 j에 대응하는 인덱스 j'의 수신측 벡터 rj'에 대해서는, 상기 소정의 기저 벡터에 대응하는 기저 벡터의 계수로서 정보 J와의 내적이 0이 되는 정보 J'를 설정한다.

Description

암호 시스템, 암호 방법 및 암호 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체{CIPHER SYSTEM, CIPHER METHOD, AND COMPUTER READABLE RECORDING MEDIUM STORING CIPHER PROGRAM}
본 발명은, 공개 파라미터의 재발행을 하는 일 없이, 속성 카테고리의 추가가 가능한 암호 시스템에 관한 것이다.
비특허 문헌 29에는, 함수형 암호 방식에 대한 기재가 있다.
(선행 기술 문헌)
(비특허 문헌)
(비특허 문헌 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-334. 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-238. 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-459. 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-456. Springer Heidelberg(2005)
(비특허 문헌 6) Boneh, D., Boyen, X., Shacham, H. : Short group signatures. In : Franklin, M.(ed.) CRYPTO 2004. LNCS, vol. 3152, pp. 41-55. Springer, Heidelberg(2004)
(비특허 문헌 7) 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)
(비특허 문헌 8) 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)
(비특허 문헌 9) Boneh, D., Katz, J., Improved efficiency for CCA-secure cryptosystems built using identity based encryption. RSA-CT 2005, LNCS, Springer Verlag(2005)
(비특허 문헌 10) 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)
(비특허 문헌 11) 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)
(비특허 문헌 12) Canetti, R., Halevi S., Katz J. : Chosen-ciphertext security from identity-based encryption. EUROCRYPT 2004, LNCS, Springer Heidelberg(2004)
(비특허 문헌 13) Chase, M. : Multi-authority attribute based encryption. TCC, LNCS, pp. 515-534, Springer Heidelberg(2007).
(비특허 문헌 14) Chase, M. and Chow, S. : Improving privacy and security in multi-authority attribute-based encryption, ACM Conference on Computer and Communications Security, pp. 121-130, ACM(2009).
(비특허 문헌 15) 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)
(비특허 문헌 16) Gentry, C. : Practical identity-based encryption without random oracles. In : Vaudenay, S.(ed.) EUROCRYPT 2006. LNCS, vol. 4004, pp. 445-464. Springer Heidelberg(2006)
(비특허 문헌 17) 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)
(비특허 문헌 18) Gentry, C., Silverberg, A. : Hierarchical ID-based cryptography. In : Zheng, Y.(ed.) ASIACRYPT 2002. LNCS, vol. 2501, pp. 548-566. Springer Heidelberg(2002)
(비특허 문헌 19) 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)
(비특허 문헌 20) 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)
(비특허 문헌 21) 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)
(비특허 문헌 22) 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-479. Springer Heidelberg(2010)
(비특허 문헌 23) Lewko, A. B., Waters, B. : Decentralizing Attribute-Based Encryption, the proceedings of Eurocrypt 2011, LNCS, Springer Heidelberg(2011).
(비특허 문헌 24) Lewko, A. B., Waters, B. : Unbounded HIBE and attribute-based encryption, the proceedings of Eurocrypt 2011, LNCS, Springer Heidelberg(2011).
(비특허 문헌 25) H. Lin, Z. Cao, X. Liang, and J. Shao. : Secure threshold multi authority attribute based encryption without a central authority, INDOCRYPT, LNCS, vol. 5365, pp. 426-436, Springer Heidelberg(2008).
(비특허 문헌 26) S.
Figure 112014088518616-pct00001
, S. Katzenbeisser, and C. Eckert.; On multi-authority ciphertext-policy attribute-based encryption, Bull. Korean Math Soc. 46, No.4, pp. 803-819(2009).
(비특허 문헌 27) 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)
(비특허 문헌 28) Okamoto, T., Takashima, K. : Hierarchical predicate encryption for inner-products, In : ASIACRYPT 2009, Springer Heidelberg(2009)
(비특허 문헌 29) Okamoto, T., Takashima, K. : Fully secure functional encryption with general relations from the decisional linear assumption. In : Rabin, T.(ed.) CRYPTO 2010. LNCS, vol. 6223, pp. 191-208. Springer Heidelberg(2010). Full version is available at http://eprint.iacr.org/2010/563
(비특허 문헌 30) Okamoto, T., Takashima, K. : Efficient attribute-based signatures for non-monotone predicates in the standard model, In : PKC 2011, Springer Heidelberg(2011)
(비특허 문헌 31) Okamoto, T., Takashima, K. : Decentralized Attribute-Based Signatures http://eprint.iacr.org/2011/701
(비특허 문헌 32) 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)
(비특허 문헌 33) 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)
(비특허 문헌 34) Sahai, A., Waters, B. : Fuzzy identity-based encryption. In : Cramer, R.(ed.) EUROCRYPT 2005. LNCS, vol. 3494, pp. 457-473. Springer Heidelberg(2005)
(비특허 문헌 35) Shi, E., Waters, B. : Delegating capability in predicate encryption systems. In : Aceto, L.,
Figure 112014088657407-pct00177
, I., Goldberg, L. A.,
Figure 112014088657407-pct00178
, M. M. ,
Figure 112014088657407-pct00179
, A., Walukiewicz, I.(eds.) ICALP(2) 2008. LNCS, vol. 5126, pp. 560-578. Springer Heidelberg(2008)
(비특허 문헌 36) Waters, B. : Efficient identity based encryption without random oracles. Eurocrypt 2005, LNCS, vol. 3152, pp. 443-459. Springer Verlag, (2005)
(비특허 문헌 37) Waters, B. : Ciphertext-policy attribute-based encryption : an expressive, efficient, and provably secure realization. ePrint, IACR, http://eprint.iacr.org/2008/290
(비특허 문헌 38) 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-636. Springer Heidelberg(2009)
비특허 문헌 29에 기재된 함수형 암호 방식에서는, 속성 카테고리마다 기저 Bt 및 기저 B* t의 페어가 필요하고, 속성 카테고리를 추가하는 경우, 새로운 기저 Bt 및 기저 B* t의 페어를 생성할 필요가 있다. 그리고, 기저 Bt는, 공개 파라미터에 포함되어 있기 때문에, 공개 파라미터를 재발행할 필요가 있다.
본 발명은, 공개 파라미터의 재발행을 하는 일 없이, 속성 카테고리의 추가를 가능하게 하는 것을 목적으로 한다.
본 발명과 관련되는 암호 시스템은, 소정의 기저 B 및 소정의 기저 B*를 이용하여 처리를 행하는 암호 시스템으로서, 복수의 인덱스 j 중 1개 이상의 인덱스 j에 대한 송신측 벡터 tj로서, 상기 기저 B에 있어서의 소정의 기저 벡터 bindex의 계수로, 인덱스 j에 미리 할당된 정보 J를 설정하고, 상기 기저 B에 있어서의 다른 기저 벡터 batt의 계수로, 인덱스 j에 대한 파라미터 Φj를 설정한 송신측 벡터 tj를 생성하는 송신 장치와, 복수의 인덱스 j' 중 1개 이상의 인덱스 j'에 대한 수신측 벡터 rj'로서, 상기 기저 벡터 bindex에 대응하는 상기 기저 B*에 있어서의 기저 벡터 b* index의 계수로, 인덱스 j'에 대응하는 인덱스 j에 미리 할당된 정보 J와의 내적이 0이 되는 정보 J'를 설정하고, 상기 기저 벡터 batt에 대응하는 상기 기저 B*에 있어서의 기저 벡터 b* att의 계수로, 인덱스 j'에 대한 파라미터 Ψj'를 설정한 수신측 벡터 rj'를 이용하여, 인덱스 j에 대한 상기 송신측 벡터 tj와 상기 인덱스 j에 대응하는 인덱스 j'에 대한 상기 수신측 벡터 rj'에 대하여, 대응하는 기저 벡터마다의 페어링 연산의 곱을 계산하는 수신 장치를 구비하는 것을 특징으로 한다.
본 발명과 관련되는 암호 시스템에서는, 송신측 벡터 tj에는 인덱스 j에 미리 할당된 정보 J가 설정되고, 수신측 벡터 rj'에는, 정보 J와의 내적이 0이 되는 정보 J'가 설정된다. 이것에 의해, 안전성을 유지한 채로, 모든 속성 카테고리에 공통의 기저 B 및 기저 B*를 이용할 수 있어, 속성 카테고리마다 기저 Bt 및 기저 B* t를 이용할 필요가 없어진다. 그 결과, 속성 카테고리를 추가하는 경우, 새로운 기저 Bt 및 기저 B* t를 생성할 필요가 없고, 공개 파라미터의 재발행을 하는 일 없이, 속성 카테고리의 추가를 가능하게 할 수 있다.
도 1은 행렬 M^의 설명도.
도 2는 행렬 Mδ의 설명도.
도 3은 s0의 설명도.
도 4는 s→T의 설명도.
도 5는 실시의 형태 2와 관련되는 KP-FE 방식을 실행하는 암호 시스템(10)의 구성도.
도 6은 실시의 형태 2와 관련되는 키 생성 장치(100)의 구성도.
도 7은 실시의 형태 2와 관련되는 암호화 장치(200)의 구성도.
도 8은 실시의 형태 2와 관련되는 복호 장치(300)의 구성도.
도 9는 실시의 형태 2와 관련되는 Setup 알고리즘의 처리를 나타내는 플로차트.
도 10은 실시의 형태 2와 관련되는 KeyGen 알고리즘의 처리를 나타내는 플로차트.
도 11은 실시의 형태 2와 관련되는 Enc 알고리즘의 처리를 나타내는 플로차트.
도 12는 실시의 형태 2와 관련되는 Dec 알고리즘의 처리를 나타내는 플로차트.
도 13은 실시의 형태 3과 관련되는 CP-FE 방식을 실행하는 암호 시스템(10)의 구성도.
도 14는 실시의 형태 3과 관련되는 키 생성 장치(100)의 구성도.
도 15는 실시의 형태 3과 관련되는 암호화 장치(200)의 구성도.
도 16은 실시의 형태 3과 관련되는 복호 장치(300)의 구성도.
도 17은 실시의 형태 3과 관련되는 KeyGen 알고리즘의 처리를 나타내는 플로차트.
도 18은 실시의 형태 3과 관련되는 Enc 알고리즘의 처리를 나타내는 플로차트.
도 19는 실시의 형태 3과 관련되는 Dec 알고리즘의 처리를 나타내는 플로차트.
도 20은 실시의 형태 4와 관련되는 HIPE 방식을 실행하는 암호 시스템(10)의 구성도.
도 21은 실시의 형태 4와 관련되는 키 생성 장치(100)의 구성도.
도 22는 실시의 형태 4와 관련되는 암호화 장치(200)의 구성도.
도 23은 실시의 형태 4와 관련되는 복호 장치(300)의 구성도.
도 24는 실시의 형태 4와 관련되는 키 위양 장치(400)의 구성도.
도 25는 실시의 형태 4와 관련되는 Setup 알고리즘의 처리를 나타내는 플로차트.
도 26은 실시의 형태 4와 관련되는 KeyGen 알고리즘의 처리를 나타내는 플로차트.
도 27은 실시의 형태 4와 관련되는 Enc 알고리즘의 처리를 나타내는 플로차트.
도 28은 실시의 형태 4와 관련되는 Dec 알고리즘의 처리를 나타내는 플로차트.
도 29는 실시의 형태 4와 관련되는 DelegateL 알고리즘의 처리를 나타내는 플로차트.
도 30은 실시의 형태 5와 관련되는 서명 방식을 실행하는 암호 시스템(10)의 구성도.
도 31은 실시의 형태 5와 관련되는 키 생성 장치(100)의 구성도.
도 32는 실시의 형태 5와 관련되는 서명 장치(500)의 구성도.
도 33은 실시의 형태 5와 관련되는 검증 장치(600)의 구성도.
도 34는 실시의 형태 5와 관련되는 Setup 알고리즘의 처리를 나타내는 플로차트.
도 35는 실시의 형태 5와 관련되는 KeyGen 알고리즘의 처리를 나타내는 플로차트.
도 36은 실시의 형태 5와 관련되는 Sig 알고리즘의 처리를 나타내는 플로차트.
도 37은 실시의 형태 5와 관련되는 Ver 알고리즘의 처리를 나타내는 플로차트.
도 38은 다관리자의 설명도.
도 39는 다관리자의 경우에 있어서의 속성 카테고리를 추가 가능한 함수형 암호 방식의 설명도.
도 40은 키 생성 장치(100), 암호화 장치(200), 복호 장치(300), 키 위양 장치(400), 서명 장치(500), 검증 장치(600)의 하드웨어 구성의 일례를 나타내는 도면.
이하, 도면에 근거하여, 발명의 실시의 형태를 설명한다.
이하의 설명에 있어서, 처리 장치는 후술하는 CPU(911) 등이다. 기억 장치는 후술하는 ROM(913), RAM(914), 자기 디스크(920) 등이다. 통신 장치는 후술하는 통신 보드(915) 등이다. 입력 장치는 후술하는 키보드(902), 통신 보드(915) 등이다. 다시 말해, 처리 장치, 기억 장치, 통신 장치, 입력 장치는 하드웨어이다.
이하의 설명에 있어서의 기법에 대하여 설명한다.
A가 랜덤인 변수 또는 분포일 때, 수학식 101은, A의 분포에 따라 A로부터 y를 랜덤으로 선택하는 것을 나타낸다. 다시 말해, 수학식 101에 있어서, y는 난수이다.
[수학식 101]
Figure 112014088518616-pct00002
A가 집합일 때, 수학식 102는, A로부터 y를 균등하게 선택하는 것을 나타낸다. 다시 말해, 수학식 102에 있어서, y는 균등 난수이다.
[수학식 102]
Figure 112014088518616-pct00003
수학식 103은, y가 z에 의해 정의된 집합인 것, 또는 y가 z가 대입된 집합인 것을 나타낸다.
[수학식 103]
Figure 112014088518616-pct00004
a가 상수일 때, 수학식 104는, 기계(알고리즘) A가 입력 x에 대하여 a를 출력하는 것을 나타낸다.
[수학식 104]
Figure 112014088518616-pct00005
수학식 105, 다시 말해 Fq는, 위수(order) q의 유한체를 나타낸다.
[수학식 105]
Figure 112014088518616-pct00006
벡터 표기는, 유한체 Fq에 있어서의 벡터 표시를 나타낸다. 다시 말해, 수학식 106이다.
[수학식 106]
Figure 112014088518616-pct00007
수학식 107은, 수학식 108에 나타내는 2개의 벡터 x와 v의 수학식 109에 나타내는 내적을 나타낸다.
[수학식 107]
Figure 112014088518616-pct00008
[수학식 108]
Figure 112014088518616-pct00009
[수학식 109]
Figure 112014088518616-pct00010
XT는, 행렬 X의 전치행렬을 나타낸다.
bi(i=1, …, n)가 공간 V의 벡터의 요소일 때, 다시 말해, 수학식 110일 때, 수학식 111은, 수학식 112에 의해 생성되는 부분 공간을 나타낸다.
[수학식 110]
Figure 112014088518616-pct00011
[수학식 111]
Figure 112014088518616-pct00012
[수학식 112]
Figure 112014088518616-pct00013
수학식 113에 나타내는 기저 B와 기저 B*에 대하여, 수학식 114이다.
[수학식 113]
Figure 112014088518616-pct00014
[수학식 114]
Figure 112014088518616-pct00015
e j는, 수학식 115에 나타내는 정규 기저 벡터를 나타낸다.
[수학식 115]
Figure 112014088518616-pct00016
또한, 이하의 설명에 있어서, "Vt"가 다리 글자(inferior letter) 또는 어깨 글자(superior letter)로 나타나 있는 경우, 이 Vt는 Vt를 의미한다. 마찬가지로 "δi, j"가 어깨 글자로 나타나 있는 경우, 이 δi, j는, δi, j를 의미한다.
또한, 벡터를 의미하는 "→"가 다리 글자 또는 어깨 글자로 붙어 있는 경우, 이 "→"는 다리 글자 또는 어깨 글자에 어깨 글자로 붙어 있는 것을 의미한다.
또한, 이하의 설명에 있어서, 암호 프리미티브의 처리는, 정보를 제삼자로부터 은닉하기 위한 협의의 암호 처리뿐만이 아니라, 서명 처리도 포함하는 것이고, 키 생성 처리, 암호화 처리, 복호 처리, 키 위양 처리, 서명 처리, 검증 처리를 포함한다.
실시의 형태 1.
이 실시의 형태에서는, 이하의 실시의 형태에서 설명하는, 공개 파라미터를 재발행하는 일 없이, 속성 카테고리의 추가가 가능한 암호 프리미티브의 처리를 실현하는 기초가 되는 개념을 설명한다.
제 1에, 속성 카테고리의 추가에 대하여 설명한다.
제 2에, 함수형 암호 방식과, 함수형 암호 방식의 기본 구성에 대하여 간단하게 설명한다.
제 3에, 공개 파라미터를 재발행하는 일 없이, 속성 카테고리의 추가를 가능하게 하는 키 테크닉에 대하여 설명한다.
제 4에, 함수형 암호 방식을 실현하기 위한 공간인 「쌍대 페어링 벡터 공간(Dual Pairing Vector Spaces, DPVS)」이라고 하는 풍부한 수학적 구조를 갖는 공간을 설명한다.
제 5에, 함수형 암호 방식을 실현하기 위한 개념을 설명한다. 여기서는, 스팬 프로그램(Span Program)」, 「속성 정보의 내적과 액세스 스트럭처」, 「비밀 분산 방식(비밀 공유 방식)」에 대하여 설명한다.
<제 1. 속성 카테고리의 추가>
속성 카테고리란, 예컨대, 소속 기관, 소속 부서, 직무, 연령, 성별 등, 각 사용자의 속성의 분류이다.
이하의 실시의 형태에서 설명하는 암호 프리미티브의 처리는, 사용자의 속성에 근거하는 액세스 컨트롤을 실현한다. 예컨대, 정보를 제삼자로부터 은닉하기 위한 협의의 암호 처리이면, 사용자의 속성에 근거하여, 암호문을 복호할 수 있는지 여부를 제어한다.
통상, 액세스 컨트롤에 사용하는 속성 카테고리는, 시스템 설계시에 미리 결정된다. 그러나, 이후에 시스템의 운용이 변경되어, 액세스 컨트롤에 사용하는 속성 카테고리의 추가가 필요하게 되는 경우가 있다.
예컨대, A 회사 내에서만 사용하는 것을 상정하여 암호 시스템을 구축했다고 한다. 이 경우, 사용하는 속성 카테고리로서는, 소속 부서, 직무, 개인의 ID 등이 상정된다. 그러나, 이후에, A 회사뿐만이 아니라, A 회사의 관련 회사에서도 암호 시스템을 사용하도록 운용이 변경되었다고 한다. 이 경우, 사용하는 속성 카테고리로서, 새롭게 소속 회사를 추가할 필요가 있다.
액세스 컨트롤에 사용하는 속성 카테고리가, 공개 파라미터에 의해 규정되어 있는 경우, 이후에 속성 카테고리를 추가하려면, 공개 파라미터를 재발행하고, 사용자에게 다시 배포하지 않으면 안 된다. 그 때문에, 이후에 속성 카테고리를 추가하는 것은 용이하지 않고, 시스템 설계시에 상정하고 있지 않았던 운용 형태를 유연하게 채용할 수 없다.
그 때문에, 공개 파라미터를 재발행하는 일 없이, 속성 카테고리를 추가할 수 있는 것은 중요하다.
<제 2. 함수형 암호 방식>
함수형 암호 방식은, 암호화 키 ek와, 복호 키 dk의 사이의 관계를 보다 고도화하고, 보다 유연하게 한 암호 방식이다.
함수형 암호 방식에 있어서, 암호화 키 ek와 복호 키 dk에는, 각각, 파라미터 Φ와 파라미터 Ψ가 설정된다. 그리고, 관계 R(Φ, Ψ)가 성립하는 경우에 한해, 복호 키 dk는 암호화 키 ek로 암호화된 암호문을 복호할 수 있다.
함수형 암호 방식에는, 속성 베이스 암호 방식이나 ID 베이스 암호 방식이 포함된다.
함수형 암호 방식의 구성을 간단하게 설명한다.
함수형 암호 방식은, Setup, KeyGen, Enc, Dec의 4개의 알고리즘을 구비한다.
(Setup)
Setup 알고리즘은, 공개 파라미터 pk와, 마스터 키 sk를 출력하는 알고리즘이다.
(KeyGen)
KeyGen 알고리즘은, 공개 파라미터 pk와, 마스터 키 sk와, 파라미터 Ψ를 입력으로 하여, 복호 키 skΨ를 출력하는 알고리즘이다.
(Enc)
Enc 알고리즘은, 공개 파라미터 pk와, 파라미터 Φ와, 메시지 m을 입력으로 하여, 암호문 ctΦ를 출력하는 알고리즘이다.
(Dec)
Dec 알고리즘은, 공개 파라미터 pk와, 복호 키 skΨ와, 암호문 ctΦ를 입력으로 하여, 메시지 m, 또는, 식별 정보 ⊥를 출력하는 알고리즘이다.
또, 파라미터 Ψ와 파라미터 Φ가 관계 R을 만족시키는 경우(R(Φ, Ψ)가 성립하는 경우)에 한해, 암호문 ctΦ를 복호 키 skΨ로 복호하여, 메시지 m을 얻을 수 있다.
또, Setup 알고리즘은, 통상, 시스템의 셋업시에 1번만 실행된다. KeyGen 알고리즘은, 사용자의 복호 키 skΨ를 생성할 때마다 실행된다. Enc 알고리즘은, 메시지 m을 암호화할 때마다 실행된다. Dec 알고리즘은, 암호문 ctΦ를 복호할 때마다 실행된다.
<제 3. 키 테크닉>
공개 파라미터를 재발행하는 일 없이, 속성 카테고리의 추가를 가능하게 하는 키 테크닉은, 쌍대 페어링 벡터 공간에 있어서의 쌍대 시스템 암호에, 인덱스 부가의 기법을 적용하는 것이다.
쌍대 페어링 벡터 공간에 있어서의 쌍대 시스템 암호에서는, 쌍대 기저인 기저 B와 기저 B*가 랜덤으로 생성된다. 그리고, 기저 B의 일부(기저 B^)가 공개 파라미터가 된다.
비특허 문헌 29에 기재된 함수형 암호 방식에서는, 기저 B^ 1, …, 기저 B^ d가 공개 파라미터로서 생성된다. 그리고, t=1, …, d의 각 정수 t에 대한 기저 B^ t에, 1개의 속성 카테고리가 할당된다. 다시 말해, d개의 속성 카테고리를 처리할 수 있다.
여기서, 기저 B^ 1, …, 기저 B^ d가 공개 파라미터인 것으로부터 분명한 바와 같이, 이후에 기저 B^를 추가하는 경우, 즉 d의 값을 늘리는 경우에는, 공개 파라미터를 재발행하지 않으면 안 된다. 다시 말해, d의 값은 공개 파라미터에 의해 제한되고 있다.
이하의 실시의 형태에서 설명하는 함수형 암호 방식에서는, 기저 B^가 공개 파라미터로서 생성된다. 그리고, t=1, …, d의 각 정수 t에 대하여, σt(1, t)와 μi(t, -1)의 2차원의 인덱스 벡터가 암호문 c와 비밀 키 k*에 설정되고, 각 정수 t에 대하여 1개의 속성 카테고리가 할당된다. 다시 말해, d개의 속성 카테고리를 처리할 수 있다.
여기서, 공개 파라미터에는, 기저 B^는 포함되어 있지만, 인덱스 벡터는 포함되어 있지 않다. 그 때문에, 이후에 인덱스 벡터를 추가하고, d의 값을 늘리는 경우, 공개 파라미터를 재발행할 필요는 없다. 다시 말해, d의 값은 공개 파라미터에 의해 제한되고 있지 않다.
<제 4. 쌍대 페어링 벡터 공간>
우선, 대칭 쌍선형 페어링군에 대하여 설명한다.
대칭 쌍선형 페어링군 (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이다.
이하의 설명에 있어서, Gbpg를, 1λ를 입력으로 하여, 시큐리티 파라미터를 λ로 하는 쌍선형 페어링군의 파라미터 paramG:=(q, G, GT, g, e)의 값을 출력하는 알고리즘으로 한다.
다음으로, 쌍대 페어링 벡터 공간에 대하여 설명한다.
쌍대 페어링 벡터 공간 (q, V, GT, A, e)는, 대칭 쌍선형 페어링군 (paramG:=(q, G, GT, g, e))의 직적(direct product)에 의해 구성할 수 있다. 쌍대 페어링 벡터 공간 (q, V, GT, A, e)는, 소수 q, 수학식 116에 나타내는 Fq상의 N차원 벡터 공간 V, 위수 q의 순회군 GT, 공간 V의 표준 기저 A:=(a1, …, aN)의 조이고, 이하의 연산 (1), (2)를 갖는다. 여기서, ai는, 수학식 117에 나타내는 바와 같다.
[수학식 116]
Figure 112014088518616-pct00017
[수학식 117]
Figure 112014088518616-pct00018
연산 (1) : 비퇴화 쌍선형 페어링
공간 V에 있어서의 페어링은, 수학식 118에 의해 정의된다.
[수학식 118]
Figure 112014088518616-pct00019
이것은, 비퇴화 쌍선형이다. 다시 말해, 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) : 디스토션 사상(maps)
수학식 119에 나타내는 공간 V에 있어서의 선형 변환 φi, j는, 수학식 120을 행할 수 있다.
[수학식 119]
Figure 112014088518616-pct00020
[수학식 120]
Figure 112014088518616-pct00021
여기서, 선형 변환 φi, j를 디스토션 사상이라고 부른다.
이하의 설명에 있어서, Gdpvs를, 1λ(λ∈자연수), N∈자연수, 쌍선형 페어링군의 파라미터 paramG:=(q, G, GT, g, e)의 값을 입력으로 하여, 시큐리티 파라미터가 λ이고, N차원의 공간 V로 하는 쌍대 페어링 벡터 공간의 파라미터 paramV:=(q, V, GT, A, e)의 값을 출력하는 알고리즘으로 한다.
또, 여기서는, 상술한 대칭 쌍선형 페어링군에 의해, 쌍대 페어링 벡터 공간을 구성한 경우에 대하여 설명한다. 또, 비대칭 쌍선형 페어링군에 의해 쌍대 페어링 벡터 공간을 구성하는 것도 가능하다. 이하의 설명을, 비대칭 쌍선형 페어링군에 의해 쌍대 페어링 벡터 공간을 구성한 경우에 응용하는 것은 용이하다.
<제 5. 함수형 암호를 실현하기 위한 개념>
<제 5-1. 스팬 프로그램>
도 1은 행렬 M^의 설명도이다.
{p1, …, pn}을 변수의 집합으로 한다. M^:=(M, ρ)는, 레이블링(labeling) 행렬이다. 여기서, 행렬 M은, Fq상의 (L행×r열)의 행렬이다. 또한, ρ는, 행렬 M의 각 행에 부여된 레이블이고, {p1, …, pn, ¬p1, …, ¬pn}의 어느 1개의 리터럴(literal)에 대응된다. 또, M의 모든 행에 부여된 레이블 ρi(i=1, …, L)가 어느 1개의 리터럴에 대응된다. 다시 말해, ρ:{1, …, L}→{p1, …, pn, ¬p1, …, ¬pn}이다.
모든 입력열 δ∈{0, 1}n에 대하여, 행렬 M의 부분 행렬 Mδ가 정의된다. 행렬 Mδ는, 입력열 δ에 의해 레이블 ρ에 값 "1"이 대응된 행렬 M의 행으로 구성되는 부분 행렬이다. 다시 말해, 행렬 Mδ는, δi=1인 pi에 대응된 행렬 M의 행과, δi=0인 ¬pi에 대응된 행렬 M의 행으로 이루어지는 부분 행렬이다.
도 2는 행렬 Mδ의 설명도이다. 또, 도 2에서는, n=7, L=6, r=5로 하고 있다. 다시 말해, 변수의 집합은, {p1, …, p7}이고, 행렬 M은 (6행×5열)의 행렬이다. 또한, 도 2에 있어서, 레이블 ρ는, ρ1이 ¬p2에, ρ2가 p1에, ρ3이 p4에, ρ4가 ¬p5에, ρ5가 ¬p3에, ρ6이 p5에 각각 대응되어 있는 것으로 한다.
여기서, 입력열 δ∈{0, 1}7이, δ1=1, δ2=0, δ3=1, δ4=0, δ5=0, δ6=1, δ7=1인 것으로 한다. 이 경우, 파선으로 둘러싼 리터럴 (p1, p3, p6, p7, ¬p2, ¬p4, ¬p5)에 대응되어 있는 행렬 M의 행으로 이루어지는 부분 행렬이 행렬 Mδ이다. 다시 말해, 행렬 M의 1행째(M1), 2행째(M2), 4행째(M4)로 이루어지는 부분 행렬이 행렬 Mδ이다.
바꿔 말하면, 사상 γ:{1, …, L}→{0, 1}이, [ρ(j)=pi]∧[δi=1] 또는 [ρ(j)=¬pi]∧[δi=0]인 경우, γ(j)=1이고, 다른 경우, γ(j)=0인 것으로 한다. 이 경우에, Mδ:=(Mj)γ(j)=1이다. 여기서, Mj는, 행렬 M의 j번째의 행이다.
다시 말해, 도 2에서는, 사상 γ(j)=1(j=1, 2, 4)이고, 사상 γ(j)=0(j=3, 5, 6)이다. 따라서, (Mj)γ(j)=1은, M1, M2, M4이고, 행렬 Mδ이다.
즉, 사상 γ(j)의 값이 "0"인지 "1"인지에 따라서, 행렬 M의 j번째의 행이 행렬 Mδ에 포함되는지 여부가 결정된다.
1∈span<Mδ>인 경우에 한해, 스팬 프로그램 M^는 입력열 δ를 수리하고, 다른 경우에는 입력열 δ를 거절한다. 다시 말해, 입력열 δ에 의해 행렬 M^로부터 얻어지는 행렬 Mδ의 행을 선형 결합하여 1가 얻어지는 경우에 한해, 스팬 프로그램 M^는 입력열 δ를 수리한다. 또, 1란, 각 요소가 값 "1"인 행벡터이다.
예컨대, 도 2의 예이면, 행렬 M의 1, 2, 4행째로 이루어지는 행렬 Mδ의 각 행을 선형 결합하여 1가 얻어지는 경우에 한해, 스팬 프로그램 M^는 입력열 δ를 수리한다. 다시 말해, α1(M1)+α2(M2)+α4(M4)=1가 되는 α1, α2, α4가 존재하는 경우에는, 스팬 프로그램 M^는 입력열 δ를 수리한다.
여기서, 레이블 ρ가 정(positive)의 리터럴 {p1, …, pn}에만 대응되어 있는 경우, 스팬 프로그램은 모노톤이라고 불린다. 한편, 레이블 ρ가 리터럴 {p1, …, pn, ¬p1, …, ¬pn}에 대응되어 있는 경우, 스팬 프로그램은 논모노톤이라고 불린다. 여기서는, 스팬 프로그램은 논모노톤으로 한다. 그리고, 논모노톤 스팬 프로그램을 이용하여, 액세스 스트럭처(논모노톤 액세스 스트럭처)를 구성한다. 액세스 스트럭처란, 간단하게 말하면 암호로의 액세스 제어를 행하는 것이다. 다시 말해, 암호문을 복호할 수 있는지 여부의 제어를 행하는 것이다.
자세한 것은 후술하지만, 스팬 프로그램이 모노톤이 아니고, 논모노톤인 것에 의해, 스팬 프로그램을 이용하여 구성하는 함수형 암호 방식의 이용 범위가 넓어진다.
<제 5-2. 속성 정보의 내적과 액세스 스트럭처>
여기서는, 속성 정보의 내적을 이용하여 상술한 사상 γ(j)를 계산한다. 다시 말해, 속성 정보의 내적을 이용하여, 행렬 M의 어느 행을 행렬 Mδ에 포함시킬지를 결정한다.
Ut(t=1, …, d이고 Ut⊂{0, 1}*)는, 부분 전집합(sub-universe)이고, 속성의 집합이다. 그리고, Ut는, 각각 부분 전집합의 식별 정보 (t)와, n차원 벡터 (v)를 포함한다. 다시 말해, Ut는, (t, v)이다. 여기서, t∈{1, …, d}이고, v∈Fq n이다.
Ut:=(t, v)를 스팬 프로그램 M^:=(M, ρ)에 있어서의 변수 p로 한다. 다시 말해, p:=(t, v)이다. 그리고, 변수 (p:=(t, v), (t', v'), …)로 한 스팬 프로그램 M^:=(M, ρ)를 액세스 스트럭처 S로 한다.
다시 말해, 액세스 스트럭처 S:=(M, ρ)이고, ρ:{1, …, L}→{(t, v), (t', v'), …, ¬(t, v), ¬(t', v'), …}이다.
다음으로, Γ를 속성의 집합으로 한다. 다시 말해, Γ:={(t, x→t)|x t∈Fq n, 1≤t≤d}이다.
액세스 스트럭처 S에 Γ가 주어진 경우, 스팬 프로그램 M^:=(M, ρ)에 대한 사상 γ:{1, …, L}→{0, 1}은, 이하와 같이 정의된다. i=1, …, L의 각 정수 i에 대하여, [ρ(i)=(t, v i)]∧[(t, x t)∈Γ]∧[v iㆍx t=0], 또는, [ρ(i)=¬(t, v i)]∧[(t, x t)∈Γ]∧[v iㆍx t≠0]인 경우, γ(j)=1이고, 다른 경우, γ(j)=0으로 한다.
다시 말해, 속성 정보 v와 x의 내적에 근거하여, 사상 γ가 계산된다. 그리고, 상술한 바와 같이, 사상 γ에 의해, 행렬 M의 어느 행을 행렬 Mδ에 포함시킬지가 결정된다. 즉, 속성 정보 v와 x의 내적에 의해, 행렬 M의 어느 행을 행렬 Mδ에 포함시킬지가 결정되고, 1∈span<(Mi)γ(i)=1>인 경우에 한해, 액세스 스트럭처 S:=(M, ρ)는 Γ를 수리한다.
<제 5-3. 비밀 분산 방식>
액세스 스트럭처 S:=(M, ρ)에 대한 비밀 분산 방식에 대하여 설명한다.
또, 비밀 분산 방식이란, 비밀 정보를 분산시켜, 의미가 없는 분산 정보로 하는 것이다. 예컨대, 비밀 정보 s를 10개로 분산시켜, 10개의 분산 정보를 생성한다. 여기서, 10개의 분산 정보 각각은, 비밀 정보 s의 정보를 갖고 있지 않다. 따라서, 어느 1개의 분산 정보를 손에 넣더라도 비밀 정보 s에 관하여 조금도 정보를 얻을 수는 없다. 한편, 10개의 분산 정보를 모두 손에 넣으면, 비밀 정보 s를 복원할 수 있다.
또한, 10개의 분산 정보를 모두 손에 넣지 않더라도, 일부만(예컨대, 8개) 손에 넣으면 비밀 정보 s를 복원할 수 있는 비밀 분산 방식도 있다. 이와 같이, 10개의 분산 정보 중 8개로 비밀 정보 s를 복원할 수 있는 경우를, 8-out-of-10이라고 부른다. 다시 말해, n개의 분산 정보 중 t개로 비밀 정보 s를 복원할 수 있는 경우를, t-out-of-n이라고 부른다. 이 t를 임계치라고 부른다.
또한, d1, …, d10의 10개의 분산 정보를 생성한 경우에, d1, …, d8까지의 8개의 분산 정보이면 비밀 정보 s를 복원할 수 있지만, d3, …, d10까지의 8개의 분산 정보이면 비밀 정보 s를 복원할 수 없는 비밀 분산 방식도 있다. 다시 말해, 손에 넣은 분산 정보의 수뿐만이 아니라, 분산 정보의 조합에 따라 비밀 정보 s를 복원할 수 있는지 여부를 제어하는 비밀 분산 방식도 있다.
도 3은 s0의 설명도이다. 도 4는 s→T의 설명도이다.
행렬 M을 (L행×r열)의 행렬로 한다. f→T를 수학식 121에 나타내는 열벡터로 한다.
[수학식 121]
Figure 112014088518616-pct00022
수학식 122에 나타내는 s0을 공유되는 비밀 정보로 한다.
[수학식 122]
Figure 112014088518616-pct00023
또한, 수학식 123에 나타내는 s→T를 s0의 L개의 분산 정보의 벡터로 한다.
[수학식 123]
Figure 112014088518616-pct00024
그리고, 분산 정보 si를 ρ(i)에 속하는 것으로 한다.
액세스 스트럭처 S:=(M, ρ)가 Γ를 수리하는 경우, 다시 말해 γ:{1, …, L}→{0, 1}에 대하여 1∈span<(Mi)γ(i)=1>인 경우, I⊆{i∈{1, …, L}|γ(i)=1}인 상수 {αi∈Fq|i∈I}가 존재한다.
이것은, 도 2의 예에서, α1(M1)+α2(M2)+α4(M4)=1가 되는 α1, α2, α4가 존재하는 경우에는, 스팬 프로그램 M^는 입력열 δ를 수리한다고 설명한 것으로부터도 분명하다. 다시 말해, α1(M1)+α2(M2)+α4(M4)=1가 되는 α1, α2, α4가 존재하는 경우에는, 스팬 프로그램 M^가 입력열 δ를 수리하는 것이라면, α1(M1)+α2(M2)+α4(M4)=1가 되는 α1, α2, α4가 존재한다.
그리고, 수학식 124이다.
[수학식 124]
Figure 112014088518616-pct00025
또, 상수 {αi}는, 행렬 M의 사이즈에 있어서의 다항식 시간으로 계산 가능하다.
이하의 실시의 형태와 관련되는 함수형 암호 방식은, 상술한 바와 같이, 스팬 프로그램에 내적 술어와 비밀 분산 방식을 적용하여 액세스 스트럭처를 구성한다. 그 때문에, 스팬 프로그램에 있어서의 행렬 M이나, 내적 술어에 있어서의 속성 정보 x 및 속성 정보 v(술어 정보)를 설계하는 것에 의해, 액세스 제어를 자유롭게 설계할 수 있다. 다시 말해, 매우 높은 자유도로 액세스 제어의 설계를 행할 수 있다. 또, 행렬 M의 설계는, 비밀 분산 방식의 임계치 등의 조건 설계에 상당한다.
예컨대, 상술한 속성 베이스 암호 방식은, 이하의 실시의 형태와 관련되는 함수형 암호 방식에 있어서의 액세스 스트럭처에 있어서, 내적 술어의 설계를 어느 조건으로 한정한 경우에 상당한다. 다시 말해, 이하의 실시의 형태와 관련되는 함수형 암호 방식에 있어서의 액세스 스트럭처에 비하여, 속성 베이스 암호 방식에 있어서의 액세스 스트럭처는, 내적 술어에 있어서의 속성 정보 x 및 속성 정보 v(술어 정보)를 설계의 자유도가 없는 만큼, 액세스 제어의 설계의 자유도가 낮다. 또, 구체적으로는, 속성 베이스 암호 방식은, 속성 정보 {x t}t∈{1, …, d}와 {v t}t∈{1, …, d}를, 등호 관계에 대한 2차원 벡터, 예컨대 x t:=(1, xt)와 v t:=(vt, -1)로 한정한 경우에 상당한다.
또한, 내적 술어 암호 방식은, 이하의 실시의 형태와 관련되는 함수형 암호 방식에 있어서의 액세스 스트럭처에 있어서, 스팬 프로그램에 있어서의 행렬 M의 설계를 어느 조건으로 한정한 경우에 상당한다. 다시 말해, 이하의 실시의 형태와 관련되는 함수형 암호 방식에 있어서의 액세스 스트럭처에 비하여, 내적 술어 암호 방식에 있어서의 액세스 스트럭처는, 스팬 프로그램에 있어서의 행렬 M의 설계의 자유도가 없는 만큼, 액세스 제어의 설계의 자유도가 낮다. 또, 구체적으로는, 내적 술어 암호 방식은, 비밀 분산 방식을 1-out-of-1(혹은, d-out-of-d)로 한정한 경우이다.
특히, 이하의 실시의 형태와 관련되는 함수형 암호 방식에 있어서의 액세스 스트럭처는, 논모노톤 스팬 프로그램을 이용한 논모노톤 액세스 스트럭처를 구성한다. 그 때문에, 액세스 제어의 설계의 자유도가 보다 높아진다.
구체적으로는, 논모노톤 스팬 프로그램에는, 부정형의 리터럴(¬p)을 포함하기 때문에, 부정형의 조건을 설정할 수 있다. 예컨대, 제 1 회사에는, A부와 B부와 C부와 D부의 4개의 부서가 있었다고 한다. 여기서, 제 1 회사의 B부 이외의 부서에 속하는 사용자에게만 액세스 가능(복호 가능)이라고 하는 액세스 제어를 하고 싶다고 한다. 이 경우에, 부정형의 조건의 설정을 할 수 없다고 하면, 「제 1 회사의 A부와 C부와 D부의 어느 하나에 속하는 것」이라고 하는 조건을 설정할 필요가 있다. 한편, 부정형의 조건의 설정을 할 수 있다고 하면, 「제 1 회사의 사원으로서, B부 이외에 속하는 것」이라고 하는 조건을 설정할 수 있다. 다시 말해, 부정형의 조건을 설정할 수 있는 것에 의해, 자연스러운 조건 설정이 가능하게 된다. 또, 여기서는 부서의 수가 적지만, 부서의 수가 많은 경우 등은 매우 유효한 것을 알 수 있다.
실시의 형태 2.
이 실시의 형태에서는, 협의의 암호 처리 방식에 대하여 설명한다. 특히, 이 실시의 형태에서는, Key-Policy 함수형 암호(KP-FE) 방식에 대하여 설명한다.
또, Key-Policy란, 복호 키에 Policy가 삽입되는 것, 다시 말해 액세스 스트럭처가 삽입되는 것을 의미한다.
제 1에, KP-FE 방식의 구성에 대하여 설명한다.
제 2에, KP-FE 방식을 실현하는 암호 시스템(10)의 구성에 대하여 설명한다.
제 3에, KP-FE 방식에 대하여 상세하게 설명한다.
<제 1. KP-FE 방식의 구성>
KP-FE 방식은, Setup, KeyGen, Enc, Dec의 4개의 알고리즘을 구비한다.
(Setup)
Setup 알고리즘은, 시큐리티 파라미터 λ가 입력되고, 공개 파라미터 pk와, 마스터 키 sk를 출력하는 확률적 알고리즘이다.
(KeyGen)
KeyGen 알고리즘은, 액세스 스트럭처 S:=(M, ρ)와 공개 파라미터 pk와, 마스터 키 sk를 입력으로 하여, 복호 키 skS를 출력하는 확률적 알고리즘이다.
(Enc)
Enc 알고리즘은, 메시지 m과, 속성의 집합인 Γ:={(t, x t)|x t∈Fq n, 1≤t≤d}와, 공개 파라미터 pk를 입력으로 하여, 암호문 ctΓ를 출력하는 확률적 알고리즘이다.
(Dec)
Dec 알고리즘은, 속성의 집합인 Γ의 아래에서 암호화된 암호문 ctΓ와, 액세스 스트럭처 S에 대한 복호 키 skS와, 공개 파라미터 pk를 입력으로 하여, 메시지 m, 또는, 식별 정보 ⊥를 출력하는 알고리즘이다.
<제 2. KP-FE 방식을 실현하는 암호 시스템(10)의 구성>
도 5는 실시의 형태 2와 관련되는 KP-FE 방식을 실행하는 암호 시스템(10)의 구성도이다.
암호 시스템(10)은, 키 생성 장치(100), 암호화 장치(200), 복호 장치(300)를 구비한다.
키 생성 장치(100)는, 시큐리티 파라미터 λ를 입력으로 하여 Setup 알고리즘을 실행하여, 공개 파라미터 pk와 마스터 키 sk를 생성한다. 그리고, 키 생성 장치(100)는, 생성한 공개 파라미터 pk를 공개한다. 또한, 키 생성 장치(100)는, 액세스 스트럭처 S를 입력으로 하여 KeyGen 알고리즘을 실행하여, 복호 키 skS를 생성하여 복호 장치(300)에 비밀리에 배포한다.
암호화 장치(200)는, 메시지 m과, 속성의 집합 Γ와, 공개 파라미터 pk를 입력으로 하여 Enc 알고리즘을 실행하여, 암호문 ctΓ를 생성한다. 암호화 장치(200)는, 생성한 암호문 ctΓ를 복호 장치(300)에 송신한다.
복호 장치(300)는, 공개 파라미터 pk와, 복호 키 skS와, 암호문 ctΓ를 입력으로 하여 Dec 알고리즘을 실행하여, 메시지 m 또는 식별 정보 ⊥를 출력한다.
<제 3. KP-FE 방식의 상세>
도 6으로부터 도 12에 근거하여, KP-FE 방식, 및, KP-FE 방식을 실행하는 암호 시스템(10)의 기능과 동작에 대하여 설명한다.
도 6은 실시의 형태 2와 관련되는 키 생성 장치(100)의 구성도이다. 도 7은 실시의 형태 2와 관련되는 암호화 장치(200)의 구성도이다. 도 8은 실시의 형태 2와 관련되는 복호 장치(300)의 구성도이다.
도 9와 도 10은 키 생성 장치(100)의 동작을 나타내는 플로차트이다. 또, 도 9는 Setup 알고리즘의 처리를 나타내는 플로차트이고, 도 10은 KeyGen 알고리즘의 처리를 나타내는 플로차트이다. 도 11은 암호화 장치(200)의 동작을 나타내는 플로차트이고, Enc 알고리즘의 처리를 나타내는 플로차트이다. 도 12는 복호 장치(300)의 동작을 나타내는 플로차트이고, Dec 알고리즘의 처리를 나타내는 플로차트이다.
또, 이하의 설명에서는, xt , 1:=1인 것으로 한다.
키 생성 장치(100)의 기능과 동작에 대하여 설명한다.
키 생성 장치(100)는, 마스터 키 생성부(110), 마스터 키 기억부(120), 정보 입력부(130), 복호 키 생성부(140), 키 배포부(150)를 구비한다. 또한, 복호 키 생성부(140)는, f 벡터 생성부(141), s 벡터 생성부(142), 난수 생성부(143), 키 요소 생성부(144)를 구비한다.
우선, 도 9에 근거하여, Setup 알고리즘의 처리에 대하여 설명한다.
(S101 : 정규 직교 기저 생성 단계)
마스터 키 생성부(110)는, 처리 장치에 의해, 수학식 125를 계산하여, 파라미터 param과, 기저 B0 및 기저 B* 0과, 기저 B1(기저 B) 및 기저 B* 1(기저 B*)을 생성한다.
[수학식 125]
Figure 112014088518616-pct00026
다시 말해, 마스터 키 생성부(110)는 이하의 처리를 실행한다.
(1) 마스터 키 생성부(110)는, 입력 장치에 의해, 시큐리티 파라미터 λ(1λ)를 입력한다.
(2) 마스터 키 생성부(110)는, 처리 장치에 의해, (1)에서 입력한 시큐리티 파라미터 λ(1λ)를 입력으로 하여 알고리즘 Gbpg를 실행하여, 쌍선형 페어링군의 파라미터 paramG:=(q, G, GT, g, e)의 값을 생성한다.
(3) 마스터 키 생성부(110)는, 처리 장치에 의해, 난수 ψ를 생성함과 아울러, N0에 1+u0+1+w0+z0을, N1에 2+n+u+w+z를 설정한다. 또, n은 1 이상의 정수이고, u0, w0, z0, u, w, z는 각각 0 이상의 정수이다.
계속하여, 마스터 키 생성부(110)는, t=0, 1의 각 t에 대하여 이하의 (4)로부터 (8)까지의 처리를 실행한다.
(4) 마스터 키 생성부(110)는, 처리 장치에 의해, (1)에서 입력한 시큐리티 파라미터 λ(1λ)와, (3)에서 설정한 Nt와, (2)에서 생성한 paramG:=(q, G, GT, g, e)의 값을 입력으로 하여 알고리즘 Gdpvs를 실행하여, 쌍대 페어링 벡터 공간의 파라미터 paramVt:=(q, Vt, GT, At, e)의 값을 생성한다.
(5) 마스터 키 생성부(110)는, 처리 장치에 의해, (3)에서 설정한 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를 생성한다. 또, x t, i란, 선형 변환 Xt의 i행째를 나타낸다.
(8) 마스터 키 생성부(110)는, 처리 장치에 의해, (6)에서 생성한 (νt, i, j)i, j에 근거하여, (4)에서 생성한 표준 기저 At로부터 기저 B* t를 생성한다. 또, v t, i란, 선형 변환 X* t의 i행째를 나타낸다.
(9) 마스터 키 생성부(110)는, 처리 장치에 의해, gT에 e(g, g)ψ를 설정한다. 또한, 마스터 키 생성부(110)는, param에 (4)에서 생성한 {paramVt}t=0, 1과, gT를 설정한다.
즉, (S101)에서, 마스터 키 생성부(110)는, 수학식 126에 나타내는 알고리즘 Gob를 실행하여, param과, 기저 B0 및 기저 B* 0과, 기저 B1(기저 B) 및 기저 B* 1(기저 B*)을 생성한다.
[수학식 126]
Figure 112014088518616-pct00027
또, 이하의 설명에서는, 간단하게 하기 위해, 기저 B1 및 기저 B* 1을 기저 B 및 기저 B*로 한다.
(S102 : 공개 파라미터 생성 단계)
마스터 키 생성부(110)는, 처리 장치에 의해, (S101)에서 생성한 기저 B0의 부분 기저 B^ 0과, 기저 B의 부분 기저 B^를 수학식 127에 나타내는 바와 같이 생성한다.
[수학식 127]
Figure 112014088518616-pct00028
마스터 키 생성부(110)는, 생성한 부분 기저 B^ 0 및 부분 기저 B^와, (S101)에서 입력된 시큐리티 파라미터 λ(1λ)와, (S101)에서 생성한 param을 합하여, 공개 파라미터 pk로 한다.
(S103 : 마스터 키 생성 단계)
마스터 키 생성부(110)는, 처리 장치에 의해, (S101)에서 생성한 기저 B* 0의 부분 기저 B^* 0과, 기저 B*의 부분 기저 B^*를 수학식 128에 나타내는 바와 같이 생성한다.
[수학식 128]
Figure 112014088518616-pct00029
마스터 키 생성부(110)는, 생성한 부분 기저 B^* 0과 부분 기저 B^*를 마스터 키 sk로 한다.
(S104 : 마스터 키 기억 단계)
마스터 키 기억부(120)는, (S102)에서 생성한 공개 파라미터 pk를 기억 장치에 기억한다. 또한, 마스터 키 기억부(120)는, (S103)에서 생성한 마스터 키 sk를 기억 장치에 기억한다.
다시 말해, (S101)로부터 (S103)에 있어서, 키 생성 장치(100)는, 수학식 129에 나타내는 Setup 알고리즘을 실행하여, 공개 파라미터 pk와 마스터 키 sk를 생성한다. 그리고, (S104)에서, 키 생성 장치(100)는, 생성한 공개 파라미터 pk와 마스터 키 sk를 기억 장치에 기억한다.
또, 공개 파라미터는, 예컨대, 네트워크를 거쳐서 공개되어, 암호화 장치(200)나 복호 장치(300)가 취득 가능한 상태가 된다.
[수학식 129]
Figure 112014088518616-pct00030
다음으로, 도 10에 근거하여, KeyGen 알고리즘의 처리에 대하여 설명한다.
(S201 : 정보 입력 단계)
정보 입력부(130)는, 입력 장치에 의해, 상술한 액세스 스트럭처 S:=(M, ρ)를 입력한다. 또, 액세스 스트럭처 S의 행렬 M의 설정에 대해서는, 실현하고 싶은 시스템의 조건에 따라 설정되는 것이다. 또한, 액세스 스트럭처 S의 ρ는, 예컨대, 복호 키 skS의 사용자의 속성 정보가 설정되어 있다.
(S202 : f 벡터 생성 단계)
f 벡터 생성부(141)는, 처리 장치에 의해, r개의 요소를 갖는 벡터 f를 수학식 130에 나타내는 바와 같이 랜덤으로 생성한다.
[수학식 130]
Figure 112014088518616-pct00031
(S203 : s 벡터 생성 단계)
s 벡터 생성부(142)는, 처리 장치에 의해, (S201)에서 입력한 액세스 스트럭처 S에 포함되는 (L행×r열)의 행렬 M과, (S202)에서 생성한 벡터 f에 근거하여, 벡터 s→T:=(s1, …, sL)T를 수학식 131에 나타내는 바와 같이 생성한다.
[수학식 131]
Figure 112014088518616-pct00032
또한, s 벡터 생성부(142)는, 처리 장치에 의해, (S202)에서 생성한 벡터 f에 근거하여, 값 s0을 수학식 132에 나타내는 바와 같이 생성한다.
[수학식 132]
Figure 112014088518616-pct00033
(S204 : 난수 생성 단계)
난수 생성부(143)는, 처리 장치에 의해, 난수를 수학식 133에 나타내는 바와 같이 생성한다.
[수학식 133]
Figure 112014088518616-pct00034
(S205 : 키 요소 생성 단계)
키 요소 생성부(144)는, 처리 장치에 의해, 복호 키 skS의 요소 k* 0을 수학식 134에 나타내는 바와 같이 생성한다.
[수학식 134]
Figure 112014088518616-pct00035
또, 상술한 바와 같이, 수학식 113에 기저 B와 기저 B*에 대하여, 수학식 114이다. 따라서, 수학식 134는, 기저 B* 0의 기저 벡터 b* 0, 1의 계수로서 -s0을 설정하고, 기저 벡터 b* 0, 1+1, …, b* 0, 1+ u0의 계수로서 0을 설정하고, 기저 벡터 b* 0, 1+u0+1의 계수로서 1을 설정하고, 기저 벡터 b* 0, 1+ u0 +1+1, …, b* 0, 1+ u0 +1+ w0의 계수로서 η0, 1, …, η0, w0을 설정하고, 기저 벡터 b* 0, 1+ u0 +1+ w0 +1, …, b* 0, 1+ u0 +1+ w0 + z0의 계수로서 0을 설정하는 것을 의미한다. 여기서, u0, w0, z0은 각각 u0, w0, z0이다.
또한, 키 요소 생성부(144)는, 처리 장치에 의해, i=1, …, L의 각 정수 i에 대하여, 복호 키 skS의 요소 k* i를 수학식 135에 나타내는 바와 같이 생성한다.
[수학식 135]
Figure 112014088518616-pct00036
다시 말해, 수학식 135는, 수학식 134와 마찬가지로, ρ(i)가 긍정형의 조 (t, v i)인 경우에는, 기저 B*의 기저 벡터 b* 1의 계수로서 μit를 설정하고, 기저 벡터 b* 2의 계수로서 -μi를 설정하고, 기저 벡터 b* 2+1의 계수로서 siivi , 1을 설정하고, 기저 벡터 b* 2+2, …, b* 2+n의 계수로서 θivi , 2, …, θivi , n을 설정하고, 기저 벡터 b* 2+n+1, …, b* 2+n+u의 계수로서 0을 설정하고, 기저 벡터 b* 2+n+u+1, …, b* 2+n+u+w의 계수로서 ηi, 1, …, ηi, w를 설정하고, 기저 벡터 b* 2+n+u+w+1, …, b* 2+n+u+w+z의 계수로서 0을 설정하는 것을 의미한다.
한편, ρ(i)가 부정형의 조 ¬(t, v i)인 경우에는, 기저 B*의 기저 벡터 b* 1의 계수로서 μit를 설정하고, 기저 벡터 b* 2의 계수로서 -μi를 설정하고, 기저 벡터 b* 2+1, …, b* 2+n의 계수로서 sivi, 1, …, sivi, n을 설정하고, 기저 벡터 b* 2+n+1, …, b* 2+n+u의 계수로서 0을 설정하고, 기저 벡터 b* 2+n+u+1, …, b* 2+n+u+w의 계수로서 ηi, 1, …, ηi, w를 설정하고, 기저 벡터 b* 2+n+u+w+1, …, b* 2+n+u+w+z의 계수로서 0을 설정하는 것을 의미한다.
(S206 : 키 배포 단계)
키 배포부(150)는, (S201)에서 입력한 액세스 스트럭처 S와, (S205)에서 생성된 k* 0, k* 1, …, k* L을 요소로 하는 복호 키 skS를, 예컨대 통신 장치에 의해 네트워크를 거쳐서 비밀리에 복호 장치(300)에 배포한다. 물론, 복호 키 skS는, 다른 방법에 의해 복호 장치(300)에 배포되더라도 좋다.
다시 말해, (S201)로부터 (S205)에 있어서, 키 생성 장치(100)는, 수학식 136에 나타내는 KeyGen 알고리즘을 실행하여, 복호 키 skS를 생성한다. 그리고, (S206)에서, 키 생성 장치(100)는, 생성한 복호 키 skS를 복호 장치(300)에 배포한다.
[수학식 136]
Figure 112014088518616-pct00037
암호화 장치(200)의 기능과 동작에 대하여 설명한다.
암호화 장치(200)는, 공개 파라미터 취득부(210), 정보 입력부(220), 암호화 데이터 생성부(230), 데이터 송신부(240)를 구비한다. 또한, 암호화 데이터 생성부(230)는, 난수 생성부(231), 암호 요소 생성부(232)를 구비한다.
도 11에 근거하여, Enc 알고리즘의 처리에 대하여 설명한다.
(S301 : 공개 파라미터 취득 단계)
공개 파라미터 취득부(210)는, 예컨대, 통신 장치에 의해 네트워크를 거쳐서, 키 생성 장치(100)가 생성한 공개 파라미터 pk를 취득한다.
(S302 : 정보 입력 단계)
정보 입력부(220)는, 입력 장치에 의해, 복호 장치(300)에 송신하는 메시지 m을 입력한다. 또한, 정보 입력부(220)는, 입력 장치에 의해, 속성의 집합 Γ:={(t, x t:=(xt , 1, …, xt , n∈Fq n))|1≤t≤d}를 입력한다. 또, t는, 1 이상 d 이하의 모든 정수가 아니고, 1 이상 d 이하의 적어도 일부의 정수이더라도 좋다. 또한, 속성의 집합 Γ는, 예컨대, 복호 가능한 사용자의 속성 정보가 설정되어 있다.
(S303 : 난수 생성 단계)
난수 생성부(231)는, 처리 장치에 의해, 난수를 수학식 137에 나타내는 바와 같이 생성한다.
[수학식 137]
Figure 112014088518616-pct00038
(S304 : 암호 요소 생성 단계)
암호 요소 생성부(232)는, 처리 장치에 의해, 암호문 ctΓ의 요소 c0을 수학식 138에 나타내는 바와 같이 생성한다.
[수학식 138]
Figure 112014088518616-pct00039
또한, 암호 요소 생성부(232)는, 처리 장치에 의해, 속성 정보 Γ에 포함되는 각 정수 t에 대하여, 암호문 ctΓ의 요소 ct를 수학식 139에 나타내는 바와 같이 생성한다.
[수학식 139]
Figure 112014088518616-pct00040
또한, 암호 요소 생성부(232)는, 처리 장치에 의해, 암호문 ctΓ의 요소 cd +1을 수학식 140에 나타내는 바와 같이 생성한다.
[수학식 140]
Figure 112014088518616-pct00041
(S305 : 데이터 송신 단계)
데이터 송신부(240)는, (S302)에서 입력한 속성의 집합 Γ와, (S304)에서 생성된 c0, ct, cd +1을 요소로 하는 암호문 ctΓ를, 예컨대 통신 장치에 의해 네트워크를 거쳐서 복호 장치(300)에 송신한다. 물론, 암호문 ctΓ는, 다른 방법에 의해 복호 장치(300)에 송신되더라도 좋다.
다시 말해, (S301)로부터 (S304)에 있어서, 암호화 장치(200)는, 수학식 141에 나타내는 Enc 알고리즘을 실행하여, 암호문 ctΓ를 생성한다. 그리고, (S305)에서, 암호화 장치(200)는 생성한 암호문 ctΓ를 복호 장치(300)에 송신한다.
[수학식 141]
Figure 112014088518616-pct00042
복호 장치(300)의 기능과 동작에 대하여 설명한다.
복호 장치(300)는, 복호 키 취득부(310), 데이터 수신부(320), 스팬 프로그램 계산부(330), 보완 계수 계산부(340), 페어링 연산부(350), 메시지 계산부(360)를 구비한다.
도 12에 근거하여, Dec 알고리즘의 처리에 대하여 설명한다.
(S401 : 복호 키 취득 단계)
복호 키 취득부(310)는, 예컨대, 통신 장치에 의해 네트워크를 거쳐서, 키 생성 장치(100)로부터 배포된 복호 키 skS:=(S, k* 0, k* 1, …, k* L)을 취득한다. 또한, 복호 키 취득부(310)는, 키 생성 장치(100)가 생성한 공개 파라미터 pk를 취득한다.
(S402 : 데이터 수신 단계)
데이터 수신부(320)는, 예컨대, 통신 장치에 의해 네트워크를 거쳐서, 암호화 장치(200)가 송신한 암호문 ctΓ를 수신한다.
(S403 : 스팬 프로그램 계산 단계)
스팬 프로그램 계산부(330)는, 처리 장치에 의해, (S401)에서 취득한 복호 키 skS에 포함되는 액세스 스트럭처 S가, (S402)에서 수신한 암호문 ctΓ에 포함되는 Γ를 수리하는지 여부를 판정한다. 액세스 스트럭처 S가 Γ를 수리하는지 여부의 판정 방법은, 「실시의 형태 1에 있어서의 제 5. 함수형 암호를 실현하기 위한 개념」에서 설명한 바와 같다.
스팬 프로그램 계산부(330)는, 액세스 스트럭처 S가 Γ를 수리하는 경우(S403에서 수리), 처리를 (S404)로 진행한다. 한편, 액세스 스트럭처 S가 Γ를 거절하는 경우(S403에서 거절), 암호문 ctΓ를 복호 키 skS로 복호할 수 없다고 하여 처리를 종료한다.
(S404 : 보완 계수 계산 단계)
보완 계수 계산부(340)는, 처리 장치에 의해, 수학식 142가 되는 I와, 상수(보완 계수) {αi}i∈I를 계산한다.
[수학식 142]
Figure 112014088518616-pct00043
(S405 : 페어링 연산 단계)
페어링 연산부(350)는, 처리 장치에 의해, 수학식 143을 계산하여, 세션 키 K=gT ζ를 생성한다.
[수학식 143]
Figure 112014088518616-pct00044
또, 수학식 144에 나타내는 바와 같이, 수학식 143을 계산하는 것에 의해 키 K=gT ζ가 얻어진다.
[수학식 144]
Figure 112014088518616-pct00045
(S406 : 메시지 계산 단계)
메시지 계산부(360)는, 처리 장치에 의해, m'=cd +1/K를 계산하여, 메시지 m'(=m)를 생성한다. 또, cd +1은 수학식 142에 나타내는 바와 같이 gT ζm이고, K는 gT ζ이기 때문에, m'=cd +1/K를 계산하면 메시지 m이 얻어진다.
다시 말해, (S401)로부터 (S406)에 있어서, 복호 장치(300)는, 수학식 145에 나타내는 Dec 알고리즘을 실행하여, 메시지 m'(=m)를 생성한다.
[수학식 145]
Figure 112014088518616-pct00046
이상과 같이, 실시의 형태 2와 관련되는 암호 시스템(10)은, 복호 키 skS의 요소 k* i에 대하여, 기저 벡터 b* 1, b* 2의 계수로서, μit와 -μi를 각각 설정했다. 또한, 암호 시스템(10)은, 암호문 ctΓ의 요소 ct에 대하여, 기저 벡터 b1, b2의 계수로서, σt와 σtt를 각각 설정했다.
그 때문에, 대응하는 인덱스 t에 대한 요소 k* i와 요소 ct의 페어링 연산을 행하면, 기저 벡터 b* 1, b* 2와 기저 벡터 b1, b2의 부분에 대해서는, 내적이 0이 되어, 캔슬된다. 다시 말해, 대응하는 인덱스 t에 대한 요소 k* i와 요소 ct의 페어링 연산을 행하면, 기저 벡터의 계수로서 설정한 인덱스부(기저 벡터 b* 1, b* 2와 기저 벡터 b1, b2의 부분)는 캔슬되고, 나머지의 부분에 대한 페어링 연산의 결과가 얻어진다.
실시의 형태 2와 관련되는 암호 시스템(10)은, 인덱스부를 마련하는 것에 의해, 각 속성 카테고리에서 사용하는 기저를 공통의 기저(기저 B 및 기저 B*)로 할 수 있다. 그 결과, 공개 파라미터에는, 기저 B 및 기저 B*만을 포함시켜 두면 되고, 이후에 속성 카테고리를 추가하는 경우에, 공개 파라미터를 재발행할 필요가 없다.
또한, 실시의 형태 2와 관련되는 암호 시스템(10)은, 비특허 문헌 29에 기재된 함수형 암호 방식과 비교하여, 공개 파라미터나 마스터 비밀 키의 사이즈가 작다. 그 때문에, 공개 파라미터나 마스터 비밀 키를 이용한 각 연산을 효율적으로 행할 수 있다.
또, 인덱스부에 대해서는, 내적한 결과가 0이 되면 된다. 그 때문에, 상기 설명에서는, 기저 벡터 b* 1, b* 2와 기저 벡터 b1, b2의 2차원을 인덱스부로 했지만, 이것에 한하지 않고, 3차원 이상을 인덱스부로 하더라도 좋다. 또한, 인덱스부로의 값의 할당도 상기 설명의 것에 한하지 않고, 다른 할당이더라도 좋다.
또한, 상기 설명에서는, 함수형 암호 방식에 대하여 설명했다. 그러나, 수학식 146으로부터 수학식 149에 나타내는 바와 같이, 상기 함수형 암호 방식을 속성 베이스 암호 방식으로 변경할 수도 있다. 또, 수학식 146으로부터 수학식 149에서는, N0을 1+1+1+1+1=5로 하고, N1을 2+2+8+2+2=16으로 하고 있다. 다시 말해, u0=1, w0=1, z0=1, n=2, u=8, w=2, z=2로 하고 있다. 이 경우에도, 안전성을 증명하는 것이 가능하다.
[수학식 146]
Figure 112014088518616-pct00047
[수학식 147]
Figure 112014088518616-pct00048
[수학식 148]
Figure 112014088518616-pct00049
[수학식 149]
Figure 112014088518616-pct00050
실시의 형태 3.
이 실시의 형태에서는, 실시의 형태 2와 마찬가지로, 협의의 암호 처리 방식에 대하여 설명한다. 특히, 이 실시의 형태에서는, Ciphertext-Policy 함수형 암호(CP-FE) 방식에 대하여 설명한다.
또, Ciphertext-Policy란, 암호문에 Policy가 삽입되는 것, 다시 말해 액세스 스트럭처가 삽입되는 것을 의미한다.
제 1에, CP-FE 방식의 구성에 대하여 설명한다.
제 2에, CP-FE 방식을 실현하는 암호 시스템(10)의 구성에 대하여 설명한다.
제 3에, CP-FE 방식에 대하여 상세하게 설명한다.
<제 1. CP-FE 방식의 구성>
CP-FE 방식은, Setup, KeyGen, Enc, Dec의 4개의 알고리즘을 구비한다.
(Setup)
Setup 알고리즘은, 시큐리티 파라미터 λ가 입력되고, 공개 파라미터 pk와, 마스터 키 sk를 출력하는 확률적 알고리즘이다.
(KeyGen)
KeyGen 알고리즘은, 속성의 집합인 Γ:={(t, x t)|x t∈Fq n, 1≤t≤d}와, 공개 파라미터 pk와, 마스터 키 sk를 입력으로 하여, 복호 키 skΓ를 출력하는 확률적 알고리즘이다.
(Enc)
Enc 알고리즘은, 메시지 m과, 액세스 스트럭처 S:=(M, ρ)와, 공개 파라미터 pk를 입력으로 하여, 암호문 ctS를 출력하는 확률적 알고리즘이다.
(Dec)
Dec 알고리즘은, 액세스 스트럭처 S의 아래에서 암호화된 암호문 ctS와, 속성의 집합인 Γ에 대한 복호 키 skΓ와, 공개 파라미터 pk를 입력으로 하여, 메시지 m, 또는, 식별 정보 ⊥를 출력하는 알고리즘이다.
<제 2. CP-FE 방식을 실현하는 암호 시스템(10)의 구성>
도 13은 실시의 형태 3과 관련되는 CP-FE 방식을 실행하는 암호 시스템(10)의 구성도이다.
암호 시스템(10)은, 키 생성 장치(100), 암호화 장치(200), 복호 장치(300)를 구비한다.
키 생성 장치(100)는, 시큐리티 파라미터 λ를 입력으로 하여 Setup 알고리즘을 실행하여, 공개 파라미터 pk와 마스터 키 sk를 생성한다. 그리고, 키 생성 장치(100)는, 생성한 공개 파라미터 pk를 공개한다. 또한, 키 생성 장치(100)는, 속성의 집합 Γ를 입력으로 하여 KeyGen 알고리즘을 실행하여, 복호 키 skΓ를 생성하여 복호 장치(300)에 비밀리에 배포한다.
암호화 장치(200)는, 메시지 m과, 액세스 스트럭처 S와, 공개 파라미터 pk를 입력으로 하여 Enc 알고리즘을 실행하여, 암호문 ctS를 생성한다. 암호화 장치(200)는, 생성한 암호문 ctS를 복호 장치(300)에 송신한다.
복호 장치(300)는, 공개 파라미터 pk와, 복호 키 skS와, 암호문 ctS를 입력으로 하여 Dec 알고리즘을 실행하여, 메시지 m 또는 식별 정보 ⊥를 출력한다.
<제 3. CP-FE 방식의 상세>
도 14로부터 도 19에 근거하여, CP-FE 방식, 및, CP-FE 방식을 실행하는 암호 시스템(10)의 기능과 동작에 대하여 설명한다.
도 14는 실시의 형태 3과 관련되는 키 생성 장치(100)의 구성도이다. 도 15는 실시의 형태 3과 관련되는 암호화 장치(200)의 구성도이다. 도 16은 실시의 형태 3과 관련되는 복호 장치(300)의 구성도이다.
도 17은 키 생성 장치(100)의 동작을 나타내는 플로차트이고, KeyGen 알고리즘의 처리를 나타내는 플로차트이다. 도 18은 암호화 장치(200)의 동작을 나타내는 플로차트이고, Enc 알고리즘의 처리를 나타내는 플로차트이다. 도 19는 복호 장치(300)의 동작을 나타내는 플로차트이고, Dec 알고리즘의 처리를 나타내는 플로차트이다.
또, 이하의 설명에서는, xt , 1:=1인 것으로 한다.
Setup 알고리즘의 처리는, 실시의 형태 2에서 설명한 처리와 동일하기 때문에, 설명을 생략한다.
키 생성 장치(100)의 기능과 동작에 대하여 설명한다.
키 생성 장치(100)는, 마스터 키 생성부(110), 마스터 키 기억부(120), 정보 입력부(130), 복호 키 생성부(140), 키 배포부(150)를 구비한다. 또한, 복호 키 생성부(140)는, 난수 생성부(143), 키 요소 생성부(144)를 구비한다.
도 17에 근거하여, KeyGen 알고리즘의 처리에 대하여 설명한다.
(S501 : 정보 입력 단계)
정보 입력부(130)는, 입력 장치에 의해, 속성의 집합 Γ:={(t, x t:=(xt , 1, …, xt , n∈Fq n))|1≤t≤d}를 입력한다. 또, 속성의 집합 Γ는, 예컨대, 복호 키 skΓ의 사용자의 속성 정보가 설정되어 있다.
(S502 : 난수 생성 단계)
난수 생성부(143)는, 처리 장치에 의해, 난수를 수학식 150에 나타내는 바와 같이 생성한다.
[수학식 150]
Figure 112014088518616-pct00051
(S503 : 키 요소 생성 단계)
키 요소 생성부(144)는, 처리 장치에 의해, 복호 키 skΓ의 요소 k* 0을 수학식 151에 나타내는 바와 같이 생성한다.
[수학식 151]
Figure 112014088518616-pct00052
또한, 키 요소 생성부(144)는, 처리 장치에 의해, 속성의 집합 Γ에 포함되는 각 정수 t에 대하여, 복호 키 skΓ의 요소 k* t를 수학식 152에 나타내는 바와 같이 생성한다.
[수학식 152]
Figure 112014088518616-pct00053
(S504 : 키 배포 단계)
키 배포부(150)는, (S501)에서 입력한 속성의 집합 Γ와, (S503)에서 생성된 k* 0, k* t를 요소로 하는 복호 키 skΓ를, 예컨대 통신 장치에 의해 네트워크를 거쳐서 비밀리에 복호 장치(300)에 배포한다. 물론, 복호 키 skΓ는, 다른 방법에 의해 복호 장치(300)에 배포되더라도 좋다.
다시 말해, (S501)로부터 (S503)에 있어서, 키 생성 장치(100)는, 수학식 153에 나타내는 KeyGen 알고리즘을 실행하여, 복호 키 skΓ를 생성한다. 그리고, (S504)에서, 키 생성 장치(100)는, 생성한 복호 키 skΓ를 복호 장치(300)에 배포한다.
[수학식 153]
Figure 112014088518616-pct00054
암호화 장치(200)의 기능과 동작에 대하여 설명한다.
암호화 장치(200)는, 공개 파라미터 취득부(210), 정보 입력부(220), 암호화 데이터 생성부(230), 데이터 송신부(240)를 구비한다. 또한, 암호화 데이터 생성부(230)는, 난수 생성부(231), 암호 요소 생성부(232), f 벡터 생성부(233), s 벡터 생성부(234)를 구비한다.
도 18에 근거하여, Enc 알고리즘의 처리에 대하여 설명한다.
(S601 : 공개 파라미터 취득 단계)
공개 파라미터 취득부(210)는, 예컨대, 통신 장치에 의해 네트워크를 거쳐서, 키 생성 장치(100)가 생성한 공개 파라미터 pk를 취득한다.
(S602 : 정보 입력 단계)
정보 입력부(220)는, 입력 장치에 의해, 액세스 스트럭처 S:=(M, ρ)를 입력한다. 또, 액세스 스트럭처 S의 설정에 대해서는, 실현하고 싶은 시스템의 조건에 따라 설정되는 것이다. 또한, 액세스 스트럭처 S의 ρ는, 예컨대, 복호 가능한 사용자의 속성 정보가 설정되어 있다.
또한, 정보 입력부(220)는, 입력 장치에 의해, 복호 장치(300)에 송신하는 메시지 m을 입력한다.
(S603 : f 벡터 생성 단계)
f 벡터 생성부(233)는, 처리 장치에 의해, r개의 요소를 갖는 벡터 f를 수학식 154에 나타내는 바와 같이 랜덤으로 생성한다.
[수학식 154]
Figure 112014088518616-pct00055
(S604 : s 벡터 생성 단계)
s 벡터 생성부(234)는, 처리 장치에 의해, (S602)에서 입력한 액세스 스트럭처 S에 포함되는 (L행×r열)의 행렬 M과, (S603)에서 생성한 벡터 f에 근거하여, 벡터 s→T:=(s1, …, sL)T를 수학식 155에 나타내는 바와 같이 생성한다.
[수학식 155]
Figure 112014088518616-pct00056
또한, s 벡터 생성부(234)는, 처리 장치에 의해, (S603)에서 생성한 벡터 f에 근거하여, 값 s0을 수학식 156에 나타내는 바와 같이 생성한다.
[수학식 156]
Figure 112014088518616-pct00057
(S605 : 난수 생성 단계)
난수 생성부(231)는, 처리 장치에 의해, 난수를 수학식 157에 나타내는 바와 같이 생성한다.
[수학식 157]
Figure 112014088518616-pct00058
(S606 : 암호 요소 생성 단계)
암호 요소 생성부(232)는, 처리 장치에 의해, 암호화 데이터 c의 요소 c0을 수학식 158에 나타내는 바와 같이 생성한다.
[수학식 158]
Figure 112014088518616-pct00059
또한, 암호 요소 생성부(232)는, 처리 장치에 의해, i=1, …, L의 각 정수 i에 대하여, 암호화 데이터 c의 요소 ci를 수학식 159에 나타내는 바와 같이 생성한다.
[수학식 159]
Figure 112014088518616-pct00060
또한, 암호 요소 생성부(232)는, 처리 장치에 의해, 암호화 데이터 c의 요소 cd+1을 수학식 160에 나타내는 바와 같이 생성한다.
[수학식 160]
Figure 112014088518616-pct00061
(S607 : 데이터 송신 단계)
데이터 송신부(240)는, (S602)에서 입력한 액세스 스트럭처 S와, (S606)에서 생성된 c0, c1, …, cL, cd +1을 요소로 하는 암호문 ctS를, 예컨대 통신 장치에 의해 네트워크를 거쳐서 복호 장치(300)에 송신한다. 물론, 암호문 ctS는, 다른 방법에 의해 복호 장치(300)에 송신되더라도 좋다.
다시 말해, (S601)로부터 (S606)에 있어서, 암호화 장치(200)는, 수학식 161에 나타내는 Enc 알고리즘을 실행하여, 암호문 ctS를 생성한다. 그리고, (S607)에서, 암호화 장치(200)는 생성한 암호문 ctS를 복호 장치(300)에 송신한다.
[수학식 161]
Figure 112014088518616-pct00062
복호 장치(300)의 기능과 동작에 대하여 설명한다.
복호 장치(300)는, 복호 키 취득부(310), 데이터 수신부(320), 스팬 프로그램 계산부(330), 보완 계수 계산부(340), 페어링 연산부(350), 메시지 계산부(360)를 구비한다.
도 15에 근거하여, Dec 알고리즘의 처리에 대하여 설명한다.
(S701 : 복호 키 취득 단계)
복호 키 취득부(310)는, 예컨대, 통신 장치에 의해 네트워크를 거쳐서, 키 생성 장치(100)로부터 배포된 복호 키 skΓ를 취득한다. 또한, 복호 키 취득부(310)는, 키 생성 장치(100)가 생성한 공개 파라미터 pk를 취득한다.
(S702 : 데이터 수신 단계)
데이터 수신부(320)는, 예컨대, 통신 장치에 의해 네트워크를 거쳐서, 암호화 장치(200)가 송신한 암호문 ctS를 수신한다.
(S703 : 스팬 프로그램 계산 단계)
스팬 프로그램 계산부(330)는, 처리 장치에 의해, (S702)에서 취득한 암호문 ctS에 포함되는 액세스 스트럭처 S가, (S701)에서 수신한 복호 키 skΓ에 포함되는 Γ를 수리하는지 여부를 판정한다. 액세스 스트럭처 S가 Γ를 수리하는지 여부의 판정 방법은, 「실시의 형태 1에 있어서의 제 5. 함수형 암호를 실현하기 위한 개념」에서 설명한 바와 같다.
스팬 프로그램 계산부(330)는, 액세스 스트럭처 S가 Γ를 수리하는 경우(S703에서 수리), 처리를 (S704)로 진행한다. 한편, 액세스 스트럭처 S가 Γ를 거절하는 경우(S703에서 거절), 암호문 ctS를 복호 키 skΓ로 복호할 수 없다고 하여 처리를 종료한다.
(S704)로부터 (S706)은, 실시의 형태 2에 있어서의 도 12에 나타내는 (S404)와 (S406)과 동일하다.
다시 말해, (S701)로부터 (S706)에 있어서, 암호화 장치(200)는, 수학식 162에 나타내는 Dec 알고리즘을 실행하여, 메시지 m'(=m)를 생성한다.
[수학식 162]
Figure 112014088518616-pct00063
이상과 같이, 실시의 형태 3과 관련되는 암호 시스템(10)은, 실시의 형태 2와 관련되는 암호 시스템(10)과 마찬가지로, 인덱스부를 마련하는 것에 의해, 각 속성 카테고리에서 사용하는 기저를 공통의 기저(기저 B 및 기저 B*)로 할 수 있다. 그 결과, 공개 파라미터에는, 기저 B 및 기저 B*만을 포함시켜 두면 되고, 이후에 속성 카테고리를 추가하는 경우에, 공개 파라미터를 재발행할 필요가 없다.
또, 실시의 형태 2와 마찬가지로, 인덱스부에 대해서는, 내적한 결과가 0이 되면 된다. 그 때문에, 상기 설명에서는, 기저 벡터 b* 1, b* 2와 기저 벡터 b1, b2의 2차원을 인덱스부로 했지만, 이것에 한하지 않고, 3차원 이상을 인덱스부로 하더라도 좋다. 또한, 인덱스부로의 값의 할당도 상기 설명의 것에 한하지 않고, 다른 할당이더라도 좋다.
또한, 상기 설명에서는, 함수형 암호 방식에 대하여 설명했다. 그러나, 수학식 163으로부터 수학식 167에 나타내는 바와 같이, 상기 함수형 암호 방식을 속성 베이스 암호 방식으로 변경할 수도 있다. 또, 수학식 163으로부터 수학식 167에서는, N0을 1+1+1+1+1=5로 하고, N1을 2+2+8+2+2=16으로 하고 있다. 다시 말해, u0=1, w0=1, z0=1, n=2, u=8, w=2, z=2로 하고 있다. 이 경우에도, 안전성을 증명하는 것이 가능하다.
[수학식 163]
Figure 112014088518616-pct00064
[수학식 164]
Figure 112014088518616-pct00065
[수학식 165]
Figure 112014088518616-pct00066
[수학식 166]
Figure 112014088518616-pct00067
또한, 실시의 형태 2에서는 KP-FE 방식에 대하여 설명하고, 실시의 형태 3에서는 CP-FE 방식에 대하여 설명했다. 이들과 마찬가지로, 비특허 문헌 30에 기재된 Unified-Policy FE(UP-FE)도, 속성 카테고리를 추가하는 경우에, 공개 파라미터를 재발행할 필요가 없는 구성으로 할 수 있다.
실시의 형태 4.
이 실시의 형태에서는, 실시의 형태 2, 3과 마찬가지로, 협의의 암호 처리 방식에 대하여 설명한다. 특히, 이 실시의 형태에서는, 계층적 내적 술어 암호(HIPE) 방식에 대하여 설명한다.
또, HIPE 방식이란, 권한 위양 가능한 내적 술어 암호 방식이다. 권한 위양이란, 상위의 키를 갖는 이용자가, 그 키(상위의 키)보다 기능이 제한된 하위의 키를 생성하는 것이다. 기능이 제한되었다는 것은, 상위의 키로 복호 가능한 암호문 중, 일부의 암호문만 하위의 키로 복호 가능하다고 하는 의미이다. 내적 술어 암호 방식은, 실시의 형태 1에서 설명한 바와 같이, 함수형 암호 방식에 있어서의 액세스 스트럭처의 설계를 한정한 경우에 상당한다.
HIPE 방식에는, 효율적인 제 1 방식과, 효율은 제 1 방식보다 뒤떨어지지만, 암호문에 설정된 속성 정보의 은닉성까지 보증되는 제 2 방식이 있다(비특허 문헌 29 참조). 여기서는, 일례로서, 제 2 방식에 대하여, 공개 파라미터를 재발행하는 일 없이, 속성 카테고리의 추가를 가능하게 한 방식을 설명한다. 그러나, 비특허 문헌 29에 기재된 알고리즘에 대하여 동일한 변경을 가하는 것에 의해, 제 1 방식에 대해서도, 공개 파라미터를 재발행하는 일 없이, 속성 카테고리의 추가를 가능하게 할 수 있다.
제 1에, HIPE 방식의 구성에 대하여 설명한다.
제 2에, HIPE 방식을 실현하는 암호 시스템(10)의 구성에 대하여 설명한다.
제 3에, HIPE 방식에 대하여 상세하게 설명한다.
<제 1. HIPE 방식의 구성>
HIPE 방식은, Setup, KeyGen, Enc, Dec, DelegateL의 5개의 알고리즘을 구비한다.
(Setup)
Setup 알고리즘은, 시큐리티 파라미터 1λ를 입력으로 하여, 마스터 공개 키 pk와 마스터 비밀 키 sk를 출력하는 확률적 알고리즘이다. 마스터 비밀 키 sk는 가장 상위의 키이다.
(KeyGen)
KeyGen 알고리즘은, 마스터 공개 키 pk와 마스터 비밀 키 sk와 술어 정보 (v 1, …, v L)(1≤L≤d)을 입력으로 하여, 제 L 층째의 비밀 키 skL을 출력하는 확률적 알고리즘이다.
(Enc)
Enc 알고리즘은, 마스터 공개 키 pk와 속성 정보 (x 1, …, x h)(1≤h≤d)와 메시지 m을 입력으로 하여, 암호문 ct를 출력하는 확률적 알고리즘이다.
(Dec)
Dec 알고리즘은, 마스터 공개 키 pk와 제 L 층째의 비밀 키 skL과 암호문 ct를 입력으로 하여, 메시지 m 또는 식별 정보 ⊥를 출력하는 확률적 알고리즘이다.
(DelegateL)
DelegateL은, 마스터 공개 키 pk와 제 L 층째의 비밀 키 skL과 제 L+1 층째의 술어 정보 v L+1(L+1≤d)을 입력으로 하여, 제 L+1 층째의 비밀 키 skL +1을 출력하는 확률적 알고리즘이다. 다시 말해, DelegateL 알고리즘에서는, 하위의 비밀 키가 출력된다.
<제 2. HIPE 방식을 실현하는 암호 시스템(10)의 구성>
도 20은 실시의 형태 4와 관련되는 HIPE 방식을 실행하는 암호 시스템(10)의 구성도이다.
암호 시스템(10)은, 키 생성 장치(100), 암호화 장치(200), 복호 장치(300), 키 위양 장치(400)를 구비한다. 또, 여기서는, 복호 장치(300)가, 키 위양 장치(400)를 구비하는 것으로 하여 설명하지만, 키 위양 장치(400)는, 복호 장치(300)와는 따로 마련되어 있더라도 좋다.
키 생성 장치(100)는, 시큐리티 파라미터 λ를 입력으로 하여 Setup 알고리즘을 실행하여, 마스터 공개 키 pk와 마스터 비밀 키 sk를 생성한다. 그리고, 키 생성 장치(100)는, 생성한 마스터 공개 키 pk를 공개한다. 또한, 키 생성 장치(100)는, 마스터 공개 키 pk와 마스터 비밀 키 sk와 술어 정보 (v 1, …, v L)(1≤L≤d)를 입력으로 하여 KeyGen 알고리즘을 실행하여, 제 L 층째의 비밀 키 skL을 생성하여 제 L 층째의 복호 장치(300)에 비밀리에 배포한다.
암호화 장치(200)는, 마스터 공개 키 pk와 속성 정보 (x 1, …, x h)(1≤h≤d)와 메시지 m을 입력으로 하여 Enc 알고리즘을 실행하여, 암호문 ct를 생성한다. 암호화 장치(200)는, 생성한 암호문 ct를 복호 장치(300)에 송신한다.
복호 장치(300)는, 마스터 공개 키 pk와 제 L 층째의 비밀 키 skL과 암호문 ct를 입력으로 하여 Dec 알고리즘을 실행하여, 메시지 m 또는 식별 정보 ⊥를 출력한다.
키 위양 장치(400)는, 마스터 공개 키 pk와 제 L 층째의 비밀 키 skL과 제 L+1 층째의 술어 정보 v L+1(L+1≤d)을 입력으로 하여 DelegateL 알고리즘을 실행하여, 제 L+1 층째의 비밀 키 skL +1을 생성하여 제 L+1 층째의 복호 장치(300)에 비밀리에 배포한다.
<제 3. HIPE 방식의 상세>
도 21로부터 도 29에 근거하여, 실시의 형태 4와 관련되는 HIPE 방식, 및, HIPE 방식을 실행하는 암호 시스템(10)의 기능과 동작에 대하여 설명한다.
도 21은 실시의 형태 4와 관련되는 키 생성 장치(100)의 구성도이다. 도 22는 실시의 형태 4와 관련되는 암호화 장치(200)의 구성도이다. 도 23은 실시의 형태 4와 관련되는 복호 장치(300)의 구성도이다. 도 24는 실시의 형태 4와 관련되는 키 위양 장치(400)의 구성도이다.
도 25와 도 26은 키 생성 장치(100)의 동작을 나타내는 플로차트이다. 또, 도 25는 Setup 알고리즘의 처리를 나타내는 플로차트이고, 도 26은 KeyGen 알고리즘의 처리를 나타내는 플로차트이다. 도 27은 암호화 장치(200)의 동작을 나타내는 플로차트이고, Enc 알고리즘의 처리를 나타내는 플로차트이다. 도 28은 복호 장치(300)의 동작을 나타내는 플로차트이고, Dec 알고리즘의 처리를 나타내는 플로차트이다. 도 29는 키 위양 장치(400)의 동작을 나타내는 플로차트이고, DelegateL 알고리즘의 처리를 나타내는 플로차트이다.
키 생성 장치(100)의 기능과 동작에 대하여 설명한다.
키 생성 장치(100)는, 마스터 키 생성부(110), 마스터 키 기억부(120), 정보 입력부(130), 복호 키 생성부(140), 키 배포부(150)를 구비한다. 또한, 복호 키 생성부(140)는, 난수 생성부(143), 키 요소 생성부(144), 랜덤화 요소 생성부(145), 위양 요소 생성부(146)를 구비한다.
우선, 도 25에 근거하여, Setup 알고리즘의 처리에 대하여 설명한다.
S801은 실시의 형태 2에 있어서의 도 9에 나타내는 (S101)과 동일하다.
(S802 : 공개 파라미터 생성 단계)
마스터 키 생성부(110)는, 처리 장치에 의해, (S801)에서 생성한 기저 B0의 부분 기저 B^ 0과, 기저 B의 부분 기저 B^와, 기저 B* 0의 부분 기저 B^* 0, pk와, 기저 B*의 부분 기저 B^* pk를 수학식 167에 나타내는 바와 같이 생성한다.
[수학식 167]
Figure 112014088518616-pct00068
마스터 키 생성부(110)는, 생성한 부분 기저 B^ 0과 부분 기저 B^와 부분 기저 B^* 0, pk와 부분 기저 B^* pk와, (S801)에서 입력된 시큐리티 파라미터 λ(1λ)와, (S801)에서 생성한 param을 합하여, 공개 파라미터 pk로 한다.
(S803 : 마스터 키 생성 단계)
마스터 키 생성부(110)는, 처리 장치에 의해, (S801)에서 생성한 기저 B* 0의 부분 기저 B^* 0, sk와, 기저 B*의 부분 기저 B^* sk를 수학식 168에 나타내는 바와 같이 생성한다.
[수학식 168]
Figure 112014088518616-pct00069
마스터 키 생성부(110)는, 생성한 부분 기저 B^* 0과 부분 기저 B^*를 마스터 키 sk로 한다.
(S804 : 마스터 키 기억 단계)
마스터 키 기억부(120)는, (S802)에서 생성한 공개 파라미터 pk를 기억 장치에 기억한다. 또한, 마스터 키 기억부(120)는, (S803)에서 생성한 마스터 키 sk를 기억 장치에 기억한다.
다시 말해, (S801)로부터 (S803)에 있어서, 키 생성 장치(100)는, 수학식 169에 나타내는 Setup 알고리즘을 실행하여, 공개 파라미터 pk와 마스터 키 sk를 생성한다. 그리고, (S804)에서, 키 생성 장치(100)는, 생성한 공개 파라미터 pk와 마스터 키 sk를 기억 장치에 기억한다.
또, 공개 파라미터는, 예컨대, 네트워크를 거쳐서 공개되어, 암호화 장치(200)나 복호 장치(300)가 취득 가능한 상태가 된다.
[수학식 169]
Figure 112014088518616-pct00070
다음으로, 도 26에 근거하여, 키 생성 장치(100)가 실행하는 KeyGen 알고리즘의 처리에 대하여 설명한다.
(S901 : 정보 입력 단계)
정보 입력부(130)는, 입력 장치에 의해, 술어 정보 (v 1, …, v L)을 입력한다. i=1, …, L의 각 정수에 대하여, v i:=vi , 1, …, vi , n이다. 또, 술어 정보로서는, 키를 사용하는 사람의 속성이 입력된다.
(S902 : 난수 생성 단계)
난수 생성부(143)는, 처리 장치에 의해, 난수를 수학식 170에 나타내는 바와 같이 생성한다.
[수학식 170]
Figure 112014088518616-pct00071
또한, sdec , 0과, sran , 1, j, 0과, sran , 2, τ, 0과, sdel , (τ, ι), 0을 수학식 171에 나타내는 바와 같이 설정한다.
[수학식 171]
Figure 112014088518616-pct00072
(S903 : 키 요소 생성 단계)
키 요소 생성부(144)는, 처리 장치에 의해, 복호 키 skL의 요소인 키 요소 k* L, dec를 수학식 172에 나타내는 바와 같이 생성한다.
[수학식 172]
Figure 112014088518616-pct00073
(S904 : 제 1 랜덤화 요소 생성 단계)
랜덤화 요소 생성부(145)는, 처리 장치에 의해, j=1, …, 2L의 각 정수 j에 대하여, 복호 키 skL의 요소인 제 1 랜덤화 요소 k* L, ran , 1, j를 수학식 173에 나타내는 바와 같이 생성한다.
[수학식 173]
Figure 112014088518616-pct00074
(S905 : 제 2 랜덤화 요소 생성 단계)
랜덤화 요소 생성부(145)는, 처리 장치에 의해, τ=L+1, …, d의 각 정수 τ에 대하여, 복호 키 skL의 요소인 제 2 랜덤화 요소 k* L, ran , 2, τ를 수학식 174에 나타내는 바와 같이 생성한다.
[수학식 174]
Figure 112014088518616-pct00075
(S906 : 위양 요소 생성 단계)
위양 요소 생성부(146)는, 처리 장치에 의해, τ=L+1, …, d의 각 정수 τ와, 각 정수 τ에 대하여 ι=1, 2의 각 정수 ι에 대하여, 복호 키 skL의 요소인 위양 요소 k* L, del , (τ, ι)를 수학식 175에 나타내는 바와 같이 생성한다.
[수학식 175]
Figure 112014088518616-pct00076
(S907 : 키 배포 단계)
키 배포부(150)는, 키 요소 k* L, dec와, 제 1 랜덤화 요소 k* L, ran , 1, j와, 제 2 랜덤화 요소 k* L, ran , 2, τ와, 위양 요소 k* L, del , (τ, ι)를 요소로 하는 복호 키 skL을, 예컨대 통신 장치에 의해 네트워크를 거쳐서 비밀리에 복호 장치(300)에 배포한다. 물론, 복호 키 skL은, 다른 방법에 의해 복호 장치(300)에 배포되더라도 좋다.
다시 말해, (S901)로부터 (S906)에 있어서, 키 생성 장치(100)는, 수학식 176, 수학식 177에 나타내는 KeyGen 알고리즘을 실행하여, 복호 키 skL을 생성한다. 그리고, (S907)에서, 키 생성 장치(100)는, 생성된 복호 키 skL을 복호 장치(300)에 배포한다.
[수학식 176]
Figure 112014088518616-pct00077
[수학식 177]
Figure 112014088518616-pct00078
암호화 장치(200)의 기능과 동작에 대하여 설명한다.
암호화 장치(200)는, 공개 파라미터 취득부(210), 정보 입력부(220), 암호화 데이터 생성부(230), 데이터 송신부(240)를 구비한다. 또한, 암호화 데이터 생성부(230)는, 난수 생성부(231), 암호 요소 생성부(232)를 구비한다.
도 27에 근거하여, 암호화 장치(200)가 실행하는 Enc 알고리즘의 처리에 대하여 설명한다.
(S1001 : 마스터 공개 키 취득 단계)
공개 파라미터 취득부(210)는, 예컨대, 통신 장치에 의해 네트워크를 거쳐서, 키 생성 장치(100)가 생성한 마스터 공개 키 pk를 취득한다.
(S1002 : 정보 입력 단계)
정보 입력부(220)는, 입력 장치에 의해, 속성 정보 (x 1, …, x L)을 입력한다. i=1, …, L의 각 정수에 대하여, x i:=xi , 1, …, xi , L이다. 또, 속성 정보로서는, 암호화한 메시지를 복호 가능한 사람의 속성이 입력된다.
또한, 정보 입력부(220)는, 입력 장치에 의해, 암호화하는 메시지 m을 입력한다.
(S1003 : 난수 생성 단계)
난수 생성부(231)는, 처리 장치에 의해, 난수를 수학식 178에 나타내는 바와 같이 생성한다.
[수학식 178]
Figure 112014088518616-pct00079
(S1004 : 암호 요소 c1 생성 단계)
암호 요소 생성부(232)는, 처리 장치에 의해, 암호문 ct의 요소인 암호 요소 c1을 수학식 179에 나타내는 바와 같이 생성한다.
[수학식 179]
Figure 112014088518616-pct00080
(S1005 : 암호 요소 c2 생성 단계)
암호 요소 생성부(232)는, 처리 장치에 의해, 암호문 ct의 요소인 암호 요소 c2를 수학식 180에 나타내는 바와 같이 생성한다.
[수학식 180]
Figure 112014088518616-pct00081
(S1006 : 데이터 송신 단계)
데이터 송신부(240)는, 암호 요소 c1과, 암호 요소 c2를 포함하는 암호문 ct를, 예컨대 통신 장치에 의해 네트워크를 거쳐서 복호 장치(300)에 송신한다. 물론, 암호문 ct는, 다른 방법에 의해 복호 장치(300)에 송신되더라도 좋다.
다시 말해, (S1001)로부터 (S1005)에 있어서, 암호화 장치(200)는, 수학식 181에 나타내는 Enc 알고리즘을 실행하여, 암호문 ct를 생성한다. 그리고, (S1006)에서, 암호화 장치(200)는, 생성된 암호문 ct를 복호 장치(300)에 송신한다.
[수학식 181]
Figure 112014088518616-pct00082
복호 장치(300)의 기능과 동작에 대하여 설명한다.
복호 장치(300)는, 복호 키 취득부(310), 데이터 수신부(320), 페어링 연산부(350), 메시지 계산부(360)를 구비한다.
도 28에 근거하여, 복호 장치(300)가 실행하는 Dec 알고리즘의 처리에 대하여 설명한다.
(S1101 : 복호 키 취득 단계)
복호 키 취득부(310)는, 예컨대, 통신 장치에 의해 네트워크를 거쳐서, 복호 키 skL을 취득한다. 또한, 복호 키 취득부(310)는, 키 생성 장치(100)가 생성한 공개 파라미터 pk를 취득한다.
(S1102 : 데이터 수신 단계)
데이터 수신부(320)는, 예컨대, 통신 장치에 의해 네트워크를 거쳐서, 암호화 장치(200)가 송신한 암호문 ct를 수신한다.
(S1103 : 페어링 연산 단계)
페어링 연산부(350)는, 처리 장치에 의해, 수학식 182에 나타내는 페어링 연산을 행하고, 세션 키 K=gT ζ를 계산한다.
[수학식 182]
Figure 112014088518616-pct00083
(S1104 : 메시지 계산 단계)
메시지 계산부(360)는, 처리 장치에 의해, 암호 요소 c2를 세션 키 K로 나누는 것에 의해, 메시지 m'(=m)를 계산한다.
다시 말해, (S1101)로부터 (S1104)에 있어서, 복호 장치(300)는, 수학식 183에 나타내는 Dec 알고리즘을 실행하여, 메시지 m'(=m)를 계산한다.
[수학식 183]
Figure 112014088518616-pct00084
키 위양 장치(400)의 기능과 동작에 대하여 설명한다.
키 위양 장치(400)는, 복호 키 취득부(410), 정보 입력부(420), 위양 키 생성부(430), 키 배포부(440)를 구비한다. 또한, 위양 키 생성부(430)는, 난수 생성부(431), 하위 키 요소 생성부(432), 하위 랜덤화 요소 생성부(433), 하위 위양 요소 생성부(434)를 구비한다.
도 29에 근거하여, 키 위양 장치(400)가 실행하는 DelegateL 알고리즘의 처리에 대하여 설명한다.
(S1201 : 복호 키 취득 단계)
복호 키 취득부(410)는, 예컨대, 통신 장치에 의해 네트워크를 거쳐서, 복호 키 skL을 취득한다. 또한, 복호 키 취득부(410)는, 키 생성 장치(100)가 생성한 공개 파라미터 pk를 취득한다.
(S1202 : 정보 입력 단계)
정보 입력부(420)는, 입력 장치에 의해, 술어 정보 v L+1:=(vL +1, i(i=1, …, nL+1))를 입력한다. 또, 술어 정보로서는, 키가 위양되는 사람의 속성이 입력된다.
(S1203 : 난수 생성 단계)
난수 생성부(431)는, 처리 장치에 의해, 난수를 수학식 184에 나타내는 바와 같이 생성한다.
[수학식 184]
Figure 112014088518616-pct00085
(S1204 : 하위 키 요소 생성 단계)
하위 키 요소 생성부(432)는, 처리 장치에 의해, 위양 키 skL +1의 요소인 하위 키 요소 k* L+1, dec를 수학식 185에 나타내는 바와 같이 생성한다.
[수학식 185]
Figure 112014088518616-pct00086
(S1205 : 제 1 하위 랜덤화 요소 생성 단계)
하위 랜덤화 요소 생성부(433)는, 처리 장치에 의해, j'=1, …, 2(L+1)의 각 정수 j'에 대하여, 위양 키 skL +1의 요소인 제 1 하위 랜덤화 요소 k* L+1, ran , 1, j'를 수학식 186에 나타내는 바와 같이 생성한다.
[수학식 186]
Figure 112014088518616-pct00087
(S1206 : 제 2 하위 랜덤화 요소 생성 단계)
하위 랜덤화 요소 생성부(433)는, 처리 장치에 의해, τ=L+2, …, d의 각 정수 τ에 대하여, 위양 키 skL +1의 요소인 제 2 하위 랜덤화 요소 k* L+1, ran , 2, τ를 수학식 187에 나타내는 바와 같이 생성한다.
[수학식 187]
Figure 112014088518616-pct00088
(S1207 : 하위 위양 요소 생성 단계)
하위 위양 요소 생성부(434)는, 처리 장치에 의해, τ=L+2, …, d의 각 정수 τ와, 각 정수 τ에 대하여 ι=1, …, n의 각 정수 ι에 대하여, 위양 키 skL +1의 요소인 하위 위양 요소 k* L+1, del , (τ, ι)를 수학식 188에 나타내는 바와 같이 생성한다.
[수학식 188]
Figure 112014088518616-pct00089
(S1208 : 키 배포 단계)
키 배포부(150)는, 하위 키 요소 k* L+1, dec와, 제 1 하위 랜덤화 요소 k* L+1, ran , 1, j'와, 제 2 하위 랜덤화 요소 k* L+1, ran , 2, τ와, 하위 위양 요소 k* L+1, del , (τ, ι)를 요소로 하는 위양 키 skL +1(하위의 복호 키)을, 예컨대 통신 장치에 의해 네트워크를 거쳐서 비밀리에 하위의 복호 장치(300)에 배포한다. 물론, 위양 키 skL +1은, 다른 방법에 의해 하위의 복호 장치(300)에 배포되더라도 좋다.
다시 말해, (S1201)로부터 (S1207)에 있어서, 키 위양 장치(400)는, 수학식 189에 나타내는 DelegateL 알고리즘을 실행하여, 위양 키 skL +1을 생성한다. 그리고, (S1208)에서, 키 위양 장치(400)는, 생성된 위양 키 skL +1을 하위의 복호 장치(300)에 배포한다.
[수학식 189]
Figure 112014088518616-pct00090
이상과 같이, 실시의 형태 4와 관련되는 암호 시스템(10)은, 실시의 형태 2, 3과 관련되는 암호 시스템(10)과 마찬가지로, 인덱스부를 마련하는 것에 의해, 각 속성 카테고리에서 사용하는 기저를 공통의 기저(기저 B 및 기저 B*)로 할 수 있다. 그 결과, 공개 파라미터에는, 기저 B 및 기저 B*만을 포함시켜 두면 되고, 이후에 속성 카테고리를 추가하는 경우에, 공개 파라미터를 재발행할 필요가 없다.
또, 실시의 형태 2, 3과 마찬가지로, 인덱스부에 대해서는, 내적한 결과가 0이 되면 된다. 그 때문에, 상기 설명에서는, 기저 벡터 b* 1, b* 2와 기저 벡터 b1, b2의 2차원을 인덱스부로 하지만, 이것에 한하지 않고, 3차원 이상을 인덱스부로 하더라도 좋다. 또한, 인덱스부로의 값의 할당도 상기 설명의 것에 한하지 않고, 다른 할당이더라도 좋다.
또한, 상기 설명에서는, 함수형 암호 방식을 바탕으로 한 HIPE 방식에 대하여 설명했다. 그러나, 수학식 190으로부터 수학식 195에 나타내는 바와 같이, 속성 베이스 암호 방식을 바탕으로 한 HIPE 방식으로 변경할 수도 있다. 또, 수학식 190으로부터 수학식 195에서는, N0을 1+1+1+1+1=5로 하고, N1을 2+2+8+2+2=16으로 하고 있다. 다시 말해, u0=1, w0=1, z0=1, n=2, u=8, w=2, z=2로 하고 있다. 이 경우에도, 안전성을 증명하는 것이 가능하다.
[수학식 190]
Figure 112014088518616-pct00091
[수학식 191]
Figure 112014088518616-pct00092
[수학식 192]
Figure 112014088518616-pct00093
[수학식 193]
Figure 112014088518616-pct00094
[수학식 194]
Figure 112014088518616-pct00095
[수학식 195]
Figure 112014088518616-pct00096
실시의 형태 5.
이 실시의 형태에서는, 서명 방식에 대하여 설명한다. 특히, 이 실시의 형태에서는, 실시의 형태 3에서 설명한 CP-FE 방식에 근거하는, 서명 방식에 대하여 설명한다.
제 1에, 서명 방식의 구성에 대하여 설명한다.
제 2에, 서명 방식을 실현하는 암호 시스템(10)의 구성에 대하여 설명한다.
제 3에, 서명 방식에 대하여 상세하게 설명한다.
<제 1. 서명 방식의 구성>
서명 방식은, Setup, KeyGen, Sig, Ver의 4개의 알고리즘을 구비한다.
(Setup)
Setup 알고리즘은, 시큐리티 파라미터 λ가 입력되고, 공개 파라미터 pk와, 마스터 키 sk를 출력하는 확률적 알고리즘이다.
(KeyGen)
KeyGen 알고리즘은, 속성의 집합인 Γ:={(t, x t)|x t∈Fq n, 1≤t≤d}와, 공개 파라미터 pk와, 마스터 키 sk를 입력으로 하여, 서명 키 skΓ를 출력하는 확률적 알고리즘이다.
(Sig)
Sig 알고리즘은, 메시지 m과, 서명 키 skΓ와, 액세스 스트럭처 S:=(M, ρ)와, 공개 파라미터 pk를 입력으로 하여, 서명 데이터 sig를 출력하는 확률적 알고리즘이다.
(Ver)
Ver 알고리즘은, 메시지 m과, 액세스 스트럭처 S:=(M, ρ)와, 서명 데이터 sig와, 공개 파라미터 pk를 입력으로 하여, 서명의 검증에 성공한 것을 나타내는 값 "1", 또는, 서명의 검증에 실패한 것을 나타내는 값 "0"을 출력하는 알고리즘이다.
<제 2. 서명 방식을 실현하는 암호 시스템(10)의 구성>
도 30은 실시의 형태 5와 관련되는 서명 방식을 실행하는 암호 시스템(10)의 구성도이다.
암호 시스템(10)은, 키 생성 장치(100), 서명 장치(500), 검증 장치(600)를 구비한다.
키 생성 장치(100)는, 시큐리티 파라미터 λ를 입력으로 하여 Setup 알고리즘을 실행하여, 공개 파라미터 pk와 마스터 키 sk를 생성한다. 그리고, 키 생성 장치(100)는, 생성한 공개 파라미터 pk를 공개한다. 또한, 키 생성 장치(100)는, 속성의 집합 Γ를 입력으로 하여 KeyGen 알고리즘을 실행하여, 서명 키 skΓ를 생성하여 서명 장치(500)에 비밀리에 배포한다.
서명 장치(500)는, 메시지 m과, 액세스 스트럭처 S와, 공개 파라미터 pk와, 서명 키 skΓ를 입력으로 하여 Sig 알고리즘을 실행하여, 서명 정보 s→*를 생성한다. 서명 장치(500)는, 생성한 서명 정보 s→*와, 메시지 m과, 액세스 스트럭처 S를 검증 장치(600)에 송신한다.
검증 장치(600)는, 서명 정보 s→*와, 메시지 m과, 액세스 스트럭처 S와, 공개 파라미터 pk를 입력으로 하여 Ver 알고리즘을 실행하여, 값 "1", 또는, 값 "0"을 출력한다.
<제 3. 서명 방식의 상세>
도 31로부터 도 37에 근거하여, 서명 방식, 및, 서명 방식을 실행하는 암호 시스템(10)의 기능과 동작에 대하여 설명한다.
도 31은 실시의 형태 5와 관련되는 키 생성 장치(100)의 구성도이다. 도 32는 실시의 형태 5와 관련되는 서명 장치(500)의 구성도이다. 도 33은 실시의 형태 5와 관련되는 검증 장치(600)의 구성도이다.
도 34와 도 35는 키 생성 장치(100)의 동작을 나타내는 플로차트이다. 또, 도 34는 Setup 알고리즘의 처리를 나타내는 플로차트이고, 도 35는 KeyGen 알고리즘의 처리를 나타내는 플로차트이다. 도 36은 서명 장치(500)의 동작을 나타내는 플로차트이고, Sig 알고리즘의 처리를 나타내는 플로차트이다. 도 37은 검증 장치(600)의 동작을 나타내는 플로차트이고, Ver 알고리즘의 처리를 나타내는 플로차트이다.
또, 이하의 설명에 있어서, H:=(KHλ, Hhk λ, D)는, 충돌 곤란 해시 함수이다(비특허 문헌 30 참조). 충돌 곤란 해시 함수란, 출력이 동일하게 되는 2개의 입력을 찾아내는 것이 곤란한 해시 함수이다.
구체적으로는, 알고리즘 Gbpg에 관한 충돌 곤란 해시 함수계 H와, 다항식 poly(λ)에 대하여 이하의 2가지를 말할 수 있다.
1. 키 공간계는, λ에 의해 색인 부가된다. 각 키 공간은, KHλ에 의해 나타나는 비트열에 있어서의 확률 공간이다. 1λ를 입력으로 한 경우의 출력 분포가 KHλ와 동일한 확률적 다항식 시간 알고리즘이 존재한다.
2. 해시 함수계는, λ와, KHλ로부터 랜덤으로 선택된 hk와, D:={0, 1}poly (λ)에 의해 색인 부가된다. 여기서, 각 함수 Hhk λ, D는, D의 요소로부터 Fq X로의 사상이다. 또, q는, 알고리즘 Gbpg(1λ)의 출력 paramG의 최초의 요소이다. 1λ와 hk와 d∈D를 입력으로 하여, Hhk λ, D(d)를 출력하는 결정적 다항식 시간 알고리즘이 있다.
키 생성 장치(100)의 기능과 동작에 대하여 설명한다.
키 생성 장치(100)는, 마스터 키 생성부(110), 마스터 키 기억부(120), 정보 입력부(130), 복호 키 생성부(140), 키 배포부(150)를 구비한다. 또한, 복호 키 생성부(140)는, 난수 생성부(143), 키 요소 생성부(144)를 구비한다.
우선, 도 34에 근거하여, Setup 알고리즘의 처리에 대하여 설명한다.
(S1301)은, 실시의 형태 2에 있어서의 도 9에 나타내는 (S101)과 원칙적으로 동일하다. 단, t=0, 1, d+1에 대하여, (4)로부터 (8)까지의 처리를 실행하는 점과, N0이 1+u0+w0+z0인 점이 상이하다. 또, Nd +1은, 2+ud +1+wd +1+zd +1이고, ud +1, wd +1, zd+1은 각각 1 이상의 정수이다.
(S1302 : 해시 키 생성 단계)
마스터 키 생성부(110)는, 처리 장치에 의해, 수학식 196을 계산하여, 해시 키 hk를 랜덤으로 생성한다.
[수학식 196]
Figure 112014088518616-pct00097
(S1303 : 공개 파라미터 생성 단계)
마스터 키 생성부(110)는, 처리 장치에 의해, (S1301)에서 생성한 기저 B0의 부분 기저 B^0과, 기저 B의 부분 기저 B^와, 기저 Bd +1의 부분 기저 B^ d+1과, 기저 B* 0의 부분 기저 B^* 0과, 기저 B*의 부분 기저 B^*와, 기저 B* d+1의 부분 기저 B^* d+1을 수학식 197에 나타내는 바와 같이 생성한다.
[수학식 197]
Figure 112014088518616-pct00098
마스터 키 생성부(110)는, 생성한 부분 기저 B^ 0과 부분 기저 B^와 부분 기저 B^ d+1과 부분 기저 B^* 0과 부분 기저 B^*와 부분 기저 B^* d+1과, (S1301)에서 입력된 시큐리티 파라미터 λ(1λ)와, (S1301)에서 생성한 param과, (S1302)에서 생성한 해시 키 hk를 합하여, 공개 파라미터 pk로 한다.
(S1304 : 마스터 키 생성 단계)
마스터 키 생성부(110)는, 기저 B^* 0의 기저 벡터 b* 0, 1을 마스터 키 sk로 한다.
(S1305 : 마스터 키 기억 단계)
마스터 키 기억부(120)는, (S1303)에서 생성한 공개 파라미터 pk를 기억 장치에 기억한다. 또한, 마스터 키 기억부(120)는, (S1304)에서 생성한 마스터 키 sk를 기억 장치에 기억한다.
다시 말해, (S1301)로부터 (S1304)에 있어서, 키 생성 장치(100)는, 수학식 198에 나타내는 Setup 알고리즘을 실행하여, 공개 파라미터 pk와 마스터 키 sk를 생성한다. 그리고, (S1305)에서, 키 생성 장치(100)는, 생성한 공개 파라미터 pk와 마스터 키 sk를 기억 장치에 기억한다.
또, 공개 파라미터는, 예컨대, 네트워크를 거쳐서 공개되어, 서명 장치(500)나 검증 장치(600)가 취득 가능한 상태가 된다.
[수학식 198]
Figure 112014088518616-pct00099
도 35에 근거하여, KeyGen 알고리즘의 처리에 대하여 설명한다.
(S1401 : 정보 입력 단계)
정보 입력부(130)는, 입력 장치에 의해, 속성의 집합 Γ:={(t, x t:=(xt , 1, …, xt , n∈Fq n))|1≤t≤d}를 입력한다. 또, 속성의 집합 Γ는, 예컨대, 서명 키 skΓ의 사용자의 속성 정보가 설정되어 있다.
(S1402 : 난수 생성 단계)
난수 생성부(143)는, 처리 장치에 의해, 난수를 수학식 199에 나타내는 바와 같이 생성한다.
[수학식 199]
Figure 112014088518616-pct00100
(S1403 : 키 요소 생성 단계)
키 요소 생성부(144)는, 처리 장치에 의해, 서명 키 skΓ의 요소 k* 0을 수학식 200에 나타내는 바와 같이 생성한다.
[수학식 200]
Figure 112014088518616-pct00101
또한, 키 요소 생성부(144)는, 처리 장치에 의해, 속성의 집합 Γ에 포함되는 각 정수 t에 대하여, 서명 키 skΓ의 요소 k* t를 수학식 201에 나타내는 바와 같이 생성한다.
[수학식 201]
Figure 112014088518616-pct00102
또한, 키 요소 생성부(144)는, 처리 장치에 의해, 서명 키 skΓ의 요소 k* d+1, k* d+2를 수학식 202에 나타내는 바와 같이 생성한다.
[수학식 202]
Figure 112014088518616-pct00103
(S1404 : 키 배포 단계)
키 배포부(150)는, (S1401)에서 입력한 속성의 집합 Γ와, (S1403)에서 생성된 k* 0, k* t, k* d+1, k* d+2를 요소로 하는 서명 키 skΓ를, 예컨대 통신 장치에 의해 네트워크를 거쳐서 비밀리에 서명 장치(500)에 배포한다. 물론, 서명 키 skΓ는, 다른 방법에 의해 서명 장치(500)에 배포되더라도 좋다.
다시 말해, (S1401)로부터 (S1403)에 있어서, 키 생성 장치(100)는, 수학식 203에 나타내는 KeyGen 알고리즘을 실행하여, 서명 키 skΓ를 생성한다. 그리고, (S1404)에서, 키 생성 장치(100)는, 생성한 서명 키 skΓ를 서명 장치(500)에 배포한다.
[수학식 203]
Figure 112014088518616-pct00104
서명 장치(500)의 기능과 동작에 대하여 설명한다.
서명 장치(500)는, 서명 키 취득부(510), 정보 입력부(520), 보완 계수 계산부(530), 서명 데이터 생성부(540), 데이터 송신부(550)를 구비한다. 또한, 서명 데이터 생성부(540)는, 난수 생성부(541), 서명 요소 생성부(542)를 구비한다.
도 36에 근거하여, Sig 알고리즘의 처리에 대하여 설명한다.
(S1501 : 서명 키 취득 단계)
서명 키 취득부(510)는, 예컨대, 통신 장치에 의해 네트워크를 거쳐서, 키 생성 장치(100)가 생성한 서명 키 skΓ를 취득한다. 또한, 서명 키 취득부(510)는, 키 생성 장치(100)가 생성한 공개 파라미터 pk를 취득한다.
(S1502 : 정보 입력 단계)
정보 입력부(520)는, 입력 장치에 의해, 액세스 스트럭처 S:=(M, ρ)를 입력한다. 또, 액세스 스트럭처 S의 행렬 M의 설정에 대해서는, 실현하고 싶은 시스템의 조건에 따라 설정되는 것이다.
또한, 정보 입력부(520)는, 입력 장치에 의해, 서명을 첨부하는 첨부 메시지 m을 입력한다.
(S1503 : 스팬 프로그램 계산 단계)
보완 계수 계산부(530)는, 처리 장치에 의해, (S1502)에서 입력한 액세스 스트럭처 S가, (S1501)에서 취득한 서명 키 skΓ에 포함되는 속성의 집합 Γ를 수리하는지 여부를 판정한다.
또, 액세스 스트럭처가 속성의 집합을 수리하는지 여부의 판정 방법은, 「실시의 형태 1에 있어서의 제 5. 함수형 암호를 실현하기 위한 개념」에서 설명한 바와 같다.
보완 계수 계산부(530)는, 액세스 스트럭처 S가 속성의 집합 Γ를 수리하는 경우(S1503에서 수리), 처리를 (S1504)로 진행한다. 한편, 액세스 스트럭처 S가 속성의 집합 Γ를 거절하는 경우(S1503에서 거절), 처리를 종료한다.
(S1504 : 보완 계수 계산 단계)
보완 계수 계산부(530)는, 처리 장치에 의해, 수학식 204가 되는 I와, I에 포함되는 각 정수 i에 대하여 상수(보완 계수) αi를 계산한다.
[수학식 204]
Figure 112014088518616-pct00105
(S1505 : 난수 생성 단계)
난수 생성부(541)는, 처리 장치에 의해, 난수를 수학식 205에 나타내는 바와 같이 생성한다.
[수학식 205]
Figure 112014088518616-pct00106
(S1506 : 서명 요소 생성 단계)
서명 요소 생성부(542)는, 처리 장치에 의해, 서명 데이터 sig의 요소인 서명 요소 s* 0을 수학식 206에 나타내는 바와 같이 생성한다.
[수학식 206]
Figure 112014088518616-pct00107
여기서, r* 0은, 수학식 207(수학식 110으로부터 수학식 112 및 이들 수학식의 설명을 참조)이다.
[수학식 207]
Figure 112014088518616-pct00108
또한, 서명 요소 생성부(542)는, 처리 장치에 의해, i=1, …, L의 각 정수 i에 대하여, 서명 데이터 sig의 요소인 서명 요소 s* i를 수학식 208에 나타내는 바와 같이 생성한다.
[수학식 208]
Figure 112014088518616-pct00109
여기서, r* i는, 수학식 209이다.
[수학식 209]
Figure 112014088518616-pct00110
또한, γi와 y i:=yi, i'(i'=1, …, n)는, 수학식 210이다.
[수학식 210]
Figure 112014088518616-pct00111
또한, 서명 요소 생성부(542)는, 처리 장치에 의해, 서명 데이터 sig의 요소인 서명 요소 s* L+1을 수학식 211에 나타내는 바와 같이 생성한다.
[수학식 211]
Figure 112014088518616-pct00112
여기서, r* L+1은, 수학식 212이다.
[수학식 212]
Figure 112014088518616-pct00113
(S1507 : 데이터 송신 단계)
데이터 송신부(550)는, 서명 요소 s* 0과, 서명 요소 s* i(i=1, …, L)와, 서명 요소 s* L+1과, 메시지 m과, 액세스 스트럭처 S:=(M, ρ)를 포함하는 서명 데이터 sig를, 예컨대 통신 장치에 의해 네트워크를 거쳐서 검증 장치(600)에 송신한다. 물론, 서명 데이터 sig는, 다른 방법에 의해 검증 장치(600)에 송신되더라도 좋다.
다시 말해, (S1501)로부터 (S1506)에 있어서, 서명 장치(500)는, 수학식 213에 나타내는 Sig 알고리즘을 실행하여, 서명 데이터 sig를 생성한다. 그리고, (S1507)에서, 서명 장치(500)는, 생성한 서명 데이터 sig를 검증 장치(600)에 송신한다.
[수학식 213]
Figure 112014088518616-pct00114
검증 장치(600)의 기능과 동작에 대하여 설명한다.
검증 장치(600)는, 공개 파라미터 취득부(610), 데이터 수신부(620), 검증 데이터 생성부(630), 페어링 연산부(640)를 구비한다. 또한, 검증 데이터 생성부(630)는, f 벡터 생성부(631), s 벡터 생성부(632), 난수 생성부(633), 검증 요소 생성부(634)를 구비한다.
도 37에 근거하여, Ver 알고리즘의 처리에 대하여 설명한다.
(S1601 : 공개 파라미터 취득 단계)
공개 파라미터 취득부(610)는, 예컨대, 통신 장치에 의해 네트워크를 거쳐서, 키 생성 장치(100)가 생성한 공개 파라미터 pk를 취득한다.
(S1602 : 서명 데이터 수신 단계)
데이터 수신부(620)는, 예컨대, 통신 장치에 의해 네트워크를 거쳐서, 서명 장치(500)가 송신한 서명 데이터 sig를 수신한다.
(S1603 : f 벡터 생성 단계)
f 벡터 생성부(631)는, 처리 장치에 의해, r개의 요소를 갖는 벡터 f를 수학식 214에 나타내는 바와 같이 랜덤으로 생성한다.
[수학식 214]
Figure 112014088518616-pct00115
(S1604 : s 벡터 생성 단계)
s 벡터 생성부(632)는, 처리 장치에 의해, (S1602)에서 수신한 서명 데이터 sig에 포함되는 액세스 스트럭처 S의 (L행×r열)의 행렬 M과, (S1603)에서 생성한 r개의 요소를 갖는 벡터 f에 근거하여, 벡터 s→T를 수학식 215에 나타내는 바와 같이 생성한다.
[수학식 215]
Figure 112014088518616-pct00116
또한, s 벡터 생성부(632)는, 처리 장치에 의해, (S1603)에서 생성한 벡터 f에 근거하여, 값 s0을 수학식 216에 나타내는 바와 같이 생성한다. 또, 1는, 모든 요소가 값 1인 벡터이다.
[수학식 216]
Figure 112014088518616-pct00117
(S1605 : 난수 생성 단계)
난수 생성부(633)는, 처리 장치에 의해, 난수를 수학식 217에 나타내는 바와 같이 생성한다.
[수학식 217]
Figure 112014088518616-pct00118
(S1606 : 검증 요소 생성 단계)
검증 요소 생성부(634)는, 처리 장치에 의해, 검증 키의 요소인 검증 요소 c0을 수학식 218에 나타내는 바와 같이 생성한다.
[수학식 218]
Figure 112014088518616-pct00119
또한, 검증 요소 생성부(634)는, 처리 장치에 의해, i=1, …, L의 각 정수 i에 대하여, 검증 키의 요소인 검증 요소 ci를 수학식 219에 나타내는 바와 같이 생성한다.
[수학식 219]
Figure 112014088518616-pct00120
또한, 검증 요소 생성부(634)는, 처리 장치에 의해, 검증 키의 요소인 검증 요소 cL +1을 수학식 220에 나타내는 바와 같이 생성한다.
[수학식 220]
Figure 112014088518616-pct00121
(S1607 : 제 1 페어링 연산 단계)
페어링 연산부(640)는, 처리 장치에 의해, 페어링 연산 e(b0 , 1, s* 0)을 계산한다.
페어링 연산 e(b0 , 1, s* 0)을 계산한 결과가 값 1이면, 페어링 연산부(640)는, 서명의 검증에 실패한 것을 나타내는 값 0을 출력하여, 처리를 종료한다. 한편, 페어링 연산 e(b0 , 1, s* 0)을 계산한 결과가 값 1이 아니면, 페어링 연산부(640)는, 처리를 S1608로 진행한다.
(S1608 : 제 2 페어링 연산 단계)
페어링 연산부(640)는, 처리 장치에 의해, 수학식 221에 나타내는 페어링 연산을 계산한다.
[수학식 221]
Figure 112014088518616-pct00122
수학식 221에 나타내는 페어링 연산을 계산한 결과가 값 1이면, 페어링 연산부(640)는, 서명의 검증에 성공한 것을 나타내는 값 1을 출력한다. 한편, 그 외의 값이면, 페어링 연산부(640)는, 서명의 검증에 실패한 것을 나타내는 값 0을 출력한다.
다시 말해, (S1601)로부터 (S1608)에 있어서, 검증 장치(600)는, 수학식 222에 나타내는 Ver 알고리즘을 실행하여, 서명 데이터 sig를 검증한다.
[수학식 222]
Figure 112014088518616-pct00123
이상과 같이, 실시의 형태 5와 관련되는 암호 시스템(10)은, 실시의 형태 2~4와 관련되는 암호 시스템(10)과 마찬가지로, 인덱스부를 마련하는 것에 의해, 각 속성 카테고리에서 사용하는 기저를 공통의 기저(기저 B 및 기저 B*)로 할 수 있다. 그 결과, 공개 파라미터에는, 기저 B 및 기저 B*만을 포함시켜 두면 되고, 이후에 속성 카테고리를 추가하는 경우에, 공개 파라미터를 재발행할 필요가 없다.
또, 실시의 형태 2~4와 마찬가지로, 인덱스부에 대해서는, 내적한 결과가 0이 되면 된다. 그 때문에, 상기 설명에서는, 기저 벡터 b* 1, b* 2와 기저 벡터 b1, b2의 2차원을 인덱스부로 했지만, 이것에 한하지 않고, 3차원 이상을 인덱스부로 하더라도 좋다. 또한, 인덱스부로의 값의 할당도 상기 설명의 것에 한하지 않고, 다른 할당이더라도 좋다.
또한, 상기 설명에서는, 함수형 암호 방식에 근거하는 서명 방식에 대하여 설명했다. 그러나, 실시의 형태 3에서 함수형 암호 방식을 속성 베이스 암호 방식으로 변경한 것과 마찬가지로, 속성 베이스 암호 방식에 근거하는 서명 방식으로 변경할 수도 있다.
실시의 형태 6.
이 실시의 형태에서는, 다관리자 함수형 암호 방식 및 다관리자 서명 방식에 대하여 설명한다.
다관리자(Multi-Authority)란, 사용자의 복호 키(혹은 서명 키)를 생성하는 관리자가 복수 존재한다고 하는 의미이다.
통상의 함수형 암호에서는, 시스템 전체의 시큐리티가 1개의 기관(관리자)에 의존하고 있다. 예컨대, 실시의 형태 2, 3에서 설명한 암호 시스템(10)에서는, 시스템 전체의 시큐리티가 키 생성 장치(100)에 의존하고 있다. 키 생성 장치(100)의 비밀 키인 마스터 비밀 키 sk가 누설된 경우, 시스템 전체의 시큐리티가 뚫려 버린다.
그러나, 다관리자로 하는 것에 의해, 일부의 관리자의 시큐리티가 뚫리거나, 일부의 관리자의 비밀 키(마스터 키)가 누설된 경우에도, 시스템의 일부만이 기능하지 않게 될 뿐이고, 다른 부분에 대해서는 정상적으로 기능하는 상태로 할 수 있다.
도 38은 다관리자의 설명도이다. 또, 도 38에서는, 협의의 암호 처리를 예로 하고 있다.
도 38에서는, 관공서가, 주소, 전화 번호, 연령 등의 속성에 대하여 관리한다. 또한, 경찰이, 운전 면허의 종별 등의 속성에 대하여 관리한다. 또한, 회사 A가, 회사 A에 있어서의 직무, 회사 A에 있어서의 소속 등의 속성에 대하여 관리한다. 그리고, 관공서가 관리하는 속성에 관련된 복호 키 1은 관공서가 발행하고, 경찰이 관리하는 속성에 관련된 복호 키 2는 경찰이 발행하고, 회사 A가 관리하는 속성에 관련된 복호 키 3은 회사 A가 발행한다.
암호문을 복호하는 복호자는, 관공서, 경찰, 회사 A 등의 각 관리자가 발행한 복호 키 1, 2, 3을 합한 복호 키를 이용하여, 암호문을 복호한다. 다시 말해, 복호자로부터 본 경우, 각 관리자로부터 발행된 복호 키를 합한 것이, 자신에게 발행된 1개의 복호 키가 된다.
예컨대, 회사 A의 마스터 키가 누설된 경우, 암호 처리 시스템은, 회사 A의 속성에 관해서는 기능하지 않게 되지만, 다른 관리자가 관리하는 속성에 관해서는 기능한다. 다시 말해, 회사 A가 관리하는 속성에 대해서는, 지정한 속성 이외의 속성의 사용자에 의해서 복호되어 버릴 우려가 있지만, 다른 속성에 대해서는, 지정한 속성의 사용자에 의해서만 복호 가능하다.
또한, 도 38의 예로부터도 알 수 있는 바와 같이, 함수형 암호에서는, 복수의 관리자가 존재하고, 각 관리자가 속성에 있어서의 어느 카테고리(부분 공간) 또는 정의역을 관리하고, 그 카테고리에 있어서의 사용자의 속성에 대한 복호 키(의 일부)를 발행하는 것이 자연스럽다.
어느 기관에서도 관리자가 될 수 있고, 다른 기관과 교환하는 일 없이, 복호 키(의 일부)를 발행할 수 있고, 각 사용자가 다른 기관과 교환하는 일 없이, 관리자로부터 복호 키(의 일부)를 취득할 수 있는 경우, 그 방식을 분산 다관리자(Decentralized Multi-Authority) 방식이라고 부른다.
예컨대, 중앙 관리자가 있는 경우, 분산 다관리자라고는 할 수 없다. 중앙 관리자란, 다른 관리자보다 상위의 관리자이다. 중앙 관리자의 시큐리티가 뚫린 경우, 모든 관리자의 시큐리티가 뚫려 버린다.
비특허 문헌 31에는, 분산 다관리자 함수형 암호 방식에 대하여 기재되어 있고, 비특허 문헌 30에는, 분산이 아닌 다관리자 서명 방식에 대하여 기재되어 있다. 상기 실시의 형태에서 설명한 암호 방식이나 서명 방식과 마찬가지로, 비특허 문헌 30, 31에 기재된 방식도, 속성 카테고리를 추가하는 경우에, 공개 파라미터를 재발행할 필요가 없는 구성으로 할 수 있다.
도 39는 다관리자의 경우에 있어서의 속성 카테고리를 추가 가능한 함수형 암호 방식의 설명도이다.
도 39에서는, 도 38과 마찬가지로, 관공서가, 주소, 전화 번호, 연령 등의 속성에 대하여 관리한다. 또한, 경찰이, 운전 면허의 종별 등의 속성에 대하여 관리한다. 또한, 회사 A가, 회사 A에 있어서의 직무, 회사 A에 있어서의 소속 등의 속성에 대하여 관리한다. 그리고, 관공서가 관리하는 속성에 관련된 복호 키 1은 관공서가 발행하고, 경찰이 관리하는 속성에 관련된 복호 키 2는 경찰이 발행하고, 회사 A가 관리하는 속성에 관련된 복호 키 3은 회사 A가 발행한다.
여기서, 관공서는, 기저 B^ 1과 기저 B^* 1을 각각 공개 파라미터 pk와 마스터 비밀 키 sk로서 생성한다. 그리고, 기저 B^* 1을 이용하여, 주소, 전화 번호, 연령 등의 속성에 대한 복호 키 1을 생성한다. 마찬가지로, 경찰은, 기저 B^ 2와 기저 B^* 2를 각각 공개 파라미터 pk와 마스터 비밀 키 sk로서 생성한다. 그리고, 기저 B^* 2를 이용하여, 운전 면허의 종별 등의 속성에 대한 복호 키 2를 생성한다. 마찬가지로, 회사 A는, 기저 B^ 3과 기저 B^* 3을 각각 공개 파라미터 pk와 마스터 비밀 키 sk로서 생성한다. 그리고, 기저 B^* 3을 이용하여, 회사 A에 있어서의 직무, 회사 A에 있어서의 소속 등의 속성에 대한 복호 키 3을 생성한다.
송신자는, 기저 B^ 1을 이용하여 주소, 전화 번호, 연령 등의 속성을 설정하고, 기저 B^ 2를 이용하여 운전 면허의 종별 등의 속성을 설정하고, 기저 B^ 3을 이용하여 회사 A에 있어서의 직무, 회사 A에 있어서의 소속 등의 속성을 설정하여, 암호문을 생성한다. 그리고, 복호자는, 복호 키 1~3을 이용하여, 암호문을 복호한다.
예컨대, 관공서에서 관리하는 속성 카테고리에 추가를 하는 경우, 관공서의 공개 파라미터 pk를 재발행하는 일 없이, 속성 카테고리를 추가하는 것이 가능하다.
또, 여기서는, 속성 카테고리를 추가 가능한 함수형 암호 방식에 대하여 설명했다. 그러나, 함수형 암호 방식을 응용한 서명 방식에 대해서도, 원칙적으로 함수형 암호 방식과 동일한 개념이 적용된다.
실시의 형태 7.
이상의 실시의 형태에서는, 쌍대 벡터 공간에 있어서 암호 프리미티브의 처리를 실현하는 방법에 대하여 설명했다. 실시의 형태 7에서는, 쌍대 가산군(dual additive group)에 있어서 암호 프리미티브의 처리를 실현하는 방법에 대하여 설명한다.
다시 말해, 이상의 실시의 형태에서는, 소수 위수 q의 순회군에 있어서 암호 프리미티브의 처리를 실현했다. 그러나, 합성수 M을 이용하여 수학식 223과 같이 링(ring) R을 나타낸 경우, 링 R을 계수로 하는 가산군에 있어서도, 상기 실시의 형태에서 설명한 암호 프리미티브의 처리를 적용할 수 있다.
[수학식 223]
Figure 112014088518616-pct00124
이상의 실시의 형태에서 설명한 알고리즘에 있어서의 Fq를 R로 변경하면, 쌍대 가산군에 있어서의 암호 프리미티브의 처리를 실현할 수 있다.
또, 이상의 실시의 형태에 있어서, 안전성의 증명의 관점으로부터, i=1, …, L의 각 정수 i에 대한 ρ(i)는, 각각 상이한 식별 정보 t에 대한 긍정형의 조 (t, v) 또는 부정형의 조 ¬(t, v)인 것으로 한정하더라도 좋다.
바꿔 말하면, ρ(i)=(t, v) 또는 ρ(i)=¬(t, v)인 경우에, 함수 ρ~를, ρ~(i)=t인 {1, …, L}→{1, …, d}의 사상인 것으로 한다. 이 경우, ρ~가 단사(injection)인 것으로 한정하더라도 좋다. 또, ρ(i)는, 상술한 액세스 스트럭처 S:=(M, ρ(i))의 ρ(i)이다.
다음으로, 실시의 형태에 있어서의 암호 시스템(10)(키 생성 장치(100), 암호화 장치(200), 복호 장치(300), 키 위양 장치(400), 서명 장치(500), 검증 장치(600))의 하드웨어 구성에 대하여 설명한다.
도 40은 키 생성 장치(100), 암호화 장치(200), 복호 장치(300), 키 위양 장치(400), 서명 장치(500), 검증 장치(600)의 하드웨어 구성의 일례를 나타내는 도면이다.
도 40에 나타내는 바와 같이, 키 생성 장치(100), 암호화 장치(200), 복호 장치(300), 키 위양 장치(400), 서명 장치(500), 검증 장치(600)는, 프로그램을 실행하는 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)」, 「페어링 연산부(350)」, 「메시지 계산부(360)」, 「복호 키 취득부(410)」, 「정보 입력부(420)」, 「위양 키 생성부(430)」, 「키 배포부(440)」, 「서명 키 취득부(510)」, 「정보 입력부(520)」, 「보완 계수 계산부(530)」, 「서명 데이터 생성부(540)」, 「데이터 송신부(550)」, 「공개 파라미터 취득부(610)」, 「데이터 수신부(620)」, 「검증 데이터 생성부(630)」, 「페어링 연산부(640)」 등으로서 설명한 기능을 실행하는 소프트웨어나 프로그램이나 그 외의 프로그램이 기억되어 있다. 프로그램은, CPU(911)에 의해 판독되어 실행된다.
파일군(924)에는, 상기의 설명에 있어서 「공개 파라미터 pk」, 「마스터 비밀 키 sk」, 「복호 키 skS, skΓ」, 「암호문 ctΓ, ctS」, 「액세스 스트럭처 S」, 「속성 정보」, 「메시지 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 : f 벡터 생성부 142 : s 벡터 생성부
143 : 난수 생성부 144 : 키 요소 생성부
145 : 랜덤화 요소 생성부 146 : 위양 요소 생성부
150 : 키 배포부 200 : 암호화 장치
210 : 공개 파라미터 취득부 220 : 정보 입력부
230 : 암호화 데이터 생성부 231 : 난수 생성부
232 : 암호 요소 생성부 240 : 데이터 송신부
300 : 복호 장치 310 : 복호 키 취득부
320 : 데이터 수신부 330 : 스팬 프로그램 계산부
340 : 보완 계수 계산부 350 : 페어링 연산부
360 : 메시지 계산부 400 : 키 위양 장치
410 : 복호 키 취득부 420 : 정보 입력부
430 : 위양 키 생성부 431 : 난수 생성부
432 : 하위 키 요소 생성부 433 : 하위 랜덤화 요소 생성부
434 : 하위 위양 요소 생성부 440 : 키 배포부
500 : 서명 장치 510 : 서명 키 취득부
520 : 정보 입력부 530 : 보완 계수 계산부
540 : 서명 데이터 생성부 541 : 난수 생성부
542 : 서명 요소 생성부 550 : 데이터 송신부
600 : 검증 장치 610 : 공개 파라미터 취득부
620 : 데이터 수신부 630 : 검증 데이터 생성부
631 : f 벡터 생성부 632 : s 벡터 생성부
633 : 난수 생성부 634 : 검증 요소 생성부
640 페어링 연산부

Claims (11)

  1. 소정의 기저 B 및 소정의 기저 B*를 이용하여 처리를 행하는 암호 시스템으로서,
    복수의 인덱스 j 중 1개 이상의 인덱스 j에 대한 송신측 벡터 tj로서, 상기 기저 B에 있어서의 소정의 기저 벡터 bindex의 계수로, 인덱스 j에 미리 할당된 정보 J를 설정하고, 상기 기저 B에 있어서의 다른 기저 벡터 batt의 계수로, 인덱스 j에 대한 파라미터 Φj를 설정한 송신측 벡터 tj를 생성하는 송신 장치와,
    복수의 인덱스 j' 중 1개 이상의 인덱스 j'에 대한 수신측 벡터 rj'로서, 상기 기저 벡터 bindex에 대응하는 상기 기저 B*에 있어서의 기저 벡터 b* index의 계수로, 인덱스 j'에 대응하는 인덱스 j에 미리 할당된 정보 J와의 내적이 0이 되는 정보 J'를 설정하고, 상기 기저 벡터 batt에 대응하는 상기 기저 B*에 있어서의 기저 벡터 b* att의 계수로, 인덱스 j'에 대한 파라미터 Ψj'를 설정한 수신측 벡터 rj'를 이용하여, 인덱스 j에 대한 상기 송신측 벡터 tj와 상기 인덱스 j에 대응하는 인덱스 j'에 대한 상기 수신측 벡터 rj'에 대하여, 대응하는 기저 벡터마다의 페어링 연산의 곱을 계산하는 수신 장치
    를 구비하는 것을 특징으로 하는 암호 시스템.
  2. 제 1 항에 있어서,
    상기 송신 장치는, 암호문 ct를 생성하는 암호화 장치이고, t=1, …, d(d는 1 이상의 정수)의 정수 t를 상기 인덱스 j로 하고, 정수 t에 대한 속성 정보 xt를 상기 인덱스 j에 대한 상기 파라미터 Φj로 하여, 1개 이상의 정수 t에 대하여, 상기 기저 벡터 bindex의 계수로, 정수 t에 할당된 정보 J를 설정하고, 상기 기저 벡터 batt의 계수로, 정수 t에 대한 속성 정보 xt를 설정한 암호 벡터 ct를 상기 송신측 벡터 tj로서 포함하는 암호문 ct를 생성하고,
    상기 수신 장치는, 상기 암호문 ct를 복호하는 복호 장치이고, i=1, …, L(L은 1 이상의 정수)의 정수 i를 상기 인덱스 j'로 하고, 정수 i에 대한 술어 정보 vi를 상기 인덱스 j'에 대한 상기 파라미터 Ψj'로 하여, 각 정수 i에 대하여, 상기 기저 벡터 b* index의 계수로, 정수 i에 대응하는 정수 t에 할당된 정보 J와의 내적이 0이 되는 정보 J'를 설정하고, 상기 기저 벡터 b* att의 계수로, 정수 i에 대한 술어 정보 vi를 설정한 키 벡터 k* i를 상기 수신측 벡터 rj'로서 이용하여, 상기 각 정수 i에 대하여, 그 정수 i에 대한 키 벡터 k* i와, 그 정수 i에 대응하는 정수 t에 대한 암호 벡터 ct에 대하여, 대응하는 기저 벡터마다의 페어링 연산의 곱을 계산하는
    것을 특징으로 하는 암호 시스템.
  3. 제 2 항에 있어서,
    상기 암호 시스템은, 소정의 기저 B0 및 소정의 기저 B* 0과, 소정의 기저 B 및 소정의 기저 B*를 이용하여 처리를 행하고,
    상기 송신 장치는, 암호 벡터 c0 및 t=1, …, d의 1개 이상의 정수 t에 대한 암호 벡터 ct로서, 수학식 1에 나타내는 암호 벡터 c0 및 암호 벡터 ct를 포함하는 암호문 ct를 생성하고,
    상기 수신 장치는, i=0, …, L의 각 정수 i에 대한 키 벡터 k* i로서, 수학식 2에 나타내는 키 벡터 k* i와, 상기 암호 벡터 ct에 대하여, 수학식 3을 계산하는
    것을 특징으로 하는 암호 시스템.
    [수학식 1]
    Figure 112014088518616-pct00125

    [수학식 2]
    Figure 112014088518616-pct00126

    [수학식 3]
    Figure 112014088518616-pct00127

  4. 제 1 항에 있어서,
    상기 송신 장치는, 암호문 ct를 생성하는 암호화 장치이고, i=1, …, L(L은 1 이상의 정수)의 정수 i를 상기 인덱스 j로 하고, 정수 i에 대한 술어 정보 vi를 상기 인덱스 j에 대한 상기 파라미터 Φj로 하여, 각 정수 i에 대하여, 상기 기저 벡터 bindex의 계수로, 정수 i에 할당된 정보 J를 설정하고, 상기 기저 벡터 batt의 계수로, 정수 i에 대한 술어 정보 vi를 설정한 암호 벡터 ci를 상기 송신측 벡터 tj로서 포함하는 암호문 ct를 생성하고,
    상기 수신 장치는, 상기 암호문 ct를 복호하는 복호 장치이고, t=1, …, d(d는 1 이상의 정수)의 정수 t를 상기 인덱스 j'로 하고, 정수 t에 대한 속성 정보 xt를 상기 인덱스 j'에 대한 상기 파라미터 Ψj'로 하여, 1개 이상의 정수 t에 대하여, 상기 기저 벡터 b* index의 계수로, 정수 t에 대응하는 정수 i에 할당된 정보 J와의 내적이 0이 되는 정보 J'를 설정하고, 상기 기저 벡터 b* att의 계수로, 정수 t에 대한 속성 정보 xt를 설정한 키 벡터 k* t를 상기 수신측 벡터 rj'로서 이용하여, 상기 각 정수 i에 대하여, 그 정수 i에 대한 암호 벡터 ci와, 그 정수 i에 대응하는 정수 t에 대한 키 벡터 k* t에 대하여, 대응하는 기저 벡터마다의 페어링 연산의 곱을 계산하는
    것을 특징으로 하는 암호 시스템.
  5. 제 4 항에 있어서,
    상기 암호 시스템은, 소정의 기저 B0 및 소정의 기저 B* 0과, 소정의 기저 B 및 소정의 기저 B*를 이용하여 처리를 행하고,
    상기 송신 장치는, i=0, …, L의 각 정수 i에 대한 암호 벡터 ci로서, 수학식 4에 나타내는 암호 벡터 ci를 포함하는 암호문 ct를 생성하고,
    상기 수신 장치는, 키 벡터 k* 0 및 t=1, …, d의 1개 이상의 정수 t에 대한 키 벡터 k* t로서, 수학식 5에 나타내는 키 벡터 k* 0 및 키 벡터 k* t와, 상기 암호 벡터 ci에 대하여, 수학식 6을 계산하는
    것을 특징으로 하는 암호 시스템.
    [수학식 4]
    Figure 112014088518616-pct00128

    [수학식 5]
    Figure 112014088518616-pct00129

    [수학식 6]
    Figure 112014088518616-pct00130

  6. 제 1 항에 있어서,
    상기 송신 장치는, 암호문 ct를 생성하는 암호화 장치이고, i=1, …, L(L은 1 이상의 정수)의 정수 i를 상기 인덱스 j로 하고, 정수 i에 대한 속성 정보 xi를 상기 인덱스 j에 대한 상기 파라미터 Φj로 하여, 각 정수 i에 대하여, 상기 기저 벡터 bindex의 계수로, 정수 i에 할당된 정보 J를 설정하고, 상기 기저 벡터 batt의 계수로, 정수 i에 대한 속성 정보 xi를 설정한 암호 벡터 ci를 상기 송신측 벡터 tj로서 포함하는 암호문 ct를 생성하고,
    상기 수신 장치는, 상기 암호문 ct를 복호하는 복호 장치이고, 상기 정수 i를 상기 인덱스 j'로 하고, 정수 i에 대한 술어 정보 vi를 상기 인덱스 j'에 대한 상기 파라미터 Ψj'로 하여, 각 정수 i에 대하여, 상기 기저 벡터 b* index의 계수로, 정수 i에 할당된 정보 J와의 내적이 0이 되는 정보 J'를 설정하고, 상기 기저 벡터 b* att의 계수로, 정수 i에 대한 술어 정보 vi를 설정한 키 벡터 k* i를 상기 수신측 벡터 rj'로서 이용하여, 상기 각 정수 i에 대하여, 그 정수 i에 대한 키 벡터 k* i와 암호 벡터 ci에 대하여, 대응하는 기저 벡터마다의 페어링 연산의 곱을 계산하는
    것을 특징으로 하는 암호 시스템.
  7. 제 6 항에 있어서,
    상기 암호 시스템은, 소정의 기저 B0 및 소정의 기저 B* 0과, 소정의 기저 B 및 소정의 기저 B*를 이용하여 처리를 행하고,
    상기 송신 장치는, i=0, …, L의 각 정수 i에 대한 암호 벡터 ci의 합인 암호 벡터 c1로서, 수학식 7에 나타내는 암호 벡터 c1을 포함하는 암호문 ct를 생성하고,
    상기 수신 장치는, 상기 각 정수 i에 대한 키 벡터 k* i의 합인 키 벡터 k* L, dec로서, 수학식 8에 나타내는 키 벡터 k* L, dec와, 상기 암호 벡터 c1에 대하여, 대응하는 기저 벡터마다의 페어링 연산의 곱을 계산하는
    것을 특징으로 하는 암호 시스템.
    [수학식 7]
    Figure 112014088657407-pct00180

    [수학식 8]
    Figure 112014088657407-pct00132

  8. 제 1 항에 있어서,
    상기 송신 장치는, 서명 데이터 sig를 생성하는 서명 장치이고, t=1, …, d(d는 1 이상의 정수)의 정수 t를 상기 인덱스 j로 하고, 정수 t에 대한 속성 정보 xt를 상기 인덱스 j에 대한 상기 파라미터 Φj로 하여, 1개 이상의 정수 t에 대하여, 상기 기저 벡터 bindex의 계수로, 정수 t에 할당된 정보 J를 설정하고, 상기 기저 벡터 batt의 계수로, 정수 t에 대한 속성 정보 xt를 설정한 키 벡터 k* t를 이용하여, i=1, …, L(L은 1 이상의 정수)의 각 정수 i에 대하여, 정수 i에 대응하는 정수 t에 대한 키 벡터 k* t를 포함시킨 서명 요소 si를 상기 송신측 벡터 tj로서 포함하는 서명 데이터 sig를 생성하고,
    상기 수신 장치는, 상기 서명 데이터 sig를 검증하는 검증 장치이고, 상기 정수 i를 상기 인덱스 j'로 하고, 정수 i에 대한 술어 정보 vi를 상기 인덱스 j'에 대한 상기 파라미터 Ψj'로 하여, 각 정수 i에 대하여, 상기 기저 벡터 b* index의 계수로, 정수 i에 대응하는 정수 t에 할당된 정보 J와의 내적이 0이 되는 정보 J'를 설정하고, 상기 기저 벡터 b* att의 계수로, 정수 i에 대한 술어 정보 vi를 설정한 검증 요소 ci를 상기 수신측 벡터 rj'로서 이용하여, 상기 각 정수 i에 대하여, 그 정수 i에 대한 서명 요소 si와 검증 요소 ci에 대하여, 대응하는 기저 벡터마다의 페어링 연산의 곱을 계산하는
    것을 특징으로 하는 암호 시스템.
  9. 제 8 항에 있어서,
    상기 암호 시스템은, 소정의 기저 B0 및 소정의 기저 B* 0과, 소정의 기저 B 및 소정의 기저 B*와, 소정의 기저 Bd+1 및 소정의 기저 B* d+1을 이용하여 처리를 행하고,
    상기 송신 장치는, 키 벡터 k* 0과 t=1, …, d의 1개 이상의 정수 t에 대한 키 벡터 k* t와 키 벡터 k* d+1, 1과 키 벡터 k* d+1, 2로서, 수학식 9에 나타내는 키 벡터 k* 0과 키 벡터 k* t와 키 벡터 k* d+1, 1과 키 벡터 k* d+1, 2를 이용하여, i=0, …, L+1의 각 정수 i에 대한 서명 요소 si로서, 수학식 10에 나타내는 서명 요소 si를 포함하는 서명 데이터 sig를 생성하고,
    상기 수신 장치는, 상기 각 정수 i에 대한 검증 요소 ci로서, 수학식 11에 나타내는 검증 요소 ci와, 상기 서명 요소 si에 대하여, 수학식 12를 계산하는
    것을 특징으로 하는 암호 시스템.
    [수학식 9]
    Figure 112014088657407-pct00133

    [수학식 10]
    Figure 112014088657407-pct00134

    [수학식 11]
    Figure 112014088657407-pct00135

    [수학식 12]
    Figure 112014088657407-pct00136

  10. 소정의 기저 B 및 소정의 기저 B*를 이용하여 처리를 행하는 암호 방법으로서,
    송신 장치가, 복수의 인덱스 j 중 1개 이상의 인덱스 j에 대한 송신측 벡터 tj로서, 상기 기저 B에 있어서의 소정의 기저 벡터 bindex의 계수로, 인덱스 j에 미리 할당된 정보 J를 설정하고, 상기 기저 B에 있어서의 다른 기저 벡터 batt의 계수로, 인덱스 j에 대한 파라미터 Φj를 설정한 송신측 벡터 tj를 생성하는 송신 공정과,
    수신 장치가, 복수의 인덱스 j' 중 1개 이상의 인덱스 j'에 대한 수신측 벡터 rj'로서, 상기 기저 벡터 bindex에 대응하는 상기 기저 B*에 있어서의 기저 벡터 b* index의 계수로, 인덱스 j'에 대응하는 인덱스 j에 미리 할당된 정보 J와의 내적이 0이 되는 정보 J'를 설정하고, 상기 기저 벡터 batt에 대응하는 상기 기저 B*에 있어서의 기저 벡터 b* att의 계수로, 인덱스 j'에 대한 파라미터 Ψj'를 설정한 수신측 벡터 rj'를 이용하여, 인덱스 j에 대한 상기 송신측 벡터 tj와 상기 인덱스 j에 대응하는 인덱스 j'에 대한 상기 수신측 벡터 rj'에 대하여, 대응하는 기저 벡터마다의 페어링 연산의 곱을 계산하는 수신 공정
    을 구비하는 것을 특징으로 하는 암호 방법.


  11. 소정의 기저 B 및 소정의 기저 B*를 이용하여 처리를 행하는 암호 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체로서,
    복수의 인덱스 j 중 1개 이상의 인덱스 j에 대한 송신측 벡터 tj로서, 상기 기저 B에 있어서의 소정의 기저 벡터 bindex의 계수로, 인덱스 j에 미리 할당된 정보 J를 설정하고, 상기 기저 B에 있어서의 다른 기저 벡터 batt의 계수로, 인덱스 j에 대한 파라미터 Φj를 설정한 송신측 벡터 tj를 생성하는 송신 처리와,
    복수의 인덱스 j' 중 1개 이상의 인덱스 j'에 대한 수신측 벡터 rj'로서, 상기 기저 벡터 bindex에 대응하는 상기 기저 B*에 있어서의 기저 벡터 b* index의 계수로, 인덱스 j'에 대응하는 인덱스 j에 미리 할당된 정보 J와의 내적이 0이 되는 정보 J'를 설정하고, 상기 기저 벡터 batt에 대응하는 상기 기저 B*에 있어서의 기저 벡터 b* att의 계수로, 인덱스 j'에 대한 파라미터 Ψj'를 설정한 수신측 벡터 rj'를 이용하여, 인덱스 j에 대한 상기 송신측 벡터 tj와 상기 인덱스 j에 대응하는 인덱스 j'에 대한 상기 수신측 벡터 rj'에 대하여, 대응하는 기저 벡터마다의 페어링 연산의 곱을 계산하는 수신 처리
    를 컴퓨터에 실행시키는 것을 특징으로 하는 암호 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
KR1020147026078A 2012-03-06 2013-03-01 암호 시스템, 암호 방법 및 암호 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 KR101588992B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2012-049275 2012-03-06
JP2012049275A JP5680007B2 (ja) 2012-03-06 2012-03-06 暗号システム、暗号方法及び暗号プログラム
PCT/JP2013/055661 WO2013133158A1 (ja) 2012-03-06 2013-03-01 暗号システム、暗号方法及び暗号プログラム

Publications (2)

Publication Number Publication Date
KR20140138176A KR20140138176A (ko) 2014-12-03
KR101588992B1 true KR101588992B1 (ko) 2016-01-26

Family

ID=49116638

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147026078A KR101588992B1 (ko) 2012-03-06 2013-03-01 암호 시스템, 암호 방법 및 암호 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체

Country Status (7)

Country Link
US (1) US9407438B2 (ko)
EP (1) EP2824652B1 (ko)
JP (1) JP5680007B2 (ko)
KR (1) KR101588992B1 (ko)
CN (1) CN104160437B (ko)
ES (1) ES2604817T3 (ko)
WO (1) WO2013133158A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10050782B2 (en) 2014-12-05 2018-08-14 Mitsubishi Electric Corporation Decryption condition addition device, cryptographic system, and computer readable medium
US10965459B2 (en) 2015-03-13 2021-03-30 Fornetix Llc Server-client key escrow for applied key management system and process
US10931653B2 (en) * 2016-02-26 2021-02-23 Fornetix Llc System and method for hierarchy manipulation in an encryption key management system
US10333695B2 (en) * 2016-11-10 2019-06-25 Microsoft Technology Licensing, Llc Rational number arithmetic in homomorphic encryption
US11290252B2 (en) 2017-01-20 2022-03-29 Enveil, Inc. Compression and homomorphic encryption in secure query and analytics
US11507683B2 (en) 2017-01-20 2022-11-22 Enveil, Inc. Query processing with adaptive risk decisioning
US11777729B2 (en) 2017-01-20 2023-10-03 Enveil, Inc. Secure analytics using term generation and homomorphic encryption
WO2018136801A1 (en) 2017-01-20 2018-07-26 Enveil, Inc. End-to-end secure operations using a query matrix
US11196541B2 (en) 2017-01-20 2021-12-07 Enveil, Inc. Secure machine learning analytics using homomorphic encryption
US20180212753A1 (en) 2017-01-20 2018-07-26 Enveil, Inc. End-To-End Secure Operations Using a Query Vector
US10205713B2 (en) * 2017-04-05 2019-02-12 Fujitsu Limited Private and mutually authenticated key exchange
US10902133B2 (en) 2018-10-25 2021-01-26 Enveil, Inc. Computational operations in enclave computing environments
US10817262B2 (en) 2018-11-08 2020-10-27 Enveil, Inc. Reduced and pipelined hardware architecture for Montgomery Modular Multiplication
JP7087965B2 (ja) * 2018-11-29 2022-06-21 日本電信電話株式会社 暗号システム、暗号化装置、復号装置、暗号化方法、復号方法及びプログラム
US11601258B2 (en) 2020-10-08 2023-03-07 Enveil, Inc. Selector derived encryption systems and methods

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011135895A1 (ja) 2010-04-27 2011-11-03 三菱電機株式会社 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置
WO2012011575A1 (ja) 2010-07-23 2012-01-26 日本電信電話株式会社 暗号システム、暗号通信方法、暗号化装置、鍵生成装置、復号装置、コンテンツサーバ装置、プログラム、記憶媒体
US20120045056A1 (en) 2009-04-23 2012-02-23 Nippon Telegraph And Telephone Corp. Cryptographic processing system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7634085B1 (en) 2005-03-25 2009-12-15 Voltage Security, Inc. Identity-based-encryption system with partial attribute matching
US20090080658A1 (en) 2007-07-13 2009-03-26 Brent Waters Method and apparatus for encrypting data for fine-grained access control
ES2512115T3 (es) * 2009-04-24 2014-10-23 Nippon Telegraph And Telephone Corporation Dispositivo de generación de información, método de generación de información, y programa de generación de información y medio de almacenamiento del mismo
JP5334873B2 (ja) 2010-01-08 2013-11-06 三菱電機株式会社 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
CN102713995B (zh) * 2010-01-15 2015-06-24 三菱电机株式会社 隐匿检索系统以及密码处理系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120045056A1 (en) 2009-04-23 2012-02-23 Nippon Telegraph And Telephone Corp. Cryptographic processing system
WO2011135895A1 (ja) 2010-04-27 2011-11-03 三菱電機株式会社 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置
WO2012011575A1 (ja) 2010-07-23 2012-01-26 日本電信電話株式会社 暗号システム、暗号通信方法、暗号化装置、鍵生成装置、復号装置、コンテンツサーバ装置、プログラム、記憶媒体

Also Published As

Publication number Publication date
WO2013133158A1 (ja) 2013-09-12
EP2824652A1 (en) 2015-01-14
EP2824652A4 (en) 2015-12-02
EP2824652B1 (en) 2016-10-19
JP5680007B2 (ja) 2015-03-04
JP2013186181A (ja) 2013-09-19
US9407438B2 (en) 2016-08-02
CN104160437A (zh) 2014-11-19
ES2604817T3 (es) 2017-03-09
KR20140138176A (ko) 2014-12-03
CN104160437B (zh) 2016-06-08
US20150010147A1 (en) 2015-01-08

Similar Documents

Publication Publication Date Title
KR101588992B1 (ko) 암호 시스템, 암호 방법 및 암호 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
KR101443553B1 (ko) 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
KR101386294B1 (ko) 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 서명 처리 시스템, 서명 장치 및 검증 장치
KR101359200B1 (ko) 암호 처리 시스템
KR101393899B1 (ko) 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
KR101431412B1 (ko) 서명 처리 시스템, 키 생성 장치, 서명 장치, 검증 장치, 서명 처리 방법 및 서명 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
WO2011016401A1 (ja) 関数暗号応用システム及び方法
KR101310439B1 (ko) 암호 처리 시스템, 키 생성 장치, 키 위양 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
KR101676977B1 (ko) 암호 시스템
KR20120088774A (ko) 암호 처리 시스템, 키 생성 장치, 키 위양 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
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: 20200106

Year of fee payment: 5