KR20120139753A - 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 서명 처리 시스템, 서명 장치 및 검증 장치 - Google Patents
암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 서명 처리 시스템, 서명 장치 및 검증 장치 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key 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/0847—Key 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/12—Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public 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/3073—Public 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
본 발명은, 함수형 암호(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의 계수로서 si+θivi , 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]
본 발명에 따른 암호 처리 시스템은, 스팬 프로그램(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)의 하드웨어 구성의 일례를 나타내는 도면.
도 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]
A가 집합일 때, 수학식 102는, A로부터 y를 균등하게 선택하는 것을 나타낸다. 다시 말해, 수학식 102에 있어서, y는 균등 난수이다.
[수학식 102]
수학식 103은, y가 z에 의해 정의된 집합인 것, 또는 y가 z가 대입된 집합인 것을 나타낸다.
[수학식 103]
a가 상수일 때, 수학식 104는, 기계(알고리즘) A가 입력 x에 대하여 a를 출력하는 것을 나타낸다.
[수학식 104]
수학식 105, 다시 말해 Fq는, 위수 q의 유한체를 나타낸다.
[수학식 105]
벡터 표기는, 유한체 Fq에 있어서의 벡터 표시를 나타낸다. 다시 말해, 수학식 106이다.
[수학식 106]
수학식 107은, 수학식 108에 나타내는 2개의 벡터 x→와 v→의 수학식 109에 나타내는 내적을 나타낸다.
[수학식 107]
[수학식 108]
[수학식 109]
XT는, 행렬 X의 전치행렬을 나타낸다.
bi(i=1, …, n)가 공간 V의 벡터의 요소일 때, 다시 말해, 수학식 110일 때, 수학식 111은, 수학식 112에 의해 생성되는 부분 공간을 나타낸다.
[수학식 110]
[수학식 111]
[수학식 112]
수학식 113에 나타내는 기저 B와 기저 B*에 대하여, 수학식 114이다.
[수학식 113]
[수학식 114]
또한, 이하의 설명에 있어서, "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]
다음으로, 쌍대 페어링 벡터 공간에 대하여 설명한다.
쌍대 페어링 벡터 공간 (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]
[수학식 117]
연산 (1) : 비퇴화 쌍선형 페어링
공간 V에 있어서의 페어링은, 수학식 118에 의해 정의된다.
[수학식 118]
이것은, 비퇴화 쌍선형이다. 다시 말해, 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]
[수학식 120]
여기서, 선형 변환 φi, j를 디스토션 사상이라고 부른다.
이하의 설명에 있어서, 수학식 121을, 1λ(λ∈자연수), N∈자연수, 쌍선형 페어링군의 파라미터 paramG:=(q, G, GT, g, e)의 값을 입력으로 하여, 시큐리티 파라미터가 λ이며, N차원의 공간 V로 하는 쌍대 페어링 벡터 공간의 파라미터 paramV:=(q, V, GT, A, e)의 값을 출력하는 알고리즘으로 한다.
[수학식 121]
또, 여기에서는, 상술한 대칭 쌍선형 페어링군에 의해, 쌍대 페어링 벡터 공간을 구성한 경우에 대하여 설명한다. 또, 비대칭 쌍선형 페어링군에 의해 쌍대 페어링 벡터 공간을 구성하는 것도 가능하다. 이하의 설명을, 비대칭 쌍선형 페어링군에 의해 쌍대 페어링 벡터 공간을 구성한 경우에 응용하는 것은 용이하다.
<제 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]
수학식 123에 나타내는 s0을 공유되는 비밀 정보로 한다.
[수학식 123]
또한, 수학식 124에 나타내는 s→T를 s0의 L개의 분산 정보의 벡터로 한다.
[수학식 124]
그리고, 분산 정보 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]
또, 상수 {α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]
<제 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]
다시 말해, 마스터 키 생성부(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]
(S102 : 공개 파라미터 생성 단계)
마스터 키 생성부(110)는, 처리 장치에 의해, (S101)에서 생성한 기저 Bt의 부분 기저 B^ 0과, t=1, …, d의 각 정수 t에 대하여, 부분 기저 B^ t를 수학식 129에 나타내는 바와 같이 생성한다.
[수학식 129]
마스터 키 생성부(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]
마스터 키 생성부(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]
다음으로, 도 8에 근거하여, KeyGen 알고리즘의 처리에 대하여 설명한다.
(S201 : 정보 입력 단계)
정보 입력부(130)는, 입력 장치에 의해, 상술한 액세스 스트럭쳐 S:=(M, ρ)를 입력한다. 또, 액세스 스트럭쳐 S의 행렬 M의 설정에 대해서는, 실현하고 싶은 시스템의 조건에 따라 설정되는 것이다. 또한, 액세스 스트럭쳐 S의 ρ는, 예컨대, 복호 키 skS의 사용자의 속성 정보가 설정되어 있다.
(S202 : f 벡터 생성 단계)
f 벡터 생성부(141)는, 처리 장치에 의해, r개의 요소를 갖는 벡터 f→를 수학식 132에 나타내는 바와 같이 랜덤으로 생성한다.
[수학식 132]
(S203 : s 벡터 생성 단계)
s 벡터 생성부(142)는, 처리 장치에 의해, (S201)에서 입력한 액세스 스트럭쳐 S에 포함되는 (L행×r열)의 행렬 M과, (S202)에서 생성한 벡터 f→에 근거하여, 벡터 s→T:=(s1, …, sL)T를 수학식 133에 나타내는 바와 같이 생성한다.
[수학식 133]
또한, s 벡터 생성부(142)는, 처리 장치에 의해, (S202)에서 생성한 벡터 f→에 근거하여, 값 s0을 수학식 134에 나타내는 바와 같이 생성한다.
[수학식 134]
(S204 : 난수 생성 단계)
난수 생성부(143)는, 처리 장치에 의해, 난수 η0과, i=1, …, L의 각 정수 i에 대하여, 난수 θi를 수학식 135에 나타내는 바와 같이 생성한다.
[수학식 135]
(S205 : 키 요소 생성 단계)
키 요소 생성부(144)는, 처리 장치에 의해, 복호 키 skS의 요소 k* 0을 수학식 136에 나타내는 바와 같이 생성한다.
[수학식 136]
또, 상술한 것처럼, 수학식 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]
다시 말해, 수학식 137은, 수학식 136과 같이, ρ(i)가 긍정형의 조 (t, v→ i)인 경우에는, 기저 B* t의 기저 벡터 b* t, 1의 계수로서 si+θivi , 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]
암호화 장치(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]
(S304 : c 벡터 생성 단계)
암호 요소 생성부(232)는, 처리 장치에 의해, 암호화 데이터 c의 요소 c0을 수학식 140에 나타내는 바와 같이 생성한다.
[수학식 140]
또한, 암호 요소 생성부(232)는, 처리 장치에 의해, Γ에 포함되는 (t, x→ t)의 각 정수 t에 대하여, 암호화 데이터 c의 요소 ct를 수학식 141에 나타내는 바와 같이 생성한다.
[수학식 141]
또한, 암호 요소 생성부(232)는, 처리 장치에 의해, 암호화 데이터 c의 요소 cd+1을 수학식 142에 나타내는 바와 같이 생성한다.
[수학식 142]
(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]
복호 장치(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]
(S405 : 페어링 연산 단계)
페어링 연산부(350)는, 처리 장치에 의해, 수학식 145를 계산하여, 세션키 K=gT ζ를 생성한다.
[수학식 145]
또, 수학식 146에 나타내는 바와 같이, 수학식 145를 계산하는 것에 의해 키 K=gT ζ가 얻어진다.
[수학식 146]
(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]
이상과 같이, 암호 처리 시스템(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]
또한, 수학식 138에 나타내는 KeyGen 알고리즘은, 수학식 149와 같이 다시 쓸 수 있다.
[수학식 149]
또한, 수학식 143에 나타내는 Enc 알고리즘은, 수학식 150과 같이 다시 쓸 수 있다.
[수학식 150]
또, 수학식 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]
<암호 처리 시스템(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]
(S503 : 키 요소 생성 단계)
키 요소 생성부(144)는, 처리 장치에 의해, 복호 키 skΓ의 요소 k* 0을 수학식 153에 나타내는 바와 같이 생성한다.
[수학식 153]
또한, 키 요소 생성부(144)는, 처리 장치에 의해, Γ에 포함되는 (t, x→ t)의 각 정수 t에 대하여, 복호 키 skΓ의 요소 k* t를 수학식 154에 나타내는 바와 같이 생성한다.
[수학식 154]
(S504 : 키 배포 단계)
키 배포부(150)는, (S501)에서 입력한 속성의 집합 Γ와, (S503)에서 생성된 k* 0, k* t를 요소로 하는 복호 키 skΓ를, 예컨대 통신 장치에 의해 네트워크를 통해 비밀리에 복호 장치(300)에 배포한다. 물론, 복호 키 skΓ는, 다른 방법에 의해 복호 장치(300)에 배포되더라도 좋다.
다시 말해, (S501)~(S503)에 있어서, 정보 입력부(130)와 복호 키 생성부(140)는 수학식 155에 나타내는 KeyGen 알고리즘을 실행하여, 복호 키 skΓ를 생성한다. 그리고, (S504)에서, 키 배포부(150)가 생성된 복호 키 skΓ를 복호 장치(300)에 배포한다.
[수학식 155]
암호화 장치(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]
(S604 : s 벡터 생성 단계)
s 벡터 생성부(234)는, 처리 장치에 의해, (S602)에서 입력한 액세스 스트럭쳐 S에 포함되는 (L행×r열)의 행렬 M과, (S603)에서 생성한 벡터 f→에 근거하여, 벡터 s→T:=(s1, …, sL)T를 수학식 157에 나타내는 바와 같이 생성한다.
[수학식 157]
또한, s 벡터 생성부(234)는, 처리 장치에 의해, (S603)에서 생성한 벡터 f→에 근거하여, 값 s0을 수학식 158에 나타내는 바와 같이 생성한다.
[수학식 158]
(S605 : 난수 생성 단계)
난수 생성부(231)는, 처리 장치에 의해, 난수 η0과, i=1, …, L의 각 정수 i에 대하여 난수 θi와, 난수 ζ를 수학식 159에 나타내는 바와 같이 생성한다.
[수학식 159]
(S606 : 암호 요소 생성 단계)
암호 요소 생성부(232)는, 처리 장치에 의해, 암호화 데이터 c의 요소 c0을 수학식 160에 나타내는 바와 같이 생성한다.
[수학식 160]
또한, 암호 요소 생성부(232)는, 처리 장치에 의해, i=1, …, L의 각 정수 i에 대하여, 암호화 데이터 c의 요소 ci를 수학식 161에 나타내는 바와 같이 생성한다.
[수학식 161]
또한, 암호 요소 생성부(232)는, 처리 장치에 의해, 암호화 데이터 c의 요소 cd+1을 수학식 162에 나타내는 바와 같이 생성한다.
[수학식 162]
(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]
복호 장치(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]
실시의 형태 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]
또한, 수학식 163에 나타내는 Enc 알고리즘은, 수학식 166과 같이 다시 쓸 수 있다.
[수학식 166]
또, 수학식 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]
수학식 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]
(S802 : 부분 기저 B^ t 생성 단계)
마스터 키 생성부(110)는, 처리 장치에 의해, t=1, …, d+2의 각 정수 t에 대하여, 부분 기저 B^ t를 수학식 169에 나타내는 바와 같이 생성한다.
[수학식 169]
(S803 : 부분 기저 B^* t 생성 단계)
마스터 키 생성부(110)는, 처리 장치에 의해, t=1, …, d+2의 각 정수 t에 대하여, 부분 기저 B^* t를 수학식 170에 나타내는 바와 같이 생성한다.
[수학식 170]
(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]
다음으로, 도 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]
(S903 : 키 요소 생성 단계)
키 요소 생성부(162)는, 처리 장치에 의해, 서명 키 skΓ의 요소 k* 0을 수학식 173에 나타내는 바와 같이 생성한다.
[수학식 173]
또한, 키 요소 생성부(162)는, 처리 장치에 의해, Γ에 포함되는 (t, x→ t)의 각 정수 t에 대하여, 서명 키 skΓ의 요소 k* t를 수학식 174에 나타내는 바와 같이 생성한다.
[수학식 174]
또한, 키 요소 생성부(162)는, 처리 장치에 의해, 서명 키 skΓ의 요소 k* d+2와 요소 k* d+3을 수학식 175에 나타내는 바와 같이 생성한다.
[수학식 175]
(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]
서명 장치(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]
또, Mi란, 행렬 M의 i행째이다.
(S1004 : 행 추가 단계)
행렬 생성부(440)는, 처리 장치에 의해, 행렬 M에 추가하는 벡터 ML +1과 그 레이블 ρ(L+1)을 수학식 178에 나타내는 바와 같이 생성한다.
[수학식 178]
여기에서는, v→ L+1:=(1)로 한다.
(S1005 : 난수 생성 단계)
난수 생성부(451)는, 처리 장치에 의해, 난수 ξ를 수학식 179에 나타내는 바와 같이 생성한다.
[수학식 179]
(S1006 : 서명 요소 생성 단계)
서명 요소 생성부(452)는, 처리 장치에 의해, 서명 벡터 s→*의 요소인 s* 0을 수학식 180에 나타내는 바와 같이 생성한다.
[수학식 180]
또한, 서명 요소 생성부(452)는, 처리 장치에 의해, i=1, …, L+1의 각 정수 i에 대하여, 서명 벡터 s→*의 요소인 s* i를 수학식 181에 나타내는 바와 같이 생성한다.
[수학식 181]
또한, 서명 요소 생성부(452)는, 처리 장치에 의해, 서명 벡터 s→*의 요소인 s* L+2를 수학식 182에 나타내는 바와 같이 생성한다.
[수학식 182]
(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]
검증 장치(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]
(S1104 : s 벡터 생성 단계)
s 벡터 생성부(534)는, 처리 장치에 의해, (S1102)에서 수신한 액세스 스트럭쳐 S에 포함되는 (L행×r열)의 행렬 M과, (S1103)에서 생성한 벡터 f→에 근거하여, 벡터 s→T:=(s1, …, sL)T를 수학식 185에 나타내는 바와 같이 생성한다.
[수학식 185]
또한, s 벡터 생성부(534)는, 처리 장치에 의해, (S1103)에서 생성한 벡터 f→에 근거하여, 값 s0과 값 sL +1을 수학식 186에 나타내는 바와 같이 생성한다.
[수학식 186]
(S1105 : 난수 생성 단계)
난수 생성부(531)는, 처리 장치에 의해, i=1, …, L+2의 각 정수 i에 대하여, 난수 η0, ηL+2, 1, ηL+2, 2, θi, sL +2를 수학식 187에 나타내는 바와 같이 생성한다.
[수학식 187]
(S1106 : 암호 요소 생성 단계)
암호 요소 생성부(532)는, 처리 장치에 의해, 암호화 데이터 c의 요소 c0을 수학식 188에 나타내는 바와 같이 생성한다.
[수학식 188]
또한, 암호 요소 생성부(532)는, 처리 장치에 의해, i=1, …, L+1의 각 정수 i에 대하여, 암호화 데이터 c의 요소 ci를 수학식 189에 나타내는 바와 같이 생성한다.
[수학식 189]
또한, 암호 요소 생성부(532)는, 처리 장치에 의해, 암호화 데이터 c의 요소 cL+2를 수학식 190에 나타내는 바와 같이 생성한다.
[수학식 190]
(S1107 : 페어링 연산 단계)
페어링 연산부(540)는, 처리 장치에 의해, 수학식 191을 계산한다.
[수학식 191]
또, 여기에서는, ρ(L+1):=¬(d+1, v→ L+1:=(1))인 것으로 한다.
페어링 연산부(540)는, 수학식 191을 계산한 결과가 값 "1"이면, 값 "1"을 출력하고, 그 외의 값이면 값 "0"을 출력한다. 여기서, 수학식 191을 계산한 결과가 값 "1"이면, 서명을 검증할 수 있었던 것을 나타내고, 그 외의 값이면 서명을 검증할 수 없었던 것을 나타낸다.
또, 수학식 192에 나타내는 바와 같이, 서명 데이터 sig가 바른 데이터이면, 수학식 191을 계산하는 것에 의해 값 "1"이 얻어진다.
[수학식 192]
다시 말해, (S1101)~(S1107)에 있어서, 공개 파라미터 취득부(510), 데이터 수신부(520), 암호화 데이터 생성부(530), 페어링 연산부(540)는, 수학식 193에 나타내는 Ver 알고리즘을 실행하여, 서명 데이터 sig를 검증한다.
[수학식 193]
이상과 같이, 서명 처리 시스템(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]
또한, 수학식 176에 나타내는 KeyGen 알고리즘은, 수학식 195와 같이 다시 쓸 수 있다.
[수학식 195]
또한, 수학식 183에 나타내는 Sig 알고리즘은, 수학식 196과 같이 다시 쓸 수 있다.
[수학식 196]
또한, 수학식 193에 나타내는 Ver 알고리즘은, 수학식 197과 같이 다시 쓸 수 있다.
[수학식 197]
또한, 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 +2-θL+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]
[수학식 199]
다시 말해, Setup 알고리즘에 있어서 난수치가 설정된 비닉 벡터 p*t, ι를 생성하고, Sig 알고리즘에서 이 비닉 벡터 p* t, ι를 이용하여 서명 벡터 s→*의 요소 s* i를 생성하고 있는 점이 변경되어 있다. 또한, Setup 알고리즘에 있어서, 기저 B^* t를 공개 파라미터 pk가 아니고, 마스터 키 sk에 포함시켜, 비밀로 하고 있는 점이 변경되어 있다. 이에 의해, 서명 처리의 안전성이 높아지고 있다.
또, 이와 같이 Setup 알고리즘과, Sig 알고리즘을 변경한 경우이더라도, 수학식 199에 나타내는 바와 같이, 서명 데이터 sig가 바른 데이터이면, 알고리즘에 있어서, 페어링 연산을 계산하는 것에 의해 값 "1"이 얻어진다.
[수학식 200]
또한, Ver 알고리즘에 있어서, 암호 요소 생성 단계 (S1106)에서, c0을 생성하는 일 없이, cL +2:=(s0-θL+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]
Setup 알고리즘에 대해서는, (1λ, μ→:=(d; n1, …, nd))가 입력된 경우에, Setup(1λ, μ'→:=(d; n1', …, nd'))를 실행한다. 여기서, t=1, …, d의 각 정수 t에 대하여, nt':=nt+φ이다.
KeyGen 알고리즘에 대해서는, k* i의 생성 방법을 수학식 202와 같이 한다.
[수학식 202]
Enc 알고리즘에 대해서는, ct의 생성 방법을 수학식 203과 같이 한다.
[수학식 203]
여기에서는, 실시의 형태 1에서 설명한 Key-Policy 함수형 암호에 대해서만, ρ~가 단사가 아닌 경우의 처리의 변경 방법에 대하여 설명했다. 그러나, 같은 사고방식에 근거하여, 다른 실시의 형태에서 설명한 암호 처리나 서명 처리를 변경하더라도 좋다.
실시의 형태 5.
이상의 실시의 형태에서는, 쌍대 벡터 공간에 있어서 암호 처리 및 서명 처리를 실현하는 방법에 대하여 설명했다. 본 실시의 형태에서는, 쌍대 가군에 있어서 암호 처리 및 서명 처리를 실현하는 방법에 대하여 설명한다.
다시 말해, 이상의 실시의 형태에서는, 소수 위수 q의 순회군에 있어서 암호 처리를 실현했다. 그러나, 합성수 M을 이용하여 수학식 204와 같이 환 R을 나타낸 경우, 환 R을 계수로 하는 가군에 있어서도, 상기 실시의 형태에서 설명한 암호 처리를 적용할 수 있다.
[수학식 204]
예컨대, 실시의 형태 1에서 설명한 Key-Policy 함수형 암호를, 환 R을 계수로 하는 가군에 있어서 실현하면 수학식 205~수학식 208과 같이 된다.
[수학식 205]
[수학식 206]
[수학식 207]
[수학식 208]
여기에서는, 실시의 형태 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 벡터 생성부
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)
- 키 생성 장치와 암호화 장치와 복호 장치를 구비하고, 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의 계수로서 si+θivi , 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]
- 제 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]
[수학식 3]
[수학식 4]
[수학식 5]
[수학식 6]
- 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의 계수로서 si+θivi , 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로서 배포하는 키 배포부
를 구비하는 것을 특징으로 하는 키 생성 장치.
- 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로서 출력하는 데이터 출력부
를 구비하는 것을 특징으로 하는 암호화 장치.
- 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의 계수로서 si+θivi , 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]
- 키 생성 장치와 암호화 장치와 복호 장치를 구비하고, 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의 계수로서 si+θivi , 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]
- 제 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]
[수학식 10]
[수학식 11]
[수학식 12]
[수학식 13]
- 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Γ로서 배포하는 키 배포부
를 구비하는 것을 특징으로 하는 키 생성 장치.
- 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의 계수로서 si+θivi , 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로서 출력하는 데이터 출력부
를 구비하는 것을 특징으로 하는 암호화 장치.
- 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의 계수로서 si+θivi , 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]
- 키 생성 장치와 서명 장치와 검증 장치를 구비하고, 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의 계수로서 si+θivi , 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')에 s0-θXm을 설정함과 아울러, 기저 벡터 bd +2, q'(q'는 상기 q')에 θX를 설정하여 요소 cX를 생성하는 암호화 데이터 생성부와,
행렬 M의 각 행 번호와 X를 나타내는 각 정수 i에 대하여, 수학식 16에 나타내는 페어링 연산을 행하고, 상기 서명 데이터 sig의 정당성을 검증하는 페어링 연산부
를 구비하는 것을 특징으로 하는 서명 처리 시스템.
[수학식 15]
[수학식 16]
- 제 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]
[수학식 18]
[수학식 19]
- 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Γ로서 배포하는 키 배포부
를 구비하는 것을 특징으로 하는 키 생성 장치.
- 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]
- 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의 계수로서 si+θivi , 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')에 s0-θXm을 설정함과 아울러, 기저 벡터 bd +2, q'(q'는 상기 q')에 θX를 설정하여 요소 cX를 생성하는 암호화 데이터 생성부와,
행렬 M의 각 행 번호와 X를 나타내는 각 정수 i에 대하여, 수학식 22에 나타내는 페어링 연산을 행하고, 상기 서명 데이터 sig의 정당성을 검증하는 페어링 연산부
를 구비하는 것을 특징으로 하는 검증 장치.
[수학식 21]
[수학식 22]
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 (46)
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 | 삼성에스디에스 주식회사 | 아이디 기반 암호화, 복호화 방법 및 이를 수행하기 위한 장치 |
EP2945313B1 (en) | 2013-01-12 | 2017-09-06 | Mitsubishi Electric Corporation | Key generation device, key generation program, concealed data search system, and key distribution method |
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 |
EP3057262B1 (en) * | 2013-10-09 | 2021-07-28 | Mitsubishi Electric Corporation | Cipher system, encryption device, re-encryption key generation device, re-encryption device, and cipher program |
EP3079299A4 (en) * | 2013-12-02 | 2017-07-19 | Mitsubishi Electric Corporation | Data processing system, encryption apparatus, decryption apparatus, and program |
CN106031080B (zh) | 2014-02-24 | 2019-07-16 | 三菱电机株式会社 | 加密系统 |
JP6104469B2 (ja) * | 2014-07-02 | 2017-03-29 | 三菱電機株式会社 | 行列生成装置及び行列生成方法及び行列生成プログラム |
DE112014007235B4 (de) | 2014-12-05 | 2024-10-10 | Mitsubishi Electric Corporation | Kryptografisches System, Hauptschlüsselaktualisierungseinrichtung und Hauptschlüsselaktualisierungsprogramm |
CN106922210B (zh) * | 2014-12-05 | 2018-07-10 | 三菱电机株式会社 | 解密条件追加装置、加密系统和计算机可读介质 |
CN107251479B (zh) * | 2015-02-20 | 2020-08-11 | 三菱电机株式会社 | 数据保管装置和数据处理方法 |
CN107251480B (zh) * | 2015-02-20 | 2018-07-10 | 三菱电机株式会社 | 数据保管装置、数据更新系统和数据处理方法 |
US10516534B2 (en) | 2015-04-07 | 2019-12-24 | Mitsubishi Electric Corporation | Cryptographic system and key generation apparatus |
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 | 三菱電機株式会社 | 属性連携装置、転送システム、属性連携方法及び属性連携プログラム |
WO2018026944A1 (en) * | 2016-08-02 | 2018-02-08 | X-Logos, LLC | Methods and systems for enhanced data-centric encryption systems using geometric algebra |
US11196541B2 (en) | 2017-01-20 | 2021-12-07 | Enveil, Inc. | Secure machine learning analytics using homomorphic encryption |
US10873568B2 (en) | 2017-01-20 | 2020-12-22 | Enveil, Inc. | Secure analytics using homomorphic and injective format-preserving encryption and an encrypted analytics matrix |
US11507683B2 (en) | 2017-01-20 | 2022-11-22 | Enveil, Inc. | Query processing with adaptive risk decisioning |
US10771237B2 (en) | 2017-01-20 | 2020-09-08 | Enveil, Inc. | Secure analytics using an encrypted analytics matrix |
US11290252B2 (en) | 2017-01-20 | 2022-03-29 | Enveil, Inc. | Compression and homomorphic encryption in secure query and analytics |
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 |
WO2019016916A1 (ja) * | 2017-07-20 | 2019-01-24 | 三菱電機株式会社 | 暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号方法及び復号プログラム |
EP3675086B1 (en) | 2017-09-12 | 2021-10-27 | Mitsubishi Electric Corporation | Registration terminal, search terminal, search server, search system, registration program, and search program |
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 |
WO2021001990A1 (ja) * | 2019-07-04 | 2021-01-07 | 三菱電機株式会社 | データ処理装置、復号装置、データ処理方法、復号方法、データ処理プログラム及び復号プログラム |
WO2021112877A1 (en) * | 2019-12-06 | 2021-06-10 | Hewlett-Packard Development Company, L.P. | Key distribution |
US12099997B1 (en) | 2020-01-31 | 2024-09-24 | Steven Mark Hoffberg | Tokenized fungible liabilities |
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7113594B2 (en) * | 2001-08-13 | 2006-09-26 | The Board Of Trustees Of The Leland Stanford University | Systems and methods for identity-based encryption and related cryptographic techniques |
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 | ソニー株式会社 | 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム |
EP2120227B1 (en) * | 2007-01-19 | 2015-04-15 | Mitsubishi Electric Corporation | Cryptogram generating device, cryptogram communication system, and group parameter generating device |
JP5349261B2 (ja) | 2009-04-23 | 2013-11-20 | 三菱電機株式会社 | 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム |
US8964982B2 (en) | 2009-04-24 | 2015-02-24 | Nippon Telegraph And Telephone Corporation | Cryptographic system, cryptographic communication method, encryption apparatus, key generation apparatus, decryption apparatus, content server, program, and storage medium |
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 |
-
2010
- 2010-04-27 JP JP2010101657A patent/JP5424974B2/ja active Active
-
2011
- 2011-02-15 KR KR1020127025089A patent/KR101386294B1/ko active IP Right Grant
- 2011-02-15 CN CN201180020997.1A patent/CN102859571B/zh active Active
- 2011-02-15 US US13/640,885 patent/US8913742B2/en active Active
- 2011-02-15 ES ES11774680.0T patent/ES2693146T3/es active Active
- 2011-02-15 EP EP11774680.0A patent/EP2565862B1/en active Active
- 2011-02-15 WO PCT/JP2011/053174 patent/WO2011135895A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US20130028415A1 (en) | 2013-01-31 |
KR101386294B1 (ko) | 2014-04-17 |
US8913742B2 (en) | 2014-12-16 |
EP2565862A4 (en) | 2017-07-19 |
EP2565862A1 (en) | 2013-03-06 |
CN102859571A (zh) | 2013-01-02 |
JP2011232475A (ja) | 2011-11-17 |
ES2693146T3 (es) | 2018-12-07 |
CN102859571B (zh) | 2015-06-10 |
JP5424974B2 (ja) | 2014-02-26 |
WO2011135895A1 (ja) | 2011-11-03 |
EP2565862B1 (en) | 2018-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101386294B1 (ko) | 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 서명 처리 시스템, 서명 장치 및 검증 장치 | |
KR101393899B1 (ko) | 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 | |
KR101443553B1 (ko) | 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 | |
KR101336349B1 (ko) | 암호 처리 시스템, 키 생성 장치, 키 위양 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 | |
KR101359200B1 (ko) | 암호 처리 시스템 | |
KR101588992B1 (ko) | 암호 시스템, 암호 방법 및 암호 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 | |
KR101310439B1 (ko) | 암호 처리 시스템, 키 생성 장치, 키 위양 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 | |
KR101431412B1 (ko) | 서명 처리 시스템, 키 생성 장치, 서명 장치, 검증 장치, 서명 처리 방법 및 서명 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 | |
JP5921410B2 (ja) | 暗号システム | |
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 |