説明

暗号化システム、復号方法、鍵更新方法、鍵生成装置、受信装置、代理計算装置、プログラム

【課題】属性情報のような公開された情報をもとに秘密鍵を生成する暗号方式であっても、公開鍵を変更することなく復号鍵を再発行・更新できる暗号化技術を提供する。
【解決手段】本発明の暗号化システムは、少なくとも受信装置、代理計算装置で構成される。そして、暗号化システムは、「秘密鍵Kから複数の復号鍵(受信用秘密鍵K,代理計算用秘密鍵K)を生成する方式」と「鍵を伴う一部の演算機能のリソースを外部装置(代理計算装置)に安全に代行させる方式」を組み合わせて構成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報を安全に配送するための暗号化システム、復号方法、鍵更新方法、鍵生成装置、受信装置、代理計算装置、プログラムに関する。
【背景技術】
【0002】
受信装置(受信者)の属性を用いた暗号化技術としては、非特許文献1が従来技術として知られている。非特許文献1に記載されているIDベース暗号の方式を簡単に説明すると、以下のとおりである。
【0003】
kは整数、pはkビットの素数、Gは位数pの巡回加算群、Gは位数pの巡回群、eはG×G→Gのように写像する双線形ペアリング関数、Hは群Gの元をnビットのビット列に写像するハッシュ関数を示す記号、Pは群Gの生成元、sは鍵生成装置が生成した0以上p−1以下の整数、PPub=sP、(P,PPub)は公開パラメータ、MaptoPointG1は任意長のビット列を群Gの元に写像する関数、IDは任意長のビット列、QID=MaptoPointG1(ID)、(+)はビット単位の排他的論理和を示す記号とする。
【0004】
送信装置は、乱数rを0以上p−1以下の整数からランダムに選択し、
U=rP
のように計算する。また、平文Mを用いて
ID=e(QID,PPub
を計算し、
V=M(+)H(gID
のように計算し、暗号文Cを
C=<U,V>
のように求める。
【0005】
受信装置は、dID=sQIDを復号用の鍵としてあらかじめ記録しておく。そして、受信装置は暗号文Cを受信すると、
M’=V(+)H(e(dID,U))
のように平文M’に復号する。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】D.Boneh and M.franklin, “Identity-based encryption from the Weil pairing”, CRYPT’01, Volume 2139 of LNCS, p.213-229, Springer, 2001.
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、属性情報のような公開された情報をもとに秘密鍵を生成する暗号方式では、秘密鍵と公開鍵の対応が一対一という特徴を持つ。そして、復号鍵を紛失した際や復号鍵が漏洩された際には、紛失した復号鍵もしくは漏洩された復号鍵による復号が出来ないようにするために復号鍵の更新を行う必要がある。しかし、受信者の属性の一部を公開鍵として利用している場合、公開鍵とする受信者属性の一部を変更しない限り復号鍵の更新が出来ない。また、鍵の漏洩・紛失対策を実施するためには公開鍵の変更が必要であるが、送信者にとって公開鍵が既知であった場合、公開鍵の変更を送信者に伝えるのが必ずしも容易ではない。
【0008】
本発明は、属性情報のような公開された情報をもとに秘密鍵を生成する暗号方式であっても、公開鍵を変更することなく復号鍵を再発行・更新できる暗号化技術を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明の暗号化システムは、送信装置、受信装置、代理計算装置、鍵生成装置で構成される。まず、pは素数、Gは位数pの巡回加算群、Gは位数pの巡回群、eはG×G→Gのように写像する双線形ペアリング関数、Hは群Gの元をnビットのビット列に写像するハッシュ関数を示す記号、Pは群Gの生成元、sは鍵生成装置が生成した0以上p−1以下の整数、PPub=sP、(P,PPub)は公開パラメータ、MaptoPointG1は任意長のビット列を群Gの元に写像する関数、IDは任意長のビット列、QID=MaptoPointG1(ID)とする。
【0010】
鍵生成装置は、少なくとも鍵生成部、鍵分割部、鍵配布部を備える。鍵生成部は、秘密鍵K
=sQID
のように求める。
【0011】
鍵分割部は、分割用乱数K’を0以上p−1以下の整数から選択し、秘密鍵Kと分割用乱数K’を用いて所定の方法1にしたがって受信用秘密鍵Kを求める。なお、分割用乱数K’は、0以上p−1以下の整数からランダムに選択することが望ましいが、あらかじめ定めた他の方法で選択してもよい。鍵配布部は、分割用乱数K’を用いて所定の方法2で代理計算用秘密鍵Kを求め、受信用秘密鍵Kを受信装置に送信し、代理計算用秘密鍵Kを代理計算装置に送信する。
【0012】
送信装置は、少なくとも暗号化部を備える。暗号化部は、乱数rを0以上p−1以下の整数から選択し、乱数情報UをU=rPのように計算し、
ID=e(QID,PPub
を計算し、H(gID)を用いて所定の方法3で平文Mを暗号化して暗号化情報Vを求め、乱数情報Uと暗号化情報Vを含む情報を暗号文Cとして出力する。なお、乱数rは、0以上p−1以下の整数からランダムに選択することが望ましいが、あらかじめ定めた他の方法で選択してもよい。
【0013】
受信装置は、少なくとも復号記録部、リクエスト作成部、復号部を備える。復号記録部は、少なくとも受信用秘密鍵Kを記録する。リクエスト作成部は、受信用秘密鍵Kと乱数情報Uを用いて所定の方法4でリクエストReqを作成する。復号部は、代理計算装置から受信したレスポンスResを用いて所定の方法2と所定の方法4に対応した方法である所定の方法5にしたがってgIDの値Wを求める。そして、H(W)を用いて所定の方法3に対応した方法である所定の方法6にしたがって暗号化情報Vを復号して平文M’に復号する。
【0014】
代理計算装置は、少なくとも代理記録部、レスポンス作成部を備える。代理記録部は、少なくとも代理計算用秘密鍵Kを記録する。レスポンス作成部は、リクエストReqに対して、所定の方法1と所定の方法2と所定の方法4に対応した方法である所定の方法7にしたがって代理計算用秘密鍵Kを用いた計算を行ってレスポンスResを求める。
【0015】
そして、受信装置が、鍵生成装置に鍵の再発行を要求すると以下の処理を行って受信用秘密鍵Kと代理計算用秘密鍵Kを更新する。鍵分割部は、新しい分割用乱数K3new’を0以上p−1以下の整数から選択し、秘密鍵Kと新しい分割用乱数K3new’を用いて所定の方法1にしたがって新しい受信用秘密鍵K1newを求める。なお、新しい分割用乱数K3new’は、0以上p−1以下の整数からランダムに選択することが望ましいが、あらかじめ定めた他の方法で選択してもよい。鍵配布部は、新しい分割用乱数K3new’を用いて所定の方法2で新しい代理計算用秘密鍵K3newを求める。そして、新しい受信用秘密鍵K1newを受信装置に送信し、新しい代理計算用秘密鍵K3newを代理計算装置に送信する。復号記録部は、受信用秘密鍵Kを新しい受信用秘密鍵K1newに更新する。代理記録部は、代理計算用秘密鍵Kを新しい代理計算用秘密鍵K3newに更新する。
【発明の効果】
【0016】
本発明の暗号化システムによれば、「秘密鍵Kから複数の復号鍵(受信用秘密鍵K,代理計算用秘密鍵K)を生成する方式」と「鍵を伴う一部の演算機能のリソースを外部装置(代理計算装置)に安全に代行させる方式」を組み合わせて構成する。したがって、属性情報のような公開された情報をもとに秘密鍵を生成する暗号方式であっても、公開鍵を変更することなく復号鍵を再発行・更新できる。
【図面の簡単な説明】
【0017】
【図1】本発明の暗号化システムの構成例を示す図。
【図2】実施例1の暗号化システムの秘密鍵を配布する処理フローを示す図。
【図3】本発明の暗号文の生成から復号までの処理フローを示す図。
【図4】実施例1の受信用秘密鍵Kと代理計算用秘密鍵Kを更新するときの処理フローを示す図。
【図5】実施例2の暗号化システムの秘密鍵を配布する処理フローを示す図。
【図6】実施例2の受信用秘密鍵Kと代理計算用秘密鍵Kを更新するときであって、保護用秘密鍵Kを送信する場合の処理フローを示す図。
【図7】実施例2の受信用秘密鍵Kと代理計算用秘密鍵Kを更新するときであって、保護用秘密鍵Kを求めるための情報Passを送信する場合の処理フローを示す図。
【図8】実施例2の保護用秘密鍵Kを更新するときの処理フローを示す図。
【発明を実施するための形態】
【0018】
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【実施例1】
【0019】
図1に実施例1の暗号化システムの構成例を示す。図2に実施例1の暗号化システムの秘密鍵を配布する処理フローを、図3に暗号文の生成から復号までの処理フローを示す。実施例1の暗号化システムは、送信装置100、受信装置200、代理計算装置300、鍵生成装置400で構成される。
【0020】
以下の説明では、kは大きな整数、pはkビットの素数、Gは位数pの巡回加算群、Gは位数pの巡回群、eはG×G→Gのように写像する双線形ペアリング関数、Hは群Gの元をnビットのビット列に写像するハッシュ関数を示す記号、Pは群Gの生成元、sは鍵生成装置400が生成した0以上p−1以下の整数、PPub=sP、(P,PPub)は公開パラメータ、MaptoPointG1は任意長のビット列を群Gの元に写像する関数、IDは任意長のビット列、QID=MaptoPointG1(ID)、(+)はビット単位の排他的論理和を示す記号、^はべき乗を示す記号とする。なお、XとYを郡Gの元とし、aとbを整数とすると、
e(aX,bY)=e(X,Y)ab (1)
の関係が成り立つ。双線形ペアリング関数としては、例えばWeilペアリングを用いればよい。また、IDとして受信装置200の属性を示すビット列を用いてもよい。
【0021】
送信装置100は、暗号化部110と暗号化記録部190を備える。受信装置200は、属性送信部210、リクエスト作成部220、復号部230、復号記録部290を備える。代理計算装置300は、レスポンス作成部310、代理記録部390を備える。鍵生成装置400は、鍵生成部410、鍵分割部420、鍵配布部430、鍵生成記録部490を備える。以下に、処理フローを説明しながら、これらの構成部の機能を説明する。
【0022】
[秘密鍵を配布する処理フロー、暗号文の生成から復号まで]
受信装置200の属性送信部210は、ビット列IDを鍵生成装置400に送信する(S211)。なお、ビット列IDは、A社の社員、20歳以上などの単独の属性情報を示すビット列でもよいし、A社の社員かつ男性、20歳以上または女性のような属性情報の論理式を示すビット列でもよい。鍵生成装置400の鍵生成部410は、秘密鍵K
=sQID
のように求める(S410)。
【0023】
鍵分割部420は、分割用乱数K’を0以上p−1以下の整数から選択し(S421)、秘密鍵Kと分割用乱数K’を用いて所定の方法1にしたがって受信用秘密鍵Kを求める(S422)。なお、分割用乱数K’は、0以上p−1以下の整数からランダムに選択することが望ましいが、あらかじめ定めた他の方法で選択してもよい。鍵配布部430は、分割用乱数K’を用いて所定の方法2で代理計算用秘密鍵Kを求め(S434)、受信用秘密鍵Kを受信装置200に送信し、代理計算用秘密鍵Kを代理計算装置300に送信する(S435)。受信装置200の復号記録部290は、受信用秘密鍵Kを記録する(S291)。代理計算装置300の代理記録部390は、代理計算用秘密鍵Kを記録する(S391)。
【0024】
属性送信部210は、ビット列IDを送信装置100に送信する(S212)。送信装置100の暗号化部110は、乱数rを0以上p−1以下の整数から選択し、乱数情報UをU=rPのように計算する。なお、乱数rは、0以上p−1以下の整数からランダムに選択することが望ましいが、あらかじめ定めた他の方法で選択してもよい。また、暗号化部110は、
ID=e(QID,PPub
を計算し、H(gID)を用いて所定の方法3で平文Mを暗号化して暗号化情報Vを求める。そして、暗号化部110は、乱数情報Uと暗号化情報Vを含む情報を暗号文Cとして出力する(S110)。
【0025】
受信装置200のリクエスト作成部220は、受信用秘密鍵Kと乱数情報Uを用いて所定の方法4でリクエストReqを作成する(S222)。なお、リクエスト作成部220は、乱数rtmpを0以上p−1以下の整数から選択し(S221)、ステップS222の所定の方法4で乱数rtmpも用いてもよい。このようにすることで、受信用秘密鍵Kに関する情報を隠蔽できる。なお、乱数rtmpは、0以上p−1以下の整数からランダムに選択することが望ましいが、あらかじめ定めた他の方法で選択してもよい。
【0026】
代理計算装置300のレスポンス作成部310は、リクエストReqに対して、所定の方法1と所定の方法2と所定の方法4に対応した方法である所定の方法7にしたがって代理計算用秘密鍵Kを用いた計算を行ってレスポンスResを求める(S310)。受信装置200の復号部230は、代理計算装置300から受信したレスポンスResを用いて所定の方法2と所定の方法4に対応した方法である所定の方法5にしたがってgIDの値Wを求める。そして、H(W)を用いて所定の方法3に対応した方法である所定の方法6にしたがって暗号化情報Vを復号して平文M’に復号する(S230)。
【0027】
次に、上述の所定の方法1〜7について説明する。所定の方法1〜7は「秘密鍵Kから複数の復号鍵(受信用秘密鍵K,代理計算用秘密鍵K)を生成する方式」と「鍵を伴う一部の演算機能のリソースを外部装置(代理計算装置)に安全に代行させる方式」を組み合わせて構成するために互いに対応していればよい。例えば、以下に示すような組み合わせがあり得る。ただし、「秘密鍵Kから複数の復号鍵(受信用秘密鍵K,代理計算用秘密鍵K)を生成する方式」と「鍵を伴う一部の演算機能のリソースを外部装置(代理計算装置)に安全に代行させる方式」とが機能する範囲ならば、これらの組み合わせに限定する必要はない。
【0028】
[所定の方法の組み合わせ1−1]
所定の方法1では、受信用秘密鍵K
=K’ K
のように求める。所定の方法2では、では、代理計算用秘密鍵K
=K−1
のように求める。所定の方法3では、暗号化情報Vを
V=M(+)H(gID
のように求める。所定の方法4では、リクエストReqを
Req=e(K,U)
のように求める。所定の方法5では、値Wを
W=Res
のように求める。所定の方法6では、平文M’を
M’=V(+)H(W)
のように求める。所定の方法7では、レスポンスResを
Res=Req^K
のように求める。
【0029】
なお、上述の所定の方法の組み合わせの一部を以下の例ように変更してもよい。
【0030】
第1の例では、所定の方法2を
=K
とし、所定の方法7を
Res=Req^(K−1
としてもよい。
【0031】
第2の例では、所定の方法1を
=(K’)−1
とし、所定の方法2を
=K
とし、所定の方法7を
Res=Req^K
としてもよい。
【0032】
第3の例では、所定の方法3を、H(gID)を共通鍵として平文Mを暗号化し、暗号化情報Vを求めてもよい。この場合は、所定の方法6は、H(W)を共通鍵として暗号化情報Vを平文M’に復号するとすればよい。
【0033】
[所定の方法の組み合わせ1−2]
所定の方法1では、受信用秘密鍵K
=K’ K
のように求める。所定の方法2では、では、代理計算用秘密鍵K
=K−1
のように求める。所定の方法3では、暗号化情報Vを
V=M(+)H(gID
のように求める。所定の方法4では、リクエストReqを受信用秘密鍵Kと乱数情報Uを含む情報とする。所定の方法5では、値Wを
W=Res
のように求める。所定の方法6では、平文M’を
M’=V(+)H(W)
のように求める。所定の方法7では、レスポンスResを
Res=e(K,U)^K
のように求める。ただし、ペアリングeでは式(1)が成り立つので、
Res=e(K,U) または Res=e(K,KU)
のようにレスポンスResを求めてもよい。
【0034】
なお、上述の所定の方法の組み合わせの一部を以下の例ように変更してもよい。
【0035】
第1の例では、所定の方法2を
=K
とし、所定の方法7を
Res=e(K,U)^(K−1
としてもよい。ただし、ペアリングeでは式(1)が成り立つので、
Res=e((K−1)K,U) または Res=e(K,(K−1)U)
のようにレスポンスResを求めてもよい。
【0036】
第2の例では、所定の方法1を
=(K’)−1
とし、所定の方法2を
=K
とし、所定の方法7を
Res=e(K,U)^K
としてもよい。ただし、ペアリングeでは式(1)が成り立つので、
Res=e(K,U) または Res=e(K,KU)
のようにレスポンスResを求めてもよい。
【0037】
第3の例では、所定の方法3を、H(gID)を共通鍵として平文Mを暗号化し、暗号化情報Vを求めてもよい。この場合は、所定の方法6は、H(W)を共通鍵として暗号化情報Vを平文M’に復号するとすればよい。
【0038】
[所定の方法の組み合わせ1−3]
所定の方法1では、受信用秘密鍵K
=K’ K
のように求める。所定の方法2では、では、代理計算用秘密鍵K
=K−1
のように求める。所定の方法3では、暗号化情報Vを
V=M(+)H(gID
のように求める。所定の方法4では、リクエスト作成部220が、乱数rtmpを0以上p−1以下の整数から選択し(S221)、リクエストReqを
Req=e(rtmp,U)
のように求める。ただし、ペアリングeでは式(1)が成り立つので、
Req=e(K,U)^rtmp
のようにリクエストReqを求めてもよい。所定の方法5では、値Wを
W=Res^rtmp−1
のように求める。所定の方法6では、平文M’を
M’=V(+)H(W)
のように求める。所定の方法7では、レスポンスResを
Res=Req^K
のように求める。
【0039】
なお、この組み合わせのときは、所定の組み合わせ1−1と同じように一部を変更してもよい。
【0040】
[所定の方法の組み合わせ1−4]
所定の方法1では、受信用秘密鍵K
=K’ K
のように求める。所定の方法2では、では、代理計算用秘密鍵K
=K−1
のように求める。所定の方法3では、暗号化情報Vを
V=M(+)H(gID
のように求める。所定の方法4では、リクエスト作成部220が、乱数rtmpを0以上p−1以下の整数から選択し(S221)、隠蔽鍵Ktmp
tmp=rtmp
を求め、リクエストReqを隠蔽鍵Ktmpと乱数情報Uを含む情報とする。所定の方法5では、値Wを
W=Res^rtmp−1
のように求める。所定の方法6では、平文M’を
M’=V(+)H(W)
のように求める。所定の方法7では、レスポンスResを
Res=e(Ktmp,U)^K
のように求める。ただし、ペアリングeでは式(1)が成り立つので、
Res=e(Ktmp,U) または Res=e(Ktmp,KU)
のようにレスポンスResを求めてもよい。
【0041】
なお、上述の所定の方法の組み合わせの一部を以下の例ように変更してもよい。
【0042】
第1の例では、所定の方法2を
=K
とし、所定の方法7を
Res=e(Ktmp,U)^(K−1
としてもよい。ただし、ペアリングeでは式(1)が成り立つので、
Res=e((K−1)Ktmp,U) または Res=e(Ktmp,(K−1)U)
のようにレスポンスResを求めてもよい。
【0043】
第2の例では、所定の方法1を
=(K’)−1
とし、所定の方法2を
=K
とし、所定の方法7を
Res=e(Ktmp,U)^K
としてもよい。ただし、ペアリングeでは式(1)が成り立つので、
Res=e(Ktmp,U) または Res=e(Ktmp,KU)
のようにレスポンスResを求めてもよい。
【0044】
第3の例では、所定の方法3を、H(gID)を共通鍵として平文Mを暗号化し、暗号化情報Vを求めてもよい。この場合は、所定の方法6は、H(W)を共通鍵として暗号化情報Vを平文M’に復号するとすればよい。
【0045】
[受信用秘密鍵Kと代理計算用秘密鍵Kの更新]
図4に受信用秘密鍵Kと代理計算用秘密鍵Kを更新するときの処理フローを示す。受信装置200が、鍵生成装置400に鍵の再発行を要求する(S214)。鍵生成装置400の鍵分割部420は、新しい分割用乱数K3new’を0以上p−1以下の整数から選択し(S424)、秘密鍵Kと新しい分割用乱数K3new’を用いて所定の方法1にしたがって新しい受信用秘密鍵K1newを求める(S422)。なお、新しい分割用乱数K3new’は、0以上p−1以下の整数からランダムに選択してもよいし、あらかじめ定めた方法で選択してもよい。鍵配布部430は、新しい分割用乱数K3new’を用いて所定の方法2で新しい代理計算用秘密鍵K3newを求める(S434)。そして、新しい受信用秘密鍵K1newを受信装置に送信し、新しい代理計算用秘密鍵K3newを代理計算装置に送信する(S435)。復号記録部290は、受信用秘密鍵Kを新しい受信用秘密鍵K1newに更新する(S292)。代理記録部390は、代理計算用秘密鍵Kを新しい代理計算用秘密鍵K3newに更新する(S392)。
【0046】
実施例1の暗号化システムによれば、「秘密鍵Kから複数の復号鍵(受信用秘密鍵K,代理計算用秘密鍵K)を生成する方式」と「鍵を伴う一部の演算機能のリソースを外部装置(代理計算装置)に安全に代行させる方式」を組み合わせて構成する。したがって、属性情報のような公開された情報をもとに秘密鍵を生成する暗号方式であっても、公開鍵を変更することなく復号鍵を再発行・更新できる。
【実施例2】
【0047】
実施例2の暗号化システムの構成例も図1に示す。図5に実施例2の暗号化システムの秘密鍵を配布する処理フローを、図3に暗号文の生成から復号までの処理フローを示す。実施例2の暗号化システムも、送信装置100、受信装置200、代理計算装置300、鍵生成装置400で構成される。
【0048】
以下の説明でも、kは大きな整数、pはkビットの素数、Gは位数pの巡回加算群、Gは位数pの巡回群、eはG×G→Gのように写像する双線形ペアリング関数、Hは群Gの元をnビットのビット列に写像するハッシュ関数を示す記号、Pは群Gの生成元、sは鍵生成装置400が生成した0以上p−1以下の整数、PPub=sP、(P,PPub)は公開パラメータ、MaptoPointG1は任意長のビット列を群Gの元に写像する関数、IDは任意長のビット列、QID=MaptoPointG1(ID)、(+)はビット単位の排他的論理和を示す記号、^はべき乗を示す記号とする。なお、IDとして受信装置200の属性を示すビット列を用いてもよい。
【0049】
送信装置100は、暗号化部110と暗号化記録部190を備える。受信装置200は、属性送信部210、リクエスト作成部220、復号部230、保護用秘密鍵更新部240、復号記録部290を備える。代理計算装置300は、レスポンス作成部310、代理計算用秘密鍵更新部320、代理記録部390を備える。鍵生成装置400は、鍵生成部410、鍵分割部420、鍵配布部430、鍵生成記録部490を備える。以下に、処理フローを説明しながら、これらの構成部の機能を説明する。
【0050】
[秘密鍵を配布する処理フロー、暗号文の生成から復号まで]
受信装置200の属性送信部210は、ビット列IDを鍵生成装置400に送信する(S211)。なお、ビット列IDは、A社の社員、20歳以上などの単独の属性情報でもよいし、A社の社員かつ男性、20歳以上または女性のような属性情報の論理式を示す情報でもよい。鍵生成装置400の鍵生成部410は、秘密鍵K
=sQID
のように求める(S410)。
【0051】
鍵分割部420は、分割用乱数K’を0以上p−1以下の整数から選択し(S421)、秘密鍵Kと分割用乱数K’を用いて所定の方法1にしたがって受信用秘密鍵Kを求める(S422)。なお、分割用乱数K’は、0以上p−1以下の整数からランダムに選択することが望ましいが、あらかじめ定めた他の方法で選択してもよい。鍵配布部430は、分割用乱数K’を用いて所定の方法2で代理計算用秘密鍵Kを求める。本実施例の所定の方法2では、保護用秘密鍵Kを0以上p−1以下の整数から選択する(S431)。分割用乱数K’と保護用秘密鍵Kを用いて所定の方法2’にしたがって代理計算用秘密鍵Kを求める(S432)。なお、保護用秘密鍵Kは、鍵配布部430が単純に乱数として求める方法以外に、次のように求めてもよい。鍵配布部430が受信装置200から保護用秘密鍵Kを求めるための情報Passを受信する。そして、鍵配布部430が情報Passを用いて保護用秘密鍵Kを求めてもよい。例えば、情報Passとハッシュ関数を用いて保護用秘密鍵Kを求めてもよいし、情報Pass自体を保護用秘密鍵Kとしてもよい。また、情報Passとして、例えば受信装置200の利用者(受信者)が設定したパスワードを用いてもよい。また、保護用秘密鍵Kは、0以上p−1以下の整数からランダムに選択することが望ましいが、あらかじめ定めた他の方法で選択してもよい。
【0052】
鍵配布部430は、受信用秘密鍵Kと保護用秘密鍵Kを受信装置200に送信し、代理計算用秘密鍵Kを代理計算装置300に送信する(S433)。受信装置200の復号記録部290は、受信用秘密鍵Kと保護用秘密鍵Kを記録する(S291)。なお、復号記録部290は、物理的に別の2つ以上の記録装置で構成してもよい。例えば、復号記録部290をICカードとパソコンのハードディスクで構成してもよい。そして、受信用秘密鍵KをICカードに記録し、保護用秘密鍵Kをパソコンのハードディスクに記録するようにしてもよい。このように物理的に別々に受信用秘密鍵Kと保護用秘密鍵Kを記録すれば、両方を同時に漏洩・紛失するリスクを低減できる。また、後述の鍵の更新でも、漏洩・紛失した鍵のみを更新すればよくなる。代理計算装置300の代理記録部390は、代理計算用秘密鍵Kを記録する(S391)。
【0053】
属性送信部210は、ビット列IDを送信装置100に送信する(S212)。送信装置100の暗号化部110は、乱数rを0以上p−1以下の整数から選択し、乱数情報UをU=rPのように計算する。なお、乱数rは、0以上p−1以下の整数からランダムに選択することが望ましいが、あらかじめ定めた他の方法で選択してもよい。また、暗号化部110は、
ID=e(QID,PPub
を計算し、H(gID)を用いて所定の方法3で平文Mを暗号化して暗号化情報Vを求める。そして、暗号化部110は、乱数情報Uと暗号化情報Vを含む情報を暗号文Cとして出力する(S110)。
【0054】
受信装置200のリクエスト作成部220は、受信用秘密鍵Kと乱数情報Uを用いて所定の方法4でリクエストReqを作成する(S222)。なお、リクエスト作成部220は、乱数rtmpを0以上p−1以下の整数から選択し(S221)、ステップS222の所定の方法4で乱数rtmpも用いてもよい。このようにすることで、受信用秘密鍵Kに関する情報を隠蔽できる。なお、乱数rtmpは、0以上p−1以下の整数からランダムに選択することが望ましいが、あらかじめ定めた他の方法で選択してもよい。
【0055】
代理計算装置300のレスポンス作成部310は、リクエストReqに対して、所定の方法1と所定の方法2と所定の方法4に対応した方法である所定の方法7にしたがって代理計算用秘密鍵Kを用いた計算を行ってレスポンスResを求める(S310)。受信装置200の復号部230は、代理計算装置300から受信したレスポンスResを用いて所定の方法2と所定の方法4に対応した方法である所定の方法5にしたがってgIDの値Wを求める。そして、H(W)を用いて所定の方法3に対応した方法である所定の方法6にしたがって暗号化情報Vを復号して平文M’に復号する(S230)。
【0056】
次に、上述の所定の方法1〜7について説明する。所定の方法1〜7は「秘密鍵Kから複数の復号鍵(受信用秘密鍵K,保護用秘密鍵K,代理計算用秘密鍵K)を生成する方式」と「鍵を伴う一部の演算機能のリソースを外部装置(代理計算装置)に安全に代行させる方式」を組み合わせて構成するために互いに対応していればよい。例えば、以下に示すような組み合わせがあり得る。ただし、「秘密鍵Kから複数の復号鍵(受信用秘密鍵K,保護用秘密鍵K,代理計算用秘密鍵K)を生成する方式」と「鍵を伴う一部の演算機能のリソースを外部装置(代理計算装置)に安全に代行させる方式」とが機能する範囲ならば、これらの組み合わせに限定する必要はない。
【0057】
[所定の方法の組み合わせ2−1]
所定の方法1では、受信用秘密鍵K
=K’K
のように求める。所定の方法2’では、代理計算用秘密鍵K
=(K’)−1
のように求める。所定の方法3では、暗号化情報Vを
V=M(+)H(gID
のように求める。所定の方法4では、リクエストReqを
Req=e(K,U)
のように求める。所定の方法5では、値Wを
W=Res^K
のように求める。所定の方法6では、平文M’を
M’=V(+)H(W)
のように求める。所定の方法7では、レスポンスResを
Res=Req^K
のように求める。
【0058】
なお、上述の所定の方法の組み合わせの一部を以下の例ように変更してもよい。
【0059】
第1の例では、所定の方法2’を
=(K−1
とし、所定の方法7を
Res=Req^(K−1
としてもよい。
【0060】
第2の例では、所定の方法1を
=(K’)−1
とし、所定の方法2’を
=(K−1
とし、所定の方法7を
Res=Req^K
としてもよい。
【0061】
第3の例では、所定の方法3を、H(gID)を共通鍵として平文Mを暗号化し、暗号化情報Vを求めてもよい。この場合は、所定の方法6は、H(W)を共通鍵として暗号化情報Vを平文M’に復号するとすればよい。
【0062】
[所定の方法の組み合わせ2−2]
所定の方法1では、受信用秘密鍵K
=K’K
のように求める。所定の方法2’では、代理計算用秘密鍵K
=(K’)−1
のように求める。所定の方法3では、暗号化情報Vを
V=M(+)H(gID
のように求める。所定の方法4では、リクエストReqを受信用秘密鍵Kと乱数情報Uを含む情報とする。所定の方法5では、値Wを
W=Res^K
のように求める。所定の方法6では、平文M’を
M’=V(+)H(W)
のように求める。所定の方法7では、レスポンスResを
Res=e(K,U)^K
のように求める。ただし、ペアリングeでは式(1)が成り立つので、
Res=e(K,U) または Res=e(K,KU)
のようにレスポンスResを求めてもよい。
【0063】
なお、上述の所定の方法の組み合わせの一部を以下の例ように変更してもよい。
【0064】
第1の例では、所定の方法2’を
=(K−1
とし、所定の方法7を
Res=e(K,U)^(K−1
としてもよい。ただし、ペアリングeでは式(1)が成り立つので、
Res=e((K−1)K,U) または Res=e(K,(K−1)U)
のようにレスポンスResを求めてもよい。
【0065】
第2の例では、所定の方法1を
=(K’)−1
とし、所定の方法2’を
=(K−1
とし、所定の方法7を
Res=e(K,U)^K
としてもよい。ただし、ペアリングeでは式(1)が成り立つので、
Res=e(K,U) または Res=e(K,KU)
のようにレスポンスResを求めてもよい。
【0066】
第3の例では、所定の方法3を、H(gID)を共通鍵として平文Mを暗号化し、暗号化情報Vを求めてもよい。この場合は、所定の方法6は、H(W)を共通鍵として暗号化情報Vを平文M’に復号するとすればよい。
【0067】
[所定の方法の組み合わせ2−3]
所定の方法1では、受信用秘密鍵K
=K’K
のように求める。所定の方法2’では、代理計算用秘密鍵K
=(K’)−1
のように求める。所定の方法3では、暗号化情報Vを
V=M(+)H(gID
のように求める。所定の方法4では、リクエスト作成部220が、乱数rtmpを0以上p−1以下の整数から選択し(S221)、リクエストReqを
Req=e(rtmp,U)
のように求める。ただし、ペアリングeでは式(1)が成り立つので、
Req=e(K,U)^rtmp
のようにリクエストReqを求めてもよい。所定の方法5では、値Wを
W=Res^(rtmp−1
のように求める。所定の方法6では、平文M’を
M’=V(+)H(W)
のように求める。所定の方法7では、レスポンスResを
Res=Req^K
のように求める。
【0068】
なお、この組み合わせのときは、所定の組み合わせ1−1と同じように一部を変更してもよい。
【0069】
[所定の方法の組み合わせ2−4]
所定の方法1では、受信用秘密鍵K
=K’K
のように求める。所定の方法2’では、代理計算用秘密鍵K
=(K’)−1
のように求める。所定の方法3では、暗号化情報Vを
V=M(+)H(gID
のように求める。所定の方法4では、リクエスト作成部220が、乱数rtmpを0以上p−1以下の整数から選択し(S221)、隠蔽鍵Ktmp
tmp=rtmp
を求め、リクエストReqを隠蔽鍵Ktmpと乱数情報Uを含む情報とする。所定の方法5では、値Wを
W=Res^(rtmp−1
のように求める。所定の方法6では、平文M’を
M’=V(+)H(W)
のように求める。所定の方法7では、レスポンスResを
Res=e(Ktmp,U)^K
のように求める。ただし、ペアリングeでは式(1)が成り立つので、
Res=e(Ktmp,U) または Res=e(Ktmp,KU)
のようにレスポンスResを求めてもよい。
【0070】
なお、上述の所定の方法の組み合わせの一部を以下の例ように変更してもよい。
【0071】
第1の例では、所定の方法2’を
=(K−1
とし、所定の方法7を
Res=e(Ktmp,U)^(K−1
としてもよい。ただし、ペアリングeでは式(1)が成り立つので、
Res=e((K−1)Ktmp,U) または Res=e(Ktmp,(K−1)U)
のようにレスポンスResを求めてもよい。
【0072】
第2の例では、所定の方法1を
=(K’)−1
とし、所定の方法2’を
=(K−1
とし、所定の方法7を
Res=e(Ktmp,U)^K
としてもよい。ただし、ペアリングeでは式(1)が成り立つので、
Res=e(Ktmp,U) または Res=e(Ktmp,KU)
のようにレスポンスResを求めてもよい。
【0073】
第3の例では、所定の方法3を、H(gID)を共通鍵として平文Mを暗号化し、暗号化情報Vを求めてもよい。この場合は、所定の方法6は、H(W)を共通鍵として暗号化情報Vを平文M’に復号するとすればよい。
【0074】
[受信用秘密鍵Kと代理計算用秘密鍵Kの更新1]
図6に受信用秘密鍵Kと代理計算用秘密鍵Kを更新するときであって、保護用秘密鍵Kを送信する場合の処理フローを示す。受信装置200が、鍵生成装置400に保護用秘密鍵Kを送信し、鍵の再発行を要求する(S213)。鍵生成装置400の鍵分割部420は、新しい分割用乱数K3new’を0以上p−1以下の整数から選択し(S424)、秘密鍵Kと新しい分割用乱数K3new’を用いて所定の方法1にしたがって新しい受信用秘密鍵K1newを求める(S422)。なお、新しい分割用乱数K3new’は、0以上p−1以下の整数からランダムに選択することが望ましいが、あらかじめ定めた他の方法で選択してもよい。鍵配布部430は、新しい分割用乱数K3new’と受信した保護用秘密鍵Kを用いて所定の方法2’にしたがって新しい代理計算用秘密鍵K3newを求める(S432)。そして、新しい受信用秘密鍵K1newを前記受信装置に送信し、新しい代理計算用秘密鍵K3newを前記代理計算装置に送信する(S435)。復号記録部290は、受信用秘密鍵Kを新しい受信用秘密鍵K1newに更新する(S292)。代理記録部390は、代理計算用秘密鍵Kを新しい代理計算用秘密鍵K3newに更新する(S392)。
【0075】
[受信用秘密鍵Kと代理計算用秘密鍵Kの更新2]
図7に受信用秘密鍵Kと代理計算用秘密鍵Kを更新するときであって、保護用秘密鍵Kを求めるための情報Passを送信する場合の処理フローを示す。受信装置200が、鍵生成装置400に保護用秘密鍵Kを求めるための情報Passを送信し、鍵の再発行を要求する(S215)。鍵生成装置400の鍵分割部420は、新しい分割用乱数K3new’を0以上p−1以下の整数から選択し(S424)、秘密鍵Kと新しい分割用乱数K3new’を用いて所定の方法1にしたがって新しい受信用秘密鍵K1newを求める(S422)。なお、新しい分割用乱数K3new’は、0以上p−1以下の整数からランダムに選択することが望ましいが、あらかじめ定めた他の方法で選択してもよい。鍵配布部430は、情報Passから保護用秘密鍵Kを求め、新しい分割用乱数K3new’と保護用秘密鍵Kを用いて前記所定の方法2’にしたがって新しい代理計算用秘密鍵K3newを求める(S432’)。例えば、情報Passとハッシュ関数を用いて保護用秘密鍵Kを求めてもよいし、情報Pass自体を保護用秘密鍵Kとしてもよい。そして、新しい受信用秘密鍵K1newを前記受信装置に送信し、新しい代理計算用秘密鍵K3newを前記代理計算装置に送信する(S435)。復号記録部290は、受信用秘密鍵Kを新しい受信用秘密鍵K1newに更新する(S292)。代理記録部390は、代理計算用秘密鍵Kを新しい代理計算用秘密鍵K3newに更新する(S392)。
【0076】
[保護用秘密鍵Kの更新]
図8に保護用秘密鍵Kを更新するときの処理フローを示す。受信装置200の保護用秘密鍵更新部240は、新しい保護用秘密鍵K2newを0以上p−1以下の整数から選択する(S241)。例えば、受信者が新しい情報Passを設定し、その情報Passとハッシュ関数を用いて保護用秘密鍵K2newを求めてもよいし、その情報Pass自体を保護用秘密鍵K2newとしてもよい。また、新しい保護用秘密鍵K2newは、0以上p−1以下の整数から上記のようにランダムに選択することが望ましいが、あらかじめ定めた他の方法で選択してもよい。次に、保護用秘密鍵更新部240は、所定の方法2’に対応した所定の方法8にしたがって復号記録部が記録している保護用秘密鍵Kと新しい保護用秘密鍵K2newとの違いに応じた値であるアップデータUpdを求め、アップデータUpdを代理計算装置に送る(S242)。
【0077】
代理計算装置の代理計算用秘密鍵更新部320は、代理記録部390に記録している代理計算用秘密鍵KとアップデータUpdを用いて、所定の方法8に対応した所定の方法9にしたがって新しい代理計算用秘密鍵K3newを求める(S320)。復号記録部290は、保護用秘密鍵Kを新しい保護用秘密鍵K2newに更新する(S293)。代理記録部は、代理計算用秘密鍵Kを新しい代理計算用秘密鍵K3newに更新する(S293)。
【0078】
例えば、情報Passとして受信装置200の利用者(受信者)が設定したパスワードを用いれば、受信者がパスワードを変更するたびに、保護用秘密鍵Kと代理計算用秘密鍵Kを更新することも可能である。
【0079】
また、例えば、所定の方法8では、アップデータUpdを
Upd=K2new−1
のように求める。そして、所定の方法9では、新しい代理計算用秘密鍵K3new
3new=Upd・K
のように求めればよい。所定の方法8と所定の方法9はこのように対応付けされた組み合わせであればよく、上述の方法に限定する必要はない。
【0080】
実施例2の暗号化システムによれば、「秘密鍵Kから複数の復号鍵(受信用秘密鍵K,保護用秘密鍵K,代理計算用秘密鍵K)を生成する方式」と「鍵を伴う一部の演算機能のリソースを外部装置(代理計算装置)に安全に代行させる方式」を組み合わせて構成する。したがって、属性情報のような公開された情報をもとに秘密鍵を生成する暗号方式であっても、公開鍵を変更することなく復号鍵を再発行・更新できる。
【0081】
[プログラム、記録媒体]
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【0082】
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【0083】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【0084】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0085】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0086】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【産業上の利用可能性】
【0087】
本発明は、暗号通信の分野に利用することができる。
【符号の説明】
【0088】
100 送信装置 110 暗号化部
190 暗号化記録部 200 受信装置
210 属性送信部 220 リクエスト作成部
230 復号部 240 保護用秘密鍵更新部
290 復号記録部 300 代理計算装置
310 レスポンス作成部 320 代理計算用秘密鍵更新部
390 代理記録部 400 鍵生成装置
410 鍵生成部 420 鍵分割部
430 鍵配布部 490 鍵生成記録部

【特許請求の範囲】
【請求項1】
少なくとも受信装置、代理計算装置を有する暗号化システムであって、
pは素数、Gは位数pの巡回加算群、Gは位数pの巡回群、eはG×G→Gのように写像する双線形ペアリング関数、Hは群Gの元をnビットのビット列に写像するハッシュ関数を示す記号、Pは群Gの生成元、sは0以上p−1以下の整数、PPub=sP、(P,PPub)は公開パラメータ、MaptoPointG1は任意長のビット列を群Gの元に写像する関数、IDは任意長のビット列、QID=MaptoPointG1(ID)、KはK=sQIDのように求められた秘密鍵、K’は0以上p−1以下の整数から選択された分割用乱数、Kは秘密鍵Kと分割用乱数K’を用いて所定の方法1で求められた受信用秘密鍵、Kは分割用乱数K’を用いて所定の方法2で求められた代理計算用秘密鍵、rは0以上p−1以下の整数から選択された乱数、UはU=rPのように求められた乱数情報、gIDはgID=e(QID,PPub)のように求められた値、VはH(gID)を用いて所定の方法3で平文Mを暗号化した暗号化情報であり、
前記受信装置は、
受信用秘密鍵Kを記録する復号記録部と、
受信用秘密鍵Kと乱数情報Uを用いて所定の方法4でリクエストReqを作成するリクエスト作成部と、
前記代理計算装置から受信したレスポンスResを用いて前記所定の方法2と前記所定の方法4に対応した方法である所定の方法5にしたがってgIDの値Wを求め、H(W)を用いて前記所定の方法3に対応した方法である所定の方法6にしたがって暗号化情報Vを復号して平文M’に復号する復号部と、
を備え、
前記代理計算装置は、
代理計算用秘密鍵Kを記録する代理記録部と、
リクエストReqに対して、前記所定の方法1と前記所定の方法2と前記所定の方法4に対応した方法である所定の方法7にしたがって代理計算用秘密鍵Kを用いた計算を行ってレスポンスResを求めるレスポンス作成部と
を備える
暗号化システム。
【請求項2】
請求項1記載の暗号化システムであって、
前記所定の方法2では、
保護用秘密鍵Kを0以上p−1以下の整数から選択し、分割用乱数K’と保護用秘密鍵Kを用いて所定の方法2’にしたがって代理計算用秘密鍵Kを求め、
前記復号記録部は保護用秘密鍵Kも記録し、
前記所定の方法5は、前記所定の方法2’にも対応した方法で、保護用秘密鍵Kも用いて値Wを求める
ことを特徴とする暗号化システム。
【請求項3】
請求項1記載の暗号化システムであって、
(+)はビット単位の排他的論理和を示す記号、^はべき乗を示す記号とし、
前記所定の方法1では、受信用秘密鍵K
=K’K
のように求め、
前記所定の方法2では、では、代理計算用秘密鍵K
=K−1
のように求め、
前記所定の方法3では、暗号化情報Vを
V=M(+)H(gID
のように求め、
前記所定の方法4では、リクエストReqを
Req=e(K,U)
のように求め、
前記所定の方法5では、値Wを
W=Res
のように求め、
前記所定の方法6では、平文M’を
M’=V(+)H(W)
のように求め、
前記所定の方法7では、レスポンスResを
Res=Req^K
のように求める
ことを特徴とする暗号化システム。
【請求項4】
請求項1記載の暗号化システムであって、
(+)はビット単位の排他的論理和を示す記号、^はべき乗を示す記号とし、
前記所定の方法1では、受信用秘密鍵K
=K’K
のように求め、
前記所定の方法2では、では、代理計算用秘密鍵K
=K−1
のように求め、
前記所定の方法3では、暗号化情報Vを
V=M(+)H(gID
のように求め、
前記所定の方法4では、リクエストReqを受信用秘密鍵Kと乱数情報Uを含む情報とし、
前記所定の方法5では、値Wを
W=Res
のように求め、
前記所定の方法6では、平文M’を
M’=V(+)H(W)
のように求め、
前記所定の方法7では、レスポンスResを
Res=e(K,U)^K
のように求める
ことを特徴とする暗号化システム。
【請求項5】
請求項1記載の暗号化システムであって、
(+)はビット単位の排他的論理和を示す記号、^はべき乗を示す記号とし、
前記所定の方法1では、受信用秘密鍵K
=K’K
のように求め、
前記所定の方法2では、では、代理計算用秘密鍵K
=K−1
のように求め、
前記所定の方法3では、暗号化情報Vを
V=M(+)H(gID
のように求め、
前記所定の方法4では、前記リクエスト作成部が、乱数rtmpを0以上p−1以下の整数から選択し、リクエストReqを
Req=e(rtmp,U)
のように求め、
前記所定の方法5では、値Wを
W=Res^rtmp−1
のように求め、
前記所定の方法6では、平文M’を
M’=V(+)H(W)
のように求め、
前記所定の方法7では、レスポンスResを
Res=Req^K
のように求める
ことを特徴とする暗号化システム。
【請求項6】
請求項1記載の暗号化システムであって、
(+)はビット単位の排他的論理和を示す記号、^はべき乗を示す記号とし、
前記所定の方法1では、受信用秘密鍵K
=K’K
のように求め、
前記所定の方法2では、では、代理計算用秘密鍵K
=K−1
のように求め、
前記所定の方法3では、暗号化情報Vを
V=M(+)H(gID
のように求め、
前記所定の方法4では、前記リクエスト作成部が、乱数rtmpを0以上p−1以下の整数から選択し、隠蔽鍵Ktmp
tmp=rtmp
を求め、リクエストReqを隠蔽鍵Ktmpと乱数情報Uを含む情報とし、
前記所定の方法5では、値Wを
W=Res^rtmp−1
のように求め、
前記所定の方法6では、平文M’を
M’=V(+)H(W)
のように求め、
前記所定の方法7では、レスポンスResを
Res=e(Ktmp,U)^K
のように求める
ことを特徴とする暗号化システム。
【請求項7】
請求項2記載の暗号化システムであって、
(+)はビット単位の排他的論理和を示す記号、^はべき乗を示す記号とし、
前記所定の方法1では、受信用秘密鍵K
=K’K
のように求め、
前記所定の方法2’では、代理計算用秘密鍵K
=(K’)−1
のように求め、
前記所定の方法3では、暗号化情報Vを
V=M(+)H(gID
のように求め、
前記所定の方法4では、リクエストReqを
Req=e(K,U)
のように求め、
前記所定の方法5では、値Wを
W=Res^K
のように求め、
前記所定の方法6では、平文M’を
M’=V(+)H(W)
のように求め、
前記所定の方法7では、レスポンスResを
Res=Req^K
のように求める
ことを特徴とする暗号化システム。
【請求項8】
請求項2記載の暗号化システムであって、
(+)はビット単位の排他的論理和を示す記号、^はべき乗を示す記号とし、
前記所定の方法1では、受信用秘密鍵K
=K’K
のように求め、
前記所定の方法2’では、代理計算用秘密鍵K
=(K’)−1
のように求め、
前記所定の方法3では、暗号化情報Vを
V=M(+)H(gID
のように求め、
前記所定の方法4では、リクエストReqを受信用秘密鍵Kと乱数情報Uを含む情報とし、
前記所定の方法5では、値Wを
W=Res^K
のように求め、
前記所定の方法6では、平文M’を
M’=V(+)H(W)
のように求め、
前記所定の方法7では、レスポンスResを
Res=e(K,U)^K
のように求める
ことを特徴とする暗号化システム。
【請求項9】
請求項2記載の暗号化システムであって、
(+)はビット単位の排他的論理和を示す記号、^はべき乗を示す記号とし、
前記所定の方法1では、受信用秘密鍵K
=K’K
のように求め、
前記所定の方法2’では、代理計算用秘密鍵K
=(K’)−1
のように求め、
前記所定の方法3では、暗号化情報Vを
V=M(+)H(gID
のように求め、
前記所定の方法4では、前記リクエスト作成部が、乱数rtmpを0以上p−1以下の整数から選択し、リクエストReqを
Req=e(rtmp,U)
のように求め、
前記所定の方法5では、値Wを
W=Res^rtmp−1
のように求め、
前記所定の方法6では、平文M’を
M’=V(+)H(W)
のように求め、
前記所定の方法7では、レスポンスResを
Res=Req^K
のように求める
ことを特徴とする暗号化システム。
【請求項10】
請求項2記載の暗号化システムであって、
(+)はビット単位の排他的論理和を示す記号、^はべき乗を示す記号とし、
前記所定の方法1では、受信用秘密鍵K
=K’K
のように求め、
前記所定の方法2’では、代理計算用秘密鍵K
=(K’)−1
のように求め、
前記所定の方法3では、暗号化情報Vを
V=M(+)H(gID
のように求め、
前記所定の方法4では、前記リクエスト作成部が、乱数rtmpを0以上p−1以下の整数から選択し、隠蔽鍵Ktmp
tmp=rtmp
を求め、リクエストReqを隠蔽鍵Ktmpと乱数情報Uを含む情報とし、
前記所定の方法5では、値Wを
W=Res^rtmp−1
のように求め、
前記所定の方法6では、平文M’を
M’=V(+)H(W)
のように求め、
前記所定の方法7では、レスポンスResを
Res=e(Ktmp,U)^K
のように求める
ことを特徴とする暗号化システム。
【請求項11】
少なくとも受信装置、代理計算装置、鍵生成装置を有する暗号化システムであって、
pは素数、Gは位数pの巡回加算群、sは0以上p−1以下の整数、MaptoPointG1は任意長のビット列を群Gの元に写像する関数、IDは任意長のビット列、QID=MaptoPointG1(ID)、KはK=sQIDのように求められた秘密鍵、K’は0以上p−1以下の整数から選択された分割用乱数、Kは秘密鍵Kと分割用乱数K’を用いて所定の方法1で求められた受信用秘密鍵、Kは分割用乱数K’を用いて所定の方法2で求められた代理計算用秘密鍵であり、
前記鍵生成装置は、
前記受信装置からの鍵の再発行の要求を受信すると、
新しい分割用乱数K3new’を0以上p−1以下の整数から選択し、秘密鍵Kと新しい分割用乱数K3new’を用いて前記所定の方法1にしたがって新しい受信用秘密鍵K1newを求める鍵分割部と、
新しい分割用乱数K3new’を用いて前記所定の方法2で新しい代理計算用秘密鍵K3newを求め、新しい受信用秘密鍵K1newを前記受信装置に送信し、新しい代理計算用秘密鍵K3newを前記代理計算装置に送信する鍵配布部と、
を備え、
前記受信装置は、
あらかじめ記録していた受信用秘密鍵Kを新しい受信用秘密鍵K1newに更新する復号記録部を備え、
前記代理計算装置は、
あらかじめ記録していた代理計算用秘密鍵Kを新しい代理計算用秘密鍵K3newに更新する代理記録部を備える
暗号化システム。
【請求項12】
少なくとも受信装置、代理計算装置、鍵生成装置を有する暗号化システムであって、
pは素数、Gは位数pの巡回加算群、sは0以上p−1以下の整数、MaptoPointG1は任意長のビット列を群Gの元に写像する関数、IDは任意長のビット列、QID=MaptoPointG1(ID)、KはK=sQIDのように求められた秘密鍵、K’は0以上p−1以下の整数から選択された分割用乱数、Kは秘密鍵Kと分割用乱数K’を用いて所定の方法1で求められた受信用秘密鍵、Kは0以上p−1以下の整数から選択された保護用秘密鍵、Kは分割用乱数K’と保護用秘密鍵Kを用いて所定の方法2’で求められた代理計算用秘密鍵であり、
前記鍵生成装置は、
前記受信装置から、保護用秘密鍵Kと鍵の再発行の要求を受信すると、
新しい分割用乱数K3new’を0以上p−1以下の整数から選択し、秘密鍵Kと新しい分割用乱数K3new’を用いて前記所定の方法1にしたがって新しい受信用秘密鍵K1newを求める鍵分割部と、
新しい分割用乱数K3new’と受信した保護用秘密鍵Kを用いて前記所定の方法2’にしたがって新しい代理計算用秘密鍵K3newを求め、新しい受信用秘密鍵K1newを前記受信装置に送信し、新しい代理計算用秘密鍵K3newを前記代理計算装置に送信する鍵配布部と、
を備え、
前記受信装置は、
あらかじめ記録していた受信用秘密鍵Kを新しい受信用秘密鍵K1newに更新する復号記録部を備え、
前記代理計算装置は、
あらかじめ記録していた代理計算用秘密鍵Kを新しい代理計算用秘密鍵K3newに更新する代理記録部を備える
暗号化システム。
【請求項13】
少なくとも受信装置、代理計算装置を有する暗号化システムであって、
pは素数、K’は0以上p−1以下の整数から選択された分割用乱数、Kは0以上p−1以下の整数から選択された保護用秘密鍵、Kは分割用乱数K’と保護用秘密鍵Kを用いて所定の方法2’で求められた代理計算用秘密鍵であり、
前記受信装置は、
新しい保護用秘密鍵K2newを0以上p−1以下の整数から選択し、前記所定の方法2’に対応した所定の方法8にしたがって記録している保護用秘密鍵Kと前記新しい保護用秘密鍵K2newとの違いに応じた値であるアップデータUpdを求め、前記アップデータUpdを前記代理計算装置に送る保護用秘密鍵更新部と、
あらかじめ記録していた保護用秘密鍵Kを新しい保護用秘密鍵K2newに更新する復号記録部と、
を備え、
前記代理計算装置は、
記録している代理計算用秘密鍵Kと前記アップデータUpdを用いて、所定の方法8に対応した所定の方法9にしたがって新しい代理計算用秘密鍵K3newを求める代理計算用秘密鍵更新部と、
あらかじめ記録していた代理計算用秘密鍵Kを新しい代理計算用秘密鍵K3newに更新する代理記録部と、
を備える
暗号化システム。
【請求項14】
請求項13記載の暗号化システムであって、
前記所定の方法8では、アップデータUpdを
Upd=K2new−1
のように求め、
前記所定の方法9では、新しい代理計算用秘密鍵K3new
3new=Upd・K
のように求める
ことを特徴とする暗号化システム。
【請求項15】
受信装置、代理計算装置を用いた復号方法であって、
pは素数、Gは位数pの巡回加算群、Gは位数pの巡回群、eはG×G→Gのように写像する双線形ペアリング関数、Hは群Gの元をnビットのビット列に写像するハッシュ関数を示す記号、Pは群Gの生成元、sは0以上p−1以下の整数、PPub=sP、(P,PPub)は公開パラメータ、MaptoPointG1は任意長のビット列を群Gの元に写像する関数、IDは任意長のビット列、QID=MaptoPointG1(ID)、KはK=sQIDのように求められた秘密鍵、K’は0以上p−1以下の整数から選択された分割用乱数、Kは秘密鍵Kと分割用乱数K’を用いて所定の方法1で求められた受信用秘密鍵、Kは分割用乱数K’を用いて所定の方法2で求められた代理計算用秘密鍵、rは0以上p−1以下の整数から選択された乱数、UはU=rPのように求められた乱数情報、gIDはgID=e(QID,PPub)のように求められた値、VはH(gID)を用いて所定の方法3で平文Mを暗号化した暗号化情報であり、
前記受信装置が、受信用秘密鍵Kを記録する復号記録ステップと、
前記代理計算装置が、代理計算用秘密鍵Kを記録する代理記録ステップと、
前記受信装置が、受信用秘密鍵Kと乱数情報Uを用いて所定の方法4でリクエストReqを作成するリクエスト作成ステップと、
前記代理計算装置が、リクエストReqに対して、前記所定の方法1と前記所定の方法2と前記所定の方法4に対応した方法である所定の方法7にしたがって代理計算用秘密鍵Kを用いた計算を行ってレスポンスResを求めるレスポンス作成ステップと、
前記受信装置が、前記代理計算装置から受信したレスポンスResを用いて前記所定の方法2と前記所定の方法4に対応した方法である所定の方法5にしたがってgIDの値Wを求め、H(W)を用いて前記所定の方法3に対応した方法である所定の方法6にしたがって暗号化情報Vを復号して平文M’に復号する復号ステップと、
を有する復号方法。
【請求項16】
受信装置、代理計算装置、鍵生成装置を用いた鍵更新方法であって、
pは素数、Gは位数pの巡回加算群、sは0以上p−1以下の整数、MaptoPointG1は任意長のビット列を群Gの元に写像する関数、IDは任意長のビット列、QID=MaptoPointG1(ID)、KはK=sQIDのように求められた秘密鍵、K’は0以上p−1以下の整数から選択された分割用乱数、Kは秘密鍵Kと分割用乱数K’を用いて所定の方法1で求められた受信用秘密鍵、Kは分割用乱数K’を用いて所定の方法2で求められた代理計算用秘密鍵であり、
前記鍵生成装置が、前記受信装置からの鍵の再発行の要求を受信すると、新しい分割用乱数K3new’を0以上p−1以下の整数から選択し、秘密鍵Kと新しい分割用乱数K3new’を用いて前記所定の方法1にしたがって新しい受信用秘密鍵K1newを求める鍵分割ステップと、
前記鍵生成装置が、新しい分割用乱数K3new’を用いて前記所定の方法2で新しい代理計算用秘密鍵K3newを求め、新しい受信用秘密鍵K1newを前記受信装置に送信し、新しい代理計算用秘密鍵K3newを前記代理計算装置に送信する鍵配布ステップと、
前記受信装置が、あらかじめ記録していた受信用秘密鍵Kを新しい受信用秘密鍵K1newに更新する復号記録ステップと、
前記代理計算装置が、あらかじめ記録していた代理計算用秘密鍵Kを新しい代理計算用秘密鍵K3newに更新する代理記録ステップと、
を有する鍵更新方法。
【請求項17】
受信装置、代理計算装置、鍵生成装置を用いた鍵更新方法であって、
pは素数、Gは位数pの巡回加算群、sは0以上p−1以下の整数、MaptoPointG1は任意長のビット列を群Gの元に写像する関数、IDは任意長のビット列、QID=MaptoPointG1(ID)、KはK=sQIDのように求められた秘密鍵、K’は0以上p−1以下の整数から選択された分割用乱数、Kは秘密鍵Kと分割用乱数K’を用いて所定の方法1で求められた受信用秘密鍵、Kは0以上p−1以下の整数から選択された保護用秘密鍵、Kは分割用乱数K’と保護用秘密鍵Kを用いて所定の方法2’で求められた代理計算用秘密鍵であり、
前記鍵生成装置が、前記受信装置から、保護用秘密鍵Kと鍵の再発行の要求を受信すると、新しい分割用乱数K3new’を0以上p−1以下の整数から選択し、秘密鍵Kと新しい分割用乱数K3new’を用いて前記所定の方法1にしたがって新しい受信用秘密鍵K1newを求める鍵分割ステップと、
前記鍵生成装置が、新しい分割用乱数K3new’と受信した保護用秘密鍵Kを用いて前記所定の方法2’にしたがって新しい代理計算用秘密鍵K3newを求め、新しい受信用秘密鍵K1newを前記受信装置に送信し、新しい代理計算用秘密鍵K3newを前記代理計算装置に送信する鍵配布ステップと、
前記受信装置が、あらかじめ記録していた受信用秘密鍵Kを新しい受信用秘密鍵K1newに更新する復号記録ステップと、
前記代理計算装置が、あらかじめ記録していた代理計算用秘密鍵Kを新しい代理計算用秘密鍵K3newに更新する代理記録ステップと
を有する鍵更新方法。
【請求項18】
受信装置、代理計算装置を用いた鍵更新方法であって、
pは素数、K’は0以上p−1以下の整数から選択された分割用乱数、Kは0以上p−1以下の整数から選択された保護用秘密鍵、Kは分割用乱数K’と保護用秘密鍵Kを用いて所定の方法2’で求められた代理計算用秘密鍵であり、
前記受信装置が、新しい保護用秘密鍵K2newを0以上p−1以下の整数から選択し、前記所定の方法2’に対応した所定の方法8にしたがって記録している保護用秘密鍵Kと前記新しい保護用秘密鍵K2newとの違いに応じた値であるアップデータUpdを求め、前記アップデータUpdを前記代理計算装置に送る保護用秘密鍵更新ステップと、
前記受信装置が、あらかじめ記録していた保護用秘密鍵Kを新しい保護用秘密鍵K2newに更新する復号記録ステップと、
前記代理計算装置が、記録している代理計算用秘密鍵Kと前記アップデータUpdを用いて、所定の方法8に対応した所定の方法9にしたがって新しい代理計算用秘密鍵K3newを求める代理計算用秘密鍵更新ステップと、
前記代理計算装置が、あらかじめ記録していた代理計算用秘密鍵Kを新しい代理計算用秘密鍵K3newに更新する代理記録ステップと、
を有する鍵更新方法。
【請求項19】
受信装置、代理計算装置とともに暗号化システムを構成するための鍵生成装置であって、
pは素数、Gは位数pの巡回加算群、MaptoPointG1は任意長のビット列を群Gの元に写像する関数、IDは任意長のビット列、QID=MaptoPointG1(ID)であり、
0以上p−1以下の整数sを生成し、秘密鍵K
=sQID
のように求める鍵生成部と、
分割用乱数K’を0以上p−1以下の整数から選択し、秘密鍵Kと分割用乱数K’を用いて所定の方法1にしたがって受信用秘密鍵Kを求める鍵分割部と、
分割用乱数K’を用いて所定の方法2で代理計算用秘密鍵Kを求め、受信用秘密鍵Kを前記受信装置に送信し、代理計算用秘密鍵Kを前記代理計算装置に送信する鍵配布部と、
を備える鍵生成装置。
【請求項20】
請求項19記載の鍵生成装置であって、
前記所定の方法2では、
保護用秘密鍵Kを0以上p−1以下の整数から選択し、分割用乱数K’と保護用秘密鍵Kを用いて所定の方法2’にしたがって代理計算用秘密鍵Kを求め、
前記鍵配布部は、保護用秘密鍵Kも前記受信装置に送信する
ことを特徴とする鍵生成装置。
【請求項21】
代理計算装置とともに暗号化システムを構成するための受信装置であって、
pは素数、Gは位数pの巡回加算群、Gは位数pの巡回群、eはG×G→Gのように写像する双線形ペアリング関数、Hは群Gの元をnビットのビット列に写像するハッシュ関数を示す記号、Pは群Gの生成元、sは0以上p−1以下の整数、PPub=sP、(P,PPub)は公開パラメータ、MaptoPointG1は任意長のビット列を群Gの元に写像する関数、IDは任意長のビット列、QID=MaptoPointG1(ID)、KはK=sQIDのように求められた秘密鍵、K’は0以上p−1以下の整数から選択された分割用乱数、Kは秘密鍵Kと分割用乱数K’を用いて所定の方法1で求められた受信用秘密鍵、Kは分割用乱数K’を用いて所定の方法2で求められた代理計算用秘密鍵、rは0以上p−1以下の整数から選択された乱数、UはU=rPのように求められた乱数情報、gIDはgID=e(QID,PPub)のように求められた値、VはH(gID)を用いて所定の方法3で平文Mを暗号化した暗号化情報であり、
受信用秘密鍵Kを記録する復号記録部と、
受信用秘密鍵Kと乱数情報Uを用いて所定の方法4でリクエストReqを作成するリクエスト作成部と、
前記代理計算装置から受信したレスポンスResを用いて前記所定の方法2と前記所定の方法4に対応した方法である所定の方法5にしたがってgIDの値Wを求め、H(W)を用いて前記所定の方法3に対応した方法である所定の方法6にしたがって暗号化情報Vを復号して平文M’に復号する復号部と、
を備える受信装置。
【請求項22】
受信装置とともに暗号化システムを構成するための代理計算装置であって、
pは素数、Gは位数pの巡回加算群、Pは群Gの生成元、sは0以上p−1以下の整数、PPub=sP、(P,PPub)は公開パラメータ、MaptoPointG1は任意長のビット列を群Gの元に写像する関数、IDは任意長のビット列、QID=MaptoPointG1(ID)、KはK=sQIDのように求められた秘密鍵、K’は0以上p−1以下の整数から選択された分割用乱数、Kは秘密鍵Kと分割用乱数K’を用いて所定の方法1で求められた受信用秘密鍵、Kは分割用乱数K’を用いて所定の方法2で求められた代理計算用秘密鍵、rは0以上p−1以下の整数から選択された乱数、UはU=rPのように求められた乱数情報、Reqは受信用秘密鍵Kと乱数情報Uを用いて所定の方法4で作成されたリクエストであり、
代理計算用秘密鍵Kを記録する代理記録部と、
リクエストReqに対して、前記所定の方法1と前記所定の方法2と前記所定の方法4に対応した方法である所定の方法7にしたがって代理計算用秘密鍵Kを用いた計算を行ってレスポンスResを求めるレスポンス作成部と
を備える代理計算装置。
【請求項23】
請求項1から10のいずれかまたは請求項13もしくは14に記載の暗号化システムの受信装置もしくは代理計算装置、または、請求項11もしくは12に記載の暗号化システムの受信装置、代理計算装置、鍵生成装置のいずれかとしてコンピュータを機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−150287(P2012−150287A)
【公開日】平成24年8月9日(2012.8.9)
【国際特許分類】
【出願番号】特願2011−9085(P2011−9085)
【出願日】平成23年1月19日(2011.1.19)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】