KR20120139753A - 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 서명 처리 시스템, 서명 장치 및 검증 장치 - Google Patents

암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 서명 처리 시스템, 서명 장치 및 검증 장치 Download PDF

Info

Publication number
KR20120139753A
KR20120139753A KR1020127025089A KR20127025089A KR20120139753A KR 20120139753 A KR20120139753 A KR 20120139753A KR 1020127025089 A KR1020127025089 A KR 1020127025089A KR 20127025089 A KR20127025089 A KR 20127025089A KR 20120139753 A KR20120139753 A KR 20120139753A
Authority
KR
South Korea
Prior art keywords
integer
vector
basis
variable
coefficient
Prior art date
Application number
KR1020127025089A
Other languages
English (en)
Other versions
KR101386294B1 (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 KR20120139753A publication Critical patent/KR20120139753A/ko
Application granted granted Critical
Publication of KR101386294B1 publication Critical patent/KR101386294B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0847Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving identity based encryption [IBE] schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

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

Abstract

많은 암호 기능을 갖는 안전한 함수형 암호 방식을 제공하는 것을 목적으로 한다. 스팬 프로그램에 속성 벡터의 내적을 적용하는 것에 의해, 액세스 스트럭쳐를 구성했다. 이 액세스 스트럭쳐는, 스팬 프로그램의 설계와, 속성 벡터의 설계에 자유도가 있고, 액세스 제어의 설계에 큰 자유도를 갖는다. 그리고, 이 액세스 스트럭쳐에 대하여 비밀 분산의 개념을 이용하는 것에 의해, 많은 암호 기능을 갖는 안전한 함수형 암호 처리를 실현했다.

Description

암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 서명 처리 시스템, 서명 장치 및 검증 장치{ENCRYPTION PROCESSING SYSTEM, KEY GENERATION DEVICE, ENCRYPTION DEVICE, DECRYPTION DEVICE, SIGNATURE PROCESSING SYSTEM, SIGNATURE DEVICE AND VERIFICATION DEVICE}
본 발명은, 함수형 암호(Functional Encryption, FE) 방식에 관한 것이다.
비특허 문헌 3-6, 10, 12, 13, 15, 18에는, 함수형 암호 방식의 하나의 클래스인 ID 베이스 암호(Identity-Based Encryption, IBE) 방식에 대한 기재가 있다. 또한, 비특허 문헌 2, 7, 9, 16, 19, 23-26, 28에는, 함수형 암호 방식의 하나의 클래스인 속성 베이스 암호(Attribute-Based Encryption, ABE) 방식에 대한 기재가 있다.
(선행 기술 문헌)
(비특허 문헌)
비특허 문헌 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 crypto systems 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 : Groth, J., Sahai, A. : Efficient non-interactive proof systems for bilinear groups. In : Smart, N. P.(ed.) EUROCRYPT 2008. LNCS, vol. 4965, pp. 415ㆍ32. Springer Heidelberg(2008)
비특허 문헌 18 : Horwitz, J., Lynn, B. : Towards hierarchical identity-based encryption. In : Knudsen, L. R.(ed.) EUROCRYPT 2002. LNCS, vol. 2332, pp. 466ㆍ81. Springer Heidelberg(2002)
비특허 문헌 19 : 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)
비특허 문헌 20 : Lewko, A. B., Waters, B. : Fully secure HIBE with short ciphertexts. ePrint, IACR, http://eprint.iacr.org/2009/482
비특허 문헌 21 : 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)
비특허 문헌 22 : Okamoto, T., Takashima, K. : Hierarchical predicate encryption for Inner-Products, In : ASIACRYPT 2009, Springer Heidelberg(2009)
비특허 문헌 23 : 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)
비특허 문헌 24 : 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)
비특허 문헌 25 : Sahai, A., Waters, B. : Fuzzy identity-based encryption. In : Cramer, R.(ed.) EUROCRYPT 2005. LNCS, vol. 3494, pp. 457ㆍ73. Springer Heidelberg(2005)
비특허 문헌 26 : Shi, E., Waters, B. : Delegating capability in predicate encryption systems. In : Aceto, L., Damgard, I., Goldberg, L. A., Halldosson, M. M., Ingofsdotir, A., Walukiewicz, I.(eds.) ICALP (2) 2008. LNCS, vol. 5126, pp. 560ㆍ78. Springer Heidelberg(2008)
비특허 문헌 27 : Waters, B. : Efficient identity based encryption without random oracles. Eurocrypt 2005, LNCS No. 3152, pp. 443ㆍ59. Springer Verlag, 2005.
비특허 문헌 28 : Waters, B. : Ciphertext-policy attribute-based encryption : an expressive, efficient, and provably secure realization. ePrint, IACR, http://eprint.iacr.org/2008/290
비특허 문헌 29 : 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)
본 발명은, 다기능의 암호 기능을 갖는 안전한 함수형 암호 방식을 제공하는 것을 목적으로 한다.
본 발명에 따른 암호 처리 시스템은, 키 생성 장치와 암호화 장치와 복호 장치를 구비하고, t=0, …, d(d는 1 이상의 정수)의 각 정수 t에 대한 기저 Bt와 기저 B* t를 이용하여 암호 처리를 실행하는 암호 처리 시스템으로서, 상기 키 생성 장치는, i=1, …, L(L은 1 이상의 정수)의 각 정수 i에 대한 변수 ρ(i)로서, 식별 정보 t(t=1, …, d 중 하나의 정수)와, 속성 벡터 v i:=(vi , i')(i'=1, …, nt, nt는 1 이상의 정수)의 긍정형의 조(positive tuple) (t, v i) 또는 부정형의 조(negative tuple) ¬(t, v i) 중 하나인 변수 ρ(i)와, L행 r열(r은 1 이상의 정수)의 소정의 행렬 M을 입력하는 제 1 정보 입력부와, r개의 요소를 갖는 벡터 f 및 w와, 상기 제 1 정보 입력부가 입력한 행렬 M에 근거하여 생성되는 열벡터 s→T:=(s1, …, sL)T:=Mㆍf→T와, 값 s0:=wㆍf→T와, 소정의 값 θi(i=1, …, L)에 근거하여, 요소 k* 0과, i=1, …, L의 각 정수 i에 대한 요소 k* i를 생성하는 복호 키 생성부로서, 기저 B* 0의 기저 벡터 b* 0, p(p는 소정의 값)의 계수로서 상기 값 -s0을 설정하고, 기저 벡터 b* 0, q(q는 상기 p와는 다른 소정의 값)의 계수로서 소정의 값 κ를 설정하여 요소 k* 0을 생성하고, i=1, …, L의 각 정수 i에 대하여, 변수 ρ(i)가 긍정형의 조 (t, v i)인 경우에는, 그 조의 식별 정보 t가 나타내는 기저 B* t의 기저 벡터 b* t, 1의 계수로서 siivi , 1을 설정함과 아울러, 상기 식별 정보 t와 i'=2, …, nt의 각 정수 i'가 나타내는 기저 벡터 b* t, i'의 계수로서 θivi , i'를 설정하여 요소 k* i를 생성하고, 변수 ρ(i)가 부정형의 조 ¬(t, v i)인 경우에는, 그 조의 식별 정보 t와 i'=1, …, nt의 각 정수 i'가 나타내는 기저 벡터 b* t, i'의 계수로서 sivi , i'를 설정하여 요소 k* i를 생성하는 복호 키 생성부를 구비하고, 상기 암호화 장치는, t=1, …, d의 적어도 1개 이상의 정수 t에 대하여, 식별 정보 t와, 속성 벡터 x t:=(xt , i')(i'=1, …, nt, nt는 1 이상의 정수)를 갖는 속성 집합 Γ를 입력하는 제 2 정보 입력부와, 상기 제 2 정보 입력부가 입력한 속성 집합 Γ에 근거하여, 요소 c0과, 상기 속성 집합 Γ에 포함되는 각 식별 정보 t에 대한 요소 ct를 생성하는 암호화 데이터 생성부로서, 기저 B0의 기저 벡터 b0 , p(p는 상기 p)의 계수로서 난수치 δ를 설정함과 아울러, 기저 벡터 b0 , q(q는 상기 q)의 계수로서 소정의 값 ζ를 설정한 요소 c0을 생성하고, 상기 속성 집합 Γ에 포함되는 각 식별 정보 t에 대하여, 기저 Bt의 기저 벡터 bt , i'(i'=1, …, nt)의 계수로서 상기 난수치 δ를 승산한 xt , i'를 설정한 요소 ct를 생성하는 암호화 데이터 생성부를 구비하고, 상기 복호 장치는, 상기 암호화 데이터 생성부가 생성한 요소 c0 및 요소 ct와, 상기 속성 집합 Γ를 포함하는 암호화 데이터 c를 취득하는 데이터 취득부와, 상기 복호 키 생성부가 생성한 요소 k* 0 및 요소 k* i와, 상기 변수 ρ(i)를 포함하는 복호 키 skS를 취득하는 복호 키 취득부와, 상기 데이터 취득부가 취득한 암호화 데이터 c에 포함되는 속성 집합 Γ와, 상기 복호 키 취득부가 취득한 복호 키 skS에 포함되는 변수 ρ(i)에 근거하여, i=1, …, L의 각 정수 i 중, 변수 ρ(i)가 긍정형의 조 (t, v i)이고, 또한, 그 조의 v i와, 그 조의 식별 정보 t가 나타내는 Γ에 포함되는 x t의 내적이 0이 되는 I와, 변수 ρ(i)가 부정형의 조 ¬(t, v i)이며, 또한, 그 조의 v i와, 그 조의 식별 정보 t가 나타내는 Γ에 포함되는 x t의 내적이 0이 되지 않는 i의 집합 I를 특정함과 아울러, 특정한 집합 I에 포함되는 i에 대하여, αisi를 합계한 경우에 s0이 되는 보완 계수 αi를 계산하는 보완 계수 계산부와, 상기 암호화 데이터 c에 포함되는 요소 c0, 요소 ct와, 상기 복호 키 skS에 포함되는 요소 k* 0, 요소 k* i에 대하여, 상기 보완 계수 계산부가 특정한 집합 I와, 상기 보완 계수 계산부가 계산한 보완 계수 αi에 근거하여, 수학식 1에 나타내는 페어링 연산을 행하여 값 K=gT ζκ를 계산하는 페어링 연산부를 구비하는 것을 특징으로 한다.
[수학식 1]
Figure pct00001
본 발명에 따른 암호 처리 시스템은, 스팬 프로그램(Span Program)과 내적 술어를 이용하여 함수형 암호를 실현하고 있고, 다기능의 암호 기능을 실현하고 있다. 또한, 종래의 함수형 암호 방식에 비하여 안전성이 높다.
도 1은 행렬 M^의 설명도.
도 2는 행렬 Mδ의 설명도.
도 3은 s0의 설명도.
도 4는 s→T의 설명도.
도 5는 Key-Policy 함수형 암호 방식을 실행하는 암호 처리 시스템(10)의 구성도.
도 6은 Key-Policy 함수형 암호 방식을 실행하는 암호 처리 시스템(10)의 기능을 나타내는 기능 블록도.
도 7은 Setup 알고리즘의 처리를 나타내는 플로우차트.
도 8은 KeyGen 알고리즘의 처리를 나타내는 플로우차트.
도 9는 Enc 알고리즘의 처리를 나타내는 플로우차트.
도 10은 Dec 알고리즘의 처리를 나타내는 플로우차트.
도 11은 Ciphertext-Policy 함수형 암호 방식의 알고리즘을 실행하는 암호 처리 시스템(10)의 구성도.
도 12는 Ciphertext-Policy 함수형 암호 방식을 실행하는 암호 처리 시스템(10)의 기능을 나타내는 기능 블록도.
도 13은 KeyGen 알고리즘의 처리를 나타내는 플로우차트.
도 14는 Enc 알고리즘의 처리를 나타내는 플로우차트.
도 15는 Dec 알고리즘의 처리를 나타내는 플로우차트.
도 16은 서명 처리 시스템(20)의 구성도.
도 17은 서명 처리 시스템(20)의 기능을 나타내는 기능 블록도.
도 18은 Setup 알고리즘의 처리를 나타내는 플로우차트.
도 19는 KeyGen 알고리즘의 처리를 나타내는 플로우차트.
도 20은 Enc 알고리즘의 처리를 나타내는 플로우차트.
도 21은 Dec 알고리즘의 처리를 나타내는 플로우차트.
도 22는 키 생성 장치(100), 암호화 장치(200), 복호 장치(300), 서명 장치(400), 검증 장치(500)의 하드웨어 구성의 일례를 나타내는 도면.
이하, 도면에 근거하여, 발명의 실시의 형태를 설명한다.
이하의 설명에 있어서, 처리 장치는 후술하는 CPU(911) 등이다. 기억 장치는 후술하는 ROM(913), RAM(914), 자기 디스크(920) 등이다. 통신 장치는 후술하는 통신 보드(915) 등이다. 입력 장치는 후술하는 키보드(902), 통신 보드(915) 등이다. 다시 말해, 처리 장치, 기억 장치, 통신 장치, 입력 장치는 하드웨어이다.
이하의 설명에 있어서의 기법에 대하여 설명한다.
A가 랜덤인 변수 또는 분포일 때, 수학식 101은, A의 분포에 따라 A로부터 y를 랜덤으로 선택하는 것을 나타낸다. 다시 말해, 수학식 101에 있어서, y는 난수이다.
[수학식 101]
Figure pct00002
A가 집합일 때, 수학식 102는, A로부터 y를 균등하게 선택하는 것을 나타낸다. 다시 말해, 수학식 102에 있어서, y는 균등 난수이다.
[수학식 102]
Figure pct00003
수학식 103은, y가 z에 의해 정의된 집합인 것, 또는 y가 z가 대입된 집합인 것을 나타낸다.
[수학식 103]
Figure pct00004
a가 상수일 때, 수학식 104는, 기계(알고리즘) A가 입력 x에 대하여 a를 출력하는 것을 나타낸다.
[수학식 104]
Figure pct00005
수학식 105, 다시 말해 Fq는, 위수 q의 유한체를 나타낸다.
[수학식 105]
Figure pct00006
벡터 표기는, 유한체 Fq에 있어서의 벡터 표시를 나타낸다. 다시 말해, 수학식 106이다.
[수학식 106]
Figure pct00007
수학식 107은, 수학식 108에 나타내는 2개의 벡터 x와 v의 수학식 109에 나타내는 내적을 나타낸다.
[수학식 107]
Figure pct00008
[수학식 108]
Figure pct00009
[수학식 109]
Figure pct00010
XT는, 행렬 X의 전치행렬을 나타낸다.
bi(i=1, …, n)가 공간 V의 벡터의 요소일 때, 다시 말해, 수학식 110일 때, 수학식 111은, 수학식 112에 의해 생성되는 부분 공간을 나타낸다.
[수학식 110]
Figure pct00011
[수학식 111]
Figure pct00012
[수학식 112]
Figure pct00013
수학식 113에 나타내는 기저 B와 기저 B*에 대하여, 수학식 114이다.
[수학식 113]
Figure pct00014
[수학식 114]
Figure pct00015
또한, 이하의 설명에 있어서, "nt"가 다리 글자(inferior letter) 또는 어깨 글자(superior letter)로 나타나 있는 경우, 이 nt는 nt를 의미한다. 마찬가지로, "Vt"가 다리 글자 또는 어깨 글자로 나타나 있는 경우, 이 Vt는 Vt를 의미한다. 마찬가지로, "δi, j"가 어깨 글자로 나타나 있는 경우, 이 δi, j는, δi, j를 의미한다.
또한, 벡터를 의미하는 "→"가 아래첨자 또는 위첨자에 붙어 있는 경우, 이 "→"는 아래첨자 또는 위첨자에 어깨 글자로 붙어 있는 것을 의미한다.
또한, 기저를 나타내는 B0, Bd+1이 다리 글자로 나타나 있는 경우, 이 B0, Bd+1은 각각 B0, Bd +1을 나타낸다. 마찬가지로, 기저를 나타내는 B*0, B*d+1이 다리 글자로 나타나 있는 경우, 이 B*0, B*d+1은 각각 B* 0, B* d+1을 나타낸다.
또한, 이하의 설명에 있어서, 암호 처리란, 키 생성 처리, 암호화 처리, 복호 처리를 포함하는 것이며, 서명 처리란, 키 생성 처리, 서명 처리, 검증 처리를 포함하는 것이다.
실시의 형태 1.
본 실시의 형태에서는, 이후의 실시의 형태에서 설명하는 「함수형 암호(Functional Encryption) 방식」을 실현하는 기초가 되는 개념과, 함수형 암호의 하나의 구성에 대하여 설명한다.
제 1에, 함수형 암호에 대하여 간단하게 설명한다.
제 2에, 함수형 암호를 실현하기 위한 공간인 「쌍대 페어링 벡터 공간(Dual Pairing Vector Spaces, DPVS)」이라고 하는 풍부한 수학적 구조를 갖는 공간을 설명한다.
제 3에, 함수형 암호를 실현하기 위한 개념을 설명한다. 여기에서는, 「스팬 프로그램(Span Program)」, 「속성 벡터의 내적과 액세스 스트럭쳐」, 「비밀 분산 방식(비밀 공유 방식)」에 대하여 설명한다.
제 4에, 본 실시의 형태에 따른 「함수형 암호 방식」을 설명한다. 본 실시의 형태에서는, 「Key-Policy 함수형 암호(Key-Policy Functional Encryption, KP-FE) 방식」에 대하여 설명한다. 거기에서, 우선, 「Key-Policy 함수형 암호 방식」의 기본 구성에 대하여 설명한다. 다음으로, 이 「Key-Policy 함수형 암호 방식」을 실현하는 「암호 처리 시스템(10)」의 기본 구성에 대하여 설명한다. 그리고, 본 실시의 형태에 따른 「Key-Policy 함수형 암호 방식」 및 「암호 처리 시스템(10)」에 대하여 상세하게 설명한다.
<제 1. 함수형 암호 방식>
함수형 암호 방식은, 암호화 키(encryption-key, ek)와, 복호 키(decryption-key, dk)의 사이의 관계를 보다 고도화하고, 보다 유연하게 한 암호 방식이다.
함수형 암호 방식에 있어서, 암호화 키와 복호 키는, 각각, 속성 x와 속성 v가 설정되어 있다. 그리고, 관계 R에 대하여 R(x, v)가 성립하는 경우에 한하여, 복호 키 dkv:=(dk, v)는 암호화 키 ekx:=(ek, x)로 암호화된 암호문을 복호할 수 있다.
함수형 암호 방식에는, 데이터베이스의 액세스 컨트롤, 메일 서비스, 콘텐츠 배포 등의 여러 가지 어플리케이션이 존재한다(비특허 문헌 2, 7, 9, 16, 19, 23-26, 28 참조).
R이 등호 관계인 경우, 다시 말해, x=v인 경우에 한하여 R(x, v)가 성립하는 경우, 함수형 암호 방식은 ID 베이스 암호 방식이다.
ID 베이스 암호 방식보다 일반화된 함수형 암호 방식으로서, 속성 베이스 암호 방식이 있다.
속성 베이스 암호 방식에서는, 암호화 키와 복호 키에 설정되는 속성이 속성의 조이다. 예컨대, 암호화 키와 복호 키에 설정되는 속성이, 각각, X:=(x1, …, xd)와, V:=(v1, …, vd)이다.
그리고, 속성의 컴포넌트에 대하여, 컴포넌트마다의 등호 관계(예컨대, {xt=vt}t∈{1, …, d})가 액세스 스트럭쳐 S에 입력된다. 그리고, 액세스 스트럭쳐 S가 입력을 수리한 경우에만, R(X, V)가 성립한다. 다시 말해, 암호화 키로 암호화된 암호문을 복호 키로 복호할 수 있다.
액세스 스트럭쳐 S가 복호 키 dkV에 삽입되어 있는 경우, 속성 베이스 암호(ABE) 방식은, Key-Policy ABE(KP-ABE)라고 불린다. 한편, 액세스 스트럭쳐 S가 암호문에 삽입되어 있는 경우, 속성 베이스 암호(ABE) 방식은, Ciphertext-Policy ABE(CP-ABE)라고 불린다.
비특허 문헌 19에 기재된 내적 술어 암호(Inner-Product Encryption, IPE)도 함수형 암호의 하나의 클래스이다. 여기에서는, 암호화 키와 복호 키에 설정되는 속성이 각각 체 또는 환상의 벡터이다. 예컨대, x:=(x1, …, xn)∈Fq n과 v:=(v1, …, vn)∈Fq n이 각각 암호화 키와 복호 키에 설정된다. 그리고, xㆍv=0인 경우에 한하여, R(x, v)가 성립한다.
<제 2. 쌍대 페어링 벡터 공간>
우선, 대칭 쌍선형 페어링군(Symmetric Bilinear Pairing Groups)에 대하여 설명한다.
대칭 쌍선형 페어링군 (q, G, GT, g, e)는, 소수 q, 위수 q의 순회 덧셈군 G와 위수 q의 순회 곱셈군 GT와, g≠0∈G와, 다항식 시간에 계산 가능한 비퇴화 쌍선형 페어링(Nondegenerate Bilinear Pairing) e:G×G→GT의 조이다. 비퇴화 쌍선형 페어링은, e(sg, tg)=e(g, g)st이며, e(g, g)≠1이다.
이하의 설명에 있어서, 수학식 115를, 1λ를 입력으로 하여, 시큐리티 파라미터를 λ로 하는 쌍선형 페어링군의 파라미터 paramG:=(q, G, GT, g, e)의 값을 출력하는 알고리즘으로 한다.
[수학식 115]
Figure pct00016
다음으로, 쌍대 페어링 벡터 공간에 대하여 설명한다.
쌍대 페어링 벡터 공간 (q, V, GT, A, e)는, 대칭 쌍선형 페어링군(paramG:=(q, G, GT, g, e))의 직적에 의해 구성할 수 있다. 쌍대 페어링 벡터 공간 (q, V, GT, A, e)는, 소수 q, 수학식 116에 나타내는 Fq상의 N차원 벡터 공간 V, 위수 q의 순회군 GT, 공간 V의 표준 기저 A:=(a1, …, aN)의 조이며, 이하의 연산 (1), (2)를 갖는다. 여기서, ai는, 수학식 117에 나타내는 것과 같다.
[수학식 116]
Figure pct00017
[수학식 117]
Figure pct00018
연산 (1) : 비퇴화 쌍선형 페어링
공간 V에 있어서의 페어링은, 수학식 118에 의해 정의된다.
[수학식 118]
Figure 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) : 디스토션 사상
수학식 119에 나타내는 공간 V에 있어서의 선형 변환 φi, j는, 수학식 120을 행할 수 있다.
[수학식 119]
Figure pct00020
[수학식 120]
Figure pct00021
여기서, 선형 변환 φi, j를 디스토션 사상이라고 부른다.
이하의 설명에 있어서, 수학식 121을, 1λ(λ∈자연수), N∈자연수, 쌍선형 페어링군의 파라미터 paramG:=(q, G, GT, g, e)의 값을 입력으로 하여, 시큐리티 파라미터가 λ이며, N차원의 공간 V로 하는 쌍대 페어링 벡터 공간의 파라미터 paramV:=(q, V, GT, A, e)의 값을 출력하는 알고리즘으로 한다.
[수학식 121]
Figure pct00022
또, 여기에서는, 상술한 대칭 쌍선형 페어링군에 의해, 쌍대 페어링 벡터 공간을 구성한 경우에 대하여 설명한다. 또, 비대칭 쌍선형 페어링군에 의해 쌍대 페어링 벡터 공간을 구성하는 것도 가능하다. 이하의 설명을, 비대칭 쌍선형 페어링군에 의해 쌍대 페어링 벡터 공간을 구성한 경우에 응용하는 것은 용이하다.
<제 3. 함수형 암호를 실현하기 위한 개념>
<제 3-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^는 입력열 δ를 수리한다.
여기서, 레이블 ρ가 정의 리터럴 {p1, …, pn}에만 대응되어 있는 경우, 스팬 프로그램은 모노톤이라고 불린다. 한편, 레이블 ρ가 리터럴 {p1, …, pn, ¬p1, …, ¬pn}에 대응되어 있는 경우, 스팬 프로그램은 논모노톤이라고 불린다. 여기에서는, 스팬 프로그램은 논모노톤으로 한다. 그리고, 논모노톤 스팬 프로그램을 이용하여, 액세스 스트럭쳐(논모노톤 액세스 스트럭쳐)를 구성한다. 액세스 스트럭쳐란, 간단하게 말하면 암호에 대한 액세스 제어를 행하는 것이다. 다시 말해, 암호문을 복호할 수 있는지 여부의 제어를 행하는 것이다.
자세하게는 후술하지만, 스팬 프로그램이 모노톤이 아니고, 논모노톤인 것에 의해, 스팬 프로그램을 이용하여 구성하는 함수형 암호 방식의 이용 범위가 넓어진다.
<제 3-2. 속성 벡터의 내적과 액세스 스트럭쳐>
여기에서는, 속성 벡터의 내적을 이용하여 상술한 사상 γ(j)를 계산한다. 다시 말해, 속성 벡터의 내적을 이용하여, 행렬 M의 어느 행을 행렬 Mδ에 포함시킬지를 결정한다.
Ut(t=1, …, d이며 Ut⊂{0, 1}*)는, 부분 전집합(sub-universe)이며, 속성의 집합이다. 그리고, Ut는, 각각 부분 전집합의 식별 정보 (t)와, nt차원 벡터 (v)를 포함한다. 다시 말해, Ut는, (t, v)이다. 여기서, t∈{1, …, d}이며, v∈Fq nt이다.
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∈Fqnt, 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, ρ)는 Γ를 수리한다.
<제 3-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를 수학식 122에 나타내는 열벡터로 한다.
[수학식 122]
Figure pct00023
수학식 123에 나타내는 s0을 공유되는 비밀 정보로 한다.
[수학식 123]
Figure pct00024
또한, 수학식 124에 나타내는 s→T를 s0의 L개의 분산 정보의 벡터로 한다.
[수학식 124]
Figure pct00025
그리고, 분산 정보 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가 존재한다.
그리고, 수학식 125이다.
[수학식 125]
Figure pct00026
또, 상수 {α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부 이외에 속하는 것」이라고 하는 조건을 설정할 수 있다. 다시 말해, 부정형의 조건을 설정할 수 있는 것에 의해, 자연스러운 조건 설정이 가능해진다. 또, 여기에서는 부서의 수가 적지만, 부서의 수가 많은 경우 등은 매우 유효한 것을 알 수 있다.
<제 4. 함수형 암호 방식의 기본 구성>
<제 4-1. Key-Policy 함수형 암호 방식의 기본 구성>
Key-Policy 함수형 암호 방식의 구성을 간단하게 설명한다. 또, Key-Policy란, 복호 키에 Policy가 삽입되는 것, 다시 말해 액세스 스트럭쳐가 삽입되는 것을 의미한다.
Key-Policy 함수형 암호 방식은, Setup, KeyGen, Enc, Dec의 4개의 알고리즘을 구비한다.
(Setup)
Setup 알고리즘은, 시큐리티 파라미터 λ와, 속성의 포맷 μ:=(d; n1, …, nd)가 입력되고, 공개 파라미터 pk와, 마스터키 sk를 출력하는 확률적 알고리즘이다.
(KeyGen)
KeyGen 알고리즘은, 액세스 스트럭쳐 S:=(M, ρ)와, 공개 파라미터 pk와, 마스터키 sk를 입력으로 하여, 복호 키 skS를 출력하는 확률적 알고리즘이다.
(Enc)
Enc 알고리즘은, 메시지 m과, 속성의 집합인 Γ:={(t, x t)|x t∈Fq nt, 1≤t≤d}와, 공개 파라미터 pk를 입력으로 하여, 암호화 데이터 c를 출력하는 확률적 알고리즘이다.
(Dec)
Dec 알고리즘은, 속성의 집합인 Γ 하에서 암호화된 암호화 데이터 c와, 액세스 스트럭쳐 S에 대한 복호 키 skS와, 공개 파라미터 pk를 입력으로 하여, 메시지 m 또는 식별 정보 ⊥를 출력하는 알고리즘이다.
Key-Policy 함수형 암호 방식은, 모든 액세스 스트럭쳐 S와 속성의 집합 Γ와, 바르게 생성된 공개 파라미터 pk와 마스터키 sk와 수학식 126에 나타내는 암호문 c에 대하여, 액세스 스트럭쳐 S가 속성의 집합 Γ를 수리하는 경우, m=Dec(pk, skS, c)이며, 액세스 스트럭쳐 S가 속성의 집합 Γ를 거절하는 경우, m=Dec(pk, skS, c)가 되는 확률은 무시할 수 있는 정도이다.
[수학식 126]
Figure pct00027
<제 4-2. 암호 처리 시스템(10)>
상술한 Key-Policy 함수형 암호 방식의 알고리즘을 실행하는 암호 처리 시스템(10)에 대하여 설명한다.
도 5는 Key-Policy 함수형 암호 방식을 실행하는 암호 처리 시스템(10)의 구성도이다.
암호 처리 시스템(10)은, 키 생성 장치(100), 암호화 장치(200), 복호 장치(300)를 구비한다.
키 생성 장치(100)는, 시큐리티 파라미터 λ와, 속성의 포맷 μ:=(d; n1, …, nd)를 입력으로 하여 Setup 알고리즘을 실행하여, 공개 파라미터 pk와 마스터키 sk를 생성한다. 그리고, 키 생성 장치(100)는, 생성한 공개 파라미터 pk를 공개한다. 또한, 키 생성 장치(100)는, 액세스 스트럭쳐 S를 입력으로 하여 KeyGen 알고리즘을 실행하여, 복호 키 skS를 생성하여 복호 장치(300)에 비밀리에 배포한다.
암호화 장치(200)는, 메시지 m과, 속성의 집합 Γ와, 공개 파라미터 pk를 입력으로 하여 Enc 알고리즘을 실행하여, 암호화 데이터 c를 생성한다. 암호화 장치(200)는, 생성한 암호화 데이터 c를 복호 장치(300)에 송신한다.
복호 장치(300)는, 공개 파라미터 pk와, 복호 키 skS와, 암호화 데이터 c를 입력으로 하여 Dec 알고리즘을 실행하여, 메시지 m 또는 식별 정보 ⊥를 출력한다.
<제 4-3. Key-Policy 함수형 암호 방식 및 암호 처리 시스템(10)의 상세>
도 6~도 10에 근거하여, Key-Policy 함수형 암호 방식 및 Key-Policy 함수형 암호 방식을 실행하는 암호 처리 시스템(10)의 기능과 동작에 대하여 설명한다.
도 6은 Key-Policy 함수형 암호 방식을 실행하는 암호 처리 시스템(10)의 기능을 나타내는 기능 블록도이다. 암호 처리 시스템(10)은, 상술한 것처럼, 키 생성 장치(100), 암호화 장치(200), 복호 장치(300)를 구비한다.
도 7과 도 8은 키 생성 장치(100)의 동작을 나타내는 플로우차트이다. 또, 도 7은 Setup 알고리즘의 처리를 나타내는 플로우차트이며, 도 8은 KeyGen 알고리즘의 처리를 나타내는 플로우차트이다. 도 9는 암호화 장치(200)의 동작을 나타내는 플로우차트이며, Enc 알고리즘의 처리를 나타내는 플로우차트이다. 도 10은 복호 장치(300)의 동작을 나타내는 플로우차트이며, Dec 알고리즘의 처리를 나타내는 플로우차트이다.
또, 이하의 설명에서는, xt , 1:=1인 것으로 한다.
키 생성 장치(100)의 기능과 동작에 대하여 설명한다. 키 생성 장치(100)는, 마스터 키 생성부(110), 마스터 키 기억부(120), 정보 입력부(130)(제 1 정보 입력부), 복호 키 생성부(140), 키 배포부(150)를 구비한다. 또한, 복호 키 생성부(140)는, f 벡터 생성부(141), s 벡터 생성부(142), 난수 생성부(143), 키 요소 생성부(144)를 구비한다.
우선, 도 7에 근거하여, Setup 알고리즘의 처리에 대하여 설명한다.
(S101 : 정규 직교 기저 생성 단계)
마스터 키 생성부(110)는, 처리 장치에 의해, 수학식 127을 계산하여, paramμ→와, t=0, …, d의 각 정수 t에 대하여 기저 Bt 및 기저 B* t를 생성한다.
[수학식 127]
Figure pct00028
다시 말해, 마스터 키 생성부(110)는 이하의 처리를 실행한다.
(1) 마스터 키 생성부(110)는, 입력 장치에 의해, 시큐리티 파라미터 λ(1λ)와, 속성의 포맷 μ:=(d; n1, …, nd)를 입력한다. 여기서, d는 1 이상의 정수이며, t=1, …, d까지의 각 정수 t에 대하여 nt는 1 이상의 정수이다.
(2) 마스터 키 생성부(110)는, 처리 장치에 의해, (1)에서 입력한 시큐리티 파라미터 λ(1λ)를 입력으로 하여 알고리즘 Gbpg를 실행하여, 쌍선형 페어링군의 파라미터 paramG:=(q, G, GT, g, e)의 값을 생성한다.
(3) 마스터 키 생성부(110)는, 처리 장치에 의해, 난수 ψ를 생성함과 아울러, N0에 5를, t=1, …, d의 각 정수 t에 대하여 Nt에 4nt를 설정한다.
이어서, 마스터 키 생성부(110)는, t=0, …, d의 각 정수 t에 대하여 이하의 (4)~(8)의 처리를 실행한다.
(4) 마스터 키 생성부(110)는, 처리 장치에 의해, (1)에서 입력한 시큐리티 파라미터 λ(1λ)와, (3)에서 설정한 Nt와, (2)에서 생성한 paramG:=(q, G, GT, g, e)의 값을 입력으로 하여 알고리즘 Gdpvs를 실행하여, 쌍대 페어링 벡터 공간의 파라미터 paramVt:=(q, VT, GT, A, 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를 생성한다.
(8) 마스터 키 생성부(110)는, 처리 장치에 의해, (6)에서 생성한 (νt, i, j)i, j에 근거하여, (4)에서 생성한 표준 기저 At로부터 기저 B* t를 생성한다.
(9) 마스터 키 생성부(110)는, 처리 장치에 의해, gT에 e(g, g)ψ를 설정한다. 또한, 마스터 키 생성부(110)는, paramμ→에 (4)에서 생성한 {paramVt}t=0, …, d와, gT를 설정한다. 또, t=0, …, d와 i=1, …, Nt의 각 정수 t, i에 대하여, gT=e(bt, i, b* t, i)이다.
즉, (S101)에서, 마스터 키 생성부(110)는, 수학식 128에 나타내는 알고리즘 Gob를 실행하여, paramμ→와, t=0, …, d의 각 정수 t에 대하여 기저 Bt 및 기저 B* t를 생성한다.
[수학식 128]
Figure pct00029
(S102 : 공개 파라미터 생성 단계)
마스터 키 생성부(110)는, 처리 장치에 의해, (S101)에서 생성한 기저 Bt의 부분 기저 B^ 0과, t=1, …, d의 각 정수 t에 대하여, 부분 기저 B^ t를 수학식 129에 나타내는 바와 같이 생성한다.
[수학식 129]
Figure pct00030
마스터 키 생성부(110)는, 생성한 부분 기저 B^ 0 및 부분 기저 B^ t와, (S101)에서 입력된 시큐리티 파라미터 λ(1λ)와, (S101)에서 생성한 paramμ→를 합쳐, 공개 파라미터 pk로 한다.
(S103 : 마스터 키 생성 단계)
마스터 키 생성부(110)는, 처리 장치에 의해, (S101)에서 생성한 기저 B* t의 부분 기저 B^* 0과, t=1, …, d의 각 정수 t에 대하여, 부분 기저 B^* t를 수학식 130에 나타내는 바와 같이 생성한다.
[수학식 130]
Figure pct00031
마스터 키 생성부(110)는, 생성한 부분 기저 B^* 0과 부분 기저 B^* t를 마스터 키 sk로 한다.
(S104 : 마스터 키 기억 단계)
마스터 키 기억부(120)는, (S102)에서 t=0, …, d의 각 정수 t에 대하여 생성한 부분 기저 B^* t를 포함하는 공개 파라미터 pk를 기억 장치에 기억한다. 또한, 마스터 키 기억부(120)는, (S103)에서 t=0, …, d의 각 정수 t에 대하여 생성한 부분 기저 B^* t를 포함하는 마스터 키 sk를 기억 장치에 기억한다.
다시 말해, (S101)~(S103)에 있어서, 마스터 키 생성부(110)는 수학식 131에 나타내는 Setup 알고리즘을 실행하여, 공개 파라미터 pk와 마스터 키 sk를 생성한다. 그리고, (S104)에서, 마스터 키 기억부(120)가 생성된 공개 파라미터 pk와 마스터 키 sk를 기억 장치에 기억한다.
또, 공개 파라미터는, 예컨대, 네트워크를 통해 공개되어, 암호화 장치(200)나 복호 장치(300)가 취득 가능한 상태가 된다.
[수학식 131]
Figure pct00032
다음으로, 도 8에 근거하여, KeyGen 알고리즘의 처리에 대하여 설명한다.
(S201 : 정보 입력 단계)
정보 입력부(130)는, 입력 장치에 의해, 상술한 액세스 스트럭쳐 S:=(M, ρ)를 입력한다. 또, 액세스 스트럭쳐 S의 행렬 M의 설정에 대해서는, 실현하고 싶은 시스템의 조건에 따라 설정되는 것이다. 또한, 액세스 스트럭쳐 S의 ρ는, 예컨대, 복호 키 skS의 사용자의 속성 정보가 설정되어 있다.
(S202 : f 벡터 생성 단계)
f 벡터 생성부(141)는, 처리 장치에 의해, r개의 요소를 갖는 벡터 f를 수학식 132에 나타내는 바와 같이 랜덤으로 생성한다.
[수학식 132]
Figure pct00033
(S203 : s 벡터 생성 단계)
s 벡터 생성부(142)는, 처리 장치에 의해, (S201)에서 입력한 액세스 스트럭쳐 S에 포함되는 (L행×r열)의 행렬 M과, (S202)에서 생성한 벡터 f에 근거하여, 벡터 s→T:=(s1, …, sL)T를 수학식 133에 나타내는 바와 같이 생성한다.
[수학식 133]
Figure pct00034
또한, s 벡터 생성부(142)는, 처리 장치에 의해, (S202)에서 생성한 벡터 f에 근거하여, 값 s0을 수학식 134에 나타내는 바와 같이 생성한다.
[수학식 134]
Figure pct00035
(S204 : 난수 생성 단계)
난수 생성부(143)는, 처리 장치에 의해, 난수 η0과, i=1, …, L의 각 정수 i에 대하여, 난수 θi를 수학식 135에 나타내는 바와 같이 생성한다.
[수학식 135]
Figure pct00036
(S205 : 키 요소 생성 단계)
키 요소 생성부(144)는, 처리 장치에 의해, 복호 키 skS의 요소 k* 0을 수학식 136에 나타내는 바와 같이 생성한다.
[수학식 136]
Figure pct00037
또, 상술한 것처럼, 수학식 113에 기저 B와 기저 B*에 대하여, 수학식 114이다. 따라서, 수학식 136은, 기저 B* 0의 기저 벡터 b* 0, 1의 계수로서 -s0을 설정하고, 기저 벡터 b* 0, 2의 계수로서 0을 설정하고, 기저 벡터 b* 0, 3의 계수로서 1을 설정하고, 기저 벡터 b* 0, 4의 계수로서 η0을 설정하고, 기저 벡터 b* 0, 5의 계수로서 0을 설정하는 것을 의미한다.
또한, 키 요소 생성부(144)는, 처리 장치에 의해, i=1, …, L의 각 정수 i에 대하여, 복호 키 skS의 요소 k* i를 수학식 137에 나타내는 바와 같이 생성한다.
[수학식 137]
Figure pct00038
다시 말해, 수학식 137은, 수학식 136과 같이, ρ(i)가 긍정형의 조 (t, v i)인 경우에는, 기저 B* t의 기저 벡터 b* t, 1의 계수로서 siivi , 1을 설정하고, 기저 벡터 b* t, 2, …, b* t, nt의 계수로서 θivi , 2, …, θivi , nt를 설정하고, 기저 벡터 b* t, nt+1, …, b* t, 2 nt의 계수로서 0을 설정하고, 기저 벡터 b* t, 2 nt +1, …, b* t, 3 nt의 계수로서 ηi, 1, …, ηi, nt를 설정하고, 기저 벡터 b* t, 3 nt +1, …, b* t, 4 nt의 계수로서 0을 설정하는 것을 의미한다.
한편, ρ(i)가 부정형의 조 ¬(t, v i)인 경우에는, 기저 B* t의 기저 벡터 b* t, 1, …, b* t, nt의 계수로서 sivi , 1, …, sivi , nt를 설정하고, 기저 벡터 b* t, nt +1, …, b* t, 2 nt의 계수로서 0을 설정하고, 기저 벡터 b* t, 2 nt +1, …, b* t, 3 nt의 계수로서 ηi, 1, …, ηi, nt를 설정하고, 기저 벡터 b* t, 3 nt +1, …, b* t, 4 nt의 계수로서 0을 설정하는 것을 의미한다.
(S206 : 키 배포 단계)
키 배포부(150)는, (S201)에서 입력한 액세스 스트럭쳐 S와, (S205)에서 생성된 k* 0, k* 1, …, k* L을 요소로 하는 복호 키 skS를, 예컨대 통신 장치에 의해 네트워크를 통해 비밀리에 복호 장치(300)에 배포한다. 물론, 복호 키 skS는, 다른 방법에 의해 복호 장치(300)에 배포되더라도 좋다.
다시 말해, (S201)~(S205)에 있어서, 정보 입력부(130)와 복호 키 생성부(140)는 수학식 138에 나타내는 KeyGen 알고리즘을 실행하여, 복호 키 skS를 생성한다. 그리고, (S206)에서, 키 배포부(150)가 생성된 복호 키 skS를 복호 장치(300)에 배포한다.
[수학식 138]
Figure pct00039
암호화 장치(200)의 기능과 동작에 대하여 설명한다. 암호화 장치(200)는, 공개 파라미터 취득부(210), 정보 입력부(220)(제 2 정보 입력부), 암호화 데이터 생성부(230), 데이터 송신부(240)(데이터 출력부)를 구비한다. 또한, 암호화 데이터 생성부(230)는, 난수 생성부(231), 암호 요소 생성부(232)를 구비한다.
도 9에 근거하여, Enc 알고리즘의 처리에 대하여 설명한다.
(S301 : 공개 파라미터 취득 단계)
공개 파라미터 취득부(210)는, 예컨대, 통신 장치에 의해 네트워크를 통해, 키 생성 장치(100)가 생성한 공개 파라미터 pk를 취득한다.
(S302 : 정보 입력 단계)
정보 입력부(220)는, 입력 장치에 의해, 복호 장치(300)에 송신하는 메시지 m을 입력한다. 또한, 정보 입력부(220)는, 입력 장치에 의해, 속성의 집합 Γ:={(t, x t:=(xt , 1, …, xt , nt∈Fqnt))|1≤t≤d}를 입력한다. 또, t는, 1 이상 d 이하의 모든 정수가 아니고, 1 이상 d 이하의 적어도 일부의 정수이더라도 좋다. 또한, 속성의 집합 Γ는, 예컨대, 복호 가능한 사용자의 속성 정보가 설정되어 있다.
(S303 : 난수 생성 단계)
난수 생성부(231)는, 처리 장치에 의해, 난수 δ, 난수 φ0, φt, 1, …, φt, nt, ζ를 수학식 139에 나타내는 바와 같이 생성한다.
[수학식 139]
Figure pct00040
(S304 : c 벡터 생성 단계)
암호 요소 생성부(232)는, 처리 장치에 의해, 암호화 데이터 c의 요소 c0을 수학식 140에 나타내는 바와 같이 생성한다.
[수학식 140]
Figure pct00041
또한, 암호 요소 생성부(232)는, 처리 장치에 의해, Γ에 포함되는 (t, x t)의 각 정수 t에 대하여, 암호화 데이터 c의 요소 ct를 수학식 141에 나타내는 바와 같이 생성한다.
[수학식 141]
Figure pct00042
또한, 암호 요소 생성부(232)는, 처리 장치에 의해, 암호화 데이터 c의 요소 cd+1을 수학식 142에 나타내는 바와 같이 생성한다.
[수학식 142]
Figure pct00043
(S305 : 데이터 송신 단계)
데이터 송신부(240)는, (S302)에서 입력한 속성의 집합 Γ와, (S304)에서 생성된 c0, ct, cd +1을 요소로 하는 암호화 데이터 c를, 예컨대 통신 장치에 의해 네트워크를 통해 복호 장치(300)에 송신한다. 물론, 암호화 데이터 c는, 다른 방법에 의해 복호 장치(300)에 송신되더라도 좋다.
다시 말해, (S301)~(S304)에 있어서, 공개 파라미터 취득부(210), 정보 입력부(220), 암호화 데이터 생성부(230)는, 수학식 143에 나타내는 Enc 알고리즘을 실행하여, 암호화 데이터 c를 생성한다. 그리고, (S305)에서, 데이터 송신부(240)가 생성된 암호화 데이터 c를 복호 장치(300)에 송신한다.
[수학식 143]
Figure pct00044
복호 장치(300)의 기능과 동작에 대하여 설명한다. 복호 장치(300)는, 복호 키 취득부(310), 데이터 수신부(320)(데이터 취득부), 스팬 프로그램 계산부(330), 보완 계수 계산부(340), 페어링 연산부(350), 평문 정보 계산부(360)를 구비한다.
도 10에 근거하여, Dec 알고리즘의 처리에 대하여 설명한다.
(S401 : 복호 키 취득 단계)
복호 키 취득부(310)는, 예컨대, 통신 장치에 의해 네트워크를 통해, 키 생성 장치(100)로부터 배포된 복호 키 skS:=(S, k* 0, k* 1, …, k* L)을 취득한다. 또한, 복호 키 취득부(310)는, 키 생성 장치(100)가 생성한 공개 파라미터 pk를 취득한다.
(S402 : 데이터 수신 단계)
데이터 수신부(320)는, 예컨대, 통신 장치에 의해 네트워크를 통해, 암호화 장치(200)가 송신한 암호화 데이터 c를 수신한다.
(S403 : 스팬 프로그램 계산 단계)
스팬 프로그램 계산부(330)는, 처리 장치에 의해, (S401)에서 취득한 복호 키 skS에 포함되는 액세스 스트럭쳐 S가, (S402)에서 수신한 암호화 데이터 c에 포함되는 Γ를 수리하는지 여부를 판정한다. 액세스 스트럭쳐 S가 Γ를 수리하는지 여부의 판정 방법은, 「제 3. 함수형 암호를 실현하기 위한 개념」에서 설명한 그대로이다.
스팬 프로그램 계산부(330)는, 액세스 스트럭쳐 S가 Γ를 수리하는 경우(S403에서 수리), 처리를 (S404)로 진행시킨다. 한편, 액세스 스트럭쳐 S가 Γ를 거절하는 경우(S403에서 거절), 암호화 데이터 c를 복호 키 skS로 복호할 수 없는 것으로 하여 처리를 종료한다.
(S404 : 보완 계수 계산 단계)
보완 계수 계산부(340)는, 처리 장치에 의해, 수학식 144가 되는 I와, 상수(보완 계수) {αi}i∈I를 계산한다.
[수학식 144]
Figure pct00045
(S405 : 페어링 연산 단계)
페어링 연산부(350)는, 처리 장치에 의해, 수학식 145를 계산하여, 세션키 K=gT ζ를 생성한다.
[수학식 145]
Figure pct00046
또, 수학식 146에 나타내는 바와 같이, 수학식 145를 계산하는 것에 의해 키 K=gT ζ가 얻어진다.
[수학식 146]
Figure pct00047
(S406 : 평문 정보 계산 단계)
평문 정보 계산부(360)는, 처리 장치에 의해, m'=cd +1/K를 계산하여, 메시지 m'(=m)를 생성한다. 또, cd +1은 수학식 142에 나타내는 대로 gT ζm이며, K는 gT ζ이기 때문에, m'=cd +1/K를 계산하면 메시지 m이 얻어진다.
다시 말해, (S401)~(S406)에 있어서, 복호 장치(300)는, 수학식 147에 나타내는 Dec 알고리즘을 실행하여, 메시지 m'(=m)를 생성한다.
[수학식 147]
Figure pct00048
이상과 같이, 암호 처리 시스템(10)은, 스팬 프로그램과 내적 술어와 비밀 분산을 이용하여 구성한 액세스 스트럭쳐 S를 이용하여, 암호 방식(함수형 암호 방식)을 실현한다. 따라서, 암호 처리 시스템(10)은, 매우 높은 자유도로 액세스 제어의 설계를 행하는 것이 가능한 암호 방식을 실현한다.
또한, 암호 처리 시스템(10)이 실현하는 암호 방식은, 매우 안전성이 높다. 상술한 것처럼, 함수형 암호 방식의 하나의 클래스(가장 한정한 클래스)에 ID 베이스 암호가 있다. 기존의 실용적인 ID 베이스 암호와 비교하더라도, 암호 처리 시스템(10)이 실현하는 암호 방식은 어느 의미에 있어서 안전성이 높다.
또, 상기 설명에서는, (S101)의 (3)에서 N0을 5로, Nt를 4nt(=nt+nt+nt+nt)로 설정했다. 따라서, 기저 At, 기저 Bt, 기저 B* t는, 모두 4nt+5차원이다.
그러나, nt+nt+nt+nt를 nt+ut+wt+zt로 하더라도 좋다. 다시 말해, 1번째의 nt를 그대로 nt로 하고, 2번째의 nt를 ut로 하고, 3번째의 nt를 wt로 하고, 4번째의 nt를 zt로 하더라도 좋다. 즉, Nt를 nt+ut+wt+zt로 설정하더라도 좋다. 여기서, nt, ut, wt, zt는, 각각 다른 값이더라도 좋고, nt는 상술한 것처럼 1 이상의 정수이며, ut, wt, zt는 모두 0 이상의 정수이다.
이 경우, 수학식 131에 나타내는 Setup 알고리즘은, 수학식 148과 같이 다시 쓸 수 있다. 다시 말해, 기저 B^ t와 기저 B^* t의 기저 벡터의 첨자가 변경된다.
[수학식 148]
Figure pct00049
또한, 수학식 138에 나타내는 KeyGen 알고리즘은, 수학식 149와 같이 다시 쓸 수 있다.
[수학식 149]
Figure pct00050
또한, 수학식 143에 나타내는 Enc 알고리즘은, 수학식 150과 같이 다시 쓸 수 있다.
[수학식 150]
Figure pct00051
또, 수학식 147에 나타내는 Dec 알고리즘에는 변경은 없다.
또한, N0은 5가 아니고, 2 이상의 정수이면 된다. N0이 2이면, 기저 B0과 기저 B* 0이 2차원이 된다. 이 경우, KeyGen 알고리즘에 있어서, k* 0:=(-s0, 1)B*0으로 하고, Enc 알고리즘에 있어서, c0:=(δ, ζ)B0으로 하면 된다.
또한, 상기 설명에서는, KeyGen 알고리즘에 있어서, k* 0:=(-s0, 0, 1, η0, 0)B*0으로 했다. 그러나, 소정의 값 κ를 이용하여, k* 0:=(-s0, 0, κ, η0, 0)B*0으로 하더라도 좋다. 이 경우, Dec 알고리즘으로 계산되는 K:=gζκ T가 되기 때문에, Enc 알고리즘에 있어서, cd +1:=gζκ Tm으로 하면 된다.
또한, 상기 설명에서는, vi , nt의 값에 대하여 특별히 한정하지 않았다. 그러나, 안전성의 증명의 관점에서, vi , nt:=1인 한정으로 하더라도 좋다.
또한, 안전성의 증명의 관점에서, i=1, …, L의 각 정수 i에 대한 ρ(i)는, 각각 다른 식별 정보 t에 대한 긍정형의 조 (t, v) 또는 부정형의 조 ¬(t, v)인 것으로 한정하더라도 좋다.
바꿔 말하면, ρ(i)=(t, v) 또는 ρ(i)=¬(t, v)인 경우에, 함수 ρ~를, ρ~(i)=t인 {1, …, L}→{1, …, d}의 사상인 것으로 한다. 이 경우, ρ~가 단사(單射)인 것으로 한정하더라도 좋다. 또, ρ(i)는, 상술한 액세스 스트럭쳐 S:=(M, ρ(i))의 ρ(i)이다.
실시의 형태 2.
본 실시의 형태에서는, 「Ciphertext-Policy 함수형 암호(Ciphertext-Policy Functional Encryption, CP-FE) 방식」에 대하여 설명한다. 또, 본 실시의 형태에서 설명하는 「Ciphertext-Policy 함수형 암호 방식」도, 실시의 형태 1에서 설명한 개념에 근거하여 구성된다.
본 실시의 형태에서는, 우선, 「Ciphertext-Policy 함수형 암호 방식」의 기본 구성에 대하여 설명한다. 다음으로, 이 「Ciphertext-Policy 함수형 암호 방식」을 실현하는 「암호 처리 시스템(10)」의 기본 구성에 대하여 설명한다. 그리고, 본 실시의 형태에 따른 「Ciphertext-Policy 함수형 암호 방식」 및 「암호 처리 시스템(10)」에 대하여 상세하게 설명한다.
<Ciphertext-Policy 함수형 암호 방식의 기본 구성>
Ciphertext-Policy 함수형 암호 방식의 구성을 간단하게 설명한다. 또, Ciphertext-Policy란, 암호문에 Policy가 삽입되는 것, 다시 말해 액세스 스트럭쳐가 삽입되는 것을 의미한다.
Ciphertext-Policy 함수형 암호 방식은, Key-Policy 함수형 암호 방식과 같이, Setup, KeyGen, Enc, Dec의 4개의 알고리즘을 구비한다.
(Setup)
Setup 알고리즘은, 시큐리티 파라미터 λ와, 속성의 포맷 μ:=(d; n1, …, nd)가 입력되고, 공개 파라미터 pk와, 마스터 키 sk를 출력하는 확률적 알고리즘이다.
(KeyGen)
KeyGen 알고리즘은, 속성의 집합인 Γ:={(t, x t)|x t∈Fq nt, 1≤t≤d}와, 공개 파라미터 pk와, 마스터 키 sk를 입력으로 하여, 복호 키 skΓ를 출력하는 확률적 알고리즘이다.
(Enc)
Enc 알고리즘은, 메시지 m과, 액세스 스트럭쳐 S:=(M, ρ)와, 공개 파라미터 pk를 입력으로 하여, 암호화 데이터 c를 출력하는 확률적 알고리즘이다.
(Dec)
Dec 알고리즘은, 액세스 스트럭쳐 S 하에서 암호화된 암호화 데이터 c와, 속성의 집합인 Γ에 대한 복호 키 skΓ와, 공개 파라미터 pk를 입력으로 하여, 메시지 m 또는 식별 정보 ⊥를 출력하는 알고리즘이다.
Ciphertext-Policy 함수형 암호 방식은, 모든 액세스 스트럭쳐 S와 속성의 집합 Γ와, 바르게 생성된 공개 파라미터 pk와 마스터 키 sk와 수학식 151에 나타내는 암호문 c에 대하여, 액세스 스트럭쳐 S가 속성의 집합 Γ를 수리하는 경우, m=Dec(pk, skΓ, c)이며, 액세스 스트럭쳐 S가 속성의 집합 Γ를 거절하는 경우, m=Dec(pk, skΓ, c)가 되는 확률은 무시할 수 있는 정도이다.
[수학식 151]
Figure pct00052
<암호 처리 시스템(10)>
상술한 Ciphertext-Policy 함수형 암호 방식의 알고리즘을 실행하는 암호 처리 시스템(10)에 대하여 설명한다.
도 11은 암호 처리 시스템(10)의 구성도이다.
암호 처리 시스템(10)은, 키 생성 장치(100), 암호화 장치(200), 복호 장치(300)를 구비한다.
키 생성 장치(100)는, 시큐리티 파라미터 λ와, 속성의 포맷 μ:=(d; n1, …, nd)를 입력으로 하여 Setup 알고리즘을 실행하여, 공개 파라미터 pk와 마스터 키 sk를 생성한다. 그리고, 키 생성 장치(100)는, 생성한 공개 파라미터 pk를 공개한다. 또한, 키 생성 장치(100)는, 속성의 집합 Γ를 입력으로 하여 KeyGen 알고리즘을 실행하여, 복호 키 skΓ를 생성하여 복호 장치(300)에 비밀리에 배포한다.
암호화 장치(200)는, 메시지 m과, 액세스 스트럭쳐 S와, 공개 파라미터 pk를 입력으로 하여 Enc 알고리즘을 실행하여, 암호화 데이터 c를 생성한다. 암호화 장치(200)는, 생성한 암호화 데이터 c를 복호 장치(300)에 송신한다.
복호 장치(300)는, 공개 파라미터 pk와, 복호 키 skS와, 암호화 데이터 c를 입력으로 하여 Dec 알고리즘을 실행하여, 메시지 m 또는 식별 정보 ⊥를 출력한다.
<Ciphertext-Policy 함수형 암호 방식 및 암호 처리 시스템(10)의 상세>
도 12~도 15에 근거하여, Ciphertext-Policy 함수형 암호 방식 및 Ciphertext-Policy 함수형 암호 방식을 실행하는 암호 처리 시스템(10)의 기능과 동작에 대하여 설명한다.
도 12는 Ciphertext-Policy 함수형 암호 방식을 실행하는 암호 처리 시스템(10)의 기능을 나타내는 기능 블록도이다. 암호 처리 시스템(10)은, 상술한 것처럼, 키 생성 장치(100), 암호화 장치(200), 복호 장치(300)를 구비한다.
도 13은 키 생성 장치(100)의 동작을 나타내는 플로우차트이며, KeyGen 알고리즘의 처리를 나타내는 플로우차트이다. 또, Setup 알고리즘은, Key-Policy 함수형 암호 방식의 경우와 같기 때문에, 여기에서는 설명을 생략한다. 도 14는 암호화 장치(200)의 동작을 나타내는 플로우차트이며, Enc 알고리즘의 처리를 나타내는 플로우차트이다. 도 15는 복호 장치(300)의 동작을 나타내는 플로우차트이며, Dec 알고리즘의 처리를 나타내는 플로우차트이다.
또, 이하의 설명에서는, xt , 1:=1인 것으로 한다.
키 생성 장치(100)의 기능과 동작에 대하여 설명한다. 키 생성 장치(100)는, 마스터 키 생성부(110), 마스터 키 기억부(120), 정보 입력부(130)(제 1 정보 입력부), 복호 키 생성부(140), 키 배포부(150)를 구비한다. 또한, 복호 키 생성부(140)는, 난수 생성부(143), 키 요소 생성부(144)를 구비한다.
상술한 것처럼, Setup 알고리즘은, Key-Policy 함수형 암호 방식의 경우와 같으며, 수학식 131에 나타내는 그대로이다.
도 13에 근거하여, KeyGen 알고리즘의 처리에 대하여 설명한다.
(S501 : 정보 입력 단계)
정보 입력부(130)는, 입력 장치에 의해, 속성의 집합 Γ:={(t, x t:=(xt , 1, …, xt , nt∈Fq nt))|1≤t≤d}를 입력한다. 또, 속성의 집합 Γ는, 예컨대, 복호 키 skΓ의 사용자의 속성 정보가 설정되어 있다.
(S502 : 난수 생성 단계)
난수 생성부(143)는, 처리 장치에 의해, 난수 δ, 난수 φ0, φt, 1, …, φt, nt를 수학식 152에 나타내는 바와 같이 생성한다.
[수학식 152]
Figure pct00053
(S503 : 키 요소 생성 단계)
키 요소 생성부(144)는, 처리 장치에 의해, 복호 키 skΓ의 요소 k* 0을 수학식 153에 나타내는 바와 같이 생성한다.
[수학식 153]
Figure pct00054
또한, 키 요소 생성부(144)는, 처리 장치에 의해, Γ에 포함되는 (t, x t)의 각 정수 t에 대하여, 복호 키 skΓ의 요소 k* t를 수학식 154에 나타내는 바와 같이 생성한다.
[수학식 154]
Figure pct00055
(S504 : 키 배포 단계)
키 배포부(150)는, (S501)에서 입력한 속성의 집합 Γ와, (S503)에서 생성된 k* 0, k* t를 요소로 하는 복호 키 skΓ를, 예컨대 통신 장치에 의해 네트워크를 통해 비밀리에 복호 장치(300)에 배포한다. 물론, 복호 키 skΓ는, 다른 방법에 의해 복호 장치(300)에 배포되더라도 좋다.
다시 말해, (S501)~(S503)에 있어서, 정보 입력부(130)와 복호 키 생성부(140)는 수학식 155에 나타내는 KeyGen 알고리즘을 실행하여, 복호 키 skΓ를 생성한다. 그리고, (S504)에서, 키 배포부(150)가 생성된 복호 키 skΓ를 복호 장치(300)에 배포한다.
[수학식 155]
Figure pct00056
암호화 장치(200)의 기능과 동작에 대하여 설명한다. 암호화 장치(200)는, 공개 파라미터 취득부(210), 정보 입력부(220)(제 2 정보 입력부), 암호화 데이터 생성부(230), 데이터 송신부(240)(데이터 출력부)를 구비한다. 또한, 암호화 데이터 생성부(230)는, 난수 생성부(231), 암호 요소 생성부(232), f 벡터 생성부(233), s 벡터 생성부(234)를 구비한다.
도 14에 근거하여, Enc 알고리즘의 처리에 대하여 설명한다.
(S601 : 공개 파라미터 취득 단계)
공개 파라미터 취득부(210)는, 예컨대, 통신 장치에 의해 네트워크를 통해, 키 생성 장치(100)가 생성한 공개 파라미터 pk를 취득한다.
(S602 : 정보 입력 단계)
정보 입력부(220)는, 입력 장치에 의해, 액세스 스트럭쳐 S:=(M, ρ)를 입력한다. 또, 액세스 스트럭쳐 S의 설정에 대해서는, 실현하고 싶은 시스템의 조건에 따라 설정되는 것이다. 또한, 액세스 스트럭쳐 S의 ρ는, 예컨대, 복호 가능한 사용자의 속성 정보가 설정되어 있다.
또한, 정보 입력부(220)는, 입력 장치에 의해, 복호 장치(300)에 송신하는 메시지 m을 입력한다.
(S603 : f 벡터 생성 단계)
f 벡터 생성부(233)는, 처리 장치에 의해, r개의 요소를 갖는 벡터 f를 수학식 156에 나타내는 바와 같이 랜덤으로 생성한다.
[수학식 156]
Figure pct00057
(S604 : s 벡터 생성 단계)
s 벡터 생성부(234)는, 처리 장치에 의해, (S602)에서 입력한 액세스 스트럭쳐 S에 포함되는 (L행×r열)의 행렬 M과, (S603)에서 생성한 벡터 f에 근거하여, 벡터 s→T:=(s1, …, sL)T를 수학식 157에 나타내는 바와 같이 생성한다.
[수학식 157]
Figure pct00058
또한, s 벡터 생성부(234)는, 처리 장치에 의해, (S603)에서 생성한 벡터 f에 근거하여, 값 s0을 수학식 158에 나타내는 바와 같이 생성한다.
[수학식 158]
Figure pct00059
(S605 : 난수 생성 단계)
난수 생성부(231)는, 처리 장치에 의해, 난수 η0과, i=1, …, L의 각 정수 i에 대하여 난수 θi와, 난수 ζ를 수학식 159에 나타내는 바와 같이 생성한다.
[수학식 159]
Figure pct00060
(S606 : 암호 요소 생성 단계)
암호 요소 생성부(232)는, 처리 장치에 의해, 암호화 데이터 c의 요소 c0을 수학식 160에 나타내는 바와 같이 생성한다.
[수학식 160]
Figure pct00061
또한, 암호 요소 생성부(232)는, 처리 장치에 의해, i=1, …, L의 각 정수 i에 대하여, 암호화 데이터 c의 요소 ci를 수학식 161에 나타내는 바와 같이 생성한다.
[수학식 161]
Figure pct00062
또한, 암호 요소 생성부(232)는, 처리 장치에 의해, 암호화 데이터 c의 요소 cd+1을 수학식 162에 나타내는 바와 같이 생성한다.
[수학식 162]
Figure pct00063
(S607 : 데이터 송신 단계)
데이터 송신부(240)는, (S602)에서 입력한 액세스 스트럭쳐 S와, (S606)에서 생성된 c0, c1, …, cL, cd +1을 요소로 하는 암호화 데이터 c를, 예컨대 통신 장치에 의해 네트워크를 통해 복호 장치(300)에 송신한다. 물론, 암호화 데이터 c는, 다른 방법에 의해 복호 장치(300)에 송신되더라도 좋다.
다시 말해, (S601)~(S606)에 있어서, 공개 파라미터 취득부(210), 정보 입력부(220), 암호화 데이터 생성부(230)는, 수학식 163에 나타내는 Enc 알고리즘을 실행하여, 암호화 데이터 c를 생성한다. 그리고, (S607)에서, 데이터 송신부(240)가 생성된 암호화 데이터 c를 복호 장치(300)에 송신한다.
[수학식 163]
Figure pct00064
복호 장치(300)의 기능과 동작에 대하여 설명한다. 복호 장치(300)는, 복호 키 취득부(310), 데이터 수신부(320)(데이터 취득부), 스팬 프로그램 계산부(330), 보완 계수 계산부(340), 페어링 연산부(350), 평문 정보 계산부(360)를 구비한다.
도 15에 근거하여, Dec 알고리즘의 처리에 대하여 설명한다.
(S701 : 복호 키 취득 단계)
복호 키 취득부(310)는, 예컨대, 통신 장치에 의해 네트워크를 통해, 키 생성 장치(100)로부터 배포된 복호 키 skΓ를 취득한다. 또한, 복호 키 취득부(310)는, 키 생성 장치(100)가 생성한 공개 파라미터 pk를 취득한다.
(S702 : 데이터 수신 단계)
데이터 수신부(320)는, 예컨대, 통신 장치에 의해 네트워크를 통해, 암호화 장치(200)가 송신한 암호화 데이터 c를 수신한다.
(S703 : 스팬 프로그램 계산 단계)
스팬 프로그램 계산부(330)는, 처리 장치에 의해, (S702)에서 취득한 암호화 데이터 c에 포함되는 액세스 스트럭쳐 S가, (S701)에서 수신한 복호 키 skΓ에 포함되는 Γ를 수리하는지 여부를 판정한다. 액세스 스트럭쳐 S가 Γ를 수리하는지 여부의 판정 방법은, 「제 3. 함수형 암호를 실현하기 위한 개념」에서 설명한 그대로이다.
스팬 프로그램 계산부(330)는, 액세스 스트럭쳐 S가 Γ를 수리하는 경우(S703에서 수리), 처리를 (S704)로 진행시킨다. 한편, 액세스 스트럭쳐 S가 Γ를 거절하는 경우(S703에서 거절), 암호화 데이터 c를 복호 키 skS로 복호할 수 없는 것으로 하여 처리를 종료한다.
(S704)~(S706)은, 실시의 형태 1에 있어서의 도 9에 나타내는 (S404)와 (S406)과 같다.
다시 말해, (S701)~(S706)에 있어서, 공개 파라미터 취득부(210), 정보 입력부(220), 암호화 데이터 생성부(230)는, 수학식 164에 나타내는 Dec 알고리즘을 실행하여, 메시지 m'(=m)를 생성한다.
[수학식 164]
Figure pct00065
실시의 형태 2에 따른 암호 처리 시스템(10)은, 실시의 형태 1에 따른 암호 처리 시스템(10)과 같이, 매우 높은 자유도로 액세스 제어의 설계를 행하는 것이 가능한 암호 방식을 실현한다. 또한, 실시의 형태 2에 따른 암호 처리 시스템(10)은, 실시의 형태 1에 따른 암호 처리 시스템(10)과 같이, 안전성이 높다.
또, 실시의 형태 1과 같이, Nt=nt+nt+nt+nt를 nt+ut+wt+zt로 하더라도 좋다. 다시 말해, 1번째의 nt를 그대로 nt로 하고, 2번째의 nt를 ut로 하고, 3번째의 nt를 wt로 하고, 4번째의 nt를 zt로 하더라도 좋다. 즉, Nt를 nt+ut+wt+zt로 설정하더라도 좋다. 여기서, nt, ut, wt, zt는, 각각 다른 값이더라도 좋고, nt는 상술한 것처럼 1 이상의 정수이며, ut, wt, zt는 모두 0 이상의 정수이다.
이 경우, Setup 알고리즘은, 실시의 형태 1과 같이 수학식 148과 같이 다시 쓸 수 있다.
또한, 수학식 155에 나타내는 KeyGen 알고리즘은, 수학식 165와 같이 다시 쓸 수 있다.
[수학식 165]
Figure pct00066
또한, 수학식 163에 나타내는 Enc 알고리즘은, 수학식 166과 같이 다시 쓸 수 있다.
[수학식 166]
Figure pct00067
또, 수학식 164에 나타내는 Dec 알고리즘에는 변경은 없다.
또한, N0은 5가 아니고, 2 이상의 정수이면 된다. N0이 2이면, 기저 B0과 기저 B* 0이 2차원이 된다. 이 경우, KeyGen 알고리즘에 있어서, k* 0:=(δ, 1)B*0으로 하고, Enc 알고리즘에 있어서, c0:=(-s0, ζ)B0으로 하면 된다.
또한, 상기 설명에서는, KeyGen 알고리즘에 있어서, k* 0:=(δ, 0, 1, φ0, 0)B*0으로 했다. 그러나, 소정의 값 κ를 이용하여, k* 0:=(δ, 0, κ, φ0, 0)B*0으로 하더라도 좋다. 이 경우, Dec 알고리즘으로 계산되는 K:=gζκ T가 되기 때문에, Enc 알고리즘에 있어서, cd +1:=gζκ Tm으로 하면 된다.
또한, 상기 설명에서는, vi , nt의 값에 대하여 특별히 한정하지 않았다. 그러나, 안전성의 증명의 관점에서, vi , nt:=1인 한정으로 하더라도 좋다.
또한, 안전성의 증명의 관점에서, i=1, …, L의 각 정수 i에 대한 ρ(i)는, 각각 다른 식별 정보 t에 대한 긍정형의 조 (t, v) 또는 부정형의 조 ¬(t, v)인 것으로 한정하더라도 좋다.
바꿔 말하면, 함수 ρ~를, ρ(i)=(t, v) 또는 ρ(i)=¬(t, v)인 경우에 ρ~(i)=t인 {1, …, L}→{1, …, d}의 사상인 것으로 한다. 이 경우, ρ~가 단사인 것으로 한정하더라도 좋다. 또, ρ(i)는, 상술한 액세스 스트럭쳐 S:=(M, ρ(i))의 ρ(i)이다.
또한, 실시의 형태 1에서는, 액세스 스트럭쳐 S를 복호 키 skS에 갖게 하고, 속성 집합 Γ를 암호화 데이터 c에 갖게 한 Key-Policy 함수형 암호에 대하여 설명했다. 또한, 실시의 형태 2에서는, 액세스 스트럭쳐 S를 암호화 데이터 c에 갖게 하고, 속성 집합 Γ를 복호 키 skΓ에 갖게 한 Ciphertext-Policy 함수형 암호에 대하여 설명했다.
그러나, 2개의 액세스 스트럭쳐 S1과 S2를 준비하고, 한쪽의 액세스 스트럭쳐 S1을 복호 키에 갖게 하고, 다른 쪽의 액세스 스트럭쳐 S2를 암호화 데이터 c에 갖게 함과 아울러, 액세스 스트럭쳐 S2에 대응하는 속성 집합 Γ2를 복호 키에 갖게 하고, 액세스 스트럭쳐 S1에 대응하는 속성 집합 Γ1을 암호화 데이터 c에 갖게 하더라도 좋다. 그리고, 액세스 스트럭쳐 S1이 속성 집합 Γ1을 수리하고, 또한, 액세스 스트럭쳐 S2가 속성 집합 Γ2를 수리한 경우에만, 암호화 데이터 c를 복호 키로 복호 가능하게 하더라도 좋다.
다시 말해, Key-Policy 함수형 암호와 Ciphertext-Policy 함수형 암호를 조합한 암호 방식으로 하더라도 좋다.
실시의 형태 3.
본 실시의 형태에서는, 실시의 형태 2에서 설명한 「Ciphertext-Policy 함수형 암호 방식」을 응용한 서명 방식에 대하여 설명한다.
본 실시의 형태에서는, 우선, 「Ciphertext-Policy 함수형 암호 방식에 근거한 서명 방식」의 기본 구성에 대하여 설명한다. 다음으로, 이 「서명 방식」을 실현하는 「서명 처리 시스템(20)」의 기본 구성에 대하여 설명한다. 그리고, 본 실시의 형태에 따른 「서명 방식」 및 「서명 처리 시스템(20)」에 대하여 상세하게 설명한다.
<Ciphertext-Policy 함수형 암호 방식에 근거한 서명 방식의 기본 구성>
Ciphertext-Policy 함수형 암호 방식에 근거한 서명 방식은, Setup, KeyGen, Sig, Ver의 4개의 알고리즘을 구비한다.
(Setup)
Setup 알고리즘은, 시큐리티 파라미터 λ와, 속성의 포맷 μ:=(d; n1, …, nd)가 입력되고, 공개 파라미터 pk와, 마스터 키 sk를 출력하는 확률적 알고리즘이다.
(KeyGen)
KeyGen 알고리즘은, 속성의 집합인 Γ:={(t, x t)|x t∈Fq nt, 1≤t≤d}와, 공개 파라미터 pk와, 마스터 키 sk를 입력으로 하여, 서명 키 skΓ를 출력하는 확률적 알고리즘이다.
(Sig)
Sig 알고리즘은, 메시지 m과, 서명 키 skΓ와, 액세스 스트럭쳐 S:=(M, ρ)와, 공개 파라미터 pk를 입력으로 하여, 서명 데이터 sig를 출력하는 확률적 알고리즘이다.
(Ver)
Ver 알고리즘은, 메시지 m과, 액세스 스트럭쳐 S:=(M, ρ)와, 서명 데이터 sig와, 공개 파라미터 pk를 입력으로 하여, 서명의 검증에 성공한 것을 나타내는 값 "1" 또는 서명의 검증에 실패한 것을 나타내는 값 "0"을 출력하는 알고리즘이다.
<서명 처리 시스템(20)>
상술한 서명 처리의 알고리즘을 실행하는 서명 처리 시스템(20)에 대하여 설명한다.
도 16은 서명 처리 시스템(20)의 구성도이다.
서명 처리 시스템(20)은, 키 생성 장치(100), 서명 장치(400), 검증 장치(500)를 구비한다.
키 생성 장치(100)는, 시큐리티 파라미터 λ와, 속성의 포맷 μ:=(d; n1, …, nd)를 입력으로 하여 Setup 알고리즘을 실행하여, 공개 파라미터 pk와 마스터 키 sk를 생성한다. 그리고, 키 생성 장치(100)는, 생성한 공개 파라미터 pk를 공개한다. 또한, 키 생성 장치(100)는, 속성의 집합 Γ를 입력으로 하여 KeyGen 알고리즘을 실행하여, 서명 키 skΓ를 생성하여 서명 장치(400)에 비밀리에 배포한다.
서명 장치(400)는, 메시지 m과, 액세스 스트럭쳐 S와, 공개 파라미터 pk와, 서명 키 skΓ를 입력으로 하여 Sig 알고리즘을 실행하여, 서명 벡터 s→*를 생성한다. 서명 장치(400)는, 생성한 서명 벡터 s→*와, 메시지 m과, 액세스 스트럭쳐 S를 검증 장치(500)에 송신한다.
검증 장치(500)는, 서명 벡터 s→*와, 메시지 m과, 액세스 스트럭쳐 S와, 공개 파라미터 pk를 입력으로 하여 Ver 알고리즘을 실행하여, 값 "1" 또는 값 "0"을 출력한다.
<서명 방식 및 서명 처리 시스템(20)의 상세>
도 17~도 21에 근거하여, 서명 방식 및 서명 처리 시스템(20)의 기능과 동작에 대하여 설명한다.
도 17은 서명 처리 시스템(20)의 기능을 나타내는 기능 블록도이다. 서명 처리 시스템(20)은, 상술한 것처럼, 키 생성 장치(100), 서명 장치(400), 검증 장치(500)를 구비한다.
도 18과 도 19는 키 생성 장치(100)의 동작을 나타내는 플로우차트이다. 도 18은 Setup 알고리즘의 처리를 나타내는 플로우차트이며, 도 19는 KeyGen 알고리즘의 처리를 나타내는 플로우차트이다. 도 20은 서명 장치(400)의 동작을 나타내는 플로우차트이며, Sig 알고리즘의 처리를 나타내는 플로우차트이다. 도 21은 검증 장치(500)의 동작을 나타내는 플로우차트이며, Ver 알고리즘의 처리를 나타내는 플로우차트이다.
또, 이하의 설명에서는, xt , 1:=1인 것으로 한다.
키 생성 장치(100)의 기능과 동작에 대하여 설명한다. 키 생성 장치(100)는, 마스터 키 생성부(110), 마스터 키 기억부(120), 정보 입력부(130)(제 1 정보 입력부), 서명 키 생성부(160), 키 배포부(150)를 구비한다. 또한, 서명 키 생성부(160)는, 난수 생성부(161), 키 요소 생성부(162), 비닉 요소 생성부(163)를 구비한다.
우선, 도 18에 근거하여, Setup 알고리즘의 처리에 대하여 설명한다.
(S801 : 정규 직교 기저 생성 단계)
마스터 키 생성부(110)는, 처리 장치에 의해, 수학식 167을 계산하여, paramμ→와, t=0, …, d+2의 각 정수 t에 대하여 기저 Bt 및 기저 B* t를 생성한다.
[수학식 167]
Figure pct00068
수학식 167에 대하여, 실시의 형태 1에 있어서의 (S101)에 나타내는 수학식 127과 다른 부분만 설명한다. 우선, 수학식 167에서는, (3)에서 n0, nd +1에 1을 설정하고, nd +2에 2를 설정한다. 그리고, t=0, …, d+2의 각 정수 t에 대하여, Nt에 4nt를 설정한다. 그리고, (4)~(8)의 처리가, t=0, …, d+2의 각 정수 t에 대하여 반복된다.
즉, (S801)에서, 마스터 키 생성부(110)는, 수학식 168에 나타내는 알고리즘 Gob를 실행하여, paramμ→와, t=0, …, d+2의 각 정수 t에 대하여 기저 Bt 및 기저 B* t를 생성한다.
[수학식 168]
Figure pct00069
(S802 : 부분 기저 B^ t 생성 단계)
마스터 키 생성부(110)는, 처리 장치에 의해, t=1, …, d+2의 각 정수 t에 대하여, 부분 기저 B^ t를 수학식 169에 나타내는 바와 같이 생성한다.
[수학식 169]
Figure pct00070
(S803 : 부분 기저 B^* t 생성 단계)
마스터 키 생성부(110)는, 처리 장치에 의해, t=1, …, d+2의 각 정수 t에 대하여, 부분 기저 B^* t를 수학식 170에 나타내는 바와 같이 생성한다.
[수학식 170]
Figure pct00071
(S804 : 마스터 키 기억 단계)
마스터 키 생성부(110)는, t=0, …, d+2의 각 정수 t에 대한 부분 기저 B^ t와, t=1, …, d+2의 각 정수 t에 대한 부분 기저 B^* 0과, 기저 벡터 b* 0, 3과, (S101)에서 입력된 시큐리티 파라미터 λ(1λ)와, (S101)에서 생성한 paramμ→를 합쳐, 공개 파라미터 pk로 한다.
또한, 마스터 키 생성부(110)는, 기저 벡터 b* 0, 1을 마스터 키 sk로 한다.
그리고, 마스터 키 기억부(120)는, 공개 파라미터 pk와 마스터 키 sk를 기억 장치에 기억한다.
다시 말해, (S801)~(S803)에 있어서, 마스터 키 생성부(110)는 수학식 171에 나타내는 Setup 알고리즘을 실행하여, 공개 파라미터 pk와 마스터 키 sk를 생성한다. 그리고, (S804)에서, 마스터 키 기억부(120)가 생성된 공개 파라미터 pk와 마스터 키 sk를 기억 장치에 기억한다.
또, 공개 파라미터는, 예컨대, 네트워크를 통해 공개되어, 서명 장치(400)나 검증 장치(500)가 취득 가능한 상태로 된다.
[수학식 171]
Figure pct00072
다음으로, 도 19에 근거하여, KeyGen 알고리즘의 처리에 대하여 설명한다.
(S901 : 정보 입력 단계)
정보 입력부(130)는, 입력 장치에 의해, 속성의 집합 Γ:={(t, x t:=(xt , 1, …, xt , nt∈Fq nt))|1≤t≤d}를 입력한다. 또, 속성의 집합 Γ는, 예컨대, 서명 키 skΓ의 사용자의 속성 정보가 설정되어 있다.
(S902 : 난수 생성 단계)
난수 생성부(161)는, 처리 장치에 의해, t=1, …, d, ι=1, …, nt의 각 정수 t와 ι에 대하여, 난수 δ, 난수 φ0, φt, ι, φd+2, ι, φd+3, ι를 수학식 172에 나타내는 바와 같이 생성한다.
[수학식 172]
Figure pct00073
(S903 : 키 요소 생성 단계)
키 요소 생성부(162)는, 처리 장치에 의해, 서명 키 skΓ의 요소 k* 0을 수학식 173에 나타내는 바와 같이 생성한다.
[수학식 173]
Figure pct00074
또한, 키 요소 생성부(162)는, 처리 장치에 의해, Γ에 포함되는 (t, x t)의 각 정수 t에 대하여, 서명 키 skΓ의 요소 k* t를 수학식 174에 나타내는 바와 같이 생성한다.
[수학식 174]
Figure pct00075
또한, 키 요소 생성부(162)는, 처리 장치에 의해, 서명 키 skΓ의 요소 k* d+2와 요소 k* d+3을 수학식 175에 나타내는 바와 같이 생성한다.
[수학식 175]
Figure pct00076
(S904 : 키 배포 단계)
키 배포부(150)는, (S901)에서 입력한 속성의 집합 Γ와, (S903)에서 생성된 k* 0, k* t, k* d+2, k* d+3을 요소로 하는 서명 키 skΓ를, 예컨대 통신 장치에 의해 네트워크를 통해 비밀리에 서명 장치(400)에 배포한다. 물론, 복호 키 skΓ는, 다른 방법에 의해 서명 장치(400)에 배포되더라도 좋다.
다시 말해, (S901)~(S903)에 있어서, 정보 입력부(130)와 서명 키 생성부(160)는 수학식 176에 나타내는 KeyGen 알고리즘을 실행하여, 서명 키 skΓ를 생성한다. 그리고, (S904)에서, 키 배포부(150)가 생성된 서명 키 skΓ를 서명 장치(400)에 배포한다.
[수학식 176]
Figure pct00077
서명 장치(400)의 기능과 동작에 대하여 설명한다. 서명 장치(400)는, 서명 키 취득부(410), 정보 입력부(420)(제 2 정보 입력부), 보완 계수 계산부(430), 행렬 생성부(440), 서명 생성부(450), 데이터 송신부(460)(데이터 출력부)를 구비한다. 또한, 서명 생성부(450)는, 난수 생성부(451), 서명 요소 생성부(452)를 구비한다.
도 20에 근거하여, Sig 알고리즘의 처리에 대하여 설명한다.
(S1001 : 서명 키 취득 단계)
서명 키 취득부(410)는, 예컨대, 통신 장치에 의해 네트워크를 통해, 키 생성 장치(100)로부터 배포된 서명 키 skΓ:=(Γ, k* 0, k* t, k* d+2, k* d+3)을 취득한다. 또한, 서명 키 취득부(410)는, 키 생성 장치(100)가 생성한 공개 파라미터 pk를 취득한다.
(S1002 : 정보 입력 단계)
정보 입력부(420)는, 입력 장치에 의해, 액세스 스트럭쳐 S:=(M, ρ)를 입력한다. 또, 여기서 입력되는 액세스 스트럭쳐 S는, (S1001)에서 입력한 서명 키 skΓ에 포함되는 속성의 집합 Γ를 수리하는 것으로 한다.
또한, 정보 입력부(220)는, 입력 장치에 의해, 서명을 덧붙이는 메시지 m을 입력한다.
(S1003 : 보완 계수 계산 단계)
보완 계수 계산부(430)는, 처리 장치에 의해, 수학식 177이 되는 I와, 상수(보완 계수) {αi}i∈I를 계산한다.
[수학식 177]
Figure pct00078
또, Mi란, 행렬 M의 i행째이다.
(S1004 : 행 추가 단계)
행렬 생성부(440)는, 처리 장치에 의해, 행렬 M에 추가하는 벡터 ML +1과 그 레이블 ρ(L+1)을 수학식 178에 나타내는 바와 같이 생성한다.
[수학식 178]
Figure pct00079
여기에서는, v L+1:=(1)로 한다.
(S1005 : 난수 생성 단계)
난수 생성부(451)는, 처리 장치에 의해, 난수 ξ를 수학식 179에 나타내는 바와 같이 생성한다.
[수학식 179]
Figure pct00080
(S1006 : 서명 요소 생성 단계)
서명 요소 생성부(452)는, 처리 장치에 의해, 서명 벡터 s→*의 요소인 s* 0을 수학식 180에 나타내는 바와 같이 생성한다.
[수학식 180]
Figure pct00081
또한, 서명 요소 생성부(452)는, 처리 장치에 의해, i=1, …, L+1의 각 정수 i에 대하여, 서명 벡터 s→*의 요소인 s* i를 수학식 181에 나타내는 바와 같이 생성한다.
[수학식 181]
Figure pct00082
또한, 서명 요소 생성부(452)는, 처리 장치에 의해, 서명 벡터 s→*의 요소인 s* L+2를 수학식 182에 나타내는 바와 같이 생성한다.
[수학식 182]
Figure pct00083
(S1007 : 데이터 송신 단계)
데이터 송신부(460)는, (S1002)에서 입력한 메시지 m과, 액세스 스트럭쳐 S:=(M, ρ)와, (S1007)에서 생성된 s*→를 포함하는 서명 데이터 sig를, 예컨대 통신 장치에 의해 네트워크를 통해 검증 장치(500)에 송신한다. 물론, 서명 데이터 sig는, 다른 방법에 의해 검증 장치(500)에 송신되더라도 좋다.
다시 말해, (S1001)~(S1006)에 있어서, 서명 키 취득부(410), 정보 입력부(420), 보완 계수 계산부(430), 행렬 생성부(440), 서명 생성부(450)는, 수학식 183에 나타내는 Sig 알고리즘을 실행하여, 서명 데이터 sig를 생성한다. 그리고, (S1007)에서, 데이터 송신부(460)가 생성된 서명 데이터를 검증 장치(500)에 송신한다.
[수학식 183]
Figure pct00084
검증 장치(500)의 기능과 동작에 대하여 설명한다. 검증 장치(500)는, 공개 파라미터 취득부(510), 데이터 수신부(520)(데이터 취득부), 암호화 데이터 생성부(530), 페어링 연산부(540)를 구비한다. 암호화 데이터 생성부(530)는, 난수 생성부(531), 암호 요소 생성부(532), f 벡터 생성부(533), s 벡터 생성부(534)를 구비한다.
도 21에 근거하여, Ver 알고리즘의 처리에 대하여 설명한다.
(S1101 : 공개 파라미터 취득 단계)
공개 파라미터 취득부(510)는, 예컨대, 통신 장치에 의해 네트워크를 통해, 키 생성 장치(100)가 생성한 공개 파라미터 pk를 취득한다.
(S1102 : 데이터 수신 단계)
데이터 수신부(320)는, 예컨대, 통신 장치에 의해 네트워크를 통해, 서명 장치(400)가 송신한 서명 데이터 sig를 수신한다.
(S1103 : f 벡터 생성 단계)
f 벡터 생성부(533)는, 처리 장치에 의해, r개의 요소를 갖는 벡터 f를 수학식 184에 나타내는 바와 같이 랜덤으로 생성한다.
[수학식 184]
Figure pct00085
(S1104 : s 벡터 생성 단계)
s 벡터 생성부(534)는, 처리 장치에 의해, (S1102)에서 수신한 액세스 스트럭쳐 S에 포함되는 (L행×r열)의 행렬 M과, (S1103)에서 생성한 벡터 f에 근거하여, 벡터 s→T:=(s1, …, sL)T를 수학식 185에 나타내는 바와 같이 생성한다.
[수학식 185]
Figure pct00086
또한, s 벡터 생성부(534)는, 처리 장치에 의해, (S1103)에서 생성한 벡터 f에 근거하여, 값 s0과 값 sL +1을 수학식 186에 나타내는 바와 같이 생성한다.
[수학식 186]
Figure pct00087
(S1105 : 난수 생성 단계)
난수 생성부(531)는, 처리 장치에 의해, i=1, …, L+2의 각 정수 i에 대하여, 난수 η0, ηL+2, 1, ηL+2, 2, θi, sL +2를 수학식 187에 나타내는 바와 같이 생성한다.
[수학식 187]
Figure pct00088
(S1106 : 암호 요소 생성 단계)
암호 요소 생성부(532)는, 처리 장치에 의해, 암호화 데이터 c의 요소 c0을 수학식 188에 나타내는 바와 같이 생성한다.
[수학식 188]
Figure pct00089
또한, 암호 요소 생성부(532)는, 처리 장치에 의해, i=1, …, L+1의 각 정수 i에 대하여, 암호화 데이터 c의 요소 ci를 수학식 189에 나타내는 바와 같이 생성한다.
[수학식 189]
Figure pct00090
또한, 암호 요소 생성부(532)는, 처리 장치에 의해, 암호화 데이터 c의 요소 cL+2를 수학식 190에 나타내는 바와 같이 생성한다.
[수학식 190]
Figure pct00091
(S1107 : 페어링 연산 단계)
페어링 연산부(540)는, 처리 장치에 의해, 수학식 191을 계산한다.
[수학식 191]
Figure pct00092
또, 여기에서는, ρ(L+1):=¬(d+1, v L+1:=(1))인 것으로 한다.
페어링 연산부(540)는, 수학식 191을 계산한 결과가 값 "1"이면, 값 "1"을 출력하고, 그 외의 값이면 값 "0"을 출력한다. 여기서, 수학식 191을 계산한 결과가 값 "1"이면, 서명을 검증할 수 있었던 것을 나타내고, 그 외의 값이면 서명을 검증할 수 없었던 것을 나타낸다.
또, 수학식 192에 나타내는 바와 같이, 서명 데이터 sig가 바른 데이터이면, 수학식 191을 계산하는 것에 의해 값 "1"이 얻어진다.
[수학식 192]
Figure pct00093
다시 말해, (S1101)~(S1107)에 있어서, 공개 파라미터 취득부(510), 데이터 수신부(520), 암호화 데이터 생성부(530), 페어링 연산부(540)는, 수학식 193에 나타내는 Ver 알고리즘을 실행하여, 서명 데이터 sig를 검증한다.
[수학식 193]
Figure pct00094
이상과 같이, 서명 처리 시스템(20)은, 스팬 프로그램과 내적 술어와 비밀 분산을 이용하여 구성한 액세스 스트럭쳐 S를 이용하여, 서명 방식을 실현한다.
또, Sig 알고리즘에 있어서, 난수 ξ나 난수 r을 이용하여 서명 벡터 s→*의 요소를 생성하고 있는 것은, 서명 벡터 s→*의 요소의 생성원의 정보인 서명 키 skΓ의 요소 k의 변수 δ나 변수 φ를 랜덤화하기 위해서이다. 서명 키 skΓ의 요소 k의 변수 δ나 변수 φ를 랜덤화하는 것에 의해, 서명 데이터의 요소인 s→*로부터 이러한 변수가 판독되는 것을 방지할 수 있다. 다시 말해, 서명 데이터가 어느 서명 키 skΓ에 근거하여 생성된 것인지 판독되는 것을 방지할 수 있다. 즉, 연계성(linkability)을 높게 할 수 있다.
또한, 상기 설명에서는, (S801)의 Nt를 4nt(=nt+nt+nt+nt)로 설정했다.
그러나, nt+nt+nt+nt를 nt+ut+wt+zt로 하더라도 좋다. 다시 말해, 1번째의 nt를 그대로 nt로 하고, 2번째의 nt를 ut로 하고, 3번째의 nt를 wt로 하고, 4번째의 nt를 zt로 하더라도 좋다. 즉, Nt를 nt+ut+wt+zt로 설정하더라도 좋다. 여기서, nt, ut, wt, zt는, 각각 다른 값이더라도 좋고, nt는 상술한 것처럼 1 이상의 정수이며, ut, wt, zt는 모두 0 이상의 정수이다.
이 경우, 수학식 171에 나타내는 Setup 알고리즘은, 수학식 194와 같이 다시 쓸 수 있다. 다시 말해, 기저 B^ t와 기저 B^* t의 기저 벡터의 첨자가 변경된다.
[수학식 194]
Figure pct00095
또한, 수학식 176에 나타내는 KeyGen 알고리즘은, 수학식 195와 같이 다시 쓸 수 있다.
[수학식 195]
Figure pct00096
또한, 수학식 183에 나타내는 Sig 알고리즘은, 수학식 196과 같이 다시 쓸 수 있다.
[수학식 196]
Figure pct00097
또한, 수학식 193에 나타내는 Ver 알고리즘은, 수학식 197과 같이 다시 쓸 수 있다.
[수학식 197]
Figure pct00098
또한, N0이나 Nd +1은 4가 아니고, 1 이상의 정수이면 된다. N0이 1이면, 기저 B0과 기저 B* 0이 1차원이 된다. 이 경우, KeyGen 알고리즘에 있어서, k* 0, j:=(δ)B*0으로 하고, Ver 알고리즘에 있어서, c0:=(-s0-sL +2)B0으로 하면 된다.
또한, Nd +2는 8이 아니고, 2 이상의 정수이면 된다. Nd +2가 2이면, 기저 Bd +2와 기저 B* d+2가 2차원이 된다. 이 경우, KeyGen 알고리즘에 있어서, k* d+2:=(δj(1, 0))B*d+2, k* d+3:=(δj(0, 1))B*d+2로 하고, Ver 알고리즘에 있어서, c0:=(sL +2L+2m, θL+2)Bd+2로 하면 된다.
또한, 상기 설명에서는, vi , nt의 값에 대하여 특별히 한정하지 않았다. 그러나, 안전성의 증명의 관점에서, vi , nt:=1인 것으로 한정하더라도 좋다.
또한, 안전성의 증명의 관점에서, i=1, …, L의 각 정수 i에 대한 ρ(i)는, 각각 다른 식별 정보 t에 대한 긍정형의 조 (t, v) 또는 부정형의 조 ¬(t, v)인 것으로 하더라도 좋다.
바꿔 말하면, 함수 ρ~를, ρ(i)=(t, v) 또는 ρ(i)=¬(t, v)인 경우에 ρ~(i)=t인 {1, …, L}→{1, …, d}의 사상인 것으로 한다. 이 경우, ρ~가 단사인 것으로 하더라도 좋다. 또, ρ(i)는, 상술한 액세스 스트럭쳐 S:=(M, ρ(i))의 ρ(i)이다.
또한, 상기 설명에서는, Sig 알고리즘에 있어서, 행 추가 단계 (S1004)에서, 행렬 M에 L+1행째로서, 벡터 ML +1의 1행을 추가했다. 그러나, 행렬 M에 추가하는 행은, 1행 이상이면 몇 행이더라도 상관없다. 또한, 추가한 ML +1:=1인 것으로 했다. 그러나, 추가하는 행은, 1에 한정되지 않고 다른 벡터이더라도 좋다.
또한, 상기 설명에서는, 추가한 L+1행째의 레이블 ρ(L+1):=¬(d+1, v L+1:=(1))로 했다. 그러나, 추가하는 행의 레이블의 설정은, 처리가 성립하도록 되어 있으면 되고, 이것에 한정되는 것은 아니다.
다시 말해, 추가하는 행이나, 추가하는 행의 레이블은, Ver 알고리즘의 페어링 연산 단계 (S1107)에서 페어링 연산을 한 경우에, 추가한 행의 정보가 0이 되도록 설정되어 있으면 된다.
또, 추가한 행이 2행 이상인 경우에는, 추가한 행의 수에 따라, Sig 알고리즘이나 Ver 알고리즘에 있어서의 처리의 반복 횟수를 변경할 필요가 있다.
또한, 서명 처리의 안전성을 높이기 위해, 수학식 171에 나타내는 서명 알고리즘을 수학식 198과 같이 변경하고, 수학식 183에 나타내는 Sig 알고리즘을 수학식 199와 같이 변경하더라도 좋다.
[수학식 198]
Figure pct00099
[수학식 199]
Figure pct00100
다시 말해, Setup 알고리즘에 있어서 난수치가 설정된 비닉 벡터 p*t, ι를 생성하고, Sig 알고리즘에서 이 비닉 벡터 p* t, ι를 이용하여 서명 벡터 s→*의 요소 s* i를 생성하고 있는 점이 변경되어 있다. 또한, Setup 알고리즘에 있어서, 기저 B^* t를 공개 파라미터 pk가 아니고, 마스터 키 sk에 포함시켜, 비밀로 하고 있는 점이 변경되어 있다. 이에 의해, 서명 처리의 안전성이 높아지고 있다.
또, 이와 같이 Setup 알고리즘과, Sig 알고리즘을 변경한 경우이더라도, 수학식 199에 나타내는 바와 같이, 서명 데이터 sig가 바른 데이터이면, 알고리즘에 있어서, 페어링 연산을 계산하는 것에 의해 값 "1"이 얻어진다.
[수학식 200]
Figure pct00101
또한, Ver 알고리즘에 있어서, 암호 요소 생성 단계 (S1106)에서, c0을 생성하는 일 없이, cL +2:=(s0L+2m, θL+2, 0, 0, 0, 0, ηL+2, 1, ηL+2, 2)로 하더라도 좋다. 그리고, 페어링 연산 단계 (S1107)에서, Πi=1 L+2e(ci, s* i)를 계산하는 것으로 하더라도 좋다.
다시 말해, 상기 설명에서는, c0과 cL +2를 난수 sL +2로 연결시켜, 페어링 연산을 행한 경우에 c0과 cL +2의 사이에서 sL +2가 지워지도록 하고 있었다. 그러나, 미리 sL+2를 이용하지 않고, 처리를 간략화하더라도 좋다.
이 경우, KeyGen 알고리즘에 있어서 k* 0을 생성할 필요는 없다. 마찬가지로, Sig 알고리즘에 있어서, s* 0을 생성할 필요는 없다.
실시의 형태 4.
실시의 형태 1에서는, 안전성의 증명의 관점에서, i=1, …, L의 각 정수 i에 대한 ρ(i)는, 각각 다른 식별 정보 t에 대한 긍정형의 조 (t, v) 또는 부정형의 조 ¬(t, v)인 것으로 하더라도 좋다고 설명했다. 다시 말해, ρ~가 단사인 것으로 하더라도 좋다고 설명했다. 그러나, ρ~가 단사가 아니더라도 좋다.
이 경우, 안전성의 증명의 관점에서, 실시의 형태 1에서 설명한 Key-Policy 함수형 암호의 Setup 알고리즘, KeyGen 알고리즘, Enc 알고리즘을 이하와 같이 변경하더라도 좋다. 여기에서는, 실시의 형태 1에서 설명한 Key-Policy 함수형 암호의 각 알고리즘에 대한 변경 부분만을 설명한다.
본 실시의 형태에 있어서, φ를 수학식 201에 나타내는 값인 것으로 한다.
[수학식 201]
Figure pct00102
Setup 알고리즘에 대해서는, (1λ, μ:=(d; n1, …, nd))가 입력된 경우에, Setup(1λ, μ':=(d; n1', …, nd'))를 실행한다. 여기서, t=1, …, d의 각 정수 t에 대하여, nt':=nt+φ이다.
KeyGen 알고리즘에 대해서는, k* i의 생성 방법을 수학식 202와 같이 한다.
[수학식 202]
Figure pct00103
Enc 알고리즘에 대해서는, ct의 생성 방법을 수학식 203과 같이 한다.
[수학식 203]
Figure pct00104
여기에서는, 실시의 형태 1에서 설명한 Key-Policy 함수형 암호에 대해서만, ρ~가 단사가 아닌 경우의 처리의 변경 방법에 대하여 설명했다. 그러나, 같은 사고방식에 근거하여, 다른 실시의 형태에서 설명한 암호 처리나 서명 처리를 변경하더라도 좋다.
실시의 형태 5.
이상의 실시의 형태에서는, 쌍대 벡터 공간에 있어서 암호 처리 및 서명 처리를 실현하는 방법에 대하여 설명했다. 본 실시의 형태에서는, 쌍대 가군에 있어서 암호 처리 및 서명 처리를 실현하는 방법에 대하여 설명한다.
다시 말해, 이상의 실시의 형태에서는, 소수 위수 q의 순회군에 있어서 암호 처리를 실현했다. 그러나, 합성수 M을 이용하여 수학식 204와 같이 환 R을 나타낸 경우, 환 R을 계수로 하는 가군에 있어서도, 상기 실시의 형태에서 설명한 암호 처리를 적용할 수 있다.
[수학식 204]
Figure pct00105
예컨대, 실시의 형태 1에서 설명한 Key-Policy 함수형 암호를, 환 R을 계수로 하는 가군에 있어서 실현하면 수학식 205~수학식 208과 같이 된다.
[수학식 205]
Figure pct00106
[수학식 206]
Figure pct00107
[수학식 207]
Figure pct00108
[수학식 208]
Figure pct00109
여기에서는, 실시의 형태 1에서 설명한 Key-Policy 함수형 암호에 대해서만, 환 R을 계수로 하는 가군에 있어서 실현하는 방법을 나타냈다. 그러나, 원칙으로서, 이상의 실시의 형태에서 체 Fq로서 설명한 처리를, 환 R로 치환하는 것에 의해, 이상의 실시의 형태에서 설명한 다른 암호 처리나 서명 처리에 대해서도, 환 R을 계수로 하는 가군에 있어서 실현할 수 있다.
또, 이상의 실시의 형태에 있어서의 Setup 알고리즘은, 암호 처리 시스템(10) 혹은 서명 처리 시스템(20)의 셋업시에 한 번 실행하면 되고, 복호 키를 생성할 때에 실행할 필요는 없다. 또한, 상기 설명에서는, Setup 알고리즘과 KeyGen 알고리즘을 키 생성 장치(100)가 실행하는 것으로 했지만, Setup 알고리즘과 KeyGen 알고리즘을 각각 다른 장치가 실행하는 것으로 하더라도 좋다.
또항, 이상의 실시의 형태에서는, 스팬 프로그램 M^는, 입력열 δ에 의해 행렬 M^로부터 얻어지는 행렬 Mδ의 행을 선형 결합하여 1이 얻어지는 경우에 한하여, 입력열 δ를 수리하는 것으로 했다. 그러나, 스팬 프로그램 M^는, 1이 아니고, 다른 벡터 v가 얻어지는 경우에 한하여, 입력열 δ를 수리하는 것으로 하더라도 좋다.
이 경우, KeyGen 알고리즘에 있어서 s0:=1ㆍf→T가 아니고, s0:=vㆍf→T로 하면 된다. 마찬가지로, Sig 알고리즘에 있어서 αi를 계산할 때, Σi∈IαiMi=v가 되는 αi를 계산하면 된다.
또한, 상기 설명에 있어서의 암호 처리는, 권한의 위양을 행하는 것도 가능하다. 권한의 위양이란, 복호 키를 갖는 사람이 그 복호 키보다 권한이 약한 하위의 복호 키를 생성하는 것이다. 여기서, 권한이 약하다는 것은, 복호할 수 있는 암호화 데이터가 한정된다고 하는 의미이다.
예컨대, 제 1 계층째(최상위)에 있어서는, t=1의 기저 Bt와 기저 B* t를 이용하고 제 2 계층째에 있어서는, t=1, 2의 기저 Bt와 기저 B* t를 이용하고, …, 제 k 계층째에 있어서는, t-1, …, k의 기저 Bt와 기저 B* t를 이용한다. 이용하는 기저 Bt와 기저 B* t가 늘어나는 만큼, 속성 정보가 많이 설정되게 된다. 따라서, 보다 복호 키의 권한이 한정되게 된다.
다음으로, 실시의 형태에 있어서의 암호 처리 시스템(10)(키 생성 장치(100), 암호화 장치(200), 복호 장치(300))과, 서명 처리 시스템(20)(키 생성 장치(100), 서명 장치(400), 검증 장치(500))의 하드웨어 구성에 대하여 설명한다.
도 22는 키 생성 장치(100), 암호화 장치(200), 복호 장치(300), 서명 장치(400), 검증 장치(500)의 하드웨어 구성의 일례를 나타내는 도면이다.
도 22에 나타내는 바와 같이, 키 생성 장치(100), 암호화 장치(200), 복호 장치(300), 서명 장치(400), 검증 장치(500)는, 프로그램을 실행하는 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)」, 「서명 생성부(450)」, 「데이터 송신부(460)」, 「공개 파라미터 취득부(510)」, 「데이터 수신부(520)」, 「암호화 데이터 생성부(530)」, 「페어링 연산부(540)」 등으로서 설명한 기능을 실행하는 소프트웨어나 프로그램이나 그 외의 프로그램이 기억되어 있다. 프로그램은, CPU(911)에 의해 판독되어 실행된다.
파일군(924)에는, 상기의 설명에 있어서 「공개 파라미터 pk」, 「마스터 키 sk」, 「암호화 데이터 c」, 「복호 키 skS」, 「복호 키 skΓ」, 「액세스 스트럭쳐 S」, 「속성의 집합 Γ」, 「메시지 m」, 「서명 데이터 sig」 등의 정보나 데이터나 신호치나 변수치나 파라미터가, 「파일」이나 「데이터베이스」의 각 항목으로서 기억된다. 「파일」이나 「데이터베이스」는, 디스크나 메모리 등의 기록 매체에 기억된다. 디스크나 메모리 등의 기억 매체에 기억된 정보나 데이터나 신호치나 변수치나 파라미터는, 판독/기록 회로를 통해 CPU(911)에 의해 메인 메모리나 캐시 메모리에 판독되어, 추출ㆍ검색ㆍ참조ㆍ비교ㆍ연산ㆍ계산ㆍ처리ㆍ출력ㆍ인쇄ㆍ표시 등의 CPU(911)의 동작에 이용된다. 추출ㆍ검색ㆍ참조ㆍ비교ㆍ연산ㆍ계산ㆍ처리ㆍ출력ㆍ인쇄ㆍ표시의 CPU(911)의 동작 동안, 정보나 데이터나 신호치나 변수치나 파라미터는, 메인 메모리나 캐시 메모리나 버퍼 메모리에 일시적으로 기억된다.
또한, 상기의 설명에 있어서의 플로우차트의 화살표의 부분은 주로 데이터나 신호의 입출력을 나타내고, 데이터나 신호치는, RAM(914)의 메모리, 그 외 광 디스크 등의 기록 매체나 IC 칩에 기록된다. 또한, 데이터나 신호는, 버스(912)나 신호선이나 케이블 그 외의 전송 매체나 전파에 의해 온라인 전송된다.
또한, 상기의 설명에 대해 「~부」로서 설명하는 것은, 「~회로」, 「~장치」, 「~기기」, 「~수단」, 「~기능」이더라도 좋고, 또한, 「~단계」, 「~순서」, 「~처리」이더라도 좋다. 또한, 「~장치」로서 설명하는 것은, 「~회로」, 「~기기」, 「~수단」, 「~기능」이더라도 좋고, 또한, 「~단계」, 「~순서」, 「~처리」이더라도 괜찮다. 또한,「~처리」로서 설명하는 것은 「~단계」이더라도 상관없다. 즉, 「~부」로서 설명하는 것은, ROM(913)에 기억된 펌웨어로 실현되고 있더라도 상관없다. 혹은, 소프트웨어만, 혹은, 소자ㆍ디바이스ㆍ기판ㆍ배선 등의 하드웨어만, 혹은, 소프트웨어와 하드웨어의 조합, 또한, 펌웨어와의 조합으로 실시되더라도 상관없다. 펌웨어와 소프트웨어는, 프로그램으로서, ROM(913) 등의 기록 매체에 기억된다. 프로그램은 CPU(911)에 의해 판독되어, CPU(911)에 의해 실행된다. 즉, 프로그램은, 상기에서 말한 「~부」로서 컴퓨터 등을 기능시키는 것이다. 혹은, 상기에서 말한 「~부」의 순서나 방법을 컴퓨터 등에 실행시키는 것이다.
10 : 암호 처리 시스템 20 : 서명 처리 시스템
100: 키 생성 장치 110 : 마스터 키 생성부
120 : 마스터 키 기억부 130 : 정보 입력부
140 : 복호 키 생성부 141 : f 벡터 생성부
142 : s 벡터 생성부 143 : 난수 생성부
144 : 키 요소 생성부 145 : 비닉 요소 생성부
150 : 키 배포부 160 : 서명 키 생성부
161 : 난수 생성부 162 : 키 요소 생성부
200 : 암호화 장치 210 : 공개 파라미터 취득부
220 : 정보 입력부 230 : 암호화 데이터 생성부
231 : 난수 생성부 232 : 암호 요소 생성부
233 : f 벡터 생성부 234 : s 벡터 생성부
240 : 데이터 송신부 300 : 복호 장치
310 : 복호 키 취득부 320 : 데이터 수신부
330 : 스팬 프로그램 계산부 340 : 보완 계수 계산부
350 : 페어링 연산부 360 : 평문 정보 계산부
400 : 서명 장치 410 : 서명 키 취득부
420 : 정보 입력부 430 : 보완 계수 계산부
440 : 행렬 생성부 450 : 서명 생성부
451 : 난수 생성부 452 : 서명 요소 생성부
460 : 데이터 송신부 500 : 검증 장치
510 : 공개 파라미터 취득부 520 : 데이터 수신부
530 : 암호화 데이터 생성부 540 : 페어링 연산부
531 : 난수 생성부 532 : 암호 요소 생성부
533 : f 벡터 생성부 534 : s 벡터 생성부

Claims (15)

  1. 키 생성 장치와 암호화 장치와 복호 장치를 구비하고, t=0, …, d(d는 1 이상의 정수)의 각 정수 t에 대한 기저 Bt와 기저 B* t를 이용하여 암호 처리를 실행하는 암호 처리 시스템으로서,
    상기 키 생성 장치는,
    i=1, …, L(L은 1 이상의 정수)의 각 정수 i에 대한 변수 ρ(i)로서, 식별 정보 t(t=1, …, d 중 하나의 정수)와, 속성 벡터 v i:=(vi , i')(i'=1, …, nt, nt는 1 이상의 정수)의 긍정형의 조(positive tuple) (t, v i) 또는 부정형의 조(negative tuple) ¬(t, v i)의 하나인 변수 ρ(i)와, L행 r열(r은 1 이상의 정수)의 소정의 행렬 M을 입력하는 제 1 정보 입력부와,
    r개의 요소를 갖는 벡터 f 및 w와, 상기 제 1 정보 입력부가 입력한 행렬 M에 근거하여 생성되는 열벡터 s→T:=(s1, …, sL)T:=Mㆍf→T와, 값 s0:=wㆍf→T와, 소정의 값 θi(i=1, …, L)에 근거하여, 요소 k* 0과, i=1, …, L의 각 정수 i에 대한 요소 k* i를 생성하는 복호 키 생성부로서, 기저 B* 0의 기저 벡터 b* 0, p(p는 소정의 값)의 계수로서 상기 값 -s0을 설정하고, 기저 벡터 b* 0, q(q는 상기 p와는 다른 소정의 값)의 계수로서 소정의 값 κ를 설정하여 요소 k* 0을 생성하고, i=1, …, L의 각 정수 i에 대하여, 변수 ρ(i)가 긍정형의 조 (t, v i)인 경우에는, 그 조의 식별 정보 t가 나타내는 기저 B* t의 기저 벡터 b* t, 1의 계수로서 siivi , 1을 설정함과 아울러, 상기 식별 정보 t와 i'=2, …, nt의 각 정수 i'가 나타내는 기저 벡터 b* t, i'의 계수로서 θivi , i'를 설정하여 요소 k* i를 생성하고, 변수 ρ(i)가 부정형의 조 ¬(t, v i)인 경우에는, 그 조의 식별 정보 t와 i'=1, …, nt의 각 정수 i'가 나타내는 기저 벡터 b* t, i'의 계수로서 sivi , i'를 설정하여 요소 k* i를 생성하는 복호 키 생성부
    를 구비하고,
    상기 암호화 장치는,
    t=1, …, d의 적어도 1개 이상의 정수 t에 대하여, 식별 정보 t와, 속성 벡터 x t:=(xt , i')(i'=1, …, nt, nt는 1 이상의 정수)를 갖는 속성 집합 Γ를 입력하는 제 2 정보 입력부와,
    상기 제 2 정보 입력부가 입력한 속성 집합 Γ에 근거하여, 요소 c0과, 상기 속성 집합 Γ에 포함되는 각 식별 정보 t에 대한 요소 ct를 생성하는 암호화 데이터 생성부로서, 기저 B0의 기저 벡터 b0 , p(p는 상기 p)의 계수로서 난수치 δ를 설정함과 아울러, 기저 벡터 b0 , q(q는 상기 q)의 계수로서 소정의 값 ζ를 설정한 요소 c0을 생성하고, 상기 속성 집합 Γ에 포함되는 각 식별 정보 t에 대하여, 기저 Bt의 기저 벡터 bt , i'(i'=1, …, nt)의 계수로서 상기 난수치 δ를 승산한 xt , i'를 설정한 요소 ct를 생성하는 암호화 데이터 생성부
    를 구비하고,
    상기 복호 장치는,
    상기 암호화 데이터 생성부가 생성한 요소 c0 및 요소 ct와, 상기 속성 집합 Γ를 포함하는 암호화 데이터 c를 취득하는 데이터 취득부와,
    상기 복호 키 생성부가 생성한 요소 k* 0 및 요소 k* i와, 상기 변수 ρ(i)를 포함하는 복호 키 skS를 취득하는 복호 키 취득부와,
    상기 데이터 취득부가 취득한 암호화 데이터 c에 포함되는 속성 집합 Γ와, 상기 복호 키 취득부가 취득한 복호 키 skS에 포함되는 변수 ρ(i)에 근거하여, i=1, …, L의 각 정수 i 중, 변수 ρ(i)가 긍정형의 조 (t, v i)이며, 또한, 그 조의 v i와 그 조의 식별 정보 t가 나타내는 Γ에 포함되는 x t의 내적이 0이 되는 i와, 변수 ρ(i)가 부정형의 조 ¬(t, v i)이며, 또한, 그 조의 v i와 그 조의 식별 정보 t가 나타내는 Γ에 포함되는 x t의 내적이 0이 되지 않는 i의 집합 I를 특정함과 아울러, 특정한 집합 I에 포함되는 i에 대하여, αisi를 합계한 경우에 s0으로 되는 보완 계수 αi를 계산하는 보완 계수 계산부와,
    상기 암호화 데이터 c에 포함되는 요소 c0, 요소 ct와, 상기 복호 키 skS에 포함되는 요소 k* 0, 요소 k* i에 대하여, 상기 보완 계수 계산부가 특정한 집합 I와, 상기 보완 계수 계산부가 계산한 보완 계수 αi에 근거하여, 수학식 1에 나타내는 페어링 연산을 행하여 값 K=gT ζκ를 계산하는 페어링 연산부
    를 구비하는 것을 특징으로 하는 암호 처리 시스템.
    [수학식 1]
    Figure pct00110

  2. 제 1 항에 있어서,
    상기 암호 처리 시스템은, 적어도 기저 벡터 b0 , i(i=1, …, 5)를 갖는 기저 B0과, 적어도 기저 벡터 bt , i(i=1, …, nt, …, nt+ut, …, nt+ut+wt, …, nt+ut+wt+zt)(ut, wt, zt는 1 이상의 정수)를 갖는 기저 Bt(t=1, …, d)와, 적어도 기저 벡터 b* 0, i(i=1, …, 5)를 갖는 기저 B* 0과, 적어도 기저 벡터 b* t, i(i=1, …, nt, …, nt+ut, …, nt+ut+wt, …, nt+ut+wt+zt)를 갖는 기저 B* t(t=1, …, d)를 이용하여 암호 처리를 실행하고,
    상기 키 생성 장치의 상기 복호 키 생성부는, 난수치 η0과 소정의 값 κ에 근거하여 수학식 2에 나타내는 요소 k* 0을 생성함과 아울러, 변수 ρ(i)가 긍정형의 조 (t, v i)인 경우에는, 난수치 θi, ηi, i'(i=1, …, L, i'=1, …, wt)에 근거하여 수학식 3에 나타내는 요소 k* i를 생성하고, 변수 ρ(i)가 부정형의 조 ¬(t, v i)인 경우에는, 난수치 ηi, i'(i=1, …, L, i'=1, …, wt)에 근거하여 수학식 4에 나타내는 요소 k* i를 생성하고,
    상기 암호화 장치의 상기 암호화 데이터 생성부는, 난수치 δ, φ0과 소정의 값 ζ에 근거하여 수학식 5에 나타내는 요소 c0을 생성함과 아울러, 상기 난수치 δ, φt, i(i=1, …, zt)에 근거하여 수학식 6에 나타내는 요소 ct를 생성하는
    것을 특징으로 하는 암호 처리 시스템.
    [수학식 2]
    Figure pct00111

    [수학식 3]
    Figure pct00112

    [수학식 4]
    Figure pct00113

    [수학식 5]
    Figure pct00114

    [수학식 6]
    Figure pct00115

  3. t=0, …, d(d는 1 이상의 정수)의 각 정수 t에 대한 기저 Bt와 기저 B* t를 이용하여 암호 처리를 실행하는 암호 처리 시스템에서, 복호 키 skS를 생성하는 키 생성 장치로서,
    i=1, …, L(L은 1 이상의 정수)의 각 정수 i에 대한 변수 ρ(i)로서, 식별 정보 t(t=1, …, d 중 하나의 정수)와, 속성 벡터 v i:=(vi , i')(i'=1, …, nt, nt는 1 이상의 정수)의 긍정형의 조 (t, v i) 또는 부정형의 조 ¬(t, v i) 중 어느 하나인 변수 ρ(i)와, L행 r열(r은 1 이상의 정수)의 소정의 행렬 M을 입력하는 제 1 정보 입력부와,
    r개의 요소를 갖는 벡터 f 및 w와, 상기 제 1 정보 입력부가 입력한 행렬 M에 근거하여 생성되는 열벡터 s→T:=(s1, …, sL)T:=Mㆍf→T와, 값 s0:=wㆍf→T와, 소정의 값 θi(i=1, …, L)에 근거하여, 요소 k* 0과, i=1, …, L의 각 정수 i에 대한 요소 k* i를 생성하는 복호 키 생성부로서, 기저 B* 0의 기저 벡터 b* 0, p(p는 소정의 값)의 계수로서 상기 값 -s0을 설정하고, 기저 벡터 b* 0, q(q는 상기 p와는 다른 소정의 값)의 계수로서 소정의 값 κ를 설정하여 요소 k* 0을 생성하고, i=1, …, L의 각 정수 i에 대하여, 변수 ρ(i)가 긍정형의 조 (t, v i)인 경우에는, 그 조의 식별 정보 t가 나타내는 기저 B* t의 기저 벡터 b* t, 1의 계수로서 siivi , 1을 설정함과 아울러, 상기 식별 정보 t와 i'=2, …, nt의 각 정수 i'가 나타내는 기저 벡터 b* t, i'의 계수로서 θivi , i'를 설정하여 요소 k* i를 생성하고, 변수 ρ(i)가 부정형의 조 ¬(t, v i)인 경우에는, 그 조의 식별 정보 t와 i'=1, …, nt의 각 정수 i'가 나타내는 기저 벡터 b* t, i'의 계수로서 sivi , i'를 설정하여 요소 k* i를 생성하는 복호 키 생성부와,
    상기 제 1 정보 입력부가 입력한 변수 ρ(i)와, 상기 복호 키 생성부가 생성한 요소 k* 0 및 요소 k* i를 포함하는 데이터를 복호 키 skS로서 배포하는 키 배포부
    를 구비하는 것을 특징으로 하는 키 생성 장치.
  4. t=0, …, d(d는 1 이상의 정수)의 각 정수 t에 대한 기저 Bt와 기저 B* t를 이용하여 암호 처리를 실행하는 암호 처리 시스템에서, 암호화 데이터 c를 생성하는 암호화 장치로서,
    t=1, …, d의 적어도 1개 이상의 정수 t에 대하여, 식별 정보 t와, 속성 벡터 x t:=(xt , i')(i'=1, …, nt, nt는 1 이상의 정수)를 갖는 속성 집합 Γ를 입력하는 제 2 정보 입력부와,
    상기 제 2 정보 입력부가 입력한 속성 집합 Γ에 근거하여, 요소 c0과, 상기 속성 집합 Γ에 포함되는 각 식별 정보 t에 대한 요소 ct를 생성하는 암호화 데이터 생성부로서, 기저 B0의 기저 벡터 b0 , p(p는 소정의 값)의 계수로서 난수치 δ를 설정함과 아울러, 기저 벡터 b0 , q(q는 상기 p와는 다른 소정의 값)의 계수로서 소정의 값 ζ를 설정한 요소 c0을 생성하고, 상기 속성 집합 Γ에 포함되는 각 식별 정보 t에 대하여, 기저 Bt의 기저 벡터 bt , i'(i'=1, …, nt)의 계수로서 상기 난수치 δ를 승산한 xt , i'를 설정한 요소 ct를 생성하는 암호화 데이터 생성부와,
    상기 제 2 정보 입력부가 입력한 속성 집합 Γ와, 상기 암호화 데이터 생성부가 생성한 요소 c0 및 요소 ct를 암호화 데이터 c로서 출력하는 데이터 출력부
    를 구비하는 것을 특징으로 하는 암호화 장치.
  5. t=0, …, d(d는 1 이상의 정수)의 각 정수 t에 대한 기저 Bt와 기저 B* t를 이용하여 암호 처리를 실행하는 암호 처리 시스템에서, 암호화 데이터 c를 복호 키 skS로 복호하는 복호 장치로서,
    t=1, …, d의 적어도 1개 이상의 정수 t에 대하여, 식별 정보 t와, 속성 벡터 x t:=(xt , i')(i'=1, …, nt, nt는 1 이상의 정수)를 갖는 속성 집합 Γ에 근거하여 생성된 요소 c0과, 요소 ct(상기 속성 집합 Γ에 포함되는 각 정수)로서, 기저 B0의 기저 벡터 b0 , p(p는 소정의 값)의 계수로서 난수치 δ가 설정됨과 아울러, 기저 벡터 b0 , q(q는 상기 p와는 다른 소정의 값)의 계수로서 소정의 값 ζ가 설정된 요소 c0과, 상기 속성 집합 Γ에 포함되는 각 식별 정보 t에 대하여, 기저 Bt의 기저 벡터 bt , i'(i'=1, …, nt)의 계수로서 상기 난수치 δ를 승산한 xt , i'가 설정된 요소 ct를 상기 속성 집합 Γ와 아울러, 암호화 데이터 c로서 취득하는 데이터 취득부와,
    r개(r은 1 이상의 정수)의 요소를 갖는 벡터 f 및 w와 L행 r열의 소정의 행렬 M에 근거하여 생성되는 열벡터 s→T:=(s1, …, sL)T:=Mㆍf→T 및 값 s0:=wㆍf→T와, 소정의 값 θi(i=1, …, L)와, i=1, …, L(L은 1 이상의 정수)의 각 정수 i에 대한 변수 ρ(i)로서, 식별 정보 t(t=1, …, d 중 하나의 정수) 및 속성 벡터 v i:=(vi, i')(i'=1, …, nt, nt는 1 이상의 정수)의 긍정형의 조 (t, v i) 또는 부정형의 조 ¬(t, v i) 중 어느 하나인 변수 ρ(i)에 근거하여 생성된 요소 k* 0과, 요소 k* i(i=1, …, L의 각 정수)로서, 기저 B* 0의 기저 벡터 b* 0, p(p는 상기 p)의 계수로서 상기 값 -s0이 설정되고, 기저 벡터 b* 0, q(q는 상기 q)의 계수로서 소정의 값 κ가 설정된 요소 k* 0과, i=1, …, L의 각 정수 i에 대하여, 변수 ρ(i)가 긍정형의 조 (t, v i)인 경우에는, 그 조의 식별 정보 t가 나타내는 기저 B* t의 기저 벡터 b* t, 1의 계수로서 siivi , 1이 설정됨과 아울러, 상기 식별 정보 t와 i'=2, …, nt의 각 정수 i'가 나타내는 기저 벡터 b* t, i'의 계수로서 θivi , i'가 설정된 요소 k* i로서, 변수 ρ(i)가 부정형의 조 ¬(t, v i)인 경우에는, 그 조의 식별 정보 t와 i'=1, …, nt의 각 정수 i'가 나타내는 기저 벡터 b* t, i'의 계수로서 sivi , i'가 설정된 요소 k* i를 상기 변수 ρ(i)와 아울러, 복호 키 skS로서 취득하는 복호 키 취득부와,
    상기 데이터 취득부가 취득한 암호화 데이터 c에 포함되는 속성 집합 Γ와, 상기 복호 키 취득부가 취득한 복호 키 skS에 포함되는 변수 ρ(i)에 근거하여, i=1, …, L의 각 정수 i 중, 변수 ρ(i)가 긍정형의 조 (t, v i)이며, 또한, 그 조의 v i와 그 조의 식별 정보 t가 나타내는 Γ에 포함되는 x t의 내적이 0이 되는 i와, 변수 ρ(i)가 부정형의 조 ¬(t, v i)이며, 또한, 그 조의 v i와 그 조의 식별 정보 t가 나타내는 Γ에 포함되는 x t의 내적이 0이 되지 않는 i의 집합 I를 특정함과 아울러, 특정한 집합 I에 포함되는 i에 대하여, αisi를 합계한 경우에 s0으로 되는 보완 계수 αi를 계산하는 보완 계수 계산부와,
    상기 암호화 데이터 c에 포함되는 요소 c0, 요소 ct와, 상기 복호 키 skS에 포함되는 요소 k* 0, 요소 k* i에 대하여, 상기 보완 계수 계산부가 특정한 집합 I와, 상기 보완 계수 계산부가 계산한 보완 계수 αi에 근거하여, 수학식 7에 나타내는 페어링 연산을 행하여 값 K=gT ζκ를 계산하는 페어링 연산부
    를 구비하는 것을 특징으로 하는 복호 장치.
    [수학식 7]
    Figure pct00116

  6. 키 생성 장치와 암호화 장치와 복호 장치를 구비하고, t=0, …, d(d는 1 이상의 정수)의 각 정수 t에 대한 기저 Bt와 기저 B* t를 이용하여 암호 처리를 실행하는 암호 처리 시스템으로서,
    상기 키 생성 장치는,
    t=1, …, d의 적어도 1개 이상의 정수 t에 대하여, 식별 정보 t와, 속성 벡터 x t:=(xt , i')(i'=1, …, nt, nt는 1 이상의 정수)를 갖는 속성 집합 Γ를 입력하는 제 1 정보 입력부와,
    상기 제 1 정보 입력부가 입력한 속성 집합 Γ에 근거하여, 요소 k* 0과, 상기 속성 집합 Γ에 포함되는 각 식별 정보 t에 대한 요소 k* t를 생성하는 복호 키 생성부로서, 기저 B* 0의 기저 벡터 b* 0, p(p는 소정의 값)의 계수로서 난수치 δ를 설정함과 아울러, 기저 벡터 b* 0, q(q는 상기 p와는 다른 소정의 값)의 계수로서 소정의 값 κ를 설정한 요소 k* 0을 생성하고, 상기 속성 집합 Γ에 포함되는 각 식별 정보 t에 대하여, 기저 B* t의 기저 벡터 b* t, i'(i'=1, …, nt)의 계수로서 상기 난수치 δ를 승산한 xt , i'를 설정한 요소 k* t를 생성하는 복호 키 생성부
    를 구비하고,
    상기 암호화 장치는,
    i=1, …, L(L은 1 이상의 정수)의 각 정수 i에 대한 변수 ρ(i)로서, 식별 정보 t(t=1, …, d 중 하나의 정수)와, 속성 벡터 v i:=(vi , i')(i'=1, …, nt, nt는 1 이상의 정수)의 긍정형의 조 (t, v i) 또는 부정형의 조 ¬(t, v i) 중 어느 하나인 변수 ρ(i)와, L행 r열(r은 1 이상의 정수)의 소정의 행렬 M을 입력하는 제 2 정보 입력부와,
    r개의 요소를 갖는 벡터 f 및 w와, 상기 제 2 정보 입력부가 입력한 행렬 M에 근거하여 생성되는 열벡터 s→T:=(s1, …, sL)T:=Mㆍf→T와, 값 s0:=wㆍf→T와, 소정의 값 θi(i=1, …, L)에 근거하여, 요소 c0과, i=1, …, L의 각 정수 i에 대한 요소 ci를 생성하는 암호화 데이터 생성부로서, 기저 B0의 기저 벡터 b0 , p(p는 상기 p)의 계수로서 상기 값 -s0을 설정하고, 기저 벡터 b0 , q(q는 상기 q)의 계수로서 소정의 값 ζ를 설정하여 요소 c0을 생성하고, i=1, …, L의 각 정수 i에 대하여, 변수 ρ(i)가 긍정형의 조 (t, v i)인 경우에는, 그 조의 식별 정보 t가 나타내는 기저 Bt의 기저 벡터 bt , 1의 계수로서 siivi , 1을 설정함과 아울러, 상기 식별 정보 t와 i'=2, …, nt의 각 정수 i'가 나타내는 기저 벡터 bt , i'의 계수로서 θivi , i'를 설정하여 요소 ci를 생성하고, 변수 ρ(i)가 부정형의 조 ¬(t, v i)인 경우에는, 그 조의 식별 정보 t와 i'=1, …, nt의 각 정수 i'가 나타내는 기저 벡터 bt , i'의 계수로서 sivi , i'를 설정하여 요소 ci를 생성하는 암호화 데이터 생성부
    를 구비하고,
    상기 복호 장치는,
    상기 암호화 데이터 생성부가 생성한 요소 c0 및 요소 ct와, 상기 변수 ρ(i)를 포함하는 암호화 데이터 c를 취득하는 데이터 취득부와,
    상기 복호 키 생성부가 생성한 요소 k* 0 및 요소 k* i와, 상기 속성 집합 Γ를 포함하는 복호 키 skΓ를 취득하는 복호 키 취득부와,
    상기 데이터 취득부가 취득한 암호화 데이터 c에 포함되는 i=1, …, L의 각 정수 i에 대한 변수 ρ(i)와, 상기 복호 키 취득부가 취득한 복호 키 skΓ에 포함되는 속성 집합 Γ에 근거하여, i=1, …, L의 각 정수 i 중, 변수 ρ(i)가 긍정형의 조 (t, v i)이며, 또한, 그 조의 v i와 그 조의 식별 정보 t가 나타내는 Γ에 포함되는 x t의 내적이 0이 되는 i와, 변수 ρ(i)가 부정형의 조 ¬(t, v i)이며, 또한, 그 조의 v i와 그 조의 식별 정보 t가 나타내는 Γ에 포함되는 x t의 내적이 0이 되지 않는 i의 집합 I를 특정함과 아울러, 특정한 집합 I에 포함되는 i에 대하여, αisi를 합계한 경우에 s0으로 되는 보완 계수 αi를 계산하는 보완 계수 계산부와,
    상기 암호화 데이터 c에 포함되는 요소 c0, 요소 ct와, 상기 복호 키 skΓ에 포함되는 요소 k* 0, 요소 k* i에 대하여, 상기 보완 계수 계산부가 특정한 집합 I와, 상기 보완 계수 계산부가 계산한 보완 계수 αi에 근거하여, 수학식 8에 나타내는 페어링 연산을 행하여 값 K=gT ζκ를 계산하는 페어링 연산부
    를 구비하는 것을 특징으로 하는 암호 처리 시스템.
    [수학식 8]
    Figure pct00117

  7. 제 6 항에 있어서,
    상기 암호 처리 시스템은, 적어도 기저 벡터 b0 , i(i=1, …, 5)를 갖는 기저 B0과, 적어도 기저 벡터 bt , i(i=1, …, nt, …, nt+u, …, nt+ut+wt, …, nt+ut+wt+zt)(ut, wt, zt는 1 이상의 정수)를 갖는 기저 Bt(t=1, …, d)와, 적어도 기저 벡터 b* 0, i(i=1, …, 5)를 갖는 기저 B* 0과, 적어도 기저 벡터 b* t, i(i=1, …, nt, …, nt+ut, …, nt+u+wt, …, nt+ut+wt+zt)를 갖는 기저 B* t(t=1, …, d)를 이용하여 암호 처리를 실행하고,
    상기 키 생성 장치의 상기 복호 키 생성부는, 난수치 δ, φ0과 소정의 값 κ에 근거하여 수학식 9에 나타내는 요소 k* 0을 생성함과 아울러, 상기 난수치 δ, φt, i(i=1, …, wt)에 근거하여 수학식 10에 나타내는 요소 k* t를 생성하고,
    상기 암호화 장치의 상기 암호화 데이터 생성부는, 난수치 η0과 소정의 값 ζ에 근거하여 수학식 11에 나타내는 요소 c0을 생성함과 아울러, 변수 ρ(i)가 긍정형의 조 (t, v i)인 경우에는, 난수치 θi, ηi, i'(i=1, …, L, i'=1, …, zt)에 근거하여 수학식 12에 나타내는 요소 ci를 생성하고, 변수 ρ(i)가 부정형의 조 ¬(t, v i)인 경우에는, 난수치 ηi, i'(i=1, …, L, i'=1, …, zt)에 근거하여 수학식 13에 나타내는 요소 ci를 생성하는
    것을 특징으로 하는 암호 처리 시스템.
    [수학식 9]
    Figure pct00118

    [수학식 10]
    Figure pct00119

    [수학식 11]
    Figure pct00120

    [수학식 12]
    Figure pct00121

    [수학식 13]
    Figure pct00122

  8. t=0, …, d(d는 1 이상의 정수)의 각 정수 t에 대한 기저 Bt와 기저 B* t를 이용하여 암호 처리를 실행하는 암호 처리 시스템에서, 복호 키 skΓ를 생성하는 키 생성 장치로서,
    t=1, …, d의 적어도 1개 이상의 정수 t에 대하여, 식별 정보 t와, 속성 벡터 x t:=(xt , i')(i'=1, …, nt, nt는 1 이상의 정수)를 갖는 속성 집합 Γ를 입력하는 제 1 정보 입력부와,
    상기 제 1 정보 입력부가 입력한 속성 집합 Γ에 근거하여, 요소 k* 0과, 상기 속성 집합 Γ에 포함되는 각 식별 정보 t에 대한 요소 k* t를 생성하는 복호 키 생성부로서, 기저 B* 0의 기저 벡터 b* 0, p(p는 소정의 값)의 계수로서 난수치 δ를 설정함과 아울러, 기저 벡터 b* 0, q(q는 상기 p와는 다른 소정의 값)의 계수로서 소정의 값 κ를 설정한 요소 k* 0을 생성하고, 상기 속성 집합 Γ에 포함되는 각 식별 정보 t에 대하여, 기저 B* t의 기저 벡터 b* t, i'(i'=1, …, nt)의 계수로서 상기 난수치 δ를 승산한 xt , i'를 설정한 요소 k* t를 생성하는 복호 키 생성부와,
    상기 제 1 정보 입력부가 입력한 변수 ρ(i)와, 상기 복호 키 생성부가 생성한 요소 k* 0 및 요소 k* i를 포함하는 데이터를 복호 키 skΓ로서 배포하는 키 배포부
    를 구비하는 것을 특징으로 하는 키 생성 장치.
  9. t=0, …, d(d는 1 이상의 정수)의 각 정수 t에 대한 기저 Bt와 기저 B* t를 이용하여 암호 처리를 실행하는 암호 처리 시스템에서, 암호화 데이터 c를 생성하는 암호화 장치로서,
    i=1, …, L(L은 1 이상의 정수)의 각 정수 i에 대한 변수 ρ(i)로서, 식별 정보 t(t=1, …, d 중 하나의 정수)와, 속성 벡터 v i:=(vi , i')(i'=1, …, nt, nt는 1 이상의 정수)의 긍정형의 조 (t, v i) 또는 부정형의 조 ¬(t, v i) 중 어느 하나인 변수 ρ(i)와, L행 r열(r은 1 이상의 정수)의 소정의 행렬 M을 입력하는 제 2 정보 입력부와,
    r개의 요소를 갖는 벡터 f 및 w와, 상기 제 2 정보 입력부가 입력한 행렬 M에 근거하여 생성되는 열벡터 s→T:=(s1, …, sL)T:=Mㆍf→T와, 값 s0:=wㆍf→T와, 소정의 값 θi(i=1, …, L)에 근거하여, 요소 c0과, i=1, …, L의 각 정수 i에 대한 요소 ci를 생성하는 암호화 데이터 생성부로서, 기저 B0의 기저 벡터 b0 , p(p는 상기 p)의 계수로서 상기 값 -s0을 설정하고, 기저 벡터 b0 , q(q는 상기 q)의 계수로서 소정의 값 ζ를 설정하여 요소 c0을 생성하고, i=1, …, L의 각 정수 i에 대하여, 변수 ρ(i)가 긍정형의 조 (t, v i)인 경우에는, 그 조의 식별 정보 t가 나타내는 기저 Bt의 기저 벡터 bt , 1의 계수로서 siivi , 1을 설정함과 아울러, 상기 식별 정보 t와 i'=2, …, nt의 각 정수 i'가 나타내는 기저 벡터 bt , i'의 계수로서 θivi , i'를 설정하여 요소 ci를 생성하고, 변수 ρ(i)가 부정형의 조 ¬(t, v i)인 경우에는, 그 조의 식별 정보 t와 i'=1, …, nt의 각 정수 i'가 나타내는 기저 벡터 bt , i'의 계수로서 sivi , i'를 설정하여 요소 ci를 생성하는 암호화 데이터 생성부와,
    상기 제 2 정보 입력부가 입력한 속성 집합 Γ와, 상기 암호화 데이터 생성부가 생성한 요소 c0 및 요소 ct를 암호화 데이터 c로서 출력하는 데이터 출력부
    를 구비하는 것을 특징으로 하는 암호화 장치.
  10. t=0, …, d(d는 1 이상의 정수)의 각 정수 t에 대한 기저 Bt와 기저 B* t를 이용하여 암호 처리를 실행하는 암호 처리 시스템에서, 암호화 데이터 c를 복호 키 skΓ로 복호하는 복호 장치로서,
    r개(r은 1 이상의 정수)의 요소를 갖는 벡터 f 및 w와 L행 r열의 소정의 행렬 M에 근거하여 생성되는 열벡터 s→T:=(s1, …, sL)T:=Mㆍf→T 및 값 s0:=wㆍf→T와, 소정의 값 θi(i=1, …, L)와, i=1, …, L(L은 1 이상의 정수)의 각 정수 i에 대한 변수 ρ(i)로서, 식별 정보 t(t=1, …, d 중 하나의 정수)와, 속성 벡터 v i:=(vi, i')(i'=1, …, nt, nt는 1 이상의 정수)의 긍정형의 조 (t, v i) 또는 부정형의 조 ¬(t, v i)의 하나인 변수 ρ(i)에 근거하여 생성된 요소 c0과, 요소 ci(i=1, …, L의 각 정수)로서, 기저 B0의 기저 벡터 b0 , p(p는 소정의 값)의 계수로서 상기 값 -s0이 설정되고, 기저 벡터 b0 , q(q는 상기 p와는 다른 소정의 값)의 계수로서 소정의 값 ζ가 설정된 요소 c0과, i=1, …, L의 각 정수 i에 대하여, 변수 ρ(i)가 긍정형의 조 (t, v i)인 경우에는, 그 조의 식별 정보 t가 나타내는 기저 Bt의 기저 벡터 bt , 1의 계수로서 siivi , 1이 설정됨과 아울러, 상기 식별 정보 t와 i'=2, …, nt의 각 정수 i'가 나타내는 기저 벡터 bt , i'의 계수로서 θivi , i'가 설정된 요소 ci로서, 변수 ρ(i)가 부정형의 조 ¬(t, v i)인 경우에는, 그 조의 식별 정보 t와 i'=1, …, nt의 각 정수 i'가 나타내는 기저 벡터 bt , i'의 계수로서 sivi , i'가 설정된 요소 ci를 상기 변수 ρ(i)와 아울러, 암호화 데이터 c로서 취득하는 데이터 취득부와,
    t=1, …, d의 적어도 1개 이상의 정수 t에 대하여, 식별 정보 t와, 속성 벡터 x t:=(xt , i' )(i'=1, …, nt, nt는 1 이상의 정수)를 갖는 속성 집합 Γ에 근거하여 생성된 요소 k* 0과, 요소 k* t(t는 상기 속성 집합 Γ에 포함되는 각 정수)로서, 기저 B* 0의 기저 벡터 b* 0, p(p는 상기 p)의 계수로서 난수치 δ가 설정됨과 아울러, 기저 벡터 b* 0, q(q는 상기 q)의 계수로서 소정의 값 κ가 설정된 요소 k* 0과, 상기 속성 집합 Γ에 포함되는 각 식별 정보 t에 대하여, 기저 B* t의 기저 벡터 b* t, i'(i'=1, …, nt)의 계수로서 상기 난수치 δ를 승산한 xt , i'가 설정된 요소 k* t를 상기 속성 집합 Γ와 아울러, 복호 키 skΓ로서 취득하는 복호 키 취득부와,
    상기 데이터 취득부가 취득한 암호화 데이터 c에 포함되는 변수 ρ(i)와, 상기 복호 키 취득부가 취득한 복호 키 skS에 포함되는 속성 집합 Γ에 근거하여, i=1, …, L의 각 정수 i 중, 변수 ρ(i)가 긍정형의 조 (t, v i)이며, 또한, 그 조의 v i와 그 조의 식별 정보 t가 나타내는 Γ에 포함되는 x t의 내적이 0이 되는 i와, 변수 ρ(i)가 부정형의 조 ¬(t, v i)이며, 또한, 그 조의 v i와 그 조의 식별 정보 t가 나타내는 Γ에 포함되는 x t의 내적이 0이 되지 않는 i의 집합 I를 특정함과 아울러, 특정한 집합 I에 포함되는 i에 대하여, αisi를 합계한 경우에 s0으로 되는 보완 계수 αi를 계산하는 보완 계수 계산부와,
    상기 암호화 데이터 c에 포함되는 요소 c0, 요소 ct와, 상기 복호 키 skS에 포함되는 요소 k* 0, 요소 k* i에 대하여, 상기 보완 계수 계산부가 특정한 집합 I와, 상기 보완 계수 계산부가 계산한 보완 계수 αi에 근거하여, 수학식 14에 나타내는 페어링 연산을 행하여 값 K=gT ζκ를 계산하는 페어링 연산부
    를 구비하는 것을 특징으로 하는 복호 장치.
    [수학식 14]
    Figure pct00123

  11. 키 생성 장치와 서명 장치와 검증 장치를 구비하고, t=1, …, d, d+2(d는 1 이상의 정수)의 각 정수 t에 대한 기저 Bt와 기저 B* t를 이용하여 서명 처리를 실행하는 서명 처리 시스템으로서,
    상기 키 생성 장치는,
    t=1, …, d의 적어도 1개 이상의 정수 t에 대하여, 식별 정보 t와, 속성 벡터 x t:=(xt , i')(i'=1, …, nt, nt는 1 이상의 정수)를 갖는 속성 집합 Γ를 입력하는 제 1 정보 입력부와,
    상기 제 1 정보 입력부가 입력한 속성 집합 Γ에 근거하여, 상기 속성 집합 Γ에 포함되는 각 식별 정보 t에 대한 요소 k* t와, 요소 k* d+2와, 요소 k* d+3을 생성하는 서명 키 생성부로서, 상기 속성 집합 Γ에 포함되는 각 식별 정보 t에 대하여, 기저 B* t의 기저 벡터 b* t, i'(i'=1, …, nt)의 계수로서 상기 난수치 δ를 승산한 xt , i'를 설정한 요소 k* t를 생성하고, 기저 B* d+2의 기저 벡터 b* d+2, p'(p'는 소정의 값)의 계수로서 상기 난수치 δ를 설정한 요소 k* d+2를 생성하고, 기저 B* d+2의 기저 벡터 b* d+2, q'(q'는 상기 p'와는 다른 소정의 값)의 계수로서 상기 난수치 δ를 설정한 요소 k* d+3을 생성하는 서명 키 생성부
    를 구비하고,
    상기 서명 장치는,
    i=1, …, L(L은 1 이상의 정수)의 각 정수 i에 대한 변수 ρ(i)로서, 식별 정보 t(t=1, …, d 중 하나의 정수)와, 속성 벡터 v i:=(vi , i')(i'=1, …, nt, nt는 1 이상의 정수)의 긍정형의 조 (t, v i) 또는 부정형의 조 ¬(t, v i)의 하나인 변수 ρ(i)와, L행 r열(r은 1 이상의 정수)의 소정의 행렬 M과, 메시지 m을 입력하는 제 2 정보 입력부와,
    상기 서명 키 생성부가 생성한 요소 k* t와, 요소 k* d+2와, 요소 k* d+3과, 상기 속성 집합 Γ를 서명 키 skΓ로서 취득하는 서명 키 취득부와,
    i=1, …, L의 각 정수 i에 대한 변수 ρ(i)와, 상기 서명 키 취득부가 취득한 서명 키 skΓ에 포함되는 속성 집합 Γ에 근거하여, i=1, …, L의 각 정수 i 중, 변수 ρ(i)가 긍정형의 조 (t, v i)이며, 또한, 그 조의 v i와, 그 조의 식별 정보 t가 나타내는 Γ에 포함되는 x t의 내적이 0이 되는 i와, 변수 ρ(i)가 부정형의 조 ¬(t, v i)이며, 또한, 그 조의 v i와, 그 조의 식별 정보 t가 나타내는 Γ에 포함되는 x t의 내적이 0이 되지 않는 i의 집합 I를 특정함과 아울러, 특정한 집합 I에 포함되는 i에 대하여, 상기 제 2 정보 입력부가 입력한 행렬 M의 i행째의 요소인 Mi에 근거하여, αiMi를 합계한 경우에 소정의 벡터 w가 되는 보완 계수 αi를 계산하는 보완 계수 계산부와,
    상기 변수 ρ(i)와, 상기 속성 집합 Γ와, 상기 보완 계수 계산부가 특정한 집합 I와, 상기 보완 계수 계산부가 계산한 보완 계수 αi에 근거하여, i=1, …, L의 각 정수 i에 대한 s* i와, s* X를 생성하는 서명 생성부로서, βi를, 행렬 M의 각 행 번호를 나타내는 각 정수 i에 대하여, βiMi를 합계한 경우에 모든 요소가 0이 되는 값으로 하고, 행렬 M의 각 행 번호를 나타내는 각 정수 i에 대하여, i∈I이고, 변수 ρ(i)가 긍정형의 조 (t, v i)인 경우에는, 값 γi:=αi로 하고, 벡터 y i:=(yi, ι)(ι:=1, …, nt)를 y i와 v i의 내적이 0이고, yi , 1=1인 벡터로 하고, i∈I이고, 변수 ρ(i)가 부정형의 조 ¬(t, v i)인 경우에는, 값 γi:=αi/(v iㆍx t)로 하고, 벡터 y i:=(yi , ι)(ι:=1, …, nt)를 y i와 v i의 내적이 1인 벡터로 하고, i∈I가 아니고, 변수 ρ(i)가 긍정형의 조 (t, v i)인 경우에는, 값 γi:=0으로 하고, 벡터 y i:=(yi , ι)(ι:=1, …, nt)를 y i와 v i의 내적이 0이고, yi , 1=1인 벡터로 하고, i∈I가 아니고, 변수 ρ(i)가 부정형의 조 ¬(t, v i)인 경우에는, 값 γi:=0으로 하고, 벡터 y i:=(yi , ι)(ι:=1, …, nt)를 y i와 v i의 내적이 1인 벡터로 하여, 수학식 15에 나타내는 바와 같이 행렬 M의 각 행 번호를 나타내는 각 정수 i에 대한 s* i와, s* X를 생성하는 서명 생성부
    를 구비하고,
    상기 검증 장치는,
    상기 서명 생성부가 생성한 s* i, s* X와, 메시지 m과, 변수 ρ(i)와, 행렬 M을 포함하는 서명 데이터 sig를 취득하는 데이터 취득부와,
    r개의 요소를 갖는 벡터 f와, 상기 벡터 w와, 상기 데이터 취득부가 취득한 행렬 M에 근거하여 생성되는 열벡터 s→T:=(s1, …, sL)T:=Mㆍf→T와, 값 s0:=wㆍf→T와, 소정의 값 θi(i는 행렬 M의 각 행 번호와 X)에 근거하여, 행렬 M의 각 행 번호를 나타내는 각 정수 i에 대한 요소 ci와, 요소 cX를 생성하는 암호화 데이터 생성부로서, 상기 행렬 M의 각 행 번호를 나타내는 각 정수 i에 대하여, 변수 ρ(i)가 긍정형의 조 (t, v i)인 경우에는, 그 조의 식별 정보 t가 나타내는 기저 Bt의 기저 벡터 bt , 1의 계수로서 siivi , 1을 설정함과 아울러, 상기 식별 정보 t와 i'=2, …, nt의 각 정수 i'가 나타내는 기저 벡터 bt , i'의 계수로서 θivi , i'를 설정하여 요소 ci를 생성하고, 변수 ρ(i)가 부정형의 조 ¬(t, v i)인 경우에는, 그 조의 식별 정보 t와 i'=1, …, nt의 각 정수 i'가 나타내는 기저 벡터 bt , i'의 계수로서 sivi , i'를 설정하여 요소 ci를 생성하고, 기저 Bd +2의 기저 벡터 bd +2, p'(p'는 상기 p')에 s0Xm을 설정함과 아울러, 기저 벡터 bd +2, q'(q'는 상기 q')에 θX를 설정하여 요소 cX를 생성하는 암호화 데이터 생성부와,
    행렬 M의 각 행 번호와 X를 나타내는 각 정수 i에 대하여, 수학식 16에 나타내는 페어링 연산을 행하고, 상기 서명 데이터 sig의 정당성을 검증하는 페어링 연산부
    를 구비하는 것을 특징으로 하는 서명 처리 시스템.
    [수학식 15]
    Figure pct00124

    [수학식 16]
    Figure pct00125

  12. 제 11 항에 있어서,
    상기 서명 처리 시스템은, 적어도 기저 벡터 b0 , i(i=1, …, 4)를 갖는 기저 B0과, 적어도 기저 벡터 bt , i(i=1, …, nt, …, nt+ut, …, nt+ut+wt, …, nt+ut+wt+zt)(ut, wt, zt는 1 이상의 정수)를 갖는 기저 Bt(t=1, …, d)와, 적어도 기저 벡터 bd +1, i(i=1, …, 4)를 갖는 기저 Bd +1과, 적어도 기저 벡터 bd +2, i(i=1, …, 8)를 갖는 기저 Bd +2와, 적어도 기저 벡터 b* 0, i(i=1, …, 4)를 갖는 기저 B* 0과, 적어도 기저 벡터 b* t, i(i=1, …, nt, …, nt+ut, …, nt+ut+wt, …, nt+ut+wt+zt)를 갖는 기저 B* t(t=1, …, d)와, 적어도 기저 벡터 b* d+1, i(i=1, …, 4)를 갖는 기저 B* d+1과, 적어도 기저 벡터 b* d+2, i(i=1, …, 8)를 갖는 기저 B* d+2를 이용하여 서명 처리를 실행하고,
    상기 키 생성 장치의 상기 서명 키 생성부는, 상기 속성 집합 Γ에 포함되는 각 식별 정보 t와, ι=1, …, wt의 각 정수 ι에 대하여, 요소 k* 0과, 요소 k* t와, 요소 k* d+2와, 요소 k* d+3을, 난수치 δj, φ0, φt, ι, φd+2, 1, φd+2, 2, φd+3, 1, φd+3, 2에 근거하여, 수학식 17에 나타내는 바와 같이 생성하고,
    상기 서명 장치는, 상기 행렬 M의 L+1행째에 소정의 행벡터 ML +1을 추가하는 행렬 생성부를 더 구비하고,
    상기 서명 장치의 상기 서명 생성부는, 요소 k* 0과, 요소 k* t와, 요소 k* d+2와, 요소 k* d+3과, 난수치 ξ에 근거하여, 수학식 18에 나타내는 바와 같이, i=1, …, L+1의 각 정수 i에 대한 s* i와, s* X로서 s* 0 및 s* L+2를 생성하고,
    상기 검증 장치의 상기 암호화 데이터 생성부는, i=1, …, L+1의 각 정수 i와, i'=1, …, zt의 각 정수 i'에 대하여, 난수치 θi, ηi, i', ηL+2, 1, ηL+2, 2에 근거하여, 수학식 19에 나타내는 바와 같이, 요소 ci와, 요소 cX로서 요소 c0 및 요소 cL+2를 생성하고,
    상기 페어링 연산부는, i=1, …, L+2의 각 정수 i에 대하여, 상기 페어링 연산을 행하는
    것을 특징으로 하는 서명 처리 시스템.
    [수학식 17]
    Figure pct00126

    [수학식 18]
    Figure pct00127

    [수학식 19]
    Figure pct00128

  13. t=1, …, d, d+2(d는 1 이상의 정수)의 각 정수 t에 대한 기저 Bt와 기저 B* t를 이용하여 서명 처리를 실행하는 서명 처리 시스템에서, 서명 키 skΓ를 생성하는 키 생성 장치로서,
    t=1, …, d의 적어도 1개 이상의 정수 t에 대하여, 식별 정보 t와, 속성 벡터 x t:=(xt , i')(i'=1, …, nt, nt는 1 이상의 정수)를 갖는 속성 집합 Γ를 입력하는 제 1 정보 입력부와,
    상기 제 1 정보 입력부가 입력한 속성 집합 Γ에 근거하여, 상기 속성 집합 Γ에 포함되는 각 식별 정보 t에 대한 요소 k* t와, 요소 k* d+2와, 요소 k* d+3을 생성하는 서명 키 생성부로서, 상기 속성 집합 Γ에 포함되는 각 식별 정보 t에 대하여, 기저 B* t의 기저 벡터 b* t, i'(i'=1, …, nt)의 계수로서 상기 난수치 δ를 승산한 xt , i'를 설정한 요소 k* t를 생성하고, 기저 B* d+2의 기저 벡터 b* d+2, p'(p'는 소정의 값)의 계수로서 상기 난수치 δ를 설정한 요소 k* d+2를 생성하고, 기저 B* d+2의 기저 벡터 b* d+2, q'(q'는 상기 p'와는 다른 소정의 값)의 계수로서 상기 난수치 δ를 설정한 요소 k* d+3을 생성하는 서명 키 생성부와,
    상기 제 1 정보 입력부가 입력한 속성 집합 Γ와, 상기 서명 키 생성부가 생성한 요소 k* t와, 요소 k* d+2와, 요소 k* d+3을 포함하는 데이터를 서명 키 skΓ로서 배포하는 키 배포부
    를 구비하는 것을 특징으로 하는 키 생성 장치.
  14. t=1, …, d, d+2(d는 1 이상의 정수)의 각 정수 t에 대한 기저 Bt와 기저 B* t를 이용하여 서명 처리를 실행하는 서명 처리 시스템에서, 서명 데이터 sig를 생성하는 서명 장치로서,
    i=1, …, L(L은 1 이상의 정수)의 각 정수 i에 대한 변수 ρ(i)로서, 식별 정보 t(t=1, …, d 중 하나의 정수)와, 속성 벡터 v i:=(vi , i')(i'=1, …, nt, nt는 1 이상의 정수)의 긍정형의 조 (t, v i) 또는 부정형의 조 ¬(t, v i)의 하나인 변수 ρ(i)와, L행 r열(r은 1 이상의 정수)의 소정의 행렬 M과, 메시지 m을 입력하는 제 2 정보 입력부와,
    t=1, …, d의 적어도 1개 이상의 정수 t에 대하여, 식별 정보 t와, 속성 벡터 x t:=(xt , i')(i'=1, …, nt, nt는 1 이상의 정수)를 갖는 속성 집합 Γ에 근거하여 생성된 요소 k* t(t는 상기 속성 집합 Γ에 포함되는 각 식별 정보)와, 요소 k* d+2와, 요소 k* d+3으로서, 상기 속성 집합 Γ에 포함되는 각 식별 정보 t에 대하여, 기저 B* t의 기저 벡터 b* t, i'(i'=1, …, nt)의 계수로서 상기 난수치 δ를 승산한 xt , i'가 설정된 요소 k* t와, 기저 B* d+2의 기저 벡터 b* d+2, p'(p'는 소정의 값)의 계수로서 상기 난수치 δ가 설정된 요소 k* d+2와, 기저 B* d+2의 기저 벡터 b* d+2, q'(q'는 상기 p'와는 다른 소정의 값)의 계수로서 상기 난수치 δ가 설정된 요소 k* d+3을 상기 속성 집합 Γ와 아울러, 서명 키 skΓ로서 취득하는 서명 키 취득부와,
    i=1, …, L의 각 정수 i에 대한 변수 ρ(i)와, 상기 서명 키 취득부가 취득한 서명 키 skΓ에 포함되는 속성 집합 Γ에 근거하여, i=1, …, L의 각 정수 i 중, 변수 ρ(i)가 긍정형의 조 (t, v i)이며, 또한, 그 조의 v i와 그 조의 식별 정보 t가 나타내는 Γ에 포함되는 x t의 내적이 0이 되는 i와, 변수 ρ(i)가 부정형의 조 ¬(t, v i)이며, 또한, 그 조의 v i와 그 조의 식별 정보 t가 나타내는 Γ에 포함되는 x t의 내적이 0이 되지 않는 i의 집합 I를 특정함과 아울러, 특정한 집합 I에 포함되는 i에 대하여, 상기 제 2 정보 입력부가 입력한 행렬 M의 i행째의 요소인 Mi에 근거하여, αiMi를 합계한 경우에 소정의 벡터 w가 되는 보완 계수 αi를 계산하는 보완 계수 계산부와,
    상기 변수 ρ(i)와, 상기 속성 집합 Γ와, 상기 보완 계수 계산부가 특정한 집합 I와, 상기 보완 계수 계산부가 계산한 보완 계수 αi에 근거하여, 행렬 M의 각 행 번호를 나타내는 각 정수 i에 대한 s* i와, s* X를 생성하는 서명 생성부로서, βi를, 행렬 M의 각 행 번호를 나타내는 각 정수 i에 대하여, βiMi를 합계한 경우에 모든 요소가 0이 되는 값으로 하고, 행렬 M의 각 행 번호를 나타내는 각 정수 i에 대하여, i∈I이고, 변수 ρ(i)가 긍정형의 조 (t, v i)인 경우에는, 값 γi:=αi로 하고, 벡터 y i:=(yi , ι)(ι:=1, …, nt)를 y i와 v i의 내적이 0이고, yi , 1=1인 벡터로 하고, i∈I이고, 변수 ρ(i)가 부정형의 조 ¬(t, v i)인 경우에는, 값 γi:=αi/(v iㆍx t)로 하고, 벡터 y i:=(yi , ι)(ι:=1, …, nt)를 y i와 v i의 내적이 1인 벡터로 하고, i∈I가 아니고, 변수 ρ(i)가 긍정형의 조 (t, v i)인 경우에는, 값 γi:=0으로 하고, 벡터 y i:=(yi , ι)(ι:=1, …, nt)를 y i와 v i의 내적이 0이고, yi, 1=1인 벡터로 하고, i∈I가 아니고, 변수 ρ(i)가 부정형의 조 ¬(t, v i)인 경우에는, 값 γi:=0으로 하고, 벡터 y i:=(yi , ι)(ι:=1, …, nt)를 y i와 v i의 내적이 1인 벡터로 하여, 수학식 20에 나타내는 바와 같이 행렬 M의 각 행 번호를 나타내는 각 정수 i에 대한 s* i와, s* X를 생성하는 서명 생성부와,
    상기 제 2 정보 입력부가 입력한 변수 ρ(i)와 행렬 M과 메시지 m과, 상기 서명 생성부가 생성한 s* 0과 s* i와 s* X를 포함하는 데이터를 서명 데이터 sig로서 출력하는 데이터 출력부
    를 구비하는 것을 특징으로 하는 서명 장치.
    [수학식 20]
    Figure pct00129

  15. t=1, …, d, d+2(d는 1 이상의 정수)의 각 정수 t에 대한 기저 Bt와 기저 B* t를 이용하여 서명 처리를 실행하는 서명 처리 시스템에서, 서명 데이터 sig를 검증하는 검증 장치로서,
    t=1, …, d의 적어도 1개 이상의 정수 t에 대하여, 식별 정보 t와, 속성 벡터 x t:=(xt , i')(i'=1, …, nt, nt는 1 이상의 정수)를 갖는 속성 집합 Γ에 근거하여 생성된 요소 k* t(t는 상기 속성 집합 Γ에 포함되는 각 식별 정보)와, 요소 k* d+2와, 요소 k* d+3으로서, 상기 속성 집합 Γ에 포함되는 각 식별 정보 t에 대하여, 기저 B* t의 기저 벡터 b* t, i'(i'=1, …, nt)의 계수로서 상기 난수치 δ를 승산한 xt , i'가 설정된 요소 k* t와, 기저 B* d+2의 기저 벡터 b* d+2, p'(p'는 소정의 값)의 계수로서 상기 난수치 δ가 설정된 요소 k* d+2와, 기저 B* d+2의 기저 벡터 b* d+2, q'(q'는 상기 p'와는 다른 소정의 값)의 계수로서 상기 난수치 δ가 설정된 요소 k* d+3과, i=1, …, L(L은 1 이상의 정수)의 각 정수 i에 대한 변수 ρ(i)로서, 식별 정보 t(t=1, …, d 중 하나의 정수)와, 속성 벡터 v i:=(vi , i')(i'=1, …, nt, nt는 1 이상의 정수)의 긍정형의 조 (t, v i) 또는 부정형의 조 ¬(t, v i)의 하나인 변수 ρ(i)와, 상기 속성 집합 Γ에 근거하여 계산된 집합 I와 보완 계수 αi로서, i=1, …, L의 각 정수 i 중, 변수 ρ(i)가 긍정형의 조 (t, v i)이며, 또한, 그 조의 v i와 그 조의 식별 정보 t가 나타내는 Γ에 포함되는 x t의 내적이 0이 되는 i와, 변수 ρ(i)가 부정형의 조 ¬(t, v i)이며, 또한, 그 조의 v i와, 그 조의 식별 정보 t가 나타내는 Γ에 포함되는 x t의 내적이 0이 되지 않는 i의 집합 I와, 집합 I에 포함되는 i에 대하여, 상기 제 2 정보 입력부가 입력한 행렬 M의 i행째의 요소인 Mi에 근거하여, αiMi를 합계한 경우에 소정의 벡터 w가 되는 보완 계수 αi와, 상기 변수 ρ(i)와, 상기 속성 집합 Γ와, 상기 집합 I와, 상기 보완 계수 αi에 근거하여 생성된 s* i(i=1, …, L의 각 정수)와, s* X로서, βi를, 행렬 M의 각 행 번호를 나타내는 각 정수 i에 대하여, βiMi를 합계한 경우에 모든 요소가 0이 되는 값으로 하고, 행렬 M의 각 행 번호를 나타내는 각 정수 i에 대하여, i∈I이고, 변수 ρ(i)가 긍정형의 조 (t, v i)인 경우에는, 값 γi:=αi로 하고, 벡터 y i:=(yi , ι)(ι:=1, …, nt)를 y i와 v i의 내적이 0이고, yi , 1=1인 벡터로 하고, i∈I이고, 변수 ρ(i)가 부정형의 조 ¬(t, v i)인 경우에는, 값 γi:=αi/(v iㆍx t)로 하고, 벡터 y i:=(yi, ι)(ι:=1, …, nt)를 y i와 v i의 내적이 1인 벡터로 하고, i∈I가 아니고, 변수 ρ(i)가 긍정형의 조 (t, v i)인 경우에는, 값 γi:=0으로 하고, 벡터 y i:=(yi, ι)(ι:=1, …, nt)를 y i와 v i의 내적이 0이고, yi , 1=1인 벡터로 하고, i∈I가 아니고, 변수 ρ(i)가 부정형의 조 ¬(t, v i)인 경우에는, 값 γi:=0으로 하고, 벡터 y i:=(yi , ι)(ι:=1, …, nt)를 y i와 v i의 내적이 1인 벡터로 하여, 수학식 21에 나타내는 바와 같이 생성된 s* i와, s* X 중, s* i와, s* X와 메시지 m과, 변수 ρ(i)와, 행렬 M을 포함하는 서명 데이터 sig를 취득하는 데이터 취득부와,
    r개(r은 1 이상의 정수)의 요소를 갖는 벡터 f와, 상기 벡터 w와, 상기 제 2 정보 입력부가 입력한 행렬 M에 근거하여 생성되는 열벡터 s→T:=(s1, …, sL)T:=Mㆍf→T와, 값 s0:=wㆍf→T와, 소정의 값 θi(i는 행렬 M의 각 행 번호와 X)에 근거하여, i=1, …, L의 각 정수 i에 대한 요소 ci와, 요소 cX를 생성하는 암호화 데이터 생성부로서, 행렬 M의 각 행 번호를 나타내는 각 정수 i에 대하여, 변수 ρ(i)가 긍정형의 조 (t, v i)인 경우에는, 그 조의 식별 정보 t가 나타내는 기저 Bt의 기저 벡터 bt , 1의 계수로서 siivi , 1을 설정함과 아울러, 상기 식별 정보 t와 i'=2, …, nt의 각 정수 i'가 나타내는 기저 벡터 bt , i'의 계수로서 θivi , i'를 설정하여 요소 ci를 생성하고, 변수 ρ(i)가 부정형의 조 ¬(t, v i)인 경우에는, 그 조의 식별 정보 t와 i'=1, …, nt의 각 정수 i'가 나타내는 기저 벡터 bt , i'의 계수로서 sivi , i'를 설정하여 요소 ci를 생성하고, 기저 Bd +2의 기저 벡터 bd +2, p'(p'는 상기 p')에 s0Xm을 설정함과 아울러, 기저 벡터 bd +2, q'(q'는 상기 q')에 θX를 설정하여 요소 cX를 생성하는 암호화 데이터 생성부와,
    행렬 M의 각 행 번호와 X를 나타내는 각 정수 i에 대하여, 수학식 22에 나타내는 페어링 연산을 행하고, 상기 서명 데이터 sig의 정당성을 검증하는 페어링 연산부
    를 구비하는 것을 특징으로 하는 검증 장치.
    [수학식 21]
    Figure pct00130

    [수학식 22]
    Figure pct00131
KR1020127025089A 2010-04-27 2011-02-15 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 서명 처리 시스템, 서명 장치 및 검증 장치 KR101386294B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2010-101657 2010-04-27
JP2010101657A JP5424974B2 (ja) 2010-04-27 2010-04-27 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置
PCT/JP2011/053174 WO2011135895A1 (ja) 2010-04-27 2011-02-15 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置

Publications (2)

Publication Number Publication Date
KR20120139753A true KR20120139753A (ko) 2012-12-27
KR101386294B1 KR101386294B1 (ko) 2014-04-17

Family

ID=44861216

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127025089A KR101386294B1 (ko) 2010-04-27 2011-02-15 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 서명 처리 시스템, 서명 장치 및 검증 장치

Country Status (7)

Country Link
US (1) US8913742B2 (ko)
EP (1) EP2565862B1 (ko)
JP (1) JP5424974B2 (ko)
KR (1) KR101386294B1 (ko)
CN (1) CN102859571B (ko)
ES (1) ES2693146T3 (ko)
WO (1) WO2011135895A1 (ko)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5492007B2 (ja) * 2010-08-04 2014-05-14 日本放送協会 コンテンツサーバ、コンテンツ受信装置、属性鍵発行サーバ、ユーザ鍵発行サーバ、アクセス制御システム、コンテンツ配信プログラムおよびコンテンツ受信プログラム
JP5693206B2 (ja) * 2010-12-22 2015-04-01 三菱電機株式会社 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
JP5618881B2 (ja) * 2011-03-25 2014-11-05 三菱電機株式会社 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
JP5677273B2 (ja) 2011-11-18 2015-02-25 三菱電機株式会社 暗号処理システム、暗号処理方法、暗号処理プログラム及び鍵生成装置
JP5650630B2 (ja) * 2011-11-22 2015-01-07 日本電信電話株式会社 鍵交換システム、鍵交換装置、鍵交換方法、鍵交換プログラム
JP2013150026A (ja) * 2012-01-17 2013-08-01 Mitsubishi Electric Corp データ処理システム及び秘匿化装置及び秘密鍵生成装置及び秘匿化方法及び秘密鍵生成方法及びプログラム
JP5680007B2 (ja) * 2012-03-06 2015-03-04 三菱電機株式会社 暗号システム、暗号方法及び暗号プログラム
JP5814880B2 (ja) * 2012-07-31 2015-11-17 三菱電機株式会社 暗号システム、暗号方法、暗号プログラム及び復号装置
JP5921410B2 (ja) * 2012-10-19 2016-05-24 三菱電機株式会社 暗号システム
KR101493212B1 (ko) * 2012-10-31 2015-02-23 삼성에스디에스 주식회사 아이디 기반 암호화, 복호화 방법 및 이를 수행하기 위한 장치
CN104798339B (zh) 2013-01-12 2018-06-01 三菱电机株式会社 密钥生成装置、隐匿检索系统和密钥发布方法
US9979536B2 (en) * 2013-10-09 2018-05-22 Mitsubishi Electric Corporation Cryptographic system, encryption device, re-encryption key generation device, re-encryption device, and cryptographic program
EP2860905A1 (en) * 2013-10-09 2015-04-15 Thomson Licensing Method for ciphering a message via a keyed homomorphic encryption function, corresponding electronic device and computer program product
EP3079299A4 (en) * 2013-12-02 2017-07-19 Mitsubishi Electric Corporation Data processing system, encryption apparatus, decryption apparatus, and program
JP6053983B2 (ja) 2014-02-24 2016-12-27 三菱電機株式会社 暗号システム、署名システム、暗号プログラム及び署名プログラム
WO2016002020A1 (ja) * 2014-07-02 2016-01-07 三菱電機株式会社 行列生成装置及び行列生成方法及び行列生成プログラム
DE112014007226B4 (de) 2014-12-05 2023-09-07 Mitsubishi Electric Corporation Entschlüsselungsbedingungs-Hinzufügungsvorrichtung, kryptografisches System und Entschlüsselungsbedingungs-Hinzufügungsprogramm
WO2016088251A1 (ja) 2014-12-05 2016-06-09 三菱電機株式会社 暗号システム、マスター鍵更新装置及びマスター鍵更新プログラム
US10592682B2 (en) 2015-02-20 2020-03-17 Mitsubishi Electric Corporation Data storage apparatus, data processing method, and computer readable medium adding a user attribute of a revoked user to an embedded decryption condition while encrypted data remains in an encrypted state
US10116442B2 (en) 2015-02-20 2018-10-30 Mitsubishi Electric Corporation Data storage apparatus, data updating system, data processing method, and computer readable medium
WO2016162941A1 (ja) 2015-04-07 2016-10-13 三菱電機株式会社 暗号システム及び鍵生成装置
US9209974B1 (en) * 2015-05-03 2015-12-08 Zeutro, Llc Functional encryption key management
JP5957126B1 (ja) * 2015-06-24 2016-07-27 日本電信電話株式会社 秘密計算装置、秘密計算方法、およびプログラム
JP6366883B2 (ja) 2016-04-27 2018-08-01 三菱電機株式会社 属性連携装置、転送システム、属性連携方法及び属性連携プログラム
KR102520502B1 (ko) * 2016-08-02 2023-04-12 엑스-로고스, 엘엘씨 기하 대수학을 이용한 강화된 데이터-중심 암호화 시스템을 위한 방법 및 시스템
US10790960B2 (en) 2017-01-20 2020-09-29 Enveil, Inc. Secure probabilistic analytics using an encrypted analytics matrix
US10880275B2 (en) 2017-01-20 2020-12-29 Enveil, Inc. Secure analytics using homomorphic and injective format-preserving encryption
US11507683B2 (en) 2017-01-20 2022-11-22 Enveil, Inc. Query processing with adaptive risk decisioning
US11196541B2 (en) 2017-01-20 2021-12-07 Enveil, Inc. Secure machine learning analytics using homomorphic encryption
US10693627B2 (en) 2017-01-20 2020-06-23 Enveil, Inc. Systems and methods for efficient fixed-base multi-precision exponentiation
US11777729B2 (en) 2017-01-20 2023-10-03 Enveil, Inc. Secure analytics using term generation and homomorphic encryption
SG10201701044SA (en) 2017-02-09 2018-09-27 Huawei Int Pte Ltd System and method for computing private keys for self certified identity based signature schemes
US20200175893A1 (en) * 2017-07-20 2020-06-04 Mitsubishi Electric Corporation Encryption device, decryption device, encryption method, decryption method, and computer readable medium
WO2019053778A1 (ja) 2017-09-12 2019-03-21 三菱電機株式会社 登録端末、検索端末、検索サーバ、検索システム、登録プログラム及び検索プログラム
JP6456451B1 (ja) 2017-09-25 2019-01-23 エヌ・ティ・ティ・コミュニケーションズ株式会社 通信装置、通信方法、及びプログラム
US10193690B1 (en) * 2017-09-29 2019-01-29 U.S. Bancorp, National Association Systems and methods to secure data using computer system attributes
JP7024666B2 (ja) * 2018-08-28 2022-02-24 日本電信電話株式会社 Idベースハッシュ証明系構成装置、idベース暗号装置及びプログラム
JP7117964B2 (ja) * 2018-10-04 2022-08-15 三菱電機株式会社 復号装置、暗号システム、復号方法及び復号プログラム
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
US11469903B2 (en) * 2019-02-28 2022-10-11 Microsoft Technology Licensing, Llc Autonomous signing management operations for a key distribution service
JP6980158B2 (ja) * 2019-07-04 2021-12-15 三菱電機株式会社 データ処理装置、復号装置、データ処理方法、復号方法、データ処理プログラム及び復号プログラム
WO2021112877A1 (en) * 2019-12-06 2021-06-10 Hewlett-Packard Development Company, L.P. Key distribution
US11601258B2 (en) 2020-10-08 2023-03-07 Enveil, Inc. Selector derived encryption systems and methods
CN112733111B (zh) * 2020-12-31 2023-05-23 暨南大学 一种基于片段分割的阈值谓词加密生物特征认证方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE465571T1 (de) * 2001-08-13 2010-05-15 Univ Leland Stanford Junior Systeme und verfahren zur verschlüsselung auf identitätsbasis und damit zusammenhängende kryptografische techniken
JP2006107274A (ja) * 2004-10-07 2006-04-20 Matsushita Electric Ind Co Ltd ハッシュ関数演算システム、暗号化システムおよび不正解析・改竄防止システム
JP2007235659A (ja) 2006-03-02 2007-09-13 Mebius Corp 鍵管理方法、暗号処理方法、電子署名方法、アクセス管理方法
JP5131187B2 (ja) * 2006-03-14 2013-01-30 日本電気株式会社 情報処理システム、情報処理方法および情報処理プログラム
JP4882598B2 (ja) * 2006-07-28 2012-02-22 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
US8290146B2 (en) * 2007-01-19 2012-10-16 Mitsubishi Electric Corporation Ciphertext generating apparatus, cryptographic communication system, and group parameter generating apparatus
JP5349261B2 (ja) 2009-04-23 2013-11-20 三菱電機株式会社 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
JP5253567B2 (ja) 2009-04-24 2013-07-31 日本電信電話株式会社 暗号システム、暗号通信方法、暗号化装置、鍵生成装置、復号装置、コンテンツサーバ装置、プログラム、記憶媒体
EP2423904B1 (en) 2009-04-24 2015-01-07 Nippon Telegraph And Telephone Corporation Secret sharing system, sharing apparatus, share management apparatus, acquisition apparatus, processing methods therefore, secret sharing method, program, and recording medium

Also Published As

Publication number Publication date
EP2565862A4 (en) 2017-07-19
US20130028415A1 (en) 2013-01-31
EP2565862A1 (en) 2013-03-06
KR101386294B1 (ko) 2014-04-17
JP5424974B2 (ja) 2014-02-26
ES2693146T3 (es) 2018-12-07
WO2011135895A1 (ja) 2011-11-03
US8913742B2 (en) 2014-12-16
CN102859571B (zh) 2015-06-10
EP2565862B1 (en) 2018-08-01
JP2011232475A (ja) 2011-11-17
CN102859571A (zh) 2013-01-02

Similar Documents

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190328

Year of fee payment: 6