(57)【要約】【課題】現実のハッシュ関数を用いては実現できないランダムオラクルを仮定せずに安全性が保証される三者間鍵共有技術を提供する。【解決手段】ランダムオラクルの代わりに擬似ランダム関数と強ランダム抽出器（または鍵導出関数）を用い、さらに、不正なアドホック公開鍵を検知できるメカニズム（CFZ暗号を用いる方法、または、非対話ゼロ知識証明を用いる方法）を加えることで、ランダムオラクルを仮定せずに安全な三者間鍵共有方式を実現する。【選択図】図２
2014138213.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも三つのユーザ装置（以下、これらを第１ユーザ装置、第２ユーザ装置、第３ユーザ装置とする）を含み、第１ユーザ装置、第２ユーザ装置、第３ユーザ装置のそれぞれがこれらに共通の秘密鍵（以下、共有鍵という）を共有するための三者間鍵共有システムであって、
ｐを素数、Ｚを整数全体を表す集合、Ｚpをｐを法とするＺの剰余類環、Ｇを素数ｐを位数とする巡回群、ｇを当該巡回群Ｇの生成元、ＧTを素数ｐを位数とする巡回群、ｅ：G×G→GTを双線形写像、ＴＣＲ：G→ZPを衝突困難ハッシュ関数、Ｆ：{0,1}*×Kspace→{0,1}κを擬似ランダム関数、Ｅxt：GT→Kspaceを強ランダム抽出器または鍵導出関数、Kspaceを擬似ランダム関数Ｆの鍵空間とし、第１ユーザ装置のユーザ識別子をＵA、第２ユーザ装置のユーザ識別子をＵB、第３ユーザ装置のユーザ識別子をＵCとし、記号（＋）は排他的論理和を表すとして、
上記第１ユーザ装置の固有秘密鍵ｘA，ｙA∈Ｚpと固有公開鍵ＸA＝ｇxA、ＹA＝ｇyA、上記第２ユーザ装置の固有秘密鍵ｘB，ｙB∈Ｚpと固有公開鍵ＸB＝ｇxB、ＹB＝ｇyB、上記第３ユーザ装置の固有秘密鍵ｘC，ｙC∈Ｚpと固有公開鍵ＸC＝ｇxC、ＹC＝ｇyCが予め定められており、
上記第１ユーザ装置は、
アドホック秘密鍵ｒA，ｒ′A∈Ｚpをランダムに選択するアドホック秘密鍵設定部と、
アドホック公開鍵ＲA＝ｇrA、πAB＝（ＸtABＹB）rA、πAC＝（ＸtACＹC）rA、Ｒ′A＝ｇr′A（ただし、ｔA＝ＴＣＲ（ＲA，Ｒ′A，ＵA，ＵB，ＵC）である）を計算するアドホック公開鍵設定部と、
少なくとも（ＵA，ＲA，πAB，πAC，Ｒ′A）を上記第２ユーザ装置と上記第３ユーザ装置に送信する送信部とを含み、
上記第２ユーザ装置は、
アドホック秘密鍵ｒB，ｒ′B∈Ｚpをランダムに選択するアドホック秘密鍵設定部と、
アドホック公開鍵ＲB＝ｇrB、πBA＝（ＸtBAＹA）rB、πBC＝（ＸtBCＹC）rB、Ｒ′B＝ｇr′B（ただし、ｔB＝ＴＣＲ（ＲB，Ｒ′B，ＵB，ＵC，ＵA）である）を計算するアドホック公開鍵設定部と、
少なくとも（ＵB，ＲB，πBA，πBC，Ｒ′B）を上記第１ユーザ装置と上記第３ユーザ装置に送信する送信部とを含み、
上記第３ユーザ装置は、
アドホック秘密鍵ｒC，ｒ′C∈Ｚpをランダムに選択するアドホック秘密鍵設定部と、
アドホック公開鍵ＲC＝ｇrC、πCA＝（ＸtCAＹA）rC、πCB＝（ＸtCBＹB）rC、Ｒ′C＝ｇr′C（ただし、ｔC＝ＴＣＲ（ＲC，Ｒ′C，ＵC，ＵA，ＵB）である）を計算するアドホック公開鍵設定部と、
少なくとも（ＵC，ＲC，πCA，πCB，Ｒ′C）を上記第２ユーザ装置と上記第３ユーザ装置に送信する送信部とを含み、
上記第１ユーザ装置は、さらに、
ｔB＝ＴＣＲ（ＲB，Ｒ′B，ＵB，ＵC，ＵA）、ｔC＝ＴＣＲ（ＲC，Ｒ′C，ＵC，ＵA，ＵB）を計算して、関係式（ｃ１）
【数１９】
2014138213.tif 000021
を検証する検証部と、
上記関係式（ｃ１）の全てが成立した場合に、式（ｃ２）の情報σ1，σ2，σ3，σ4，σ5，σ6，σ7，σ8、ただし、
【数２０】
2014138213.tif 000022
を計算し、さらに、σ′1←Ｅxt（σ1），σ′2←Ｅxt（σ2），σ′3←Ｅxt（σ3），σ′4←Ｅxt（σ4），σ′5←Ｅxt（σ5），σ′6←Ｅxt（σ6），σ′7←Ｅxt（σ7），σ′8←Ｅxt（σ8）を計算し、識別子sid＝（ＵA，（ＲA，πAB，πAC，Ｒ′A），ＵB，（ＲB，πBA，πBC，Ｒ′B），ＵC，（ＲC，πCA，πCB，Ｒ′C））を設定して、上記共有鍵ＳＫ＝Ｆσ′1（sid）（＋）Ｆσ′2（sid）（＋）Ｆσ′3（sid）（＋）Ｆσ′4（sid）（＋）Ｆσ′5（sid）（＋）Ｆσ′6（sid）（＋）Ｆσ′7（sid）（＋）Ｆσ′8（sid）を生成する共有鍵生成部とを含み、
上記第２ユーザ装置は、さらに、
ｔA＝ＴＣＲ（ＲA，Ｒ′A，ＵA，ＵB，ＵC）、ｔC＝ＴＣＲ（ＲC，Ｒ′C，ＵC，ＵA，ＵB）を計算して、関係式（ｃ３）
【数２１】
2014138213.tif 000023
を検証する検証部と、
上記関係式（ｃ３）の全てが成立した場合に、式（ｃ４）の情報σ1，σ2，σ3，σ4，σ5，σ6，σ7，σ8、ただし、
【数２２】
2014138213.tif 000024
を計算し、さらに、σ′1←Ｅxt（σ1），σ′2←Ｅxt（σ2），σ′3←Ｅxt（σ3），σ′4←Ｅxt（σ4），σ′5←Ｅxt（σ5），σ′6←Ｅxt（σ6），σ′7←Ｅxt（σ7），σ′8←Ｅxt（σ8）を計算し、識別子sid＝（ＵA，（ＲA，πAB，πAC，Ｒ′A），ＵB，（ＲB，πBA，πBC，Ｒ′B），ＵC，（ＲC，πCA，πCB，Ｒ′C））を設定して、上記共有鍵ＳＫ＝Ｆσ′1（sid）（＋）Ｆσ′2（sid）（＋）Ｆσ′3（sid）（＋）Ｆσ′4（sid）（＋）Ｆσ′5（sid）（＋）Ｆσ′6（sid）（＋）Ｆσ′7（sid）（＋）Ｆσ′8（sid）を生成する共有鍵生成部とを含み、
上記第３ユーザ装置は、さらに、
ｔA＝ＴＣＲ（ＲA，Ｒ′A，ＵA，ＵB，ＵC）、ｔB＝ＴＣＲ（ＲB，Ｒ′B，ＵB，ＵC，ＵA）を計算して、関係式（ｃ５）
【数２３】
2014138213.tif 000025
を検証する検証部と、
上記関係式（ｃ５）の全てが成立した場合に、式（ｃ６）の情報σ1，σ2，σ3，σ4，σ5，σ6，σ7，σ8、ただし、
【数２４】
2014138213.tif 000026
を計算し、さらに、σ′1←Ｅxt（σ1），σ′2←Ｅxt（σ2），σ′3←Ｅxt（σ3），σ′4←Ｅxt（σ4），σ′5←Ｅxt（σ5），σ′6←Ｅxt（σ6），σ′7←Ｅxt（σ7），σ′8←Ｅxt（σ8）を計算し、識別子sid＝（ＵA，（ＲA，πAB，πAC，Ｒ′A），ＵB，（ＲB，πBA，πBC，Ｒ′B），ＵC，（ＲC，πCA，πCB，Ｒ′C））を設定して、上記共有鍵ＳＫ＝Ｆσ′1（sid）（＋）Ｆσ′2（sid）（＋）Ｆσ′3（sid）（＋）Ｆσ′4（sid）（＋）Ｆσ′5（sid）（＋）Ｆσ′6（sid）（＋）Ｆσ′7（sid）（＋）Ｆσ′8（sid）を生成する共有鍵生成部とを含む
三者間鍵共有システム。
【請求項２】
少なくとも三つのユーザ装置（以下、これらを第１ユーザ装置、第２ユーザ装置、第３ユーザ装置とする）を含み、第１ユーザ装置、第２ユーザ装置、第３ユーザ装置のそれぞれがこれらに共通の秘密鍵（以下、共有鍵という）を共有するための三者間鍵共有システムであって、
ｐを素数、Ｚを整数全体を表す集合、Ｚpをｐを法とするＺの剰余類環、Ｇを素数ｐを位数とする巡回群、ｇを当該巡回群Ｇの生成元、ＧTを素数ｐを位数とする巡回群、ｅ：G×G→GTを双線形写像、（Ｐ，Ｖ）を非対話ゼロ知識証明アルゴリズム（ただし、アルゴリズムＰは命題ｘとその証拠ｗを入力とし証明ｙを出力するアルゴリズムであり、アルゴリズムＶは命題ｘと証明ｙを入力とし真理値０／１を出力するアルゴリズムとする）、Ｆ：{0,1}*×Kspace→{0,1}κを擬似ランダム関数、Ｅxt：GT→Kspaceを強ランダム抽出器または鍵導出関数、Kspaceを擬似ランダム関数Ｆの鍵空間とし、第１ユーザ装置のユーザ識別子をＵA、第２ユーザ装置のユーザ識別子をＵB、第３ユーザ装置のユーザ識別子をＵCとし、記号（＋）は排他的論理和を表すとして、
上記第１ユーザ装置の固有秘密鍵ａ0∈Ｚpと固有公開鍵Ａ0＝ｇa0、上記第２ユーザ装置の固有秘密鍵ｂ0∈Ｚpと固有公開鍵Ｂ0＝ｇb0、上記第３ユーザ装置の固有秘密鍵ｃ0∈Ｚpと固有公開鍵Ｃ0＝ｇc0が予め定められており、
上記第１ユーザ装置は、
アドホック秘密鍵ａ1∈Ｚpをランダムに選択するアドホック秘密鍵設定部と、
アドホック公開鍵Ａ1＝ｇa1を計算するアドホック公開鍵設定部と、
アルゴリズムＰを用いて命題（Ａ1＝ｇa1）と証拠ａ1に対して証明ｙAを計算する非対話ゼロ知識証明情報生成部と、
（ＵA，Ａ1，ｙA）を上記第２ユーザ装置と上記第３ユーザ装置に送信する送信部とを含み、
上記第２ユーザ装置は、
アドホック秘密鍵ｂ1∈Ｚpをランダムに選択するアドホック秘密鍵設定部と、
アドホック公開鍵Ｂ1＝ｇb1を計算するアドホック公開鍵設定部と、
アルゴリズムＰを用いて命題（Ｂ1＝ｇb1）と証拠ｂ1に対して証明ｙBを計算する非対話ゼロ知識証明情報生成部と、
（ＵB，Ｂ1，ｙB）を上記第１ユーザ装置と上記第３ユーザ装置に送信する送信部とを含み、
上記第３ユーザ装置は、
アドホック秘密鍵ｃ1∈Ｚpをランダムに選択するアドホック秘密鍵設定部と、
アドホック公開鍵Ｃ1＝ｇc1を計算するアドホック公開鍵設定部と、
アルゴリズムＰを用いて命題（Ｃ1＝ｇc1）と証拠ｃ1に対して証明ｙCを計算する非対話ゼロ知識証明情報生成部と、
（ＵC，Ｃ1，ｙC）を上記第１ユーザ装置と上記第２ユーザ装置に送信する送信部とを含み、
上記第１ユーザ装置は、さらに、
アルゴリズムＶを用いて証明ｙBと証明ｙCを検証する非対話ゼロ知識証明検証部と、
上記検証に成立した場合に、式（ｃ７）の情報σ1，σ2，σ3，σ4，σ5，σ6，σ7，σ8、ただし、
【数２５】
2014138213.tif 000027
を計算し、さらに、σ′1←Ｅxt（σ1），σ′2←Ｅxt（σ2），σ′3←Ｅxt（σ3），σ′4←Ｅxt（σ4），σ′5←Ｅxt（σ5），σ′6←Ｅxt（σ6），σ′7←Ｅxt（σ7），σ′8←Ｅxt（σ8）を計算し、識別子sid＝（ＵA，（Ａ1，ｙA），ＵB，（Ｂ1，ｙB），ＵC，（Ｃ1，ｙC））を設定して、上記共有鍵ＳＫ＝Ｆσ′1（sid）（＋）Ｆσ′2（sid）（＋）Ｆσ′3（sid）（＋）Ｆσ′4（sid）（＋）Ｆσ′5（sid）（＋）Ｆσ′6（sid）（＋）Ｆσ′7（sid）（＋）Ｆσ′8（sid）を生成する共有鍵生成部とを含み、
上記第２ユーザ装置は、さらに、
アルゴリズムＶを用いて証明ｙAと証明ｙCを検証する非対話ゼロ知識証明検証部と、
上記検証に成立した場合に、式（ｃ８）の情報σ1，σ2，σ3，σ4，σ5，σ6，σ7，σ8、ただし、
【数２６】
2014138213.tif 000028
を計算し、さらに、σ′1←Ｅxt（σ1），σ′2←Ｅxt（σ2），σ′3←Ｅxt（σ3），σ′4←Ｅxt（σ4），σ′5←Ｅxt（σ5），σ′6←Ｅxt（σ6），σ′7←Ｅxt（σ7），σ′8←Ｅxt（σ8）を計算し、識別子sid＝（ＵA，（Ａ1，ｙA），ＵB，（Ｂ1，ｙB），ＵC，（Ｃ1，ｙC））を設定して、上記共有鍵ＳＫ＝Ｆσ′1（sid）（＋）Ｆσ′2（sid）（＋）Ｆσ′3（sid）（＋）Ｆσ′4（sid）（＋）Ｆσ′5（sid）（＋）Ｆσ′6（sid）（＋）Ｆσ′7（sid）（＋）Ｆσ′8（sid）を生成する共有鍵生成部とを含み、
上記第３ユーザ装置は、さらに、
アルゴリズムＶを用いて証明ｙAと証明ｙBを検証する非対話ゼロ知識証明検証部と、
上記検証に成立した場合に、式（ｃ９）の情報σ1，σ2，σ3，σ4，σ5，σ6，σ7，σ8、ただし、
【数２７】
2014138213.tif 000029
を計算し、さらに、σ′1←Ｅxt（σ1），σ′2←Ｅxt（σ2），σ′3←Ｅxt（σ3），σ′4←Ｅxt（σ4），σ′5←Ｅxt（σ5），σ′6←Ｅxt（σ6），σ′7←Ｅxt（σ7），σ′8←Ｅxt（σ8）を計算し、識別子sid＝（ＵA，（Ａ1，ｙA），ＵB，（Ｂ1，ｙB），ＵC，（Ｃ1，ｙC））を設定して、上記共有鍵ＳＫ＝Ｆσ′1（sid）（＋）Ｆσ′2（sid）（＋）Ｆσ′3（sid）（＋）Ｆσ′4（sid）（＋）Ｆσ′5（sid）（＋）Ｆσ′6（sid）（＋）Ｆσ′7（sid）（＋）Ｆσ′8（sid）を生成する共有鍵生成部とを含む
三者間鍵共有システム。
【請求項３】
三つのユーザ装置（以下、これらを第１ユーザ装置、第２ユーザ装置、第３ユーザ装置とする）のそれぞれがこれらに共通の秘密鍵（以下、共有鍵という）を共有するための三者間鍵共有方法であって、
ｐを素数、Ｚを整数全体を表す集合、Ｚpをｐを法とするＺの剰余類環、Ｇを素数ｐを位数とする巡回群、ｇを当該巡回群Ｇの生成元、ＧTを素数ｐを位数とする巡回群、ｅ：G×G→GTを双線形写像、ＴＣＲ：G→ZPを衝突困難ハッシュ関数、Ｆ：{0,1}*×Kspace→{0,1}κを擬似ランダム関数、Ｅxt：GT→Kspaceを強ランダム抽出器または鍵導出関数、Kspaceを擬似ランダム関数Ｆの鍵空間とし、第１ユーザ装置のユーザ識別子をＵA、第２ユーザ装置のユーザ識別子をＵB、第３ユーザ装置のユーザ識別子をＵCとし、記号（＋）は排他的論理和を表すとして、
上記第１ユーザ装置の固有秘密鍵ｘA，ｙA∈Ｚpと固有公開鍵ＸA＝ｇxA、ＹA＝ｇyA、上記第２ユーザ装置の固有秘密鍵ｘB，ｙB∈Ｚpと固有公開鍵ＸB＝ｇxB、ＹB＝ｇyB、上記第３ユーザ装置の固有秘密鍵ｘC，ｙC∈Ｚpと固有公開鍵ＸC＝ｇxC、ＹC＝ｇyCが予め定められており、
上記第１ユーザ装置のアドホック秘密鍵設定部が、アドホック秘密鍵ｒA，ｒ′A∈Ｚpをランダムに選択するアドホック秘密鍵設定ステップと、
上記第１ユーザ装置のアドホック公開鍵設定部が、アドホック公開鍵ＲA＝ｇrA、πAB＝（ＸtABＹB）rA、πAC＝（ＸtACＹC）rA、Ｒ′A＝ｇr′A（ただし、ｔA＝ＴＣＲ（ＲA，Ｒ′A，ＵA，ＵB，ＵC）である）を計算するアドホック公開鍵設定ステップと、
上記第１ユーザ装置の送信部が、少なくとも（ＵA，ＲA，πAB，πAC，Ｒ′A）を上記第２ユーザ装置と上記第３ユーザ装置に送信する送信ステップと、
上記第２ユーザ装置のアドホック秘密鍵設定部が、アドホック秘密鍵ｒB，ｒ′B∈Ｚpをランダムに選択するアドホック秘密鍵設定ステップと、
上記第２ユーザ装置のアドホック公開鍵設定部が、アドホック公開鍵ＲB＝ｇrB、πBA＝（ＸtBAＹA）rB、πBC＝（ＸtBCＹC）rB、Ｒ′B＝ｇr′B（ただし、ｔB＝ＴＣＲ（ＲB，Ｒ′B，ＵB，ＵC，ＵA）である）を計算するアドホック公開鍵設定ステップと、
上記第２ユーザ装置の送信部が、少なくとも（ＵB，ＲB，πBA，πBC，Ｒ′B）を上記第１ユーザ装置と上記第３ユーザ装置に送信する送信ステップと、
上記第３ユーザ装置のアドホック秘密鍵設定部が、アドホック秘密鍵ｒC，ｒ′C∈Ｚpをランダムに選択するアドホック秘密鍵設定ステップと、
上記第３ユーザ装置のアドホック公開鍵設定部が、アドホック公開鍵ＲC＝ｇrC、πCA＝（ＸtCAＹA）rC、πCB＝（ＸtCBＹB）rC、Ｒ′C＝ｇr′C（ただし、ｔC＝ＴＣＲ（ＲC，Ｒ′C，ＵC，ＵA，ＵB）である）を計算するアドホック公開鍵設定ステップと、
上記第３ユーザ装置の送信部が、少なくとも（ＵC，ＲC，πCA，πCB，Ｒ′C）を上記第２ユーザ装置と上記第３ユーザ装置に送信する送信ステップと、
上記第１ユーザ装置の検証部が、ｔB＝ＴＣＲ（ＲB，Ｒ′B，ＵB，ＵC，ＵA）、ｔC＝ＴＣＲ（ＲC，Ｒ′C，ＵC，ＵA，ＵB）を計算して、関係式（ｃ１）
【数２８】
2014138213.tif 000030
を検証する検証ステップと、
上記第１ユーザ装置の共有鍵生成部が、上記関係式（ｃ１）の全てが成立した場合に、式（ｃ２）の情報σ1，σ2，σ3，σ4，σ5，σ6，σ7，σ8、ただし、
【数２９】
2014138213.tif 000031
を計算し、さらに、σ′1←Ｅxt（σ1），σ′2←Ｅxt（σ2），σ′3←Ｅxt（σ3），σ′4←Ｅxt（σ4），σ′5←Ｅxt（σ5），σ′6←Ｅxt（σ6），σ′7←Ｅxt（σ7），σ′8←Ｅxt（σ8）を計算し、識別子sid＝（ＵA，（ＲA，πAB，πAC，Ｒ′A），ＵB，（ＲB，πBA，πBC，Ｒ′B），ＵC，（ＲC，πCA，πCB，Ｒ′C））を設定して、上記共有鍵ＳＫ＝Ｆσ′1（sid）（＋）Ｆσ′2（sid）（＋）Ｆσ′3（sid）（＋）Ｆσ′4（sid）（＋）Ｆσ′5（sid）（＋）Ｆσ′6（sid）（＋）Ｆσ′7（sid）（＋）Ｆσ′8（sid）を生成する共有鍵生成ステップと、
上記第２ユーザ装置の検証部が、ｔA＝ＴＣＲ（ＲA，Ｒ′A，ＵA，ＵB，ＵC）、ｔC＝ＴＣＲ（ＲC，Ｒ′C，ＵC，ＵA，ＵB）を計算して、関係式（ｃ３）
【数３０】
2014138213.tif 000032
を検証する検証ステップと、
上記第２ユーザ装置の共有鍵生成部が、上記関係式（ｃ３）の全てが成立した場合に、式（ｃ４）の情報σ1，σ2，σ3，σ4，σ5，σ6，σ7，σ8、ただし、
【数３１】
2014138213.tif 000033
を計算し、さらに、σ′1←Ｅxt（σ1），σ′2←Ｅxt（σ2），σ′3←Ｅxt（σ3），σ′4←Ｅxt（σ4），σ′5←Ｅxt（σ5），σ′6←Ｅxt（σ6），σ′7←Ｅxt（σ7），σ′8←Ｅxt（σ8）を計算し、識別子sid＝（ＵA，（ＲA，πAB，πAC，Ｒ′A），ＵB，（ＲB，πBA，πBC，Ｒ′B），ＵC，（ＲC，πCA，πCB，Ｒ′C））を設定して、上記共有鍵ＳＫ＝Ｆσ′1（sid）（＋）Ｆσ′2（sid）（＋）Ｆσ′3（sid）（＋）Ｆσ′4（sid）（＋）Ｆσ′5（sid）（＋）Ｆσ′6（sid）（＋）Ｆσ′7（sid）（＋）Ｆσ′8（sid）を生成する共有鍵生成ステップと、
上記第３ユーザ装置の検証部が、ｔA＝ＴＣＲ（ＲA，Ｒ′A，ＵA，ＵB，ＵC）、ｔB＝ＴＣＲ（ＲB，Ｒ′B，ＵB，ＵC，ＵA）を計算して、関係式（ｃ５）
【数３２】
2014138213.tif 000034
を検証する検証ステップと、
上記第３ユーザ装置の共有鍵生成部が、上記関係式（ｃ５）の全てが成立した場合に、式（ｃ６）の情報σ1，σ2，σ3，σ4，σ5，σ6，σ7，σ8、ただし、
【数３３】
2014138213.tif 000035
を計算し、さらに、σ′1←Ｅxt（σ1），σ′2←Ｅxt（σ2），σ′3←Ｅxt（σ3），σ′4←Ｅxt（σ4），σ′5←Ｅxt（σ5），σ′6←Ｅxt（σ6），σ′7←Ｅxt（σ7），σ′8←Ｅxt（σ8）を計算し、識別子sid＝（ＵA，（ＲA，πAB，πAC，Ｒ′A），ＵB，（ＲB，πBA，πBC，Ｒ′B），ＵC，（ＲC，πCA，πCB，Ｒ′C））を設定して、上記共有鍵ＳＫ＝Ｆσ′1（sid）（＋）Ｆσ′2（sid）（＋）Ｆσ′3（sid）（＋）Ｆσ′4（sid）（＋）Ｆσ′5（sid）（＋）Ｆσ′6（sid）（＋）Ｆσ′7（sid）（＋）Ｆσ′8（sid）を生成する共有鍵生成ステップと
を有する三者間鍵共有方法。
【請求項４】
三つのユーザ装置（以下、これらを第１ユーザ装置、第２ユーザ装置、第３ユーザ装置とする）のそれぞれがこれらに共通の秘密鍵（以下、共有鍵という）を共有するための三者間鍵共有方法であって、
ｐを素数、Ｚを整数全体を表す集合、Ｚpをｐを法とするＺの剰余類環、Ｇを素数ｐを位数とする巡回群、ｇを当該巡回群Ｇの生成元、ＧTを素数ｐを位数とする巡回群、ｅ：G×G→GTを双線形写像、（Ｐ，Ｖ）を非対話ゼロ知識証明アルゴリズム（ただし、アルゴリズムＰは命題ｘとその証拠ｗを入力とし証明ｙを出力するアルゴリズムであり、アルゴリズムＶは命題ｘと証明ｙを入力とし真理値０／１を出力するアルゴリズムとする）、Ｆ：{0,1}*×Kspace→{0,1}κを擬似ランダム関数、Ｅxt：GT→Kspaceを強ランダム抽出器または鍵導出関数、Kspaceを擬似ランダム関数Ｆの鍵空間とし、第１ユーザ装置のユーザ識別子をＵA、第２ユーザ装置のユーザ識別子をＵB、第３ユーザ装置のユーザ識別子をＵCとし、記号（＋）は排他的論理和を表すとして、
上記第１ユーザ装置の固有秘密鍵ａ0∈Ｚpと固有公開鍵Ａ0＝ｇa0、上記第２ユーザ装置の固有秘密鍵ｂ0∈Ｚpと固有公開鍵Ｂ0＝ｇb0、上記第３ユーザ装置の固有秘密鍵ｃ0∈Ｚpと固有公開鍵Ｃ0＝ｇc0が予め定められており、
上記第１ユーザ装置のアドホック秘密鍵設定部が、アドホック秘密鍵ａ1∈Ｚpをランダムに選択するアドホック秘密鍵設定ステップと、
上記第１ユーザ装置のアドホック公開鍵設定部が、アドホック公開鍵Ａ1＝ｇa1を計算するアドホック公開鍵設定ステップと、
上記第１ユーザ装置の非対話ゼロ知識証明情報生成部が、アルゴリズムＰを用いて命題（Ａ1＝ｇa1）と証拠ａ1に対して証明ｙAを計算する非対話ゼロ知識証明情報生成ステップと、
上記第１ユーザ装置の送信部が、（ＵA，Ａ1，ｙA）を上記第２ユーザ装置と上記第３ユーザ装置に送信する送信ステップと、
上記第２ユーザ装置のアドホック秘密鍵設定部が、アドホック秘密鍵ｂ1∈Ｚpをランダムに選択するアドホック秘密鍵設定ステップと、
上記第２ユーザ装置のアドホック公開鍵設定部が、アドホック公開鍵Ｂ1＝ｇb1を計算するアドホック公開鍵設定ステップと、
上記第２ユーザ装置の非対話ゼロ知識証明情報生成部が、アルゴリズムＰを用いて命題（Ｂ1＝ｇb1）と証拠ｂ1に対して証明ｙBを計算する非対話ゼロ知識証明情報生成ステップと、
上記第２ユーザ装置の送信部が、（ＵB，Ｂ1，ｙB）を上記第１ユーザ装置と上記第３ユーザ装置に送信する送信ステップと、
上記第３ユーザ装置のアドホック秘密鍵設定部が、アドホック秘密鍵ｃ1∈Ｚpをランダムに選択するアドホック秘密鍵設定ステップと、
上記第３ユーザ装置のアドホック公開鍵設定部が、アドホック公開鍵Ｃ1＝ｇc1を計算するアドホック公開鍵設定ステップと、
上記第３ユーザ装置の非対話ゼロ知識証明情報生成部が、アルゴリズムＰを用いて命題（Ｃ1＝ｇc1）と証拠ｃ1に対して証明ｙCを計算する非対話ゼロ知識証明情報生成ステップと、
上記第３ユーザ装置の送信部が、（ＵC，Ｃ1，ｙC）を上記第１ユーザ装置と上記第２ユーザ装置に送信する送信ステップと、
上記第１ユーザ装置の非対話ゼロ知識証明検証部が、アルゴリズムＶを用いて証明ｙBと証明ｙCを検証する非対話ゼロ知識証明検証ステップと、
上記第１ユーザ装置の共有鍵生成部が、上記検証に成立した場合に、式（ｃ７）の情報σ1，σ2，σ3，σ4，σ5，σ6，σ7，σ8、ただし、
【数３４】
2014138213.tif 000036
を計算し、さらに、σ′1←Ｅxt（σ1），σ′2←Ｅxt（σ2），σ′3←Ｅxt（σ3），σ′4←Ｅxt（σ4），σ′5←Ｅxt（σ5），σ′6←Ｅxt（σ6），σ′7←Ｅxt（σ7），σ′8←Ｅxt（σ8）を計算し、識別子sid＝（ＵA，（Ａ1，ｙA），ＵB，（Ｂ1，ｙB），ＵC，（Ｃ1，ｙC））を設定して、上記共有鍵ＳＫ＝Ｆσ′1（sid）（＋）Ｆσ′2（sid）（＋）Ｆσ′3（sid）（＋）Ｆσ′4（sid）（＋）Ｆσ′5（sid）（＋）Ｆσ′6（sid）（＋）Ｆσ′7（sid）（＋）Ｆσ′8（sid）を生成する共有鍵生成ステップと、
上記第２ユーザ装置の非対話ゼロ知識証明検証部が、アルゴリズムＶを用いて証明ｙAと証明ｙCを検証する非対話ゼロ知識証明検証ステップと、
上記第２ユーザ装置の共有鍵生成部が、上記検証に成立した場合に、式（ｃ８）の情報σ1，σ2，σ3，σ4，σ5，σ6，σ7，σ8、ただし、
【数３５】
2014138213.tif 000037
を計算し、さらに、σ′1←Ｅxt（σ1），σ′2←Ｅxt（σ2），σ′3←Ｅxt（σ3），σ′4←Ｅxt（σ4），σ′5←Ｅxt（σ5），σ′6←Ｅxt（σ6），σ′7←Ｅxt（σ7），σ′8←Ｅxt（σ8）を計算し、識別子sid＝（ＵA，（Ａ1，ｙA），ＵB，（Ｂ1，ｙB），ＵC，（Ｃ1，ｙC））を設定して、上記共有鍵ＳＫ＝Ｆσ′1（sid）（＋）Ｆσ′2（sid）（＋）Ｆσ′3（sid）（＋）Ｆσ′4（sid）（＋）Ｆσ′5（sid）（＋）Ｆσ′6（sid）（＋）Ｆσ′7（sid）（＋）Ｆσ′8（sid）を生成する共有鍵生成ステップと、
上記第３ユーザ装置の非対話ゼロ知識証明検証部が、アルゴリズムＶを用いて証明ｙAと証明ｙBを検証する非対話ゼロ知識証明検証ステップと、
上記第３ユーザ装置の共有鍵生成部が、上記検証に成立した場合に、式（ｃ９）の情報σ1，σ2，σ3，σ4，σ5，σ6，σ7，σ8、ただし、
【数３６】
2014138213.tif 000038
を計算し、さらに、σ′1←Ｅxt（σ1），σ′2←Ｅxt（σ2），σ′3←Ｅxt（σ3），σ′4←Ｅxt（σ4），σ′5←Ｅxt（σ5），σ′6←Ｅxt（σ6），σ′7←Ｅxt（σ7），σ′8←Ｅxt（σ8）を計算し、識別子sid＝（ＵA，（Ａ1，ｙA），ＵB，（Ｂ1，ｙB），ＵC，（Ｃ1，ｙC））を設定して、上記共有鍵ＳＫ＝Ｆσ′1（sid）（＋）Ｆσ′2（sid）（＋）Ｆσ′3（sid）（＋）Ｆσ′4（sid）（＋）Ｆσ′5（sid）（＋）Ｆσ′6（sid）（＋）Ｆσ′7（sid）（＋）Ｆσ′8（sid）を生成する共有鍵生成ステップと
を有する三者間鍵共有方法。
【請求項５】
請求項１または請求項２に記載の三者間鍵共有システムにおいて用いられる上記ユーザ装置。
【請求項６】
請求項５に記載のユーザ装置としてコンピュータを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報セキュリティ技術に関するものであり、三者それぞれが三者に共通の秘密鍵を共有するための三者間鍵共有技術（三者間鍵交換技術ともいう）に関する。
【背景技術】
【０００２】
従来技術に、三者間での鍵共有セッションにて用いられる秘密鍵（アドホック秘密鍵）の漏洩に強い三者間鍵交換方式であるＦＭＳＵ方式がある（非特許文献１参照）。この方式の概要を説明する。
【０００３】
［パラメータ］
セキュリティパラメータκを入力とし、Ｇをκビット素数ｐを位数とする生成元ｇを持つ巡回群とし、ＧTをκビット素数ｐを位数とする生成元ｇTを持つ巡回群とする。また、e:G×G→GTを双線形写像とする。H:{0,1}*→{0,1}κを理想的なハッシュ関数（ランダムオラクル）とする。Ｐをプロトコルコードを識別するためのＩＤとする。
【０００４】
［固有公開鍵と固有秘密鍵］
ユーザ装置ＵAはランダムにａ0∈Ｚpを選びこれを固有秘密鍵とし、ユーザ装置ＵBはランダムにｂ0∈Ｚpを選びこれを固有秘密鍵とし、ユーザ装置ＵCはランダムにｃ0∈Ｚpを選びこれを固有秘密鍵とする。Ｚpはｐを法とするＺの剰余類環（Z/pZ）であり、Ｚは整数の集合である。また、ユーザ装置ＵAはＡ0＝ｇa0∈Ｇを計算しこれを固有公開鍵として公開し、ユーザ装置ＵBはＢ0＝ｇb0∈Ｇを計算しこれを固有公開鍵として公開し、ユーザ装置ＵCはＣ0＝ｇC0∈Ｇを計算しこれを固有公開鍵として公開する。
【０００５】
［鍵交換］
ユーザ装置ＵAは固有秘密鍵と固有公開鍵（ａ0，Ａ0）を持ち、ユーザ装置ＵBは固有秘密鍵と固有公開鍵（ｂ0，Ｂ0）を持ち、ユーザ装置ＵCは固有秘密鍵と固有公開鍵（ｃ0，Ｃ0）を持つ。
【０００６】
１．ユーザ装置ＵAはランダムにアドホック秘密鍵ａ1∈Ｚpを選び、アドホック公開鍵Ａ1＝ｇa1∈Ｇを計算し、（Ｐ，（ＵA，ＵB，ＵC），ＵA，Ａ1）をユーザ装置ＵBとユーザ装置ＵCに同報通信路を用いて送信する。
【０００７】
２．ユーザ装置ＵBはランダムにアドホック秘密鍵ｂ1∈Ｚpを選び、アドホック公開鍵Ｂ1＝ｇb1∈Ｇを計算し、（Ｐ，（ＵA，ＵB，ＵC），ＵB，Ｂ1）をユーザ装置ＵAとユーザ装置ＵCに同報通信路を用いて送信する。
【０００８】
３．ユーザ装置ＵCはランダムにアドホック秘密鍵ｃ1∈Ｚpを選び、アドホック公開鍵Ｃ1＝ｇC1∈Ｇを計算し、（Ｐ，（ＵA，ＵB，ＵC），ＵC，Ｃ1）をユーザ装置ＵAとユーザ装置ＵBに同報通信路を用いて送信する。
【０００９】
４．（Ｐ，（ＵA，ＵB，ＵC），ＵB，Ｂ1）と（Ｐ，（ＵA，ＵB，ＵC），ＵC，Ｃ1）を受け取ったらユーザ装置ＵAはＢ1，Ｃ1∈Ｇを検証し、この検証に合格したら、式（１）の情報を計算し、共有鍵ＳＫ＝Ｈ（σ1，…，σ8，ＵA，Ａ0，Ａ1，ＵB，Ｂ0，Ｂ1，ＵC，Ｃ0，Ｃ1）を生成し、処理を終了する。
【数１】
2014138213.tif 000003
【００１０】
５．（Ｐ，（ＵA，ＵB，ＵC），ＵA，Ａ1）と（Ｐ，（ＵA，ＵB，ＵC），ＵC，Ｃ1）を受け取ったらユーザ装置ＵBはＡ1，Ｃ1∈Ｇを検証し、この検証に合格したら、式（２）の情報を計算し、共有鍵ＳＫ＝Ｈ（σ1，…，σ8，ＵA，Ａ0，Ａ1，ＵB，Ｂ0，Ｂ1，ＵC，Ｃ0，Ｃ1）を生成し、処理を終了する。
【数２】
2014138213.tif 000004
【００１１】
６．（Ｐ，（ＵA，ＵB，ＵC），ＵA，Ａ1）と（Ｐ，（ＵA，ＵB，ＵC），ＵB，Ｂ1）を受け取ったら、ユーザ装置ＵCはＡ1，Ｂ1∈Ｇを検証し、この検証に合格したら、式（３）の情報を計算し、共有鍵ＳＫ＝Ｈ（σ1，…，σ8，ＵA，Ａ0，Ａ1，ＵB，Ｂ0，Ｂ1，ＵC，Ｃ0，Ｃ1）を生成し、処理を終了する。
【数３】
2014138213.tif 000005
【先行技術文献】
【非特許文献】
【００１２】
【非特許文献１】Atsushi Fujioka, Mark Manulis, Koutarou Suzuki, Berkant Ustaoglu, "Sufficient Condition for Ephemeral Key-leakage Resilient Tripartite Key Exchange" ACISP, 2012, pp.15-28.
【発明の概要】
【発明が解決しようとする課題】
【００１３】
上述の既存技術は安全性を保証するために、ハッシュ関数が理想的に安全（ランダムオラクル）でなければならないという問題がある。ランダムオラクルは現実のハッシュ関数を用いては実現できないことが知られている。よって、ランダムオラクルを仮定せずに安全性が保証される三者間鍵共有方式が望ましい。
【００１４】
そこで本発明は、ランダムオラクルを仮定せずに安全性が保証される三者間鍵共有技術を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明の三者間鍵共有技術は、三つのユーザ装置（以下、これらを第１ユーザ装置、第２ユーザ装置、第３ユーザ装置とする）のそれぞれがこれらに共通の秘密鍵（以下、共有鍵という）を共有するための三者間鍵共有技術であって、ｐを素数、Ｚを整数全体を表す集合、Ｚpをｐを法とするＺの剰余類環、Ｇを素数ｐを位数とする巡回群、ｇを当該巡回群Ｇの生成元、ＧTを素数ｐを位数とする巡回群、ｅ：G×G→GTを双線形写像、ＴＣＲ：G→ZPを衝突困難ハッシュ関数、Ｆ：{0,1}*×Kspace→{0,1}κを擬似ランダム関数、Ｅxt：GT→Kspaceを強ランダム抽出器または鍵導出関数、Kspaceを擬似ランダム関数Ｆの鍵空間とし、第１ユーザ装置のユーザ識別子をＵA、第２ユーザ装置のユーザ識別子をＵB、第３ユーザ装置のユーザ識別子をＵCとし、記号（＋）は排他的論理和を表すとし、第１ユーザ装置の固有秘密鍵ｘA，ｙA∈Ｚpと固有公開鍵ＸA＝ｇxA、ＹA＝ｇyA、第２ユーザ装置の固有秘密鍵ｘB，ｙB∈Ｚpと固有公開鍵ＸB＝ｇxB、ＹB＝ｇyB、第３ユーザ装置の固有秘密鍵ｘC，ｙC∈Ｚpと固有公開鍵ＸC＝ｇxC、ＹC＝ｇyCが予め定められているとする。そして、第１ユーザ装置において、アドホック秘密鍵ｒA，ｒ′A∈Ｚpをランダムに選択し[アドホック秘密鍵設定処理]、アドホック公開鍵ＲA＝ｇrA、πAB＝（ＸtABＹB）rA、πAC＝（ＸtACＹC）rA、Ｒ′A＝ｇr′A（ただし、ｔA＝ＴＣＲ（ＲA，Ｒ′A，ＵA，ＵB，ＵC）である）を計算し[アドホック公開鍵設定処理]、第１ユーザ装置から、少なくとも（ＵA，ＲA，πAB，πAC，Ｒ′A）を第２ユーザ装置と第３ユーザ装置に送信する。また、第２ユーザ装置において、アドホック秘密鍵ｒB，ｒ′B∈Ｚpをランダムに選択し[アドホック秘密鍵設定処理]、アドホック公開鍵ＲB＝ｇrB、πBA＝（ＸtBAＹA）rB、πBC＝（ＸtBCＹC）rB、Ｒ′B＝ｇr′B（ただし、ｔB＝ＴＣＲ（ＲB，Ｒ′B，ＵB，ＵC，ＵA）である）を計算し[アドホック公開鍵設定処理]、第２ユーザ装置から、少なくとも（ＵB，ＲB，πBA，πBC，Ｒ′B）を第１ユーザ装置と第３ユーザ装置に送信する。また、第３ユーザ装置において、アドホック秘密鍵ｒC，ｒ′C∈Ｚpをランダムに選択し[アドホック秘密鍵設定処理]、アドホック公開鍵ＲC＝ｇrC、πCA＝（ＸtCAＹA）rC、πCB＝（ＸtCBＹB）rC、Ｒ′C＝ｇr′C（ただし、ｔC＝ＴＣＲ（ＲC，Ｒ′C，ＵC，ＵA，ＵB）である）を計算し[アドホック公開鍵設定処理]、第３ユーザ装置から、少なくとも（ＵC，ＲC，πCA，πCB，Ｒ′C）を第２ユーザ装置と第３ユーザ装置に送信する。そして、第１ユーザ装置では、ｔB＝ＴＣＲ（ＲB，Ｒ′B，ＵB，ＵC，ＵA）、ｔC＝ＴＣＲ（ＲC，Ｒ′C，ＵC，ＵA，ＵB）を計算して、関係式（ｃ１）
【数４】
2014138213.tif 000006
を検証し[検証処理]、関係式（ｃ１）の全てが成立した場合に、式（ｃ２）の情報σ1，σ2，σ3，σ4，σ5，σ6，σ7，σ8、ただし、
【数５】
2014138213.tif 000007
を計算し、さらに、σ′1←Ｅxt（σ1），σ′2←Ｅxt（σ2），σ′3←Ｅxt（σ3），σ′4←Ｅxt（σ4），σ′5←Ｅxt（σ5），σ′6←Ｅxt（σ6），σ′7←Ｅxt（σ7），σ′8←Ｅxt（σ8）を計算し、識別子sid＝（ＵA，（ＲA，πAB，πAC，Ｒ′A），ＵB，（ＲB，πBA，πBC，Ｒ′B），ＵC，（ＲC，πCA，πCB，Ｒ′C））を設定して、共有鍵ＳＫ＝Ｆσ′1（sid）（＋）Ｆσ′2（sid）（＋）Ｆσ′3（sid）（＋）Ｆσ′4（sid）（＋）Ｆσ′5（sid）（＋）Ｆσ′6（sid）（＋）Ｆσ′7（sid）（＋）Ｆσ′8（sid）を生成する[共有鍵生成処理]。また、第２ユーザ装置では、ｔA＝ＴＣＲ（ＲA，Ｒ′A，ＵA，ＵB，ＵC）、ｔC＝ＴＣＲ（ＲC，Ｒ′C，ＵC，ＵA，ＵB）を計算して、関係式（ｃ３）
【数６】
2014138213.tif 000008
を検証し[検証処理]、関係式（ｃ３）の全てが成立した場合に、式（ｃ４）の情報σ1，σ2，σ3，σ4，σ5，σ6，σ7，σ8、ただし、
【数７】
2014138213.tif 000009
を計算し、さらに、σ′1←Ｅxt（σ1），σ′2←Ｅxt（σ2），σ′3←Ｅxt（σ3），σ′4←Ｅxt（σ4），σ′5←Ｅxt（σ5），σ′6←Ｅxt（σ6），σ′7←Ｅxt（σ7），σ′8←Ｅxt（σ8）を計算し、識別子sid＝（ＵA，（ＲA，πAB，πAC，Ｒ′A），ＵB，（ＲB，πBA，πBC，Ｒ′B），ＵC，（ＲC，πCA，πCB，Ｒ′C））を設定して、共有鍵ＳＫ＝Ｆσ′1（sid）（＋）Ｆσ′2（sid）（＋）Ｆσ′3（sid）（＋）Ｆσ′4（sid）（＋）Ｆσ′5（sid）（＋）Ｆσ′6（sid）（＋）Ｆσ′7（sid）（＋）Ｆσ′8（sid）を生成する[共有鍵生成処理]。また、第３ユーザ装置では、ｔA＝ＴＣＲ（ＲA，Ｒ′A，ＵA，ＵB，ＵC）、ｔB＝ＴＣＲ（ＲB，Ｒ′B，ＵB，ＵC，ＵA）を計算して、関係式（ｃ５）
【数８】
2014138213.tif 000010
を検証し[検証処理]、関係式（ｃ５）の全てが成立した場合に、式（ｃ６）の情報σ1，σ2，σ3，σ4，σ5，σ6，σ7，σ8、ただし、
【数９】
2014138213.tif 000011
を計算し、さらに、σ′1←Ｅxt（σ1），σ′2←Ｅxt（σ2），σ′3←Ｅxt（σ3），σ′4←Ｅxt（σ4），σ′5←Ｅxt（σ5），σ′6←Ｅxt（σ6），σ′7←Ｅxt（σ7），σ′8←Ｅxt（σ8）を計算し、識別子sid＝（ＵA，（ＲA，πAB，πAC，Ｒ′A），ＵB，（ＲB，πBA，πBC，Ｒ′B），ＵC，（ＲC，πCA，πCB，Ｒ′C））を設定して、共有鍵ＳＫ＝Ｆσ′1（sid）（＋）Ｆσ′2（sid）（＋）Ｆσ′3（sid）（＋）Ｆσ′4（sid）（＋）Ｆσ′5（sid）（＋）Ｆσ′6（sid）（＋）Ｆσ′7（sid）（＋）Ｆσ′8（sid）を生成する[共有鍵生成処理]。
【００１６】
あるいは、本発明の三者間鍵共有技術は、次のように構成することもできる。三つのユーザ装置（以下、これらを第１ユーザ装置、第２ユーザ装置、第３ユーザ装置とする）のそれぞれがこれらに共通の秘密鍵（以下、共有鍵という）を共有するための三者間鍵共有技術であって、ｐを素数、Ｚを整数全体を表す集合、Ｚpをｐを法とするＺの剰余類環、Ｇを素数ｐを位数とする巡回群、ｇを当該巡回群Ｇの生成元、ＧTを素数ｐを位数とする巡回群、ｅ：G×G→GTを双線形写像、（Ｐ，Ｖ）を非対話ゼロ知識証明アルゴリズム（ただし、アルゴリズムＰは命題ｘとその証拠ｗを入力とし証明ｙを出力するアルゴリズムであり、アルゴリズムＶは命題ｘと証明ｙを入力とし真理値０／１を出力するアルゴリズムとする）、Ｆ：{0,1}*×Kspace→{0,1}κを擬似ランダム関数、Ｅxt：GT→Kspaceを強ランダム抽出器または鍵導出関数、Kspaceを擬似ランダム関数Ｆの鍵空間とし、第１ユーザ装置のユーザ識別子をＵA、第２ユーザ装置のユーザ識別子をＵB、第３ユーザ装置のユーザ識別子をＵCとし、記号（＋）は排他的論理和を表すとし、第１ユーザ装置の固有秘密鍵ａ0∈Ｚpと固有公開鍵Ａ0＝ｇa0、第２ユーザ装置の固有秘密鍵ｂ0∈Ｚpと固有公開鍵Ｂ0＝ｇb0、第３ユーザ装置の固有秘密鍵ｃ0∈Ｚpと固有公開鍵Ｃ0＝ｇc0が予め定められているとする。そして、第１ユーザ装置において、アドホック秘密鍵ａ1∈Ｚpをランダムに選択し[アドホック秘密鍵設定処理]、アドホック公開鍵Ａ1＝ｇa1を計算し[アドホック公開鍵設定処理]、アルゴリズムＰを用いて命題（Ａ1＝ｇa1）と証拠ａ1に対して証明ｙAを計算し[非対話ゼロ知識証明情報生成処理]、第１ユーザ装置から、（ＵA，Ａ1，ｙA）を第２ユーザ装置と第３ユーザ装置に送信する。また、第２ユーザ装置において、アドホック秘密鍵ｂ1∈Ｚpをランダムに選択し[アドホック秘密鍵設定処理]、アドホック公開鍵Ｂ1＝ｇb1を計算し[アドホック公開鍵設定処理]、アルゴリズムＰを用いて命題（Ｂ1＝ｇb1）と証拠ｂ1に対して証明ｙBを計算し[非対話ゼロ知識証明情報生成処理]、第２ユーザ装置から、（ＵB，Ｂ1，ｙB）を第１ユーザ装置と第３ユーザ装置に送信する。また、第３ユーザ装置において、アドホック秘密鍵ｃ1∈Ｚpをランダムに選択し[アドホック秘密鍵設定処理]、アドホック公開鍵Ｃ1＝ｇc1を計算し[アドホック公開鍵設定処理]、アルゴリズムＰを用いて命題（Ｃ1＝ｇc1）と証拠ｃ1に対して証明ｙCを計算し[非対話ゼロ知識証明情報生成処理]、第３ユーザ装置から、（ＵC，Ｃ1，ｙC）を第１ユーザ装置と第２ユーザ装置に送信する。そして、第１ユーザ装置では、アルゴリズムＶを用いて証明ｙBと証明ｙCを検証し[非対話ゼロ知識証明検証処理]、この検証に成立した場合に、式（ｃ７）の情報σ1，σ2，σ3，σ4，σ5，σ6，σ7，σ8、ただし、
【数１０】
2014138213.tif 000012
を計算し、さらに、σ′1←Ｅxt（σ1），σ′2←Ｅxt（σ2），σ′3←Ｅxt（σ3），σ′4←Ｅxt（σ4），σ′5←Ｅxt（σ5），σ′6←Ｅxt（σ6），σ′7←Ｅxt（σ7），σ′8←Ｅxt（σ8）を計算し、識別子sid＝（ＵA，（Ａ1，ｙA），ＵB，（Ｂ1，ｙB），ＵC，（Ｃ1，ｙC））を設定して、共有鍵ＳＫ＝Ｆσ′1（sid）（＋）Ｆσ′2（sid）（＋）Ｆσ′3（sid）（＋）Ｆσ′4（sid）（＋）Ｆσ′5（sid）（＋）Ｆσ′6（sid）（＋）Ｆσ′7（sid）（＋）Ｆσ′8（sid）を生成する[共有鍵生成処理]。また、第２ユーザ装置では、アルゴリズムＶを用いて証明ｙAと証明ｙCを検証し[非対話ゼロ知識証明検証処理]、この検証に成立した場合に、式（ｃ８）の情報σ1，σ2，σ3，σ4，σ5，σ6，σ7，σ8、ただし、
【数１１】
2014138213.tif 000013
を計算し、さらに、σ′1←Ｅxt（σ1），σ′2←Ｅxt（σ2），σ′3←Ｅxt（σ3），σ′4←Ｅxt（σ4），σ′5←Ｅxt（σ5），σ′6←Ｅxt（σ6），σ′7←Ｅxt（σ7），σ′8←Ｅxt（σ8）を計算し、識別子sid＝（ＵA，（Ａ1，ｙA），ＵB，（Ｂ1，ｙB），ＵC，（Ｃ1，ｙC））を設定して、共有鍵ＳＫ＝Ｆσ′1（sid）（＋）Ｆσ′2（sid）（＋）Ｆσ′3（sid）（＋）Ｆσ′4（sid）（＋）Ｆσ′5（sid）（＋）Ｆσ′6（sid）（＋）Ｆσ′7（sid）（＋）Ｆσ′8（sid）を生成する[共有鍵生成処理]。また、第３ユーザ装置では、アルゴリズムＶを用いて証明ｙAと証明ｙBを検証し[非対話ゼロ知識証明検証処理]、この検証に成立した場合に、式（ｃ９）の情報σ1，σ2，σ3，σ4，σ5，σ6，σ7，σ8、ただし、
【数１２】
2014138213.tif 000014
を計算し、さらに、σ′1←Ｅxt（σ1），σ′2←Ｅxt（σ2），σ′3←Ｅxt（σ3），σ′4←Ｅxt（σ4），σ′5←Ｅxt（σ5），σ′6←Ｅxt（σ6），σ′7←Ｅxt（σ7），σ′8←Ｅxt（σ8）を計算し、識別子sid＝（ＵA，（Ａ1，ｙA），ＵB，（Ｂ1，ｙB），ＵC，（Ｃ1，ｙC））を設定して、共有鍵ＳＫ＝Ｆσ′1（sid）（＋）Ｆσ′2（sid）（＋）Ｆσ′3（sid）（＋）Ｆσ′4（sid）（＋）Ｆσ′5（sid）（＋）Ｆσ′6（sid）（＋）Ｆσ′7（sid）（＋）Ｆσ′8（sid）を生成する[共有鍵生成処理]。
【発明の効果】
【００１７】
本発明に拠れば、詳細は後述の実施形態に譲るが、ランダムオラクルの代わりに擬似ランダム関数と強ランダム抽出器（または鍵導出関数）を用い、さらに、不正なアドホック公開鍵を検知できるメカニズム（CFZ暗号を用いる方法、または、非対話ゼロ知識証明を用いる方法）を加えることで、ランダムオラクルを仮定せずに安全な三者間鍵共有方式を実現する。
【図面の簡単な説明】
【００１８】
【図１】実施形態の三者間鍵共有システムを示す図。
【図２】実施形態１における三者間鍵共有処理の処理手順を示す図。
【図３】実施形態１に関わる三者間鍵共有システムの構成要素であるユーザ装置の機能構成を示す図。
【図４】実施形態２における三者間鍵共有処理の処理手順を示す図。
【図５】実施形態２に関わる三者間鍵共有システムの構成要素であるユーザ装置の機能構成を示す図。
【発明を実施するための形態】
【００１９】
《実施形態》
本発明では、以下のようにして、ランダムオラクルの代わりに擬似ランダム関数と強ランダム抽出器（または鍵導出関数）を用い、さらに、不正なアドホック公開鍵を検知できるメカニズムを加えることで、ランダムオラクルを仮定せずに安全な三者間鍵共有方式を実現する。
【００２０】
従来方式では共有鍵の導出にランダムオラクルを用いていたが、本発明では強ランダム抽出器（または鍵導出関数）で共有情報の分布をならし、その値を擬似ランダム関数の鍵とすることで、擬似ランダム関数の出力を用いた情報を共有鍵とする。このように共有鍵導出プロセスを変更したために、ランダムオラクルを必要としない。このテクニックは参考文献１で提案されている。
（参考文献１）Colin Boyd, Yvonne Cliff, Juan Manuel Gonzalez Nieto, Kenneth G.Paterson, "Efficient One-Round Key Exchange in the Standard Model", ACISP 2008, pp.69-83
【００２１】
本発明では共有鍵導出にランダムオラクルを用いないため、安全性を保証するためには各ユーザ装置が不正なアドホック公開鍵を検知できる必要がある。本発明では２種類の方法のいずれかを用いて検証性を保証している。
【００２２】
１つ目は、Chow-Franklin-Zhang暗号（CFZ暗号）を用いる方法である。CFZ暗号では暗号文の受信者（受信者装置）が公開情報のみを用いて、不正な暗号文を検知することができる。本発明におけるアドホック公開鍵の部分にCFZ暗号を適用することで、不正なアドホック公開鍵を検知できるようになる。例えば、参考文献２にCFZ暗号の詳細な構成法が記述されている。
（参考文献２）Sherman Chow, Matthew Franklin, and Haibin Zhang, "Practical Dual-Receiver Encryption", Soundness, Complete Non-Malleability, and Appli-cations, http://csiflabs.cs.ucdavis.edu/hbzhang/dual.pdf
【００２３】
２つ目は、ゼロ知識証明を用いる方法である。本発明では、送信者（送信者装置）がアドホック公開鍵を正当に作ったことを非対話ゼロ知識証明を添付することで、受信者（受信者装置）にこれを証明する。受信者（受信者装置）は証明を検証することで、不正なアドホック公開鍵を検知できる。また、ゼロ知識証明は秘密を漏らすこと無く証明できるので、送信者（送信者装置）のアドホック秘密鍵が受信者（受信者装置）に漏れることはない。例えば参考文献３に非対話ゼロ知識証明の詳細な構成法が記述されている。
（参考文献３）Jens Groth: Simulation-Sound NIZK Proofs for a Practical Language and Constant Size Group Signatures. ASIACRYPT 2006: 444-459
【００２４】
［三者間鍵共有システム］
実施形態の三者間鍵共有システム１は、図１に示すように、ユーザＩＤを表すＵAで特定されるユーザ装置１００−Ａ、ユーザＩＤを表すＵBで特定されるユーザ装置１００−Ｂ、ユーザＩＤを表すＵCで特定されるユーザ装置１００−Ｃを含んで構成される。これら三者のユーザ装置１００−Ａ，１００−Ｂ，１００−Ｃは互いに異なる装置であり、ＵA，ＵB，ＵCは互いに異なるとする。以下、ユーザ装置１００−Ａをユーザ装置ＵA、ユーザ装置１００−Ｂをユーザ装置ＵB、ユーザ装置１００−Ｃをユーザ装置ＵCと呼称する。これらの各装置は、例えば、インターネットなどの通信網あるいは同報通信路５を経由して、相互に通信可能とされている。
【００２５】
＜実施形態１＞
実施形態１はCFZ暗号を利用した三者間鍵交換である。三者間鍵共有システム１における実施形態１の処理を、図２を参照しながら叙述する。各装置の機能構成については、図３を参照されたい。各装置は、共通の構成要素を持つので（ただし、各構成要素での処理内容は装置ごとに異なる）、図３では各構成要素に代表符号を附している。以下の説明では、代表符号に−Ａ，−Ｂ，−Ｃの記号付加することで、どの装置に属する機能構成であるかを識別するようにしている。例えば図３で代表符号１０９が附された受信部１０９について、ユーザ装置ＵA（つまりユーザ装置１００−Ａ）に属する受信部であることを特定する場合には、以下の説明では「受信部１０９−Ａ」と表記している。
【００２６】
［システムパラメータ］
κをセキュリティパラメータとし、Ｇをκビット素数ｐを位数とする巡回群とし、ｇを当該巡回群Ｇのランダムに選択された生成元とする。ＧTをκビット素数ｐを位数とする生成元ｇTを持つ巡回群とする。ｅ：G×G→GTを双線形写像とする。ＴＣＲ：G→ZPをターゲット衝突困難なハッシュ関数とする。Ｆ：{0,1}*×Kspace→{0,1}κを擬似ランダム関数とする。Ｅxt：GT→Kspaceを強ランダム抽出器または鍵導出関数とする。ただし、Kspaceは擬似ランダム関数Ｆの鍵空間である。{0,1}*は有限長のビット列の集合であり、{0,1}*:=ＵL∈N{0,1}Lである（ただし、Ｎは自然数の集合（０を含む）、{0,1}LはＬビット長のビット列の集合である）。Ｐをプロトコルコードを識別するためのＩＤとする。ＵA，ＵB，ＵC∈Ｇとする。
システムパラメータは、ｇ，ｅ，ＴＣＲ，Ｆ，Ｅxtである。
【００２７】
なお、三者間鍵共有システム１では、システムパラメータが予め決まっていれば十分なので、例えば、図示しないパラメータ生成装置によって生成された上記システムパラメータが三者間鍵共有システム１の構成要素である各ユーザ装置に、各々のユーザ装置でシステムパラメータを使用する処理を実行する前に送信されていれば足りる。
【００２８】
なお、双線形写像ｅは下記の性質を満たす写像である。
双線型性：
任意のg,h∈Gおよび任意のa,b∈Zに対してe(ga,hb)=e(g,h)abが成立する。
非退化性：
e(g,g)≠1を満たすgが存在する。つまり、もしgがGの生成元ならばe(g,g)はGTの生成元である。
計算可能性：
任意のg,h∈Gに対して，e(g,h)は効率的に（つまり多項式時間で）計算可能である。
【００２９】
また、ターゲット衝突困難なハッシュ関数、擬似ランダム関数、鍵導出関数については、例えば参考文献４を参考にされたい。
（参考文献４）森山大輔、西巻陵、岡本龍明共著、「公開鍵暗号の数理−シリーズ応用数理第２巻−」、初版、共立出版株式会社、２０１１年３月、pp.23-31, pp.94-95. ISBN:978-4-320-01951-5.
また、強ランダム抽出器については、例えば参考文献５を参考にされたい。
（参考文献５）O. Chevassut, P.-A. Fouque, P. Gaudry, and D. Pointcheval, "Key derivation and randomness extraction", Cryptology ePrint Archive, Report 2005/061, 2005, http://eprint.iacr.org/2005/061.
【００３０】
［固有公開鍵と固有秘密鍵］
ユーザ装置ＵAの固有秘密鍵設定部１０１−Ａは、ランダムにｘA，ｙA∈Ｚpを選び、これらｘA，ｙAを固有秘密鍵とする。また、ユーザ装置ＵAの固有公開鍵設定部１０２−Ａは、選択された固有秘密鍵を用いて、ＸA＝ｇxA、ＹA＝ｇyAを計算し、これらＸA，ＹAを固有公開鍵とする。これらの固有秘密鍵ｘA，ｙAと固有公開鍵ＸA，ＹAはユーザ装置ＵAの図示しない記憶部に（安全に）記憶されており、さらに固有公開鍵ＸA，ＹAは公開されているものとする。
【００３１】
ユーザ装置ＵBの固有秘密鍵設定部１０１−Ｂは、ランダムにｘB，ｙB∈Ｚpを選び、これらｘB，ｙBを固有秘密鍵とする。また、ユーザ装置ＵBの固有公開鍵設定部１０２−Ｂは、選択された固有秘密鍵を用いて、ＸB＝ｇxB、ＹB＝ｇyBを計算し、これらＸB，ＹBを固有公開鍵とする。これらの固有秘密鍵ｘB，ｙBと固有公開鍵ＸB，ＹBはユーザ装置ＵBの図示しない記憶部に（安全に）記憶されており、さらに固有公開鍵ＸB，ＹBは公開されているものとする。
【００３２】
ユーザ装置ＵCの固有秘密鍵設定部１０１−Ｃは、ランダムにｘC，ｙC∈Ｚpを選び、これらｘC，ｙCを固有秘密鍵とする。また、ユーザ装置ＵCの固有公開鍵設定部１０２−Ｃは、選択された固有秘密鍵を用いて、ＸC＝ｇxC、ＹC＝ｇyCを計算し、これらＸC，ＹCを固有公開鍵とする。これらの固有秘密鍵ｘC，ｙCと固有公開鍵ＸC，ＹCはユーザ装置ＵCの図示しない記憶部に（安全に）記憶されており、さらに固有公開鍵ＸC，ＹCは公開されているものとする。
【００３３】
ここで、「固有公開鍵を公開する」とは、或るユーザ装置Ｘが固有公開鍵を利用する他のユーザ装置Ｙに対して当該ユーザ装置Ｙからの要求に応じて固有公開鍵を送信すること、あるいは、固有公開鍵を利用するユーザ装置Ｙが自由にユーザ装置Ｘにアクセスして制約無く固有公開鍵を取得できること、あるいは、或る装置（例えばサーバ装置）の記憶部にユーザ装置Ｘの固有公開鍵が登録されて、サーバ装置が当該固有公開鍵を利用するユーザ装置Ｙに対して当該ユーザ装置Ｙからの要求に応じて固有公開鍵を送信すること、あるいは、固有公開鍵を利用するユーザ装置Ｙが自由にサーバ装置にアクセスして制約無く固有公開鍵を取得できること、などを意味する。つまり、「固有公開鍵を公開する」とは、公開という情報処理よりも、固有公開鍵を利用するユーザ装置Ｙが自由に固有公開鍵を取得できる状態やシステム構成が構築されていることを意味する。以下、「固有公開鍵を公開する」との趣旨の記載は、上記説明と同様の意味である。
【００３４】
また、「固有」とは、後述するアドホック鍵（「アドホック秘密鍵」と「アドホック公開鍵」）と区別するための接頭辞であり、固有鍵（「固有秘密鍵」と「固有公開鍵」）は鍵共有セッションに関わらず各ユーザ装置ＵA，ＵB，ＵCによって保持される鍵である。
【００３５】
［鍵交換］
ステップＳ１
ユーザ装置ＵAのアドホック秘密鍵設定部１０３−Ａは、ランダムにアドホック秘密鍵ｒA，ｒ′A∈Ｚpを選び（ステップＳ１−１）、ユーザ装置ＵAのアドホック公開鍵設定部１０４−Ａは、選択されたアドホック秘密鍵を用いて、アドホック公開鍵ＲA＝ｇrA、πAB＝（ＸtABＹB）rA、πAC＝（ＸtACＹC）rA、Ｒ′A＝ｇr′Aを計算する（ステップＳ１−２）。ただし、ｔA＝ＴＣＲ（ＲA，Ｒ′A，ＵA，ＵB，ＵC）である。そして、ユーザ装置ＵAの送信部１０８−Ａは、プロトコルコード識別ＩＤであるＰ、後に共有鍵を共有することになる三者のユーザ装置ＵA，ユーザ装置ＵB，ユーザ装置ＵCを特定するための情報である（ＵA，ＵB，ＵC）[この例では、ユーザ識別ＩＤであるＵA，ＵB，ＵCの組である]、発信元のユーザ識別ＩＤであるＵAとそのアドホック公開鍵ＲA，πAB，πAC，Ｒ′Aの組（Ｐ，（ＵA，ＵB，ＵC），ＵA，ＲA，πAB，πAC，Ｒ′A）をユーザ装置ＵBとユーザ装置ＵCに同報通信路５を用いて送信する（ステップＳ１−３）。アドホック公開情報（Ｐ，（ＵA，ＵB，ＵC），ＵA，ＲA，πAB，πAC，Ｒ′A）は、例えばＰ，（ＵA，ＵB，ＵC），ＵA，ＲA，πAB，πAC，Ｒ′Aのビット結合で与えられる。ユーザ装置ＵBの受信部１０９−Ｂとユーザ装置ＵCの受信部１０９−Ｃはそれぞれアドホック公開情報（Ｐ，（ＵA，ＵB，ＵC），ＵA，ＲA，πAB，πAC，Ｒ′A）を受信する（ステップＳ１−４）。
【００３６】
ステップＳ２
ユーザ装置ＵBのアドホック秘密鍵設定部１０３−Ｂは、ランダムにアドホック秘密鍵ｒB，ｒ′B∈Ｚpを選び（ステップＳ２−１）、ユーザ装置ＵBのアドホック公開鍵設定部１０４−Ｂは、選択されたアドホック秘密鍵を用いて、アドホック公開鍵ＲB＝ｇrB、πBA＝（ＸtBAＹA）rB、πBC＝（ＸtBCＹC）rB、Ｒ′B＝ｇr′Bを計算する（ステップＳ２−２）。ただし、ｔB＝ＴＣＲ（ＲB，Ｒ′B，ＵB，ＵC，ＵA）である。そして、ユーザ装置ＵBの送信部１０８−Ｂは、プロトコルコード識別ＩＤであるＰ、後に共有鍵を共有することになる三者のユーザ装置ＵA，ユーザ装置ＵB，ユーザ装置ＵCを特定するための情報である（ＵA，ＵB，ＵC）[この例では、ユーザ識別ＩＤであるＵA，ＵB，ＵCの組である]、発信元のユーザ識別ＩＤであるＵBとそのアドホック公開鍵ＲB，πBA，πBC，Ｒ′Bの組（Ｐ，（ＵA，ＵB，ＵC），ＵB，ＲB，πBA，πBC，Ｒ′B）をユーザ装置ＵAとユーザ装置ＵCに同報通信路５を用いて送信する（ステップＳ２−３）。アドホック公開情報（Ｐ，（ＵA，ＵB，ＵC），ＵB，ＲB，πBA，πBC，Ｒ′B）は、例えばＰ，（ＵA，ＵB，ＵC），ＵB，ＲB，πBA，πBC，Ｒ′Bのビット結合で与えられる。ユーザ装置ＵAの受信部１０９−Ａとユーザ装置ＵCの受信部１０９−Ｃはそれぞれアドホック公開情報（Ｐ，（ＵA，ＵB，ＵC），ＵA，ＲA，πAB，πAC，Ｒ′A）を受信する（ステップＳ２−４）。
【００３７】
ステップＳ３
ユーザ装置ＵCのアドホック秘密鍵設定部１０３−Ｃは、ランダムにアドホック秘密鍵ｒC，ｒ′C∈Ｚpを選び（ステップＳ３−１）、ユーザ装置ＵCのアドホック公開鍵設定部１０４−Ｃは、選択されたアドホック秘密鍵を用いて、アドホック公開鍵ＲC＝ｇrC、πCA＝（ＸtCAＹA）rC、πCB＝（ＸtCBＹB）rC、Ｒ′C＝ｇr′Cを計算する（ステップＳ３−２）。ただし、ｔC＝ＴＣＲ（ＲC，Ｒ′C，ＵC，ＵA，ＵB）である。そして、ユーザ装置ＵCの送信部１０８−Ｃは、プロトコルコード識別ＩＤであるＰ、後に共有鍵を共有することになる三者のユーザ装置ＵA，ユーザ装置ＵB，ユーザ装置ＵCを特定するための情報である（ＵA，ＵB，ＵC）[この例では、ユーザ識別ＩＤであるＵA，ＵB，ＵCの組である]、発信元のユーザ識別ＩＤであるＵCとそのアドホック公開鍵ＲC，πCA，πCB，Ｒ′Cの組（Ｐ，（ＵA，ＵB，ＵC），ＵC，ＲC，πCA，πCB，Ｒ′C）をユーザ装置ＵAとユーザ装置ＵBに同報通信路５を用いて送信する（ステップＳ３−３）。アドホック公開情報（Ｐ，（ＵA，ＵB，ＵC），ＵC，ＲC，πCA，πCB，Ｒ′C）は、例えばＰ，（ＵA，ＵB，ＵC），ＵC，ＲC，πCA，πCB，Ｒ′Cのビット結合で与えられる。ユーザ装置ＵAの受信部１０９−Ａとユーザ装置ＵBの受信部１０９−Ｂはそれぞれアドホック公開情報（Ｐ，（ＵA，ＵB，ＵC），ＵA，ＲA，πAB，πAC，Ｒ′A）を受信する（ステップＳ３−４）。
【００３８】
ここで、「アドホック」とは、アドホック鍵（「アドホック秘密鍵」と「アドホック公開鍵」）が鍵共有セッションにおいて用いられる鍵であることを表すための接頭辞である。ただし、異なる鍵共有セッションであっても、同じアドホック鍵を使用することは妨げられない。
【００３９】
ステップＳ４
（Ｐ，（ＵA，ＵB，ＵC），ＵB，ＲB，πBA，πBC，Ｒ′B）と（Ｐ，（ＵA，ＵB，ＵC），ＵC，ＲC，πCA，πCB，Ｒ′C）を受け取ったら、ユーザ装置ＵAの検証部１０５−Ａは、ｔB＝ＴＣＲ（ＲB，Ｒ′B，ＵB，ＵC，ＵA）、ｔC＝ＴＣＲ（ＲC，Ｒ′C，ＵC，ＵA，ＵB）を計算して、次の関係式（４）を検証し、関係式のいずれか一つでも不成立であれば処理を終了する（ステップＳ４−１）。ユーザ装置ＵAの共有鍵生成部１０６−Ａは、関係式（４）の全てが成立した場合に、式（５）の情報σ1，σ2，σ3，σ4，σ5，σ6，σ7，σ8を計算し、さらに、σ′1←Ｅxt（σ1），σ′2←Ｅxt（σ2），σ′3←Ｅxt（σ3），σ′4←Ｅxt（σ4），σ′5←Ｅxt（σ5），σ′6←Ｅxt（σ6），σ′7←Ｅxt（σ7），σ′8←Ｅxt（σ8）を計算し、この鍵共有セッションを識別するための識別子（以下、セッション識別子という）sid＝（ＵA，（ＲA，πAB，πAC，Ｒ′A），ＵB，（ＲB，πBA，πBC，Ｒ′B），ＵC，（ＲC，πCA，πCB，Ｒ′C））を設定して、共有鍵ＳＫ＝Ｆσ′1（sid）（＋）Ｆσ′2（sid）（＋）Ｆσ′3（sid）（＋）Ｆσ′4（sid）（＋）Ｆσ′5（sid）（＋）Ｆσ′6（sid）（＋）Ｆσ′7（sid）（＋）Ｆσ′8（sid）を生成する（ステップＳ４−２）。記号（＋）は排他的論理和を表す。
【数１３】
2014138213.tif 000015
【００４０】
ステップＳ５
（Ｐ，（ＵA，ＵB，ＵC），ＵA，ＲA，πAB，πAC，Ｒ′A）と（Ｐ，（ＵA，ＵB，ＵC），ＵC，ＲC，πCA，πCB，Ｒ′C）を受け取ったら、ユーザ装置ＵBの検証部１０５−Ｂは、ｔA＝ＴＣＲ（ＲA，Ｒ′A，ＵA，ＵB，ＵC）、ｔC＝ＴＣＲ（ＲC，Ｒ′C，ＵC，ＵA，ＵB）を計算し、次の関係式（６）を検証し、関係式のいずれか一つでも不成立であれば処理を終了する（ステップＳ５−１）。ユーザ装置ＵBの共有鍵生成部１０６−Ｂは、関係式（６）の全てが成立した場合に、式（７）の情報σ1，σ2，σ3，σ4，σ5，σ6，σ7，σ8を計算し、さらに、σ′1←Ｅxt（σ1），σ′2←Ｅxt（σ2），σ′3←Ｅxt（σ3），σ′4←Ｅxt（σ4），σ′5←Ｅxt（σ5），σ′6←Ｅxt（σ6），σ′7←Ｅxt（σ7），σ′8←Ｅxt（σ8）を計算し、セッション識別子sid＝（ＵA，（ＲA，πAB，πAC，Ｒ′A），ＵB，（ＲB，πBA，πBC，Ｒ′B），ＵC，（ＲC，πCA，πCB，Ｒ′C））を設定して、共有鍵ＳＫ＝Ｆσ′1（sid）（＋）Ｆσ′2（sid）（＋）Ｆσ′3（sid）（＋）Ｆσ′4（sid）（＋）Ｆσ′5（sid）（＋）Ｆσ′6（sid）（＋）Ｆσ′7（sid）（＋）Ｆσ′8（sid）を生成する（ステップＳ５−２）。記号（＋）は排他的論理和を表す。
【数１４】
2014138213.tif 000016
【００４１】
ステップＳ６
（Ｐ，（ＵA，ＵB，ＵC），ＵA，ＲA，πAB，πAC，Ｒ′A）と（Ｐ，（ＵA，ＵB，ＵC），ＵB，ＲB，πBA，πBC，Ｒ′B）を受け取ったら、ユーザ装置ＵCの検証部１０５−Ｃは、ｔA＝ＴＣＲ（ＲA，Ｒ′A，ＵA，ＵB，ＵC）、ｔB＝ＴＣＲ（ＲB，Ｒ′B，ＵB，ＵC，ＵA）を計算して、次の関係式（８）を検証し、関係式のいずれか一つでも不成立であれば処理を終了する（ステップＳ６−１）。ユーザ装置ＵCの共有鍵生成部１０６−Ｃは、関係式（８）の全てが成立した場合に、式（９）の情報σ1，σ2，σ3，σ4，σ5，σ6，σ7，σ8を計算し、さらに、σ′1←Ｅxt（σ1），σ′2←Ｅxt（σ2），σ′3←Ｅxt（σ3），σ′4←Ｅxt（σ4），σ′5←Ｅxt（σ5），σ′6←Ｅxt（σ6），σ′7←Ｅxt（σ7），σ′8←Ｅxt（σ8）を計算し、セッション識別子sid＝（ＵA，（ＲA，πAB，πAC，Ｒ′A），ＵB，（ＲB，πBA，πBC，Ｒ′B），ＵC，（ＲC，πCA，πCB，Ｒ′C））を設定して、共有鍵ＳＫ＝Ｆσ′1（sid）（＋）Ｆσ′2（sid）（＋）Ｆσ′3（sid）（＋）Ｆσ′4（sid）（＋）Ｆσ′5（sid）（＋）Ｆσ′6（sid）（＋）Ｆσ′7（sid）（＋）Ｆσ′8（sid）を生成する（ステップＳ６−２）。記号（＋）は排他的論理和を表す。
【数１５】
2014138213.tif 000017
【００４２】
＜実施形態２＞
実施形態１は非対話ゼロ知識証明を利用した三者間鍵交換である。三者間鍵共有システム１における実施形態２の処理を、図４を参照しながら叙述する。なお、説明の便宜から、図１に図示される三者間鍵共有システム１の構成要素である三者のユーザ装置１００−Ａ，１００−Ｂ，１００−Ｃの符号をそれぞれ２００−Ａ，２００−Ｂ，２００−Ｃに置き換える。各装置の機能構成については、図５を参照されたい。各装置は、共通の構成要素を持つので（ただし、各構成要素での処理内容は装置ごとに異なる）、図５では各構成要素に代表符号を附している。以下の説明では、代表符号に−Ａ，−Ｂ，−Ｃの記号付加することで、どの装置に属する機能構成であるかを識別するようにしている。例えば図５で代表符号２０９が附された受信部２０９について、ユーザ装置ＵA（つまりユーザ装置２００−Ａ）に属する受信部であることを特定する場合には、以下の説明では「受信部２０９−Ａ」と表記している。
【００４３】
［パラメータ］
κをセキュリティパラメータとし、Ｇをκビット素数ｐを位数とする巡回群とし、ｇを当該巡回群Ｇのランダムに選択された生成元とする。ＧTをκビット素数ｐを位数とする生成元ｇTを持つ群とする。ｅ：G×G→GTを双線形写像とする。（Ｐ，Ｖ）を非対話ゼロ知識証明方式とする。アルゴリズムＰは公開の共通参照情報、命題ｘとその証拠ｗを入力とし、証明ｙを出力する。アルゴリズムＶは公開の共通参照情報、命題ｘと証明ｙを入力とし、真理値０／１を出力する。なお、任意のＮＰ言語に対する非対話ゼロ知識証明は参考文献６に詳細な構成法が記述されている。Ｆ：{0,1}*×Kspace→{0,1}κを擬似ランダム関数とする。Ｅxt：GT→Kspaceを強ランダム抽出器または鍵導出関数とする。ただし、Kspaceは擬似ランダム関数Ｆの鍵空間である。{0,1}*は有限長のビット列の集合であり、{0,1}*:=ＵL∈N{0,1}Lである（ただし、Ｎは自然数の集合（０を含む）、{0,1}LはＬビット長のビット列の集合である）。Ｐをプロトコルコードを識別するためのＩＤとする。ＵA，ＵB，ＵC∈Ｇとする。
システムパラメータは、ｇ，ｅ，（Ｐ，Ｖ），Ｆ，Ｅxtである。
（参考文献６）Manuel Blum, Paul Feldman, Silvio Micali, "Non-Interactive Zero-Knowledge and Its Applications (Extended Abstract)", STOC 1988, pp.103-112
【００４４】
実施形態２においても、三者間鍵共有システム１では、システムパラメータが予め決まっていれば十分なので、例えば、図示しないパラメータ生成装置によって生成された上記システムパラメータが三者間鍵共有システム１の構成要素である各ユーザ装置に、各々のユーザ装置でシステムパラメータを使用する処理を実行する前に送信されていれば足りる。
【００４５】
［固有公開鍵と固有秘密鍵］
ユーザ装置ＵAの固有秘密鍵設定部２０１−Ａは、ランダムにａ0∈Ｚpを選び、このａ0を固有秘密鍵とする。また、ユーザ装置ＵAの固有公開鍵設定部２０２−Ａは、選択された固有秘密鍵を用いて、Ａ0＝ｇa0を計算し、このＡ0を固有公開鍵とする。これらの固有秘密鍵ａ0と固有公開鍵Ａ0はユーザ装置ＵAの図示しない記憶部に（安全に）記憶されており、さらに固有公開鍵Ａ0は公開されているものとする。
【００４６】
ユーザ装置ＵBの固有秘密鍵設定部２０１−Ｂは、ランダムにｂ0∈Ｚpを選び、このｂ0を固有秘密鍵とする。また、ユーザ装置ＵBの固有公開鍵設定部２０２−Ｂは、選択された固有秘密鍵を用いて、Ｂ0＝ｇb0を計算し、このＢ0を固有公開鍵とする。これらの固有秘密鍵ｂ0と固有公開鍵Ｂ0はユーザ装置ＵBの図示しない記憶部に（安全に）記憶されており、さらに固有公開鍵Ｂ0は公開されているものとする。
【００４７】
ユーザ装置ＵCの固有秘密鍵設定部２０１−Ｃは、ランダムにｃ0∈Ｚpを選び、このｃ0を固有秘密鍵とする。また、ユーザ装置ＵCの固有公開鍵設定部２０２−Ｃは、選択された固有秘密鍵を用いて、Ｃ0＝ｇc0を計算し、このＣ0を固有公開鍵とする。これらの固有秘密鍵ｃ0と固有公開鍵Ｃ0はユーザ装置ＵBの図示しない記憶部に（安全に）記憶されており、さらに固有公開鍵Ｃ0は公開されているものとする。
【００４８】
［鍵交換］
ステップＳ１
ユーザ装置ＵAのアドホック秘密鍵設定部２０３−Ａは、ランダムにアドホック秘密鍵ａ1∈Ｚpを選び（ステップＳ１−１）、ユーザ装置ＵAのアドホック公開鍵設定部２０４−Ａは、選択されたアドホック秘密鍵を用いて、アドホック公開鍵Ａ1＝ｇa1を計算し（ステップＳ１−２）、ユーザ装置ＵAの非対話ゼロ知識証明情報生成部２０７−Ａは、アルゴリズムＰを用いて命題（Ａ1＝ｇa1）と証拠ａ1に対して証明ｙAを計算する（ステップＳ１−３）。そして、ユーザ装置ＵAの送信部２０８−Ａは、プロトコルコード識別ＩＤであるＰ、後に共有鍵を共有することになる三者のユーザ装置ＵA，ユーザ装置ＵB，ユーザ装置ＵCを特定するための情報である（ＵA，ＵB，ＵC）[この例では、ユーザ識別ＩＤであるＵA，ＵB，ＵCの組である]、発信元のユーザ識別ＩＤであるＵAとそのアドホック公開鍵Ａ1、証明ｙAの組（Ｐ，（ＵA，ＵB，ＵC），ＵA，Ａ1，ｙA）をユーザ装置ＵBとユーザ装置ＵCに同報通信路５を用いて送信する（ステップＳ１−４）。アドホック公開情報（Ｐ，（ＵA，ＵB，ＵC），ＵA，Ａ1，ｙA）は、例えばＰ，（ＵA，ＵB，ＵC），ＵA，Ａ1，ｙAのビット結合で与えられる。ユーザ装置ＵBの受信部２０９−Ｂとユーザ装置ＵCの受信部２０９−Ｃはそれぞれアドホック公開情報（Ｐ，（ＵA，ＵB，ＵC），ＵA，Ａ1，ｙA）を受信する（ステップＳ１−５）。
【００４９】
ステップＳ２
ユーザ装置ＵBのアドホック秘密鍵設定部２０３−Ｂは、ランダムにアドホック秘密鍵ｂ1∈Ｚpを選び（ステップＳ２−１）、ユーザ装置ＵBのアドホック公開鍵設定部２０４−Ｂは、選択されたアドホック秘密鍵を用いて、アドホック公開鍵Ｂ1＝ｇb1を計算し（ステップＳ２−２）、ユーザ装置ＵBの非対話ゼロ知識証明情報生成部２０７−Ｂは、アルゴリズムＰを用いて命題（Ｂ1＝ｇb1）と証拠ｂ1に対して証明ｙBを計算する（ステップＳ２−３）。そして、ユーザ装置ＵBの送信部２０８−Ｂは、プロトコルコード識別ＩＤであるＰ、後に共有鍵を共有することになる三者のユーザ装置ＵA，ユーザ装置ＵB，ユーザ装置ＵCを特定するための情報である（ＵA，ＵB，ＵC）[この例では、ユーザ識別ＩＤであるＵA，ＵB，ＵCの組である]、発信元のユーザ識別ＩＤであるＵBとそのアドホック公開鍵Ｂ1、証明ｙBの組（Ｐ，（ＵA，ＵB，ＵC），ＵB，Ｂ1，ｙB）をユーザ装置ＵAとユーザ装置ＵCに同報通信路５を用いて送信する（ステップＳ２−４）。アドホック公開情報（Ｐ，（ＵA，ＵB，ＵC），ＵB，Ｂ1，ｙB）は、例えばＰ，（ＵA，ＵB，ＵC），ＵB，Ｂ1，ｙBのビット結合で与えられる。ユーザ装置ＵAの受信部２０９−Ａとユーザ装置ＵCの受信部２０９−Ｃはそれぞれアドホック公開情報（Ｐ，（ＵA，ＵB，ＵC），ＵB，Ｂ1，ｙB）を受信する（ステップＳ２−５）。
【００５０】
ステップＳ３
ユーザ装置ＵCのアドホック秘密鍵設定部２０３−Ｃは、ランダムにアドホック秘密鍵ｃ1∈Ｚpを選び（ステップＳ３−１）、ユーザ装置ＵCのアドホック公開鍵設定部２０４−Ｃは、選択されたアドホック秘密鍵を用いて、アドホック公開鍵Ｃ1＝ｇc1を計算し（ステップＳ３−２）、ユーザ装置ＵCの非対話ゼロ知識証明情報生成部２０７−Ｃは、アルゴリズムＰを用いて命題（Ｃ1＝ｇc1）と証拠ｃ1に対して証明ｙCを計算する（ステップＳ３−３）。そして、ユーザ装置ＵCの送信部２０８−Ｃは、プロトコルコード識別ＩＤであるＰ、後に共有鍵を共有することになる三者のユーザ装置ＵA，ユーザ装置ＵB，ユーザ装置ＵCを特定するための情報である（ＵA，ＵB，ＵC）[この例では、ユーザ識別ＩＤであるＵA，ＵB，ＵCの組である]、発信元のユーザ識別ＩＤであるＵCとそのアドホック公開鍵Ｃ1、証明ｙCの組（Ｐ，（ＵA，ＵB，ＵC），ＵC，Ｃ1，ｙC）をユーザ装置ＵAとユーザ装置ＵBに同報通信路５を用いて送信する（ステップＳ３−４）。アドホック公開情報（Ｐ，（ＵA，ＵB，ＵC），ＵC，Ｃ1，ｙC）は、例えばＰ，（ＵA，ＵB，ＵC），ＵC，Ｃ1，ｙCのビット結合で与えられる。ユーザ装置ＵAの受信部２０９−Ａとユーザ装置ＵBの受信部２０９−Ｂはそれぞれアドホック公開情報（Ｐ，（ＵA，ＵB，ＵC），ＵC，Ｃ1，ｙC）を受信する（ステップＳ３−５）。
【００５１】
ステップＳ４
（Ｐ，（ＵA，ＵB，ＵC），ＵB，Ｂ1，ｙB）と（Ｐ，（ＵA，ＵB，ＵC），ＵC，Ｕ1，ｙc）を受け取ったら、ユーザ装置ＵAの非対話ゼロ知識証明検証部２０７ａ−Ａは、アルゴリズムＶを用いて証明ｙBと証明ｙCを検証し、この検証に失敗した場合には処理を終了する（ステップＳ４−１）。ユーザ装置ＵAの共有鍵生成部２０６−Ａは、この検証に成立した場合に、式（１０）の情報σ1，σ2，σ3，σ4，σ5，σ6，σ7，σ8を計算し、さらに、σ′1←Ｅxt（σ1），σ′2←Ｅxt（σ2），σ′3←Ｅxt（σ3），σ′4←Ｅxt（σ4），σ′5←Ｅxt（σ5），σ′6←Ｅxt（σ6），σ′7←Ｅxt（σ7），σ′8←Ｅxt（σ8）を計算し、セッション識別子sid＝（ＵA，（Ａ1，ｙA），ＵB，（Ｂ1，ｙB），ＵC，（Ｃ1，ｙC））を設定して、共有鍵ＳＫ＝Ｆσ′1（sid）（＋）Ｆσ′2（sid）（＋）Ｆσ′3（sid）（＋）Ｆσ′4（sid）（＋）Ｆσ′5（sid）（＋）Ｆσ′6（sid）（＋）Ｆσ′7（sid）（＋）Ｆσ′8（sid）を生成する（ステップＳ４−２）。記号（＋）は排他的論理和を表す。
【数１６】
2014138213.tif 000018
【００５２】
ステップＳ５
（Ｐ，（ＵA，ＵB，ＵC），ＵA，Ａ1，ｙA）と（Ｐ，（ＵA，ＵB，ＵC），ＵC，Ｃ1，ｙC）を受け取ったら、ユーザ装置ＵBの非対話ゼロ知識証明検証部２０７ａ−Ｂは、アルゴリズムＶを用いて証明ｙAと証明ｙCを検証し、この検証に失敗した場合には処理を終了する（ステップＳ５−１）。ユーザ装置ＵBの共有鍵生成部２０６−Ｂは、この検証に成立した場合に、式（１１）の情報σ1，σ2，σ3，σ4，σ5，σ6，σ7，σ8を計算し、さらに、σ′1←Ｅxt（σ1），σ′2←Ｅxt（σ2），σ′3←Ｅxt（σ3），σ′4←Ｅxt（σ4），σ′5←Ｅxt（σ5），σ′6←Ｅxt（σ6），σ′7←Ｅxt（σ7），σ′8←Ｅxt（σ8）を計算し、セッション識別子sid＝（ＵA，（Ａ1，ｙA），ＵB，（Ｂ1，ｙB），ＵC，（Ｃ1，ｙC））を設定して、共有鍵ＳＫ＝Ｆσ′1（sid）（＋）Ｆσ′2（sid）（＋）Ｆσ′3（sid）（＋）Ｆσ′4（sid）（＋）Ｆσ′5（sid）（＋）Ｆσ′6（sid）（＋）Ｆσ′7（sid）（＋）Ｆσ′8（sid）を生成する（ステップＳ５−２）。記号（＋）は排他的論理和を表す。
【数１７】
2014138213.tif 000019
【００５３】
ステップＳ６
（Ｐ，（ＵA，ＵB，ＵC），ＵA，Ａ1，ｙA）と（Ｐ，（ＵA，ＵB，ＵC），ＵB，Ｂ1，ｙB）を受け取ったら、ユーザ装置ＵCの非対話ゼロ知識証明検証部２０７ａ−Ｃは、アルゴリズムＶを用いて証明ｙAと証明ｙBを検証し、この検証に失敗した場合には処理を終了する（ステップＳ６−１）。ユーザ装置ＵCの共有鍵生成部２０６−Ｃは、この検証に成立した場合に、式（１２）の情報σ1，σ2，σ3，σ4，σ5，σ6，σ7，σ8を計算し、さらに、σ′1←Ｅxt（σ1），σ′2←Ｅxt（σ2），σ′3←Ｅxt（σ3），σ′4←Ｅxt（σ4），σ′5←Ｅxt（σ5），σ′6←Ｅxt（σ6），σ′7←Ｅxt（σ7），σ′8←Ｅxt（σ8）を計算し、セッション識別子sid＝（ＵA，（Ａ1，ｙA），ＵB，（Ｂ1，ｙB），ＵC，（Ｃ1，ｙC））を設定して、共有鍵ＳＫ＝Ｆσ′1（sid）（＋）Ｆσ′2（sid）（＋）Ｆσ′3（sid）（＋）Ｆσ′4（sid）（＋）Ｆσ′5（sid）（＋）Ｆσ′6（sid）（＋）Ｆσ′7（sid）（＋）Ｆσ′8（sid）を生成する（ステップＳ６−２）。記号（＋）は排他的論理和を表す。
【数１８】
2014138213.tif 000020
【００５４】
＜補記＞
三者間鍵共有システムに含まれうるハードウェアエンティティ（ユーザ装置）は、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置（例えば通信ケーブル）が接続可能な通信部、ＣＰＵ（Central Processing Unit）〔キャッシュメモリやレジスタなどを備えていてもよい〕、メモリであるＲＡＭやＲＯＭ、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、ＣＰＵ、ＲＡＭ、ＲＯＭ、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、ＣＤ−ＲＯＭなどの記録媒体を読み書きできる装置（ドライブ）などを設けるとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
【００５５】
ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている（外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるＲＯＭに記憶させておくなどでもよい）。また、これらのプログラムの処理によって得られるデータなどは、ＲＡＭや外部記憶装置などに適宜に記憶される。上述の説明では、演算結果やその格納領域のアドレスなどを記憶するＲＡＭやレジスタなどの記憶装置を単に「記憶部」とした。
【００５６】
ハードウェアエンティティでは、外部記憶装置〔あるいはＲＯＭなど〕に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にＣＰＵで解釈実行・処理される。その結果、ＣＰＵが所定の機能（例えば、固有秘密鍵設定部、固有公開鍵設定部、アドホック秘密鍵設定部、アドホック公開鍵設定部、検証部、非対話ゼロ知識証明情報生成部、非対話ゼロ知識証明検証部、共有鍵生成部など）を実現する。
【００５７】
各実施形態で説明したハードウェアエンティティの細部においては、数論における数値計算処理が必要となる場合があるが、数論における数値計算処理自体は、周知技術と同様にして達成されるので、その演算処理方法などの詳細な説明は省略した（この点の技術水準を示す数論における数値計算処理が可能なソフトウェアとしては、例えばＰＡＲＩ／ＧＰ、ＫＡＮＴ／ＫＡＳＨなどが挙げられる。ＰＡＲＩ／ＧＰについては、例えばインターネット〈URL: http://pari.math.u-bordeaux.fr/〉［平成24年12月26日検索］を参照のこと。ＫＡＮＴ／ＫＡＳＨについては、例えばインターネット〈http://www.math.tu-berlin.de/~kant/kash.html〉［平成24年12月26日検索］を参照のこと）。
また、この点に関する文献として、参考文献Ａを挙げることができる。
（参考文献Ａ）H. Cohen, "A Course in Computational Algebraic Number Theory", GTM 138, Springer-Verlag, 1993.
【００５８】
本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
【００５９】
また、上記実施形態において説明したハードウェアエンティティにおける処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
【００６０】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等を、光磁気記録媒体として、ＭＯ（Magneto-Optical disc）等を、半導体メモリとしてＥＥＰ−ＲＯＭ（Electronically Erasable and Programmable-Read Only Memory）等を用いることができる。
【００６１】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００６２】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００６３】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【図１】
2014138213.tif 000039
【図２】
2014138213.tif 000040
【図３】
2014138213.tif 000041
【図４】
2014138213.tif 000042
【図５】
2014138213.tif 000043