JP2013109048A - 暗号処理システム、暗号処理方法、暗号処理プログラム及び鍵生成装置 - Google Patents

暗号処理システム、暗号処理方法、暗号処理プログラム及び鍵生成装置 Download PDF

Info

Publication number
JP2013109048A
JP2013109048A JP2011252244A JP2011252244A JP2013109048A JP 2013109048 A JP2013109048 A JP 2013109048A JP 2011252244 A JP2011252244 A JP 2011252244A JP 2011252244 A JP2011252244 A JP 2011252244A JP 2013109048 A JP2013109048 A JP 2013109048A
Authority
JP
Japan
Prior art keywords
vector
encryption
base
key
equation
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2011252244A
Other languages
English (en)
Other versions
JP5677273B2 (ja
Inventor
Katsuyuki Takashima
克幸 高島
Tatsuaki Okamoto
龍明 岡本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Nippon Telegraph and Telephone Corp
Original Assignee
Mitsubishi Electric Corp
Nippon Telegraph and Telephone Corp
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
Priority to JP2011252244A priority Critical patent/JP5677273B2/ja
Application filed by Mitsubishi Electric Corp, Nippon Telegraph and Telephone Corp filed Critical Mitsubishi Electric Corp
Priority to EP12850218.4A priority patent/EP2782087B1/en
Priority to PCT/JP2012/079210 priority patent/WO2013073488A1/ja
Priority to US14/355,699 priority patent/US9203622B2/en
Priority to ES12850218.4T priority patent/ES2613811T3/es
Priority to KR1020147016602A priority patent/KR101581605B1/ko
Priority to CN201280056310.4A priority patent/CN103946910B/zh
Priority to IN4110CHN2014 priority patent/IN2014CN04110A/en
Publication of JP2013109048A publication Critical patent/JP2013109048A/ja
Application granted granted Critical
Publication of JP5677273B2 publication Critical patent/JP5677273B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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における所定のベクトルを鍵ベクトルとして、暗号ベクトルと鍵ベクトルとについてペアリング演算を行い暗号ベクトルを復号する。
【選択図】図1

Description

この発明は、内積暗号(Inner−Product Encryption,IPE)に関するものである。
非特許文献13,16,17には内積暗号についての記載がある。
非特許文献13,16,17に記載された内積暗号では、公開パラメータやマスター秘密鍵は、ベクトル空間の基底で与えられる。
Abdalla,M., Kiltz, E., Neven,G.: Generalized key delegation for hierarchical identity−based encryption. ESORICS’07, LNCS 4734, pp. 139−154. Springer, (2007) 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) 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) 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) 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) Delerablee, C.: Identity−based broadcast encryption with constant size ciphertexts and private keys. In: ASIACRYPT 2007, LNCS, pp. 200−215. Springer−Verlag (2007) 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) 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) 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) 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) 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) Lewko, A., Sahai, A., Waters, B.: Revocation systems with very small private keys, In IEEE Symposium on Security and Privacy 2010 (2010) 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 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) 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) 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) 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 Sahai, A., Waters, B.: Fuzzy identity−based encryption. In: Cramer, R. (ed.) EUROCRYPT 2005. LNCS, vol. 3494, pp. 457−473. Springer Heidelberg (2005) Sakai, R., Furukawa, J.: Identity−based broadcast encryption, IACR ePrint Archive: Report 2007/217 http://eprint.iacr.org/2007/217 (2007). 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とすると、公開パラメータやマスター秘密鍵のサイズはNに比例し、ユーザへ与える秘密鍵の生成や暗号化の処理にNに比例する時間がかかる。
この発明は、公開パラメータやマスター秘密鍵のサイズを小さくするとともに、ユーザへ与える秘密鍵の生成の処理や暗号化の処理にかかる時間を短くすることを目的とする。
この発明に係る暗号処理システムは、
各行各列に少なくとも1つは0以外の値を有する疎行列を用いて所定の基底Aを変形して生成された基底Bと基底Bを利用し、暗号処理を行う暗号処理システムであり、
前記基底Bにおけるベクトルであって、所定の情報を埋め込んだベクトルを暗号ベクトルとして生成する暗号化装置と、
前記基底Bにおける所定のベクトルを鍵ベクトルとして、前記暗号化装置が生成した暗号ベクトルと前記鍵ベクトルとについて、ペアリング演算を行い前記暗号ベクトルを復号して前記所定の情報に関する情報を抽出する復号装置と
を備えることを特徴とする。
この発明に係る暗号処理システムでは、公開パラメータやマスター秘密鍵となる基底Bと基底Bとを生成するために用いる行列に疎行列を用いる。これにより、公開パラメータやマスター秘密鍵のサイズが小さくなるとともに、ユーザへ与える秘密鍵の生成の処理や暗号化の処理にかかる時間が短くなる。
零内積暗号方式と非零内積暗号方式とを実行する暗号処理システム10の構成図。 ランダムな線形変換Xの特別な形式の説明図。 実施の形態2に係る鍵生成装置100の構成図。 実施の形態2に係る暗号化装置200の構成図。 実施の形態2に係る復号装置300の構成図。 実施の形態2に係るSetupアルゴリズムの処理を示すフローチャート。 実施の形態2に係るKeyGenアルゴリズムの処理を示すフローチャート。 実施の形態2に係るEncアルゴリズムの処理を示すフローチャート。 実施の形態2に係るDecアルゴリズムの処理を示すフローチャート。 実施の形態3に係るSetupアルゴリズムの処理を示すフローチャート。 実施の形態3に係るKeyGenアルゴリズムの処理を示すフローチャート。 実施の形態3に係るEncアルゴリズムの処理を示すフローチャート。 実施の形態3に係るDecアルゴリズムの処理を示すフローチャート。 実施の形態4に係るSetupアルゴリズムの処理を示すフローチャート。 実施の形態4に係るKeyGenアルゴリズムの処理を示すフローチャート。 実施の形態4に係るEncアルゴリズムの処理を示すフローチャート。 実施の形態4に係るDecアルゴリズムの処理を示すフローチャート。 実施の形態5に係るSetupアルゴリズムの処理を示すフローチャート。 実施の形態5に係るKeyGenアルゴリズムの処理を示すフローチャート。 実施の形態5に係るEncアルゴリズムの処理を示すフローチャート。 実施の形態5に係るDecアルゴリズムの処理を示すフローチャート。 実施の形態2−4で説明した非零内積暗号方式及び零内積暗号方式と、非特許文献2に記載された非零内積暗号方式及び零内積暗号方式とを比較した図。 鍵生成装置100、暗号化装置200、復号装置300、鍵委譲装置400のハードウェア構成の一例を示す図。
以下、図に基づき、発明の実施の形態を説明する。
以下の説明において、処理装置は後述するCPU911等である。記憶装置は後述するROM913、RAM914、磁気ディスク920等である。通信装置は後述する通信ボード915等である。入力装置は後述するキーボード902、通信ボード915等である。出力装置は後述するRAM914、磁気ディスク920、通信ボード915、LCD901等である。つまり、処理装置、記憶装置、通信装置、入力装置、出力装置はハードウェアである。
以下の説明における記法について説明する。
Aがランダムな変数または分布であるとき、数101は、Aの分布に従いAからyをランダムに選択することを表す。つまり、数101において、yは乱数である。
Figure 2013109048
Aが集合であるとき、数102は、Aからyを一様に選択することを表す。つまり、数102において、yは一様乱数である。
Figure 2013109048
ベクトル表記は、位数qの有限体Fにおけるベクトル表示を表す。例えば、数103である。
Figure 2013109048
数104は、数105に示す2つのベクトルxとvとの数106に示す内積を表す。
Figure 2013109048
Figure 2013109048
Figure 2013109048
は、行列Xの転置行列を表す。
(i=1,...,n)が空間Vのベクトルの要素であるとき、つまり、数107であるとき、数108は、数109によって生成される部分空間を表す。
Figure 2013109048
Figure 2013109048
Figure 2013109048
数110に示す基底Bと基底Bとに対して、数111である。
Figure 2013109048
Figure 2013109048
j=1,...,nのn個のベクトルに対して、e は、数112に示す標準基底ベクトルを示す。
Figure 2013109048
GL(n,F)は、有限体Fにおける次数nの一般線形群を表す。
また、以下の説明において、ベクトルを意味する“→”が下付き文字又は上付き文字に付されている場合、この“→”は下付き文字又は上付き文字に上付きで付されていることを意味する。同様に、基底Bにおける“*”が下付き文字又は上付き文字に付されている場合、この“*”は下付き文字又は上付き文字に上付きで付されていることを意味する。また、同様に、空間Vにおける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ことが必要である。
内積暗号は、関数型暗号の一種である。
内積暗号には、零内積暗号(Zero Inner Product Encryption,ZIPE)と、非零内積暗号(Non−zero Inner Product Encryption,NIPE)とがある。
零内積暗号では、ベクトルxに対して暗号化された暗号文は、x・y=0であるベクトルyと関連付けられた秘密鍵で復号することができる。つまり、x・y=0である場合に限り、RZIPE(x,y)=1であることが必要である。
非零内積暗号では、ベクトルxに対して暗号化された暗号文は、x・y≠0であるベクトルyと関連付けられた秘密鍵で復号することができる。つまり、x・y≠0である場合に限り、RNIPE(x,y)=1であることが必要である。
<第2.双対ペアリングベクトル空間>
まず、対称双線形ペアリング群(Symmetric Bilinear Pairing Groups)について説明する。
対称双線形ペアリング群(q,G,G,g,e)は、素数qと、位数qの巡回加法群Gと、位数qの巡回乗法群Gと、要素g≠0∈Gと、多項式時間で計算可能な非退化双線形ペアリング(Nondegenerate Bilinear Pairing)e:G×G→Gとの組である。非退化双線形ペアリングは、e(sg,tg)=e(g,g)stであり、e(g,g)≠1である。
以下の説明において、Gbpgを、1λを入力として、セキュリティパラメータをλとする双線形ペアリング群のパラメータparam:=(q,G,G,g,e)の値を出力するアルゴリズムとする。
次に、双対ペアリングベクトル空間について説明する。
双対ペアリングベクトル空間(q,V,G,A,e)は、対称双線形ペアリング群(param:=(q,G,G,g,e))の直積によって構成することができる。双対ペアリングベクトル空間(q,V,G,A,e)は、素数q、数113に示す有限体F上のN次元ベクトル空間V、位数qの巡回群G、空間Vの標準基底A:=(a,...,a)の組であり、以下の演算(1)(2)を有する。ここで、aは、数114に示す通りである。
Figure 2013109048
Figure 2013109048
演算(1):非退化双線形ペアリング
空間Vにおけるペアリングは、数115によって定義される。
Figure 2013109048
これは、非退化双線形である。つまり、e(sx,ty)=e(x,y)stであり、全てのy∈Vに対して、e(x,y)=1の場合、x=0である。また、全てのiとjとに対して、e(a,a)=e(g,g)δi,jである(このδi,jはδi,jを意味する)。ここで、i=jであれば、δi,j=1であり、i≠jであれば、δi,j=0である。また、e(g,g)≠1∈Gである。
演算(2):標準写像
数116に示す空間Vにおける線形変換φi,jは、数117によって容易に実現することができる。
Figure 2013109048
Figure 2013109048
ここで、線形変換φi,jを標準写像と呼ぶ。
以下の説明において、Gdpvsを、1λ(λ∈自然数)、N∈自然数を入力として、セキュリティパラメータがλであり、N次元の空間Vとする双対ペアリングベクトル空間のパラメータparam:=(q,V,G,A,e)の値を出力するアルゴリズムとする。
なお、ここでは、上述した対称双線形ペアリング群により、双対ペアリングベクトル空間を構成した場合について説明する。非対称双線形ペアリング群により双対ペアリングベクトル空間を構成することも可能である。以下の説明を、非対称双線形ペアリング群により双対ペアリングベクトル空間を構成した場合に応用することは容易である。
<第3.内積暗号方式の基本構成>
まず、零内積暗号方式について説明する。
零内積暗号方式における関係RZIPEは、ベクトルx∈F \{0}と、ベクトルv∈F \{0}とにおいて定義される。そして、x・v=0である場合に限り、関係RZIPE(x,v):=1である。
同様に、非零内積暗号方式における関係RNIPEは、ベクトルx∈F \{0}と、ベクトルv∈F \{0}とにおいて定義される。そして、x・v≠0である場合に限り、関係RNIPE(x,v):=1である。
零内積暗号方式と非零内積暗号方式とは、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は、零内積暗号方式と非零内積暗号方式とを実行する暗号処理システム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,F)から一様に選択された、完全にランダムな線形変換X(基底変換行列)を用いて生成される。特に、基底Bと基底Bとは、それぞれ、線形変換Xと、(X−1とにより、標準基底Aを変換して生成される。なお、Nは、span<B>とspan<B>との次元数である。
そして、双対ペアリングベクトル空間を暗号処理に適用した典型的なアプリケーションでは、基底Bの一部(B^という)が公開パラメータとして用いられ、これに対応する基底Bの一部(B^という)が秘密鍵又はトラップドアとして用いられる。
以下の実施の形態で説明する内積暗号では、上述した完全にランダムな線形変換Xに代えて、X∈GL(N,F)であるランダムな線形変換Xの特別な形式を用いる。この特別な形式の線形変換Xにより、暗号文又は秘密鍵のサイズを小さくすることができるとともに、処理に時間のかかるペアリング演算の数を減らすことができる。
図2は、特別な形式の線形変換Xの説明図である。
図2(a)は、完全にランダムな線形変換Xを示し、図2(b)は、特別な形式の線形変換Xを示す。図2(a)(b)において、四角が示す部分は成分の値が0以外の乱数であることを示し、図2(b)において、空白部分は成分の値が0であることを示している。また、図2(b)において、斜線が入れられた四角が示す部分は成分の値が同じ値であることを示す。なお、ここでは、N=5としている。
図2(a)に示すように、従来の線形変換Xは、N(ここでは、5=25)のサイズであった。これに対して、図2(b)に示すように、以下の実施の形態で説明する内積暗号で用いる線形変換X(以下、新しい線形変換X)は、N+1(ここでは、5+1=6)のサイズである。
上述したように、基底Bと基底Bとは、線形変換Xを用いて標準基底Aを変換して生成される。そのため、基底Bと基底Bとのサイズは、線形変換Xのサイズに比例する。また、上述したように、基底Bと基底Bとは、その一部が公開パラメータと秘密鍵にされる。したがって、公開パラメータと秘密鍵とのサイズは、線形変換Xのサイズに比例する。つまり、従来の線形変換Xを用いた場合、公開パラメータと秘密鍵とのサイズは、Nに比例する。これに対して、新しい線形変換Xを用いた場合、公開パラメータと秘密鍵とのサイズは、N+1に比例する。
その結果、従来の線形変換Xを用いた場合、ユーザ鍵の生成の処理や暗号化の処理にNに比例した時間がかかっていた。これに対して、新しい線形変換Xを用いた場合、ユーザ鍵の生成の処理や暗号化の処理にN+1に比例した時間になる。つまり、新しい線形変換Xを用いた場合、計算時間が、Nのオーダーになる。
次に、非零内積暗号方式を例として、定数サイズの暗号文と効率的な復号を実現する具体的な方法について説明する。
なお、暗号文のサイズを説明する場合、ベクトルの記述は暗号文の一部に含めないものとする。復号鍵のサイズを説明する場合も同様に、ベクトルの記述は暗号文の一部に含めないものとする。
以下の実施の形態で説明する非零内積暗号方式を簡略化したものを用いて説明する。
簡略化した非零内積暗号方式における暗号文は、2つのベクトル要素(c,c)∈G×Gと、c∈Gとからなる。秘密鍵は、2つのベクトル要素k ,k ∈G×Gからなる。なお、(c,c)∈G×Gとは、cがGの5個の要素であり、cがGのn個の要素であることを意味する。同様に、k ,k ∈G×Gとは、k がGの5個の要素であり、k がGのn個の要素であることを意味する。
そのため、暗号文のサイズを定数サイズにするには、c∈Gをnについての定数サイズに圧縮する必要がある。
数118に示す特別な線形変換Xを用いる。
Figure 2013109048
ここで、μ,μ’,...,μ’は有限体Fから一様に選択された値であり、線形変換Xにおける空白は定数値0∈Fであることを示す。定数値0とは、値が0に固定されていることを意味する。つまり、μ,μ’,...,μ’は0も取り得る一様乱数であるのに対して、線形変換Xにおける空白は値が0に固定されている。また、H(n,F)とは、有限体Fを要素とするn次元の行列の集合を意味する。
システムパラメータ又はDPVSの公開基底は、数119に示す基底Bである。
Figure 2013109048
:=(x,...,x)に関連付けられた暗号文を、数120に示す暗号文cとする。
Figure 2013109048
ここで、ωは有限体Fから一様に選択された値である。
すると、暗号文cは、数121に示す2つのグループの要素C,Cと、ベクトルxとに圧縮できる。
Figure 2013109048
暗号文cは、(x,...,xn−1,C)によって得られるためである。なお、i=1,...,n−1の各iについて、x=xωμgである。
したがって、暗号文(ベクトルxを除いた部分)は、2つのグループの要素とすることができ、nについての定数サイズとなる。
:=(b )を、B:=(b)の双対正規直交基底とし、基底Bを、簡略化した非零内積暗号方式におけるマスター秘密鍵であるとする。(c,k ,c)を、e(c,k )=g ζ・g ωδであり、c:=g ζm∈Gであると規定する。また、ベクトルvに対する秘密鍵を、k :=(δvB*=δ(v +・・・+v )のように設定する。
基底Bと基底Bとの双対正規直交性により、e(c,k )=g ωδ(x→・v→)が成立する。そのため、復号者は、x・v≠0である場合に限り、g ωδを計算できる。つまり、復号者は、数122によりメッセージmを得ることができる。
Figure 2013109048
暗号文cは、(x,...,xn−1,C)∈Gとして表され、秘密鍵k は、(K,...,K)のn組に分解される。そのため、e(c,k )の値は、数123である。
Figure 2013109048
つまり、e(c,k )を計算するには、Gにおけるn−1個のスカラー乗法と、2つのペアリング演算とで十分である。すなわち、復号には、少ない数(定数)のペアリング演算だけが必要となる。一般に、ペアリング演算は、処理時間がかかる演算であるため、ペアリング演算の数を減らすことにより、処理全体としての処理時間を短くすることができる。
なお、簡略化した非零内積暗号方式では、暗号文cはベクトルxが設定される基底ベクトル(実際の符号化部)のみを備え、秘密鍵k はベクトルvが設定される基底ベクトル(実際の符号化部)のみを備えた。
以下の実施の形態で説明する非零内積暗号方式では、安全性を高めるため、暗号文cと秘密鍵k とに、実際の符号化部に加え、秘匿部と、秘密鍵ランダム化部と、暗号文ランダム化部とのための基底ベクトルを加える。
そのため、線形変換Xを数124のように拡張する。
Figure 2013109048
ここで、各Xi,jは、数118に示すX∈H(n,F)である。そして、ベクトル空間は、4つの直交する部分空間で構成される。つまり、ベクトル空間は、符号化部と、秘匿部と、秘密鍵ランダム化部と、暗号文ランダム化部とのための4つの直交する部分空間で構成される。
実施の形態2.
実施の形態2では、暗号文のサイズを定数サイズとした非零内積暗号方式について説明する。
図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:=(x,...,x)は、L=1,...,n−1の各整数Lについてx≠0であり、入力されるベクトルv:=(v,...,v)は、v≠0であるとする。
鍵生成装置100について説明する。
図3に示すように、鍵生成装置100は、マスター鍵生成部110、マスター鍵記憶部120、情報入力部130、復号鍵生成部140、鍵配布部150を備える。マスター鍵生成部110は、空間生成部111、行列生成部112、基底生成部113、鍵生成部114を備える。復号鍵生成部140は、乱数生成部141、鍵要素生成部142を備える。
図6に基づき、Setupアルゴリズムの処理について説明する。
(S101:空間生成ステップ)
空間生成部111は、セキュリティパラメータ1λを入力として、処理装置によりGbpgを実行して、対称双線形ペアリング群のパラメータparam:=(q,G,G,g,e)を生成する。
さらに、空間生成部111は、N:=5、N:=4nを設定する。そして、空間生成部111は、t=0,1の各tについて、セキュリティパラメータ1λと、Nと、対称双線形ペアリング群のパラメータparamとを入力として、処理装置によりGdpvsを実行して、双対ペアリングベクトル空間のパラメータparamVt:=(q,V,G,A,e)を生成する。
(S102:線形変換生成ステップ)
行列生成部112は、数125に示すように、処理装置により線形変換Xを生成する。
Figure 2013109048
なお、数125における(χ0,i,ji,j=1,...,5は、行列χ0,i,jの添え字i,jに関する行列という意味という意味である。
また、行列生成部112は、数126に示すように、処理装置により線形変換Xを生成する。
Figure 2013109048
数126におけるL(N,F)は、数127に示す通りである。
Figure 2013109048
なお、以下、{μi,j,μ’i,j,Li,j=1,...,4;L=1,...,nは、線形変換Xにおける定数値0以外の要素を示す。
(S103:基底B生成ステップ)
基底生成部113は、数128に示すように、処理装置により基底Bと変数Bi,jと変数B’i,j,Lとを生成する。
Figure 2013109048
また、基底生成部113は、数129に示すように、処理装置により基底B と基底B とを生成する。
Figure 2013109048
(S104:基底B^生成ステップ)
鍵生成部114は、数130に示すように、処理装置により基底B^と、基底B^ と、基底B^ とを生成する。
Figure 2013109048
(S105:マスター鍵生成ステップ)
鍵生成部114は、処理装置により公開パラメータpk:=(1λ,param,B^,{Bi,j,B’i,j,Li=1,4;j=1,...,4;L=1,...,n)とし、マスター秘密鍵sk:={B^ t=0,1とする。そして、鍵生成部114は、公開パラメータpkと、マスター秘密鍵skとをマスター鍵記憶部120に記憶する。
なお、param:=({paramVtt=0,1,g)である。
つまり、S101からS105において、鍵生成装置100は、数131に示すアルゴリズムG(1) obを用いた、数132に示すSetupアルゴリズムを実行して、公開パラメータpkとマスター秘密鍵skとを生成する。
Figure 2013109048
Figure 2013109048
なお、公開パラメータは、例えば、ネットワークを介して公開され、暗号化装置200や復号装置300が取得可能な状態にされる。
S103では、基底Bを生成せず、代わりに変数Bi,jを生成した。基底Bを生成するのであれば、数133のようになる。
Figure 2013109048
数133の行列における空白部分は成分の値が0∈Gであることを示している。基底Bは、基底B の正規直交基底である。つまり、e(b1,i,b 1,j)=gであり、1≦i≠j≦4nの整数i,jに対して、e(b1,i,b 1,j)=1である。
図7に基づき、KeyGenアルゴリズムの処理について説明する。
(S111:情報入力ステップ)
情報入力部130は、ベクトルvを入力装置により入力する。
(S112:乱数生成ステップ)
乱数生成部141は、数134に示すように、処理装置により乱数を生成する。
Figure 2013109048
(S113:要素k 生成ステップ)
鍵要素生成部142は、数135に示すように、処理装置により復号鍵skv→の要素である要素k を生成する。
Figure 2013109048
なお、上述したように、数110に示す基底Bと基底Bとに対して、数111である。したがって、数135は、基底B の基底ベクトルb 0,1の係数としてδを設定し、基底ベクトルb 0,2の係数として0を設定し、基底ベクトルb 0,3の係数として1を設定し、基底ベクトルb 0,4の係数としてφを設定し、基底ベクトルb 0,5の係数として0を設定することを意味する。
(S114:要素k 生成ステップ)
鍵要素生成部142は、数136に示すように、処理装置により復号鍵skv→の要素である要素k を生成する。
Figure 2013109048
数136は、数135と同様に、基底B の基底ベクトルb 1,1,...,b 1,nの係数としてδv,...,δvを設定し、基底ベクトルb 1,n+1,...,b 1,2nの係数として0を設定し、基底ベクトルb 1,2n+1,...,b 1,3nの係数としてφ,...,φを設定し、基底ベクトルb 1,3n+1,...,b 1,4nの係数として0を設定することを意味する。
(S115:鍵配布ステップ)
鍵配布部150は、S111で入力したベクトルvと、S113で生成した要素k と、S114で生成した要素k とを要素とする復号鍵skv→を、例えば通信装置によりネットワークを介して秘密裡に復号装置300へ配布する。もちろん、復号鍵skv→は、他の方法により復号装置300へ配布されてもよい。
つまり、S111からS114において、鍵生成装置100は、数137に示すKeyGenアルゴリズムを実行して、復号鍵skv→を生成する。そして、S115において、鍵生成装置100は、生成された復号鍵skv→を復号装置300へ配布する。
Figure 2013109048
暗号化装置200について説明する。
図4に示すように、暗号化装置200は、公開パラメータ取得部210、情報入力部220、暗号文生成部230、データ送信部240を備える。暗号文生成部230は、乱数生成部231、暗号要素生成部232を備える。
図8に基づき、Encアルゴリズムの処理について説明する。
(S121:公開パラメータ取得ステップ)
公開パラメータ取得部210は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成した公開パラメータpkを取得する。
(S122:情報入力ステップ)
情報入力部220は、ベクトルxを入力装置により入力する。
また、情報入力部220は、メッセージmを入力装置により入力する。
(S123:乱数生成ステップ)
乱数生成部231は、数138に示すように、処理装置により乱数を生成する。
Figure 2013109048
(S124:要素c生成ステップ)
暗号要素生成部232は、数139に示すように、処理装置により暗号文ctx→の要素である要素cを生成する。
Figure 2013109048
数139は、数135と同様に、基底Bの基底ベクトルb0,1の係数として−ωを設定し、基底ベクトルb0,2の係数として0を設定し、基底ベクトルb0,3の係数としてζを設定し、基底ベクトルb0,4の係数として0を設定し、基底ベクトルb0,5の係数としてηを設定することを意味する。
(S125:要素C生成ステップ)
暗号要素生成部232は、数140に示すように、処理装置により暗号文ctx→の要素である要素C1,jと要素C2,jとを生成する。
Figure 2013109048
(S126:要素c生成ステップ)
暗号要素生成部232は、数141に示すように、処理装置により暗号文ctx→の要素である要素cを生成する。
Figure 2013109048
(S127:データ送信ステップ)
データ送信部240は、S122で入力したベクトルxと、S124で生成した要素cと、S125で生成した要素C1,j,C2,jと、S126で生成した要素cとを要素とする暗号文ctx→を、例えば通信装置によりネットワークを介して復号装置300へ送信する。もちろん、暗号文ctx→は、他の方法により復号装置300へ送信されてもよい。
つまり、S121からS126において、暗号化装置200は、数142に示すEncアルゴリズムを実行して、暗号文ctx→を生成する。そして、S127において、暗号化装置200は、生成された暗号文ctx→を復号装置300へ送信する。
Figure 2013109048
復号装置300について説明する。
図5に示すように、復号装置300は、復号鍵取得部310、データ受信部320、ペアリング演算部330、メッセージ計算部340を備える。
図9に基づき、Decアルゴリズムの処理について説明する。
(S131:復号鍵取得ステップ)
復号鍵取得部310は、例えば、通信装置によりネットワークを介して、鍵生成装置100から配布されたskv→を取得する。
また、復号鍵取得部310は、鍵生成装置100が生成した公開パラメータpkを取得する。
(S132:データ受信ステップ)
データ受信部320は、例えば、通信装置によりネットワークを介して、暗号化装置200が送信した暗号文ctx→を受信する。
(S133:値D 計算ステップ)
ペアリング演算部330は、数143に示すように、処理装置により値D を計算する。
Figure 2013109048
ここで、要素k は、(K ,...,K 4n)∈G4nの4n組に分解される。
(S134:ペアリング演算ステップ)
ペアリング演算部330は、数144に示すように、処理装置によりペアリング演算を実行して、値Fを計算する。
Figure 2013109048
(S135:メッセージ計算ステップ)
メッセージ計算部340は、数145に示すように、処理装置によりメッセージm’を計算する。
Figure 2013109048
つまり、S131からS135において、復号装置300は、数146に示すDecアルゴリズムを実行して、メッセージm’を計算する。
Figure 2013109048
なお、数133からB:=(b1,1,...,b1,4n)は、{Bi,j,B’i,j,Li,j=1,...,4;L=1,...,nによって特定される。また、Setupアルゴリズムの出力に含まれる{Bi,j,B’i,j,Li=1,4;j=1,...,4;L=1,...,nは、B^:=(b1,1,...,b1,n,b1,3n+1,...,b1,4n)によって特定される。
そして、Decアルゴリズムは、数147に示すDec’アルゴリズムのように記述することができる。
Figure 2013109048
数148に示すように、Dec'アルゴリズムを用いた場合、x・v≠0であれば、F=gζ が得られる。そのため、c=gζ mをFで除することにより、メッセージm’(=m)が得られる。
Figure 2013109048
実施の形態2で説明した非零内積暗号方式では、暗号文ctx→は、数139に示す要素cで5個と、数140に示す、j=1,...,4の各整数jについての要素C1,j及び要素C2,jで8個との合計13個のGの要素を含む。また、数141に示す要素cで1個のGの要素を含む。つまり、暗号文ctx→は、nについて定数サイズである。
また、実施の形態2で説明した非零内積暗号方式では、復号処理(Decアルゴリズム)は、数144に示すe(c,k )で5個と、Πj=1 (e(C1,j,D )・e(C2,j,K jn))で8個との合計13個のみペアリング演算を実行する。つまり、復号処理は、少ない数のペアリング演算のみ必要となる。
実施の形態3.
実施の形態3では、秘密鍵のサイズを定数サイズとした非零内積暗号方式について説明する。
鍵生成装置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:=(v,...,v)は、L=1,...,n−1の各整数Lについてv≠0であり、入力されるベクトルx:=(x,...,x)は、x≠0であるとする。
鍵生成装置100について説明する。
図10に基づき、Setupアルゴリズムの処理について説明する。
S201からS202までの処理は、図6に示すS101からS102までの処理と同じである。
(S203:基底B生成ステップ)
基底生成部113は、実施の形態2における基底Bと変数Bi,jと同様に、数149に示すように、処理装置により基底Dと変数Di,jと変数D’i,j,Lとを生成する。
Figure 2013109048
また、基底生成部113は、実施の形態2における基底B と基底B と同様に、数150に示すように、処理装置により基底D と基底D とを生成する。
Figure 2013109048
そして、基底生成部113は、基底D を基底Bとし、基底Dを基底B とし、基底D を基底Bとする。また、基底生成部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^と、基底B^と、基底B^ とを生成する。
Figure 2013109048
(S205:マスター鍵生成ステップ)
鍵生成部114は、処理装置により公開パラメータpk:=(1λ,param,{B^t=0,1)とし、マスター秘密鍵sk:=B^ ,{B i,j,B’ i,j,Li=1,3;j=1,...,4;L=1,...,nとする。そして、鍵生成部114は、公開パラメータpkと、マスター秘密鍵skとをマスター鍵記憶部120に記憶する。
なお、param:=({paramVtt=0,1,g)である。
つまり、S201からS205において、鍵生成装置100は、数152に示すアルゴリズムG(2) obを用いた、数153に示すSetupアルゴリズムを実行して、公開パラメータpkとマスター秘密鍵skとを生成する。ここで、数152に示すように、アルゴリズムG(2) obは、数131に示すアルゴリズムG(1) obを用いる。
Figure 2013109048
Figure 2013109048
なお、公開パラメータは、例えば、ネットワークを介して公開され、暗号化装置200や復号装置300が取得可能な状態にされる。
図11に基づき、KeyGenアルゴリズムの処理について説明する。
S211からS213までの処理は、図7に示すS111からS113までの処理と同じである。
(S214:要素K生成ステップ)
鍵要素生成部142は、数154に示すように、処理装置により復号鍵skv→の要素である要素K 1,jと要素K 2,jとを生成する。
Figure 2013109048
(S215:鍵配布ステップ)
鍵配布部150は、S211で入力したベクトルvと、S213で生成した要素k と、S214で生成した要素K 1,j,K 2,jとを要素とする復号鍵skv→を、例えば通信装置によりネットワークを介して秘密裡に復号装置300へ配布する。もちろん、復号鍵skv→は、他の方法により復号装置300へ配布されてもよい。
つまり、S211からS214において、鍵生成装置100は、数155に示すKeyGenアルゴリズムを実行して、復号鍵skv→を生成する。そして、S215において、鍵生成装置100は、生成された復号鍵skv→を復号装置300へ配布する。
Figure 2013109048
暗号化装置200について説明する。
図12に基づき、Encアルゴリズムの処理について説明する。
S221からS224までの処理は、図8に示すS121からS124までの処理と同じである。
(S225:要素c生成ステップ)
暗号要素生成部232は、数156に示すように、処理装置により暗号文ctx→の要素である要素cを生成する。
Figure 2013109048
数156は、数135と同様に、基底Bの基底ベクトルb 1,1,...,b 1,nの係数としてωx,...,ωxを設定し、基底ベクトルb 1,n+1,...,b 1,3nの係数として0を設定し、基底ベクトルb 1,3n+1,...,b 1,4nの係数としてη,...,ηを設定することを意味する。
S226の処理は、図8に示すS126の処理と同じである。
(S227:データ送信ステップ)
データ送信部240は、S222で入力したベクトルxと、S224で生成した要素cと、S225で生成した要素cと、S226で生成した要素cとを要素とする暗号文ctx→を、例えば通信装置によりネットワークを介して復号装置300へ送信する。もちろん、暗号文ctx→は、他の方法により復号装置300へ送信されてもよい。
つまり、S221からS226において、暗号化装置200は、数157に示すEncアルゴリズムを実行して、暗号文ctx→を生成する。そして、S227において、暗号化装置200は、生成された暗号文ctx→を復号装置300へ送信する。
Figure 2013109048
復号装置300について説明する。
図13に基づき、Decアルゴリズムの処理について説明する。
S231からS232までの処理は、図9に示すS131からS132までの処理と同じである。
(S233:値D計算ステップ)
ペアリング演算部330は、数158に示すように、処理装置により値Dを計算する。
Figure 2013109048
ここで、要素cは、(C,...,C4n)∈G4nの4n組に分解される。
(S234:ペアリング演算ステップ)
ペアリング演算部330は、数159に示すように、処理装置によりペアリング演算を実行して、値Fを計算する。
Figure 2013109048
S235の処理は、図9に示すS135の処理と同じである。
つまり、S231からS235において、復号装置300は、数160に示すDecアルゴリズムを実行して、メッセージm’を計算する。
Figure 2013109048
なお、B :=(b 1,1,...,b 1,4n)は、{B i,j,B’ i,j,Li,j=1,...,4;L=1,...,nによって特定される。また、Setupアルゴリズムの出力に含まれる{B i,j,B’ i,j,Li=1,3;j=1,...,4;L=1,...,nは、B^ :=(b 1,1,...,b 1,n,b 1,2n+1,...,b 1,3n)によって特定される。
そして、Decアルゴリズムは、数161に示すDec’アルゴリズムのように記述することができる。
Figure 2013109048
実施の形態3で説明した非零内積暗号方式では、復号鍵skv→は、数135に示す要素k で5個と、数154に示す、j=1,...,4の各整数jについての要素K 1,j及び要素K 2,jで8個との合計13個のGの要素を含む。つまり、復号鍵skv→は、nについて定数サイズである。
また、実施の形態3で説明した非零内積暗号方式では、復号処理(Decアルゴリズム)は、数159に示すe(c,k )で5個と、Πj=1 (e(D,K 1,j)・e(Cjn,K 2,j))で8個との合計13個のみペアリング演算を実行する。つまり、復号処理は、少ない数のペアリング演算のみ必要となる。
実施の形態4.
実施の形態4では、暗号文のサイズを定数サイズとした零内積暗号方式について説明する。
鍵生成装置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:=(x,...,x)は、L=1,...,n−1の各整数Lについてx≠0であり、入力されるベクトルv:=(v,...,v)は、v≠0であるとする。
鍵生成装置100について説明する。
図14に基づき、Setupアルゴリズムの処理について説明する。
(S301:空間生成ステップ)
空間生成部111は、セキュリティパラメータ1λを入力として、処理装置によりGbpgを実行して、対称双線形ペアリング群のパラメータparam:=(q,G,G,g,e)を生成する。
さらに、空間生成部111は、N:=4n+1を設定する。そして、空間生成部111は、セキュリティパラメータ1λと、Nと、対称双線形ペアリング群のパラメータparamとを入力として、処理装置によりGdpvsを実行して、双対ペアリングベクトル空間のパラメータparamVt:=(q,V,G,A,e)を生成する。
(S302:線形変換生成ステップ)
行列生成部112は、数162に示すように、処理装置により線形変換Xを生成する。
Figure 2013109048
数162におけるL’(N,F)は、数163に示す通りである。
Figure 2013109048
なお、以下、{χ0,0,χ0,j,χi,0,L,μi,j,μ’i,j,Li,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とを生成する。
Figure 2013109048
また、基底生成部113は、数165に示すように、処理装置により基底Bを生成する。
Figure 2013109048
(S304:基底B^生成ステップ)
鍵生成部114は、数166に示すように、処理装置により基底B^を生成する。
Figure 2013109048
(S305:マスター鍵生成ステップ)
鍵生成部114は、処理装置により公開パラメータpk:=(1λ,param,B^,{B0,0,B0,j,Bi,0,L,Bi,j,B’i,j,Li=1,4;j=1,...,4;L=1,...,n)とし、マスター秘密鍵sk:=B^とする。そして、鍵生成部114は、公開パラメータpkと、マスター秘密鍵skとをマスター鍵記憶部120に記憶する。
なお、param:=(param,g)である。
つまり、S301からS305において、鍵生成装置100は、数167に示すアルゴリズムG(3) obを用いた、数168に示すSetupアルゴリズムを実行して、公開パラメータpkとマスター秘密鍵skとを生成する。
Figure 2013109048
Figure 2013109048
なお、公開パラメータは、例えば、ネットワークを介して公開され、暗号化装置200や復号装置300が取得可能な状態にされる。
図15に基づき、KeyGenアルゴリズムの処理について説明する。
S311の処理は、図7に示すS111の処理と同じである。
(S312:乱数生成ステップ)
乱数生成部141は、数169に示すように、処理装置により乱数を生成する。
Figure 2013109048
(S313:要素k生成ステップ)
鍵要素生成部142は、数170に示すように、処理装置により復号鍵skv→の要素である要素kを生成する。
Figure 2013109048
数170は、数135と同様に、基底Bの基底ベクトルb の係数として1を設定し、基底ベクトルb ,...,b の係数としてδv,...,δvを設定し、基底ベクトルb n+1,...,b 2nの係数として0を設定し、基底ベクトルb 2n+1,...,b 3nの係数としてφv,...,φvを設定し、基底ベクトルb 3n+1,...,b 4nの係数として0を設定することを意味する。
(S314:鍵配布ステップ)
鍵配布部150は、S313で生成した要素kを要素とする復号鍵skv→を、例えば通信装置によりネットワークを介して秘密裡に復号装置300へ配布する。もちろん、復号鍵skv→は、他の方法により復号装置300へ配布されてもよい。
つまり、S311からS313において、鍵生成装置100は、数171に示すKeyGenアルゴリズムを実行して、復号鍵skv→を生成する。そして、S314において、鍵生成装置100は、生成された復号鍵skv→を復号装置300へ配布する。
Figure 2013109048
暗号化装置200について説明する。
図16に基づき、Encアルゴリズムの処理について説明する。
S321からS322までの処理は、図8に示すS121からS122までの処理と同じである。
(S323:乱数生成ステップ)
乱数生成部231は、数172に示すように、処理装置により乱数を生成する。
Figure 2013109048
(S324:要素C生成ステップ)
暗号要素生成部232は、数173に示すように、処理装置により暗号文ctx→の要素である要素Cと要素C1,jと要素C2,jとを生成する。
Figure 2013109048
S325の処理は、図8に示すS126の処理と同じである。
(S326:データ送信ステップ)
データ送信部240は、S322で入力したベクトルxと、S324で生成した要素C,C1,j,C2,jと、S325で生成した要素cとを要素とする暗号文ctx→を、例えば通信装置によりネットワークを介して復号装置300へ送信する。もちろん、暗号文ctx→は、他の方法により復号装置300へ送信されてもよい。
つまり、S321からS325において、暗号化装置200は、数174に示すEncアルゴリズムを実行して、暗号文ctx→を生成する。そして、S326において、暗号化装置200は、生成された暗号文ctx→を復号装置300へ送信する。
Figure 2013109048
復号装置300について説明する。
図17に基づき、Decアルゴリズムの処理について説明する。
S331からS332までの処理は、図9に示すS131からS132までの処理と同じである。
(S333:値D 計算ステップ)
ペアリング演算部330は、数175に示すように、処理装置により値D を計算する。
Figure 2013109048
ここで、要素kは、(K ,...,K 4n)∈G4n+1の(4n+1)組に分解される。
(S334:ペアリング演算ステップ)
ペアリング演算部330は、数176に示すように、処理装置によりペアリング演算を実行して、値Fを計算する。
Figure 2013109048
S335の処理は、図9に示すS135の処理と同じである。
つまり、S331からS335において、復号装置300は、数177に示すDecアルゴリズムを実行して、メッセージm’を計算する。
Figure 2013109048
なお、B:=(b,...,b4n)は、{B0,0,B0,j,Bi,0,L,Bi,j,B’i,j,Li,j=1,...,4;L=1,...,nによって特定される。また、Setupアルゴリズムの出力に含まれる{B0,0,B0,j,Bi,0,L,Bi,j,B’i,j,Li=1,4;j=1,...,4;L=1,...,nは、B^:=(b,...,b,b3n+1,...,b4n)によって特定される。
そして、Decアルゴリズムは、数178に示すDec’アルゴリズムのように記述することができる。
Figure 2013109048
数179に示すように、Dec'アルゴリズムを用いた場合、x・v=0であれば、F=gζ が得られる。そのため、c=gζ mをFで除することにより、メッセージm’(=m)が得られる。
Figure 2013109048
実施の形態4で説明した零内積暗号方式では、暗号文ctx→は、数173に示す要素Cで1個と、j=1,...,4の各整数jについての要素C1,j及び要素C2,jで8個との合計9個のGの要素を含む。また、要素cで1個のGの要素を含む。つまり、暗号文ctx→は、nについて定数サイズである。
また、実施の形態4で説明した零内積暗号方式では、復号処理(Decアルゴリズム)は、数176に示すe(C,K )で1個と、Πj=1 (e(C1,j,D )・e(C2,j,K jn))で8個との合計9個のみペアリング演算を実行する。つまり、復号処理は、少ない数のペアリング演算のみ必要となる。
実施の形態5.
実施の形態5では、秘密鍵のサイズを定数サイズとした零内積暗号方式について説明する。
鍵生成装置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:=(v,...,v)は、L=1,...,n−1の各整数Lについてv≠0であり、入力されるベクトルx:=(x,...,x)は、x≠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とを生成する。
Figure 2013109048
また、基底生成部113は、実施の形態4における基底Bと同様に、数181に示すように、処理装置により基底Dを生成する。
Figure 2013109048
そして、基底生成部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^を生成する。
Figure 2013109048
(S405:マスター鍵生成ステップ)
鍵生成部114は、処理装置により公開パラメータpk:=(1λ,param,B^)とし、マスター秘密鍵sk:=({B 0,0,B 0,j,B i,0,L,B i,j,B’ i,j,Li=1,3;j=1,...,4;L=1,...,n)とする。そして、鍵生成部114は、公開パラメータpkと、マスター秘密鍵skとをマスター鍵記憶部120に記憶する。
なお、param:=(param,g)である。
つまり、S401からS405において、鍵生成装置100は、数183に示すアルゴリズムG(4) obを用いた、数184に示すSetupアルゴリズムを実行して、公開パラメータpkとマスター秘密鍵skとを生成する。ここで、数183に示すように、アルゴリズムG(4) obは、数167に示すアルゴリズムG(3) obを用いる。
Figure 2013109048
Figure 2013109048
なお、公開パラメータは、例えば、ネットワークを介して公開され、暗号化装置200や復号装置300が取得可能な状態にされる。
図19に基づき、KeyGenアルゴリズムの処理について説明する。
S411からS412までの処理は、図15に示すS311からS312までの処理と同じである。
(S413:要素K生成ステップ)
鍵要素生成部142は、数185に示すように、処理装置により復号鍵skv→の要素である要素K と要素K 1,jと要素K 2,jとを生成する。
Figure 2013109048
(S414:鍵配布ステップ)
鍵配布部150は、S411で入力したベクトルvと、S313で生成した要素K ,K 1,j,K 2,jとを要素とする復号鍵skv→を、例えば通信装置によりネットワークを介して秘密裡に復号装置300へ配布する。もちろん、復号鍵skv→は、他の方法により復号装置300へ配布されてもよい。
つまり、S411からS413において、鍵生成装置100は、数186に示すKeyGenアルゴリズムを実行して、復号鍵skv→を生成する。そして、S414において、鍵生成装置100は、生成された復号鍵skv→を復号装置300へ配布する。
Figure 2013109048
暗号化装置200について説明する。
図20に基づき、Encアルゴリズムの処理について説明する。
S421からS423までの処理は、図16に示すS321からS323までの処理と同じである。
(S424:要素c生成ステップ)
暗号要素生成部232は、数187に示すように、処理装置により暗号文ctx→の要素である要素cを生成する。
Figure 2013109048
数187は、数135と同様に、基底Bの基底ベクトルbの係数としてζを設定し、基底ベクトルb,...,bの係数としてωx,...,ωxを設定し、基底ベクトルbn+1,...,b3nの係数として0を設定し、基底ベクトルb3n+1,...,b4nの係数としてηx,...,ηxを設定することを意味する。
S425の処理は、図16に示すS325の処理と同じである。
(S426:データ送信ステップ)
データ送信部240は、S422で入力したベクトルxと、S424で生成した要素cと、S425で生成した要素cとを要素とする暗号文ctx→を、例えば通信装置によりネットワークを介して復号装置300へ送信する。もちろん、暗号文ctx→は、他の方法により復号装置300へ送信されてもよい。
つまり、S421からS425において、暗号化装置200は、数188に示すEncアルゴリズムを実行して、暗号文ctx→を生成する。そして、S426において、暗号化装置200は、生成された暗号文ctx→を復号装置300へ送信する。
Figure 2013109048
復号装置300について説明する。
図21に基づき、Decアルゴリズムの処理について説明する。
S431からS432までの処理は、図17に示すS331からS332までの処理と同じである。
(S433:値D計算ステップ)
ペアリング演算部330は、数189に示すように、処理装置により値Dを計算する。
Figure 2013109048
ここで、要素cは、(C ,...,C 4n)∈G4n+1の(4n+1)組に分解される。
(S434:ペアリング演算ステップ)
ペアリング演算部330は、数190に示すように、処理装置によりペアリング演算を実行して、値Fを計算する。
Figure 2013109048
S435の処理は、図17に示すS335の処理と同じである。
つまり、S431からS435において、復号装置300は、数191に示すDecアルゴリズムを実行して、メッセージm’を計算する。
Figure 2013109048
なお、B:=(b ,...,b 4n)は、{B 0,0,B 0,j,B i,0,L,B i,j,B’ i,j,Li,j=1,...,4;L=1,...,nによって特定される。また、Setupアルゴリズムの出力に含まれる{B 0,0,B 0,j,B i,0,L,B i,j,B’ i,j,Li=1,3;j=1,...,4;L=1,...,nは、B^:=(b ,...,b ,b 2n+1,...,b 3n)によって特定される。
そして、Decアルゴリズムは、数192に示すDec’アルゴリズムのように記述することができる。
Figure 2013109048
実施の形態5で説明した零内積暗号方式では、復号鍵skv→は、数185に示す要素K で1個と、j=1,...,4の各整数jについての要素K 1,j及び要素K 2,jで8個との合計9個のGの要素を含む。つまり、復号鍵skv→は、nについて定数サイズである。
また、実施の形態5で説明した零内積暗号方式では、復号処理(Decアルゴリズム)は、数190に示すe(C,K )で1個と、Πj=1 (e(D,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)を用いて構成すればよい。
Figure 2013109048
関数型暗号の一種として、IDベースレボケーション(Identity−Based Revocation,IBR)やIDベースブロードキャスト暗号(Identity−Based Broadcast Encryption,IBBE)がある(非特許文献1,5,6,8,19,12参照)。
IDベースレボケーションでは、暗号文は識別子の集合S=(ID,...,ID)に対して暗号化され、ID∈SでないIDと関連付けられた秘密鍵によって暗号文は復号される。つまり、復号には、ID∈Sでない場合に限り、RIBR(ID,S)=1であることが必要である。
IDベースブロードキャスト暗号では、暗号文は識別子の集合S=(ID,...,ID)に対して暗号化され、ID∈SであるIDと関連付けられた秘密鍵によって暗号文は復号される。つまり、復号には、ID∈Sである場合に限り、RIBBE(ID,S)=1であることが必要である。
S:={ID,...,ID}である場合に、S(X):=Σi=0 :=Πi=1 (X−ID)とする。そして、ベクトルv:=(v,v,...,v)とし、ベクトルx:=(1,ID,...,ID)とする。
すると、実施の形態2,3で説明した非零内積暗号方式は、IDベースレボケーション方式となり、実施の形態4,5で説明した零内積暗号方式は、IDベースブロードキャスト暗号方式となる。
つまり、以上の実施の形態で説明した内積暗号方式により、IDベースレボケーション方式及びIDベースブロードキャスト暗号方式を実現できる。この場合においても、暗号文又は復号鍵をnについての定数サイズとすることができ、少ない数のペアリング演算で復号することができる。
実施の形態2−4で説明した具体的な暗号方式以外にも、非特許文献13、15、16、17等で説明されている暗号方式に、上述した線形変換Xを適用することで、公開パラメータと秘密鍵とのサイズは小さくなる。また、ユーザ鍵の生成や暗号化の処理の処理時間も短くなる。
図22は、実施の形態2−4で説明した非零内積暗号方式及び零内積暗号方式と、非特許文献2に記載された非零内積暗号方式及び零内積暗号方式とを比較した図である。
なお、図22において、|G|、|G|、|F|、P、Mは、それぞれGのサイズ、Gのサイズ、Fのサイズ、ペアリング演算、Gにおけるスカラー積演算を示している。また、CT、SK、IP、DBDHは、それぞれ暗号文、秘密鍵(復号鍵)、内積、決定的双線形Diffie−Hellmanを示している。
実施の形態6.
以上の実施の形態では、双対ベクトル空間において暗号処理を実現する方法について説明した。実施の形態6では、双対加群において暗号処理を実現する方法について説明する。
つまり、以上の実施の形態では、素数位数qの巡回群において暗号処理を実現した。しかし、合成数Mを用いて数194のように環Rを表した場合、環Rを係数とする加群においても、上記実施の形態で説明した暗号処理を適用することができる。
Figure 2013109048
以上の実施の形態で説明したアルゴリズムにおけるFをRに変更すれば、双対加群における暗号処理を実現することができる。
次に、実施の形態における暗号処理システム10(鍵生成装置100、暗号化装置200、復号装置300)のハードウェア構成について説明する。
図23は、鍵生成装置100、暗号化装置200、復号装置300、鍵委譲装置400のハードウェア構成の一例を示す図である。
図23に示すように、鍵生成装置100、暗号化装置200、復号装置300、鍵委譲装置400は、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、LCD901(Liquid Crystal Display)、キーボード902(K/B)、通信ボード915、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920(固定ディスク装置)の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。磁気ディスク装置920は、所定の固定ディスクインタフェースを介して接続される。
ROM913、磁気ディスク装置920は、不揮発性メモリの一例である。RAM914は、揮発性メモリの一例である。ROM913とRAM914と磁気ディスク装置920とは、記憶装置(メモリ)の一例である。また、キーボード902、通信ボード915は、入力装置の一例である。また、通信ボード915は、通信装置の一例である。さらに、LCD901は、表示装置の一例である。
磁気ディスク装置920又はROM913などには、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。
プログラム群923には、上記の説明において「マスター鍵生成部110」、「マスター鍵記憶部120」、「情報入力部130」、「復号鍵生成部140」、「鍵配布部150」、「公開パラメータ取得部210」、「情報入力部220」、「暗号文生成部230」、「データ送信部240」、「復号鍵取得部310」、「データ受信部320」、「ペアリング演算部330」、「メッセージ計算部340」等として説明した機能を実行するソフトウェアやプログラムやその他のプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、上記の説明において「公開パラメータpk」、「マスター秘密鍵sk」、「復号鍵skv→」、「暗号文ctx→」等の情報やデータや信号値や変数値やパラメータが、「ファイル」や「データベース」の各項目として記憶される。「ファイル」や「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPU911の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPU911の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、上記の説明におけるフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、その他光ディスク等の記録媒体やICチップに記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体や電波によりオンライン伝送される。
また、上記の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。また、「〜装置」として説明するものは、「〜回路」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。さらに、「〜処理」として説明するものは「〜ステップ」であっても構わない。すなわち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ROM913等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、上記で述べた「〜部」としてコンピュータ等を機能させるものである。あるいは、上記で述べた「〜部」の手順や方法をコンピュータ等に実行させるものである。
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. 前記疎行列は、n行n列(nは2以上の整数)の行列であり、定数値0以外の値として、少なくともn個の異なる値を有する
    ことを特徴とする請求項1に記載の暗号処理システム。
  3. 前記疎行列は、少なくとも1つの列における全ての成分が定数値0以外の値である
    ことを特徴とする請求項2に記載の暗号処理システム。
  4. 前記疎行列は、対角成分と、少なくとも1つの列における全ての成分が定数値0以外の値である
    ことを特徴とする請求項3に記載の暗号処理システム。
  5. 前記疎行列は、全ての成分が定数値0以外の値である列を除き、対角成分の値が同一である
    ことを特徴とする請求項4に記載の暗号処理システム。
  6. 前記疎行列は、数1に示す行列である
    ことを特徴とする請求項5に記載の暗号処理システム。
    Figure 2013109048
  7. 前記暗号処理システムは、1行1列からn行n列までの値が数2に示す疎行列であるN行N列(Nはn以上の整数)の線形変換Xを用いて、数3に示すように前記基底Aから生成された基底Bと基底Bとを用い、
    前記暗号化装置は、数4を含むベクトルを前記暗号ベクトルとして生成し、
    前記復号装置は、数5を含むベクトルkを前記鍵ベクトルとして、前記暗号ベクトルを復号する
    ことを特徴とする請求項1に記載の暗号処理システム。
    Figure 2013109048
    Figure 2013109048
    Figure 2013109048
    Figure 2013109048
  8. 前記数2に示す疎行列の値B(i=1,...,n−1)の値は同一の値Bであり、
    前記暗号化装置は、数6を含むベクトルCと数7を含むベクトルCとを含むベクトルを前記暗号ベクトルとして生成し、
    前記復号装置は、数8に示すDを計算して、数9に示すペアリング演算を行う
    ことを特徴とする請求項7に記載の暗号処理システム。
    Figure 2013109048
    Figure 2013109048
    Figure 2013109048
    Figure 2013109048
  9. 前記数2に示す疎行列の値B(i=1,...,n−1)の値は同一の値Bであり、
    前記暗号化装置は、数10を含むベクトルCと数11を含むベクトルCとを含むベクトルを前記暗号ベクトルとして生成し、
    前記復号装置は、数12に示すDを計算して、数13に示すペアリング演算を行う
    ことを特徴とする請求項7に記載の暗号処理システム。
    Figure 2013109048
    Figure 2013109048
    Figure 2013109048
    Figure 2013109048
  10. 前記暗号処理システムは、1行1列からn行n列までの値が数14に示す疎行列であるN行N列(Nはn以上の整数)の線形変換Xを用いて、数15に示すように前記基底Aから生成された基底Bと基底Bとを用い、
    前記暗号化装置は、数16を含むベクトルcを前記暗号ベクトルとして生成し、
    前記復号装置は、数17を含むベクトルを前記鍵ベクトルとして、前記暗号ベクトルを復号する
    ことを特徴とする請求項1に記載の暗号処理システム。
    Figure 2013109048
    Figure 2013109048
    Figure 2013109048
    Figure 2013109048
  11. 前記数14に示す疎行列の値B(i=1,...,n−1)の値は同一の値Bであり、
    前記復号装置は、数18を含むベクトルK と数19を含むベクトルK とを含むベクトルを前記鍵ベクトルとして、数20に示すDを計算して、数21に示すペアリング演算を行う
    ことを特徴とする請求項10に記載の暗号処理システム。
    Figure 2013109048
    Figure 2013109048
    Figure 2013109048
    Figure 2013109048
  12. 前記数14に示す疎行列の値B(i=1,...,n−1)の値は同一の値Bであり、
    前記復号装置は、数22を含むベクトルK と数23を含むベクトルK とを含むベクトルを前記鍵ベクトルとして、数24に示すDを計算して、数25に示すペアリング演算を行う
    ことを特徴とする請求項10に記載の暗号処理システム。
    Figure 2013109048
    Figure 2013109048
    Figure 2013109048
    Figure 2013109048
  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との一方の基底の少なくとも一部の基底ベクトルを公開パラメータとし、他方の基底の少なくとも一部の基底ベクトルを秘密鍵として生成するマスター鍵生成部と
    を備えることを特徴とする鍵生成装置。
    Figure 2013109048
JP2011252244A 2011-11-18 2011-11-18 暗号処理システム、暗号処理方法、暗号処理プログラム及び鍵生成装置 Active JP5677273B2 (ja)

Priority Applications (8)

Application Number Priority Date Filing Date Title
JP2011252244A JP5677273B2 (ja) 2011-11-18 2011-11-18 暗号処理システム、暗号処理方法、暗号処理プログラム及び鍵生成装置
PCT/JP2012/079210 WO2013073488A1 (ja) 2011-11-18 2012-11-12 暗号処理システム、暗号処理方法、暗号処理プログラム及び鍵生成装置
US14/355,699 US9203622B2 (en) 2011-11-18 2012-11-12 Cryptographic processing system, cryptographic processing method, cryptograhpic processing program, and key generation device
ES12850218.4T ES2613811T3 (es) 2011-11-18 2012-11-12 Sistema de procesamiento criptográfico, método de procesamiento criptográfico, programa de procesamiento criptográfico y dispositivo de generación de claves
EP12850218.4A EP2782087B1 (en) 2011-11-18 2012-11-12 Encryption processing system, encryption processing method, encryption processing program and key generator
KR1020147016602A KR101581605B1 (ko) 2011-11-18 2012-11-12 암호 처리 시스템, 암호 처리 방법, 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 및 키 생성 장치
CN201280056310.4A CN103946910B (zh) 2011-11-18 2012-11-12 密码处理系统、密码处理方法以及密钥生成装置
IN4110CHN2014 IN2014CN04110A (ja) 2011-11-18 2012-11-12

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011252244A JP5677273B2 (ja) 2011-11-18 2011-11-18 暗号処理システム、暗号処理方法、暗号処理プログラム及び鍵生成装置

Publications (2)

Publication Number Publication Date
JP2013109048A true JP2013109048A (ja) 2013-06-06
JP5677273B2 JP5677273B2 (ja) 2015-02-25

Family

ID=48429548

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011252244A Active JP5677273B2 (ja) 2011-11-18 2011-11-18 暗号処理システム、暗号処理方法、暗号処理プログラム及び鍵生成装置

Country Status (8)

Country Link
US (1) US9203622B2 (ja)
EP (1) EP2782087B1 (ja)
JP (1) JP5677273B2 (ja)
KR (1) KR101581605B1 (ja)
CN (1) CN103946910B (ja)
ES (1) ES2613811T3 (ja)
IN (1) IN2014CN04110A (ja)
WO (1) WO2013073488A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015204602A (ja) * 2014-04-16 2015-11-16 日本放送協会 限定受信システム、ならびに、コンテンツ配信装置、コンテンツ受信装置およびそれらのプログラム
JP2018510575A (ja) * 2015-03-27 2018-04-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ブロードキャスト暗号化方式のランタイム・インスタンス化のための方法およびコンピュータ・プログラム

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5855234B2 (ja) * 2012-03-27 2016-02-09 三菱電機株式会社 デジタル放送受信装置及びデジタル放送受信方法
WO2016088250A1 (ja) * 2014-12-05 2016-06-09 三菱電機株式会社 復号条件追加装置、暗号システム及び復号条件追加プログラム
CN107005406B (zh) * 2014-12-05 2020-07-17 三菱电机株式会社 函数型加密系统、主密钥更新装置和存储介质
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
JP2010273317A (ja) * 2009-04-23 2010-12-02 Mitsubishi Electric Corp 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
JP2011141472A (ja) * 2010-01-08 2011-07-21 Mitsubishi Electric Corp 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
WO2011135895A1 (ja) * 2010-04-27 2011-11-03 三菱電機株式会社 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置

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
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
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 中国电信股份有限公司 适用矢量量化的语音编码的声源加密的系统和方法
EP2424155B1 (en) * 2009-04-24 2014-09-03 Nippon Telegraph And Telephone Corporation Information generating device, information generating method, and information generating program and storage medium thereof
EP2658164B1 (en) * 2009-04-24 2015-09-16 Nippon Telegraph And Telephone Corporation Cryptographic system, cryptographic communication method, encryption apparatus, key generation apparatus, decryption apparatus, content server, program, and storage medium
US8615668B2 (en) * 2010-01-15 2013-12-24 Mitsubishi Electric Corporation Confidential search system and cryptographic processing system
EP2787680B1 (en) * 2010-07-23 2017-03-29 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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010273317A (ja) * 2009-04-23 2010-12-02 Mitsubishi Electric Corp 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
JP2011141472A (ja) * 2010-01-08 2011-07-21 Mitsubishi Electric Corp 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
WO2011135895A1 (ja) * 2010-04-27 2011-11-03 三菱電機株式会社 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置
JP2011232475A (ja) * 2010-04-27 2011-11-17 Mitsubishi Electric Corp 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015204602A (ja) * 2014-04-16 2015-11-16 日本放送協会 限定受信システム、ならびに、コンテンツ配信装置、コンテンツ受信装置およびそれらのプログラム
JP2018510575A (ja) * 2015-03-27 2018-04-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ブロードキャスト暗号化方式のランタイム・インスタンス化のための方法およびコンピュータ・プログラム

Also Published As

Publication number Publication date
EP2782087A1 (en) 2014-09-24
US9203622B2 (en) 2015-12-01
EP2782087B1 (en) 2016-12-28
KR20140093281A (ko) 2014-07-25
US20140298028A1 (en) 2014-10-02
CN103946910B (zh) 2017-05-31
IN2014CN04110A (ja) 2015-07-10
KR101581605B1 (ko) 2015-12-30
EP2782087A4 (en) 2015-09-09
JP5677273B2 (ja) 2015-02-25
CN103946910A (zh) 2014-07-23
ES2613811T3 (es) 2017-05-26
WO2013073488A1 (ja) 2013-05-23

Similar Documents

Publication Publication Date Title
JP5677273B2 (ja) 暗号処理システム、暗号処理方法、暗号処理プログラム及び鍵生成装置
JP5618881B2 (ja) 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
JP5424974B2 (ja) 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置
KR101359200B1 (ko) 암호 처리 시스템
KR101393899B1 (ko) 암호 처리 시스템, 키 생성 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
KR101336349B1 (ko) 암호 처리 시스템, 키 생성 장치, 키 위양 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
JP5680007B2 (ja) 暗号システム、暗号方法及び暗号プログラム
KR101310439B1 (ko) 암호 처리 시스템, 키 생성 장치, 키 위양 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
WO2014184894A1 (ja) 暗号システム、暗号方法及び暗号プログラム
JP5921410B2 (ja) 暗号システム
JP2014029415A (ja) 暗号システム、暗号方法、暗号プログラム及び復号装置
JP5606351B2 (ja) 暗号処理システム、鍵生成装置、暗号化装置、復号装置、鍵委譲装置、暗号処理方法及び暗号処理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140819

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140926

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141202

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141226

R150 Certificate of patent or registration of utility model

Ref document number: 5677273

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250