JP7087965B2 - 暗号システム、暗号化装置、復号装置、暗号化方法、復号方法及びプログラム - Google Patents

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

Info

Publication number
JP7087965B2
JP7087965B2 JP2018223911A JP2018223911A JP7087965B2 JP 7087965 B2 JP7087965 B2 JP 7087965B2 JP 2018223911 A JP2018223911 A JP 2018223911A JP 2018223911 A JP2018223911 A JP 2018223911A JP 7087965 B2 JP7087965 B2 JP 7087965B2
Authority
JP
Japan
Prior art keywords
encryption
algorithm
decryption
cipher
input
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
JP2018223911A
Other languages
English (en)
Other versions
JP2020086292A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2018223911A priority Critical patent/JP7087965B2/ja
Priority to PCT/JP2019/045088 priority patent/WO2020110800A1/ja
Priority to US17/284,907 priority patent/US11757620B2/en
Publication of JP2020086292A publication Critical patent/JP2020086292A/ja
Application granted granted Critical
Publication of JP7087965B2 publication Critical patent/JP7087965B2/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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (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)

Description

本発明は、暗号システム、暗号化装置、復号装置、暗号化方法、復号方法及びプログラムに関する。
単入力関数型暗号(以降、単に「関数型暗号」とも表す。)では、暗号文を復号するための鍵(つまり、復号鍵)に関数fを埋め込むことができる。関数fを埋め込んだ復号鍵を用いてxの暗号文を復号すると、関数値f(x)が復号される。
多入力関数型暗号は、単入力関数型暗号を拡張したものであり、1つの引数をもつ関数だけでなく、2以上の引数をもつ関数をも復号鍵に埋め込むことができる方式である。つまり、引数1,・・・,nにそれぞれ対応する値x1,・・・,xnの暗号文ct1,・・・,ctnがあるとき、引数1,・・・,nをとる関数fを埋め込んだ秘密鍵skfを用いて暗号文ct1,・・・,ctnを復号すると、関数値f(x1,・・・,xn)が復号される。ただし、関数fがとる引数のうち、どれか1つでもその引数に対応する暗号文が存在しない場合は復号することができない。
内積関数型暗号は、扱える関数fを内積に限定した関数型暗号であり、多入力内積関数型暗号では、復号鍵にn個のベクトルy1,・・・,ynが埋め込まれていて、n個のベクトルx1,・・・,xnをそれぞれ暗号化したn個の暗号文ct1,・・・,ctnを復号鍵で復号すると、関数値
Figure 0007087965000001
が復号されるというものである。ここで、<・,・>は内積を表す。
また、関数型暗号に対して関数秘匿性という性質がある。関数秘匿性とは、関数を埋め込んだ復号鍵が、その関数を秘匿しているという性質である(ただし、内積関数型暗号の場合はベクトルが関数に相当する。)。すなわち、或る関数を埋め込んだ復号鍵の所持者であっても、その埋め込まれた関数がどのような関数であるかを知ることができないという性質である。
従来、関数秘匿性を有する多入力内積関数型暗号(以降、「関数秘匿多入力内積関数型暗号」とも表す。)を具体的に構成する方法が知られている(非特許文献1及び2)。
M. Abdalla, D. Catalano, D. Fiore, R. Gay, and B. Ursu. Multi-input functional encryption for inner products: Function-hiding realizations and constructions without pairings. Cryptology ePrint Archive, Report 2017/972, 2017. http://eprint.iacr.org/2017/972. P. Datta, T. Okamoto, and J. Tomida. Full-hiding (unbounded) multi-input inner product functional encryption from the k-linear assumption. In M. Abdalla and R. Da-hab, editors, PKC 2018, Part II, volume 10770 of LNCS, pages 245-277. Springer, Heidelberg, Mar. 2018.
しかしながら、一般的に、多入力関数型暗号を構成することは、単入力関数型暗号を構成することに比べて難しい場合が多い。したがって、例えば、より効率的な関数秘匿多入力内積関数型暗号を構成しようとする場合、その設計や安全性分析に多大な労力が必要なると考えられる。
本発明は、上記の点に鑑みてなされたもので、関数秘匿内積関数型暗号を用いて関数秘匿多入力内積関数型暗号を実現することを目的とする。
上記目的を達成するため、本発明の実施の形態における暗号システムは、関数秘匿性を有する多入力内積関数型暗号により暗号化及び復号を行う暗号システムであって、ベクトル長mと前記内積関数の引数の数μとを入力として、所定の性質を有し、かつ、関数秘匿性を有する単入力内積関数型暗号のセットアップアルゴリズムと、所定の条件を満たす共通鍵暗号の鍵生成アルゴリズムとを用いて、マスター秘密鍵mskと公開パラメータppとを生成するセットアップ手段と、前記マスター秘密鍵mskと、前記公開パラメータppと、前記引数のインデックスiと、ベクトルxとを入力として、前記単入力内積関数型暗号の暗号化アルゴリズムと、前記共通鍵暗号の暗号化アルゴリズムとを用いて、前記インデックスiに対応する暗号文ctiを生成する暗号化手段と、前記マスター秘密鍵mskと、前記公開パラメータppと、μ個のベクトルy1,・・・,yμとを入力として、前記単入力内積関数型暗号の鍵生成アルゴリズムと、前記共通鍵暗号の暗号化アルゴリズムとを用いて、前記暗号文ctiを復号するための秘密鍵skを生成する秘密鍵生成手段と、前記公開パラメータppと、前記暗号文ct1,・・・,ctμと、前記秘密鍵skとを入力として、前記単入力内積関数型暗号の復号アルゴリズムと、前記共通鍵暗号の復号アルゴリズムとを用いて、前記暗号文ct1,・・・,ctμの復号値dを生成する復号手段と、を有することを特徴とする。
関数秘匿内積関数型暗号を用いて関数秘匿多入力内積関数型暗号を実現することができる。
本発明の実施の形態における暗号システムの全体構成の一例を示す図である。 本発明の実施の形態におけるセットアップ装置が実行する処理の一例を示すフローチャートである。 本発明の実施の形態における暗号化装置が実行する処理の一例を示すフローチャートである。 本発明の実施の形態における鍵生成装置が実行する処理の一例を示すフローチャートである。 本発明の実施の形態における復号装置が実行する処理の一例を示すフローチャートである。 コンピュータのハードウェア構成の一例を示す図である。
以下、本発明の実施の形態について説明する。本発明の実施の形態では、関数秘匿内積関数型暗号(すなわち、関数秘匿性を有する単入力内積関数型暗号)を用いて関数秘匿多入力内積関数型暗号を実現する暗号システム1について説明する。言い換えれば、本発明の実施の形態における暗号システム1は、関数秘匿内積関数型暗号から関数秘匿多入力内積関数型暗号へ汎用的に変換する。これにより、本発明の実施の形態では、関数秘匿多入力内積関数型暗号を設計するためには、(所定の性質を有する)関数秘匿内積関数型暗号さえ設計できればよくなり、関数秘匿多入力内積関数型暗号の設計に要する労力を大幅に削減することができるようになる。
<記法>
まず、本明細書で用いる記法について説明する。
・変数aをbと定義するという操作をa:=bと表記する。
・ベクトルは列ベクトルとして扱う。
・集合Sから要素sをランダムに選ぶことを
Figure 0007087965000002
と表記する。
・ビット列bに対して、bのビット長を|b|と表記する。
・自然数nに対して剰余環Z/nZをZnと表記する。
・自然数nに対してn以下の自然数の集合を[n]と表記する。
・自然数nに対してnビットの全てのビット列で構成される集合を{0,1}nと表記する。
・双線型写像e:G1×G2→GTをもつ素数位数pの双線型群G1,G2,GTとその生成元g1,g2,gTとを考える。このとき、i∈{1,2,T}及びZp上のJ×L行列
Figure 0007087965000003
に対して、[M]i
Figure 0007087965000004
で定義される群要素を各要素とするJ×L行列とする。
<関数秘匿多入力内積関数型暗号への変換に用いる従来技術>
本発明の実施の形態で用いる従来技術として、関数秘匿内積関数型暗号及び共通鍵暗号について説明する。
・関数秘匿内積関数型暗号(つまり、関数秘匿性を有する単入力内積関数型暗号)
変換元となる関数秘匿内積関数型暗号としては、従来技術により構成された関数秘匿内積関数型暗号を用いることができる。ここで、本発明の実施の形態で用いる関数秘匿内積関数型暗号は、剰余環Zn上で内積が計算できるものとする。ただし、復号値として必ずしも剰余環Zn上の内積値が出力される必要はなく、値同士で加法の準同型演算が可能であれば、何等かのエンコードされた値が出力されてもよい。
このような関数秘匿内積関数型暗号の構成方法は、いくつか知られているが、例えば、以下の参考文献1や参考文献2を参照されたい。
[参考文献1]
A. Bishop, A. Jain, and L. Kowalczyk. Function-hiding inner product encryption. In T. Iwata and J. H. Cheon, editors, ASIACRYPT 2015, Part I, volume 9452 of LNCS, pages 470-491. Springer, Heidelberg, Nov. / Dec. 2015.
[参考文献2]
H. Lin. Indistinguishability obfuscation from SXDH on 5-linear maps and locality-5 PRGs. In J. Katz and H. Shacham, editors, CRYPTO 2017, Part I, volume 10401 of LNCS, pages 599-629. Springer, Heidelberg, Aug. 2017.
これらの関数秘匿内積関数型暗号は、双線型群と呼ばれる数学的な構造を用いて構成されている。
以降では、関数秘匿内積関数型暗号のセットアップアルゴリズム、暗号化アルゴリズム、鍵生成アルゴリズム及び復号アルゴリズムをそれぞれ「Setup´」、「Enc´」、「KeyGen´」及び「Dec´」と表す。また、関数秘匿内積関数型暗号が内積を計算する剰余環の位数をnとする(つまり、変換元の関数秘匿内積関数型暗号は、剰余環Zn上で内積を計算するものとする。)。
・共通鍵暗号
共通鍵暗号は任意の一方向性関数から構成できることが知られている。ここで、本発明の実施の形態で用いる共通鍵暗号は、或る種の識別不可能性(具体的には、選択的平文攻撃のもとでの識別不可能性(Indistinguishability under Chosen-Plaintext Attack))を満たすものとする。選択的平文攻撃のもとでの識別不可能性については、例えば、以下の参考文献3を参照されたい。
[参考文献3]
COSC 530: Lecture Notes on Symmetric-Key Encryption, [online], インターネット<URL: http://people.cs.georgetown.edu/~adam/fa15530/cs530-lec4.pdf>
なお、実用上は、共通鍵暗号として、例えば、AES(Advanced Encryption Standard)やCamellia等を用いることができる。
以降では、共通鍵暗号の鍵生成アルゴリズム、暗号化アルゴリズム及び復号アルゴリズムをそれぞれ「SKE.Gen」、「SKE.Enc」及び「SKE.Dec」と表す。
<全体構成>
本発明の実施の形態における暗号システム1は、上記の関数秘匿内積関数型暗号のSetup´、Enc´、KeyGen´及びDec´と、上記の共通鍵暗号のSKE.Gen、SKE.Enc及びSKE.Decとを用いて、関数秘匿多入力内積関数型暗号のセットアップアルゴリズムSetup、暗号化アルゴリズムEnc、鍵生成アルゴリズムKeyGen及び復号アルゴリズムDecを構成する。そこで、本発明の実施の形態における暗号システム1の全体構成について、図1を参照しながら説明する。図1は、本発明の実施の形態における暗号システム1の全体構成の一例を示す図である。
図1に示すように、本発明の実施の形態における暗号システム1には、セットアップ装置10と、暗号化装置20と、鍵生成装置30と、復号装置40とが含まれる。また、これらの各装置は、通信ネットワークNを介して相互に通信可能に接続されている。
セットアップ装置10は、セットアップアルゴリズムSetupを実行するコンピュータ又はコンピュータシステムである。
セットアップ装置10には、セットアップ処理部101と、記憶部102とが含まれる。セットアップ処理部101は、ベクトル長m(ただし、mは自然数)と引数の数μ(ただし、μは自然数)とを入力として、セットアップアルゴリズムSetupを実行する。セットアップアルゴリズムSetupでは、マスター秘密鍵mskと公開パラメータppとが生成及び出力される。また、記憶部102には、セットアップアルゴリズムSetupに用いられる各種情報(例えば、ベクトル長mや引数の数μ)やセットアップアルゴリズムSetupの出力結果(例えば、マスター秘密鍵mskや公開パラメータpp)等が記憶される。なお、セットアップアルゴリズムSetupには、セキュリティパラメータ1λが入力されてもよい。
なお、セットアップ処理部101は、例えば、セットアップ装置10にインストールされた1以上のプログラムが、プロセッサ等の演算装置に実行させる処理により実現される。また、記憶部102は、各種メモリ(例えば、主記憶装置や補助記憶装置等)を用いて実現可能である。
暗号化装置20は、暗号化アルゴリズムEncを実行するコンピュータ又はコンピュータシステムである。
暗号化装置20には、暗号化処理部201と、記憶部202とが含まれる。暗号化処理部201は、マスター秘密鍵mskと、公開パラメータppと、引数のインデックスi∈[μ]と、ベクトルx∈Zmとを入力として、暗号化アルゴリズムEncを実行する。暗号化アルゴリズムEncでは、インデックスiに対応する暗号文ctiが生成及び出力される。また、記憶部202には、暗号化アルゴリズムEncに用いられる各種情報(例えば、マスター秘密鍵mskや公開パラメータpp、インデックスi、ベクトルx等)や暗号化アルゴリズムEncの出力結果(例えば、暗号文cti)等が記憶される。
なお、暗号化処理部201は、例えば、暗号化装置20にインストールされた1以上のプログラムが、プロセッサ等の演算装置に実行させる処理により実現される。また、記憶部202は、各種メモリ(例えば、主記憶装置や補助記憶装置等)を用いて実現可能である。
鍵生成装置30は、鍵生成アルゴリズムKeyGenを実行するコンピュータ又はコンピュータシステムである。
鍵生成装置30には、鍵生成処理部301と、記憶部302とが含まれる。鍵生成処理部301は、マスター秘密鍵mskと、公開パラメータppと、μ個のベクトル{yi}i∈[μ](ただし、yi∈Zm)とを入力として、鍵生成アルゴリズムKeyGenを実行する。鍵生成アルゴリズムKeyGenでは、秘密鍵skが生成及び出力される。また、記憶部302には、鍵生成アルゴリズムKeyGenに用いられる各種情報(例えば、マスター秘密鍵mskや公開パラメータpp、ベクトル{yi}i∈[μ])や鍵生成アルゴリズムKeyGenの出力結果(例えば、秘密鍵sk)等が記憶される。
なお、鍵生成処理部301は、例えば、鍵生成装置30にインストールされた1以上のプログラムが、プロセッサ等の演算装置に実行させる処理により実現される。また、記憶部302は、各種メモリ(例えば、主記憶装置や補助記憶装置等)を用いて実現可能である。
復号装置40は、復号アルゴリズムDecを実行するコンピュータ又はコンピュータシステムである。
復号装置40には、復号処理部401と、記憶部402とが含まれる。復号処理部401は、公開パラメータppと、暗号文{cti}i∈[μ]と、秘密鍵skとを入力として、復号アルゴリズムDecを実行する。復号アルゴリズムDecでは、復号値dが生成及び出力される。また、記憶部402には、復号アルゴリズムDecに用いられる各種情報(例えば、公開パラメータppや暗号文{cti}i∈[μ]、秘密鍵sk)や復号アルゴリズムDecの出力結果(例えば、復号値d)等が記憶される。
なお、復号処理部401は、例えば、復号装置40にインストールされた1以上のプログラムが、プロセッサ等の演算装置に実行させる処理により実現される。また、記憶部402は、各種メモリ(例えば、主記憶装置や補助記憶装置等)を用いて実現可能である。
図1に示す暗号システム1の構成は一例であって、他の構成であってもよい。例えば、セットアップ装置10、暗号化装置20及び鍵生成装置30のうちの任意の2以上の装置が1つの装置として構成されていてもよい。また、暗号システム1には、複数台の復号装置40が含まれていてもよい。同様に、セットアップ装置10、暗号化装置20及び鍵生成装置30のうちの任意の1以上の装置が複数台含まれていてもよい。
<セットアップ>
次に、セットアップ装置10が実行する処理(セットアップアルゴリズムSetupにより実現される処理)について、図2を参照しながら説明する。図2は、本発明の実施の形態におけるセットアップ装置10が実行する処理の一例を示すフローチャートである。
まず、セットアップ処理部101は、ベクトル長mと引数の数μとを入力する(ステップS101)。なお、ベクトル長mと引数の数μとの入力元は任意であり、例えば、記憶部102から入力されてもよいし、キーボード等の入力装置から入力されてもよいし、通信ネットワークNを介して接続された他の装置から入力されてもよい。
次に、セットアップ処理部101は、セットアップアルゴリズムSetup(m,μ)により、マスター秘密鍵mskと公開パラメータppとを生成する(ステップS102)。
ここで、セットアップ処理部101は、
Figure 0007087965000005
として、
Figure 0007087965000006
により公開パラメータppを生成する。
また、セットアップ処理部101は、K←SKE.Gen(つまり、共通鍵暗号の鍵生成アルゴリズムSKE.Genの出力結果をK)として、
Figure 0007087965000007
とした上で、
Figure 0007087965000008
とする。なお、
Figure 0007087965000009
は排他的論理和を表す。
更に、セットアップ処理部101は、
Figure 0007087965000010
として、
Figure 0007087965000011
によりマスター秘密鍵mskを生成する。
以上によりマスター秘密鍵mskと公開パラメータppとが生成される。マスター秘密鍵mskと公開パラメータppとは、例えば、記憶部102に記憶される。また、マスター秘密鍵msk及び公開パラメータppは、例えば、通信ネットワークNを介して暗号化装置20や鍵生成装置30に送信される。
<暗号化>
次に、暗号化装置20が実行する処理(暗号化アルゴリズムEncにより実現される処理)について、図3を参照しながら説明する。図3は、本発明の実施の形態における暗号化装置20が実行する処理の一例を示すフローチャートである。
まず、暗号化処理部201は、マスター秘密鍵mskと、公開パラメータppと、インデックスi∈[μ]と、ベクトルx∈Zmとを入力する(ステップS201)。なお、マスター秘密鍵mskと、公開パラメータppと、インデックスi∈[μ]と、ベクトルx∈Zmとの入力元は任意であり、例えば、記憶部202から入力されてもよいし、キーボード等の入力装置から入力されてもよいし、通信ネットワークNを介して接続された他の装置から入力されてもよい。
次に、暗号化処理部201は、暗号化アルゴリズムEnc(msk,pp,i,x)により、インデックスiに対応する暗号文ctiを生成する(ステップS202)。
ここで、暗号化処理部201は、
Figure 0007087965000012
として、
Figure 0007087965000013
とする。なお、0mはZmのゼロベクトルを表す。
そして、暗号化処理部201は、
Figure 0007087965000014
として、cti:=(Ki,Ci)により、インデックスiに対応する暗号文ctiを生成する。
以上により、インデックスiに対応する暗号文ctiが生成される。暗号文ctiは、例えば、記憶部202に記憶されてもよいし、通信ネットワークNを介して他の装置(例えば、復号装置40等)に送信されてもよい。
<鍵生成>
次に、鍵生成装置30が実行する処理(鍵生成アルゴリズムKeyGenにより実現される処理)について、図4を参照しながら説明する。図4は、本発明の実施の形態における鍵生成装置30が実行する処理の一例を示すフローチャートである。
まず、鍵生成処理部301は、マスター秘密鍵mskと、公開パラメータppと、ベクトル{yi}i∈[μ]とを入力する(ステップS301)。なお、マスター秘密鍵mskと、公開パラメータppと、ベクトル{yi}i∈[μ]との入力元は任意であり、例えば、記憶部302から入力されてもよいし、キーボード等の入力装置から入力されてもよいし、通信ネットワークNを介して接続された他の装置から入力されてもよい。
次に、鍵生成処理部301は、鍵生成アルゴリズムKeyGen(msk,pp,{yi}i∈[μ])により、秘密鍵skを生成する(ステップS302)。
ここで、鍵生成処理部301は、
Figure 0007087965000015
として、
Figure 0007087965000016
とした上で、
Figure 0007087965000017
とする。そして、鍵生成処理部301は、
Figure 0007087965000018
として、
Figure 0007087965000019
により秘密鍵skを生成する。
以上により秘密鍵skが生成される。秘密鍵skは、例えば、通信ネットワークNを介して復号装置40に送信される。また、このとき、秘密鍵skと共に公開パラメータppが復号装置40に送信されてもよい。
<復号>
次に、復号装置40が実行する処理(復号アルゴリズムDecにより実現される処理)について、図5を参照しながら説明する。図5は、本発明の実施の形態における復号装置40が実行する処理の一例を示すフローチャートである。
まず、復号処理部401は、公開パラメータppと、暗号文{cti}i∈[μ]と、秘密鍵skとを入力する(ステップS401)。なお、公開パラメータppと、暗号文{cti}i∈[μ]と、秘密鍵skとの入力元は任意であり、例えば、記憶部402から入力されてもよいし、キーボード等の入力装置から入力されてもよいし、通信ネットワークNを介して接続された他の装置から入力されてもよい。
次に、復号処理部401は、復号アルゴリズムDec(pp, {cti}i∈[μ],sk)により、復号値dを生成する(ステップS402)。
ここで、復号処理部401は、
Figure 0007087965000020
として、
Figure 0007087965000021
とすると共に、
Figure 0007087965000022
とする。次に、復号処理部401は、
Figure 0007087965000023
として、
Figure 0007087965000024
とする。なお、○はエンコードされたZn上の元同士の準同型演算である。
そして、復号処理部401は、d´をデコードすることで、復号値dを生成する。
以上により復号値dが生成される。復号値dは、例えば、記憶部402に記憶されてもよいし、通信ネットワークNを介して他の装置に送信されてもよい。
<実施例>
上記の図2乃至図5に示す各処理では、共通鍵暗号と関数秘匿内積関数型暗号とを用いて、当該関数秘匿内積関数型暗号を関数秘匿多入力内積関数型暗号に汎用的に変換する場合について説明した。以降の実施例では、具体的な関数秘匿内積関数型暗号を用いた場合について説明する。
以降の実施例では、以下の参考文献4に記載されている内積関数型暗号(より具体的にはA one-SEL-SIM scheme for single-input inner product)に対して、以下の参考文献5に記載されている手法を適用することで、当該内積関数型暗号が関数秘匿性を有するように構成した関数秘匿内積関数型暗号を用いるものとする。これにより、例えば、非特許文献1や非特許文献2に記載されている関数秘匿多入力内積関数型暗号よりも効率的な関数秘匿多入力内積関数型暗号を実現することができる。
[参考文献4]
Michel Abdalla, Romain Gay, Mariana Raykova, and Hoeteck Wee. Multi-input inner-product functional encryption from pairings. In Jean-Sebastien Coron and Jesper Buus Nielsen, editors, EUROCRYPT 2017, Part I, volume 10210 of LNCS, pages 601-626. Springer, Heidelberg, April / May 2017.
[参考文献5]
H. Lin. Indistinguishability obfuscation from SXDH on 5-linear maps and locality-5 PRGs. In J. Katz and H. Shacham, editors, CRYPTO 2017, Part I, volume 10401 of LNCS, pages 599-629. Springer, Heidelberg, Aug. 2017.
なお、以降の実施例では、kは任意の自然数としてよい。また、pは素数である。
(実施例におけるセットアップ)
図2のステップS101において、セットアップ処理部101は、ベクトル長mと引数の数μとを入力する。そして、図2のステップS102において、セットアップ処理部101は、セットアップアルゴリズムSetup(m,μ)により、マスター秘密鍵mskと公開パラメータppとを生成する。このとき、本実施例では、以下によりマスター秘密鍵mskと公開パラメータppとを生成する。
まず、セットアップ処理部101は、
Figure 0007087965000025
として、K←SKE.Genとする。次に、セットアップ処理部101は、
Figure 0007087965000026
とすると共に、
Figure 0007087965000027
とする。そして、セットアップ処理部101は、
Figure 0007087965000028
によりマスター秘密鍵mskを生成する。
また、セットアップ処理部101は、適当なk-線型仮定が成り立つ双線型群G1,G2,GTを指定する情報を公開パラメータppとする。なお、k-線型仮定の定義については、例えば、以下の参考文献6を参照されたい。
[参考文献6]
Allison B. Lewko and Brent Waters, "Efficient pseudorandom functions from the decisional linear assumption and weaker variants", Proceedin gs of the 2009 ACM Conference on Computer and Communications Security, CCS 2009, Chicago, Illinois, USA, pp. 112-120, Nov. 2009.
上記の参考文献6にはk-線型仮定が成り立つ双線型群を楕円曲線から構成する例が記載されているが、このような楕円曲線のより一般的な構成方法が以下の参考文献7に記載されている。
[参考文献7]
David Freeman, Michael Scott and Edlyn Teske, "A taxonomy of pairing-friendly elliptic curves, IACR Cryptology ePrint Archive, vol. 2006, pp. 372, http://eprint.iacr.org/2006/372, 2006.
なお、上記の双線型群G1,G2,GTは必ずしも楕円曲線から構成されている必要はない。これらの双線型群G1,G2,GTは楕円曲線以外の方法により構成されたものであってもよい。
(実施例における暗号化)
図3のステップS201において、暗号化処理部201は、マスター秘密鍵mskと、公開パラメータppと、インデックスi∈[μ]と、ベクトルx∈Zmとを入力する。そして、図3のステップS202において、暗号化処理部201は、暗号化アルゴリズムEnc(msk,pp,i,x)により、インデックスiに対応する暗号文ctiを生成する。このとき、本実施例では、以下により暗号文ctiを生成する。
まず、暗号化処理部201は、
Figure 0007087965000029
とすると共に、
Figure 0007087965000030
とした上で、
Figure 0007087965000031
とする。また、暗号化処理部201は、
Figure 0007087965000032
とする。そして、暗号化処理部201は、cti=(Ci,Ki)により、インデックスiに対応する暗号文ctiを生成する。
(実施例における鍵生成)
図4のステップS301において、鍵生成処理部301は、マスター秘密鍵mskと、公開パラメータppと、ベクトル{yi}i∈[μ]とを入力する。そして、図4のステップS302において、鍵生成処理部301は、鍵生成アルゴリズムKeyGen(msk,pp,{yi}i∈[μ])により、秘密鍵skを生成する。このとき、本実施例では、以下により秘密鍵skを生成する。
まず、鍵生成処理部301は、
Figure 0007087965000033
とすると共に、
Figure 0007087965000034
とした上で、
Figure 0007087965000035
とする。また、鍵生成処理部301は、
Figure 0007087965000036
とする。そして、鍵生成処理部301は、
Figure 0007087965000037
として、
Figure 0007087965000038
により秘密鍵skを生成する。
(実施例における復号)
図5のステップS401において、復号処理部401は、公開パラメータppと、暗号文{cti}i∈[μ]と、秘密鍵skとを入力する。そして、図5のステップS402において、復号処理部401は、復号アルゴリズムDec(pp, {cti}i∈[μ],sk)により、復号値dを生成する。このとき、本実施例では、以下により復号値dを生成する。
まず、復号処理部401は、
Figure 0007087965000039
として、
Figure 0007087965000040
とすると共に、
Figure 0007087965000041
とする。次に、復号処理部401は、
Figure 0007087965000042
とする。そして、復号処理部401は、e(g1,g2)を底とするd´の離散対数問題を解いた結果を復号値dとして生成する。
<ハードウェア構成>
最後に、本発明の実施の形態における暗号システム1に含まれるセットアップ装置10、暗号化装置20、鍵生成装置30及び復号装置40のハードウェア構成について説明する。これらの装置のハードウェアとしては、例えば、図6に示すコンピュータ500を用いて実現可能である。図6は、コンピュータ500のハードウェア構成の一例を示す図である。
図6に示すコンピュータ500は、入力装置501と、表示装置502と、RAM(Random Access Memory)503と、ROM(Read Only Memory)504と、プロセッサ505と、外部I/F506と、通信I/F507と、補助記憶装置508とを有する。これら各ハードウェアは、それぞれがバス509を介して通信可能に接続されている。
入力装置501は、例えばキーボードやマウス、タッチパネル等であり、ユーザが各種操作を入力するのに用いられる。表示装置502は、例えばディスプレイ等であり、コンピュータ500の処理結果を表示する。なお、コンピュータ500は、入力装置501及び表示装置502の少なくとも一方を有していなくてもよい。
RAM503は、プログラムやデータを一時保持する揮発性の半導体メモリ(主記憶装置)である。ROM504は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ROM504には、例えば、OS(Operating System)に関する設定情報や通信ネットワークNに接続するための設定情報等が格納されている。
プロセッサ505は、例えばCPU(Central Processing Unit)等であり、ROM504や補助記憶装置508等からプログラムやデータをRAM503上に読み出して処理を実行する演算装置である。
外部I/F506は、外部装置とのインタフェースである。外部装置には、記録媒体506a等がある。コンピュータ500は、外部I/F506を介して、記録媒体506aの読み取りや書き込み等を行うことができる。
記録媒体506aには、例えば、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等がある。
通信I/F507は、コンピュータ500を通信ネットワークNに接続するためのインタフェースである。
補助記憶装置508は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)等であり、プログラムやデータを格納している不揮発性の記憶装置である。補助記憶装置508に格納されているプログラムやデータには、例えば、OS、当該OS上で各種機能を実現するアプリケーションプログラム、本発明の実施の形態における各種処理を実現するプログラム等がある。
本発明の実施の形態におけるセットアップ装置10、暗号化装置20、鍵生成装置30及び復号装置40は、図6に示すコンピュータ500のハードウェア構成を有することにより、上述した各種処理を実現することができる。なお、図6に示す例に限られず、コンピュータ500は、例えば、複数の演算装置(プロセッサ506)と、複数のメモリ(RAM503やROM504、補助記憶装置50)とを有していてもよい。
<まとめ>
以上のように、本発明の実施の形態における暗号システム1では、所定の性質(つまり、剰余環Zn上で内積が計算可能)を有する関数秘匿内積関数型暗号を関数秘匿多入力内積関数型暗号へ汎用的に変換することができる。したがって、本発明の実施の形態における暗号システム1によれば、所定の性質を有する関数秘匿内積関数型暗号さえ安全に設計できればよくなり、関数秘匿多入力内積関数型暗号の設計に要する労力を大幅に削減することができる。ただし、上述したように、関数秘匿多入力内積関数型暗号を実現する際に用いる共通鍵暗号は、選択的平文攻撃のもとでの識別不可能性を満たしている必要がある。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
1 暗号システム
10 セットアップ装置
20 暗号化装置
30 鍵生成装置
40 復号装置
101 セットアップ処理部
102 記憶部
201 暗号化処理部
202 記憶部
301 鍵生成処理部
302 記憶部
401 復号処理部
402 記憶部

Claims (7)

  1. 関数秘匿性を有する多入力内積関数型暗号により暗号化及び復号を行う暗号システムであって、
    ベクトル長mと前記内積関数の引数の数μとを入力として、所定の性質を有し、かつ、関数秘匿性を有する単入力内積関数型暗号のセットアップアルゴリズムと、所定の条件を満たす共通鍵暗号の鍵生成アルゴリズムとを用いて、マスター秘密鍵mskと公開パラメータppとを生成するセットアップ手段と、
    前記マスター秘密鍵mskと、前記公開パラメータppと、前記引数のインデックスiと、ベクトルxとを入力として、前記単入力内積関数型暗号の暗号化アルゴリズムと、前記共通鍵暗号の暗号化アルゴリズムとを用いて、前記インデックスiに対応する暗号文ctiを生成する暗号化手段と、
    前記マスター秘密鍵mskと、前記公開パラメータppと、μ個のベクトルy1,・・・,yμとを入力として、前記単入力内積関数型暗号の鍵生成アルゴリズムと、前記共通鍵暗号の暗号化アルゴリズムとを用いて、前記暗号文ctiを復号するための秘密鍵skを生成する秘密鍵生成手段と、
    前記公開パラメータppと、前記暗号文ct1,・・・,ctμと、前記秘密鍵skとを入力として、前記単入力内積関数型暗号の復号アルゴリズムと、前記共通鍵暗号の復号アルゴリズムとを用いて、前記暗号文ct1,・・・,ctμの復号値dを生成する復号手段と、
    を有することを特徴とする暗号システム。
  2. 前記所定の性質は、剰余環Zn上での内積計算が可能であることであり、
    前記所定の条件は、選択的平文攻撃のもとでの識別不可能性を満たすことである、ことを特徴とする請求項1に記載の暗号システム。
  3. 関数秘匿性を有する多入力内積関数型暗号により暗号化を行う暗号化装置であって、
    ベクトル長mと前記内積関数の引数の数μとを入力として、所定の性質を有し、かつ、関数秘匿性を有する単入力内積関数型暗号のセットアップアルゴリズムと、所定の条件を満たす共通鍵暗号の鍵生成アルゴリズムとを用いて、マスター秘密鍵mskと公開パラメータppとを生成するセットアップ手段と、
    前記マスター秘密鍵mskと、前記公開パラメータppと、前記引数のインデックスiと、ベクトルxとを入力として、前記単入力内積関数型暗号の暗号化アルゴリズムと、前記共通鍵暗号の暗号化アルゴリズムとを用いて、前記インデックスiに対応する暗号文ctiを生成する暗号化手段と、
    を有することを特徴とする暗号化装置。
  4. 関数秘匿性を有する多入力内積関数型暗号により暗号化された暗号文ct1,・・・,ctμの復号を行う復号装置であって、
    公開パラメータppと、前記暗号文ct1,・・・,ctμと、所定の秘密鍵skとを入力として、所定の性質を有し、かつ、関数秘匿性を有する単入力内積関数型暗号の復号アルゴリズムと、所定の条件を満たす共通鍵暗号の復号アルゴリズムとを用いて、前記暗号文ct1,・・・,ctμの復号値dを生成する復号手段を有することを特徴とする復号装置。
  5. 関数秘匿性を有する多入力内積関数型暗号により暗号化を行う暗号化装置が、
    ベクトル長mと前記内積関数の引数の数μとを入力として、所定の性質を有し、かつ、関数秘匿性を有する単入力内積関数型暗号のセットアップアルゴリズムと、所定の条件を満たす共通鍵暗号の鍵生成アルゴリズムとを用いて、マスター秘密鍵mskと公開パラメータppとを生成するセットアップ手順と、
    前記マスター秘密鍵mskと、前記公開パラメータppと、前記引数のインデックスiと、ベクトルxとを入力として、前記単入力内積関数型暗号の暗号化アルゴリズムと、前記共通鍵暗号の暗号化アルゴリズムとを用いて、前記インデックスiに対応する暗号文ctiを生成する暗号化手順と、
    を実行することを特徴とする暗号化方法。
  6. 関数秘匿性を有する多入力内積関数型暗号により暗号化された暗号文ct1,・・・,ctμの復号を行う復号装置が、
    公開パラメータppと、前記暗号文ct1,・・・,ctμと、所定の秘密鍵skとを入力として、所定の性質を有し、かつ、関数秘匿性を有する単入力内積関数型暗号の復号アルゴリズムと、所定の条件を満たす共通鍵暗号の復号アルゴリズムとを用いて、前記暗号文ct1,・・・,ctμの復号値dを生成する復号手順を実行することを特徴とする復号方法。
  7. コンピュータを、請求項3に記載の暗号化装置、又は、請求項4に記載の復号装置として機能させるためのプログラム。
JP2018223911A 2018-11-29 2018-11-29 暗号システム、暗号化装置、復号装置、暗号化方法、復号方法及びプログラム Active JP7087965B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018223911A JP7087965B2 (ja) 2018-11-29 2018-11-29 暗号システム、暗号化装置、復号装置、暗号化方法、復号方法及びプログラム
PCT/JP2019/045088 WO2020110800A1 (ja) 2018-11-29 2019-11-18 暗号システム、暗号化装置、復号装置、暗号方法、暗号化方法、復号方法及びプログラム
US17/284,907 US11757620B2 (en) 2018-11-29 2019-11-18 Cipher system, encryption apparatus, decryption apparatus, cipher method, encryption method, decryption method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018223911A JP7087965B2 (ja) 2018-11-29 2018-11-29 暗号システム、暗号化装置、復号装置、暗号化方法、復号方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2020086292A JP2020086292A (ja) 2020-06-04
JP7087965B2 true JP7087965B2 (ja) 2022-06-21

Family

ID=70852018

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018223911A Active JP7087965B2 (ja) 2018-11-29 2018-11-29 暗号システム、暗号化装置、復号装置、暗号化方法、復号方法及びプログラム

Country Status (3)

Country Link
US (1) US11757620B2 (ja)
JP (1) JP7087965B2 (ja)
WO (1) WO2020110800A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230291553A1 (en) 2020-09-08 2023-09-14 Nippon Telegraph And Telephone Corporation Cypher system, method and program
CN115296857A (zh) * 2022-07-12 2022-11-04 四川大学 基于拓扑结构和DeepLearning-AIS的网络威胁感知及免疫方法
CN116112284B (zh) * 2023-02-27 2023-07-18 敏于行(北京)科技有限公司 门限代理重加密协作网络的有效性验证方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014061324A1 (ja) 2012-10-19 2014-04-24 三菱電機株式会社 暗号システム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103003857B (zh) * 2010-07-23 2015-03-11 日本电信电话株式会社 秘密分散系统、分散装置、分散管理装置、取得装置、秘密分散方法
JP5680007B2 (ja) * 2012-03-06 2015-03-04 三菱電機株式会社 暗号システム、暗号方法及び暗号プログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014061324A1 (ja) 2012-10-19 2014-04-24 三菱電機株式会社 暗号システム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ABDALLA, M. et al.,Mulit-Input Functional Encryption for Inner Products: Function-Hiding Realizations and Constructions without Pairings,Cryptology ePrint Archive,Report 2017/972,2018年09月07日,pp.0-40,<URL:https://eprint.iacr.org/2017/972>
DATTA, P., OKAMOTO, T. and TOMIDA, J.,Full-Hiding (Unbounded) Multi-Input Inner Product Functional Encryption from the k-Linear Assumption,Cryptology ePrint Archive,Report 2018/061,2018年02月12日,pp.1-38,<URL:https://eprint.iacr.org/2018/061>
プラティッシュ ダッタ,岡本龍明,富田潤一,(アリティに制限を持たない)関数秘匿複数入力内積関数型暗号,2018年 暗号と情報セキュリティシンポジウム(SCIS2018)予稿集,2018年01月23日,pp.1-8

Also Published As

Publication number Publication date
US20220140998A1 (en) 2022-05-05
US11757620B2 (en) 2023-09-12
WO2020110800A1 (ja) 2020-06-04
JP2020086292A (ja) 2020-06-04

Similar Documents

Publication Publication Date Title
US9521124B2 (en) Secure computation using a server module
JP5337238B2 (ja) 秘密分散システム、分散装置、分散管理装置、取得装置、それらの処理方法、秘密分散方法、プログラム及び記録媒体
JP3583555B2 (ja) 暗号通信法
Abusukhon et al. A hybrid network security algorithm based on Diffie Hellman and Text-to-Image Encryption algorithm
KR20050087815A (ko) 키공유 시스템, 공유키 생성장치 및 공유키 복원장치
JP7087965B2 (ja) 暗号システム、暗号化装置、復号装置、暗号化方法、復号方法及びプログラム
JP2018515815A (ja) データ暗号化装置及び方法、並びにデータ復号化装置及び方法
KR20200047002A (ko) 동형 암호를 이용한 암호문 비교 방법 및 이를 수행하기 위한 장치
JP7024666B2 (ja) Idベースハッシュ証明系構成装置、idベース暗号装置及びプログラム
WO2018043049A1 (ja) 暗号システム、暗号方法及び暗号プログラム
JP6266130B2 (ja) 暗号システム、マスター鍵更新装置及びマスター鍵更新プログラム
WO2019220900A1 (ja) 暗号化システム、暗号化装置、復号装置、暗号化方法、復号方法、及びプログラム
WO2022054130A1 (ja) 暗号システム、方法及びプログラム
JP7325689B2 (ja) 暗号文変換システム、変換鍵生成方法、及び、変換鍵生成プログラム
JP6452910B1 (ja) 秘匿分析装置、秘匿分析システム、秘匿分析方法及び秘匿分析プログラム
WO2024028961A1 (ja) 暗号システム、方法及びプログラム
JP6949276B2 (ja) 再暗号化装置、再暗号化方法、再暗号化プログラム及び暗号システム
WO2023135642A1 (ja) 暗号化装置、復号装置、復号可能検証装置、暗号システム、暗号化方法、及び暗号化プログラム
US11811741B2 (en) Information processing system and information processing method
JP7310938B2 (ja) 暗号システム、暗号化方法、復号方法及びプログラム
Msilini et al. Homomorphic Cryptosystems for Securing Data in Public Cloud Computing
JP7215245B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP6885325B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法、プログラム
JP2010164897A (ja) 暗号化数値二進変換システム、暗号化数値二進変換方法、暗号化数値二進変換プログラム
Moldovyan et al. Stream pseudo-probabilistic ciphers

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220328

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220523

R150 Certificate of patent or registration of utility model

Ref document number: 7087965

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150