説明

暗号化システム、復号方法、復号履歴蓄積サーバ、受信装置、送信装置、プログラム

【課題】復号履歴として、暗号文識別情報と受信装置識別情報と時刻とを対応付けて記録できる暗号化システムを提供する。
【解決手段】送信装置100は、受信装置200に暗号文を送信し、復号履歴蓄積サーバ300にセッション情報と暗号文識別情報とを送信する。復号履歴蓄積サーバ300が、この2つの情報を対応付けて記録する。受信装置200が、リクエスト、暗号文識別情報、受信装置識別情報を復号履歴蓄積サーバ300に送信する。復号履歴蓄積サーバ300が、受信装置200から受信した暗号文識別情報に対応するセッション情報を取得する。セッション情報と代理計算用秘密鍵を用いてレスポンスを求める。復号履歴蓄積サーバ300が、暗号文識別情報、受信装置識別情報、時刻を対応付けて記録する。受信装置200の復号部230が、レスポンスを用いて暗号文を復号して平文に復号する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号文の復号履歴を記録するための暗号化システム、復号方法、復号履歴蓄積サーバ、受信装置、送信装置、プログラムに関する。
【背景技術】
【0002】
暗号文の復号履歴を記録する暗号化方式として非特許文献1が知られている。非特許文献1には、公開サーバに対して復号履歴を残さない限り平文を得られないよう復号処理を制御する方法が示されている(非特許文献1の図3参照)。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】平井康雅,松尾真一郎,“復号履歴を記録可能な暗号化方式”,信学技報,ISEC2005-109,OIS2005-72,pp.71〜76,2005年11月.
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、非特許文献1の公開サーバは、復号者から受信するEvidenceから復号者が復号しようとしている復号対象を特定できないので、復号対象を特定するための情報をログ証跡として記録できないという課題がある。
【0005】
本発明は、復号履歴として、復号対象である暗号文を識別する情報と復号した受信装置を特定する情報と時刻とを対応付けて記録できる暗号化システムを構築することを目的とする。
【課題を解決するための手段】
【0006】
本発明の暗号化システムは、少なくとも送信装置、受信装置、復号履歴蓄積サーバを有する。まず、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を暗号化した暗号文、vは暗号文Vを識別する暗号文識別情報、hは暗号文Vを識別する暗号文識別情報を生成する関数を示す記号とする。
【0007】
送信装置は、暗号化部、暗号文送信部を備える。受信装置は、復号記録部、リクエスト作成部、リクエスト送信部、復号部を備える。復号履歴蓄積サーバは、代理記録部、セッション情報蓄積部、レスポンス作成部、レスポンス送信部、履歴蓄積部を備える。
【0008】
受信装置は、復号記録部に少なくとも受信装置識別情報RIDに対応付けて受信用秘密鍵Kを記録しておく。復号履歴蓄積サーバは、代理記録部に受信装置識別情報RIDに対応付けて代理計算用秘密鍵Kを記録しておく。
【0009】
送信装置の暗号文送信部は、受信装置に暗号文Vと暗号文識別情報vとを送信し、復号履歴蓄積サーバにセッション情報Uと暗号文識別情報vとを送信する。なお、受信装置が暗号文識別情報生成部も備えておき、送信装置の暗号文送信部が受信装置に暗号文Vを送信し、受信装置の暗号文識別情報生成部が受信した暗号文Vから暗号文識別情報vをv=h(V)のように生成してもよい。
【0010】
復号履歴蓄積サーバが、セッション情報蓄積部に送信装置から受信したセッション情報Uと暗号文識別情報vとを対応付けて記録する。受信装置のリクエスト作成部が、受信用秘密鍵Kを用いて所定の方法4でリクエストReqを作成する。受信装置のリクエスト送信部が、リクエストReq、暗号文識別情報v、受信装置を特定する受信装置識別情報RIDとを復号履歴蓄積サーバに送信する。
【0011】
復号履歴蓄積サーバのレスポンス作成部が、受信装置から受信した暗号文識別情報vと一致するセッション情報蓄積部に記録された暗号文識別情報vに対応付けられたセッション情報Uを取得する。また、受信装置から受信した受信装置識別情報RIDと一致する代理記録部に記録された受信装置識別情報RIDに対応付けられた代理計算用秘密鍵Kを取得する。そして、所定の方法1と所定の方法2と所定の方法4に対応した方法である所定の方法7にしたがってセッション情報Uと代理計算用秘密鍵Kを用いた計算を行ってレスポンスResを求める。復号履歴蓄積サーバのレスポンス送信部が、レスポンスResを受信装置に送信する。復号履歴蓄積サーバが、履歴蓄積部に暗号文識別情報vと、受信装置識別情報RIDと、所定の方法8にしたがって取得した時刻tとを対応付けて記録する。
【0012】
受信装置の復号部が、復号履歴蓄積サーバから受信したレスポンスResを用いて所定の方法2と所定の方法4に対応した方法である所定の方法5にしたがってgIDの値Wを求め、H(W)を用いて所定の方法3に対応した方法である所定の方法6にしたがって暗号文Vを復号して平文M’に復号する。
【発明の効果】
【0013】
本発明の暗号化システムによれば、受信装置は暗号文Vを識別する暗号文識別情報vを復号履歴蓄積サーバに送信し、復号履歴蓄積サーバと連携しなければ暗号文Vを復号できない。したがって、復号履歴蓄積サーバは、復号対象の暗号文Vと復号した受信装置とを特定した上で復号に協力した時刻を記録できる。
【図面の簡単な説明】
【0014】
【図1】実施例1、実施例1変形例1、実施例1変形例2、実施例1変形例3の暗号化システムの構成例を示す図。
【図2】実施例1、実施例1変形例1、実施例2、実施例2変形例1の暗号化システムの秘密鍵を配布する処理フローを示す図。
【図3】実施例1、実施例1変形例2の暗号化システムの暗号文の生成から復号までの処理フローを示す図。
【図4】実施例1変形例1、実施例1変形例3の暗号化システムの暗号文の生成から復号までの処理フローを示す図。
【図5】実施例1変形例2、実施例1変形例3、実施例2変形例2、実施例2変形例3の暗号化システムの秘密鍵を配布する処理フローを示す図。
【図6】実施例2、実施例2変形例1、実施例2変形例2、実施例2変形例3の暗号化システムの構成例を示す図。
【図7】実施例2、実施例2変形例2の暗号化システムの暗号文の生成から復号までの処理フローを示す図。
【図8】実施例2変形例1、実施例2変形例3の暗号化システムの暗号文の生成から復号までの処理フローを示す図。
【図9】実施例3、実施例3変形例1、実施例3変形例2、実施例3変形例3の暗号化システムの構成例を示す図。
【図10】実施例3、実施例3変形例1の暗号化システムの秘密鍵を配布する処理フローを示す図。
【図11】実施例3、実施例3変形例2の暗号化システムの暗号文の生成から復号までの処理フローを示す図。
【図12】実施例3変形例1、実施例3変形例3の暗号化システムの暗号文の生成から復号までの処理フローを示す図。
【図13】実施例3変形例2、実施例3変形例3の暗号化システムの秘密鍵を配布する処理フローを示す図。
【発明を実施するための形態】
【0015】
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【実施例1】
【0016】
図1に実施例1の暗号化システムの構成例を示す。図2に実施例1の暗号化システムの秘密鍵を配布する処理フローを、図3に暗号文の生成から復号までの処理フローを示す。実施例1の暗号化システムは、送信装置100、受信装置200、復号履歴蓄積サーバ300、鍵生成装置400で構成される。
【0017】
以下の説明では、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)、(+)はビット単位の排他的論理和を示す記号、^はべき乗を示す記号、vは暗号文Vを識別する暗号文識別情報、hは暗号文Vを識別する暗号文識別情報を生成する関数を示す記号とする。なお、XとYを群Gの元とし、aとbを整数とすると、
e(aX,bY)=e(X,Y)ab (1)
の関係が成り立つ。双線形ペアリング関数としては、例えばWeilペアリングを用いればよい。また、IDとして受信装置200の属性を示すビット列を用いてもよい。
【0018】
送信装置100は、暗号化部110、暗号文送信部120、暗号化記録部190を備える。受信装置200は、属性送信部210、リクエスト作成部220、リクエスト送信部225、復号部230、復号記録部290を備える。復号履歴蓄積サーバ300は、レスポンス作成部310、レスポンス送信部315、セッション情報蓄積部370、履歴蓄積部380、代理記録部390を備える。鍵生成装置400は、鍵生成部410、鍵分割部420、鍵配布部430、鍵生成記録部490を備える。以下に、処理フローを説明しながら、これらの構成部の機能を説明する。
【0019】
秘密鍵を配布する処理フロー
受信装置200の属性送信部210は、ビット列IDを鍵生成装置400に送信する(S211)。なお、ビット列IDは、A社の社員、20歳以上などの単独の属性情報を示すビット列でもよいし、A社の社員かつ男性、20歳以上または女性のような属性情報の論理式を示すビット列でもよい。鍵生成装置400の鍵生成部410は、秘密鍵K
=sQID
のように求め、鍵生成記録部490に記録する(S410)。
【0020】
鍵分割部420は、分割用乱数K’を0以上p−1以下の整数から選択し(S421)、秘密鍵Kと分割用乱数K’を用いて所定の方法1にしたがって受信用秘密鍵Kを求め、鍵生成記録部490に記録する(S422)。なお、分割用乱数K’は、0以上p−1以下の整数からランダムに選択することが望ましいが、あらかじめ定めた他の方法で選択してもよい。鍵配布部430は、分割用乱数K’を用いて所定の方法2で代理計算用秘密鍵Kを求め、鍵生成記録部490に記録する(S434)。そして、鍵配布部430は、受信用秘密鍵Kを受信装置200に送信し、受信用秘密鍵Kを送信した受信装置200を識別する受信装置識別情報RIDと代理計算用秘密鍵Kを復号履歴蓄積サーバ300に送信する(S435)。受信装置200の復号記録部290は、受信用秘密鍵Kを記録する(S291)。復号履歴蓄積サーバ300の代理記録部390は、受信装置識別情報RIDに対応付けて代理計算用秘密鍵Kを記録する(S391)。
【0021】
暗号文の生成から復号までの処理フロー
属性送信部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は、さらに暗号文識別情報vをv=h(V)のように生成する。関数hは例えばハッシュ関数とすればよいが、ハッシュ関数に限定する必要はなく、暗号文を一意に識別可能な情報を生成することができる関数であればよい。そして、暗号文送信部120が、受信装置200に暗号文Vと暗号文識別情報vとを送信し、復号履歴蓄積サーバ300にセッション情報Uと暗号文識別情報vとを送信する(S120)。
【0022】
復号履歴蓄積サーバ300は、セッション情報蓄積部370に送信装置100から受信したセッション情報Uと暗号文識別情報vとを対応付けて記録する(S370)。受信装置200のリクエスト作成部220が、受信用秘密鍵Kを用いて所定の方法4でリクエストReqを作成する。なお、リクエスト作成部220は、乱数rtmpを0以上p−1以下の整数から選択し(S221)、所定の方法4で乱数rtmpも用いてもよい。このようにすることで、受信用秘密鍵Kに関する情報を隠蔽できる。なお、乱数rtmpは、0以上p−1以下の整数からランダムに選択することが望ましいが、あらかじめ定めた他の方法で選択してもよい。そして、リクエスト送信部225が、リクエストReq、暗号文識別情報v、受信装置を特定する受信装置識別情報RIDとを復号履歴蓄積サーバに送信する(S222)。
【0023】
復号履歴蓄積サーバ300のレスポンス作成部310は、受信装置200から受信した暗号文識別情報vと一致するセッション情報蓄積部370に記録された暗号文識別情報vに対応付けられたセッション情報Uを取得する。また、レスポンス作成部310は、受信装置200から受信した受信装置識別情報RIDと一致する代理記録部390に記録された受信装置識別情報RIDに対応付けられた代理計算用秘密鍵Kを取得する。そして、レスポンス作成部310は、所定の方法1と所定の方法2と所定の方法4に対応した方法である所定の方法7にしたがってセッション情報Uと代理計算用秘密鍵Kを用いた計算を行ってレスポンスResを求める。レスポンス送信部315は、レスポンスResを受信装置200に送信する(S310)。
【0024】
復号履歴蓄積サーバ300は、履歴蓄積部380に暗号文識別情報vと、受信装置識別情報RIDと、所定の方法8にしたがって取得した時刻tとを対応付けて記録する(S380)。所定の方法8とは、例えばリクエストReqを受信した時にタイムサーバから時刻tを取得してもよいし、レスポンスResを送信したときに復号履歴蓄積サーバ自身のタイマから時刻tを取得してもよい。また、時刻tを取得するタイミングは、レスポンス作成部310の処理が終了したときとしてもよい。なお、時刻tは、タイムサーバから取得してもよいし、復号履歴蓄積サーバ300自身のタイマから取得してもよい。そして、時刻tの取得のタイミングと取得先は、任意に組み合わせればよく、所定の方法8を決めるときに定めればよい。
【0025】
受信装置200の復号部230は、復号履歴蓄積サーバから受信したレスポンスResを用いて所定の方法2と所定の方法4に対応した方法である所定の方法5にしたがってgIDの値Wを求める。そして、H(W)を用いて所定の方法3に対応した方法である所定の方法6にしたがって暗号文Vを復号して平文M’に復号する(S230)。
【0026】
上述のように、実施例1の暗号化システムでは、以下のような特徴がある。
(1)送信装置100が受信装置200には暗号文Vを送信し、復号履歴蓄積サーバ300にセッション情報Uと暗号文識別情報vを送信する。つまり、復号に必要なセッション情報Uは受信装置200には送信されない。
(2)復号履歴蓄積サーバ300のセッション情報蓄積部370がセッション情報Uと暗号文識別情報vとを対応付けて記録する。
(3)受信装置200が暗号文識別情報vと受信装置識別情報RIDを復号履歴蓄積サーバ300に送信することで、復号履歴蓄積サーバ300が暗号文Vの復号に必要なセッション情報Uと代理計算用秘密鍵Kを取得する。したがって、復号履歴蓄積サーバ300は、どの受信装置200がどの暗号文Vを復号しようとしているのか把握できる。
(4)復号履歴蓄積サーバ300が、履歴蓄積部380に暗号文識別情報vと受信装置識別情報RIDと時刻tとを対応付けて記録する。したがって、復号履歴蓄積サーバは、復号が実行されるごとに、暗号文Vと復号した受信装置とを特定した上で復号に協力した時刻を記録できる。
【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を受信用秘密鍵Kを含む情報とする。所定の方法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を求めてもよい。
【0029】
なお、上述の所定の方法の組み合わせの一部を以下の例のように変更してもよい。
【0030】
第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を求めてもよい。
【0031】
第2の例では、所定の方法1を
=(K’)−1
とし、所定の方法2を
=K
とし、所定の方法7を
Res=e(K,U)^K
としてもよい。ただし、ペアリングeでは式(1)が成り立つので、
Res=e(K,U) または Res=e(K,KU)
のようにレスポンスResを求めてもよい。
【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では、リクエスト作成部220が、乱数rtmpを0以上p−1以下の整数から選択し(S221)、隠蔽鍵Ktmp
tmp=rtmp
を求め、リクエストReqを隠蔽鍵Ktmpを含む情報とする。所定の方法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を求めてもよい。
【0034】
なお、上述の所定の方法の組み合わせの一部を以下の例のように変更してもよい。
【0035】
第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を求めてもよい。
【0036】
第2の例では、所定の方法1を
=(K’)−1
とし、所定の方法2を
=K
とし、所定の方法7を
Res=e(Ktmp,U)^K
としてもよい。ただし、ペアリングeでは式(1)が成り立つので、
Res=e(Ktmp,U) または Res=e(Ktmp,KU)
のようにレスポンスResを求めてもよい。
【0037】
第3の例では、所定の方法3を、H(gID)を共通鍵として平文Mを暗号化し、暗号文Vを求めてもよい。この場合は、所定の方法6は、H(W)を共通鍵として暗号文Vを平文M’に復号するとすればよい。
【0038】
[変形例1]
図1に実施例1変形例1の暗号化システムの構成例を示す。図2に実施例1変形例1の暗号化システムの秘密鍵を配布する処理フローを、図4に暗号文の生成から復号までの処理フローを示す。実施例1との違いは、受信装置200自体が暗号文識別情報vを生成する点(暗号文識別情報vを受信しない点)である。秘密鍵を配布する処理フローは実施例1と同じである。
【0039】
この変形例では、受信装置200が暗号文識別情報生成部240も備えている。そして、送信装置100の暗号文送信部121が、受信装置200に暗号文Vを送信し、復号履歴蓄積サーバ300にセッション情報Uと暗号文識別情報vとを送信する(S121)。そして、受信装置200の暗号文識別情報生成部240が、v=h(V)のように暗号文識別情報vを生成する(S240)。その他の構成部と処理は実施例1と同じであり、隠蔽用乱数rtmpを生成するか否かや所定の方法1〜8のバリエーションなども実施例1と同じである。したがって、実施例1と同様の効果が得られる。
【0040】
[変形例2]
図1に実施例1変形例2の暗号化システムの構成例を示す。図5に実施例1変形例2の暗号化システムの秘密鍵を配布する処理フローを、図3に暗号文の生成から復号までの処理フローを示す。実施例1との違いは、鍵生成装置400が、保護用秘密鍵Kも生成する点である。そのため、鍵配布部430と復号部230の処理、および復号記録部290に記録される情報が実施例1と異なる。
【0041】
秘密鍵を配布する処理フロー
ステップS211〜S422までは実施例1と同じである。ステップS422が終了すると、鍵配布部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以下の整数からランダムに選択することが望ましいが、あらかじめ定めた他の方法で選択してもよい。
【0042】
鍵配布部430は、受信用秘密鍵Kと保護用秘密鍵Kを受信装置200に送信し、受信用秘密鍵Kと保護用秘密鍵Kを送信した受信装置200を識別する受信装置識別情報RIDと代理計算用秘密鍵Kを復号履歴蓄積サーバ300に送信する(S433)。受信装置200の復号記録部290は、受信用秘密鍵Kと保護用秘密鍵Kを記録する(S292)。なお、復号記録部290は、物理的に別の2つ以上の記録装置で構成してもよい。例えば、復号記録部290をICカードとパソコンのハードディスクで構成してもよい。そして、受信用秘密鍵KをICカードに記録し、保護用秘密鍵Kをパソコンのハードディスクに記録するようにしてもよい。このように物理的に別々に受信用秘密鍵Kと保護用秘密鍵Kを記録すれば、両方を同時に漏洩・紛失するリスクを低減できる。復号履歴蓄積サーバ300の代理記録部390は、受信装置識別情報RIDに対応付けて代理計算用秘密鍵Kを記録する(S391)。
【0043】
暗号文の生成から復号までの処理フロー
ステップS230以外は実施例1と同じである。ステップS230では、受信装置200の復号部230は、復号履歴蓄積サーバ300から受信したレスポンスResを用いて所定の方法2と所定の方法4に対応した方法である所定の方法5にしたがって、保護用秘密鍵Kを用いてgIDの値Wを求める。そして、H(W)を用いて所定の方法3に対応した方法である所定の方法6にしたがって暗号文Vを復号して平文M’に復号する(S230)。本変形例はこのような構成なので、実施例1と同様の効果が得られる。
【0044】
次に、上述の所定の方法1〜7について説明する。所定の方法1〜7は「秘密鍵Kから複数の復号鍵(受信用秘密鍵K,保護用秘密鍵K,代理計算用秘密鍵K)を生成する方式」と「鍵を伴う一部の演算機能のリソースを外部装置(復号履歴蓄積サーバ)に安全に代行させる方式」を組み合わせて構成するために互いに対応していればよい。例えば、以下に示すような組み合わせがあり得る。ただし、「秘密鍵Kから複数の復号鍵(受信用秘密鍵K,保護用秘密鍵K,代理計算用秘密鍵K)を生成する方式」と「鍵を伴う一部の演算機能のリソースを外部装置(復号履歴蓄積サーバ)に安全に代行させる方式」とが機能する範囲ならば、これらの組み合わせに限定する必要はない。
【0045】
所定の方法の組み合わせ1−3
所定の方法1では、受信用秘密鍵K
=K’K
のように求める。所定の方法2’では、代理計算用秘密鍵K
=(K’)−1
のように求める。所定の方法3では、暗号文Vを
V=M(+)H(gID
のように求める。所定の方法4では、リクエストReqを受信用秘密鍵Kを含む情報とする。所定の方法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を求めてもよい。
【0046】
なお、上述の所定の方法の組み合わせの一部を以下の例のように変更してもよい。
【0047】
第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を求めてもよい。
【0048】
第2の例では、所定の方法1を
=(K’)−1
とし、所定の方法2’を
=(K−1
とし、所定の方法7を
Res=e(K,U)^K
としてもよい。ただし、ペアリングeでは式(1)が成り立つので、
Res=e(K,U) または Res=e(K,KU)
のようにレスポンスResを求めてもよい。
【0049】
第3の例では、所定の方法3を、H(gID)を共通鍵として平文Mを暗号化し、暗号文Vを求めてもよい。この場合は、所定の方法6は、H(W)を共通鍵として暗号文Vを平文M’に復号するとすればよい。
【0050】
所定の方法の組み合わせ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を含む情報とする。所定の方法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を求めてもよい。
【0051】
なお、上述の所定の方法の組み合わせの一部を以下の例のように変更してもよい。
【0052】
第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を求めてもよい。
【0053】
第2の例では、所定の方法1を
=(K’)−1
とし、所定の方法2’を
=(K−1
とし、所定の方法7を
Res=e(Ktmp,U)^K
としてもよい。ただし、ペアリングeでは式(1)が成り立つので、
Res=e(Ktmp,U) または Res=e(Ktmp,KU)
のようにレスポンスResを求めてもよい。
【0054】
第3の例では、所定の方法3を、H(gID)を共通鍵として平文Mを暗号化し、暗号文Vを求めてもよい。この場合は、所定の方法6は、H(W)を共通鍵として暗号文Vを平文M’に復号するとすればよい。
【0055】
[変形例3]
図1に実施例1変形例3の暗号化システムの構成例を示す。図5に実施例1変形例3の暗号化システムの秘密鍵を配布する処理フローを、図4に暗号文の生成から復号までの処理フローを示す。実施例1変形例2との違いは、受信装置200自体が暗号文識別情報vを生成する点(暗号文識別情報vを受信しない点)である。秘密鍵を配布する処理フローは実施例1変形例2と同じである。
【0056】
この変形例では、受信装置200が暗号文識別情報生成部240も備えている。そして、送信装置100の暗号文送信部121が、受信装置200に暗号文Vを送信し、復号履歴蓄積サーバ300にセッション情報Uと暗号文識別情報vとを送信する(S121)。そして、受信装置200の暗号文識別情報生成部240が、v=h(V)のように暗号文識別情報vを生成する(S240)。その他の構成部と処理は実施例1変形例2と同じであり、隠蔽用乱数rtmpを生成するか否かや所定の方法1〜8のバリエーションなども実施例1変形例2と同じである。したがって、実施例1と同様の効果が得られる。
【実施例2】
【0057】
実施例1では、復号履歴蓄積サーバはレスポンスResを送信したときには履歴蓄積部に復号履歴を記録していた。しかし、受信装置が正しい受信用秘密鍵Kを保有していなかった場合(つまり、実際には暗号文Vを復号できなかった場合)であっても復号履歴が記録されることになる。そこで、実施例2では、復号履歴蓄積サーバがリクエストReqを送信してきた受信装置が正しい受信用秘密鍵Kを保有しているのかを確認する機能も備えた例を示す。
【0058】
図6に実施例2の暗号化システムの構成例を示す。図2に実施例2の暗号化システムの秘密鍵を配布する処理フローを、図7に暗号文の生成から復号までの処理フローを示す。実施例2の暗号化システムは、送信装置100、受信装置500、復号履歴蓄積サーバ600、鍵生成装置400で構成される。
【0059】
以下の説明では、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)、(+)はビット単位の排他的論理和を示す記号、^はべき乗を示す記号、vは暗号文Vを識別する暗号文識別情報、hは暗号文Vを識別する暗号文識別情報を生成する関数を示す記号、‖はビット列の結合を示す記号とする。
【0060】
送信装置100は、暗号化部110、暗号文送信部120、暗号化記録部190を備える。受信装置500は、属性送信部210、リクエスト作成部220、リクエスト送信部225、復号部230、第2リクエスト作成部520、第2復号部530、ハッシュ値計算部550、復号記録部290を備える。復号履歴蓄積サーバ600は、レスポンス作成部310、レスポンス送信部315、認証鍵生成部610、チャレンジ生成部620、第2レスポンス作成部630、認証部640、セッション情報蓄積部370、履歴蓄積部380、代理記録部390を備える。鍵生成装置400は、鍵生成部410、鍵分割部420、鍵配布部430、鍵生成記録部490を備える。以下に、処理フローを説明しながら、これらの構成部の機能を説明する。秘密鍵を配布する処理フローは実施例1と同じなので説明を省略する。
【0061】
暗号文の生成から復号までの処理フロー
ステップS212からS222までの処理は実施例1と同じである。ステップS222のあと、復号履歴蓄積サーバ600の認証鍵生成部610は、認証鍵Aと0以上p−1以下の整数である乱数aを生成する。また、認証鍵生成部610は、H(gID)を用いて所定の方法3’で認証鍵Aを暗号化して暗号化認証鍵V’を求める。認証鍵生成部610はさらに、U’=aPのようにセッション情報U’を計算し、暗号化認証鍵V’のみ若しくは暗号化認証鍵V’とセッション情報U’を受信装置500に送信する(S610)。
【0062】
第2リクエスト作成部520は、受信用秘密鍵Kを用いて所定の方法4’でリクエストReq’を作成し、復号履歴蓄積サーバ600に送信する(S520)。復号履歴蓄積サーバ600の第2レスポンス作成部630は、所定の方法1と所定の方法2と所定の方法4’に対応した方法である所定の方法7’にしたがってセッション情報U’と代理計算用秘密鍵Kを用いた計算を行ってレスポンスRes’を求め、受信装置500に送信する(S630)。受信装置500の第2復号部530は、復号履歴蓄積サーバ600から受信したレスポンスRes’を用いて所定の方法2と所定の方法4’に対応した方法である所定の方法5’にしたがってgIDの値Wを求める。そして、H(W)を用いて所定の方法3’に対応した方法である所定の方法6’にしたがって暗号化認証鍵V’を復号して認証鍵A’に復号する(S530)。なお、以下では、暗号化前の認証鍵と復号した認証鍵とを区別する必要があるときは、暗号化前の認証鍵をAと記載し、復号した認証鍵をA’と記載して区別する。
【0063】
復号履歴蓄積サーバ600のチャレンジ生成部620は、チャレンジBを生成し、受信装置500に送信する(S620)。なお、ステップS620は、ステップS610〜S530の前に行ってもよいし、並行して行ってもよい。受信装置500のハッシュ値計算部550は、D’=H’(A’‖B)のようにハッシュ値D’を求め、復号履歴蓄積サーバ600に送信する。
【0064】
復号履歴蓄積サーバの認証部640は、D=H’(A‖B)のようにハッシュ値Dを求め、D=D’であることを確認し、D≠D’の場合は処理を中止する(S640)。D=D’の場合はステップS310に進む。ステップS310、S230、S380は実施例1と同じである。
【0065】
実施例2はこのような処理なので、実施例1の効果が得られた上で、さらに受信装置が実際に復号できるときのみ復号履歴を記録できる。例えば、受信装置に成りすました装置から大量のリクエストReqが送信されるなどの攻撃があった場合でも、履歴蓄積部380にはこれらのリクエストReqについての復号履歴は記録されない。
【0066】
なお、実施例2の所定の方法1〜7は、実施例1で説明した所定の方法1〜7と同じである。そして、実施例2で説明した所定の方法3’、4’、5’、6’、7’も、「秘密鍵Kから複数の復号鍵(受信用秘密鍵K,代理計算用秘密鍵K)を生成する方式」と「鍵を伴う一部の演算機能のリソースを外部装置(復号履歴蓄積サーバ)に安全に代行させる方式」を組み合わせて構成するために互いに対応していればよい。例えば以下のようなバリエーションがある。
【0067】
所定の方法の組み合わせ2−1
所定の方法1では、受信用秘密鍵K
=K’ K
のように求める。所定の方法2では、代理計算用秘密鍵K
=K−1
のように求める。このような場合であれば、所定の方法3’では、暗号化認証鍵V’を
V’=A(+)H(gID
のように求める。所定の方法4’では、リクエストReq’を受信用秘密鍵Kを含む情報とする。所定の方法5’では、値Wを
W=Res’
のように求める。所定の方法6’では、認証鍵A’を
A’=V’(+)H(W)
のように求める。所定の方法7’では、レスポンスRes’を
Res’=e(K,U’)^K
のように求める。ただし、ペアリングeでは式(1)が成り立つので、
Res’=e(K,U’) または Res’=e(K,KU’)
のようにレスポンスRes’を求めてもよい。
【0068】
なお、上述の所定の方法の組み合わせの一部を以下の例のように変更してもよい。
【0069】
第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’を求めてもよい。
【0070】
第2の例では、所定の方法1を
=(K’)−1
とし、所定の方法2を
=K
とし、所定の方法7’を
Res’=e(K,U’)^K
としてもよい。ただし、ペアリングeでは式(1)が成り立つので、
Res’=e(K,U’) または Res’=e(K,KU’)
のようにレスポンスRes’を求めてもよい。
【0071】
第3の例では、所定の方法3’を、H(gID)を共通鍵として認証鍵Aを暗号化し、暗号化認証鍵V’を求めてもよい。この場合は、所定の方法6’は、H(W)を共通鍵として暗号化認証鍵V’を認証鍵A’に復号するとすればよい。
【0072】
第4の例では、ステップS610でセッション情報U’も受信装置500に送信し、所定の方法4’では、リクエストReq’を
Req’=e(K,U’)
のように求める。そして、所定の方法7’では、レスポンスRes’を
Res’=Req’^K
のように求めるとしてもよい。
【0073】
所定の方法の組み合わせ2−2
所定の方法1では、受信用秘密鍵K
=K’ K
のように求める。所定の方法2では、代理計算用秘密鍵K
=K−1
のように求める。所定の方法3’では、暗号化認証鍵V’を
V’=A(+)H(gID
のように求める。所定の方法4’では、第2リクエスト作成部520が、乱数rtmpを0以上p−1以下の整数から選択し、隠蔽鍵Ktmp
tmp=rtmp
を求め、リクエストReq’を隠蔽鍵Ktmpを含む情報とする。所定の方法5’では、値Wを
W=Res’^rtmp−1
のように求める。所定の方法6’では、認証鍵A’を
A’=V’(+)H(W)
のように求める。所定の方法7’では、レスポンスRes’を
Res’=e(Ktmp,U’)^K
のように求める。ただし、ペアリングeでは式(1)が成り立つので、
Res’=e(Ktmp,U’) または Res’=e(Ktmp,KU’)
のようにレスポンスResを求めてもよい。
【0074】
なお、上述の所定の方法の組み合わせの一部を以下の例のように変更してもよい。
【0075】
第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’を求めてもよい。
【0076】
第2の例では、所定の方法1を
=(K’)−1
とし、所定の方法2を
=K
とし、所定の方法7’を
Res’=e(Ktmp,U’)^K
としてもよい。ただし、ペアリングeでは式(1)が成り立つので、
Res’=e(Ktmp,U’) または Res’=e(Ktmp,KU’)
のようにレスポンスRes’を求めてもよい。
【0077】
第3の例では、所定の方法3’を、H(gID)を共通鍵として認証鍵Aを暗号化し、暗号化認証鍵V’を求めてもよい。この場合は、所定の方法6’は、H(W)を共通鍵として暗号化認証鍵V’を認証鍵A’に復号するとすればよい。
【0078】
第4の例では、ステップS610でセッション情報U’も受信装置500に送信し、所定の方法4’では、リクエストReq’を
Req’=e(rtmp,U’)
のように求める。そして、所定の方法7’では、レスポンスRes’を
Res’=Req’^K
のように求めるとしてもよい。
【0079】
[変形例1]
実施例2は暗号文Vを復号する前に受信装置の認証を行う点が実施例1と異なる。しかし、秘密鍵を配布する処理と、復号対象の暗号文Vの生成と復号自体は実施例1と同じである。したがって、実施例1で説明した変形例1〜3は実施例2でも適用できる。
【0080】
実施例2変形例1は、受信装置500自体が暗号文識別情報vを生成する点(暗号文識別情報vを受信しない点)を変更した暗号化システムである(実施例1変形例1に相当する)。実施例2変形例1の暗号化システムの構成例は図6である。この場合は、受信装置500は、暗号文識別情報生成部240も備える。そして、秘密鍵を配布する処理フローが図2、暗号文の生成から復号までの処理フローが図8である。実施例2と実施例2変形例1との相違点は、実施例1と実施例1変形例1との相違点と同じなので、説明は省略する。
【0081】
[変形例2]
実施例2変形例2は、鍵生成装置400が保護用秘密鍵Kも生成する暗号化システムである(実施例1変形例2に相当する)。実施例2変形例2の暗号化システムの構成例は図6である。実施例2変形例2では、受信装置500は、暗号文識別情報生成部240は備えていない。そして、秘密鍵を配布する処理フローが図5、暗号文の生成から復号までの処理フローが図7である。実施例2と実施例2変形例2との相違点は、実施例1と実施例1変形例2との相違点と同じなので、秘密鍵を配布する処理フローと暗号文の生成から復号までの処理フローの説明は省略する。また、所定の方法1〜7は実施例1変形例2と同じなので説明を省略する。所定の方法3’、4’、5’、6’、7’の具体例については以下に説明する。ただし、「秘密鍵Kから複数の復号鍵(受信用秘密鍵K,保護用秘密鍵K,代理計算用秘密鍵K)を生成する方式」と「鍵を伴う一部の演算機能のリソースを外部装置(復号履歴蓄積サーバ)に安全に代行させる方式」とが機能する範囲ならば、これらの組み合わせに限定する必要はない。
【0082】
所定の方法の組み合わせ2−3
所定の方法1では、受信用秘密鍵K
=K’K
のように求める。所定の方法2’では、代理計算用秘密鍵K
=(K’)−1
のように求める。所定の方法3’では、暗号化認証鍵V’を
V’=A(+)H(gID
のように求める。所定の方法4’では、リクエストReq’を受信用秘密鍵Kを含む情報とする。所定の方法5’では、値Wを
W=Res’^K
のように求める。所定の方法6’では、認証鍵A’を
A’=V’(+)H(W)
のように求める。所定の方法7’では、レスポンスRes’を
Res’=e(K,U’)^K
のように求める。ただし、ペアリングeでは式(1)が成り立つので、
Res’=e(K,U’) または Res’=e(K,KU’)
のようにレスポンスRes’を求めてもよい。
【0083】
なお、上述の所定の方法の組み合わせの一部を以下の例のように変更してもよい。
【0084】
第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’を求めてもよい。
【0085】
第2の例では、所定の方法1を
=(K’)−1
とし、所定の方法2’を
=(K−1
とし、所定の方法7’を
Res’=e(K,U’)^K
としてもよい。ただし、ペアリングeでは式(1)が成り立つので、
Res’=e(K,U’) または Res’=e(K,KU’)
のようにレスポンスRes’を求めてもよい。
【0086】
第3の例では、所定の方法3’を、H(gID)を共通鍵として認証鍵Aを暗号化し、暗号化認証鍵V’を求めてもよい。この場合は、所定の方法6’は、H(W)を共通鍵として暗号文Vを平文M’に復号するとすればよい。
【0087】
第4の例では、ステップS610でセッション情報U’も受信装置500に送信し、所定の方法4’では、リクエストReq’を
Req’=e(K,U’)
のように求める。そして、所定の方法7’では、レスポンスRes’を
Res’=Req’^K
のように求めるとしてもよい。
【0088】
所定の方法の組み合わせ2−4
所定の方法1では、受信用秘密鍵K
=K’K
のように求める。所定の方法2’では、代理計算用秘密鍵K
=(K’)−1
のように求める。所定の方法3’では、暗号化認証鍵V’を
V’=A(+)H(gID
のように求める。所定の方法4’では、第2リクエスト作成部520が、乱数rtmpを0以上p−1以下の整数から選択し、隠蔽鍵Ktmp
tmp=rtmp
を求め、リクエストReq’を隠蔽鍵Ktmpを含む情報とする。所定の方法5’では、値Wを
W=Res’^(rtmp−1
のように求める。所定の方法6’では、認証鍵A’を
A’=V’(+)H(W)
のように求める。所定の方法7’では、レスポンスRes’を
Res’=e(Ktmp,U’)^K
のように求める。ただし、ペアリングeでは式(1)が成り立つので、
Res’=e(Ktmp,U’) または Res’=e(Ktmp,KU’)
のようにレスポンスRes’を求めてもよい。
【0089】
なお、上述の所定の方法の組み合わせの一部を以下の例のように変更してもよい。
【0090】
第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’を求めてもよい。
【0091】
第2の例では、所定の方法1を
=(K’)−1
とし、所定の方法2’を
=(K−1
とし、所定の方法7’を
Res’=e(Ktmp,U’)^K
としてもよい。ただし、ペアリングeでは式(1)が成り立つので、
Res’=e(Ktmp,U’) または Res’=e(Ktmp,KU’)
のようにレスポンスRes’を求めてもよい。
【0092】
第3の例では、所定の方法3を、H(gID)を共通鍵として認証鍵Aを暗号化し、暗号化認証鍵V’を求めてもよい。この場合は、所定の方法6’は、H(W)を共通鍵として暗号化認証鍵V’を認証鍵A’に復号するとすればよい。
【0093】
第4の例では、ステップS610でセッション情報U’も受信装置500に送信し、所定の方法4’では、リクエストReq’を
Req’=e(rtmp,U’)
のように求める。そして、所定の方法7’では、レスポンスRes’を
Res’=Req’^K
のように求めるとしてもよい。
【0094】
[変形例3]
実施例2変形例3は、受信装置500自体が暗号文識別情報vを生成する点(暗号文識別情報vを受信しない点)と、鍵生成装置400が保護用秘密鍵Kも生成する点を変更した暗号化システムである(実施例1変形例3に相当する)。実施例2変形例3の暗号化システムの構成例は図6である。この場合は、受信装置500は、暗号文識別情報生成部240も備える。そして、秘密鍵を配布する処理フローが図5、暗号文の生成から復号までの処理フローが図8である。実施例2変形例2と実施例2変形例3との相違点は、実施例1変形例2と実施例1変形例3との相違点と同じなので、説明は省略する。
【実施例3】
【0095】
実施例3では、実施例2とは異なる方法で復号履歴蓄積サーバが認証する暗号化システムを示す。図9に実施例3の暗号化システムの構成例を示す。図10に実施例3の暗号化システムの秘密鍵を配布する処理フローを、図11に暗号文の生成から復号までの処理フローを示す。実施例3の暗号化システムは、送信装置100、受信装置501、復号履歴蓄積サーバ601、鍵生成装置700で構成される。
【0096】
以下の説明では、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)、(+)はビット単位の排他的論理和を示す記号、^はべき乗を示す記号、vは暗号文Vを識別する暗号文識別情報、hは暗号文Vを識別する暗号文識別情報を生成する関数を示す記号、‖はビット列の結合を示す記号とする。
【0097】
送信装置100は、暗号化部110、暗号文送信部120、暗号化記録部190を備える。受信装置501は、属性送信部210、リクエスト作成部220、リクエスト送信部225、復号部230、鍵識別子送信部560、復号記録部295を備える。復号履歴蓄積サーバ601は、レスポンス作成部310、レスポンス送信部315、鍵識別子照合部660、セッション情報蓄積部370、履歴蓄積部380、代理記録部395を備える。鍵生成装置700は、鍵生成部410、鍵分割部420、鍵配布部730、鍵識別子生成部740、鍵生成記録部490を備える。以下に、処理フローを説明しながら、これらの構成部の機能を説明する。
【0098】
秘密鍵を配布する処理フロー
ステップS211からS434までは実施例1と同じである。ステップS434の後、鍵識別子生成部740が、受信用秘密鍵Kと代理計算用秘密鍵Kから鍵識別子KIDを生成する(S740)。なお、鍵識別子KIDは、受信用秘密鍵Kと代理計算用秘密鍵Kから特定できる情報であればよい。例えば、K‖Kのハッシュ値を鍵識別子KIDとしてもよいし、K‖K‖Xのように他の情報X(例えば、受信装置200の属性を示すビット列ID)も付加したビット列のハッシュ値を鍵識別子KIDとしてもよい。さらには、後述する実施例3変形例2のように保護用秘密鍵Kも生成するときは、K‖K‖Kのハッシュ値を鍵識別子KIDとしてもよい。
【0099】
そして、鍵配布部730は、受信用秘密鍵Kと鍵識別子KIDを受信装置501に送信し、受信用秘密鍵Kを送信した受信装置501を識別する受信装置識別情報RIDと代理計算用秘密鍵Kと鍵識別子KIDを復号履歴蓄積サーバ601に送信する(S735)。受信装置501の復号記録部295は、受信用秘密鍵Kを記録する(S293)。復号履歴蓄積サーバ601の代理記録部395は、受信装置識別情報RIDに対応付けて代理計算用秘密鍵Kを記録する(S393)。
【0100】
暗号文の生成から復号までの処理フロー
ステップS212からS222までの処理は実施例1と同じである。受信装置501の鍵識別子送信部560は、復号履歴蓄積サーバ601に鍵識別子KIDを送信する(S560)。なお、鍵識別子KIDの送信は、リクエストReqと一緒でもよい。また、何らかの安全な通信手段を利用すればよい。復号履歴蓄積サーバ601の鍵識別子照合部660は、鍵識別子KIDが正しいかを照合する(正しい受信用秘密鍵Kを所有している受信装置501かを確認する)(S560)。照合が失敗した場合は処理を中止する。照合が成功した場合はステップS310に進む。ステップS310、S230、S380は実施例1と同じである。
【0101】
なお、上述の方法に限定する必要はなく、あらかじめ受信装置501と復号履歴蓄積サーバ601が鍵識別子KIDを共有し、受信装置501と復号履歴蓄積サーバ601が、鍵識別子KIDを照合する照合手段を備えていればよい。実施例3はこのような処理なので、実施例1の効果が得られた上で、さらに受信装置が実際に復号できるときのみ復号履歴を記録できる。
【0102】
[変形例1]
実施例3も暗号文Vを復号する前に受信装置の認証を行う点が実施例1と異なる。しかし、秘密鍵を配布する処理と、復号対象の暗号文Vの生成と復号自体は実施例1と同じである。したがって、実施例1で説明した変形例1〜3は実施例3でも適用できる。
【0103】
実施例3変形例1は、受信装置501自体が暗号文識別情報vを生成する点(暗号文識別情報vを受信しない点)を変更した暗号化システムである(実施例1変形例1に相当する)。実施例3変形例1の暗号化システムの構成例は図9である。この場合は、受信装置501は、暗号文識別情報生成部240も備える。そして、秘密鍵を配布する処理フローが図10、暗号文の生成から復号までの処理フローが図12である。実施例3と実施例3変形例1との相違点は、実施例1と実施例1変形例1との相違点と同じなので、説明は省略する。
【0104】
[変形例2]
実施例3変形例2は、鍵生成装置700が保護用秘密鍵Kも生成する暗号化システムである(実施例1変形例2に相当する)。実施例3変形例2の暗号化システムの構成例は図9である。実施例3変形例2では、受信装置501は、暗号文識別情報生成部240は備えていない。そして、秘密鍵を配布する処理フローが図13、暗号文の生成から復号までの処理フローが図11である。実施例3と実施例3変形例2との相違点は、実施例1と実施例1変形例2との相違点と同じなので、説明は省略する。
【0105】
[変形例3]
実施例3変形例3は、受信装置501自体が暗号文識別情報vを生成する点(暗号文識別情報vを受信しない点)と、鍵生成装置700が保護用秘密鍵Kも生成する点を変更した暗号化システムである(実施例1変形例3に相当する)。実施例3変形例3の暗号化システムの構成例は図9である。この場合は、受信装置501は、暗号文識別情報生成部240も備える。そして、秘密鍵を配布する処理フローが図13、暗号文の生成から復号までの処理フローが図12である。実施例3変形例2と実施例3変形例3との相違点は、実施例1変形例2と実施例1変形例3との相違点と同じなので、説明は省略する。
【0106】
[プログラム、記録媒体]
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【0107】
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【0108】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【0109】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0110】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0111】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【符号の説明】
【0112】
100 送信装置 110 暗号化部
120、121 暗号文送信部 190 暗号化記録部
200、500、501 受信装置 210 属性送信部
220 リクエスト作成部 225 リクエスト送信部
230 復号部 240 暗号文識別情報生成部
290、295 復号記録部
300、600、601 復号履歴蓄積サーバ
310 レスポンス作成部 315 レスポンス送信部
370 セッション情報蓄積部 380 履歴蓄積部
390、395 代理記録部 400、700 鍵生成装置
410 鍵生成部 420 鍵分割部
430、730 鍵配布部 490 鍵生成記録部
520 第2リクエスト作成部 530 第2復号部
550 ハッシュ値計算部 560 鍵識別子送信部
610 認証鍵生成部 620 チャレンジ生成部
630 第2レスポンス作成部 640 認証部
660 鍵識別子照合部 740 鍵識別子生成部


【特許請求の範囲】
【請求項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を暗号化した暗号文、vは暗号文Vを識別する暗号文識別情報、hは暗号文Vを識別する暗号文識別情報を生成する関数を示す記号であり、
前記送信装置は、少なくとも前記受信装置に暗号文Vを送信し、前記復号履歴蓄積サーバにセッション情報Uと暗号文識別情報vとを送信する暗号文送信部を備え、
前記受信装置は、
受信用秘密鍵Kを記録する復号記録部と、
受信用秘密鍵Kを用いて所定の方法4でリクエストReqを作成するリクエスト作成部と、
前記リクエストReq、v=h(V)を満たす暗号文識別情報v、当該受信装置を特定する受信装置識別情報RIDとを前記復号履歴蓄積サーバに送信するリクエスト送信部と、
前記復号履歴蓄積サーバから受信したレスポンスResを用いて前記所定の方法2と前記所定の方法4に対応した方法である所定の方法5にしたがってgIDの値Wを求め、H(W)を用いて前記所定の方法3に対応した方法である所定の方法6にしたがって暗号文Vを復号して平文M’に復号する復号部と、
を備え、
前記復号履歴蓄積サーバは、
受信装置識別情報RIDに対応付けて代理計算用秘密鍵Kを記録する代理記録部と、
前記送信装置から受信したセッション情報Uと暗号文識別情報vとを対応付けて記録するセッション情報蓄積部と、
前記受信装置から受信した暗号文識別情報vと一致する前記セッション情報蓄積部に記録された暗号文識別情報vに対応付けられたセッション情報Uを取得し、前記受信装置から受信した受信装置識別情報RIDと一致する前記代理記録部に記録された受信装置識別情報RIDに対応付けられた代理計算用秘密鍵Kを取得し、前記所定の方法1と前記所定の方法2と前記所定の方法4に対応した方法である所定の方法7にしたがって前記セッション情報Uと前記代理計算用秘密鍵Kを用いた計算を行ってレスポンスResを求めるレスポンス作成部と、
前記レスポンスResを前記受信装置に送信するレスポンス送信部と、
レスポンスResを前記受信装置に送信したときは、暗号文識別情報vと、受信装置識別情報RIDと、時刻とを対応付けて記録する履歴蓄積部と、
を備える
暗号化システム。
【請求項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では、前記リクエスト作成部が、乱数rtmpを0以上p−1以下の整数から選択し、隠蔽鍵Ktmp
tmp=rtmp
を求め、リクエストReqを隠蔽鍵Ktmpを含む情報とし、
前記所定の方法5では、値Wを
W=Res^rtmp−1
のように求め、
前記所定の方法6では、平文M’を
M’=V(+)H(W)
のように求め、
前記所定の方法7では、レスポンスResを
Res=e(Ktmp,U)^K
のように求める
ことを特徴とする暗号化システム。
【請求項4】
請求項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を含む情報とし、
前記所定の方法5では、値Wを
W=Res^rtmp−1
のように求め、
前記所定の方法6では、平文M’を
M’=V(+)H(W)
のように求め、
前記所定の方法7では、レスポンスResを
Res=e(Ktmp,U)^K
のように求める
ことを特徴とする暗号化システム。
【請求項5】
請求項1から4のいずれかに記載の暗号化システムであって、
‖はビット列の結合を示す記号、H’はビット列に対するハッシュ値を求めるハッシュ関数を示す記号であり、
前記復号履歴蓄積サーバは、
認証鍵Aと0以上p−1以下の整数である乱数aを生成し、H(gID)を用いて所定の方法3’で認証鍵Aを暗号化して暗号化認証鍵V’を求め、U’=aPのようにセッション情報U’を計算し、前記暗号化認証鍵V’のみ若しくは前記暗号化認証鍵V’と前記セッション情報U’を前記受信装置に送信する認証鍵生成部と、
チャレンジBを生成し、前記受信装置に送信するチャレンジ生成部
も備え、
前記受信装置は、さらに
受信用秘密鍵Kを用いて所定の方法4’でリクエストReq’を作成する第2リクエスト作成部と、
前記復号履歴蓄積サーバから受信したレスポンスRes’を用いて前記所定の方法2と前記所定の方法4’に対応した方法である所定の方法5’にしたがってgIDの値Wを求め、H(W)を用いて前記所定の方法3’に対応した方法である所定の方法6’にしたがって暗号化認証鍵V’を復号して認証鍵A’に復号する第2復号部と、
D’=H’(A’‖B)のようにハッシュ値D’を求め、前記復号履歴蓄積サーバに送信するハッシュ値計算部と
を備え、
前記復号履歴蓄積サーバは、さらに
前記所定の方法1と前記所定の方法2と前記所定の方法4’に対応した方法である所定の方法7’にしたがって前記セッション情報U’と前記代理計算用秘密鍵Kを用いた計算を行ってレスポンスRes’を求める第2レスポンス作成部と、
D=H’(A‖B)のようにハッシュ値Dを求め、D=D’であることを確認する認証部
を備える
ことを特徴とする暗号化システム。
【請求項6】
送信装置、受信装置、復号履歴蓄積サーバを用いた復号方法であって、
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を暗号化した暗号文、vは暗号文Vを識別する暗号文識別情報、hは暗号文Vを識別する暗号文識別情報を生成する関数を示す記号であり、
前記受信装置は、復号記録部に受信用秘密鍵Kを記録しておき、
前記復号履歴蓄積サーバは、代理記録部に受信装置識別情報RIDに対応付けて代理計算用秘密鍵Kを記録しておき、
前記送信装置が、少なくとも前記受信装置に暗号文Vを送信し、前記復号履歴蓄積サーバにセッション情報Uと暗号文識別情報vとを送信する暗号文送信ステップと、
前記復号履歴蓄積サーバが、セッション情報蓄積部に前記送信装置から受信したセッション情報Uと暗号文識別情報vとを対応付けて記録するセッション情報蓄積ステップと、
前記受信装置が、受信用秘密鍵Kを用いて所定の方法4でリクエストReqを作成するリクエスト作成ステップと、
前記受信装置が、前記リクエストReq、v=h(V)を満たす暗号文識別情報v、当該受信装置を特定する受信装置識別情報RIDとを前記復号履歴蓄積サーバに送信するリクエスト送信ステップと、
前記復号履歴蓄積サーバが、前記受信装置から受信した暗号文識別情報vと一致する前記セッション情報蓄積部に記録された暗号文識別情報vに対応付けられたセッション情報Uを取得し、前記受信装置から受信した受信装置識別情報RIDと一致する前記代理記録部に記録された受信装置識別情報RIDに対応付けられた代理計算用秘密鍵Kを取得し、前記所定の方法1と前記所定の方法2と前記所定の方法4に対応した方法である所定の方法7にしたがって前記セッション情報Uと前記代理計算用秘密鍵Kを用いた計算を行ってレスポンスResを求めるレスポンス作成ステップと、
前記復号履歴蓄積サーバが、前記レスポンスResを前記受信装置に送信するレスポンス送信ステップと、
前記復号履歴蓄積サーバが、履歴蓄積部に暗号文識別情報vと、受信装置識別情報RIDと、時刻とを対応付けて記録する履歴蓄積ステップと、
前記受信装置が、前記復号履歴蓄積サーバから受信したレスポンスResを用いて前記所定の方法2と前記所定の方法4に対応した方法である所定の方法5にしたがってgIDの値Wを求め、H(W)を用いて前記所定の方法3に対応した方法である所定の方法6にしたがって暗号文Vを復号して平文M’に復号する復号ステップと、
を有する復号方法。
【請求項7】
pは素数、Gは位数pの巡回加算群、Pは群Gの生成元、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のように求められたセッション情報、vは暗号文Vを識別する暗号文識別情報、Reqは受信用秘密鍵Kを用いて所定の方法4で作成されたリクエストであり、
受信装置識別情報RIDに対応付けて代理計算用秘密鍵Kを記録する代理記録部と、
送信装置から受信したセッション情報Uと暗号文識別情報vとを対応付けて記録するセッション情報蓄積部と、
受信装置からリクエストReqと暗号文識別情報vと受信装置識別情報RIDを受信し、前記受信装置から受信した暗号文識別情報vと一致する前記セッション情報蓄積部に記録された暗号文識別情報vに対応付けられたセッション情報Uを取得し、前記受信装置の受信装置識別情報RIDと一致する前記代理記録部に記録された受信装置識別情報RIDに対応付けられた代理計算用秘密鍵Kを取得し、前記所定の方法1と前記所定の方法2と前記所定の方法4に対応した方法である所定の方法7にしたがって前記セッション情報Uと前記代理計算用秘密鍵Kを用いた計算を行ってレスポンスResを求めるレスポンス作成部と、
前記レスポンスResを前記受信装置に送信するレスポンス送信部と、
レスポンスResを前記受信装置に送信したときは、暗号文識別情報vと、受信装置識別情報RIDと、時刻とを対応付けて記録する履歴蓄積部と、
を備える復号履歴蓄積サーバ。
【請求項8】
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を暗号化した暗号文、vは暗号文Vを識別する暗号文識別情報であり、
受信用秘密鍵Kを記録する復号記録部と、
受信用秘密鍵Kを用いて所定の方法4でリクエストReqを作成するリクエスト作成部と、
前記リクエストReq、暗号文識別情報v、受信装置識別情報RIDを復号履歴蓄積サーバに送信するリクエスト送信部と、
前記所定の方法1と前記所定の方法2と前記所定の方法4に対応した方法である所定の方法7にしたがって前記セッション情報Uと前記代理計算用秘密鍵Kを用いた計算を行って求められたレスポンスResを前記復号履歴蓄積サーバから受信し、レスポンスResを用いて前記所定の方法2と前記所定の方法4に対応した方法である所定の方法5にしたがってgIDの値Wを求め、H(W)を用いて前記所定の方法3に対応した方法である所定の方法6にしたがって暗号文Vを復号して平文M’に復号する復号部と、
を備える受信装置。
【請求項9】
請求項1から5のいずれかに記載の暗号化システムに含まれる送信装置であって、
平文Mを前記所定の方法3で暗号化して暗号文Vを求める暗号化部と、
受信装置に少なくとも暗号文Vを送信し、復号履歴蓄積サーバにセッション情報Uと暗号文識別情報vとを送信する暗号文送信部と
を備える送信装置。
【請求項10】
請求項7記載の復号履歴蓄積サーバ、請求項8記載の受信装置、請求項9記載の送信装置のいずれかとしてコンピュータを機能させるためのプログラム。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2013−9148(P2013−9148A)
【公開日】平成25年1月10日(2013.1.10)
【国際特許分類】
【出願番号】特願2011−140313(P2011−140313)
【出願日】平成23年6月24日(2011.6.24)
【新規性喪失の例外の表示】特許法第30条第1項適用申請有り 発行者名 2011年 暗号と情報セキュリティシンポジウム実行委員会 刊行物名 「2011年 暗号と情報セキュリティシンポジウム概要集」 発行年月日 平成23年1月25日 著者 武藤 健一郎・知加良 盛・山本 剛・小林 鉄太郎・関 良明・平田 真一
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】