KR20140093281A - 암호 처리 시스템, 암호 처리 방법, 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 및 키 생성 장치 - Google Patents

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

Info

Publication number
KR20140093281A
KR20140093281A KR1020147016602A KR20147016602A KR20140093281A KR 20140093281 A KR20140093281 A KR 20140093281A KR 1020147016602 A KR1020147016602 A KR 1020147016602A KR 20147016602 A KR20147016602 A KR 20147016602A KR 20140093281 A KR20140093281 A KR 20140093281A
Authority
KR
South Korea
Prior art keywords
vector
quot
encryption
equation
base
Prior art date
Application number
KR1020147016602A
Other languages
English (en)
Other versions
KR101581605B1 (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 KR20140093281A publication Critical patent/KR20140093281A/ko
Application granted granted Critical
Publication of KR101581605B1 publication Critical patent/KR101581605B1/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
    • 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/0822Key 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • H04L2209/601Broadcast 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

암호 처리 시스템, 암호 처리 방법, 암호 처리 프로그램 및 키 생성 장치{ENCRYPTION PROCESSING SYSTEM, ENCRYPTION PROCESSING METHOD, ENCRYPTION PROCESSING PROGRAM AND KEY GENERATOR}
본 발명은, 내적 암호(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-4에서 설명한 비 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]
Figure pct00001
A가 집합일 때, 수학식 102는, A로부터 y를 균등하게 선택하는 것을 나타낸다. 다시 말해, 수학식 102에 있어서, y는 균등 난수이다.
[수학식 102]
Figure pct00002
벡터 표기는, 위수 q의 유한체 Fq에 있어서의 벡터 표시를 나타낸다. 예컨대, 수학식 103이다.
[수학식 103]
Figure pct00003
수학식 104는, 수학식 105에 나타내는 2개의 벡터 x와 v의 수학식 106에 나타내는 내적을 나타낸다.
[수학식 104]
Figure pct00004
[수학식 105]
Figure pct00005
[수학식 106]
Figure pct00006
XT는, 행렬 X의 전치 행렬을 나타낸다.
bi(i=1, …, n)가 공간 V의 벡터의 요소일 때, 다시 말해, 수학식 107일 때, 수학식 108은, 수학식 109에 의해 생성되는 부분 공간을 나타낸다.
[수학식 107]
Figure pct00007
[수학식 108]
Figure pct00008
[수학식 109]
Figure pct00009
수학식 110에 나타내는 기저 B와 기저 B*에 대하여, 수학식 111이다.
[수학식 110]
Figure pct00010
[수학식 111]
Figure pct00011
j=1, …, n의 n개의 벡터에 대하여, e j는, 수학식 112에 나타내는 표준 기저 벡터를 나타낸다.
[수학식 112]
Figure pct00012
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]
Figure pct00013
[수학식 114]
Figure pct00014
연산 (1) : 비퇴화 쌍선형 페어링
공간 V에 있어서의 페어링은, 수학식 115에 의해 정의된다.
[수학식 115]
Figure pct00015
이것은, 비퇴화 쌍선형이다. 다시 말해, 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]
Figure pct00016
[수학식 117]
Figure pct00017
여기서, 선형 변환 φ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]
Figure pct00018
여기서, μ, μ'1, …, μ'n은 유한체 Fq로부터 균등하게 선택된 값이고, 선형 변환 X에 있어서의 공백은 상수치 0∈Fq인 것을 나타낸다. 상수치 0이란, 값이 0으로 고정되어 있는 것을 의미한다. 다시 말해, μ, μ'1, …, μ'n은 0도 취할 수 있는 균등 난수인 것에 비하여, 선형 변환 X에 있어서의 공백은 값이 0으로 고정되어 있다. 또한, H(n, Fq)란, 유한체 Fq를 요소로 하는 n차원의 행렬의 집합을 의미한다.
시스템 파라미터 또는 DPVS의 공개 기저는, 수학식 119에 나타내는 기저 B이다.
[수학식 119]
Figure pct00019
x:=(x1, …, xn)에 관련된 암호문을, 수학식 120에 나타내는 암호문 c1로 한다.
[수학식 120]
Figure pct00020
여기서, ω는 유한체 Fq로부터 균등하게 선택된 값이다.
그러면, 암호문 c1은, 수학식 121에 나타내는 2개의 그룹의 요소 C1, C2와, 벡터 x로 압축할 수 있다.
[수학식 121]
Figure pct00021
암호문 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]
Figure pct00022
암호문 c1은, (x1C1, …, xn -1C1, C2)∈Gn으로서 나타내어지고, 비밀 키 k* 1은, (K1, …, Kn)의 n조로 분해된다. 그 때문에, e(c1, k* 1)의 값은, 수학식 123이다.
[수학식 123]
Figure pct00023
다시 말해, e(c1, k* 1)을 계산하기 위해서는, G에 있어서의 n-1개의 스칼라 승법과, 2개의 페어링 연산으로 충분하다. 즉, 복호에는, 적은 수(상수)의 페어링 연산만이 필요하게 된다. 일반적으로, 페어링 연산은, 처리 시간이 걸리는 연산이기 때문에, 페어링 연산의 수를 줄이는 것에 의해, 처리 전체로서의 처리 시간을 짧게 할 수 있다.
또, 간략화한 비 0 내적 암호 방식에서는, 암호문 c1은 벡터 x가 설정되는 기저 벡터(실제의 부호화부)만을 구비하고, 비밀 키 k* 1은 벡터 v가 설정되는 기저 벡터(실제의 부호화부)만을 구비했다.
이하의 실시의 형태에서 설명하는 비 0 내적 암호 방식에서는, 안전성을 높이기 위해, 암호문 c1과 비밀 키 k* 1에, 실제의 부호화부에 더하여, 비닉부와, 비밀 키 랜덤화부와, 암호문 랜덤화부를 위한 기저 벡터를 더한다.
그 때문에, 선형 변환 X를 수학식 124와 같이 확장한다.
[수학식 124]
Figure pct00024
여기서, 각 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]
Figure pct00025
또, 수학식 125에 있어서의 (χ0, i, j)i, j=1, …, 5는, 행렬 χ0, i, j의 첨자 i, j에 관한 행렬이라고 하는 의미이다.
또한, 행렬 생성부(112)는, 수학식 126에 나타내는 바와 같이, 처리 장치에 의해 선형 변환 X1을 생성한다.
[수학식 126]
Figure pct00026
수학식 126에 있어서의 L(N, Fq)는, 수학식 127에 나타내는 바와 같다.
[수학식 127]
Figure pct00027
또, 이하, {μ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]
Figure pct00028
또한, 기저 생성부(113)는, 수학식 129에 나타내는 바와 같이, 처리 장치에 의해 기저 B* 0과 기저 B* 1을 생성한다.
[수학식 129]
Figure pct00029
(S104 : 기저 B^ 생성 단계)
키 생성부(114)는, 수학식 130에 나타내는 바와 같이, 처리 장치에 의해 기저 B^ 0과, 기저 B^* 0과, 기저 B^* 1을 생성한다.
[수학식 130]
Figure pct00030
(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]
Figure pct00031
[수학식 132]
Figure pct00032
또, 공개 파라미터는, 예컨대, 네트워크를 통해서 공개되고, 암호화 장치(200)나 복호 장치(300)가 취득 가능한 상태가 된다.
S103에서는, 기저 B1을 생성하지 않고, 대신에 변수 Bi , j를 생성했다. 기저 B1을 생성하는 것이라면, 수학식 133과 같이 된다.
[수학식 133]
Figure pct00033
수학식 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]
Figure pct00034
(S113 : 요소 k* 0 생성 단계)
키 요소 생성부(142)는, 수학식 135에 나타내는 바와 같이, 처리 장치에 의해 복호 키 skv 의 요소인 요소 k* 0을 생성한다.
[수학식 135]
Figure pct00035
또, 상술한 바와 같이, 수학식 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]
Figure pct00036
수학식 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]
Figure pct00037
암호화 장치(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]
Figure pct00038
(S124 : 요소 c0 생성 단계)
암호 요소 생성부(232)는, 수학식 139에 나타내는 바와 같이, 처리 장치에 의해 암호문 ctx 의 요소인 요소 c0을 생성한다.
[수학식 139]
Figure pct00039
수학식 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]
Figure pct00040
(S126 : 요소 c3 생성 단계)
암호 요소 생성부(232)는, 수학식 141에 나타내는 바와 같이, 처리 장치에 의해 암호문 ctx 의 요소인 요소 c3을 생성한다.
[수학식 141]
Figure pct00041
(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]
Figure pct00042
복호 장치(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]
Figure pct00043
여기서, 요소 k* 1은, (K* 1, …, K* 4n)∈G4n의 4n조로 분해된다.
(S134 : 페어링 연산 단계)
페어링 연산부(330)는, 수학식 144에 나타내는 바와 같이, 처리 장치에 의해 페어링 연산을 실행하여, 값 F를 계산한다.
[수학식 144]
Figure pct00044
(S135 : 메시지 계산 단계)
메시지 계산부(340)는, 수학식 145에 나타내는 바와 같이, 처리 장치에 의해 메시지 m'를 계산한다.
[수학식 145]
Figure pct00045
다시 말해, S131로부터 S135에 있어서, 복호 장치(300)는, 수학식 146에 나타내는 Dec 알고리즘을 실행하여, 메시지 m'를 계산한다.
[수학식 146]
Figure pct00046
또, 수학식 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]
Figure pct00047
수학식 148에 나타내는 바와 같이, Dec' 알고리즘을 이용한 경우, xㆍv≠0이면, F=gζ T가 얻어진다. 그 때문에, c3=gζ Tm을 F로 나누는 것에 의해, 메시지 m'(=m)가 얻어진다.
[수학식 148]
Figure pct00048
실시의 형태 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]
Figure pct00049
또한, 기저 생성부(113)는, 실시의 형태 2에 있어서의 기저 B* 0과 기저 B* 1과 마찬가지로, 수학식 150에 나타내는 바와 같이, 처리 장치에 의해 기저 D* 0과 기저 D* 1을 생성한다.
[수학식 150]
Figure pct00050
그리고, 기저 생성부(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]
Figure pct00051
(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]
Figure pct00052
[수학식 153]
Figure pct00053
또, 공개 파라미터는, 예컨대, 네트워크를 통해서 공개되고, 암호화 장치(200)나 복호 장치(300)가 취득 가능한 상태가 된다.
도 11에 근거하여, KeyGen 알고리즘의 처리에 대하여 설명한다.
S211로부터 S213까지의 처리는, 도 7에 나타내는 S111로부터 S113까지의 처리와 동일하다.
(S214 : 요소 K* 생성 단계)
키 요소 생성부(142)는, 수학식 154에 나타내는 바와 같이, 처리 장치에 의해 복호 키 skv 의 요소인 요소 K* 1, j와 요소 K* 2, j를 생성한다.
[수학식 154]
Figure pct00054
(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]
Figure pct00055
암호화 장치(200)에 대하여 설명한다.
도 12에 근거하여, Enc 알고리즘의 처리에 대하여 설명한다.
S221로부터 S224까지의 처리는, 도 8에 나타내는 S121로부터 S124까지의 처리와 동일하다.
(S225 : 요소 c1 생성 단계)
암호 요소 생성부(232)는, 수학식 156에 나타내는 바와 같이, 처리 장치에 의해 암호문 ctx 의 요소인 요소 c1을 생성한다.
[수학식 156]
Figure pct00056
수학식 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]
Figure pct00057
복호 장치(300)에 대하여 설명한다.
도 13에 근거하여, Dec 알고리즘의 처리에 대하여 설명한다.
S231로부터 S232까지의 처리는, 도 9에 나타내는 S131로부터 S132까지의 처리와 동일하다.
(S233 : 값 Dj 계산 단계)
페어링 연산부(330)는, 수학식 158에 나타내는 바와 같이, 처리 장치에 의해 값 Dj를 계산한다.
[수학식 158]
Figure pct00058
여기서, 요소 c1은, (C1, …, C4n)∈G4n의 4n조로 분해된다.
(S234 : 페어링 연산 단계)
페어링 연산부(330)는, 수학식 159에 나타내는 바와 같이, 처리 장치에 의해 페어링 연산을 실행하여 , 값 F를 계산한다.
[수학식 159]
Figure pct00059
S235의 처리는, 도 9에 나타내는 S135의 처리와 동일하다.
다시 말해, S231로부터 S235에 있어서, 복호 장치(300)는, 수학식 160에 나타내는 Dec 알고리즘을 실행하여, 메시지 m'를 계산한다.
[수학식 160]
Figure pct00060
또, 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]
Figure pct00061
실시의 형태 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]
Figure pct00062
수학식 162에 있어서의 L'(N, Fq)는, 수학식 163에 나타내는 바와 같다.
[수학식 163]
Figure pct00063
또, 이하, {χ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]
Figure pct00064
또한, 기저 생성부(113)는, 수학식 165에 나타내는 바와 같이, 처리 장치에 의해 기저 B*를 생성한다.
[수학식 165]
Figure pct00065
(S304 : 기저 B^ 생성 단계)
키 생성부(114)는, 수학식 166에 나타내는 바와 같이, 처리 장치에 의해 기저 B^*를 생성한다.
[수학식 166]
Figure pct00066
(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]
Figure pct00067
[수학식 168]
Figure pct00068
또, 공개 파라미터는, 예컨대, 네트워크를 통해서 공개되고, 암호화 장치(200)나 복호 장치(300)가 취득 가능한 상태가 된다.
도 15에 근거하여, KeyGen 알고리즘의 처리에 대하여 설명한다.
S311의 처리는, 도 7에 나타내는 S111의 처리와 동일하다.
(S312 : 난수 생성 단계)
난수 생성부(141)는, 수학식 169에 나타내는 바와 같이, 처리 장치에 의해 난수를 생성한다.
[수학식 169]
Figure pct00069
(S313 : 요소 k* 생성 단계)
키 요소 생성부(142)는, 수학식 170에 나타내는 바와 같이, 처리 장치에 의해 복호 키 skv 의 요소인 요소 k*를 생성한다.
[수학식 170]
Figure pct00070
수학식 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]
Figure pct00071
암호화 장치(200)에 대하여 설명한다.
도 16에 근거하여, Enc 알고리즘의 처리에 대하여 설명한다.
S321로부터 S322까지의 처리는, 도 8에 나타내는 S121로부터 S122까지의 처리와 동일하다.
(S323 : 난수 생성 단계)
난수 생성부(231)는, 수학식 172에 나타내는 바와 같이, 처리 장치에 의해 난수를 생성한다.
[수학식 172]
Figure pct00072
(S324 : 요소 C 생성 단계)
암호 요소 생성부(232)는, 수학식 173에 나타내는 바와 같이, 처리 장치에 의해 암호문 ctx 의 요소인 요소 C0과 요소 C1 , j와 요소 C2 , j를 생성한다.
[수학식 173]
Figure pct00073
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]
Figure pct00074
복호 장치(300)에 대하여 설명한다.
도 17에 근거하여, Dec 알고리즘의 처리에 대하여 설명한다.
S331로부터 S332까지의 처리는, 도 9에 나타내는 S131로부터 S132까지의 처리와 동일하다.
(S333 : 값 D* j 계산 단계)
페어링 연산부(330)는, 수학식 175에 나타내는 바와 같이, 처리 장치에 의해 값 D* j를 계산한다.
[수학식 175]
Figure pct00075
여기서, 요소 k*는, (K* 0, …, K* 4n)∈G4n +1의 (4n+1)조로 분해된다.
(S334 : 페어링 연산 단계)
페어링 연산부(330)는, 수학식 176에 나타내는 바와 같이, 처리 장치에 의해 페어링 연산을 실행하여, 값 F를 계산한다.
[수학식 176]
Figure pct00076
S335의 처리는, 도 9에 나타내는 S135의 처리와 동일하다.
다시 말해, S331로부터 S335에 있어서, 복호 장치(300)는, 수학식 177에 나타내는 Dec 알고리즘을 실행하여, 메시지 m'를 계산한다.
[수학식 177]
Figure pct00077
또, 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]
Figure pct00078
수학식 179에 나타내는 바와 같이, Dec' 알고리즘을 이용한 경우, xㆍv=0이면, F=gζ T가 얻어진다. 그 때문에, c3=gζ Tm을 F로 나누는 것에 의해, 메시지 m'(=m)가 얻어진다.
[수학식 179]
Figure pct00079
실시의 형태 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]
Figure pct00080
또한, 기저 생성부(113)는, 실시의 형태 4에 있어서의 기저 B*와 마찬가지로, 수학식 181에 나타내는 바와 같이, 처리 장치에 의해 기저 D*를 생성한다.
[수학식 181]
Figure pct00081
그리고, 기저 생성부(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]
Figure pct00082
(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]
Figure pct00083
[수학식 184]
Figure pct00084
또, 공개 파라미터는, 예컨대, 네트워크를 통해서 공개되고, 암호화 장치(200)나 복호 장치(300)가 취득 가능한 상태가 된다.
도 19에 근거하여, KeyGen 알고리즘의 처리에 대하여 설명한다.
S411로부터 S412까지의 처리는, 도 15에 나타내는 S311로부터 S312까지의 처리와 동일하다.
(S413 : 요소 K* 생성 단계)
키 요소 생성부(142)는, 수학식 185에 나타내는 바와 같이, 처리 장치에 의해 복호 키 skv 의 요소인 요소 K* 0과 요소 K* 1, j와 요소 K* 2, j를 생성한다.
[수학식 185]
Figure pct00085
(S414 : 키 배포 단계)
키 배포부(150)는, S411에서 입력한 벡터 v와, S313에서 생성한 요소 K* 0, K* 1, j, K* 2, j를 요소로 하는 복호 키 skv 를, 예컨대 통신 장치에 의해 네트워크를 통해서 비밀리에 복호 장치(300)에 배포한다. 물론, 복호 키 skv 는, 다른 방법에 의해 복호 장치(300)에 배포되더라도 좋다.
다시 말해, S411로부터 S413에 있어서, 키 생성 장치(100)는, 수학식 186에 나타내는 KeyGen 알고리즘을 실행하여, 복호 키 skv 를 생성한다. 그리고, S414에 있어서, 키 생성 장치(100)는, 생성된 복호 키 skv 를 복호 장치(300)에 배포한다.
[수학식 186]
Figure pct00086
암호화 장치(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]
Figure pct00088
복호 장치(300)에 대하여 설명한다.
도 21에 근거하여, Dec 알고리즘의 처리에 대하여 설명한다.
S431로부터 S432까지의 처리는, 도 17에 나타내는 S331로부터 S332까지의 처리와 동일하다.
(S433 : 값 Dj 계산 단계)
페어링 연산부(330)는, 수학식 189에 나타내는 바와 같이, 처리 장치에 의해 값 Dj를 계산한다.
[수학식 189]
Figure pct00089
여기서, 요소 c는, (C* 0, …, C* 4n)∈G4n +1의 (4n+1)조로 분해된다.
(S434 : 페어링 연산 단계)
페어링 연산부(330)는, 수학식 190에 나타내는 바와 같이, 처리 장치에 의해 페어링 연산을 실행하여, 값 F를 계산한다.
[수학식 190]
Figure pct00090
S435의 처리는, 도 17에 나타내는 S335의 처리와 동일하다.
다시 말해, S431로부터 S435에 있어서, 복호 장치(300)는, 수학식 191에 나타내는 Dec 알고리즘을 실행하여, 메시지 m'를 계산한다.
[수학식 191]
Figure pct00091
또, 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]
Figure pct00092
실시의 형태 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]
Figure pct00093
함수형 암호의 일종으로서, 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-4에서 설명한 구체적인 암호 방식 이외에도, 비특허 문헌 13, 15, 16, 17 등에서 설명되고 있는 암호 방식에, 상술한 선형 변환 X를 적용함으로써, 공개 파라미터와 비밀 키의 사이즈는 작아진다. 또한, 사용자 키의 생성이나 암호화의 처리의 처리 시간도 짧아진다.
도 22는 실시의 형태 2-4에서 설명한 비 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]
Figure pct00094
이상의 실시의 형태에서 설명한 알고리즘에 있어서의 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 메시지 계산부

Claims (15)

  1. 각 행 각 열에 적어도 1개는 상수치 0 이외의 값을 갖는 희소 행렬을 이용하여 소정의 기저 A를 변형하여 생성된 기저 B와 기저 B*를 이용하여, 암호 처리를 행하는 암호 처리 시스템으로서,
    상기 기저 B에 있어서의 벡터로서, 소정의 정보를 삽입한 벡터를 암호 벡터로서 생성하는 암호화 장치와,
    상기 기저 B*에 있어서의 소정의 벡터를 키 벡터로 하여, 상기 암호화 장치가 생성한 암호 벡터와 상기 키 벡터에 대하여, 페어링 연산을 행하여 상기 암호 벡터를 복호하여 상기 소정의 정보에 관한 정보를 추출하는 복호 장치
    를 구비하는 것을 특징으로 하는 암호 처리 시스템.
  2. 제 1 항에 있어서,
    상기 희소 행렬은, n행 n열(n은 2 이상의 정수)의 행렬이고, 상수치 0 이외의 값으로서, 적어도 n개의 다른 값을 갖는 것을 특징으로 하는 암호 처리 시스템.
  3. 제 2 항에 있어서,
    상기 희소 행렬은, 적어도 1개의 열에 있어서의 모든 성분이 상수치 0 이외의 값인 것을 특징으로 하는 암호 처리 시스템.
  4. 제 3 항에 있어서,
    상기 희소 행렬은, 대각 성분과, 적어도 1개의 열에 있어서의 모든 성분이 상수치 0 이외의 값인 것을 특징으로 하는 암호 처리 시스템.
  5. 제 4 항에 있어서,
    상기 희소 행렬은, 모든 성분이 상수치 0 이외의 값인 열을 제외하고, 대각 성분의 값이 동일한 것을 특징으로 하는 암호 처리 시스템.
  6. 제 5 항에 있어서,
    상기 희소 행렬은, 수학식 1에 나타내는 행렬인 것을 특징으로 하는 암호 처리 시스템.
    [수학식 1]
    Figure pct00095

  7. 제 1 항에 있어서,
    상기 암호 처리 시스템은, 1행 1열로부터 n행 n열까지의 값이 수학식 2에 나타내는 희소 행렬인 N행 N열(N은 n 이상의 정수)의 선형 변환 X를 이용하여, 수학식 3에 나타내는 바와 같이 상기 기저 A로부터 생성된 기저 B와 기저 B*를 이용하고,
    상기 암호화 장치는, 수학식 4를 포함하는 벡터를 상기 암호 벡터로서 생성하고,
    상기 복호 장치는, 수학식 5를 포함하는 벡터 k*를 상기 키 벡터로 하여, 상기 암호 벡터를 복호하는
    것을 특징으로 하는 암호 처리 시스템.
    [수학식 2]
    Figure pct00096

    [수학식 3]
    Figure pct00097

    [수학식 4]
    Figure pct00098

    [수학식 5]
    Figure pct00099

  8. 제 7 항에 있어서,
    상기 수학식 2에 나타내는 희소 행렬의 값 Bi(i=1, …, n-1)의 값은 동일한 값 B이고,
    상기 암호화 장치는, 수학식 6을 포함하는 벡터 C1과 수학식 7을 포함하는 벡터 C2를 포함하는 벡터를 상기 암호 벡터로서 생성하고,
    상기 복호 장치는, 수학식 8에 나타내는 D*를 계산하여, 수학식 9에 나타내는 페어링 연산을 행하는
    것을 특징으로 하는 암호 처리 시스템.
    [수학식 6]
    Figure pct00100

    [수학식 7]
    Figure pct00101

    [수학식 8]
    Figure pct00102

    [수학식 9]
    Figure pct00103

  9. 제 7 항에 있어서,
    상기 수학식 2에 나타내는 희소 행렬의 값 Bi(i=1, …, n-1)의 값은 동일한 값 B이고,
    상기 암호화 장치는, 수학식 10을 포함하는 벡터 C1과 수학식 11을 포함하는 벡터 C2를 포함하는 벡터를 상기 암호 벡터로서 생성하고,
    상기 복호 장치는, 수학식 12에 나타내는 D*를 계산하여, 수학식 13에 나타내는 페어링 연산을 행하는
    것을 특징으로 하는 암호 처리 시스템.
    [수학식 10]
    Figure pct00104

    [수학식 11]
    Figure pct00105

    [수학식 12]
    Figure pct00106

    [수학식 13]
    Figure pct00107

  10. 제 1 항에 있어서,
    상기 암호 처리 시스템은, 1행 1열로부터 n행 n열까지의 값이 수학식 14에 나타내는 희소 행렬인 N행 N열(N은 n 이상의 정수)의 선형 변환 X를 이용하여, 수학식 15에 나타내는 바와 같이 상기 기저 A로부터 생성된 기저 B와 기저 B*를 이용하고,
    상기 암호화 장치는, 수학식 16을 포함하는 벡터 c를 상기 암호 벡터로서 생성하고,
    상기 복호 장치는, 수학식 17을 포함하는 벡터를 상기 키 벡터로 하여, 상기 암호 벡터를 복호하는
    것을 특징으로 하는 암호 처리 시스템.
    [수학식 14]
    Figure pct00108

    [수학식 15]
    Figure pct00109

    [수학식 16]
    Figure pct00110

    [수학식 17]
    Figure pct00111

  11. 제 10 항에 있어서,
    상기 수학식 14에 나타내는 희소 행렬의 값 Bi(i=1, …, n-1)의 값은 동일한 값 B이고,
    상기 복호 장치는, 수학식 18을 포함하는 벡터 K* 1과 수학식 19를 포함하는 벡터 K* 2를 포함하는 벡터를 상기 키 벡터로 하여, 수학식 20에 나타내는 D를 계산하여, 수학식 21에 나타내는 페어링 연산을 행하는
    것을 특징으로 하는 암호 처리 시스템.
    [수학식 18]
    Figure pct00112

    [수학식 19]
    Figure pct00113

    [수학식 20]
    Figure pct00114

    [수학식 21]
    Figure pct00115

  12. 제 10 항에 있어서,
    상기 수학식 14에 나타내는 희소 행렬의 값 Bi(i=1, …, n-1)의 값은 동일한 값 B이고,
    상기 복호 장치는, 수학식 22를 포함하는 벡터 K* 1과 수학식 23을 포함하는 벡터 K* 2를 포함하는 벡터를 상기 키 벡터로 하여, 수학식 24에 나타내는 D를 계산하여, 수학식 25에 나타내는 페어링 연산을 행하는
    것을 특징으로 하는 암호 처리 시스템.
    [수학식 22]
    Figure pct00116

    [수학식 23]
    Figure pct00117

    [수학식 24]
    Figure pct00118

    [수학식 25]
    Figure pct00119

  13. 각 행 각 열에 적어도 1개는 0 이외의 값을 갖는 희소 행렬을 이용하여 소정의 기저 A를 변형하여 생성된 기저 B와 기저 B*를 이용하여, 암호 처리를 행하는 암호 처리 방법으로서,
    암호화 장치가, 상기 기저 B에 있어서의 벡터로서, 소정의 정보를 삽입한 벡터를 암호 벡터로서 생성하고,
    복호 장치가, 상기 기저 B*에 있어서의 소정의 벡터를 키 벡터로 하여, 상기 암호화 장치가 생성한 암호 벡터와 상기 키 벡터에 대하여, 페어링 연산을 행하여 상기 암호 벡터를 복호하여 상기 소정의 정보에 관한 정보를 추출하는
    것을 특징으로 하는 암호 처리 방법.
  14. 각 행 각 열에 적어도 1개는 0 이외의 값을 갖는 희소 행렬을 이용하여 소정의 기저 A를 변형하여 생성된 기저 B와 기저 B*를 이용하여, 암호 처리를 행하는 암호 처리 프로그램으로서,
    상기 기저 B에 있어서의 벡터로서, 소정의 정보를 삽입한 벡터를 암호 벡터로서 생성하는 암호화 처리와,
    상기 기저 B*에 있어서의 소정의 벡터를 키 벡터로 하여, 상기 암호화 처리에서 생성한 암호 벡터와 상기 키 벡터에 대하여, 페어링 연산을 행하여 상기 암호 벡터를 복호하여 상기 소정의 정보에 관한 정보를 추출하는 복호 처리
    를 컴퓨터에 실행시키는 것을 특징으로 하는 암호 처리 프로그램.
  15. 공개 키 암호에 있어서의 공개 파라미터와 비밀 키를 생성하는 키 생성 장치로서,
    각 행 각 열에 적어도 1개는 0 이외의 값을 갖는 희소 행렬을 포함하는 선형 변환 X를 생성하는 행렬 생성부와,
    상기 행렬 생성부가 생성한 선형 변환 X를 이용하여, 소정의 기저 A로부터 수학식 26에 나타내는 바와 같이 기저 D와 기저 D*를 생성하는 기저 생성부와,
    상기 기저 생성부가 생성한 상기 기저 D와 상기 기저 D*의 한쪽의 기저의 적어도 일부의 기저 벡터를 공개 파라미터로 하고, 다른 쪽의 기저의 적어도 일부의 기저 벡터를 비밀 키로서 생성하는 마스터 키 생성부
    를 구비하는 것을 특징으로 하는 키 생성 장치.
    [수학식 26]
    Figure pct00120
KR1020147016602A 2011-11-18 2012-11-12 암호 처리 시스템, 암호 처리 방법, 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 및 키 생성 장치 KR101581605B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011252244A JP5677273B2 (ja) 2011-11-18 2011-11-18 暗号処理システム、暗号処理方法、暗号処理プログラム及び鍵生成装置
JPJP-P-2011-252244 2011-11-18
PCT/JP2012/079210 WO2013073488A1 (ja) 2011-11-18 2012-11-12 暗号処理システム、暗号処理方法、暗号処理プログラム及び鍵生成装置

Publications (2)

Publication Number Publication Date
KR20140093281A true KR20140093281A (ko) 2014-07-25
KR101581605B1 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 (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112013001738B4 (de) * 2012-03-27 2017-04-27 Mitsubishi Electric Corporation Digitale Rundfunkempfänger-Vorrichtung und digitale Rundfunkempfangs-Verfahren
JP6275536B2 (ja) * 2014-04-16 2018-02-07 日本放送協会 限定受信システム、ならびに、コンテンツ配信装置、コンテンツ受信装置およびそれらのプログラム
DE112014007226B4 (de) * 2014-12-05 2023-09-07 Mitsubishi Electric Corporation Entschlüsselungsbedingungs-Hinzufügungsvorrichtung, kryptografisches System und Entschlüsselungsbedingungs-Hinzufügungsprogramm
WO2016088251A1 (ja) * 2014-12-05 2016-06-09 三菱電機株式会社 暗号システム、マスター鍵更新装置及びマスター鍵更新プログラム
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ベース暗号装置及びプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070106369A (ko) * 2006-04-28 2007-11-01 후지쯔 가부시끼가이샤 데이터 보호 시스템, 방법 및 프로그램을 기록한 컴퓨터로판독가능한 기록매체
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 (13)

* Cited by examiner, † Cited by third party
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
US20090080658A1 (en) 2007-07-13 2009-03-26 Brent Waters Method and apparatus for encrypting data for fine-grained access control
US20110016330A1 (en) * 2008-04-10 2011-01-20 Nec Corporation Information leak prevention device, and method and program thereof
CN101329869B (zh) * 2008-07-31 2012-04-11 中国电信股份有限公司 适用矢量量化的语音编码的声源加密的系统和方法
JP5349261B2 (ja) * 2009-04-23 2013-11-20 三菱電機株式会社 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
KR101351787B1 (ko) * 2009-04-24 2014-01-15 니뽄 덴신 덴와 가부시키가이샤 정보 생성 장치, 정보 생성 방법, 및 컴퓨터 판독가능 기록 매체
KR101351789B1 (ko) * 2009-04-24 2014-01-15 니뽄 덴신 덴와 가부시키가이샤 암호 시스템, 암호 통신 방법, 암호화 장치, 키 생성 장치, 복호 장치, 콘텐츠 서버 장치, 프로그램, 기억매체
WO2011086687A1 (ja) * 2010-01-15 2011-07-21 三菱電機株式会社 秘匿検索システム及び暗号処理システム
WO2012011575A1 (ja) * 2010-07-23 2012-01-26 日本電信電話株式会社 暗号システム、暗号通信方法、暗号化装置、鍵生成装置、復号装置、コンテンツサーバ装置、プログラム、記憶媒体
US8977579B2 (en) * 2011-10-11 2015-03-10 Nec Laboratories America, Inc. Latent factor dependency structure determination

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070106369A (ko) * 2006-04-28 2007-11-01 후지쯔 가부시끼가이샤 데이터 보호 시스템, 방법 및 프로그램을 기록한 컴퓨터로판독가능한 기록매체
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
EP2782087A1 (en) 2014-09-24
EP2782087B1 (en) 2016-12-28
CN103946910B (zh) 2017-05-31
IN2014CN04110A (ko) 2015-07-10
EP2782087A4 (en) 2015-09-09
ES2613811T3 (es) 2017-05-26
JP5677273B2 (ja) 2015-02-25
WO2013073488A1 (ja) 2013-05-23
JP2013109048A (ja) 2013-06-06
US20140298028A1 (en) 2014-10-02
CN103946910A (zh) 2014-07-23
US9203622B2 (en) 2015-12-01
KR101581605B1 (ko) 2015-12-30

Similar Documents

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