JP7117964B2 - 復号装置、暗号システム、復号方法及び復号プログラム - Google Patents
復号装置、暗号システム、復号方法及び復号プログラム Download PDFInfo
- Publication number
- JP7117964B2 JP7117964B2 JP2018188781A JP2018188781A JP7117964B2 JP 7117964 B2 JP7117964 B2 JP 7117964B2 JP 2018188781 A JP2018188781 A JP 2018188781A JP 2018188781 A JP2018188781 A JP 2018188781A JP 7117964 B2 JP7117964 B2 JP 7117964B2
- Authority
- JP
- Japan
- Prior art keywords
- ciphertext
- decryption
- vector
- decryption key
- unit
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/083—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0847—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving identity based encryption [IBE] schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
- H04L9/3073—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Data Mining & Analysis (AREA)
- Computational Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Description
この発明は、非特許文献1に記載された述語暗号方式と同様に幅広い述語を許容しつつ、安全性を高くすることが可能な述語暗号方式を実現可能にすることを目的とする。
双対ベクトル空間における双対基底である基底B及び基底B*のうちの基底Bに、属性ベクトルと、ABP(Arithmetic Branching Programs)の述語ベクトルとの一方が設定された暗号文を取得する暗号文取得部と、
前記基底B*に、前記属性ベクトルと前記述語ベクトルとの他方が設定された復号鍵を取得する復号鍵取得部と、
前記暗号文取得部によって取得された前記暗号文と、前記復号鍵取得部によって取得された前記復号鍵とについてペアリング演算を行うことにより、前記暗号文を復号する復号部と
を備える。
以下の説明で用いられる用語の定義等を説明する。
PHPEは、属性の一部が秘密にされるPE(Predicate Encryption)である。以下の説明では、属性ベクトルx→と属性ベクトルz→とが与えられ、属性ベクトルx→は公開される公開属性ベクトルであり、属性ベクトルz→は秘密にされる秘密属性ベクトルである。
BP(Branching Program)Γは、数119に示す5つの要素によって定義される。
関数fを計算するABPΓ=(V,E,V0,V1,φ)が与えられた場合、入力v→∈Fq dをFqにおける(#V-1)×(#V-1)の行列L(v→)にマッピングする関数Lを効率的かつ決定的に計算することが可能である。また、以下の(1)から(3)が成立する。
(1)det(L(v→))=f(v→)である。
(2)(L(v→))の各成分は、Fqにおける係数を伴う1つの変数vi(i∈[d])の1次式、又は、Fqにおける定数である。
(3)(L(v→))は、第2対角、つまり主対角のすぐ下の対角には、-1だけを含み、第2対角の下には0だけを含む。
具体的には、行列Lは、行列AΓ-Iから、V0に対応する列と、V1に対応する行とを取り除くことによって得られる。ここで、行列AΓは、Γに対する隣接行列である。Iは単位行列である。
関数族F(q,n’,n) ABP〇IPは、実施の形態1に係るPHPE方式でサポートされる関数族である。
関数族F(q,n’,n) ABP〇IPは、素数qと、自然数n’,nとによってパラメータ化され、数125に示す関数fを含む。
まず、ABP{Γj}j∈[n]の全てのソース頂点は、1つに併合される。そして、併合された1つの頂点が、ABPΓのソース頂点になる。次に、ABPΓに対する新たなシンク頂点が生成される。j∈[n]の各整数jについて、ABPΓjのシンク頂点から新たなシンク頂点に向かって、zjでラベル付けされた有向辺によって接続される。ここで、関数fを計算するABPΓのサイズは、m+n+1である。1は、ABPΓのシンク頂点に対応する。nは、シンク頂点へ向けられた辺の数に対応する。mは、ABPΓの他の頂点に対応する。
ABPΓは、各頂点が1次のラベルを有する1つの出力辺のみを有するABPΓ’に修正される。具体的には、ABPΓにおける各辺Eが1とφ(E)とでラベル付けされた辺のペアに置き換えられることによって、ABPΓがABPΓ’に修正される。φは、ABPΓのラベリング関数である。ABPΓ’のサイズも、m+n+1である。
ABP〇IP述語族RABP〇IPは、数126に示す通りである。
PGBアルゴリズム(PGB(f;r→))は、関数f∈F(q,n’,n) ABP〇IPを入力として、ランダム性r→∈Fq m+n-1を用いて、関数ρ:[m]→[n’]を伴う定数の集合({σj}j∈[n],{αj’,γj’}j’∈[m])∈Fq n×(Fq 2)mを出力する確率的多項式時間アルゴリズムである。x→∈Fq n’とz→∈Fq nとともに、この定数は、n+m個の割当値({zj+σj}j∈[n],{αj’zρ(j’)+γj’}j’∈[m])を特定する。
ここで、m+n+1は、関数fを計算するABPの頂点の数であり、ρは、関数fから確定的に導出される。
(1)線形性:固定された関数f∈F(q,n’,n) ABP〇IPに対して、PGB(f;・)は、Fqにおけるランダム性を有する線形な関数を計算する。
(2)再構築:関数f∈F(q,n’,n) ABP〇IPと、x→∈Fq n’とを入力として、係数の集合({Ωj}j∈[n],{Ω’j’}j’∈[m])∈Fq n×Fq n’を出力する確定的多項式時間アルゴリズムRECが存在する。この係数の集合は、f(x→,z→)を復元するために、PGB(f)の出力と、x→及びz→∈Fq nとの結合によって計算された割当値の集合と合わせて用いられる。
(3)秘匿性:全ての関数f∈F(q,n’,n) ABP〇IPと、x→∈Fq n’と、z→∈Fq nとに対して、関数fと、x→と、f(x→,z→)とを入力とし、出力が割当値に対して一様に分布する確率的多項式時間アルゴリズムSIMが存在する。割当値は、一様にランダムなr→に対するPGB(f;r→)の出力とx→及びz→との結合によって計算される。
数132に示すDPVSであるparamVは、双線形群であるparamGの直積によって構成される。paramVは、素数qと、要素毎に定義されたベクトル加算及びスカラー乗法の下でのt∈[2]についてのFq上のd次元ベクトル空間Vt=Gt dと、t∈[2]についてのベクトル空間Vtの数133に示す標準基底Atと、数134に示すペアリング演算eとを備える。
<PHPEの構成>
実施の形態1では、KP(Key-Policy)-PHPE方式を説明する。KPは、復号鍵にアクセスコントロールのための情報が設定されるという意味である。
特に、実施の形態1では、属性のみモードのKP-PHPE方式を説明する。属性のみモードとは、暗号文にペイロードが含まれないという意味である。つまり、属性のみモードとは、暗号文には、暗号化対象のメッセージが含まれていないという意味である。なお、属性のみモードのKP-PHPE方式を、暗号文にペイロードを含む形態のKP-PHPE方式に変形する方法は当業者にとって明らかであり、容易に実現可能である。
図1を参照して、実施の形態1に係る暗号システム1の構成を説明する。
暗号システム1は、セットアップ装置10と、暗号化装置20と、鍵生成装置30と、復号装置40とを備える。セットアップ装置10と、暗号化装置20と、鍵生成装置30と、復号装置40とは、コンピュータである。セットアップ装置10と、暗号化装置20と、鍵生成装置30と、復号装置40とは、ネットワークを介して接続されている。
セットアップ装置10は、PHPE.Setupアルゴリズムを実行するコンピュータである。
セットアップ装置10は、プロセッサ11と、メモリ12と、ストレージ13と、通信インタフェース14とのハードウェアを備える。プロセッサ11は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
ストレージ13には、セットアップ装置10の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ11によりメモリ12に読み込まれ、プロセッサ11によって実行される。これにより、セットアップ装置10の各機能構成要素の機能が実現される。
暗号化装置20は、PHPE.Encryptアルゴリズムを実行するコンピュータである。
暗号化装置20は、プロセッサ21と、メモリ22と、ストレージ23と、通信インタフェース24とのハードウェアを備える。プロセッサ21は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
ストレージ23には、暗号化装置20の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ21によりメモリ22に読み込まれ、プロセッサ21によって実行される。これにより、暗号化装置20の各機能構成要素の機能が実現される。
鍵生成装置30は、PHPE.KeyGenアルゴリズムを実行するコンピュータである。
鍵生成装置30は、プロセッサ31と、メモリ32と、ストレージ33と、通信インタフェース34とのハードウェアを備える。プロセッサ31は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
ストレージ33には、鍵生成装置30の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ31によりメモリ32に読み込まれ、プロセッサ31によって実行される。これにより、鍵生成装置30の各機能構成要素の機能が実現される。
復号装置40は、PHPE.Decryptアルゴリズムを実行するコンピュータである。
復号装置40は、プロセッサ41と、メモリ42と、ストレージ43と、通信インタフェース44とのハードウェアを備える。プロセッサ41は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
ストレージ43には、復号装置40の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ41によりメモリ42に読み込まれ、プロセッサ41によって実行される。これにより、復号装置40の各機能構成要素の機能が実現される。
実施の形態1に係る暗号システム1の動作は、実施の形態1に係る暗号方法に相当する。また、実施の形態1に係る暗号システム1の動作は、実施の形態1に係る暗号プログラムの処理に相当する。
実施の形態1に係るセットアップ装置10の動作は、実施の形態1に係るセットアップ方法に相当する。また、実施の形態1に係るセットアップ装置10の動作は、実施の形態1に係るセットアッププログラムの処理に相当する。
受付部111は、セキュリティパラメータλと、公開属性ベクトルの長さn’と、秘密属性ベクトルの長さnとの入力を受け付ける。公開属性ベクトルの長さn’と、秘密属性ベクトルの長さnとは、いずれも1以上の整数である。
具体的には、受付部111は、通信インタフェース14を介して、セットアップ装置10のユーザによって入力されたセキュリティパラメータ1λを受け付ける。受付部111は、セキュリティパラメータ1λをメモリ12に書き込む。
マスター鍵生成部112は、ステップS11で受付されたセキュリティパラメータλと、公開属性ベクトルの長さn’と、秘密属性ベクトルの長さnとを入力として、params及び正規直交な双対基底{Bι,B* ι}ι∈[n’+n]を生成する。
具体的には、マスター鍵生成部112は、セキュリティパラメータλと、公開属性ベクトルの長さn’と、秘密属性ベクトルの長さnとメモリ12から読み出す。マスター鍵生成部112は、N=n’+n、d0=0、d1,...,dN=9として、数141に示すアルゴリズムGOBを実行して、params及び双対基底{Bι,B* ι}ι∈[n’+n]を生成する。マスター鍵生成部112は、params及び双対基底{Bι,B* ι}ι∈[n’+n]をメモリ12に書き込む。
マスター鍵生成部112は、ステップS12で生成されたparams及び双対基底{Bι,B* ι}ι∈[n’+n]から、公開パラメータMPK及びマスター秘密鍵MSKを生成する。
具体的には、マスター鍵生成部112は、params及び双対基底{Bι,B* ι}ι∈[n’+n]をメモリ12から読み出す。マスター鍵生成部112は、数142に示すように、ι∈[n’+n]の各整数ιについて、部分基底B^ι及び部分基底B^* ιを生成する。
送信部113は、ステップS13で生成された公開パラメータMPKを公開する。具体的には、送信部113は、公開パラメータMPKをメモリ12から読み出す。送信部113は、公開パラメータMPKを公開用のサーバに送信するといった方法により、公開する。これにより、暗号化装置20と鍵生成装置30と復号装置40とは、公開パラメータMPKを取得可能になる。
送信部113は、ステップS13で生成されたマスター秘密鍵MSKを鍵生成装置30に秘密裡に送信する。具体的には、送信部113は、メモリ12からマスター秘密鍵MSKを読み出す。送信部113は、マスター秘密鍵MSKを、既存の暗号化方式で暗号化した上で鍵生成装置30に送信する。
実施の形態1に係る暗号化装置20の動作は、実施の形態1に係る暗号化方法に相当する。また、実施の形態1に係る暗号化装置20の動作は、実施の形態1に係る暗号化プログラムの処理に相当する。
マスター鍵取得部211は、セットアップ装置10によって生成された公開パラメータMPKを取得する。
具体的には、マスター鍵取得部211は、通信インタフェース24を介して、公開された公開パラメータMPKを取得する。マスター鍵取得部211は、公開パラメータMPKをメモリ22に書き込む。
ベクトル取得部212は、公開属性ベクトルx→∈Fq n’及び秘密属性ベクトルz→∈Fq nを取得する。
具体的には、ベクトル取得部212は、通信インタフェース24を介して、暗号化装置20のユーザによって入力された公開属性ベクトルx→及び秘密属性ベクトルz→を取得する。ベクトル取得部212は、公開属性ベクトルx→及び秘密属性ベクトルz→をメモリ22に書き込む。
暗号化部213は、ステップS21で取得された公開パラメータMPKと、ステップS22で取得された公開属性ベクトルx→及び秘密属性ベクトルz→とを用いて、暗号文CTを生成する。
具体的には、暗号化部213は、以下のように暗号文CTを生成する。
まず、暗号化部213は、数144に示すように、値ωをサンプリングする。
送信部214は、ステップS23で生成された暗号文CTを復号装置40に送信する。
具体的には、送信部214は、暗号文CTをメモリ22から読み出す。送信部214は、通信インタフェース24を介して、暗号文CTを復号装置40に送信する。
実施の形態1に係る鍵生成装置30の動作は、実施の形態1に係る鍵生成方法に相当する。また、実施の形態1に係る鍵生成装置30の動作は、実施の形態1に係る鍵生成プログラムの処理に相当する。
マスター鍵取得部311は、セットアップ装置10によって生成された公開パラメータMPK及びマスター秘密鍵MSKを取得する。
具体的には、マスター鍵取得部311は、通信インタフェース34を介して、公開された公開パラメータMPKを取得するとともに、セットアップ装置10によって送信されたマスター秘密鍵MSKを取得する。マスター鍵取得部311は、公開パラメータMPK及びマスター秘密鍵MSKをメモリ32に書き込む。
関数取得部312は、関数f∈F(q,n’,n) ABP〇IPを取得する。
具体的には、関数取得部312は、通信インタフェース34を介して、鍵生成装置30のユーザによって入力された関数fを取得する。関数取得部312は、関数fをメモリ32に書き込む。
PGB計算部313は、数148に示すように、ステップS32で取得された関数fを入力として、PGBアルゴリズムを実行することにより、割当値を特定するための定数の集合({σj}j∈[n],{αj’,γj’}j’∈[m])∈Fq n×(Fq 2)mと、関数ρ:[m]→[n’]とを計算する。
(ステップS331:行列表現L生成処理)
Γ’は、関数fを計算するABPを示すとする。ABPΓ’は、m+n+1個の頂点を有しており、変数zjは、シンク頂点への入力辺にのみ設定される。そして、どの頂点も1つの出力辺のみを有している。
そこで、PGB計算部313は、ABPΓ’を示す行列表現L∈Fq (m+n)×(m+n)を計算する。上述した通り、行列Lは、行列AΓ’-Iから、V0に対応する列と、V1に対応する行とを取り除くことによって得られる。ここで、行列AΓは、Γに対する隣接行列である。Iは単位行列である。
すると、以下の(1)から(4)が成立する。
(1)全ての(x→,z→)∈Fq n’×Fq nに対して、det(L(x→,z→))=f(x→,z→)である。
(2)j’∈[m]の各整数j’に対して、行列表現Lのj’行の成分は、Fqにおける係数を伴う1つの変数xι’(ι’∈[n’])の1次式、又は、Fqにおける定数である。
(3)行列表現Lは、第2対角には-1だけを含み、第2対角の下には0だけを含む。
(4)行列表現Lの最後の列は、(0,...,0,z1,...,zn)である。
PGB計算部313は、j’∈[m]の各整数j’について、行列表現Lのj’行に変数xι’が含まれるなら、ρ(j’)=ι’と設定することにより、関数ρ:[m]→[n’]を生成する。PGB計算部313は、関数ρをメモリ32に書き込む。
PGB計算部313は、数149に示すように、ベクトルr→を選択する。
j’,γj’}j’∈[m])をABPの述語ベクトルと呼ぶ。
鍵生成部314は、ステップS31で取得された公開パラメータMPK及びマスター秘密鍵MSKと、ステップS32で取得された関数fと、ステップS33で生成された定数の集合({σj}j∈[n],{αj’,γj’}j’∈[m])とを用いて、復号鍵SK(f)を生成する。
具体的には、鍵生成部314は、以下のように復号鍵SK(f)を生成する。
まず、鍵生成部314は、数151に示すように、値ζをサンプリングする。
送信部315は、ステップS34で生成された復号鍵SK(f)を秘密裡に復号装置40に送信する。
具体的には、送信部315は、復号鍵SK(f)をメモリ32から読み出す。送信部315は、復号鍵SK(f)を既存の暗号化方式で暗号化した上で、通信インタフェース34を介して復号装置40に送信する。
実施の形態1に係る復号装置40の動作は、実施の形態1に係る復号方法に相当する。また、実施の形態1に係る復号装置40の動作は、実施の形態1に係る復号プログラムの処理に相当する。
マスター鍵取得部411は、セットアップ装置10によって生成された公開パラメータMPKを取得する。
具体的には、マスター鍵取得部411は、通信インタフェース44を介して、公開された公開パラメータMPKを取得する。マスター鍵取得部411は、公開パラメータMPKをメモリ42に書き込む。
暗号文取得部412は、暗号化装置20によって生成された暗号文CTを取得する。
具体的には、暗号文取得部412は、通信インタフェース44を介して、暗号化装置20によって送信された暗号文CTを取得する。暗号文取得部412は、暗号文CTをメモリ42に書き込む。
復号鍵取得部413は、鍵生成装置30によって生成された復号鍵SK(f)を取得する。
具体的には、復号鍵取得部413は、通信インタフェース44を介して、鍵生成装置30によって送信された復号鍵SK(f)を取得する。復号鍵取得部413は、復号鍵SK(f)をメモリ42に書き込む。
復号部414は、ステップS42で取得された暗号文CTと、ステップS43で取得された復号鍵SK(f)とについてペアリング演算を行うことにより、暗号文CTを復号する。
(ステップS441:余因子計算処理)
余因子計算部415は、数155に示すように、復号鍵SK(f)に含まれる関数fと、暗号文CTに含まれる公開属性ベクトルx→とを入力として、RECアルゴリズムを実行することにより、係数の集合(({Ωj}j∈[n],{Ω’j’}j’∈[m])∈Fq n×Fq n’を計算する。
余因子計算部415は、係数の集合(({Ωj}j∈[n],{Ω’j’}j’∈[m])をメモリ42に書き込む。
ペアリング演算部416は、数156に示すように、j’∈[m]の各整数j’について、要素c’(ρ(j’))と、要素k’(j’)とについてペアリング演算を行い、演算値Λ’j’を計算する。ここで、関数ρは、ステップS441で生成された関数である。
出力値計算部417は、ステップS441で計算された係数の集合(({Ωj}j∈[n],{Ω’j’}j’∈[m])と、ステップS442で計算された演算値Λ’j’及び演算値Λjとをメモリ42から読み出す。出力値計算部417は、数158に示すように、演算値Λを計算する。
数164に示すように、どのようなz→に対しても、係数の集合(({Ωj}j∈[n],{Ω’j’}j’∈[m])と、({zj+σj}j∈[n],{αj’zρ(j’)+γj’}j’∈[m])を連接して、f(x→,z→)を計算することができる。
そして、数167が成立する。
以上のように、実施の形態1に係る暗号システム1は、双対ベクトル空間における双対基底である基底Bに属性ベクトルが設定された暗号文と、基底B*にABPの述語ベクトルが設定された復号鍵とについてペアリング演算が行われ、暗号文が復号される。これにより、幅広い述語を許容しつつ、安全性を高くすることが可能な述語暗号方式を実現することが可能になる。
<変形例1>
実施の形態1では、KP-PHPE方式を説明した。実施の形態1で説明したKP-PHPE方式をCP(Cipher-Policy)-PHPE方式に変換することができる。CPは、暗号文にアクセスコントロールのための情報が設定されるという意味である。実施の形態1でのアクセスコントロールのための情報は、関数f及び定数の集合({σj}j∈[n],{αj’,γj’}j’∈[m])である。
そこで、CP-PHPE方式の場合には、PHPE.Encryptアルゴリズムにおいて、関数fを入力として、PGBアルゴリズムが実行され、定数の集合({σj}j∈[n],{αj’,γj’}j’∈[m])が生成される。PHPE.Encryptアルゴリズムにおいて、実施の形態1における要素k’(j’)及び要素k(j)に相当する定数の集合({σj}j∈[n],{αj’,γj’}j’∈[m])を設定した要素c’(j’)及び要素c(j)が生成される。そして、関数fと、要素c’(j’)及び要素c(j)とが暗号文CTとして設定される。
また、CP-PHPE方式の場合には、PHPE.KeyGenアルゴリズムにおいて、実施の形態1における要素c’(ι’)に相当する公開属性ベクトルx→が設定された要素k’(ι’)と、実施の形態1における要素c(ι)に相当する秘密属性ベクトルz→が設定された要素k(ι)とが生成される。そして、公開属性ベクトルx→と、要素k’(ι’)及び要素k(ι)が復号鍵SK(f)として設定される。
実施の形態1では、ι∈[n’+n]の各整数ιについて、基底Bι及び基底B* ιを生成した。そして、公開属性ベクトルx→及び秘密属性ベクトルz→の要素毎に異なる基底を用いた。しかし、インデックス付けの技法を用いることにより、基底B及び基底B*の1つの双対基底だけを用いて、PHPE方式を実現することが可能である。これにより、Unbounded化することが可能である。
具体的には、例えば、基底B及び基底B*の次元が2次元追加される。そして、追加された2次元を用いて、暗号文CTの要素c’(ι’)及び要素c(ι)と、復号鍵SK(f)の要素k’(j’)及び要素k(j)とに、公開属性ベクトルx→及び秘密属性ベクトルz→の要素に応じたインデックスが設定される。この際、暗号文CTの要素c’(ι’)及び要素c(ι)と、復号鍵SK(f)の要素k’(j’)及び要素k(j)とには、ペアリング演算が行われた場合に追加した2次元の値が0になるように、インデックスが設定される。
実施の形態1では、各機能構成要素がソフトウェアで実現された。しかし、変形例3として、各機能構成要素はハードウェアで実現されてもよい。この変形例3について、実施の形態1と異なる点を説明する。
各機能構成要素がハードウェアで実現される場合には、セットアップ装置10は、プロセッサ11とメモリ12とストレージ13とに代えて、電子回路15を備える。電子回路15は、各機能構成要素と、メモリ12と、ストレージ13との機能とを実現する専用の回路である。
各機能構成要素がハードウェアで実現される場合には、暗号化装置20は、プロセッサ21とメモリ22とストレージ23とに代えて、電子回路25を備える。電子回路25は、各機能構成要素と、メモリ22と、ストレージ23との機能とを実現する専用の回路である。
各機能構成要素がハードウェアで実現される場合には、鍵生成装置30は、プロセッサ31とメモリ32とストレージ33とに代えて、電子回路35を備える。電子回路35は、各機能構成要素と、メモリ32と、ストレージ33との機能とを実現する専用の回路である。
各機能構成要素がハードウェアで実現される場合には、復号装置40は、プロセッサ41とメモリ42とストレージ43とに代えて、電子回路45を備える。電子回路45は、各機能構成要素と、メモリ42と、ストレージ43との機能とを実現する専用の回路である。
各機能構成要素を1つの電子回路15,25,35,45で実現してもよいし、各機能構成要素を複数の電子回路15,25,35,45に分散させて実現してもよい。
変形例4として、一部の各機能構成要素がハードウェアで実現され、他の各機能構成要素がソフトウェアで実現されてもよい。
実施の形態2では、実施の形態1で説明したPHPE方式を変換したKEM(Key-Encapsulation Mechanism)方式を説明する。実施の形態2では、実施の形態1と異なる点を説明し、同一の点については説明を省略する。
<KEM version PHPEの構成>
実施の形態2では、KEM version KP-PHPE方式を説明する。
KEM version KP-PHPE方式は、PHPE.Setupアルゴリズムと、PHPE.Encryptアルゴリズムと、PHPE.KeyGenアルゴリズムと、PHPE.Decryptアルゴリズムとを含む。
図6から図11を参照して、実施の形態2に係る暗号システム1の動作を説明する。
実施の形態2に係る暗号システム1の動作は、実施の形態2に係る暗号方法に相当する。また、実施の形態2に係る暗号システム1の動作は、実施の形態2に係る暗号プログラムの処理に相当する。
実施の形態2に係るセットアップ装置10の動作は、実施の形態2に係るセットアップ方法に相当する。また、実施の形態2に係るセットアップ装置10の動作は、実施の形態2に係るセットアッププログラムの処理に相当する。
マスター鍵生成部112は、ステップS11で受付されたセキュリティパラメータλと、公開属性ベクトルの長さn’と、秘密属性ベクトルの長さnとを入力として、params及び正規直交な双対基底{Bι,B* ι}ι∈[0,n’+n]を生成する。
具体的には、マスター鍵生成部112は、N=n’+n+1、d0=6、d1,...,dN=9として、実施の形態1と同じアルゴリズムGOBを実行して、params及び双対基底{Bι,B* ι}ι∈[n’+n]を生成する。N=n’+n+1、d0=6としている点が実施の形態1と異なる。
マスター鍵生成部112は、ステップS12で生成されたparams及び双対基底{Bι,B* ι}ι∈[0,n’+n]から、公開パラメータMPK及びマスター秘密鍵MSKを生成する。
具体的には、マスター鍵生成部112は、数170に示すように、部分基底B^0及び部分基底B^* 0を生成するとともに、数171に示すように、ι∈[n’+n]の各整数ιについて、部分基底B^ι及び部分基底B^* ιを生成する。
実施の形態2に係る暗号化装置20の動作は、実施の形態2に係る暗号化方法に相当する。また、実施の形態2に係る暗号化装置20の動作は、実施の形態2に係る暗号化プログラムの処理に相当する。
暗号化部213は、ステップS21で取得された公開パラメータMPKと、ステップS22で取得された公開属性ベクトルx→及び秘密属性ベクトルz→とを用いて、暗号文CTを生成する。
具体的には、暗号化部213は、以下のように暗号文CTを生成する。
まず、暗号化部213は、数173に示すように、値ω,ξ,φ’0をサンプリングする。
そして、暗号化部213は、公開属性ベクトルx→と、要素c’(0)と、ι’∈[n’]の各整数ι’についての要素c’(ι’)と、ι∈[n]の各整数ιについての要素c(ι)とを暗号文CTとして設定する。
実施の形態2に係る鍵生成装置30の動作は、実施の形態2に係る鍵生成方法に相当する。また、実施の形態2に係る鍵生成装置30の動作は、実施の形態2に係る鍵生成プログラムの処理に相当する。
鍵生成部314は、ステップS31で取得された公開パラメータMPK及びマスター秘密鍵MSKと、ステップS32で取得された関数fと、ステップS33で生成された定数の集合({σj}j∈[n],{αj’,γj’}j’∈[m])とを用いて、復号鍵SK(f)を生成する。
具体的には、鍵生成部314は、以下のように復号鍵SK(f)を生成する。
まず、鍵生成部314は、数176に示すように、値r0,κ’0,ζをサンプリングする。
実施の形態2に係る復号装置40の動作は、実施の形態2に係る復号方法に相当する。また、実施の形態2に係る復号装置40の動作は、実施の形態2に係る復号プログラムの処理に相当する。
復号部414は、ステップS42で取得された暗号文CTと、ステップS43で取得された復号鍵SK(f)とについてペアリング演算を行うことにより、暗号文CTを復号する。
ステップS441の処理は、実施の形態1と同じである。
ペアリング演算部416は、数181に示すように、要素c’(0)と、要素k’(0)とについてペアリング演算を行い、演算値Λ’0を計算する。
ペアリング演算部416は、演算値Λ’0と演算値Λ’j’と演算値Λjとをメモリ42に書き込む。
出力値計算部417は、ステップS441で計算された係数の集合(({Ωj}j∈[n],{Ω’j’}j’∈[m])と、ステップS442で計算された演算値Λ’0と演算値Λ’j’と演算値Λjとをメモリ42から読み出す。出力値計算部417は、数182に示すように、演算値Λを計算する。
以上のように、実施の形態2に係る暗号システム1は、実施の形態1で説明したPHPE方式を変換してKEM方式を実現する。これにより、幅広い述語を許容しつつ、安全性を高くすることが可能なKEM方式を実現することが可能になる。
<変形例5>
実施の形態2では、KP-PHPE方式を変換してKEM方式を構成した。同様の変形を加えることにより、変形例1で説明したCP-PHPE方式を変換してKEM方式を構成することも可能である。
実施の形態2で説明したKEM方式についても、変形例2で説明したように、インデックス付けの技法を用いることにより、基底B及び基底B*の1つの双対基底だけを用いて実現することが可能である。
ストレージ、14 通信インタフェース、15 電子回路、111 受付部、112 マスター鍵生成部、113 送信部、20 暗号化装置、21 プロセッサ、22 メモ
リ、23 ストレージ、24 通信インタフェース、25 電子回路、211 マスター鍵取得部、212 ベクトル取得部、213 暗号化部、214 送信部、30 鍵生成装置、31 プロセッサ、32 メモリ、33 ストレージ、34 通信インタフェース、35 電子回路、311 マスター鍵取得部、312 関数取得部、313 PGB計算部、314 鍵生成部、315 送信部、40 復号装置、41 プロセッサ、42 メモリ、43 ストレージ、44 通信インタフェース、45 電子回路、411 マスター鍵取得部、412 暗号文取得部、413 復号鍵取得部、414 復号部、415 余因子計算部、416 ペアリング演算部、417 出力値計算部。
Claims (9)
- 双対ベクトル空間における双対基底である基底B及び基底B*のうちの基底Bに、属性ベクトルと、ABP(Arithmetic Branching Programs)の述語ベクトルとの一方が設定された暗号文を取得する暗号文取得部と、
前記基底B*に、前記属性ベクトルと前記述語ベクトルとの他方が設定された復号鍵を取得する復号鍵取得部と、
前記暗号文取得部によって取得された前記暗号文と、前記復号鍵取得部によって取得された前記復号鍵とについてペアリング演算を行うことにより、前記暗号文を復号する復号部と
を備える復号装置。 - 前記述語ベクトルの要素は、関数fを計算するABPを表す行列表現Lと、最後の行の要素が1である行列との積によって得られた要素である
請求項1に記載の復号装置。 - 前記復号部は、
前記行列表現Lの最後の列の要素の余因子を計算する余因子計算部と、
前記暗号文と前記復号鍵とについてペアリング演算を行うことにより演算値を計算するペアリング演算部と、
前記余因子計算部によって計算された前記余因子と、前記ペアリング演算部によって計算された前記演算値とから、前記暗号文を復号して得られる出力値を計算する出力値計算部と
を備える請求項2に記載の復号装置。 - 前記出力値計算部は、内積と前記余因子とから、前記関数fに前記属性ベクトルを入力した値を計算して、計算された値により前記出力値を計算する
請求項3に記載の復号装置。 - 双対ベクトル空間における双対基底である基底B及び基底B*のうちの基底Bに、属性ベクトルと、ABP(Arithmetic Branching Programs)の述語ベクトルとの一方を設定して暗号文を生成する暗号化装置と、
前記基底B*に、前記属性ベクトルと前記述語ベクトルとの他方を設定して復号鍵を生成する鍵生成装置と、
前記暗号化装置によって生成された前記暗号文と、前記鍵生成装置によって生成された前記復号鍵とについてペアリング演算を行うことにより、前記暗号文を復号する復号装置と
を備える暗号システム。 - 暗号文取得部が、双対ベクトル空間における双対基底である基底B及び基底B*のうちの基底Bに、属性ベクトルと、ABP(Arithmetic Branching Programs)の述語ベクトルとの一方が設定された暗号文を取得し、
復号鍵取得部が、前記基底B*に、前記属性ベクトルと前記述語ベクトルとの他方が設定された復号鍵を取得し、
復号部が、前記暗号文取得部によって取得された前記暗号文と、前記復号鍵取得部によって取得された前記復号鍵とについてペアリング演算を行うことにより、前記暗号文を復号する復号方法。 - 暗号文取得部が、双対ベクトル空間における双対基底である基底B及び基底B*のうちの基底Bに、属性ベクトルと、ABP(Arithmetic Branching Programs)の述語ベクトルとの一方が設定された暗号文を取得する暗号文取得処理と、
復号鍵取得部が、前記基底B*に、前記属性ベクトルと前記述語ベクトルとの他方が設定された復号鍵を取得する復号鍵取得処理と、
復号部が、前記暗号文取得処理によって取得された前記暗号文と、前記復号鍵取得処理によって取得された前記復号鍵とについてペアリング演算を行うことにより、前記暗号文を復号する復号処理と
を行う復号装置としてコンピュータを機能させる復号プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018188781A JP7117964B2 (ja) | 2018-10-04 | 2018-10-04 | 復号装置、暗号システム、復号方法及び復号プログラム |
PCT/JP2019/031129 WO2020070973A1 (ja) | 2018-10-04 | 2019-08-07 | 復号装置、暗号システム、復号方法及び復号プログラム |
US17/207,087 US11909873B2 (en) | 2018-10-04 | 2021-03-19 | Decryption device, cryptographic system, and decryption method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018188781A JP7117964B2 (ja) | 2018-10-04 | 2018-10-04 | 復号装置、暗号システム、復号方法及び復号プログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2020056960A JP2020056960A (ja) | 2020-04-09 |
JP2020056960A5 JP2020056960A5 (ja) | 2021-09-09 |
JP7117964B2 true JP7117964B2 (ja) | 2022-08-15 |
Family
ID=70054732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018188781A Active JP7117964B2 (ja) | 2018-10-04 | 2018-10-04 | 復号装置、暗号システム、復号方法及び復号プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US11909873B2 (ja) |
JP (1) | JP7117964B2 (ja) |
WO (1) | WO2020070973A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6971917B2 (ja) * | 2018-06-11 | 2021-11-24 | 三菱電機株式会社 | 復号装置、暗号化装置及び暗号システム |
JP7233265B2 (ja) * | 2019-03-15 | 2023-03-06 | 三菱電機株式会社 | 署名装置、検証装置、署名方法、検証方法、署名プログラム及び検証プログラム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011232475A (ja) | 2010-04-27 | 2011-11-17 | Mitsubishi Electric Corp | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置 |
JP2012133214A (ja) | 2010-12-22 | 2012-07-12 | Mitsubishi Electric Corp | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5814880B2 (ja) * | 2012-07-31 | 2015-11-17 | 三菱電機株式会社 | 暗号システム、暗号方法、暗号プログラム及び復号装置 |
JP6227187B2 (ja) * | 2015-02-20 | 2017-11-08 | 三菱電機株式会社 | データ保管装置及びデータ更新システム及びデータ処理方法及びデータ処理プログラム |
-
2018
- 2018-10-04 JP JP2018188781A patent/JP7117964B2/ja active Active
-
2019
- 2019-08-07 WO PCT/JP2019/031129 patent/WO2020070973A1/ja active Application Filing
-
2021
- 2021-03-19 US US17/207,087 patent/US11909873B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011232475A (ja) | 2010-04-27 | 2011-11-17 | Mitsubishi Electric Corp | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置 |
JP2012133214A (ja) | 2010-12-22 | 2012-07-12 | Mitsubishi Electric Corp | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム |
Non-Patent Citations (2)
Title |
---|
BEIMEL, A. and GAL, A.,On Arithmetic Branching Programs,Journal of Computer and System Sciences,Vol.59, No.2,1999年10月,pp.195-220 |
WEE, H.,Attribute-Hiding Predicate Encryption in Bilinear Groups, Revisited,Lecture Notes in Computer Science,Vol.10677,2017年,pp.206-233 |
Also Published As
Publication number | Publication date |
---|---|
WO2020070973A1 (ja) | 2020-04-09 |
JP2020056960A (ja) | 2020-04-09 |
US11909873B2 (en) | 2024-02-20 |
US20210234676A1 (en) | 2021-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6934963B2 (ja) | データを暗号化する方法およびシステム | |
JP6083234B2 (ja) | 暗号処理装置 | |
JP6391900B1 (ja) | 準同型推論装置、準同型推論方法、準同型推論プログラム及び秘匿情報処理システム | |
JP5337238B2 (ja) | 秘密分散システム、分散装置、分散管理装置、取得装置、それらの処理方法、秘密分散方法、プログラム及び記録媒体 | |
JP6413743B2 (ja) | 暗号処理装置、暗号処理方法、及び暗号処理プログラム | |
JP5814880B2 (ja) | 暗号システム、暗号方法、暗号プログラム及び復号装置 | |
WO2019130528A1 (ja) | 変換鍵生成装置、暗号文変換装置、秘匿情報処理システム、変換鍵生成方法、変換鍵生成プログラム、暗号文変換方法及び暗号文変換プログラム | |
JP6522263B2 (ja) | 準同型演算装置、暗号システム及び準同型演算プログラム | |
US11431489B2 (en) | Encryption processing system and encryption processing method | |
JP2019168590A (ja) | 情報処理方法及び情報処理システム | |
KR20230141845A (ko) | 임계값 키 교환 | |
JP5732429B2 (ja) | 秘密分散システム、データ分散装置、データ復元装置、秘密分散方法、およびプログラム | |
US11909873B2 (en) | Decryption device, cryptographic system, and decryption method | |
WO2014030706A1 (ja) | 暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム | |
JP6059347B2 (ja) | 復号装置、復号能力提供装置、それらの方法、およびプログラム | |
JP7233265B2 (ja) | 署名装置、検証装置、署名方法、検証方法、署名プログラム及び検証プログラム | |
WO2019239776A1 (ja) | 復号装置、暗号化装置及び暗号システム | |
JP7325689B2 (ja) | 暗号文変換システム、変換鍵生成方法、及び、変換鍵生成プログラム | |
WO2019016916A1 (ja) | 暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号方法及び復号プログラム | |
JP6093719B2 (ja) | 暗号化装置、復号装置、およびプログラム | |
JP6949276B2 (ja) | 再暗号化装置、再暗号化方法、再暗号化プログラム及び暗号システム | |
WO2017203743A1 (ja) | 暗号化装置、復号装置及び暗号システム | |
JP6189788B2 (ja) | 鍵生成装置、再暗号化装置、およびプログラム | |
JP7158635B2 (ja) | 暗号システム、暗号化装置、復号装置及び鍵生成装置 | |
KR101932032B1 (ko) | 선형 길이의 암호문을 가지는 다항식 함수 암호화 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7426 Effective date: 20181009 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20181009 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190722 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210802 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210802 |
|
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: 20220705 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220802 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7117964 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |