KR101581605B1 - 암호 처리 시스템, 암호 처리 방법, 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 및 키 생성 장치 - Google Patents
암호 처리 시스템, 암호 처리 방법, 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 및 키 생성 장치 Download PDFInfo
- Publication number
- KR101581605B1 KR101581605B1 KR1020147016602A KR20147016602A KR101581605B1 KR 101581605 B1 KR101581605 B1 KR 101581605B1 KR 1020147016602 A KR1020147016602 A KR 1020147016602A KR 20147016602 A KR20147016602 A KR 20147016602A KR 101581605 B1 KR101581605 B1 KR 101581605B1
- Authority
- KR
- South Korea
- Prior art keywords
- vector
- quot
- equation
- encryption
- base
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
- H04L9/3073—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/0822—Key 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) using key encryption key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/60—Digital content management, e.g. content distribution
- H04L2209/601—Broadcast encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
공개 파라미터나 마스터 비밀 키의 사이즈를 작게 함과 아울러, 사용자에게 주는 비밀 키의 생성의 처리나 암호화의 처리에 걸리는 시간을 짧게 하는 것을 목적으로 한다. 키 생성 장치(100)는, 각 행 각 열에 적어도 1개는 0 이외의 값을 갖는 희소 행렬을 이용하여, 공개 파라미터나 마스터 비밀 키가 되는 기저 B와 기저 B*를 생성한다. 암호화 장치(200)는, 기저 B에 있어서의 벡터로서, 소정의 정보를 삽입한 벡터를 암호 벡터로서 생성하고, 복호 장치(300)는, 기저 B*에 있어서의 소정의 벡터를 키 벡터로 하여, 암호 벡터와 키 벡터에 대하여 페어링 연산을 행하여 암호 벡터를 복호한다.
Description
본 발명은, 내적 암호(Inner-Product Encryption, IPE)에 관한 것이다.
비특허 문헌 13, 16, 17에는 내적 암호에 대한 기재가 있다.
비특허 문헌 13, 16, 17에 기재된 내적 암호에서는, 공개 파라미터나 마스터 비밀 키는, 벡터 공간의 기저로 주어진다.
(선행 기술 문헌)
(비특허 문헌)
(비특허 문헌 1) Abdalla, M., Kiltz, E., Neven, G. : Generalized key delegation for hierarchical identity-based encryption. ESORICS'07, LNCS 4734, pp. 139-154. Springer, (2007)
(비특허 문헌 2) Attrapadung, N., Libert, B. : Functional encryption for inner product : Achieving constant-size ciphertexts with adaptive security or support for negation. PKC 2010. LNCS, vol. 6056, pp. 384-402. Springer Heidelberg (2010)
(비특허 문헌 3) Attrapadung, N., Libert, B., De Panafieu, E. : Expressive key-policy attribute-based encryption with constant-size ciphertexts. PKC 2011. LNCS, vol. 6571, pp. 90-108. Springer Heidelberg (2011)
(비특허 문헌 4) Bethencourt, J., Sahai, A., Waters, B. : Ciphertext-policy attribute-based encryption. In : 2007 IEEE Symposium on Security and Privacy, pp. 321-334. IEEE Press (2007)
(비특허 문헌 5) Boneh, D., Hamburg, M. : Generalized identity based and broadcast encryption scheme. In : Pieprzyk, J. (ed.) ASIACRYPT 2008. LNCS, vol. 5350, pp. 455-470. Springer Heidelberg (2008)
(비특허 문헌 6) Delerablee, C. : Identity-based broadcast encryption with constant size ciphertexts and private keys. In : ASIACRYPT 2007, LNCS, pp. 200-215. Springer-Verlag (2007)
(비특허 문헌 7) Emura, K., Miyaji, A., Nomura, A., Omote, K., Soshi, M. : A ciphertext-policy attribute-based encryption scheme with constant ciphertext length. Proceedings of ISPEC 2009, LNCS, pp. 13-23. Springer-Verlag (2009)
(비특허 문헌 8) Gentry, C., Waters, B. : Adaptive security in broadcast encryption systems (with short ciphertexts). In : Joux, A. (ed.) EUROCRYPT 2009. LNCS, vol. 5479, pp. 171-188. Springer Heidelberg (2009)
(비특허 문헌 9) Goyal, V., Pandey, O., Sahai, A., Waters, B. : Attribute-based encryption for fine-grained access control of encrypted data. In : ACM Conference on Computer and Communication Security 2006, pp. 89-98, ACM (2006)
(비특허 문헌 10) Herranz, J., Laguillaumie, F., Rafols, C. : Constant size ciphertexts in thereshold attribute-based encryption, In Nguyen, P. Q., Pointcheval, D. (eds.) PKC 2010. LNCS, vol. 6056, pp. 19-34. Springer Heidelberg (2010)
(비특허 문헌 11) Katz, J., Sahai, A., Waters, B. : Predicate encryption supporting disjunctions, polynomial equations, and inner products. In : Smart, N. P. (ed.) EUROCRYPT 2008. LNCS, vol. 4965, pp. 146-162. Springer Heidelberg (2008)
(비특허 문헌 12) Lewko, A., Sahai, A., Waters, B. : Revocation systems with very small private keys, In IEEE Symposium on Security and Privacy 2010 (2010)
(비특허 문헌 13) Lewko, A., Okamoto, T., Sahai, A., Takashima, K., Waters, B. : Fully secure functional encryption : Attribute-based encryption and (hierarchical) inner product encryption, EUROCRYPT 2010. LNCS, Springer Heidelberg (2010) Full version is available at http://eprint.iacr.org/2010/110
(비특허 문헌 14) Lewko, A. B., Waters, B. : New techniques for dual system encryption and fully secure HIBE with short ciphertexts. In : Micciancio, D. (ed.) TCC 2010. LNCS, vol. 5978, pp. 455-479. Springer Heidelberg (2010)
(비특허 문헌 15) Okamoto, T., Takashima, K. : Homomorphic encryption and signatures from vector decomposition. In : Galbraith, S. D., Paterson, K. G. (eds.) Pairing 2008. LNCS, vol. 5209, pp. 57-74, Springer Heidelberg (2008)
(비특허 문헌 16) Okamoto, T., Takashima, K. : Hierarchical predicate encryption for inner-products, In : Matsui, M. (ed.) ASIACRYPT 2009. LNCS, vol. 5912, pp. 214-231. Springer Heidelberg (2009)
(비특허 문헌 17) Okamoto, T., Takashima, K. : Fully secure functional encryption with general relations from the decisional linear assumption. In : Rabin, T. (ed.) CRYPTO 2010. LNCS, vol. 6223, pp. 191-208. Springer Heidelberg (2010). Full version is available at http://eprint.iacr.org/2010/563
(비특허 문헌 18) Sahai, A., Waters, B. : Fuzzy identity-based encryption. In : Cramer, R. (ed.) EUROCRYPT 2005. LNCS, vol. 3494, pp. 457-473. Springer Heidelberg (2005)
(비특허 문헌 19) Sakai, R., Furukawa, J. : Identity-based broadcast encryption, IACR ePrint Archive : Report 2007/217 http://eprint.iacr.org/2007/217 (2007).
(비특허 문헌 20) Waters, B. : Dual system encryption : realizing fully secure IBE and HIBE under simple assumptions. In : Halevi, S. (ed.) CRYPTO 2009. LNCS, vol. 5677, pp. 619-636. Springer Heidelberg (2009)
비특허 문헌 13, 16, 17에 기재된 내적 암호에서는, 내적 암호에 이용하는 벡터의 길이를 N으로 하면, 공개 파라미터나 마스터 비밀 키의 사이즈는 N2에 비례하고, 사용자에게 주는 비밀 키의 생성이나 암호화의 처리에 N2에 비례하는 시간이 걸린다.
본 발명은, 공개 파라미터나 마스터 비밀 키의 사이즈를 작게 함과 아울러, 사용자에게 주는 비밀 키의 생성의 처리나 암호화의 처리에 걸리는 시간을 짧게 하는 것을 목적으로 한다.
본 발명에 따른 암호 처리 시스템은, 각 행 각 열에 적어도 1개는 0 이외의 값을 갖는 희소 행렬을 이용하여 소정의 기저 A를 변형하여 생성된 기저 B와 기저 B*를 이용하여, 암호 처리를 행하는 암호 처리 시스템으로서, 상기 기저 B에 있어서의 벡터로서, 소정의 정보를 삽입한 벡터를 암호 벡터로서 생성하는 암호화 장치와, 상기 기저 B*에 있어서의 소정의 벡터를 키 벡터로 하여, 상기 암호화 장치가 생성한 암호 벡터와 상기 키 벡터에 대하여, 페어링 연산을 행하여 상기 암호 벡터를 복호하여 상기 소정의 정보에 관한 정보를 추출하는 복호 장치를 구비하는 것을 특징으로 한다.
본 발명에 따른 암호 처리 시스템에서는, 공개 파라미터나 마스터 비밀 키가 되는 기저 B와 기저 B*를 생성하기 위해 이용하는 행렬에 희소 행렬을 이용한다. 이것에 의해, 공개 파라미터나 마스터 비밀 키의 사이즈가 작아짐과 아울러, 사용자에게 주는 비밀 키의 생성의 처리나 암호화의 처리에 걸리는 시간이 짧아진다.
도 1은 0 내적 암호 방식과 비 0 내적 암호 방식을 실행하는 암호 처리 시스템(10)의 구성도.
도 2는 랜덤인 선형 변환 X의 특별한 형식의 설명도.
도 3은 실시의 형태 2에 따른 키 생성 장치(100)의 구성도.
도 4는 실시의 형태 2에 따른 암호화 장치(200)의 구성도.
도 5는 실시의 형태 2에 따른 복호 장치(300)의 구성도.
도 6은 실시의 형태 2에 따른 Setup 알고리즘의 처리를 나타내는 플로차트.
도 7은 실시의 형태 2에 따른 KeyGen 알고리즘의 처리를 나타내는 플로차트.
도 8은 실시의 형태 2에 따른 Enc 알고리즘의 처리를 나타내는 플로차트.
도 9는 실시의 형태 2에 따른 Dec 알고리즘의 처리를 나타내는 플로차트.
도 10은 실시의 형태 3에 따른 Setup 알고리즘의 처리를 나타내는 플로차트.
도 11은 실시의 형태 3에 따른 KeyGen 알고리즘의 처리를 나타내는 플로차트.
도 12는 실시의 형태 3에 따른 Enc 알고리즘의 처리를 나타내는 플로차트.
도 13은 실시의 형태 3에 따른 Dec 알고리즘의 처리를 나타내는 플로차트.
도 14는 실시의 형태 4에 따른 Setup 알고리즘의 처리를 나타내는 플로차트.
도 15는 실시의 형태 4에 따른 KeyGen 알고리즘의 처리를 나타내는 플로차트.
도 16은 실시의 형태 4에 따른 Enc 알고리즘의 처리를 나타내는 플로차트.
도 17은 실시의 형태 4에 따른 Dec 알고리즘의 처리를 나타내는 플로차트.
도 18은 실시의 형태 5에 따른 Setup 알고리즘의 처리를 나타내는 플로차트.
도 19는 실시의 형태 5에 따른 KeyGen 알고리즘의 처리를 나타내는 플로차트.
도 20은 실시의 형태 5에 따른 Enc 알고리즘의 처리를 나타내는 플로차트.
도 21은 실시의 형태 5에 따른 Dec 알고리즘의 처리를 나타내는 플로차트.
도 22는 실시의 형태 2-5에서 설명한 비 0 내적 암호 방식 및 0 내적 암호 방식과, 비특허 문헌 2에 기재된 비 0 내적 암호 방식 및 0 내적 암호 방식을 비교한 도면.
도 23은 키 생성 장치(100), 암호화 장치(200), 복호 장치(300), 키 위양 장치(400)의 하드웨어 구성의 일례를 나타내는 도면.
도 2는 랜덤인 선형 변환 X의 특별한 형식의 설명도.
도 3은 실시의 형태 2에 따른 키 생성 장치(100)의 구성도.
도 4는 실시의 형태 2에 따른 암호화 장치(200)의 구성도.
도 5는 실시의 형태 2에 따른 복호 장치(300)의 구성도.
도 6은 실시의 형태 2에 따른 Setup 알고리즘의 처리를 나타내는 플로차트.
도 7은 실시의 형태 2에 따른 KeyGen 알고리즘의 처리를 나타내는 플로차트.
도 8은 실시의 형태 2에 따른 Enc 알고리즘의 처리를 나타내는 플로차트.
도 9는 실시의 형태 2에 따른 Dec 알고리즘의 처리를 나타내는 플로차트.
도 10은 실시의 형태 3에 따른 Setup 알고리즘의 처리를 나타내는 플로차트.
도 11은 실시의 형태 3에 따른 KeyGen 알고리즘의 처리를 나타내는 플로차트.
도 12는 실시의 형태 3에 따른 Enc 알고리즘의 처리를 나타내는 플로차트.
도 13은 실시의 형태 3에 따른 Dec 알고리즘의 처리를 나타내는 플로차트.
도 14는 실시의 형태 4에 따른 Setup 알고리즘의 처리를 나타내는 플로차트.
도 15는 실시의 형태 4에 따른 KeyGen 알고리즘의 처리를 나타내는 플로차트.
도 16은 실시의 형태 4에 따른 Enc 알고리즘의 처리를 나타내는 플로차트.
도 17은 실시의 형태 4에 따른 Dec 알고리즘의 처리를 나타내는 플로차트.
도 18은 실시의 형태 5에 따른 Setup 알고리즘의 처리를 나타내는 플로차트.
도 19는 실시의 형태 5에 따른 KeyGen 알고리즘의 처리를 나타내는 플로차트.
도 20은 실시의 형태 5에 따른 Enc 알고리즘의 처리를 나타내는 플로차트.
도 21은 실시의 형태 5에 따른 Dec 알고리즘의 처리를 나타내는 플로차트.
도 22는 실시의 형태 2-5에서 설명한 비 0 내적 암호 방식 및 0 내적 암호 방식과, 비특허 문헌 2에 기재된 비 0 내적 암호 방식 및 0 내적 암호 방식을 비교한 도면.
도 23은 키 생성 장치(100), 암호화 장치(200), 복호 장치(300), 키 위양 장치(400)의 하드웨어 구성의 일례를 나타내는 도면.
이하, 도면에 근거하여, 발명의 실시의 형태를 설명한다.
이하의 설명에 있어서, 처리 장치는 후술하는 CPU(911) 등이다. 기억 장치는 후술하는 ROM(913), RAM(914), 자기 디스크(920) 등이다. 통신 장치는 후술하는 통신 보드(915) 등이다. 입력 장치는 후술하는 키보드(902), 통신 보드(915) 등이다. 출력 장치는 후술하는 RAM(914), 자기 디스크(920), 통신 보드(915), LCD(901) 등이다. 다시 말해, 처리 장치, 기억 장치, 통신 장치, 입력 장치, 출력 장치는 하드웨어이다.
이하의 설명에 있어서의 기법에 대하여 설명한다.
A가 랜덤인 변수 또는 분포일 때, 수학식 101은, A의 분포에 따라 A로부터 y를 랜덤으로 선택하는 것을 나타낸다. 다시 말해, 수학식 101에 있어서, y는 난수이다.
[수학식 101]
A가 집합일 때, 수학식 102는, A로부터 y를 균등하게 선택하는 것을 나타낸다. 다시 말해, 수학식 102에 있어서, y는 균등 난수이다.
[수학식 102]
벡터 표기는, 위수 q의 유한체 Fq에 있어서의 벡터 표시를 나타낸다. 예컨대, 수학식 103이다.
[수학식 103]
수학식 104는, 수학식 105에 나타내는 2개의 벡터 x→와 v→의 수학식 106에 나타내는 내적을 나타낸다.
[수학식 104]
[수학식 105]
[수학식 106]
XT는, 행렬 X의 전치 행렬을 나타낸다.
bi(i=1, …, n)가 공간 V의 벡터의 요소일 때, 다시 말해, 수학식 107일 때, 수학식 108은, 수학식 109에 의해 생성되는 부분 공간을 나타낸다.
[수학식 107]
[수학식 108]
[수학식 109]
수학식 110에 나타내는 기저 B와 기저 B*에 대하여, 수학식 111이다.
[수학식 110]
[수학식 111]
j=1, …, n의 n개의 벡터에 대하여, e→ j는, 수학식 112에 나타내는 표준 기저 벡터를 나타낸다.
[수학식 112]
GL(n, Fq)는, 유한체 Fq에 있어서의 차수 n의 일반 선형군을 나타낸다.
또한, 이하의 설명에 있어서, 벡터를 의미하는 "→"가 다리 글자(inferior letter) 또는 어깨 글자(superior letter)에 붙어 있는 경우, 이 "→"는 다리 글자 또는 어깨 글자에 어깨 글자로 붙어 있는 것을 의미한다. 마찬가지로, 기저 B*에 있어서의 "*"가 다리 글자 또는 어깨 글자에 붙어 있는 경우, 이 "*"는 다리 글자 또는 어깨 글자에 어깨 글자로 붙어 있는 것을 의미한다. 또한, 마찬가지로, 공간 Vt에 있어서의 t가 다리 글자 또는 어깨 글자에 붙어 있는 경우, 이 "t"는 다리 글자 또는 어깨 글자에 다리 글자로 붙어 있는 것을 의미한다.
또한, 이하의 설명에 있어서, 암호 처리란, 암호화 처리, 복호 처리, 키 생성 처리를 포함하는 것이다.
실시의 형태 1.
본 실시의 형태에서는, 내적 암호를 실현하는 기초가 되는 개념과, 내적 암호의 구성에 대하여 설명한다.
제 1에, 내적 암호의 개념을 설명한다.
제 2에, 내적 암호를 실현하기 위한 공간인 쌍대 페어링 벡터 공간(Dual Pairing Vector Spaces, DPVS)을 설명한다.
제 3에, 이하의 실시의 형태에서 설명하는 내적 암호 방식의 기본 구성을 설명한다.
제 4에, 이하의 실시의 형태에서 설명하는 내적 암호 방식을 실행하는 암호 처리 시스템(10)의 기본 구성을 설명한다.
제 5에, 이하의 실시의 형태에서 설명하는 내적 암호 방식의 기본적인 사고방식을 설명한다.
<제 1. 내적 암호의 개념>
우선, 함수형 암호(Functional Encryption)에 대하여 설명한다.
함수형 암호는, 진보한 암호의 개념이다. 또한, 함수형 암호는, 공개 키 암호(Public-Key Encryption, PKE)나 ID 베이스 암호(Identity-Based Encryption, IBE)의 일반화이다. 함수형 암호 시스템에서는, 암호문을 특정하는 파라미터 y에 파라미터 x가 적절하게 관련되어 있으면, 수신자는 파라미터 x에 대응하는 비밀 키를 이용하여 암호문을 복호할 수 있다. 다시 말해, 복호에는, 어떤 관계 R((x, y)에 대하여 성립하는 관계 R)에 대하여 R(x, y)=1이 필요하다.
내적 암호는, 함수형 암호의 일종이다.
내적 암호에는, 0 내적 암호(Zero Inner Product Encryption, ZIPE)와, 비 0 내적 암호(Non-zero Inner Product Encryption, NIPE)가 있다.
0 내적 암호에서는, 벡터 x→에 대하여 암호화된 암호문은, x→ㆍy→=0인 벡터 y→와 관련된 비밀 키로 복호할 수 있다. 다시 말해, x→ㆍy→=0인 경우에 한해, RZIPE(x→, y→)=1인 것이 필요하다.
비 0 내적 암호에서는, 벡터 x→에 대하여 암호화된 암호문은, x→ㆍy→≠0인 벡터 y→와 관련된 비밀 키로 복호할 수 있다. 다시 말해, x→ㆍy→≠0인 경우에 한해, RNIPE(x→, y→)=1인 것이 필요하다.
<제 2. 쌍대 페어링 벡터 공간>
우선, 대칭 쌍선형 페어링군(Symmetric Bilinear Pairing Groups)에 대하여 설명한다.
대칭 쌍선형 페어링군(q, G, GT, g, e)은, 소수 q와, 위수 q의 순회 덧셈군 G와, 위수 q의 순회 곱셈군 GT와, 요소 g≠0∈G와, 다항식 시간에 계산 가능한 비퇴화 쌍선형 페어링(Nondegenerate Bilinear Pairing) e:G×G→GT의 조이다. 비퇴화 쌍선형 페어링은, e(sg, tg)=e(g, g)st이고, e(g, g)≠1이다.
이하의 설명에 있어서, Gbpg를, 1λ를 입력으로 하여, 시큐리티 파라미터를 λ로 하는 쌍선형 페어링군의 파라미터 paramG:=(q, G, GT, g, e)의 값을 출력하는 알고리즘으로 한다.
다음으로, 쌍대 페어링 벡터 공간에 대하여 설명한다.
쌍대 페어링 벡터 공간(q, V, GT, A, e)은, 대칭 쌍선형 페어링군(paramG:=(q, G, GT, g, e))의 직적에 의해 구성할 수 있다. 쌍대 페어링 벡터 공간(q, V, GT, A, e)은, 소수 q, 수학식 113에 나타내는 유한체 Fq상의 N차원 벡터 공간 V, 위수 q의 순회군 GT, 공간 V의 표준 기저 A:=(a1, …, aN)의 조이고, 이하의 연산 (1), (2)를 갖는다. 여기서, ai는, 수학식 114에 나타내는 바와 같다.
[수학식 113]
[수학식 114]
연산 (1) : 비퇴화 쌍선형 페어링
공간 V에 있어서의 페어링은, 수학식 115에 의해 정의된다.
[수학식 115]
이것은, 비퇴화 쌍선형이다. 다시 말해, e(sx, ty)=e(x, y)st이고, 모든 y∈V에 대하여, e(x, y)=1의 경우, x=0이다. 또한, 모든 i와 j에 대하여, e(ai, aj)=e(g, g)δi, j이다(이 δi, j는 δi, j를 의미한다). 여기서, i=j이면, δi, j=1이고, i≠j이면, δi, j=0이다. 또한, e(g, g)≠1∈GT이다.
연산 (2) : 표준 사상
수학식 116에 나타내는 공간 V에 있어서의 선형 변환 φi, j는, 수학식 117에 의해 용이하게 실현할 수 있다.
[수학식 116]
[수학식 117]
여기서, 선형 변환 φi, j를 표준 사상이라고 부른다.
이하의 설명에 있어서, Gdpvs를, 1λ(λ∈자연수), N∈자연수를 입력으로 하여, 시큐리티 파라미터가 λ이고, N차원의 공간 V로 하는 쌍대 페어링 벡터 공간의 파라미터 paramV:=(q, V, GT, A, e)의 값을 출력하는 알고리즘으로 한다.
또, 여기서는, 상술한 대칭 쌍선형 페어링군에 의해, 쌍대 페어링 벡터 공간을 구성한 경우에 대하여 설명한다. 비대칭 쌍선형 페어링군에 의해 쌍대 페어링 벡터 공간을 구성하는 것도 가능하다. 이하의 설명을, 비대칭 쌍선형 페어링군에 의해 쌍대 페어링 벡터 공간을 구성한 경우에 응용하는 것은 용이하다.
<제 3. 내적 암호 방식의 기본 구성>
우선, 0 내적 암호 방식에 대하여 설명한다.
0 내적 암호 방식에 있어서의 관계 RZIPE는, 벡터 x→∈Fn q\{0→}와, 벡터 v→∈Fn q\{0→}에 있어서 정의된다. 그리고, x→ㆍv→=0인 경우에 한해, 관계 RZIPE(x→, v→):=1이다.
마찬가지로, 비 0 내적 암호 방식에 있어서의 관계 RNIPE는, 벡터 x→∈Fn q\{0→}와, 벡터 v→∈Fn q\{0→}에 있어서 정의된다. 그리고, x→ㆍv→≠0인 경우에 한해, 관계 RNIPE(x→, v→):=1이다.
0 내적 암호 방식과 비 0 내적 암호 방식은, Setup, KeyGen, Enc, Dec의 4개의 알고리즘을 구비한다.
(Setup)
Setup 알고리즘은, 시큐리티 파라미터 λ가 입력되고, 공개 파라미터 pk와, 마스터 비밀 키 sk를 출력하는 확률적 알고리즘이다.
(KeyGen)
KeyGen 알고리즘은, 벡터 v→와, 공개 파라미터 pk와, 마스터 비밀 키 sk를 입력으로 하여, 복호 키 skv →를 출력하는 확률적 알고리즘이다.
(Enc)
Enc 알고리즘은, 메시지 m과, 벡터 x→와, 공개 파라미터 pk를 입력으로 하여, 암호문 ctx →를 출력하는 확률적 알고리즘이다.
(Dec)
Dec 알고리즘은, 벡터 x→하에서 암호화된 암호문 ctx →와, 벡터 v→에 대한 복호 키 skv →와, 공개 파라미터 pk를 입력으로 하여, 메시지 m, 또는, 식별 정보 ⊥를 출력하는 알고리즘이다. 식별 정보 ⊥는, 복호할 수 없었던 것을 나타내는 정보이다.
<제 4. 암호 처리 시스템(10)의 기본 구성>
도 1은 0 내적 암호 방식과 비 0 내적 암호 방식을 실행하는 암호 처리 시스템(10)의 구성도이다.
키 생성 장치(100)는, 시큐리티 파라미터 λ를 입력으로 하여 Setup 알고리즘을 실행하여, 공개 파라미터 pk와 마스터 비밀 키 sk를 생성한다. 그리고, 키 생성 장치(100)는, 생성한 공개 파라미터 pk를 공개한다. 또한, 키 생성 장치(100)는, 벡터 v→를 입력으로 하여 KeyGen 알고리즘을 실행하여, 복호 키 skv →를 생성하여 복호 장치(300)에 비밀리에 배포한다.
암호화 장치(200)는, 메시지 m과, 벡터 x→와, 공개 파라미터 pk를 입력으로 하여 Enc 알고리즘을 실행하여, 암호문 ctx →를 생성한다. 암호화 장치(200)는, 생성한 암호문 ctx →를 복호 장치(300)에 송신한다.
복호 장치(300)는, 공개 파라미터 pk와, 복호 키 skv →와, 암호문 ctx →를 입력으로 하여 Dec 알고리즘을 실행하여, 메시지 m'(=m) 또는 식별 정보 ⊥를 출력한다.
<제 5. 암호 방식의 기본적인 사고방식>
쌍대 페어링 벡터 공간을 암호 처리에 적용한 전형적인 어플리케이션에서는, 쌍대 기저(또는 정규 직교 기저)의 페어인 기저 B와 기저 B*가 생성된다. 기저 B와 기저 B*는, GL(N, Fq)로부터 균등하게 선택된, 완전하게 랜덤인 선형 변환 X(기저 변환 행렬)를 이용하여 생성된다. 특히, 기저 B와 기저 B*는, 각각, 선형 변환 X와, (X-1)T에 의해, 표준 기저 A를 변환하여 생성된다. 또, N은, span<B>와 span<B*>의 차원수이다.
그리고, 쌍대 페어링 벡터 공간을 암호 처리에 적용한 전형적인 어플리케이션에서는, 기저 B의 일부(B^라고 한다)가 공개 파라미터로서 이용되고, 이것에 대응하는 기저 B*의 일부(B^*라고 한다)가 비밀 키 또는 트랩도어로서 이용된다.
이하의 실시의 형태에서 설명하는 내적 암호에서는, 상술한 완전하게 랜덤인 선형 변환 X 대신에, X∈GL(N, Fq)인 랜덤인 선형 변환 X의 특별한 형식을 이용한다. 이 특별한 형식의 선형 변환 X에 의해, 암호문 또는 비밀 키의 사이즈를 작게 할 수 있고 또한, 처리에 시간이 걸리는 페어링 연산의 수를 줄일 수 있다.
도 2는 특별한 형식의 선형 변환 X의 설명도이다.
도 2(a)는 완전하게 랜덤인 선형 변환 X를 나타내고, 도 2(b)는 특별한 형식의 선형 변환 X를 나타낸다. 도 2(a), 도 2(b)에 있어서, 사각형이 나타내는 부분은 성분의 값이 0 이외인 난수인 것을 나타내고, 도 2(b)에 있어서, 공백 부분은 성분의 값이 0인 것을 나타내고 있다. 또한, 도 2(b)에 있어서, 사선이 들어간 사각형이 나타내는 부분은 성분의 값이 동일한 값인 것을 나타낸다. 또, 여기서는, N=5로 하고 있다.
도 2(a)에 나타내는 바와 같이, 종래의 선형 변환 X는, N2(여기서는, 52=25)의 사이즈였다. 이것에 비하여, 도 2(b)에 나타내는 바와 같이, 이하의 실시의 형태에서 설명하는 내적 암호에서 이용하는 선형 변환 X(이하, 새로운 선형 변환 X)는, N+1(여기서는, 5+1=6)의 사이즈이다.
상술한 바와 같이, 기저 B와 기저 B*는, 선형 변환 X를 이용하여 표준 기저 A를 변환하여 생성된다. 그 때문에, 기저 B와 기저 B*의 사이즈는, 선형 변환 X의 사이즈에 비례한다. 또한, 상술한 바와 같이, 기저 B와 기저 B*는, 그 일부가 공개 파라미터와 비밀 키가 된다. 따라서, 공개 파라미터와 비밀 키의 사이즈는, 선형 변환 X의 사이즈에 비례한다. 다시 말해, 종래의 선형 변환 X를 이용한 경우, 공개 파라미터와 비밀 키의 사이즈는, N2에 비례한다. 이것에 비하여, 새로운 선형 변환 X를 이용한 경우, 공개 파라미터와 비밀 키의 사이즈는, N+1에 비례한다.
그 결과, 종래의 선형 변환 X를 이용한 경우, 사용자 키의 생성의 처리나 암호화의 처리에 N2에 비례한 시간이 걸리고 있었다. 이것에 비하여, 새로운 선형 변환 X를 이용한 경우, 사용자 키의 생성의 처리나 암호화의 처리에 N+1에 비례한 시간이 된다. 다시 말해, 새로운 선형 변환 X를 이용한 경우, 계산 시간이, N의 오더(order)가 된다.
다음으로, 비 0 내적 암호 방식을 예로 하여, 상수 사이즈의 암호문과 효율적인 복호를 실현하는 구체적인 방법에 대하여 설명한다.
또, 암호문의 사이즈를 설명하는 경우, 벡터의 기술은 암호문의 일부에 포함시키지 않는 것으로 한다. 복호 키의 사이즈를 설명하는 경우도 마찬가지로, 벡터의 기술은 복호 키의 일부에 포함시키지 않는 것으로 한다.
이하의 실시의 형태에서 설명하는 비 0 내적 암호 방식을 간략화한 것을 이용하여 설명한다.
간략화한 비 0 내적 암호 방식에 있어서의 암호문은, 2개의 벡터 요소 (c0, c1)∈G5×Gn과, c3∈GT로 이루어진다. 비밀 키는, 2개의 벡터 요소 k* 0, k* 1∈G5×Gn으로 이루어진다. 또, (c0, c1)∈G5×Gn이란, c0이 G의 5개의 요소이고, c1이 G의 n개의 요소인 것을 의미한다. 마찬가지로, k* 0, k* 1∈G5×Gn이란, k* 0이 G의 5개의 요소이고, k* 1이 G의 n개의 요소인 것을 의미한다.
그 때문에, 암호문의 사이즈를 상수 사이즈로 하기 위해서는, c1∈Gn을 n에 대한 상수 사이즈로 압축할 필요가 있다.
수학식 118에 나타내는 특별한 선형 변환 X를 이용한다.
[수학식 118]
여기서, μ, μ'1, …, μ'n은 유한체 Fq로부터 균등하게 선택된 값이고, 선형 변환 X에 있어서의 공백은 상수치 0∈Fq인 것을 나타낸다. 상수치 0이란, 값이 0으로 고정되어 있는 것을 의미한다. 다시 말해, μ, μ'1, …, μ'n은 0도 취할 수 있는 균등 난수인 것에 비하여, 선형 변환 X에 있어서의 공백은 값이 0으로 고정되어 있다. 또한, H(n, Fq)란, 유한체 Fq를 요소로 하는 n차원의 행렬의 집합을 의미한다.
시스템 파라미터 또는 DPVS의 공개 기저는, 수학식 119에 나타내는 기저 B이다.
[수학식 119]
x→:=(x1, …, xn)에 관련된 암호문을, 수학식 120에 나타내는 암호문 c1로 한다.
[수학식 120]
여기서, ω는 유한체 Fq로부터 균등하게 선택된 값이다.
그러면, 암호문 c1은, 수학식 121에 나타내는 2개의 그룹의 요소 C1, C2와, 벡터 x→로 압축할 수 있다.
[수학식 121]
암호문 c1은, (x1C1, …, xn -1C1, C2)에 의해 얻어지기 때문이다. 또, i=1, …, n-1의 각 i에 대하여, xiC1=xiωμg이다.
따라서, 암호문(벡터 x→를 제외한 부분)은, 2개의 그룹의 요소로 할 수 있고, n에 대한 상수 사이즈가 된다.
B*:=(b* i)를, B:=(bi)의 쌍대 정규 직교 기저로 하고, 기저 B*를, 간략화한 비 0 내적 암호 방식에 있어서의 마스터 비밀 키인 것으로 한다. (c0, k* 0, c3)을, e(c0, k* 0)=gT ζㆍgT ωδ이고, c3:=gT ζm∈GT인 것으로 규정한다. 또한, 벡터 v→에 대한 비밀 키를, k* 1:=(δv→)B*=δ(v1b* 1+…+vnb* n)과 같이 설정한다.
기저 B와 기저 B*의 쌍대 정규 직교성에 의해, e(c1, k* 1)=gT ωδ(x→ㆍv→)가 성립한다. 그 때문에, 복호자는, x→ㆍv→≠0인 경우에 한해, gT ωδ를 계산할 수 있다. 다시 말해, 복호자는, 수학식 122에 의해 메시지 m을 얻을 수 있다.
[수학식 122]
암호문 c1은, (x1C1, …, xn -1C1, C2)∈Gn으로서 나타내어지고, 비밀 키 k* 1은, (K1, …, Kn)의 n조로 분해된다. 그 때문에, e(c1, k* 1)의 값은, 수학식 123이다.
[수학식 123]
다시 말해, e(c1, k* 1)을 계산하기 위해서는, G에 있어서의 n-1개의 스칼라 승법과, 2개의 페어링 연산으로 충분하다. 즉, 복호에는, 적은 수(상수)의 페어링 연산만이 필요하게 된다. 일반적으로, 페어링 연산은, 처리 시간이 걸리는 연산이기 때문에, 페어링 연산의 수를 줄이는 것에 의해, 처리 전체로서의 처리 시간을 짧게 할 수 있다.
또, 간략화한 비 0 내적 암호 방식에서는, 암호문 c1은 벡터 x→가 설정되는 기저 벡터(실제의 부호화부)만을 구비하고, 비밀 키 k* 1은 벡터 v→가 설정되는 기저 벡터(실제의 부호화부)만을 구비했다.
이하의 실시의 형태에서 설명하는 비 0 내적 암호 방식에서는, 안전성을 높이기 위해, 암호문 c1과 비밀 키 k* 1에, 실제의 부호화부에 더하여, 비닉부와, 비밀 키 랜덤화부와, 암호문 랜덤화부를 위한 기저 벡터를 더한다.
그 때문에, 선형 변환 X를 수학식 124와 같이 확장한다.
[수학식 124]
여기서, 각 Xi , j는, 수학식 118에 나타내는 X∈H(n, Fq)이다. 그리고, 벡터 공간은, 4개의 직교하는 부분 공간으로 구성된다. 다시 말해, 벡터 공간은, 부호화부와, 비닉부와, 비밀 키 랜덤화부와, 암호문 랜덤화부를 위한 4개의 직교하는 부분 공간으로 구성된다.
실시의 형태 2.
실시의 형태 2에서는, 암호문의 사이즈를 상수 사이즈로 한 비 0 내적 암호 방식에 대하여 설명한다.
도 3은 실시의 형태 2에 따른 키 생성 장치(100)의 구성도이다. 도 4는 실시의 형태 2에 따른 암호화 장치(200)의 구성도이다. 도 5는 실시의 형태 2에 따른 복호 장치(300)의 구성도이다.
도 6과 도 7은 실시의 형태 2에 따른 키 생성 장치(100)의 동작을 나타내는 플로차트이다. 또, 도 6은 실시의 형태 2에 따른 Setup 알고리즘의 처리를 나타내는 플로차트이고, 도 7은 실시의 형태 2에 따른 KeyGen 알고리즘의 처리를 나타내는 플로차트이다. 도 8은 실시의 형태 2에 따른 암호화 장치(200)의 동작을 나타내는 플로차트이고, 실시의 형태 2에 따른 Enc 알고리즘의 처리를 나타내는 플로차트이다. 도 9는 실시의 형태 2에 따른 복호 장치(300)의 동작을 나타내는 플로차트이고, 실시의 형태 2에 따른 Dec 알고리즘의 처리를 나타내는 플로차트이다.
또, 이하의 설명에 있어서, 입력되는 벡터 x→:=(x1, …, xn)은, L=1, …, n-1의 각 정수 L에 대하여 xL≠0이고, 입력되는 벡터 v→:=(v1, …, vn)은, vn≠0인 것으로 한다.
키 생성 장치(100)에 대하여 설명한다.
도 3에 나타내는 바와 같이, 키 생성 장치(100)는, 마스터 키 생성부(110), 마스터 키 기억부(120), 정보 입력부(130), 복호 키 생성부(140), 키 배포부(150)를 구비한다. 마스터 키 생성부(110)는, 공간 생성부(111), 행렬 생성부(112), 기저 생성부(113), 키 생성부(114)를 구비한다. 복호 키 생성부(140)는, 난수 생성부(141), 키 요소 생성부(142)를 구비한다.
도 6에 근거하여, Setup 알고리즘의 처리에 대하여 설명한다.
(S101 : 공간 생성 단계)
공간 생성부(111)는, 시큐리티 파라미터 1λ를 입력으로 하여, 처리 장치에 의해 Gbpg를 실행하여, 대칭 쌍선형 페어링군의 파라미터 paramG:=(q, G, GT, g, e)를 생성한다.
또한, 공간 생성부(111)는, N0:=5, N1:=4n을 설정한다. 그리고, 공간 생성부(111)는, t=0, 1의 각 t에 대하여, 시큐리티 파라미터 1λ와, Nt와, 대칭 쌍선형 페어링군의 파라미터 paramG를 입력으로 하여, 처리 장치에 의해 Gdpvs를 실행하여, 쌍대 페어링 벡터 공간의 파라미터 paramVt:=(q, Vt, GT, At, e)를 생성한다.
(S102 : 선형 변환 생성 단계)
행렬 생성부(112)는, 수학식 125에 나타내는 바와 같이, 처리 장치에 의해 선형 변환 X0을 생성한다.
[수학식 125]
또, 수학식 125에 있어서의 (χ0, i, j)i, j=1, …, 5는, 행렬 χ0, i, j의 첨자 i, j에 관한 행렬이라고 하는 의미이다.
또한, 행렬 생성부(112)는, 수학식 126에 나타내는 바와 같이, 처리 장치에 의해 선형 변환 X1을 생성한다.
[수학식 126]
수학식 126에 있어서의 L(N, Fq)는, 수학식 127에 나타내는 바와 같다.
[수학식 127]
또, 이하, {μi, j, μ'i, j, L}i, j=1, …, 4;L=1, …, n은, 선형 변환 X1에 있어서의 상수치 0 이외의 요소를 나타낸다.
(S103 : 기저 B 생성 단계)
기저 생성부(113)는, 수학식 128에 나타내는 바와 같이, 처리 장치에 의해 기저 B0과 변수 Bi , j와 변수 B'i , j, L을 생성한다.
[수학식 128]
또한, 기저 생성부(113)는, 수학식 129에 나타내는 바와 같이, 처리 장치에 의해 기저 B* 0과 기저 B* 1을 생성한다.
[수학식 129]
(S104 : 기저 B^ 생성 단계)
키 생성부(114)는, 수학식 130에 나타내는 바와 같이, 처리 장치에 의해 기저 B^ 0과, 기저 B^* 0과, 기저 B^* 1을 생성한다.
[수학식 130]
(S105 : 마스터 키 생성 단계)
키 생성부(114)는, 처리 장치에 의해 공개 파라미터 pk:=(1λ, paramn, B^ 0, {Bi, j, B'i , j, L}i=1, 4;j=1, …, 4;L=1, …, n)로 하고, 마스터 비밀 키 sk:={B^* t}t=0, 1로 한다. 그리고, 키 생성부(114)는, 공개 파라미터 pk와, 마스터 비밀 키 sk를 마스터 키 기억부(120)에 기억한다.
또, paramn:=({paramVt}t=0, 1, gT)이다.
다시 말해, S101로부터 S105에 있어서, 키 생성 장치(100)는, 수학식 131에 나타내는 알고리즘 G(1) ob를 이용한, 수학식 132에 나타내는 Setup 알고리즘을 실행하여, 공개 파라미터 pk와 마스터 비밀 키 sk를 생성한다.
[수학식 131]
[수학식 132]
또, 공개 파라미터는, 예컨대, 네트워크를 통해서 공개되고, 암호화 장치(200)나 복호 장치(300)가 취득 가능한 상태가 된다.
S103에서는, 기저 B1을 생성하지 않고, 대신에 변수 Bi , j를 생성했다. 기저 B1을 생성하는 것이라면, 수학식 133과 같이 된다.
[수학식 133]
수학식 133의 행렬에 있어서의 공백 부분은 성분의 값이 0∈G인 것을 나타내고 있다. 기저 B1은, 기저 B* 1의 정규 직교 기저이다. 다시 말해, e(b1 , i, b* 1, j)=gT이고, 1i≠j4n의 정수 i, j에 대하여, e(b1 , i, b* 1, j)=1이다.
도 7에 근거하여, KeyGen 알고리즘의 처리에 대하여 설명한다.
(S111 : 정보 입력 단계)
정보 입력부(130)는, 벡터 v→를 입력 장치에 의해 입력한다.
(S112 : 난수 생성 단계)
난수 생성부(141)는, 수학식 134에 나타내는 바와 같이, 처리 장치에 의해 난수를 생성한다.
[수학식 134]
(S113 : 요소 k* 0 생성 단계)
키 요소 생성부(142)는, 수학식 135에 나타내는 바와 같이, 처리 장치에 의해 복호 키 skv →의 요소인 요소 k* 0을 생성한다.
[수학식 135]
또, 상술한 바와 같이, 수학식 110에 나타내는 기저 B와 기저 B*에 대하여, 수학식 111이다. 따라서, 수학식 135는, 기저 B* 0의 기저 벡터 b* 0, 1의 계수로서 δ를 설정하고, 기저 벡터 b* 0, 2의 계수로서 0을 설정하고, 기저 벡터 b* 0, 3의 계수로서 1을 설정하고, 기저 벡터 b* 0, 4의 계수로서 φ0을 설정하고, 기저 벡터 b* 0, 5의 계수로서 0을 설정하는 것을 의미한다.
(S114 : 요소 k* 1 생성 단계)
키 요소 생성부(142)는, 수학식 136에 나타내는 바와 같이, 처리 장치에 의해 복호 키 skv →의 요소인 요소 k* 1을 생성한다.
[수학식 136]
수학식 136은, 수학식 135와 마찬가지로, 기저 B* 1의 기저 벡터 b* 1, 1, …, b* 1, n의 계수로서 δv1, …, δvn을 설정하고, 기저 벡터 b* 1, n+1, …, b* 1, 2n의 계수로서 0을 설정하고, 기저 벡터 b* 1, 2n+1, …, b* 1, 3n의 계수로서 φ1v1, …, φ1vn을 설정하고, 기저 벡터 b* 1, 3n+1, …, b* 1, 4n의 계수로서 0을 설정하는 것을 의미한다.
(S115 : 키 배포 단계)
키 배포부(150)는, S111에서 입력한 벡터 v→와, S113에서 생성한 요소 k* 0과, S114에서 생성한 요소 k* 1을 요소로 하는 복호 키 skv →를, 예컨대 통신 장치에 의해 네트워크를 통해서 비밀리에 복호 장치(300)에 배포한다. 물론, 복호 키 skv →는, 다른 방법에 의해 복호 장치(300)에 배포되더라도 좋다.
다시 말해, S111로부터 S114에 있어서, 키 생성 장치(100)는, 수학식 137에 나타내는 KeyGen 알고리즘을 실행하여, 복호 키 skv →를 생성한다. 그리고, S115에 있어서, 키 생성 장치(100)는, 생성된 복호 키 skv →를 복호 장치(300)에 배포한다.
[수학식 137]
암호화 장치(200)에 대하여 설명한다.
도 4에 나타내는 바와 같이, 암호화 장치(200)는, 공개 파라미터 취득부(210), 정보 입력부(220), 암호문 생성부(230), 데이터 송신부(240)를 구비한다. 암호문 생성부(230)는, 난수 생성부(231), 암호 요소 생성부(232)를 구비한다.
도 8에 근거하여, Enc 알고리즘의 처리에 대하여 설명한다.
(S121 : 공개 파라미터 취득 단계)
공개 파라미터 취득부(210)는, 예컨대, 통신 장치에 의해 네트워크를 통해서, 키 생성 장치(100)가 생성한 공개 파라미터 pk를 취득한다.
(S122 : 정보 입력 단계)
정보 입력부(220)는, 벡터 x→를 입력 장치에 의해 입력한다.
또한, 정보 입력부(220)는, 메시지 m을 입력 장치에 의해 입력한다.
(S123 : 난수 생성 단계)
난수 생성부(231)는, 수학식 138에 나타내는 바와 같이, 처리 장치에 의해 난수를 생성한다.
[수학식 138]
(S124 : 요소 c0 생성 단계)
암호 요소 생성부(232)는, 수학식 139에 나타내는 바와 같이, 처리 장치에 의해 암호문 ctx →의 요소인 요소 c0을 생성한다.
[수학식 139]
수학식 139는, 수학식 135와 마찬가지로, 기저 B0의 기저 벡터 b0 , 1의 계수로서 -ω를 설정하고, 기저 벡터 b0 , 2의 계수로서 0을 설정하고, 기저 벡터 b0 , 3의 계수로서 ζ를 설정하고, 기저 벡터 b0 , 4의 계수로서 0을 설정하고, 기저 벡터 b0 , 5의 계수로서 η0을 설정하는 것을 의미한다.
(S125 : 요소 C 생성 단계)
암호 요소 생성부(232)는, 수학식 140에 나타내는 바와 같이, 처리 장치에 의해 암호문 ctx →의 요소인 요소 C1 , j와 요소 C2 , j를 생성한다.
[수학식 140]
(S126 : 요소 c3 생성 단계)
암호 요소 생성부(232)는, 수학식 141에 나타내는 바와 같이, 처리 장치에 의해 암호문 ctx →의 요소인 요소 c3을 생성한다.
[수학식 141]
(S127 : 데이터 송신 단계)
데이터 송신부(240)는, S122에서 입력한 벡터 x→와, S124에서 생성한 요소 c0과, S125에서 생성한 요소 C1 , j, C2 , j와, S126에서 생성한 요소 c3을 요소로 하는 암호문 ctx →를, 예컨대 통신 장치에 의해 네트워크를 통해서 복호 장치(300)에 송신한다. 물론, 암호문 ctx →는, 다른 방법에 의해 복호 장치(300)에 송신되더라도 좋다.
다시 말해, S121로부터 S126에 있어서, 암호화 장치(200)는, 수학식 142에 나타내는 Enc 알고리즘을 실행하여, 암호문 ctx →를 생성한다. 그리고, S127에 있어서, 암호화 장치(200)는, 생성된 암호문 ctx →를 복호 장치(300)에 송신한다.
[수학식 142]
복호 장치(300)에 대하여 설명한다.
도 5에 나타내는 바와 같이, 복호 장치(300)는, 복호 키 취득부(310), 데이터 수신부(320), 페어링 연산부(330), 메시지 계산부(340)를 구비한다.
도 9에 근거하여, Dec 알고리즘의 처리에 대하여 설명한다.
(S131 : 복호 키 취득 단계)
복호 키 취득부(310)는, 예컨대, 통신 장치에 의해 네트워크를 통해서, 키 생성 장치(100)로부터 배포된 skv →를 취득한다.
또한, 복호 키 취득부(310)는, 키 생성 장치(100)가 생성한 공개 파라미터 pk를 취득한다.
(S132 : 데이터 수신 단계)
데이터 수신부(320)는, 예컨대, 통신 장치에 의해 네트워크를 통해서, 암호화 장치(200)가 송신한 암호문 ctx →를 수신한다.
(S133 : 값 D* j 계산 단계)
페어링 연산부(330)는, 수학식 143에 나타내는 바와 같이, 처리 장치에 의해 값 D* j를 계산한다.
[수학식 143]
여기서, 요소 k* 1은, (K* 1, …, K* 4n)∈G4n의 4n조로 분해된다.
(S134 : 페어링 연산 단계)
페어링 연산부(330)는, 수학식 144에 나타내는 바와 같이, 처리 장치에 의해 페어링 연산을 실행하여, 값 F를 계산한다.
[수학식 144]
(S135 : 메시지 계산 단계)
메시지 계산부(340)는, 수학식 145에 나타내는 바와 같이, 처리 장치에 의해 메시지 m'를 계산한다.
[수학식 145]
다시 말해, S131로부터 S135에 있어서, 복호 장치(300)는, 수학식 146에 나타내는 Dec 알고리즘을 실행하여, 메시지 m'를 계산한다.
[수학식 146]
또, 수학식 133으로부터 B1:=(b1 , 1, …, b1 , 4n)은, {Bi , j, B'i , j, L}i, j=1, …, 4;L=1, …, n에 의해 특정된다. 또한, Setup 알고리즘의 출력에 포함되는 {Bi , j, B'i , j, L}i=1, 4;j=1, …, 4;L=1, …, n은, B^ 1:=(b1 , 1, …, b1 , n, b1 , 3n+1, …, b1 , 4n)에 의해 특정된다.
그리고, Dec 알고리즘은, 수학식 147에 나타내는 Dec' 알고리즘과 같이 기술할 수 있다.
[수학식 147]
수학식 148에 나타내는 바와 같이, Dec' 알고리즘을 이용한 경우, x→ㆍv→≠0이면, F=gζ T가 얻어진다. 그 때문에, c3=gζ Tm을 F로 나누는 것에 의해, 메시지 m'(=m)가 얻어진다.
[수학식 148]
실시의 형태 2에서 설명한 비 0 내적 암호 방식에서는, 암호문 ctx →는, 수학식 139에 나타내는 요소 c0에서 5개와, 수학식 140에 나타내는, j=1, …, 4의 각 정수 j에 대한 요소 C1 , j 및 요소 C2 , j에서 8개의 합계 13개의 G의 요소를 포함한다. 또한, 수학식 141에 나타내는 요소 c3에서 1개의 GT의 요소를 포함한다. 다시 말해, 암호문 ctx →는, n에 대하여 상수 사이즈이다.
또한, 실시의 형태 2에서 설명한 비 0 내적 암호 방식에서는, 복호 처리(Dec 알고리즘)는, 수학식 144에 나타내는 e(c0, k* 0)에서 5개와, Πj=1 4(e(C1 , j, D* j)ㆍe(C2, j, K* jn))에서 8개의 합계 13개만 페어링 연산을 실행한다. 다시 말해, 복호 처리는, 적은 수의 페어링 연산만 필요하게 된다.
실시의 형태 3.
실시의 형태 3에서는, 비밀 키의 사이즈를 상수 사이즈로 한 비 0 내적 암호 방식에 대하여 설명한다.
키 생성 장치(100), 암호화 장치(200), 복호 장치(300)의 구성은, 각각 도 3, 도 4, 도 5에 나타내는 실시의 형태 2에 따른 키 생성 장치(100), 암호화 장치(200), 복호 장치(300)의 구성과 동일하다.
도 10과 도 11은 실시의 형태 3에 따른 키 생성 장치(100)의 동작을 나타내는 플로차트이다. 또, 도 10은 실시의 형태 3에 따른 Setup 알고리즘의 처리를 나타내는 플로차트이고, 도 11은 실시의 형태 3에 따른 KeyGen 알고리즘의 처리를 나타내는 플로차트이다. 도 12는 실시의 형태 3에 따른 암호화 장치(200)의 동작을 나타내는 플로차트이고, 실시의 형태 3에 따른 Enc 알고리즘의 처리를 나타내는 플로차트이다. 도 13은 실시의 형태 3에 따른 복호 장치(300)의 동작을 나타내는 플로차트이고, 실시의 형태 3에 따른 Dec 알고리즘의 처리를 나타내는 플로차트이다.
또, 이하의 설명에 있어서, 입력되는 벡터 v→:=(v1, …, vn)은, L=1, …, n-1의 각 정수 L에 대하여 vL≠0이고, 입력되는 벡터 x→:=(x1, …, xn)은, xn≠0인 것으로 한다.
키 생성 장치(100)에 대하여 설명한다.
도 10에 근거하여, Setup 알고리즘의 처리에 대하여 설명한다.
S201로부터 S202까지의 처리는, 도 6에 나타내는 S101로부터 S102까지의 처리와 동일하다.
(S203 : 기저 B 생성 단계)
기저 생성부(113)는, 실시의 형태 2에 있어서의 기저 B0과 변수 Bi , j와 마찬가지로, 수학식 149에 나타내는 바와 같이, 처리 장치에 의해 기저 D0과 변수 Di , j와 변수 D'i , j, L을 생성한다.
[수학식 149]
또한, 기저 생성부(113)는, 실시의 형태 2에 있어서의 기저 B* 0과 기저 B* 1과 마찬가지로, 수학식 150에 나타내는 바와 같이, 처리 장치에 의해 기저 D* 0과 기저 D* 1을 생성한다.
[수학식 150]
그리고, 기저 생성부(113)는, 기저 D* 0을 기저 B0으로 하고, 기저 D0을 기저 B* 0으로 하고, 기저 D* 1을 기저 B1로 한다. 또한, 기저 생성부(113)는, i, j=1, …, 4의 각 정수 i, j와, L=1, …, n의 각 정수 L에 대하여, 변수 Di , j를 변수 B* i, j로 하고, 변수 D'i , j, L을 변수 B'* i, j, L로 한다.
(S204 : 기저 B^ 생성 단계)
키 생성부(114)는, 수학식 151에 나타내는 바와 같이, 처리 장치에 의해 기저 B^ 0과, 기저 B^ 1과, 기저 B^* 0을 생성한다.
[수학식 151]
(S205 : 마스터 키 생성 단계)
키 생성부(114)는, 처리 장치에 의해 공개 파라미터 pk:=(1λ, paramn, {B^ t}t=0, 1)로 하고, 마스터 비밀 키 sk:=B^* 0, {B* i, j, B'* i, j, L}i=1, 3;j=1, …, 4;L=1, …, n으로 한다. 그리고, 키 생성부(114)는, 공개 파라미터 pk와, 마스터 비밀 키 sk를 마스터 키 기억부(120)에 기억한다.
또, paramn:=({paramVt}t=0, 1, gT)이다.
다시 말해, S201로부터 S205에 있어서, 키 생성 장치(100)는, 수학식 152에 나타내는 알고리즘 G(2) ob를 이용한, 수학식 153에 나타내는 Setup 알고리즘을 실행하여, 공개 파라미터 pk와 마스터 비밀 키 sk를 생성한다. 여기서, 수학식 152에 나타내는 바와 같이, 알고리즘 G(2) ob는, 수학식 131에 나타내는 알고리즘 G(1) ob를 이용한다.
[수학식 152]
[수학식 153]
또, 공개 파라미터는, 예컨대, 네트워크를 통해서 공개되고, 암호화 장치(200)나 복호 장치(300)가 취득 가능한 상태가 된다.
도 11에 근거하여, KeyGen 알고리즘의 처리에 대하여 설명한다.
S211로부터 S213까지의 처리는, 도 7에 나타내는 S111로부터 S113까지의 처리와 동일하다.
(S214 : 요소 K* 생성 단계)
키 요소 생성부(142)는, 수학식 154에 나타내는 바와 같이, 처리 장치에 의해 복호 키 skv →의 요소인 요소 K* 1, j와 요소 K* 2, j를 생성한다.
[수학식 154]
(S215 : 키 배포 단계)
키 배포부(150)는, S211에서 입력한 벡터 v→와, S213에서 생성한 요소 k* 0과, S214에서 생성한 요소 K* 1, j, K* 2, j를 요소로 하는 복호 키 skv →를, 예컨대 통신 장치에 의해 네트워크를 통해서 비밀리에 복호 장치(300)에 배포한다. 물론, 복호 키 skv →는, 다른 방법에 의해 복호 장치(300)에 배포되더라도 좋다.
다시 말해, S211로부터 S214에 있어서, 키 생성 장치(100)는, 수학식 155에 나타내는 KeyGen 알고리즘을 실행하여, 복호 키 skv →를 생성한다. 그리고, S215에 있어서, 키 생성 장치(100)는, 생성된 복호 키 skv →를 복호 장치(300)에 배포한다.
[수학식 155]
암호화 장치(200)에 대하여 설명한다.
도 12에 근거하여, Enc 알고리즘의 처리에 대하여 설명한다.
S221로부터 S224까지의 처리는, 도 8에 나타내는 S121로부터 S124까지의 처리와 동일하다.
(S225 : 요소 c1 생성 단계)
암호 요소 생성부(232)는, 수학식 156에 나타내는 바와 같이, 처리 장치에 의해 암호문 ctx →의 요소인 요소 c1을 생성한다.
[수학식 156]
수학식 156은, 수학식 135와 마찬가지로, 기저 B1의 기저 벡터 b* 1, 1, …, b* 1, n의 계수로서 ωx1, …, ωxn을 설정하고, 기저 벡터 b* 1, n+1, …, b* 1, 3n의 계수로서 0을 설정하고, 기저 벡터 b* 1, 3n+1, …, b* 1, 4n의 계수로서 η1x1, …, η1xn을 설정하는 것을 의미한다.
S226의 처리는, 도 8에 나타내는 S126의 처리와 동일하다.
(S227 : 데이터 송신 단계)
데이터 송신부(240)는, S222에서 입력한 벡터 x→와, S224에서 생성한 요소 c0과, S225에서 생성한 요소 c1과, S226에서 생성한 요소 c3을 요소로 하는 암호문 ctx→를, 예컨대 통신 장치에 의해 네트워크를 통해서 복호 장치(300)에 송신한다. 물론, 암호문 ctx →는, 다른 방법에 의해 복호 장치(300)에 송신되더라도 좋다.
다시 말해, S221로부터 S226에 있어서, 암호화 장치(200)는, 수학식 157에 나타내는 Enc 알고리즘을 실행하여, 암호문 ctx →를 생성한다. 그리고, S227에 있어서, 암호화 장치(200)는, 생성된 암호문 ctx →를 복호 장치(300)에 송신한다.
[수학식 157]
복호 장치(300)에 대하여 설명한다.
도 13에 근거하여, Dec 알고리즘의 처리에 대하여 설명한다.
S231로부터 S232까지의 처리는, 도 9에 나타내는 S131로부터 S132까지의 처리와 동일하다.
(S233 : 값 Dj 계산 단계)
페어링 연산부(330)는, 수학식 158에 나타내는 바와 같이, 처리 장치에 의해 값 Dj를 계산한다.
[수학식 158]
여기서, 요소 c1은, (C1, …, C4n)∈G4n의 4n조로 분해된다.
(S234 : 페어링 연산 단계)
페어링 연산부(330)는, 수학식 159에 나타내는 바와 같이, 처리 장치에 의해 페어링 연산을 실행하여 , 값 F를 계산한다.
[수학식 159]
S235의 처리는, 도 9에 나타내는 S135의 처리와 동일하다.
다시 말해, S231로부터 S235에 있어서, 복호 장치(300)는, 수학식 160에 나타내는 Dec 알고리즘을 실행하여, 메시지 m'를 계산한다.
[수학식 160]
또, B* 1:=(b* 1, 1, …, b* 1, 4n)은, {B* i, j, B'* i, j, L}i, j=1, …, 4;L=1, …, n에 의해 특정된다. 또한, Setup 알고리즘의 출력에 포함되는 {B* i, j, B'* i, j, L}i=1, 3;j=1, …, 4;L=1, …, n은, B^* 1:=(b* 1, 1, …, b* 1, n, b* 1, 2n+1, …, b* 1, 3n)에 의해 특정된다.
그리고, Dec 알고리즘은, 수학식 161에 나타내는 Dec' 알고리즘과 같이 기술할 수 있다.
[수학식 161]
실시의 형태 3에서 설명한 비 0 내적 암호 방식에서는, 복호 키 skv →는, 수학식 135에 나타내는 요소 k* 0에서 5개와, 수학식 154에 나타내는, j=1, …, 4의 각 정수 j에 대한 요소 K* 1, j 및 요소 K* 2, j에서 8개의 합계 13개의 G의 요소를 포함한다. 다시 말해, 복호 키 skv →는, n에 대하여 상수 사이즈이다.
또한, 실시의 형태 3에서 설명한 비 0 내적 암호 방식에서는, 복호 처리(Dec 알고리즘)는, 수학식 159에 나타내는 e(c0, k* 0)에서 5개와, Πj=1 4(e(Dj, K* 1, j)ㆍe(Cjn, K* 2, j))에서 8개의 합계 13개만 페어링 연산을 실행한다. 다시 말해, 복호 처리는, 적은 수의 페어링 연산만 필요하게 된다.
실시의 형태 4.
실시의 형태 4에서는, 암호문의 사이즈를 상수 사이즈로 한 0 내적 암호 방식에 대하여 설명한다.
키 생성 장치(100), 암호화 장치(200), 복호 장치(300)의 구성은, 각각 도 3, 도 4, 도 5에 나타내는 실시의 형태 2에 따른 키 생성 장치(100), 암호화 장치(200), 복호 장치(300)의 구성과 동일하다.
도 14와 도 15는 실시의 형태 4에 따른 키 생성 장치(100)의 동작을 나타내는 플로차트이다. 또, 도 14는 실시의 형태 4에 따른 Setup 알고리즘의 처리를 나타내는 플로차트이고, 도 15는 실시의 형태 4에 따른 KeyGen 알고리즘의 처리를 나타내는 플로차트이다. 도 16은 실시의 형태 4에 따른 암호화 장치(200)의 동작을 나타내는 플로차트이고, 실시의 형태 4에 따른 Enc 알고리즘의 처리를 나타내는 플로차트이다. 도 17은 실시의 형태 4에 따른 복호 장치(300)의 동작을 나타내는 플로차트이고, 실시의 형태 4에 따른 Dec 알고리즘의 처리를 나타내는 플로차트이다.
또, 이하의 설명에 있어서, 입력되는 벡터 x→:=(x1, …, xn)은, L=1, …, n-1의 각 정수 L에 대하여 xL≠0이고, 입력되는 벡터 v→:=(v1, …, vn)은, vn≠0인 것으로 한다.
키 생성 장치(100)에 대하여 설명한다.
도 14에 근거하여, Setup 알고리즘의 처리에 대하여 설명한다.
(S301 : 공간 생성 단계)
공간 생성부(111)는, 시큐리티 파라미터 1λ를 입력으로 하여, 처리 장치에 의해 Gbpg를 실행하여, 대칭 쌍선형 페어링군의 파라미터 paramG:=(q, G, GT, g, e)를 생성한다.
또한, 공간 생성부(111)는, N:=4n+1을 설정한다. 그리고, 공간 생성부(111)는, 시큐리티 파라미터 1λ와, N과, 대칭 쌍선형 페어링군의 파라미터 paramG를 입력으로 하여, 처리 장치에 의해 Gdpvs를 실행하여, 쌍대 페어링 벡터 공간의 파라미터 paramVt:=(q, V, GT, A, e)를 생성한다.
(S302 : 선형 변환 생성 단계)
행렬 생성부(112)는, 수학식 162에 나타내는 바와 같이, 처리 장치에 의해 선형 변환 X를 생성한다.
[수학식 162]
수학식 162에 있어서의 L'(N, Fq)는, 수학식 163에 나타내는 바와 같다.
[수학식 163]
또, 이하, {χ0, 0, χ0, j, χi, 0, L, μi, j, μ'i, j, L}i, j=1, …, 4;L=1, …, n은, 선형 변환 X에 있어서의 상수치 0 이외의 요소를 나타낸다.
(S303 : 기저 B 생성 단계)
기저 생성부(113)는, 수학식 164에 나타내는 바와 같이, 처리 장치에 의해 변수 B0, 0과 변수 B0, j와 변수 Bi , 0, L과 변수 Bi , j와 변수 B'i , j, L을 생성한다.
[수학식 164]
또한, 기저 생성부(113)는, 수학식 165에 나타내는 바와 같이, 처리 장치에 의해 기저 B*를 생성한다.
[수학식 165]
(S304 : 기저 B^ 생성 단계)
키 생성부(114)는, 수학식 166에 나타내는 바와 같이, 처리 장치에 의해 기저 B^*를 생성한다.
[수학식 166]
(S305 : 마스터 키 생성 단계)
키 생성부(114)는, 처리 장치에 의해 공개 파라미터 pk:=(1λ, paramn, B^ 0, {B0, 0, B0, j, Bi , 0, L, Bi , j, B'i , j, L}i=1, 4;j=1, …, 4;L=1, …, n)으로 하고, 마스터 비밀 키 sk:=B^*로 한다. 그리고, 키 생성부(114)는, 공개 파라미터 pk와, 마스터 비밀 키 sk를 마스터 키 기억부(120)에 기억한다.
또, paramn:=(paramV, gT)이다.
다시 말해, S301로부터 S305에 있어서, 키 생성 장치(100)는, 수학식 167에 나타내는 알고리즘 G(3) ob를 이용한, 수학식 168에 나타내는 Setup 알고리즘을 실행하여, 공개 파라미터 pk와 마스터 비밀 키 sk를 생성한다.
[수학식 167]
[수학식 168]
또, 공개 파라미터는, 예컨대, 네트워크를 통해서 공개되고, 암호화 장치(200)나 복호 장치(300)가 취득 가능한 상태가 된다.
도 15에 근거하여, KeyGen 알고리즘의 처리에 대하여 설명한다.
S311의 처리는, 도 7에 나타내는 S111의 처리와 동일하다.
(S312 : 난수 생성 단계)
난수 생성부(141)는, 수학식 169에 나타내는 바와 같이, 처리 장치에 의해 난수를 생성한다.
[수학식 169]
(S313 : 요소 k* 생성 단계)
키 요소 생성부(142)는, 수학식 170에 나타내는 바와 같이, 처리 장치에 의해 복호 키 skv →의 요소인 요소 k*를 생성한다.
[수학식 170]
수학식 170은, 수학식 135와 마찬가지로, 기저 B*의 기저 벡터 b* 0의 계수로서 1을 설정하고, 기저 벡터 b* 1, …, b* n의 계수로서 δv1, …, δvn을 설정하고, 기저 벡터 b* n+1, …, b* 2n의 계수로서 0을 설정하고, 기저 벡터 b* 2n+1, …, b* 3n의 계수로서 φv1, …, φvn을 설정하고, 기저 벡터 b* 3n+1, …, b* 4n의 계수로서 0을 설정하는 것을 의미한다.
(S314 : 키 배포 단계)
키 배포부(150)는, S313에서 생성한 요소 k*를 요소로 하는 복호 키 skv →를, 예컨대 통신 장치에 의해 네트워크를 통해서 비밀리에 복호 장치(300)에 배포한다. 물론, 복호 키 skv →는, 다른 방법에 의해 복호 장치(300)에 배포되더라도 좋다.
다시 말해, S311로부터 S313에 있어서, 키 생성 장치(100)는, 수학식 171에 나타내는 KeyGen 알고리즘을 실행하여, 복호 키 skv →를 생성한다. 그리고, S314에 있어서, 키 생성 장치(100)는, 생성된 복호 키 skv →를 복호 장치(300)에 배포한다.
[수학식 171]
암호화 장치(200)에 대하여 설명한다.
도 16에 근거하여, Enc 알고리즘의 처리에 대하여 설명한다.
S321로부터 S322까지의 처리는, 도 8에 나타내는 S121로부터 S122까지의 처리와 동일하다.
(S323 : 난수 생성 단계)
난수 생성부(231)는, 수학식 172에 나타내는 바와 같이, 처리 장치에 의해 난수를 생성한다.
[수학식 172]
(S324 : 요소 C 생성 단계)
암호 요소 생성부(232)는, 수학식 173에 나타내는 바와 같이, 처리 장치에 의해 암호문 ctx →의 요소인 요소 C0과 요소 C1 , j와 요소 C2 , j를 생성한다.
[수학식 173]
S325의 처리는, 도 8에 나타내는 S126의 처리와 동일하다.
(S326 : 데이터 송신 단계)
데이터 송신부(240)는, S322에서 입력한 벡터 x→와, S324에서 생성한 요소 C0, C1 , j, C2 , j와, S325에서 생성한 요소 c3을 요소로 하는 암호문 ctx →를, 예컨대 통신 장치에 의해 네트워크를 통해서 복호 장치(300)에 송신한다. 물론, 암호문 ctx→는, 다른 방법에 의해 복호 장치(300)에 송신되더라도 좋다.
다시 말해, S321로부터 S325에 있어서, 암호화 장치(200)는, 수학식 174에 나타내는 Enc 알고리즘을 실행하여, 암호문 ctx →를 생성한다. 그리고, S326에 있어서, 암호화 장치(200)는, 생성된 암호문 ctx →를 복호 장치(300)에 송신한다.
[수학식 174]
복호 장치(300)에 대하여 설명한다.
도 17에 근거하여, Dec 알고리즘의 처리에 대하여 설명한다.
S331로부터 S332까지의 처리는, 도 9에 나타내는 S131로부터 S132까지의 처리와 동일하다.
(S333 : 값 D* j 계산 단계)
페어링 연산부(330)는, 수학식 175에 나타내는 바와 같이, 처리 장치에 의해 값 D* j를 계산한다.
[수학식 175]
여기서, 요소 k*는, (K* 0, …, K* 4n)∈G4n +1의 (4n+1)조로 분해된다.
(S334 : 페어링 연산 단계)
페어링 연산부(330)는, 수학식 176에 나타내는 바와 같이, 처리 장치에 의해 페어링 연산을 실행하여, 값 F를 계산한다.
[수학식 176]
S335의 처리는, 도 9에 나타내는 S135의 처리와 동일하다.
다시 말해, S331로부터 S335에 있어서, 복호 장치(300)는, 수학식 177에 나타내는 Dec 알고리즘을 실행하여, 메시지 m'를 계산한다.
[수학식 177]
또, B:=(b0, …, b4n)은, {B0, 0, B0, j, Bi , 0, L, Bi , j, B'i , j, L}i, j=1, …, 4;L=1, …, n에 의해 특정된다. 또한, Setup 알고리즘의 출력에 포함되는 {B0, 0, B0, j, Bi , 0, L, Bi, j, B'i , j, L}i=1, 4;j=1, …, 4;L=1, …, n은, B^:=(b0, …, bn, b3n +1, …, b4n)에 의해 특정된다.
그리고, Dec 알고리즘은, 수학식 178에 나타내는 Dec' 알고리즘과 같이 기술할 수 있다.
[수학식 178]
수학식 179에 나타내는 바와 같이, Dec' 알고리즘을 이용한 경우, x→ㆍv→=0이면, F=gζ T가 얻어진다. 그 때문에, c3=gζ Tm을 F로 나누는 것에 의해, 메시지 m'(=m)가 얻어진다.
[수학식 179]
실시의 형태 4에서 설명한 0 내적 암호 방식에서는, 암호문 ctx →는, 수학식 173에 나타내는 요소 C0에서 1개와, j=1, …, 4의 각 정수 j에 대한 요소 C1 , j 및 요소 C2 , j에서 8개의 합계 9개의 G의 요소를 포함한다. 또한, 요소 c3에서 1개의 GT의 요소를 포함한다. 다시 말해, 암호문 ctx →는, n에 대하여 상수 사이즈이다.
또한, 실시의 형태 4에서 설명한 0 내적 암호 방식에서는, 복호 처리(Dec 알고리즘)는, 수학식 176에 나타내는 e(C0, K* 0)에서 1개와, Πj=1 4(e(C1 , j, D* j)ㆍe(C2 , j, K* jn))에서 8개의 합계 9개만 페어링 연산을 실행한다. 다시 말해, 복호 처리는, 적은 수의 페어링 연산만 필요하게 된다.
실시의 형태 5.
실시의 형태 5에서는, 비밀 키의 사이즈를 상수 사이즈로 한 0 내적 암호 방식에 대하여 설명한다.
키 생성 장치(100), 암호화 장치(200), 복호 장치(300)의 구성은, 각각 도 3, 도 4, 도 5에 나타내는 실시의 형태 2에 따른 키 생성 장치(100), 암호화 장치(200), 복호 장치(300)의 구성과 동일하다.
도 18과 도 19는 실시의 형태 5에 따른 키 생성 장치(100)의 동작을 나타내는 플로차트이다. 또, 도 18은 실시의 형태 5에 따른 Setup 알고리즘의 처리를 나타내는 플로차트이고, 도 19는 실시의 형태 5에 따른 KeyGen 알고리즘의 처리를 나타내는 플로차트이다. 도 20은 실시의 형태 5에 따른 암호화 장치(200)의 동작을 나타내는 플로차트이고, 실시의 형태 5에 따른 Enc 알고리즘의 처리를 나타내는 플로차트이다. 도 21은 실시의 형태 5에 따른 복호 장치(300)의 동작을 나타내는 플로차트이고, 실시의 형태 5에 따른 Dec 알고리즘의 처리를 나타내는 플로차트이다.
또, 이하의 설명에 있어서, 입력되는 벡터 v→:=(v1, …, vn)은, L=1, …, n-1의 각 정수 L에 대하여 vL≠0이고, 입력되는 벡터 x→:=(x1, …, xn)은, xn≠0인 것으로 한다.
키 생성 장치(100)에 대하여 설명한다.
도 18에 근거하여, Setup 알고리즘의 처리에 대하여 설명한다.
S401로부터 S402까지의 처리는, 도 14에 나타내는 S301로부터 S302까지의 처리와 동일하다.
(S403 : 기저 B 생성 단계)
기저 생성부(113)는, 실시의 형태 4에 있어서의 변수 B0, 0과 변수 B0, j와 변수 Bi , 0, L과 변수 Bi , j와 변수 B'i , j, L과 마찬가지로, 수학식 180에 나타내는 바와 같이, 처리 장치에 의해 변수 D0 , 0과 변수 D0 , j와 변수 Di , 0, L과 변수 Di , j와 변수 D'i, j, L을 생성한다.
[수학식 180]
또한, 기저 생성부(113)는, 실시의 형태 4에 있어서의 기저 B*와 마찬가지로, 수학식 181에 나타내는 바와 같이, 처리 장치에 의해 기저 D*를 생성한다.
[수학식 181]
그리고, 기저 생성부(113)는, 기저 D*를 기저 B로 한다. 또한, 기저 생성부(113)는, i, j=1, …, 4의 각 정수 i, j와, L=1, …, n의 각 정수 L에 대하여, 변수 D0 , 0을 변수 B* 0, 0으로 하고, 변수 D0 , j를 변수 B* 0, j로 하고, 변수 Di , 0, L을 변수 B* i, 0, L로 하고, 변수 Di , j를 변수 B* i, j로 하고, 변수 D'i , j, L을 변수 B'* i, j, L로 한다.
(S404 : 기저 B^ 생성 단계)
키 생성부(114)는, 수학식 182에 나타내는 바와 같이, 처리 장치에 의해 기저 B^를 생성한다.
[수학식 182]
(S405 : 마스터 키 생성 단계)
키 생성부(114)는, 처리 장치에 의해 공개 파라미터 pk:=(1λ, paramn, B^)로 하고, 마스터 비밀 키 sk:=({B* 0, 0, B* 0, j, B* i, 0, L, B* i, j, B'* i, j, L}i=1, 3;j=1, …, 4;L=1, …, n)으로 한다. 그리고, 키 생성부(114)는, 공개 파라미터 pk와, 마스터 비밀 키 sk를 마스터 키 기억부(120)에 기억한다.
또, paramn:=(paramV, gT)이다.
다시 말해, S401로부터 S405에 있어서, 키 생성 장치(100)는, 수학식 183에 나타내는 알고리즘 G(4) ob를 이용한, 수학식 184에 나타내는 Setup 알고리즘을 실행하여, 공개 파라미터 pk와 마스터 비밀 키 sk를 생성한다. 여기서, 수학식 183에 나타내는 바와 같이, 알고리즘 G(4) ob는, 수학식 167에 나타내는 알고리즘 G(3) ob를 이용한다.
[수학식 183]
[수학식 184]
또, 공개 파라미터는, 예컨대, 네트워크를 통해서 공개되고, 암호화 장치(200)나 복호 장치(300)가 취득 가능한 상태가 된다.
도 19에 근거하여, KeyGen 알고리즘의 처리에 대하여 설명한다.
S411로부터 S412까지의 처리는, 도 15에 나타내는 S311로부터 S312까지의 처리와 동일하다.
(S413 : 요소 K* 생성 단계)
키 요소 생성부(142)는, 수학식 185에 나타내는 바와 같이, 처리 장치에 의해 복호 키 skv →의 요소인 요소 K* 0과 요소 K* 1, j와 요소 K* 2, j를 생성한다.
[수학식 185]
(S414 : 키 배포 단계)
키 배포부(150)는, S411에서 입력한 벡터 v→와, S413에서 생성한 요소 K* 0, K* 1, j, K* 2, j를 요소로 하는 복호 키 skv→를, 예컨대 통신 장치에 의해 네트워크를 통해서 비밀리에 복호 장치(300)에 배포한다. 물론, 복호 키 skv→는, 다른 방법에 의해 복호 장치(300)에 배포되더라도 좋다.
다시 말해, S411로부터 S413에 있어서, 키 생성 장치(100)는, 수학식 186에 나타내는 KeyGen 알고리즘을 실행하여, 복호 키 skv →를 생성한다. 그리고, S414에 있어서, 키 생성 장치(100)는, 생성된 복호 키 skv →를 복호 장치(300)에 배포한다.
[수학식 186]
암호화 장치(200)에 대하여 설명한다.
도 20에 근거하여, Enc 알고리즘의 처리에 대하여 설명한다.
S421로부터 S423까지의 처리는, 도 16에 나타내는 S321로부터 S323까지의 처리와 동일하다.
(S424 : 요소 c 생성 단계)
암호 요소 생성부(232)는, 수학식 187에 나타내는 바와 같이, 처리 장치에 의해 암호문 ctx →의 요소인 요소 c를 생성한다.
[수학식 187]
수학식 187은, 수학식 135와 마찬가지로, 기저 B의 기저 벡터 b0의 계수로서 ζ를 설정하고, 기저 벡터 b1, …, bn의 계수로서 ωx1, …, ωxn을 설정하고, 기저 벡터 bn +1, …, b3n의 계수로서 0을 설정하고, 기저 벡터 b3n +1, …, b4n의 계수로서 ηx1, …, ηxn을 설정하는 것을 의미한다.
S425의 처리는, 도 16에 나타내는 S325의 처리와 동일하다.
(S426 : 데이터 송신 단계)
데이터 송신부(240)는, S422에서 입력한 벡터 x→와, S424에서 생성한 요소 c와, S425에서 생성한 요소 c3을 요소로 하는 암호문 ctx →를, 예컨대 통신 장치에 의해 네트워크를 통해서 복호 장치(300)에 송신한다. 물론, 암호문 ctx →는, 다른 방법에 의해 복호 장치(300)에 송신되더라도 좋다.
다시 말해, S421로부터 S425에 있어서, 암호화 장치(200)는, 수학식 188에 나타내는 Enc 알고리즘을 실행하여, 암호문 ctx →를 생성한다. 그리고, S426에 있어서, 암호화 장치(200)는, 생성된 암호문 ctx →를 복호 장치(300)에 송신한다.
[수학식 188]
복호 장치(300)에 대하여 설명한다.
도 21에 근거하여, Dec 알고리즘의 처리에 대하여 설명한다.
S431로부터 S432까지의 처리는, 도 17에 나타내는 S331로부터 S332까지의 처리와 동일하다.
(S433 : 값 Dj 계산 단계)
페어링 연산부(330)는, 수학식 189에 나타내는 바와 같이, 처리 장치에 의해 값 Dj를 계산한다.
[수학식 189]
여기서, 요소 c는, (C* 0, …, C* 4n)∈G4n +1의 (4n+1)조로 분해된다.
(S434 : 페어링 연산 단계)
페어링 연산부(330)는, 수학식 190에 나타내는 바와 같이, 처리 장치에 의해 페어링 연산을 실행하여, 값 F를 계산한다.
[수학식 190]
S435의 처리는, 도 17에 나타내는 S335의 처리와 동일하다.
다시 말해, S431로부터 S435에 있어서, 복호 장치(300)는, 수학식 191에 나타내는 Dec 알고리즘을 실행하여, 메시지 m'를 계산한다.
[수학식 191]
또, B*:=(b* 0, …, b* 4n)은, {B* 0, 0, B* 0, j, B* i, 0, L, B* i, j, B'* i, j, L}i, j=1, …, 4;L=1, …, n에 의해 특정된다. 또한, Setup 알고리즘의 출력에 포함되는 {B* 0, 0, B* 0, j, B* i, 0, L, B* i, j, B'* i, j, L}i=1, 3;j=1, …, 4;L=1, …, n은, B^*:=(b* 0, …, b* n, b* 2n+1, …, b* 3n)에 의해 특정된다.
그리고, Dec 알고리즘은, 수학식 192에 나타내는 Dec' 알고리즘과 같이 기술할 수 있다.
[수학식 192]
실시의 형태 5에서 설명한 0 내적 암호 방식에서는, 복호 키 skv →는, 수학식 185에 나타내는 요소 K* 0에서 1개와, j=1, …, 4의 각 정수 j에 대한 요소 K* 1, j 및 요소 K* 2, j에서 8개의 합계 9개의 G의 요소를 포함한다. 다시 말해, 복호 키 skv →는, n에 대하여 상수 사이즈이다.
또한, 실시의 형태 5에서 설명한 0 내적 암호 방식에서는, 복호 처리(Dec 알고리즘)는, 수학식 190에 나타내는 e(C0, K* 0)에서 1개와, Πj=1 4(e(Dj, K* 1, j)ㆍe(Cjn, K* 2, j))에서 8개의 합계 9개만 페어링 연산을 실행한다. 다시 말해, 복호 처리는, 적은 수의 페어링 연산만 필요하게 된다.
또, 이상의 실시의 형태에서는, 도 2(b)에 나타내는 선형 변환 X를 이용했다. 그러나, 선형 변환 X는, 도 2(b)에 나타내는 것에 한하지 않는다. 예컨대, 도 2(b)에 있어서의 사선이 들어간 사각형이 나타내는 부분을 각각 다른 값으로 하더라도 좋다. 또한, 도 2(b)에서는, N열에 있어서의 모든 성분을 상수치 0 이외의 난수로 했지만, N열이 아닌, 다른 적어도 어느 1열에 있어서의 모든 성분을 상수치 0 이외의 난수로 하더라도 좋다.
보다 일반적으로는, 선형 변환 X는, 각 행 각 열에 적어도 1개는 상수치 0 이외의 값을 갖는 희소 행렬이면 된다. 또한, 선형 변환 X는, n행 n열의 행렬인 경우, 상수치 0 이외의 값으로서, 적어도 n개의 다른 값을 갖고 있으면 된다. 또한, 선형 변환 X는, 적어도 1개의 열에 있어서의 모든 성분이 상수치 0 이외의 값이면 된다. 또한, 선형 변환 X는, 대각 성분과, 적어도 1개의 열에 있어서의 모든 성분이 상수치 0 이외의 값이면 된다. 또한, 선형 변환 X는, 모든 성분이 상수치 0 이외의 값인 열을 제외하고, 대각 성분의 값이 동일하면 된다.
이와 같은 선형 변환 X를 이용한 경우에도, 종래의 선형 변환 X를 이용한 경우에 비하여, 공개 파라미터와 비밀 키의 사이즈는 작아진다. 또한, 사용자 키의 생성이나 암호화의 처리의 처리 시간도 짧아진다.
단, 선형 변환 X의 형식에 따라서는, 페어링 연산의 수를 줄일 수 없는 경우도 있다.
이상의 실시의 형태에서는, 벡터 공간은, 부호화부와, 비닉부와, 비밀 키 랜덤화부와, 암호문 랜덤화부를 위한 4개의 직교하는 부분 공간으로 구성했다. 그리고, 이것에 대응하기 위해, 수학식 124에 나타내는 바와 같이, 선형 변환 X를, n행 n열의 행렬 Xi , j(i, j=1, …, 4)를 이용하여 구성했다. 선형 변환 X의 이 구성은, 비닉부와 비밀 키 랜덤화부와 암호문 랜덤화부의 부분 공간이, 부호화부의 부분 공간과 동일한 n차원인 것을 전제로 하고 있다.
그러나, 비닉부와 비밀 키 랜덤화부와 암호문 랜덤화부의 부분 공간은, 부호화부의 부분 공간과 동일한 n차원이 아니더라도 좋다. 예컨대, 비닉부의 부분 공간은 n×u차원, 비밀 키 랜덤화부의 부분 공간은 n×w차원, 암호문 랜덤화부의 부분 공간은 n×z차원(u, w, z는 0 이상의 정수)이더라도 좋다. 이 경우, 수학식 193에 나타내는 바와 같이, 선형 변환 X를, n행 n열의 행렬 Xi , j(i, j=1, …, 1+u+w+z)를 이용하여 구성하면 된다.
[수학식 193]
함수형 암호의 일종으로서, ID 베이스 레보케이션(Identity-Based Revocation, IBR)이나 ID 베이스 브로드캐스트 암호(Identity-Based Broadcast Encryption, IBBE)가 있다(비특허 문헌 1, 5, 6, 8, 19, 12 참조).
ID 베이스 레보케이션에서는, 암호문은 식별자의 집합 S=(ID1, …, IDn)에 대하여 암호화되고, ID∈S가 아닌 ID와 관련된 비밀 키에 의해 암호문은 복호된다. 다시 말해, 복호에는, ID∈S가 아닌 경우에 한해, RIBR(ID, S)=1인 것이 필요하다.
ID 베이스 브로드캐스트 암호에서는, 암호문은 식별자의 집합 S=(ID1, …, IDn)에 대하여 암호화되고, ID∈S인 ID와 관련된 비밀 키에 의해 암호문은 복호된다. 다시 말해, 복호에는, ID∈S인 경우에 한해, RIBBE(ID, S)=1인 것이 필요하다.
S:={ID1, …, IDn}인 경우에, S(X):=Σi=0 nviXi:=Πi=1 n(X-IDi)로 한다. 그리고, 벡터 v→:=(v0, v1, …, vn)으로 하고, 벡터 x→:=(1, ID, …, IDn)으로 한다.
그러면, 실시의 형태 2, 3에서 설명한 비 0 내적 암호 방식은, ID 베이스 레보케이션 방식이 되고, 실시의 형태 4, 5에서 설명한 0 내적 암호 방식은, ID 베이스 브로드캐스트 암호 방식이 된다.
다시 말해, 이상의 실시의 형태에서 설명한 내적 암호 방식에 의해, ID 베이스 레보케이션 방식 및 ID 베이스 브로드캐스트 암호 방식을 실현할 수 있다. 이 경우에 있어서도, 암호문 또는 복호 키를 n에 대한 상수 사이즈로 할 수 있고, 적은 수의 페어링 연산으로 복호할 수 있다.
실시의 형태 2-5에서 설명한 구체적인 암호 방식 이외에도, 비특허 문헌 13, 15, 16, 17 등에서 설명되고 있는 암호 방식에, 상술한 선형 변환 X를 적용함으로써, 공개 파라미터와 비밀 키의 사이즈는 작아진다. 또한, 사용자 키의 생성이나 암호화의 처리의 처리 시간도 짧아진다.
도 22는 실시의 형태 2-5에서 설명한 비 0 내적 암호 방식 및 0 내적 암호 방식과, 비특허 문헌 2에 기재된 비 0 내적 암호 방식 및 0 내적 암호 방식을 비교한 도면이다.
또, 도 22에 있어서, |G|, |GT|, |Fq|, P, M은, 각각 G의 사이즈, GT의 사이즈, Fq의 사이즈, 페어링 연산, G에 있어서의 스칼라곱 연산을 나타내고 있다. 또한, CT, SK, IP, DBDH는, 각각 암호문, 비밀 키(복호 키), 내적, 결정적 쌍선형 Diffie-Hellman을 나타내고 있다.
실시의 형태 6.
이상의 실시의 형태에서는, 쌍대 벡터 공간에 있어서 암호 처리를 실현하는 방법에 대하여 설명했다. 실시의 형태 6에서는, 쌍대 가군에 있어서 암호 처리를 실현하는 방법에 대하여 설명한다.
다시 말해, 이상의 실시의 형태에서는, 소수 위수 q의 순회군에 있어서 암호 처리를 실현했다. 그러나, 합성수 M을 이용하여 수학식 194와 같이 환 R을 나타낸 경우, 환 R을 계수로 하는 가군에 있어서도, 상기 실시의 형태에서 설명한 암호 처리를 적용할 수 있다.
[수학식 194]
이상의 실시의 형태에서 설명한 알고리즘에 있어서의 Fq를 R로 변경하면, 쌍대 가군에 있어서의 암호 처리를 실현할 수 있다.
다음으로, 실시의 형태에 있어서의 암호 처리 시스템(10)(키 생성 장치(100), 암호화 장치(200), 복호 장치(300))의 하드웨어 구성에 대하여 설명한다.
도 23은 키 생성 장치(100), 암호화 장치(200), 복호 장치(300), 키 위양 장치(400)의 하드웨어 구성의 일례를 나타내는 도면이다.
도 23에 나타내는 바와 같이, 키 생성 장치(100), 암호화 장치(200), 복호 장치(300), 키 위양 장치(400)는, 프로그램을 실행하는 CPU(911)(Central Processing Unit, 중앙 처리 장치, 처리 장치, 연산 장치, 마이크로프로세서, 마이크로컴퓨터, 프로세서라고도 한다)를 구비하고 있다. CPU(911)는, 버스(912)를 거쳐서 ROM(913), RAM(914), LCD(901)(Liquid Crystal Display), 키보드(902)(K/B), 통신 보드(915), 자기 디스크 장치(920)와 접속되고, 이들의 하드웨어 디바이스를 제어한다. 자기 디스크 장치(920)(고정 디스크 장치) 대신에, 광 디스크 장치, 메모리카드 읽기쓰기 장치 등의 기억 장치라도 좋다. 자기 디스크 장치(920)는, 소정의 고정 디스크 인터페이스를 거쳐서 접속된다.
ROM(913), 자기 디스크 장치(920)는, 비휘발성 메모리의 일례이다. RAM(914)은, 휘발성 메모리의 일례이다. ROM(913)과 RAM(914)과 자기 디스크 장치(920)는, 기억 장치(메모리)의 일례이다. 또한, 키보드(902), 통신 보드(915)는, 입력 장치의 일례이다. 또한, 통신 보드(915)는, 통신 장치의 일례이다. 또한, LCD(901)는, 표시 장치의 일례이다.
자기 디스크 장치(920) 또는 ROM(913) 등에는, 오퍼레이팅 시스템(921)(OS), 윈도우 시스템(922), 프로그램군(923), 파일군(924)이 기억되어 있다. 프로그램군(923)의 프로그램은, CPU(911), 오퍼레이팅 시스템(921), 윈도우 시스템(922)에 의해 실행된다.
프로그램군(923)에는, 상기의 설명에 있어서 「마스터 키 생성부(110)」, 「마스터 키 기억부(120)」, 「정보 입력부(130)」, 「복호 키 생성부(140)」, 「키 배포부(150)」, 「공개 파라미터 취득부(210)」, 「정보 입력부(220)」, 「암호문 생성부(230)」, 「데이터 송신부(240)」, 「복호 키 취득부(310)」, 「데이터 수신부(320)」, 「페어링 연산부(330)」, 「메시지 계산부(340)」 등으로서 설명한 기능을 실행하는 소프트웨어나 프로그램이나 그 밖의 프로그램이 기억되어 있다. 프로그램은, CPU(911)에 의해 판독되어 실행된다.
파일군(924)에는, 상기의 설명에 있어서 「공개 파라미터 pk」, 「마스터 비밀 키 sk」, 「복호 키 skv →」, 「암호문 ctx →」 등의 정보나 데이터나 신호치나 변수치나 파라미터가, 「파일」이나 「데이터베이스」의 각 항목으로서 기억된다. 「파일」이나 「데이터베이스」는, 디스크나 메모리 등의 기록 매체에 기억된다. 디스크나 메모리 등의 기억 매체에 기억된 정보나 데이터나 신호치나 변수치나 파라미터는, 읽기쓰기 회로를 거쳐서 CPU(911)에 의해 메인메모리나 캐시메모리에 판독되어, 추출ㆍ검색ㆍ참조ㆍ비교ㆍ연산ㆍ계산ㆍ처리ㆍ출력ㆍ인쇄ㆍ표시 등의 CPU(911)의 동작에 이용된다. 추출ㆍ검색ㆍ참조ㆍ비교ㆍ연산ㆍ계산ㆍ처리ㆍ출력ㆍ인쇄ㆍ표시의 CPU(911)의 동작 중, 정보나 데이터나 신호치나 변수치나 파라미터는, 메인메모리나 캐시메모리나 버퍼메모리에 일시적으로 기억된다.
또한, 상기의 설명에 있어서의 플로차트의 화살표의 부분은 주로 데이터나 신호의 입출력을 나타내고, 데이터나 신호치는, RAM(914)의 메모리, 그 밖의 광 디스크 등의 기록 매체나 IC 칩에 기록된다. 또한, 데이터나 신호는, 버스(912)나 신호선이나 케이블, 그 밖의 전송 매체나 전파에 의해 온라인 전송된다.
또한, 상기의 설명에 있어서 「~부」로서 설명하는 것은, 「~회로」, 「~장치」, 「~기기」, 「~수단」, 「~기능」이더라도 좋고, 또한, 「~단계」, 「~수순」, 「~처리」이더라도 좋다. 또한, 「~장치」로서 설명하는 것은, 「~회로」, 「~기기」, 「~수단」, 「~기능」이더라도 좋고, 또한, 「~단계」, 「~수순」, 「~처리」이더라도 좋다. 또한, 「~처리」로서 설명하는 것은 「~단계」이더라도 상관없다. 즉, 「~부」로서 설명하는 것은, ROM(913)에 기억된 펌웨어로 실현되어 있더라도 상관없다. 혹은, 소프트웨어만, 혹은, 소자ㆍ디바이스ㆍ기판ㆍ배선 등의 하드웨어만, 혹은, 소프트웨어와 하드웨어의 조합, 또한, 펌웨어와의 조합으로 실시되더라도 상관없다. 펌웨어와 소프트웨어는, 프로그램으로서, ROM(913) 등의 기록 매체에 기억된다. 프로그램은 CPU(911)에 의해 판독되어, CPU(911)에 의해 실행된다. 즉, 프로그램은, 상기에서 말한 「~부」로서 컴퓨터 등을 기능시키는 것이다. 혹은, 상기에서 말한 「~부」의 수순이나 방법을 컴퓨터 등에 실행시키는 것이다.
10 : 암호 처리 시스템 100 :키 생성 장치
110 : 마스터 키 생성부 111 : 공간 생성부
112 : 행렬 생성부 113 : 기저 생성부
114 : 키 생성부 120 : 마스터 키 기억부
130 : 정보 입력부 140 : 복호 키 생성부
141 : 난수 생성부 142 : 키 요소 생성부
150 : 키 배포부 200 : 암호화 장치
210 : 공개 파라미터 취득부 220 : 정보 입력부
230 : 암호문 생성부 231 : 난수 생성부
232 : 암호 요소 생성부 240 : 데이터 송신부
300 : 복호 장치 310 : 복호 키 취득부
320 : 데이터 수신부 330 : 페어링 연산부
340 메시지 계산부
110 : 마스터 키 생성부 111 : 공간 생성부
112 : 행렬 생성부 113 : 기저 생성부
114 : 키 생성부 120 : 마스터 키 기억부
130 : 정보 입력부 140 : 복호 키 생성부
141 : 난수 생성부 142 : 키 요소 생성부
150 : 키 배포부 200 : 암호화 장치
210 : 공개 파라미터 취득부 220 : 정보 입력부
230 : 암호문 생성부 231 : 난수 생성부
232 : 암호 요소 생성부 240 : 데이터 송신부
300 : 복호 장치 310 : 복호 키 취득부
320 : 데이터 수신부 330 : 페어링 연산부
340 메시지 계산부
Claims (15)
- 각 행 각 열에 적어도 1개는 상수치 0 이외의 값을 갖는 희소 행렬을 이용하여 소정의 기저 A를 변형하여 생성된 기저 B와 기저 B*를 이용하여, 암호 처리를 행하는 암호 처리 시스템으로서,
상기 기저 B에 있어서의 벡터로서, 소정의 정보를 삽입한 벡터를 암호 벡터로서 생성하는 암호화 장치와,
상기 기저 B*에 있어서의 소정의 벡터를 키 벡터로 하여, 상기 암호화 장치가 생성한 암호 벡터와 상기 키 벡터에 대하여, 페어링 연산을 행하여 상기 암호 벡터를 복호하여 상기 소정의 정보에 관한 정보를 추출하는 복호 장치
를 구비하는 것을 특징으로 하는 암호 처리 시스템.
- 제 1 항에 있어서,
상기 희소 행렬은, n행 n열(n은 2 이상의 정수)의 행렬이고, 상수치 0 이외의 값으로서, 적어도 n개의 다른 값을 갖는 것을 특징으로 하는 암호 처리 시스템.
- 제 2 항에 있어서,
상기 희소 행렬은, 적어도 1개의 열에 있어서의 모든 성분이 상수치 0 이외의 값인 것을 특징으로 하는 암호 처리 시스템.
- 제 3 항에 있어서,
상기 희소 행렬은, 대각 성분과, 적어도 1개의 열에 있어서의 모든 성분이 상수치 0 이외의 값인 것을 특징으로 하는 암호 처리 시스템.
- 제 4 항에 있어서,
상기 희소 행렬은, 모든 성분이 상수치 0 이외의 값인 열을 제외하고, 대각 성분의 값이 동일한 것을 특징으로 하는 암호 처리 시스템.
- 제 1 항에 있어서,
상기 암호 처리 시스템은, 1행 1열로부터 n행 n열까지의 값이 수학식 2에 나타내는 희소 행렬인 N행 N열(N은 n 이상의 정수)의 선형 변환 X를 이용하여, 수학식 3에 나타내는 바와 같이 상기 기저 A로부터 생성된 기저 B와 기저 B*를 이용하고,
상기 암호화 장치는, 수학식 4를 포함하는 벡터를 상기 암호 벡터로서 생성하고,
상기 복호 장치는, 수학식 5를 포함하는 벡터 k*를 상기 키 벡터로 하여, 상기 암호 벡터를 복호하는
것을 특징으로 하는 암호 처리 시스템.
[수학식 2]
[수학식 3]
[수학식 4]
[수학식 5]
- 제 1 항에 있어서,
상기 암호 처리 시스템은, 1행 1열로부터 n행 n열까지의 값이 수학식 14에 나타내는 희소 행렬인 N행 N열(N은 n 이상의 정수)의 선형 변환 X를 이용하여, 수학식 15에 나타내는 바와 같이 상기 기저 A로부터 생성된 기저 B와 기저 B*를 이용하고,
상기 암호화 장치는, 수학식 16을 포함하는 벡터 c를 상기 암호 벡터로서 생성하고,
상기 복호 장치는, 수학식 17을 포함하는 벡터를 상기 키 벡터로 하여, 상기 암호 벡터를 복호하는
것을 특징으로 하는 암호 처리 시스템.
[수학식 14]
[수학식 15]
[수학식 16]
[수학식 17]
- 각 행 각 열에 적어도 1개는 0 이외의 값을 갖는 희소 행렬을 이용하여 소정의 기저 A를 변형하여 생성된 기저 B와 기저 B*를 이용하여, 암호 처리를 행하는 암호 처리 방법으로서,
암호화 장치가, 상기 기저 B에 있어서의 벡터로서, 소정의 정보를 삽입한 벡터를 암호 벡터로서 생성하고,
복호 장치가, 상기 기저 B*에 있어서의 소정의 벡터를 키 벡터로 하여, 상기 암호화 장치가 생성한 암호 벡터와 상기 키 벡터에 대하여, 페어링 연산을 행하여 상기 암호 벡터를 복호하여 상기 소정의 정보에 관한 정보를 추출하는
것을 특징으로 하는 암호 처리 방법.
- 각 행 각 열에 적어도 1개는 0 이외의 값을 갖는 희소 행렬을 이용하여 소정의 기저 A를 변형하여 생성된 기저 B와 기저 B*를 이용하여, 암호 처리를 행하는 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체로서,
상기 기저 B에 있어서의 벡터로서, 소정의 정보를 삽입한 벡터를 암호 벡터로서 생성하는 암호화 처리와,
상기 기저 B*에 있어서의 소정의 벡터를 키 벡터로 하여, 상기 암호화 처리에서 생성한 암호 벡터와 상기 키 벡터에 대하여, 페어링 연산을 행하여 상기 암호 벡터를 복호하여 상기 소정의 정보에 관한 정보를 추출하는 복호 처리
를 컴퓨터에 실행시키는 것을 특징으로 하는 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
- 공개 키 암호에 있어서의 공개 파라미터와 비밀 키를 생성하는 키 생성 장치로서,
각 행 각 열에 적어도 1개는 0 이외의 값을 갖는 희소 행렬을 포함하는 선형 변환 X를 생성하는 행렬 생성부와,
상기 행렬 생성부가 생성한 선형 변환 X를 이용하여, 소정의 기저 A로부터 수학식 26에 나타내는 바와 같이 기저 D와 기저 D*를 생성하는 기저 생성부와,
상기 기저 생성부가 생성한 상기 기저 D와 상기 기저 D*의 한쪽의 기저의 적어도 일부의 기저 벡터를 공개 파라미터로 하고, 다른 쪽의 기저의 적어도 일부의 기저 벡터를 비밀 키로서 생성하는 마스터 키 생성부
를 구비하는 것을 특징으로 하는 키 생성 장치.
[수학식 26]
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPJP-P-2011-252244 | 2011-11-18 | ||
JP2011252244A JP5677273B2 (ja) | 2011-11-18 | 2011-11-18 | 暗号処理システム、暗号処理方法、暗号処理プログラム及び鍵生成装置 |
PCT/JP2012/079210 WO2013073488A1 (ja) | 2011-11-18 | 2012-11-12 | 暗号処理システム、暗号処理方法、暗号処理プログラム及び鍵生成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140093281A KR20140093281A (ko) | 2014-07-25 |
KR101581605B1 true KR101581605B1 (ko) | 2015-12-30 |
Family
ID=48429548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147016602A KR101581605B1 (ko) | 2011-11-18 | 2012-11-12 | 암호 처리 시스템, 암호 처리 방법, 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 및 키 생성 장치 |
Country Status (8)
Country | Link |
---|---|
US (1) | US9203622B2 (ko) |
EP (1) | EP2782087B1 (ko) |
JP (1) | JP5677273B2 (ko) |
KR (1) | KR101581605B1 (ko) |
CN (1) | CN103946910B (ko) |
ES (1) | ES2613811T3 (ko) |
IN (1) | IN2014CN04110A (ko) |
WO (1) | WO2013073488A1 (ko) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5855234B2 (ja) * | 2012-03-27 | 2016-02-09 | 三菱電機株式会社 | デジタル放送受信装置及びデジタル放送受信方法 |
JP6275536B2 (ja) * | 2014-04-16 | 2018-02-07 | 日本放送協会 | 限定受信システム、ならびに、コンテンツ配信装置、コンテンツ受信装置およびそれらのプログラム |
US10050782B2 (en) * | 2014-12-05 | 2018-08-14 | Mitsubishi Electric Corporation | Decryption condition addition device, cryptographic system, and computer readable medium |
JP6266130B2 (ja) * | 2014-12-05 | 2018-01-24 | 三菱電機株式会社 | 暗号システム、マスター鍵更新装置及びマスター鍵更新プログラム |
US9516000B2 (en) * | 2015-03-27 | 2016-12-06 | International Business Machines Corporation | Runtime instantiation of broadcast encryption schemes |
US10205713B2 (en) * | 2017-04-05 | 2019-02-12 | Fujitsu Limited | Private and mutually authenticated key exchange |
JP6971917B2 (ja) * | 2018-06-11 | 2021-11-24 | 三菱電機株式会社 | 復号装置、暗号化装置及び暗号システム |
JP7024666B2 (ja) * | 2018-08-28 | 2022-02-24 | 日本電信電話株式会社 | Idベースハッシュ証明系構成装置、idベース暗号装置及びプログラム |
US12099997B1 (en) | 2020-01-31 | 2024-09-24 | Steven Mark Hoffberg | Tokenized fungible liabilities |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011141472A (ja) | 2010-01-08 | 2011-07-21 | Mitsubishi Electric Corp | 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム |
JP2011232475A (ja) | 2010-04-27 | 2011-11-17 | Mitsubishi Electric Corp | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4354609B2 (ja) * | 1999-07-16 | 2009-10-28 | パナソニック株式会社 | 有限体上の連立方程式求解装置及び逆元演算装置 |
JP2003152703A (ja) * | 2001-11-12 | 2003-05-23 | Victor Co Of Japan Ltd | 暗号化装置、暗号化方法、復号化装置、復号化方法、暗号化復号化装置及び暗号化復号化方法 |
KR100604828B1 (ko) * | 2004-01-09 | 2006-07-28 | 삼성전자주식회사 | 펌웨어 암호화 방법 및 해독 방법과 그 처리 장치 |
US7634085B1 (en) | 2005-03-25 | 2009-12-15 | Voltage Security, Inc. | Identity-based-encryption system with partial attribute matching |
JP2007299088A (ja) * | 2006-04-28 | 2007-11-15 | Fujitsu Ltd | データ保護システム、方法及びプログラム |
US20090080658A1 (en) | 2007-07-13 | 2009-03-26 | Brent Waters | Method and apparatus for encrypting data for fine-grained access control |
CN101971186B (zh) * | 2008-04-10 | 2013-06-12 | 日本电气株式会社 | 信息泄露防止装置和方法及其程序 |
CN101329869B (zh) * | 2008-07-31 | 2012-04-11 | 中国电信股份有限公司 | 适用矢量量化的语音编码的声源加密的系统和方法 |
JP5349261B2 (ja) * | 2009-04-23 | 2013-11-20 | 三菱電機株式会社 | 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム |
EP2424156B1 (en) * | 2009-04-24 | 2013-11-20 | Nippon Telegraph And Telephone Corporation | Cryptographic system, cryptographic communication method, encryption apparatus, key generation apparatus, decryption apparatus, content server, program and storage medium |
ES2512115T3 (es) * | 2009-04-24 | 2014-10-23 | Nippon Telegraph And Telephone Corporation | Dispositivo de generación de información, método de generación de información, y programa de generación de información y medio de almacenamiento del mismo |
JP5269210B2 (ja) * | 2010-01-15 | 2013-08-21 | 三菱電機株式会社 | 秘匿検索システム及び暗号処理システム |
EP2582086B1 (en) * | 2010-07-23 | 2016-03-23 | Nippon Telegraph and Telephone Corporation | Cryptographic system, cryptographic communication method, encryption apparatus, key generation apparatus, decryption apparatus, content server, program, and storage medium |
US8977579B2 (en) * | 2011-10-11 | 2015-03-10 | Nec Laboratories America, Inc. | Latent factor dependency structure determination |
-
2011
- 2011-11-18 JP JP2011252244A patent/JP5677273B2/ja active Active
-
2012
- 2012-11-12 IN IN4110CHN2014 patent/IN2014CN04110A/en unknown
- 2012-11-12 US US14/355,699 patent/US9203622B2/en active Active
- 2012-11-12 WO PCT/JP2012/079210 patent/WO2013073488A1/ja active Application Filing
- 2012-11-12 ES ES12850218.4T patent/ES2613811T3/es active Active
- 2012-11-12 CN CN201280056310.4A patent/CN103946910B/zh active Active
- 2012-11-12 KR KR1020147016602A patent/KR101581605B1/ko active IP Right Grant
- 2012-11-12 EP EP12850218.4A patent/EP2782087B1/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011141472A (ja) | 2010-01-08 | 2011-07-21 | Mitsubishi Electric Corp | 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム |
JP2011232475A (ja) | 2010-04-27 | 2011-11-17 | Mitsubishi Electric Corp | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2013073488A1 (ja) | 2013-05-23 |
ES2613811T3 (es) | 2017-05-26 |
EP2782087A4 (en) | 2015-09-09 |
JP2013109048A (ja) | 2013-06-06 |
CN103946910A (zh) | 2014-07-23 |
EP2782087B1 (en) | 2016-12-28 |
US9203622B2 (en) | 2015-12-01 |
CN103946910B (zh) | 2017-05-31 |
EP2782087A1 (en) | 2014-09-24 |
IN2014CN04110A (ko) | 2015-07-10 |
KR20140093281A (ko) | 2014-07-25 |
US20140298028A1 (en) | 2014-10-02 |
JP5677273B2 (ja) | 2015-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101581605B1 (ko) | 암호 처리 시스템, 암호 처리 방법, 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 및 키 생성 장치 | |
KR101386294B1 (ko) | 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 서명 처리 시스템, 서명 장치 및 검증 장치 | |
KR101359200B1 (ko) | 암호 처리 시스템 | |
KR101443553B1 (ko) | 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 | |
KR101393899B1 (ko) | 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 | |
KR101336349B1 (ko) | 암호 처리 시스템, 키 생성 장치, 키 위양 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 | |
KR101588992B1 (ko) | 암호 시스템, 암호 방법 및 암호 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 | |
KR101310439B1 (ko) | 암호 처리 시스템, 키 생성 장치, 키 위양 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 | |
KR101606317B1 (ko) | 암호 시스템, 암호 방법, 암호 프로그램을 기록한 컴퓨터 판독가능한 기록 매체 및 복호 장치 | |
JP5921410B2 (ja) | 暗号システム | |
WO2012108100A1 (ja) | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、鍵委譲装置、暗号処理方法及び暗号処理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20181219 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20191217 Year of fee payment: 5 |