JP2013207387A - プロキシ暗号システム,プロキシ暗号方法,委託装置,プロキシ装置 - Google Patents

プロキシ暗号システム,プロキシ暗号方法,委託装置,プロキシ装置 Download PDF

Info

Publication number
JP2013207387A
JP2013207387A JP2012071881A JP2012071881A JP2013207387A JP 2013207387 A JP2013207387 A JP 2013207387A JP 2012071881 A JP2012071881 A JP 2012071881A JP 2012071881 A JP2012071881 A JP 2012071881A JP 2013207387 A JP2013207387 A JP 2013207387A
Authority
JP
Japan
Prior art keywords
algorithm
ciphertext
input
outputs
key
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
JP2012071881A
Other languages
English (en)
Other versions
JP5713947B2 (ja
Inventor
Keita Kusakawa
恵太 草川
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 JP2012071881A priority Critical patent/JP5713947B2/ja
Publication of JP2013207387A publication Critical patent/JP2013207387A/ja
Application granted granted Critical
Publication of JP5713947B2 publication Critical patent/JP5713947B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】送信者(装置)が再暗号化の回数を指定できるプロキシ暗号技術を提供する。
【解決手段】変換済暗号文を再び変換可能な暗号方式を用いることで,複数回の暗号化を実現し,この際,委託装置と受託装置のそれぞれが暗号化鍵と復号鍵の組を複数用意し,送信者装置が暗号文に変換回数に応じたラベルを付けることで,送信者装置が変換回数を指定できるようにした。
【選択図】図1

Description

本発明は,或る公開鍵で暗号化された暗号文を,その公開鍵に対応する秘密鍵とは異なる秘密鍵を用いて復号することを可能とするプロキシ暗号技術に関する。
公開鍵暗号方式では,或る公開鍵で暗号化された暗号文を復号できるのは,対応する秘密鍵を有する者にのみ限られる。例えば,ユーザ装置hからユーザ装置iに平文mを送信する場合,ユーザ装置hはユーザ装置iの暗号化鍵ekiを用いて,暗号文ciを生成し,ユーザ装置iに暗号文ciを送信する。暗号化鍵ekiに対応する復号鍵dkiを持つユーザ装置のみがこの暗号文ciを復号できる。
加えて,変換鍵を用いて,その暗号文を,当該暗号文を生成したときに用いた秘密鍵とは異なる秘密鍵を用いて復号可能となる暗号文に変換する方式が,プロキシ暗号方式である。この方式は,復号権限を委譲するユーザ装置(delegator;委託装置),復号権限を委譲されるユーザ装置(delegatee;受託装置),委託装置で復号可能な暗号文を受託装置で復号可能な暗号文(変換済暗号文)に変換するプロキシ装置から構成される。例えば,ユーザ装置iがユーザ装置jに復号権限を委譲する場合,変換鍵rki,jを作成し,変換鍵rki,jによる再暗号化をプロキシ装置に委託する。変換鍵rki,jを持つプロキシ装置は,入力された暗号文ciを,変換鍵rki,jを用いて暗号文cjに変換して出力する。これによって,暗号化鍵ekjに対応する復号鍵dkjを持つユーザ装置は,この暗号文cjを復号し,平文mを得ることができる。変換鍵rki,jが,ユーザ装置iからユーザ装置jへの変換および,ユーザ装置jからユーザ装置iへの変換を許すとき,変換鍵は双方向であるという。変換鍵rki,jが,ユーザ装置iからユーザ装置jへの変換のみを許すとき,変換鍵は単方向であるという。
プロキシ暗号方式は,非特許文献1で初めて提案された。それ以降,離散対数問題や楕円離散対数問題に基づいて様々なプロキシ暗号方式が提案されている。格子問題に基づくプロキシ暗号方式として,非特許文献2および非特許文献3がある。
Matt Blaze, Gerrit Bleumer, and Martin Strauss. Divertible protocols and atomic proxy cryptography. In Kaisa Nyberg, editor, EUROCRYPT ’98, volume 1403 of Lecture Notes in Computer Science, pages 127-144. Springer-Verlag, 1998. Keita Xagawa. 関連鍵攻撃に対する識別不可能性と双方向代理人再暗号化. SCIS 2011, 2011. Keita Xagawa and Keisuke Tanaka. Proxy re-encryption based on learning with errors. SCIS 2010, 2010.
変換鍵が単方向なプロキシ暗号方式では,一般に送信者が再暗号化の回数を制限できない。多くの方式は,一度のみの変換を許すものである。また,参考文献(Craig Gentry. A fully homomorphic encryption scheme. PhD thesis, Stanford University, 2009. Available at http://crypto.stanford.edu/craig/)にある完全準同型暗号を用いた方式や,参考文献(Jun Shao, Peng Liu, Zhenfu Cao, and Guiyi Wei. Multi-use unidirectional proxy re-encryption. In ICC 2011, pages 1-5. IEEE, 2011.)の双線形写像を用いた方式は無制限の変換を許すため,送信者(装置)は変換回数を制限出来ない。
本発明は,送信者(装置)が再暗号化の回数を指定できるプロキシ暗号技術を提供することを目的とする。
本発明のプロキシ暗号技術は,変換済暗号文を再び変換可能な暗号方式を用いることで,複数回の暗号化を実現し,この際,委託装置と受託装置のそれぞれが暗号化鍵と復号鍵の組を複数用意し,送信者装置が暗号文に変換回数に応じたラベルを付けることで,送信者装置が変換回数を指定できるようにした。
このため,本発明に拠れば,詳細は後述の実施形態に譲るが,送信者装置が再暗号化の回数を指定できる。
実施形態のプロキシ暗号システムを示す図。 実施形態に関わるプロキシ暗号システムの構成要素である送信者装置,委託装置,受託装置,プロキシ装置の機能構成を示す図。
[実施例1]
<準備:再変換可能暗号>
まず,再変換可能暗号方式Π=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)を以下のとおり構成する。このΠ=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)は単一鍵変換可能暗号である。
(1)共通パラメータ生成アルゴリズムSetup:
セキュリティパラメータκを入力として,共通パラメータppを出力する確率的アルゴリズムである。
(2)鍵生成アルゴリズムGen:
セキュリティパラメータκと共通パラメータppを入力として,暗号化鍵と復号鍵の組(ek,dk)を出力する確率的アルゴリズムである。
(3)暗号化アルゴリズムEnc:
セキュリティパラメータκ,共通パラメータpp,暗号化鍵ek,平文mを入力として,乱数rを任意に選択し,暗号文cを出力する確率的アルゴリズムである。
(4)復号アルゴリズムDec:
セキュリティパラメータκ,共通パラメータpp,復号鍵dk,暗号文cを入力として,平文mを得るアルゴリズムである。
(5)変換鍵生成アルゴリズムReKeyGen:
セキュリティパラメータκ,共通パラメータpp,委託装置の復号鍵dkA,受託装置の暗号化鍵ekBを入力として,変換鍵rkA→Bを出力する確率的アルゴリズムである。
(6)変換アルゴリズムReEnc:
セキュリティパラメータκ,共通パラメータpp,変換鍵rkA→B,委託装置の公開鍵ekAを用いて生成された暗号文cAを入力として,受託装置の復号鍵dkBで復号可能な暗号文cBを出力する確率的アルゴリズムである。
この暗号方式Π=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)は,既に或る変換鍵を用いて変換された暗号文であっても,再び当該暗号文を別の変換鍵で変換できるという特徴を有している。
<複数回変換可能プロキシ暗号方式の構成>
本発明による実施形態では,再変換可能暗号方式Π=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)から,複数回変換可能プロキシ暗号方式π=(SETUP; GEN; ENC; DEC; REKEYGEN; REENC)を構成する。
複数回変換可能プロキシ暗号方式π=(SETUP; GEN; ENC; DEC; REKEYGEN; REENC)は,下記のとおりである。
(1)SETUP:
セキュリティパラメータκを入力として,pp←Setup(κ)を求め,Hを変換回数の最大として,PP=(pp,H)を出力するアルゴリズムである。
(2)GEN:
セキュリティパラメータκとPP=(pp,H)を入力として,η=0,…,Hについて,(ek(η),dk(η))←Gen(κ,pp)を求め,暗号化鍵EK=(ek(0),…,ek(H))と復号鍵DK=(dk(0),…,dk(H))を出力するアルゴリズムである。
(3)ENC:
セキュリティパラメータκ,PP=(pp,H),EK=(ek(0),…,ek(H)),レベルη,平文mを入力として,c←Enc(κ,pp,ek(η),m)を求め,ct=(η,c)を暗号文として出力するアルゴリズムである。
(4)DEC:
セキュリティパラメータκ,PP=(pp,H),DK=(dk(0),…,dk(H)),暗号文(η,c)を入力として,m’←Dec(κ,pp,dk(η),c)を求め,復号された平文としてm’を出力するアルゴリズムである。
(5)REKEYGEN:
セキュリティパラメータκ,PP=(pp,H),委託装置の復号鍵DKA=(dkA (0),…,dkA (H)),受託装置の暗号化鍵EKB=(ekB (0),…,ekB (H))を入力として,h=0,…,H-1について,rk(A,h)→(B,h+1)←ReKeyGen(κ,pp,dkA (h),ekB (h+1))を計算し,RKA→B=(rk(A,0)→(B,1),…,rk(A,H-1)→(B,H))を変換鍵として出力するアルゴリズムである。
(6)REENC:
セキュリティパラメータκ,PP=(pp,H),変換鍵RKA→B=(rk(A,0)→(B,1),…,rk(A,H-1)→(B,H)),暗号文ct=(η,c)を入力として,c’←ReEnc(κ,pp,rk(A,η)→(B,η+1),c)を求め,(η+1,c’)を変換済暗号文として出力するアルゴリズムである。
この複数回変換可能プロキシ暗号方式π=(SETUP; GEN; ENC; DEC; REKEYGEN; REENC)に基づくプロキシ暗号システム1は,元の暗号文を送信するユーザ装置(送信者装置)100,復号権限を委譲するユーザ装置(delegator;委託装置)200,復号権限を委譲されるユーザ装置(delegatee;受託装置)300,プロキシ装置400を含む。
実施例1のプロキシ暗号システム1における機能および処理手順を叙述する。
(1)SETUP:
送信者装置100の設定部101は,セキュリティパラメータκを入力として,共通パラメータpp←Setup(κ)を計算する。そして,設定部101は,Hを変換回数の最大として,変換回数上限付き共通パラメータPP=(pp,H)を出力する。Hは,送信者装置を用いるユーザによってH≧1を満たす予め定められた整数値であるが,好ましくはH≧2を満たす整数値である。
(2)GEN:
委託装置200の鍵生成部201は,セキュリティパラメータκと変換回数上限付き共通パラメータPP=(pp,H)を入力として,η=0,…,Hについて,(ekA (η),dkA (η))←Gen(κ,pp)を計算する。鍵生成部201は,暗号化鍵の組EKA=(ekA (0),…,ekA (H))と復号鍵の組DKA=(dkA (0),…,dkA (H))を出力する。
受託装置300の鍵生成部301は,セキュリティパラメータκと変換回数上限付き共通パラメータPP=(pp,H)を入力として,η=0,…,Hについて,(ekB (η),dkB (η))←Gen(κ,pp)を計算する。鍵生成部301は,暗号化鍵の組EKB=(ekB (0),…,ekB (H))と復号鍵の組DKB=(dkB (0),…,dkB (H))を出力する。
(3)ENC:
送信者装置100の暗号化部102は,セキュリティパラメータκ,変換回数上限付き共通パラメータPP=(pp,H),委託装置200の暗号化鍵の組EKA=(ekA (0),…,ekA (H)),変換回数の指定を表すレベルη,平文mを入力として,c←Enc(κ,pp,ekA (η),m)を計算する。暗号化部102は,ct=(η,c)を委託装置200に向けた暗号文として出力する。
(4)REKEYGEN:
委託装置200の変換鍵生成部202は,セキュリティパラメータκ,変換回数上限付き共通パラメータPP=(pp,H),委託装置200の復号鍵の組DKA=(dkA (0),…,dkA (H)),受託装置300の暗号化鍵の組EKB=(ekB (0),…,ekB (H))を入力として,h=0,…,H-1について,rk(A,h)→(B,h+1)←ReKeyGen(κ,pp,dkA (h),ekB (h+1))を計算する。変換鍵生成部202は,RKA→B=(rk(A,0)→(B,1),…,rk(A,H-1)→(B,H))を変換鍵として出力する。
(5)REENC:
プロキシ装置400の変換暗号文生成部401は,セキュリティパラメータκ,変換回数上限付き共通パラメータPP=(pp,H),変換鍵RKA→B=(rk(A,0)→(B,1),…,rk(A,H-1)→(B,H)),委託装置200に向けた暗号文ct=(η,c)を入力として,c’←ReEnc(κ,pp,rk(A,η)→(B,η+1),c)を計算する。変換暗号文生成部401は,(η+1,c’)を変換済暗号文として出力する。
(6)DEC:
受託装置300の復号部302は,セキュリティパラメータκ,変換回数上限付き共通パラメータPP=(pp,H),受託装置300の復号鍵の組DKB=(dkB (0),…,dkB (H)),変換済暗号文(η+1,c’)を入力として,m’←Dec(κ,pp,dkB (η+1),c’)を計算する。復号部302は,平文としてm’を出力する。
[実施例2]
実施例1の変形例として,完全準同型公開鍵暗号に二つのアルゴリズムを加えたものを,複数回変換可能プロキシ暗号方式π=(SETUP; GEN; ENC; DEC; REKEYGEN; REENC)を構成するための再変換可能暗号方式とする。
<準備:完全準同型公開鍵暗号>
ΠFHE=(Setup; Gen; Enc; Dec; Eval)を完全準同型公開鍵暗号とする。具体的には,ΠFHEは五つのアルゴリズムの組であり,各アルゴリズムは次の性質を満たす。
(1)共通パラメータ生成アルゴリズムSetup:
セキュリティパラメータκを入力として,共通パラメータppを出力する確率的アルゴリズムである。
(2)鍵生成アルゴリズムGen:
セキュリティパラメータκと共通パラメータppを入力として,暗号化鍵と復号鍵の組(ek,dk)を出力する確率的アルゴリズムである。
(3)暗号化アルゴリズムEnc:
セキュリティパラメータκ,共通パラメータpp,暗号化鍵ek,平文mを入力として,乱数rを任意に選択し,暗号文cを出力する確率的アルゴリズムである。
(4)復号アルゴリズムDec:
セキュリティパラメータκ,共通パラメータpp,復号鍵dk,暗号文cを入力として,平文mを計算するアルゴリズムである。
(5)評価アルゴリズムEval:
セキュリティパラメータκ,共通パラメータpp,暗号化鍵ek,論理回路C,暗号文の組c=(c1,…,cn)を入力として,新しい暗号文c”を計算するアルゴリズムである。このとき,論理回路Cは,Dec(κ,pp,dk,c”)=C(Dec(κ,pp,dk,c1),…,Dec(κ,pp,dk,cn))の関係が成立するバイナリ回路であり,新しい暗号文c”に対する復号アルゴリズムDecに相当する。
<再変換可能暗号方式の構成>
完全準同型公開鍵暗号ΠFHE=(Setup; Gen; Enc; Dec; Eval)から再変換可能暗号Π’=(Setup’; Gen’; Enc’; Dec’; ReKeyGen’; ReEnc’)を構成する。
(1)Setup’:
ΠFHEのSetupと同じアルゴリズムである。
(2)Gen’:
ΠFHEのGenと同じアルゴリズムである。
(3)Enc’:
ΠFHEのEncと同じアルゴリズムである。
(4)Dec’:
ΠFHEのDecと同じアルゴリズムである。
(5)ReKeyGen’:
セキュリティパラメータκ,共通パラメータpp,委託装置の復号鍵dkA,受託装置の暗号化鍵ekBを入力として,cA→B←Enc(κ,pp,ekB,dkA)を計算し,変換鍵rkA→B=(cA→B,ekB)を出力するアルゴリズムである。
(6)ReEnc’:
セキュリティパラメータκ,共通パラメータpp,変換鍵rkA→B,委託装置に向けた暗号文cを入力として,(cA→B,ekB)=rkA→Bとパース(parse)し(つまり,入力された変換鍵rkA→BからcA→BとekBを得る),c’←Enc(κ,pp,ekB,c)を計算し,c”←Eval(κ,pp,ekB,Dec,(cA→B,c’))を計算し,c”を出力するアルゴリズムである。
この再変換可能暗号Π’を実施例1の再変換可能暗号Π=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)と見立てて,実施例1と同様にして,複数回変換可能プロキシ暗号方式π=(SETUP; GEN; ENC; DEC; REKEYGEN; REENC)を構成すればよい。
実施例2のプロキシ暗号システム1における機能および処理手順を叙述する。
(1)SETUP:
送信者装置100の設定部101は,セキュリティパラメータκを入力として,共通パラメータpp←Setup(κ)を計算する。そして,設定部101は,Hを変換回数の最大として,変換回数上限付き共通パラメータPP=(pp,H)を出力する。Hは,送信者装置を用いるユーザによってH≧1を満たす予め定められた整数値であるが,好ましくはH≧2を満たす整数値である。
(2)GEN:
委託装置200の鍵生成部201は,セキュリティパラメータκと変換回数上限付き共通パラメータPP=(pp,H)を入力として,η=0,…,Hについて,(ekA (η),dkA (η))←Gen(κ,pp)を計算する。鍵生成部201は,暗号化鍵の組EKA=(ekA (0),…,ekA (H))と復号鍵の組DKA=(dkA (0),…,dkA (H))を出力する。
受託装置300の鍵生成部301は,セキュリティパラメータκと変換回数上限付き共通パラメータPP=(pp,H)を入力として,η=0,…,Hについて,(ekB (η),dkB (η))←Gen(κ,pp)を計算する。鍵生成部301は,暗号化鍵の組EKB=(ekB (0),…,ekB (H))と復号鍵の組DKB=(dkB (0),…,dkB (H))を出力する。
(3)ENC:
送信者装置100の暗号化部102は,セキュリティパラメータκ,変換回数上限付き共通パラメータPP=(pp,H),委託装置200の暗号化鍵の組EKA=(ekA (0),…,ekA (H)),変換回数の指定を表すレベルη,平文mを入力として,c←Enc(κ,pp,ekA (η),m)を計算する。暗号化部102は,ct=(η,c)を委託装置200に向けた暗号文として出力する。
(4)REKEYGEN:
委託装置200の変換鍵生成部202は,セキュリティパラメータκ,変換回数上限付き共通パラメータPP=(pp,H),委託装置200の復号鍵の組DKA=(dkA (0),…,dkA (H)),受託装置300の暗号化鍵の組EKB=(ekB (0),…,ekB (H))を入力として,h=0,…,H-1について,c(A,h)→(B,h+1)←ReKeyGen(κ,pp,dkA (h),ekB (h+1))=Enc(κ,pp,ekB (h+1),dkA (h))を計算する。そして,変換鍵生成部202は,h=0,…,H-1についてrk(A,h)→(B,h+1)=(c(A,h)→(B,h+1),ekB (h+1))として,RKA→B=(rk(A,0)→(B,1),…,rk(A,H-1)→(B,H))を変換鍵として出力する。
(5)REENC:
プロキシ装置400の変換暗号文生成部401は,セキュリティパラメータκ,変換回数上限付き共通パラメータPP=(pp,H),変換鍵RKA→B=(rk(A,0)→(B,1),…,rk(A,H-1)→(B,H)),委託装置200に向けた暗号文ct=(η,c)を入力として,h=0,…,H-1について,(c(A,h)→(B,h+1),ekB (h+1))←rk(A,h)→(B,h+1)とパース(parse)し,c’(h+1)←Enc(κ,pp,ekB (h+1),c)を計算する。そして,変換暗号文生成部401は,c”←Eval(κ,pp,ekB (η+1),Dec,(c(A,0)→(B,1),c’(h+1)),…,(c(A,H-1)→(B,H),c’(H)))を計算し,(η+1,c”)を変換済暗号文として出力する。
(6)DEC:
受託装置300の復号部302は,セキュリティパラメータκ,変換回数上限付き共通パラメータPP=(pp,H),受託装置300の復号鍵の組DKB=(dkB (0),…,dkB (H)),変換済暗号文(η+1,c”)を入力として,m’←Dec(κ,pp,dkB (η+1),c”)を計算する。復号部302は,平文としてm’を出力する。
[実施例3]
<準備>
アルゴリズムBDとアルゴリズムP2を下記の確定的アルゴリズムとする(参考文献:Zvika Brakerski, Craig Gentry, and Vinod Vaikuntanathan. Fully homomorphic encryption without bootstrapping. In ITCS 2012, 2012)。2δ-1<q<2δとする。
(1)アルゴリズムBD:
x∈Zq nを入力とする。1)k=1,…,δについて,u k∈{0,1}nを,xk=1 δ2k-1u kを満たすように計算する。2)(u 1,…,u δ)∈{0,1}を出力する。
(2)アルゴリズムP2:
s∈Zn qを入力とする場合には,[1,2,…,2δ-1]T(×)s∈Zq を出力するアルゴリズムPを実行し(ただし,(×)は行列のクロネッカー積を表す),行列S=[s 1,…,s g]を入力とする場合には,[P(s 1),…,P(s g)]∈Zq nδ×gなる行列を出力する。
これらのアルゴリズムは定義より,任意のx∈Zq n,S∈Zq n×gについて,BD(x)・P2(S)=x・S∈Zq gを満たす。
<再変換可能暗号の構成>
参考文献(Zvika Brakerski, Craig Gentry, and Vinod Vaikuntanathan. Fully homomorphic encryption without bootstrapping. In ITCS 2012, 2012)を参考にして,下記の再変換可能暗号Π’=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)を構成する。
(1)Setup:
AをZq m×nからランダムに選び,共通パラメータpp=(1κ,n,q,m,DΧ,A)を出力する。DΧは,Zq m上の分布を表す。分布DΧは,必ずまたは圧倒的な確率でサンプルXの絶対値があるパラメータB以下(X∈[-B,B]⊆Zq)な分布である。
(2)Gen:
セキュリティパラメータκ,共通パラメータppを入力とする。SをZq n×nからランダムに選ぶ。E∈Zq m×nを分布DΧ nに従ってランダムに選ぶ。B=A・S+2Eを計算する。暗号化鍵ek=Bと復号鍵dk=(S,B)を出力する。以下,簡単のためにM=[A|B]∈Zq m×2n(1≦i≦m,1≦j≦nのとき,行列Mの(i,j)成分は行列Aの(i,j)成分に一致し,1≦i≦m,n+1≦j≦2nのとき,行列Mの(i,j)成分は行列Bの(i,j-n)成分に一致する),S^=(-S|I)∈Zq 2n×n(1≦i≦n,1≦j≦nのとき,行列S^の(i,j)成分は行列-Sの(i,j)成分に一致し,n+1≦i≦2n,1≦j≦nのとき,行列S^の(i,j)成分は単位行列Iの(i-n,j)成分に一致する)とおく。このときM・S^=-AS+B=2Eである。
(3)Enc:
セキュリティパラメータκ,共通パラメータpp,暗号化鍵ek=B,平文m∈{0,1}nを入力とする。r←{-1,+1}mをランダムに選ぶ。(u,v)=(rA,rB)を計算する。(u,v)を1行2n列の行列とみなす。つまり,1≦j≦nのとき,行列(u,v)の(1,j)成分はベクトルuの(1,j)成分に一致し,n+1≦j≦2nのとき,行列(u,v)の(1,j)成分はベクトルvの(1,j-n)成分に一致する。(u,c)=(u,v+m)を計算する。暗号文(u,c)を出力する。
(4)Dec:
セキュリティパラメータκ,共通パラメータpp,復号鍵dk=(S,B),暗号文(u,c)を入力とする。d←(u,c)S^ mod qを計算する。m←d mod 2を計算して,mを平文として出力する。
(5)ReKeyGen:
セキュリティパラメータκ,共通パラメータpp,委託装置の復号鍵dkA=(SA,BA),受託装置の暗号化鍵ekB=BBを入力とする。R←{-1,+1}nδ×mをランダムに選ぶ。MB=[A|BB]とする。MA→B←RMB+[O|-P2(SA)]を計算する(Oはnδ×nのゼロ行列である)。変換鍵rkA→B=(MA→B,BB)を出力する。
(6)ReEnc:
セキュリティパラメータκ,共通パラメータpp,変換鍵rkA→B=(MA→B,BB),暗号文(u,c)を入力とする。(u’,c’)←BD(u)・MA→Bを計算する。r~←{-1,+1}mをランダムに選ぶ。(u~,v~)←r~・[A|BB]を計算する。(u→-,c→-)←(u’+u~,c+c’+v~)を計算する。変換済暗号文として(u→-,c→-)を出力する。
この再変換可能暗号Π’を実施例1の再変換可能暗号Π=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)と見立てて,実施例1と同様にして,複数回変換可能プロキシ暗号方式π=(SETUP; GEN; ENC; DEC; REKEYGEN; REENC)を構成すればよい。
実施例3のプロキシ暗号システム1における機能および処理手順を叙述する。
(1)SETUP:
送信者装置100の設定部101は,AをZq m×nからランダムに選び,共通パラメータpp=(1κ,n,q,m,DΧ,A)と,変換回数の最大値Hとの組である変換回数上限付き共通パラメータPP=(pp,H)を出力する。Hは,送信者装置を用いるユーザによってH≧1を満たす予め定められた整数値であるが,好ましくはH≧2を満たす整数値である。
(2)GEN:
委託装置200の鍵生成部201は,セキュリティパラメータκと変換回数上限付き共通パラメータPP=(pp,H)を入力として,η=0,…,Hについて,S(η)をZq n×nからランダムに選び,E(η)∈Zq m×nを分布DΧ nに従ってランダムに選び,B(η)=A・S(η)+2E(η)を計算して,暗号化鍵ekA (η)=B(η)と復号鍵dkA (η)=(S(η),B(η))を求める。そして,鍵生成部201は,暗号化鍵の組EKA=(ekA (0),…,ekA (H))と復号鍵の組DKA=(dkA (0),…,dkA (H))を出力する。
受託装置300の鍵生成部301は,セキュリティパラメータκと変換回数上限付き共通パラメータPP=(pp,H)を入力として,η=0,…,Hについて,S(η)をZq n×nからランダムに選び,E(η)∈Zq m×nを分布DΧ nに従ってランダムに選び,B(η)=A・S(η)+2E(η)を計算して,暗号化鍵ekB (η)=B(η)と復号鍵dkB (η)=(S(η),B(η))を求める。そして,鍵生成部301は,暗号化鍵の組EKB=(ekB (0),…,ekB (H))と復号鍵の組DKB=(dkB (0),…,dkB (H))を出力する。
(3)ENC:
送信者装置100の暗号化部102は,セキュリティパラメータκ,変換回数上限付き共通パラメータPP=(pp,H),委託装置200の暗号化鍵の組EKA=(ekA (0),…,ekA (H)),変換回数の指定を表すレベルη,平文m∈{0,1}nを入力として,r←{-1,+1}mをランダムに選び,(u,v)=(rA,rB)を計算し,(u,c)=(u,v+m)を求める。暗号化部102は,ct=(η,(u,c))を委託装置200に向けた暗号文として出力する。
(4)REKEYGEN:
委託装置200の変換鍵生成部202は,セキュリティパラメータκ,変換回数上限付き共通パラメータPP=(pp,H),委託装置200の復号鍵の組DKA=(dkA (0),…,dkA (H)),受託装置300の暗号化鍵の組EKB=(ekB (0),…,ekB (H))を入力として,h=0,…,H-1について,R←{-1,+1}nδ×mをランダムに選び,B(B,h)=ekB (h),M(B,h+1)=[A|B(B,h+1)]として,M(A,h)→(B,h+1)←RM(B,h+1)+[O|-P2(S(A,h))]を計算し,rk(A,h)→(B,h+1)=(M(A,h)→(B,h+1),B(B,h+1))を求める。変換鍵生成部202は,RKA→B=(rk(A,0)→(B,1),…,rk(A,H-1)→(B,H))を変換鍵として出力する。
(5)REENC:
プロキシ装置400の変換暗号文生成部401は,セキュリティパラメータκ,変換回数上限付き共通パラメータPP=(pp,H),変換鍵RKA→B=(rk(A,0)→(B,1),…,rk(A,H-1)→(B,H)),委託装置200に向けた暗号文ct=(η,(u,c))を入力として,h=0,…,H-1について,(u’,c’)←BD(u)・M(A,η)→(B,η+1)を計算し,r~←{-1,+1}mをランダムに選び,(u~,v~)←r~・[A|B(B,η+1)]を計算し,(u→-,c→-)←(u’+u~,c+c’+v~)を計算する。変換暗号文生成部401は,変換済暗号文として(η+1,(u→-,c→-))を出力する。
(6)DEC:
受託装置300の復号部302は,セキュリティパラメータκ,変換回数上限付き共通パラメータPP=(pp,H),受託装置300の復号鍵の組DKB=(dkB (0),…,dkB (H)),変換済暗号文(η+1,(u→-,c→-))を入力として,d←(u→-,c→-)S^(η+1) mod qを計算し,m←d mod 2を計算して,mを平文として出力する。
[実施例4]
<準備>
κをセキュリティパラメータとし,k(κ)を整数関数とし,n(κ)=2k(κ)とする。f(x)=xn+1とする。q=q(κ)を素数とする。環R=Z[x]/(f(x))とし,Rq=R/qRとする。δを2δ-1<q<2δを満たす整数とする。
アルゴリズムBDとアルゴリズムP2を下記の確定的アルゴリズムとする(参考文献:Zvika Brakerski, Craig Gentry, and Vinod Vaikuntanathan. Fully homomorphic encryption without bootstrapping. ITCS 2012, 2012)。
(1)アルゴリズムBD:
x∈Rqを入力にとる。1)k=1,…,δについて,uk∈{0,1}n⊆Rqを,x=Σk=1 δ2k-1ukを満たすように計算する。2)(u1,…,uδ)∈{0,1}⊆Rq δを出力する。
(2)アルゴリズムP2:
s∈Rqを入力にとり,[1,2s,…,2δ-1s]T∈Rq δを出力する。
これらのアルゴリズムは定義より,任意のx,s∈Rqについて,BD(x)・P2(s)=xs∈Rqを満たす。
<再変換可能暗号の構成>
参考文献(Zvika Brakerski, Craig Gentry, and Vinod Vaikuntanathan. Fully homomorphic encryption without bootstrapping. In ITCS 2012, 2012)や参考文献(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 Lecture Notes in Computer Science, pages 1-23. Springer-Verlag, 2010.)を参考にして,下記の再変換可能暗号Π’=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)を構成する。
(1)Setup:
aをRq mからランダムに選び,pp=(1κ,n,q,m,DΧ,a)を出力する。DΧは,Rq上の分布を表す。分布DΧは,必ずまたは圧倒的な確率で,サンプルとして取った多項式aaの各係数aiの絶対値があるパラメータB以下(aa=a0+…+an-1Xn-1としてai∈[-B,B]⊆Zq)な分布である。
(2)Gen:
セキュリティパラメータκ,共通パラメータppを入力とする。sをRqからランダムに選ぶ。e←DΧ mをランダムに選ぶ。b←sa+2e∈Rq mを計算する。暗号化鍵ek=bと復号鍵dk=(s,b)を出力する。以下,簡単のためにM=[a|b]∈Rq m×2,s^=(-s,1)T∈Rq 2とおく。このときM・s^=-as+b=2eとなる。
(3)Enc:
セキュリティパラメータκ,共通パラメータpp,暗号化鍵ek=b,平文m∈{0,1}n⊆Rqを入力とする。r←({-1,+1}n)mをランダムに選ぶ。(u,v)=(r・a,r・b)を計算する。(u,c)=(u,v+m)を計算して,ベクトル(u,c)を暗号文として出力する。
(4)Dec:
セキュリティパラメータκ,共通パラメータpp,復号鍵dk=(s,b),暗号文(u,c)を入力とする。d←(u,c)・s^ mod qを計算する。m←d mod 2を計算する。平文mを出力する。
(5)ReKeyGen:
セキュリティパラメータκ,共通パラメータpp,委託装置の復号鍵dkA=(sA,b A)と受託装置の暗号化鍵ekB=b Bを入力とする。R←({-1,+1}n)δ×mをランダムに選ぶ。MB=[a|b B]とする。MA→B←RMB+[0|-P2(sA)]を計算する。変換鍵rkA→B=(MA→B,b B)を出力する。
(6)ReEnc:
セキュリティパラメータκ,共通パラメータpp,変換鍵rkA→B=(MA→B,b B),暗号文(u,c)を入力とする。(u’,c’)←BD(u)・MA→Bを計算する。r~←({-1,+1}n)mをランダムに選ぶ。(u~,v~)←r~・[a|b B]を計算する。(u-,c-)←(u’+u~,c+c’+v~)を計算する。変換済暗号文として(u-,c-)を出力する。
この再変換可能暗号Π’を実施例1の再変換可能暗号Π=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)と見立てて,実施例1と同様にして,複数回変換可能プロキシ暗号方式π=(SETUP; GEN; ENC; DEC; REKEYGEN; REENC)を構成すればよい。
実施例4のプロキシ暗号システム1における機能および処理手順を叙述する。
(1)SETUP:
送信者装置100の設定部101は,aをRq mからランダムに選び,共通パラメータpp=(1κ,n,q,m,DΧ,a)と,変換回数の最大値Hとの組である変換回数上限付き共通パラメータPP=(pp,H)を出力する。Hは,送信者装置を用いるユーザによってH≧1を満たす予め定められた整数値であるが,好ましくはH≧2を満たす整数値である。
(2)GEN:
委託装置200の鍵生成部201は,セキュリティパラメータκと変換回数上限付き共通パラメータPP=(pp,H)を入力として,η=0,…,Hについて,s(η)をZqからランダムに選び,e→(η)←DΧ mに従ってランダムに選び,b→(η)=s(η)a+2e→(η)∈Rq mを計算して,暗号化鍵ekA (η)=b→(η)と復号鍵dkA (η)=(s(η),b→(η))を求める。そして,鍵生成部201は,暗号化鍵の組EKA=(ekA (0),…,ekA (H))と復号鍵の組DKA=(dkA (0),…,dkA (H))を出力する。
受託装置300の鍵生成部301は,セキュリティパラメータκと変換回数上限付き共通パラメータPP=(pp,H)を入力として,η=0,…,Hについて,s(η)をZqからランダムに選び,e→(η)←DΧ mに従ってランダムに選び,b→(η)=s(η)a+2e→(η)∈Rq mを計算して,暗号化鍵ekB (η)=b→(η)と復号鍵dkB (η)=(s(η),b→(η))を求める。そして,鍵生成部301は,暗号化鍵の組EKB=(ekB (0),…,ekB (H))と復号鍵の組DKB=(dkB (0),…,dkB (H))を出力する。
(3)ENC:
送信者装置100の暗号化部102は,セキュリティパラメータκ,変換回数上限付き共通パラメータPP=(pp,H),委託装置200の暗号化鍵の組EKA=(ekA (0),…,ekA (H)),変換回数の指定を表すレベルη,平文m∈{0,1}n⊆Rqを入力として,r←({-1,+1}n)mをランダムに選び,(u,v)=(r・a,r・b)を計算し,(u,c)=(u,v+m)を求める。暗号化部102は,レベルηとベクトル(u,c)との組ct=(η,(u,c))を委託装置200に向けた暗号文として出力する。
(4)REKEYGEN:
委託装置200の変換鍵生成部202は,セキュリティパラメータκ,変換回数上限付き共通パラメータPP=(pp,H),委託装置200の復号鍵の組DKA=(dkA (0),…,dkA (H)),受託装置300の暗号化鍵の組EKB=(ekB (0),…,ekB (H))を入力として,h=0,…,H-1について,R←({-1,+1}n)δ×mをランダムに選び,b (B,h)=ekB (h),M(B,h+1)=[a|b (B,h+1)]として,M(A,h)→(B,h+1)←RM(B,h+1)+[0|-P2(s(A,h))]を計算し,rk(A,h)→(B,h+1)=(M(A,h)→(B,h+1),b (B,h+1))を求める。変換鍵生成部202は,RKA→B=(rk(A,0)→(B,1),…,rk(A,H-1)→(B,H))を変換鍵として出力する。
(5)REENC:
プロキシ装置400の変換暗号文生成部401は,セキュリティパラメータκ,変換回数上限付き共通パラメータPP=(pp,H),変換鍵RKA→B=(rk(A,0)→(B,1),…,rk(A,H-1)→(B,H)),委託装置200に向けた暗号文ct=(η,(u,c))を入力として,h=0,…,H-1について,(u’,c’)←BD(u)・M(A,η)→(B,η+1)を計算し,r~←({-1,+1}n)mをランダムに選び,(u~,v~)←r~・[a|b (B,η+1)]を計算し,(u-,c-)←(u’+u~,c+c’+v~)を計算する。変換暗号文生成部401は,変換済暗号文として(η+1,(u-,c-))を出力する。
(6)DEC:
受託装置300の復号部302は,セキュリティパラメータκ,変換回数上限付き共通パラメータPP=(pp,H),受託装置300の復号鍵の組DKB=(dkB (0),…,dkB (H)),変換済暗号文(η+1,(u-,c-))を入力として,d←(u,c)・s^ mod qを計算し,m←d mod 2を計算して,mを平文として出力する。
[実施例5]
<準備>
κをセキュリティパラメータとし,k(κ)を整数関数とし,n(κ)=2k(κ)とする。f(x)=xn+1とする。q=q(κ)を素数とする。環R=Z[x]/(f(x))とし,Rq=R/qRとする。δを2δ-1<q<2δを満たす整数とする。
アルゴリズムBDとアルゴリズムP2を下記の確定的アルゴリズムとする(参考文献:Zvika Brakerski, Craig Gentry, and Vinod Vaikuntanathan. Fully homomorphic encryption without bootstrapping. ITCS 2012, 2012)。
(1)アルゴリズムBD:
x∈Rqを入力にとる。1)k=1,…,δについて,uk∈{0,1}n⊆Rqを,x=Σk=1 δ2k-1ukを満たすように計算する。2)(u1,…,uδ)∈{0,1}⊆Rq δを出力する。
(2)アルゴリズムP2:
s∈Rqを入力にとり,[1,2s,…,2δ-1s]T∈Rq δを出力する。
これらのアルゴリズムは定義より,任意のx,s∈Rqについて,BD(x)・P2(s)=xs∈Rqを満たす。
<再変換可能暗号の構成>
参考文献(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 Lecture Notes in Computer Science, pages 505-524. Springer-Verlag, 2011.)や参考文献(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 Lecture Notes in Computer Science, pages 1-23. Springer-Verlag, 2010.)を参考にして,下記の再変換可能暗号Π’=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)を構成する。
(1)Setup:
a←Rqをランダムに選択し,共通パラメータpp=(κ,n,q,DΧ,a)を出力する。DΧは,Rq上の分布を表す。分布DΧは,必ずまたは圧倒的な確率で、サンプルとして取った多項式aaの各係数aiの絶対値があるパラメータB以下(aa=a0+…+an-1Xn-1としてai∈[-B,B]⊆Zq)な分布である。
(2)Gen:
共通パラメータppを入力とする。s,e←DΧをランダムに選択し,b←as+2eを計算し,暗号化鍵ek=b,復号鍵dk=(s,b)を出力する。
(3)Enc:
共通パラメータpp,暗号化鍵ek=b,平文m∈{0,1}n⊆Rqを入力とする。t,e’,e”←DΧをランダムに選択し,(u,c)←(at+2e’,bt+2e”+m)とする。暗号文(u,c)を出力する。
(4)Dec:
共通パラメータppと暗号文(u,c)を入力とする。d=c-us mod qを計算する。m=d mod 2を計算する。mを平文として出力する。
(5)ReKeyGen:
共通パラメータpp,受託装置の暗号化鍵ekB=bB,委託装置の復号鍵dkA=(sA,bA)を入力とする。r,h,h’←DΧ δをランダムに選び,f←ar+2h,g←br+2h’+P2(sA)とする。変換鍵rkA→B=(f,g,bB)を出力する。
(6)ReEnc:
共通パラメータpp,変換鍵rkA→B=(f,g,bB),暗号文(u,c)を入力とする。(u’,c’)=BD(u)・[f,g]を計算する。t’,f’,f”←DΧをランダムに選び,(u~,v~)=(at’+2f’,bBt’+2f”)を計算する。(u-,c-)=(u’+u~,c+c’+v~)を計算する。変換済暗号文(u-,c-)を出力する。
この再変換可能暗号Π’を実施例1の再変換可能暗号Π=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)と見立てて,実施例1と同様にして,複数回変換可能プロキシ暗号方式π=(SETUP; GEN; ENC; DEC; REKEYGEN; REENC)を構成すればよい。
実施例5のプロキシ暗号システム1における機能および処理手順を叙述する。
(1)SETUP:
送信者装置100の設定部101は,a←Rqをランダムに選択し,共通パラメータpp=(κ,n,q,DΧ,a)と,変換回数の最大値Hとの組である変換回数上限付き共通パラメータPP=(pp,H)を出力する。Hは,送信者装置を用いるユーザによってH≧1を満たす予め定められた整数値であるが,好ましくはH≧2を満たす整数値である。
(2)GEN:
委託装置200の鍵生成部201は,変換回数上限付き共通パラメータPP=(pp,H)を入力として,η=0,…,Hについて,s(η),e(η)←DΧをランダムに選択し,b(η)←as(η)+2e(η)を計算し,暗号化鍵ekA (η)=b(η),復号鍵dkA (η)=(s(η),b(η))を出力する。そして,鍵生成部201は,暗号化鍵の組EKA=(ekA (0),…,ekA (H))と復号鍵の組DKA=(dkA (0),…,dkA (H))を出力する。
受託装置300の鍵生成部301は,変換回数上限付き共通パラメータPP=(pp,H)を入力として,η=0,…,Hについて,s(η),e(η)←DΧをランダムに選択し,b(η)←as(η)+2e(η)を計算し,暗号化鍵ekB (η)=b(η),復号鍵dkB (η)=(s(η),b(η))を出力する。そして,鍵生成部201は,暗号化鍵の組EKB=(ekB (0),…,ekB (H))と復号鍵の組DKB=(dkB (0),…,dkB (H))を出力する。
(3)ENC:
送信者装置100の暗号化部102は,変換回数上限付き共通パラメータPP=(pp,H),委託装置200の暗号化鍵の組EKA=(ekA (0),…,ekA (H)),変換回数の指定を表すレベルη,平文m∈{0,1}n⊆Rqを入力として,t,e’,e”←DΧをランダムに選択し,(u,c)←(at+2e’,bt+2e”+m)を求める。暗号化部102は,レベルηとベクトル(u,c)との組ct=(η,(u,c))を委託装置200に向けた暗号文として出力する。
(4)REKEYGEN:
委託装置200の変換鍵生成部202は,変換回数上限付き共通パラメータPP=(pp,H),委託装置200の復号鍵の組DKA=(dkA (0),…,dkA (H)),受託装置300の暗号化鍵の組EKB=(ekB (0),…,ekB (H))を入力として,h=0,…,H-1について,r,h,h’←DΧ δをランダムに選び,s(A,h)=sA (h)として,f←ar+2h,g←br+2h’+P2(s(A,h))を計算し,rk(A,h)→(B,h+1)=(f,g,b(B,h+1))を求める。変換鍵生成部202は,RKA→B=(rk(A,0)→(B,1),…,rk(A,H-1)→(B,H))を変換鍵として出力する。
(5)REENC:
プロキシ装置400の変換暗号文生成部401は,変換回数上限付き共通パラメータPP=(pp,H),変換鍵RKA→B=(rk(A,0)→(B,1),…,rk(A,H-1)→(B,H)),委託装置200に向けた暗号文ct=(η,(u,c))を入力として,h=0,…,H-1について,(u’,c’)=BD(u)・[f,g]を計算し,t’,f’,f”←DΧをランダムに選び,(u~,v~)=(at’+2f’,b(B,η+1)t’+2f”)を計算し,(u-,c-)=(u’+u~,c+c’+v~)を計算する。変換暗号文生成部401は,変換済暗号文として(η+1,(u-,c-))を出力する。
(6)DEC:
受託装置300の復号部302は,変換回数上限付き共通パラメータPP=(pp,H),受託装置300の復号鍵の組DKB=(dkB (0),…,dkB (H)),変換済暗号文(η+1,(u-,c-))を入力として,d=c-us mod qを計算し,m=d mod 2を計算して,mを平文として出力する。
<補記>
プロキシ暗号システムに含まれうるハードウェアエンティティ(送信者装置,委託装置,受託装置,プロキシ装置)は,キーボードなどが接続可能な入力部,液晶ディスプレイなどが接続可能な出力部,ハードウェアエンティティの外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部,CPU(Central Processing Unit)〔キャッシュメモリやレジスタなどを備えていてもよい。〕,メモリであるRAMやROM,ハードディスクである外部記憶装置並びにこれらの入力部,出力部,通信部,CPU,RAM,ROM,外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて,ハードウェアエンティティに,CD−ROMなどの記録媒体を読み書きできる装置(ドライブ)などを設けるとしてもよい。このようなハードウェア資源を備えた物理的実体としては,汎用コンピュータなどがある。
ハードウェアエンティティの外部記憶装置には,上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている(外部記憶装置に限らず,例えばプログラムを読み出し専用記憶装置であるROMに記憶させておくなどでもよい)。また,これらのプログラムの処理によって得られるデータなどは,RAMや外部記憶装置などに適宜に記憶される。
ハードウェアエンティティでは,外部記憶装置〔あるいはROMなど〕に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて,適宜にCPUで解釈実行・処理される。その結果,CPUが所定の機能(例えば,設定部,鍵生成部,暗号化部,変換鍵生成部,変換暗号文生成部,復号部など)を実現する。
各実施形態で説明したハードウェアエンティティの細部においては,数論における数値計算処理が必要となる場合があるが,数論における数値計算処理自体は,周知技術と同様にして達成されるので,その演算処理方法などの詳細な説明は省略した(この点の技術水準を示す数論における数値計算処理が可能なソフトウェアとしては,例えばPARI/GP,KANT/KASHなどが挙げられる。PARI/GPについては,例えばインターネット〈URL: http://pari.math.u-bordeaux.fr/〉[平成24年3月21日検索]を参照のこと。KANT/KASHについては,例えばインターネット〈URL: http://page.math.tu-berlin.de/~kant/kash.html〉[平成24年3月21日検索]を参照のこと。)。
また,この点に関する文献として,参考文献Aを挙げることができる。
(参考文献A)H. Cohen,"A Course in Computational Algebraic Number Theory",GTM 138,Springer-Verlag,1993.
本発明は上述の実施形態に限定されるものではなく,本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また,上記実施形態において説明した処理は,記載の順に従って時系列に実行されるのみならず,処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。上述の各実施例では,情報処理に用いられるデータ等の情報の装置間での送受信に関わる説明を省略したが,当然のこととして,或る装置Xにおける或る情報処理に用いられる情報Yは,当該装置Xが当該情報Yを保有していない場合,当該情報処理の実行前に,当該装置Xによって当該情報Yを保有する装置から取得されていることに留意されたい。なお,データ等の情報の装置間での送受信は周知技術を利用して実施される。
また,上記実施形態において説明したハードウェアエンティティにおける処理機能をコンピュータによって実現する場合,ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして,このプログラムをコンピュータで実行することにより,上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは,コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては,例えば,磁気記録装置,光ディスク,光磁気記録媒体,半導体メモリ等どのようなものでもよい。具体的には,例えば,磁気記録装置として,ハードディスク装置,フレキシブルディスク,磁気テープ等を,光ディスクとして,DVD(Digital Versatile Disc),DVD−RAM(Random Access Memory),CD−ROM(Compact Disc Read Only Memory),CD−R(Recordable)/RW(ReWritable)等を,光磁気記録媒体として,MO(Magneto-Optical disc)等を,半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
また,このプログラムの流通は,例えば,そのプログラムを記録したDVD,CD−ROM等の可搬型記録媒体を販売,譲渡,貸与等することによって行う。さらに,このプログラムをサーバコンピュータの記憶装置に格納しておき,ネットワークを介して,サーバコンピュータから他のコンピュータにそのプログラムを転送することにより,このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは,例えば,まず,可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを,一旦,自己の記憶装置に格納する。そして,処理の実行時,このコンピュータは,自己の記録媒体に格納されたプログラムを読み取り,読み取ったプログラムに従った処理を実行する。また,このプログラムの別の実行形態として,コンピュータが可搬型記録媒体から直接プログラムを読み取り,そのプログラムに従った処理を実行することとしてもよく,さらに,このコンピュータにサーバコンピュータからプログラムが転送されるたびに,逐次,受け取ったプログラムに従った処理を実行することとしてもよい。また,サーバコンピュータから,このコンピュータへのプログラムの転送は行わず,その実行指示と結果取得のみによって処理機能を実現する,いわゆるASP(Application Service Provider)型のサービスによって,上述の処理を実行する構成としてもよい。なお,本形態におけるプログラムには,電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また,この形態では,コンピュータ上で所定のプログラムを実行させることにより,ハードウェアエンティティを構成することとしたが,これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。

Claims (12)

  1. 送信者装置,委託装置,受託装置,プロキシ装置を含むプロキシ暗号システムであって,
    (1)共通パラメータ生成アルゴリズムSetup:
    セキュリティパラメータκを入力として,共通パラメータppを出力する確率的アルゴリズム,
    (2)鍵生成アルゴリズムGen:
    セキュリティパラメータκと共通パラメータppを入力として,暗号化鍵と復号鍵の組(ek,dk)を出力する確率的アルゴリズム,
    (3)暗号化アルゴリズムEnc:
    セキュリティパラメータκ,共通パラメータpp,暗号化鍵ek,平文mを入力として,乱数rを任意に選択し,暗号文cを出力する確率的アルゴリズム,
    (4)復号アルゴリズムDec:
    セキュリティパラメータκ,共通パラメータpp,復号鍵dk,暗号文cを入力として,平文mを得るアルゴリズム,
    (5)変換鍵生成アルゴリズムReKeyGen:
    セキュリティパラメータκ,共通パラメータpp,委託装置の復号鍵dkA,受託装置の暗号化鍵ekBを入力として,変換鍵rkA→Bを出力する確率的アルゴリズム,
    (6)変換アルゴリズムReEnc:
    セキュリティパラメータκ,共通パラメータpp,変換鍵rkA→B,委託装置の公開鍵ekAを用いて生成された暗号文cAを入力として,受託装置の復号鍵dkBで復号可能な暗号文cBを出力する確率的アルゴリズム,
    で構成される再変換可能暗号アルゴリズムΠ=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)に基づくプロキシ暗号アルゴリズムπ=(SETUP; GEN; ENC; DEC; REKEYGEN; REENC)を,
    (1)SETUP:
    セキュリティパラメータκを入力として,pp←Setup(κ)を求め,Hを変換回数の最大として,PP=(pp,H)を出力するアルゴリズム,
    (2)GEN:
    セキュリティパラメータκとPP=(pp,H)を入力として,η=0,…,Hについて,(ek(η),dk(η))←Gen(κ,pp)を求め,暗号化鍵の組EK=(ek(0),…,ek(H))と復号鍵の組DK=(dk(0),…,dk(H))を出力するアルゴリズム,
    (3)ENC:
    セキュリティパラメータκ,PP=(pp,H),暗号化鍵の組EK=(ek(0),…,ek(H)),レベルη,平文mを入力として,c←Enc(κ,pp,ek(η),m)を求め,ct=(η,c)を暗号文として出力するアルゴリズム,
    (4)DEC:
    セキュリティパラメータκ,PP=(pp,H),復号鍵の組DK=(dk(0),…,dk(H)),暗号文(η,c)を入力として,m’←Dec(κ,pp,dk(η),c)を求め,復号された平文としてm’を出力するアルゴリズム,
    (5)REKEYGEN:
    セキュリティパラメータκ,PP=(pp,H),委託装置の復号鍵の組DKA=(dkA (0),…,dkA (H)),受託装置の暗号化鍵の組EKB=(ekB (0),…,ekB (H))を入力として,h=0,…,H-1について,rk(A,h)→(B,h+1)←ReKeyGen(κ,pp,dkA (h),ekB (h+1))を計算し,RKA→B=(rk(A,0)→(B,1),…,rk(A,H-1)→(B,H))を変換鍵として出力するアルゴリズム,
    (6)REENC:
    セキュリティパラメータκ,PP=(pp,H),変換鍵RKA→B=(rk(A,0)→(B,1),…,rk(A,H-1)→(B,H)),暗号文ct=(η,c)を入力として,c’←ReEnc(κ,pp,rk(A,η)→(B,η+1),c)を求め,(η+1,c’)を変換済暗号文として出力するアルゴリズム,
    として,
    送信者装置は,
    上記SETUPアルゴリズムを実行する設定部と,
    EK=(ek(0),…,ek(H))として委託装置の暗号化鍵の組EKA=(ekA (0),…,ekA (H))を用いて上記ENCアルゴリズムを実行する暗号化部と
    を含み,
    委託装置は,
    上記GENアルゴリズムを実行して,暗号化鍵の組EKA=(ekA (0),…,ekA (H))と復号鍵の組DKA=(dkA (0),…,dkA (H))を得る鍵生成部と,
    上記REKEYGENを実行する変換鍵生成部と
    を含み,
    受託装置は,
    上記GENアルゴリズムを実行して,暗号化鍵の組EKB=(ekB (0),…,ekB (H))と復号鍵の組DKB=(dkB (0),…,dkB (H))を得る鍵生成部と,
    DK=(dk(0),…,dk(H))として受託装置の復号鍵の組DKB=(dkB (0),…,dkB (H))用い,暗号文(η,c)として変換済暗号文(η+1,c’)を用いて上記DECを実行する復号部と
    を含み,
    プロキシ装置は,
    上記REENCを実行する変換暗号文生成部
    を含むプロキシ暗号システム。
  2. 請求項1に記載のプロキシ暗号システムにおいて,
    上記再変換可能暗号アルゴリズムΠ=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)に替えて,再変換可能暗号アルゴリズムΠ=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)を,
    (1)Setup:
    セキュリティパラメータκを入力として,共通パラメータppを出力する確率的アルゴリズム,
    (2)Gen:
    セキュリティパラメータκと共通パラメータppを入力として,暗号化鍵と復号鍵の組(ek,dk)を出力する確率的アルゴリズム,
    (3)Enc:
    セキュリティパラメータκ,共通パラメータpp,暗号化鍵ek,平文mを入力として,乱数rを任意に選択し,暗号文cを出力する確率的アルゴリズム,
    (4)Dec:
    セキュリティパラメータκ,共通パラメータpp,復号鍵dk,暗号文cを入力として,平文mを得るアルゴリズム,
    (5)ReKeyGen’:
    セキュリティパラメータκ,共通パラメータpp,委託装置の復号鍵dkA,平文mとしての受託装置の暗号化鍵ekBを入力として,cA→B←Enc(κ,pp,ekB,dkA)を求め,rkA→B=(cA→B,ekB)を出力するアルゴリズム,
    (6)ReEnc’:
    セキュリティパラメータκ,共通パラメータpp,rkA→B,暗号文cを入力として,c”←Eval(κ,pp,ekB,Dec,(cA→B,Enc(κ,pp,ekB,c)))を求め,c”を暗号文として出力するアルゴリズム(ただし,アルゴリズムEvalは,κ,pp,ek,論理回路C,任意のn個の暗号文の組c=(c1,…,cn)を入力として,完全準同型公開鍵暗号アルゴリズムに基づく暗号文を求めるアルゴリズムである),
    で構成される再変換可能暗号アルゴリズムΠ=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)
    とすることを特徴とするプロキシ暗号システム。
  3. 請求項1に記載のプロキシ暗号システムにおいて,
    上記再変換可能暗号アルゴリズムΠ=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)に替えて,再変換可能暗号アルゴリズムΠ=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)を,
    アルゴリズムBDを,x∈Zq nを入力として,k=1,…,δについて,u k∈{0,1}nを,xk=1 δ2k-1u kを満たすように求め,(u 1,…,u δ)∈{0,1}を出力するアルゴリズム,
    アルゴリズムP2を,s∈Zn qを入力とする場合には,[1,2,…,2δ-1]T(×)s∈Zq を出力するアルゴリズムPを実行し((×)は行列のクロネッカー積を表す),行列S=[s 1,…,s g]を入力とする場合には,[P(s 1),…,P(s g)]∈Zq nδ×gなる行列を出力するアルゴリズム,
    として,
    (1)Setup:
    AをZq m×nからランダムに選び,共通パラメータpp=(1κ,n,q,m,DΧ,A)を出力するアルゴリズム,
    (2)Gen:
    セキュリティパラメータκ,共通パラメータppを入力として,SをZq n×nからランダムに選び,E∈Zq m×nを分布DΧ nに従って選び,B=A・S+2Eを求め,暗号化鍵ek=Bと復号鍵dk=(S,B)を出力するアルゴリズム(以下,M=[A|B]∈Zq m×2n,S^=(-S|I)∈Zq 2n×nと表記する),
    (3)Enc:
    セキュリティパラメータκ,共通パラメータpp,ek=B,m∈{0,1}nを入力として,r←{-1,+1}mをランダムに選び,(u,v)=(rA,rB)を求め,さらに(u,c)=(u,v+m)を求め,(u,c)を暗号文として出力するアルゴリズム,
    (4)Dec:
    セキュリティパラメータκ,共通パラメータpp,dk=(S,B),暗号文(u,c)を入力として,d←(u,c)S^ mod qを求め,さらにm←d mod 2によって平文mを出力するアルゴリズム,
    (5)ReKeyGen:
    セキュリティパラメータκ,共通パラメータpp,dkA=(SA,BA)とekB=BBを入力として,R←{-1,+1}nδ×mをランダムに選び,MB=[A|BB]として,MA→B←RMB+[O|-P2(SA)]を求め,変換鍵rkA→B=(MA→B,BB)を出力するアルゴリズム,
    (6)ReEnc:
    セキュリティパラメータκ,共通パラメータpp,rkA→B=(MA→B,BB),暗号文(u,c)を入力として,(u’,c’)←BD(u)・MA→Bを求め,r~←{-1,+1}mをランダムに選び,(u~,v~)←r~・[A|BB]を求め,(u→-,c→-)←(u’+u~,c+c’+v~)を求め,変換済暗号文として(u→-,c→-)を出力するアルゴリズム,
    で構成される再変換可能暗号アルゴリズムΠ=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)
    とすることを特徴とするプロキシ暗号システム。
  4. 請求項1に記載のプロキシ暗号システムにおいて,
    上記再変換可能暗号アルゴリズムΠ=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)に替えて,再変換可能暗号アルゴリズムΠ=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)を,
    k(κ)を整数関数,n(κ)=2k(κ),f(x)=xn+1,q=q(κ)を素数,環R=Z[x]/(f(x))とし,Rq=R/qR,δを2δ-1<q<2δを満たす整数とし,
    アルゴリズムBDを,x∈Rqを入力とし,k=1,…,δについて,uk∈{0,1}n⊆Rqを,x=Σk=1 δ2k-1ukを満たすように求め,(u1,…,uδ)∈{0,1}⊆Rq δを出力するアルゴリズム,
    アルゴリズムP2を,s∈Rqを入力として,[1,2s,…,2δ-1s]T∈Rq δを出力するアルゴリズム,
    として,
    (1)Setup:
    aをRq mからランダムに選び,共通パラメータpp=(1κ,n,q,m,DΧ,a)を出力するアルゴリズム,
    (2)Gen:
    セキュリティパラメータκ,共通パラメータppを入力として,sをRqからランダムに選び,e←DΧ mを選び,b←sa+2e∈Rq mを求め,暗号化鍵ek=bと復号鍵dk=(s,b)を出力するアルゴリズム(以下,M=[a|b]∈Rq m×2,s^=(-s,1)∈Rq 2と表記する),
    (3)Enc:
    セキュリティパラメータκ,共通パラメータpp,ek=b,m∈{0,1}n⊆Rqを入力として,r←({-1,+1}n)mをランダムに選び,(u,v)=(r・a,r・b)を求め,さらに(u,c)=(u,v+m)を求め,(u,c)を暗号文として出力するアルゴリズム,
    (4)Dec:
    セキュリティパラメータκ,共通パラメータpp,dk=(s,b),(u,c)を入力として,d←(u,c) s^ mod q を求め,m←d mod 2によって平文mを出力するアルゴリズム,
    (5)ReKeyGen:
    セキュリティパラメータκ,共通パラメータpp,dkA=(sA,b A)とekB=b Bを入力として,R←({-1,+1}n)δ×mをランダムに選び,MB=[a|b B]として,MA→B←RMB+[0|-P2(sA)]を求め,変換鍵rkA→B=(MA→B,b B)を出力するアルゴリズム,
    (6)ReEnc:
    セキュリティパラメータκ,共通パラメータpp,rkA→B=(MA→B,b B),暗号文(u,c)を入力として,(u’,c’)←BD(u)・MA→Bを求め,r~←({-1,+1}n)mをランダムに選び,(u~,v~)←r~・[a|b B]を求め,(u-,c-)←(u’+u~,c+c’+v~)を求め,変換済暗号文として(u-,c-)を出力するアルゴリズム,
    で構成される再変換可能暗号アルゴリズムΠ=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)
    とすることを特徴とするプロキシ暗号システム。
  5. 請求項1に記載のプロキシ暗号システムにおいて,
    上記再変換可能暗号アルゴリズムΠ=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)に替えて,再変換可能暗号アルゴリズムΠ=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)を,
    k(κ)を整数関数,n(κ)=2k(κ),f(x)=xn+1,q=q(κ)を素数,環R=Z[x]/(f(x))とし,Rq=R/qR,δを2δ-1<q<2δを満たす整数とし,
    アルゴリズムBDを,x∈Rqを入力とし,k=1,…,δについて,uk∈{0,1}n⊆Rqを,x=Σk=1 δ2k-1ukを満たすように求め,(u1,…,uδ)∈{0,1}⊆Rq δを出力するアルゴリズム,
    アルゴリズムP2を,s∈Rqを入力として,[1,2s,…,2δ-1s]T∈Rq δを出力するアルゴリズム,
    として,
    (1)Setup:
    a←Rq,共通パラメータpp=(κ,n,q,DΧ,a)を出力するアルゴリズム,
    (2)Gen:
    共通パラメータppを入力として,s,e←DΧとし,b←as+2eを求め,ek=b,dk=(s,b)を出力するアルゴリズム,
    (3)Enc:
    共通パラメータpp,ek=b,m∈{0,1}n∈Rqを入力として,t,e’,e”←DΧを選び,(u,c)←(at+2e’,bt+2e”+m)として暗号文(u,c)を出力するアルゴリズム,
    (4)Dec:
    共通パラメータpp,暗号文(u,c)を入力として,d=c-us mod qを求め,m=d mod 2によって平文mを出力するアルゴリズム,
    (5)ReKeyGen:
    共通パラメータpp,ekB=bB,dkA=(sA,bA)を入力として,r,h,h’←DΧ δを選び,f←ar+2h,g←br+2h’+P2(sA)として,変換鍵rkA→B=(f,g,bB)を出力するアルゴリズム,
    (6)ReEnc:
    pp,rkA→B=(f,g,bB),暗号文(u,c)を入力として,(u’,c’)=BD(u)・[f,g]を求め,t’,f’,f”←DΧを選び,(u~,v~)=(at’+2f’,bBt’+2f”)を求め,(u-,c-)=(u’+u~,c+c’+v~)を求め,(u-,c-)を暗号文として出力するアルゴリズム,
    で構成される再変換可能暗号アルゴリズムΠ=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)
    とすることを特徴とするプロキシ暗号システム。
  6. 送信者装置,委託装置,受託装置,プロキシ装置を含むプロキシ暗号システムにおけるプロキシ暗号方法であって,
    (1)共通パラメータ生成アルゴリズムSetup:
    セキュリティパラメータκを入力として,共通パラメータppを出力する確率的アルゴリズム,
    (2)鍵生成アルゴリズムGen:
    セキュリティパラメータκと共通パラメータppを入力として,暗号化鍵と復号鍵の組(ek,dk)を出力する確率的アルゴリズム,
    (3)暗号化アルゴリズムEnc:
    セキュリティパラメータκ,共通パラメータpp,暗号化鍵ek,平文mを入力として,乱数rを任意に選択し,暗号文cを出力する確率的アルゴリズム,
    (4)復号アルゴリズムDec:
    セキュリティパラメータκ,共通パラメータpp,復号鍵dk,暗号文cを入力として,平文mを得るアルゴリズム,
    (5)変換鍵生成アルゴリズムReKeyGen:
    セキュリティパラメータκ,共通パラメータpp,委託装置の復号鍵dkA,受託装置の暗号化鍵ekBを入力として,変換鍵rkA→Bを出力する確率的アルゴリズム,
    (6)変換アルゴリズムReEnc:
    セキュリティパラメータκ,共通パラメータpp,変換鍵rkA→B,委託装置の公開鍵ekAを用いて生成された暗号文cAを入力として,受託装置の復号鍵dkBで復号可能な暗号文cBを出力する確率的アルゴリズム,
    で構成される再変換可能暗号アルゴリズムΠ=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)に基づくプロキシ暗号アルゴリズムπ=(SETUP; GEN; ENC; DEC; REKEYGEN; REENC)を,
    (1)SETUP:
    セキュリティパラメータκを入力として,pp←Setup(κ)を求め,Hを変換回数の最大として,PP=(pp,H)を出力するアルゴリズム,
    (2)GEN:
    セキュリティパラメータκとPP=(pp,H)を入力として,η=0,…,Hについて,(ek(η),dk(η))←Gen(κ,pp)を求め,暗号化鍵の組EK=(ek(0),…,ek(H))と復号鍵の組DK=(dk(0),…,dk(H))を出力するアルゴリズム,
    (3)ENC:
    セキュリティパラメータκ,PP=(pp,H),暗号化鍵の組EK=(ek(0),…,ek(H)),レベルη,平文mを入力として,c←Enc(κ,pp,ek(η),m)を求め,ct=(η,c)を暗号文として出力するアルゴリズム,
    (4)DEC:
    セキュリティパラメータκ,PP=(pp,H),復号鍵の組DK=(dk(0),…,dk(H)),暗号文(η,c)を入力として,m’←Dec(κ,pp,dk(η),c)を求め,復号された平文としてm’を出力するアルゴリズム,
    (5)REKEYGEN:
    セキュリティパラメータκ,PP=(pp,H),委託装置の復号鍵の組DKA=(dkA (0),…,dkA (H)),受託装置の暗号化鍵の組EKB=(ekB (0),…,ekB (H))を入力として,h=0,…,H-1について,rk(A,h)→(B,h+1)←ReKeyGen(κ,pp,dkA (h),ekB (h+1))を計算し,RKA→B=(rk(A,0)→(B,1),…,rk(A,H-1)→(B,H))を変換鍵として出力するアルゴリズム,
    (6)REENC:
    セキュリティパラメータκ,PP=(pp,H),変換鍵RKA→B=(rk(A,0)→(B,1),…,rk(A,H-1)→(B,H)),暗号文ct=(η,c)を入力として,c’←ReEnc(κ,pp,rk(A,η)→(B,η+1),c)を求め,(η+1,c’)を変換済暗号文として出力するアルゴリズム,
    として,
    送信者装置の設定部が,上記SETUPアルゴリズムを実行するステップと,
    委託装置の鍵生成部が,上記GENアルゴリズムを実行して,暗号化鍵の組EKA=(ekA (0),…,ekA (H))と復号鍵の組DKA=(dkA (0),…,dkA (H))を得るステップと,
    受託装置の鍵生成部が,上記GENアルゴリズムを実行して,暗号化鍵の組EKB=(ekB (0),…,ekB (H))と復号鍵の組DKB=(dkB (0),…,dkB (H))を得るステップと,
    送信者装置の暗号化部が,EK=(ek(0),…,ek(H))として委託装置の暗号化鍵の組EKA=(ekA (0),…,ekA (H))を用いて上記ENCアルゴリズムを実行するステップと,
    委託装置の変換鍵生成部が,上記REKEYGENを実行するステップと,
    プロキシ装置の変換暗号文生成部が,上記REENCを実行するステップと,
    受託装置の復号部が,DK=(dk(0),…,dk(H))として受託装置の復号鍵の組DKB=(dkB (0),…,dkB (H))用い,暗号文(η,c)として変換済暗号文(η+1,c’)を用いて上記DECを実行するステップと
    を有するプロキシ暗号方法。
  7. 請求項6に記載のプロキシ暗号方法において,
    上記再変換可能暗号アルゴリズムΠ=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)に替えて,再変換可能暗号アルゴリズムΠ=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)を,
    (1)Setup:
    セキュリティパラメータκを入力として,共通パラメータppを出力する確率的アルゴリズム,
    (2)Gen:
    セキュリティパラメータκと共通パラメータppを入力として,暗号化鍵と復号鍵の組(ek,dk)を出力する確率的アルゴリズム,
    (3)Enc:
    セキュリティパラメータκ,共通パラメータpp,暗号化鍵ek,平文mを入力として,乱数rを任意に選択し,暗号文cを出力する確率的アルゴリズム,
    (4)Dec:
    セキュリティパラメータκ,共通パラメータpp,復号鍵dk,暗号文cを入力として,平文mを得るアルゴリズム,
    (5)ReKeyGen’:
    セキュリティパラメータκ,共通パラメータpp,委託装置の復号鍵dkA,平文mとしての受託装置の暗号化鍵ekBを入力として,cA→B←Enc(κ,pp,ekB,dkA)を求め,rkA→B=(cA→B,ekB)を出力するアルゴリズム,
    (6)ReEnc’:
    セキュリティパラメータκ,共通パラメータpp,rkA→B,暗号文cを入力として,c”←Eval(κ,pp,ekB,Dec,(cA→B,Enc(κ,pp,ekB,c)))を求め,c”を暗号文として出力するアルゴリズム(ただし,アルゴリズムEvalは,κ,pp,ek,論理回路C,任意のn個の暗号文の組c=(c1,…,cn)を入力として,完全準同型公開鍵暗号アルゴリズムに基づく暗号文を求めるアルゴリズムである),
    で構成される再変換可能暗号アルゴリズムΠ=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)
    とすることを特徴とするプロキシ暗号方法。
  8. 請求項6に記載のプロキシ暗号方法において,
    上記再変換可能暗号アルゴリズムΠ=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)に替えて,再変換可能暗号アルゴリズムΠ=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)を,
    アルゴリズムBDを,x∈Zq nを入力として,k=1,…,δについて,u k∈{0,1}nを,xk=1 δ2k-1u kを満たすように求め,(u 1,…,u δ)∈{0,1}を出力するアルゴリズム,
    アルゴリズムP2を,s∈Zn qを入力とする場合には,[1,2,…,2δ-1]T(×)s∈Zq を出力するアルゴリズムPを実行し((×)は行列のクロネッカー積を表す),行列S=[s 1,…,s g]を入力とする場合には,[P(s 1),…,P(s g)]∈Zq nδ×gなる行列を出力するアルゴリズム,
    として,
    (1)Setup:
    AをZq m×nからランダムに選び,共通パラメータpp=(1κ,n,q,m,DΧ,A)を出力するアルゴリズム,
    (2)Gen:
    セキュリティパラメータκ,共通パラメータppを入力として,SをZq n×nからランダムに選び,E∈Zq m×nを分布DΧ nに従って選び,B=A・S+2Eを求め,暗号化鍵ek=Bと復号鍵dk=(S,B)を出力するアルゴリズム(以下,M=[A|B]∈Zq m×2n,S^=(-S|I)∈Zq 2n×nと表記する),
    (3)Enc:
    セキュリティパラメータκ,共通パラメータpp,ek=B,m∈{0,1}nを入力として,r←{-1,+1}mをランダムに選び,(u,v)=(rA,rB)を求め,さらに(u,c)=(u,v+m)を求め,(u,c)を暗号文として出力するアルゴリズム,
    (4)Dec:
    セキュリティパラメータκ,共通パラメータpp,dk=(S,B),暗号文(u,c)を入力として,d←(u,c)S^ mod qを求め,さらにm←d mod 2によって平文mを出力するアルゴリズム,
    (5)ReKeyGen:
    セキュリティパラメータκ,共通パラメータpp,dkA=(SA,BA)とekB=BBを入力として,R←{-1,+1}nδ×mをランダムに選び,MB=[A|BB]として,MA→B←RMB+[O|-P2(SA)]を求め,変換鍵rkA→B=(MA→B,BB)を出力するアルゴリズム,
    (6)ReEnc:
    セキュリティパラメータκ,共通パラメータpp,rkA→B=(MA→B,BB),暗号文(u,c)を入力として,(u’,c’)←BD(u)・MA→Bを求め,r~←{-1,+1}mをランダムに選び,(u~,v~)←r~・[A|BB]を求め,(u→-,c→-)←(u’+u~,c+c’+v~)を求め,変換済暗号文として(u→-,c→-)を出力するアルゴリズム,
    で構成される再変換可能暗号アルゴリズムΠ=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)
    とすることを特徴とするプロキシ暗号方法。
  9. 請求項6に記載のプロキシ暗号方法において,
    上記再変換可能暗号アルゴリズムΠ=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)に替えて,再変換可能暗号アルゴリズムΠ=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)を,
    k(κ)を整数関数,n(κ)=2k(κ),f(x)=xn+1,q=q(κ)を素数,環R=Z[x]/(f(x))とし,Rq=R/qR,δを2δ-1<q<2δを満たす整数とし,
    アルゴリズムBDを,x∈Rqを入力とし,k=1,…,δについて,uk∈{0,1}n⊆Rqを,x=Σk=1 δ2k-1ukを満たすように求め,(u1,…,uδ)∈{0,1}⊆Rq δを出力するアルゴリズム,
    アルゴリズムP2を,s∈Rqを入力として,[1,2s,…,2δ-1s]T∈Rq δを出力するアルゴリズム,
    として,
    (1)Setup:
    aをRq mからランダムに選び,共通パラメータpp=(1κ,n,q,m,DΧ,a)を出力するアルゴリズム,
    (2)Gen:
    セキュリティパラメータκ,共通パラメータppを入力として,sをRqからランダムに選び,e←DΧ mを選び,b←sa+2e∈Rq mを求め,暗号化鍵ek=bと復号鍵dk=(s,b)を出力するアルゴリズム(以下,M=[a|b]∈Rq m×2,s^=(-s,1)∈Rq 2と表記する),
    (3)Enc:
    セキュリティパラメータκ,共通パラメータpp,ek=b,m∈{0,1}n⊆Rqを入力として,r←({-1,+1}n)mをランダムに選び,(u,v)=(r・a,r・b)を求め,さらに(u,c)=(u,v+m)を求め,(u,c)を暗号文として出力するアルゴリズム,
    (4)Dec:
    セキュリティパラメータκ,共通パラメータpp,dk=(s,b),(u,c)を入力として,d←(u,c) s^ mod q を求め,m←d mod 2によって平文mを出力するアルゴリズム,
    (5)ReKeyGen:
    セキュリティパラメータκ,共通パラメータpp,dkA=(sA,b A)とekB=b Bを入力として,R←({-1,+1}n)δ×mをランダムに選び,MB=[a|b B]として,MA→B←RMB+[0|-P2(sA)]を求め,変換鍵rkA→B=(MA→B,b B)を出力するアルゴリズム,
    (6)ReEnc:
    セキュリティパラメータκ,共通パラメータpp,rkA→B=(MA→B,b B),暗号文(u,c)を入力として,(u’,c’)←BD(u)・MA→Bを求め,r~←({-1,+1}n)mをランダムに選び,(u~,v~)←r~・[a|b B]を求め,(u-,c-)←(u’+u~,c+c’+v~)を求め,変換済暗号文として(u-,c-)を出力するアルゴリズム,
    で構成される再変換可能暗号アルゴリズムΠ=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)
    とすることを特徴とするプロキシ暗号システム。
  10. 請求項6に記載のプロキシ暗号方法において,
    上記再変換可能暗号アルゴリズムΠ=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)に替えて,再変換可能暗号アルゴリズムΠ=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)を,
    k(κ)を整数関数,n(κ)=2k(κ),f(x)=xn+1,q=q(κ)を素数,環R=Z[x]/(f(x))とし,Rq=R/qR,δを2δ-1<q<2δを満たす整数とし,
    アルゴリズムBDを,x∈Rqを入力とし,k=1,…,δについて,uk∈{0,1}n⊆Rqを,x=Σk=1 δ2k-1ukを満たすように求め,(u1,…,uδ)∈{0,1}⊆Rq δを出力するアルゴリズム,
    アルゴリズムP2を,s∈Rqを入力として,[1,2s,…,2δ-1s]T∈Rq δを出力するアルゴリズム,
    として,
    (1)Setup:
    a←Rq,共通パラメータpp=(κ,n,q,DΧ,a)を出力するアルゴリズム,
    (2)Gen:
    共通パラメータppを入力として,s,e←DΧとし,b←as+2eを求め,ek=b,dk=(s,b)を出力するアルゴリズム,
    (3)Enc:
    共通パラメータpp,ek=b,m∈{0,1}n∈Rqを入力として,t,e’,e”←DΧを選び,(u,c)←(at+2e’,bt+2e”+m)として暗号文(u,c)を出力するアルゴリズム,
    (4)Dec:
    共通パラメータpp,暗号文(u,c)を入力として,d=c-us mod qを求め,m=d mod 2によって平文mを出力するアルゴリズム,
    (5)ReKeyGen:
    共通パラメータpp,ekB=bB,dkA=(sA,bA)を入力として,r,h,h’←DΧ δを選び,f←ar+2h,g←br+2h’+P2(sA)として,変換鍵rkA→B=(f,g,bB)を出力するアルゴリズム,
    (6)ReEnc:
    共通パラメータpp,rkA→B=(f,g,bB),暗号文(u,c)を入力として,(u’,c’)=BD(u)・[f,g]を求め,t’,f’,f”←DΧを選び,(u~,v~)=(at’+2f’,bBt’+2f”)を求め,(u-,c-)=(u’+u~,c+c’+v~)を求め,(u-,c-)を暗号文として出力するアルゴリズム,
    で構成される再変換可能暗号アルゴリズムΠ=(Setup; Gen; Enc; Dec; ReKeyGen; ReEnc)
    とすることを特徴とするプロキシ暗号方法。
  11. 請求項1から請求項5のいずれかに記載のプロキシ暗号システムに含まれる委託装置。
  12. 請求項1から請求項5のいずれかに記載のプロキシ暗号システムに含まれるプロキシ装置。
JP2012071881A 2012-03-27 2012-03-27 プロキシ暗号システム,プロキシ暗号方法,委託装置,プロキシ装置 Expired - Fee Related JP5713947B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012071881A JP5713947B2 (ja) 2012-03-27 2012-03-27 プロキシ暗号システム,プロキシ暗号方法,委託装置,プロキシ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012071881A JP5713947B2 (ja) 2012-03-27 2012-03-27 プロキシ暗号システム,プロキシ暗号方法,委託装置,プロキシ装置

Publications (2)

Publication Number Publication Date
JP2013207387A true JP2013207387A (ja) 2013-10-07
JP5713947B2 JP5713947B2 (ja) 2015-05-07

Family

ID=49526105

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012071881A Expired - Fee Related JP5713947B2 (ja) 2012-03-27 2012-03-27 プロキシ暗号システム,プロキシ暗号方法,委託装置,プロキシ装置

Country Status (1)

Country Link
JP (1) JP5713947B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016136024A1 (ja) * 2015-02-26 2016-09-01 株式会社日立情報通信エンジニアリング 鍵付替え方向制御システムおよび鍵付替え方向制御方法
US9979536B2 (en) 2013-10-09 2018-05-22 Mitsubishi Electric Corporation Cryptographic system, encryption device, re-encryption key generation device, re-encryption device, and cryptographic program
US10050782B2 (en) 2014-12-05 2018-08-14 Mitsubishi Electric Corporation Decryption condition addition device, cryptographic system, and computer readable medium

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JPN6014042423; Song Luo, Qingni Shen, Zhong Chen: 'Fully secure unidirectional identity-based proxy re-encryption' ICISC'11 Proceedings of the 14th international conference on Information Security and Cryptology , 20111130, Pages 109-126, Springer-Verlag Berlin, Heidelberg *
JPN6014042426; Jun Shao, Zhejiang Gongshang, Peng Liu, Zhenfu Cao, Guiyi Wei: 'Multi-Use Unidirectional Proxy Re-Encryption' Communications (ICC), 2011 IEEE International Conference on , 20110605, pp.1-5, IEEE *
JPN7014002915; Matthew Green, Giuseppe Ateniese: Identity-Based Proxy Re-encryption , 20061216, pp.1-21 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9979536B2 (en) 2013-10-09 2018-05-22 Mitsubishi Electric Corporation Cryptographic system, encryption device, re-encryption key generation device, re-encryption device, and cryptographic program
US10050782B2 (en) 2014-12-05 2018-08-14 Mitsubishi Electric Corporation Decryption condition addition device, cryptographic system, and computer readable medium
WO2016136024A1 (ja) * 2015-02-26 2016-09-01 株式会社日立情報通信エンジニアリング 鍵付替え方向制御システムおよび鍵付替え方向制御方法
JP2016158189A (ja) * 2015-02-26 2016-09-01 株式会社日立情報通信エンジニアリング 鍵付替え方向制御システムおよび鍵付替え方向制御方法

Also Published As

Publication number Publication date
JP5713947B2 (ja) 2015-05-07

Similar Documents

Publication Publication Date Title
JP5814880B2 (ja) 暗号システム、暗号方法、暗号プログラム及び復号装置
JP5432736B2 (ja) 暗号化された情報のためのキーワード検索システム、キーワード検索方法、検索要求装置、検索代行装置、プログラム、記録媒体
JP6194886B2 (ja) 暗号化統計処理システム、復号システム、鍵生成装置、プロキシ装置、暗号化統計データ生成装置、暗号化統計処理方法、および、暗号化統計処理プログラム
CN102187617B (zh) 密码系统
JP6522263B2 (ja) 準同型演算装置、暗号システム及び準同型演算プログラム
Wang et al. Proxy re-encryption schemes with key privacy from LWE
WO2014030706A1 (ja) 暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム
JP5713947B2 (ja) プロキシ暗号システム,プロキシ暗号方法,委託装置,プロキシ装置
JP2010049213A (ja) 暗号化装置、復号装置、暗号通信システム、方法及びプログラム
JP5496756B2 (ja) 環準同型を計算可能な公開鍵暗号方法、環準同型を計算可能な公開鍵暗号システム、送信装置、処理装置、受信装置、それらのプログラム及び記録媒体
JP7117964B2 (ja) 復号装置、暗号システム、復号方法及び復号プログラム
JP7119605B2 (ja) 暗号文変換システム、暗号文変換方法、及びプログラム
JP2013213965A (ja) 暗号化装置、再暗号化鍵難読化装置、再暗号化装置、復号装置、および再暗号化システム
JP2013217970A (ja) 格子問題に基づく階層型内積暗号システム,格子問題に基づく階層型内積暗号方法,装置
JP7325689B2 (ja) 暗号文変換システム、変換鍵生成方法、及び、変換鍵生成プログラム
JP4685621B2 (ja) 鍵生成装置、暗号化装置、復号化装置、乗法型ナップザック暗号システム、乗法型ナップザック暗号復号方法およびプログラム
JP2011040932A (ja) 認証付き暗号化装置、認証付き暗号化方法、検証付き復号装置、検証付き復号方法、暗号システム、プログラム、記録媒体
JP2019215391A (ja) 復号装置、暗号化装置及び暗号システム
JP5038866B2 (ja) 暗号通信方法、暗号化装置、復号装置、及びそれらのプログラム
JP5103407B2 (ja) 暗号化数値二進変換システム、暗号化数値二進変換方法、暗号化数値二進変換プログラム
JP5367023B2 (ja) 情報暗号化方法、情報暗号化装置、プログラム、および記録媒体
JP6189788B2 (ja) 鍵生成装置、再暗号化装置、およびプログラム
WO2017203743A1 (ja) 暗号化装置、復号装置及び暗号システム
JP6885325B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法、プログラム
JP6228912B2 (ja) ブラインド秘密鍵発行システム、ブラインドデータ検索システム、これらの方法、鍵生成サーバ、復号装置及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140203

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140918

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141007

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141128

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150310

R150 Certificate of patent or registration of utility model

Ref document number: 5713947

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees