JP6971917B2 - 復号装置、暗号化装置及び暗号システム - Google Patents

復号装置、暗号化装置及び暗号システム Download PDF

Info

Publication number
JP6971917B2
JP6971917B2 JP2018110987A JP2018110987A JP6971917B2 JP 6971917 B2 JP6971917 B2 JP 6971917B2 JP 2018110987 A JP2018110987 A JP 2018110987A JP 2018110987 A JP2018110987 A JP 2018110987A JP 6971917 B2 JP6971917 B2 JP 6971917B2
Authority
JP
Japan
Prior art keywords
vector
key
encryption
information
ciphertext
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.)
Active
Application number
JP2018110987A
Other languages
English (en)
Other versions
JP2019215391A (ja
Inventor
克幸 高島
潤一 富田
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
Application filed by Mitsubishi Electric Corp, Nippon Telegraph and Telephone Corp filed Critical Mitsubishi Electric Corp
Priority to JP2018110987A priority Critical patent/JP6971917B2/ja
Priority to PCT/JP2019/019248 priority patent/WO2019239776A1/ja
Priority to EP19819297.3A priority patent/EP3767874B1/en
Priority to CN201980037922.0A priority patent/CN112236974B/zh
Publication of JP2019215391A publication Critical patent/JP2019215391A/ja
Priority to US17/072,823 priority patent/US11533176B2/en
Application granted granted Critical
Publication of JP6971917B2 publication Critical patent/JP6971917B2/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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • 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/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
    • 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

Landscapes

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

Description

この発明は、内積関数型暗号(以下、IPFE)に関する。
非特許文献1には、IPFE方式が記載されている。IPFEは、実用的な統計処理及び情報処理を、プライバシーを保護したまま行うのに、大変有用である。
Abdalla, M., Bourse, F., De Caro, A., Pointcheval, D.: Simple functional encryption schemes for inner products. In: Katz, J. (ed.) PKC 2015. LNCS, vol. 9020, pp. 733−751. Springer, Heidelberg (Mar / Apr 2015)
非特許文献1に記載されたIPFE方式では、セットアップフェーズにおいて生成されるマスター鍵によって、方式で用いられるベクトルの最大の長さが固定される。つまり、方式で用いられる暗号文及び秘密鍵の最大の長さが固定される。最大の長さが固定された後に、その長さを超えた暗号文及び秘密鍵を扱うことはできない。
セットアップフェーズにおいて、どのようなデータが暗号化されるか、また、暗号文を用いてどのような情報処理が行われるかは決まっていない場合がある。この場合には、暗号文及び秘密鍵の最大の長さを決定することは困難である。なお、最大の長さを非常に長くしておくことが考えられる。しかし、これは、不要な効率の悪化を招くことになる。
この発明は、暗号文及び秘密鍵の最大の長さが限定されない、IPFE方式を構築可能にすることを目的とする。
この発明に係る復号装置は、
一定のサイズの公開情報を入力として生成された暗号化設定情報であって、ベクトルxのサイズに応じたサイズの暗号化設定情報を用いて、前記ベクトルxが暗号化された暗号文ctを取得する暗号文取得部と、
前記公開情報を入力として生成された鍵設定情報であって、ベクトルyのサイズに応じたサイズの鍵設定情報を用いて、前記ベクトルyが設定された秘密鍵skを取得する秘密鍵取得部と、
前記暗号文取得部によって取得された前記暗号文ctを、前記秘密鍵取得部によって取得された前記秘密鍵skで復号して、前記ベクトルxと前記ベクトルyとの内積値を計算する復号部と
を備える。
この発明では、暗号文ctは、一定のサイズの公開情報を入力として生成された暗号化設定情報であって、ベクトルxのサイズに応じたサイズの暗号化設定情報を用いて、ベクトルxが暗号化されて生成される。また、秘密鍵skは、一定のサイズの公開情報を入力として生成された鍵設定情報であって、ベクトルyのサイズに応じたサイズの鍵設定情報を用いて、ベクトルyが設定されて生成される。そして、暗号文ctが秘密鍵skで復号されて、ベクトルxとベクトルyとの内積値が計算される。そのため、暗号文及び秘密鍵の最大の長さが限定されない、IPFE方式を構築可能にすることができる。
実施の形態1に係る暗号システム1の構成図。 実施の形態1に係るセットアップ装置10の構成図。 実施の形態1に係る暗号化装置20の構成図。 実施の形態1に係る鍵生成装置30の構成図。 実施の形態1に係る復号装置40の構成図。 実施の形態1に係るセットアップ装置10の動作を示すフローチャート。 実施の形態1に係る暗号化装置20の動作を示すフローチャート。 実施の形態1に係る鍵生成装置30の動作を示すフローチャート。 実施の形態1に係る復号装置40の動作を示すフローチャート。 変形例1に係るセットアップ装置10の構成図。 変形例1に係る暗号化装置20の構成図。 変形例1に係る鍵生成装置30の構成図。 変形例1に係る復号装置40の構成図。 実施の形態2に係る暗号システム1の構成図。
実施の形態1.
***表記***
以下の説明で用いられる表記を説明する。
素数pに対して、数101は、数102に示す体を示す。
Figure 0006971917
Figure 0006971917
自然数n,mに対して、[n]は、集合{1,...,n}を示し、[m,n]は、集合{m,...,n}を示す。
集合Sに対して、数103は、sがSから一様に選択されることを示す。
Figure 0006971917
ベクトルは、行ベクトルとして扱う。ベクトルxに対して、数104は、無限大ノルムを示す。
Figure 0006971917
体Kに対して、M(K)は、Kにおける要素を有する全てのn×n行列の集合を示し、GL(K)は、Kにおける要素を有する全てのn×nの正則行列の集合を示す。
正則行列Aに対して、Aは、(A−1、つまり随伴行列を示す。
巡回群Gιの生成元gιと、行列A及びベクトルaとに対して、[A]ι及び[a]ιは、それぞれ、生成元gιの指数部の行列及びベクトルを示す。つまり、[A]ιは、gι を示し、[a]ιは、gι を示す。
数105に示すベクトルx及びベクトルyに対して、数106は、数107によって指数部の内積を計算する関数を示す。
Figure 0006971917
Figure 0006971917
Figure 0006971917
***定義***
以下の説明で用いられる用語の定義を説明する。
<IPFE>
IPFEは、マスター秘密鍵mskの所有者がベクトルyに対して秘密鍵skを発行可能であり、ベクトルxの暗号文ctを秘密鍵skで復号するとベクトルxとベクトルyとの内積値だけが明らかになる方式である。
内積値の計算は、数値データに対する重み付けと、統計的な計算に対する利用といった様々な応用が可能である。
<双線形群>
双線形群G:=(p,G,G,G,g,g,e)は、素数pと、位数pの巡回群G,G,Gと、巡回群Gの生成元gと、巡回群Gの生成元gと、数108に示す双線形写像eとを備え、以下の双線形性と非退化性との2つの性質を有する。
Figure 0006971917
(双線形性)
数109が成立する。
Figure 0006971917
(非退化性)
生成元g,gに対して、e(g,g)がGの生成元である。
<双対ペアリングベクトル空間(以下、DPVS)>
自然数nに対して、数110に示すように、ランダムに双対正規直交基底(B,B)を選択することが可能である。
Figure 0006971917
そして、[B]及び[Bは、それぞれ、ベクトル空間V:=G 及びV:=G の双対正規直交基底である。
以下の2つの性質が成立する。
(性質1)
数111に示すどんなベクトルx,yに対しても、数112が成立する。
Figure 0006971917
Figure 0006971917
(性質2)
数113に示すどんなベクトルx,...,x及びベクトルy,...,yと、行列Mとに対しても、数114は一様に分散する。
Figure 0006971917
Figure 0006971917
さらに、数115に示すどんな集合Sに対しても、数116は一様に分散する。
Figure 0006971917
Figure 0006971917
これは、数117がランダムな双対正規直交基底であり、数118であるためである。
Figure 0006971917
Figure 0006971917
<暗号方式の条件>
暗号化と鍵生成と復号との条件を説明する。
暗号化及び鍵生成については、連続(con)と、分離(sep)との2つの条件がある。
連続設定では、ベクトルが暗号化又は鍵生成のアルゴリズムに入力されると、ベクトルの各要素に対して、その位置によって自動的にインデックスが設定される。つまり、ベクトル(a,b,c)に対して、aのインデックスは1が設定され、bのインデックスは2が設定され、cのインデックスは3が設定される。
分離設定では、インデックスの集合がベクトルに付加されており、暗号化及び鍵生成は、インデックスの集合に対応して実行される。言い換えると、ベクトル(a,b,c)は、ある集合、例えば{1,5,6}によってインデックスが設定される。つまり、aのインデックスは1が設定され、bのインデックスは5が設定され、cのインデックスは6が設定される。
復号については、ct−dominant方式と、sk−dominant方式と、equal方式との3つの条件がある。
ctを暗号文ctのインデックスの集合とし、Sskを秘密鍵skのインデックスの集合とする。このとき、ct−dominant方式では、Sct⊇Sskの場合に限り、暗号文ctが秘密鍵skで復号される。sk−dominant方式では、Sct⊆Sskの場合に限り、暗号文ctが秘密鍵skで復号される。equal方式では、Sct=Sskの場合に限り、暗号文ctが秘密鍵skで復号される。
以下の説明では、方式の条件を(E:xx,K:yy,D:zz)と記述する。xx,yyは、連続設定を表すconと、分離設定を表すsepとのいずれかが設定される。zzは、ct−dominant方式を表すct−domと、sk−dominant方式を表すsk−domと、equal方式を表すeqとのいずれかが設定される。
実施の形態1では、(E:con,K:sep,D:ct−dom)セッティングについて説明する。つまり、実施の形態1では、長さmのベクトルの暗号文と、集合Sが付加された秘密鍵とに対して、S⊆[m]の場合に限り、暗号文を秘密鍵で復号でき、集合Sに関する内積値が得られる方式を説明する。しかし、後の実施の形態で説明するように、他の設定についても実現可能である。
<ノルム上限>
実施の形態1で説明するUnbounded IPFE(以下、UIPFE)方式では、復号時に離散対数問題を解く処理が含まれる。そのため、扱うベクトルのノルムに上限が置かれる。ここでは、IPFE方式で使用される関数を以下のように定義することにより、扱うベクトルのノルムに上限が置かれる。
関数族Fは、数119に示す関数fS,y X,Yによって構成される。
Figure 0006971917
数120に示す全てのベクトルxに対して、数121の関数が定義される。
Figure 0006971917
Figure 0006971917
***構成の説明***
<Private−key UIPFEの構成>
実施の形態1では、Private−key UIPFEを説明する。Private−key UIPFEは、秘密鍵セッティングのUIPFEである。秘密鍵セッティングは、暗号文の作成に秘密鍵が必要な方式である。
秘密鍵セッティングの暗号化方式には、端末のバックアップデータをクラウドに置いておき、必要に応じてバックアップデータをクラウドから取得するというような、暗号化と復号とを同じユーザが行うケースといった実際的な応用が存在する。
Private−key UIPFEは、Setupアルゴリズムと、Encアルゴリズムと、KeyGenアルゴリズムと、Decアルゴリズムとを含む。Χ:={Xλλ∈N,Υ:={Yλλ∈Nをノルム上限の集合体とする。ここで、Nは、自然数の集合である。
Setupアルゴリズムは、セキュリティパラメータ1λを入力として、公開パラメータppと、マスター秘密鍵mskとを出力する。
Encアルゴリズムは、公開パラメータppと、マスター秘密鍵mskと、ベクトルx:=(x,...,x)とを入力として、暗号文ctを出力する。ここで、m:=m(λ)は、多項式である。
KeyGenアルゴリズムは、公開パラメータppと、マスター秘密鍵mskと、空でない集合S:=[s]と、インデックス付けされたベクトルy:=(yi∈Sとを入力として、秘密鍵skを出力する。ここで、s:=s(λ)は、多項式である。
Decアルゴリズムは、公開パラメータppと、暗号文ctと、秘密鍵skとを入力として、復号された値d∈Z、又は、識別子⊥を出力する。ここで、Zは、数の集合である。識別子⊥は、復号できないことを示す。
<暗号システム1の構成>
図1を参照して、実施の形態1に係る暗号システム1の構成を説明する。
暗号システム1は、セットアップ装置10と、暗号化装置20と、鍵生成装置30と、復号装置40とを備える。セットアップ装置10と暗号化装置20と鍵生成装置30と復号装置40とは、ネットワークを介して接続される。
図2を参照して、実施の形態1に係るセットアップ装置10の構成を説明する。
セットアップ装置10は、Setupアルゴリズムを実行するコンピュータである。
セットアップ装置10は、プロセッサ11と、メモリ12と、ストレージ13と、通信インタフェース14とのハードウェアを備える。プロセッサ11は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
セットアップ装置10は、機能構成要素として、受付部111と、マスター鍵生成部112と、送信部113とを備える。セットアップ装置10の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ13には、セットアップ装置10の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ11によりメモリ12に読み込まれ、プロセッサ11によって実行される。これにより、セットアップ装置10の各機能構成要素の機能が実現される。
図3を参照して、実施の形態1に係る暗号化装置20の構成を説明する。
暗号化装置20は、Encアルゴリズムを実行するコンピュータである。
暗号化装置20は、プロセッサ21と、メモリ22と、ストレージ23と、通信インタフェース24とのハードウェアを備える。プロセッサ21は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
暗号化装置20は、機能構成要素として、マスター鍵取得部211と、ベクトル取得部212と、設定情報定義部213と、暗号化部214と、送信部215とを備える。暗号化装置20の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ23には、暗号化装置20の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ21によりメモリ22に読み込まれ、プロセッサ21によって実行される。これにより、暗号化装置20の各機能構成要素の機能が実現される。
図4を参照して、実施の形態1に係る鍵生成装置30の構成を説明する。
鍵生成装置30は、KeyGenアルゴリズムを実行するコンピュータである。
鍵生成装置30は、プロセッサ31と、メモリ32と、ストレージ33と、通信インタフェース34とのハードウェアを備える。プロセッサ31は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
鍵生成装置30は、機能構成要素として、マスター鍵取得部311と、ベクトル取得部312と、設定情報定義部313と、鍵生成部314と、送信部315とを備える。鍵生成装置30の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ33には、鍵生成装置30の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ31によりメモリ32に読み込まれ、プロセッサ31によって実行される。これにより、鍵生成装置30の各機能構成要素の機能が実現される。
図5を参照して、実施の形態1に係る復号装置40の構成を説明する。
復号装置40は、Decアルゴリズムを実行するコンピュータである。
復号装置40は、プロセッサ41と、メモリ42と、ストレージ43と、通信インタフェース44とのハードウェアを備える。プロセッサ41は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
復号装置40は、機能構成要素として、公開鍵取得部411と、暗号文取得部412と、復秘密鍵取得部413と、復号部414とを備える。復号装置40の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ43には、復号装置40の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ41によりメモリ42に読み込まれ、プロセッサ41によって実行される。これにより、復号装置40の各機能構成要素の機能が実現される。
プロセッサ11,21,31,41は、プロセッシングを行うIC(Integrated Circuit)である。プロセッサ11,21,31,41は、具体例としては、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
メモリ12,22,32,42は、データを一時的に記憶する記憶装置である。メモリ12,22,32,42は、具体例としては、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)である。
ストレージ13,23,33,43は、データを保管する記憶装置である。ストレージ13,23,33,43は、具体例としては、HDD(Hard Disk Drive)である。また、ストレージ13,23,33,43は、SD(登録商標,Secure Digital)メモリカード、CF(CompactFlash,登録商標)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD(Digital Versatile Disk)といった可搬記録媒体であってもよい。
通信インタフェース14,24,34,44は、外部の装置と通信するためのインタフェースである。通信インタフェース14,24,34,44は、具体例としては、Ethernet(登録商標)、USB(Universal Serial Bus)、HDMI(登録商標,High−Definition Multimedia Interface)のポートである。
図2では、プロセッサ11は、1つだけ示されていた。しかし、プロセッサ11は、複数であってもよく、複数のプロセッサ11が、各機能を実現するプログラムを連携して実行してもよい。同様に、プロセッサ21,31,41は、複数であってもよく、複数のプロセッサ21,31,41が、各機能を実現するプログラムを連携して実行してもよい。
***動作の説明***
以下の説明では、ノルム上限Xλ,Yλは、ある多項式である。数122に示す関数族Fは、数123に示す関数Fからなる鍵空間Kλについての疑似ランダム関数(以下、PRF)族である。
Figure 0006971917
Figure 0006971917
図6を参照して、実施の形態1に係るセットアップ装置10の動作を説明する。
実施の形態1に係るセットアップ装置10の動作は、実施の形態1に係るセットアップ方法に相当する。また、実施の形態1に係るセットアップ装置10の動作は、実施の形態1に係るセットアッププログラムの処理に相当する。
(ステップS11:受付処理)
受付部111は、セキュリティパラメータ1λの入力を受け付ける。
具体的には、受付部111は、通信インタフェース14を介して、セットアップ装置10のユーザによって入力されたセキュリティパラメータ1λを受け付ける。受付部111は、セキュリティパラメータ1λをメモリ12に書き込む。
(ステップS12:マスター鍵生成処理)
マスター鍵生成部112は、ステップS11で受け付けられたセキュリティパラメータ1λを入力として、双線形群Gを選択する。また、マスター鍵生成部112は、鍵空間KλからランダムにPRF鍵Kを選択する。
具体的には、マスター鍵生成部112は、メモリ12からセキュリティパラメータ1λを読み出す。マスター鍵生成部112は、セキュリティパラメータ1λを入力として、双線形群の生成アルゴリズムGBGを実行して、双線形群Gを選択する。また、マスター鍵生成部112は、セキュリティパラメータ1λによって定まる鍵空間KλからランダムにPRF鍵Kを選択する。マスター鍵生成部112は、双線形群G及びPRF鍵Kをメモリ12に書き込む。
(ステップS13:送信処理)
送信部113は、ステップS12で選択された双線形群Gを公開パラメータppとして、公開する。具体的には、送信部113は、メモリ12から双線形群Gを読み出す。送信部113は、双線形群Gを公開パラメータppとして公開用のサーバに送信するといった方法により、公開する。これにより、暗号化装置20と鍵生成装置30と復号装置40とは、双線形群Gを取得可能になる。
また、送信部113は、ステップS12で選択されたPRF鍵Kをマスター秘密鍵mskとして、暗号化装置20及び鍵生成装置30に秘密裡に送信する。具体的には、送信部113は、メモリ12からPRF鍵Kを読み出す。送信部113は、PRF鍵Kをマスター秘密鍵mskとして、既存の暗号化方式で暗号化した上で暗号化装置20及び鍵生成装置30に送信する。
つまり、セットアップ装置10は、数124に示すSetupアルゴリズムを実行する。
Figure 0006971917
図7を参照して、実施の形態1に係る暗号化装置20の動作を説明する。
実施の形態1に係る暗号化装置20の動作は、実施の形態1に係る暗号化方法に相当する。また、実施の形態1に係る暗号化装置20の動作は、実施の形態1に係る暗号化プログラムの処理に相当する。
(ステップS21:マスター鍵取得処理)
マスター鍵取得部211は、セットアップ装置10によって生成された公開パラメータppである双線形群Gと、マスター秘密鍵mskであるPRF鍵Kとを取得する。
具体的には、マスター鍵取得部211は、通信インタフェース24を介して、公開された公開パラメータppを取得するとともに、セットアップ装置10によって送信されたマスター秘密鍵mskを取得する。マスター鍵取得部211は、公開パラメータpp及びマスター秘密鍵mskをメモリ22に書き込む。
(ステップS22:ベクトル取得処理)
ベクトル取得部212は、数125に示すベクトルxを取得する。ベクトルxは、暗号化の対象である。ここで、m:=m(λ)は、多項式である。
Figure 0006971917
具体的には、ベクトル取得部212は、通信インタフェース24を介して、暗号化装置20のユーザによって入力されたベクトルxを取得する。ベクトル取得部212は、ベクトルxをメモリ22に書き込む。
(ステップS23:設定情報生成処理)
設定情報定義部213は、ステップS21で取得された一定サイズの公開情報であるマスター秘密鍵mskを入力として、ステップS22で取得された暗号化する対象のベクトルxのサイズに応じたサイズの暗号化設定情報を定義する。ここでは、設定情報定義部213は、一定サイズの公開情報に基づき、ベクトルxのサイズに応じたデータサイズ拡張用の情報を暗号化して、データサイズ拡張用の情報が設定された暗号化設定情報を生成する。ここでのデータサイズ拡張用の情報は、インデックスiである。したがって、設定情報定義部213は、インデックスiを暗号化して、インデックスiが設定された暗号化設定情報を生成する。
具体的には、設定情報定義部213は、メモリ22からマスター秘密鍵msk及びベクトルxを読み出す。設定情報定義部213は、i=1,...,mの各整数iについて、PRFである関数Fに、マスター秘密鍵mskであるPRF鍵Kと、インデックスiとを入力として、行列Bを暗号化設定情報として生成する。mは、ベクトルxの要素数である。つまり、設定情報定義部213は、i=1,...,mの各整数iについて、B:=F(i)を計算して、行列Bを暗号化設定情報として扱う。
なお、設定情報定義部213は、生成された行列Bが非正則行列である場合には、識別子⊥を出力して、処理を終了する。
(ステップS24:暗号化処理)
暗号化部214は、ステップS23で定義された暗号化設定情報を用いて、ベクトルxを暗号化して暗号文ctを生成する。
具体的には、暗号化部214は、i=1,...,mの各整数iについて、数126に示すように、要素cを計算する。つまり、暗号化部214は、インデックスiが暗号化された暗号化設定情報を用いて、ベクトルxを暗号化して要素cを計算する。
Figure 0006971917
暗号化部214は、メモリ12から公開パラメータppである双線形群Gに含まれる群Gの群要素gを読み出す。暗号化部214は、i=1,...,mの各整数iについての各要素cを群要素gの指数部に設定した要素[cを生成する。暗号化部214は、数127に示すように、i=1,...,mの各整数iについての要素[cを暗号文ctとしてメモリ22に書き込む。
Figure 0006971917
(ステップS25:送信処理)
送信部215は、ステップS24で生成された暗号文ctを復号装置40に送信する。具体的には、送信部215は、メモリ22から暗号文ctを読み出す。送信部215は、通信インタフェース24を介して、暗号文ctを復号装置40に送信する。
つまり、暗号化装置20は、数128に示すEncアルゴリズムを実行する。
Figure 0006971917
図8を参照して、実施の形態1に係る鍵生成装置30の動作を説明する。
実施の形態1に係る鍵生成装置30の動作は、実施の形態1に係る鍵生成方法に相当する。また、実施の形態1に係る鍵生成装置30の動作は、実施の形態1に係る鍵生成プログラムの処理に相当する。
(ステップS31:マスター鍵取得処理)
マスター鍵取得部311は、セットアップ装置10によって生成された公開パラメータppである双線形群Gと、マスター秘密鍵mskであるPRF鍵Kとを取得する。
具体的には、マスター鍵取得部311は、通信インタフェース34を介して、公開された公開パラメータppを取得するとともに、セットアップ装置10によって送信されたマスター秘密鍵mskを取得する。マスター鍵取得部311は、公開パラメータpp及びマスター秘密鍵mskをメモリ32に書き込む。
(ステップS32:ベクトル取得処理)
ベクトル取得部312は、集合S⊆[s]と、インデックスが設定された数129に示すベクトルyとを取得する。ここで、s:=s(λ)は、多項式である。
Figure 0006971917
具体的には、ベクトル取得部312は、通信インタフェース24を介して、鍵生成装置30のユーザによって入力された集合S及びベクトルyを取得する。ベクトル取得部312は、集合S及びベクトルyをメモリ32に書き込む。
(ステップS33:設定情報生成処理)
設定情報定義部313は、ステップS31で取得された一定サイズの公開情報であるマスター秘密鍵mskを入力として、ステップS32で取得されたベクトルyのサイズに応じたサイズの鍵設定情報を定義する。ここでは、設定情報定義部313は、一定サイズの公開情報に基づき、ベクトルyのサイズに応じたデータサイズ拡張用の情報を暗号化して、データサイズ拡張用の情報が設定された鍵設定情報を生成する。ここでの、データサイズ拡張用の情報は、インデックスiである。したがって、設定情報定義部313は、インデックスiを暗号化して、インデックスiが設定された鍵設定情報を生成する。
具体的には、設定情報定義部313は、メモリ32からマスター秘密鍵mskと、集合Sとを読み出す。設定情報定義部313は、i∈Sの各整数iについて、PRFである関数Fに、マスター秘密鍵mskであるPRF鍵Kと、インデックスiとを入力として、行列Bを生成する。設定情報定義部313は、行列Bの随伴行列B :=(B −1を鍵設定情報として生成する。つまり、設定情報定義部313は、i∈Sの各整数iについて、B:=F(i)を計算して、行列Bの随伴行列B を鍵設定情報として扱う。
なお、設定情報定義部313は、生成された行列Bが非正則行列である場合には、識別子⊥を出力して、処理を終了する。
(ステップS34:鍵生成処理)
鍵生成部314は、ステップS33で生成された鍵設定情報を用いて、ベクトルyを設定した秘密鍵skを生成する。
具体的には、鍵生成部314は、i∈Sの各整数iについて、数130に示すように、乱数rを生成する。
Figure 0006971917
鍵生成部314は、i∈Sの各整数iについて、乱数rを用いて、数131に示すように、要素kを生成する。つまり、鍵生成部314は、インデックスiが暗号化された鍵設定情報を用いて、ベクトルyを暗号化して要素kを計算する。
Figure 0006971917
鍵生成部314は、メモリ12から公開パラメータppである双線形群Gに含まれる群Gの群要素gを読み出す。鍵生成部314は、i∈Sの各整数iについて、各要素kを群要素gの指数部に設定した要素[kを生成する。鍵生成部314は、数132に示すように、集合Sと、i∈Sの各整数iについての要素[kとを秘密鍵skとしてメモリ32に書き込む。
Figure 0006971917
(ステップS35:送信処理)
送信部315は、ステップS34で生成された秘密鍵skを復号装置40に送信する。具体的には、送信部315は、メモリ32から秘密鍵skを読み出す。送信部315は、通信インタフェース34を介して、秘密鍵skを復号装置40に送信する。
つまり、鍵生成装置30は、数133に示すKeyGenアルゴリズムを実行する。
Figure 0006971917
図9を参照して、実施の形態1に係る復号装置40の動作を説明する。
実施の形態1に係る復号装置40の動作は、実施の形態1に係る復号方法に相当する。また、実施の形態1に係る復号装置40の動作は、実施の形態1に係る復号プログラムの処理に相当する。
(ステップS41:公開鍵取得処理)
公開鍵取得部411は、セットアップ装置10によって生成された公開パラメータppである双線形群Gを取得する。
具体的には、公開鍵取得部411は、通信インタフェース44を介して、公開された公開パラメータppを取得する。公開鍵取得部411は、公開パラメータppをメモリ42に書き込む。
(ステップS42:暗号文取得処理)
暗号文取得部412は、暗号化装置20によって生成された暗号文ctを取得する。
具体的には、暗号文取得部412は、通信インタフェース44を介して、暗号化装置20によって送信された暗号文ctを取得する。暗号文取得部412は、暗号文ctをメモリ42に書き込む。
(ステップS43:秘密鍵取得処理)
秘密鍵取得部413は、鍵生成装置30によって生成された秘密鍵skを取得する。
具体的には、秘密鍵取得部413は、通信インタフェース44を介して、鍵生成装置30によって送信された秘密鍵skを取得する。秘密鍵取得部413は、秘密鍵skをメモリ42に書き込む。
(ステップS44:判定処理)
復号部414は、S⊆[m]であるか否かを判定することにより、復号可能か否かを判定する。
復号部414は、S⊆[m]である場合には、処理をステップS45に進める。一方、復号部414は、S⊆[m]でない場合には、復号できないとして識別子⊥を出力して、処理を終了する。
(ステップS45:復号処理)
復号部414は、ステップS42で取得された暗号文ctを、ステップS43で取得された秘密鍵skで復号して、ベクトルxとベクトルyとの内積値を計算する。
具体的には、復号部414は、公開パラメータppと暗号文ctと秘密鍵skとをメモリ42から読み出す。復号部414は、数134に示すように、暗号文ctと秘密鍵skとについてのペアリング演算を計算することにより、値hを計算する。
Figure 0006971917
復号部414は、−|S|Xλλから|S|Xλλまでの範囲からe(g,g=hであるような値dを探索する。ここで、|S|は、集合Sの要素数である。復号部414は、値dが見つかった場合には、値dを出力する。一方、復号部414は、値dが見つからない場合には、識別子⊥を出力する。
数135に示すように、値hは計算される。
Figure 0006971917
したがって、e(g,g=hであるような値dは、ベクトルxとベクトルyとの内積値になる。
つまり、復号装置40は、数136に示すDecアルゴリズムを実行する。
Figure 0006971917
***実施の形態1の効果***
以上のように、実施の形態1に係る暗号システム1では、暗号文ctは、一定のサイズの公開情報を入力として生成された暗号化設定情報であって、ベクトルxのサイズに応じたサイズの暗号化設定情報を用いて、ベクトルxが暗号化されて生成される。また、秘密鍵skは、一定のサイズの公開情報を入力として生成された鍵設定情報であって、ベクトルyのサイズに応じたサイズの鍵設定情報を用いて、ベクトルyが設定されて生成される。そして、暗号文ctが秘密鍵skで復号されて、ベクトルxとベクトルyとの内積値が計算される。そのため、暗号文及び秘密鍵の最大の長さが限定されない、IPFE方式を構築可能にすることができる。
暗号化設定情報及び鍵設定情報は、公開情報を入力として、PRFにより生成される。これにより、一定のサイズの公開情報からランダムな暗号化設定情報及び鍵設定情報を生成することができる。
また、暗号文ctの各要素[cを構成する要素cに乱数zが含まれる。これにより、暗号文ctの一部の要素を、別途生成された他の暗号文の要素と入れ替えるといったことができないようになっている。つまり、乱数zにより、暗号文ctがバインドされている。
同様に、秘密鍵skの各要素[kを構成する要素kに乱数rが含まれる。これにより、秘密鍵skの一部の要素を、別途生成された他の秘密鍵の要素と入れ替える、一部の要素を削除するといったことができないようになっている。つまり、乱数rにより、秘密鍵skがバインドされている。
***他の構成***
<変形例1>
実施の形態1では、各機能構成要素がソフトウェアで実現された。しかし、変形例1として、各機能構成要素はハードウェアで実現されてもよい。この変形例1について、実施の形態1と異なる点を説明する。
図10を参照して、変形例1に係るセットアップ装置10の構成を説明する。
各機能構成要素がハードウェアで実現される場合には、セットアップ装置10は、プロセッサ11とメモリ12とストレージ13とに代えて、電子回路15を備える。電子回路15は、各機能構成要素と、メモリ12と、ストレージ13との機能とを実現する専用の回路である。
図11を参照して、変形例1に係る暗号化装置20の構成を説明する。
各機能構成要素がハードウェアで実現される場合には、暗号化装置20は、プロセッサ21とメモリ22とストレージ23とに代えて、電子回路25を備える。電子回路25は、各機能構成要素と、メモリ22と、ストレージ23との機能とを実現する専用の回路である。
図12を参照して、変形例1に係る鍵生成装置30の構成を説明する。
各機能構成要素がハードウェアで実現される場合には、鍵生成装置30は、プロセッサ31とメモリ32とストレージ33とに代えて、電子回路35を備える。電子回路35は、各機能構成要素と、メモリ32と、ストレージ33との機能とを実現する専用の回路である。
図13を参照して、変形例1に係る復号装置40の構成を説明する。
各機能構成要素がハードウェアで実現される場合には、復号装置40は、プロセッサ41とメモリ42とストレージ43とに代えて、電子回路45を備える。電子回路45は、各機能構成要素と、メモリ42と、ストレージ43との機能とを実現する専用の回路である。
電子回路15,25,35,45としては、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)が想定される。
各機能構成要素を1つの電子回路15,25,35,45で実現してもよいし、各機能構成要素を複数の電子回路15,25,35,45に分散させて実現してもよい。
<変形例2>
変形例2として、一部の各機能構成要素がハードウェアで実現され、他の各機能構成要素がソフトウェアで実現されてもよい。
プロセッサ11,21,31,41とメモリ12,22,32,42とストレージ13,23,33,43と電子回路15,25,35,45とを処理回路という。つまり、各機能構成要素の機能は、処理回路により実現される。
実施の形態2.
実施の形態2では、Public−key UIPFEについて説明する。実施の形態2では、実施の形態1と異なる点を説明し、同一の点については説明を省略する。
***構成の説明***
<Public−key UIPFEの構成>
Public−key UIPFEは、公開鍵セッティングのUIPFEである。公開鍵セッティングは、暗号文の作成に公開鍵だけが必要であり、秘密鍵は必要ない方式である。
Public−key UIPFEは、Setupアルゴリズムと、Encアルゴリズムと、KeyGenアルゴリズムと、Decアルゴリズムとを含む。Χ:={Xλλ∈N,Υ:={Yλλ∈Nをノルム上限の集合体とする。ここで、Nは、自然数の集合である。
Setupアルゴリズムは、セキュリティパラメータ1λを入力として、公開鍵pkと、マスター秘密鍵mskとを出力する。
Encアルゴリズムは、公開鍵pkと、ベクトルx:=(x,...,x)とを入力として、暗号文ctを出力する。ここで、m:=m(λ)は、多項式である。
KeyGenアルゴリズムは、公開鍵pkと、マスター秘密鍵mskと、空でない集合S:=[s]と、インデックス付けされたベクトルy:=(yi∈Sとを入力として、秘密鍵skを出力する。ここで、s:=s(λ)は、多項式である。
Decアルゴリズムは、公開鍵pkと、暗号文ctと、秘密鍵skとを入力として、復号された値d∈Z、又は、識別子⊥を出力する。ここで、Zは、数の集合である。識別子⊥は、復号できないことを示す。
<暗号システム1の構成>
図14を参照して、実施の形態2に係る暗号システム1の構成を説明する。
暗号システム1は、セットアップ装置10と、暗号化装置20と、鍵生成装置30と、復号装置40とを備える。セットアップ装置10と暗号化装置20と鍵生成装置30と復号装置40とは、ネットワークを介して接続される。
暗号システム1は、セットアップ装置10から暗号化装置20にマスター秘密鍵mskが送信されていない点が図1に示す暗号システム1と異なる。
***動作の説明***
以下の説明では、ノルム上限Xλ,Yλは、ある多項式である。
図6を参照して、実施の形態2に係るセットアップ装置10の動作を説明する。
実施の形態2に係るセットアップ装置10の動作は、実施の形態2に係るセットアップ方法に相当する。また、実施の形態2に係るセットアップ装置10の動作は、実施の形態2に係るセットアッププログラムの処理に相当する。
ステップS11の処理は、実施の形態1と同じである。
(ステップS12:マスター鍵生成処理)
マスター鍵生成部112は、ステップS11で受け付けられたセキュリティパラメータ1λを入力として、双線形群Gを選択する。また、マスター鍵生成部112は、7×7の正則行列Bを生成する。
具体的には、マスター鍵生成部112は、メモリ12からセキュリティパラメータ1λを読み出す。マスター鍵生成部112は、セキュリティパラメータ1λを入力として、双線形群の生成アルゴリズムGBGを実行して、双線形群Gを選択する。マスター鍵生成部112は、数137に示すように、ランダムに7×7の正則行列Bを生成する。マスター鍵生成部112は、正則行列Bの随伴行列B:=(B−1を生成する。マスター鍵生成部112は、双線形群Gと正則行列B及び随伴行列Bとをメモリ12に書き込む。
Figure 0006971917
(ステップS13:送信処理)
送信部113は、ステップS12で選択された双線形群Gと、i=1,...,4の各整数iについての正則行列Bのi行目の要素を群要素gの指数部に設定した要素[bとを公開鍵pkとして、公開する。具体的には、送信部113は、メモリ12から双線形群Gを読み出す。送信部113は、双線形群Gに含まれる要素gを用いて、i=1,...,4の各整数iについての正則行列Bのi行目の要素を群要素gの指数部に設定して、要素[bを生成する。送信部113は、双線形群G及び要素[b,...,[bを公開鍵pkとして公開用のサーバに送信するといった方法により、公開する。これにより、暗号化装置20と鍵生成装置30と復号装置40とは、双線形群G及び要素[b,...,[bを取得可能になる。
また、送信部113は、i=1,...,4の各整数iについての随伴行列Bのi行目の要素b をマスター秘密鍵mskとして、鍵生成装置30に秘密裡に送信する。具体的には、送信部113は、メモリ12から随伴行列Bを読み出す。送信部113は、i=1,...,4の各整数iについての随伴行列Bのi行目の要素b をマスター秘密鍵mskとして、既存の暗号化方式で暗号化した上で鍵生成装置30に送信する。
つまり、セットアップ装置10は、数138に示すSetupアルゴリズムを実行する。
Figure 0006971917
図7を参照して、実施の形態2に係る暗号化装置20の動作を説明する。
実施の形態2に係る暗号化装置20の動作は、実施の形態2に係る暗号化方法に相当する。また、実施の形態2に係る暗号化装置20の動作は、実施の形態2に係る暗号化プログラムの処理に相当する。
ステップS22及びステップS25の処理は、実施の形態1と同じである。
(ステップS21:マスター鍵取得処理)
マスター鍵取得部211は、セットアップ装置10によって生成された公開鍵pkである双線形群G及び要素[b,...,[bを取得する。
具体的には、マスター鍵取得部211は、通信インタフェース24を介して、公開された公開鍵pkを取得する。マスター鍵取得部211は、公開鍵pkをメモリ22に書き込む。
(ステップS23:設定情報生成処理)
設定情報定義部213は、ステップS21で取得された一定サイズの公開情報にベクトルxの要素毎に生成されたインデックス情報Iを設定した情報を、ステップS22で取得された暗号化する対象のベクトルxのサイズに応じたサイズの暗号化設定情報として定義する。
具体的には、設定情報定義部213は、i=1,...,mの各整数iについて、数139に示すように、乱数πを生成する。
Figure 0006971917
そして、設定情報定義部213は、i=1,...,mの各整数iについて、数140に示すように、インデックス情報Iである乱数πと乱数πに値iを乗じた値との組を設定した情報を、暗号化設定情報Bと定義する。
Figure 0006971917
つまり、実施の形態1とは方法は異なるが、実施の形態1と同様に、設定情報定義部213は、インデックスiを暗号化して、インデックスiが設定された暗号化設定情報を定義する。
(ステップS24:暗号化処理)
暗号化部214は、ステップS23で定義された暗号化設定情報を用いて、ベクトルxを暗号化して暗号文ctを生成する。
具体的には、暗号化部214は、i=1,...,mの各整数iについて、数141に示すように、要素x及び乱数zを設定した情報を、要素cと定義する。
Figure 0006971917
つまり、要素cは、数142に示すように定義される。
Figure 0006971917
暗号化部214は、メモリ12から公開パラメータppである双線形群Gに含まれる群Gの群要素gを読み出す。暗号化部214は、i=1,...,mの各整数iについての各要素cを群要素gの指数部に設定した要素[cを生成する。暗号化部214は、数143に示すように、i=1,...,mの各整数iについての要素[cを暗号文ctとしてメモリ22に書き込む。
Figure 0006971917
つまり、暗号化装置20は、数144に示すEncアルゴリズムを実行する。
Figure 0006971917
図8を参照して、実施の形態2に係る鍵生成装置30の動作を説明する。
実施の形態2に係る鍵生成装置30の動作は、実施の形態2に係る鍵生成方法に相当する。また、実施の形態2に係る鍵生成装置30の動作は、実施の形態2に係る鍵生成プログラムの処理に相当する。
ステップS32及びステップS35の処理は、実施の形態1と同じである。
(ステップS31:マスター鍵取得処理)
マスター鍵取得部311は、セットアップ装置10によって生成された公開鍵pkである双線形群G及び要素[b,...,[bと、マスター秘密鍵mskである要素b ,...,b とを取得する。
具体的には、マスター鍵取得部311は、通信インタフェース34を介して、公開された公開鍵pkを取得するとともに、セットアップ装置10によって送信されたマスター秘密鍵mskを取得する。マスター鍵取得部311は、公開鍵pk及びマスター秘密鍵mskをメモリ32に書き込む。
(ステップS33:設定情報生成処理)
設定情報定義部313は、ステップS31で取得された一定サイズの秘密情報であるマスター秘密鍵mskである要素b ,...,b を入力として、ステップS32で取得されたベクトルyのサイズに応じたサイズの鍵設定情報を定義する。
具体的には、設定情報定義部313は、設定情報定義部313は、メモリ32からマスター秘密鍵mskと、集合Sとを読み出す。設定情報定義部313は、i∈Sの各整数iについて、数145に示すように、乱数ρを生成する。
Figure 0006971917
そして、設定情報定義部313は、i∈Sの各整数iについて、数146に示すように、インデックス情報I’である乱数ρに値−iを乗じた値と乱数ρとの組を設定した情報を、鍵設定情報B と生成する。
Figure 0006971917
つまり、実施の形態1とは方法は異なるが、実施の形態1と同様に、設定情報定義部313は、インデックスiを暗号化して、インデックスiが設定された鍵設定情報を生成する。
(ステップS34:鍵生成処理)
鍵生成部314は、ステップS33で定義された鍵設定情報を用いて、ベクトルyを設定した秘密鍵skを生成する。
具体的には、鍵生成部314は、i∈Sの各整数iについて、数147に示すように、乱数rを生成する。
Figure 0006971917
鍵生成部314は、i∈Sの各整数iについて、乱数rを用いて、数148に示すように、要素kを生成する。
Figure 0006971917
つまり、要素kは、数149に示すようになる。
Figure 0006971917
鍵生成部314は、メモリ12から公開パラメータppである双線形群Gに含まれる群Gの群要素gを読み出す。鍵生成部314は、i∈Sの各整数iについて、各要素kを群要素gの指数部に設定した要素[kを生成する。鍵生成部314は、数150に示すように、集合Sと、i∈Sの各整数iについての要素[kとを秘密鍵skとしてメモリ32に書き込む。
Figure 0006971917
つまり、鍵生成装置30は、数151に示すKeyGenアルゴリズムを実行する。
Figure 0006971917
実施の形態2に係る復号装置40の動作は、実施の形態1に係る復号装置40の動作と同じである。
***実施の形態2の効果***
以上のように、実施の形態2に係る暗号システム1では、実施の形態1と同様に、暗号文及び秘密鍵の最大の長さが限定されない、IPFE方式を構築可能にすることができる。
暗号化設定情報及び鍵設定情報は、公開情報を入力として、インデックス情報I,I’を用いて生成される。これにより、一定のサイズの公開情報からランダムな暗号化設定情報及び鍵設定情報を生成することができる。
***他の構成***
<変形例3>
実施の形態2では、インデックス情報Iは、乱数πと乱数πに値iを乗じた値との組であり、インデックス情報I’は、乱数ρに値−iを乗じた値と乱数ρとの組であった。インデックス情報I及びインデックス情報I’は、内積値が0になる値であれば、これに限定されない。
実施の形態3.
実施の形態1,2では、(E:con,K:sep,D:ct−dom)セッティングについて説明した。実施の形態3では、他のセッティングについて説明する。実施の形態3では、実施の形態1,2と異なる点を説明し、同一の点については説明を省略する。
他のセッティングとしては、以下のセッティング1からセッティング7の7個が考えられる。
セッティング1:(E:con,K:con,D:ct−dom)セッティング
長さmのベクトルの暗号文と、長さnのベクトルの秘密鍵とに対して、n≦mの場合に限り、暗号文を秘密鍵で復号でき、[n]に関する内積値が得られる方式である。
セッティング2:(E:sep,K:sep,D:ct−dom)セッティング
集合Uが付加された暗号文と、集合Sが付加された秘密鍵とに対して、S⊆Uの場合に限り、暗号文を秘密鍵で復号でき、集合Sに関する内積値が得られる方式である。
セッティング3:(E:con,K:con,D:sk−dom)セッティング
長さmのベクトルの暗号文と、長さnのベクトルの秘密鍵とに対して、m≦nの場合に限り、暗号文を秘密鍵で復号でき、[m]に関する内積値が得られる方式である。
セッティング4:(E:sep,K:con,D:sk−dom)セッティング
集合Uが付加された暗号文と、長さnのベクトルの秘密鍵とに対して、U⊆[n]の場合に限り、暗号文を秘密鍵で復号でき、集合Uに関する内積値が得られる方式である。
セッティング5:(E:sep,K:sep,D:sk−dom)セッティング
集合Uが付加された暗号文と、集合Sが付加された秘密鍵とに対して、U⊆Sの場合に限り、暗号文を秘密鍵で復号でき、集合Uに関する内積値が得られる方式である。
セッティング6:(E:con,K:con,D:eq)セッティング
長さmのベクトルの暗号文と、長さmのベクトルの秘密鍵とに対して、[m]に関する内積値が得られる方式である。
セッティング7:(E:sep,K:sep,D:eq)セッティング
集合Sが付加された暗号文と、集合Sが付加された秘密鍵とに対して、集合Sに関する内積値が得られる方式である。
各セッティングにおける動作の違いを説明する。
E:xx,K:yy,D:zzの違いは、暗号文を秘密鍵で復号できる条件に影響する。具体的には、図9のステップS44での判定内容に影響する。
実施の形態1,2では、E:con,K:sep,D:ct−domであったため、S⊆[m]の場合に限り、暗号文を秘密鍵で復号できた。そのため、図9のステップS44でS⊆[m]であるか否かが判定された。他のセッティングの場合には、図9のステップS44でそのセッティングに応じた判定がされる。判定内容は、各セッティングで説明した通りである。
なお、D:eqの場合には、暗号文及び秘密鍵のベクトルの長さが同じである、あるいは、暗号文及び秘密鍵に付加された集合が同じであることが前提である。そのため、図9のステップS44は不要である。又は、図9のステップS44で、暗号文及び秘密鍵のベクトルの長さが同じであること、あるいは、暗号文及び秘密鍵に付加された集合が同じであることの判定が行われてもよい。
また、D:zzの違いは、暗号文ctの要素cと、秘密鍵skの要素kとの乱数の設定方法に影響する。具体的には、図7のステップS24で設定された乱数zと、図8のステップS34で設定された乱数rとの設定方法に影響する。
実施の形態1,2では、D:ct−domであったため、秘密鍵skの要素kに乱数rが設定された。一方、要素kにおける乱数rが設定された要素に対応する、要素cにおける要素には乱数zが設定された。これにより、秘密鍵skがバインドされるとともに、暗号文ctがバインドされた。ここで、乱数rは、秘密鍵skの集合Sに含まれる各整数iについて、乱数rの和が0になるように生成された。つまり、全ての要素kについての乱数rの和が0になるように乱数rは生成された。
他のセッティングの場合には、D:zzに応じて、乱数rと乱数zとが、要素cと要素kとのどちらに設定されるかが変更される。具体的には、D:ct−domの場合には、上述した通り、要素kに乱数r設定され、要素cに乱数zが設定される。この場合には、全ての要素kについての乱数rの和が0になるように乱数rは生成される。D:sk−domの場合には、要素cに乱数rが設定され、要素kに乱数zが設定される。この場合には、全ての要素cについての乱数rの和が0になるように乱数rは生成される。D:eqの場合には、要素kに乱数rが設定され、要素cに乱数zが設定されるとともに、要素cに乱数r’が設定され、要素kに乱数z’が設定される。この場合には、全ての要素kについての乱数rの和が0になるように乱数rは生成され、全ての要素cについての乱数r’の和が0になるように乱数r’は生成される。なお、乱数r’は、乱数rとは異なる乱数であるが、乱数rと同様の役割を果たす乱数である。乱数z’は、乱数zとは異なる乱数であるが、乱数zと同様の役割を果たす乱数である。
以上のように、実施の形態3に係る暗号システム1では、実施の形態1,2で説明したセッティングとは異なるセッティングについても、暗号文及び秘密鍵の最大の長さが限定されない、IPFE方式を構築可能にすることができる。
実施の形態4.
実施の形態4では、実施の形態1で説明したPrivate−key UIPFEの処理を効率的に実現可能な方式を説明する。実施の形態4では、実施の形態1と異なる点を説明し、同一の点については説明を省略する。
実施の形態4では、(E:con,K:con,D:eq)セッティングについて説明する。つまり、実施の形態4では、実施の形態3で説明したセッティング6について説明する。
以下の説明では、数152に示すbinaryλは、入力をバイナリー形式に変換し、変換されたデータに0を付加してλビットにする関数である。
Figure 0006971917
セットアップ装置10の動作は、実施の形態1と同じである。
暗号化装置20は、数153に示すEncアルゴリズムを実行する。
Figure 0006971917
鍵生成装置30は、数154に示すKeyGenアルゴリズムを実行する。
Figure 0006971917
復号装置40は、数155に示すDecアルゴリズムを実行する。
Figure 0006971917
ここでは、(E:con,K:con,D:eq)セッティングについて説明した。しかし、他のセッティングについても同様の考えに基づき実現可能である。E:sep及びK:sepの場合には、EncアルゴリズムにおけるBに代えて、集合S毎にBを生成し、KeyGenアルゴリズムにおけるBに代えて、集合U毎にBを生成すればよい。
1 暗号システム、10 セットアップ装置、11 プロセッサ、12 メモリ、13 ストレージ、14 通信インタフェース、15 電子回路、111 受付部、112 マスター鍵生成部、113 送信部、20 暗号化装置、21 プロセッサ、22 メモリ、23 ストレージ、24 通信インタフェース、25 電子回路、211 マスター鍵取得部、212 ベクトル取得部、213 設定情報定義部、214 暗号化部、215 送信部、30 鍵生成装置、31 プロセッサ、32 メモリ、33 ストレージ、34 通信インタフェース、35 電子回路、311 マスター鍵取得部、312 ベクトル取得部、313 設定情報定義部、314 鍵生成部、315 送信部、40 復号装置、41 プロセッサ、42 メモリ、43 ストレージ、44 通信インタフェース、45 電子回路、411 公開鍵取得部、412 暗号文取得部、413 秘密鍵取得部、414 復号部。

Claims (7)

  1. 一定のサイズの公開情報を入力として定義された暗号化設定情報であって、ベクトルxのサイズに応じたサイズの暗号化設定情報を用いて、前記ベクトルxが暗号化された暗号文ctを取得する暗号文取得部と、
    前記公開情報を入力として定義された鍵設定情報であって、ベクトルyのサイズに応じたサイズの鍵設定情報を用いて、前記ベクトルyが設定された秘密鍵skを取得する秘密鍵取得部と、
    前記暗号文取得部によって取得された前記暗号文ctを、前記秘密鍵取得部によって取得された前記秘密鍵skで復号して、前記ベクトルxと前記ベクトルyとの内積値を計算する復号部と
    を備え
    前記暗号化設定情報は、前記ベクトルxの要素毎に生成されたインデックス情報Iが前記公開情報に設定されて定義され、
    前記鍵設定情報は、前記ベクトルyの要素毎に生成されたインデックス情報I’であって、前記ベクトルxの対応する要素に対して生成されたインデックス情報Iとの内積値が0になるように生成されたインデックス情報I’が前記公開情報に設定されて定義された復号装置。
  2. 前記暗号文ctは、前記ベクトルxの各要素xを対象として、前記インデックス情報Iと対象の要素xとを設定したベクトルと、前記公開情報である行列Bとの積が群要素に設定された要素[cを含み、
    前記秘密鍵skは、前記ベクトルyの各要素yを対象として、前記インデックス情報I’と対象の要素yとを設定したベクトルと、前記行列Bの随伴行列Bとの積が群要素に設定された要素[kを含み、
    前記復号部は、前記暗号文ctと前記秘密鍵skとについてのペアリング演算を計算することにより、前記内積値を計算する
    請求項に記載の復号装置。
  3. 前記暗号文ctは、1以上の整数mと、i=1,...,mの各整数iについてのインデックス情報Iであるπ(1,i)とについて、数1に示す要素cが群要素に設定された要素[cを含み、
    前記秘密鍵skは、整数の集合Sと、前記集合Sに含まれる各整数iについてのインデックス情報I’であるρ(−i,1)とについて、数2に示す要素kが群要素に設定された要素[kを含む
    請求項に記載の復号装置。
    Figure 0006971917
    Figure 0006971917
  4. ベクトルxが暗号化された暗号文ctを、ベクトルyが設定された秘密鍵skで復号することにより、前記ベクトルxと前記ベクトルyとの内積値を計算する暗号システムにおける暗号化装置であり、
    一定のサイズの公開情報を入力として、暗号化する対象のベクトルxのサイズに応じたサイズの暗号化設定情報を定義する設定情報定義部と、
    前記設定情報定義部によって定義された前記暗号化設定情報を用いて、前記ベクトルxを暗号化して暗号文ctを生成する暗号化部と
    を備え
    前記設定情報定義部は、前記ベクトルxの要素毎に生成されたインデックス情報Iを前記公開情報に設定した情報を、前記暗号化設定情報と定義する暗号化装置。
  5. 前記暗号文ctは、前記ベクトルxの各要素xを対象として、前記インデックス情報Iと対象の要素とを設定したベクトルと、前記公開情報である行列Bとの積が群要素に設定された要素[cを含む前記暗号文ctを生成する
    請求項に記載の暗号化装置。
  6. 前記暗号化部は、1以上の整数mと、i=1,...,mの各整数iについてのインデックス情報Iであるπ(1,i)とについて、数3に示す要素cが群要素に設定された要素[cを含む前記暗号文ctを生成する
    請求項に記載の暗号化装置。
    Figure 0006971917
  7. 一定のサイズの公開情報を入力として生成された暗号化設定情報であって、ベクトルxのサイズに応じたサイズの暗号化設定情報を用いて、前記ベクトルxが暗号化された暗号文ctを生成する暗号化装置と、
    前記公開情報を入力として生成された鍵設定情報であって、ベクトルyのサイズに応じたサイズの鍵設定情報を用いて、前記ベクトルyが設定された秘密鍵skを生成する鍵生成装置と、
    前記暗号化装置によって生成された前記暗号文ctを、前記鍵生成装置によって生成された前記秘密鍵skで復号して、前記ベクトルxと前記ベクトルyとの内積値を計算する復号装置と
    を備え
    前記暗号化設定情報は、前記ベクトルxの要素毎に生成されたインデックス情報Iが前記公開情報に設定されて定義され、
    前記鍵設定情報は、前記ベクトルyの要素毎に生成されたインデックス情報I’であって、前記ベクトルxの対応する要素に対して生成されたインデックス情報Iとの内積値が0になるように生成されたインデックス情報I’が前記公開情報に設定されて定義された暗号システム。
JP2018110987A 2018-06-11 2018-06-11 復号装置、暗号化装置及び暗号システム Active JP6971917B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2018110987A JP6971917B2 (ja) 2018-06-11 2018-06-11 復号装置、暗号化装置及び暗号システム
PCT/JP2019/019248 WO2019239776A1 (ja) 2018-06-11 2019-05-15 復号装置、暗号化装置及び暗号システム
EP19819297.3A EP3767874B1 (en) 2018-06-11 2019-05-15 Decrypting device, encrypting device, and encryption system
CN201980037922.0A CN112236974B (zh) 2018-06-11 2019-05-15 解密装置、加密装置以及密码系统
US17/072,823 US11533176B2 (en) 2018-06-11 2020-10-16 Decryption device, encryption device, and cryptographic system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018110987A JP6971917B2 (ja) 2018-06-11 2018-06-11 復号装置、暗号化装置及び暗号システム

Publications (2)

Publication Number Publication Date
JP2019215391A JP2019215391A (ja) 2019-12-19
JP6971917B2 true JP6971917B2 (ja) 2021-11-24

Family

ID=68843255

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018110987A Active JP6971917B2 (ja) 2018-06-11 2018-06-11 復号装置、暗号化装置及び暗号システム

Country Status (5)

Country Link
US (1) US11533176B2 (ja)
EP (1) EP3767874B1 (ja)
JP (1) JP6971917B2 (ja)
CN (1) CN112236974B (ja)
WO (1) WO2019239776A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112150148A (zh) * 2020-09-24 2020-12-29 普华云创科技(北京)有限公司 一种基于区块链技术的企业资产保护方法与系统
WO2024028961A1 (ja) * 2022-08-01 2024-02-08 日本電信電話株式会社 暗号システム、方法及びプログラム
WO2024098074A2 (en) * 2022-11-06 2024-05-10 Ntt Research, Inc. Compact functional encryption for unbounded attribute-weighted sums
WO2024151871A1 (en) * 2023-01-11 2024-07-18 Ntt Research, Inc. Decentralized multi-authority attribute-based encryption for large universe and unbounded

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011151689A (ja) * 2010-01-22 2011-08-04 Fujitsu Ltd 情報処理装置および情報処理方法
US8634563B2 (en) * 2010-12-17 2014-01-21 Microsoft Corporation Attribute based encryption using lattices
JP5606351B2 (ja) * 2011-02-09 2014-10-15 三菱電機株式会社 暗号処理システム、鍵生成装置、暗号化装置、復号装置、鍵委譲装置、暗号処理方法及び暗号処理プログラム
WO2012160137A2 (en) * 2011-05-25 2012-11-29 Universität Zürich System, apparatus and method for efficient multicast key distribution
JP5677273B2 (ja) * 2011-11-18 2015-02-25 三菱電機株式会社 暗号処理システム、暗号処理方法、暗号処理プログラム及び鍵生成装置
JP5730805B2 (ja) * 2012-04-04 2015-06-10 日本電信電話株式会社 格子問題に基づく階層型内積暗号システム,格子問題に基づく階層型内積暗号方法,装置
JP5921410B2 (ja) * 2012-10-19 2016-05-24 三菱電機株式会社 暗号システム
JP5852551B2 (ja) * 2012-11-12 2016-02-03 日本電信電話株式会社 関数型暗号システム、鍵生成装置、暗号化装置、復号装置、関数型暗号方法、およびプログラム
JP5966877B2 (ja) * 2012-11-20 2016-08-10 富士通株式会社 復号方法、復号プログラム、復号装置、および鍵生成方法
US9264222B2 (en) * 2013-02-28 2016-02-16 Apple Inc. Precomputing internal AES states in counter mode to protect keys used in AES computations
US9418126B2 (en) * 2013-09-18 2016-08-16 Cellco Partnership Out of home media measurement
CN104486315B (zh) * 2014-12-08 2017-06-13 北京航空航天大学 一种基于内容属性的可撤销密钥外包解密方法
JPWO2016113878A1 (ja) * 2015-01-15 2017-04-27 三菱電機株式会社 秘匿検索システム、秘匿検索プログラム及び変換後検索鍵生成装置
JP6643756B2 (ja) * 2015-11-20 2020-02-12 国立研究開発法人情報通信研究機構 サーバ、サービス方法
US11165758B2 (en) * 2018-04-09 2021-11-02 International Business Machines Corporation Keystream generation using media data
JP7117964B2 (ja) * 2018-10-04 2022-08-15 三菱電機株式会社 復号装置、暗号システム、復号方法及び復号プログラム
WO2022040621A1 (en) * 2020-08-21 2022-02-24 Cyborg Inc. System and method for encrypted search using hash vectorization models
US11582025B2 (en) * 2020-09-29 2023-02-14 Amazon Technologies, Inc. Efficient deduplication using block-based convergent encryption

Also Published As

Publication number Publication date
CN112236974B (zh) 2024-02-23
WO2019239776A1 (ja) 2019-12-19
US20210036852A1 (en) 2021-02-04
US11533176B2 (en) 2022-12-20
JP2019215391A (ja) 2019-12-19
CN112236974A (zh) 2021-01-15
EP3767874A4 (en) 2021-06-30
EP3767874A1 (en) 2021-01-20
EP3767874B1 (en) 2023-08-30

Similar Documents

Publication Publication Date Title
JP6971917B2 (ja) 復号装置、暗号化装置及び暗号システム
JP6391900B1 (ja) 準同型推論装置、準同型推論方法、準同型推論プログラム及び秘匿情報処理システム
KR102019159B1 (ko) 정수 기반 준동형 암호 기법에 일반적으로 적용 가능한 압축 암복호화 장치 및 방법
JP6522263B2 (ja) 準同型演算装置、暗号システム及び準同型演算プログラム
JPWO2019130528A1 (ja) 変換鍵生成装置、暗号文変換装置、秘匿情報処理システム、変換鍵生成方法、変換鍵生成プログラム、暗号文変換方法及び暗号文変換プログラム
JP5814880B2 (ja) 暗号システム、暗号方法、暗号プログラム及び復号装置
JP6305638B2 (ja) 暗号システム及び鍵生成装置
JP5732429B2 (ja) 秘密分散システム、データ分散装置、データ復元装置、秘密分散方法、およびプログラム
WO2020070973A1 (ja) 復号装置、暗号システム、復号方法及び復号プログラム
JP7233265B2 (ja) 署名装置、検証装置、署名方法、検証方法、署名プログラム及び検証プログラム
CN113645022B (zh) 一种确定隐私集合交集方法、装置、电子设备及存储介质
JP6949276B2 (ja) 再暗号化装置、再暗号化方法、再暗号化プログラム及び暗号システム
JP7126635B2 (ja) 再暗号化装置、暗号システム、再暗号化方法及び再暗号化プログラム
JP6885325B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法、プログラム
US11451372B2 (en) Privacy-preserving analysis device, privacy-preserving analysis system, privacy-preserving analysis method, and computer readable medium
JP7158635B2 (ja) 暗号システム、暗号化装置、復号装置及び鍵生成装置
JP7520255B2 (ja) 秘匿情報処理システム、秘匿情報処理方法、及び秘匿情報処理プログラム
Singh et al. Security of Data with 3DES & Watermarking Algorithm
CN118264388A (zh) 数据处理方法、非易失性存储介质及计算机程序产品
JP2004356720A (ja) セキュリティ装置、セキュリティ方法、及びプログラム
JP2004032521A (ja) 量子情報分散検証方法、その装置及びプログラム

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20180613

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20180613

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190130

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200611

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210817

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210929

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: 20211005

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211102

R150 Certificate of patent or registration of utility model

Ref document number: 6971917

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150