KR101359200B1 - 암호 처리 시스템 - Google Patents

암호 처리 시스템 Download PDF

Info

Publication number
KR101359200B1
KR101359200B1 KR1020117027936A KR20117027936A KR101359200B1 KR 101359200 B1 KR101359200 B1 KR 101359200B1 KR 1020117027936 A KR1020117027936 A KR 1020117027936A KR 20117027936 A KR20117027936 A KR 20117027936A KR 101359200 B1 KR101359200 B1 KR 101359200B1
Authority
KR
South Korea
Prior art keywords
vector
key
information
basis
equation
Prior art date
Application number
KR1020117027936A
Other languages
English (en)
Other versions
KR20120068762A (ko
Inventor
가츠유키 다카시마
다츠아키 오카모토
Original Assignee
미쓰비시덴키 가부시키가이샤
니폰덴신뎅와 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 미쓰비시덴키 가부시키가이샤, 니폰덴신뎅와 가부시키가이샤 filed Critical 미쓰비시덴키 가부시키가이샤
Publication of KR20120068762A publication Critical patent/KR20120068762A/ko
Application granted granted Critical
Publication of KR101359200B1 publication Critical patent/KR101359200B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • H04L9/0836Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Landscapes

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

Abstract

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

Description

암호 처리 시스템{ENCRYPTION PROCESSING SYSTEM}
본 발명은, 계층적 술어 키 비닉 방식(hierarchical predicate key encapsulation mechanism) 및 계층적 술어 암호에 관한 것이다.
술어 암호(Predicate Encryption, PE)에 관한 제안이 되어 있다(비특허 문헌 19). 또한, 술어 암호에 있어서의 권한 위양에 관한 제안이 되어 있다(비특허 문헌 26). 또한, 디스토션(distortion) 고유 벡터 공간에 관한 제안이 되어 있다(비특허 문헌 21).
(선행 기술 문헌)
(비특허 문헌)
(비특허 문헌 1) M. Abe, R. Gennaro, K. Kurosawa, and V. Shoup, "Tag-KEM/DEM : A New Framework for Hybrid Encryption and New Analysis of Kurosawa-Desmedt KEM," Eurocrypt 2005, LNCS 3494, pp. 128-146, 2005.
(비특허 문헌 2) D. Boneh and X. Boyen, "Efficient selective-ID secure identity based encryption without random oracles," EUROCRYPT 2004, LNCS, Springer-Verlag, 2004.
(비특허 문헌 3) D. Boneh and X. Boyen, "Secure identity based encryption without random oracles," CRYPTO 2004, LNCS, Springer-Verlag, 2004.
(비특허 문헌 4) D. Boneh, X. Boyen and E. Goh, "Hierarchical identity based encryption with constant size ciphertext," EUROCRYPT 2005, LNCS, Springer-Verlag, pp. 440-456, 2005.
(비특허 문헌 5) D. Boneh, X. Boyen and H. Shacham, "Short group signatures," CRYPTO 2004, LNCS 3152, Springer Verlag, pp. 41-55, 2004.
(비특허 문헌 6) D. Boneh and M. Franklin, "Identity-based encryption from the Weil pairing," CRYPTO 2001, LNCS 2139, Springer Verlag, pp. 213-229, 2001.
(비특허 문헌 7) D. Boneh and J. Katz, "Improved efficiency for cca-secure cryptosystems built using identity based encryption," RSA-CT 2005, LNCS, Springer Verlag, 2005.
(비특허 문헌 8) J. Bethencourt, A. Sahai and B. Waters, "Ciphertext-policy attribute-based encryption," Proceedings of the 2007 IEEE Symposium on Security and Privacy, 2007.
(비특허 문헌 9) D. Boneh and B. Waters, "Conjunctive, subset, and range queries on encrypted data," TCC 2007, LNCS 4392, Springer Verlag, pp. 535-554, 2007.
(비특허 문헌 10) X. Boyen and B. Waters, "Anonymous hierarchical identity-based encryption(without random oracles)," CRYPTO 2006, pp. 290-307, 2006.
(비특허 문헌 11) R. Canetti, S. Halevi and J. Katz, "Chosen-ciphertext security from identity-based encryption," EUROCRYPT 2004, LNCS, Springer-Verlag, 2004.
(비특허 문헌 12) C. Cocks, "An identity based encryption scheme based on quadratic residues," Proceedings of the 8th IMA International Conference on Cryptography and Coding, pp. 360-363, London, UK, 2001. Springer-Verlag, 2001.
(비특허 문헌 13) C. Gentry, "Practical identity-based encryption without random oracles," EUROCRYPT 2006, LNCS, Springer-Verlag, 2006.
(비특허 문헌 14) C. Gentry and A. Silverberg, "Hierarchical ID-based cryptography," ASIACRYPT 2002, LNCS, Springer-Verlag, 2002.
(비특허 문헌 15) V. Goyal, O. Pandey, A. Sahai and B. Waters, "Attribute-based encryption for fine-grained access control of encrypted data," ACM-CCCS 2006, LNCS, Springer Verlag, 2006.
(비특허 문헌 16) J. Groth and A. Sahai, "Efficient non-interactive proof syatems for bilinear groups," EUROCRYPT 2008, LNCS 4965, Springer Verlag, pp. 415-432, 2008.
(비특허 문헌 17) J. Horwitz and B. Lynn, "Towards hierarchical identity-based encryption," EUROCRYPT 2002, LNCS, Springer Verlag, 2002.
(비특허 문헌 18) J. Katz and B. Waters, "Compact signatues for network coding," available at IACR ePrint 2008/316.
(비특허 문헌 19) J. Katz, A. Sahai and B. Waters, "Predicate encryption supporting disjunctions, polynomial equations, and inner products," EUROCRYPT 2008, LNCS 4965, Springer Verlag, pp. 146-162, 2008.
(비특허 문헌 20) D. Hofheinz and E. Kiltz, "Secure hybrid encryption from weakened key encapsulation," CRYPTO 2007, LNCS 4622, Springer Verlag, pp. 553-571, 2007.
(비특허 문헌 21) T. Okamoto and K. Takashima, "Homomorphic encryption and signatures from vector decomposition," Pairing 2008. LNCS 5209, pp. 57-74. Springer Verlag, 2008.
(비특허 문헌 22) R. Ostrovsky, A. Sahai and B. Waters, "Attribute-based encryption with non-monotonic access structures," ACM CCS 2007, 2007.
(비특허 문헌 23) M. Pirretti, P. Traynor, P. McDaniel and B. Waters, "Secure attribute-based systems," ACM CCS 2006, 2006.
(비특허 문헌 24) H. Shacham, "A Cramer-Shoup encryption scheme from the linear assumption and from progressively weaker linear variants," available at IACR ePrint Archive, 2007/074, 2007.
(비특허 문헌 25) A. Sahai and B. Waters, "Fuzzy identity-based encryption," EUROCRYPT 2005, LNCS, Springer Verlag, 2005.
(비특허 문헌 26) E. Shi and B. Waters, "Delegating capability in predicate encryption systems," ICALP 2008, LNCS, Springer Verlag, 2008.
(비특허 문헌 27) K. Takashima, "Efficiently computable distortion maps for supersingular curves," ANTS, LNCS 5011, Springer Verlag, pp. 88-101, 2008.
비특허 문헌 19에서는, 술어 암호에 있어서의 권한 위양에 대한 기재는 없다. 또한, 비특허 문헌 26에서는, 술어 암호에 있어서의 권한 위양에 대한 기재가 있지만, 등호 관계 테스트의 클래스(a class of equality tests)에 대한 술어 암호에 한정된 것이다.
본 발명은, 예컨대, 적용 범위가 넓은 권한 위양이 가능한 술어 암호 처리를 제공하는 것을 목적으로 한다.
본 발명에 따른 암호 처리 시스템은, 예컨대, 페어링 연산에 의해 관련지어진 쌍대 벡터 공간(dual vector space)인 공간 V와 공간 V*를 이용하여 암호 처리를 행하는 암호 처리 시스템으로서, 상기 공간 V에서의 벡터로서, 소정의 정보를 내장한 벡터를 암호 벡터로서 처리 장치에 의해 생성하는 암호화 장치와, 상기 공간 V*에 있어서의 소정의 벡터를 키 벡터로 하여, 상기 암호화 장치가 생성한 암호 벡터와 상기 키 벡터에 대하여, 처리 장치에 의해 상기 페어링 연산을 행하여 상기 암호 벡터를 복호하여 상기 소정의 정보에 관한 정보를 추출하는 복호 장치를 구비하는 것을 특징으로 한다.
본 발명에 따른 암호 시스템에 의하면, 적용 범위가 넓은 권한 위양 가능한 술어 암호 처리를 실현 가능하다.
도 1은 「계층적」이라고 하는 개념을 설명하기 위한 도면.
도 2는 속성 정보와 술어 정보의 계층 구조를 나타내는 도면.
도 3은 계층적 ID 베이스 암호가 예를 나타내는 도면.
도 4는 기저(basis)와 기저 벡터(basis vector)를 설명하기 위한 도면.
도 5는 벡터 공간에서의 계층 구조의 실현 방법을 설명하기 위한 도면.
도 6은 암호 처리 시스템(10)의 구성도.
도 7은 암호 처리 시스템(10)의 키 생성 장치(100)와 제 1 층째의 암호화 장치(200)와 복호 장치(300)의 동작을 나타내는 흐름도.
도 8은 암호 처리 시스템(10)의 제 L 층째의 키 위양 장치(400)와, 제 L+1 층째의 암호화 장치(200)와 복호 장치(300)의 동작을 나타내는 흐름도.
도 9는 기저 변환 방법을 설명하기 위한 도면.
도 10은 실시 형태 2에 따른 암호 처리 시스템(10)의 기능을 나타내는 기능 블록도.
도 11은 키 생성 장치(100)의 동작을 나타내는 흐름도.
도 12는 암호화 장치(200)의 동작을 나타내는 흐름도.
도 13은 복호 장치(300)의 동작을 나타내는 흐름도.
도 14는 키 위양 장치(400)의 동작을 나타내는 흐름도.
도 15는 실시 형태 2에 따른 쌍대 디스토션 벡터 공간의 기저의 구조를 나타내는 개념도.
도 16은 S502에 있어서의 페어링 연산을 설명하기 위한 도면.
도 17은 하위의 키로는, 세션 키 K를 계산할 수 없는 것을 설명하기 위한 도면.
도 18은 상위의 키로, 세션 키 K를 계산할 수 있는 것을 설명하기 위한 도면.
도 19는 계층적 술어 암호를 실현하는 암호 처리 시스템(10)의 기능을 나타내는 기능 블록도.
도 20은 도 19에 나타내는 암호화 장치(200)의 동작을 나타내는 흐름도.
도 21은 도 19에 나타내는 복호 장치(300)의 동작을 나타내는 흐름도.
도 22는 실시 형태 4에 따른 암호 처리 시스템(10)의 기능을 나타내는 기능 블록도.
도 23은 암호화 장치(200)의 동작을 나타내는 흐름도.
도 24는 복호 장치(300)의 동작을 나타내는 흐름도.
도 25는 실시 형태 4에 따른 쌍대 디스토션 벡터 공간의 기저의 구조를 나타내는 개념도.
도 26은 n 카피 벡터 공간을 설명하기 위한 도면(1).
도 27은 n 카피 벡터 공간을 설명하기 위한 도면(2).
도 28은 실시 형태 6에 따른 암호 처리 시스템(10)의 기능을 나타내는 기능 블록도.
도 29는 키 생성 장치(100)의 동작을 나타내는 흐름도.
도 30은 암호화 장치(200)의 동작을 나타내는 흐름도.
도 31은 복호 장치(300)의 동작을 나타내는 흐름도.
도 32는 키 위양 장치(400)의 동작을 나타내는 흐름도.
도 33은 실시 형태 7에 따른 암호 처리 시스템(10)의 기능을 나타내는 기능 블록도.
도 34는 암호화 장치(200)의 동작을 나타내는 흐름도.
도 35는 복호 장치(300)의 동작을 나타내는 흐름도.
도 36은 키 생성 장치(100), 암호화 장치(200), 복호 장치(300), 키 위양 장치(400)의 하드웨어 구성의 일례를 나타내는 도면.
이하, 도면에 근거하여, 발명의 실시 형태를 설명한다.
이하의 설명에 있어서, 처리 장치는 후술하는 CPU(911) 등이다. 기억 장치는 후술하는 ROM(913), RAM(914), 자기 디스크(920) 등이다. 통신 장치는 후술하는 통신 보드(915) 등이다. 입력 장치는 후술하는 키보드(902), 통신 보드(915) 등이다. 출력 장치는 후술하는 RAM(914), 자기 디스크(920), 통신 보드(915), LCD(901) 등이다. 즉, 처리 장치, 기억 장치, 통신 장치, 입력 장치, 출력 장치는 하드웨어이다.
이하의 설명에 있어서의 기법에 대하여 설명한다.
A가 랜덤인 변수 또는 분포일 때, 수학식 43은, A의 분포에 따라 A에서 y를 랜덤으로 선택하는 것을 나타낸다.
[수학식 43]
Figure 112011092805583-pct00001
A가 집합일 때, 수학식 44는, A에서 y를 똑같이 선택하는 것을 나타낸다.
[수학식 44]
Figure 112011092805583-pct00002
수학식 45는, y가 z에 의해 정의된 집합인 것, 또는 y가 z를 대입한 집합인 것을 나타낸다.
[수학식 45]
Figure 112011092805583-pct00003
a가 정수일 때, 수학식 46은, 기계(알고리즘) A가 입력 x에 대하여 a를 출력하는 것을 나타낸다.
[수학식 46]
Figure 112011092805583-pct00004
벡터 표기는, 유한체 Fq에서의 벡터 표시를 나타낸다. 다시 말해, 수학식 47이다.
[수학식 47]
Figure 112011092805583-pct00005
수학식 48은, 수학식 49에 나타내는 2개의 벡터 x와 v의 수학식 50에 나타내는 내적을 나타낸다.
[수학식 48]
Figure 112011092805583-pct00006
[수학식 49]
Figure 112011092805583-pct00007
[수학식 50]
Figure 112011092805583-pct00008
0는, 어떤 n에 대해서도 유한체수(a finite field) Fq n에서 0 벡터인 것을 나타낸다.
XT는, 행렬 X의 전치 행렬을 나타낸다.
수학식 51은, xi ,j에 행렬 X의 (i, j)번째의 값이 설정되는 것을 나타낸다.
[수학식 51]
Figure 112011092805583-pct00009
또한, 이하의 설명에 있어서, 암호 처리란, 암호화 처리, 복호 처리, 키 생성 처리를 포함하는 것이며, 키 비닉 처리도 포함하는 것이다.
(실시 형태 1)
본 실시 형태에서는, 뒤의 실시 형태에서 설명하는 「계층적 술어 키 비닉 방식(Hierarchial Predicate Key Encapsulation Mechanism, HPKEM)」이나 「계층적 술어 암호(Hierarchial Predicate Encryption, HPE)」를 실현하는 기초가 되는 개념과, 계층적 술어 키 비닉 방식과 계층적 술어 암호의 기본 구성에 대하여 설명한다.
첫 번째로, 계층적 술어 키 비닉 방식 및 계층적 술어 암호의 일종인 「계층적 내적 술어 암호(계층적 내적 술어 키 비닉 방식)」라고 하는 개념을 설명한다. 뒤의 실시 형태에서 설명하는 계층적 술어 키 비닉 방식 및 계층적 술어 암호는, 계층적 내적 술어 암호 및 계층적 내적 술어 키 비닉 방식이다. 계층적 내적 술어 암호라는 개념을 설명함에 있어서, 우선 「계층적」이라고 하는 개념을 설명한다. 다음으로, 「내적 술어 암호」를 설명한다. 그리고, 계층적이라는 개념을 내적 술어 암호에 더한 「계층적 내적 술어 암호(계층적 내적 술어 키 비닉 방식)」를 설명한다. 또한, 계층적 내적 술어 암호의 이해를 깊게 하기 위해, 계층적 내적 술어 암호의 응용예를 설명한다.
두 번째로, 벡터 공간에서의 계층적 내적 술어 암호를 설명한다. 본 실시 형태 및 이하의 실시 형태에서는, 계층적 술어 키 비닉 방식과 계층적 술어 암호를 벡터 공간에서 실현한다.
세 번째로, 본 실시 형태 및 뒤의 실시 형태에 따른 「계층적 술어 키 비닉 방식」과 「계층적 술어 암호」의 기본 구성을 설명한다. 더불어, 계층적 술어 키 비닉 방식과 계층적 술어 암호를 실행하는 「암호 처리 시스템(10)」의 개요를 설명한다.
네 번째로, 계층적 술어 키 비닉 방식이나 계층적 술어 암호를 실현하기 위한 개념을 설명한다. 우선, 쌍선형 페어링 그룹을 설명한다. 계속해서, 쌍선형 페어링 그룹을 이용하여, 다른 개념을 이하의 (1)부터 (6)까지의 6개로 나누어 설명한다.
(1) 1차원 페어링 「G1×G2→GT」의 공간 V, 공간 V*에 대한 고차원화.
(2) 표준 쌍대 기저(dual bases) A, A*.
(3) 디스토션 사상을 이용한 효율적인 선형 사상.
(4) 기저 변환에 의한 키 페어 (B, B*)의 생성 방법.
(5) 암호 처리로의 응용을 위한 (V, B), (V, B*)에서의 계산 곤란 문제.
(6) 키 페어 (B, B*)를 이용한 내적 술어 암호.
다섯 번째로, 계층적 술어 키 비닉 방식과 계층적 술어 암호를 실현하기 위한 공간인 「쌍대 디스토션 벡터 공간(Dual Distortion Vector Spaces, DDVS)」이라고 하는 풍부한 수학적 구조를 갖는 공간을 설명한다.
그리고, 여섯 번째로, 이상의 설명을 근거로 하여, 뒤의 실시 형태에서 상세하게 설명하는 계층적 술어 키 비닉 방식과 계층적 술어 암호의 실현 방법을 간단하게 설명한다.
<제 1. 계층적 내적 술어 암호>
<제 1-1. 계층적이라는 개념>
본 실시 형태 및 이하의 실시 형태에서 설명하는 계층적 술어 키 비닉 방식과 계층적 술어 암호에 있어서의 「계층적」이라고 하는 개념에 대하여 설명한다.
도 1은 「계층적」이라고 하는 개념을 설명하기 위한 도면이다.
계층적 술어 키 비닉 방식과 계층적 술어 암호에 있어서의 「계층적」이란, 권한을 위양할 수 있는 구조(권한 위양 시스템(Delegation System))를 갖는 것이다. 권한 위양이란, 상위의 키를 갖는 이용자가, 그 키(상위의 키)보다 기능이 제한된 하위의 키를 생성하는 것이다.
도 1에서는, Root(키 생성 장치)는, 마스터 비밀 키를 이용하여, 제 1 층째(Level-1)의 이용자에게 비밀 키를 생성한다. 다시 말해, Root는, 제 1 층째의 이용자 1, 2, 3 각각에 키 1, 2, 3을 생성한다. 그리고, 예컨대, 이용자 1이면, 키 1을 이용하여, 이용자 1의 하위(제 2 층째)의 이용자인 이용자 11, 12, 13 각각에 키 11, 12, 13을 생성할 수 있다. 여기서, 이용자 1이 갖는 키 1보다, 이용자 11, 12, 13이 갖는 키 11, 12, 13은 기능이 제한되어 있다. 기능이 제한되어 있다는 것은, 그 비밀 키에 의해 복호할 수 있는 암호문이 한정되어 있다는 것이다. 다시 말해, 상위의 비밀 키로 복호할 수 있는 암호문의 일부의 암호문만 하위의 비밀 키로 복호할 수 있는 것을 의미한다. 즉, 이용자 1이 갖는 키 1로 복호할 수 있는 암호문 중, 일부의 암호문만 이용자 11, 12, 13이 갖는 키 11, 12, 13으로 복호할 수 있다. 또한, 보통은, 키 11과 키 12와 키 13이 복호할 수 있는 암호문은 다르다. 한편, 키 11과 키 12와 키 13이 복호할 수 있는 암호문은, 키 1로 복호할 수 있다.
<제 1-2. 내적 술어 암호>
다음으로, 「내적 술어 암호」에 대하여 설명한다.
우선, 술어 암호란, 술어 정보 fv에 속성 정보 x를 입력한 경우에 1(True)이 되는 경우(fv(x)=1이 되는 경우)에, 암호문을 복호할 수 있는 암호 방식이다. 보통, 암호문에 속성 정보 x가 삽입되고, 비밀 키에 술어 정보 fv가 삽입된다. 다시 말해, 술어 암호로는, 속성 정보 x에 근거하여 암호화된 암호문 c를, 술어 정보 fv에 근거하여 생성된 비밀 키 SKf에 의해 복호한다. 술어 암호는, 예컨대, 술어 정보 fv가 조건식이며, 속성 정보 x가 그 조건식으로의 입력 정보이며, 입력 정보(속성 정보 x)가 조건식(술어 정보 fv)을 만족시키면(fv(x)=1), 암호문을 복호할 수 있는 암호 방식이라고도 말할 수 있다.
또, 술어 암호에 대하여 자세히는 비특허 문헌 19에 기재되어 있다.
내적 술어 암호란, 속성 정보 x와 술어 정보 fv의 내적이 소정의 값인 경우에, fv(x)=1이 되는 술어 암호이다. 다시 말해, 속성 정보 x와 술어 정보 fv의 내적이 소정의 값인 경우에만, 속성 정보 x에 의해 암호화된 암호문 c를, 술어 정보 fv에 근거하여 생성된 비밀 키 SKf에 의해 복호할 수 있다. 이하의 설명에서는, 속성 정보 x와 술어 정보 fv의 내적이 0인 경우에, fv(x)=1이 되는 것으로 한다.
<제 1-3. 계층적 내적 술어 암호>
계층적 내적 술어 암호(계층적 내적 술어 키 비닉 방식)란, 상술한 「계층적」이라고 하는 개념을 갖는 「내적 술어 암호」이다. 다시 말해, 계층적 내적 술어 암호(계층적 내적 술어 키 비닉 방식)이란, 권한 위양 시스템을 갖는 내적 술어 암호이다.
계층적 내적 술어 암호는, 내적 술어 암호에 권한 위양 시스템을 갖게 하기 위해, 속성 정보와 술어 정보에 계층 구조를 갖는다.
도 2는 속성 정보와 술어 정보의 계층 구조를 나타내는 도면이다.
도 2에 있어서, 부호가 대응하는 속성 정보와 술어 정보는 대응하는(다시 말해, 내적이 0이 되는) 것으로 한다. 다시 말해, 속성 1과 술어 1의 내적은 0이 되고, 속성 11과 술어 11의 내적은 0이 되고, 속성 12와 술어 12의 내적은 0이 되고, 속성 13과 술어 13의 내적은 0이 되는 것으로 한다. 즉, 속성 1에 의해 암호화된 암호문 c1은, 술어 1에 근거하여 생성된 비밀 키 k1이면 복호할 수 있다. 또한, 속성 11에 의해 암호화된 암호문 c11은, 술어 11에 근거하여 생성된 비밀 키 k11이면 복호할 수 있다. 속성 12와 술어 12, 속성 13과 술어 13에 대해서도 같다고 말할 수 가 있다.
상기한 바와 같이, 계층적 내적 술어 암호는 권한 위양 시스템을 갖는다. 그 때문에, 술어 1에 근거하여 생성된 비밀 키 k1과, 술어 11에 근거하여, 비밀 키 k11을 생성할 수 있다. 다시 말해, 상위의 비밀 키 k1을 갖는 이용자는, 그 비밀 키 k1과 하위의 술어 11로부터, 비밀 키 k1의 하위의 비밀 키 k11을 생성할 수 있다. 마찬가지로, 비밀 키 k1과 술어 12로부터 비밀 키 k12를 생성할 수 있고, 비밀 키 k1과 술어 13으로부터 비밀 키 k13을 생성할 수 있다.
또한, 하위의 비밀 키에 대응하는 키(공개 키)로 암호화된 암호문을 상위의 비밀 키로 복호할 수 있다. 한편, 상위의 비밀 키에 대응하는 키(공개 키)로 암호화된 암호문은, 하위의 비밀 키로 복호할 수 없다. 다시 말해, 속성 11, 속성 12, 속성 13에 의해 암호화된 암호문 c11, c12, c13은, 술어 1에 근거하여 생성된 비밀 키 k1이면 복호할 수 있다. 한편, 속성 1에 의해 암호화된 암호문 c1은, 술어 11, 술어 12, 술어 13에 근거하여 생성된 비밀 키 k11, k12, k13으로는 복호할 수 없다. 즉, 속성 11, 속성 12, 속성 13과 술어 1의 내적은 0이 된다. 한편, 속성 1과 술어 11, 술어 12, 술어 13의 내적은 0이 되지 않는다.
<제 1-4. 계층적 내적 술어 암호의 응용예>
도 3은 후술하는 계층적 내적 술어 암호의 응용예인 계층적 ID 베이스 암호(Hierarchial Identifier Based Encryption, HIBE)의 예를 나타내는 도면이다. 또, 계층적 ID 베이스 암호란, ID 베이스 암호가 계층적으로 된 암호 처리이다. ID 베이스 암호는, 술어 암호의 일종이며, 암호문에 포함되는 ID와 비밀 키에 포함되는 ID가 일치하는 경우에 암호문을 복호할 수 있는 매칭 술어 암호이다.
도 3에 나타내는 예에서는, Root(키 생성 장치)는, 마스터 비밀 키 sk와 A 회사의 ID인 「A」에 근거하여, ID 「A」에 대응하는 비밀 키(키 A)를 생성한다. 예컨대, A 회사의 보안 담당자는, 키 A와 각 부문의 ID에 근거하여, 그 ID에 대응하는 비밀 키를 생성한다. 예컨대, 보안 담당자는, 영업 부문의 ID인 「A-1」에 대응하는 비밀 키(키 1)를 생성한다. 다음으로, 예컨대, 각 부문의 관리자는, 그 부문의 비밀 키와 그 부문에 속하는 각 과의 ID에 근거하여, 그 ID에 대응하는 비밀 키를 생성한다. 예컨대, 영업 부문의 관리자는, 영업 1과의 ID인 「A-11」에 대응하는 비밀 키(키 11)를 생성한다.
여기서, 영업 1과의 ID 「A-11」에 대응하는 비밀 키인 키 11에 의해, 영업 1과의 ID 「A-11」로 암호화된 암호문을 복호할 수 있다. 그러나, 키 11에 의해, 영업 2과나 영업 3과의 ID로 암호화된 암호문은 복호할 수 없다. 또한, 키 11에 의해, 영업 부문의 ID로 암호화된 암호문은 복호할 수 없다.
영업 부문의 ID 「A-1」에 대응하는 비밀 키인 키 1에 의해, 영업 부문의 ID 「A-1」로 암호화된 암호문을 복호할 수 있다. 또한, 키 1에 의해, 영업 부문에 속하는 과의 ID로 암호화된 암호문을 복호할 수 있다. 다시 말해, 키 1에 의해, 영업 1과, 영업 2와, 영업 3과의 ID로 암호화된 암호문을 복호할 수 있다. 그러나, 키 1에 의해, 제조 부문(ID : A-2)이나 스태프 부문(ID : A-3)의 ID로 암호화된 암호문은 복호할 수 없다. 또한, 키 1에 의해, A 회사의 ID로 암호화된 암호문은 복호할 수 없다.
A 회사의 ID 「A」에 대응하는 비밀 키인 키 A에 의해, A 회사의 ID 「A」로 암호화된 암호문을 복호할 수 있다. 또한, A 회사에 속하는 각 부문이나, 그 부문에 속하는 과의 ID로 암호화된 암호문을 복호할 수 있다.
ID 베이스 암호 이외에도 다양한 응용이 가능하다. 특히, 이하에 설명하는 암호 처리는, 등호 관계 테스트의 클래스에 한정된 것이 아니기 때문에, 매우 많은 응용이 가능하다. 예컨대, 내적 술어 암호의 일종인 검색 가능 암호 등에 대해서도, 계층마다 검색 가능한 범위를 AND 조건이나 OR 조건 등의 조건식을 이용하여 한정하는 등, 종래의 권한 위양 시스템을 갖는 술어 암호로는 실현할 수 없었던 응용이 가능하다.
다시 말해, 뒤의 실시 형태에서 설명하는 계층적 술어 키 비닉 방식과 계층적 술어 암호는, ID 베이스 암호나 검색 가능 암호 등에 폭넓은 응용이 가능하다.
<제 2. 벡터 공간에서의 계층적 내적 술어 암호>
계층적 술어 키 비닉 방식과 계층적 술어 암호는, 후술하는 쌍대 디스토션 벡터 공간이라는 고차원 벡터 공간에서 실현된다. 그래서, 벡터 공간에서의 계층적 내적 술어 암호를 설명한다.
우선, 벡터 공간의 설명에 있어서 사용하는 「기저」와 「기저 벡터」에 대하여 간단하게 설명한다.
도 4는 기저와 기저 벡터를 설명하기 위한 도면이다.
도 4는 2차원 벡터 공간에서의 벡터 v를 나타낸다. 벡터 v는, c0a0+c1a1이다. 또한, 벡터 v는, y0b0+y1b1이다. 여기서, a0, a1을 기저 A에서의 기저 벡터라고 말하고, 기저 A:=(a0, a1)로 나타낸다. 또한, b0, b1을 기저 B에서의 기저 벡터라고 말하고, 기저 B:=(b0, b1)로 나타낸다. 또한, c0, c1, y0, y1은, 각 기저 벡터에 대한 계수이다. 도 4에서는, 2차원 벡터 공간이었기 때문에, 각 기저에 있어서의 기저 벡터는 2개였다. 그러나, N차원 벡터 공간이면, 각 기저에 있어서의 기저 벡터는 N개이다.
다음으로, 벡터 공간에서의 내적 술어 암호를 설명한다.
상기한 바와 같이, 내적 술어 암호란, 속성 정보 x와 술어 정보 fv의 내적이 소정의 값(여기서는, 0)인 경우에, fv(x)=1이 되는 술어 암호이다. 속성 정보 x와 술어 정보 fv가 벡터인 경우, 다시 말해 속성 벡터 x와 술어 벡터 v인 경우, 내적 술어는 수학식 52와 같이 정의된다.
[수학식 52]
Figure 112011092805583-pct00010
다시 말해, 속성 벡터 x와 술어 벡터 v의 내적, 다시 말해 요소마다의 내적의 합이 0인 경우에, 술어 정보 fv에 속성 정보 x를 입력한 결과가 1(True)이 되고, 속성 벡터 x와 술어 벡터 v의 내적이 0이 아닌 경우에, 술어 정보 fv에 속성 정보 x를 입력한 결과가 0(False)이 되는 술어 암호이다.
다음으로, 벡터 공간에서의 계층 구조의 실현 방법을 설명한다.
도 5는 벡터 공간에서의 계층 구조의 실현 방법을 설명하기 위한 도면이다.
여기서 취급하는 벡터 공간은, 고차원(N차원) 벡터 공간인 것으로 한다. 다시 말해, 벡터 공간에서의 소정의 기저 C에는, 기저 벡터 ci(i=0, …, N-1)의 N개의 기저 벡터가 존재한다.
N개의 기저 벡터 중의 n개의 기저 벡터(기저 벡터 ci(i=0, …, n-1))를 계층 구조를 나타내기 위해 사용한다. 또한, 기저 벡터 ci(i=0, …, n-1)를, 기저 벡터 ci(i=0, …, μ1-1)와, 기저 벡터 ci(i=μ1, …, μ2-1)와, …, 기저 벡터 ci(i=μd-1, …, n-1)의 d개로 분할한다. 여기서, d는, 계층의 깊이를 나타내는 수가 된다.
그리고, μ1개의 기저 벡터 ci(i=0, …, μ1-1)를 제 1 층째의 속성 정보나 술어 정보를 나타내기 위해 할당한다. 또한, μ21개의 기저 벡터 ci(i=μ1, …, μ2-1)를 제 2 층째의 속성 정보나 술어 정보를 나타내기 위해 할당한다. 이하 마찬가지로, μdd-1개의 기저 벡터 ci(i=μd-1, …, μd-1(=n-1))를 제 d 층째의 속성 정보나 술어 정보를 나타내기 위해 할당한다.
또한, 제 L 층째의 속성 정보에 의해 암호문을 생성하는 경우에는, 제 L 층째의 속성 정보뿐만 아니라, 제 1 층째로부터 제 L 층째까지의 속성 정보를 이용하여 암호문을 생성한다. 마찬가지로, 제 L 층째의 술어 정보에 의해 비밀 키를 생성하는 경우에는, 제 L 층째의 술어 정보뿐만 아니라, 제 1 층째로부터 제 L 층째까지의 술어 정보를 이용하여 비밀 키를 생성한다. 다시 말해, 제 L 층째의 속성 정보에 의해 암호문을 생성하는 경우나, 제 L 층째의 술어 정보에 의해 비밀 키를 생성하는 경우에는, 제 1 층째로부터 제 L 층째까지 할당된 μL개의 기저 벡터 ci(i=0, …, μL-1)를 이용한다. 예컨대, 제 3 층째의 속성 정보에 의해 암호문을 생성하는 경우에는, 제 1 층째로부터 제 3 층째까지 할당된 μ3개의 기저 벡터 ci(i=0, …, μ3-1)를 이용하여, 제 1 층째로부터 제 3 층째까지의 속성 정보를 나타내어 암호문을 생성한다. 마찬가지로, 제 3 층째의 술어 정보에 의해 비밀 키를 생성하는 경우에는, 제 1 층째로부터 제 3 층째까지 할당된 μ3개의 기저 벡터 ci(i=0, …, μ3-1)를 이용하여, 제 1 층째로부터 제 3 층째까지의 술어 정보를 나타내어 비밀 키를 생성한다. 다시 말해, 하위의 층에서 사용되는 속성 정보나 술어 정보에는, 상위의 층에서 사용되는 속성 정보나 술어 정보가 포함된다. 이에 의해, 속성 정보와 술어 정보에 계층 구조를 갖게 한다. 그리고, 이 속성 정보와 술어 정보에 계층 구조를 이용하여, 내적 술어 암호에 권한 위양 시스템을 갖게 한다.
또, 이하의 설명에 있어서는, 벡터 공간에서의 계층적 구조를 나타내기 위해, 계층 정보 μ를 이용한다. 계층 정보 μ를 수학식 53에 나타낸다.
[수학식 53]
Figure 112011092805583-pct00011
다시 말해, 계층 정보 μ는, 계층 구조를 나타내기 위해 할당된 기저 벡터수(차원수)를 나타내는 n과, 계층의 깊이를 나타내는 d와, 각 계층에 할당된 기저 벡터를 나타내기 위한 μ1, …, μd의 정보를 갖는다.
다음으로, 벡터 공간에서의 계층적 내적 술어 암호를 설명한다.
우선, 각 계층의 공간에서의 내적 술어에 대하여 설명한다. 각 계층의 공간이란, 각 계층의 속성 정보나 술어 정보를 나타내기 위해 할당된 공간이다. 다시 말해, 제 j 층째의 계층의 공간이면, 기저 벡터 ci(i=μj-1, …, μj)로 표시되는 공간이다.
속성 공간 Σi(i=1, …, d)를, 제 i 층째의 속성 정보를 나타내기 위해 할당된 공간인 것으로 한다. 마찬가지로, 술어 공간 Fi(i=1, …, d)를, 제 i 층째의 술어 정보를 나타내기 위해 할당된 공간인 것으로 한다. 다시 말해, 속성 공간 Σi는, 소정의 기저 Σ의 기저 벡터 σj(j=μi-1, …, μi)로 나타낸 속성 정보의 공간이다. 마찬가지로, 술어 공간 Fi는, 소정의 기저 F의 기저 벡터 fj(j=μi-1, …, μi)로 나타낸 술어 정보의 공간이다. 즉, 속성 공간 Σ1이면, 기저 벡터 σj(j=0, …, μ1-1)로 나타낸 속성 정보의 공간이다. 또한, 속성 공간 Σ2이면, 기저 벡터 σj(j=μ1, …, μ2-1)로 나타낸 속성 정보의 공간이다. 술어 공간 Fi에 관해서도 같다.
다시 말해, 속성 공간 Σi(i=1, …, d)와 술어 공간 Fi(i=1, …, d)는, 각각 수학식 54에 나타내는 속성 정보와 술어 정보의 집합이다.
[수학식 54]
Figure 112011092805583-pct00012
그러면, 각 속성 공간 Σi(i=1, …, d)에 대하여, 내적 술어는 수학식 55와 같이 정의된다.
[수학식 55]
Figure 112011092805583-pct00013
다시 말해, 각 계층의 공간에서, 속성 벡터 x와 술어 벡터 v의 내적이 0인 경우에, 술어 정보 fv에 속성 정보 x를 입력한 결과가 1(True)이 된다. 즉, 어떤 계층의 속성 벡터 x와 같은 계층의 술어 벡터 v의 내적이 0인 경우에, 술어 정보 fv에 속성 정보 x를 입력한 결과가 1(True)이 된다.
다음으로, 계층적인 공간에서의 내적 술어에 대하여 설명한다. 계층적인 공간이란, 상위의 속성 정보나 술어 정보를 나타내기 위해 할당된 공간도 포함한 공간이다. 다시 말해, 제 j 층째의 계층적인 공간이면, 기저 벡터 ci(i=0, …, μj)로 나타낸 공간이다.
즉, 계층적인 속성 공간 Σ와 계층적인 술어 공간 F는, 각각 수학식 56에 나타내는 공간이다.
[수학식 56]
Figure 112011092805583-pct00014
여기서, 수학식 56에 나타내는 계층적인 속성 공간 Σ와 계층적인 술어 공간 F에 있어서의 합집합은 서로소인 합집합이다. 수학식 57에 나타내는 계층적인 속성 정보에 대한 수학식 58에 나타내는 계층적인 술어 정보는, 수학식 59와 같이 정의된다.
[수학식 57]
Figure 112011092805583-pct00015
[수학식 58]
Figure 112011092805583-pct00016
[수학식 59]
Figure 112011092805583-pct00017
다시 말해, 벡터 공간에서의 계층적 내적 술어 암호는, (1) 계층적인 술어 벡터 v의 계층 Lv가 계층적인 속성 벡터 x의 계층 Lx와 같거나 상위이며, (2) 속성 공간 Σi(i=1, …, Lv)에 있어서의 속성 벡터 x와, 각 술어 공간 Fi(i=1, …, Lv)에 있어서의 술어 벡터 v의 내적이 0인 경우에, 수학식 58에 나타내는 계층적인 술어 정보에 수학식 57에 나타내는 계층적인 속성 정보를 입력한 결과가 1(True)이 되는 술어 암호이다.
<제 3. 계층적 술어 키 비닉 방식과 계층적 술어 암호의 구성>
<제 3-1. 계층적 술어 키 비닉 방식>
계층적 술어 키 비닉 방식의 구성을 간단하게 설명한다.
계층적 술어 키 비닉 방식은, Setup, GenKey, Enc, Dec, DelegateL(L=1, …, d-1)의 5개의 확률적 다항식 시간 알고리즘을 구비한다.
(Setup)
Setup 알고리즘에서는, 보안 파라미터 1λ와 계층 정보 μ가 입력되고, 마스터 공개 키 pk와 마스터 비밀 키 sk가 출력된다. 마스터 비밀 키 sk는 가장 상위의 키이다.
(GenKey)
GenKey 알고리즘에서는, 마스터 공개 키 pk와 마스터 비밀 키 sk와 수학식 60에 나타내는 술어 벡터 v 1(또, 술어 벡터 v 1을 간단히 v 1로 기재하는 경우도 있다)이 입력되고, 수학식 61에 나타내는 제 1 층째의 비밀 키가 출력된다.
[수학식 60]
Figure 112011092805583-pct00018
[수학식 61]
Figure 112011092805583-pct00019
(Enc)
Enc 알고리즘에서는, 마스터 공개 키 pk와 속성 벡터 x i(i=1, …, Lx)(1≤Lx≤d)가 입력되고, 암호문 c와 세션 키 K가 출력된다. 다시 말해, Enc 알고리즘에서는, 소정의 정보(ρ)를 삽입하여 속성 벡터 x i(i=1, …, Lx)(1≤Lx≤d)에 의해 암호화된 암호문 c와, 소정의 정보(ρ)로부터 생성한 세션 키 K가 출력된다.
(Dec)
Dec 알고리즘에서는, 마스터 공개 키 pk와 수학식 62에 나타내는 제 Lv 층째의 비밀 키(1≤Lv≤d)와 암호문 c가 입력되고, 세션 키 K 또는 식별 정보 ⊥가 출력된다. 식별 정보 ⊥란, 복호에 실패한 것을 나타내는 정보이다. 다시 말해, Dec 알고리즘에서는, 암호문 c를 제 Lv 층째의 비밀 키로 복호하여, 소정의 정보(ρ)에 관한 정보를 추출하고, 세션 키 K를 생성한다. 또한, 복호에 실패한 경우에는 식별 정보 ⊥를 출력한다.
[수학식 62]
Figure 112011092805583-pct00020
(DelegateL)
DelegateL 알고리즘에서는, 마스터 공개 키 pk와 수학식 63에 나타내는 제 L 층째의 비밀 키와 수학식 64에 나타내는 제 L+1 층째의 술어 벡터 v L+1(또, 술어 벡터 v L+1을 간단히 v L+1로 기재하는 경우도 있다)이 입력되고, 수학식 65에 나타내는 제 L+1 층째의 비밀 키가 출력된다. 다시 말해, DelegateL 알고리즘에서는, 하위의 비밀 키가 출력된다.
[수학식 63]
Figure 112011092805583-pct00021
[수학식 64]
Figure 112011092805583-pct00022
[수학식 65]
Figure 112011092805583-pct00023
다시 말해, 제 Lv 층째의 비밀 키는, 수학식 66에 나타내는 GenKey와 DelegateL의 알고리즘을 이용한 DeriveLv 알고리즘에 의해 계산된다.
[수학식 66]
Figure 112011092805583-pct00024
<제 3-2. 계층적 술어 암호>
계층적 술어 암호의 개요를 설명한다.
계층적 술어 암호는, 계층적 술어 키 비닉 방식과 마찬가지로, Setup, GenKey, Enc, Dec, DelegateL(L=1, …, d-1)의 5개의 확률적 다항식 시간 알고리즘을 구비한다.
(Setup)
계층적 술어 키 비닉 방식과 마찬가지로, Setup 알고리즘에서는, 보안 파라미터 1λ와 계층 정보 μ가 입력되고, 마스터 공개 키 pk와 마스터 비밀 키 sk가 출력된다.
(GenKey)
계층적 술어 키 비닉 방식과 마찬가지로, GenKey 알고리즘에서는, 마스터 공개 키 pk와 마스터 비밀 키 sk와 수학식 67에 나타내는 술어 벡터 v1이 입력되고, 수학식 68에 나타내는 제 1 층째의 비밀 키가 출력된다.
[수학식 67]
Figure 112011092805583-pct00025
[수학식 68]
Figure 112011092805583-pct00026
(Enc)
Enc 알고리즘에서는, 마스터 공개 키 pk와 속성 벡터 x i(i=1, …, Lx)(1≤Lx≤d)와 평문 정보 m이 입력되고, 암호문 c가 출력된다. 다시 말해, Enc 알고리즘에서는, 평문 정보 m을 삽입하여 속성 벡터 x i(i=1, …, Lx)(1≤Lx≤d)에 의해 암호화된 암호문 c가 출력된다.
(Dec)
Dec 알고리즘에서는, 마스터 공개 키 pk와 수학식 69에 나타내는 제 Lv 층째의 비밀 키(1≤Lv≤d)와 암호문 c가 입력되고, 평문 정보 m 또는 식별 정보 ⊥가 출력된다. 식별 정보 ⊥란, 복호에 실패한 것을 나타내는 정보이다. 다시 말해, Dec 알고리즘에서는, 암호문 c를 제 Lv 층째의 비밀 키로 복호하여, 평문 정보 m을 추출한다. 또한, 복호에 실패한 경우에는 식별 정보 ⊥를 출력한다.
[수학식 69]
Figure 112011092805583-pct00027
(DelegateL)
계층적 술어 키 비닉 방식과 마찬가지로, DelegateL에서는, 마스터 공개 키 pk와 수학식 70에 나타내는 제 L 층째의 비밀 키와 수학식 71에 나타내는 제 L+1 층째의 술어 벡터 v L+1이 입력되고, 수학식 72에 나타내는 제 L+1 층째의 비밀 키가 출력된다. 다시 말해, DelegateL 알고리즘에서는, 하위의 비밀 키가 출력된다.
[수학식 70]
Figure 112011092805583-pct00028
[수학식 71]
Figure 112011092805583-pct00029
[수학식 72]
Figure 112011092805583-pct00030
또, 제 Lv 층째의 비밀 키는, 계층적 술어 키 비닉 방식과 마찬가지로, 상술한 수학식 66에 나타내는 DeriveLv 알고리즘에 의해 계산된다.
<제 3-3. 암호 처리 시스템(10)>
암호 처리 시스템(10)에 대하여 설명한다. 암호 처리 시스템(10)은, 상술한 계층적 술어 키 비닉 방식과 계층적 술어 암호의 알고리즘을 실행한다.
도 6은 암호 처리 시스템(10)의 구성도이다.
암호 처리 시스템(10)은, 키 생성 장치(100), 암호화 장치(200), 복호 장치(300), 키 위양 장치(400)를 구비한다. 또, 여기서는, 복호 장치(300)는, 키 위양 장치(400)를 구비하는 것으로 한다. 또한, 상술한 바와 같이, 암호 처리 시스템(10)은, 계층적인 암호 처리를 실행하는 것이기 때문에, 암호 처리 시스템(10)은, 복수의 암호화 장치(200), 복수의 복호 장치(300), 복수의 키 위양 장치(400)를 구비하는 것으로 한다.
키 생성 장치(100)는, 계층적 술어 키 비닉 방식과 계층적 술어 암호의 Setup, GenKey 알고리즘을 실행한다.
암호화 장치(200)는, 계층적 술어 키 비닉 방식과 계층적 술어 암호의 Enc 알고리즘을 실행한다.
복호 장치(300)는, 계층적 술어 키 비닉 방식과 계층적 술어 암호의 Dec 알고리즘을 실행한다.
키 위양 장치(400)는, 계층적 술어 키 비닉 방식과 계층적 술어 암호의 DelegateL 알고리즘을 실행한다.
도 7은 암호 처리 시스템(10)의 키 생성 장치(100)와 제 1 층째의 암호화 장치(200)와 복호 장치(300)의 동작을 나타내는 흐름도이다. 다시 말해, 도 7은 마스터 키(마스터 공개 키와 마스터 비밀 키)의 생성, 제 1 층째의 비밀 키의 생성으로부터, 제 1 층째에 있어서의 암호화와 복호까지의 동작을 나타내는 흐름도이다.
(S101 : 키 생성 단계)
키 생성 장치(100)는, Setup 알고리즘을 실행하여 마스터 공개 키 pk와 마스터 비밀 키 sk를 생성한다. 또한, 키 생성 장치(100)는, 생성한 마스터 공개 키 pk와 마스터 비밀 키 sk와, 소정의 복호 장치(300)(제 1 층째의 복호 장치(300))에 대응하는 술어 벡터 v 1(v 1=(v0, …, vi)(i=μL-1))에 근거하여, GenKey 알고리즘을 실행하여 제 1 층째의 비밀 키를 생성한다. 그리고, 키 생성 장치(100)는, 생성한 마스터 공개 키 pk를 공개(배포)함과 아울러, 제 1 층째의 비밀 키를 상기 소정의 복호 장치(300)에 비밀리에 배포한다. 또, 키 생성 장치(100)는, 마스터 비밀 키를 비밀리에 유지한다.
(S102 : 암호화 단계)
암호화 장치(200)는, S101에서 키 생성 장치(100)가 배포한 마스터 공개 키 pk와, 상기 복호 장치(300)의 속성 벡터 x 1(x 1=(x0, …, xi)(i=μL-1))에 근거하여, Enc 알고리즘을 실행하여 암호문 c를 생성한다. 또, 계층적 술어 키 비닉 방식이면, 암호화 장치(200)는, 세션 키 K도 더불어 생성한다. 그리고, 암호화 장치(200)는, 생성한 암호문 c를 상기 복호 장치(300)에 네트워크 등을 통해 송신한다. 또, 속성 벡터 x 1은, 공개되어 있는 것으로 하더라도 좋고, 암호화 장치(200)가 키 생성 장치(100)나 복호 장치(300)로부터 취득하는 것으로 하더라도 좋다.
(S103 : 복호 단계)
복호 장치(300)는, S101에서 키 생성 장치(100)가 배포한 마스터 공개 키 pk와 제 1 층째의 비밀 키에 근거하여, 알고리즘 Dec를 실행하여, 암호화 장치(200)로부터 수신한 암호문 c를 복호한다. 복호 장치(300)는, 암호문 c를 복호한 결과, 계층적 술어 키 비닉 방식이면 세션 키 K를 취득하고, 계층적 술어 암호이면 평문 정보 m을 취득한다. 복호 장치(300)는, 복호에 실패한 경우에는 식별 정보 ⊥를 출력한다.
도 8은 암호 처리 시스템(10)의 제 L 층째의 키 위양 장치(400)와, 제 L+1 층째의 암호화 장치(200)와 복호 장치(300)의 동작을 나타내는 흐름도이다. 다시 말해, 도 8은 제 L+1 층째의 비밀 키의 생성으로부터, 제 L+1 층째에 있어서의 암호화와 복호까지의 동작을 나타내는 흐름도이다.
(S201 : 키 위양 단계)
제 L 층째의 키 위양 장치(400)(제 L 층째의 복호 장치(300)가 구비하는 키 위양 장치(400))는, S101에서 키 생성 장치(100)가 배포한 마스터 공개 키 pk와, 키 생성 장치(100) 또는 제 L-1층째의 키 위양 장치(400)가 배포한 제 L 층째의 비밀 키와, 제 L+1 층째의 복호 장치(300)에 대응하는 술어 벡터 v L+1(v L+1=(vi, …, vj)(i=μL, j=μL+1-1))에 근거하여, 알고리즘 DelegateL을 실행하여 제 L+1 층째의 비밀 키를 생성한다. 그리고, 제 L 층째의 키 위양 장치(400)는, 생성한 비밀 키를 제 L+1 층째의 복호 장치(300)에 비밀리에 배포한다.
(S202 : 암호화 단계)
암호화 장치(200)는, S101에서 키 생성 장치(100)가 배포한 마스터 공개 키 pk와, 제 L+1 층째까지의 복호 장치(300)의 속성 벡터 x 1로부터 속성 벡터 x L+1(x i(i=1, …, L+1)(=(x0, …, xi)(i=μL+1-1)))에 근거하여, Enc 알고리즘을 실행하여 암호문 c를 생성한다. 또, 계층적 술어 키 비닉 방식이면, 암호화 장치(200)는, 세션 키 K도 더불어 생성한다. 그리고, 암호화 장치(200)는, 생성한 암호문 c를 상기 복호 장치(300)에 네트워크 등을 통해 송신한다. 또, 속성 벡터 x 1로부터 속성 벡터 x L+1(x i(i=1, …, L+1))은, 공개되어 있는 것으로 하더라도 좋고, 암호화 장치(200)가 키 생성 장치(100)나 복호 장치(300)로부터 취득하는 것으로 하더라도 좋다.
(S203 : 복호 단계)
복호 장치(300)는, S101에서 키 생성 장치(100)가 배포한 마스터 공개 키 pk와, S201에서 제 L 층째의 키 위양 장치(400)가 배포한 비밀 키에 근거하여, 알고리즘 Dec를 실행하여, 암호화 장치(200)로부터 수신한 암호문 c를 복호한다. 복호 장치(300)는, 암호문 c를 복호한 결과, 계층적 술어 키 비닉 방식이면 세션 키 K를 취득하고, 계층적 술어 암호이면 평문 정보 m을 취득한다.
<제 4. 계층적 술어 키 비닉 방식과 계층적 술어 암호를 실현하기 위한 개념>
다음으로, 상술한 계층적 술어 키 비닉 방식과 계층적 술어 암호의 각 알고리즘을 실현하기 위해 필요하게 되는 개념을 설명한다.
<제 4-1. 쌍선형 페어링 그룹>
쌍선형 페어링 그룹(G1, G2, GT, g1, g2, q)을 설명한다.
쌍선형 페어링 그룹(G1, G2, GT, g1, g2, q)은, 자릿수 q의 3개의 순회군 G1, G2, GT의 조(組)이다. g1은 G1의 생성원이며, g2는 G2의 생성원이다. 그리고, 쌍선형 페어링 그룹(G1, G2, GT, g1, g2, q)은, 이하의 비퇴화 쌍선형 페어링의 조건을 만족시킨다.
(조건 : 비퇴화 쌍선형 페어링)
다항식 시간으로 계산 가능한 수학식 73에 나타내는 비퇴화 쌍선형 페어링이 존재하는 것.
[수학식 73]
Figure 112011092805583-pct00031
여기서, G1=G2(=:G)인 경우, 대상 쌍선형 페어링이라고 부른다. 한편, G1≠G2인 경우, 비대칭 쌍선형 페어링이라고 부른다. 대상 쌍선형 페어링은, 초특이 (초)타원 곡선을 이용하여 구축할 수 있다. 한편, 비대칭 쌍선형 페어링은, 어떤 (초)타원 곡선을 이용하더라도 구축할 수 있다. 비대칭 쌍선형 페어링은, 예컨대, 보통의 타원 곡선을 이용하여 구축할 수 있다.
여기서는, 비대칭 쌍선형 페어링을 이용하여 설명한다. 다시 말해, 쌍선형 페어링 그룹(G1, G2, GT, g1, g2, q)은, 비대칭 쌍선형 페어링 그룹인 것으로 한다. 그리고, 비대칭 쌍선형 페어링 그룹의 직적을 이용하여, 후술하는 쌍대 디스토션 벡터 공간을 구축한 경우에 대하여 설명한다. 또, 뒤의 실시 형태에서 설명하는 바와 같이, 쌍대 디스토션 벡터 공간은, 비대칭 쌍선형 페어링 그룹의 직적에 한하지 않고, 다른 방법에 의해 구축하는 것도 가능하다.
<제 4-2. (1) 1차원 페어링 「G1×G2→GT」의 공간 V, 공간 V*에 대한 고차원화>
1차원 공간의 순회군을 고차원 공간(고차원 벡터 공간)으로 확장한다. 다시 말해, 수학식 74에 나타내는 바와 같이, G1과 G2의 직적에 의해 N차원 벡터 공간 V와 N차원 벡터 공간 V*를 구축한다.
[수학식 74]
Figure 112011092805583-pct00032
N차원 벡터 공간 V, V*에 있어서의 페어링 연산 e를 수학식 75에 나타내는 바와 같이 정의한다.
[수학식 75]
Figure 112011092805583-pct00033
다시 말해, N차원 벡터 공간 V의 벡터 x:=(x0g1, x1g1, …, xN -1g1)와 N차원 벡터 공간 V*의 벡터 y:=(y0g2, y1g2, …, yN -1g2)의 페어링 연산 e(x, y)는, 벡터 x와 벡터 y의 요소마다의 페어링 연산의 곱으로 정의한다. 그러면, 상술한 비퇴화 쌍선형 페어링의 조건으로부터, 페어링 연산 e(x, y)는, 수학식 76에 나타내는 바와 같이 나타낼 수 있다.
[수학식 76]
Figure 112011092805583-pct00034
또, 페어링 연산 e의 e라는 표기는, (G1, G2)와 (V, V*)의 양쪽에 있어서 사용한다.
<제 4-3. (2) 표준 쌍대 기저 A, A*>
N차원 벡터 공간 V의 표준 기저 A와, N차원 벡터 공간 V*의 표준 기저 A*를 설명한다.
수학식 77은, 표준 기저 A를 나타낸다.
[수학식 77]
Figure 112011092805583-pct00035
여기서, N차원 벡터 공간 V의 모든 요소 x:=(x0g1, …, xN -1, g1)는, 표준 기저 A의 선형합에 의해 나타낼 수 있다. 다시 말해, N차원 벡터 공간 V의 모든 요소 x:=(x0g1, …, xN -1, g1)는, 수학식 78과 같이 나타낼 수 있다.
[수학식 78]
Figure 112011092805583-pct00036
수학식 79는, 표준 기저 A*를 나타낸다. 표준 기저 A와 같이, N차원 벡터 공간 V*의 모든 요소 y:=(y0g2, …, yN -1, g2)는, 표준 기저 A*의 선형합에 의해 나타낼 수 있다.
[수학식 79]
Figure 112011092805583-pct00037
표준 기저 A와 표준 기저 A*는, 수학식 80에 나타내는 조건을 만족시킨다.
[수학식 80]
Figure 112011092805583-pct00038
다시 말해, 표준 기저 A와 표준 기저 A*는, 쌍대 정규 직교 기저이며, 공간 V와 공간 V*는, 페어링 연산 e에 의해 관련지어진 쌍대 벡터 공간이다.
표준 기저 A와 표준 기저 A*가 수학식 80에 나타내는 조건을 만족시키는 것에 대해서 보충한다.
우선, e(ai, a* i)=u인 것에 대해서 설명한다. 일례로서, e(a0, a* 0)에 대하여 계산한다. 상기한 바와 같이, a0=(g1, 0, …, 0)이며, a* 0=(g2, 0, …, 0)이다. 따라서, e(a0, a* 0)=e(g1, g2)×e(0, 0)×…×e(0, 0)이다. 여기서, 상기한 바와 같이, e(g1, g2)=u이다. 또한, e(0, 0)=e(0ㆍg1, 0ㆍg2)=e(g1, g2)0이니까, e(0, 0)=1이다. 따라서, e(a0, a* 0)=u가 된다. 다른 e(ai, a* i)에 대해서도 같은 계산이 성립하여, e(ai, a* i)=u가 된다.
다음으로, e(ai, a* j)=1(i≠j)인 것에 대해서 설명한다. 일례로서, e(a0, a* 1)에 대하여 계산한다. 상기한 바와 같이, a0=(g1, 0, …, 0)이며, a* 1=(0, g2, 0, …, 0)이다. 따라서, e(a0, a* 1)=e(g1, 0)×e(0, g2)×e(0, 0)×…×e(0, 0)이다. e(g1, 0)=e(g1, 0ㆍg2)=e(g1, g2)0이니까, e(g1, 0)=1이다. 마찬가지로, e(0, g2)=1이다. 또한, 상기한 바와 같이, e(0, 0)=1이다. 따라서, e(ai, a* j)=1이 된다. 다른 e(ai, a* j)에 대해서도 같은 계산이 성립하여, e(ai, a* j)=1이 된다.
따라서, 표준 기저 A와 표준 기저 A*에 있어서, e(ai, a* i)=u이며, e(ai, a* j)=1(i≠j)이다.
<제 4-4. (3) 디스토션 사상을 이용한 효율적인 선형 사상>
표준 기저 A에서의 공간 V의 생성원 x에 대한 디스토션 사상이라는 선형 변환에 대하여 설명한다.
공간 V의 표준 기저 A에서의 디스토션 사상 φi,j는, 수학식 81에 나타내는 사상이다.
[수학식 81]
Figure 112011092805583-pct00039
수학식 82가 성립하기 때문에, 디스토션 사상 φi,j는, 수학식 83의 변환을 행할 수 있다.
[수학식 82]
Figure 112011092805583-pct00040
[수학식 83]
Figure 112011092805583-pct00041
다시 말해, 표준 기저 A의 벡터 x의 기저 벡터 j의 요소를 기저 벡터 i의 요소로 변환할 수 있다. 이때, 변환된 기저 벡터 j의 요소를 제외한 다른 요소는, 모두 0이 된다. 즉, 벡터 x의 기저 벡터 j의 요소가 기저 벡터 i의 요소가 되고, 그 밖의 요소는 0이 된다.
공간 V*의 표준 기저 A*에 있어서의 디스토션 사상 φ* i,j도, 공간 V의 표준 기저 A에서의 디스토션 사상 φi,j와 같이 나타낼 수 있다.
디스토션 사상 φi,j* i,j)를 이용하는 것에 의해, 수학식 84에 나타내는 N×N 행렬로서 나타나는 선형 변환 W로서, x∈V에 대한 어떤 선형 변환 W도 수학식 85에 의해 효율적으로 계산할 수 있다.
[수학식 84]
Figure 112011092805583-pct00042
[수학식 85]
Figure 112011092805583-pct00043
<제 4-5. (4) 기저 변환에 의한 키 페어 (B, B*)의 생성 방법>
표준 기저 A와 표준 기저 A*로부터 다른 기저 B와 기저 B*로 변환하는 기저 변환 방법에 대하여 설명한다. 도 9는 기저 변환 방법을 설명하기 위한 도면이다.
공간 V에서의 표준 기저 A로부터 공간 V에서의 다른 기저 B:=(b0, …, bN -1)로 변환한다. 여기서는, 수학식 86에 나타내는 똑같이 선택된 선형 변환 X를 이용하여, 수학식 87에 나타내는 바와 같이 공간 V에서의 표준 기저 A로부터 공간 V에서의 다른 기저 B로 변환한다.
[수학식 86]
Figure 112011092805583-pct00044
[수학식 87]
Figure 112011092805583-pct00045
여기서, GL은, General Linear의 약어이다. 다시 말해, GL은, 일반 선형군이며, 행렬식이 0이 아닌 정방 행렬의 집합이며, 곱셈에 관한 군이다.
이하에 설명하는 암호 처리에 있어서, 기저 B는, 공개 파라미터(공개 키)로서 사용된다. 또한, X는, 트랩 도어 정보(비밀 키)로서 사용된다.
X를 이용하는 것에 의해, 공간 V*에 있어서의 표준 기저 A*로부터 공간 V*에 있어서의 기저 B*:=(b* 0, …, b* N-1)를 효율적으로 계산할 수 있다. 여기서는, 수학식 88에 나타내는 바와 같이 X를 이용하여, 공간 V*에 있어서의 기저 B*를 계산한다.
[수학식 88]
Figure 112011092805583-pct00046
여기서, 수학식 89가 성립한다.
[수학식 89]
Figure 112011092805583-pct00047
다시 말해, 기저 B와 기저 B*는, 쌍대 공간 V와 V*에 있어서의 쌍대 정규 직교 기저이다. 즉, X를 이용하여 표준 기저 A와 A*를 변형한 경우라도, 쌍대 정규 직교 기저는 보존된다.
이하에 설명하는 암호 처리에 있어서, 기저 B*는 (X 대신에) 비밀 키로서 사용할 수 있다. 상세하게는 후술하지만, 이에 의해, 후술하는 암호 처리에 있어서, 요구되는 비밀 키의 요건에 따라 다양한 레벨 또는 타입의 비밀 키를 만들 수 있다. 다시 말해, 최상위 계층의 비밀 키를 X로 하고, 하위의 레벨의 비밀 키를 기저 B*의 부분 정보로 하는 것에 의해, 상위 계층의 비밀 키로부터 하위 계층의 비밀 키까지 계층화된 비밀 키를 만들 수 있다.
<제 4-6. (5) 암호 처리로의 응용을 위한 (V, B), (V, B*)에서의 계산 곤란 문제>
암호 처리에 적합한 (V, B)와 (V*, B*)에 있어서의 계산 곤란 문제의 정의 및 확립을 한다. 다시 말해, 후술하는 암호 처리의 안전성의 근거가 되는 계산 곤란 문제에 대하여 설명한다. 여기서, 상술한 바와 같이, 기저 B:=(b0, …, bN -1)는, 공간 V의 기저이며, 기저 B*:=(b* 0, …, b* N-1)는 공간 V*의 기저이다.
또, 비특허 문헌 21에는, (V, B)에 있어서의 계산 문제와 결정 문제에 대한 기재, 및 그들의 문제의 관련에 대한 조사 결과에 대한 기재가 있다.
여기서는, 비특허 문헌 21에 기재된 계산 벡터 분해 문제(Computational Vector Decomposition Problem, CVDP)와, 결정 부분 공간 문제(Decisional Subspace Problem, DSP)에 대하여 간단하게 설명한다.
가장 자연스러운 (계산)문제의 하나가 CVDP이다. CVDP는, 부분군 분해 문제(Subgroup Decomposition Problem)의 고차원 공간 유사체이다.
(N1, N2) CVDP의 가정은, 「수학식 90에 나타내는 v가 주어진 경우에, 수학식 91에 나타내는 u를 계산하는 것은 어렵다」고 하는 것이다.
[수학식 90]
Figure 112011092805583-pct00048
[수학식 91]
Figure 112011092805583-pct00049
상기 문제를 단순화하여 설명하면, 도 4에 있어서 벡터 v가 주어진 경우에, 벡터 v를 기저 B에서의 벡터 v의 성분 y0b0(또는 y1b1)을 추출하는 것은 어렵다(할 수 없다)고 하는 것이다. 다시 말해, 벡터 v를 기저 B에서의 벡터 v의 성분 y0b0과 y1b1로 분해하는 것은 어렵다(할 수 없다)고 하는 것이다.
또, 가령 CVDP 가정이 옳다고 해도, 상술한 디스토션 사상 φi,j와, 트랩 도어 X(상술한 기저 변환 방법에 있어서의 선형 변환 X)와 비특허 문헌 21에 기재된 알고리즘 Deco를 이용하는 것에 의해, CVDP는 효율적으로 계산할 수 있다. 한편, CVDP 가정이 옳은 경우, 트랩 도어 X가 주어지지 않으면, CVDP를 효율적으로 풀 수는 없다. 다시 말해, 상술한 기저 변환 방법에 있어서의 선형 변환 X를 최상위 계층의 비밀 키로 함으로써, 선형 변환 X를 모르는 하위 계층에서는 CVDP를 효율적으로 풀 수는 없다.
가장 자연스러운 결정 문제의 하나가 DSP이다. (N1, N2) DSP의 가정은, 「수학식 92에 나타내는 u로부터 수학식 93에 나타내는 v를 결정하는 것은 어렵다」고 하는 것이다.
[수학식 92]
Figure 112011092805583-pct00050
[수학식 93]
Figure 112011092805583-pct00051
상기 문제를 단순화하여 설명하면, 도 4에 있어서 벡터 v가 주어진 경우에, y0b0(또는 y1b1)이 벡터 v의 성분이라고 특정하는 것은 곤란하다고 하는 것이다.
다시 말해, 이상의 2개의 문제로부터, N차원 공간에서의 벡터 v(=c0b0+…+cN -1bN-1)가 주어진 경우에, 벡터 v의 기저 벡터 bn에 대한 성분 cnbn을 추출할 수 없어, cnbn이 벡터 v의 성분이라고 특정할 수는 없다고 말할 수 있다.
<제 4-7. (6) 키 페어 (B, B*)를 이용한 내적 술어 암호>
2개의 벡터의 내적의 계산에 쌍대 정규 직교 기저 (B, B*)를 적용하여, 내적 술어 암호를 실현한다.
2개의 벡터의 내적의 계산에 쌍대 정규 직교 기저 (B, B*)를 적용한다는 것은, 수학식 94를 계산하는 것이다.
[수학식 94]
Figure 112011092805583-pct00052
이하와 같이 내적 술어 암호를 실현한다. 또, 여기서는, 키 비닉 방식에 대하여 설명하지만, 당연히 암호 방식에 대해서도 마찬가지로 실현 가능하다.
암호문 c는, 수학식 95에 나타내는 바와 같이 생성된다.
[수학식 95]
Figure 112011092805583-pct00053
비밀 키 k*는, 수학식 96에 나타내는 바와 같이 생성된다.
[수학식 96]
Figure 112011092805583-pct00054
여기서, 수학식 97이다.
[수학식 97]
Figure 112011092805583-pct00055
다시 말해, 속성 벡터 x와 술어 벡터 v의 내적이 0이면, 수학식 98이다.
[수학식 98]
Figure 112011092805583-pct00056
왜냐하면, 상술한 바와 같이, 수학식 99이기 때문이다.
[수학식 99]
Figure 112011092805583-pct00057
다시 말해, 여기서는, 속성 벡터 x와 술어 벡터 v의 내적이 0이 되도록, 속성 벡터 x와 술어 벡터 v를 설정함으로써, 수신측에서 암호문 c로부터 공유 정보 K(세션 키)를 취득할 수 있다.
여기서, 세션 키 K는 은폐된다. 다시 말해, 비밀 키 k*를 갖지 않는 공격자는, 암호문 c로부터 세션 키 K에 대한 정보를 얻을 수는 없다. 왜냐하면, 상술한 CVDP 가정에 의하면, 암호문 c의 성분인 ρbn을 추출할 수는 없기 때문이다.
또한, 세션 키 K뿐만 아니라, 속성 벡터 x에 대해서도 은폐된다. 다시 말해, 비밀 키 k*를 갖지 않는 공격자는, 암호문 c로부터 세션 키 K뿐만 아니라 속성 벡터 x에 대한 정보를 얻을 수도 없다. 여기서, 상술한 DSP 가정은 속성 정보 x를 은폐하는 것을 설명하는 중심적인 역할을 한다. DSP 가정에 의하면, 수학식 100을 수학식 101로부터 구별할 수 없는 것을 나타내기 때문이다.
[수학식 100]
Figure 112011092805583-pct00058
[수학식 101]
Figure 112011092805583-pct00059
<제 5. 쌍대 디스토션 벡터 공간>
제 4에서 설명한 개념을 근거로 하여, 쌍대 디스토션 벡터 공간에 대하여 설명한다. 상술한 바와 같이, 후술하는 계층적 술어 키 비닉 방식과 계층적 술어 암호는, 쌍대 디스토션 벡터 공간에서 실현된다.
쌍대 디스토션 벡터 공간(V, V*, GT, A, A*, q)은, Fq상의 2개의 N차원 벡터 공간 V, V*의 조와, 자릿수 q의 순회군 GT와, 공간 V의 표준 기저 A:=(a0, …, aN -1)와 공간 V*의 표준 기저 A*:=(a* 0, …, a* N-1)를 갖는 공간으로서, 이하의 (1) 디스토션 사상이 존재하는 것, (2) 비퇴화 쌍선형 페어링이 존재하는 것, (3) 2개의 공간의 표준 기저가 쌍대 정규 직교 기저인 것의 3개의 조건을 만족시키는 공간이다.
(1) 디스토션 사상(상기 제 4-4 참조)
다항식 시간으로 계산 가능한 디스토션 사상 φi,j와 φ* i,j가 존재하는 것.
다시 말해, 수학식 102에 나타내는 공간 V의 준동형 φi,j와 공간 V*의 준동형 φ* i,j가 다항식 시간으로 계산 가능한 것이 첫 번째의 조건이다.
[수학식 102]
Figure 112011092805583-pct00060
(2) 비퇴화 쌍선형 페어링(상기 제 4-1 참조)
다항식 시간으로 계산 가능한 비퇴화 쌍선형 페어링 e가 존재하는 것.
다시 말해, 수학식 103에 나타내는 비퇴화 쌍선형 페어링 e가 존재하는 것이 두 번째의 조건이다.
[수학식 103]
Figure 112011092805583-pct00061
(3) 쌍대 정규 직교 기저(상기 제 4-2 참조)
공간 V의 표준 기저 A와 공간 V*의 표준 기저 A*가 쌍대 정규 직교 기저인 것.
다시 말해, 공간 V의 표준 기저 A와 공간 V*의 표준 기저 A*가, 수학식 104에 나타내는 조건을 만족시키는 것이 세 번째의 조건이다.
[수학식 104]
Figure 112011092805583-pct00062
또, 세 번째의 조건을 만족시키는 것에 의해, 공간 V와 공간 V*가 페어링 연산 e(상기 제 4-2 참조)에 의해 관련지어진 쌍대 공간이라고 하는 것도 말할 수 있다.
여기서, EndFq(V)를 Fq상의 공간 V의 준동형의 Fq 벡터 공간인 것으로 한다. 마찬가지로, EndFq(V*)를 Fq상의 공간 V*의 준동형의 Fq 벡터 공간인 것으로 한다. 그러면, 디스토션 사상 φi,j(resp. φ* i,j)는, N2차원 Fq 벡터 공간 EndFq(V)(resp. EndFq(V*))의 기저를 형성한다.
수학식 105에 나타내는 랜덤한 계수를 이용하여, 수학식 106에 나타내는 V/Fq(resp. V*/Fq)의 랜덤한 다항식 시간으로 계산 가능한 준동형을 효율적으로 샘플링할 수 있다.
[수학식 105]
Figure 112011092805583-pct00063
[수학식 106]
Figure 112011092805583-pct00064
또, 뒤의 실시 형태에서, 쌍대 디스토션 벡터 공간의 예에 대하여 설명한다.
<제 6. 계층적 술어 키 비닉 방식과 계층적 술어 암호의 실현 방법의 개요>
상술한 개념(상기 제 4 참조)과, 쌍대 디스토션 벡터 공간(상기 제 5 참조)을 근거로 하여, 상술한 암호 처리 시스템(10)(상기 제 3 참조)이 계층적 술어 키 비닉 방식과 계층적 술어 암호를 실현하는 방법을 간단하게 설명한다.
우선, 암호 처리 시스템(10)은, 쌍대 디스토션 벡터 공간에서, 계층적 술어 키 비닉 방식과 계층적 술어 암호를 실현한다. 다시 말해, 암호 처리 시스템(10)은, 디스토션 사상과, 비퇴화 쌍선형 페어링과, 쌍대 정규 직교 기저를 갖는 고차원 벡터 공간으로서, 페어링 연산 e에 의해 관련지어진 고차원 쌍대 벡터 공간에서, 계층적 술어 키 비닉 방식과 계층적 술어 암호를 실현한다. 또, 2개의 공간을 관련짓는 페어링 연산 e(고차원 벡터 공간에서의 페어링 연산)는, 상기 제 4-2에서 정의된 페어링 연산이다.
또한, 상기 제 4-5에 의하면, 암호 처리 시스템(10)은, 각 공간 V와 V*의 표준 기저 A와 A*로부터 소정의 변환에 의해 생성된 쌍대 정규 직교 기저 B와 B*를 키 페어(공개 키와 비밀 키의 페어)로서 이용하여, 계층적 술어 키 비닉 방식과 계층적 술어 암호를 실현한다. 상기 제 4-7에 의하면, 암호 처리 시스템(10)의 키 생성 장치(100)는, 쌍대 정규 직교 기저 B와 B* 중 한쪽(이하, 기저 B)을 마스터 공개 키로 하고, 다른 쪽(이하, 기저 B*)을 마스터 비밀 키로 한다.
다시 말해, 도 7의 S101에서 키 생성 장치(100)는, 고차원 벡터 공간인 쌍대 디스토션 벡터 공간의 기저 B를 포함하는 정보를 마스터 공개 키로서 생성하고, 기저 B*를 포함하는 정보를 마스터 비밀 키로서 생성한다. 또한, 키 생성 장치(100)는, 술어 벡터 v 1(v 1=(v0, …, vi)(i=μ1-1))에 근거하여 기저 B*에 있어서의 벡터를 제 1 층째의 비밀 키로서 생성한다. 도 7의 S102에서 암호화 장치(200)는, x 1(x 1=(x0, …, xi)(i=μ1-1))에 근거하여 마스터 공개 키인 기저 B에서의 벡터에 세션 키 K를 생성하기 위한 정보 ρ 또는 평문 정보 m을 삽입하여 암호문 c로서 생성한다. 도 7의 S103에서 복호 장치(300)는, 기저 B에서의 벡터인 암호문 c와, 기저 B*에 있어서의 벡터인 제 1 층째의 비밀 키에 대하여 페어링 연산 e를 행하여, 암호문 c에 삽입된 세션 키 K 또는 평문 정보 m을 추출한다. 또, 복호 장치(300)가 실행하는 고차원 벡터에 대한 페어링 연산 e는 상기 제 4-2에서 정의된 페어링 연산이다.
또한, 도 8의 S201에서 키 위양 장치(400)는, 술어 벡터 v L+1(v L+1=(vi, …, vj)(i=μL, j=μL+1-1))에 근거하여 기저 B*에 있어서의 벡터를 제 L+1 층째의 비밀 키로서 생성한다. 도 8의 S202에서 암호화 장치(200)는, 속성 벡터 x 1로부터 x L+1까지의 속성 벡터(x i(i=1, …, L+1)(=(x0, …, xi)(i=μL+1-1)))에 근거하여 마스터 공개 키인 기저 B에서의 벡터에 세션 키 K를 생성하기 위한 정보 ρ 또는 평문 정보 m을 삽입하여 암호문 c로서 생성한다. 도 8의 S203에서 복호 장치(300)는, 기저 B에서의 벡터인 암호문 c와, 기저 B*에 있어서의 벡터인 제 L+1 층째의 비밀 키에 대하여 페어링 연산 e를 행하여, 암호문 c에 삽입된 세션 키 K 또는 평문 정보 m을 추출한다.
또, 상기 제 4-6에서 말한 계산 곤란 문제에 근거하여, 이 암호 처리의 안전성(세션 키 K 또는 평문 정보 m 및 속성 벡터의 비닉성)은 보장된다.
(실시 형태 2)
본 실시 형태에서는, 실시 형태 1에서 설명한 개념에 근거하여, 계층적 술어 키 비닉 방식을 실현하는 암호 처리 시스템(10)에 대하여 설명한다.
도 10으로부터 도 15에 근거하여, 암호 처리 시스템(10)의 기능과 동작에 대하여 설명한다.
도 10은 본 실시 형태에 따른 암호 처리 시스템(10)의 기능을 나타내는 기능 블록도이다. 암호 처리 시스템(10)은, 상술한 바와 같이, 키 생성 장치(100), 암호화 장치(200), 복호 장치(300), 키 위양 장치(400)를 구비한다. 또한, 여기서도, 복호 장치(300)가 키 위양 장치(400)를 구비하는 것으로 한다.
도 11은 키 생성 장치(100)의 동작을 나타내는 흐름도이다. 도 12는 암호화 장치(200)의 동작을 나타내는 흐름도이다. 도 13은 복호 장치(300)의 동작을 나타내는 흐름도이다. 도 14는 키 위양 장치(400)의 동작을 나타내는 흐름도이다.
도 15는 쌍대 디스토션 벡터 공간의 기저의 구조를 나타내는 개념도이다.
키 생성 장치(100)의 기능과 동작에 대하여 설명한다. 키 생성 장치(100)는, 마스터 키 생성부(110), 마스터 키 기억부(120), 키 벡터 생성부(130), 키 생성용 벡터 생성부(140), 키 배포부(150)를 구비한다.
(S301 : 마스터 키 생성 단계)
마스터 키 생성부(110)는, 수학식 107을 계산하여, 마스터 공개 키 pk와 마스터 비밀 키 sk를 처리 장치에 의해 생성하여 마스터 키 기억부(120)에 기억한다.
[수학식 107]
Figure 112011092805583-pct00065
다시 말해, (1) 마스터 키 생성부(110)는, 보안 파라미터 1λ로, N(=n+2)차원의 쌍대 디스토션 벡터 공간(V, V*, GT, A, A*, q)을 처리 장치에 의해 생성한다. 여기서, Gddvs는, 1λ와 N을 입력으로 하여, 보안 파라미터 1λ와 N차원 공간 V에 대한 (V, V*, GT, A, A*, q)를 출력하는 쌍대 디스토션 벡터 공간 생성 알고리즘이다.
(2) 마스터 키 생성부(110)는, 표준 기저 A로부터 기저 B를 생성하기 위한 선형 변환 X를 처리 장치에 의해 랜덤으로 선택한다.
(3) 마스터 키 생성부(110)는, 선택한 선형 변환 X에 근거하여, 기저 A:=(a0, …, an -1)로부터 기저 B:=(b0, …, bn -1)를 처리 장치에 의해 생성한다.
(4) 마스터 키 생성부(110)는, 기저 A*:=(a* 0, …, a* n-1)로부터 기저 B*:=(b* 0, …, b* n-1)를 생성하기 위한 선형 변환 (XT)-1을 선형 변환 X로부터 처리 장치에 의해 생성한다.
(5) 마스터 키 생성부(110)는, 생성한 선형 변환 (XT)-1에 근거하여, 기저 A*로부터 기저 B*를 처리 장치에 의해 생성한다.
(6) 마스터 키 생성부(110)는, 생성한 기저 B*를 마스터 비밀 키 sk로 하고, 생성한 기저 B를 포함하는 (1λ, μ, V, V*, GT, A, A*, q, B)를 마스터 공개 키 pk로 한다. 그리고, 마스터 키 기억부(120)는, 마스터 키 생성부(110)가 생성한 마스터 공개 키 pk와 마스터 비밀 키 sk를 기억 장치에 기억한다.
또, 쌍대 디스토션 벡터 공간의 차원수는, N(=n+2)인 것으로 했다. 여기서, n은, 계층 정보 μ가 갖는 계층 구조를 나타내기 위해 할당되어 있는 기저 벡터의 수를 나타내는 n이다. 다시 말해, 여기서는, 계층 구조를 나타내기 위해 할당되어 있는 기저 벡터의 수 n에 더하여, 2개의 기저 벡터가 마련되어 있다. 물론, 이것보다 많은 기저 벡터를 마련하더라도 좋다.
도 15에 나타내는 바와 같이, N(=n+2)개의 기저 벡터 중, n개의 기저 벡터가 계층 구조를 나타내기 위해 할당되어 있다. 계층 구조를 나타내기 위해 할당되어 있는 기저 벡터의 구조는, 도 5에 나타내는 구조와 같다. 나머지 2개의 기저 벡터 중 하나의 기저 벡터(n번째의 기저 벡터)는, 세션 키를 생성하는 정보(송신 정보 ρ)를 위한 기저 벡터이다. 나머지 2개의 기저 벡터 중 또 하나의 기저 벡터(n+1번째의 기저 벡터)는, 암호문 c를 랜덤화하기 위한 기저 벡터이다.
즉, S301에 있어서, 마스터 키 생성부(110)는, 수학식 108에 나타내는 Setup 알고리즘 실행하여, 마스터 공개 키 pk와 마스터 비밀 키 sk를 생성한다.
[수학식 108]
Figure 112011092805583-pct00066
(S302 : 키 벡터 k* 1,0 생성 단계)
키 벡터 생성부(130)는, 마스터 공개 키 pk와 마스터 비밀 키 sk와, 술어 벡터 v 1(v 1=(v0, …, vi)(i=μl-1))에 근거하여, 수학식 109를 계산하여, 제 1 층째(레벨 1)의 비밀 키의 선두 요소인 키 벡터 k* 1,0을 처리 장치에 의해 생성한다.
[수학식 109]
Figure 112011092805583-pct00067
다시 말해, (1) 키 벡터 생성부(130)는, 난수 σ1,0을 처리 장치에 의해 생성한다.
(2) 키 벡터 생성부(130)는, 공간 V*의 기저 B*에 있어서의 기저 벡터 b* n에 대한 계수로서 소정의 값(여기서는, 1)을 처리 장치에 의해 설정함과 아울러, 기저 벡터 b* i(i=0, …, μ1-1)에 대한 계수로서 생성한 난수 σ1, 0로 랜덤화한 술어 벡터 v 1의 각 요소를 처리 장치에 의해 설정하여, 키 벡터 k* 1,0을 생성한다.
(S303 : 키 생성용 벡터 k* 1,j 생성 단계)
키 생성용 벡터 생성부(140)는, 마스터 공개 키 pk와 마스터 비밀 키 sk와, 술어 벡터 v 1에 근거하여, 수학식 110을 계산하여, 하위의 비밀 키(하위의 키 벡터)를 생성하기 위한 키 생성용 벡터 k* 1,j를 처리 장치에 의해 생성한다. 키 생성용 벡터 k* 1,j는, 제 1 층째의 비밀 키의 j번째의 요소이다.
[수학식 110]
Figure 112011092805583-pct00068
다시 말해, (1) 키 생성용 벡터 생성부(140)는, 난수 σ1,j(j=μ1, …, n-1)를 처리 장치에 의해 생성한다.
(2) 키 생성용 벡터 생성부(140)는, j=μ1, …, n-1의 각 j에 대하여, 공간 V*의 기저 B*에 있어서의 기저 벡터 b* j에 대한 계수로서 소정의 값(여기서는, 1)을 처리 장치에 의해 설정함과 아울러, 기저 벡터 b* i(i=0, …, μ1-1)에 대한 계수로서 생성한 난수 σ1,j로 랜덤화한 술어 벡터 v 1의 각 요소를 처리 장치에 의해 설정하여, 키 생성용 벡터 k* 1,j를 생성한다.
즉, S302와 S303에 있어서, 키 벡터 생성부(130)와 키 생성용 벡터 생성부(140)는, 수학식 111에 나타내는 GenKey 알고리즘을 실행하여, 키 벡터 k* 1,0과 키 생성용 벡터 k* 1,j를 포함하는 제 1 층째의 비밀 키(키 정보 k→* 1)를 처리 장치에 의해 생성한다.
[수학식 111]
Figure 112011092805583-pct00069
(S304 : 키 배포 단계)
키 배포부(150)는, 마스터 키 생성부(110)가 생성한 마스터 공개 키와, 키 벡터 생성부(130)와 키 생성용 벡터 생성부(140)가 생성한 키 정보 k→* 1을 복호 장치(300)에 통신 장치를 통해 송신한다. 또한, 키 배포부(150)는, 마스터 공개 키를 암호화 장치(200)에 통신 장치를 통해 송신한다. 여기서, 키 정보 k→* 1은 비밀리에 복호 장치(300)에 송신되지만, 키 정보 k→* 1을 비밀리에 복호 장치(300)에 송신하는 방법에 관해서는, 어떠한 방법이더라도 상관없다. 예컨대, 종래의 암호 처리를 사용하고 송신하더라도 좋다.
암호화 장치(200)의 기능과 동작에 대하여 설명한다. 암호화 장치(200)는, 송신 정보 설정부(210), 암호 벡터 생성부(220), 데이터 송신부(230), 세션 키 생성부(240)를 구비한다.
(S401 : 송신 정보 설정 단계)
송신 정보 설정부(210)는, 마스터 공개 키 pk에 근거하여, 수학식 112를 처리 장치에 의해 계산하여 송신 정보 벡터 ρv를 생성한다.
[수학식 112]
Figure 112011092805583-pct00070
다시 말해, 송신 정보 설정부(210)는, 마스터 공개 키 pk에 포함되는 기저 B의 기저 벡터 bn에 대한 계수로서 송신 정보 ρ(여기서는, 난수)를 처리 장치에 의해 설정하여, 송신 정보 벡터 ρv를 생성한다.
(S402 : 암호 벡터 생성 단계)
암호 벡터 생성부(220)는, 마스터 공개 키 pk와 x 1로부터 속성 벡터 x L(x i(i=1, …, L)(=(x0, …, xi)(i=μL-1)))에 근거하여, 수학식 113을 처리 장치에 의해 계산하여 암호 벡터 c를 생성한다. 여기서, L은, 계층의 깊이이다.
[수학식 113]
Figure 112011092805583-pct00071
다시 말해, (1) 암호 벡터 생성부(220)는, 난수 x i(i=L+1, …, d)와, 난수 δi(i=1, …, d, n+1)를 처리 장치에 의해 생성한다.
(2) 암호 벡터 생성부(220)는, 이하와 같이, 마스터 공개 키 pk에 포함되는 기저 B의 기저 벡터 bi(i=0, …, μL-1)에 대한 계수로서 속성 벡터의 각 요소를 처리 장치에 의해 설정함과 아울러, 기저 벡터 bi(i=μL, …, n-1)에 대한 계수로서 난수를 처리 장치에 의해 설정하여 속성 정보 벡터 xv를 생성한다.
우선, 암호 벡터 생성부(220)는, 기저 벡터 bi(i=0, …, μ1-1)에 대한 계수로서 난수 δ1로 랜덤화한 속성 벡터 x 1을 설정한다. 또한, 암호 벡터 생성부(220)는, 기저 벡터 bi(i=μ1, …, μ2-1)에 대한 계수로서 난수 δ2로 랜덤화한 속성 벡터 x 2(x 2=(xi, …, xj)(i=μ1, j=μ2-1))를 설정한다. 이하 마찬가지로, 암호 벡터 생성부(220)는, 기저 벡터 bi(i=μk-1, …, μk-1)(k=3, …, L)에 대한 계수로서 난수 δk로 랜덤화한 속성 벡터 x k(x k=(xi, …, xj)(i=μk-1, j=μk-1))를 설정한다.
또한, 암호 벡터 생성부(220)는, 기저 벡터 bi(i=μL, …, n-1)에 대한 계수로서 난수 x i(i=L+1, …, d)와 난수 δi(i=L+1, …, d)로부터 계산한 난수치를 설정한다.
(3) 암호 벡터 생성부(220)는, 마스터 공개 키 pk에 포함되는 기저 B의 기저 벡터 bn +1에 대한 계수로서 난수 δn+1을 처리 장치에 의해 설정하여, 난수 벡터 rv를 생성한다.
(4) 암호 벡터 생성부(220)는, 생성한 속성 정보 벡터 xv와 난수 벡터 rv를, 송신 정보 설정부(210)가 생성한 송신 정보 벡터 ρv에 가산하여 암호 벡터 c를 처리 장치에 의해 생성한다.
(S403 : 데이터 송신 단계)
데이터 송신부(230)는, 암호 벡터 생성부(220)가 생성한 암호 벡터 c를 복호 장치(300)에 통신 장치를 통해 송신한다.
(S404 : 세션 키 생성 단계)
세션 키 생성부(240)는, 수학식 114를 처리 장치에 의해 계산하여 세션 키 K를 생성한다.
[수학식 114]
Figure 112011092805583-pct00072
즉, 암호화 장치(200)는, 수학식 115에 나타내는 Enc 알고리즘을 실행하여, 암호 벡터 c와, 세션 키 K를 생성한다.
[수학식 115]
Figure 112011092805583-pct00073
복호 장치(300)의 기능과 동작에 대하여 설명한다. 복호 장치(300)는, 벡터 입력부(310) ,키 벡터 기억부(320), 페어링 연산부(330)를 구비한다.
(S501 : 벡터 입력 단계)
벡터 입력부(310)는, 암호화 장치(200)의 데이터 송신부(230)가 송신한 암호 벡터 c를 통신 장치를 통해 수신하여 입력한다.
(S502 : 페어링 연산 단계)
페어링 연산부(330)는, 마스터 공개 키 pk와 제 L 층째의 비밀 키의 선두 요소인 키 벡터 k* L,0에 근거하여, 수학식 116을 처리 장치에 의해 계산하여 세션 키 K'(=K)를 생성한다.
[수학식 116]
Figure 112011092805583-pct00074
다시 말해, 페어링 연산부(330)는, 벡터 입력부(310)가 입력한 암호 벡터 c와, 키 벡터 기억부(320)가 기억 장치에 기억한 키 벡터 k* L,0에 대하여, 마스터 공개 키 pk에 포함되는 공간 V와 공간 V*를 관련짓는 페어링 연산 e를 처리 장치에 의해 행하는 것에 의해 세션 키 K'를 계산한다. 또, 키 벡터 기억부(320)는, 키 생성 장치(100) 또는 상위의 키 위양 장치(400)로부터 키 벡터 k* L,0이 배포되었을 때, 키 벡터 k* L,0을 기억 장치에 기억한다.
이 페어링 연산에 의해, 세션 키 K를 계산할 수 있는 것에 대하여 상세하게는 후술한다.
다시 말해, 복호 장치(300)는, 수학식 117에 나타내는 Dec 알고리즘을 실행하여, 세션 키 K'를 생성한다.
[수학식 117]
Figure 112011092805583-pct00075
키 위양 장치(400)의 기능과 동작에 대하여 설명한다. 키 위양 장치(400)는, 키 벡터 취득부(410), 키 벡터 생성부(420), 키 생성용 벡터 생성부(430), 키 배포부(440)를 구비한다.
(S601 : 키 벡터 k* L,0 취득 단계)
키 벡터 취득부(410)는, 제 L 층째의 비밀 키의 선두 요소인 키 벡터 k* L,0과, 제 L 층째의 비밀 키의 j번째(j=μ1, …, n-1)의 요소인 키 생성용 벡터 k* L,j를 포함하는 제 L 층째의 비밀 키(키 정보 k→* L)를 통신 장치를 통해 취득한다. 다시 말해, 키 생성 장치(100)가 배포한 키 벡터 k* 1,0과 키 생성용 벡터 k* 1,j를 포함하는 키 정보 k→* 1, 또는, 상위의 키 위양 장치(400)가 배포한 키 벡터 k* L,0과 키 생성용 벡터 k* L,j를 포함하는 키 정보 k→* L을 통신 장치를 통해 취득한다.
(S602 : 키 벡터 k* L+1,0 생성 단계)
키 벡터 생성부(420)는, 마스터 공개 키 pk와 키 정보 k→* L과 술어 벡터 v L+1(v L+1=(vi, …, vj)(i=μL, j=μL+1-1))에 근거하여, 수학식 118을 계산하여, 제 L+1 층째의 비밀 키의 선두 요소인 키 벡터 k* L+1,0을 처리 장치에 의해 생성한다.
[수학식 118]
Figure 112011092805583-pct00076
다시 말해, (1) 키 벡터 생성부(420)는, 난수 σL+1,0을 처리 장치에 의해 생성한다.
(2) 키 벡터 생성부(420)는, 키 생성용 벡터 k* L,i(i=μL, …, μL+1-1)에 대한 계수에 난수 σL+1,0으로 랜덤화한 술어 벡터 v L+1의 각 요소를 설정한 벡터 vi(i=μL, …, μL+1-1)를, 키 벡터 k* L,0에 가산하여 키 벡터 k* L+1,0을 처리 장치에 의해 생성한다.
(S603 : 키 생성용 벡터 k* L+1,j 생성 단계)
키 생성용 벡터 생성부(430)는, 마스터 공개 키 pk와 키 정보 k→* L과 술어 벡터 v L+1에 근거하여, 수학식 119를 계산하여, 하위의 비밀 키(하위의 키 벡터)를 생성하기 위한 키 생성용 벡터 k* L+1,j(j=μL+1, …, n-1)를 처리 장치에 의해 생성한다. 키 생성용 벡터 k* L+1,j는, 제 L+1 층째의 비밀 키의 j번째의 요소이다.
[수학식 119]
Figure 112011092805583-pct00077
다시 말해, (1) 키 생성용 벡터 생성부(430)는, 난수 σL+1,j(j=μL+1, …, n-1)를 처리 장치에 의해 생성한다.
(2) 키 생성용 벡터 생성부(430)는, j=μL+1, …, n-1의 각 j에 대하여, 키 생성용 벡터 k* L,j에, 키 생성용 벡터 k* L,i(i=μL, …, μL+1-1)에 대한 계수로서 난수 σL+1,j로 랜덤화한 술어 벡터 v L+1의 각 요소를 설정한 벡터를 가산하여, 키 벡터 k* L+1,0의 하위의 키 벡터를 생성하기 위한 키 생성용 벡터 k* L+1,j를 처리 장치에 의해 생성한다.
즉, S602와 S603에 있어서, 키 벡터 생성부(420)와 키 생성용 벡터 생성부(430)는, 수학식 120에 나타내는 DelegateL 알고리즘을 실행하여, 키 벡터 k* L+1,0과 키 생성용 벡터 k* L+1,j를 포함하는 제 L+1 층째의 비밀 키(키 정보 k→* L+1)를 처리 장치에 의해 생성한다.
[수학식 120]
Figure 112011092805583-pct00078
다시 말해, 수학식 120에 나타내는 키 정보 k→* L+1 중, 선두(1번째)의 요소 k* L,0이 복호 키 L+1이 되는 키 벡터 k* L+1,0이다. 또한, 수학식 120에 나타내는 키 정보 k→* L+1 중, 2번째 이후의 요소가 키 위양을 위한 태그이다.
(S604 : 키 배포 단계)
키 배포부(440)는, 키 벡터 생성부(420)와 키 생성용 벡터 생성부(430)가 생성한 키 정보 k→* L+1을 하위의 복호 장치(300)에 통신 장치를 통해 송신한다. 여기서, 키 정보 k→* L+1은 비밀리에 복호 장치(300)에 송신되지만, 키 정보 k→* L+1을 비밀리에 복호 장치(300)에 송신하는 방법에 관해서는, 어떠한 방법이더라도 상관없다. 예컨대, 종래의 암호 처리를 사용하여 송신하더라도 좋다.
도 16은 S502에 있어서의 페어링 연산을 설명하기 위한 도면이다.
도 16에 근거하여, S502에 있어서, 페어링 연산부(330)가 상기 수학식 116에 나타내는 페어링 연산에 의해 세션 키 K(=K')를 추출할 수 있는 것을 설명한다. 또, 도 16에서는, 설명을 간단하게 하기 위해, 난수 σ와 난수 δ의 첨자를 생략하여 나타내고 있다.
상술한 바와 같이, 제 L 계층에서의 암호문 c는, 기저 벡터 bi(i=0, …, μL-1)에 대한 계수로서 랜덤화한 속성 벡터가 설정되어 있다. 또한, 암호문 c는, 기저 벡터 bi(i=μL, …, n-1)에 대한 계수로서 난수 x가 설정되어 있다. 또한, 암호문 c는, 기저 벡터 bn에 대한 계수로서 ρ가 설정되어 있다. 또한, 암호문 c는, 기저 벡터 bn +1에 대한 계수로서 난수 δ가 설정되어 있다.
한편, 제 L 계층에서의 키 벡터 k* L,0은, 기저 벡터 b* i(i=0, …, μL-1)에 대한 계수로서 랜덤화한 술어 벡터가 설정되어 있다. 또한, 키 벡터 k* L,0은, 기저 벡터 b* i(i=μL, …, n-1)에 대한 계수는 설정되어 있지 않다. 다시 말해, 계수로서 0이 설정되어 있다. 또한, 키 벡터 k* L,0은, 기저 벡터 b* n에 대한 계수로서 1이 설정되어 있다. 또한, 키 벡터 k* L,0은, 기저 벡터 bn +1에 대한 계수로서 0이 설정되어 있다.
여기서, 수학식 116에 나타내는 페어링 연산을 행하면, 키 벡터 k* L,0에 있어서, 계수로서 0이 설정되어 있는 기저 벡터 b* i(i=μL, …, n-1, n+1)와, 대응하는 암호문 c의 기저 벡터 bi(i=μL, …, n-1, n+1)의 내적은 0이 된다.
또한, 암호문 c에서 계수로서 속성 벡터가 설정된 기저 벡터 bi(i=0, …, μL-1)와, 키 벡터 k* L,0에 있어서 계수로서 술어 벡터가 설정된 기저 벡터 b* i(i=0, …, μL-1)의 내적은 0이 된다. 속성 벡터와 술어 벡터는 내적이 0이 되도록 설정된 것이기 때문이다.
따라서, 수학식 116에 나타내는 페어링 연산의 결과 e(ρbn, b* n)만이 내적 0이 되지 않고서 남는다. 따라서, e(ρbn, b* n)=uρ=K이며, 수학식 116에 나타내는 페어링 연산을 계산함으로써, 세션 키 K를 계산할 수 있다.
도 17은 하위의 키로는, 세션 키 K를 계산할 수 없는 것을 설명하기 위한 도면이다.
도 17에 근거하여, S502에 있어서, 상위 계층의 속성 벡터에 근거하여 암호화한 암호문 c와, 하위 계층의 키 벡터 k* Lv ,0에 대하여, 페어링 연산부(330)가 상기 수학식 116에 나타내는 페어링 연산에 의해 세션 키 K를 추출할 수 없는 것을 설명한다. 또, 도 17에서는, 설명을 간단하게 하기 위해, 난수 σ와 난수 δ의 첨자를 생략하여 나타내고 있다. 또한, 도 17에 대한 설명에 있어서, Lx(=Lx)<Lv(=Lv)이다.
제 Lx 계층에서의 암호문 c는, 기저 벡터 bi(i=0, …, μLx-1)에 대한 계수로서 랜덤화한 속성 벡터가 설정되어 있다. 또한, 암호문 c는, 기저 벡터 bi(i=μLx, …, n-1)에 대한 계수로서 난수 x가 설정되어 있다. 또한, 암호문 c는, 기저 벡터 bn에 대한 계수로서 ρ가 설정되어 있다. 또한, 암호문 c는, 기저 벡터 bn +1에 대한 계수로서 난수 δ가 설정되어 있다.
한편, 제 Lv 계층에서의 키 벡터 k* Lv ,0은, 기저 벡터 b* i(i=0, …, μLv-1)에 대한 계수로서 랜덤화한 술어 벡터가 설정되어 있다. 또한, 키 벡터 k* Lv ,0은, 기저 벡터 b* i(i=μLv, …, n-1)에 대한 계수는 설정되어 있지 않다. 다시 말해, 계수로서 0이 설정되어 있다. 또한, 키 벡터 k* Lv ,0은, 기저 벡터 b* n에 대한 계수로서 1이 설정되어 있다. 또한, 키 벡터 k* Lv ,0은, 기저 벡터 bn +1에 대한 계수로서 0이 설정되어 있다.
여기서, 수학식 116에 나타내는 페어링 연산을 행하면, 키 벡터 k* L,0에 있어서, 계수로서 0이 설정되어 있는 기저 벡터 b* i(i=μLv, …, n-1, n+1)와, 대응하는 암호문 c의 기저 벡터 bi(i=μLv, …, n-1, n+1)의 내적은 0이 된다.
또한, 암호문 c에서 계수로서 속성 벡터가 설정된 기저 벡터 bi(i=0, …, μLx-1)와, 키 벡터 k* L,0에 있어서 계수로서 술어 벡터가 설정된 기저 벡터 b* i(i=0, …, μLx-1)의 내적은 0이 된다.
그러나, 암호문 c에서 계수로서 난수가 설정된 기저 벡터 bi(i=μLx, …, μLv-1)와, 키 벡터 k* L,0에 있어서 계수로서 술어 벡터가 설정된 기저 벡터 b* i(i=μLx, …, μLv-1)의 내적은 0이 되지 않는다.
따라서, e(ρbn, b* n) 이외에도 값이 남아버려 세션 키 K를 계산할 수 없다.
도 18은 상위의 키로, 세션 키 K를 계산할 수 있는 것을 설명하기 위한 도면이다.
도 18에 근거하여, S502에 있어서, 하위 계층의 속성 벡터에 근거하여 암호화한 암호문 c와, 상위 계층의 키 벡터 k* Lv ,0에 대하여, 페어링 연산부(330)가 상기 수학식 116에 나타내는 페어링 연산에 의해 세션 키 K를 추출할 수 있는 것을 설명한다. 또, 도 18에서는, 설명을 간단하게 하기 위해, 난수 σ와 난수 δ의 첨자를 생략하여 나타내고 있다. 또한, 도 20에 대한 설명에 있어서, Lx(=Lx)>Lv(=Lv)이다.
암호문 c와 키 벡터 k* Lv ,0의 각 기저 벡터에 대한 계수로서는, 도 17의 경우와 같이 설정되어 있다. 단, 상기한 바와 같이, Lx(=Lx)>Lv(=Lv)이다.
여기서, 수학식 116에 나타내는 페어링 연산을 행하면, 키 벡터 k* L,0에 있어서, 계수로서 0이 설정되어 있는 기저 벡터 b* i(i=μLv, …, n-1, n+1)와, 대응하는 암호문 c의 기저 벡터 bi(i=μLv, …, n-1, n+1)의 내적은 0이 된다.
또한, 암호문 c에서 계수로서 속성 벡터가 설정된 기저 벡터 bi(i=0, …, μLv-1)와, 키 벡터 k* L,0에 있어서 계수로서 술어 벡터가 설정된 기저 벡터 b* i(i=0, …, μLv-1)의 내적은 0이 된다.
따라서, 수학식 116에 나타내는 페어링 연산의 결과 e(ρbn, b* n)만이 내적 0이 되지 않고서 남는다. 따라서, e(ρbn, b* n)=uρ=K이며, 수학식 116에 나타내는 페어링 연산을 계산함으로써, 세션 키 K를 계산할 수 있다.
또, 이상의 설명으로부터 분명하듯이, 상기 S402의 (2)에서, 기저 벡터 bi(i=μj, …, μj+1-1)(j=L+1, …, d)에 대한 계수로서 랜덤화한 난수치를 설정한 것은, 하위의 키 벡터에 대한 우위성을 유지하기 위해서이다. 다시 말해, 키 벡터 k* L,0이면, 암호 벡터 c를 복호할 수 있지만, 키 벡터 k* L,0보다 하위의 키 벡터로는 암호 벡터 c를 복호할 수 없도록 하기 위해서이다.
이상과 같이, 본 실시 형태에 따른 암호 처리 시스템(10)은, 실시 형태 1에서 설명한 개념에 근거하여, 계층적 술어 키 비닉 방식을 실현할 수 있다.
또, 상기 설명에 있어서, 키 생성 장치(100)는, 제 1 층째의 비밀 키를 생성했다. 다시 말해, 키 생성 장치(100)는, S302에서 k* 1,0을 생성하고, S303에서 k* 1,j(j=μ1, …, n-1)를 생성했다.
그러나, 키 생성 장치(100)는, 제 1 층째의 키가 아니라, 제 L 층째(L≥2)의 키를 생성한다고 해도 좋다. 다시 말해, 키 생성 장치(100)는, S302에서 k* L,0을 생성하고, S303에서 k* L,j(j=μL, …, n-1)를 생성하더라도 좋다.
즉, S302에서, 키 벡터 생성부(130)는, 마스터 공개 키 pk와 마스터 비밀 키 sk와, 수학식 121에 나타내는 술어 벡터(v 1, …, v L)에 근거하여, 수학식 122를 계산하여, 제 L 층째(레벨 L)의 비밀 키의 선두 요소인 키 벡터 k* L,0을 처리 장치에 의해 생성한다.
[수학식 121]
Figure 112011092805583-pct00079
[수학식 122]
Figure 112011092805583-pct00080
또한, 키 생성용 벡터 생성부(140)는, 마스터 공개 키 pk와 마스터 비밀 키 sk와, 수학식 121에 나타내는 술어 벡터(v 1, …, v L)에 근거하여, 수학식 123을 계산하여, 하위의 비밀 키를 생성하기 위한 키 생성용 벡터 k* L,j를 처리 장치에 의해 생성한다.
[수학식 123]
Figure 112011092805583-pct00081
다시 말해, S302와 S303에 있어서, 키 벡터 생성부(130)와 키 생성용 벡터 생성부(140)는, 수학식 124에 나타내는 GenKey 알고리즘을 실행하여, 키 벡터 k* L,0과 키 생성용 벡터 k* L,j를 포함하는 제 L 층째의 비밀 키(키 정보 k→* L)를 처리 장치에 의해 생성한다고 해도 좋다.
[수학식 124]
Figure 112011092805583-pct00082
또, 이하의 설명에 있어서도, 키 생성 장치(100)는, GenKey 알고리즘에 의해, 제 1 층째의 비밀 키를 생성하는 것으로 하여 설명한다. 그러나, 이하의 설명에 있어서도, 키 생성 장치(100)는, 제 L 층째의 비밀 키를 생성한다고 해도 좋다.
또한, 이하와 같이 본 실시 형태에 따른 암호 처리 시스템(10)을 변경함으로써, 암호 처리 시스템(10)은 계층적 술어 암호를 실현할 수 있다.
도 19는 계층적 술어 암호를 실현하는 암호 처리 시스템(10)의 기능을 나타내는 기능 블록도이다. 도 19에 나타내는 암호 처리 시스템(10)의 키 생성 장치(100)와 키 위양 장치(400)는, 도 10에 나타내는 암호 처리 시스템(10)의 키 생성 장치(100)와 키 위양 장치(400)와 동일하다. 도 19에 나타내는 암호 처리 시스템(10)의 암호화 장치(200)는, 도 10에 나타내는 암호 처리 시스템(10)의 암호화 장치(200)가 구비하는 세션 키 생성부(240)를 구비하고 있지 않다. 도 19에 나타내는 암호 처리 시스템(10)의 복호 장치(300)는, 도 10에 나타내는 암호 처리 시스템(10)의 복호 장치(300)가 구비하는 기능에 더하여, 이산 대수 계산부(340)를 구비한다.
도 20은 도 19에 나타내는 암호화 장치(200)의 동작을 나타내는 흐름도이다. 도 21은 도 19에 나타내는 복호 장치(300)의 동작을 나타내는 흐름도이다. 또, 키 생성 장치(100)와 키 위양 장치(400)의 동작은, 도 10에 나타내는 암호 처리 시스템(10)의 키 생성 장치(100)와 키 위양 장치(400)의 동작과 동일하기 때문에, 설명을 생략한다.
S701에서, 암호화 장치(200)의 송신 정보 설정부(210)는, S401에서의 송신 정보 ρ 대신에, 평문 정보 m을 기저 벡터 bn에 대한 계수로서 처리 장치에 의해 설정하여, 평문 벡터 mv를 생성한다. 다음으로, S702에서, 암호 벡터 생성부(220)는, S402와 같이 속성 정보 벡터 xv와 난수 벡터 rv를 생성한다. 그리고, 암호 벡터 생성부(220)는, 생성한 속성 정보 벡터 xv와 난수 벡터 rv를, 평문 벡터 mv에 가산하여 암호 벡터 c를 처리 장치에 의해 생성한다. 그리고, S703에서, 데이터 송신부(230)는, S402와 같이 생성한 암호 벡터 c를 복호 장치(300)에 통신 장치를 통해 송신한다.
S801에서, 복호 장치(300)의 벡터 입력부(310)는, S501과 같이 암호 벡터 c를 통신 장치를 통해 수신하여 입력한다. S802에서, 페어링 연산부(330)는, S502와 같이 암호 벡터 c와 키 벡터 k* L,0에 대하여, 마스터 공개 키 pk에 포함되는 공간 V와 공간 V*를 관련짓는 페어링 연산 e를 처리 장치에 의해 행한다. 그리고, 키 벡터 기억부(320)는, 평문 정보 m에 관한 정보 f(=um)를 취득한다. S803에서, 이산 대수 계산부(340)는, f에 대하여, u를 밑으로 하는 이산 대수 문제를 풀어, 평문 정보 m을 계산한다. 다시 말해, 이산 대수 계산부(340)는, 수학식 125를 계산한다.
[수학식 125]
Figure 112011092805583-pct00083
여기서 입력하는 평문 정보 m은, 소정의 작은 정수 τ보다 작은 수인 것으로 한다. 다시 말해, 0≤m<τ이다. 이것은, 상술한 바와 같이, 복호 장치(300)가 평문 정보 m을 계산할 때, 이산 대수 문제를 풀 필요가 있기 때문이다. 다시 말해, 평문 정보 m을 자유롭게 설정할 수 있도록 하여버리면, 복호 장치(300)가 평문 정보 m을 계산하기 위해 많은 시간이 필요하게 되기 때문이다. 그래서, 평문 정보 m을 소정의 작은 정수 τ보다 작은 수로 제한하는 것으로, 예컨대, 평문 정보 m이 취할 수 있는 모든 값을 전체 탐색으로 조사했다고 해도, 단시간에 평문 정보 m을 계산할 수 있다.
이와 같이, 평문 정보 m을 작은 값으로 제한한 경우라도, 많은 응용이 가능한 것은 일반적으로 알려져 있다.
또, 상기 설명에서는, 평문 정보 m을 하나의 기저 벡터 bn에만 설정하는 예를 설명했다. 그러나, 이상의 설명에 근거하면, 용이하게 복수의 기저 벡터에 평문 정보 m을 설정하는 것도 가능하다.
또한, 상술한 계층적 술어 키 비닉 방식 및 계층적 술어 암호에서는, 쌍대 디스토션 벡터 공간인 것의 조건에 포함되고 있었던 디스토션 사상을 이용하지 않고 있다. 디스토션 사상에 대해서는, 암호 처리를 실현하는 알고리즘에서는 사용하지 않고, 암호 처리의 안전성을 증명하기 위해 사용한다. 따라서, 상술한 계층적 술어 키 비닉 방식 및 계층적 술어 암호는, 디스토션 사상이 없는 공간이더라도 성립한다고 할 수 있다. 즉, 상술한 계층적 술어 키 비닉 방식 및 계층적 술어 암호를 실현하는 공간에 디스토션 사상이 있는 것은, 필수적이지 않다.
(실시 형태 3)
본 실시 형태에서는, 실시 형태 2에서 설명한 계층적 술어 키 비닉 방식의 안전성에 대하여 설명한다.
우선, 본 실시 형태에서는, 계층적 술어 키 비닉 방식의 정당성을 설명한다. 그리고, 실시 형태 2에서 설명한 계층적 술어 키 비닉 방식이 이 정당성의 요건을 만족시키는 것을 설명한다. 다음으로, 계층적 술어 키 비닉 방식에 대한 「속성 비닉 안전」을 설명한다. 다음으로, 안전성의 기준으로서 CPA(Chosen Plaintext Attacks)에 대한 적응적 속성 비닉에 대하여 정의한다. 그리고, 실시 형태 2에서 설명한 계층적 술어 키 비닉 방식은, CPA에 대한 적응적 속성 비닉의 요건을 만족시킨다.
<계층적 술어 키 비닉 방식의 정당성>
계층적 술어 키 비닉 방식은 수학식 126에 나타내는 요건을 만족시키는 것이 필요하다.
[수학식 126]
Figure 112011092805583-pct00084
<실시 형태 2에서 설명한 계층적 술어 키 비닉 방식의 정당성>
실시 형태 2에서 설명한 계층적 술어 키 비닉 방식이 상술한 정당성의 요건을 만족시키는 것을 설명한다.
이하의 설명에 있어서, 수학식 127에 나타내는 표기를 이용한다.
[수학식 127]
Figure 112011092805583-pct00085
우선, 이하의 보제 1이 성립하는 것을 설명한다.
(보제 1)
L을 1≤L≤d로 한다. 수학식 128에 나타내는 제 L 층째의 비밀 키는, 수학식 129에 나타내는 식의 계수 φL,i,j∈Fq의 선형 결합에 의해 주어진다.
[수학식 128]
Figure 112011092805583-pct00086
[수학식 129]
Figure 112011092805583-pct00087
(보제 1이 성립하는 것의 설명)
L에서의 귀납법을 이용하여 설명한다.
L=1에 대하여, 수학식 130이므로 보제 1은 성립한다.
[수학식 130]
Figure 112011092805583-pct00088
L-1의 경우에 보제 1이 성립한다고 가정한다. 다시 말해, 수학식 131이다.
[수학식 131]
Figure 112011092805583-pct00089
여기서, 수학식 132이다.
[수학식 132]
Figure 112011092805583-pct00090
이것은, 수학식 129가 k* L,0에 대하여 성립하는 것을 나타낸다. 마찬가지로, 수학식 129는 k* L,i(i=μL, …, n-1)에 대하여 성립하는 것도 말할 수 있다.
(보제 2)
실시 형태 2에서 설명한 계층적 술어 키 비닉 방식이 상술한 정당성의 요건을 만족시킨다.
(보제 2가 성립하는 것의 설명)
c를 수학식 133에 나타내는 속성 벡터 x Lx에 대응하는 비닉된 세션 키인 것으로 한다. 기저 B와 B*의 정규 직교성, 다시 말해 수학식 134와 보제 1에 의해, 복원된 세션 키 K'는, 수학식 135가 된다.
[수학식 133]
Figure 112011092805583-pct00091
[수학식 134]
Figure 112011092805583-pct00092
[수학식 135]
Figure 112011092805583-pct00093
그 때문에, 수학식 136이 된다.
[수학식 136]
Figure 112011092805583-pct00094
여기서, 수학식 137인 경우에는, 수학식 138이다.
[수학식 137]
Figure 112011092805583-pct00095
[수학식 138]
Figure 112011092805583-pct00096
왜냐하면, 수학식 135에 있어서 수학식 139는 Fq에서 똑같이 랜덤이며, K'는 GT에서 똑같이 랜덤이기 때문이다.
[수학식 139]
Figure 112011092805583-pct00097
수학식 140인 경우, 정의로부터 수학식 141인 j가 존재한다.
[수학식 140]
Figure 112011092805583-pct00098
[수학식 141]
Figure 112011092805583-pct00099
그래서, Lv>Lx의 경우에 대해서만 생각한다. Lv>Lx이면, c에서 이용된 수학식 142에 나타내는 벡터(속성이 아니다)는, 똑같이 랜덤이다.
[수학식 142]
Figure 112011092805583-pct00100
또한, 수학식 143에 나타내는 술어는 비 제로이다.
[수학식 143]
Figure 112011092805583-pct00101
그 때문에, 무시할 수 있는 확률을 제외하고, 수학식 144이다.
[수학식 144]
Figure 112011092805583-pct00102
<속성 비닉 안전>
계층적 술어 키 비닉 방식에 대한 속성 비닉 안전이란, 암호문(암호 벡터)을 생성하기 위해 사용한 속성 벡터에 대한 비닉성이 유지되는 것이다. 다시 말해, 속성 비닉 안전인 계층적 술어 키 비닉 방식에 있어서, 공격자 A는, 암호문을 취득한 경우라도, 암호문을 생성하기 위해 사용한 속성 벡터에 대하여, 송신 정보 ρ에 관한 정보(세션 키 K)와 마찬가지로 알 수 없다.
술어 키 비닉 방식에 대한 속성 비닉 안전에 대한 정확한 정의는, 비특허 문헌 19에 기재가 있다. 또, 비특허 문헌 19에서는, 「계층적」이라고 하는 개념을 고려하지 않고 있다. 그래서, 「계층적」이라고 하는 개념, 즉 키 위양이라는 처리를 고려하기 위해, 수학식 145에 나타내는 (1), (2)의 2개의 경우도 다루어, 비특허 문헌 19에 기재된 술어 키 비닉 방식에 대한 속성 비닉 안전에 대한 정의를, 계층적 술어 키 비닉 방식을 포함하도록 일반화한다. 이하의 설명에 있어서, 비트 τ는, 상기 2개의 경우를 전환하기 위해 사용된다.
[수학식 145]
Figure 112011092805583-pct00103
<CPA에 대한 적응적 속성 비닉의 정의>
계층적 속성 Σ에 있어서의 계층적 술어 F에 대한 계층적 술어 키 비닉 방식이 CPA에 대하여 적응적 속성 비닉인 것의 요건은, 모든 확률적 다항식 시간의 공격자 A에 대하여, 이하에 나타내는 실험(CPA 적응적 속성 비닉 게임)에 있어서의 공격자 A의 어드밴티지가 보안 파라미터에 있어서 무시할 수 있는 것이다.
(실험 : CPA 적응적 속성 비닉 게임)
1. Setup 알고리즘이 실행되어, 마스터 공개 키 pk와 마스터 비밀 키 sk가 생성된다. 그리고, 마스터 공개 키 pk가 공격자 A에 주어진다.
2. 공격자 A는, 수학식 146에 나타내는 벡터에 대응하는 키를 적응적으로 요구할 수 있다.
[수학식 146]
Figure 112011092805583-pct00104
그 요구에 대한 응답으로서, 공격자 A는, 수학식 147에 나타내는 요구에 대응하는 키가 주어진다.
[수학식 147]
Figure 112011092805583-pct00105
3. 공격자 A는, 수학식 148의 제한 하에서 수학식 149를 출력한다.
[수학식 148]
Figure 112011092805583-pct00106
[수학식 149]
Figure 112011092805583-pct00107
4. 랜덤인 비트 θ가 선택된다. 또한, 수학식 150이 계산된다.
[수학식 150]
Figure 112011092805583-pct00108
그리고, 키 K'는, 수학식 151에 나타내는 바와 같이, 관련지어진 세션 키의 공간으로부터 랜덤으로 선택된다.
[수학식 151]
Figure 112011092805583-pct00109
5. 공격자 A는, 상기 제한 하에, 수학식 152에 나타내는 벡터에 대한 키를 계속 요구할 수 있다.
[수학식 152]
Figure 112011092805583-pct00110
6. 공격자 A는 비트 θ'를 출력한다. θ'=θ이면, 성공이다.
여기서, 공격자 A의 어드밴티지를 수학식 153으로서 정의한다.
[수학식 153]
Figure 112011092805583-pct00111
실시 형태 2에서 설명한 계층적 술어 키 비닉 방식은, CPA에 대한 적응적 속성 비닉의 요건을 만족시킨다.
(실시 형태 4)
본 실시 형태에서는, 실시 형태 2에서 설명한 계층적 술어 키 비닉 방식을 응용한 안정성이 높은 계층적 술어 암호에 대하여 설명한다. 여기서 안전성이 높다고 하는 것은, 뒤의 실시 형태에서 설명하는 CCA(Chosen Ciphertext Attacks)에 대한 적응적 속성 비닉의 안전성을 만족시킨다고 하는 의미이다.
우선, CCA에 대한 적응적 속성 비닉의 안전성을 만족시키는 계층적 술어 암호를 실현하기 위한 개념으로서, (1) 안전한 메시지 인증, (2) 안전한 비닉 방식, (3) 안전한 공통 키 암호, (4) 안전한 키 생성 함수의 4개의 개념을 설명한다. 또, (1)부터 (4)의 4개의 개념은, 이하에 설명하는 바와 같이 선행 기술 문헌에 기재된 개념이기 때문에, 여기서는 간단히 설명한다.
다음으로, 상기 4개의 개념을 이용하여, CCA에 대한 적응적 속성 비닉의 안전성을 만족시키는 계층적 술어 암호를 실현하는 암호 처리 시스템(10)에 대하여 설명한다.
<(1) 안전한 메시지 인증>
(Mac, Vrfy)를, 원타임 선택 메시지 공격(one-time chosen-message attacks)에 대하여 안전한 메시지 인증 코드인 것으로 한다. 또, 원타임 선택 메시지 공격에 대하여 안전한 메시지 인증 코드에 대한 정의는, 비특허 문헌 7에 기재되어 있다.
(Mac, Vrfy)는, 쌍을 이루는 처리이며, 각각 이하와 같이 동작한다.
Mac는, 데이터를 암호화하여 인증 정보를 생성하는 처리이다. Mackey(x)는, 데이터 x에 대하여 키 key에 의해 암호화한다. 다시 말해, y=Mackey(x)이면, 데이터 y는, 데이터 x를 키 key로 암호화한 데이터(인증 정보)이다.
Vrfy는, Mac에 의해 생성된 인증 정보를 검증하는 처리이다. Vrfykey'(x', y')는, y=Mackey(x)일 때, x=x', y=y', key=key'인 경우에 1을 돌려주고, x=x', y=y', key=key'의 어느 하나라도 성립하지 않는 경우에 0을 돌려주는 처리이다.
<(2) 안전한 비닉 방식>
(Setupenc, Senc, Renc)를, 안전한 비닉 방식인 것으로 한다. 또한, (Setupenc, Senc, Renc)와 함께, 후술하는 제 1 검증 정보 com, 제 2 검증 정보 dec, 제 3 검증 정보 r을 이용한다. 또, 안전한 비닉 방식에 대한 정의는, 비특허 문헌 7에 기재되어 있다.
(Setupenc, Senc, Renc)는 일체를 이루는 처리이며, 각각 이하와 같이 동작한다.
Setupenc는, 보안 파라미터 1k를 입력으로 하여, 문자열 pub를 랜덤으로 선택하여 출력한다.
Senc는, 1k와 문자열 pub를 입력으로 하여, 제 1 검증 정보 com과 제 2 검증 정보 dec와 r∈{0, 1}k인 제 3 검증 정보 r을 랜덤으로 선택하여 출력한다.
Renc는, 문자열 pub와 제 1 검증 정보 com과 제 2 검증 정보 dec를 입력으로 하여, r∈{0, 1}k∪{⊥}인 제 3 검증 정보 r을 출력한다. 여기서, Renc는, Setupenc가 출력한 문자열 pub와, 그 pub에 의해 Senc가 출력한 제 1 검증 정보 com과 제 2 검증 정보 dec가 입력된 경우, r∈{0, 1}k인 제 3 검증 정보 r을 출력하고, 그 밖의 정보가 입력된 경우 r∈{⊥}인 제 3 검증 정보 r을 출력한다.
<(3) 안전한 공통 키 암호>
(SE, SD)를, 안전한 공통 키 암호 방식인 것으로 한다. 또, 안전한 공통 키 암호 방식에 대한 정의는, 비특허 문헌 1에 기재되어 있다.
(SE, SD)는, 쌍을 이루는 처리이며, 각각 이하와 같이 동작한다.
SE는, 공통 키를 이용하여 암호화하는 처리이다. SEkey(x)는, 데이터 x를 공통 키 key에 의해 암호화하는 처리이다. y=SEkey(x)이면, 데이터 y는, 데이터 x를 공통 키 key에 의해 암호화한 데이터이다.
SD는, 공통 키를 이용하여 복호하는 처리이다. SDkey(y)는, 데이터 y를 공통 키 key에 복호하는 처리이다. 다시 말해, y=SEkey(x)인 경우에, x=SDkey(y)이다.
<(4) 안전한 키 생성 함수>
KDF를, 안전한 키 생성 함수인 것으로 한다. 또, 안전한 키 생성 함수에 대한 정의는, 비특허 문헌 1에 기재되어 있다.
KDF(x)는, 데이터 x에 근거하여 키를 생성하는 처리이다. key=KDF(x)이면, 키 key는 데이터 x에 근거하여 생성된 키이다.
<CCA에 대한 적응적 속성 비닉의 안전성을 만족시키는 계층적 술어 암호>
도 22로부터 도 25와, 도 11과 도 14에 근거하여, 암호 처리 시스템(10)의 기능과 동작에 대하여 설명한다.
도 22는 본 실시 형태에 따른 암호 처리 시스템(10)의 기능을 나타내는 기능 블록도이다. 암호 처리 시스템(10)은, 실시 형태 2에 따른 암호 처리 시스템(10)과 마찬가지로, 키 생성 장치(100), 암호화 장치(200), 복호 장치(300), 키 위양 장치(400)를 구비한다. 또한, 여기서도, 복호 장치(300)가 키 위양 장치(400)를 구비하는 것으로 한다.
도 23은 암호화 장치(200)의 동작을 나타내는 흐름도이다. 도 24는 복호 장치(300)의 동작을 나타내는 흐름도이다. 또, 키 생성 장치(100)와 키 위양 장치(400)의 동작의 흐름은, 실시 형태 2에 따른 키 생성 장치(100)와 키 위양 장치(400)의 동작의 흐름과 동일하다. 그 때문에, 키 생성 장치(100)의 동작에 대해서는, 도 11에 근거하여 설명한다. 또한, 키 위양 장치(400)의 동작에 대해서는, 도 14에 근거하여 설명한다.
도 25는 쌍대 디스토션 벡터 공간의 기저의 구조를 나타내는 개념도이다.
키 생성 장치(100)의 기능과 동작에 대하여 설명한다. 키 생성 장치(100)의 기능 구성은, 도 10에 나타내는 실시 형태 2에 따른 키 생성 장치(100)의 기능 구성과 동일하다. 또한, 키 생성 장치(100)의 동작의 흐름도, 도 11에 나타내는 실시 형태 2에 따른 키 생성 장치(100)의 동작의 흐름과 동일하다. 그 때문에, 도 11에 근거하여 키 생성 장치(100)의 기능과 동작을 설명한다.
(S301 : 마스터 키 생성 단계)
마스터 키 생성부(110)는, 수학식 154를 계산하여, 마스터 공개 키 pk와 마스터 비밀 키 sk를 처리 장치에 의해 생성하여 마스터 키 기억부(120)에 기억한다.
[수학식 154]
Figure 112011092805583-pct00112
또, 수학식 154에 나타내는 (1)부터 (5)는, 수학식 107에 나타내는 (1)부터 (5)와 동일하다. 단, N=n+4인 점에서 다르다. N=n+4인 것에 관해서는 후술한다. (6) 마스터 키 생성부(110)는, Setupenc를 처리 장치에 의해 실행하여 문자열 pub를 생성한다. (7) 마스터 키 생성부(110)는, 생성한 기저 B*를 마스터 비밀 키 sk로 하고, 생성한 기저 B를 포함하는 (1λ, μ, V, V*, GT, A, A*, q, B, pub)를 마스터 공개 키 pk로 한다. 다시 말해, 마스터 공개 키 pk에 문자열 pub가 포함되는 점에서, 실시 형태 2에 따른 마스터 키 생성부(110)가 생성하는 마스터 키와 다르다. 그리고, 마스터 키 기억부(120)는, 마스터 키 생성부(110)가 생성한 마스터 공개 키 pk와 마스터 비밀 키 sk와 기억 장치에 기억한다.
또, 쌍대 디스토션 벡터 공간의 차원수는, N(=n+4)인 것으로 했다. 여기서, n은, 계층 정보 μ가 갖는 계층 구조를 나타내기 위해 할당되어 있는 기저 벡터의 수를 나타내는 n이다. 다시 말해, 여기서는, 계층 구조를 나타내기 위해 할당되어 있는 기저 벡터의 수 n에 더하여, 4개의 기저 벡터가 마련되어 있다. 물론, 이것보다 많은 기저 벡터를 마련하더라도 좋다.
도 25에 나타내는 바와 같이, N(=n+4)개의 기저 벡터 중, n개의 기저 벡터가 계층 구조를 나타내기 위해 할당되어 있다. 계층 구조를 나타내기 위해 할당되어 있는 기저 벡터의 구조는, 도 5에 나타내는 구조와 같다. 그리고, 나머지 4개의 기저 벡터 중 하나의 기저 벡터(n번째의 기저 벡터)는, 평문 정보 m을 위한 기저 벡터이다. 나머지 4개의 기저 벡터 중 다른 하나의 기저 벡터(n+1번째의 기저 벡터)는, 암호문 c를 랜덤화하기 위한 기저 벡터이다. 나머지 4개의 기저 벡터 중 다른 2개의 기저 벡터(n+2, n+3번째의 기저 벡터)는, 검증 정보(제 1 검증 정보 com)를 위한 기저 벡터이다.
즉, S301에 있어서, 마스터 키 생성부(110)는, 수학식 155에 나타내는 Setup 알고리즘을 실행하여, 마스터 공개 키 pk와 마스터 비밀 키 sk를 생성한다.
[수학식 155]
Figure 112011092805583-pct00113
(S302 : 키 벡터 k* 1,0 생성 단계)
실시 형태 2와 마찬가지로, 키 벡터 생성부(130)는, 수학식 156을 계산하여 키 벡터 k* 1,0을 처리 장치에 의해 생성한다.
[수학식 156]
Figure 112011092805583-pct00114
(S303 : 키 생성용 벡터 k* 1,j 생성 단계)
실시 형태 2와 마찬가지로, 키 생성용 벡터 생성부(140)는, 수학식 157을 계산하여 키 생성용 벡터 k* 1,j를 처리 장치에 의해 생성한다.
[수학식 157]
Figure 112011092805583-pct00115
단, 키 생성용 벡터 생성부(140)는, 키 생성용 벡터 k* 1,j(j=μ1, …, n-1, n+2, n+3)를 생성한다. 다시 말해, 키 생성용 벡터 생성부(140)는, 키 생성용 벡터 k* 1,n+2와, 키 생성용 벡터 k* 1,n+3을 생성하는 점에서 도 10에 나타내는 키 생성용 벡터 생성부(140)와 다르다.
즉, S302와 S303에 있어서, 키 벡터 생성부(130)와 키 생성용 벡터 생성부(140)는, 수학식 158에 나타내는 GenKey 알고리즘을 실행하여, 키 벡터 k* 1,0과 키 생성용 벡터 k* 1,j를 포함하는 제 1 층째의 비밀 키(키 정보 k→* 1)를 처리 장치에 의해 생성한다.
[수학식 158]
Figure 112011092805583-pct00116
(S304 : 키 배포 단계)
실시 형태 2의 키 배포부(150)와 마찬가지로, 키 배포부(150)는, 마스터 키 생성부(110)가 생성한 마스터 공개 키와, 키 벡터 생성부(130)와 키 생성용 벡터 생성부(140)가 생성한 키 정보 k→* 1을 복호 장치(300)에 통신 장치를 통해 송신한다. 또한, 키 배포부(150)는, 마스터 공개 키를 암호화 장치(200)에 통신 장치를 통해 송신한다.
암호화 장치(200)의 기능과 동작에 대하여 설명한다. 암호화 장치(200)는, 도 10에 나타내는 실시 형태 2에 따른 암호화 장치(200)가 구비하는 기능에 더하여, 검증 정보 생성부(250), 검증 정보 설정부(260), 서명 정보 생성부(270)(c2 생성부, c3 생성부, c4 생성부)를 구비한다.
(S901 : 검증 정보 생성 단계)
검증 정보 생성부(250)는, 수학식 159를 처리 장치에 의해 계산하여 제 1 검증 정보 com, 제 2 검증 정보 dec, 제 3 검증 정보 r을 생성한다.
[수학식 159]
Figure 112011092805583-pct00117
다시 말해, 검증 정보 생성부(250)는, 마스터 공개 키에 포함되는 문자열 pub를 입력으로 하여, Senc(1λ, pub)를 처리 장치에 의해 실행하여, 제 1 검증 정보 com, 제 2 검증 정보 dec, 제 3 검증 정보 r을 생성한다.
(S902 : 송신 정보 설정 단계)
실시 형태 2와 마찬가지로, 송신 정보 설정부(210)는, 수학식 160을 처리 장치에 의해 계산하여 송신 정보 벡터 ρv를 생성한다.
[수학식 160]
Figure 112011092805583-pct00118
(S903 : 검증 정보 설정 단계)
검증 정보 설정부(260)는, 마스터 공개 키 pk에 근거하여, 수학식 161을 처리 장치에 의해 계산하여 검증 정보 벡터 cv를 생성한다.
[수학식 161]
Figure 112011092805583-pct00119
다시 말해, (1) 검증 정보 설정부(260)는, 난수 δn+2를 처리 장치에 의해 생성한다.
(2) 검증 정보 설정부(260)는, 마스터 공개 키 pk에 포함되는 기저 B의 기저 벡터 bn +2에 대한 계수로서 난수 δn+2로 랜덤화한 소정의 값(여기서는, 1)을 처리 장치에 의해 설정함과 아울러, 기저 벡터 bn +3에 대한 계수로서 난수 δn+2로 랜덤화한 제 1 검증 정보 com을 처리 장치에 의해 설정하여, 검증 정보 벡터 cv를 생성한다.
(S904 : 암호 벡터(데이터 c1) 생성 단계)
암호 벡터 생성부(220)는, 마스터 공개 키 pk와 속성 벡터 x 1로부터 속성 벡터 x L(x i(i=1, …, L)(=(x0, …, xi)(i=μL-1)))(L은, 계층의 깊이)에 근거하여, 수학식 162를 처리 장치에 의해 계산하여 암호 벡터 c를 생성한다.
[수학식 162]
Figure 112011092805583-pct00120
다시 말해, (1) 실시 형태 2와 마찬가지로, 암호 벡터 생성부(220)는, 난수 x i(i=L+1, …, d)와, 난수 δi(i=1, …, d, n+1)를 처리 장치에 의해 생성한다.
(2) 실시 형태 2와 마찬가지로, 암호 벡터 생성부(220)는, 마스터 공개 키 pk에 포함되는 기저 B의 기저 벡터 bi(i=0, …, μL-1)에 대한 계수로서 속성 벡터의 각 요소를 처리 장치에 의해 설정함과 아울러, 기저 벡터 bi(i=μL, …, n-1)에 대한 계수로서 난수를 처리 장치에 의해 설정하여 속성 정보 벡터 xv를 생성한다.
(3) 실시 형태 2와 마찬가지로, 암호 벡터 생성부(220)는, 마스터 공개 키 pk에 포함되는 기저 B의 기저 벡터 bn +1에 대한 계수로서 난수를 처리 장치에 의해 설정하여, 난수 벡터 rv를 생성한다.
(4) 암호 벡터 생성부(220)는, 생성한 속성 정보 벡터 xv와 난수 벡터 rv와, 송신 정보 설정부(210)가 생성한 송신 정보 벡터 ρv와, 검증 정보 설정부(260)가 생성한 검증 정보 벡터 cv를 가산하여 암호 벡터 c(데이터 c1)를 처리 장치에 의해 생성한다.
(S905 : 세션 키 생성 단계)
세션 키 생성부(240)는, 수학식 163을 처리 장치에 의해 계산하여 세션 키 K를 생성한다.
[수학식 163]
Figure 112011092805583-pct00121
(S906 : 데이터 c2 생성 단계)
서명 정보 생성부(270)는, 수학식 164를 처리 장치에 의해 계산하여 데이터 c2를 생성한다.
[수학식 164]
Figure 112011092805583-pct00122
다시 말해, 서명 정보 생성부(270)는, 세션 키 K로부터 KDF를 처리 장치에 의해 실행하여, 공통 키를 생성한다. 서명 정보 생성부(270)는, 생성한 공통 키에 의해, SE를 처리 장치에 의해 실행하여, 평문 정보 m과 제 2 검증 정보 dec를 암호화하여 데이터 c2를 생성한다.
(S907 : 데이터 c3 생성 단계)
서명 정보 생성부(270)는, 제 1 검증 정보 com을 데이터 c3으로 한다.
(S908 : 데이터 c4 생성 단계)
서명 정보 생성부(270)는, 이하의 수학식 165를 처리 장치에 의해 계산하여 데이터 c4를 생성한다.
[수학식 165]
Figure 112011092805583-pct00123
다시 말해, 서명 정보 생성부(270)는, 암호 벡터 생성부(220)가 생성한 데이터 c1과 서명 정보 생성부(270)가 생성한 데이터 c2를, 제 3 검증 정보 r에 근거하여 처리 장치에 의해 암호화한다.
(S909 : 데이터 송신 단계)
데이터 송신부(230)는, 암호 벡터 생성부(220)가 생성한 데이터 c1과, 서명 정보 생성부(270)가 생성한 데이터 c2, c3, c4를 복호 장치(300)에 통신 장치를 통해 송신한다.
다시 말해, 암호화 장치(200)는, 수학식 166에 나타내는 Enc 알고리즘을 실행하여, 데이터 c1, c2, c3, c4를 생성한다.
[수학식 166]
Figure 112011092805583-pct00124
복호 장치(300)의 기능과 동작에 대하여 설명한다. 복호 장치(300)는, 도 10에 나타내는 실시 형태 2에 따른 복호 장치(300)가 구비하는 기능에 도하여, 벡터 변형부(350), 복호부(360)(c2 복호부), 개찬(tampering) 검증부(370)를 구비한다.
(S1001 : 벡터 입력 단계)
실시 형태 2와 마찬가지로, 벡터 입력부(310)는, 암호화 장치(200)의 데이터 송신부(230)가 송신한 데이터 c1, c2, c3, c4를 통신 장치를 통해 수신하여 입력한다.
(S1002 : 키 벡터 변형 단계)
벡터 변형부(350)는, 수학식 167을 처리 장치에 의해 계산하여, 키 벡터 k* L,0을 변형한다.
[수학식 167]
Figure 112011092805583-pct00125
다시 말해, 벡터 변형부(350)는, 뒤의 단계에서 실행하는 페어링 연산에 의해, 암호화 장치(200)의 검증 정보 생성부(250)가 설정한 검증 정보 com이 사라지도록(검증 정보 com을 포함하는 정보를 설정한 기저 벡터(기저 벡터 bn +2, bn +3과 기저 벡터 b* n+2, b* n+3)에 대한 내적이 0이 되도록) 제 L 층째의 비밀 키의 선두 요소인 키 벡터 k* L,0을 데이터 c3(검증 정보 com)에 의해 변형한다.
(S1003 : 페어링 연산 단계)
페어링 연산부(330)는, 마스터 공개 키 pk와 변형 후의 키 벡터 k* L,0에 근거하여, 수학식 168을 처리 장치에 의해 계산하여 세션 키 K'(=K)를 생성한다.
[수학식 168]
Figure 112011092805583-pct00126
다시 말해, 페어링 연산부(330)는, 벡터 입력부(310)가 입력한 데이터 c1(암호 벡터 c)과, S1002에서 변형한 키 벡터 k* L,0에 대하여, 마스터 공개 키 pk에 포함되는 공간 V와 공간 V*를 관련짓는 페어링 연산 e를 처리 장치에 의해 행하는 것에 의해 세션 키 K'를 계산한다.
또, 데이터 c1이 개찬되어 있지 않으면, 벡터 변형부(350)가 키 벡터를 변형한 것에 의해, 데이터 c1에 설정된 검증 정보 com을 포함하는 정보(기저 벡터 bn +2, bn+3에 설정된 정보)는, 페어링 연산의 결과가 사라진다. 그 때문에, 데이터 c1이 개찬되어 있지 않으면, 페어링 연산부(330)는, 암호화 장치(200)가 생성한 세션 키 K와 동일한 세션 키 K를 생성할 수 있다.
(S1004 : c2 복호 단계)
복호부(360)는, 수학식 169를 처리 장치에 의해 계산하여 데이터 c2를 복호한다.
[수학식 169]
Figure 112011092805583-pct00127
다시 말해, 복호부(360)는, 세션 키 K로부터 KDF를 처리 장치에 의해 실행하여, 공통 키를 생성한다. 복호부(360)는, 생성한 공통 키에 의해, SD를 처리 장치에 의해 실행하여, 평문 정보 m'(=m)와 제 2 검증 정보 dec'(=dec)를 생성한다. 다시 말해, 데이터 c1이 개찬되어 있지 않고, 정확하게 세션 키 K가 생성됨과 아울러, 데이터 c2가 개찬되어 있지 않으면, 암호화 장치(200)가 데이터 c2에 삽입한 평문 m과 제 2 검증 정보 dec가 생성된다.
(S1005 : 개찬 검증 단계)
개찬 검증부(370)는, 수학식 170과 수학식 171이 성립하는지 여부를 처리 장치에 의해 판정하여 데이터 c1, c2, c3, c4가 개찬되어 있지 않은 것을 검증한다. 즉, 개찬 검증부(370)는, 평문 정보 m이 개찬되어 있지 않은 것을 검증한다.
[수학식 170]
Figure 112011092805583-pct00128
[수학식 171]
Figure 112011092805583-pct00129
다시 말해, (1) 개찬 검증부(370)는, 수학식 170에 나타내는 바와 같이, 마스터 공개 키 pk에 포함되는 문자열 pub와, 암호화 장치(200)로부터 수신한 데이터 c3(제 1 검증 정보 com)과, 생성한 제 2 검증 정보 dec'에 근거하여, Renc를 처리 장치에 의해 실행하여, 제 3 검증 정보 r'(=r)를 생성한다. 데이터 c3이 개찬되어 있지 않고, 제 2 검증 정보 dec'가 정확하면, 암호화 장치(200)가 Senc를 실행하여 생성한 제 3 검증 정보 r이 생성된다. 한편, 데이터 c3이 개찬되어 있거나, 혹은 제 2 검증 정보 dec'가 정확하지 않으면, 제 3 검증 정보 r이 아니라, 식별 정보 ⊥가 생성된다. 다시 말해, 개찬 검증부(370)는, 식별 정보 ⊥가 아닌 데이터가 생성된 경우, 그 데이터는 암호화 장치(200)가 Senc를 실행하여 생성한 정확한 제 3 검증 정보 r인 것으로 판정할 수 있다.
(2) 개찬 검증부(370)는, 수학식 171에 나타내는 바와 같이, 생성한 제 3 검증 정보 r'와, 암호화 장치(200)로부터 수신한 데이터 c1, c2, c4에 근거하여, Vrfy를 처리 장치에 의해 실행한다. 제 3 검증 정보 r'가 정확하고, 데이터 c1, c2, c4가 개찬되어 있지 않으면, Vrfy의 실행 결과는 1이 된다. 한편, 제 3 검증 정보 r'가 정확하지 않거나, 혹은 데이터 c1, c2, c4 중 어느 하나가 개찬되어 있으면, Vrfy의 실행 결과는 0이 된다.
개찬 검증부(370)는, 제 3 검증 정보 r이 정확하게 생성됨과 아울러, Vrfy의 실행 결과가 1이면, 생성한 평문 정보 m'는 암호화 장치(200)가 송신한 평문 정보 m인 것으로 판정한다. 평문 정보 m'가 평문 정보 m인 것으로 판정한 경우, 개찬 검증부(370)는 평문 정보 m'를 출력한다. 한편, 평문 정보 m'가 평문 정보 m이 아니라고 판정한 경우, 개찬 검증부(370)는 식별 정보 ⊥를 출력한다.
다시 말해, 복호 장치(300)는, 수학식 172에 나타내는 Dec 알고리즘을 실행하여, 평문 정보 m' 또는 식별 정보 ⊥를 생성한다.
[수학식 172]
Figure 112011092805583-pct00130
키 위양 장치(400)의 기능과 동작에 대하여 설명한다. 키 위양 장치(400)의 기능 구성은, 도 10에 나타내는 실시 형태 2에 따른 키 위양 장치(400)의 기능 구성과 동일하다. 또한, 키 위양 장치(400)의 동작의 흐름도, 도 14에 나타내는 실시 형태 2에 따른 키 위양 장치(400)의 동작의 흐름과 동일하다. 그 때문에, 도 14에 근거하여 키 위양 장치(400)의 기능과 동작을 설명한다.
(S601 : 키 벡터 k* L,0 취득 단계)
실시 형태 2와 마찬가지로, 키 벡터 취득부(410)는, 제 L 층째의 비밀 키의 선두 요소인 키 벡터 k* L,0과, 제 L 층째의 비밀 키의 j번째(j=μ1, …, n-1)의 요소인 키 생성용 벡터 k* L,j를 포함하는 제 L 층째의 비밀 키(키 정보 k→* L)를 통신 장치를 통해 취득한다.
(S602 : 키 벡터 k* L+1,0 생성 단계)
실시 형태 2와 마찬가지로, 키 벡터 생성부(420)는, 수학식 173을 계산하여, 제 L+1 층째의 비밀 키의 선두 요소인 키 벡터 k* L+1,0을 처리 장치에 의해 생성한다.
[수학식 173]
Figure 112011092805583-pct00131
(S603 : 키 생성용 벡터 k* L,j 생성 단계)
실시 형태 2와 마찬가지로, 키 생성용 벡터 생성부(430)는, 수학식 174를 계산하여, 키 생성용 벡터 k* L+1,j를 처리 장치에 의해 생성한다. 키 생성용 벡터 k* L+1,j는, 제 L+1 층째의 비밀 키의 j번째의 요소이다.
[수학식 174]
Figure 112011092805583-pct00132
단, 키 생성용 벡터 생성부(430)는, 키 생성용 벡터 k* L+1,j(j=μL+1, …, n-1, n+2, n+3)를 생성한다. 다시 말해, 키 생성용 벡터 생성부(140)는, 키 생성용 벡터 k* L+1,n+2와, 키 생성용 벡터 k* L+1,n+3을 생성하는 점에서 도 10에 나타내는 키 생성용 벡터 생성부(140)와 다르다.
즉, S602와 S603에 있어서, 키 벡터 생성부(420)와 키 생성용 벡터 생성부(430)는, 수학식 175에 나타내는 DelegateL 알고리즘을 실행하여, 키 벡터 k* L+1,0과 키 생성용 벡터 k* L+1,j를 포함하는 제 L+1 층째의 비밀 키(키 정보 k→* L+1)를 처리 장치에 의해 생성한다.
[수학식 175]
Figure 112011092805583-pct00133
(S604 : 키 배포 단계)
실시 형태 2와 마찬가지로, 키 배포부(440)는, 키 벡터 생성부(420)와 키 생성용 벡터 생성부(430)가 생성한 키 정보 k→* L+1을 하위의 복호 장치(300)에 통신 장치를 통해 송신한다.
이상과 같이, 본 실시 형태에 따른 암호 처리 시스템(10)은, 실시 형태 2에서 설명한 계층적 술어 키 비닉 방식을 응용하여, 계층적 술어 암호를 실현한다. 또, 본 실시 형태에서 설명한 계층적 술어 암호는, CCA에 대한 적응적 속성 비닉의 안전성을 만족시키는 안정성이 높은 암호 방식이다.
상술한 계층적 술어 암호는, 실시 형태 2에서 설명한 계층적 술어 키 비닉 방식에, 비특허 문헌 7에 기재된 방식을 응용하여 구축했다. 그러나, 이하와 같이, 실시 형태 2에서 설명한 계층적 술어 키 비닉 방식에, 비특허 문헌 11에 기재된 방식을 응용하여 안정성이 높은 (CCA에 대한 적응적 속성 비닉의 안전성을 만족시키는) 계층적 술어 암호를 구축할 수도 있다. 여기서는, Setup, Genkey, Enc, Dec, DelegateL의 각 알고리즘을 간단하게 설명을 한다.
실시 형태 2에서 설명한 계층적 술어 키 비닉 방식에, 비특허 문헌 11에 기재된 방식을 응용한 암호 처리 시스템(10)에서는, 안전한 원타임 서명 방식을 이용하여 계층적 술어 암호를 실현한다. 여기서, 「안전하다」는 것은, 위조할 수 없다고 하는 의미이다. 안전한 원타임 서명 방식의 정의는, 비특허 문헌 11에 기재되어 있다. 그래서, 여기서는, 간단하게 설명한다.
Sig:=(Gsig, Sign, Vrfy)를, 안전한 원타임 서명 방식인 것으로 한다. (Gsig, Sign, Vrfy)는, 각각 이하와 같이 동작한다.
Gsig(1λ)는, Fq의 인증용의 키(검증키 vk, 서명키 sk)를 출력하는 처리이다.
Σ=Signsk(x)는, 데이터 x에 대하여 서명키 sk로 서명 정보 Σ를 생성하는 처리이다.
Vrfyvk(x, Σ)는, 서명 정보 Σ가 데이터 x에 대하여 서명키 sk로 생성된 정확한 서명 정보인 경우에 1을 돌려주고, 정확한 서명 정보가 아닌 경우에 0을 돌려주는 처리이다.
수학식 176에 Setup 알고리즘을 나타낸다.
[수학식 176]
Figure 112011092805583-pct00134
수학식 177에 Genkey 알고리즘을 나타낸다.
[수학식 177]
Figure 112011092805583-pct00135
수학식 178에 Enc 알고리즘을 나타낸다.
[수학식 178]
Figure 112011092805583-pct00136
수학식 179에 Dec 알고리즘을 나타낸다.
[수학식 179]
Figure 112011092805583-pct00137
수학식 180에 DelegateL 알고리즘을 나타낸다.
[수학식 180]
Figure 112011092805583-pct00138
또한, 상술한 CCA에 대한 적응적 속성 비닉의 안전성을 만족시키는 계층적 술어 암호의 Enc 알고리즘에 있어서의 평문 정보 m을 난수 rn으로 변경함과 아울러, Dec 알고리즘의 출력을 K'로 변경함으로써, 계층적 술어 암호를 계층적 술어 키 비닉 방식으로 변형할 수 있다.
예컨대, Enc 알고리즘과 Dec 알고리즘을 수학식 181, 수학식 182에 나타내는 바와 같이 하는 것으로, 실시 형태 2에서 설명한 계층적 술어 키 비닉 방식에, 비특허 문헌 7에 기재된 방식을 응용하여 구축한 계층적 술어 암호를 계층적 술어 키 비닉 방식으로 변경할 수 있다.
[수학식 181]
Figure 112011092805583-pct00139
[수학식 182]
Figure 112011092805583-pct00140
또, Setup 알고리즘, GenKey 알고리즘, DelegateL 알고리즘은 변경할 필요는 없다. 또한, 상기 설명에서는, 평문 정보 m 대신에 난수 rn을 이용했지만, 간단히 Enc 알고리즘에 있어서의 평문 정보 m을 없애도, 다시 말해 데이터 c2의 계산에 m을 이용하지 않도록 하더라도 계층적 술어 암호를 계층적 술어 키 비닉 방식으로 변형할 수 있다.
실시 형태 2에서 설명한 계층적 술어 키 비닉 방식에, 비특허 문헌 11에 기재된 방식을 응용한 계층적 술어 암호에 대해서는, 단순히, Enc 알고리즘에서 평문 정보 m 대신에 송신 정보 ρ를 삽입한 암호 벡터 c를 생성하여, Dec 알고리즘에서 송신 정보 ρ에 관한 정보 uρ를 추출하는 것으로, 용이하게 계층적 술어 키 비닉 방식으로 변환할 수 있다.
(실시 형태 5)
본 실시 형태에서는, 실시 형태 4에서 설명한 계층적 술어 암호의 안전성에 대하여 설명한다.
우선, 본 실시 형태에서는, 계층적 술어 암호의 정당성을 설명한다. 다음으로, 안전성의 기준으로서 CCA(Chosen Ciphertext Attacks)에 대한 적응적 속성 비닉에 대하여 정의한다. 그리고, 실시 형태 4에서 설명한 계층적 술어 암호가 CCA에 대한 적응적 속성 비닉의 요건을 만족시키는 것을 설명한다.
<계층적 술어 암호의 정당성>
계층적 술어 암호는 수학식 183에 나타내는 요건을 만족시키는 것이 필요하다.
[수학식 183]
Figure 112011092805583-pct00141
또, DeriveLv(여기서, Lv는 Lv이다)는, 상술한 바와 같이, GenKey와 Delegatei를 이용하여 정의된다.
<CCA에 대한 적응적 속성 비닉의 정의>
계층적 속성 Σ에 있어서의 계층적 술어 F에 대한 계층적 술어 암호가 CCA에 대하여 적응적 속성 비닉인 것의 요건은, 모든 확률적 다항식 시간의 공격자 A에 대하여, 이하에 나타내는 실험(CCA 적응적 속성 비닉 게임)에 있어서의 공격자 A의 어드밴티지가 보안 파라미터에 있어서 무시할 수 있는 것이다.
(실험 : CCA 적응적 속성 비닉 게임)
1. Setup 알고리즘이 실행되어, 마스터 공개 키 pk와 마스터 비밀 키 sk가 생성된다. 그리고, 마스터 공개 키 pk가 공격자 A에 주어진다.
2. 공격자 A는, 수학식 184에 나타내는 벡터에 대응하는 키를 적응적으로 요구할 수 있다.
[수학식 184]
Figure 112011092805583-pct00142
그 요구에 대한 응답으로서, 공격자 A는, 수학식 185에 나타내는 요구에 대응하는 키가 주어진다.
[수학식 185]
Figure 112011092805583-pct00143
3. 공격자는, 암호문 c와 수학식 186에 나타내는 속성 벡터에 의해 문의를 행하여, 그 속성 벡터에 관하여 암호문 c의 복호를 적응적으로 요구할 수 있다.
[수학식 186]
Figure 112011092805583-pct00144
그 요구에 대한 응답으로서, 공격자 A는, 수학식 187에 나타내는 평문 정보 m'가 주어진다.
[수학식 187]
Figure 112011092805583-pct00145
4. 공격자 A는, 수학식 188의 제한 하에서 수학식 189를 출력한다.
[수학식 188]
Figure 112011092805583-pct00146
[수학식 189]
Figure 112011092805583-pct00147
5. 랜덤한 비트 θ가 선택된다. 그리고, 공격자 A는, 수학식 190에 나타내는 cθ가 주어진다.
[수학식 190]
Figure 112011092805583-pct00148
6. 공격자 A는, 상기 제한 하에, 수학식 191에 나타내는 벡터에 대한 키를 계속 요구할 수 있다.
[수학식 191]
Figure 112011092805583-pct00149
7. 공격자 A는, 암호문 c와 수학식 192에 나타내는 속성 벡터에 의해 문의를 행하여, 그 속성 벡터에 관련된 암호문 c의 복호를 적응적으로 요구할 수 있다.
[수학식 192]
Figure 112011092805583-pct00150
8. 공격자 A는 비트 θ'를 출력한다. θ'=θ이면, 성공이다.
여기서, 공격자 A의 어드밴티지를 수학식 193으로서 정의한다.
[수학식 193]
Figure 112011092805583-pct00151
<실시 형태 4에서 설명한 계층적 술어 암호의 안전성>
실시 형태 4에서 설명한 비특허 문헌 7에 기재된 방식을 응용한 계층적 술어 암호가, CCA에 대한 적응적 속성 비닉의 요건을 만족시키는 것을 설명한다.
또, 여기서의 설명은, 비특허 문헌 7에 기재된 증명에 근거하는 것이다. 따라서, 여기서는, CCA에 대한 적응적 속성 비닉의 요건을 만족시키는 것의 개요를 설명한다.
상술한 CCA 적응적 속성 비닉 게임에 있어서, 계층적 술어 암호를 공격하는 공격자 A가 주어진다. 상술한 CPA 적응적 속성 비닉 게임에 있어서, (n+2)차원의 내적 술어의 계층적 술어 암호에 대하여 공격하는 공격자 A'를 구축한다. 여기서, Setup, GenKey, DelegateL 알고리즘은, 상술한 계층적 술어 암호(다시 말해, 내적 술어에 대한 (n+2)차원의 부분 공간은, 계층적 술어 키 비닉 방식에 대한 계층 정보 μ HPKEM을 제외하고, <b0, …, bn -1, bn +2, bn +3>)와 동일하다. 계층적 술어 키 비닉 방식에 대한 계층 정보 μ HPKEM은, μ HPKEM:=(n, d;μ1, …, μd, μd+2)이며 d+1 레벨이다. 한편, 계층적 술어 암호에 대한 계층 정보 μ HPE는, μ HPE:=(n, d;μ1, …, μd)이며 d 레벨이다.
공격자 A'는 이하와 같이 정의된다.
1. 계층적 술어 키 비닉 방식의 공개 키 pkHPKEM:=(μ HPKEM, V, V*, GT, A, A*, q, B)가 공격자 A'에 주어진다. 공격자 A'(1λ)는, Setupenc(1λ)를 실행하여 pub를 생성한다. 또한, 계층적 술어 암호의 공개 키 pk:=(pkHPKEM, pub)를 설정하여, 공격자 A에 부여한다.
2. 공격자 A가 수학식 194에 나타내는 벡터를 키 문의하여 오라클(CCA에 대한 적응적 속성 비닉의 정의 참조)에 송신했으면, 공격자 A'는, 수학식 194에 나타내는 벡터를 키 문의하여 오라클(CPA에 대한 적응적 속성 비닉의 정의 참조)에 송신한다. 그리고, 공격자 A에 응답이 돌아간다.
[수학식 194]
Figure 112011092805583-pct00152
3. 공격자 A가 속성 벡터(x 1, …, x L)와 함께 암호문(c1, c2, c3, c4)을 복호 오라클에 송신했으면, 공격자 A'는 이하의 (1)부터 (3)의 처리를 행한다.
(1) 공격자 A'는, 수학식 195에 나타내는 술어 벡터를 계산한다.
[수학식 195]
Figure 112011092805583-pct00153
(2) 공격자 A'는 수학식 196에 나타내는 벡터(d+1 레벨)를 키 문의하여 오라클(CPA에 대한 적응적 속성 비닉의 정의 참조)에 송신하여, k* d+1,0이 응답으로서 돌아간다.
[수학식 196]
Figure 112011092805583-pct00154
(3) 공격자 A'는, 수학식 197을 설정한다.
[수학식 197]
Figure 112011092805583-pct00155
또한, 공격자 A'는, Dec(k* L,0, k* L,n+2, k* L,n+3,(c1, c2, c3, c4))를 계산한다. 여기서, Dec(k* L,0, k* L,n+2, k* L,n+3,(c1, c2, c3, c4))는, 계층적 술어 암호에 있어서의 Dec 알고리즘이다. 또한, Dec(k* L,0, k* L,n+2, k* L,n+3,(c1, c2, c3, c4))의 계산에 있어서는, k* L,0, k* L,n+2, k* L,n+3으로부터 계산되는 값 대신에 수학식 198의 값을 직접적으로 이용한다. 그리고, 결과를 공격자 A에 돌려준다.
[수학식 198]
Figure 112011092805583-pct00156
4. 공격자 A가 수학식 199를 출력했으면, 공격자 A'는, 수학식 200에 나타내는 바와 같이 θ를 선택한다.
[수학식 199]
Figure 112011092805583-pct00157
[수학식 200]
Figure 112011092805583-pct00158
또한, 공격자 A'는, 수학식 201을 계산한다. 여기서, 수학식 201에 나타내는 Enc 알고리즘은, 계층적 술어 암호에 있어서의 Enc 알고리즘이다. 그리고, 공격자 A'는, (c(θ) 1, c(θ) 2, c(θ) 3, c(θ) 4)를 공격자 A에 돌려준다.
[수학식 201]
Figure 112011092805583-pct00159
5. 공격자 A가 수학식 202에 나타내는 벡터를 키 문의하여 오라클(CCA에 대한 적응적 속성 비닉의 정의 참조)에 송신한 경우, 공격자 A'는, 단계 2와 같은 처리를 실행한다.
[수학식 202]
Figure 112011092805583-pct00160
6. 공격자 A가 속성 벡터(x 1, …, x L)와 함께 암호문(c1, c2, c3, c4)을 복호 오라클에 송신했으면, 공격자 A'는 이하의 (1), (2)의 처리를 행한다.
(1) c3=c(θ) 3인 경우, 공격자 A'는 식별 정보 ⊥를 돌려준다.
(2) c3≠c(θ) 3인 경우, 공격자 A'는 단계 3과 같은 처리를 실행한다.
7. 마지막으로, 공격자 A는 예상한 θ'를 출력한다. 공격자 A'는 같은 예상을 출력한다.
그리고, 비특허 문헌 7에 기재된 방법과 같이, 수학식 203을 나타낼 수 있다.
[수학식 203]
Figure 112011092805583-pct00161
(실시 형태 6)
본 실시 형태에서는, 이상의 실시 형태에서 설명한 암호 처리보다 안전성이 높아지도록 변경한 암호 처리에 대하여 설명한다. 또, 본 실시 형태에서는, 실시 형태 2에서 설명한 암호 처리와 마찬가지로, CPA에 대한 적응적 속성 비닉의 안전성을 만족시키는 암호 처리로서, 안전성이 높아지도록 변경한 암호 처리에 대하여 설명한다. 그리고, 뒤의 실시 형태에 있어서, 실시 형태 4와 마찬가지로, CCA에 대한 적응적 속성 비닉의 안전성을 만족시키는 암호 처리로서, 안전성이 높아지도록 변경한 암호 처리에 대하여 설명한다.
우선, 안전성이 높아지도록 하기 위해서 이용하는 「n 카피 벡터 공간」이라고 하는 개념을 설명한다. 그리고, n 카피 벡터 공간에 근거하여, 안전성이 높아지도록 변경한 암호 처리에 대하여 설명한다. 여기서는, 계층적 술어 암호에 대하여 설명하지만, 계층적 술어 키 비닉 방식을 실현하는 것도 가능하다.
또, 본 실시 형태에 따른 계층적 술어 암호에서는, n 카피 벡터 공간이나, 상기 실시 형태에 따른 계층적 술어 암호에서는 이용하고 있지 않은 복수의 난수를 이용한다.
<n 카피 벡터 공간>
상기 실시 형태에서는, 공간 V에서의 표준 기저 A로부터 생성한 기저 B와, 공간 V*에 있어서의 표준 기저 A*로부터 생성한 기저 B*의 1개의 쌍대 정규 직교 규정에 있어서 암호 처리를 실현했다. 여기서는, 기저(B[0], …, B[n-1])와 기저(B[0]*, …, B[n-1]*)의 n개의 쌍대 정규 직교 규정에 있어서 암호 처리를 실현한다.
도 26과 도 27은 n 카피 벡터 공간을 설명하기 위한 도면이다.
도 26에 나타내는 바와 같이, n개의 쌍대 벡터 공간 (V[0], …, V[n-1])과 (V[0]*, …, V[n-1]*)가 있다. 그리고, 각 공간 (V[0], …, V[n-1])과 (V[0]*, …, V[n-1]*)의 표준 기저 (A[0], …, A[n-1])과 (A[0]*, …, A[n-1]*)가 있다. 여기서, 각 기저 A[t](t=0, …, n-1)와 A[t]*(t=0, …, n-1)는 쌍대 정규 직교 기저이다. 다시 말해, 기저 A[0]과 A[0]*는 쌍대 정규 직교 기저이며, 기저 A[1]과 A[1]*는 쌍대 정규 직교 기저이며, …, 기저 A[n-1]과 A[n-1]*는 쌍대 정규 직교 기저이다. 또한, 표준 기저 (A[0], …, A[n-1])과 (A[0]*, …, A[n-1]*)로부터 기저 (B[0], …, B[n-1])과 기저 (B[0]*, …, B[n-1]*)를 생성한다. 여기서, 표준 기저 (A[0], …, A[n-1])로부터 기저 (B[0], …, B[n-1])을 생성하기 위해서는, 선형 변환 X[t](t=0, …, n-1)를 이용한다. 한편, 표준 기저 (A[0]*, …, A[n-1]*)로부터 기저 (B[0]*, …, B[n-1]*)를 생성하기 위해서는, 선형 변환 X[t](t=0, …, n-1)로부터 생성된 ((X[t])T)-1(t=0, …, n-1)을 이용한다. 그 결과, 각 기저 B[t](t=0, …, n-1)와 B[t]*(t=0, …, n-1)는 쌍대 정규 직교 기저이다. 다시 말해, 기저 B[0]과 B[0]*는 쌍대 정규 직교 기저이며, 기저 B[1]과 B[1]*는 쌍대 정규 직교 기저이며, …, 기저 B[n-1]과 B[n-1]*는 쌍대 정규 직교 기저이다.
또, 여기서는, 도 27에 나타내는 바와 같이, 하나의 쌍대 공간 V와 V*의 표준 기저 A와 A*로부터, 각각 n개의 기저 (B[0], …, B[n-1])과 기저 (B[0]*, …, B[n-1]*)를 생성하여, 암호 처리를 실현한다. 이와 같이, 각각 n개의 기저 (B[0], …, B[n-1])과 기저 (B[0]*, …, B[n-1]*)를 생성하더라도, 각 기저 B[t](t=0, …, n-1)와 B[t]*(t=0, …, n-1)는 쌍대 정규 직교 기저이다.
<암호 처리>
상술한 n 카피 벡터 공간을 이용한 안정성이 높은 계층적 술어 암호를 실현하는 암호 처리 시스템(10)에 대하여 설명한다.
도 28로부터 도 32에 근거하여, 암호 처리 시스템(10)의 기능과 동작에 대하여 설명한다.
도 28은 n 카피 벡터 공간을 이용한 안정성이 높은 계층적 술어 암호를 실현하는 암호 처리 시스템(10)의 기능을 나타내는 기능 블록도이다. 암호 처리 시스템(10)은, 실시 형태 2에 따른 암호 처리 시스템(10)과 마찬가지로, 키 생성 장치(100), 암호화 장치(200), 복호 장치(300), 키 위양 장치(400)를 구비한다. 또한, 여기서도, 복호 장치(300)가 키 위양 장치(400)를 구비하는 것으로 한다.
도 29는 키 생성 장치(100)의 동작을 나타내는 흐름도이다. 도 30은 암호화 장치(200)의 동작을 나타내는 흐름도이다. 도 31은 복호 장치(300)의 동작을 나타내는 흐름도이다. 도 32는 키 위양 장치(400)의 동작을 나타내는 흐름도이다.
키 생성 장치(100)의 기능과 동작에 대하여 설명한다. 키 생성 장치(100)의 기능 구성은, 도 19에 나타내는 실시 형태 2에 따른 키 생성 장치(100)의 기능 구성과 동일하다.
(S1301 : 마스터 키 생성 단계)
마스터 키 생성부(110)는, 수학식 204를 계산하여, 마스터 공개 키 pk와 마스터 비밀 키 sk를 처리 장치에 의해 생성하여 마스터 키 기억부(120)에 기억한다.
[수학식 204]
Figure 112011092805583-pct00162
다시 말해, 우선, (1) 마스터 키 생성부(110)는, 보안 파라미터 1λ로, N(=n+2)차원의 쌍대 디스토션 벡터 공간(V, V*, GT, A, A*, q)을 처리 장치에 의해 생성한다.
다음으로, 마스터 키 생성부(110)는, 이하의 (2)부터 (5)를 각 t(t=0, …, n-1)에 대하여 실행한다.
(2) 마스터 키 생성부(110)는, 표준 기저 A:=(a0, …, an -1)로부터 기저 B[t]:=(b[t] 0, …, b[t] n-1)를 생성하기 위한 선형 변환 X[t]를 처리 장치에 의해 랜덤으로 선택한다.
(3) 마스터 키 생성부(110)는, 선택한 선형 변환 X[t]에 근거하여, 기저 A로부터 기저 B[t]를 처리 장치에 의해 생성한다.
(4) 마스터 키 생성부(110)는, 기저 A*:=(a* 0, …, a* n-1)로부터 기저 B[t]*:=(b[t]* 0, …, b[t]* n-1)를 생성하기 위한 선형 변환 ((X[t])T)-1을 선형 변환 X[t]로부터 처리 장치에 의해 생성한다.
(5) 마스터 키 생성부(110)는, 생성한 선형 변환 ((X[t])T)-1에 근거하여, 기저 A*로부터 기저 B[t]*를 처리 장치에 의해 생성한다.
그리고, (6)마스터 키 생성부(110)는, 생성한 선형 변환 X[t](t=0, …, n-1)와 기저 B[t]*(t=0, …, n-1)를 마스터 비밀 키 sk로 하고, 생성한 기저 B[t](t=0, …, n-1)를 포함하는 (1λ, μ, V, V*, GT, A, A*, q, B[0], …, B[n-1])을 마스터 공개 키 pk로 한다. 그리고, 마스터 키 기억부(120)는, 마스터 키 생성부(110)가 생성한 마스터 공개 키 pk와 마스터 비밀 키 sk와 기억 장치에 기억한다.
또, 실시 형태 2에 따른 암호 처리 시스템(10)과 마찬가지로, 쌍대 디스토션 벡터 공간의 차원수는, N(=n+2)인 것으로 했다. 다시 말해, 쌍대 디스토션 벡터 공간의 기저 벡터의 구조는, 도 15에 나타내는 구조이다.
즉, S1301에 있어서, 마스터 키 생성부(110)는, 수학식 205에 나타내는 Setup 알고리즘을 실행하여, 마스터 공개 키 pk와 마스터 비밀 키 sk를 생성한다.
[수학식 205]
Figure 112011092805583-pct00163
다음으로, 키 벡터 생성부(130)와 키 생성용 벡터 생성부(140)는, S1302와 S1303을 각 t(t=0, …, n-1)에 대하여 실행한다.
(S1302 : 키 벡터 k[t]* 1,0 생성 단계)
키 벡터 생성부(130)는, 마스터 공개 키 pk와 마스터 비밀 키 sk와, 술어 벡터 v 1에 근거하여, 수학식 206을 계산하여, 제 1 층째(레벨 1)의 비밀 키의 선두 요소인 키 벡터 k[t]* 1,0을 처리 장치에 의해 생성한다.
[수학식 206]
Figure 112011092805583-pct00164
다시 말해, (1) 키 벡터 생성부(130)는, 난수 τ1과 난수 σ1,0과 난수 ζ[t] 1,0을 처리 장치에 의해 생성한다.
(2) 키 벡터 생성부(130)는, 기저 B[t]*에 있어서의 기저 벡터 b[t]* n에 대한 계수로서 난수 ζ[t] 1,0으로 랜덤화한 소정의 값(여기서는, 1)을 처리 장치에 의해 설정함과 아울러, 기저 벡터 b[t]* i(i=0, …, μ1-1)에 대한 계수로서 난수 σ1,0으로 랜덤화한 술어 벡터 v 1의 각 요소를 처리 장치에 의해 설정하고, 전체를 난수 τ1로 랜덤화한 키 벡터 k[t]* 1,0을 생성한다.
(S1303 : 키 생성용 벡터 k[t]* 1,j 생성 단계)
키 생성용 벡터 생성부(140)는, 마스터 공개 키 pk와 마스터 비밀 키 sk와, 술어 벡터 v 1(v 1=(v0, …, vi)(i=μl-1))에 근거하여, 수학식 207을 계산하여, 하위의 비밀 키(하위의 키 벡터)를 생성하기 위한 키 생성용 벡터 k[t]* 1,j를 처리 장치에 의해 생성한다. 키 생성용 벡터 k[t]* 1,j는, 제 1 층째의 비밀 키의 j번째의 요소이다.
[수학식 207]
Figure 112011092805583-pct00165
다시 말해, (1) 키 생성용 벡터 생성부(140)는, 난수 τ1과 난수 σ1,j(j=1, μ1, …, n-1)와 난수 ζ[t] 1,j(j=1, μ1, …, n-1)를 처리 장치에 의해 생성한다.
(2) 키 생성용 벡터 생성부(140)는, 기저 B[t]*에 있어서의 기저 벡터 b[t]* n에 대한 계수로서 난수 ζ[t] 1,1로 랜덤화한 소정의 값(여기서는, 1)을 처리 장치에 의해 설정함과 아울러, 기저 벡터 b[t]* i(i=0, …, μ1-1)에 대한 계수로서 난수 σ1,1로 랜덤화한 술어 벡터 v 1의 각 요소를 처리 장치에 의해 설정하고, 전체를 난수 τ1로 랜덤화한 키 생성용 벡터 k[t]* 1,1을 생성한다.
(3) 키 생성용 벡터 생성부(140)는, j=μ1, …, n-1의 각 j에 대하여, 기저 B[t]*에 있어서의 기저 벡터 b[t]* j에 대한 계수로서 소정의 값(여기서는, 1)을 처리 장치에 의해 설정하고, 기저 벡터 b[t]* i(i=0, …, μ1-1)에 대한 계수로서 난수 σ1,i로 랜덤화한 술어 벡터 v 1의 각 요소를 처리 장치에 의해 설정하고, 기저 벡터 b[t]* n에 대한 계수로서 난수 ζ[t] 1,j로 랜덤화한 소정의 값(여기서는, 1)을 설정하여, 전체를 난수 τ1로 랜덤화한 키 생성용 벡터 k[t]* 1,j를 생성한다.
즉, S1302와 S1303에 있어서, 키 벡터 생성부(130)와 키 생성용 벡터 생성부(140)는, 수학식 208에 나타내는 GenKey 알고리즘을 실행하여, 키 벡터 k[t]* 1,0과 키 생성용 벡터 k[t]* 1,j를 포함하는 제 1 층째의 비밀 키(키 정보 k→[t]* 1)를 처리 장치에 의해 생성한다.
[수학식 208]
Figure 112011092805583-pct00166
(S1304 : 키 배포 단계)
키 배포부(150)는, 마스터 키 생성부(110)가 생성한 마스터 공개 키와, 키 벡터 생성부(130)와 키 생성용 벡터 생성부(140)가 생성한 키 정보 k→[t]* 1(t=0, …, n-1)을 복호 장치(300)에 통신 장치를 통해 송신한다. 또한, 키 배포부(150)는, 마스터 공개 키를 암호화 장치(200)에 통신 장치를 통해 송신한다.
암호화 장치(200)의 기능과 동작에 대하여 설명한다. 암호화 장치(200)의 기능 구성은, 도 19에 나타내는 실시 형태 2에 따른 암호화 장치(200)의 기능 구성과 동일하다.
(S1401 : 평문 정보 설정 단계)
송신 정보 설정부(210)는, 마스터 공개 키 pk에 근거하여, 수학식 209를 처리 장치에 의해 계산하여 평문 정보 벡터 mv[t](t=0, …, n-1)를 생성한다.
[수학식 209]
Figure 112011092805583-pct00167
다시 말해, 송신 정보 설정부(210)는, 각 t(t=0, …, n-1)에 대하여, 마스터 공개 키 pk에 포함되는 기저 B[t]의 기저 벡터 b[t] n에 대한 계수로서 평문 정보 m을 처리 장치에 의해 설정하여, 평문 정보 벡터 mv[t]를 생성한다.
(S1402 : 암호 벡터 생성 단계)
암호 벡터 생성부(220)는, 마스터 공개 키 pk와 속성 벡터 x 1로부터 속성 벡터 x L(x i(i=1, …, L)(=(x0, …, xi)(i=μL-1)))(L은, 계층의 깊이)에 근거하여, 수학식 210을 처리 장치에 의해 계산하여 암호 벡터 c[t](t=0, …, n-1)를 생성한다.
[수학식 210]
Figure 112011092805583-pct00168
다시 말해, (1) 암호 벡터 생성부(220)는, 난수 x i(i=L+1, …, d)와, 난수 δi(i=1, …, d)와, 난수 δ[t] n+1(t=0, …, n-1)을 처리 장치에 의해 생성한다.
(2) 암호 벡터 생성부(220)는, 마스터 공개 키 pk에 포함되는 기저 B[t](t=0, …, n-1)의 각 기저 B[t]에 대하여, 속성 벡터의 각 요소 등을 처리 장치에 의해 설정하여 속성 정보 벡터 xv[t]를 생성한다.
i=0, …, μ1-1의 각 i에 대하여, t=0, …, n-1의 기저 벡터 b[t] i에 대한 계수의 합계가 랜덤화된 속성 벡터 x i가 되도록, 기저 벡터 b[t] i(t=0, …, n-1)에 대한 계수를 설정한다. 여기서는, t=0, …, n-2의 기저 벡터 b[t] i에 대한 계수로서 난수 s[t] i를 설정하여, t=n-1의 기저 벡터 b[t] i에 대한 계수로 합계치가 랜덤화된 속성 벡터 x i가 되도록 조정하고 있다.
또한, i=μL, …, n-1에 대해서는, 기저 벡터 b[t] i(t=0, …, n-1)에 대한 계수로서 난수를 설정한다.
(3) 암호 벡터 생성부(220)는, 기저 B[t](t=0, …, n-1)의 각 기저 B[t]에 대하여, 마스터 공개 키 pk에 포함되는 기저 B의 기저 벡터 b[t] n+1에 대한 계수로서 난수 δ[t] n+1을 처리 장치에 의해 설정하여, 난수 벡터 rv[t]를 생성한다.
(4) 암호 벡터 생성부(220)는, 기저 B[t](t=0, …, n-1)의 각 기저 B[t]에 대하여, 생성한 속성 정보 벡터 xv[t]와 난수 벡터 rv[t]를, 송신 정보 설정부(210)가 생성한 평문 정보 벡터 mv[t]에 가산하여 암호 벡터 c[t]를 처리 장치에 의해 생성한다.
(S1403 : 데이터 송신 단계)
데이터 송신부(230)는, 암호 벡터 생성부(220)가 생성한 암호 벡터 c[t]를 복호 장치(300)에 통신 장치를 통해 송신한다.
다시 말해, 암호화 장치(200)는, 수학식 211에 나타내는 Enc 알고리즘을 실행하여, 암호 벡터 c[t]를 생성한다.
[수학식 211]
Figure 112011092805583-pct00169
복호 장치(300)의 기능과 동작에 대하여 설명한다. 복호 장치(300)의 기능 구성은, 도 19에 나타내는 실시 형태 2에 따른 복호 장치(300)의 기능 구성과 동일하다.
(S1501 : 벡터 입력 단계)
벡터 입력부(310)는, 암호화 장치(200)의 데이터 송신부(230)가 송신한 암호 벡터 c[t](t=0, …, n-1)를 통신 장치를 통해 수신하여 입력한다.
(S1502 : 페어링 연산 단계)
페어링 연산부(330)는, 마스터 공개 키 pk와 제 L 층째의 비밀 키의 선두 요소인 키 벡터 k[t]* L,0(t=0, …, n-1)에 근거하여, 수학식 212를 처리 장치에 의해 계산하여 평문 정보 m에 관한 정보 f를 생성한다.
[수학식 212]
Figure 112011092805583-pct00170
다시 말해, 페어링 연산부(330)는, 벡터 입력부(310)가 입력한 암호 벡터 c와, 키 벡터 기억부(320)가 기억 장치에 기억한 키 벡터 k[t]* L,0에 대하여, 마스터 공개 키 pk에 포함되는 공간 V와 공간 V*를 관련짓는 페어링 연산 e를 처리 장치에 의해 하여 정보 f를 생성한다.
또한, 페어링 연산부(330)는, 마스터 공개 키 pk와 키 벡터 k*[t] L,0(t=0, …, n-1)에 근거하여, 수학식 213을 처리 장치에 의해 계산하여 정보 f로부터 평문 정보 m을 추출하기 위해 이용하는 정보 g를 생성한다.
[수학식 213]
Figure 112011092805583-pct00171
다시 말해, 페어링 연산부(330)는, 마스터 공개 키 pk에 포함되는 기저 B[t]의 기저 b[t] n과, 키 벡터 기억부(320)가 기억 장치에 기억한 키 벡터 k[t]* L,0에 대하여, 마스터 공개 키 pk에 포함되는 공간 V와 공간 V*를 관련짓는 페어링 연산 e를 처리 장치에 의해 행하여 정보 g를 생성한다.
(S1503 : 이산 대수 계산 단계)
이산 대수 계산부(340)는, 정보 f에 대하여, 정보 g를 밑으로 하는 이산 대수 문제를 풀어, 평문 정보 m을 계산한다. 다시 말해, 이산 대수 계산부(340)는, 수학식 214를 계산한다.
[수학식 214]
Figure 112011092805583-pct00172
또, 실시 형태 2에서 설명한 계층적 술어 암호를 실현하는 암호 처리 시스템(10)과 같이, 여기서 입력하는 평문 정보 m은, 소정의 작은 정수 τ보다 작은 수인 것으로 한다. 이것은, 상술한 바와 같이, 복호 장치(300)가 평문 정보 m을 계산할 때, 이산 대수 문제를 풀 필요가 있기 때문이다. 또한, 실시 형태 2에서 설명한 계층적 술어 암호를 실현하는 암호 처리 시스템(10)과 같이, 복수의 기저 벡터에 평문 정보 m을 설정하는 것도 가능하다.
다시 말해, 복호 장치(300)는, 수학식 215에 나타내는 Dec 알고리즘을 실행하여, 평문 정보 m' 또는 식별 정보 ⊥를 생성한다.
[수학식 215]
Figure 112011092805583-pct00173
키 위양 장치(400)의 기능과 동작에 대하여 설명한다. 키 위양 장치(400)의 기능 구성은, 도 19에 나타내는 실시 형태 2에 따른 키 위양 장치(400)의 기능 구성과 동일하다.
(S1601 : 키 벡터 k[t]* L,0 취득 단계)
키 벡터 취득부(410)는, 각 t(t=0, …, n-1)에 대하여, 제 L 층째의 비밀 키의 선두 요소인 키 벡터 k[t]* L,0과, 제 L 층째의 비밀 키의 j번째(j=μ1, …, n-1)의 요소인 키 생성용 벡터 k[t]* L,j를 포함하는 제 L 층째의 비밀 키(키 정보 k→[t]* L)를 통신 장치를 통해 취득한다.
키 벡터 생성부(420)와 키 생성용 벡터 생성부(430)는, S1602와 S1603을 각 t(t=0, …, n-1)에 대하여 실행한다.
(S1602 : 키 벡터 k[t]* L+1,0 생성 단계)
키 벡터 생성부(420)는, 마스터 공개 키 pk와 키 정보 k→[t]* L과 술어 벡터 v L+1(v L+1=(vi, …, vj)(i=μL, j=μL+1-1))에 근거하여, 수학식 216을 계산하여, 제 L+1 층째의 비밀 키의 선두 요소인 키 벡터 k[t]* L+1,0을 처리 장치에 의해 생성한다.
[수학식 216]
Figure 112011092805583-pct00174
다시 말해, (1) 키 벡터 생성부(420)는, 난수 τL+1,0과 난수 ψL+1,0,i(i=0, …, L)와 난수 σL+1,0을 처리 장치에 의해 생성한다.
(2) 키 벡터 생성부(420)는, 키 생성용 벡터 k[t]* L,i(i=μL, …, μL+1-1)에 대한 계수로서 난수 σL+1,0으로 랜덤화한 술어 벡터 v L+1의 각 요소를 설정한 벡터 vi(i=μL, …, μL+1-1)와, 난수 ψL+1,0,0으로 랜덤화한 키 벡터 k[t]* L,0과, 난수 ψL+1,0,i(i=1, …, L)로 랜덤화한 키 생성용 벡터 k[t]* L,i(i=1, …, L)를, 키 벡터 k[t]* L,0에 가산하여 키 벡터 k[t]* L+1,0을 처리 장치에 의해 생성한다.
(S1603 : 키 생성용 벡터 k[t]* L+1,j 생성 단계)
키 생성용 벡터 생성부(430)는, 마스터 공개 키 pk와 키 정보 k→[t]* L과 술어 벡터 v L+1에 근거하여, 수학식 217을 계산하여, 하위의 비밀 키(하위의 키 벡터)를 생성하기 위한 키 생성용 벡터 k[t]* L+1,j를 처리 장치에 의해 생성한다. 키 생성용 벡터 k[t]* L+1,j는, 제 L+1 층째의 비밀 키의 j번째의 요소이다.
[수학식 217]
Figure 112011092805583-pct00175
다시 말해, (1) 키 생성용 벡터 생성부(430)는, 난수 τL+1과 난수 ψL+1,j,i(i=0, …, L)(j=1, …, L+1, μL+1, …, n-1)와 난수 σL+1,j(j=μL+1, …, n-1)를 처리 장치에 의해 생성한다.
(2) 키 생성용 벡터 생성부(140)는, j=1, …, L+1, μL+1, …, n-1의 각 j에 대하여, 키 생성용 벡터 k[t]* L,j에, 키 생성용 벡터 k[t]* L,i(i=μL, …, μL+1-1)에 대한 계수로서 난수 σL+1,j로 랜덤화한 술어 벡터 v L+1의 각 요소를 처리 장치에 의해 설정한 벡터와, 난수 ψL+1,j,0으로 랜덤화한 키 벡터 k[t]* L,0과, 난수 ψL+1,j,i(i=1, …, L)로 랜덤화한 키 생성용 벡터 k[t]* L,i를 가산하여, 키 벡터 k[t]* L+1,0의 하위의 키 벡터를 생성하기 위한 키 생성용 벡터 k[t]* L+1,j를 생성한다.
즉, S1601과 S1602에 있어서, 키 벡터 생성부(420)와 키 생성용 벡터 생성부(430)는, 수학식 218에 나타내는 DelegateL 알고리즘을 실행하여, 키 벡터 k[t]* L+1,0과 키 생성용 벡터 k[t]* L+1,j를 포함하는 제 L+1 층째의 비밀 키(키 정보 k→[t]* L+1)를 처리 장치에 의해 생성한다.
[수학식 218]
Figure 112011092805583-pct00176
(S1604 : 키 배포 단계)
키 배포부(440)는, 키 벡터 생성부(420)와 키 생성용 벡터 생성부(430)가 생성한 키 정보 k→[t]* L+1을 하위의 복호 장치(300)에 통신 장치를 통해 송신한다.
S1502에서 계산하는 페어링 연산에 대하여 보충 설명한다.
실시 형태 2에서는, 도 16에 근거하여 설명한 바와 같이, 속성 벡터와 술어 벡터의 내적이 0이 되는 것을 이용하여, 암호문 c 중 기저 벡터 bn에 관한 성분 이외를 페어링 연산에 의해 0으로 하여, 기저 벡터 bn에 관한 성분을 추출했다. 마찬가지로, 본 실시 형태에서도 S1502에서 페어링 연산을 행하는 것에 의해, 수학식 219에 나타내는 바와 같이 암호문 c 중 기저 벡터 bn에 관한 성분이 추출된다. 수학식 219는, 페어링 연산의 설명을 위한 식이다. 수학식 219에 있어서는, 설명을 간단하게 하기 위해, 난수의 첨자를 간략화하고 있다.
[수학식 219]
Figure 112011092805583-pct00177
이상과 같이, 본 실시 형태에 따른 암호 처리 시스템(10)은, CPA에 대한 적응적 속성 비닉의 안전성을 만족시키는 계층적 술어 암호로서, 안전성이 높아지도록 변경한 계층적 술어 암호를 실현한다.
또, 본 실시 형태에 따른 암호 처리 시스템(10)도 상기 실시 형태에 따른 암호 처리 시스템(10)과 같이, 용이하게 계층적 술어 키 비닉 방식을 실현할 수 있다.
(실시 형태 7)
본 실시 형태에서는, 실시 형태 6에서 설명한 CPA에 대한 적응적 속성 비닉의 요건을 만족시키는 암호 처리에 근거하여 구축한 CCA에 대한 적응적 속성 비닉의 요건을 만족시키는 암호 처리에 대하여 설명한다.
실시 형태 6에서 설명한 n 카피 공간을 이용한 계층적 술어 암호에, 비특허 문헌 11에 기재된 방식을 응용하여, CCA에 대한 적응적 속성 비닉의 요건을 만족시키는 계층적 술어 암호를 구축한다.
또, 실시 형태 4에서는, 비특허 문헌 7에 기재된 방식을 응용한 계층적 술어 암호를 주로 설명하고, 비특허 문헌 11에 기재된 방식을 응용한 계층적 술어 암호는 간단하게 설명했다. 여기서는, 비특허 문헌 11에 기재된 방식을 응용한 계층적 술어 암호를 설명한다.
도 33~도 35와, 도 29와 도 32에 근거하여, 암호 처리 시스템(10)의 기능과 동작에 대하여 설명한다.
도 33은 본 실시 형태에 따른 암호 처리 시스템(10)의 기능을 나타내는 기능 블록도이다. 암호 처리 시스템(10)은, 실시 형태 2에 따른 암호 처리 시스템(10)과 같이, 키 생성 장치(100), 암호화 장치(200), 복호 장치(300), 키 위양 장치(400)를 구비한다. 또한, 여기서도, 복호 장치(300)가 키 위양 장치(400)를 구비하는 것으로 한다.
도 34는 암호화 장치(200)의 동작을 나타내는 흐름도이다. 도 35는 복호 장치(300)의 동작을 나타내는 흐름도이다. 또, 키 생성 장치(100)와 키 위양 장치(400)의 동작의 흐름은, 실시 형태 6에 따른 키 생성 장치(100)와 키 위양 장치(400)의 동작의 흐름과 동일하다. 그 때문에, 키 생성 장치(100)의 동작에 대해서는, 도 29에 근거하여 설명한다. 또한, 키 위양 장치(400)의 동작에 대해서는, 도 32에 근거하여 설명한다.
또, 이하의 설명에 있어서, Sig:=(Gsig, Sign, Vrfy)는, 실시 형태 4에서 설명한 안전한 원타임 서명 방식이다.
키 생성 장치(100)의 기능과 동작에 대하여 설명한다. 키 생성 장치(100)의 기능 구성은, 도 28에 나타내는 실시 형태 6에 따른 키 생성 장치(100)의 기능 구성과 동일하다. 또한, 키 생성 장치(100)의 동작의 흐름은, 도 29에 나타내는 실시 형태 6에 따른 키 생성 장치(100)의 동작의 흐름과 동일하기 때문에, 도 29에 근거하여 키 생성 장치(100)의 기능과 동작을 설명한다.
(S1301 : 마스터 키 생성 단계)
실시 형태 6과 같이, 마스터 키 생성부(110)는, 마스터 공개 키 pk와 마스터 비밀 키 sk를 처리 장치에 의해 생성하여 마스터 키 기억부(120)에 기억한다.
또, 실시 형태 4와 같이, 쌍대 디스토션 벡터 공간의 차원수는, N(=n+4)인 것으로 했다. 다시 말해, 쌍대 디스토션 벡터 공간의 기저 벡터의 구조는, 도 25에 나타내는 구조이다.
즉, S1301에 있어서, 마스터 키 생성부(110)는, 수학식 220에 나타내는 Setup 알고리즘을 실행하여, 마스터 공개 키 pk와 마스터 비밀 키 sk를 생성한다.
[수학식 220]
Figure 112011092805583-pct00178
다음으로, 실시 형태 6과 같이, 키 벡터 생성부(130)와 키 생성용 벡터 생성부(140)는, S1302와 S1303을 각 t(t=0, …, n-1)에 대하여 실행한다.
(S1302 : 키 벡터 k[t]* 1,0 생성 단계)
실시 형태 6과 같이, 키 벡터 생성부(130)는, 수학식 221을 계산하여, 제 1 층째(레벨 1)의 비밀 키의 선두 요소인 키 벡터 k[t]* 1,0을 처리 장치에 의해 생성한다.
[수학식 221]
Figure 112011092805583-pct00179
(S1303 : 키 생성용 벡터 k[t]* 1,j 생성 단계)
실시 형태 6과 같이, 키 생성용 벡터 생성부(140)는, 수학식 222를 계산하여 키 생성용 벡터 k[t]* 1,j를 처리 장치에 의해 생성한다. 키 생성용 벡터 k[t]* 1,j는, 제 1 층째의 비밀 키의 j번째의 요소이다.
[수학식 222]
Figure 112011092805583-pct00180
단, 키 생성용 벡터 생성부(140)는, 키 생성용 벡터 k[t]* 1,j(j=1, μ1, …, n-1, n+2, n+3)를 생성한다. 다시 말해, 키 생성용 벡터 생성부(140)는, 키 생성용 벡터 k[t]* 1,n+2와, 키 생성용 벡터 k[t]* 1,n+3을 생성하는 점에서 도 28에 나타내는 키 생성용 벡터 생성부(140)와 다르다.
즉, S1302와 S1303에 있어서, 키 벡터 생성부(130)와 키 생성용 벡터 생성부(140)는, 수학식 223에 나타내는 GenKey 알고리즘을 실행하여, 키 벡터 k[t]* 1,0과 키 생성용 벡터 k[t]* 1,j를 포함하는 제 1 층째의 비밀 키(키 정보 k→[t]* 1)를 처리 장치에 의해 생성한다.
[수학식 223]
Figure 112011092805583-pct00181
(S1304 : 키 배포 단계)
실시 형태 6과 같이, 키 배포부(150)는, 마스터 키 생성부(110)가 생성한 마스터 공개 키와, 키 벡터 생성부(130)와 키 생성용 벡터 생성부(140)가 생성한 키 정보 k→[t]* 1(t=0, …, n-1)을 복호 장치(300)에 통신 장치를 통해 송신한다. 또한, 키 배포부(150)는, 마스터 공개 키를 암호화 장치(200)에 통신 장치를 통해 송신한다.
암호화 장치(200)의 기능과 동작에 대하여 설명한다. 암호화 장치(200)는, 도 28에 나타내는 실시 형태 6에 따른 암호화 장치(200)의 기능에 더하여, 검증 정보 생성부(250), 검증 정보 설정부(260), 서명 정보 생성부(270)를 구비한다.
(S1701 : 검증 정보 생성 단계)
검증 정보 생성부(250)는, 수학식 224를 처리 장치에 의해 계산하여 검증키 vk, 서명키 sk를 생성한다.
[수학식 224]
Figure 112011092805583-pct00182
(S1702 : 평문 정보 설정 단계)
실시 형태 6과 같이, 송신 정보 설정부(210)는, 수학식 225를 처리 장치에 의해 계산하여 마스터 공개 키 pk에 근거하여, 평문 정보 벡터 mv[t](t=0, …, n-1)를 처리 장치에 의해 생성한다.
[수학식 225]
Figure 112011092805583-pct00183
(S1703 : 검증 정보 설정 단계)
검증 정보 설정부(260)는, 마스터 공개 키 pk에 근거하여, 수학식 226을 처리 장치에 의해 계산하여 검증 정보 벡터 cv[t](t=0, …, n-1)를 생성한다.
[수학식 226]
Figure 112011092805583-pct00184
다시 말해, (1) 검증 정보 설정부(260)는, 난수 δ[t] n+2(t=0, …, n-1)를 처리 장치에 의해 생성한다.
(2) 검증 정보 설정부(260)는, 각 t(t=0, …, n-1)에 대하여, 마스터 공개 키 pk에 포함되는 기저 B의 기저 벡터 b[t] n+2에 대한 계수로서 난수 δ[t] n+2로 랜덤화한 소정의 값(여기서는, 1)을 처리 장치에 의해 설정함과 아울러, 기저 벡터 b[t] n+3에 대한 계수로서 난수 δ[t] n+2로 랜덤화한 검증키 vk를 처리 장치에 의해 설정하여, 검증 정보 벡터 cv[t](t=0, …, n-1)를 생성한다.
(S1704 : 암호 벡터 생성 단계)
암호 벡터 생성부(220)는, 마스터 공개 키 pk와 속성 벡터 x 1로부터 속성 벡터 x L(x i(i=1, …, L)(=(x0, …, xi)(i=μL-1)))(L은, 계층의 깊이)에 근거하여, 수학식 227을 처리 장치에 의해 계산하여 암호 벡터 c[t](t=0, …, n-1)를 생성한다.
[수학식 227]
Figure 112011092805583-pct00185
또, 수학식 227에 나타내는 (1)~(3)은, 수학식 210에 나타내는 (1)~(3)과 동일하다. (4) 암호 벡터 생성부(220)는, 기저 B[t](t=0, …, n-1)의 각 기저 B[t]에 대하여, 생성한 속성 정보 벡터 xv[t]와 난수 벡터 rv[t]와, 송신 정보 설정부(210)가 생성한 평문 정보 벡터 mv[t]와, 검증 정보 설정부(260)가 생성한 검증 정보 벡터 cv[t]를 가산하여 암호 벡터 c[t]를 처리 장치에 의해 생성한다.
(S1705 : 서명 정보 생성 단계)
서명 정보 생성부(270)는, 수학식 228을 처리 장치에 의해 계산하여 서명 정보 Σ를 생성한다.
[수학식 228]
Figure 112011092805583-pct00186
다시 말해, 서명 정보 생성부(270)는, 서명키 sk에 근거하여 Sign을 처리 장치에 의해 실행하여, 서명 정보 Σ를 생성한다.
(S1706 : 데이터 송신 단계)
데이터 송신부(230)는, 암호 벡터 생성부(220)가 생성한 암호 벡터 c[t]와, 검증 정보 생성부(250)가 생성한 검증키 vk와, 서명 정보 생성부(270)가 생성한 서명 정보 Σ를 복호 장치(300)에 통신 장치를 통해 송신한다.
다시 말해, 암호화 장치(200)는, 수학식 229에 나타내는 Enc 알고리즘을 실행하여, 암호 벡터 c[t](t=0, …, n-1)와 검증키 vk와 서명 정보 Σ를 생성한다.
[수학식 229]
Figure 112011092805583-pct00187
복호 장치(300)의 기능과 동작에 대하여 설명한다. 복호 장치(300)는, 도 28에 나타내는 실시 형태 6에 따른 복호 장치(300)가 구비하는 기능에 더하여, 개찬 검증부(370)를 구비한다.
(S1801 : 벡터 입력 단계)
벡터 입력부(310)는, 암호화 장치(200)의 데이터 송신부(230)가 송신한 암호 벡터 c[t](t=0, …, n-1)와 검증키 vk와 서명 정보 Σ를 통신 장치를 통해 수신하여 입력한다.
(S1802 : 서명 검증 단계)
개찬 검증부(370)는, 수학식 230이 성립하는지 여부를 처리 장치에 의해 판정한다.
[수학식 230]
Figure 112011092805583-pct00188
다시 말해, 개찬 검증부(370)는, 서명 정보 Σ에 대하여 검증키 vk에 의해 Vrfy를 실행하는 것에 의해 검증을 행한다.
(S1803 : 키 벡터 변형 단계)
벡터 변형부(350)는, 수학식 231을 처리 장치에 의해 계산하여, 키 벡터 k[t]* L,0을 변형한다.
[수학식 231]
Figure 112011092805583-pct00189
다시 말해, 벡터 변형부(350)는, 뒤의 단계에서 실행하는 페어링 연산에 의해, 암호화 장치(200)의 검증 정보 생성부(250)가 설정한 검증키 vk가 사라지도록(검증키 vk를 포함하는 정보를 설정한 기저 벡터의 계수가 0이 되도록) 키 벡터를 검증키 vk에 의해 변형한다.
(S1804 : 페어링 연산 단계)
페어링 연산부(330)는, 수학식 232를 계산하여, 마스터 공개 키 pk와 변형 후의 키 벡터 k[t]* L,0(t=0, …, n-1)에 근거하여, 평문 정보 m에 관한 정보 f를 생성한다.
[수학식 232]
Figure 112011092805583-pct00190
또한, 페어링 연산부(330)는, 수학식 233을 계산하여, 마스터 공개 키 pk와 변형 후의 키 벡터 k[t]* L,0(t=0, …, n-1)에 근거하여, 정보 f로부터 평문 정보 m을 추출하기 위해 이용하는 정보 g를 생성한다.
[수학식 233]
Figure 112011092805583-pct00191
(S1805 : 이산 대수 계산 단계)
실시 형태 6과 같이, 이산 대수 계산부(340)는, 정보 f에 대하여, 정보 g를 밑으로 하는 이산 대수 문제를 풀어, 평문 정보 m을 계산한다. 다시 말해, 이산 대수 계산부(340)는, 수학식 234를 계산한다.
[수학식 234]
Figure 112011092805583-pct00192
또, 실시 형태 2에서 설명한 계층적 술어 암호를 실현하는 암호 처리 시스템(10)과 같이, 여기서 입력하는 평문 정보 m은, 소정의 작은 정수 τ보다 작은 수인 것으로 한다. 이것은, 상술한 바와 같이, 복호 장치(300)가 평문 정보 m을 계산할 때, 이산 대수 문제를 풀 필요가 있기 때문이다. 또한, 실시 형태 2에서 설명한 계층적 술어 암호를 실현하는 암호 처리 시스템(10)과 같이, 복수의 기저 벡터에 평문 정보 m을 설정하는 것도 가능하다.
다시 말해, 복호 장치(300)는, 수학식 235에 나타내는 Dec 알고리즘을 실행하여, 평문 정보 m' 또는 식별 정보 ⊥를 생성한다.
[수학식 235]
Figure 112011092805583-pct00193
키 위양 장치(400)의 기능과 동작에 대하여 설명한다. 키 위양 장치(400)의 기능 구성은, 도 28에 나타내는 실시 형태 6에 따른 키 위양 장치(400)의 기능 구성과 동일하다. 또한, 키 위양 장치(400)의 동작의 흐름도, 도 32에 나타내는 실시 형태 6에 따른 키 위양 장치(400)의 동작의 흐름과 동일하기 때문에, 도 32에 근거하여 키 위양 장치(400)의 기능과 동작을 설명한다.
(S1601 : 키 벡터 k[t]* L,0 취득 단계)
실시 형태 6과 같이, 키 벡터 취득부(410)는, 제 L 층째의 비밀 키의 선두 요소인 키 벡터 k[t]* L,0과, 제 L 층째의 비밀 키의 j번째(j=μ1, …, n-1)의 요소인 키 생성용 벡터 k[t]* L,j를 포함하는 제 L 층째의 비밀 키(키 정보 k→[t]* L)를 통신 장치를 통해 취득한다.
실시 형태 6과 같이, 키 벡터 생성부(420)와 키 생성용 벡터 생성부(430)는, S1602와 S1603을 각 t(t=0, …, n-1)에 대하여 실행한다.
(S1602 : 키 벡터 k[t]* L,0 생성 단계)
실시 형태 6과 같이, 키 벡터 생성부(420)는, 수학식 236을 계산하여, 제 L+1 층째의 비밀 키의 선두 요소인 키 벡터 k[t]* L+1,0을 처리 장치에 의해 생성한다.
[수학식 236]
Figure 112011092805583-pct00194
(S1603 : 키 생성용 벡터 k[t]* L,j 생성 단계)
실시 형태 6과 같이, 키 생성용 벡터 생성부(430)는, 수학식 237을 계산하여, 키 생성용 벡터 k[t]* L+1,j를 처리 장치에 의해 생성한다. 키 생성용 벡터 k[t]* L+1,j는, 제 L+1 층째의 비밀 키의 j번째의 요소이다.
[수학식 237]
Figure 112011092805583-pct00195
단, 키 생성용 벡터 생성부(430)는, 키 생성용 벡터 k[t]* L+1,j(j=0, …, L+1, μL+1, …, n-1, n+2, n+3)를 생성한다. 다시 말해, 키 생성용 벡터 생성부(430)는, 키 생성용 벡터 k[t]* L+1,n+2와, 키 생성용 벡터 k[t]* L+1,n+3을 생성하는 점에서 도 10에 나타내는 키 생성용 벡터 생성부(140)와 다르다.
즉, S1602와 S1603에 있어서, 키 벡터 생성부(420)와 키 생성용 벡터 생성부(430)는, 수학식 238에 나타내는 DelegateL 알고리즘을 실행하여, 키 벡터 k[t]* L+1,0과 키 생성용 벡터 k[t]* L+1,j를 포함하는 키 정보 k→[t]* L+1을 처리 장치에 의해 생성한다.
[수학식 238]
Figure 112011092805583-pct00196
(S1604 : 키 배포 단계)
실시 형태 6과 같이, 키 배포부(440)는, 키 벡터 생성부(420)와 키 생성용 벡터 생성부(430)가 생성한 키 정보 k→[t]* L+1을 하위의 복호 장치(300)에 통신 장치를 통해 송신한다.
이상과 같이, 본 실시 형태에 따른 암호 처리 시스템(10)은, 실시 형태 6에서 설명한 CPA에 대한 적응적 속성 비닉의 안전성을 만족시키는 계층적 술어 암호를 응용하여, CCA에 대한 적응적 속성 비닉의 안전성을 만족시키는 계층적 술어 암호를 실현한다.
(실시 형태 8)
본 실시 형태에서는, 쌍대 디스토션 벡터 공간의 실현 방법에 대하여 설명한다. 우선, 상기 실시 형태에서 쌍대 디스토션 벡터 공간의 예로서 이용한 비대칭 쌍선형 페어링 그룹의 직적에 의한 실현 방법에 대하여 설명한다. 다음으로, 대칭 쌍선형 페어링 그룹의 직적에 의한 실현 방법에 대하여 설명한다. 그리고, 종수 1 이상의 초특이 곡선의 야코비 다양체에 의한 실현 방법에 대하여 설명한다.
<비대칭 쌍선형 페어링 그룹의 직적에 의한 실현 방법>
비대칭 쌍선형 페어링 그룹 (G1, G2, GT, g1, g2, q)와, 비대칭 쌍선형 페어링 그룹 (G1, G2, GT, g1, g2, q)에 있어서의 페어링 연산 e가 주어진다. 또, 비대칭 쌍선형 페어링 그룹 (G1, G2, GT, g1, g2, q)와 페어링 연산에 대해서는 실시 형태 1에서 설명한 것과 같다.
이하와 같이, 쌍대 디스토션 벡터 공간을 실현한다.
V, V*, a0, …, aN -1, a* 0, …, a* N-1은, 수학식 239에 나타내는 것과 같다.
[수학식 239]
Figure 112011092805583-pct00197
벡터 x, y는, 수학식 240과 같이 된다.
[수학식 240]
Figure 112011092805583-pct00198
(V, V*)에 있어서의 페어링 연산 e를 수학식 241과 같이 정의한다.
[수학식 241]
Figure 112011092805583-pct00199
여기서, 또, 페어링 연산 e의 e라는 표기는, (G1, G2)와 (V, V*)의 양쪽에 있어서 사용한다. 또한, 페어링 연산 e의 비퇴화성과 쌍선형성은 분명히 성립한다. 여기서, 수학식 242이다.
[수학식 242]
Figure 112011092805583-pct00200
또한, 디스토션 사상 φi,j는, 수학식 243과 같이 단순히 정의된다.
[수학식 243]
Figure 112011092805583-pct00201
<대칭 쌍선형 페어링 그룹의 직적에 의한 실현 방법>
상기 실시 형태에서 설명한 대칭 쌍선형 페어링 그룹 (G, GT, g, q)를 이용하더라도, 비대칭 쌍선형 페어링 그룹 (G1, G2, GT, g1, g2, q)를 이용한 경우와 같이, 직적을 구축할 수 있다. 다시 말해, V=V*이며, A=A*인 구조가 된다. 그 때문에, 페어링 연산 e와 기저 A=A*에 있어서의 기저 벡터로의 사영을 이용하여, 공간 V=V*에 있어서의 어떤 비 제로의 벡터 x와 x'에 대해서도, x=cx'인 c∈Fq가 존재하는 것을 확인할 수 있다.
<종수 1 이상의 초특이 곡선의 야코비 다양체에 의한 실현 방법>
쌍대 디스토션 벡터 공간은, 몇 개의 특별한 초특이 타원 곡선 C의 야코비 다양체에 있어서의 유리수 q의 점의 집합으로서 인식된다. 다시 말해, V=V*:=JacC[q]이다. 공간 V(와 V*)의 차원 N은, 초특이 타원 곡선 C의 2배이다. 공간 V의 표준 기저 A=(a0, …, aN -1)는, 프로베니우스 자기 준동형의 고유 벡터에 의해 주어진다. 수학식 244처럼 모든 값 κi,j∈Fq는 비특허 문헌 27에 기재된 Weil 페어링 e에 의해 결정된다. 그와 같은 명백한 값 κi,j를 이용하면, 공간 V*의 쌍대 정규 직교 기저 A*를 구축할 수 있다.
[수학식 244]
Figure 112011092805583-pct00202
여기서, 비특허 문헌 21에서는, 자기 준동형 φi,j를 디스토션 사상이라고 부르고, k≠j일 때, φi,j(ak)=0인 것을 만족시킬 필요는 없었다. 그러나, 비특허 문헌 21은, <aj>에 대한 사영 작용소 Prj, 다시 말해, Prj(ak)=δj, kaj가 다항식 시간으로 계산 가능한 것을 나타냈다. 그 때문에, φi, jPrj의 구성은, φi, jPrj(ak)=δj, kai이다. 그리고, 이것은 다항식 시간으로 계산 가능하다. 여기서는, φi, jPrj를 디스토션 사상이라고 부른다.
(실시 형태 9)
이상의 실시 형태에서는, 쌍대 벡터 공간에서 암호 처리를 실현하는 방법에 대하여 설명했다. 본 실시 형태에서는, 쌍대가군에 있어서 암호 처리를 실현하는 방법에 대하여 설명한다.
다시 말해, 이상의 실시 형태에서는, 소수 자릿수 q의 순회군에 있어서 암호 처리를 실현했다. 그러나, 합성수 M을 이용하여 수학식 245와 같이 환 R을 나타낸 경우, 환 R을 계수로 하는 가군(additive group)에 있어서도, 상기 실시 형태에서 설명한 암호 처리를 적용할 수 있다.
[수학식 245]
Figure 112011092805583-pct00203
예컨대, 실시 형태 2에서 설명한 계층적 술어 키 비닉 방식을, 환 R을 계수로 하는 가군에 있어서 실현하면 수학식 246~수학식 250과 같이 된다.
[수학식 246]
Figure 112011092805583-pct00204
[수학식 247]
Figure 112011092805583-pct00205
[수학식 248]
Figure 112011092805583-pct00206
[수학식 249]
Figure 112011092805583-pct00207
[수학식 250]
Figure 112011092805583-pct00208
즉, 원칙으로서, 이상의 실시 형태에서 체(field) Fq로서 설명한 처리를, 환 R로 치환하는 것에 의해, 이상의 실시 형태에서 설명한 암호 처리를, 환 R을 계수로 하는 가군에 있어서 실현할 수 있다.
다음으로, 실시 형태에 있어서의 암호 처리 시스템(10)(키 생성 장치(100), 암호화 장치(200), 복호 장치(300), 키 위양 장치(400))의 하드웨어 구성에 대하여 설명한다.
도 36은 키 생성 장치(100), 암호화 장치(200), 복호 장치(300), 키 위양 장치(400)의 하드웨어 구성의 일례를 나타내는 도면이다.
도 36에 나타내는 바와 같이, 키 생성 장치(100), 암호화 장치(200), 복호 장치(300), 키 위양 장치(400)는, 프로그램을 실행하는 CPU(911)(Central Processing Unit, 중앙 처리 장치, 처리 장치, 연산 장치, 마이크로프로세서, 마이크로컴퓨터, 프로세서라고도 한다)를 구비하고 있다. CPU(911)는, 버스(912)를 통해 ROM(913), RAM(914), LCD(901)(Liquid Crystal Display), 키보드(902)(K/B), 통신 보드(915), 자기 디스크 장치(920)와 접속되고, 이들 하드웨어 디바이스를 제어한다. 자기 디스크 장치(920)(고정 디스크 장치) 대신에, 광디스크 장치, 메모리 카드 읽기쓰기 장치 등의 기억 장치라도 좋다. 자기 디스크 장치(920)는, 소정의 고정 디스크 인터페이스를 통해 접속된다.
ROM(913), 자기 디스크 장치(920)는, 비휘발성 메모리의 일례이다. RAM(914)은, 휘발성 메모리의 일례이다. ROM(913)과 RAM(914)과 자기 디스크 장치(920)는, 기억 장치(메모리)의 일례이다. 또한, 키보드(902), 통신 보드(915)는, 입력 장치의 일례이다. 또한, 통신 보드(915)는, 통신 장치(네트워크 인터페이스)의 일례이다. 또한, LCD(901)는, 표시 장치의 일례이다.
자기 디스크 장치(920) 또는 ROM(913) 등에는, 오퍼레이팅 시스템(921)(OS), 윈도우 시스템(922), 프로그램군(923), 파일군(924)이 기억되어 있다. 프로그램군(923)의 프로그램은, CPU(911), 오퍼레이팅 시스템(921), 윈도우 시스템(922)에 의해 실행된다.
프로그램군(923)에는, 상기의 설명에 있어서 「마스터 키 생성부(110)」, 「마스터 키 기억부(120)」, 「키 벡터 생성부(130)」, 「키 생성용 벡터 생성부(140)」, 「키 배포부(150)」, 「송신 정보 설정부(210)」, 「암호 벡터 생성부(220)」, 「데이터 송신부(230)」, 「세션 키 생성부(240)」, 「검증 정보 생성부(250)」, 「검증 정보 설정부(260)」, 「서명 정보 생성부(270)」, 「벡터 입력부(310)」, 「키 벡터 기억부(320)」, 「페어링 연산부(330)」, 「이산 대수 계산부(340)」, 「벡터 변형부(350)」, 「복호부(360)」, 「개찬 검증부(370)」, 「키 벡터 취득부(410)」, 「키 벡터 생성부(420)」, 「키 생성용 벡터 생성부(430)」, 「키 배포부(440)」 등으로서 설명한 기능을 실행하는 소프트웨어나 프로그램이나 그 밖의 프로그램이 기억되어 있다. 프로그램은, CPU(911)에 의해 판독되어 실행된다.
파일군(924)에는, 상기의 설명에 있어서 「마스터 공개 키 pk」, 「마스터 비밀 키 sk」, 「암호 벡터 c」, 「키 벡터」 등의 정보나 데이터나 신호치나 변수치나 파라미터가, 「파일」이나 「데이터베이스」의 각 항목으로서 기억된다. 「파일」이나 「데이터베이스」는, 디스크나 메모리 등의 기록 매체에 기억된다. 디스크나 메모리 등의 기억 매체에 기억된 정보나 데이터나 신호치나 변수치나 파라미터는, 읽기쓰기 회로를 통해 CPU(911)에 의해 메인메모리나 캐시메모리에 판독되어, 추출ㆍ검색ㆍ참조ㆍ비교ㆍ연산ㆍ계산ㆍ처리ㆍ출력ㆍ인쇄ㆍ표시 등의 CPU(911)의 동작에 이용된다. 추출ㆍ검색ㆍ참조ㆍ비교ㆍ연산ㆍ계산ㆍ처리ㆍ출력ㆍ인쇄ㆍ표시의 CPU(911)의 동작의 사이, 정보나 데이터나 신호치나 변수치나 파라미터는, 메인메모리나 캐시메모리나 버퍼메모리에 일시적으로 기억된다.
또한, 상기의 설명에 있어서의 흐름도의 화살표의 부분은 주로 데이터나 신호의 입출력을 나타내고, 데이터나 신호치는, RAM(914)의 메모리, 기타 광디스크 등의 기록 매체나 IC칩에 기록된다. 또한, 데이터나 신호는, 버스(912)나 신호선이나 케이블 그 밖의 전송 매체나 전파에 의해 온라인 전송된다.
또한, 상기의 설명에 있어서 「~부」로서 설명하는 것은, 「~회로」, 「~장치」, 「~기기」, 「~수단」, 「~기능」이더라도 좋고, 또한, 「~단계」, 「~순서」, 「~처리」이더라도 좋다. 또한, 「~장치」로서 설명하는 것은, 「~회로」, 「~장치」, 「~기기」, 「~수단」, 「~기능」이더라도 좋고, 또한, 「~단계」, 「~순서」, 「~처리」이더라도 좋다. 또한, 「~처리」로서 설명하는 것은 「~단계」이더라도 상관없다. 즉, 「~부」로서 설명하는 것은, ROM(913)에 기억된 펌웨어로 실현되고 있더라도 상관없다. 혹은, 소프트웨어만, 혹은, 소자ㆍ디바이스ㆍ기판ㆍ배선 등의 하드웨어만, 혹은, 소프트웨어와 하드웨어의 조합, 또한, 펌웨어와의 조합으로 실시되더라도 상관없다. 펌웨어와 소프트웨어는, 프로그램으로서, ROM(913) 등의 기록 매체에 기억된다. 프로그램은 CPU(911)에 의해 판독되어, CPU(911)에 의해 실행된다. 즉, 프로그램은, 상기에서 말한 「~부」로서 컴퓨터 등을 기능시키는 것이다. 혹은, 상기에서 말한 「~부」의 순서나 방법을 컴퓨터 등에 실행시키는 것이다.
10 : 암호 처리 시스템
100 : 키 생성 장치
110 : 마스터 키 생성부
120 : 마스터 키 기억부
130 : 키 벡터 생성부
140 : 키 생성용 벡터 생성부
150 : 키 배포부
200 : 암호화 장치
210 : 송신 정보 설정부220 : 암호 벡터 생성부
230 : 데이터 송신부
240 : 세션 키 생성부
250 : 검증 정보 생성부
260 : 검증 정보 설정부
270 : 서명 정보 생성부
300 : 복호 장치
310 : 벡터 입력부
320 : 키 벡터 기억부
330 : 페어링 연산부
340 : 이산 대수 계산부
350 : 벡터 변형부
360 : 복호부
370 : 개찬 검증부
400 : 키 위양 장치
410 : 키 벡터 취득부
420 : 키 벡터 생성부
430 : 키 생성용 벡터 생성부
440 : 키 배포부

Claims (47)

  1. 페어링 연산에 의해 관련지어진 쌍대 벡터 공간(dual vector spaces)인 공간 V와 공간 V*를 이용하여 암호 처리를 행하는 암호 처리 시스템으로서,
    상기 공간 V에서의 벡터로서, 소정의 정보를 내장한 벡터를 암호 벡터로서 처리 장치에 의해 생성하는 암호화 장치와,
    상기 공간 V*에 있어서의 소정의 벡터를 키 벡터로 하여, 상기 암호화 장치가 생성한 암호 벡터와 상기 키 벡터에 대하여, 처리 장치에 의해 상기 페어링 연산을 행하여 상기 암호 벡터를 복호하여 상기 소정의 정보에 관한 정보를 추출하는 복호 장치
    를 구비하는 것을 특징으로 하는 암호 처리 시스템.
  2. 제 1 항에 있어서,
    상기 암호 처리 시스템은, N차원 벡터 공간인 상기 공간 V와 N차원 벡터 공간인 상기 공간 V*에 있어서 암호 처리를 행하고,
    상기 암호화 장치는, 상기 공간 V에서의 N차원 벡터 χ:=(χ0g1, …, χN-1g1)를 암호 벡터로서 생성하고,
    상기 복호 장치는, 상기 공간 V*에 있어서의 N차원 벡터 η:=(η0g2, …, ηN-1g2)를 키 벡터로 하여, 상기 암호 벡터 χ:=(χ0g1, …, χN-1g1)와, 상기 키 벡터 η:=(η0g2, …, ηN-1g2)에 대하여, 수학식 1에 나타내는 페어링 연산 e(χ, η)를 행하는
    것을 특징으로 하는 암호 처리 시스템.
    [수학식 1]
    Figure 112011092805583-pct00209

  3. 제 2 항에 있어서,
    상기 암호 처리 시스템은, 수학식 2에 나타내는 정규 직교 기저의 요건을 만족시키는 표준 기저 A:=(a0, …, aN-1)를 갖는 공간 V와, 표준 기저 A*:=(a* 0, …, a* N-1)를 갖는 공간 V*에 있어서 암호 처리를 행하는 것을 특징으로 하는 암호 처리 시스템.
    [수학식 2]
    Figure 112011092956007-pct00210

  4. 제 3 항에 있어서,
    상기 공간 V와 상기 공간 V*는, 각각 수학식 3과 수학식 4에 나타내는 디스토션 사상(maps) φi,j와 φ* i,j를 갖는 표준 기저 A:=(a0, …, aN-1)와 A*:=(a* 0, …, a* N-1)를 갖는 공간인 것을 특징으로 하는 암호 처리 시스템.
    [수학식 3]
    Figure 112011092956007-pct00211

    [수학식 4]
    Figure 112011092956007-pct00212

  5. 제 3 항에 있어서,
    상기 암호화 장치는, 상기 공간 V의 표준 기저 A에 소정의 연산을 행한 기저 B에서의 벡터를 암호 벡터로서 생성하고,
    상기 복호 장치는, 상기 공간 V*의 표준 기저 A*에 상기 소정의 연산으로부터 도출되는 연산을 행한 기저 B*로서, 상기 기저 B와 정규 직교 기저인 기저 B*에 있어서의 벡터를 상기 키 벡터로 하는
    것을 특징으로 하는 암호 처리 시스템.
  6. 제 5 항에 있어서,
    상기 기저 B는, 상기 표준 기저 A에 수학식 5에 나타내는 연산을 행한 기저 B:=(b0, …, bN -1)이며,
    상기 기저 B*는, 상기 표준 기저 A*에 수학식 6에 나타내는 연산을 행한 기저 B*:=(b* 0, …, b* N-1)인
    것을 특징으로 하는 암호 처리 시스템.
    [수학식 5]
    Figure 112011092805583-pct00213

    [수학식 6]
    Figure 112011092805583-pct00214

  7. 제 5 항에 있어서,
    상기 암호화 장치는,
    상기 공간 V에서의 소정의 기저 B의 기저 벡터 bi(i=0, …, N-1) 중, 기저 벡터 bn에 대한 계수로서 ρ를 설정한 벡터를 송신 정보 벡터로서 처리 장치에 의해 생성하는 송신 정보 설정부와,
    기저 벡터 bi(i=0, …, μLx-1)에 대한 계수로서 속성 정보 xi(i=0, …, μLx-1)를 설정한 벡터를, 상기 송신 정보 설정부가 생성한 송신 정보 벡터에 더하여 암호 벡터를 처리 장치에 의해 생성하는 암호 벡터 생성부를 구비하고,
    상기 복호 장치는,
    상기 공간 V*에 있어서의 소정의 기저 B*의 기저 벡터 b* i(i=0, …, N-1) 중, 소정의 기저 벡터 b* n에 대한 계수로서 소정의 값이 설정됨과 아울러, 기저 벡터 b* i(i=0, …, μLv-1)(μLx≥μLv)에 대한 계수로서 술어 정보 vi(i=0, …, μLv-1)가 설정된 벡터를 키 벡터로서 기억 장치에 기억하는 키 벡터 기억부와,
    상기 암호 벡터 생성부가 생성한 암호 벡터와, 상기 키 벡터 기억부가 기억한 키 벡터에 대하여 처리 장치에 의해 상기 페어링 연산을 행하고, 상기 암호 벡터로부터 상기 기저 벡터 bn의 계수로서 설정한 ρ에 관한 값을 추출하는 페어링 연산부를 구비하는
    것을 특징으로 하는 암호 처리 시스템.
  8. 제 7 항에 있어서,
    상기 암호 처리 시스템은, 상기 공간 V*에 있어서의 소정의 기저 B*의 기저 벡터 b* i(i=0, …, n-1) 중, 소정의 기저 벡터 b* n에 대한 계수로서 소정의 값을 설정함과 아울러, 기저 벡터 b* i(i=0, …, μL-1)에 대한 계수로서 술어 정보 vi(i=0, …, μL-1)를 설정한 벡터를 키 벡터 kL,0으로서 처리 장치에 의해 생성하는 키 벡터 생성부를 구비하는 키 생성 장치를 더 구비하는 것을 특징으로 하는 암호 처리 시스템.
  9. 제 8 항에 있어서,
    상기 키 생성 장치는, i=μL, …, n-1의 각 i에 대하여, 기저 벡터 b* i에 대한 계수로서 소정의 값을 설정한 ((n-1)-μL-1)개의 벡터를, 상기 키 벡터 kL ,0의 하위의 키 벡터를 생성하기 위한 키 생성용 벡터 kL ,i(i=μL, …, n-1)로서 처리 장치에 의해 생성하는 키 생성용 벡터 생성부를 더 구비하는 것을 특징으로 하는 암호 처리 시스템.
  10. 제 9 항에 있어서,
    상기 암호 처리 시스템은,
    키 생성용 벡터 kL,i(i=μL, …, μL+1-1)에 대한 계수로서 술어 정보 vi(i=μL, …, μL+1-1)를 설정한 벡터 vi(i=μL, …, μL+1-1)와, 상기 키 벡터 kL,0을 가산하여, 상기 키 벡터 kL,0의 하위의 키 벡터인 키 벡터 kL+1,0을 처리 장치에 의해 생성하는 키 벡터 생성부와, 키 생성용 벡터 kL+l,i(i=μL+1, …, n-1)에 소정의 변경을 가하여, 상기 키 벡터 kL,0의 하위의 키 벡터를 생성하기 위한 키 생성용 벡터 kL+l,i(i=μL+1, …, n-1)를 처리 장치에 의해 생성하는 키 생성용 벡터 생성부를 구비하는 키 위양 장치
    를 더 구비하는 것을 특징으로 하는 암호 처리 시스템.
  11. 술어 암호에 있어서의 비밀 키인 키 벡터 kL ,0을 생성하는 키 생성 장치로서,
    페어링 연산에 의해 관련지어진 쌍대 벡터 공간인 공간 V와 공간 V* 중 상기 공간 V*를 마스터 비밀 키로서 기억 장치에 기억하는 마스터 키 기억부와,
    상기 마스터 키 기억부가 기억한 마스터 비밀 키인 상기 공간 V*에 있어서의 소정의 기저 B*의 기저 벡터 b* i(i=0, …, N-1) 중, 소정의 기저 벡터 b* n에 대한 계수로서 소정의 값을 설정함과 아울러, 기저 벡터 b* i(i=0, …, μL-1)에 대한 계수로서 술어 정보 vi(i=0, …, μL-1)를 설정한 벡터를 키 벡터 kL ,0으로서 처리 장치에 의해 생성하는 키 벡터 생성부
    를 구비하는 것을 특징으로 하는 키 생성 장치.
  12. 제 11 항에 있어서,
    상기 키 벡터 생성부는, 기저 벡터 b* i(i=0, …, μL-1)에 대한 계수로서, 속성 정보 xi(i=0, …, μL-1)와의 내적이 0이 되는 술어 정보 vi(i=0, …, μL-1)를 설정하는 것을 특징으로 하는 키 생성 장치.
  13. 제 11 항에 있어서,
    상기 키 벡터 생성부는, 수학식 7에 나타내는 키 벡터 kL,0을 생성하는 것을 특징으로 하는 키 생성 장치.
    [수학식 7]
    Figure 112011092956007-pct00215
  14. 제 11 항에 있어서,
    상기 키 생성 장치는, i=μL, …, n-1의 각 i에 대하여, 기저 벡터 b* i에 대한 계수로서 소정의 값을 설정한 ((n-1)-μL-1)개의 벡터를, 상기 키 벡터 kL,0의 하위의 키 벡터를 생성하기 위한 키 생성용 벡터 kL,i(i=μL, …, n-1)로서 처리 장치에 의해 생성하는 키 생성용 벡터 생성부를 더 구비하는 것을 특징으로 하는 키 생성 장치.
  15. 제 14 항에 있어서,
    상기 키 벡터 생성부는, 수학식 8에 나타내는 키 벡터 kL ,0을 생성하고,
    상기 키 생성용 벡터 생성부는, 수학식 8에 나타내는 키 생성용 벡터 kL ,i(i=μL, …, n-1)를 생성하는
    것을 특징으로 하는 키 생성 장치.
    [수학식 8]
    Figure 112011092805583-pct00216

  16. 술어 암호에 있어서의 비밀 키인 키 벡터를 생성하는 키 위양 장치로서,
    페어링 연산에 의해 관련지어진 쌍대 벡터 공간인 공간 V와 공간 V* 중 상기 공간 V에서의 소정의 암호 벡터를 복호 가능한 상기 공간 V*에 있어서의 키 벡터를 취득하는 키 벡터 취득부와,
    상기 키 벡터 취득부가 취득한 키 벡터에 근거하여, 상기 키 벡터로 복호 가능한 상기 소정의 암호 벡터 중 일부의 암호 벡터를 복호 가능한 상기 공간 V*에 있어서의 새로운 키 벡터를 처리 장치에 의해 생성하는 키 벡터 생성부
    를 구비하는 것을 특징으로 하는 키 위양 장치.
  17. 제 16 항에 있어서,
    상기 키 벡터 취득부는, 상기 공간 V*에 있어서의 소정의 기저 B*의 소정의 기저 벡터에 대한 계수로서 술어 정보가 설정된 벡터를 키 벡터로서 취득하고,
    상기 키 벡터 생성부는, 상기 소정의 기저 벡터 이외의 상기 기저 B*의 기저 벡터에 대한 계수로서 술어 정보를 설정한 벡터를, 상기 키 벡터 취득부가 취득한 키 벡터에 가산하여 새로운 키 벡터를 생성하는
    것을 특징으로 하는 키 위양 장치.
  18. 제 16 항에 있어서,
    상기 키 벡터 취득부는, 상기 공간 V*에 있어서의 소정의 기저 B*의 기저 벡터 b* i(i=0, …, N-1) 중 기저 벡터 b* i(i=0, …, μL-1)에 술어 정보 vi(i=0, …, μL-1)가 설정된 제 L 층째의 키 벡터 kL,0과, 기저 벡터 b* i에 대한 계수로서 소정의 값이 설정된 키 생성용 벡터 kL,i(i=μL, …, μL+1-1)를 취득하고,
    상기 키 벡터 생성부는, i=μL, …, μL+1-1의 각 i에 대하여, 상기 키 벡터 취득부가 취득한 키 생성용 벡터 kL,i의 기저 벡터 b* i에 대한 계수로서 술어 정보 vi를 설정한 벡터 vi(i=μL, …, μL+1-1)를, 상기 키 벡터 kL,0에 가산하여 제 L+1 층째의 키 벡터 kL+1,0을 처리 장치에 의해 생성하는
    것을 특징으로 하는 키 위양 장치.
  19. 제 18 항에 있어서,
    상기 키 벡터 생성부는, 상기 키 생성용 벡터 kL ,i의 기저 벡터 b* i에 대한 계수를, 속성 정보 xi(i=μL, …, μL+1-1)의 내적이 0이 되는 술어 정보 vi(i=μL, …, μL+1-1)배 하는 것을 특징으로 하는 키 위양 장치.
  20. 제 18 항에 있어서,
    상기 키 벡터 생성부는, 키 벡터 kL,0과 키 생성용 벡터 kL,i에 근거하여, 수학식 9에 나타내는 키 벡터 kL+1,0을 생성하는 것을 특징으로 하는 키 위양 장치.
    [수학식 9]
    Figure 112011092956007-pct00217

  21. 제 18 항에 있어서,
    상기 키 위양 장치는, 키 생성용 벡터 kL,i(i=μL, …, μL+1-1)에 소정의 변경을 가하여, 상기 키 벡터 kL+1,0의 하위의 키 벡터를 생성하기 위한 키 생성용 벡터 kL+l,i(i=μL+1, …, n-1)를 처리 장치에 의해 생성하는 키 생성용 벡터 생성부를 더 구비하는 것을 특징으로 하는 키 위양 장치.
  22. 제 21 항에 있어서,
    상기 키 벡터 취득부는, 수학식 10에 나타내는 키 벡터 kL ,0과 키 생성용 벡터 kL ,i(i=μL, …, n-1)를 취득하고,
    상기 키 벡터 생성부는, 상기 키 벡터 취득부가 취득한 키 벡터 kL ,0과 키 생성용 벡터 kL ,i에 근거하여, 수학식 10에 나타내는 키 벡터 kL +1,0을 생성하고,
    상기 키 생성용 벡터 생성부는, 상기 키 벡터 취득부가 취득한 키 생성용 벡터 kL ,i에 근거하여, 수학식 10에 나타내는 키 생성용 벡터 kL +1,i(i=μL+1, …, n-1)를 생성하는
    것을 특징으로 하는 키 위양 장치.
    [수학식 10]
    Figure 112011092805583-pct00218

  23. 페어링 연산에 의해 관련지어진 쌍대 벡터 공간인 공간 V와 공간 V* 중 공간 V에서의 소정의 기저 B의 기저 벡터 bi(i=0, …, N-1) 중, 기저 벡터 bn에 대한 계수로서 ρ를 설정한 벡터를 송신 정보 벡터로서 처리 장치에 의해 생성하는 송신 정보 설정부와,
    기저 벡터 bi(i=0, …, μLx-1)에 대한 계수로서 속성 정보 xi(i=0, …, μLx-1)를 설정한 속성 벡터를, 상기 송신 정보 설정부가 생성한 송신 정보 벡터에 가산하여 암호 벡터를 처리 장치에 의해 생성하는 암호 벡터 생성부
    를 구비하는 것을 특징으로 하는 암호화 장치.
  24. 제 23 항에 있어서,
    상기 송신 정보 설정부는, 수학식 11에 나타내는 송신 정보 벡터 ρv를 생성하고,
    상기 암호 벡터 생성부는, 수학식 12에 나타내는 속성 정보 벡터 xv를 수학식 11에 나타내는 송신 정보 벡터 ρv에 가산하여 암호 벡터 c를 생성하는
    것을 특징으로 하는 암호화 장치.
    [수학식 11]
    Figure 112011092805583-pct00219

    [수학식 12]
    Figure 112011092805583-pct00220

  25. 페어링 연산에 의해 관련지어진 쌍대 벡터 공간인 공간 V와 공간 V* 중 공간 V에서의 소정의 기저 B의 기저 벡터 bi(i=0, …, N-1) 중, 기저 벡터 bn의 계수로서 ρ가 설정됨과 아울러, 기저 벡터 bi(i=0, …, μLx-1)의 소정의 기저 벡터의 계수에 속성 정보 xi(i=0, …, μLx-1)가 설정된 벡터를 암호 벡터로서 입력하는 벡터 입력부와,
    상기 공간 V*에 있어서의 소정의 기저 B*의 기저 벡터 b* i(i=0, …, N-1) 중, 소정의 기저 벡터 b* n에 대한 계수로서 소정의 값이 설정됨과 아울러, 기저 벡터 b* i(i=0, …, μLv-1)(μLx≥μLv)에 대한 계수로서 술어 정보 vi(i=0, …, μLv-1)가 설정된 벡터를 키 벡터로서 기억 장치에 기억하는 키 벡터 기억부와,
    상기 벡터 입력부가 입력한 암호 벡터와, 상기 키 벡터 기억부가 기억한 키 벡터에 대하여 처리 장치에 의해 상기 페어링 연산을 행하여, 상기 암호 벡터로부터 상기 기저 벡터 bn의 계수로서 설정한 ρ에 관한 값을 추출하는 페어링 연산부
    를 구비하는 것을 특징으로 하는 복호 장치.
  26. 제 25 항에 있어서,
    상기 벡터 입력부는, 수학식 13에 나타내는 암호 벡터 c를 입력하고,
    상기 키 벡터 기억부는, 수학식 14에 나타내는 키 벡터 kv를 기억하고,
    상기 페어링 연산부는, 수학식 15에 나타내는 페어링 연산을 행하여, uρ를 추출하는
    것을 특징으로 하는 복호 장치.
    [수학식 13]
    Figure 112011092805583-pct00221

    [수학식 14]
    Figure 112011092805583-pct00222

    [수학식 15]
    Figure 112011092805583-pct00223

  27. 제 23 항에 있어서,
    상기 암호화 장치는, 기저 벡터 bn과 상기 기저 벡터 bi(i=0, …, μLx-1)와 이외의 소정의 기저 벡터에 대한 계수로서 검증 정보를 포함하는 정보를 설정한 벡터를 검증 정보 벡터로서 처리 장치에 의해 생성하는 검증 정보 설정부를 더 구비하고,
    상기 암호 벡터 생성부는, 상기 속성 벡터와 상기 송신 정보 벡터와 상기 검증 정보 설정부가 생성한 검증 정보 벡터를 가산하여 암호 벡터를 생성하고,
    상기 암호화 장치는, 상기 검증 정보 설정부가 설정한 검증 정보에 근거하여 검증되는 서명 정보를 처리 장치에 의해 생성하는 서명 정보 생성부와, 상기 암호 벡터 생성부가 생성한 암호 벡터와, 상기 서명 정보 생성부가 생성한 서명 정보와, 상기 검증 정보를 복호 장치에 송신하는 데이터 송신부를 더 구비하는
    것을 특징으로 하는 암호화 장치.
  28. 제 27 항에 있어서,
    상기 검증 정보 설정부는, 상기 소정의 기저 벡터에 대한 계수로서 제 1 검증 정보 com을 포함하는 정보를 설정한 벡터를 검증 정보 벡터로서 생성하고,
    상기 암호 벡터 생성부는, 상기 암호 벡터를 데이터 c1로서 생성하고,
    상기 서명 정보 생성부는, 평문 정보 m과 제 2 검증 정보 dec를, 상기 기저 벡터 bn에 대한 계수로서 설정한 ρ로부터 생성된 세션 키로 암호화하여 데이터 c2를 생성하는 c2 생성부와, 상기 제 1 검증 정보 com을 데이터 c3으로서 생성하는 c3 생성부와, 상기 데이터 c1과 상기 데이터 c2를, 상기 제 1 검증 정보 com과 상기 제 2 검증 정보 dec에 근거하여 생성 가능한 제 3 검증 정보 r에 의해 암호화한 서명 정보를 데이터 c4로서 생성하는 c4 생성부와,
    상기 데이터 송신부는, 상기 암호 벡터 생성부가 생성한 데이터 c1과, 상기 c2 생성부가 생성한 데이터 c2와, 상기 c3 생성부가 생성한 데이터 c3과, 상기 c4 생성부가 생성한 데이터 c4를 출력하는
    것을 특징으로 하는 암호화 장치.
  29. 제 28 항에 있어서,
    상기 송신 정보 설정부는, 수학식 16에 나타내는 송신 정보 벡터 ρv를 생성하고,
    상기 검증 정보 설정부는, 수학식 17에 나타내는 검증 정보 벡터 cv를 생성하고,
    상기 암호 벡터 생성부는, 수학식 18에 나타내는 속성 정보 벡터 xv와, 수학식 16에 나타내는 송신 정보 벡터 ρv와, 수학식 17에 나타내는 검증 정보 벡터 cv를 가산하여 데이터 c1을 생성하고,
    상기 c2 생성부는, 수학식 19에 따라 데이터 c2를 생성하고,
    상기 c4 생성부는, 수학식 20에 따라 데이터 c4를 생성하는
    것을 특징으로 하는 암호화 장치.
    [수학식 16]
    Figure 112011092956007-pct00224

    [수학식 17]
    Figure 112011092956007-pct00225

    [수학식 18]
    Figure 112011092956007-pct00226

    [수학식 19]
    Figure 112011092956007-pct00227

    [수학식 20]
    Figure 112011092956007-pct00228

  30. 제 25 항에 있어서,
    상기 벡터 입력부는, 상기 기저 벡터 bn의 계수로서 ρ가 설정되고, 상기 기저 벡터 bi(i=0, …, μLx-1)에 대한 계수로서 속성 정보 xi(i=0, …, μLx-1)가 설정되고, 상기 기저 벡터 bn과 상기 기저 벡터 bi(i=0, …, μLx-1)와 이외의 소정의 기저 벡터에 대한 계수로서 검증 정보를 포함하는 정보가 설정된 암호 벡터와, 상기 검증 정보에 근거하여 검증되는 서명 정보와, 상기 검증 정보를 입력하고,
    상기 복호 장치는, 소정의 기저 벡터에 대한 계수로서 상기 검증 정보를 포함하는 정보를 설정한 벡터를 상기 키 벡터 기억부가 기억한 키 벡터에 더하여 키 벡터를 처리 장치에 의해 변형하는 키 벡터 변형부를 더 구비하고,
    상기 페어링 연산부는, 상기 벡터 입력부가 입력한 암호 벡터와, 상기 키 벡터 변형부가 변형한 키 벡터에 대하여, 상기 페어링 연산을 행하여, 상기 암호 벡터로부터 상기 기저 벡터 bn의 계수로서 설정한 ρ에 관한 값을 추출하고,
    상기 복호 장치는, 상기 검증 정보에 근거하여, 상기 서명 정보에 개찬(tampering)이 없는 것을 처리 장치에 의해 검증하는 개찬 검증부를 더 구비하는
    것을 특징으로 하는 복호 장치.
  31. 제 30 항에 있어서,
    상기 벡터 입력부는, 상기 검증 정보로서 제 1 검증 정보 com을 포함하는 정보가 설정된 암호 벡터인 데이터 c1과, 평문 정보 m과 제 2 검증 정보 dec를, 상기 데이터 c1의 상기 기저 벡터 bn에 대한 계수로서 설정한 ρ로부터 생성된 세션 키로 암호화한 데이터 c2와, 제 1 검증 정보 com인 데이터 c3과, 상기 데이터 c1과 상기 데이터 c2를, 상기 제 1 검증 정보 com과 상기 제 2 검증 정보 dec에 근거하여 생성 가능한 제 3 검증 정보 r에 의해 암호화한 서명 정보인 데이터 c4를 입력하고,
    상기 복호 장치는, 상기 페어링 연산부가 추출한 ρ에 관한 값으로부터 세션 키를 생성하고, 생성한 세션 키에 의해 상기 데이터 c2를 복호하여, 상기 평문 정보 m과 상기 제 2 검증 정보 dec를 취득하는 c2 복호부를 더 구비하고,
    상기 개찬 검증부는, 상기 c2 복호부가 취득한 제 2 검증 정보와 상기 데이터 c3으로부터 상기 제 3 검증 정보 r을 생성함과 아울러, 생성한 상기 제 3 검증 정보 r과 상기 데이터 c4에 근거하여, 상기 데이터 c1과 상기 데이터 c2에 개찬이 없음을 검증하는
    것을 특징으로 하는 복호 장치.
  32. 제 31 항에 있어서,
    상기 데이터 입력부는, 수학식 21에 나타내는 데이터 c1과 데이터 c2와 데이터 c3과 데이터 c4를 입력하고,
    상기 키 벡터 기억부는, 수학식 22에 나타내는 키 벡터 kv를 기억하고,
    상기 키 벡터 변형부는, 수학식 23에 따라 키 벡터 kv를 변환하고,
    상기 페어링 연산부는, 수학식 24에 나타내는 페어링 연산을 행하여, ρ에 관한 값 K를 취득하고,
    상기 c2 복호부는, 수학식 25에 따라 상기 ρ에 관한 값 K로부터 공통 키를 생성하고, 생성한 공통 키에 의해 상기 데이터 c2를 복호하여, 상기 평문 정보 m과 상기 제 2 검증 정보 dec를 취득하고,
    상기 개찬 검증부는, 수학식 26에 따라 상기 제 3 검증 정보 r을 생성하여, 수학식 27에 따라 개찬을 검증하는
    것을 특징으로 하는 복호 장치.
    [수학식 21]
    Figure 112011092805583-pct00229

    [수학식 22]
    Figure 112011092805583-pct00230

    [수학식 23]
    Figure 112011092805583-pct00231

    [수학식 24]
    Figure 112011092805583-pct00232

    [수학식 25]
    Figure 112011092805583-pct00233

    [수학식 26]
    Figure 112011092805583-pct00234

    [수학식 27]
    Figure 112011092805583-pct00235

  33. 제 23 항에 있어서,
    상기 송신 정보 설정부는, t=0, …, n-1의 각 t에 대하여, 상기 공간 V에서의 기저 B[t]의 기저 벡터 b[t] i(i=0, …, N-1) 중, 기저 벡터 b[t] n에 대한 계수로서 평문 정보 m을 설정한 벡터를 송신 정보 벡터 mv[t]로서 생성하고,
    상기 암호 벡터 생성부는, t=0, …, n-1의 각 t에 대하여, 기저 벡터 b[t] i(i=0, …, μLx-1)에 대한 계수로서, 수학식 28에 나타내는 계수치 s[t] i를 설정한 속성 정보 벡터 xv[t]를, 상기 송신 정보 설정부가 생성한 송신 정보 벡터 mv[t]에 가산하여 암호 벡터 c[t]를 생성하는
    것을 특징으로 하는 암호화 장치.
    [수학식 28]
    Figure 112011092805583-pct00236

  34. 제 33 항에 있어서,
    상기 송신 정보 설정부는, 수학식 29에 나타내는 송신 정보 벡터 mv[t]를 생성하고,
    상기 암호 벡터 생성부는, 수학식 30에 나타내는 속성 정보 벡터 xv[t]를 수학식 29에 나타내는 송신 정보 벡터 mv[t]에 가산하여 암호 벡터 c[t]를 생성하는
    것을 특징으로 하는 암호화 장치.
    [수학식 29]
    Figure 112011092805583-pct00237

    [수학식 30]
    Figure 112011092805583-pct00238


  35. 제 25 항에 있어서,
    상기 벡터 입력부는, t=0, …, n-1의 각 t에 대하여, 상기 공간 V에서의 기저 B[t]의 기저 벡터 b[t] i(i=0, …, N-1) 중, 기저 벡터 b[t] n에 대한 계수로서 평문 정보 m이 설정됨과 아울러, 기저 벡터 b[t] i(i=0, …, μLx-1)에 대한 계수로서, 수학식 31에 나타내는 계수치 s[t] i가 설정된 벡터 v[t]를 암호 벡터 c[t]로서 입력하고,
    상기 키 벡터 기억부는, t=0, …, n-1의 각 t에 대하여, 상기 공간 V*에 있어서의 기저 B[t]*의 기저 벡터 b[t]* i(i=0, …, N-1) 중, 기저 벡터 b[t]* n에 대한 계수로서 소정의 값이 설정됨과 아울러, 벡터 b[t]* i(i=0, …, μLv-1)(μLx≥μLv)에 대한 계수로서 술어 정보 vi(i=0, …, μLv-1)가 설정된 벡터 v[t]를 키 벡터 kv[t]로서 기억 장치에 기억하고,
    상기 페어링 연산부는, t=0, …, n-1의 각 t에 대하여, 상기 벡터 입력부가 입력한 암호 벡터 c[t]와, 상기 키 벡터 기억부가 기억한 키 벡터 kv[t]에 대하여 상기 페어링 연산을 행하여, 상기 암호 벡터로부터 상기 기저 벡터 b[t] n의 계수로서 설정한 평문 정보 m에 관한 정보 f를 생성함과 아울러, t=0, …, n-1의 각 t에 대하여, 기저 벡터 b[t] n과, 상기 키 벡터 kv[t]에 대하여 상기 페어링 연산을 행하여, 상기 정보 f로부터 상기 평문 정보 m을 추출하기 위한 정보 g를 생성하고,
    상기 복호 장치는, 상기 페어링 연산부가 생성한 정보 f에 대하여, 정보 g를 밑으로 하여 이산 대수 문제를 계산하여, 상기 평문 정보 m을 계산하는 이산 대수 계산부를 더 구비하는
    것을 특징으로 하는 복호 장치.
    [수학식 31]
    Figure 112011092956007-pct00239

  36. 제 35 항에 있어서,
    상기 벡터 입력부는, 수학식 32에 나타내는 암호 벡터 c[t]를 입력하고,
    상기 키 벡터 기억부는, 수학식 33에 나타내는 키 벡터 kv[t]를 기억하고,
    상기 페어링 연산부는, 수학식 34에 나타내는 페어링 연산을 행하여 정보 f와 정보 g를 생성하고,
    상기 이산 대수 계산부는, 수학식 35에 나타내는 이산 대수 문제를 풀어 평문 정보 m을 계산하는
    것을 특징으로 하는 복호 장치.
    [수학식 32]
    Figure 112011092956007-pct00240

    [수학식 33]
    Figure 112011092956007-pct00241

    [수학식 34]
    Figure 112011092956007-pct00242

    [수학식 35]
    Figure 112011092956007-pct00243

  37. 제 33 항에 있어서,
    상기 암호화 장치는, t=0, …, n-1의 각 t에 대하여, 기저 벡터 b[t] n과 상기 기저 벡터 b[t] i(i=0, …, μLx-1)와 이외의 소정의 기저 벡터 b[t] j에 대한 계수로서 검증 정보 vk를 포함하는 정보를 설정한 벡터 v[t]를 검증 정보 벡터 ck[t]로서 생성하는 검증 정보 설정부를 더 구비하고,
    상기 암호 벡터 생성부는, t=0, …, n-1의 각 t에 대하여, 상기 속성 정보 벡터 xv[t]와 송신 정보 벡터 mv[t]와 상기 검증 정보 설정부가 생성한 검증 정보 벡터 ck[t]를 가산하여 암호 벡터 c[t]를 생성하고,
    상기 암호화 장치는, 상기 검증 정보 설정부가 설정한 검증 정보 vk에 근거하여 검증되는 서명 정보 Σ를 생성하는 서명 정보 생성부와, 상기 암호 벡터 생성부가 생성한 암호 벡터 c[t](t=0, …, n-1)와, 상기 서명 정보 생성부가 생성한 서명 정보 Σ와, 상기 검증 정보 vk를 복호 장치에 송신하는 데이터 송신부를 더 구비하는
    것을 특징으로 하는 암호화 장치.
  38. 제 37 항에 있어서,
    상기 송신 정보 설정부는, 수학식 36에 나타내는 송신 정보 벡터 mv[t]를 생성하고,
    상기 검증 정보 설정부는, 수학식 37에 나타내는 검증 정보 벡터 ck[t]를 생성하고,
    상기 암호 벡터 생성부는, 수학식 38에 나타내는 속성 정보 벡터 xv[t]를 수학식 36에 나타내는 송신 정보 벡터 mv[t]와 수학식 37에 나타내는 검증 정보 벡터 ck[t]에 가산하여 암호 벡터 c[t]를 생성하는
    것을 특징으로 하는 암호화 장치.
    [수학식 36]
    Figure 112011092805583-pct00244

    [수학식 37]
    Figure 112011092805583-pct00245

    [수학식 38]
    Figure 112011092805583-pct00246

  39. 제 35 항에 있어서,
    상기 벡터 입력부는, t=0, …, n-1의 각 t에 대하여, 상기 기저 벡터 b[t] n과 상기 기저 벡터 b[t] i(i=0, …, μLx-1)와 이외의 소정의 기저 벡터 b[t] j에 대한 계수로서 검증 정보 vk를 포함하는 정보가 설정된 암호 벡터 c[t]와, 상기 검증 정보 vk에 근거하여 검증되는 서명 정보 Σ와, 상기 검증 정보 vk를 입력하고,
    상기 복호 장치는, t=0, …, n-1의 각 t에 대하여, 소정의 기저 벡터 b[t] k에 대한 계수로서 상기 검증 정보 vk를 포함하는 정보를 설정한 벡터 v[t]를 상기 키 벡터 기억부가 기억한 키 벡터에 더하여 키 벡터 kv[t]를 변형하는 키 벡터 변형부를 더 구비하고,
    상기 페어링 연산부는, t=0, …, n-1의 각 t에 대하여, 상기 벡터 입력부가 입력한 암호 벡터 c[t]와 상기 키 벡터 변형부가 변형한 키 벡터 kv[t]에 대하여 상기 페어링 연산을 행하여 정보 f를 생성함과 아울러, t=0, …, n-1의 각 t에 대하여, 기저 벡터 b[t] n과 상기 변형한 키 벡터 kv[t]에 대하여 상기 페어링 연산을 행하여 정보 g를 생성하고,
    상기 복호 장치는, 상기 검증 정보 vk에 근거하여, 상기 서명 정보 Σ에 개찬이 없음을 검증하는 개찬 검증부를 더 구비하는
    것을 특징으로 하는 복호 장치.
  40. 제 39 항에 있어서,
    상기 벡터 입력부는, 수학식 39에 나타내는 암호 벡터 c[t]와, 상기 검증 정보 vk에 근거하여 검증되는 서명 정보 Σ와, 상기 검증 정보 vk를 입력하고,
    상기 키 벡터 기억부는, 수학식 40에 나타내는 키 벡터 kv[t]를 기억하고,
    상기 키 벡터 변형부는, 수학식 41에 따라 키 벡터 kv[t]를 변환하고,
    상기 페어링 연산부는, 수학식 42에 나타내는 페어링 연산을 행하여 정보 f와 정보 g를 추출하는
    것을 특징으로 하는 복호 장치.
    [수학식 39]
    Figure 112011092805583-pct00247

    [수학식 40]
    Figure 112011092805583-pct00248

    [수학식 41]
    Figure 112011092805583-pct00249

    [수학식 42]
    Figure 112011092805583-pct00250


  41. 페어링 연산에 의해 관련지어진 쌍대가군(dual modules)인 공간 V와 공간 V*를 이용하여 암호 처리를 행하는 암호 처리 시스템으로서,
    상기 공간 V에서의 벡터로서, 소정의 정보를 내장한 벡터를 암호 벡터로서 생성하는 암호화 장치와,
    상기 공간 V*에 있어서의 소정의 벡터를 키 벡터로 하여, 상기 암호화 장치가 생성한 암호 벡터와 상기 키 벡터에 대하여, 상기 페어링 연산을 행하여 상기 암호 벡터를 복호하여 상기 소정의 정보에 관한 정보를 추출하는 복호 장치
    를 구비하는 것을 특징으로 하는 암호 처리 시스템.
  42. 술어 암호에 있어서의 비밀 키인 키 벡터 kL ,0을 생성하는 키 생성 장치로서,
    페어링 연산에 의해 관련지어진 쌍대가군인 공간 V와 공간 V* 중 상기 공간 V*를 마스터 비밀 키로서 기억 장치에 기억하는 마스터 키 기억부와,
    상기 마스터 키 기억부가 기억한 마스터 비밀 키인 상기 공간 V*에 있어서의 소정의 기저 B*의 기저 벡터 b* i(i=0, …, N-1) 중, 소정의 기저 벡터 b* n에 대한 계수로서 소정의 값을 설정함과 아울러, 기저 벡터 b* i(i=0, …, μL-1)에 대한 계수로서 술어 정보 vi(i=0, …, μL-1)를 설정한 벡터를 키 벡터 kL ,0으로서 생성하는 키 벡터 생성부
    를 구비하는 것을 특징으로 하는 키 생성 장치.
  43. 술어 암호에 있어서의 비밀 키인 키 벡터를 생성하는 키 위양 장치로서,
    페어링 연산에 의해 관련지어진 쌍대가군인 공간 V와 공간 V* 중 상기 공간 V에서의 소정의 암호 벡터를 복호 가능한 상기 공간 V*에 있어서의 키 벡터를 취득하는 키 벡터 취득부와,
    상기 키 벡터 취득부가 취득한 키 벡터에 근거하여, 상기 키 벡터로 복호 가능한 상기 소정의 암호 벡터 중 일부의 암호 벡터를 복호 가능한 상기 공간 V*에 있어서의 새로운 키 벡터를 처리 장치에 의해 생성하는 키 벡터 생성부
    를 구비하는 것을 특징으로 하는 키 위양 장치.
  44. 페어링 연산에 의해 관련지어진 쌍대가군인 공간 V와 공간 V* 중 공간 V에서의 소정의 기저 B의 기저 벡터 bi(i=0, …, N-1) 중, 기저 벡터 bn에 대한 계수로서 ρ를 설정한 벡터를 송신 정보 벡터로서 생성하는 송신 정보 설정부와,
    기저 벡터 bi(i=0, …, μLx-1)에 대한 계수로서 속성 정보 xi(i=0, …, μLx-1)를 설정한 속성 벡터를, 상기 송신 정보 설정부가 생성한 송신 정보 벡터에 가산하여 암호 벡터를 생성하는 암호 벡터 생성부
    를 구비하는 것을 특징으로 하는 암호화 장치.
  45. 페어링 연산에 의해 관련지어진 쌍대가군인 공간 V와 공간 V* 중 공간 V에서의 소정의 기저 B의 기저 벡터 bi(i=0, …, N-1) 중, 기저 벡터 bn의 계수로서 ρ가 설정됨과 아울러, 기저 벡터 bi(i=0, …, μLx-1)의 소정의 기저 벡터의 계수에 속성 정보 xi(i=0, …, μLx-1)가 설정된 벡터를 암호 벡터로서 입력하는 벡터 입력부와,
    상기 공간 V*에 있어서의 소정의 기저 B*의 기저 벡터 b* i(i=0, …, N-1) 중, 소정의 기저 벡터 b* n에 대한 계수로서 소정의 값이 설정됨과 아울러, 기저 벡터 b* i(i=0, …, μLv-1)(μLx≥μLv)에 대한 계수로서 술어 정보 vi(i=0, …, μLv-1)가 설정된 벡터를 키 벡터로서 기억 장치에 기억하는 키 벡터 기억부와,
    상기 벡터 입력부가 입력한 암호 벡터와, 상기 키 벡터 기억부가 기억한 키 벡터에 대하여 상기 페어링 연산을 행하여, 상기 암호 벡터로부터 상기 기저 벡터 bn의 계수로서 설정한 ρ에 관한 값을 추출하는 페어링 연산부
    를 구비하는 것을 특징으로 하는 복호 장치.
  46. 페어링 연산에 의해 관련지어진 쌍대 벡터 공간인 공간 V와 공간 V*를 이용하여 암호 처리를 행하는 암호 처리 방법으로서,
    처리 장치가, 상기 공간 V에서의 벡터로서, 소정의 정보를 내장한 벡터를 암호 벡터로서 생성하는 암호화 단계와,
    처리 장치가, 상기 공간 V*에 있어서의 소정의 벡터를 키 벡터로 하여, 상기 암호화 단계에서 생성한 암호 벡터와 상기 키 벡터에 대하여, 상기 페어링 연산을 행하여 상기 암호 벡터를 복호하여 상기 소정의 정보에 관한 정보를 추출하는 복호 단계
    를 구비하는 것을 특징으로 하는 암호 처리 방법.


  47. 페어링 연산에 의해 관련지어진 쌍대 벡터 공간인 공간 V와 공간 V*를 이용하여 암호 처리를 행하는 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체로서,
    상기 공간 V에서의 벡터로서, 소정의 정보를 삽입한 벡터를 암호 벡터로서 생성하는 암호화 처리와,
    상기 공간 V*에 있어서의 소정의 벡터를 키 벡터로 하여, 상기 암호화 처리에서 생성한 암호 벡터와 상기 키 벡터에 대하여, 상기 페어링 연산을 행하여 상기 암호 벡터를 복호하여 상기 소정의 정보에 관한 정보를 추출하는 복호 처리
    를 컴퓨터에 실행시키는 것을 특징으로 하는 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
KR1020117027936A 2009-04-23 2010-04-14 암호 처리 시스템 KR101359200B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JPJP-P-2009-104915 2009-04-23
JP2009104915 2009-04-23
JP2009264576A JP5349261B2 (ja) 2009-04-23 2009-11-20 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
JPJP-P-2009-264576 2009-11-20
PCT/JP2010/056639 WO2010122926A1 (ja) 2009-04-23 2010-04-14 暗号処理システム

Publications (2)

Publication Number Publication Date
KR20120068762A KR20120068762A (ko) 2012-06-27
KR101359200B1 true KR101359200B1 (ko) 2014-02-05

Family

ID=43011044

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117027936A KR101359200B1 (ko) 2009-04-23 2010-04-14 암호 처리 시스템

Country Status (7)

Country Link
US (1) US8559638B2 (ko)
EP (1) EP2424154B1 (ko)
JP (1) JP5349261B2 (ko)
KR (1) KR101359200B1 (ko)
CN (1) CN102415047B (ko)
ES (1) ES2873230T3 (ko)
WO (1) WO2010122926A1 (ko)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101246241B1 (ko) * 2009-04-24 2013-03-22 니뽄 덴신 덴와 가부시키가이샤 암호화 장치, 복호장치, 암호화 방법, 복호방법, 세큐러티 방법, 프로그램 및 기록매체
WO2010123117A1 (ja) * 2009-04-24 2010-10-28 日本電信電話株式会社 有限体演算装置、有限体演算方法、プログラム及び記録媒体
ES2602052T3 (es) * 2009-11-20 2017-02-17 Mitsubishi Electric Corporation Sistema de procesamiento criptográfico, dispositivo de generación de clave, dispositivo de delegación de clave, dispositivo de cifrado, dispositivo de descifrado, método de procesamiento criptográfico y programa de procesamiento criptográfico
JP5334873B2 (ja) * 2010-01-08 2013-11-06 三菱電機株式会社 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
WO2011086687A1 (ja) 2010-01-15 2011-07-21 三菱電機株式会社 秘匿検索システム及び暗号処理システム
JP5424974B2 (ja) 2010-04-27 2014-02-26 三菱電機株式会社 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置
CN103329478B (zh) * 2011-01-18 2015-11-25 三菱电机株式会社 密码系统以及密码系统的密码处理方法
JP5606351B2 (ja) * 2011-02-09 2014-10-15 三菱電機株式会社 暗号処理システム、鍵生成装置、暗号化装置、復号装置、鍵委譲装置、暗号処理方法及び暗号処理プログラム
JP5677273B2 (ja) 2011-11-18 2015-02-25 三菱電機株式会社 暗号処理システム、暗号処理方法、暗号処理プログラム及び鍵生成装置
JP5680007B2 (ja) * 2012-03-06 2015-03-04 三菱電機株式会社 暗号システム、暗号方法及び暗号プログラム
JP5730805B2 (ja) * 2012-04-04 2015-06-10 日本電信電話株式会社 格子問題に基づく階層型内積暗号システム,格子問題に基づく階層型内積暗号方法,装置
JP6057725B2 (ja) * 2013-01-15 2017-01-11 三菱電機株式会社 情報処理装置
WO2014112170A1 (ja) * 2013-01-16 2014-07-24 三菱電機株式会社 情報処理装置及び情報処理方法及びプログラム
WO2014112048A1 (ja) * 2013-01-16 2014-07-24 三菱電機株式会社 暗号システム、再暗号化鍵生成装置、再暗号化装置、暗号方法及び暗号プログラム
US8559631B1 (en) * 2013-02-09 2013-10-15 Zeutro Llc Systems and methods for efficient decryption of attribute-based encryption
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
JP6053966B2 (ja) * 2014-01-14 2016-12-27 三菱電機株式会社 暗号システム及び再暗号化装置
CN106031080B (zh) 2014-02-24 2019-07-16 三菱电机株式会社 加密系统
DE112014007235B4 (de) 2014-12-05 2024-10-10 Mitsubishi Electric Corporation Kryptografisches System, Hauptschlüsselaktualisierungseinrichtung und Hauptschlüsselaktualisierungsprogramm
US9438412B2 (en) * 2014-12-23 2016-09-06 Palo Alto Research Center Incorporated Computer-implemented system and method for multi-party data function computing using discriminative dimensionality-reducing mappings
US10965459B2 (en) 2015-03-13 2021-03-30 Fornetix Llc Server-client key escrow for applied key management system and process
US10516534B2 (en) 2015-04-07 2019-12-24 Mitsubishi Electric Corporation Cryptographic system and key generation apparatus
CN105635135B (zh) * 2015-12-28 2019-01-25 北京科技大学 一种基于属性集及关系谓词的加密系统及访问控制方法
US10931653B2 (en) * 2016-02-26 2021-02-23 Fornetix Llc System and method for hierarchy manipulation in an encryption key management system
CN106533697B (zh) * 2016-12-06 2019-11-08 上海交通大学 随机数生成与提取方法及其在身份认证上的应用
US10205713B2 (en) * 2017-04-05 2019-02-12 Fujitsu Limited Private and mutually authenticated key exchange
WO2019016181A1 (en) 2017-07-18 2019-01-24 Legic Identsystems Ag METHOD AND DEVICES USED TO VERIFY AUTHORIZATION OF AN ELECTRONIC DEVICE
JP6456451B1 (ja) 2017-09-25 2019-01-23 エヌ・ティ・ティ・コミュニケーションズ株式会社 通信装置、通信方法、及びプログラム
WO2021146859A1 (en) * 2020-01-20 2021-07-29 Nokia Shanghai Bell Co., Ltd. Data privacy protection based polar coding
US12099997B1 (en) 2020-01-31 2024-09-24 Steven Mark Hoffberg Tokenized fungible liabilities

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2744309B1 (fr) * 1996-01-26 1998-03-06 Bull Cp8 Procede de communicatin cryptographique asymetrique, et objet portatif associe
CN100588131C (zh) * 2003-02-12 2010-02-03 松下电器产业株式会社 发送装置及无线通信方法
US20070223686A1 (en) * 2004-09-16 2007-09-27 Shidong Li Methods and apparatus for data and signal encryption and decryption by irregular subspace leaping
US8190553B2 (en) * 2007-12-20 2012-05-29 Routt Thomas J Methods and systems for quantum search, computation and memory
JP5094882B2 (ja) 2008-01-18 2012-12-12 三菱電機株式会社 暗号パラメータ設定装置及び鍵生成装置及び暗号システム及びプログラム及び暗号パラメータ設定方法及び鍵生成方法
KR101246241B1 (ko) * 2009-04-24 2013-03-22 니뽄 덴신 덴와 가부시키가이샤 암호화 장치, 복호장치, 암호화 방법, 복호방법, 세큐러티 방법, 프로그램 및 기록매체

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Emily Shen 외 2인, 'Predicate Privacy in Encryption systems', LNCS, Theory of Cryptography, 2009.3, Vol.5444, pp.457~473 *
Katz, A 외 1인, 'Predicate encryption supporting disjunctions, polynomial equations, and inner products', EUROCRYPT 2008, LNCS 4965, Springer Verlag, pp.146~162, 2008 *

Also Published As

Publication number Publication date
WO2010122926A1 (ja) 2010-10-28
ES2873230T3 (es) 2021-11-03
CN102415047A (zh) 2012-04-11
EP2424154B1 (en) 2021-04-07
KR20120068762A (ko) 2012-06-27
EP2424154A1 (en) 2012-02-29
JP2010273317A (ja) 2010-12-02
EP2424154A4 (en) 2017-07-12
CN102415047B (zh) 2015-12-09
US20120045056A1 (en) 2012-02-23
JP5349261B2 (ja) 2013-11-20
US8559638B2 (en) 2013-10-15

Similar Documents

Publication Publication Date Title
KR101359200B1 (ko) 암호 처리 시스템
KR101336349B1 (ko) 암호 처리 시스템, 키 생성 장치, 키 위양 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
KR101386294B1 (ko) 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 서명 처리 시스템, 서명 장치 및 검증 장치
KR101310439B1 (ko) 암호 처리 시스템, 키 생성 장치, 키 위양 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
KR101443553B1 (ko) 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
KR101393899B1 (ko) 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
KR101588992B1 (ko) 암호 시스템, 암호 방법 및 암호 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
KR101581605B1 (ko) 암호 처리 시스템, 암호 처리 방법, 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 및 키 생성 장치
JP5921410B2 (ja) 暗号システム
KR101432462B1 (ko) 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 키 위양 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
Li et al. Identity-based multi-recipient public key encryption scheme and its application in IoT
Yadav et al. An efficient and secure data sharing method using asymmetric pairing with shorter ciphertext to enable rapid learning in healthcare
Koshiba et al. New assumptions on isogenous pairing groups with applications to attribute-based encryption
Lin et al. CCA-Secure Identity-Based Matchmaking Encryption from Standard Assumptions

Legal Events

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

Payment date: 20170103

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180119

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190117

Year of fee payment: 6