JP2015213233A - 鍵生成装置、再暗号化装置、およびプログラム - Google Patents

鍵生成装置、再暗号化装置、およびプログラム Download PDF

Info

Publication number
JP2015213233A
JP2015213233A JP2014095054A JP2014095054A JP2015213233A JP 2015213233 A JP2015213233 A JP 2015213233A JP 2014095054 A JP2014095054 A JP 2014095054A JP 2014095054 A JP2014095054 A JP 2014095054A JP 2015213233 A JP2015213233 A JP 2015213233A
Authority
JP
Japan
Prior art keywords
key
ciphertext
algorithm
encryption
decryption
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014095054A
Other languages
English (en)
Other versions
JP6189788B2 (ja
Inventor
恵太 草川
Keita Kusakawa
恵太 草川
陵 西巻
Ryo Nishimaki
陵 西巻
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 JP2014095054A priority Critical patent/JP6189788B2/ja
Publication of JP2015213233A publication Critical patent/JP2015213233A/ja
Application granted granted Critical
Publication of JP6189788B2 publication Critical patent/JP6189788B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】変換鍵から変換先の情報が漏えいすることを抑制する。
【解決手段】第1復号鍵および第2暗号化鍵を用い、第1暗号文を第2暗号文に変換するための基本変換鍵を得、第2暗号化鍵を用い、第2暗号化鍵をランダム化してランダム化鍵を得、基本変換鍵とランダム化鍵とを変換鍵とする。ただし、第1復号鍵が第1暗号文を復号するための鍵であり、第2復号鍵が第2暗号文を復号するための鍵であり、第2暗号化鍵が第2復号鍵に対応する鍵であり、ランダム化鍵を用いて暗号化された暗号文は第2復号鍵で復号可能である。
【選択図】図2

Description

本発明は、暗号化技術に関し、特に、ある暗号化鍵で暗号化された暗号文を、その暗号化鍵に対応する復号鍵とは異なる復号鍵を用いて復号することを可能とする技術に関する。
公開鍵暗号方式では、ある暗号化鍵(公開鍵)で暗号化された暗号文を復号出来るのは、その公開鍵に対応する復号鍵(秘密鍵)を有する者にのみ限られる。例えば、ユーザhからユーザiに平文mを送信する場合、ユーザhはユーザiの暗号化鍵EKを用いて暗号文CTを生成し、iに送信する。暗号化鍵EKに対応する復号鍵DKを持つユーザのみがこのCTを復号できる。加えて、変換鍵を用いることによって、その暗号文を異なる復号鍵を用いて復号可能となる暗号文に変換する方式が、プロキシ再暗号化方式である。この方式は、復号権限を委譲するユーザ、復号権限を委譲されるユーザ、および暗号文を変換するプロキシから構成される。例えば、ユーザiがユーザjに復号権限を委譲する場合、変換鍵RKi,jを作成し、それをプロキシに委託する。変換鍵RKi,jを持つプロキシは、入力された暗号文CTを暗号文CTに変換して出力する。このとき、暗号化鍵EKに対応する復号鍵DKを持つユーザはこのCTを復号して平文を得ることができる。変換鍵RKi,jが、ユーザiからユーザjへの変換およびユーザjからユーザiへの変換を許すとき、変換鍵は双方向であるという。変換鍵RKi,jが、ユーザiからユーザjへの変換のみを許すとき、変換鍵は単方向であるという。プロキシ再暗号化方式は、非特許文献1で初めて提案された。それ以降、離散対数問題や楕円離散対数問題に基づいて様々なプロキシ再暗号化方式が提案されている。格子問題に基づくプロキシ再暗号化方式として、非特許文献2〜6に開示された方式がある。
Matt Blaze, Gerrit Bleumer, and Martin Strauss. Divertible protocols and atomic proxy cryptography, in Kaisa Nyberg, editor, EUROCRYPT’98, volume 1403 of LNCS, pages 127-144, Springer, Heidelberg, 1998. Yoshinori Aono, Xavier Boyen, Le Trieu Phong, and Lihua Wang. Key-private proxy re-encryption under LWE, in Goutam Paul and Paul Vaudenay, editors, INDOCRYPT 2013, volume 8250 of LNCS, pages 1-18, Springer, Heidelberg, 2013. Nishanth Chandran, Melissa Chase, Feng-Hao Liu, Ryo Nishimaki, and Keita Xagawa. Re-encryption, functional re-encryption, and multi-hop re-encryption: A framework for achieving obfuscation-based security and instantiations from lattices. In Hugo Krawczyk, editor, PKC 2014, volume 8383 of LNCS, pages 95-112, Springer, Heidelberg, 2014. Elena Kirshanova, Proxy re-encryption from lattices, in Hugo Krawczyk, editor, PKC 2014, volume 8383 of LNCS, pages 77-94, Springer, Heidelberg, 2014. 草川恵太, 関連鍵攻撃に対する識別不可能性と双方向代理人再暗号化, SCIS 2011, 2011. Keita Xagawa and Keisuke Tanaka, Proxy re-encryption based on learning with errors, SCIS 2010, 2010.
ユーザiからユーザjへの変換を行う単方向変換鍵RKi→jを考える。この単方向変換鍵からユーザiとjの情報が漏れない場合、鍵匿名性があるという。これまで提案されてきた格子問題に基づく単方向プロキシ再暗号化方式として非特許文献2,3,4に開示された方式がある。しかしながら、これらの方式には鍵匿名性が無い。例えば、非特許文献2および非特許文献3の方式では、変換鍵RKi→jが基本変換鍵rki→jと変換先のユーザjの暗号化鍵ekら構成される。公開鍵である暗号化鍵ekにはユーザjを特定するための情報(公開鍵証明書等)が紐付けられている。そのため、暗号化鍵ekを特定できればそれに対応するユーザを特定できる。よって、これらの方式では変換鍵RKi→jからユーザjを容易に特定することができる。
本発明はこのような点に鑑みてなされたものであり、変換鍵から変換先の情報が漏えいすることを抑制可能な技術を提供することを課題とする。
第1復号鍵および第2暗号化鍵を用い、第1暗号文を第2暗号文に変換するための基本変換鍵を得、第2暗号化鍵を用い、第2暗号化鍵をランダム化してランダム化鍵を得る。ただし、第1復号鍵が第1暗号文を復号するための鍵であり、第2復号鍵が第2暗号文を復号するための鍵であり、第2暗号化鍵が第2復号鍵に対応する鍵であり、ランダム化鍵を用いて暗号化された暗号文は第2復号鍵で復号可能である。
以上のように生成した基本変換鍵およびランダム化鍵を変換鍵として利用することができる。ランダム化鍵は第2暗号化鍵をランダム化して得られたものである。これにより、攻撃者等の第三者はランダム化鍵から第2暗号化鍵を特定することができない。その結果、変換鍵から変換先の情報が漏えいすることを抑制できる。
図1は、実施形態の再暗号化システムの機能構成を例示したブロック図である。 図2は、実施形態の鍵生成装置12の機能構成を例示したブロック図である。 図3は、実施形態の再暗号化装置の機能構成を例示したブロック図である。 図4Aは、実施形態の鍵生成処理を例示するためのフロー図である。図4Bは、実施形態の再暗号化処理を例示するためのフロー図である。
以下、本発明の実施形態を説明する。
[原理]
まず、原理を説明する。以下では第1暗号文を第2暗号文に再暗号化する。第1暗号文を生成するための鍵を第1暗号化鍵と呼び、第1暗号文を復号するための鍵を第1復号鍵と呼ぶ。また、第2暗号文を生成するための鍵を第2暗号化鍵と呼び、第2暗号文を復号するための鍵を第2復号鍵と呼ぶ。すなわち、第1暗号化鍵は第1復号鍵に対応し、第2暗号化鍵は第2復号鍵に対応する。第1暗号文を第1復号鍵で復号して得られる復号結果(平文)は、第2暗号文を第2復号鍵で復号して得られる復号結果と等しい。第1暗号文および第2暗号文は、非対称暗号化方式(例えば、公開鍵暗号方式、IDベース暗号方式、関数暗号方式等)に則って暗号化された暗号文である。第1暗号文の暗号化方式と第2暗号文の暗号化方式とは互いに同一であってもよいし、互いに異なっていてもよい。非対称暗号化方式の例は準同型性暗号方式である。少なくとも、第2暗号文は準同型性暗号方式に則って得られた暗号文であり、準同型性を持つ。第1暗号文は同型性暗号方式に則って得られた暗号文であってもなくてもよい。例えば、第1暗号文および第2暗号文が格子暗号方式またはNTRU暗号方式に則った暗号文である。
鍵生成装置は、第1復号鍵および第2暗号化鍵を用い、第1暗号文を第2暗号文に変換するための基本変換鍵を得、第2暗号化鍵を用い、第2暗号化鍵をランダム化してランダム化鍵を得る。ただし、ランダム化鍵を用いて暗号化された暗号文が第2復号鍵で復号可能とされる。このように得られた基本変換鍵とランダム化鍵が、第1暗号文を第2暗号文に再暗号化するための変換鍵とされる。ランダム化鍵は第2暗号化鍵をランダム化して得られたものである。そのため、攻撃者等の第三者はランダム化鍵から第2暗号化鍵を特定することができない。これにより、変換鍵から変換先の情報が漏えいすることを抑制できる。
再暗号化装置は、第1暗号文を入力とし、変換鍵の基本変換鍵を用いて第1暗号文を第2暗号文に変換し、変換鍵のランダム化鍵を用いて第1値を暗号化して準同型性を持つ撹乱暗号文を得、第2暗号文と撹乱暗号文とに対して所定の「演算」を行って変形済暗号文を得る。ただし、任意の第2値と第1値とに当該「演算」を行って得られる値は第2値に等しい。例えば、「第1値」は当該「演算」が定義された集合の単位元である。この「演算」が加法演算である場合、「第1値」は加法単位元(零元)である。例えば、この「演算」が加算である場合(変形済暗号文=第2暗号文+撹乱暗号文)、「第1値」は0である。或いは、この「演算」が乗法演算である場合、「第1値」は乗法単位元である。例えば、この「演算」が乗算である場合(変形済暗号文=第2暗号文×撹乱暗号文)、「第1値」は1である。
第2暗号文および撹乱暗号文の準同型性により、変形済暗号文を第2復号鍵で復号して得られる値は、第2暗号文の復号結果と撹乱暗号文の復号結果に対して上記の「演算」を行って得られる値に等しい。上述のように第2暗号文も撹乱暗号文も共に第2復号鍵で復号可能であり、第2暗号文の復号結果は平文であり、撹乱暗号文の復号結果は第1値である。上記の「演算」の性質より、平文と第1値とに当該「演算」を行って得られる値は平文となる。すなわち、変形済暗号文は第1暗号文を再暗号化した暗号文となる。
[実施形態]
以下、図面を用いて実施形態を説明する。
<再変換可能暗号方式>
まず、再変換可能暗号方式π=(SU,G,E,D,RKG,Switch)を以下のように定義する。
SU:共通パラメータ生成アルゴリズムSUは、κを入力にとり、共通パラメータppを出力する確率的アルゴリズムである(pp←SU(1κ))。ただし、κはセキュリティパラメータ(正の整数)である。1κはκビットの1の列である。
G:鍵生成アルゴリズムGは、ppを入力にとり、暗号化鍵と復号鍵の組(ek,dk)を出力する確率的アルゴリズムである((ek,dk)←G(pp))。
E:暗号化アルゴリズムEは、pp,ek,平文μを入力にとり、乱数を内部発生させ、暗号文cを出力する確率的アルゴリズムである(c=E(pp,ek,μ))。ただし、暗号化アルゴリズムEは、準同型暗号である非対称暗号方式に則ったものであり、暗号文cは準同型性を持つ。
D:復号アルゴリズムDは、pp,dk,暗号文cを入力にとり、平文μ’を出力するアルゴリズムである(μ’←D(pp,dk,c))。
RKG:変換鍵生成アルゴリズムRKGは、pp,dkα,ekβを入力にとり、基本変換鍵rkα→βを出力する確率的アルゴリズムである(rkα→β←RKG(pp,dkα,ekβ))。ただし、dkαはユーザαに対して得られた復号鍵(ユーザαが復号を行うための復号鍵)であり、ekβはユーザβに対して得られた暗号化鍵(ユーザβが復号を行うことが可能な暗号文を生成するための暗号化鍵)である。何れの鍵も鍵生成アルゴリズムGによって得られたものである。基本変換鍵rkα→βは、復号鍵dkαに対応する暗号化鍵ekαを用いて生成された第1暗号文を、暗号化鍵ekβに対応する復号鍵dkβで復号可能な第2暗号文に変換するための鍵である。
RG:ランダム化鍵生成アルゴリズムRGは、pp,ekβを入力にとり、ランダム化鍵(rppβ,rekβ)を出力する確率的アルゴリズムである((rppβ,rekβ)←RG(pp,ekβ))。
Switch:変換アルゴリズムSwitchは、pp,rkα→β,暗号文cαを入力にとり、暗号文cβを出力する確率的アルゴリズムである(cβ←Switch(pp,rkα→β,cα))。ただし、暗号文cαはユーザαの復号鍵dkαで復号可能な暗号文であり、暗号文cβはユーザβの復号鍵dkβで復号可能な暗号文である。dkβは上述の暗号化鍵ekβに対応する。
<プロキシ再暗号化方式>
上記の再変換可能暗号方式πを用い、以下のように本形態のプロキシ再暗号化方式Π=(Setup,Gen,Enc1,Dec1,Enc2,Dec2,RekeyGen,ReEnc)を構成する。
Setup:アルゴリズムSetupは、κを入力としてpp←SU(1κ)を計算し、PP=ppを出力する。なお、「γ←η」は「ηによって得られた値をγとする(γ=η)」ことを意味する。
Gen:アルゴリズムGenは、PP=ppを入力とし、ユーザy∈{α,β}に対応する、再暗号化前の暗号化鍵と復号鍵の組(iek,idk)←G(pp)および再暗号化後の暗号化鍵と復号鍵の組(oek,odk)←G(pp)を得てこれらを出力する。ただし、再暗号化後の暗号文をさらに再暗号化できる方式(マルチホップ再暗号化方式)の場合には、iek=oekかつidk=odkでよく、(iek,idk)←G(pp)で得られた組をそのまま(oek,odk)とすればよい。
Enci:アルゴリズムEnciは、再暗号化前の暗号文を生成する。アルゴリズムEnciは、PP=pp,iek,平文μを入力とし、ict=E(pp,iek,μ)を計算し、ictを暗号文として出力する。
Deci:アルゴリズムDeciは、再暗号化前の暗号文を復号する。アルゴリズムDeciは、PP=pp,idk,暗号文ictを入力とし、μ’=D(pp,idk,ict)を計算し、μ’を平文として出力する。
Enco:アルゴリズムEncoは、再暗号化後の暗号文を生成する。アルゴリズムEncoは、PP=pp,oek,平文μを入力とし、oct=E(pp,oek,μ)を計算し、octを暗号文として出力する。
Deco:アルゴリズムDecoは、再暗号化後の暗号文を復号する。アルゴリズムDecoは、PP=pp,odk,暗号文octを入力とし、μ’=D(pp,odk,oct)を計算し、μ’を平文として出力する。
RekeyGen:アルゴリズムRekeyGenは、PP=pp,idkα(第1復号鍵),oekβ(第2暗号化鍵)を入力とし、rkα→β←RKG(pp,idkα,oekβ)を計算してrkα→βを基本変換鍵とし、(rppβ,rekβ)←RG(pp,oekβ)を計算して(rppβ,rekβ)をランダム化鍵とし、RKα→β=(rkα→β,rppβ,rekβ)を変換鍵として出力する。ただし、ランダム化鍵(rppβ,rekβ)を用いて暗号化された暗号文はodkβ(第2復号鍵)で復号可能である。
ReEnc:アルゴリズムReEncは、PP=pp,RKα→β=(rkα→β,rppβ,rekβ),ictα(第1暗号文)を入力とし、以下を計算する。ただし、ictα=E(pp,iekα,μ)である。
1)c’←Switch(pp,rkα→β,ictα
2)c’’←E(rppβ,rekβ,0)
3)octβ←c’+c’’
アルゴリズムReEncは、octを変換済暗号文として出力する。なお、この例は「第1値」が0であり、「所定の演算」が加算である場合のものである。
<構成>
図1に例示するように、本形態の再暗号化システム1は、管理装置11、鍵生成装置12,13、暗号化装置14、復号装置15,16、および再暗号化装置17を有する。図2に例示するように、本形態の鍵生成装置12は、入力部121、出力部122、記憶部123、鍵ペア生成部124、基本変換鍵生成部125、ランダム化鍵生成部126、および変換鍵合成部127を有する。また、図3に例示するように、本形態の再暗号化装置17は、入力部171、出力部172、記憶部173、基本変換部174、撹乱暗号化部175、および演算部176を有する。なお、各装置は、例えば、CPU(central processing unit)等のプロセッサ(ハードウェア・プロセッサ)やRAM(random-access memory)等のメモリ等を備える汎用または専用のコンピュータに、所定のプログラムが読み込まれて構成される装置である。CPUは電子回路(circuitry)の一種であるが、装置を構成する一部またはすべての処理部がその他の電子回路(circuitry)によって構成されていてもよい。また、各装置は情報のやり取りが可能なように構成されている。例えば、各装置はインターネット等のネットワークを通じて通信可能に構成されている。
<処理>
以下では、鍵生成装置12がユーザαに対応する鍵および変換鍵を生成し、鍵生成装置13がユーザβに対応する鍵を生成し、暗号化装置14がユーザαに対応する暗号化鍵を用いて暗号文を生成し、再暗号化装置17がこの暗号文をユーザβに対応する復号鍵で復号可能な変形済暗号文に変換する処理を例にとって説明する。
≪管理装置11の処理≫
管理装置11は、1κを入力としてアルゴリズムSetupを実行し、共通パラメータppを出力する。共通パラメータppは、再暗号化システム1を構成する各装置に送られる。
≪鍵生成装置13の鍵生成処理≫
鍵生成装置13は、ユーザβに対応する鍵を生成する。この鍵生成処理の前提として、上述の共通パラメータppが鍵生成装置13に入力され、鍵生成装置13の記憶部(図示せず)に格納されているものとする。鍵生成装置13は、記憶部から共通パラメータppを抽出し、アルゴリズムGenβを実行して、再暗号化前の暗号化鍵と復号鍵の組(iekβ,idkβ)および再暗号化後の暗号化鍵と復号鍵の組(oekβ,odk)を得て出力する。ただし、マルチホップ再暗号化方式の場合にはiekβ=oekβとidk=odkβを得ればよい。復号鍵idkβおよびodkβはユーザβの秘密情報であり、ユーザβが利用する復号装置15に安全に送られ、復号装置15に安全に格納される。一方、暗号化鍵iekβおよびoekβは公開情報であり、必要に応じて鍵生成装置13から出力されてもよいし、各装置がアクセス可能な装置に格納されてもよい。
≪鍵生成装置12の鍵生成処理≫
鍵生成装置12は、ユーザαに対応する鍵および変換鍵を生成する。図2および図4Aを用いて鍵生成装置12の鍵生成処理を説明する。この鍵生成処理の前提として、上述の共通パラメータppおよび暗号化鍵iekβおよびoekβが鍵生成装置12の入力部121に入力され、記憶部123に格納されているものとする。
鍵ペア生成部124は、共通パラメータppを入力とし、アルゴリズムGenαを実行して、再暗号化前の暗号化鍵と復号鍵の組(iekα,idkα)および再暗号化後の暗号化鍵と復号鍵の組(oekα,odkα)を得て出力する。ただし、マルチホップ再暗号化方式の場合にはiekα=oekαとidkα=odkαを得ればよい。鍵ペア生成部124から出力された(iekα,idkα)および(oekα,odkα)は記憶部123に格納される(ステップS124)。復号鍵idkαおよびodkαはユーザαの秘密情報である。復号鍵idkαおよびodkαは出力部122から出力され、ユーザαが利用する復号装置16に安全に送られ、復号装置16に安全に格納される。一方、暗号化鍵iekαおよびoekαは公開情報であり、必要に応じて鍵生成装置12の出力部122から出力されてもよいし、各装置がアクセス可能な装置に格納されてもよい。
基本変換鍵生成部125、ランダム化鍵生成部126、および変換鍵合成部127は、アルゴリズムRekeyGenを実行して変換鍵RKα→βを生成する。基本変換鍵生成部125は、共通パラメータpp、復号鍵idkα(第1復号鍵)、および暗号化鍵oekβ(第2暗号化鍵)を入力とし、復号鍵idkαに対応する暗号化鍵iekαを用いて得られた第1暗号文を、暗号化鍵oekβに対応する復号鍵odkβで復号可能な第2暗号文に変換するための基本変換鍵rkα→β←RKG(pp,idkα,oekβ)を得て出力する(ステップS125)。
ランダム化鍵生成部126は、共通パラメータppおよび暗号化鍵oek(第2暗号化鍵)を入力とし、(rppβ,rekβ)←RG(pp,oekβ)によって暗号化鍵oekβをランダム化してランダム化鍵(rppβ,rekβ)を得て出力する。このランダム化は、ランダム化鍵(rppβ,rekβ)を用いて任意値を暗号化して得られた暗号文が復号鍵odkβで復号可能なように行われる(ステップS126)。
変換鍵合成部127は、基本変換鍵rkα→βおよびランダム化鍵(rppβ,rekβ)を入力とし、これらを含む変換鍵RKα→β=(rkα→β,rppβ,rekβ)を出力する。変換鍵RKα→βは出力部122に送られ、出力部122は変換鍵RKα→βを再暗号化装置17に送る(ステップS127)。
≪暗号化装置14での暗号化処理≫
暗号化装置14は、PP=pp,iekα,平文μを入力とし、アルゴリズムEnciを実行してictα=E(pp,iekα,μ)を計算し、ictαを第1暗号文として出力する。
≪復号装置16での復号処理≫
復号装置16が再暗号化前の第1暗号文ictαを復号する処理を説明する。復号装置16に第1暗号文ictαが入力された場合、復号装置16はPP=pp,idkα(第1暗号文を復号するための第1復号鍵),第1暗号文ictαを用い、アルゴリズムDeciを実行してμ’=D(pp,idkα,ictα)を計算し、μ’を平文として出力する。
≪再暗号化装置17での再暗号化処理≫
図3および図4Bを用い、再暗号化装置17が第1暗号文ictαを再暗号化する処理を説明する。この再暗号化処理の前提として、上述の共通パラメータpp、第1暗号文ictα、および変換鍵RKα→β=(rkα→β,rppβ,rekβ)が再暗号化装置17の入力部171に入力され、記憶部173に格納されているものとする。
基本変換部174は、PP=pp,rkα→β(基本変換鍵),第1暗号文ictαを入力とし、変換アルゴリズムSwitchを実行してc’←Switch(pp,rkα→β,ictα)を計算し、c’を第2暗号文として出力する。なお、第2暗号文c’は準同型性を持つ(ステップS174)。
撹乱暗号化部175は、rppβ(ランダム化鍵),rekβ(ランダム化鍵)を入力とし、暗号化アルゴリズムEを実行してc’’←E(rppβ,rekβ,0)を計算し、c’’を0(第1値)の暗号文である撹乱暗号文として出力する。なお、撹乱暗号文c’’は準同型性を持つ(ステップS175)。
演算部176は、第2暗号文c’および撹乱暗号文c’’を入力とし、octβ←c’+c’’を計算し、octβを変形済暗号文として出力する。なお、任意の第2値と0(第1値)との加算を行って得られる値(第2値+0)は第2値に等しい(ステップS176)。
≪復号装置15での復号処理≫
復号装置15が再暗号化後の変形済暗号文octβを復号する処理を説明する。復号装置15に変形済暗号文octβが入力された場合、復号装置15はPP=pp,odkβ(第2暗号文を復号するための第2復号鍵),変形済暗号文octβを用い、アルゴリズムDecoを実行してμ’=D(pp,odkβ,octβ)を計算し、μ’を平文として出力する。
以下では、上記の実施形態のプロキシ再暗号化方式Π=(Setup,Gen,Enc1,Dec1,Enc2,Dec2,RekeyGen,ReEnc)を構成可能な再変換可能暗号方式π=(SU,G,E,D,RKG,Switch)を具体的に説明する。実施例1から8では、非対称暗号化方式として格子暗号方式を用いる例を説明し、実施例9および10ではNTRU暗号方式を用いる例を説明する。格子暗号方式もNTRU暗号方式も公開鍵暗号方式であり、かつ、準同型性暗号方式である。なお、再暗号化システムの構成およびその処理も再変換可能暗号方式πが具体化されることによってプロキシ再暗号化方式Πが具体化される以外、上述の実施形態と同じである。そのため、以下では再変換可能暗号方式πおよびプロキシ再暗号化方式Πの具体的な構成を中心に説明する。
実施例1では、上述の実施形態に参考文献1(Zvika Brakerski, Craig Gentry, and Vinod Vaikuntanathan. (leveled) fully homomorphic encryption without bootstrapping, in Shafi Goldwasser, editor, ITCS 2012, pages 309-325. ACM, 2012.)の方式を適用する例を示す。
<確定的アルゴリズムBD,P2の定義>
参考文献1に記載された確定的アルゴリズムBD,P2を以下のように定義する。
1以上の整数p,δ,q(例えば、素数)についてpδ−1≦q<pδを満たすとする。すなわち、qはp進δ桁の数として表現可能である。
BD:アルゴリズムBDは、ベクトルx∈Z を入力にとり、k=1,・・・,δについて、ベクトルu∈Z
Figure 2015213233

を満たすように計算し、(u,・・・,uδ)∈Z nδを出力する。ただし、Zは整数p(例えばp≧2)を法とした整数の剰余類の集合である。Zの例はpを法とした整数の剰余類の代表元の集合である。例えば、Zは整数zに対するz mod pの集合、すなわちZ={0,・・・,p−1}である。また、nは1以上の整数であり、x∈Z はxがZのn個の元からなることを意味する。
P2:アルゴリズムP2は、ベクトルs∈Z を入力にとり、
Figure 2015213233

を出力する。ただし、
Figure 2015213233

は行列のクロネッカー積であり、[・]は[・]の転置を表す。アルゴリズムP2は、サイズn×gの行列S=[s,・・・,s]∈Z n×gを入力にとる場合に、サイズnδ×gの行列[P(s),・・・,P(s)]∈Z nδ×gを出力する。ただし、gは1以上の整数であり、S∈Z n×gはサイズn×gの行列Sの各要素がZの元であることを表す。これらのアルゴリズムの定義より、任意のベクトルx∈Z および行列S∈Z n×gについて、BD(x)P2(S)=xS∈Z を満たす。
<再変換可能暗号方式>
本実施例の再変換可能暗号方式π=(SU,G,E,D,RKG,Switch)を説明する。SU,G,E,D,Switchは参考文献1に基づいている。
SU:共通パラメータ生成アルゴリズムSUは、κを入力にとり、行列A∈Z m×nをランダムに選び、共通パラメータpp=(κ,1,q,m,g,χ,A)を出力する(pp←SU(1κ))。ただし、n,m,gは1以上の整数である。また、平均0、分散σのガウス分布N(0,σ)は実数上の密度関数
Figure 2015213233

で定義される。ν∈(0,1)および整数q≧1について、ガウス分布N(0,ν/2π)に従って得られるサンプルxに対し、
Figure 2015213233

で表される分布をχとする。ただし、(0,1)は0より大きく1より小さな閉区間{ν|0<ν<1}を表し、
Figure 2015213233

は実数ωの天井関数を表し、実数ωに対してω以上の最小の整数を意味する。
G:鍵生成アルゴリズムGは、ppを入力にとり、行列S∈Z n×gをランダムに選び、サイズm×gの行列X∈Z m×gを分布χm×gに従って選ぶ。すなわち、行列Xの各要素は分布χに従う。鍵生成アルゴリズムGは、B=AS+X∈Z m×gを計算し、ek=Bおよびdk=(S,B)とし、暗号化鍵と復号鍵の組(ek,dk)を出力する((ek,dk)←G(pp))。
E:暗号化アルゴリズムEは、pp,ek=B∈Z m×g,平文μ∈Z を入力にとり、m個の要素からなるベクトルe∈{−1,+1}をランダムに選び、
Figure 2015213233

を計算し、暗号文c=(U,C)∈Z ×Z を出力する(c=E(pp,ek,μ))。
D:復号アルゴリズムDは、pp,dk=(S,B),暗号文c=(U,C)を入力にとり、d=C−US mod qを計算し、
Figure 2015213233

を計算し、平文μ’∈Z を出力する(μ’←D(pp,dk,c))。なお、ベクトルψ=(ψ,・・・,ψ)とすると、ψ mod θは(ψ mod θ,・・・,ψ mod θ)を意味する。
RKG:変換鍵生成アルゴリズムRKGは、pp,dkα=(Sα,Bα),ekβ=Bβを入力とする。ただし、dkα=(Sα,Bα)はユーザαに対して得られた復号鍵であり、ekβ=Bβはユーザβに対して得られた暗号化鍵である。何れの鍵も鍵生成アルゴリズムGによって得られたものである。変換鍵生成アルゴリズムRKGは、サイズnδ×mの行列Y∈{−1,+1}nδ×mをランダムに選び、Mα→β=Y[A|Bβ]+[O|−P2(Sα)]∈Z nδ×(n+g)を計算し、基本変換鍵rkα→β=Mα→β∈Z nδ×(n+g)を出力する(rkα→β←RKG(pp,dkα,ekβ))。ただし、行列A∈Z m×nおよび行列Bβ∈Z m×gに対する[A|Bβ]∈Z m×(n+g)は、行列Aのn個の列の後に行列Bβのg個の列を連結したサイズm×(n+g)の行列である。また、Oはサイズnδ×mの零行列O∈Z nδ×mであり、すべての要素が0からなる。
RG:ランダム化鍵生成アルゴリズムRGは、pp,ekβ=Bβを入力にとり、サイズm×mの行列Y’∈{−1,+1}m×mをランダムに選び、[Tβ|Nβ]=Y’[A|Bβ]∈Z m×(n+g)を計算し、ランダム化鍵(rppβ,rekβ)=(Tβ,Nβ)∈Z m×n×Z m×gを出力する((rppβ,rekβ)←RG(pp,ekβ))。
Switch:変換アルゴリズムSwitchは、pp,rkα→β=Mα→β∈Z nδ×(n+g),暗号文cα=(Uα,Cα)∈Z ×Z を入力にとる。ただし、暗号文cα=(Uα,Cα)はユーザαの復号鍵dkα=(Sα,Bα)で復号可能な暗号文であり、暗号文cβはユーザβの復号鍵dkβ=(Sβ,Bβ)で復号可能な暗号文である。dkβは上述の暗号化鍵ekβ=Bβに対応する。変換アルゴリズムSwitchは、ベクトルUα∈Z を入力としたアルゴリズムBDを実行してベクトルBD(Uα)∈Z nδを得、U’|C’=BD(Uα)Mα→β∈Z n+gとする。ただし、U’∈Z かつC’∈Z であり、U’の後にC’を結合したベクトルがBD(Uα)Mα→βとなる。変換アルゴリズムSwitchは、さらに(Uβ,Cβ)=(U’,C’+Cα)を計算し、暗号文cβ=(Uβ,Cβ)∈Z ×Z を出力する(cβ←Switch(pp,rkα→β,cα))。
<プロキシ再暗号化方式>
上記の再変換可能暗号方式πの場合、プロキシ再暗号化方式Πは以下のようになる。
Setup:アルゴリズムSetupは、κを入力としてpp←SU(1κ)を計算し、PP=pp=(κ,1,q,m,g,χ,A)を出力する。
Gen:アルゴリズムGen(ただし、y∈{α,β})は、ppを入力にとり、行列S∈Z n×gをランダムに選び、サイズm×gの行列X∈Z m×gを分布χm×gに従って選ぶ。アルゴリズムGenは、B=AS+X∈Z m×gを計算し、iek=oek=Bおよびidk=odk=(S,B)とし、暗号化鍵と復号鍵の組(iek=oek,idk=odk)を出力する。
Enci:アルゴリズムEnciは、再暗号化前の暗号文を生成する。ユーザy∈{α,β}に対応する暗号文を生成する場合、アルゴリズムEnciは、PP=pp,iek=B,平文μを入力とし、m個の要素からなるベクトルe∈{−1,+1}をランダムに選び、
Figure 2015213233

を計算し、c=(U,C)∈Z ×Z を暗号文ictとして出力する。
Deci:アルゴリズムDeciは、再暗号化前の暗号文を復号する。ユーザy∈{α,β}に対応する暗号文を復号する場合、アルゴリズムDeciは、PP=pp,idk=(S,B),暗号文ict=c=(U,C)を入力とし、d=C−U mod qを計算し、
Figure 2015213233

を計算し、平文μ’∈Z を出力する。
Enco:アルゴリズムEncoは、再暗号化後の暗号文を生成する。本実施例のアルゴリズムEncoはアルゴリズムEnciと同じである。
Deco:アルゴリズムDecoは、再暗号化後の暗号文を復号する。本実施例のアルゴリズムDecoは、アルゴリズムDeciと同じである。
RekeyGen:アルゴリズムRekeyGenは、PP=pp,idkα=(Sα,Bα)(第1復号鍵),oekβ=Bβ(第2暗号化鍵)を入力とし、サイズnδ×mの行列Y∈{−1,+1}nδ×mをランダムに選び、Mα→β=Y[A|Bβ]+[O|−P2(Sα)]∈Z nδ×(n+g)を計算し、基本変換鍵rkα→β=Mα→β∈Z nδ×(n+g)を得る。アルゴリズムRekeyGenは、サイズm×mの行列Y’∈{−1,+1}m×mをランダムに選び、[Tβ|Nβ]=Y’[A|Bβ]∈Z m×(n+g)を計算し、ランダム化鍵(rppβ,rekβ)=(Tβ,Nβ)∈Z m×n×Z m×gを得る。アルゴリズムRekeyGenは、RKα→β=(rkα→β,rppβ,rekβ)を変換鍵として出力する。
ReEnc:アルゴリズムReEncは、PP=pp,RKα→β=(rkα→β=Mα→β,rppβ,rekβ),ictα=cα=(Uα,Cα)(第1暗号文)を入力とし、以下を計算する。
1)U’|C’=BD(Uα)Mα→β∈Z n+gを得、(Uβ,Cβ)=(U’,C’+Cα)を得、暗号文c’=(Uβ,Cβ)=(U’,C’+Cα)∈Z ×Z を得る。
2)rppβ=Tβ,rekβ=Nβ,平文とする零元を入力とし、m個の要素からなるベクトルeβ∈{−1,+1}をランダムに選び、暗号文c’’=(eββ,eββ)を得る。
3)octβ=(U’,C’+Cα)+(eββ,eββ)=(U’+eββ,C’+Cα+eββ)を変換済暗号文として出力する。
実施例2は実施例1の変形例である。本実施例で特記しない限り、記号の定義は実施例1と同じである。
<確定的アルゴリズムBD,P2の定義>
実施例1と同じである。
<再変換可能暗号方式>
本実施例の再変換可能暗号方式π=(SU,G,E,D,RKG,Switch)を説明する。
SU:共通パラメータ生成アルゴリズムSUは、κを入力にとり、行列A∈Z m×nをランダムに選び、共通パラメータpp=(κ,1,q,m,g,χ,A)を出力する(pp←SU(1κ))。
G:鍵生成アルゴリズムGは、ppを入力にとり、行列S∈Z n×gをランダムに選び、サイズm×gの行列X∈Z m×gを分布χm×gに従って選ぶ。行列Xの各要素は分布χに従う。鍵生成アルゴリズムGは、B=AS+pX∈Z m×gを計算し、ek=Bおよびdk=(S,B)とし、暗号化鍵と復号鍵の組(ek,dk)を出力する((ek,dk)←G(pp))。
E:暗号化アルゴリズムEは、pp,ek=B∈Z m×g,平文μ∈Z を入力にとり、m個の要素からなるベクトルe∈{−1,+1}をランダムに選び、c=(U,C)=(eA,eB+μ)を計算し、暗号文c=(U,C)∈Z ×Z を出力する(c=E(pp,ek,μ))。
D:復号アルゴリズムDは、pp,dk=(S,B),暗号文c=(U,C)を入力にとり、d=C−US mod qを計算し、μ’=d mod pを計算し、平文μ’∈Z を出力する(μ’←D(pp,dk,c))。
RKG:変換鍵生成アルゴリズムRKGは、pp,dkα=(Sα,Bα),ekβ=Bβを入力とする。変換鍵生成アルゴリズムRKGは、サイズnδ×mの行列Y∈{−1,+1}nδ×mをランダムに選び、Mα→β←Y[A|Bβ]+[O|−P2(Sα)]∈Z nδ×(n+g)を計算し、基本変換鍵rkα→β=Mα→β∈Z nδ×(n+g)を出力する(rkα→β←RKG(pp,dkα,ekβ))。
RG:ランダム化鍵生成アルゴリズムRGは、pp,ekβ=Bβを入力にとり、サイズm×mの行列Y’∈{−1,+1}m×mをランダムに選び、[Tβ|Nβ]=Y’[A|Bβ]∈Z m×(n+g)を計算し、ランダム化鍵(rppβ,rekβ)=(Tβ,Nβ)∈Z m×n×Z m×gを出力する((rppβ,rekβ)←RG(pp,ekβ))。
Switch:変換アルゴリズムSwitchは、pp,rkα→β=Mα→β∈Z nδ×(n+g),暗号文cα=(Uα,Cα)∈Z ×Z を入力にとる。ただし、暗号文cα=(Uα,Cα)はユーザαの復号鍵dkα=(Sα,Bα)で復号可能な暗号文であり、暗号文cβはユーザβの復号鍵dkβ=(Sβ,Bβ)で復号可能な暗号文である。dkβは上述の暗号化鍵ekβ=Bβに対応する。変換アルゴリズムSwitchは、ベクトルUα∈Z を入力としたアルゴリズムBDを実行してベクトルBD(Uα)∈Z nδを得、U’|C’←BD(Uα)Mα→β∈Z n+gとする。ただし、U’∈Z かつC’∈Z であり、U’の後にC’を結合したベクトルがBD(Uα)Mα→βとなる。変換アルゴリズムSwitchは、さらに(Uβ,Cβ)=(U’,C’+Cα)を計算し、暗号文cβ=(Uβ,Cβ)∈Z ×Z を出力する(cβ←Switch(pp,rkα→β,cα))。
<プロキシ再暗号化方式>
上記の再変換可能暗号方式πの場合、プロキシ再暗号化方式Πは以下のようになる。
Setup:アルゴリズムSetupは、κを入力としてpp←SU(1κ)を計算し、PP=pp=(κ,1,q,m,g,χ,A)を出力する。
Gen:アルゴリズムGen(ただし、y∈{α,β})は、ppを入力にとり、行列S∈Z n×gをランダムに選び、サイズm×gの行列X∈Z m×gを分布χm×gに従って選ぶ。アルゴリズムGenは、B=AS+pX∈Z m×gを計算し、iek=oek=Bおよびidk=odk=(S,B)とし、暗号化鍵と復号鍵の組(iek=oek,idk=odk)を出力する。
Enci:アルゴリズムEnciは、再暗号化前の暗号文を生成する。ユーザy∈{α,β}に対応する暗号文を生成する場合、アルゴリズムEnciは、PP=pp,iek=B,平文μを入力とし、m個の要素からなるベクトルe∈{−1,+1}をランダムに選び、c=(U,C)=(eA,e+μ)を計算し、c=(U,C)∈Z ×Z を暗号文ictとして出力する。
Deci:アルゴリズムDeciは、再暗号化前の暗号文を復号する。ユーザy∈{α,β}に対応する暗号文を復号する場合、アルゴリズムDeciは、PP=pp,idk=(S,B),暗号文ict=c=(U,C)を入力とし、d=C−U mod qを計算し、μ’=d mod pを計算し、平文μ’∈Z を出力する。
Enco:アルゴリズムEncoは、再暗号化後の暗号文を生成する。本実施例のアルゴリズムEncoはアルゴリズムEnciと同じである。
Deco:アルゴリズムDecoは、再暗号化後の暗号文を復号する。本実施例のアルゴリズムDecoは、アルゴリズムDeciと同じである。
RekeyGen:実施例1と同じである。
ReEnc:実施例1と同じである。
実施例3も実施例1の変形例である。本実施例で特記しない限り、記号の定義は実施例1と同じである。
<確定的アルゴリズムBD,P2の定義>
実施例1と同じである。
<再変換可能暗号方式>
本実施例の再変換可能暗号方式π=(SU,G,E,D,RKG,Switch)を説明する。
SU:共通パラメータ生成アルゴリズムSUは、κを入力にとり、行列A∈Z n×nをランダムに選び、共通パラメータpp=(κ,1,q,g,χ,A)を出力する(pp←SU(1κ))。
G:鍵生成アルゴリズムGは、ppを入力にとり、サイズn×gの行列S∈Z n×gを分布χn×gに従って選び、サイズn×gの行列X∈Z n×gを分布χn×gに従って選ぶ。鍵生成アルゴリズムGは、B=AS+X∈Z n×gを計算し、ek=Bおよびdk=(S,B)とし、暗号化鍵と復号鍵の組(ek,dk)を出力する((ek,dk)←G(pp))。
E:暗号化アルゴリズムEは、pp,ek=B∈Z n×g,平文μ∈Z を入力にとり、n個の要素からなるベクトルe,e∈Z およびg個の要素からなるベクトルe∈Z の各要素を分布χに従って選び、
Figure 2015213233



を計算し、暗号文c=(U,C)∈Z ×Z を出力する(c=E(pp,ek,μ))。
D:復号アルゴリズムDは、pp,dk=(S,B),暗号文c=(U,C)を入力にとり、d=C−US mod qを計算し、
Figure 2015213233

を計算し、平文μ’∈Z を出力する(μ’←D(pp,dk,c))。
RKG:変換鍵生成アルゴリズムRKGは、pp,dkα=(Sα,Bα),ekβ=Bβを入力とする。変換鍵生成アルゴリズムRKGは、サイズnδ×nの行列Y,Y∈Z nδ×nおよびサイズサイズnδ×gの行列Y∈Z nδ×gの各要素を分布χに従って選び、Mα→β=Y[A|Bβ]+[Y|Y]+[O|−P2(Sα)]∈Z nδ×(n+g)を計算し、基本変換鍵rkα→β=Mα→β∈Z nδ×(n+g)を出力する(rkα→β←RKG(pp,dkα,ekβ))。
RG:ランダム化鍵生成アルゴリズムRGは、pp,ekβ=Bβを入力にとり、サイズn×nの行列Y’,Y’∈Z n×nおよびサイズn×gの行列Y’∈Z n×gの各要素を分布χに従って選び、[Tβ|Nβ]=Y’[A|Bβ]+[Y’|Y’]∈Z n×(n+g)を計算し、ランダム化鍵(rppβ,rekβ)=(Tβ,Nβ)∈Z n×n×Z n×gを出力する((rppβ,rekβ)←RG(pp,ekβ))。
Switch:変換アルゴリズムSwitchは、pp,rkα→β=Mα→β∈Z nδ×(n+g),暗号文cα=(Uα,Cα)∈Z ×Z を入力にとる。ただし、暗号文cα=(Uα,Cα)はユーザαの復号鍵dkα=(Sα,Bα)で復号可能な暗号文であり、暗号文cβはユーザβの復号鍵dkβ=(Sβ,Bβ)で復号可能な暗号文である。dkβは上述の暗号化鍵ekβ=Bβに対応する。変換アルゴリズムSwitchは、ベクトルUα∈Z を入力としたアルゴリズムBDを実行してベクトルBD(Uα)∈Z nδを得、U’|C’=BD(Uα)Mα→β∈Z n+gとする。ただし、U’∈Z かつC’∈Z であり、U’の後にC’を結合したベクトルがBD(Uα)Mα→βとなる。変換アルゴリズムSwitchは、さらに(Uβ,Cβ)=(U’,C’+Cα)を計算し、暗号文cβ=(Uβ,Cβ)∈Z ×Z を出力する(cβ←Switch(pp,rkα→β,cα))。
<プロキシ再暗号化方式>
上記の再変換可能暗号方式πの場合、プロキシ再暗号化方式Πは以下のようになる。
Setup:アルゴリズムSetupは、κを入力としてpp←SU(1κ)を計算し、PP=pp=(κ,1,q,g,χ,A)を出力する。
Gen:アルゴリズムGen(ただし、y∈{α,β})は、ppを入力にとり、サイズn×gの行列S∈Z n×gを分布χn×gに従って選び、サイズn×gの行列X∈Z n×gを分布χn×gに従って選ぶ。アルゴリズムGenは、B=AS+X∈Z n×gを計算し、iek=oek=Bおよびidk=odk=(S,B)とし、暗号化鍵と復号鍵の組(iek=oek,idk=odk)を出力する。
Enci:アルゴリズムEnciは、再暗号化前の暗号文を生成する。ユーザy∈{α,β}に対応する暗号文を生成する場合、アルゴリズムEnciは、PP=pp,iek=B,平文μを入力とし、n個の要素からなるベクトル∈Z およびg個の要素からなるベクトル∈Z の各要素を分布χに従って選び、
Figure 2015213233

を計算し、c=(U,C)∈Z ×Z を暗号文ictとして出力する。
Deci:アルゴリズムDeciは、再暗号化前の暗号文を復号する。ユーザy∈{α,β}に対応する暗号文を復号する場合、アルゴリズムDeciは、PP=pp,idk=(S,B),暗号文ict=c=(U,C)を入力とし、d=C−U mod qを計算し、
Figure 2015213233

を計算し、平文μ’∈Z を出力する。
Enco:アルゴリズムEncoは、再暗号化後の暗号文を生成する。本実施例のアルゴリズムEncoはアルゴリズムEnciと同じである。
Deco:アルゴリズムDecoは、再暗号化後の暗号文を復号する。本実施例のアルゴリズムDecoは、アルゴリズムDeciと同じである。
RekeyGen:アルゴリズムRekeyGenは、PP=pp,idkα=(Sα,Bα)(第1復号鍵),oekβ=Bβ(第2暗号化鍵)を入力とし、サイズnδ×nの行列Y,Y∈Z nδ×nおよびサイズサイズnδ×gの行列Y∈Z nδ×gの各要素を分布χに従って選び、Mα→β=Y[A|Bβ]+[Y|Y]+[O|−P2(Sα)]∈Z nδ×(n+g)を計算し、基本変換鍵rkα→β=Mα→β∈Z nδ×(n+g)を得る。アルゴリズムRekeyGenは、サイズn×nの行列Y’,Y’∈Z n×nおよびサイズn×gの行列Y’∈Z n×gの各要素を分布χに従って選び、[Tβ|Nβ]=Y’[A|Bβ]+[Y’|Y’]∈Z n×(n+g)を計算し、ランダム化鍵(rppβ,rekβ)=(Tβ,Nβ)∈Z n×n×Z n×gを得る。アルゴリズムRekeyGenは、RKα→β=(rkα→β,rppβ,rekβ)を変換鍵として出力する。
ReEnc:アルゴリズムReEncは、PP=pp,RKα→β=(rkα→β=Mα→β,rppβ,rekβ),ictα=cα=(Uα,Cα)(第1暗号文)を入力とし、以下を計算する。
1)U’|C’=BD(Uα)Mα→β∈Z n+gを得、(Uβ,Cβ)=(U’,C’+Cα)を得、暗号文c’=(Uβ,Cβ)=(U’,C’+Cα)∈Z ×Z を得る。
2)rppβ=Tβ,rekβ=Nβ,平文とする零元を入力とし、n個の要素からなるベクトルe,e∈Z およびg個の要素からなるベクトルe∈Z の各要素を分布χに従って選び、c’’=(eβ+e,eβ+e)を得る。
3)octβ=(U’,C’+Cα)+(eβ+e,eβ+e)=(U’+eβ+e,C’+Cα+eβ+e)を変換済暗号文として出力する。
実施例4は実施例3の変形例である。本実施例で特記しない限り、記号の定義は実施例1と同じである。
<確定的アルゴリズムBD,P2の定義>
実施例1と同じである。
<再変換可能暗号方式>
本実施例の再変換可能暗号方式π=(SU,G,E,D,RKG,Switch)を説明する。
SU:共通パラメータ生成アルゴリズムSUは、κを入力にとり、行列A∈Z n×nをランダムに選び、共通パラメータpp=(κ,1,q,g,χ,A)を出力する(pp←SU(1κ))。
G:鍵生成アルゴリズムGは、ppを入力にとり、サイズn×gの行列S∈Z n×gを分布χn×gに従って選び、行列S∈Z n×gを分布χn×gに従って選ぶ。鍵生成アルゴリズムGは、B=AS+pX∈Z n×gを計算し、ek=Bおよびdk=(S,B)とし、暗号化鍵と復号鍵の組(ek,dk)を出力する((ek,dk)←G(pp))。
E:暗号化アルゴリズムEは、pp,ek=B∈Z n×g,平文μ∈Z を入力にとり、n個の要素からなるベクトルe,e∈Z およびg個の要素からなるベクトルe∈Z の各要素を分布χに従って選び、c=(U,C)=(eA+pe,eB+e+μ)を計算し、暗号文c=(U,C)∈Z ×Z を出力する(c=E(pp,ek,μ))。
D:復号アルゴリズムDは、pp,dk=(S,B),暗号文c=(U,C)を入力にとり、d=C−US mod qを計算し、μ’=d mod pを計算し、平文μ’∈Z を出力する(μ’←D(pp,dk,c))。
RKG:変換鍵生成アルゴリズムRKGは、pp,dkα=(Sα,Bα),ekβ=Bβを入力とする。変換鍵生成アルゴリズムRKGは、サイズnδ×nの行列Y,Y∈Z nδ×nおよびサイズサイズnδ×gの行列Y∈Z nδ×gの各要素を分布χに従って選び、Mα→β=Y[A|Bβ]+p[Y|Y]+[O|−P2(Sα)]∈Z nδ×(n+g)を計算し、基本変換鍵rkα→β=Mα→β∈Z nδ×(n+g)を出力する(rkα→β←RKG(pp,dkα,ekβ))。
RG:ランダム化鍵生成アルゴリズムRGは、pp,ekβ=Bβを入力にとり、サイズn×nの行列Y’,Y’∈Z n×nおよびサイズn×gの行列Y’∈Z n×gの各要素を分布χに従って選び、[Tβ|Nβ]=Y’[A|Bβ]+p[Y’|Y’]∈Z n×(n+g)を計算し、ランダム化鍵(rppβ,rekβ)=(Tβ,Nβ)∈Z n×n×Z n×gを出力する((rppβ,rekβ)←RG(pp,ekβ))。
Switch:変換アルゴリズムSwitchは、pp,rkα→β=Mα→β∈Z nδ×(n+g),暗号文cα=(Uα,Cα)∈Z ×Z を入力にとる。ただし、暗号文cα=(Uα,Cα)はユーザαの復号鍵dkα=(Sα,Bα)で復号可能な暗号文であり、暗号文cβはユーザβの復号鍵dkβ=(Sβ,Bβ)で復号可能な暗号文である。dkβは上述の暗号化鍵ekβ=Bβに対応する。変換アルゴリズムSwitchは、ベクトルUα∈Z を入力としたアルゴリズムBDを実行してベクトルBD(Uα)∈Z nδを得、U’|C’=BD(Uα)Mα→β∈Z n+gとする。変換アルゴリズムSwitchは、さらに(Uβ,Cβ)=(U’,C’+Cα)を計算し、暗号文cβ=(Uβ,Cβ)∈Z ×Z を出力する(cβ←Switch(pp,rkα→β,cα))。
<プロキシ再暗号化方式>
上記の再変換可能暗号方式πの場合、プロキシ再暗号化方式Πは以下のようになる。
Setup:アルゴリズムSetupは、κを入力としてpp←SU(1κ)を計算し、PP=pp=(κ,1,q,g,χ,A)を出力する。
Gen:アルゴリズムGen(ただし、y∈{α,β})は、ppを入力にとり、サイズn×gの行列S∈Z n×gを分布χn×gに従って選び、サイズn×gの行列X∈Z n×gを分布χn×gに従って選ぶ。アルゴリズムGenは、B=AS+pX∈Z n×gを計算し、iek=oek=Bおよびidk=odk=(S,B)とし、暗号化鍵と復号鍵の組(iek=oek,idk=odk)を出力する。
Enci:アルゴリズムEnciは、再暗号化前の暗号文を生成する。ユーザy∈{α,β}に対応する暗号文を生成する場合、アルゴリズムEnciは、PP=pp,iek=B,平文μを入力とし、n個の要素からなるベクトル∈Z およびg個の要素からなるベクトル∈Z の各要素を分布χに従って選び、c=(U,C)=(A+p+μ)を計算し、c=(U,C)∈Z ×Z を暗号文ictとして出力する。
Deci:アルゴリズムDeciは、再暗号化前の暗号文を復号する。ユーザy∈{α,β}に対応する暗号文を復号する場合、アルゴリズムDeciは、PP=pp,idk=(S,B),暗号文ict=c=(U,C)を入力とし、d=C−U mod qを計算し、μ’=d mod pを計算し、平文μ’∈Z を出力する。
Enco:アルゴリズムEncoは、再暗号化後の暗号文を生成する。本実施例のアルゴリズムEncoはアルゴリズムEnciと同じである。
Deco:アルゴリズムDecoは、再暗号化後の暗号文を復号する。本実施例のアルゴリズムDecoは、アルゴリズムDeciと同じである。
RekeyGen:アルゴリズムRekeyGenは、PP=pp,idkα=(Sα,Bα)(第1復号鍵),oekβ=Bβ(第2暗号化鍵)を入力とし、サイズnδ×nの行列Y,Y∈Z nδ×nおよびサイズサイズnδ×gの行列Y∈Z nδ×gの各要素を分布χに従って選び、Mα→β=Y[A|Bβ]+p[Y|Y]+[O|−P2(Sα)]∈Z nδ×(n+g)を計算し、基本変換鍵rkα→β=Mα→β∈Z nδ×(n+g)を得る。アルゴリズムRekeyGenは、サイズn×nの行列Y’,Y’∈Z n×nおよびサイズn×gの行列Y’∈Z n×gの各要素を分布χに従って選び、[Tβ|Nβ]=Y’[A|Bβ]+p[Y’|Y’]∈Z n×(n+g)を計算し、ランダム化鍵(rppβ,rekβ)=(Tβ,Nβ)∈Z n×n×Z n×gを得る。アルゴリズムRekeyGenは、RKα→β=(rkα→β,rppβ,rekβ)を変換鍵として出力する。
ReEnc:アルゴリズムReEncは、PP=pp,RKα→β=(rkα→β=Mα→β,rppβ,rekβ),ictα=cα=(Uα,Cα)(第1暗号文)を入力とし、以下を計算する。
1)U’|C’=BD(Uα)Mα→β∈Z n+gを得、(Uβ,Cβ)=(U’,C’+Cα)を得、暗号文c’=(Uβ,Cβ)=(U’,C’+Cα)∈Z ×Z を得る。
2)rppβ=Tβ,rekβ=Nβ,平文とする零元を入力とし、n個の要素からなるベクトルe,e∈Z およびg個の要素からなるベクトルe∈Z の各要素を分布χに従って選び、c’’=(eβ+pe,eβ+e)を得る。
3)octβ=(U’,C’+Cα)+(eβ+pe,eβ+e)=(U’+eβ+pe,C’+Cα+eβ+e)を変換済暗号文として出力する。
実施例5では、実施例1と同様な構成を多項式環上で実現する。
<確定的アルゴリズムBD,P2の定義>
参考文献1に記載された確定的アルゴリズムBD,P2を以下のように定義する。
k(κ)を整数関数とし、n(κ)=2k(κ)とする。f(x)=x+1とする。ただし、nは1以上の整数である。q(κ)を整数関数とし、q=q(κ)を素数とする。環R=Z[x]/(f(x))とし、R=R/qRとする。1以上の整数p,δについてpδ−1≦q<pδを満たすとする。
BD:アルゴリズムBDは、x∈Rを入力にとり、k=1,・・・,δについて、u∈R
Figure 2015213233

を満たすように計算し、(u,・・・,uδ)∈R δを出力する。(u,・・・,uδ)∈R δは(u,・・・,uδ)がδ個の環Rの元からなるとを意味する。
P2:アルゴリズムP2は、s∈Rを入力にとり、
Figure 2015213233

を出力する。これらのアルゴリズムの定義より、任意のx,s∈Rについて、BD(x)P2(s)=xs∈Rを満たす。
<再変換可能暗号方式>
本実施例の再変換可能暗号方式π=(SU,G,E,D,RKG,Switch)を説明する。SU,G,E,Dは参考文献1や参考文献2(Vadim Lyubashevsky, Chris Peikert, and Oded Regev, On ideal lattices and learning with errors over rings, in Henri Gilbert, editor, EUROCRYPT 2010, volume 6110 of LNCS, pages 1-23, Springer, Heidelberg, 2010.)に基づいている。Switchは参考文献1に基づいている。
SU:共通パラメータ生成アルゴリズムSUは、κを入力にとり、行列A∈R m×1をランダムに選び、共通パラメータpp=(κ,1,q,m,g,χ,A)を出力する(pp←SU(1κ))。ただし、n,m,gは1以上の整数である。分布χおよび天井関数の定義は実施例1と同じである。
G:鍵生成アルゴリズムGは、ppを入力にとり、s∈Rをランダムに選び、サイズm×1の行列X∈R m×1を分布χm×1に従って選ぶ。すなわち、行列Xの各要素は分布χに従う。鍵生成アルゴリズムGは、B=As+X∈R m×1を計算し、ek=Bおよびdk=(s,B)とし、暗号化鍵と復号鍵の組(ek,dk)を出力する((ek,dk)←G(pp))。
E:暗号化アルゴリズムEは、pp,ek=B∈R m×1,平文μ∈Rを入力にとり、m個の要素からなるe∈R をランダムに選び、
Figure 2015213233

を計算し、暗号文c=(U,C)∈R×Rを出力する(c=E(pp,ek,μ))。
D:復号アルゴリズムDは、pp,dk=(s,B),暗号文c=(U,C)を入力にとり、d=C−Us mod qを計算し、
Figure 2015213233

を計算し、平文μ’∈Rを出力する(μ’←D(pp,dk,c))。
RKG:変換鍵生成アルゴリズムRKGは、pp,dkα=(sα,Bα),ekβ=Bβを入力とする。ただし、dkα=(sα,Bα)はユーザαに対して得られた復号鍵であり、ekβ=Bβはユーザβに対して得られた暗号化鍵である。何れの鍵も鍵生成アルゴリズムGによって得られたものである。変換鍵生成アルゴリズムRKGは、サイズδ×mの行列Y∈R δ×mをランダムに選び、Mα→β=Y[A|Bβ]+[O|−P2(sα)]∈R δ×2を計算し、基本変換鍵rkα→β=Mα→β∈R δ×2を出力する(rkα→β←RKG(pp,dkα,ekβ))。ただし、行列A∈R m×1および行列Bβ∈R m×1に対する[A|Bβ]∈R m×2は、行列Aの1個の列の後に行列Bβの1個の列を連結したサイズm×2の行列である。また、Oはδ個の零要素からなる列O∈R δであり、すべての要素がRの0からなる。
RG:ランダム化鍵生成アルゴリズムRGは、pp,ekβ=Bβを入力にとり、サイズm×mの行列Y’∈R m×mをランダムに選び、[Tβ|Nβ]=Y’[A|Bβ]∈R m×2を計算し、ランダム化鍵(rppβ,rekβ)=(Tβ,Nβ)∈R m×1×R m×1を出力する((rppβ,rekβ)←RG(pp,ekβ))。
Switch:変換アルゴリズムSwitchは、pp,rkα→β=Mα→β∈R δ×2,暗号文cα=(Uα,Cα)∈R×Rを入力にとる。ただし、暗号文cα=(Uα,Cα)はユーザαの復号鍵dkα=(sα,Bα)で復号可能な暗号文であり、暗号文cβはユーザβの復号鍵dkβ=(sβ,Bβ)で復号可能な暗号文である。dkβは上述の暗号化鍵ekβ=Bβに対応する。変換アルゴリズムSwitchは、Uα∈Rを入力としたアルゴリズムBDを実行してBD(Uα)∈R δを得、(U’,C’)=BD(Uα)Mα→β∈R×Rとする。変換アルゴリズムSwitchは、さらに(Uβ,Cβ)=(U’,C’+Cα)を計算し、暗号文cβ=(Uβ,Cβ)∈R×Rを出力する(cβ←Switch(pp,rkα→β,cα))。
<プロキシ再暗号化方式>
上記の再変換可能暗号方式πの場合、プロキシ再暗号化方式Πは以下のようになる。
Setup:アルゴリズムSetupは、κを入力としてpp←SU(1κ)を計算し、PP=pp=(κ,1,q,m,g,χ,A)を出力する。
Gen:アルゴリズムGen(ただし、y∈{α,β})は、ppを入力にとり、s∈Rをランダムに選び、サイズm×1の行列X∈R m×1を分布χm×1に従って選ぶ。アルゴリズムGenは、B=As+X∈R m×1を計算し、iek=oek=Bおよびidk=odk=(s,B)とし、暗号化鍵と復号鍵の組(iek=oek,idk=odk)を出力する。
Enci:アルゴリズムEnciは、再暗号化前の暗号文を生成する。ユーザy∈{α,β}に対応する暗号文を生成する場合、アルゴリズムEnciは、PP=pp,iek=B,平文μ∈Rを入力とし、m個の要素からなるe∈R をランダムに選び、
Figure 2015213233

を計算し、c=(U,C)∈R×Rを暗号文ictとして出力する。
Deci:アルゴリズムDeciは、再暗号化前の暗号文を復号する。ユーザy∈{α,β}に対応する暗号文を復号する場合、アルゴリズムDeciは、PP=pp,idk=(s,B),暗号文ict=c=(U,C)を入力とし、d=C−U mod qを計算し、
Figure 2015213233

を計算し、平文μ’∈Rを出力する。
Enco:アルゴリズムEncoは、再暗号化後の暗号文を生成する。本実施例のアルゴリズムEncoはアルゴリズムEnciと同じである。
Deco:アルゴリズムDecoは、再暗号化後の暗号文を復号する。本実施例のアルゴリズムDecoは、アルゴリズムDeciと同じである。
RekeyGen:アルゴリズムRekeyGenは、PP=pp,idkα=(sα,Bα)(第1復号鍵),oekβ=Bβ(第2暗号化鍵)を入力とし、サイズδ×mの行列Y∈R δ×mをランダムに選び、Mα→β=Y[A|Bβ]+[O|−P2(sα)]∈R δ×2を計算し、基本変換鍵rkα→β=Mα→β∈R δ×2を得る。アルゴリズムRekeyGenは、サイズm×mの行列Y’∈R m×mをランダムに選び、(Tβ,Nβ)=Y’[A|Bβ]∈R m×1×R m×1を計算し、ランダム化鍵(rppβ,rekβ)=(Tβ,Nβ)∈R m×1×R m×1を得る。アルゴリズムRekeyGenは、RKα→β=(rkα→β,rppβ,rekβ)を変換鍵として出力する。
ReEnc:アルゴリズムReEncは、PP=pp,RKα→β=(rkα→β=Mα→β,rppβ,rekβ),ictα=cα=(Uα,Cα)(第1暗号文)を入力とし、以下を計算する。
1)(U’,C’)=BD(Uα)Mα→β∈R×Rを得、(Uβ,Cβ)=(U’,C’+Cα)を得、暗号文c’=(Uβ,Cβ)=(U’,C’+Cα)∈R×Rを得る。
2)rppβ=Tβ,rekβ=Nβ,平文とする零元を入力とし、m個の要素からなるeβ∈R をランダムに選び、暗号文c’’=(eββ,eββ)∈R×Rを得る。
3)octβ=(U’,C’+Cα)+(eββ,eββ)=(U’+eββ,C’+Cα+eββ)∈R×Rを変換済暗号文として出力する。
実施例6は実施例5の変形例である。本実施例で特記しない限り、記号の定義は実施例5と同じである。
<確定的アルゴリズムBD,P2の定義>
実施例5と同じである。
<再変換可能暗号方式>
本実施例の再変換可能暗号方式π=(SU,G,E,D,RKG,Switch)を説明する。
SU:共通パラメータ生成アルゴリズムSUは、κを入力にとり、行列A∈R m×1をランダムに選び、共通パラメータpp=(κ,1,q,m,g,χ,A)を出力する(pp←SU(1κ))。
G:鍵生成アルゴリズムGは、ppを入力にとり、s∈Rをランダムに選び、サイズm×1の行列X∈R m×1を分布χm×1に従って選ぶ。鍵生成アルゴリズムGは、B=As+pX∈R m×1を計算し、ek=Bおよびdk=(s,B)とし、暗号化鍵と復号鍵の組(ek,dk)を出力する((ek,dk)←G(pp))。
E:暗号化アルゴリズムEは、pp,ek=B∈R m×1,平文μ∈Rを入力にとり、m個の要素からなるe∈R をランダムに選び、c=(U,C)=(eA,eB+μ)を計算し、暗号文c=(U,C)∈R×Rを出力する(c=E(pp,ek,μ))。
D:復号アルゴリズムDは、pp,dk=(s,B),暗号文c=(U,C)を入力にとり、d=C−Us mod qを計算し、μ’=d mod pを計算し、平文μ’∈Rを出力する(μ’←D(pp,dk,c))。
RKG:変換鍵生成アルゴリズムRKGは、pp,dkα=(sα,Bα),ekβ=Bβを入力とする。変換鍵生成アルゴリズムRKGは、サイズδ×mの行列Y∈R δ×mをランダムに選び、Mα→β=Y[A|Bβ]+[O|−P2(sα)]∈R δ×2を計算し、基本変換鍵rkα→β=Mα→β∈R δ×2を出力する(rkα→β←RKG(pp,dkα,ekβ))。
RG:ランダム化鍵生成アルゴリズムRGは、pp,ekβ=Bβを入力にとり、サイズm×mの行列Y’∈R m×mをランダムに選び、[Tβ|Nβ]=Y’[A|Bβ]∈R m×2を計算し、ランダム化鍵(rppβ,rekβ)=(Tβ,Nβ)∈R m×1×R m×1を出力する((rppβ,rekβ)←RG(pp,ekβ))。
Switch:変換アルゴリズムSwitchは、pp,rkα→β=Mα→β∈R δ×2,暗号文cα=(Uα,Cα)∈R×Rを入力にとる。ただし、暗号文cα=(Uα,Cα)はユーザαの復号鍵dkα=(sα,Bα)で復号可能な暗号文であり、暗号文cβはユーザβの復号鍵dkβ=(sβ,Bβ)で復号可能な暗号文である。dkβは上述の暗号化鍵ekβ=Bβに対応する。変換アルゴリズムSwitchは、Uα∈Rを入力としたアルゴリズムBDを実行してBD(Uα)∈R δを得、(U’,C’)=BD(Uα)Mα→β∈R×Rとする。変換アルゴリズムSwitchは、さらに(Uβ,Cβ)=(U’,C’+Cα)を計算し、暗号文cβ=(Uβ,Cβ)∈R×Rを出力する(cβ←Switch(pp,rkα→β,cα))。
<プロキシ再暗号化方式>
上記の再変換可能暗号方式πの場合、プロキシ再暗号化方式Πは以下のようになる。
Setup:アルゴリズムSetupは、κを入力としてpp←SU(1κ)を計算し、PP=pp=(κ,1,q,m,g,χ,A)を出力する。
Gen:アルゴリズムGen(ただし、y∈{α,β})は、ppを入力にとり、s∈Rをランダムに選び、サイズm×1の行列X∈R m×1を分布χm×1に従って選ぶ。アルゴリズムGenは、B=As+pX∈R m×1を計算し、iek=oek=Bおよびidk=odk=(s,B)とし、暗号化鍵と復号鍵の組(iek=oek,idk=odk)を出力する。
Enci:アルゴリズムEnciは、再暗号化前の暗号文を生成する。ユーザy∈{α,β}に対応する暗号文を生成する場合、アルゴリズムEnciは、PP=pp,iek=B,平文μを入力とし、m個の要素からなるe∈R をランダムに選び、c=(U,C)=(eA,e+μ)を計算し、c=(U,C)∈R×Rを暗号文ictとして出力する。
Deci:アルゴリズムDeciは、再暗号化前の暗号文を復号する。ユーザy∈{α,β}に対応する暗号文を復号する場合、アルゴリズムDeciは、PP=pp,idk=(s,B),暗号文ict=c=(U,C)を入力とし、d=C−U mod qを計算し、μ’=d mod pを計算し、平文μ’∈Rを出力する。
Enco:アルゴリズムEncoは、再暗号化後の暗号文を生成する。本実施例のアルゴリズムEncoはアルゴリズムEnciと同じである。
Deco:アルゴリズムDecoは、再暗号化後の暗号文を復号する。本実施例のアルゴリズムDecoは、アルゴリズムDeciと同じである。
RekeyGen:実施例5と同じである。
ReEnc:実施例5と同じである。
実施例7のSU,G,E,Dは、参考文献2に基づき、Switchは参考文献3(Zvika Brakerski and Vinod Vaikuntanathan, Fully homomorphic encryption from ring-LWE and security for key dependent messages, in Phillip Rogaway, editor, CRYPTO 2011, volume 6841 of LNCS, pages 505-524, Springer, Heidelberg, 2011.)に基づく。本実施例で特記しない限り、記号の定義は実施例5と同じである。
<確定的アルゴリズムBD,P2の定義>
実施例5と同じである。
<再変換可能暗号方式>
SU:共通パラメータ生成アルゴリズムSUは、κを入力にとり、a∈Rをランダムに選び、共通パラメータpp=(κ,n,q,χ,a)を出力する(pp←SU(1κ))。
G:鍵生成アルゴリズムGは、ppを入力にとり、s,x∈Rを分布χに従って選ぶ。鍵生成アルゴリズムGは、b=as+x∈Rを計算し、ek=bおよびdk=(s,b)とし、暗号化鍵と復号鍵の組(ek,dk)を出力する((ek,dk)←G(pp))。
E:暗号化アルゴリズムEは、pp,ek=b∈R,平文μ∈Rを入力にとり、e,e,e∈Rを分布χに従って選び、
Figure 2015213233

を計算し、暗号文c=(U,C)∈R×Rを出力する(c=E(pp,ek,μ))。
D:復号アルゴリズムDは、pp,dk=(s,b),暗号文c=(U,C)を入力にとり、d=C−Us mod qを計算し、
Figure 2015213233

を計算し、平文μ’∈Rを出力する(μ’←D(pp,dk,c))。
RKG:変換鍵生成アルゴリズムRKGは、pp,dkα=(sα,bα),ekβ=bβを入力とする。変換鍵生成アルゴリズムRKGは、Y,Y,Y∈R 1×δを分布χ1×δに従って選び、Mα→β=Y[a|bβ]+[Y|Y]+[O|−P2(sα)]∈R 2×δを計算し、基本変換鍵rkα→β=Mα→β∈R 2×δを出力する(rkα→β←RKG(pp,dkα,ekβ))。
RG:ランダム化鍵生成アルゴリズムRGは、pp,ekβ=bβを入力にとり、Y’,Y’,Y’∈Rを分布χに従って選び、(Tβ,Nβ)=Y’[a|bβ]+[Y’|Y’]∈R を計算し、ランダム化鍵(rppβ,rekβ)=(Tβ,Nβ)∈R×Rを出力する((rppβ,rekβ)←RG(pp,ekβ))。
Switch:変換アルゴリズムSwitchは、pp,rkα→β=Mα→β∈R δ×2,暗号文cα=(Uα,Cα)∈R×Rを入力にとる。ただし、暗号文cα=(Uα,Cα)はユーザαの復号鍵dkα=(sα,bα)で復号可能な暗号文であり、暗号文cβはユーザβの復号鍵dkβ=(sβ,bβ)で復号可能な暗号文である。dkβは上述の暗号化鍵ekβ=bβに対応する。変換アルゴリズムSwitchは、Uα∈Rを入力としたアルゴリズムBDを実行してBD(Uα)∈R δを得、(U’,C’)=BD(Uα)Mα→β∈R×Rとする。変換アルゴリズムSwitchは、さらに(Uβ,Cβ)=(U’,C’+Cα)を計算し、暗号文cβ=(Uβ,Cβ)∈R×Rを出力する(cβ←Switch(pp,rkα→β,cα))。
<プロキシ再暗号化方式>
上記の再変換可能暗号方式πの場合、プロキシ再暗号化方式Πは以下のようになる。
Setup:アルゴリズムSetupは、κを入力としてpp←SU(1κ)を計算し、PP=pp=(κ,n,q,χ,a)を出力する。
Gen:アルゴリズムGen(ただし、y∈{α,β})は、ppを入力にとり、s,x∈Rを分布χに従って選ぶ。アルゴリズムGenは、b=as+x∈Rを計算し、iek=oek=bおよびidk=odk=(s,b)とし、暗号化鍵と復号鍵の組(iek=oek,idk=odk)を出力する。
Enci:アルゴリズムEnciは、再暗号化前の暗号文を生成する。ユーザy∈{α,β}に対応する暗号文を生成する場合、アルゴリズムEnciは、PP=pp,iek=b,平文μを入力とし、∈Rをランダムに選び、
Figure 2015213233

を計算し、c=(U,C)∈R×Rを暗号文ictとして出力する。
Deci:アルゴリズムDeciは、再暗号化前の暗号文を復号する。ユーザy∈{α,β}に対応する暗号文を復号する場合、アルゴリズムDeciは、PP=pp,idk=(s,b),暗号文ict=c=(U,C)を入力とし、d=C−U mod qを計算し、
Figure 2015213233

を計算し、平文μ’∈Rを出力する。
Enco:アルゴリズムEncoは、再暗号化後の暗号文を生成する。本実施例のアルゴリズムEncoはアルゴリズムEnciと同じである。
Deco:アルゴリズムDecoは、再暗号化後の暗号文を復号する。本実施例のアルゴリズムDecoは、アルゴリズムDeciと同じである。
RekeyGen:アルゴリズムRekeyGenは、PP=pp,idkα=(sα,bα)(第1復号鍵),oekβ=bβ(第2暗号化鍵)を入力とし、Y,Y,Y∈R 1×δを分布χ1×δに従って選び、Mα→β=Y[a|bβ]+[Y|Y]+[O|−P2(sα)]∈R 2×δを計算し、基本変換鍵rkα→β=Mα→β∈R 2×δを得る。アルゴリズムRekeyGenは、Y’,Y’,Y’∈Rを分布χに従って選び、(Tβ,Nβ)=Y’[a|bβ]+[Y’|Y’]∈R を計算し、ランダム化鍵(rppβ,rekβ)=(Tβ,Nβ)∈R ×R を得る。アルゴリズムRekeyGenは、RKα→β=(rkα→β,rppβ,rekβ)を変換鍵として出力する。
ReEnc:アルゴリズムReEncは、PP=pp,RKα→β=(rkα→β=Mα→β,rppβ,rekβ),ictα=cα=(Uα,Cα)(第1暗号文)を入力とし、以下を計算する。
1)(U’,C’)=BD(Uα)Mα→β∈R×Rを得、(Uβ,Cβ)=(U’,C’+Cα)を得、暗号文c’=(Uβ,Cβ)=(U’,C’+Cα)∈R×Rを得る。
2)rppβ=Tβ,rekβ=Nβ,平文とする零元を入力とし、βββ∈Rを分布χに従って選び、暗号文c’’=(Tββ,Nβ ββ)∈R×Rを得る。
3)octβ=(U’,C’+Cα)+(Tββ,Nβ ββ)=(U’+ Tββ,C’+Cα+Nβ ββ)∈R×Rを変換済暗号文として出力する。
実施例8は実施例7の変形例である。本実施例で特記しない限り、記号の定義は実施例5と同じである。
<確定的アルゴリズムBD,P2の定義>
実施例5と同じである。
<再変換可能暗号方式>
SU:共通パラメータ生成アルゴリズムSUは、κを入力にとり、a∈Rをランダムに選び、共通パラメータpp=(κ,n,q,χ,a)を出力する(pp←SU(1κ))。
G:鍵生成アルゴリズムGは、ppを入力にとり、s,x∈Rを分布χに従って選ぶ。鍵生成アルゴリズムGは、b=as+px∈Rを計算し、ek=bおよびdk=(s,b)とし、暗号化鍵と復号鍵の組(ek,dk)を出力する((ek,dk)←G(pp))。
E:暗号化アルゴリズムEは、pp,ek=b∈R,平文μ∈Rを入力にとり、e,e,e∈Rを分布χに従って選び、
Figure 2015213233

を計算し、暗号文c=(U,C)∈R×Rを出力する(c=E(pp,ek,μ))。
D:復号アルゴリズムDは、pp,dk=(s,b),暗号文c=(U,C)を入力にとり、d=C−Us mod qを計算し、μ’=d mod pを計算し、平文μ’∈Rを出力する(μ’←D(pp,dk,c))。
RKG:変換鍵生成アルゴリズムRKGは、pp,dkα=(sα,bα),ekβ=bβを入力とする。変換鍵生成アルゴリズムRKGは、Y,Y,Y∈R 1×δを分布χ1×δに従って選び、Mα→β=Y[a|bβ]+p[Y|Y]+[O|−P2(sα)]∈R 2×δを計算し、基本変換鍵rkα→β=Mα→β∈R 2×δを出力する(rkα→β←RKG(pp,dkα,ekβ))。
RG:ランダム化鍵生成アルゴリズムRGは、pp,ekβ=bβを入力にとり、Y’,Y’,Y’∈Rを分布χに従って選び、(Tβ,Nβ)=Y’[a|bβ]+p[Y’|Y’]∈R を計算し、ランダム化鍵(rppβ,rekβ)=(Tβ,Nβ)∈R×Rを出力する((rppβ,rekβ)←RG(pp,ekβ))。
Switch:変換アルゴリズムSwitchは、pp,rkα→β=Mα→β∈R δ×2,暗号文cα=(Uα,Cα)∈R×Rを入力にとる。ただし、暗号文cα=(Uα,Cα)はユーザαの復号鍵dkα=(sα,bα)で復号可能な暗号文であり、暗号文cβはユーザβの復号鍵dkβ=(sβ,bβ)で復号可能な暗号文である。dkβは上述の暗号化鍵ekβ=bβに対応する。変換アルゴリズムSwitchは、Uα∈Rを入力としたアルゴリズムBDを実行してBD(Uα)∈R δを得、(U’,C’)=BD(Uα)Mα→β∈R×Rとする。変換アルゴリズムSwitchは、さらに(Uβ,Cβ)=(U’,C’+Cα)を計算し、暗号文cβ=(Uβ,Cβ)∈R×Rを出力する(cβ←Switch(pp,rkα→β,cα))。
<プロキシ再暗号化方式>
上記の再変換可能暗号方式πの場合、プロキシ再暗号化方式Πは以下のようになる。
Setup:アルゴリズムSetupは、κを入力としてpp←SU(1κ)を計算し、PP=pp=(κ,n,q,χ,a)を出力する。
Gen:アルゴリズムGen(ただし、y∈{α,β})は、ppを入力にとり、s,x∈Rを分布χに従って選ぶ。アルゴリズムGenは、b=as+px∈Rを計算し、iek=oek=bおよびidk=odk=(s,b)とし、暗号化鍵と復号鍵の組(iek=oek,idk=odk)を出力する。
Enci:アルゴリズムEnciは、再暗号化前の暗号文を生成する。ユーザy∈{α,β}に対応する暗号文を生成する場合、アルゴリズムEnciは、PP=pp,iek=b,平文μを入力とし、∈Rをランダムに選び、
Figure 2015213233

を計算し、c=(U,C)∈R×Rを暗号文ictとして出力する。
Deci:アルゴリズムDeciは、再暗号化前の暗号文を復号する。ユーザy∈{α,β}に対応する暗号文を復号する場合、アルゴリズムDeciは、PP=pp,idk=(s,b),暗号文ict=c=(U,C)を入力とし、d=C−U mod qを計算し、μ’=d mod pを計算し、平文μ’∈Rを出力する。
Enco:アルゴリズムEncoは、再暗号化後の暗号文を生成する。本実施例のアルゴリズムEncoはアルゴリズムEnciと同じである。
Deco:アルゴリズムDecoは、再暗号化後の暗号文を復号する。本実施例のアルゴリズムDecoは、アルゴリズムDeciと同じである。
RekeyGen:アルゴリズムRekeyGenは、PP=pp,idkα=(sα,bα)(第1復号鍵),oekβ=bβ(第2暗号化鍵)を入力とし、Y,Y,Y∈R δを分布χδに従って選び、Mα→β=Y[a|bβ]+p[Y|Y]+[O|−P2(sα)]∈R 2×δを計算し、基本変換鍵rkα→β=Mα→β∈R 2×δを得る。アルゴリズムRekeyGenは、Y’,Y’,Y’∈Rを分布χに従って選び、(Tβ,Nβ)=Y’[a|bβ]+p[Y’|Y’]∈R を計算し、ランダム化鍵(rppβ,rekβ)=(Tβ,Nβ)∈R ×R を得る。アルゴリズムRekeyGenは、RKα→β=(rkα→β,rppβ,rekβ)を変換鍵として出力する。
ReEnc:アルゴリズムReEncは、PP=pp,RKα→β=(rkα→β=Mα→β,rppβ,rekβ),ictα=cα=(Uα,Cα)(第1暗号文)を入力とし、以下を計算する。
1)(U’,C’)=BD(Uα)Mα→β∈R×Rを得、(Uβ,Cβ)=(U’,C’+Cα)を得、暗号文c’=(Uβ,Cβ)=(U’,C’+Cα)∈R×Rを得る。
2)rppβ=Tβ,rekβ=Nβ,平文とする零元を入力とし、βββ∈Rを分布χに従って選び、暗号文c’’=(Tβ+p β,Nβ ββ)∈R×Rを得る。
3)octβ=(U’,C’+Cα)+(Tβ+p β,Nβ ββ)=(U’+ Tβ+pβ,C’+Cα+Nβ ββ)∈R×Rを変換済暗号文として出力する。
実施例9のSwitchは参考文献3に基づく。本実施例で特記しない限り、記号の定義は実施例5と同じである。
<確定的アルゴリズムBD,P2の定義>
実施例5と同じである。
<再変換可能暗号方式>
SU:共通パラメータ生成アルゴリズムSUは、κを入力にとり、共通パラメータpp=(κ,n,q,χ)を出力する(pp←SU(1κ))。
G:鍵生成アルゴリズムGは、ppを入力にとり、f’,g∈Rを分布χに従って選び、f=pf’+1 mod qとする。ただし、fがRで逆元を持たない場合には、f’∈Rを選択し直して新たにfを計算する。このやり直しはfがRで逆元を持つまで行われる。鍵生成アルゴリズムGは、Rで逆元を持つfを用い、b=pgf−1 mod qを計算し、ek=bおよびdk=(f,b)とし、暗号化鍵と復号鍵の組(ek,dk)を出力する((ek,dk)←G(pp))。
E:暗号化アルゴリズムEは、pp,ek=b∈R,平文μ∈Rを入力にとり、e,e∈Rを分布χに従って選び、
Figure 2015213233

を計算し、暗号文c=C∈Rを出力する(c=E(pp,ek,μ))。
D:復号アルゴリズムDは、pp,dk=(f,b),暗号文c=Cを入力にとり、d=fC mod qを計算し、
Figure 2015213233

を計算し、平文μ’∈Rを出力する(μ’←D(pp,dk,c))。
RKG:変換鍵生成アルゴリズムRKGは、pp,dkα=(fα,bα),ekβ=bβを入力とする。変換鍵生成アルゴリズムRKGは、Y,Y∈R 1×δを分布χ1×δに従って選び、Mα→β=Yβ+Y−P2(fα)∈R 1×δを計算し、基本変換鍵rkα→β=Mα→β∈R 1×δを出力する(rkα→β←RKG(pp,dkα,ekβ))。
RG:ランダム化鍵生成アルゴリズムRGは、pp,ekβ=bβを入力にとり、Y’,Y’∈Rを分布χに従って選び、Nβ=Y’bβ+Y’を計算し、ランダム化鍵(rppβ,rekβ)=(pp,Nβ)を出力する((rppβ,rekβ)←RG(pp,ekβ))。
Switch:変換アルゴリズムSwitchは、pp,rkα→β=Mα→β∈R 1×δ,暗号文cα=Cα∈Rを入力にとる。ただし、暗号文cα=Cαはユーザαの復号鍵dkα=(fα,bα)で復号可能な暗号文であり、暗号文cβはユーザβの復号鍵dkβ=(fβ,bβ)で復号可能な暗号文である。dkβは上述の暗号化鍵ekβ=bβに対応する。変換アルゴリズムSwitchは、Cα∈Rを入力としたアルゴリズムBDを実行してBD(Cα)∈R δを得、C’=BD(Cα)Mα→β∈Rとする。変換アルゴリズムSwitchは、暗号文cβ=C’∈Rを出力する(cβ←Switch(pp,rkα→β,cα))。
<プロキシ再暗号化方式>
上記の再変換可能暗号方式πの場合、プロキシ再暗号化方式Πは以下のようになる。
Setup:アルゴリズムSetupは、κを入力としてpp←SU(1κ)を計算し、PP=pp=(κ,n,q,χ)を出力する。
Gen:アルゴリズムGen(ただし、y∈{α,β})は、ppを入力にとり、f’,g∈Rを分布χに従って選び、f=pf’+1 mod qとする。ただし、fがRで逆元を持たない場合には、f’∈Rを選択し直して新たにfを計算する。このやり直しはfがRで逆元を持つまで行われる。アルゴリズムGenは、Rで逆元を持つfを用い、b=pg −1 mod qを計算し、iek=oek=bおよびidk=odk=(f,b)とし、暗号化鍵と復号鍵の組(iek=oek,idk=odk)を出力する。
Enci:アルゴリズムEnciは、再暗号化前の暗号文を生成する。ユーザy∈{α,β}に対応する暗号文を生成する場合、アルゴリズムEnciは、PP=pp,iek=b,平文μを入力とし、∈Rを分布χに従って選び、
Figure 2015213233

を計算し、c=C∈Rを暗号文ictとして出力する。
Deci:アルゴリズムDeciは、再暗号化前の暗号文を復号する。ユーザy∈{α,β}に対応する暗号文を復号する場合、アルゴリズムDeciは、PP=pp,idk=(f,b),暗号文ict=c=Cを入力とし、d=f mod qを計算し、
Figure 2015213233

を計算し、平文μ’∈Rを出力する。
Enco:アルゴリズムEncoは、再暗号化後の暗号文を生成する。本実施例のアルゴリズムEncoはアルゴリズムEnciと同じである。
Deco:アルゴリズムDecoは、再暗号化後の暗号文を復号する。本実施例のアルゴリズムDecoは、アルゴリズムDeciと同じである。
RekeyGen:アルゴリズムRekeyGenは、PP=pp,idkα=(fα,bα)(第1復号鍵),oekβ=bβ(第2暗号化鍵)を入力とし、Y,Y∈R 1×δを分布χ1×δに従って選び、Mα→β=Yβ+Y−P2(fα)∈R 1×δを計算し、基本変換鍵rkα→β=Mα→β∈R 1×δを得る。アルゴリズムRekeyGenは、Y’,Y’∈Rを分布χに従って選び、Nβ=Y’bβ+Y’∈Rを計算し、ランダム化鍵(rppβ,rekβ)=(pp,Nβ)を得る。アルゴリズムRekeyGenは、RKα→β=(rkα→β,rppβ,rekβ)を変換鍵として出力する。
ReEnc:アルゴリズムReEncは、PP=pp,RKα→β=(rkα→β=Mα→β,rppβ,rekβ),ictα=cα=Cα(第1暗号文)を入力とし、以下を計算する。
1)C’=BD(Cα)Mα→β∈Rを得、暗号文c’=Cβ=C’∈Rとする。
2)rppβ=pp,rekβ=Nβ,平文とする零元を入力とし、ββ∈Rを分布χに従って選び、暗号文c’’=Nβ ββ∈Rを得る。
3)octβ=C’+Nβ ββ∈Rを変換済暗号文として出力する。
実施例10は実施例9の変形例である。本実施例で特記しない限り、記号の定義は実施例5と同じである。
<確定的アルゴリズムBD,P2の定義>
実施例5と同じである。
<再変換可能暗号方式>
SU:共通パラメータ生成アルゴリズムSUは、κを入力にとり、共通パラメータpp=(κ,n,q,χ)を出力する(pp←SU(1κ))。
G:鍵生成アルゴリズムGは、ppを入力にとり、f’,g∈Rを分布χに従って選び、f=pf’+1 mod qとする。ただし、fがRで逆元を持たない場合には、f’∈Rを選択し直して新たにfを計算する。このやり直しはfがRで逆元を持つまで行われる。鍵生成アルゴリズムGは、Rで逆元を持つfを用い、b=pgf−1 mod qを計算し、ek=bおよびdk=(f,b)とし、暗号化鍵と復号鍵の組(ek,dk)を出力する((ek,dk)←G(pp))。
E:暗号化アルゴリズムEは、pp,ek=b∈R,平文μ∈Rを入力にとり、e,e∈Rを分布χに従って選び、c=C=be+pe+μを計算し、暗号文c=C∈Rを出力する(c=E(pp,ek,μ))。
D:復号アルゴリズムDは、pp,dk=(f,b),暗号文c=Cを入力にとり、d=fC mod qを計算し、μ’=d mod pを計算し、平文μ’∈Rを出力する(μ’←D(pp,dk,c))。
RKG:変換鍵生成アルゴリズムRKGは、pp,dkα=(fα,bα),ekβ=bβを入力とする。変換鍵生成アルゴリズムRKGは、Y,Y∈R 1×δを分布χ1×δに従って選び、Mα→β=Yβ+pY−P2(fα)∈R 1×δを計算し、基本変換鍵rkα→β=Mα→β∈R 1×δを出力する(rkα→β←RKG(pp,dkα,ekβ))。
RG:ランダム化鍵生成アルゴリズムRGは、pp,ekβ=bβを入力にとり、Y’,Y’∈Rを分布χに従って選び、Nβ=Y’bβ+pY’を計算し、ランダム化鍵(rppβ,rekβ)=(pp,Nβ)を出力する((rppβ,rekβ)←RG(pp,ekβ))。
Switch:変換アルゴリズムSwitchは、pp,rkα→β=Mα→β∈R 1×δ,暗号文cα=Cα∈Rを入力にとる。ただし、暗号文cα=Cαはユーザαの復号鍵dkα=(fα,bα)で復号可能な暗号文であり、暗号文cβはユーザβの復号鍵dkβ=(fβ,bβ)で復号可能な暗号文である。dkβは上述の暗号化鍵ekβ=bβに対応する。変換アルゴリズムSwitchは、Cα∈Rを入力としたアルゴリズムBDを実行してBD(Cα)∈R δを得、C’=BD(Cα)Mα→β∈Rとする。変換アルゴリズムSwitchは、暗号文cβ=C’∈Rを出力する(cβ←Switch(pp,rkα→β,cα))。
<プロキシ再暗号化方式>
上記の再変換可能暗号方式πの場合、プロキシ再暗号化方式Πは以下のようになる。
Setup:アルゴリズムSetupは、κを入力としてpp←SU(1κ)を計算し、PP=pp=(κ,n,q,χ)を出力する。
Gen:アルゴリズムGen(ただし、y∈{α,β})は、ppを入力にとり、f’,g∈Rを分布χに従って選び、f=pf’+1 mod qとする。ただし、fがRで逆元を持たない場合には、f’∈Rを選択し直して新たにfを計算する。このやり直しはfがRで逆元を持つまで行われる。アルゴリズムGenは、Rで逆元を持つfを用い、b=pg −1 mod qを計算し、iek=oek=bおよびidk=odk=(f,b)とし、暗号化鍵と復号鍵の組(iek=oek,idk=odk)を出力する。
Enci:アルゴリズムEnciは、再暗号化前の暗号文を生成する。ユーザy∈{α,β}に対応する暗号文を生成する場合、アルゴリズムEnciは、PP=pp,iek=b,平文μを入力とし、∈Rを分布χに従って選び、c=C=by y+p+μ
を計算し、c=C∈Rを暗号文ictとして出力する。
Deci:アルゴリズムDeciは、再暗号化前の暗号文を復号する。ユーザy∈{α,β}に対応する暗号文を復号する場合、アルゴリズムDeciは、PP=pp,idk=(f,b),暗号文ict=c=Cを入力とし、d=f mod qを計算し、μ’=d mod pを計算し、平文μ’∈Rを出力する。
Enco:アルゴリズムEncoは、再暗号化後の暗号文を生成する。本実施例のアルゴリズムEncoはアルゴリズムEnciと同じである。
Deco:アルゴリズムDecoは、再暗号化後の暗号文を復号する。本実施例のアルゴリズムDecoは、アルゴリズムDeciと同じである。
RekeyGen:アルゴリズムRekeyGenは、PP=pp,idkα=(fα,bα)(第1復号鍵),oekβ=bβ(第2暗号化鍵)を入力とし、Y,Y∈R 1×δを分布χ1×δに従って選び、Mα→β=Yβ+pY−P2(fα)∈R 1×δを計算し、基本変換鍵rkα→β=Mα→β∈R 1×δを得る。アルゴリズムRekeyGenは、Y’,Y’∈Rを分布χに従って選び、Nβ=Y’bβ+pY’∈Rを計算し、ランダム化鍵(rppβ,rekβ)=(pp,Nβ)を得る。アルゴリズムRekeyGenは、RKα→β=(rkα→β,rppβ,rekβ)を変換鍵として出力する。
ReEnc:アルゴリズムReEncは、PP=pp,RKα→β=(rkα→β=Mα→β,rppβ,rekβ),ictα=cα=Cα(第1暗号文)を入力とし、以下を計算する。
1)C’=BD(Cα)Mα→β∈Rを得、暗号文c’=Cβ=C’∈Rとする。
2)rppβ=pp,rekβ=Nβ,平文とする零元を入力とし、ββ∈Rを分布χに従って選び、暗号文c’’=Nβ β+pβ∈Rを得る。
3)octβ=C’+Nβ β+pβ∈Rを変換済暗号文として出力する。
[変形例等]
なお、本発明は上述の実施の形態に限定されるものではない。例えば、各装置がネットワークを通じて情報をやり取りするのではなく、少なくとも一部の組の装置が可搬型記録媒体を介して情報をやり取りしてもよい。或いは、少なくとも一部の組の装置が非可搬型の記録媒体を介して情報をやり取りしてもよい。すなわち、これらの装置の一部からなる組み合わせが、同一の装置であってもよい。例えば、復号装置15がさらに鍵生成装置13として機能する装置であってもよいし、復号装置16がさらに鍵生成装置12として機能する装置であってもよい。
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。処理の実行時、このコンピュータは、自己の記録装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。
上記実施形態では、コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されたが、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。
12 鍵生成装置
125 基本変換鍵生成部
126 ランダム化鍵生成部
17 再暗号化装置
174 基本変換部
175 撹乱暗号化部

Claims (7)

  1. 第1復号鍵が第1暗号文を復号するための鍵であり、第2復号鍵が第2暗号文を復号するための鍵であり、第2暗号化鍵が前記第2復号鍵に対応する鍵であり、
    前記第1復号鍵および前記第2暗号化鍵を用い、前記第1暗号文を前記第2暗号文に変換するための基本変換鍵を得る基本変換鍵生成部と、
    前記第2暗号化鍵を用い、前記第2暗号化鍵をランダム化してランダム化鍵を得るランダム化鍵生成部と、を有し、
    前記ランダム化鍵を用いて暗号化された暗号文が前記第2復号鍵で復号可能である、鍵生成装置。
  2. 請求項1の鍵生成装置であり、
    前記第2暗号文が準同型性を持つ、鍵生成装置。
  3. 請求項1または2の鍵生成装置であり、
    前記第1暗号文および第2暗号文が格子暗号方式またはNTRU暗号方式に則った暗号文である、鍵生成装置。
  4. 基本変換鍵が第1暗号文を第2暗号文に変換するための鍵であり、第2復号鍵が前記第2暗号文を復号するための鍵であり、第2暗号化鍵が前記第2復号鍵に対応する鍵であり、ランダム化鍵が前記第2暗号化鍵をランダム化した鍵であり、前記ランダム化鍵を用いて暗号化された暗号文が前記第2復号鍵で復号可能であり、前記第2暗号文が準同型性を持ち、
    前記基本変換鍵を用いて前記第1暗号文を前記第2暗号文に変換する基本変換部と、
    前記ランダム化鍵を用いて第1値を暗号化して準同型性を持つ撹乱暗号文を得る撹乱暗号化部と、
    前記第2暗号文と前記撹乱暗号文とに対して所定の演算を行って変形済暗号文を得る演算部と、を有し、
    任意の第2値と前記第1値とに前記演算を行って得られる値は前記第2値に等しい、再暗号化装置。
  5. 請求項4の再暗号化装置であり、
    前記第1暗号文および第2暗号文が格子暗号方式またはNTRU暗号方式に則った暗号文である、再暗号化装置。
  6. 請求項1から3の何れかの鍵生成装置としてコンピュータを機能させるためのプログラム。
  7. 請求項4または5の再暗号化装置としてコンピュータを機能させるためのプログラム。
JP2014095054A 2014-05-02 2014-05-02 鍵生成装置、再暗号化装置、およびプログラム Active JP6189788B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014095054A JP6189788B2 (ja) 2014-05-02 2014-05-02 鍵生成装置、再暗号化装置、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014095054A JP6189788B2 (ja) 2014-05-02 2014-05-02 鍵生成装置、再暗号化装置、およびプログラム

Publications (2)

Publication Number Publication Date
JP2015213233A true JP2015213233A (ja) 2015-11-26
JP6189788B2 JP6189788B2 (ja) 2017-08-30

Family

ID=54697286

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014095054A Active JP6189788B2 (ja) 2014-05-02 2014-05-02 鍵生成装置、再暗号化装置、およびプログラム

Country Status (1)

Country Link
JP (1) JP6189788B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11824638B2 (en) 2019-05-24 2023-11-21 Mitsubishi Electric Corporation Re-encryption device, method and computer readable medium to change the access range for ciphertext

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4387155A1 (en) * 2022-12-12 2024-06-19 Tata Consultancy Services Limited Method and system for a lattice-based homomorphic proxy re-encryption scheme

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002232418A (ja) * 2000-12-11 2002-08-16 Lucent Technol Inc 鍵変換システムおよび方法
JP2008054315A (ja) * 2006-08-22 2008-03-06 Ntt Data Corp 暗号文復号権限委譲システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002232418A (ja) * 2000-12-11 2002-08-16 Lucent Technol Inc 鍵変換システムおよび方法
JP2008054315A (ja) * 2006-08-22 2008-03-06 Ntt Data Corp 暗号文復号権限委譲システム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
松田 和也 ほか: "より強い再暗号化鍵匿名性を満たすプロキシ再暗号化方式", 2012 第29回 暗号と情報セキュリティシンポジウム [CD−ROM], vol. 2A2−4, JPN6017001657, 30 January 2012 (2012-01-30), JP, pages 1 - 8, ISSN: 0003609797 *
松田 和也 ほか: "再暗号化鍵匿名性を満たすIDベースプロキシ再暗号化方式", 2011年 暗号と情報セキュリティシンポジウム SCIS2011 [CD−ROM], vol. 3F3−6, JPN6015049525, 28 January 2011 (2011-01-28), JP, pages 1 - 8, ISSN: 0003609796 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11824638B2 (en) 2019-05-24 2023-11-21 Mitsubishi Electric Corporation Re-encryption device, method and computer readable medium to change the access range for ciphertext

Also Published As

Publication number Publication date
JP6189788B2 (ja) 2017-08-30

Similar Documents

Publication Publication Date Title
Xu et al. Secure fine-grained access control and data sharing for dynamic groups in the cloud
JP5422053B2 (ja) 暗号システム、暗号通信方法、暗号化装置、鍵生成装置、復号装置、コンテンツサーバ装置、プログラム、記憶媒体
Canetti et al. Chosen-ciphertext secure proxy re-encryption
CN102055760B (zh) 消息发送/接收方法和系统
JP6194886B2 (ja) 暗号化統計処理システム、復号システム、鍵生成装置、プロキシ装置、暗号化統計データ生成装置、暗号化統計処理方法、および、暗号化統計処理プログラム
US20130083921A1 (en) Encryption device, decryption device, encryption method, decryption method, program, and recording medium
US20170366338A1 (en) Method and system for providing encrypted data
Wang et al. Proxy re-encryption schemes with key privacy from LWE
Susilo et al. Lattice-based HRA-secure attribute-based proxy re-encryption in standard model
JP2014095847A (ja) 関数型暗号システム、鍵生成装置、暗号化装置、復号装置、関数型暗号方法、およびプログラム
KR101249394B1 (ko) 래티스 환경을 기반으로 한 대리 재암호화 방법 및 장치
Holz et al. Linear-complexity private function evaluation is practical
CN114095171A (zh) 一种基于身份的可穿刺代理重加密方法
JP6189788B2 (ja) 鍵生成装置、再暗号化装置、およびプログラム
JP5730804B2 (ja) 暗号化装置、再暗号化鍵難読化装置、再暗号化装置、復号装置、および再暗号化システム
Sepehri et al. Secure and efficient data sharing with atribute-based proxy re-encryption scheme
JP2013217970A (ja) 格子問題に基づく階層型内積暗号システム,格子問題に基づく階層型内積暗号方法,装置
JP5513444B2 (ja) ベクトル構成システム、方法、装置及びプログラム並びに暗号システム
JP2020056960A (ja) 復号装置、暗号システム、復号方法及び復号プログラム
Gaidhani et al. A SURVEY REPORT ON TECHNIQUES FOR DATA CONFIDENTIALITY IN CLOUD COMPUTING USING HOMOMORPHIC ENCRYPTION.
Sravya et al. Secure Lattice-Based Ciphertext-Policy Attribute-Based Encryption from Module-LWE for Cloud Storage
JP2013105065A (ja) セキュリティシステム、暗号化装置、復号装置、再暗号化装置、難読化装置、それらの方法、及びプログラム
JP4143036B2 (ja) 鍵生成システム、鍵生成サーバ及び鍵生成方法
WO2017170780A1 (ja) 暗号文照合システム、ノード装置、暗号文照合方法、およびプログラム
JP2015070498A (ja) 鍵交換システム、鍵交換装置、その方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160713

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170314

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170803

R150 Certificate of patent or registration of utility model

Ref document number: 6189788

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150