JP2013186181A - 暗号システム、暗号方法及び暗号プログラム - Google Patents

暗号システム、暗号方法及び暗号プログラム Download PDF

Info

Publication number
JP2013186181A
JP2013186181A JP2012049275A JP2012049275A JP2013186181A JP 2013186181 A JP2013186181 A JP 2013186181A JP 2012049275 A JP2012049275 A JP 2012049275A JP 2012049275 A JP2012049275 A JP 2012049275A JP 2013186181 A JP2013186181 A JP 2013186181A
Authority
JP
Japan
Prior art keywords
vector
index
integer
key
base
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
JP2012049275A
Other languages
English (en)
Other versions
JP5680007B2 (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 JP2012049275A priority Critical patent/JP5680007B2/ja
Application filed by Mitsubishi Electric Corp, Nippon Telegraph and Telephone Corp filed Critical Mitsubishi Electric Corp
Priority to CN201380012925.1A priority patent/CN104160437B/zh
Priority to ES13757621.1T priority patent/ES2604817T3/es
Priority to PCT/JP2013/055661 priority patent/WO2013133158A1/ja
Priority to US14/376,147 priority patent/US9407438B2/en
Priority to EP13757621.1A priority patent/EP2824652B1/en
Priority to KR1020147026078A priority patent/KR101588992B1/ko
Publication of JP2013186181A publication Critical patent/JP2013186181A/ja
Application granted granted Critical
Publication of JP5680007B2 publication Critical patent/JP5680007B2/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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • H04L9/16Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】公開パラメータの再発行をすることなく、属性カテゴリの追加を可能とすることを目的とする。
【解決手段】暗号システム10は、双対ペアリングベクトル空間における双対システム暗号において、、インデックス付けの技法を用いる。具体的には、暗号システム10は、インデックスjについての送信側ベクトルtについては、所定の基底ベクトルの係数としてインデックスjに予め割り当てられた情報Jを設定し、インデックスjに対応するインデックスj’の受信側ベクトルrj’については、前記所定の基底ベクトルに対応する基底ベクトルの係数として情報Jとの内積が0になる情報J’を設定する。
【選択図】図5

Description

この発明は、公開パラメータの再発行をすることなく、属性カテゴリの追加が可能な暗号システムに関するものである。
非特許文献29には、関数型暗号方式についての記載がある。
Beimel, A., Secure schemes for secret sharing and key distribution. PhD Thesis, Israel Institute of Technology,Technion, Haifa, Israel, 1996. Bethencourt, J., Sahai, A., Waters, B.: Ciphertext−policy attribute−based encryption. In: 2007 IEEE Symposiumon Security and Privacy, pp. 321−334. IEEE Press (2007) Boneh, D., Boyen, X.: Efficient selective−ID secure identity based encryption without random oracles. In: Cachin,C., Camenisch, J. (eds.) EUROCRYPT 2004. LNCS, vol. 3027, pp. 223−238. Springer Heidelberg (2004) Boneh, D., Boyen, X.: Secure identity based encryption without random oracles. In: Franklin, M.K. (ed.) CRYPTO 2004. LNCS, vol. 3152, pp. 443−459. Springer Heidelberg (2004) Boneh, D., Boyen, X., Goh, E.: Hierarchical identity based encryption with constant size ciphertext. In: Cramer,R. (ed.) EUROCRYPT 2005. LNCS, vol. 3494, pp. 440−456. Springer Heidelberg (2005) Boneh, D., Boyen, X., Shacham, H.: Short group signatures. In: Franklin, M. (ed.) CRYPTO 2004. LNCS, vol.3152, pp. 41−55. Springer, Heidelberg (2004) Boneh, D., Franklin, M.: Identity−based encryption from the Weil pairing. In: Kilian, J. (ed.) CRYPTO 2001.LNCS, vol. 2139, pp. 213−229. Springer Heidelberg (2001) 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) Boneh, D., Katz, J., Improved efficiency for CCA−secure cryptosystems built using identity based encryption. RSA−CT 2005, LNCS, Springer Verlag (2005) Boneh, D., Waters, B.: Conjunctive, subset, and range queries on encrypted data. In: Vadhan, S.P. (ed.) TCC 2007. LNCS, vol. 4392, pp. 535−554. Springer Heidelberg (2007) Boyen, X., Waters, B.: Anonymous hierarchical identity−based encryption (without random oracles). In: Dwork, C. (ed.) CRYPTO 2006. LNCS, vol. 4117, pp. 290−307. Springer Heidelberg (2006) Canetti, R., Halevi S., Katz J.: Chosen−ciphertext security from identity−based encryption. EUROCRYPT 2004, LNCS, Springer Heidelberg (2004) Chase, M.: Multi−authority attribute based encryption. TCC, LNCS, pp. 515−534, Springer Heidelberg (2007). Chase, M. and Chow, S.: Improving privacy and security in multi−authority attribute−based encryption, ACM Conference on Computer and Communications Security, pp. 121−130, ACM (2009). Cocks, C.: An identity based encryption scheme based on quadratic residues. In: Honary, B. (ed.) IMA Int. Conf. LNCS, vol. 2260, pp. 360−363. Springer Heidelberg (2001) Gentry, C.: Practical identity−based encryption without random oracles. In: Vaudenay, S. (ed.) EUROCRYPT 2006. LNCS, vol. 4004, pp. 445−464. Springer Heidelberg (2006) Gentry, C., Halevi, S.: Hierarchical identity−based encryption with polynomially many levels. In: Reingold, O. (ed.) TCC 2009. LNCS, vol. 5444, pp. 437−456. Springer Heidelberg (2009) Gentry, C., Silverberg, A.: Hierarchical ID−based cryptography. In: Zheng, Y. (ed.) ASIACRYPT 2002. LNCS,vol. 2501, pp. 548−566. Springer Heidelberg (2002) 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) 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., Okamoto, T., Sahai, A., Takashima, K., Waters, B.: Fully secure functional encryption: Attributebased encryption and (hierarchical) inner product encryption, EUROCRYPT 2010. LNCS, Springer Heidelberg (2010) 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) Lewko, A.B., Waters, B.: Decentralizing Attribute−Based Encryption, the proceedings of Eurocrypt 2011, LNCS, Springer Heidelberg (2011). Lewko, A.B., Waters, B.: Unbounded HIBE and attribute−based encryption, the proceedings of Eurocrypt 2011, LNCS, Springer Heidelberg (2011). H. Lin, Z. Cao, X. Liang, and J. Shao.: Secure threshold multi authority attribute based encryption without a central authority, INDOCRYPT, LNCS, vol. 5365, pp. 426−436, Springer Heidelberg (2008). S. M¨uller, S. Katzenbeisser, and C. Eckert.; On multi−authority ciphertext−policy attribute−based encryption, Bull. Korean Math Soc. 46, No.4, pp. 803−819 (2009). 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: ASIACRYPT 2009, 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 Okamoto, T., Takashima, K.: Efficient attribute−based signatures for non−monotone predicates in the standard model, In: PKC 2011, Springer Heidelberg (2011) Okamoto, T., Takashima, K.:Decentralized Attribute−Based Signatures http://eprint.iacr.org/2011/701 Ostrovsky, R., Sahai, A., Waters, B.: Attribute−based encryption with non−monotonic access structures. In: ACM Conference on Computer and Communication Security 2007, pp. 195−203, ACM (2007) Pirretti, M., Traynor, P., McDaniel, P., Waters, B.: Secure attribute−based systems. In: ACM Conference on Computer and Communication Security 2006, pp. 99−112, ACM, (2006) Sahai, A., Waters, B.: Fuzzy identity−based encryption. In: Cramer, R. (ed.) EUROCRYPT 2005. LNCS, vol. 3494, pp. 457−473. Springer Heidelberg (2005) Shi, E., Waters, B.: Delegating capability in predicate encryption systems. In: Aceto, L., Damg「ェard, I., Goldberg, L.A., Halldゥェrsson, M.M., Ingゥェlfsdゥェttir, A., Walukiewicz, I. (eds.) ICALP (2) 2008. LNCS, vol. 5126, pp. 560−578. Springer Heidelberg (2008) Waters, B.: Efficient identity based encryption without random oracles. Eurocrypt 2005, LNCS, vol. 3152, pp.443−459. Springer Verlag, (2005) Waters, B.: Ciphertext−policy attribute−based encryption: an expressive, efficient, and provably secure realization.ePrint, IACR, http://eprint.iacr.org/2008/290 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)
非特許文献29に記載された関数型暗号方式では、属性カテゴリ毎に基底B及び基底B のペアが必要であり、属性カテゴリを追加する場合、新たな基底B及び基底B のペアを生成する必要がある。そして、基底Bは、公開パラメータに含まれているため、公開パラメータを再発行する必要がある。
この発明は、公開パラメータの再発行をすることなく、属性カテゴリの追加を可能とすることを目的とする。
この発明に係る暗号システムは、
所定の基底B及び所定の基底Bを用いて処理を行う暗号システムであり、
複数のインデックスjのうちの1つ以上のインデックスjについての送信側ベクトルtであって、前記基底Bにおける所定の基底ベクトルbindexの係数に、インデックスjに予め割り当てられた情報Jを設定し、前記基底Bにおける他の基底ベクトルbattの係数に、インデックスjについてのパラメータΦを設定した送信側ベクトルtを生成する送信装置と、
複数のインデックスj’のうちの1つ以上のインデックスj’についての受信側ベクトルrj’であって、前記基底ベクトルbindexに対応する前記基底Bにおける基底ベクトルb indexの係数に、インデックスj’に対応するインデックスjに予め割り当てられた情報Jとの内積が0になる情報J’を設定し、前記基底ベクトルbattに対応する前記基底Bにおける基底ベクトルb attの係数に、インデックスj’についてのパラメータΨj’を設定した受信側ベクトルrj’を用いて、インデックスjについての前記送信側ベクトルtと前記インデックスjに対応するインデックスj’についての前記受信側ベクトルrj’とに対して、対応する基底ベクトル毎のペアリング演算の積を計算する受信装置と
を備えることを特徴とする。
この発明に係る暗号システムでは、送信側ベクトルtにはインデックスjに予め割り当てられた情報Jが設定され、受信側ベクトルrj’には、情報Jとの内積が0になる情報J’が設定される。これにより、安全性を維持したまま、全ての属性カテゴリに共通の基底B及び基底Bを用いることができ、属性カテゴリ毎に基底B及び基底B を用いる必要がなくなる。その結果、属性カテゴリを追加する場合、新たな基底B及び基底B を生成する必要がなく、公開パラメータの再発行をすることなく、属性カテゴリの追加を可能とすることができる。
行列M^の説明図。 行列Mδの説明図。 の説明図。 →Tの説明図。 実施の形態2に係るKP−FE方式を実行する暗号システム10の構成図。 実施の形態2に係る鍵生成装置100の構成図。 実施の形態2に係る暗号化装置200の構成図。 実施の形態2に係る復号装置300の構成図。 実施の形態2に係るSetupアルゴリズムの処理を示すフローチャート。 実施の形態2に係るKeyGenアルゴリズムの処理を示すフローチャート。 実施の形態2に係るEncアルゴリズムの処理を示すフローチャート。 実施の形態2に係るDecアルゴリズムの処理を示すフローチャート。 実施の形態3に係るCP−FE方式を実行する暗号システム10の構成図。 実施の形態3に係る鍵生成装置100の構成図。 実施の形態3に係る暗号化装置200の構成図。 実施の形態3に係る復号装置300の構成図。 実施の形態3に係るKeyGenアルゴリズムの処理を示すフローチャート。 実施の形態3に係るEncアルゴリズムの処理を示すフローチャート。 実施の形態3に係るDecアルゴリズムの処理を示すフローチャート。 実施の形態4に係るHIPE方式を実行する暗号システム10の構成図。 実施の形態4に係る鍵生成装置100の構成図。 実施の形態4に係る暗号化装置200の構成図。 実施の形態4に係る復号装置300の構成図。 実施の形態4に係る鍵委譲装置400の構成図。 実施の形態4に係るSetupアルゴリズムの処理を示すフローチャート。 実施の形態4に係るKeyGenアルゴリズムの処理を示すフローチャート。 実施の形態4に係るEncアルゴリズムの処理を示すフローチャート。 実施の形態4に係るDecアルゴリズムの処理を示すフローチャート。 実施の形態4に係るDelegateアルゴリズムの処理を示すフローチャート。 実施の形態5に係る署名方式を実行する暗号システム10の構成図。 実施の形態5に係る鍵生成装置100の構成図。 実施の形態5に係る署名装置500の構成図。 実施の形態5に係る検証装置600の構成図。 実施の形態5に係るSetupアルゴリズムの処理を示すフローチャート。 実施の形態5に係るKeyGenアルゴリズムの処理を示すフローチャート。 実施の形態5に係るSigアルゴリズムの処理を示すフローチャート。 実施の形態5に係るVerアルゴリズムの処理を示すフローチャート。 多管理者の説明図。 多管理者の場合における属性カテゴリを追加可能な関数型暗号方式の説明図。 鍵生成装置100、暗号化装置200、復号装置300、鍵委譲装置400、署名装置500、検証装置600のハードウェア構成の一例を示す図。
以下、図に基づき、発明の実施の形態を説明する。
以下の説明において、処理装置は後述するCPU911等である。記憶装置は後述するROM913、RAM914、磁気ディスク920等である。通信装置は後述する通信ボード915等である。入力装置は後述するキーボード902、通信ボード915等である。つまり、処理装置、記憶装置、通信装置、入力装置はハードウェアである。
以下の説明における記法について説明する。
Aがランダムな変数または分布であるとき、数101は、Aの分布に従いAからyをランダムに選択することを表す。つまり、数101において、yは乱数である。
Figure 2013186181
Aが集合であるとき、数102は、Aからyを一様に選択することを表す。つまり、数102において、yは一様乱数である。
Figure 2013186181
数103は、yがzにより定義された集合であること、又はyがzを代入された集合であることを表す。
Figure 2013186181
aが定数であるとき、数104は、機械(アルゴリズム)Aが入力xに対しaを出力することを表す。
Figure 2013186181
数105、つまりFは、位数qの有限体を示す。
Figure 2013186181
ベクトル表記は、有限体Fにおけるベクトル表示を表す。つまり、数106である。
Figure 2013186181
数107は、数108に示す2つのベクトルxとvとの数109に示す内積を表す。
Figure 2013186181
Figure 2013186181
Figure 2013186181
は、行列Xの転置行列を表す。
(i=1,...,n)が空間Vのベクトルの要素であるとき、つまり、数110であるとき、数111は、数112によって生成される部分空間を表す。
Figure 2013186181
Figure 2013186181
Figure 2013186181
数113に示す基底Bと基底Bとに対して、数114である。
Figure 2013186181
Figure 2013186181
は、数115に示す正規基底ベクトルを示す。
Figure 2013186181
また、以下の説明において、“Vt”が下付き又は上付きで示されている場合、このVtはVを意味する。同様に、“δi,j”が上付きで示されている場合、このδi,jは、δi,jを意味する。
また、ベクトルを意味する“→”が下付き文字又は上付き文字に付されている場合、この“→”は下付き文字又は上付き文字に上付きで付されていることを意味する。
また、以下の説明において、暗号プリミティブの処理は、情報を第三者から秘匿するための狭義の暗号処理だけでなく、署名処理をも含むものであり、鍵生成処理、暗号化処理、復号処理、鍵委譲処理、署名処理、検証処理を含む。
実施の形態1.
この実施の形態では、以下の実施の形態で説明する、公開パラメータを再発行することなく、属性カテゴリの追加が可能な暗号プリミティブの処理を実現する基礎となる概念をする。
第1に、属性カテゴリの追加について説明する。
第2に、関数型暗号方式と、関数型暗号方式の基本構成とについて簡単に説明する。
第3に、公開パラメータを再発行することなく、属性カテゴリの追加を可能とするキーテクニックについて説明する。
第4に、関数型暗号方式を実現するための空間である「双対ペアリングベクトル空間(Dual Pairing Vector Spaces,DPVS)」という豊かな数学的構造を有する空間を説明する。
第5に、関数型暗号方式を実現するための概念を説明する。ここでは、スパンプログラム(Span Program)」、「属性情報の内積とアクセスストラクチャ」、「秘密分散方式(秘密共有方式)」について説明する。
<第1.属性カテゴリの追加>
属性カテゴリとは、例えば、所属機関、所属部署、役職、年齢、性別等、各ユーザの属性の分類のことである。
以下の実施の形態で説明する暗号プリミティブの処理は、ユーザの属性に基づくアクセスコントロールを実現する。例えば、情報を第三者から秘匿するための狭義の暗号処理であれば、ユーザの属性に基づき、暗号文を復号できるか否かを制御する。
通常、アクセスコントロールに使用する属性カテゴリは、システム設計時に予め決定される。しかし、後にシステムの運用が変更され、アクセスコントロールに使用する属性カテゴリの追加が必要になる場合がある。
例えば、A会社内のみで使用することを想定して暗号システムを構築したとする。この場合、使用する属性カテゴリとしては、所属部署、役職、個人のID等が想定される。しかし、後に、A会社だけでなく、A会社の関連会社でも暗号システムを使用するように運用が変更されたとする。この場合、使用する属性カテゴリとして、新たに所属会社を追加する必要がある。
アクセスコントロールに使用する属性カテゴリが、公開パラメータにより規定されている場合、後に属性カテゴリを追加するには、公開パラメータを再発行し、ユーザへ配布し直さなければならない。そのため、後に属性カテゴリを追加することは容易でなく、システム設計時に想定していなかった運用形態を柔軟に採用することができない。
そのため、公開パラメータを再発行することなく、属性カテゴリを追加できることは重要である。
<第2.関数型暗号方式>
関数型暗号方式は、暗号化鍵ekと、復号鍵dkとの間の関係をより高度化し、より柔軟にした暗号方式である。
関数型暗号方式において、暗号化鍵ekと復号鍵dkとには、それぞれ、パラメータΦとパラメータΨとが設定される。そして、関係R(Φ,Ψ)が成立する場合に限り、復号鍵dkは暗号化鍵ekで暗号化された暗号文を復号することができる。
関数型暗号方式には、属性ベース暗号方式やIDベース暗号方式が含まれる。
関数型暗号方式の構成を簡単に説明する。
関数型暗号方式は、Setup、KeyGen、Enc、Decの4つのアルゴリズムを備える。
(Setup)
Setupアルゴリズムは、公開パラメータpkと、マスター鍵skとを出力するアルゴリズムである。
(KeyGen)
KeyGenアルゴリズムは、公開パラメータpkと、マスター鍵skと、パラメータΨとを入力として、復号鍵skΨを出力するアルゴリズムである。
(Enc)
Encアルゴリズムは、公開パラメータpkと、パラメータΦと、メッセージmとを入力として、暗号文ctΦを出力するアルゴリズムである。
(Dec)
Decアルゴリズムは、公開パラメータpkと、復号鍵skΨと、暗号文ctΦとを入力として、メッセージm、又は、識別情報⊥を出力するアルゴリズムである。
なお、パラメータΨとパラメータΦとが関係Rを満たす場合(R(Φ,Ψ)が成立する場合)に限り、暗号文ctΦを復号鍵skΨで復号して、メッセージmを得ることができる。
なお、Setupアルゴリズムは、通常、システムのセットアップ時に1度だけ実行される。KeyGenアルゴリズムは、ユーザの復号鍵skΨを生成する度に実行される。Encアルゴリズムは、メッセージmを暗号化する度に実行される。Decアルゴリズムは、暗号文ctΦを復号する度に実行される。
<第3.キーテクニック>
公開パラメータを再発行することなく、属性カテゴリの追加を可能とするキーテクニックは、双対ペアリングベクトル空間における双対システム暗号に、インデックス付けの技法を適用することである。
双対ペアリングベクトル空間における双対システム暗号では、双対基底である基底Bと基底Bとがランダムに生成される。そして、基底Bの一部(基底B^)が公開パラメータとされる。
非特許文献29に記載された関数型暗号方式では、基底B^,...,基底B^が公開パラメータとして生成される。そして、t=1,...,dの各整数tについての基底B^に、1つの属性カテゴリが割り当てられる。つまり、d個の属性カテゴリを扱うことができる。
ここで、基底B^,...,基底B^が公開パラメータであることから明らかなように、後に基底B^を追加する場合、すなわちdの値を増やす場合には、公開パラメータを再発行しなければならない。つまり、dの値は公開パラメータによって制限されている。
以下の実施の形態で説明する関数型暗号方式では、基底B^が公開パラメータとして生成される。そして、t=1,...,dの各整数tについて、σ(1,t)とμ(t,−1)との2次元のインデックスベクトルが暗号文cと秘密鍵kとに設定され、各整数tに対して1つの属性カテゴリが割り当てられる。つまり、d個の属性カテゴリを扱うことができる。
ここで、公開パラメータには、基底B^は含まれているものの、インデックスベクトルは含まれていない。そのため、後にインデックスベクトルを追加し、dの値を増やす場合、公開パラメータを再発行する必要はない。つまり、dの値は公開パラメータによって制限されていない。
<第4.双対ペアリングベクトル空間>
まず、対称双線形ペアリング群について説明する。
対称双線形ペアリング群(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、数116に示すF上のN次元ベクトル空間V、位数qの巡回群G、空間Vの標準基底A:=(a,...,a)の組であり、以下の演算(1)(2)を有する。ここで、aは、数117に示す通りである。
Figure 2013186181
Figure 2013186181
演算(1):非退化双線形ペアリング
空間Vにおけるペアリングは、数118によって定義される。
Figure 2013186181
これは、非退化双線形である。つまり、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=1であり、i≠jであれば、δi,j=0である。また、e(g,g)≠1∈Gである。
演算(2):ディストーション写像
数119に示す空間Vにおける線形変換φi,jは、数120を行うことができる。
Figure 2013186181
Figure 2013186181
ここで、線形変換φi,jをディストーション写像と呼ぶ。
以下の説明において、Gdpvsを、1λ(λ∈自然数)、N∈自然数、双線形ペアリング群のパラメータparam:=(q,G,G,g,e)の値を入力として、セキュリティパラメータがλであり、N次元の空間Vとする双対ペアリングベクトル空間のパラメータparam:=(q,V,G,A,e)の値を出力するアルゴリズムとする。
なお、ここでは、上述した対称双線形ペアリング群により、双対ペアリングベクトル空間を構成した場合について説明する。なお、非対称双線形ペアリング群により双対ペアリングベクトル空間を構成することも可能である。以下の説明を、非対称双線形ペアリング群により双対ペアリングベクトル空間を構成した場合に応用することは容易である。
<第5.関数型暗号を実現するための概念>
<第5−1.スパンプログラム>
図1は、行列M^の説明図である。
{p,...,p}を変数の集合とする。M^:=(M,ρ)は、ラベル付けされた行列である。ここで、行列Mは、F上の(L行×r列)の行列である。また、ρは、行列Mの各列に付されたラベルであり、{p,...,p,¬p,...,¬p}のいずれか1つのリテラルへ対応付けられる。なお、Mの全ての行に付されたラベルρi(i=1,...,L)がいずれか1つのリテラルへ対応付けられる。つまり、ρ:{1,...,L}→{p,...,p,¬p,...,¬p}である。
全ての入力列δ∈{0,1}に対して、行列Mの部分行列Mδは定義される。行列Mδは、入力列δによってラベルρに値“1”が対応付けられた行列Mの行から構成される部分行列である。つまり、行列Mδは、δ=1であるようなpに対応付けられた行列Mの行と、δ=0であるような¬pに対応付けられた行列Mの行とからなる部分行列である。
図2は、行列Mδの説明図である。なお、図2では、n=7,L=6,r=5としている。つまり、変数の集合は、{p,...,p}であり、行列Mは(6行×5列)の行列である。また、図2において、ラベルρは、ρが¬pに、ρがpに、ρがpに、ρが¬pに、ρが¬pに、ρがpにそれぞれ対応付けられているとする。
ここで、入力列δ∈{0,1}が、δ=1,δ=0,δ=1,δ=0,δ=0,δ=1,δ=1であるとする。この場合、破線で囲んだリテラル(p,p,p,p,¬p,¬p,¬p)に対応付けられている行列Mの行からなる部分行列が行列Mδである。つまり、行列Mの1行目(M),2行目(M),4行目(M)からなる部分行列が行列Mδである。
言い替えると、写像γ:{1,...,L}→{0,1}が、[ρ(j)=p]∧[δ=1]又は[ρ(j)=¬p]∧[δ=0]である場合、γ(j)=1であり、他の場合、γ(j)=0であるとする。この場合に、Mδ:=(Mγ(j)=1である。ここで、Mは、行列Mのj番目の行である。
つまり、図2では、写像γ(j)=1(j=1,2,4)であり、写像γ(j)=0(j=3,5,6)である。したがって、(Mγ(j)=1は、M,M,Mであり、行列Mδである。
すなわち、写像γ(j)の値が“0”であるか“1”であるかによって、行列Mのj番目の行が行列Mδに含まれるか否かが決定される。
∈span<Mδ>である場合に限り、スパンプログラムM^は入力列δを受理し、他の場合には入力列δを拒絶する。つまり、入力列δによって行列M^から得られる行列Mδの行を線形結合して1が得られる場合に限り、スパンプログラムM^は入力列δを受理する。なお、1とは、各要素が値“1”である行ベクトルである。
例えば、図2の例であれば、行列Mの1,2,4行目からなる行列Mδの各行を線形結合して1が得られる場合に限り、スパンプログラムM^は入力列δを受理する。つまり、α(M)+α(M)+α(M)=1となるα,α,αが存在する場合には、スパンプログラムM^は入力列δを受理する。
ここで、ラベルρが正のリテラル{p,...,p}にのみ対応付けられている場合、スパンプログラムはモノトーンと呼ばれる。一方、ラベルρがリテラル{p,...,p,¬p,...,¬p}に対応付けられている場合、スパンプログラムはノンモノトーンと呼ばれる。ここでは、スパンプログラムはノンモノトーンとする。そして、ノンモノトーンスパンプログラムを用いて、アクセスストラクチャ(ノンモノトーンアクセスストラクチャ)を構成する。アクセスストラクチャとは、簡単に言うと暗号へのアクセス制御を行うものである。つまり、暗号文を復号できるか否かの制御を行うものである。
詳しくは後述するが、スパンプログラムがモノトーンではなく、ノンモノトーンであることにより、スパンプログラムを利用して構成する関数型暗号方式の利用範囲が広がる。
<第5−2.属性情報の内積とアクセスストラクチャ>
ここでは、属性情報の内積を用いて上述した写像γ(j)を計算する。つまり、属性情報の内積を用いて、行列Mのどの行を行列Mδに含めるかを決定する。
(t=1,...,dでありU⊂{0,1})は、部分全集合(sub−universe)であり、属性の集合である。そして、Uは、それぞれ部分全集合の識別情報(t)と、n次元ベクトル(v)とを含む。つまり、Uは、(t,v)である。ここで、t∈{1,...,d}であり、v∈F である。
:=(t,v)をスパンプログラムM^:=(M,ρ)における変数pとする。つまり、p:=(t,v)である。そして、変数(p:=(t,v),(t’,v’),...)としたスパンプログラムM^:=(M,ρ)をアクセスストラクチャSとする。
つまり、アクセスストラクチャS:=(M,ρ)であり、ρ:{1,...,L}→{(t,v),(t’,v’),...,¬(t,v),¬(t’,v’),...}である。
次に、Γを属性の集合とする。つまり、Γ:={(t,x )|x ∈Fq,1≦t≦d}である。
アクセスストラクチャSにΓが与えられた場合、スパンプログラムM^:=(M,ρ)に対する写像γ:{1,...,L}→{0,1}は、以下のように定義される。i=1,...,Lの各整数iについて、[ρ(i)=(t,v )]∧[(t,x )∈Γ]∧[v ・x =0]、又は、[ρ(i)=¬(t,v )]∧[(t,x )∈Γ]∧[v ・x ≠0]である場合、γ(j)=1であり、他の場合、γ(j)=0とする。
つまり、属性情報vとxとの内積に基づき、写像γが計算される。そして、上述したように、写像γにより、行列Mのどの行を行列Mδに含めるかが決定される。すなわち、属性情報vとxとの内積により、行列Mのどの行を行列Mδに含めるかが決定され、1∈span<(Mγ(i)=1>である場合に限り、アクセスストラクチャS:=(M,ρ)はΓを受理する。
<第5−3.秘密分散方式>
アクセスストラクチャS:=(M,ρ)に対する秘密分散方式について説明する。
なお、秘密分散方式とは、秘密情報を分散させ、意味のない分散情報にすることである。例えば、秘密情報sを10個に分散させ、10個の分散情報を生成する。ここで、10個の分散情報それぞれは、秘密情報sの情報を有していない。したがって、ある1個の分散情報を手に入れても秘密情報sに関して何ら情報を得ることはできない。一方、10個の分散情報を全て手に入れれば、秘密情報sを復元できる。
また、10個の分散情報を全て手に入れなくても、一部だけ(例えば、8個)手に入れれば秘密情報sを復元できる秘密分散方式もある。このように、10個の分散情報のうち8個で秘密情報sを復元できる場合を、8−out−of−10と呼ぶ。つまり、n個の分散情報のうちt個で秘密情報sを復元できる場合を、t−out−of−nと呼ぶ。このtを閾値と呼ぶ。
また、d,...,d10の10個の分散情報を生成した場合に、d,...,dまでの8個の分散情報であれば秘密情報sを復元できるが、d,...,d10までの8個の分散情報であれば秘密情報sを復元できないというような秘密分散方式もある。つまり、手に入れた分散情報の数だけでなく、分散情報の組合せに応じて秘密情報sを復元できるか否かを制御する秘密分散方式もある。
図3は、sの説明図である。図4は、s→Tの説明図である。
行列Mを(L行×r列)の行列とする。f→Tを数121に示す列ベクトルとする。
Figure 2013186181
数122に示すsを共有される秘密情報とする。
Figure 2013186181
また、数123に示すs→TをsのL個の分散情報のベクトルとする。
Figure 2013186181
そして、分散情報sをρ(i)に属するものとする。
アクセスストラクチャS:=(M,ρ)がΓを受理する場合、つまりγ:{1,...,L}→{0,1}について1∈span<(Mγ(i)=1>である場合、I⊆{i∈{1,...,L}|γ(i)-=1}である定数{α∈F|i∈I}が存在する。
これは、図2の例で、α(M)+α(M)+α(M)=1となるα,α,αが存在する場合には、スパンプログラムM^は入力列δを受理すると説明したことからも明らかである。つまり、α(M)+α(M)+α(M)=1となるα,α,αが存在する場合には、スパンプログラムM^が入力列δを受理するのであれば、α(M)+α(M)+α(M)=1となるα,α,αが存在する。
そして、数124である。
Figure 2013186181
なお、定数{α}は、行列Mのサイズにおける多項式時間で計算可能である。
以下の実施の形態に係る関数型暗号方式は、上述したように、スパンプログラムに内積述語と秘密分散方式とを適用してアクセスストラクチャを構成する。そのため、スパンプログラムにおける行列Mや、内積述語における属性情報x及び属性情報v(述語情報)を設計するにより、アクセス制御を自由に設計することができる。つまり、非常に高い自由度でアクセス制御の設計を行うことができる。なお、行列Mの設計は、秘密分散方式の閾値等の条件設計に相当する。
例えば、上述した属性ベース暗号方式は、以下の実施の形態に係る関数型暗号方式におけるアクセスストラクチャにおいて、内積述語の設計をある条件に限定した場合に相当する。つまり、以下の実施の形態に係る関数型暗号方式におけるアクセスストラクチャに比べ、属性ベース暗号方式におけるアクセスストラクチャは、内積述語における属性情報x及び属性情報v(述語情報)を設計の自由度がない分、アクセス制御の設計の自由度が低い。なお、具体的には、属性ベース暗号方式は、属性情報{x t∈{1,...,d}と{v t∈{1,...,d}とを、等号関係に対する2次元ベクトル、例えばx :=(1,x)とv :=(v,−1)とに限定した場合に相当する。
また、内積述語暗号方式は、以下の実施の形態に係る関数型暗号方式におけるアクセスストラクチャにおいて、スパンプログラムにおける行列Mの設計をある条件に限定した場合に相当する。つまり、以下の実施の形態に係る関数型暗号方式におけるアクセスストラクチャに比べ、内積述語暗号方式におけるアクセスストラクチャは、スパンプログラムにおける行列Mの設計の自由度がない分、アクセス制御の設計の自由度が低い。なお、具体的には、内積述語暗号方式は、秘密分散方式を1−out−of−1(あるいは、d−out−of−d)に限定した場合である。
特に、以下の実施の形態に係る関数型暗号方式におけるアクセスストラクチャは、ノンモノトーンスパンプログラムを用いたノンモノトーンアクセスストラクチャを構成する。そのため、アクセス制御の設計の自由度がより高くなる。
具体的には、ノンモノトーンスパンプログラムには、否定形のリテラル(¬p)を含むため、否定形の条件を設定できる。例えば、第1会社には、A部とB部とC部とD部との4つの部署があったとする。ここで、第1会社のB部以外の部署の属するユーザにのみアクセス可能(復号可能)というアクセス制御をしたいとする。この場合に、否定形の条件の設定ができないとすると、「第1会社のA部とC部とD部とのいずれかに属すること」という条件を設定する必要がある。一方、否定形の条件の設定ができるとすると、「第1会社の社員であって、B部以外に属すること」という条件を設定することができる。つまり、否定形の条件が設定できることで、自然な条件設定が可能となる。なお、ここでは部署の数が少ないが、部署の数が多い場合等は非常に有効であることが分かる。
実施の形態2.
この実施の形態では、狭義の暗号処理方式について説明する。特に、この実施の形態では、Key−Policy関数型暗号(KP−FE)方式について説明する。
なお、Key−Policyとは、復号鍵にPolicyが埋め込まれること、つまりアクセスストラクチャが埋め込まれることを意味する。
第1に、KP−FE方式の構成について説明する。
第2に、KP−FE方式を実現する暗号システム10の構成について説明する。
第3に、KP−FE方式について詳細に説明する。
<第1.KP−FE方式の構成>
KP−FE方式は、Setup、KeyGen、Enc、Decの4つのアルゴリズムを備える。
(Setup)
Setupアルゴリズムは、セキュリティパラメータλが入力され、公開パラメータpkと、マスター鍵skとを出力する確率的アルゴリズムである。
(KeyGen)
KeyGenアルゴリズムは、アクセスストラクチャS:=(M,ρ)と、公開パラメータpkと、マスター鍵skとを入力として、復号鍵skを出力する確率的アルゴリズムである。
(Enc)
Encアルゴリズムは、メッセージmと、属性の集合であるΓ:={(t,x )|x ∈F ,1≦t≦d}と、公開パラメータpkとを入力として、暗号文ctΓを出力する確率的アルゴリズムである。
(Dec)
Decアルゴリズムは、属性の集合であるΓの下で暗号化された暗号文ctΓと、アクセスストラクチャSに対する復号鍵skと、公開パラメータpkとを入力として、メッセージm、又は、識別情報⊥を出力するアルゴリズムである。
<第2.KP−FE方式を実現する暗号システム10の構成>
図5は、実施の形態2に係るKP−FE方式を実行する暗号システム10の構成図である。
暗号システム10は、鍵生成装置100、暗号化装置200、復号装置300を備える。
鍵生成装置100は、セキュリティパラメータλを入力としてSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。そして、鍵生成装置100は、生成した公開パラメータpkを公開する。また、鍵生成装置100は、アクセスストラクチャSを入力としてKeyGenアルゴリズムを実行して、復号鍵skを生成して復号装置300へ秘密裡に配布する。
暗号化装置200は、メッセージmと、属性の集合Γと、公開パラメータpkとを入力としてEncアルゴリズムを実行して、暗号文ctΓを生成する。暗号化装置200は、生成した暗号文ctΓを復号装置300へ送信する。
復号装置300は、公開パラメータpkと、復号鍵skと、暗号文ctΓとを入力としてDecアルゴリズムを実行して、メッセージm又は識別情報⊥を出力する。
<第3.KP−FE方式の詳細>
図6から図12に基づき、KP−FE方式、及び、KP−FE方式を実行する暗号システム10の機能と動作とについて説明する。
図6は、実施の形態2に係る鍵生成装置100の構成図である。図7は、実施の形態2に係る暗号化装置200の構成図である。図8は、実施の形態2に係る復号装置300の構成図である。
図9と図10とは、鍵生成装置100の動作を示すフローチャートである。なお、図9はSetupアルゴリズムの処理を示すフローチャートであり、図10はKeyGenアルゴリズムの処理を示すフローチャートである。図11は、暗号化装置200の動作を示すフローチャートであり、Encアルゴリズムの処理を示すフローチャートである。図12は、復号装置300の動作を示すフローチャートであり、Decアルゴリズムの処理を示すフローチャートである。
なお、以下の説明では、xt,1:=1であるとする。
鍵生成装置100の機能と動作とについて説明する。
鍵生成装置100は、マスター鍵生成部110、マスター鍵記憶部120、情報入力部130、復号鍵生成部140、鍵配布部150を備える。また、復号鍵生成部140は、fベクトル生成部141、sベクトル生成部142、乱数生成部143、鍵要素生成部144を備える。
まず、図9に基づき、Setupアルゴリズムの処理について説明する。
(S101:正規直交基底生成ステップ)
マスター鍵生成部110は、処理装置により、数125を計算して、パラメータparamと、基底B及び基底B と、基底B(基底B)及び基底B (基底B)とを生成する。
Figure 2013186181
つまり、マスター鍵生成部110は以下の処理を実行する。
(1)マスター鍵生成部110は、入力装置により、セキュリティパラメータλ(1λ)を入力する。
(2)マスター鍵生成部110は、処理装置により、(1)で入力したセキュリティパラメータλ(1λ)を入力としてアルゴリズムGbpgを実行して、双線形ペアリング群のパラメータparam:=(q,G,G,g,e)の値を生成する。
(3)マスター鍵生成部110は、処理装置により、乱数ψを生成するとともに、Nに1+u+1+w+zを、Nに2+n+u+w+zを設定する。なお、nは1以上の整数であり、u,w,z,u,w,zはそれぞれ0以上の整数である。
続いて、マスター鍵生成部110は、t=0,1の各tについて以下の(4)から(8)までの処理を実行する。
(4)マスター鍵生成部110は、処理装置により、(1)で入力したセキュリティパラメータλ(1λ)と、(3)で設定したNと、(2)で生成したparam:=(q,G,G,g,e)の値とを入力としてアルゴリズムGdpvsを実行して、双対ペアリングベクトル空間のパラメータparamVt:=(q,V,G,A,e)の値を生成する。
(5)マスター鍵生成部110は、処理装置により、(3)で設定したNと、Fとを入力として、線形変換X:=(χt,i,ji,jをランダムに生成する。なお、GLは、General Linearの略である。つまり、GLは、一般線形群であり、行列式が0でない正方行列の集合であり、乗法に関し群である。また、(χt,i,ji,jは、行列χt,i,jの添え字i,jに関する行列という意味であり、ここでは、i,j=1,...,Nである。
(6)マスター鍵生成部110は、処理装置により、乱数ψと線形変換Xとに基づき、(νt,i,ji,j:=ψ・(X −1を生成する。なお、(νt,i,ji,jも(χt,i,ji,jと同様に、行列νt,i,jの添え字i,jに関する行列という意味であり、ここでは、i,j=1,...,Nである。
(7)マスター鍵生成部110は、処理装置により、(5)で生成した線形変換Xに基づき、(4)で生成した標準基底Aから基底Bを生成する。なお、x t,iとは、線形変換Xのi行目を示す。
(8)マスター鍵生成部110は、処理装置により、(6)で生成した(νt,i,ji,jに基づき、(4)で生成した標準基底Aから基底B を生成する。なお、v t,iとは、線形変換X のi行目を示す。
(9)マスター鍵生成部110は、処理装置により、gにe(g,g)ψを設定する。また、マスター鍵生成部110は、paramに(4)で生成した{paramVtt=0,1と、gとを設定する。
すなわち、(S101)で、マスター鍵生成部110は、数126に示すアルゴリズムGobを実行して、paramと、基底B及び基底B と、基底B(基底B)及び基底B (基底B)とを生成する。
Figure 2013186181
なお、以下の説明では、簡単のため、基底B及び基底B を基底B及び基底Bとする。
(S102:公開パラメータ生成ステップ)
マスター鍵生成部110は、処理装置により、(S101)で生成した基底Bの部分基底B^と、基底Bの部分基底B^とを数127に示すように生成する。
Figure 2013186181
マスター鍵生成部110は、生成した部分基底B^及び部分基底B^と、(S101)で入力されたセキュリティパラメータλ(1λ)と、(S101)で生成したparamとを合わせて、公開パラメータpkとする。
(S103:マスター鍵生成ステップ)
マスター鍵生成部110は、処理装置により、(S101)で生成した基底B の部分基底B^ と、基底Bの部分基底B^とを数128に示すように生成する。
Figure 2013186181
マスター鍵生成部110は、生成した部分基底B^ と部分基底B^とをマスター鍵skとする。
(S104:マスター鍵記憶ステップ)
マスター鍵記憶部120は、(S102)で生成した公開パラメータpkを記憶装置に記憶する。また、マスター鍵記憶部120は、(S103)で生成したマスター鍵skを記憶装置に記憶する。
つまり、(S101)から(S103)において、鍵生成装置100は、数129に示すSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。そして、(S104)で、鍵生成装置100は、生成した公開パラメータpkとマスター鍵skとを記憶装置に記憶する。
なお、公開パラメータは、例えば、ネットワークを介して公開され、暗号化装置200や復号装置300が取得可能な状態にされる。
Figure 2013186181
次に、図10に基づき、KeyGenアルゴリズムの処理について説明する。
(S201:情報入力ステップ)
情報入力部130は、入力装置により、上述したアクセスストラクチャS:=(M,ρ)を入力する。なお、アクセスストラクチャSの行列Mの設定については、実現したいシステムの条件に応じて設定されるものである。また、アクセスストラクチャSのρは、例えば、復号鍵skの使用者の属性情報が設定されている。
(S202:fベクトル生成ステップ)
fベクトル生成部141は、処理装置により、r個の要素を有するベクトルfを数130に示すようにランダムに生成する。
Figure 2013186181
(S203:sベクトル生成ステップ)
sベクトル生成部142は、処理装置により、(S201)で入力したアクセスストラクチャSに含まれる(L行×r列)の行列Mと、(S202)で生成したベクトルfとに基づき、ベクトルs→T:=(s,...,sを数131に示すように生成する。
Figure 2013186181
また、sベクトル生成部142は、処理装置により、(S202)で生成したベクトルfに基づき、値sを数132に示すように生成する。
Figure 2013186181
(S204:乱数生成ステップ)
乱数生成部143は、処理装置により、乱数を数133に示すように生成する。
Figure 2013186181
(S205:鍵要素生成ステップ)
鍵要素生成部144は、処理装置により、復号鍵skの要素k を数134に示すように生成する。
Figure 2013186181
なお、上述したように、数113に基底Bと基底Bとに対して、数114である。したがって、数134は、基底B の基底ベクトルb 0,1の係数として−sを設定し、基底ベクトルb 0,1+1,...,b 0,1+u0の係数として0を設定し、基底ベクトルb 0,1+u0+1の係数として1を設定し、基底ベクトルb 0,1+u0+1+1,...,b 0,1+u0+1+w0の係数としてη0,1,...,η0,w0を設定し、基底ベクトルb 0,1+u0+1+w0+1,...,b 0,1+u0+1+w0+z0の係数として0を設定することを意味する。ここで、u0,w0,z0はそれぞれu,w,zのことである。
また、鍵要素生成部144は、処理装置により、i=1,...,Lの各整数iについて、復号鍵skの要素k を数135に示すように生成する。
Figure 2013186181
つまり、数135は、数134と同様に、ρ(i)が肯定形の組(t,v )である場合には、基底Bの基底ベクトルb の係数としてμtを設定し、基底ベクトルb の係数として−μを設定し、基底ベクトルb 2+1の係数としてs+θi,1を設定し、基底ベクトルb 2+2,...,b 2+nの係数としてθi,2,...,θi,nを設定し、基底ベクトルb 2+n+1,...,b 2+n+uの係数として0を設定し、基底ベクトルb 2+n+u+1,...,b 2+n+u+wの係数としてηi,1,...,ηi,wを設定し、基底ベクトルb 2+n+u+w+1,...,b 2+n+u+w+zの係数として0を設定することを意味する。
一方、ρ(i)が否定形の組¬(t,v )である場合には、基底Bの基底ベクトルb ,の係数としてμtを設定し、基底ベクトルb の係数として−μを設定し、基底ベクトルb 2+1,...,b 2+nの係数としてsi,1,...,si,nを設定し、基底ベクトルb 2+n+1,...,b 2+n+uの係数として0を設定し、基底ベクトルb 2+n+u+1,...,b 2+n+u+wの係数としてηi,1,...,ηi,wを設定し、基底ベクトルb 2+n+u+w+1,...,b 2+n+u+w+zの係数として0を設定することを意味する。
(S206:鍵配布ステップ)
鍵配布部150は、(S201)で入力したアクセスストラクチャSと、(S205)で生成されたk ,k ,...,k とを要素とする復号鍵skを、例えば通信装置によりネットワークを介して秘密裡に復号装置300へ配布する。もちろん、復号鍵skは、他の方法により復号装置300へ配布されてもよい。
つまり、(S201)から(S205)において、鍵生成装置100は、数136に示すKeyGenアルゴリズムを実行して、復号鍵skを生成する。そして、(S206)で、鍵生成装置100は、生成した復号鍵skを復号装置300へ配布する。
Figure 2013186181
暗号化装置200の機能と動作とについて説明する。
暗号化装置200は、公開パラメータ取得部210、情報入力部220、暗号化データ生成部230、データ送信部240を備える。また、暗号化データ生成部230は、乱数生成部231、暗号要素生成部232を備える。
図11に基づき、Encアルゴリズムの処理について説明する。
(S301:公開パラメータ取得ステップ)
公開パラメータ取得部210は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成した公開パラメータpkを取得する。
(S302:情報入力ステップ)
情報入力部220は、入力装置により、復号装置300へ送信するメッセージmを入力する。また、情報入力部220は、入力装置により、属性の集合Γ:={(t,x :=(xt,1,...,xt,n∈Fq))|1≦t≦d}を入力する。なお、tは、1以上d以下の全ての整数ではなく、1以上d以下の少なくとも一部の整数であってもよい。また、属性の集合Γは、例えば、復号可能なユーザの属性情報が設定されている。
(S303:乱数生成ステップ)
乱数生成部231は、処理装置により、乱数を数137に示すように生成する。
Figure 2013186181
(S304:暗号要素生成ステップ)
暗号要素生成部232は、処理装置により、暗号文ctΓの要素cを数138に示すように生成する。
Figure 2013186181
また、暗号要素生成部232は、処理装置により、属性情報Γに含まれる各整数tについて、暗号文ctΓの要素cを数139に示すように生成する。
Figure 2013186181
また、暗号要素生成部232は、処理装置により、暗号文ctΓの要素cd+1を数140に示すように生成する。
Figure 2013186181
(S305:データ送信ステップ)
データ送信部240は、(S302)で入力した属性の集合Γと、(S304)で生成されたc,c,cd+1とを要素とする暗号文ctΓを、例えば通信装置によりネットワークを介して復号装置300へ送信する。もちろん、暗号文ctΓは、他の方法により復号装置300へ送信されてもよい。
つまり、(S301)から(S304)において、暗号化装置200は、数141に示すEncアルゴリズムを実行して、暗号文ctΓを生成する。そして、(S305)で、暗号化装置200は生成した暗号文ctΓを復号装置300へ送信する。
Figure 2013186181
復号装置300の機能と動作とについて説明する。
復号装置300は、復号鍵取得部310、データ受信部320、スパンプログラム計算部330、補完係数計算部340、ペアリング演算部350、メッセージ計算部360を備える。
図12に基づき、Decアルゴリズムの処理について説明する。
(S401:復号鍵取得ステップ)
復号鍵取得部310は、例えば、通信装置によりネットワークを介して、鍵生成装置100から配布された復号鍵sk:=(S,k ,k ,...,k )を取得する。また、復号鍵取得部310は、鍵生成装置100が生成した公開パラメータpkを取得する。
(S402:データ受信ステップ)
データ受信部320は、例えば、通信装置によりネットワークを介して、暗号化装置200が送信した暗号文ctΓを受信する。
(S403:スパンプログラム計算ステップ)
スパンプログラム計算部330は、処理装置により、(S401)で取得した復号鍵skに含まれるアクセスストラクチャSが、(S402)で受信した暗号文ctΓに含まれるΓを受理するか否かを判定する。アクセスストラクチャSがΓを受理するか否かの判定方法は、「実施の形態1における第5.関数型暗号を実現するための概念」で説明した通りである。
スパンプログラム計算部330は、アクセスストラクチャSがΓを受理する場合(S403で受理)、処理を(S404)へ進める。一方、アクセスストラクチャSがΓを拒絶する場合(S403で拒絶)、暗号文ctΓを復号鍵skで復号できないとして処理を終了する。
(S404:補完係数計算ステップ)
補完係数計算部340は、処理装置により、数142となるIと、定数(補完係数){αi∈Iとを計算する。
Figure 2013186181
(S405:ペアリング演算ステップ)
ペアリング演算部350は、処理装置により、数143を計算して、セッション鍵K=g ζを生成する。
Figure 2013186181
なお、数144に示すように、数143を計算することにより鍵K=g ζが得られる。
Figure 2013186181
(S406:メッセージ計算ステップ)
メッセージ計算部360は、処理装置により、m’=cd+1/Kを計算して、メッセージm’(=m)を生成する。なお、cd+1は数142に示す通りg ζmであり、Kはg ζであるから、m’=cd+1/Kを計算すればメッセージmが得られる。
つまり、(S401)から(S406)において、復号装置300は、数145に示すDecアルゴリズムを実行して、メッセージm’(=m)を生成する。
Figure 2013186181
以上のように、実施の形態2に係る暗号システム10は、復号鍵skの要素k について、基底ベクトルb ,b の係数として、μtと−μとをそれぞれ設定した。また、暗号システム10は、暗号文ctΓの要素cについて、基底ベクトルb,bの係数として、σとσtとをそれぞれ設定した。
そのため、対応するインデックスtについての要素k と要素cとのペアリング演算を行うと、基底ベクトルb ,b と基底ベクトルb,bとの部分については、内積が0となり、キャンセルされる。つまり、対応するインデックスtについての要素k と要素cとのペアリング演算を行うと、基底ベクトルの係数として設定したインデックス部(基底ベクトルb ,b と基底ベクトルb,bとの部分)はキャンセルされ、残りの部分についてのペアリング演算の結果が得られる。
実施の形態2に係る暗号システム10は、インデックス部を設けることにより、各属性カテゴリで使用する基底を共通の基底(基底B及び基底B)とすることができる。その結果、公開パラメータには、基底B及び基底Bだけを含めておけばよく、後に属性カテゴリを追加する場合に、公開パラメータを再発行する必要がない。
また、実施の形態2に係る暗号システム10は、非特許文献29に記載された関数型暗号方式と比べ、公開パラメータやマスター秘密鍵のサイズが小さい。そのため、公開パラメータやマスター秘密鍵を用いた各演算を効率的に行うことができる。
なお、インデックス部については、内積した結果が0となればよい。そのため、上記説明では、基底ベクトルb ,b と基底ベクトルb,bとの2次元をインデックス部としが、これに限らず、3次元以上をインデックス部としてもよい。また、インデックス部への値の割り当ても上記説明のものに限らず、他の割り当てであってもよい。
また、上記説明では、関数型暗号方式について説明した。しかし、数146から数149に示すように、上記関数型暗号方式を属性ベース暗号方式に変更することもできる。なお、数146から数149では、Nを1+1+1+1+1=5とし、Nを2+2+8+2+2=16としている。つまり、u=1,w=1,z=1,n=2,u=8,w=2,z=2としている。この場合であっても、安全性を証明することが可能である。
Figure 2013186181
Figure 2013186181
Figure 2013186181
Figure 2013186181
実施の形態3.
この実施の形態では、実施の形態2と同様に、狭義の暗号処理方式について説明する。特に、この実施の形態では、Ciphertext−Policy関数型暗号(CP−FE)方式について説明する。
なお、Ciphertext−Policyとは、暗号文にPolicyが埋め込まれること、つまりアクセスストラクチャが埋め込まれることを意味する。
第1に、CP−FE方式の構成について説明する。
第2に、CP−FE方式を実現する暗号システム10の構成について説明する。
第3に、CP−FE方式について詳細に説明する。
<第1.CP−FE方式の構成>
CP−FE方式は、Setup、KeyGen、Enc、Decの4つのアルゴリズムを備える。
(Setup)
Setupアルゴリズムは、セキュリティパラメータλが入力され、公開パラメータpkと、マスター鍵skとを出力する確率的アルゴリズムである。
(KeyGen)
KeyGenアルゴリズムは、属性の集合であるΓ:={(t,x )|x ∈F ,1≦t≦d}と、公開パラメータpkと、マスター鍵skとを入力として、復号鍵skΓを出力する確率的アルゴリズムである。
(Enc)
Encアルゴリズムは、メッセージmと、アクセスストラクチャS:=(M,ρ)と、公開パラメータpkとを入力として、暗号文ctを出力する確率的アルゴリズムである。
(Dec)
Decアルゴリズムは、アクセスストラクチャSの下で暗号化された暗号文ctと、属性の集合であるΓに対する復号鍵skΓと、公開パラメータpkとを入力として、メッセージm、又は、識別情報⊥を出力するアルゴリズムである。
<第2.CP−FE方式を実現する暗号システム10の構成>
図13は、実施の形態3に係るCP−FE方式を実行する暗号システム10の構成図である。
暗号システム10は、鍵生成装置100、暗号化装置200、復号装置300を備える。
鍵生成装置100は、セキュリティパラメータλを入力としてSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。そして、鍵生成装置100は、生成した公開パラメータpkを公開する。また、鍵生成装置100は、属性の集合Γを入力としてKeyGenアルゴリズムを実行して、復号鍵skΓを生成して復号装置300へ秘密裡に配布する。
暗号化装置200は、メッセージmと、アクセスストラクチャSと、公開パラメータpkとを入力としてEncアルゴリズムを実行して、暗号文ctを生成する。暗号化装置200は、生成した暗号文ctを復号装置300へ送信する。
復号装置300は、公開パラメータpkと、復号鍵skと、暗号文ctとを入力としてDecアルゴリズムを実行して、メッセージm又は識別情報⊥を出力する。
<第3.CP−FE方式の詳細>
図14から図19に基づき、CP−FE方式、及び、CP−FE方式を実行する暗号システム10の機能と動作とについて説明する。
図14は、実施の形態3に係る鍵生成装置100の構成図である。図15は、実施の形態3に係る暗号化装置200の構成図である。図16は、実施の形態3に係る復号装置300の構成図である。
図17は、鍵生成装置100の動作を示すフローチャートであり、KeyGenアルゴリズムの処理を示すフローチャートである。図18は、暗号化装置200の動作を示すフローチャートであり、Encアルゴリズムの処理を示すフローチャートである。図19は、復号装置300の動作を示すフローチャートであり、Decアルゴリズムの処理を示すフローチャートである。
なお、以下の説明では、xt,1:=1であるとする。
Setupアルゴリズムの処理は、実施の形態2で説明した処理と同じであるため、説明を省略する。
鍵生成装置100の機能と動作とについて説明する。
鍵生成装置100は、マスター鍵生成部110、マスター鍵記憶部120、情報入力部130、復号鍵生成部140、鍵配布部150を備える。また、復号鍵生成部140は、乱数生成部143、鍵要素生成部144を備える。
図17に基づき、KeyGenアルゴリズムの処理について説明する。
(S501:情報入力ステップ)
情報入力部130は、入力装置により、属性の集合Γ:={(t,x :=(xt,1,...,xt,n∈F ))|1≦t≦d}を入力する。なお、属性の集合Γは、例えば、復号鍵skΓの使用者の属性情報が設定されている。
(S502:乱数生成ステップ)
乱数生成部143は、処理装置により、乱数を数150に示すように生成する。
Figure 2013186181
(S503:鍵要素生成ステップ)
鍵要素生成部144は、処理装置により、復号鍵skΓの要素k を数151に示すように生成する。
Figure 2013186181
また、鍵要素生成部144は、処理装置により、属性の集合Γに含まれる各整数tについて、復号鍵skΓの要素k を数152に示すように生成する。
Figure 2013186181
(S504:鍵配布ステップ)
鍵配布部150は、(S501)で入力した属性の集合Γと、(S503)で生成されたk ,k とを要素とする復号鍵skΓを、例えば通信装置によりネットワークを介して秘密裡に復号装置300へ配布する。もちろん、復号鍵skΓは、他の方法により復号装置300へ配布されてもよい。
つまり、(S501)から(S503)において、鍵生成装置100は、数153に示すKeyGenアルゴリズムを実行して、復号鍵skΓを生成する。そして、(S504)で、鍵生成装置100は、生成した復号鍵skΓを復号装置300へ配布する。
Figure 2013186181
暗号化装置200の機能と動作とについて説明する。
暗号化装置200は、公開パラメータ取得部210、情報入力部220、暗号化データ生成部230、データ送信部240を備える。また、暗号化データ生成部230は、乱数生成部231、暗号要素生成部232、fベクトル生成部233、sベクトル生成部234を備える。
図18に基づき、Encアルゴリズムの処理について説明する。
(S601:公開パラメータ取得ステップ)
公開パラメータ取得部210は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成した公開パラメータpkを取得する。
(S602:情報入力ステップ)
情報入力部220は、入力装置により、アクセスストラクチャS:=(M,ρ)を入力する。なお、アクセスストラクチャSの設定については、実現したいシステムの条件に応じて設定されるものである。また、アクセスストラクチャSのρは、例えば、復号可能なユーザの属性情報が設定されている。
また、情報入力部220は、入力装置により、復号装置300へ送信するメッセージmを入力する。
(S603:fベクトル生成ステップ)
fベクトル生成部233は、処理装置により、r個の要素を有するベクトルfを数154に示すようにランダムに生成する。
Figure 2013186181
(S604:sベクトル生成ステップ)
sベクトル生成部234は、処理装置により、(S602)で入力したアクセスストラクチャSに含まれる(L行×r列)の行列Mと、(S603)で生成したベクトルfとに基づき、ベクトルs→T:=(s,...,sを数155に示すように生成する。
Figure 2013186181
また、sベクトル生成部234は、処理装置により、(S603)で生成したベクトルfに基づき、値sを数156に示すように生成する。
Figure 2013186181
(S605:乱数生成ステップ)
乱数生成部231は、処理装置により、乱数を数157に示すように生成する。
Figure 2013186181
(S606:暗号要素生成ステップ)
暗号要素生成部232は、処理装置により、暗号化データcの要素cを数158に示すように生成する。
Figure 2013186181
また、暗号要素生成部232は、処理装置により、i=1,...,Lの各整数iについて、暗号化データcの要素cを数159に示すように生成する。
Figure 2013186181
また、暗号要素生成部232は、処理装置により、暗号化データcの要素cd+1を数160に示すように生成する。
Figure 2013186181
(S607:データ送信ステップ)
データ送信部240は、(S602)で入力したアクセスストラクチャSと、(S606)で生成されたc,c,...,c,cd+1とを要素とする暗号文ctを、例えば通信装置によりネットワークを介して復号装置300へ送信する。もちろん、暗号文ctは、他の方法により復号装置300へ送信されてもよい。
つまり、(S601)から(S606)において、暗号化装置200は、数161に示すEncアルゴリズムを実行して、暗号文ctを生成する。そして、(S607)で、暗号化装置200は生成した暗号文ctを復号装置300へ送信する。
Figure 2013186181
復号装置300の機能と動作とについて説明する。
復号装置300は、復号鍵取得部310、データ受信部320、スパンプログラム計算部330、補完係数計算部340、ペアリング演算部350、メッセージ計算部360を備える。
図15に基づき、Decアルゴリズムの処理について説明する。
(S701:復号鍵取得ステップ)
復号鍵取得部310は、例えば、通信装置によりネットワークを介して、鍵生成装置100から配布された復号鍵skΓを取得する。また、復号鍵取得部310は、鍵生成装置100が生成した公開パラメータpkを取得する。
(S702:データ受信ステップ)
データ受信部320は、例えば、通信装置によりネットワークを介して、暗号化装置200が送信した暗号文ctを受信する。
(S703:スパンプログラム計算ステップ)
スパンプログラム計算部330は、処理装置により、(S702)で取得した暗号文ctに含まれるアクセスストラクチャSが、(S701)で受信した復号鍵skΓに含まれるΓを受理するか否かを判定する。アクセスストラクチャSがΓを受理するか否かの判定方法は、「実施の形態1における第5.関数型暗号を実現するための概念」で説明した通りである。
スパンプログラム計算部330は、アクセスストラクチャSがΓを受理する場合(S703で受理)、処理を(S704)へ進める。一方、アクセスストラクチャSがΓを拒絶する場合(S703で拒絶)、暗号文ctを復号鍵skΓで復号できないとして処理を終了する。
(S704)から(S706)は、実施の形態2における図12に示す(S404)と(S406)と同様である。
つまり、(S701)から(S706)において、暗号化装置200は、数162に示すDecアルゴリズムを実行して、メッセージm’(=m)を生成する。
Figure 2013186181
以上のように、実施の形態3に係る暗号システム10は、実施の形態2に係る暗号システム10と同様に、インデックス部を設けることにより、各属性カテゴリで使用する基底を共通の基底(基底B及び基底B)とすることができる。その結果、公開パラメータには、基底B及び基底Bだけを含めておけばよく、後に属性カテゴリを追加する場合に、公開パラメータを再発行する必要がない。
なお、実施の形態2と同様に、インデックス部については、内積した結果が0となればよい。そのため、上記説明では、基底ベクトルb ,b と基底ベクトルb,bとの2次元をインデックス部としが、これに限らず、3次元以上をインデックス部としてもよい。また、インデックス部への値の割り当ても上記説明のものに限らず、他の割り当てであってもよい。
また、上記説明では、関数型暗号方式について説明した。しかし、数163から数167に示すように、上記関数型暗号方式を属性ベース暗号方式に変更することもできる。なお、数163から数167では、Nを1+1+1+1+1=5とし、Nを2+2+8+2+2=16としている。つまり、u=1,w=1,z=1,n=2,u=8,w=2,z=2としている。この場合であっても、安全性を証明することが可能である。
Figure 2013186181
Figure 2013186181
Figure 2013186181
Figure 2013186181
また、実施の形態2ではKP−FE方式について説明し、実施の形態3ではCP−FE方式について説明した。これらと同様に、非特許文献30に記載されたUnified−Policy FE(UP−FE)も、属性カテゴリを追加する場合に、公開パラメータを再発行する必要がない構成とすることができる。
実施の形態4.
この実施の形態では、実施の形態2,3と同様に、狭義の暗号処理方式について説明する。特に、この実施の形態では、階層的内積述語暗号(HIPE)方式について説明する。
なお、HIPE方式とは、権限委譲可能な内積述語暗号方式である。権限委譲とは、上位の鍵を有する利用者が、その鍵(上位の鍵)よりも機能が制限された下位の鍵を生成することである。機能が制限されたとは、上位の鍵で復号可能な暗号文のうち、一部の暗号文のみ下位の鍵で復号可能であるという意味である。内積述語暗号方式は、実施の形態1で説明した通り、関数型暗号方式におけるアクセスストラクチャの設計を限定した場合に相当する。
HIPE方式には、効率的な第1方式と、効率は第1方式よりも劣るが、暗号文に設定された属性情報の秘匿性まで保証される第2方式とがある(非特許文献29参照)。ここでは、一例として、第2方式について、公開パラメータを再発行することなく、属性カテゴリの追加を可能とした方式を説明する。しかし、非特許文献29に記載されたアルゴリズムに対して同様の変更を加えることにより、第1方式についても、公開パラメータを再発行することなく、属性カテゴリの追加を可能とすることができる。
第1に、HIPE方式の構成について説明する。
第2に、HIPE方式を実現する暗号システム10の構成について説明する。
第3に、HIPE方式について詳細に説明する。
<第1.HIPE方式の構成>
HIPE方式は、Setup、KeyGen、Enc、Dec、Delegateの5つのアルゴリズムを備える。
(Setup)
Setupアルゴリズムは、セキュリティパラメータ1λを入力として、マスター公開鍵pkとマスター秘密鍵skとを出力する確率的アルゴリズムである。マスター秘密鍵skは最も上位の鍵である。
(KeyGen)
KeyGenアルゴリズムは、マスター公開鍵pkとマスター秘密鍵skと述語情報(v ,...,v )(1≦L≦d)とを入力として、第L層目の秘密鍵skを出力する確率的アルゴリズムである。
(Enc)
Encアルゴリズムは、マスター公開鍵pkと属性情報(x ,...,x )(1≦h≦d)とメッセージmとを入力として、暗号文ctを出力する確率的アルゴリズムである。
(Dec)
Decアルゴリズムは、マスター公開鍵pkと第L層目の秘密鍵skと暗号文ctとを入力として、メッセージm又は識別情報⊥を出力する確率的アルゴリズムである。
(Delegate
Delegateは、マスター公開鍵pkと第L層目の秘密鍵skと第L+1層目の述語情報v L+1(L+1≦d)とを入力として、第L+1層目の秘密鍵skL+1を出力する確率的アルゴリズムである。つまり、Delegateアルゴリズムでは、下位の秘密鍵が出力される。
<第2.HIPE方式を実現する暗号システム10の構成>
図20は、実施の形態4に係るHIPE方式を実行する暗号システム10の構成図である。
暗号システム10は、鍵生成装置100、暗号化装置200、復号装置300、鍵委譲装置400を備える。なお、ここでは、復号装置300が、鍵委譲装置400を備えるものとして説明するが、鍵委譲装置400は、復号装置300とは別に設けられていてもよい。
鍵生成装置100は、セキュリティパラメータλを入力としてSetupアルゴリズムを実行して、マスター公開鍵pkとマスター秘密鍵skとを生成する。そして、鍵生成装置100は、生成したマスター公開鍵pkを公開する。また、鍵生成装置100は、マスター公開鍵pkとマスター秘密鍵skと述語情報(v ,...,v )(1≦L≦d)とを入力としてKeyGenアルゴリズムを実行して、第L層目の秘密鍵skを生成して第L層目の復号装置300へ秘密裡に配布する。
暗号化装置200は、マスター公開鍵pkと属性情報(x ,...,x )(1≦h≦d)とメッセージmとを入力としてEncアルゴリズムを実行して、暗号文ctを生成する。暗号化装置200は、生成した暗号文ctを復号装置300へ送信する。
復号装置300は、マスター公開鍵pkと第L層目の秘密鍵skと暗号文ctとを入力としてDecアルゴリズムを実行して、メッセージm又は識別情報⊥を出力する。
鍵委譲装置400は、マスター公開鍵pkと第L層目の秘密鍵skと第L+1層目の述語情報v L+1(L+1≦d)とを入力としてDelegateアルゴリズムを実行して、第L+1層目の秘密鍵skL+1を生成して第L+1層目の復号装置300へ秘密裡に配布する。
<第3.HIPE方式の詳細>
図21から図29に基づき、実施の形態4に係るHIPE方式、及び、HIPE方式を実行する暗号システム10の機能と動作とについて説明する。
図21は、実施の形態4に係る鍵生成装置100の構成図である。図22は、実施の形態4に係る暗号化装置200の構成図である。図23は、実施の形態4に係る復号装置300の構成図である。図24は、実施の形態4に係る鍵委譲装置400の構成図である。
図25と図26とは、鍵生成装置100の動作を示すフローチャートである。なお、図25はSetupアルゴリズムの処理を示すフローチャートであり、図26はKeyGenアルゴリズムの処理を示すフローチャートである。図27は、暗号化装置200の動作を示すフローチャートであり、Encアルゴリズムの処理を示すフローチャートである。図28は、復号装置300の動作を示すフローチャートであり、Decアルゴリズムの処理を示すフローチャートである。図29は、鍵委譲装置400の動作を示すフローチャートであり、Delegateアルゴリズムの処理を示すフローチャートである。
鍵生成装置100の機能と動作とについて説明する。
鍵生成装置100は、マスター鍵生成部110、マスター鍵記憶部120、情報入力部130、復号鍵生成部140、鍵配布部150を備える。また、復号鍵生成部140は、乱数生成部143、鍵要素生成部144、ランダム化要素生成部145、委譲要素生成部146を備える。
まず、図25に基づき、Setupアルゴリズムの処理について説明する。
S801は、実施の形態2における図9に示す(S101)と同様である。
(S802:公開パラメータ生成ステップ)
マスター鍵生成部110は、処理装置により、(S801)で生成した基底Bの部分基底B^と、基底Bの部分基底B^と、基底B の部分基底B^ 0,pkと、基底Bの部分基底B^ pkとを数167に示すように生成する。
Figure 2013186181
マスター鍵生成部110は、生成した部分基底B^と部分基底B^と部分基底B^ 0,pkと部分基底B^ pkと、(S801)で入力されたセキュリティパラメータλ(1λ)と、(S801)で生成したparamとを合わせて、公開パラメータpkとする。
(S803:マスター鍵生成ステップ)
マスター鍵生成部110は、処理装置により、(S801)で生成した基底B の部分基底B^ 0,skと、基底Bの部分基底B^ skとを数168に示すように生成する。
Figure 2013186181
マスター鍵生成部110は、生成した部分基底B^ と部分基底B^とをマスター鍵skとする。
(S804:マスター鍵記憶ステップ)
マスター鍵記憶部120は、(S802)で生成した公開パラメータpkを記憶装置に記憶する。また、マスター鍵記憶部120は、(S803)で生成したマスター鍵skを記憶装置に記憶する。
つまり、(S801)から(S803)において、鍵生成装置100は、数169に示すSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。そして、(S804)で、鍵生成装置100は、生成した公開パラメータpkとマスター鍵skとを記憶装置に記憶する。
なお、公開パラメータは、例えば、ネットワークを介して公開され、暗号化装置200や復号装置300が取得可能な状態にされる。
Figure 2013186181
次に、図26に基づき、鍵生成装置100が実行するKeyGenアルゴリズムの処理について説明する。
(S901:情報入力ステップ)
情報入力部130は、入力装置により、述語情報(v ,...,v )を入力する。i=1,...,Lの各整数について、v :=vi,1,...,vi,nである。なお、述語情報としては、鍵を使用する者の属性が入力される。
(S902:乱数生成ステップ)
乱数生成部143は、処理装置により、乱数を数170に示すように生成する。
Figure 2013186181
また、sdec,0と、sran,1,j,0と、sran,2,τ,0と、sdel,(τ,ι),0とを数171に示すように設定する。
Figure 2013186181
(S903:鍵要素生成ステップ)
鍵要素生成部144は、処理装置により、復号鍵skの要素である鍵要素k L,decを数172に示すように生成する。
Figure 2013186181
(S904:第1ランダム化要素生成ステップ)
ランダム化要素生成部145は、処理装置により、j=1,...,2Lの各整数jについて、復号鍵skの要素である第1ランダム化要素k L,ran,1,jを数173に示すように生成する。
Figure 2013186181
(S905:第2ランダム化要素生成ステップ)
ランダム化要素生成部145は、処理装置により、τ=L+1,...,dの各整数τについて、復号鍵skの要素である第2ランダム化要素k L,ran,2,τを数174に示すように生成する。
Figure 2013186181
(S906:委譲要素生成ステップ)
委譲要素生成部146は、処理装置により、τ=L+1,...,dの各整数τと、各整数τについてι=1,2の各整数ιとについて、復号鍵skの要素である委譲要素k L,del,(τ,ι)を数175に示すように生成する。
Figure 2013186181
(S907:鍵配布ステップ)
鍵配布部150は、鍵要素k L,decと、第1ランダム化要素k L,ran,1,jと、第2ランダム化要素k L,ran,2,τと、委譲要素k L,del,(τ,ι)とを要素とする復号鍵skを、例えば通信装置によりネットワークを介して秘密裡に復号装置300へ配布する。もちろん、復号鍵skは、他の方法により復号装置300へ配布されてもよい。
つまり、(S901)から(S906)において、鍵生成装置100は、数176、数177に示すKeyGenアルゴリズムを実行して、復号鍵skを生成する。そして、(S907)で、鍵生成装置100は、生成された復号鍵skを復号装置300へ配布する。
Figure 2013186181
Figure 2013186181
暗号化装置200の機能と動作とについて説明する。
暗号化装置200は、公開パラメータ取得部210、情報入力部220、暗号化データ生成部230、データ送信部240を備える。また、暗号化データ生成部230は、乱数生成部231、暗号要素生成部232を備える。
図27に基づき、暗号化装置200が実行するEncアルゴリズムの処理について説明する。
(S1001:マスター公開鍵取得ステップ)
公開パラメータ取得部210は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成したマスター公開鍵pkを取得する。
(S1002:情報入力ステップ)
情報入力部220は、入力装置により、属性情報(x ,...,x )を入力する。i=1,...,Lの各整数について、x :=xi,1,...,xi,Lである。なお、属性情報としては、暗号化したメッセージを復号可能な者の属性が入力される。
また、情報入力部220は、入力装置により、暗号化するメッセージmを入力する。
(S1003:乱数生成ステップ)
乱数生成部231は、処理装置により、乱数を数178に示すように生成する。
Figure 2013186181
(S1004:暗号要素c1生成ステップ)
暗号要素生成部232は、処理装置により、暗号文ctの要素である暗号要素cを数179に示すように生成する。
Figure 2013186181
(S1005:暗号要素c2生成ステップ)
暗号要素生成部232は、処理装置により、暗号文ctの要素である暗号要素cを数180に示すように生成する。
Figure 2013186181
(S1006:データ送信ステップ)
データ送信部240は、暗号要素cと、暗号要素cとを含む暗号文ctを、例えば通信装置によりネットワークを介して復号装置300へ送信する。もちろん、暗号文ctは、他の方法により復号装置300へ送信されてもよい。
つまり、(S1001)から(S1005)において、暗号化装置200は、数181に示すEncアルゴリズムを実行して、暗号文ctを生成する。そして、(S1006)で、暗号化装置200は、生成された暗号文ctを復号装置300へ送信する。
Figure 2013186181
復号装置300の機能と動作とについて説明する。
復号装置300は、復号鍵取得部310、データ受信部320、ペアリング演算部350、メッセージ計算部360を備える。
図28に基づき、復号装置300が実行するDecアルゴリズムの処理について説明する。
(S1101:復号鍵取得ステップ)
復号鍵取得部310は、例えば、通信装置によりネットワークを介して、復号鍵skを取得する。また、復号鍵取得部310は、鍵生成装置100が生成した公開パラメータpkを取得する。
(S1102:データ受信ステップ)
データ受信部320は、例えば、通信装置によりネットワークを介して、暗号化装置200が送信した暗号文ctを受信する。
(S1103:ペアリング演算ステップ)
ペアリング演算部350は、処理装置により、数182に示すペアリング演算を行い、セッション鍵K=g ζを計算する。
Figure 2013186181
(S1104:メッセージ計算ステップ)
メッセージ計算部360は、処理装置により、暗号要素c2をセッション鍵Kで割ることにより、メッセージm’(=m)を計算する。
つまり、(S1101)から(S1104)において、復号装置300は、数183に示すDecアルゴリズムを実行して、メッセージm’(=m)を計算する。
Figure 2013186181
鍵委譲装置400の機能と動作とについて説明する。
鍵委譲装置400は、復号鍵取得部410、情報入力部420、委譲鍵生成部430、鍵配布部440を備える。また、委譲鍵生成部430は、乱数生成部431、下位鍵要素生成部432、下位ランダム化要素生成部433、下位委譲要素生成部434を備える。
図29に基づき、鍵委譲装置400が実行するDelegateアルゴリズムの処理について説明する。
(S1201:復号鍵取得ステップ)
復号鍵取得部410は、例えば、通信装置によりネットワークを介して、復号鍵skを取得する。また、復号鍵取得部410は、鍵生成装置100が生成した公開パラメータpkを取得する。
(S1202:情報入力ステップ)
情報入力部420は、入力装置により、述語情報v L+1:=(vL+1,i(i=1,...,nL+1))を入力する。なお、述語情報としては、鍵を委譲される者の属性が入力される。
(S1203:乱数生成ステップ)
乱数生成部431は、処理装置により、乱数を数184に示すように生成する。
Figure 2013186181
(S1204:下位鍵要素生成ステップ)
下位鍵要素生成部432は、処理装置により、委譲鍵skL+1の要素である下位鍵要素k L+1,decを数185に示すように生成する。
Figure 2013186181
(S1205:第1下位ランダム化要素生成ステップ)
下位ランダム化要素生成部433は、処理装置により、j’=1,...,2(L+1)の各整数j’について、委譲鍵skL+1の要素である第1下位ランダム化要素k L+1,ran,1,j’を数186に示すように生成する。
Figure 2013186181
(S1206:第2下位ランダム化要素生成ステップ)
下位ランダム化要素生成部433は、処理装置により、τ=L+2,...,dの各整数τについて、委譲鍵skL+1の要素である第2下位ランダム化要素k L+1,ran,2,τを数187に示すように生成する。
Figure 2013186181
(S1207:下位委譲要素生成ステップ)
下位委譲要素生成部434は、処理装置により、τ=L+2,...,dの各整数τと、各整数τについてι=1,...,nの各整数ιとについて、委譲鍵skL+1の要素である下位委譲要素k L+1,del,(τ,ι)を数188に示すように生成する。
Figure 2013186181
(S1208:鍵配布ステップ)
鍵配布部150は、下位鍵要素k L+1,decと、第1下位ランダム化要素k L+1,ran,1,j’と、第2下位ランダム化要素k L+1,ran,2,τと、下位委譲要素k L+1,del,(τ,ι)とを要素とする委譲鍵skL+1(下位の復号鍵)を、例えば通信装置によりネットワークを介して秘密裡に下位の復号装置300へ配布する。もちろん、委譲鍵skL+1は、他の方法により下位の復号装置300へ配布されてもよい。
つまり、(S1201)から(S1207)において、鍵委譲装置400は、数189に示すDelegateアルゴリズムを実行して、委譲鍵skL+1を生成する。そして、(S1208)で、鍵委譲装置400は、生成された委譲鍵skL+1を下位の復号装置300へ配布する。
Figure 2013186181
以上のように、実施の形態4に係る暗号システム10は、実施の形態2,3に係る暗号システム10と同様に、インデックス部を設けることにより、各属性カテゴリで使用する基底を共通の基底(基底B及び基底B)とすることができる。その結果、公開パラメータには、基底B及び基底Bだけを含めておけばよく、後に属性カテゴリを追加する場合に、公開パラメータを再発行する必要がない。
なお、実施の形態2,3と同様に、インデックス部については、内積した結果が0となればよい。そのため、上記説明では、基底ベクトルb ,b と基底ベクトルb,bとの2次元をインデックス部としが、これに限らず、3次元以上をインデックス部としてもよい。また、インデックス部への値の割り当ても上記説明のものに限らず、他の割り当てであってもよい。
また、上記説明では、関数型暗号方式を元にしたHIPE方式について説明した。しかし、数190から数195に示すように、属性ベース暗号方式を元にしたHIPE方式に変更することもできる。なお、数190から数195では、Nを1+1+1+1+1=5とし、Nを2+2+8+2+2=16としている。つまり、u=1,w=1,z=1,n=2,u=8,w=2,z=2としている。この場合であっても、安全性を証明することが可能である。
Figure 2013186181
Figure 2013186181
Figure 2013186181
Figure 2013186181
Figure 2013186181
Figure 2013186181
実施の形態5.
この実施の形態では、署名方式について説明する。特に、この実施の形態では、実施の形態3で説明したCP−FE方式に基づく、署名方式について説明する。
第1に、署名方式の構成について説明する。
第2に、署名方式を実現する暗号システム10の構成について説明する。
第3に、署名方式について詳細に説明する。
<第1.署名方式の構成>
署名方式は、Setup、KeyGen、Sig、Verの4つのアルゴリズムを備える。
(Setup)
Setupアルゴリズムは、セキュリティパラメータλが入力され、公開パラメータpkと、マスター鍵skとを出力する確率的アルゴリズムである。
(KeyGen)
KeyGenアルゴリズムは、属性の集合であるΓ:={(t,x )|x ∈F ,1≦t≦d}と、公開パラメータpkと、マスター鍵skとを入力として、署名鍵skΓを出力する確率的アルゴリズムである。
(Sig)
Sigアルゴリズムは、メッセージmと、署名鍵skΓと、アクセスストラクチャS:=(M,ρ)と、公開パラメータpkとを入力として、署名データsigを出力する確率的アルゴリズムである。
(Ver)
Verアルゴリズムは、メッセージmと、アクセスストラクチャS:=(M,ρ)と、署名データsigと、公開パラメータpkとを入力として、署名の検証に成功したことを示す値“1”、又は、署名の検証に失敗したことを示す値“0”を出力するアルゴリズムである。
<第2.署名方式を実現する暗号システム10の構成>
図30は、実施の形態5に係る署名方式を実行する暗号システム10の構成図である。
暗号システム10は、鍵生成装置100、署名装置500、検証装置600を備える。
鍵生成装置100は、セキュリティパラメータλを入力としてSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。そして、鍵生成装置100は、生成した公開パラメータpkを公開する。また、鍵生成装置100は、属性の集合Γを入力としてKeyGenアルゴリズムを実行して、署名鍵skΓを生成して署名装置500へ秘密裡に配布する。
署名装置500は、メッセージmと、アクセスストラクチャSと、公開パラメータpkと、署名鍵skΓとを入力としてSigアルゴリズムを実行して、署名情報s→*を生成する。署名装置500は、生成した署名情報s→*と、メッセージmと、アクセスストラクチャSとを検証装置600へ送信する。
検証装置600は、署名情報s→*と、メッセージmと、アクセスストラクチャSと、公開パラメータpkとを入力としてVerアルゴリズムを実行して、値“1”、又は、値“0”を出力する。
<第3.署名方式の詳細>
図31から図37に基づき、署名方式、及び、署名方式を実行する暗号システム10の機能と動作とについて説明する。
図31は、実施の形態5に係る鍵生成装置100の構成図である。図32は、実施の形態5に係る署名装置500の構成図である。図33は、実施の形態5に係る検証装置600の構成図である。
図34と図35とは、鍵生成装置100の動作を示すフローチャートである。なお、図34はSetupアルゴリズムの処理を示すフローチャートであり、図35はKeyGenアルゴリズムの処理を示すフローチャートである。図36は、署名装置500の動作を示すフローチャートであり、Sigアルゴリズムの処理を示すフローチャートである。図37は、検証装置600の動作を示すフローチャートであり、Verアルゴリズムの処理を示すフローチャートである。
なお、以下の説明において、H:=(KHλ,Hhk λ,D)は、衝突困難ハッシュ関数である(非特許文献30参照)。衝突困難ハッシュ関数とは、出力が同じになる2つの入力を見つけることが困難なハッシュ関数である。
具体的には、アルゴリズムGbpgに関する衝突困難ハッシュ関数系Hと、多項式poly(λ)とについて以下の2つのことが言える。
1.鍵空間系は、λによって索引付けされる。各鍵空間は、KHλによって示されるビット列における確率空間である。1λを入力とした場合の出力分布がKHλと等しい確率的多項式時間アルゴリズムが存在する。
2.ハッシュ関数系は、λと、KHλからランダムに選択されたhkと、D:={0,1}poly(λ)とによって索引付けされる。ここで、各関数Hhk λ,Dは、Dの要素からF への写像である。なお、qは、アルゴリズムGbpg(1λ)の出力paramの最初の要素である。1λとhkとd∈Dとを入力として、Hhk λ,D(d)を出力する決定的多項式時間アルゴリズムがある。
鍵生成装置100の機能と動作とについて説明する。
鍵生成装置100は、マスター鍵生成部110、マスター鍵記憶部120、情報入力部130、復号鍵生成部140、鍵配布部150を備える。また、復号鍵生成部140は、乱数生成部143、鍵要素生成部144を備える。
まず、図34に基づき、Setupアルゴリズムの処理について説明する。
(S1301)は、実施の形態2における図9に示す(S101)と原則として同様である。但し、t=0,1,d+1について、(4)から(8)までの処理を実行する点と、Nが1+u+w+zである点とが異なる。なお、Nd+1は、2+ud+1+wd+1+zd+1であり、ud+1,wd+1,zd+1はそれぞれ1以上の整数である。
(S1302:ハッシュキー生成ステップ)
マスター鍵生成部110は、処理装置により、数196を計算して、ハッシュキーhkをランダムに生成する。
Figure 2013186181
(S1303:公開パラメータ生成ステップ)
マスター鍵生成部110は、処理装置により、(S1301)で生成した基底Bの部分基底B^と、基底Bの部分基底B^と、基底Bd+1の部分基底B^d+1と、基底B の部分基底B^ と、基底Bの部分基底B^と、基底B d+1の部分基底B^ d+1とを数197に示すように生成する。
Figure 2013186181
マスター鍵生成部110は、生成した部分基底B^と部分基底B^と部分基底B^d+1と部分基底B^ と部分基底B^と部分基底B^ d+1と、(S1301)で入力されたセキュリティパラメータλ(1λ)と、(S1301)で生成したparamと、(S1302)で生成したハッシュキーhkとを合わせて、公開パラメータpkとする。
(S1304:マスター鍵生成ステップ)
マスター鍵生成部110は、基底B^ の基底ベクトルb 0,1をマスター鍵skとする。
(S1305:マスター鍵記憶ステップ)
マスター鍵記憶部120は、(S1303)で生成した公開パラメータpkを記憶装置に記憶する。また、マスター鍵記憶部120は、(S1304)で生成したマスター鍵skを記憶装置に記憶する。
つまり、(S1301)から(S1304)において、鍵生成装置100は、数198に示すSetupアルゴリズムを実行して、公開パラメータpkとマスター鍵skとを生成する。そして、(S1305)で、鍵生成装置100は、生成した公開パラメータpkとマスター鍵skとを記憶装置に記憶する。
なお、公開パラメータは、例えば、ネットワークを介して公開され、署名装置500や検証装置600が取得可能な状態にされる。
Figure 2013186181
図35に基づき、KeyGenアルゴリズムの処理について説明する。
(S1401:情報入力ステップ)
情報入力部130は、入力装置により、属性の集合Γ:={(t,x :=(xt,1,...,xt,n∈F ))|1≦t≦d}を入力する。なお、属性の集合Γは、例えば、署名鍵skΓの使用者の属性情報が設定されている。
(S1402:乱数生成ステップ)
乱数生成部143は、処理装置により、乱数を数199に示すように生成する。
Figure 2013186181
(S1403:鍵要素生成ステップ)
鍵要素生成部144は、処理装置により、署名鍵skΓの要素k を数200に示すように生成する。
Figure 2013186181
また、鍵要素生成部144は、処理装置により、属性の集合Γに含まれる各整数tについて、署名鍵skΓの要素k を数201に示すように生成する。
Figure 2013186181
また、鍵要素生成部144は、処理装置により、署名鍵skΓの要素k d+1,k d+2を数202に示すように生成する。
Figure 2013186181
(S1404:鍵配布ステップ)
鍵配布部150は、(S1401)で入力した属性の集合Γと、(S1403)で生成されたk ,k ,k d+1,k d+2とを要素とする署名鍵skΓを、例えば通信装置によりネットワークを介して秘密裡に署名装置500へ配布する。もちろん、署名鍵skΓは、他の方法により署名装置500へ配布されてもよい。
つまり、(S1401)から(S1403)において、鍵生成装置100は、数203に示すKeyGenアルゴリズムを実行して、署名鍵skΓを生成する。そして、(S1404)で、鍵生成装置100は、生成した署名鍵skΓを署名装置500へ配布する。
Figure 2013186181
署名装置500の機能と動作とについて説明する。
署名装置500は、署名鍵取得部510、情報入力部520、補完係数計算部530、署名データ生成部540、データ送信部550を備える。また、署名データ生成部540は、乱数生成部541、署名要素生成部542を備える。
図36に基づき、Sigアルゴリズムの処理について説明する。
(S1501:署名鍵取得ステップ)
署名鍵取得部510は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成した署名鍵skΓを取得する。また、署名鍵取得部510は、鍵生成装置100が生成した公開パラメータpkを取得する。
(S1502:情報入力ステップ)
情報入力部520は、入力装置により、アクセスストラクチャS:=(M,ρ)を入力する。なお、アクセスストラクチャSの行列Mの設定については、実現したいシステムの条件に応じて設定されるものである。
また、情報入力部520は、入力装置により、署名を付すメッセージmを入力する。
(S1503:スパンプログラム計算ステップ)
補完係数計算部530は、処理装置により、(S1502)で入力したアクセスストラクチャSが、(S1501)で取得した署名鍵skΓに含まれる属性の集合Γを受理するか否かを判定する。
なお、アクセスストラクチャが属性の集合を受理するか否かの判定方法は、「実施の形態1における第5.関数型暗号を実現するための概念」で説明した通りである。
補完係数計算部530は、アクセスストラクチャSが属性の集合Γを受理する場合(S1503で受理)、処理を(S1504)へ進める。一方、アクセスストラクチャSが属性の集合Γを拒絶する場合(S1503で拒絶)、処理を終了する。
(S1504:補完係数計算ステップ)
補完係数計算部530は、処理装置により、数204となるIと、Iに含まれる各整数iについて定数(補完係数)αとを計算する。
Figure 2013186181
(S1505:乱数生成ステップ)
乱数生成部541は、処理装置により、乱数を数205に示すように生成する。
Figure 2013186181
(S1506:署名要素生成ステップ)
署名要素生成部542は、処理装置により、署名データsigの要素である署名要素s を数206に示すように生成する。
Figure 2013186181
ここで、r は、数207(数110から数112及びこれらの数式の説明を参照)である。
Figure 2013186181
また、署名要素生成部542は、処理装置により、i=1,...,Lの各整数iについて、署名データsigの要素である署名要素s を数208に示すように生成する。
Figure 2013186181
ここで、r は、数209である。
Figure 2013186181
また、γとy :=(yi,i’(i’=1,...,n)とは、数210である。
Figure 2013186181
また、署名要素生成部542は、処理装置により、署名データsigの要素である署名要素s L+1を数211に示すように生成する。
Figure 2013186181
ここで、r L+1は、数212である。
Figure 2013186181
(S1507:データ送信ステップ)
データ送信部550は、署名要素s と、署名要素s (i=1,...,L)と、署名要素s L+1と、メッセージmと、アクセスストラクチャS:=(M,ρ)とを含む署名データsigを、例えば通信装置によりネットワークを介して検証装置600へ送信する。もちろん、署名データsigは、他の方法により検証装置600へ送信されてもよい。
つまり、(S1501)から(S1506)において、署名装置500は、数213に示すSigアルゴリズムを実行して、署名データsigを生成する。そして、(S1507)で、署名装置500は、生成した署名データsigを検証装置600へ送信する。
Figure 2013186181
検証装置600の機能と動作とについて説明する。
検証装置600は、公開パラメータ取得部610、データ受信部620、検証データ生成部630、ペアリング演算部640を備える。また、検証データ生成部630は、fベクトル生成部631、sベクトル生成部632、乱数生成部633、検証要素生成部634を備える。
図37に基づき、Verアルゴリズムの処理について説明する。
(S1601:公開パラメータ取得ステップ)
公開パラメータ取得部610は、例えば、通信装置によりネットワークを介して、鍵生成装置100が生成した公開パラメータpkを取得する。
(S1602:署名データ受信ステップ)
データ受信部620は、例えば、通信装置によりネットワークを介して、署名装置500が送信した署名データsigを受信する。
(S1603:fベクトル生成ステップ)
fベクトル生成部631は、処理装置により、r個の要素を有するベクトルfを数214に示すようにランダムに生成する。
Figure 2013186181
(S1604:sベクトル生成ステップ)
sベクトル生成部632は、処理装置により、(S1602)で受信した署名データsigに含まれるアクセスストラクチャSの(L行×r列)の行列Mと、(S1603)で生成したr個の要素を有するベクトルfとに基づき、ベクトルs→Tを数215に示すように生成する。
Figure 2013186181
また、sベクトル生成部632は、処理装置により、(S1603)で生成したベクトルfに基づき、値sを数216に示すように生成する。なお、1は、全ての要素が値1のベクトルである。
Figure 2013186181
(S1605:乱数生成ステップ)
乱数生成部633は、処理装置により、乱数を数217に示すように生成する。
Figure 2013186181
(S1606:検証要素生成ステップ)
検証要素生成部634は、処理装置により、検証鍵の要素である検証要素cを数218に示すように生成する。
Figure 2013186181
また、検証要素生成部634は、処理装置により、i=1,...,Lの各整数iについて、検証鍵の要素である検証要素cを数219に示すように生成する。
Figure 2013186181
また、検証要素生成部634は、処理装置により、検証鍵の要素である検証要素cL+1を数220に示すように生成する。
Figure 2013186181
(S1607:第1ペアリング演算ステップ)
ペアリング演算部640は、処理装置により、ペアリング演算e(b0,1,s )を計算する。
ペアリング演算e(b0,1,s )を計算した結果が値1であれば、ペアリング演算部640は、署名の検証に失敗したことを示す値0を出力して、処理を終了する。一方、ペアリング演算e(b0,1,s )を計算した結果が値1でなければ、ペアリング演算部640は、処理をS1608へ進める。
(S1608:第2ペアリング演算ステップ)
ペアリング演算部640は、処理装置により、数221に示すペアリング演算を計算する。
Figure 2013186181
数221に示すペアリング演算を計算した結果が値1であれば、ペアリング演算部640は、署名の検証に成功したことを示す値1を出力する。一方、その他の値であれば、ペアリング演算部640は、署名の検証に失敗したことを示す値0を出力する。
つまり、(S1601)から(S1608)において、検証装置600は、数222に示すVerアルゴリズムを実行して、署名データsigを検証する。
Figure 2013186181
以上のように、実施の形態5に係る暗号システム10は、実施の形態2−4に係る暗号システム10と同様に、インデックス部を設けることにより、各属性カテゴリで使用する基底を共通の基底(基底B及び基底B)とすることができる。その結果、公開パラメータには、基底B及び基底Bだけを含めておけばよく、後に属性カテゴリを追加する場合に、公開パラメータを再発行する必要がない。
なお、実施の形態2−4と同様に、インデックス部については、内積した結果が0となればよい。そのため、上記説明では、基底ベクトルb ,b と基底ベクトルb,bとの2次元をインデックス部としが、これに限らず、3次元以上をインデックス部としてもよい。また、インデックス部への値の割り当ても上記説明のものに限らず、他の割り当てであってもよい。
また、上記説明では、関数型暗号方式に基づく署名方式について説明した。しかし、実施の形態3で関数型暗号方式を属性ベース暗号方式に変更したのと同様に、属性ベース暗号方式に基づく署名方式に変更することもできる。
実施の形態6.
この実施の形態では、多管理者関数型暗号方式及び多管理者署名方式について説明する。
多管理者(Multi−Authority)とは、ユーザの復号鍵(あるいは署名鍵)を生成する管理者が複数存在するという意味である。
通常の関数型暗号では、システム全体のセキュリティが1つの機関(管理者)に依存している。例えば、実施の形態2,3で説明した暗号システム10では、システム全体のセキュリティが鍵生成装置100に依存している。鍵生成装置100の秘密鍵であるマスター秘密鍵skが漏洩した場合、システム全体のセキュリティが破られてしまう。
しかし、多管理者とすることで、一部の管理者のセキュリティが破られたり、一部の管理者の秘密鍵(マスター鍵)が漏洩した場合であっても、システムの一部だけが機能しなくなるだけであり、他の部分については正常に機能する状態とすることができる。
図38は、多管理者の説明図である。なお、図38では、狭義の暗号処理を例としている。
図38では、役所が、住所、電話番号、年齢等の属性について管理する。また、警察が、運転免許の種別等の属性について管理する。また、会社Aが、会社Aにおける役職、会社Aにおける所属等の属性について管理する。そして、役所が管理する属性に関連付けられた復号鍵1は役所が発行し、警察が管理する属性に関連付けられた復号鍵2は警察が発行し、会社Aが管理する属性に関連付けられた復号鍵3は会社Aが発行する。
暗号文を復号する復号者は、役所、警察、会社A等の各管理者が発行した復号鍵1,2,3を合わせた復号鍵を用い、暗号文を復号する。つまり、復号者から見た場合、各管理者から発行された復号鍵を合わせたものが、自分に発行された1つの復号鍵となる。
例えば、会社Aのマスター鍵が漏洩した場合、暗号処理システムは、会社Aの属性に関しては機能しなくなるが、他の管理者が管理する属性に関しては機能する。つまり、会社Aが管理する属性については、指定した属性以外の属性のユーザによって復号されてしまう虞があるが、他の属性については、指定した属性のユーザによってのみ復号可能である。
また、図38の例からも分かるように、関数型暗号では、複数の管理者が存在し、各管理者が属性におけるあるカテゴリー(部分空間)又は定義域を管理し、そのカテゴリーにおけるユーザの属性についての復号鍵(の一片)を発行することが自然である
どの機関でも管理者となることができ、他の機関とやりとりすることなく、復号鍵(の一片)を発行することができ、各ユーザが他の機関とやりとりすることなく、管理者から復号鍵(の一片)を取得できる場合、その方式を分散多管理者(Decentralized Multi−Authority)方式と呼ぶ。
例えば、中央管理者がいる場合、分散多管理者とは言えない。中央管理者とは、他の管理者よりも上位の管理者である。中央管理者のセキュリティが破られた場合、全ての管理者のセキュリティが破られてしまう。
非特許文献31には、分散多管理者関数型暗号方式について記載されており、非特許文献30には、分散ではない多管理者署名方式について記載されている。上記実施の形態の説明した暗号方式や署名方式と同様に、非特許文献30,31に記載された方式も、属性カテゴリを追加する場合に、公開パラメータを再発行する必要がない構成とすることができる。
図39は、多管理者の場合における属性カテゴリを追加可能な関数型暗号方式の説明図である。
図39では、図38と同様に、役所が、住所、電話番号、年齢等の属性について管理する。また、警察が、運転免許の種別等の属性について管理する。また、会社Aが、会社Aにおける役職、会社Aにおける所属等の属性について管理する。そして、役所が管理する属性に関連付けられた復号鍵1は役所が発行し、警察が管理する属性に関連付けられた復号鍵2は警察が発行し、会社Aが管理する属性に関連付けられた復号鍵3は会社Aが発行する。
ここで、役所は、基底B^と基底B^ とをそれぞれ公開パラメータpkとマスター秘密鍵skとして生成する。そして、基底B^ を用いて、住所、電話番号、年齢等の属性についての復号鍵1を生成する。同様に、警察は、基底B^と基底B^ とをそれぞれ公開パラメータpkとマスター秘密鍵skとして生成する。そして、基底B^ を用いて、運転免許の種別等の属性についての復号鍵2を生成する。同様に、会社Aは、基底B^と基底B^ とをそれぞれ公開パラメータpkとマスター秘密鍵skとして生成する。そして、基底B^ を用いて、会社Aにおける役職、会社Aにおける所属等の属性についての復号鍵3を生成する。
送信者は、基底B^を用いて住所、電話番号、年齢等の属性を設定し、基底B^を用いて運転免許の種別等の属性を設定し、基底B^を用いて会社Aにおける役職、会社Aにおける所属等の属性を設定して、暗号文を生成する。そして、復号者は、復号鍵1−3を用いて、暗号文を復号する。
例えば、役所で管理する属性カテゴリに追加をする場合、役所の公開パラメータpkを再発行することなく、属性カテゴリを追加することが可能である。
なお、ここでは、属性カテゴリを追加可能な関数型暗号方式について説明した。しかし、関数型暗号方式を応用した署名方式についても、原則として関数型暗号方式と同様の考え方になる。
実施の形態7.
以上の実施の形態では、双対ベクトル空間において暗号プリミティブの処理を実現する方法について説明した。実施の形態7では、双対加群において暗号プリミティブの処理を実現する方法について説明する。
つまり、以上の実施の形態では、素数位数qの巡回群において暗号プリミティブの処理を実現した。しかし、合成数Mを用いて数223のように環Rを表した場合、環Rを係数とする加群においても、上記実施の形態で説明した暗号プリミティブの処理を適用することができる。
Figure 2013186181
以上の実施の形態で説明したアルゴリズムにおけるFをRに変更すれば、双対加群における暗号プリミティブの処理を実現することができる。
なお、以上の実施の形態において、安全性の証明の観点から、i=1,...,Lの各整数iについてのρ(i)は、それぞれ異なる識別情報tについての肯定形の組(t,v)又は否定形の組¬(t,v)であると限定してもよい。
言い替えると、ρ(i)=(t,v)又はρ(i)=¬(t,v)である場合に、関数ρ~を、ρ~(i)=tである{1,...,L}→{1,...d}の写像であるとする。この場合、ρ~が単射であると限定してもよい。なお、ρ(i)は、上述したアクセスストラクチャS:=(M,ρ(i))のρ(i)である。
次に、実施の形態における暗号システム10(鍵生成装置100、暗号化装置200、復号装置300、鍵委譲装置400、署名装置500、検証装置600)のハードウェア構成について説明する。
図40は、鍵生成装置100、暗号化装置200、復号装置300、鍵委譲装置400、署名装置500、検証装置600のハードウェア構成の一例を示す図である。
図40に示すように、鍵生成装置100、暗号化装置200、復号装置300、鍵委譲装置400、署名装置500、検証装置600は、プログラムを実行する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」、「ペアリング演算部350」、「メッセージ計算部360」、「復号鍵取得部410」、「情報入力部420」、「委譲鍵生成部430」、「鍵配布部440」、「署名鍵取得部510」、「情報入力部520」、「補完係数計算部530」、「署名データ生成部540」、「データ送信部550」、「公開パラメータ取得部610」、「データ受信部620」、「検証データ生成部630」、「ペアリング演算部640」等として説明した機能を実行するソフトウェアやプログラムやその他のプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、上記の説明において「公開パラメータpk」、「マスター秘密鍵sk」、「復号鍵sk,skΓ」、「暗号文ctΓ,ct」、「アクセスストラクチャS」、「属性情報」、「メッセージm」等の情報やデータや信号値や変数値やパラメータが、「ファイル」や「データベース」の各項目として記憶される。「ファイル」や「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPU911の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPU911の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、上記の説明におけるフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、その他光ディスク等の記録媒体やICチップに記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体や電波によりオンライン伝送される。
また、上記の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。また、「〜装置」として説明するものは、「〜回路」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。さらに、「〜処理」として説明するものは「〜ステップ」であっても構わない。すなわち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ROM913等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、上記で述べた「〜部」としてコンピュータ等を機能させるものである。あるいは、上記で述べた「〜部」の手順や方法をコンピュータ等に実行させるものである。
10 暗号システム、100 鍵生成装置、110 マスター鍵生成部、120 マスター鍵記憶部、130 情報入力部、140 復号鍵生成部、141 fベクトル生成部、142 sベクトル生成部、143 乱数生成部、144 鍵要素生成部、145 ランダム化要素生成部、146 委譲要素生成部、150 鍵配布部、200 暗号化装置、210 公開パラメータ取得部、220 情報入力部、230 暗号化データ生成部、231 乱数生成部、232 暗号要素生成部、240 データ送信部、300 復号装置、310 復号鍵取得部、320 データ受信部、330 スパンプログラム計算部、340 補完係数計算部、350 ペアリング演算部、360 メッセージ計算部、400 鍵委譲装置、410 復号鍵取得部、420 情報入力部、430 委譲鍵生成部、431 乱数生成部、432 下位鍵要素生成部、433 下位ランダム化要素生成部、434 下位委譲要素生成部、440 鍵配布部、500 署名装置、510 署名鍵取得部、520 情報入力部、530 補完係数計算部、540 署名データ生成部、541 乱数生成部、542 署名要素生成部、550 データ送信部、600 検証装置、610 公開パラメータ取得部、620 データ受信部、630 検証データ生成部、631 fベクトル生成部、632 sベクトル生成部、633 乱数生成部、634 検証要素生成部、640 ペアリング演算部。

Claims (11)

  1. 所定の基底B及び所定の基底Bを用いて処理を行う暗号システムであり、
    複数のインデックスjのうちの1つ以上のインデックスjについての送信側ベクトルtであって、前記基底Bにおける所定の基底ベクトルbindexの係数に、インデックスjに予め割り当てられた情報Jを設定し、前記基底Bにおける他の基底ベクトルbattの係数に、インデックスjについてのパラメータΦを設定した送信側ベクトルtを生成する送信装置と、
    複数のインデックスj’のうちの1つ以上のインデックスj’についての受信側ベクトルrj’であって、前記基底ベクトルbindexに対応する前記基底Bにおける基底ベクトルb indexの係数に、インデックスj’に対応するインデックスjに予め割り当てられた情報Jとの内積が0になる情報J’を設定し、前記基底ベクトルbattに対応する前記基底Bにおける基底ベクトルb attの係数に、インデックスj’についてのパラメータΨj’を設定した受信側ベクトルrj’を用いて、インデックスjについての前記送信側ベクトルtと前記インデックスjに対応するインデックスj’についての前記受信側ベクトルrj’とに対して、対応する基底ベクトル毎のペアリング演算の積を計算する受信装置と
    を備えることを特徴とする暗号システム。
  2. 前記送信装置は、暗号文ctを生成する暗号化装置であり、t=1,...,d(dは1以上の整数)の整数tを前記インデックスjとし、整数tについての属性情報xを前記インデックスjについての前記パラメータΦとして、1つ以上の整数tについて、前記基底ベクトルbindexの係数に、整数tに割り当てられた情報Jを設定し、前記基底ベクトルbattの係数に、整数tについての属性情報xを設定した暗号ベクトルcを前記送信側ベクトルtとして含む暗号文ctを生成し、
    前記受信装置は、前記暗号文ctを復号する復号装置であり、i=1,...,L(Lは1以上の整数)の整数iを前記インデックスj’とし、整数iについての述語情報vを前記インデックスj’についての前記パラメータΨj’として、各整数iについて、前記基底ベクトルb indexの係数に、整数iに対応する整数tに割り当てられた情報Jとの内積が0になる情報J’を設定し、前記基底ベクトルb attの係数に、整数iについての述語情報vを設定した鍵ベクトルk を前記受信側ベクトルrj’として用いて、前記各整数iについて、その整数iについての鍵ベクトルk と、その整数iに対応する整数tについての暗号ベクトルcとに対して、対応する基底ベクトル毎のペアリング演算の積を計算する
    ことを特徴とする請求項1に記載の暗号システム。
  3. 前記暗号システムは、所定の基底B及び所定の基底B と、所定の基底B及び所定の基底Bとを用いて処理を行い、
    前記送信装置は、暗号ベクトルc及びt=1,...,dの1つ以上の整数tについての暗号ベクトルcであって、数1に示す暗号ベクトルc及び暗号ベクトルcを含む暗号文ctを生成し、
    前記受信装置は、i=0,...,Lの各整数iについての鍵ベクトルk であって、数2に示す鍵ベクトルk と、前記暗号ベクトルcとについて、数3を計算する
    ことを特徴とする請求項2に記載の暗号システム。
    Figure 2013186181
    Figure 2013186181
    Figure 2013186181
  4. 前記送信装置は、暗号文ctを生成する暗号化装置であり、i=1,...,L(Lは1以上の整数)の整数iを前記インデックスjとし、整数iについての述語情報vを前記インデックスjについての前記パラメータΦとして、各整数iについて、前記基底ベクトルbindexの係数に、整数iに割り当てられた情報Jを設定し、前記基底ベクトルbattの係数に、整数iについての述語情報vを設定した暗号ベクトルcを前記送信側ベクトルtとして含む暗号文ctを生成し、
    前記受信装置は、前記暗号文ctを復号する復号装置であり、t=1,...,d(dは1以上の整数)の整数tを前記インデックスj’とし、整数tについての属性情報xを前記インデックスj’についての前記パラメータΨj’として、1つ以上の整数tについて、前記基底ベクトルb indexの係数に、整数tに対応する整数iに割り当てられた情報Jとの内積が0になる情報J’を設定し、前記基底ベクトルb attの係数に、整数tについての属性情報xを設定した鍵ベクトルk を前記受信側ベクトルrj’として用いて、前記各整数iについて、その整数iについての暗号ベクトルcと、その整数iに対応する整数tについての鍵ベクトルk とに対して、対応する基底ベクトル毎のペアリング演算の積を計算する
    ことを特徴とする請求項1に記載の暗号システム。
  5. 前記暗号システムは、所定の基底B及び所定の基底B と、所定の基底B及び所定の基底Bとを用いて処理を行い、
    前記送信装置は、i=0,...,Lの各整数iについての暗号ベクトルcであって、数4に示す暗号ベクトルcを含む暗号文ctを生成し、
    前記受信装置は、鍵ベクトルk 及びt=1,...,dの1つ以上の整数tについての鍵ベクトルk であって、数5に示す鍵ベクトルk 及び鍵ベクトルk と、前記暗号ベクトルcとについて、数6を計算する
    ことを特徴とする請求項4に記載の暗号システム。
    Figure 2013186181
    Figure 2013186181
    Figure 2013186181
  6. 前記送信装置は、暗号文ctを生成する暗号化装置であり、i=1,...,L(Lは1以上の整数)の整数iを前記インデックスjとし、整数iについての属性情報xを前記インデックスjについての前記パラメータΦとして、各整数iについて、前記基底ベクトルbindexの係数に、整数iに割り当てられた情報Jを設定し、前記基底ベクトルbattの係数に、整数iについての属性情報xを設定した暗号ベクトルcを前記送信側ベクトルtとして含む暗号文ctを生成し、
    前記受信装置は、前記暗号文ctを復号する復号装置であり、前記整数iを前記インデックスj’とし、整数iについての述語情報vを前記インデックスj’についての前記パラメータΨj’として、各整数iについて、前記基底ベクトルb indexの係数に、整数iに割り当てられた情報Jとの内積が0になる情報J’を設定し、前記基底ベクトルb attの係数に、整数iについての述語情報vを設定した鍵ベクトルk を前記受信側ベクトルrj’として用いて、前記各整数iについて、その整数iについての鍵ベクトルk と暗号ベクトルcとに対して、対応する基底ベクトル毎のペアリング演算の積を計算する
    ことを特徴とする請求項1に記載の暗号システム。
  7. 前記暗号システムは、所定の基底B及び所定の基底B と、所定の基底B及び所定の基底Bとを用いて処理を行い、
    前記送信装置は、i=0,...,Lの各整数iについての暗号ベクトルcの和である暗号ベクトルcであって、数7に示す暗号ベクトルcを含む暗号文ctを生成し、
    前記受信装置は、前記各整数iについての鍵ベクトルk の和である鍵ベクトルk L,decであって、数8に示す鍵ベクトルk L,decと、前記暗号ベクトルcとについて、対応する基底ベクトル毎のペアリング演算の積を計算する
    ことを特徴とする請求項6に記載の暗号システム。
    Figure 2013186181
    Figure 2013186181
  8. 前記送信装置は、署名データsigを生成する署名装置であり、t=1,...,d(dは1以上の整数)の整数tを前記インデックスjとし、整数tについての属性情報xを前記インデックスjについての前記パラメータΦとして、1つ以上の整数tについて、前記基底ベクトルbindexの係数に、整数tに割り当てられた情報Jを設定し、前記基底ベクトルbattの係数に、整数tについての属性情報xを設定した鍵ベクトルk を用いて、i=1,...,L(Lは1以上の整数)の各整数iについて、整数iに対応する整数tについての鍵ベクトルk を含めた署名要素sを前記送信側ベクトルtとして含む署名データsigを生成し、
    前記受信装置は、前記署名データsigを検証する検証装置であり、前記整数iを前記インデックスj’とし、整数iについての述語情報vを前記インデックスj’についての前記パラメータΨj’として、各整数iについて、前記基底ベクトルb indexの係数に、整数iに対応する整数tに割り当てられた情報Jとの内積が0になる情報J’を設定し、前記基底ベクトルb attの係数に、整数iについての述語情報vを設定した検証要素cを前記受信側ベクトルrj’として用いて、前記各整数iについて、その整数iについての署名要素sと検証要素cとに対して、対応する基底ベクトル毎のペアリング演算の積を計算する
    ことを特徴とする請求項1に記載の暗号システム。
  9. 前記暗号システムは、所定の基底B及び所定の基底B と、所定の基底B及び所定の基底Bと、所定の基底Bd+1及び所定の基底B d+1とを用いて処理を行い、
    前記送信装置は、鍵ベクトルk とt=1,...,dの1つ以上の整数tについての鍵ベクトルk と鍵ベクトルd+1,1と鍵ベクトルd+1,2とであって、数9に示す鍵ベクトルk と鍵ベクトルk と鍵ベクトルd+1,1と鍵ベクトルd+1,2とを用いて、i=0,...,L+1の各整数iについての署名要素sであって、数10に示す署名要素sを含む署名データsigを生成し、
    前記受信装置は、前記各整数iについての検証要素cであって、数11に示す検証要素cと、前記署名要素sとについて、数12を計算する
    ことを特徴とする請求項8に記載の暗号システム。
    Figure 2013186181
    Figure 2013186181
    Figure 2013186181
    Figure 2013186181
  10. 所定の基底B及び所定の基底Bを用いて処理を行う暗号方法であり、
    送信装置が、複数のインデックスjのうちの1つ以上のインデックスjについての送信側ベクトルtであって、前記基底Bにおける所定の基底ベクトルbindexの係数に、インデックスjに予め割り当てられた情報Jを設定し、前記基底Bにおける他の基底ベクトルbattの係数に、インデックスjについてのパラメータΦを設定した送信側ベクトルtを生成する送信工程と、
    受信装置が、複数のインデックスj’のうちの1つ以上のインデックスj’についての受信側ベクトルrj’であって、前記基底ベクトルbindexに対応する前記基底Bにおける基底ベクトルb indexの係数に、インデックスj’に対応するインデックスjに予め割り当てられた情報Jとの内積が0になる情報J’を設定し、前記基底ベクトルbattに対応する前記基底Bにおける基底ベクトルb attの係数に、インデックスj’についてのパラメータΨj’を設定した受信側ベクトルrj’を用いて、インデックスjについての前記送信側ベクトルtと前記インデックスjに対応するインデックスj’についての前記受信側ベクトルrj’とに対して、対応する基底ベクトル毎のペアリング演算の積を計算する受信工程と
    を備えることを特徴とする暗号方法。
  11. 所定の基底B及び所定の基底Bを用いて処理を行う暗号プログラムであり、
    複数のインデックスjのうちの1つ以上のインデックスjについての送信側ベクトルtであって、前記基底Bにおける所定の基底ベクトルbindexの係数に、インデックスjに予め割り当てられた情報Jを設定し、前記基底Bにおける他の基底ベクトルbattの係数に、インデックスjについてのパラメータΦを設定した送信側ベクトルtを生成する送信処理と、
    複数のインデックスj’のうちの1つ以上のインデックスj’についての受信側ベクトルrj’であって、前記基底ベクトルbindexに対応する前記基底Bにおける基底ベクトルb indexの係数に、インデックスj’に対応するインデックスjに予め割り当てられた情報Jとの内積が0になる情報J’を設定し、前記基底ベクトルbattに対応する前記基底Bにおける基底ベクトルb attの係数に、インデックスj’についてのパラメータΨj’を設定した受信側ベクトルrj’を用いて、インデックスjについての前記送信側ベクトルtと前記インデックスjに対応するインデックスj’についての前記受信側ベクトルrj’とに対して、対応する基底ベクトル毎のペアリング演算の積を計算する受信処理と
    をコンピュータに実行させることを特徴とする暗号プログラム。
JP2012049275A 2012-03-06 2012-03-06 暗号システム、暗号方法及び暗号プログラム Active JP5680007B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2012049275A JP5680007B2 (ja) 2012-03-06 2012-03-06 暗号システム、暗号方法及び暗号プログラム
ES13757621.1T ES2604817T3 (es) 2012-03-06 2013-03-01 Sistema de cifrado, método de cifrado y programa de cifrado
PCT/JP2013/055661 WO2013133158A1 (ja) 2012-03-06 2013-03-01 暗号システム、暗号方法及び暗号プログラム
US14/376,147 US9407438B2 (en) 2012-03-06 2013-03-01 Cryptographic system, cryptographic method, and cryptographic program
CN201380012925.1A CN104160437B (zh) 2012-03-06 2013-03-01 密码系统以及密码方法
EP13757621.1A EP2824652B1 (en) 2012-03-06 2013-03-01 Cipher system, cipher method, and cipher program
KR1020147026078A KR101588992B1 (ko) 2012-03-06 2013-03-01 암호 시스템, 암호 방법 및 암호 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012049275A JP5680007B2 (ja) 2012-03-06 2012-03-06 暗号システム、暗号方法及び暗号プログラム

Publications (2)

Publication Number Publication Date
JP2013186181A true JP2013186181A (ja) 2013-09-19
JP5680007B2 JP5680007B2 (ja) 2015-03-04

Family

ID=49116638

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012049275A Active JP5680007B2 (ja) 2012-03-06 2012-03-06 暗号システム、暗号方法及び暗号プログラム

Country Status (7)

Country Link
US (1) US9407438B2 (ja)
EP (1) EP2824652B1 (ja)
JP (1) JP5680007B2 (ja)
KR (1) KR101588992B1 (ja)
CN (1) CN104160437B (ja)
ES (1) ES2604817T3 (ja)
WO (1) WO2013133158A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10050782B2 (en) 2014-12-05 2018-08-14 Mitsubishi Electric Corporation Decryption condition addition device, cryptographic system, and computer readable medium
US10965459B2 (en) 2015-03-13 2021-03-30 Fornetix Llc Server-client key escrow for applied key management system and process
US10931653B2 (en) * 2016-02-26 2021-02-23 Fornetix Llc System and method for hierarchy manipulation in an encryption key management system
US10333695B2 (en) * 2016-11-10 2019-06-25 Microsoft Technology Licensing, Llc Rational number arithmetic in homomorphic encryption
US11290252B2 (en) 2017-01-20 2022-03-29 Enveil, Inc. Compression and homomorphic encryption in secure query and analytics
US11507683B2 (en) 2017-01-20 2022-11-22 Enveil, Inc. Query processing with adaptive risk decisioning
US11777729B2 (en) 2017-01-20 2023-10-03 Enveil, Inc. Secure analytics using term generation and homomorphic encryption
WO2018136801A1 (en) 2017-01-20 2018-07-26 Enveil, Inc. End-to-end secure operations using a query matrix
US11196541B2 (en) 2017-01-20 2021-12-07 Enveil, Inc. Secure machine learning analytics using homomorphic encryption
US20180212753A1 (en) 2017-01-20 2018-07-26 Enveil, Inc. End-To-End Secure Operations Using a Query Vector
US10205713B2 (en) * 2017-04-05 2019-02-12 Fujitsu Limited Private and mutually authenticated key exchange
US10902133B2 (en) 2018-10-25 2021-01-26 Enveil, Inc. Computational operations in enclave computing environments
US10817262B2 (en) 2018-11-08 2020-10-27 Enveil, Inc. Reduced and pipelined hardware architecture for Montgomery Modular Multiplication
JP7087965B2 (ja) * 2018-11-29 2022-06-21 日本電信電話株式会社 暗号システム、暗号化装置、復号装置、暗号化方法、復号方法及びプログラム
US11601258B2 (en) 2020-10-08 2023-03-07 Enveil, Inc. Selector derived encryption systems and methods

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011083678A1 (ja) * 2010-01-08 2011-07-14 三菱電機株式会社 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
WO2011086687A1 (ja) * 2010-01-15 2011-07-21 三菱電機株式会社 秘匿検索システム及び暗号処理システム
WO2011135895A1 (ja) * 2010-04-27 2011-11-03 三菱電機株式会社 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置
WO2012011575A1 (ja) * 2010-07-23 2012-01-26 日本電信電話株式会社 暗号システム、暗号通信方法、暗号化装置、鍵生成装置、復号装置、コンテンツサーバ装置、プログラム、記憶媒体

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP5349261B2 (ja) 2009-04-23 2013-11-20 三菱電機株式会社 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
ES2512115T3 (es) * 2009-04-24 2014-10-23 Nippon Telegraph And Telephone Corporation Dispositivo de generación de información, método de generación de información, y programa de generación de información y medio de almacenamiento del mismo

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011083678A1 (ja) * 2010-01-08 2011-07-14 三菱電機株式会社 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
WO2011086687A1 (ja) * 2010-01-15 2011-07-21 三菱電機株式会社 秘匿検索システム及び暗号処理システム
WO2011135895A1 (ja) * 2010-04-27 2011-11-03 三菱電機株式会社 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置
WO2012011575A1 (ja) * 2010-07-23 2012-01-26 日本電信電話株式会社 暗号システム、暗号通信方法、暗号化装置、鍵生成装置、復号装置、コンテンツサーバ装置、プログラム、記憶媒体

Also Published As

Publication number Publication date
WO2013133158A1 (ja) 2013-09-12
EP2824652A1 (en) 2015-01-14
EP2824652A4 (en) 2015-12-02
EP2824652B1 (en) 2016-10-19
JP5680007B2 (ja) 2015-03-04
US9407438B2 (en) 2016-08-02
CN104160437A (zh) 2014-11-19
ES2604817T3 (es) 2017-03-09
KR20140138176A (ko) 2014-12-03
CN104160437B (zh) 2016-06-08
KR101588992B1 (ko) 2016-01-26
US20150010147A1 (en) 2015-01-08

Similar Documents

Publication Publication Date Title
JP5680007B2 (ja) 暗号システム、暗号方法及び暗号プログラム
JP5424974B2 (ja) 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置
JP5618881B2 (ja) 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
JP5693206B2 (ja) 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
JP5905128B2 (ja) 暗号システム、再暗号化装置及び暗号方法
JP5606344B2 (ja) 署名処理システム、鍵生成装置、署名装置、検証装置、署名処理方法及び署名処理プログラム
JP5921410B2 (ja) 暗号システム
JP5334873B2 (ja) 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
JP5606351B2 (ja) 暗号処理システム、鍵生成装置、暗号化装置、復号装置、鍵委譲装置、暗号処理方法及び暗号処理プログラム
JP6022073B2 (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: 20141209

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150106

R150 Certificate of patent or registration of utility model

Ref document number: 5680007

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