(57)【特許請求の範囲】
【請求項１】
複数の受信装置それぞれに固有な秘密鍵と、前記複数の受信装置及び暗号化装置に公開される公開鍵および公開情報と、を生成する鍵生成装置であって、
前記秘密鍵および前記公開鍵の生成に要する複数のパラメータを決定するパラメータ決定部と、
前記複数のパラメータに基づいて、複数の双線形群と双線形写像とを選択する双線形群選択部と、
前記パラメータおよび前記複数の双線形群に基づいて、前記秘密鍵および前記公開鍵を生成する鍵生成部と、
を備え、
前記パラメータ決定部は、所定の桁数の素数ｐ、γ∈Ｚｐ＊およびＧ，Ｈ∈Ｇをパラメータとして決定し、
前記双線形群選択部は、前記素数ｐを位数とする双線形写像群Ｇおよび巡回乗法群Ｇ１を選択し、
前記鍵生成部は、前記受信装置に固有の値ｕｉ∈Ｚｐ＊を選択するとともに、下記式１に基づいて、前記秘密鍵ｄｋｉを算出する、鍵生成装置。
【数１】
0005365072.tif 000162
【請求項２】
前記鍵生成部は、前記秘密鍵として使用されず、前記公開情報として公開される擬似秘密鍵を算出する擬似秘密鍵算出部を更に備え、
前記擬似秘密鍵算出部は、
前記公開情報として公開されるｕ０∈Ｚｐ＊を選択するとともに、下記式２に基づいて、前記擬似秘密鍵ｄｋ０を算出する、請求項１に記載の鍵生成装置。
【数２】
0005365072.tif 000163
【請求項３】
前記鍵生成部は、Ｖ＝ｅ（Ｇ，Ｈ）∈Ｇ１およびＷ＝γＧ∈Ｇを算出するとともに、下記式３に基づいて前記受信装置に固有の公開情報Ｖｉを算出し、下記式４に基づいて公開鍵ｅｋｉを算出する、請求項１に記載の鍵生成装置。
【数３】
0005365072.tif 000164
【請求項４】
前記鍵生成部は、Ｗ＝γＧ∈Ｇを算出するとともに、下記式５に基づいて、公開鍵ｅｋｉを算出する、請求項２に記載の鍵生成装置。
【数４】
0005365072.tif 000165
【請求項５】
複数の受信装置それぞれに固有な秘密鍵と、前記複数の受信装置及び暗号化装置に公開される公開鍵および公開情報と、を生成する鍵生成装置であって、
前記秘密鍵および前記公開鍵の生成に要する複数のパラメータを決定するパラメータ決定部と、
前記複数のパラメータに基づいて、複数の双線形群と双線形写像とを選択する双線形群選択部と、
前記パラメータおよび前記複数の双線形群に基づいて、前記秘密鍵および前記公開鍵を生成する鍵生成部と、
を備え、
前記パラメータ決定部は、所定の桁数の素数ｐ、γ∈Ｚｐ＊およびＧ，Ｈ∈Ｇをパラメータとして決定し、
前記双線形群選択部は、前記素数ｐを位数とする双線形写像群Ｇおよび巡回乗法群Ｇ１と、双線形写像ｅとを選択し、
前記鍵生成部は、Ｖ＝ｅ（Ｇ，Ｈ）∈Ｇ１、Ｗ＝γＧ∈Ｇ、Ｘ＝γＨ∈Ｇを算出し、前記受信装置に固有の値ｕｉ∈Ｚｐ＊を選択するとともに、下記式１に基づいて、前記秘密鍵ｄｋｉを算出し、下記式６に基づいて前記受信装置に固有の公開情報Ｖｉを算出し、下記式７に基づいて公開鍵ｅｋｉを算出する、鍵生成装置。
【数５】
0005365072.tif 000166
【請求項６】
複数の受信装置それぞれに固有な秘密鍵と、前記複数の受信装置及び暗号化装置に公開される公開鍵および公開情報と、を生成する鍵生成方法であって、
前記秘密鍵および前記公開鍵の生成に要する複数のパラメータを決定するパラメータ決定ステップと、
前記複数のパラメータに基づいて、複数の双線形群と双線形写像とを選択する双線形群選択ステップと、
前記パラメータおよび前記複数の双線形群に基づいて、前記秘密鍵および前記公開鍵を生成する鍵生成ステップと、
を含み、
前記パラメータ決定ステップでは、所定の桁数の素数ｐ、γ∈Ｚｐ＊およびＧ，Ｈ∈Ｇをパラメータとして決定し、
前記双線形群選択ステップでは、前記素数ｐを位数とする双線形写像群Ｇおよび巡回乗法群Ｇ１を選択し、
前記鍵生成ステップでは、前記受信装置に固有の値ｕｉ∈Ｚｐ＊を選択するとともに、下記式１に基づいて、前記秘密鍵ｄｋｉを算出する、鍵生成方法。
【数６】
0005365072.tif 000167
【請求項７】
複数の受信装置それぞれに固有な秘密鍵と、前記複数の受信装置及び暗号化装置に公開される公開鍵および公開情報と、を生成する鍵生成方法であって、
前記秘密鍵および前記公開鍵の生成に要する複数のパラメータを決定するとともに、前記複数のパラメータに基づいて、複数の双線形群と双線形写像とを選択するステップと、
前記パラメータおよび前記複数の双線形群に基づいて、前記秘密鍵および前記公開鍵を生成する鍵生成ステップと、
を含み、
前記パラメータの決定および前記複数の双線形群と双線形写像とを選択するステップでは、所定の桁数の素数ｐ、γ∈Ｚｐ＊およびＧ，Ｈ∈Ｇをパラメータとして決定するとともに、前記素数ｐを位数とする双線形写像群Ｇおよび巡回乗法群Ｇ１と、双線形写像ｅとを選択し、
前記鍵生成ステップでは、Ｖ＝ｅ（Ｇ，Ｈ）∈Ｇ１、Ｗ＝γＧ∈Ｇ、Ｘ＝γＨ∈Ｇを算出し、前記受信装置に固有の値ｕｉ∈Ｚｐ＊を選択するとともに、下記式１に基づいて、前記秘密鍵ｄｋｉを算出し、下記式６に基づいて前記受信装置に固有の公開情報Ｖｉを算出し、下記式７に基づいて公開鍵ｅｋｉを算出する、鍵生成方法。
【数７】
0005365072.tif 000168
【請求項８】
コンピュータを、複数の受信装置それぞれに固有な秘密鍵と、前記複数の受信装置及び暗号化装置に公開される公開鍵および公開情報と、を生成する鍵生成装置として機能させるためのプログラムであって、
前記秘密鍵および前記公開鍵の生成に要する複数のパラメータを決定するパラメータ決定機能と、
前記複数のパラメータに基づいて、複数の双線形群と双線形写像とを選択する双線形群選択機能と、
前記パラメータおよび前記複数の双線形群に基づいて、前記秘密鍵および前記公開鍵を生成する鍵生成機能と、
をコンピュータに実現させ、
前記パラメータ決定機能は、所定の桁数の素数ｐ、γ∈Ｚｐ＊およびＧ，Ｈ∈Ｇをパラメータとして決定し、
前記双線形群選択機能は、前記素数ｐを位数とする双線形写像群Ｇおよび巡回乗法群Ｇ１を選択し、
前記鍵生成機能は、前記受信装置に固有の値ｕｉ∈Ｚｐ＊を選択するとともに、下記式１に基づいて、前記秘密鍵ｄｋｉを算出する、プログラム。
【数８】
0005365072.tif 000169
【請求項９】
コンピュータを、複数の受信装置それぞれに固有な秘密鍵と、前記複数の受信装置及び暗号化装置に公開される公開鍵および公開情報と、を生成する鍵生成装置として機能させるためのプログラムであって、
前記秘密鍵および前記公開鍵の生成に要する、所定の桁数の素数ｐ、γ∈Ｚｐ＊およびＧ，Ｈ∈Ｇをパラメータとして決定するパラメータ決定機能と、
前記所定の桁数の素数ｐに基づいて、前記素数ｐを位数とする双線形写像群Ｇおよび巡回乗法群Ｇ１と、双線形写像ｅとを選択する双線形群選択機能と、
前記パラメータおよび前記複数の双線形群に基づいて、Ｖ＝ｅ（Ｇ，Ｈ）∈Ｇ１、Ｗ＝γＧ∈Ｇ、Ｘ＝γＨ∈Ｇを算出し、前記受信装置に固有の値ｕｉ∈Ｚｐ＊を選択するとともに、下記式１で定義される値を演算結果として出力し前記秘密鍵ｄｋｉとし、下記式６で定義される値を演算結果として出力し前記受信装置に固有の公開情報Ｖｉとし、下記式７で定義される値を演算結果として出力し公開鍵ｅｋｉとする鍵生成機能と、
をコンピュータに実現させるためのプログラム。
【数９】
0005365072.tif 000170
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、鍵生成装置、暗号化装置、受信装置、鍵生成方法、暗号化方法、鍵処理方法およびプログラムに関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータ（ＰＣ）のみならず、携帯電話やディジタル家電等の普及、発達に伴い、音楽や映像等のコンテンツ配信ビジネスが益々重要になってきている。コンテンツ配信ビジネスとしては、ＣＡＴＶや衛星放送、インターネット等を利用した有料放送や、ＣＤ、ＤＶＤ等の物理メディアを利用したコンテンツの販売などが存在するが、いずれにおいても、契約者のみがコンテンツを取得可能となる仕組みを構成する必要がある。このようなコンテンツ配信システムを実現する手法として、Ｂｒｏａｄｃａｓｔ  Ｅｎｃｒｙｐｔｉｏｎと呼ばれる暗号技術が存在する。Ｂｒｏａｄｃａｓｔ  Ｅｎｃｒｙｐｔｉｏｎでは、システムの管理者（以下、センタと称する。）が予め契約者（以下、ユーザと称する。）にのみ鍵を提供しておき、コンテンツの配信時には、コンテンツをセッション鍵で暗号化した暗号文と、指定された集合に所属するユーザのみがセッション鍵を取得可能とするためのヘッダを配信することにより、特定の契約者のみがコンテンツを取得可能となる。
【０００３】
Ｂｒｏａｄｃａｓｔ  Ｅｎｃｒｙｐｔｉｏｎには、共通鍵暗号を主体として構成する共通鍵Ｂｒｏａｄｃａｓｔ  Ｅｎｃｒｙｐｔｉｏｎと、公開鍵暗号を主体として構成する公開鍵Ｂｒｏａｄｃａｓｔ  Ｅｎｃｒｙｐｔｉｏｎが存在する。前者は、ヘッダからセッション鍵を取得する処理が共通鍵暗号を利用して行われるため、処理が非常に高速であるという利点が存在する。しかしながら、センタと各ユーザがあらかじめ同一の鍵、もしくはこの同一の鍵を導出するために必要な中間鍵を共有しておく必要があるため、コンテンツを配信可能となるのはセンタのみである、という制限が存在する。よって前者は、有料放送やＤＶＤ、次世代ＤＶＤ等の物理メディアによるコンテンツ配信等に適した方式であり、実際にＡＡＣＳ等の規格で利用されている。
【０００４】
一方後者は、システム全体、もしくは各ユーザの公開鍵、あるいはその両方が公開されているため、誰でもコンテンツを特定のユーザ集合に対して配信可能であるという利点が存在する。その反面、ヘッダからセッション鍵を取得する処理が公開鍵暗号を利用して行われるため、処理が前者と比較して遅くなる、という問題点が存在する。従って、前者とは異なり、事前に鍵共有することが困難な環境（例えば、インターネット上での配信や、安全なネットワークの動的な構成等）に適していると考えられる。
【０００５】
このように、Ｂｒｏａｄｃａｓｔ  Ｅｎｃｒｙｐｔｉｏｎでは、各状況に応じて適用可能な各種方式が多数存在するが、いずれの方式においても、安全性は元より、ヘッダサイズ、ユーザが保持する鍵数、および、セッション鍵を取得するために必要な計算量の三点における効率性が、重要視されている。ヘッダサイズは、物理メディアの場合であればその容量に、ネットワークであればその転送情報量に影響を与える。ユーザが保持する鍵数は、各ユーザが保持する機器等を設計する際、鍵用として確保しなければならないメモリサイズに影響する。計算量は、ユーザが暗号化されたコンテンツを再生するまでにかかる時間や、ユーザが保持する機器等の消費電力に影響する。それに加えて公開鍵Ｂｒｏａｄｃａｓｔ  Ｅｎｃｒｙｐｔｉｏｎでは、暗号化、復号時のいずれか一方、もしくは両方において公開鍵を利用するため、公開鍵サイズも重要な指標となる。よってＢｒｏａｄｃａｓｔ  Ｅｎｃｒｙｐｔｉｏｎにおいて重要となるのは、これらの値をいかに小さくできるかという点となる。
【０００６】
公開鍵Ｂｒｏａｄｃａｓｔ  Ｅｎｃｒｙｐｔｉｏｎ方式として注目されている方式の一つに、以下の非特許文献１に開示された方式（以下、従来方式と称する。）が存在する。この方式は、それまでの方式同様、結託に対して安全な方式であると共に、公開鍵サイズはそれまでの方式と変わらないものの、復号時に公開鍵を利用しない構成を実現することによって、各機器が保持する情報量の削減に成功した方式である。また、システム設定後であっても、新たなユーザを自由に追加できるという利点を有する。
【０００７】
【非特許文献１】Ｃ．Ｄｅｌｅｒａｂｌｅｅ，Ｐ．Ｐａｉｌｌｉｅｒ，ａｎｄ  Ｄ．Ｐｏｉｎｔｃｈｅｖａｌ，“Ｆｕｌｌｙ  Ｃｏｌｌｕｓｉｏｎ  Ｓｅｃｕｒｅ  Ｄｉｎａｍｉｃ  Ｂｒｏａｄｃａｓｔ  Ｅｎｃｒｙｐｔｉｏｎ  ｗｉｔｈ  Ｃｏｎｓｔａｎｔ−Ｓｉｚｅ  Ｃｉｐｈｅｒｔｅｘｔｓ  ｏｒ  Ｄｅｃｒｙｐｔｉｏｎ  Ｋｅｙｓ，”Ｐａｉｒｉｎｇ−Ｂａｓｅｄ  Ｃｒｙｐｔｏｇｒａｐｈｙ−Ｐａｉｒｉｎｇ２００７，Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ  ４５７５，ｐｐ．３９−５９，Ｓｐｒｉｎｇｅｒ，２００７．
【非特許文献２】Ｆ．Ｈｅｓｓ，Ｎ．Ｓｍａｒｔ，ａｎｄ  Ｆ．Ｖｅｒｃａｕｔｅｒｅｎ，“Ｔｈｅ  Ｅｔａ  Ｐａｉｒｉｎｇ  Ｒｅｖｉｓｉｔｅｄ，“ＩＥＥＥ  ＴＲＡＮＳＡＣＴＩＯＮＳＯＮ  ＩＮＦＯＲＭＡＴＩＯＮ  ＴＨＥＯＲＹ，ＶＯＬ．５２，ＮＯ．１０，ｐｐ．４５９５−４６０２，ＯＣＴ．２００６．
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述の非特許文献１に記載の従来方式では、暗号化時に必要となる計算量が、排除されるユーザ数をｒとした場合、楕円曲線上の点の加算、スカラー倍算がｒ２回程度必要であるのみならず、ビット長が長い巡回群上での乗算、冪乗算、逆元演算においてもｒ２回程度必要となり、ｒが大きくなるに連れて、送信者の演算負担が非常に大きくなるという問題があった。
【０００９】
そこで、本発明は、このような問題に鑑みてなされたもので、その目的は、暗号化時に必要となる計算量を削減可能な、新規かつ改良された鍵生成装置、暗号化装置、受信装置、鍵生成方法、暗号化方法、鍵処理方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明のある観点によれば、複数の受信装置それぞれに固有な秘密鍵と、前記複数の受信装置及び暗号化装置に公開される公開鍵および公開情報と、を生成する鍵生成装置であって、前記秘密鍵および前記公開鍵の生成に要する複数のパラメータを無作為に決定するパラメータ決定部と、前記複数のパラメータに基づいて、複数の双線形群と双線形写像とを選択する双線形群選択部と、前記パラメータおよび前記複数の双線形群に基づいて、前記秘密鍵および前記公開鍵を生成する鍵生成部と、を備える鍵生成装置が提供される。
【００１１】
前記パラメータ決定部は、所定の桁数の素数ｐをパラメータとして決定し、前記双線形群選択部は、前記素数ｐを位数とする双線形写像群Ｇおよび巡回乗法群Ｇ１を選択してもよい。
【００１２】
前記パラメータ決定部は、γ∈Ｚｐ＊およびＧ，Ｈ∈Ｇをパラメータとして決定し、前記鍵生成部は、前記受信装置に固有の値ｕｉ∈Ｚｐ＊を選択するとともに、下記式１に基づいて、前記秘密鍵ｄｋｉを算出してもよい。
【００１３】
【数１】
0005365072.tif 000002
【００１４】
前記鍵生成部は、前記秘密鍵として使用されず、前記公開情報として公開される擬似秘密鍵を算出する擬似秘密鍵算出部を更に備え、前記擬似秘密鍵算出部は、前記公開情報として公開されるｕ０∈Ｚｐ＊を選択するとともに、下記式２に基づいて、前記擬似秘密鍵ｄｋ０を算出してもよい。
【００１５】
【数２】
0005365072.tif 000003
【００１６】
前記鍵生成部は、Ｖ＝ｅ（Ｇ，Ｈ）∈Ｇ１およびＷ＝γＧ∈Ｇを算出するとともに、下記式３に基づいて前記受信装置に固有の公開情報Ｖｉを算出し、下記式４に基づいて公開鍵ｅｋｉを算出してもよい。
【００１７】
【数３】
0005365072.tif 000004
【００１８】
前記鍵生成部は、Ｗ＝γＧ∈Ｇを算出するとともに、下記式５に基づいて、公開鍵ｅｋｉを算出してもよい。
【００１９】
【数４】
0005365072.tif 000005
【００２０】
上記課題を解決するために、本発明の別の観点によれば、複数の受信装置それぞれに固有な秘密鍵と、前記複数の受信装置及び暗号化装置に公開される公開鍵および公開情報と、を生成する鍵生成装置であって、前記秘密鍵および前記公開鍵の生成に要する複数のパラメータを無作為に決定するパラメータ決定部と、前記複数のパラメータに基づいて、複数の双線形群と双線形写像とを選択する双線形群選択部と、前記パラメータおよび前記複数の双線形群に基づいて、前記秘密鍵および前記公開鍵を生成する鍵生成部と、を備え、前記パラメータ決定部は、所定の桁数の素数ｐ、γ∈Ｚｐ＊およびＧ，Ｈ∈Ｇをパラメータとして決定し、前記双線形群選択部は、前記素数ｐを位数とする双線形写像群Ｇおよび巡回乗法群Ｇ１と、双線形写像ｅとを選択し、前記鍵生成部は、Ｖ＝ｅ（Ｇ，Ｈ）∈Ｇ１、Ｗ＝γＧ∈Ｇ、Ｘ＝γＨ∈Ｇを算出し、前記受信装置に固有の値ｕｉ∈Ｚｐ＊を選択するとともに、下記式１に基づいて、前記秘密鍵ｄｋｉを算出し、下記式６に基づいて前記受信装置に固有の公開情報Ｖｉを算出し、下記式７に基づいて公開鍵ｅｋｉを算出する鍵生成装置が提供される。
【００２１】
【数４】
0005365072.tif 000006
【００２２】
上記課題を解決するために、本発明の更に別の観点によれば、平文を公開鍵および公開情報に基づいて暗号化して暗号文とする暗号化装置であって、複数の受信装置の中から前記暗号文の復号を許可しない排除受信装置を特定し、前記排除受信装置の集合を決定する排除受信装置特定部と、前記秘密鍵として使用されず前記公開情報として公開される擬似秘密鍵もしくは前記暗号化装置に固有の秘密鍵、前記公開鍵および前記公開情報と、前記排除受信装置の集合とに基づいて、前記平文を暗号化するためのセッション鍵を決定するセッション鍵決定部と、前記セッション鍵を算出する際に必要となる双線形写像演算を実行する双線形写像演算部と、前記平文を、前記セッション鍵を用いて暗号化する暗号化部と、を備え、前記双線形写像演算部は、少なくとも下記式８で定義される値Ｐｒを演算結果として前記セッション鍵決定部に出力し、前記セッション鍵決定部は、前記双線形写像演算部から出力された前記演算結果と前記公開情報とに基づいてγＰｒと等価である値を算出し、算出した前記γＰｒ、前記公開情報、および、前記公開情報として公開される擬似秘密鍵もしくは前記暗号化装置に固有の秘密鍵に基づいて、セッション鍵を算出する、暗号化装置が提供される。
【００２３】
【数５】
0005365072.tif 000007
【００２４】
前記双線形写像演算部は、前記排除受信装置の集合の要素数ｒが２以上である場合に、前記式８に加えて、下記式９および式１０で定義される値を演算結果として前記セッション鍵決定部に出力してもよい。
【００２５】
【数６】
0005365072.tif 000008
【００２６】
前記セッション鍵決定部は、前記双線形写像演算部から出力された前記演算結果と前記公開情報とに基づいて、下記式１１で定義される値γＰｒを算出し、前記γＰｒ、前記公開情報、および、前記公開情報として公開される擬似秘密鍵もしくは前記暗号化装置に固有の秘密鍵に基づいて、セッション鍵を算出してもよい。
【００２７】
【数７】
0005365072.tif 000009
【００２８】
前記セッション鍵決定部は、前記双線形写像演算部から出力された前記演算結果と前記公開情報とに基づいて、下記式１２で定義される値γＰｒを算出し、前記γＰｒ、前記公開情報、および、前記公開情報として公開される擬似秘密鍵もしくは前記暗号化装置に固有の秘密鍵に基づいて、セッション鍵を算出してもよい。
【数８】
0005365072.tif 000010
【００２９】
前記セッション鍵決定部は、ｋ∈Ｚｐ＊を選択するとともに、前記γＰｒ、前記公開情報、および、前記公開情報として公開される擬似秘密鍵もしくは前記暗号化装置に固有の秘密鍵に基づいて、下記式１３で定義される値Ｋ’を算出し、セッション鍵Ｋ＝（Ｋ’）ｋ∈Ｇ１を算出してもよい。
【００３０】
【数９】
0005365072.tif 000011
【００３１】
前記セッション鍵決定部は、前記暗号文とともに送信されるヘッダｈｄｒを、下記式１４に基づいて算出してもよい。
【００３２】
【数１０】
0005365072.tif 000012
【００３３】
前記暗号化装置は、前記暗号化装置自体が前記暗号化装置に固有の秘密鍵を保持しているか否かを判断して、セッション鍵の算出に使用する秘密鍵を特定する使用鍵特定部を更に備え、前記セッション鍵決定部は、前記暗号化装置が前記暗号化装置に固有の秘密鍵を保持している場合には、前記暗号化装置に固有の秘密鍵を用いて前記セッション鍵Ｋを算出し、前記暗号化装置が前記暗号化装置に固有の秘密鍵を保持していない場合には、前記公開情報に含まれる擬似秘密鍵を用いて前記セッション鍵Ｋを算出してもよい。
【００３４】
前記暗号化装置は、前記セッション鍵Ｋを算出する第２のセッション鍵算出方法を更に有するとともに、前記セッション鍵Ｋを算出するためのセッション鍵算出方法を選択するセッション鍵算出方法選択部を更に備え、前記セッション鍵算出方法選択部は、前記排除受信装置の集合の要素数ｒに応じて、前記セッション鍵決定部が使用する前記セッション鍵算出方法を選択してもよい。
【００３５】
前記暗号化装置は、前記双線形写像演算部による演算結果を利用して、前記暗号文の改ざん検知および正当性を前記受信装置で検証する際に利用される送信者認証用情報を生成する送信者認証用情報生成部を更に備えてもよい。
【００３６】
前記送信者認証用情報生成部は、前記公開鍵と、前記公開情報と、前記暗号化装置に固有の秘密鍵と、前記セッション鍵の算出に利用したパラメータおよび前記セッション鍵と、前記暗号文と、を用いて、前記送信者認証用情報を生成してもよい。
【００３７】
前記送信者認証用情報生成部は、任意のパラメータｔ∈Ｚｐ＊を選択するとともに、前記公開情報と前記パラメータｔとを用いて、下記式１５に基づき前記送信者認証用情報の要素ｓｉｇｊ，０を算出し、前記暗号文Ｃ、セッション鍵Ｋ、算出したｓｉｇｊ，０、および、ハッシュ関数Ｈを用いて、下記式１６に基づきハッシュ値ｈを算出してもよい。
【００３８】
【数１１】
0005365072.tif 000013
【００３９】
前記送信者認証用情報生成部は、下記式１７に基づいて前記暗号化装置の秘密情報ｙを算出するとともに、前記秘密情報ｙおよび前記暗号化装置に固有の秘密鍵を用いて、下記式１８に基づき前記送信者認証用情報の要素ｓｉｇｊ，１を算出し、前記暗号化装置に固有の値ｕｉと、前記ｓｉｇｊ，０と、ｓｉｇｊ，１とを用いて、（ｕｉ，ｓｉｇｊ，０，ｓｉｇｊ，１）を前記送信者認証用情報としてもよい。
【００４０】
【数１２】
0005365072.tif 000014
【００４１】
前記送信者認証用情報生成部は、下記式１９に基づいて前記暗号化装置の秘密情報ｙを算出するとともに、前記秘密情報ｙおよび前記暗号化装置に固有の秘密鍵を用いて、下記式２０に基づき前記送信者認証用情報の要素ｓｉｇｊ，１を算出し、前記暗号化装置に固有の値ｕｉと、前記ｓｉｇｊ，０と、ｓｉｇｊ，１とを用いて、（ｕｉ，ｓｉｇｊ，０，ｓｉｇｊ，１）を前記送信者認証用情報としてもよい。
【００４２】
また、前記送信者認証用情報生成部は、下記式１９に基づいて前記暗号化装置の秘密情報ｙを算出するとともに、前記秘密情報ｙおよび前記暗号化装置に固有の秘密鍵を用いて、下記式２０に基づき前記送信者認証用情報の要素ｓｉｇｊ，１を算出し、前記暗号化装置に固有の値ｕｉと、算出した前記ｈおよびｓｉｇｊ，１とを用いて、（ｕｉ，ｈ，ｓｉｇｊ，１）を前記送信者認証用情報としてもよい。
【００４３】
【数１３】
0005365072.tif 000015
【００４４】
上記課題を解決するために、本発明の更に別の観点によれば、鍵生成装置および暗号化装置と通信可能である受信装置であって、前記鍵生成装置によって生成された前記受信装置に固有の秘密鍵と、公開鍵および公開情報と、前記暗号化装置から送信されたヘッダと、に基づいて、前記暗号化装置から送信された暗号文を復号するためのセッション鍵を算出するセッション鍵算出部と、前記セッション鍵を算出する際に必要となる双線形写像演算を実行する双線形写像演算部と、を備え、前記双線形写像演算部は、前記公開鍵および前記公開情報に基づいて下記式２１で定義される値Ｂｉ，ｒを演算し、前記セッション鍵算出部は、下記式２２に基づいて、前記セッション鍵を算出する受信装置が提供される。
【００４５】
【数１４】
0005365072.tif 000016
【００４６】
上記課題を解決するために、本発明の更に別の観点によれば、鍵生成装置および暗号化装置と通信可能である受信装置であって、前記鍵生成装置によって生成された前記受信装置に固有の秘密鍵と、公開鍵および公開情報と、前記暗号化装置から送信されたヘッダと、に基づいて、前記暗号化装置から送信された暗号文を復号するためのセッション鍵を算出するセッション鍵算出部と、前記ヘッダと、前記暗号文と、前記暗号化装置から送信された送信者認証用情報と、算出した前記セッション鍵とを用いて、受信した情報の検証を行う受信内容検証部と、前記セッション鍵の算出および前記受信した情報の検証の際に必要となる双線形写像演算を実行する双線形写像演算部と、を受信装置が提供される。
【００４７】
前記受信内容検証部は、算出した前記セッション鍵と、前記暗号文と、前記送信者認証用情報とを用いて所定の値を算出し、算出した値が前記送信者認証用情報を構成する要素の一部に一致するか否かで検証を行ってもよい。
【００４８】
前記受信内容検証部は、排除された受信装置の数であるｒに応じて算出される値であるγＰｒと、前記送信者認証用情報（ｕｉ，ｓｉｇｊ，０，ｓｉｇｊ，１）と、前記ヘッダと、を用いて下記式２３に基づきパラメータＣＨ１を算出し、前記暗号文と、算出した前記セッション鍵Ｋと、前記送信者認証用情報の要素であるｓｉｇｊ，０とを用いて下記式２４に基づきハッシュ値ｈ’を算出し、前記パラメータＣＨ１と、前記セッション鍵Ｋと、前記ハッシュ値ｈ’とを用いて下記式２５に基づき検証用パラメータＣＨ２を算出してもよい。
【００４９】
【数１５】
0005365072.tif 000017
【００５０】
前記受信内容検証部は、排除された受信装置の数であるｒに応じて算出される値であるγＰｒと、前記送信者認証用情報（ｕｉ，ｓｉｇｊ，０，ｓｉｇｊ，１）と、前記ヘッダと、を用いて下記式２３に基づきパラメータＣＨ１を算出し、前記暗号文と、算出した前記セッション鍵Ｋと、前記送信者認証用情報の要素であるｓｉｇｊ，０とを用いて下記式２４に基づきハッシュ値ｈ’を算出し、前記公開鍵および前記公開情報と、算出した前記γＰｒとを用いて下記式２６に基づきパラメータＫ’を算出し、前記パラメータＣＨ１と、前記パラメータＫ’と、前記ハッシュ値ｈ’と、を用いて、下記式２７に基づき検証用パラメータＣＨ２を算出してもよい。
【００５１】
【数１６】
0005365072.tif 000018
【００５２】
前記受信内容検証部は、排除された受信装置の数であるｒに応じて算出される値であるγＰｒと、前記送信者認証用情報（ｕｊ，ｈ，ｓｉｇｊ，１）と、前記ヘッダと、を用いて下記式２３に基づきパラメータＣＨ１を算出し、前記公開鍵および前記公開情報と、算出した前記γＰｒと、前記受信装置に固有の秘密鍵とを用いて下記式２８に基づきパラメータＫ’を算出し、前記パラメータＣＨ１と、前記パラメータＫ’と、前記送信者認証用情報の要素であるｈとを用いて下記式２９に基づき検証用パラメータＣＨ２を算出し、前記暗号文と、算出した前記セッション鍵Ｋと、算出した前記検証用パラメータＣＨ２とを用いて下記式３０に基づきハッシュ値ｈ’を算出してもよい。
【００５３】
【数１７】
0005365072.tif 000019
【００５４】
前記受信内容検証部は、前記検証用パラメータＣＨ２が前記送信者認証用情報の要素ｓｉｇｊ，０と一致する場合には、検証が成功したと判定し、前記検証用パラメータＣＨ２が前記送信者認証用情報の要素ｓｉｇｊ，０と一致しない場合には、検証が失敗したと判定してもよい。
【００５５】
前記受信内容検証部は、前記ハッシュ値ｈ’が前記送信者認証用情報の要素ｈと一致する場合には、検証が成功したと判定し、前記ハッシュ値ｈ’が前記送信者認証用情報の要素ｈと一致しない場合には、検証が失敗したと判定してもよい。
【００５６】
前記受信装置は、算出した前記セッション鍵を用いて前記暗号文を復号する復号部を更に備え、前記復号部は、前記受信内容検証部の検証結果に応じて前記暗号文の復号処理を行ってもよい。
【００５７】
前記復号部は、前記秘密鍵として使用されず前記公開情報として公開される擬似秘密鍵を用いて前記送信者認証用情報が生成されていた場合には、前記暗号文の復号処理を行わないようにしてもよい。
【００５８】
上記課題を解決するために、本発明の更に別の観点によれば、複数の受信装置それぞれに固有な秘密鍵と、前記複数の受信装置及び暗号化装置に公開される公開鍵および公開情報と、を生成する鍵生成方法であって、前記秘密鍵および前記公開鍵の生成に要する複数のパラメータを無作為に決定するパラメータ決定ステップと、前記複数のパラメータに基づいて、複数の双線形群と双線形写像とを選択する双線形群選択ステップと、前記パラメータおよび前記複数の双線形群に基づいて、前記秘密鍵および前記公開鍵を生成する鍵生成ステップと、を含む鍵生成方法が提供される。
【００５９】
上記課題を解決するために、本発明の更に別の観点によれば、複数の受信装置それぞれに固有な秘密鍵と、前記複数の受信装置及び暗号化装置に公開される公開鍵および公開情報と、を生成する鍵生成方法であって、前記秘密鍵および前記公開鍵の生成に要する複数のパラメータを無作為に決定するとともに、前記複数のパラメータに基づいて、複数の双線形群と双線形写像とを選択するステップと、前記パラメータおよび前記複数の双線形群に基づいて、前記秘密鍵および前記公開鍵を生成する鍵生成ステップと、を含み、前記パラメータの決定および前記複数の双線形群と双線形写像とを選択するステップでは、所定の桁数の素数ｐ、γ∈Ｚｐ＊およびＧ，Ｈ∈Ｇをパラメータとして決定するとともに、前記素数ｐを位数とする双線形写像群Ｇおよび巡回乗法群Ｇ１と、双線形写像ｅとを選択し、前記鍵生成ステップでは、Ｖ＝ｅ（Ｇ，Ｈ）∈Ｇ１、Ｗ＝γＧ∈Ｇ、Ｘ＝γＨ∈Ｇを算出し、前記受信装置に固有の値ｕｉ∈Ｚｐ＊を選択するとともに、下記式１に基づいて、前記秘密鍵ｄｋｉを算出し、下記式６に基づいて前記受信装置に固有の公開情報Ｖｉを算出し、下記式７に基づいて公開鍵ｅｋｉを算出する鍵生成方法が提供される。
【００６０】
【数１８】
0005365072.tif 000020
【００６１】
上記課題を解決するために、本発明の更に別の観点によれば、平文を公開鍵および公開情報に基づいて暗号化して暗号文とする暗号化方法であって、複数の受信装置の中から前記暗号文の復号を許可しない排除受信装置を特定し、前記排除受信装置の集合を決定する排除受信装置特定ステップと、前記平文を暗号化するためのセッション鍵を算出する際に必要となる双線形写像演算を実行し、少なくとも下記式８で定義される値Ｐｒを演算結果として出力する双線形写像演算ステップと、前記秘密鍵として使用されず前記公開情報として公開される擬似秘密鍵もしくは前記暗号化装置に固有の秘密鍵、前記公開鍵および前記公開情報と、前記排除受信装置の集合と、前記演算結果とに基づいて、前記平文を暗号化するためのセッション鍵を決定するセッション鍵決定ステップと、前記平文を、前記セッション鍵を用いて暗号化する暗号化ステップと、を含む暗号化方法が提供される。
【００６２】
【数１９】
0005365072.tif 000021
【００６３】
前記双線形写像演算ステップでは、前記排除受信装置の集合の要素数ｒが２以上である場合に、前記式８に加えて、下記式９および式１０で定義される値を演算結果として出力してもよい。
【００６４】
【数２０】
0005365072.tif 000022
【００６５】
前記双線形写像演算ステップでの演算結果を利用して、前記暗号文の改ざん検知および正当性を前記受信装置で検証する際に利用される送信者認証用情報を生成する送信者認証用情報生成ステップを更に含んでもよい。
【００６６】
上記課題を解決するために、本発明の更に別の観点によれば、鍵生成装置および暗号化装置と通信可能である受信装置が実行する鍵処理方法であって、前記暗号化装置から送信された暗号文を復号するためのセッション鍵を算出する際に必要となる双線形写像演算を実行し、下記式２１で定義される値Ｂｉ，ｒを出力する双線形写像演算ステップと、前記鍵生成装置によって生成された前記受信装置に固有の秘密鍵と、公開鍵および公開情報と、前記暗号化装置から送信されたヘッダと、に基づいて、下記式２２を用いて前記セッション鍵を算出するセッション鍵算出ステップと、を含む鍵処理方法が提供される。
【００６７】
【数２１】
0005365072.tif 000023
【００６８】
上記課題を解決するために、本発明の更に別の観点によれば、鍵生成装置および暗号化装置と通信可能である受信装置が実行する鍵処理方法であって、前記暗号化装置から送信された暗号文を復号するためのセッション鍵を算出する際に必要となる双線形写像演算を実行する双線形写像演算ステップと、前記鍵生成装置によって生成された前記受信装置に固有の秘密鍵と、公開鍵および公開情報と、前記暗号化装置から送信されたヘッダと、に基づいて、前記暗号化装置から送信された暗号文を復号するためのセッション鍵を算出するセッション鍵算出ステップと、前記ヘッダと、前記暗号文と、前記暗号化装置から送信された送信者認証用情報と、算出した前記セッション鍵とを用いて、受信した情報の検証を行う受信内容検証ステップと、を含む鍵処理方法が提供される。
【００６９】
上記課題を解決するために、本発明の更に別の観点によれば、コンピュータを、複数の受信装置それぞれに固有な秘密鍵と、前記複数の受信装置及び暗号化装置に公開される公開鍵および公開情報と、を生成する鍵生成装置として機能させるためのプログラムであって、前記秘密鍵および前記公開鍵の生成に要する複数のパラメータを無作為に決定するパラメータ決定機能と、前記複数のパラメータに基づいて、複数の双線形群と双線形写像とを選択する双線形群選択機能と、前記パラメータおよび前記複数の双線形群に基づいて、前記秘密鍵および前記公開鍵を生成する鍵生成機能と、をコンピュータに実現させるためのプログラムが提供される。
【００７０】
上記課題を解決するために、本発明の更に別の観点によれば、コンピュータを、複数の受信装置それぞれに固有な秘密鍵と、前記複数の受信装置及び暗号化装置に公開される公開鍵および公開情報と、を生成する鍵生成装置として機能させるためのプログラムであって、前記秘密鍵および前記公開鍵の生成に要する、所定の桁数の素数ｐ、γ∈Ｚｐ＊およびＧ，Ｈ∈Ｇをパラメータとして決定するパラメータ決定機能と、前記所定の桁数の素数ｐに基づいて、前記素数ｐを位数とする双線形写像群Ｇおよび巡回乗法群Ｇ１と、双線形写像ｅとを選択する双線形群選択機能と、前記パラメータおよび前記複数の双線形群に基づいて、Ｖ＝ｅ（Ｇ，Ｈ）∈Ｇ１、Ｗ＝γＧ∈Ｇ、Ｘ＝γＨ∈Ｇを算出し、前記受信装置に固有の値ｕｉ∈Ｚｐ＊を選択するとともに、下記式１で定義される値を演算結果として出力し前記秘密鍵ｄｋｉとし、下記式６で定義される値を演算結果として出力し前記受信装置に固有の公開情報Ｖｉとし、下記式７で定義される値を演算結果として出力し公開鍵ｅｋｉとする鍵生成機能と、をコンピュータに実現させるためのプログラムが提供される。
【００７１】
【数２２】
0005365072.tif 000024
【００７２】
かかる構成によれば、コンピュータプログラムは、コンピュータが備える記憶部に格納され、コンピュータが備えるＣＰＵに読み込まれて実行されることにより、そのコンピュータを上記の鍵生成装置として機能させる。また、コンピュータプログラムが記録された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
【００７３】
上記課題を解決するために、本発明の更に別の観点によれば、コンピュータを、コンピュータを、平文を公開鍵および公開情報に基づいて暗号化して暗号文とする暗号化装置として機能させるためのプログラムであって、複数の受信装置の中から前記暗号文の送信を行わない排除受信装置を特定し、前記排除受信装置の集合を決定する排除受信装置特定機能と、前記秘密鍵として使用されず前記公開情報として公開される擬似秘密鍵もしくは前記暗号化装置に固有の秘密鍵、前記公開鍵および前記公開情報と、前記排除受信装置の集合とに基づいて、前記平文を暗号化するためのセッション鍵を決定するセッション鍵決定機能と、前記秘密鍵として使用されず前記公開情報として公開される擬似秘密鍵もしくは前記暗号化装置に固有の秘密鍵、前記公開鍵および前記公開情報と、前記排除受信装置の集合とに基づいて前記セッション鍵を算出する際に必要となる双線形写像演算を実行し、少なくとも下記式８で定義される値Ｐｒを演算結果として出力する双線形写像演算機能と、前記平文を、前記セッション鍵を用いて暗号化する暗号化機能と、をコンピュータに実現させるためのプログラムが提供される。
【００７４】
【数２３】
0005365072.tif 000025
【００７５】
かかる構成によれば、コンピュータプログラムは、コンピュータが備える記憶部に格納され、コンピュータが備えるＣＰＵに読み込まれて実行されることにより、そのコンピュータを上記の暗号化装置として機能させる。また、コンピュータプログラムが記録された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
【００７６】
上記課題を解決するために、本発明の更に別の観点によれば、コンピュータを、鍵生成装置および暗号化装置と通信可能である受信装置として機能させるためのプログラムであって、前記暗号化装置から送信された暗号文を復号するためのセッション鍵を算出する際に必要となる双線形写像演算を実行し、下記式２１で定義される値Ｂｉ，ｒを出力する双線形写像演算機能と、前記鍵生成装置によって生成された前記受信装置に固有の秘密鍵と、公開鍵および公開情報と、前記暗号化装置から送信されたヘッダと、に基づいて、下記式２２を用いて前記セッション鍵を算出するセッション鍵算出機能と、をコンピュータに実現させるためのプログラムが提供される。
【００７７】
【数２４】
0005365072.tif 000026
【００７８】
上記課題を解決するために、本発明の更に別の観点によれば、コンピュータを、鍵生成装置および暗号化装置と通信可能である受信装置として機能させるためのプログラムであって、前記鍵生成装置によって生成された前記受信装置に固有の秘密鍵と、公開鍵および公開情報と、前記暗号化装置から送信されたヘッダと、に基づいて、前記暗号化装置から送信された暗号文を復号するためのセッション鍵を算出するセッション鍵算出機能と、前記ヘッダと、前記暗号文と、前記暗号化装置から送信された送信者認証用情報と、算出した前記セッション鍵とを用いて、受信した情報の検証を行う受信内容検証機能と、前記セッション鍵の算出および前記受信した情報の検証の際に必要となる双線形写像演算を実行する双線形写像演算機能と、をコンピュータに実現させるためのプログラムが提供される。
【００７９】
かかる構成によれば、コンピュータプログラムは、コンピュータが備える記憶部に格納され、コンピュータが備えるＣＰＵに読み込まれて実行されることにより、そのコンピュータを上記の受信装置として機能させる。また、コンピュータプログラムが記録された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
【発明の効果】
【００８０】
本発明によれば、従来方式において暗号化時に必要となるビット長が長い巡回群上での乗算、冪乗算、逆元演算を削除し、その代わりに１回の双線形写像演算（ｐａｉｒｉｎｇ）と楕円曲線上の点の演算等を若干数追加することによって、ユーザ、すなわち秘密鍵を保持するｅｎｔｉｔｙ（人、デバイス、サーバ等の動作主体）が暗号化を実行する際には、特にｒが増加するほど、暗号化時に必要となる計算量、すなわち計算時間または計算に必要となる機器のコストを削減可能となる。
【発明を実施するための最良の形態】
【００８１】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００８２】
（第１の実施形態）
＜暗号鍵配信システムについて＞
以下に、本発明の第１の実施形態に係る暗号鍵配信システムについて、詳細に説明する。
【００８３】
図１は、本実施形態に係る暗号鍵配信システム１０を示した説明図である。暗号鍵配信システム１０は、例えば、通信網１２と、鍵生成装置２０と、暗号化装置３０と、受信装置４０Ａと、受信装置４０Ｂと、を含む。
【００８４】
通信網１２は、鍵生成装置２０、暗号化装置３０および受信装置４０を双方向通信又は一方向通信可能に接続する通信回線網である。この通信網は、例えば、インターネット、電話回線網、衛星通信網、同報通信路等の公衆回線網や、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＩＰ−ＶＰＮ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ−Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）、ワイヤレスＬＡＮ等の専用回線網などで構成されており、有線／無線を問わない。
【００８５】
鍵生成装置２０は、公開鍵と、複数の受信装置それぞれに固有の秘密鍵とを生成し、公開鍵を公開するとともに、各受信装置に対して、安全な通信路を介して、それぞれの秘密鍵を配信する。なお、この鍵生成装置２０は、公開鍵および秘密鍵の生成・管理を行うセンタが所有する。
【００８６】
暗号化装置３０は、鍵生成装置２０によって生成および公開された公開鍵を用いて、任意のコンテンツを暗号化し、通信網１２を介して、各受信装置に配信する。この暗号化装置３０は、任意の第三者が所有することが可能であり、また、鍵生成装置２０の所有者や、受信装置４０の所有者が所有することも可能である。
【００８７】
受信装置４０は、暗号化装置３０から配信された暗号化されたコンテンツを、固有の秘密鍵によって復号化して利用することが可能である。なお、受信装置４０Ａと受信装置４０Ｂとは、通信網１２または有線を介して互いに接続可能である。なお、この受信装置４０は、各契約者によって所有されるものである。
【００８８】
なお、受信装置４０は、パーソナルコンピュータ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ：ＰＣ）等のコンピュータ装置（ノート型、デスクトップ型を問わない。）例に限定されず、ネットワークを介した通信機能を有する機器であれば、例えばＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、家庭用ゲーム機、ＤＶＤ／ＨＤＤレコーダ、Ｂｌｕ−ｒａｙレコーダ、テレビジョン受像器等の情報家電、テレビジョン放送用のチューナやデコーダなどで構成することもできる。また、受信装置４０は、契約者が持ち運びできるポータブルデバイス（Ｐｏｒｔａｂａｌｅ  Ｄｅｖｉｃｅ）、例えば、携帯型ゲーム機、携帯電話、携帯型映像／音声プレーヤ、ＰＤＡ、ＰＨＳなどであってもよい。
【００８９】
＜鍵生成装置２０のハードウェア構成について＞
次に、本実施形態に係る鍵生成装置２０のハードウェア構成について、図２を参照しながら簡単に説明する。
【００９０】
図２は、鍵生成装置２０のハードウェア構成を示したブロック図である。鍵生成装置２０は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０３と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０５と、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）２０７と、暗号処理部２０９と、メモリ（セキュアモジュール）２１１と、を主に備える。
【００９１】
ＣＰＵ２０１は、演算処理装置および制御装置として機能し、ＲＯＭ２０３、ＲＡＭ２０５、ＨＤＤ２０７、またはリムーバブル記録媒体１４等に記録された各種プログラムに従って鍵生成装置２０内の動作全般を制御する。ＲＯＭ２０３は、ＣＰＵ２０１が使用するプログラムや演算パラメータ等を記憶する。ＲＡＭ２０５は、ＣＰＵ２０１の実行において使用するプログラムや、このプログラムの実行において適宜変化するパラメータ等を、一次記憶する。
【００９２】
ＨＤＤ２０７は、本実施形態に係る鍵生成装置２０の記憶部の一例として構成されたデータ格納用の装置である。このＨＤＤ２０７は、ハードディスクを駆動し、ＣＰＵ２０１が実行するプログラムや各種データを格納する。暗号処理部２０９は、本実施形態に係る鍵生成装置２０がＣＰＵ２０１の制御のもとで実行する各種の暗号処理を実行する。メモリ（セキュアモジュール）２１１は、主に、個人秘密鍵や、センタ秘密である乱数等の秘匿が必要な情報を安全に格納するが、このメモリ２１１の内部に格納された情報は、外部から参照することができないという特徴がある。また、メモリ（セキュアモジュール）２１１は、例えば、耐タンパ性を有する記憶装置により構成されていてもよい。なお、セキュアモジュールはメモリである旨の記載をしているが、本発明に係るセキュアモジュールは、メモリに限定されるわけではなく、例えば、磁気ディスク、光ディスク、光磁気ディスクであってもよく、また、半導体メモリ等の記憶媒体であってもよい。
【００９３】
上記のＣＰＵ２０１、ＲＯＭ２０３、ＲＡＭ２０５、ＨＤＤ２０７、暗号処理部２０９、および、メモリ２１１は、ＣＰＵバス等から構成されるバス２１３により、相互に接続されている。
【００９４】
バス２１３は、ブリッジを介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バスなどの入出力インターフェース２１５に接続されている。
【００９５】
入力装置２１７は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチおよびレバー等のユーザが操作する操作手段と、使用者による操作に基づいて入力信号を生成し、ＣＰＵ２０１に出力する入力制御回路等から構成されている。鍵生成装置２０の使用者は、この入力部２１７を操作することにより、鍵生成装置２０に対して各種のデータを入力したり処理動作を指示したりすることができる。
【００９６】
出力装置２１９は、例えば、ＣＲＴディスプレイ装置、液晶ディスプレイ装置、プラズマディスプレイ装置、ＥＬディスプレイ装置およびランプ等の表示装置と、スピーカおよびヘッドホン等の音声出力装置等で構成される。出力部２１９は、例えば、再生されたコンテンツを出力することが可能である。具体的には、表示装置は、再生された映像データ等の各種情報を、テキストまたはイメージで表示する。一方、音声出力装置は、再生された音楽データ等を音声に変換して出力する。
【００９７】
通信装置２２１は、例えば、通信網１２に接続するための通信デバイス等で構成された通信インターフェースである。この通信装置２２１は、例えば暗号化装置３０や受信装置４０Ａ、４０Ｂとの間で、通信網１２を介して、暗号鍵に関する情報や、コンテンツ情報等といった、各種データを送受信する。
【００９８】
ドライブ２２３は、記憶媒体用リーダライタであり、鍵生成装置２０に内蔵、あるいは外付けされる。ドライブ２２３は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体１４に記録されている情報を読み出して、ＲＡＭ２０５に出力する。また、ドライブ２２３は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体１４に記録を書き込むことも可能である。リムーバブル記録媒体１４は、例えば、ＤＶＤメディア、ＨＤ−ＤＶＤメディア、Ｂｌｕ−ｒａｙメディア、コンパクトフラッシュ（登録商標）（ＣｏｍｐａｃｔＦｌａｓｈ：ＣＦ）、メモリースティック、または、ＳＤメモリカード（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ  ｍｅｍｏｒｙ  ｃａｒｄ）等である。また、リムーバブル記録媒体９２７は、例えば、非接触型ＩＣチップを搭載したＩＣカード（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  ｃａｒｄ）または電子機器等であってもよい。
【００９９】
なお、暗号化装置３０および受信装置４０のハードウェア構成は、鍵生成装置２０のハードウェア構成と実質的に同一であるので、説明を省略する。
【０１００】
以上、本実施形態に係る鍵生成装置２０、暗号化装置３０および受信装置４０の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。また、上記のハードウェア構成は、あくまでも一例であり、これに限定されるものでないことは言うまでもない。例えば、ＨＤＤ２０７とメモリ（セキュアモジュール）２１１とを同一の記憶装置により構成してもよい。また、利用形態によっては、バス２１３、または入出力インターフェース２１５等を省略する構成も可能である。以下、上記のようなハードウェア構成により実現される暗号鍵生成方式について詳述する。
【０１０１】
［基盤技術に関する説明］
まず、本発明に係る好適な実施形態について詳細なる説明をするに先立ち、本実施形態を実現する上で基盤を成す技術的事項について述べる。なお、本実施形態は、以下に記載する基盤技術の上に改良を加えることにより、より顕著な効果を得ることができるように構成されたものである。従って、その改良に係る技術こそが本実施形態の特徴を成す部分である。つまり、本実施形態は、ここで述べる技術的事項の基礎概念を踏襲するが、その本質はむしろ改良部分に集約されており、その構成が明確に相違すると共に、その効果において基盤技術とは一線を画するものであることに注意されたい。
【０１０２】
まず、従来方式および本発明の実施形態に係る方式を説明する前に、これらを説明する上で必要となる記号、双線形写像、および双線形写像群について説明する。
【０１０３】
＜記号の定義＞
従来方式および本発明の実施形態に係る方式を説明する上で使用する各記号を、以下のように定義する。
【０１０４】
ｕｉ  ：ユーザｉに固有の番号
ｎ  ：ユーザの総数
ｒ  ：排除されたユーザ（ｒｅｖｏｋｅｄ  ｕｓｅｒｓ）の総数
Ｒ  ：排除されたユーザの集合。Ｒ＝｛ｕＲ１，・・・ｕＲｒ｝
Ｍ  ：コンテンツ等の平文
Ｋ  ：配信毎に変更される一時的な鍵（セッション鍵）
Ｃ  ：平文Ｍをセッション鍵Ｋで暗号化したときの暗号文
ＥＫ（Ｍ）  ：鍵Ｋによる平文Ｍの暗号化演算。Ｃ＝ＥＫ（Ｍ）
ＤＫ（Ｃ）  ：鍵Ｋによる暗号文Ｃの復号演算。Ｍ＝ＤＫ（Ｃ）
Ｈ（Ｍ）  ：平文Ｍのハッシュ演算
【０１０５】
＜双線形群における双線形写像＞
続いて、双線形群上の双線形写像に関して説明する。Ｇ、Ｇ’、Ｇ１を、それぞれ素数ｐを位数とする巡回群とする。双線形写像ｅとは、任意のＧ∈Ｇ、Ｈ∈Ｇ’およびａ，ｂ∈Ｚｐに対して、以下２つの性質を満たす、ｅ：Ｇ×Ｇ’→Ｇ１を実現する写像のことをいう。
【０１０６】
１．双線形性：ｅ（ａＧ，ｂＨ）＝ｅ（Ｇ，Ｈ）ａｂ
２．非退化性：ｅ（Ｇ，Ｈ）≠１（Ｇ≠１、または、Ｈ≠１の場合）
【０１０７】
また、Ｇ、Ｇ’における群演算が効率的に計算可能であり、かつ、双線形写像ｅが効率的に計算可能である群Ｇ１が存在する場合、Ｇ、Ｇ’を双線形写像群という。なお、Ｇ、Ｇ’は同一の群であってもよく、以降簡単のためにＧとＧ’を同一の群として扱うものとするが、以下で説明する従来方式および本発明に係る方式のいずれにおいても、Ｇ∈Ｇ、Ｈ∈Ｇ’とし、これらに関連する部分を変更することによって、Ｇ、Ｇ’が異なる群である場合にも、各方式において同様のことが実現可能である。
【０１０８】
＜従来方式に関する説明＞
非特許文献１に開示されている従来方式は、Ｓｅｔｕｐ、Ｊｏｉｎ、Ｅｎｃｒｙｐｔｉｏｎ、Ｄｅｃｒｙｐｔｉｏｎという４つの基本処理から構成される。以下、各基本処理について、図３〜図８を参照しながら、詳細に説明する。
【０１０９】
（Ｓｅｔｕｐ処理）
Ｓｅｔｕｐ処理は、鍵生成装置を有するセンタがシステム構築時に一度だけ実行する鍵生成処理である。センタは、セキュリティパラメータλを決定し、鍵生成装置は、入力されたセキュリティパラメータλを用いて、以下に説明するＳｅｔｕｐ処理を実行する。以下に、図３を参照しながら、本発明の基盤技術である従来方式における鍵生成処理について、詳細に説明する。図３は、本発明の基盤技術である従来方式における鍵生成処理について説明するための流れ図である。
【０１１０】
まず、鍵生成装置は、λ−ｂｉｔの素数ｐを生成し、ｐを位数とする双線形写像群Ｇおよび巡回乗法群Ｇ１を選択する（ステップＳ１１）。
【０１１１】
続いて、鍵生成装置は、双線形写像ｅ：Ｇ×Ｇ→Ｇ１を決定する（ステップＳ１２）。
【０１１２】
次に、鍵生成装置は、Ｇ，Ｈ∈Ｇを選択して、Ｖ＝ｅ（Ｇ，Ｈ）∈Ｇ１を計算する（ステップＳ１３）。
【０１１３】
その後、鍵生成装置は、γ∈ＲＺｐ＊を選択し、Ｗ＝γＧ∈Ｇを計算する（ステップＳ１４）。このようにして得られたγおよびＧは、センタのみがマスター鍵ｍｋ＝（γ，Ｇ）として秘密保持する。
【０１１４】
次に、鍵生成装置は、算出したデータを用いて、初期公開鍵ｅｋ０を以下のようにして構成する（ステップＳ１５）。
【０１１５】
ｅｋ０＝｛ｐ，Ｇ，Ｇ１，ｅ，Ｗ，Ｈ，Ｖ｝  ・・・（式９０１）
【０１１６】
鍵生成装置は、Ｓｅｔｕｐ処理の実行によって得られた初期公開鍵ｅｋ０を、システム全体の初期公開鍵として公開する。
【０１１７】
（Ｊｏｉｎ処理）
Ｊｏｉｎ処理は、センタが、ユーザからのシステム加入要求がある毎に実行するユーザ登録処理である。この処理は、センタがシステム設定を終えた後に、任意のタイミングで実行されてよい。
【０１１８】
センタは、公開鍵ｅｋｉ―１（１≦ｉ≦ｎ）、マスター鍵ｍｋおよびｉ番目に加入したユーザのインデックスであるｉを鍵生成装置に入力し、以下に説明するＪｏｉｎ処理を実行することで、システム加入要求を送信したユーザの秘密鍵を生成して、システムへの加入処理を行う。以下に、図４を参照しながら、本発明の基盤技術である従来方式におけるユーザ登録処理について、詳細に説明する。図４は、本発明の基盤技術である従来方式におけるユーザ登録処理について説明するための流れ図である。
【０１１９】
まず、鍵生成装置は、ユーザｉに固有の値である、ｕｉ∈Ｚｐ＊を計算する（ステップＳ２１）。その後、以下の式９０２に示す計算を行うことにより、センタは、システム加入要求を送信したユーザｉの秘密鍵ｄｋｉを計算する（ステップＳ２２）。
【０１２０】
【数２５】
0005365072.tif 000027
【０１２１】
ここで、上記式９０２におけるＢｉは、秘密鍵ｄｋｉの一部としているが、Ｂｉは秘密の情報ではなく公開情報であり、ユーザｉは、Ｂｉを秘密保持する必要はない。
【０１２２】
次に、鍵生成装置は、ユーザｉに対応する公開情報を以下の式９０３のようにして計算し、ｄｋｉおよび（ｕｉ，Ｖｉ）を得る（ステップＳ２３）。
【０１２３】
【数２６】
0005365072.tif 000028
【０１２４】
鍵生成装置は、Ｊｏｉｎ処理の実行によって得られたユーザｉの秘密鍵ｄｋｉを、安全な通信路を利用してユーザｉに秘密裏に送信すると共に、現在の公開鍵ｅｋｉ−１にユーザｉに対応する公開情報（ｕｉ，Ｂｉ，Ｖｉ）を追加し、公開鍵ｅｋｉとして更新、公開する。このとき、新たな公開鍵ｅｋｉは、以下の式９０４のような構成となっている。
【０１２５】
【数２７】
0005365072.tif 000029
【０１２６】
（Ｅｎｃｒｙｐｔｉｏｎ処理）
Ｅｎｃｒｙｐｔｉｏｎ処理は、コンテンツ等の配信を希望する任意の送信者が、暗号化装置を用いて、配信毎に実行する処理である。
【０１２７】
送信者は、公開鍵ｅｋｉ、排除されるユーザの集合Ｒ＝｛ｕＲ１，・・・ｕＲｒ｝を暗号化装置に入力し、以下に説明するＥｎｃｒｙｐｔｉｏｎ処理を実行することで、配信したいコンテンツ等の平文に暗号化処理を行う。以下に、図５を参照しながら、本発明の基盤技術である従来方式における暗号化処理について、詳細に説明する。図５は、本発明の基盤技術である従来方式における暗号化処理について説明するための流れ図である。
【０１２８】
暗号化装置は、まず、Ｒの要素数をカウントして、カウント結果をｒとする（ステップＳ３１）。次に、送信者は、ｋ∈Ｚｐ＊を選択する（ステップＳ３２）。
【０１２９】
続いて、暗号化装置は、排除されたユーザの数ｒについて、判定を行う（ステップＳ３３）。ｒ＝０の場合（すなわち、排除されたユーザが誰もいない場合）には、暗号化装置は、後述するステップＳ３４を実行する。また、ｒ＝１の場合（すなわち、排除されたユーザが一人だけの場合）には、後述するステップＳ３５を実行する。また、ｒ≧２の場合（すなわち、排除されたユーザが２人以上存在する場合）には、後述するステップＳ３６を実行する。
【０１３０】
排除されたユーザが誰もいない場合には、暗号化装置は、以下の式９０５および式９０６に基づいて、ＰｒおよびＫ’を決定し（ステップＳ３４）、その後ステップＳ３８を実行する。
【０１３１】
【数２８】
0005365072.tif 000030
【０１３２】
また、排除されたユーザが一人である場合には、暗号化装置は、以下の式９０７および式９０８に基づいてＰｒおよびＫ’を決定し（ステップＳ３５）、その後ステップＳ３８を実行する。
【０１３３】
【数２９】
0005365072.tif 000031
【０１３４】
また、排除されたユーザが２人以上である場合には、暗号化装置は、Ｇ上の演算に対して双線形群の演算処理（Ａｇｇｒｅｇａｔｅ（Ａ）アルゴリズム）を行い、以下の式９０９に示した値を計算する（ステップＳ３６）。なお、双線形群の演算処理アルゴリズムであるＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムについては、以下で改めて詳細に説明する。
【０１３５】
【数３０】
0005365072.tif 000032
【０１３６】
続いて、暗号化装置は、Ｇ１上の演算に対して双線形群の演算処理（Ａｇｇｒｅｇａｔｅ（Ａ）アルゴリズム）を行い、以下の式９１０に示した値を計算する（ステップＳ３７）。
【０１３７】
【数３１】
0005365072.tif 000033
【０１３８】
それぞれの場合について、ＰｒおよびＫ’の算出が終了すると、暗号化装置は、ヘッダｈｄｒを、以下の式９１１のようにして計算する（ステップＳ３８）。
【０１３９】
【数３２】
0005365072.tif 000034
【０１４０】
次に、暗号化装置は、セッション鍵Ｋを以下の式９１２に基づいて計算し、ヘッダｈｄｒ、Ｋ’およびｋとともに出力する。
【０１４１】
【数３３】
0005365072.tif 000035
【０１４２】
暗号化装置は、平文Ｍのセッション鍵Ｋによる暗号文Ｃ＝ＥＫ（Ｍ）を生成した後、（ｈｄｒ，Ｃ）を同報配信する。かかる処理を行うことで、送信者は、希望するユーザに対して暗号化されたコンテンツ等を送信することができる。
【０１４３】
なお、上記の処理に加えて、さらに平文Ｍの暗号化、または暗号化及び同報配信までをＥｎｃｒｙｐｔｉｏｎ処理で実行する構成としてもよい。また、ステップＳ３１は、送信者自身が実行し、Ｅｎｃｒｙｐｔｉｏｎ処理を実行する暗号化装置に入力する形態をとってもよい。
【０１４４】
（双線形群の演算処理−Ａｇｇｒｅｇａｔｅ（Ａ）アルゴリズム）
続いて、図６を参照しながら、Ｅｎｃｒｙｐｔｉｏｎ処理中で実施される双線形群演算処理であるＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムについて、詳細に説明する。図６は、本発明の基盤技術に係る双線形群の演算処理を説明するための流れ図である。
【０１４５】
Ａｇｇｒｅｇａｔｅ（Ａ）アルゴリズムは、暗号化装置が（Ｐ１，・・・Ｐｒ）∈Ｇを算出する際に実行するアルゴリズムである。
【０１４６】
まず、暗号化装置は、Ｐ０，ｍ＝ＶＲｍ（ｍ＝１，・・・，ｒ）とし、ｊ＝１と設定する（ステップＳ４１）。続いて、暗号化装置は、ｌ＝ｊ＋１と設定する（ステップＳ４２）。
【０１４７】
ここで、暗号化装置は、ｕＲｊとｕＲｌとの比較を行い、ｕＲｊ＝ｕＲｌであれば、エラーメッセージを出力し（ステップＳ４４）、処理を終了する。ｕＲｊ＝ｕＲｌでなければ、以下に示すステップＳ４５を実行する。
【０１４８】
続いて、暗号化装置は、以下の式９１３を用いて、Ｐｊ，ｌを計算する（ステップＳ４５）。
【０１４９】
【数３４】
0005365072.tif 000036
【０１５０】
上記式９１３の計算が終了すると、暗号化装置は、ｌにｌ＋１を代入し（ステップＳ４６）、ｌとｒ＋１の比較を行う（ステップＳ４７）。ｌ＝ｒ＋１であれば、暗号化装置は、ステップＳ４８を実行し、ｌがｒ＋１と等しくなければ、暗号化装置は、ステップＳ４３に戻って処理を続行する。
【０１５１】
次に、暗号化装置は、ｊにｊ＋１を代入し（ステップＳ４８）、ｊとｒの比較を行う（ステップＳ４９）。ｊ＝ｒであれば、暗号化装置は、ステップＳ５０を実行し、ｊがｒと等しくなければ、暗号化装置は、ステップＳ４２に戻って処理を続行する。
【０１５２】
その後、暗号化装置は、Ｐｊ−１，ｌをＰｒとして出力する（ステップＳ５０）。
【０１５３】
例えば、ｒ＝３の場合には、暗号化装置は、上述のＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムを実行することで、Ｐ２，３をＰ３として出力する。
【０１５４】
【数３５】
0005365072.tif 000037
【０１５５】
なお、Ｋ’∈Ｇ１も、上述のＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムによって算出することが可能である。この場合、Ｐ０，ｍ＝ＶＲｍ（ｍ＝１，・・・，ｒ）とし、加（減）算を乗（除）算に、乗算を冪乗算に変更した上で、ステップＳ４５をＧ１上での演算として実行すればよい。ただし、Ｚｐ＊上の演算である１／（ｕＲ１−ｕＲｊ）は、いずれの場合においてもＺｐ＊上での減算及び逆元演算として計算する必要がある。
【０１５６】
（Ｄｅｃｒｙｐｔｉｏｎ処理）
Ｄｅｃｒｙｐｔｉｏｎ処理は、コンテンツ等の配信を受けた受信者が暗号文を復号して平文を取得する際に、受信装置によって実行される処理である。
【０１５７】
受信装置は、送信者により送信されたｈｄｒと、秘密鍵ｄｋｉと、自身に固有の値であるｕｉと、に基づいて、以下に説明するＤｅｃｒｙｐｔｉｏｎ処理を実行することで、配信されたコンテンツ等の暗号文に復号処理を行う。以下に、図７を参照しながら、本発明の基盤技術である従来方式における復号処理について、詳細に説明する。図７は、本発明の基盤技術である従来方式における復号処理について説明するための流れ図である。
【０１５８】
まず、受信装置は、送信者から配信されたｈｄｒの中に、自身に固有の値であるｕｉが存在するか否かを判断する（ステップＳ５１）。ｈｄｒの中に自身に固有の値であるｕｉが存在する場合には、送信者により受信者が排除されたことを意味するため、受信装置は、エラーメッセージを出力し（ステップＳ５２）、処理を終了する。また、ｈｄｒの中に自身に固有の値であるｕｉが存在しない場合には、受信装置は、以下のステップＳ５３を実行する。
【０１５９】
次に、受信装置は、ｒが０か否かを判定する（ステップＳ５３）。ｒ＝０の場合には、受信装置は、後述するステップＳ５４を実行する。また、ｒが０ではない場合には、受信装置は、後述するステップＳ５５を実行する。
【０１６０】
ここで、ｒ＝０の場合には、受信装置は、Ｂｉ，Ｒ＝Ｂｉと設定し、後述するステップＳ５６を実施する。
【０１６１】
また、ｒが０ではない場合には、受信装置は、双線形群の演算処理（Ａｇｇｒｅｇａｔｅ（Ｂ）アルゴリズム）を行い、以下の式９１４に示した値を計算する（ステップＳ５５）。なお、双線形群の演算処理アルゴリズムであるＡｇｇｒｅｇａｔｅ（Ｂ）アルゴリズムについては、以下で改めて詳細に説明する。
【０１６２】
【数３６】
0005365072.tif 000038
【０１６３】
ステップＳ５４またはステップＳ５５が終了すると、受信装置は、取得したＢｉ，Ｒを用いて、以下の式９１５によりセッション鍵Ｋを算出する（ステップＳ５６）。
【０１６４】
【数３７】
0005365072.tif 000039
【０１６５】
受信者は、上述のＤｅｃｒｙｐｔｉｏｎ処理により得られたセッション鍵Ｋを利用して、送信者から送信されたコンテンツ等の暗号文Ｃを復号し、平文Ｍ＝ＤＫ（Ｃ）を取得する。
【０１６６】
（双線形群の演算処理−Ａｇｇｒｅｇａｔｅ（Ｂ）アルゴリズム）
続いて、図８を参照しながら、Ｄｅｃｒｙｐｔｉｏｎ処理中で実施される双線形群演算処理であるＡｇｇｒｅｇａｔｅ（Ｂ）アルゴリズムについて、詳細に説明する。図８は、本発明の基盤技術に係る双線形群の演算処理を説明するための流れ図である。
【０１６７】
Ａｇｇｒｅｇａｔｅ（Ｂ）アルゴリズムは、受信装置がＢｉ，Ｒ∈Ｇを算出する際に実行するアルゴリズムである。
【０１６８】
まず、受信装置は、パラメータｔｍｐを設定し、ｔｍｐの初期値をＢｉとし（ステップＳ６１）、続いて、受信装置は、ｊ＝１と設定する（ステップＳ６２）。
【０１６９】
次に、受信装置は、ｕＲｊとｕｉとの比較を行い、ｕＲｊ＝ｕｉであれば、エラーメッセージを出力し（ステップＳ６４）、処理を終了する。ｕＲｊ＝ｕｉでなければ、以下に示すステップＳ６５を実行する。
【０１７０】
続いて、受信装置は、以下の式９１６を用いて、新たなｔｍｐの値を計算する（ステップＳ６８）。
【０１７１】
【数３８】
0005365072.tif 000040
【０１７２】
ここで、上記式９１６から明らかなように、式中の分母に、受信装置に固有の値であるｕｉが含まれているため、暗号化装置から送信されたｈｄｒに自身のｕｉが含まれている場合には、ｔｍｐが値を持たなくなる。これにより、排除されたユーザは、セッション鍵Ｋの算出に必要なＢｉ，Ｒを得ることが出来なくなるため、暗号文を復号化することができない。
【０１７３】
上記の演算が終了すると、受信装置は、ｊの値をｊ＋１とし（ステップＳ６６）、次いで、ｊとｒ＋１の比較を行う（ステップＳ６７）。ｊ＝ｒ＋１であれば、受信装置は、後述するステップＳ６８を実行する。また、ｊがｒ＋１と等しくない場合には、受信装置は、ステップＳ６３に戻って処理を続行する。
【０１７４】
次に、受信装置は、ｔｍｐを出力する（ステップＳ６８）。出力されたｔｍｐは、Ｂｉ，Ｒであり、受信装置は、かかる出力値を用いてセッション鍵Ｋを算出する。
【０１７５】
＜従来方式の問題点＞
上記説明のように、従来方式では、暗号化時にＧ上及びＧ１上の両方においてＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムを実行する必要がある。ここで、暗号化時に送信者が実行する必要がある計算量を、図９に示す。なお、図中の「Ｐａｉｒｉｎｇ」とは、双線形写像ｅによる演算を表し、∈ＧにおけるＡｄｄおよびＭｕｌは、それぞれ楕円曲線上の点の加算及びスカラー倍算を表すものとする。また、表中の∈Ｇ、∈Ｇ１および∈Ｚｐ＊は各々その群上における演算を表すものとする。
【０１７６】
図９（ａ）からも明らかなように、Ｇ上におけるＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムを実行することにより、Ｇ上における演算、すなわち楕円曲線上の加算および乗算が各々ｒ２回程度必要となる。さらに、Ｋ’を導出するためにＧ１上におけるＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムをも実行する必要があるため、Ｇ１上における各演算、すなわち、ビットサイズが大きい群における乗算、冪乗算、逆元演算も各々ｒ２回程度必要となる。
【０１７７】
特に、Ｇ１上での演算は、安全性を確保するために８０−ｂｉｔ等価安全性を確保する場合には１０２４−ｂｉｔ、１２８−ｂｉｔ等価安全性を確保する場合には３０７２−ｂｉｔ程度という、大きなビットサイズでの演算となるため、暗号化時には最も計算時間が多くなる部分であり、Ｇ１上での演算回数が多いという問題点があった。
【０１７８】
そこで、本願発明者らは、上記の問題点を解決すべく鋭意研究を行い、以下に説明するような、本発明の一実施形態に係る暗号鍵配信システムを開発した。本実施形態に係る暗号鍵配信システムでは、従来方式において暗号化時に必要となるビット長が長い巡回群上での乗算、冪乗算、逆元演算を削除し、その代わりに１回の双線形写像演算（ｐａｉｒｉｎｇ）と楕円曲線上の点の演算等を若干数追加することによって、ユーザ、すなわち秘密鍵を保持するｅｎｔｉｔｙ（人、デバイス、サーバ等の動作主体）が暗号化を実行する際には、特にｒが増加するほど、暗号化時に必要となる計算量、すなわち計算時間または計算に必要となる機器のコストを削減可能となる。
【０１７９】
［本実施形態に係る説明］
これまで説明したような基盤技術を踏まえながら、以下において、本発明の第１の実施形態に係る鍵生成装置２０、暗号化装置３０および受信装置４０について、詳細に説明する。
【０１８０】
本実施形態に係る暗号鍵配信システム１０では、秘密鍵ｄｋｊを保持しているｅｎｔｉｔｙ、すなわち、ユーザｊが暗号化時に必要となる計算量を、従来方式におけるＥｎｃｒｙｐｔｉｏｎ処理およびＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムを、後述するＥｎｃｒｙｐｔｉｏｎ’処理およびＡｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムへと変更することによって、暗号化時に必要となる計算量の削減を達成するものである。よってこれら以外の基本処理であるＳｅｔｕｐ処理、Ｊｏｉｎ処理、Ｄｅｃｒｙｐｔｉｏｎ処理、および、Ｄｅｃｒｙｐｔｉｏｎ処理において利用されるＡｇｇｒｅｇａｔｅ（Ｂ）アルゴリズムに関しては、従来方式と同一のものを使用する。
【０１８１】
＜本実施形態に係る鍵生成装置２０について＞
まず、図１０を参照しながら、本実施形態に係る鍵生成装置２０について、詳細に説明する。図１０は、本実施形態に係る鍵生成装置２０の構成について説明するためのブロック図である。
【０１８２】
本実施形態に係る鍵生成装置２０は、例えば図１０に示したように、パラメータ決定部２５１と、双線形群選択部２５３と、鍵生成部２５５と、配布部２６１と、記憶部２６７と、を主に備える。
【０１８３】
パラメータ決定部２５１は、本実施形態に係る鍵生成装置２０が公開鍵や秘密鍵等を生成するために用いる様々なパラメータを所定の方法に基づいて決定する。かかるパラメータの例として、例えば、Ｓｅｔｕｐ処理等で用いられる素数ｐやＧ、Ｈ、Ｖ、γ等を挙げることができる。パラメータ決定部２５１は、例えば素数ｐやＧ、Ｈ、γを決定する際に、例えば乱数等を利用して無作為に値を決定する。また、パラメータ決定部２５１は、後述する双線形群選択部２５３から伝送された各種双線形群や双線形写像ｅを利用して、パラメータを決定してもよい。パラメータ決定部２５１は、決定した各種パラメータを、後述する双線形群選択部２５３や鍵生成部２５５に伝送する。また、パラメータ決定部２５１は、決定した各種パラメータを、後述する記憶部２６７に記録してもよい。
【０１８４】
双線形群選択部２５３は、パラメータ決定部２５１から伝送されたパラメータである素数ｐを用いて、ｐを位数とする双線形写像群Ｇと、巡回乗法群Ｇ１を選択する。また、双線形群選択部２５３は、双線形写像ｅ：Ｇ×Ｇ→Ｇ１を決定する。双線形群選択部２５３は、選択した双線形群Ｇ、Ｇ１と、決定した双線形写像ｅとを、パラメータ決定部２５１および後述する鍵生成部２５５に伝送する。また、双線形群選択部２５３は、選択した双線形群Ｇ、Ｇ１と、決定した双線形写像ｅとを、後述する記憶部２６７に記録してもよい。
【０１８５】
鍵生成部２５５は、パラメータ決定部２５１および双線形群選択部２５３から伝送された各種データを利用して、公開鍵、各ユーザに配布される秘密鍵、マスター鍵等の鍵や、各ユーザに対応する公開情報等を生成する。生成された鍵や公開情報は、ＨＤＤやセキュアモジュールを備えたメモリ等から構成される記憶部に記録される。また、公開が必要な情報および配布する鍵類は、後述する配布部２６１へと伝送される。
【０１８６】
配布部２６１は、鍵生成装置２０が生成した公開鍵および秘密鍵と、公開が必要な情報とを、通信網１２を介して配布する。かかる配布部２６１は、送受信部２６３と、公開鍵配布部２６５と、を更に備える。
【０１８７】
送受信部２６３は、鍵生成部２５５が生成した秘密鍵を、安全な通信路を介して個々のユーザに送信するとともに、受信装置４０から伝送されたシステム加入要求を受信する。受信されたシステム加入要求は鍵生成部２５５へと伝送され、鍵生成部２５５により新たな秘密鍵や公開鍵が生成される。
【０１８８】
公開鍵配布部２６５は、鍵生成部２５５が生成した公開鍵や公開情報を、通信網１２を介して暗号化装置３０や受信装置４０に配布する。暗号化装置３０や受信装置４０は、かかる公開鍵や公開情報を利用して、平文の暗号化処理や暗号文の復号処理を実行する。
【０１８９】
記憶部２６７には、パラメータ決定部２５１が決定した各種パラメータや、双線形群選択部２５３が選択した双線形群や双線形写像が記録される。また、記憶部２６７には、鍵生成部２５５が生成した各種鍵や公開情報が、秘密保持される。更に、これらの各種データ以外にも、鍵生成装置２０が、何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等を、適宜記憶することが可能である。この記憶部２６７は、パラメータ決定部２５１、双線形群選択部２５３、鍵生成部２５５、配布部２６１等が、自由に読み書きを行うことが可能である。
【０１９０】
＜本実施形態に係る暗号化装置３０について＞
続いて、図１１を参照しながら、本実施形態に係る暗号化装置３０について、詳細に説明する。図１１は、本実施形態に係る暗号化装置３０の構成について説明するためのブロック図である。
【０１９１】
本実施形態に係る暗号化装置３０は、例えば図１１に示したように、受信部３０１と、排除受信装置特定部３０３と、セッション鍵決定部３０７と、双線形写像演算部３１３と、暗号化部３１５と、暗号文送信部３１７と、記憶部３１９と、を主に備える。また、本実施形態に係る暗号化装置３０は、更に、セッション鍵算出方法選択部３２１を備えても良い。
【０１９２】
受信部３０１は、鍵生成装置２０により生成され、公開された公開鍵と公開情報とを受信する。受信した公開鍵および公開情報は、後述する記憶部３１９に記録され、必要な際に読み出されて利用される。
【０１９３】
排除受信装置特定部３０３は、暗号化装置３０に通信網１２を介して接続されている複数の受信装置４０の中から、暗号文の配信を排除する受信装置を特定し、排除される受信装置の集合Ｒを決定する。集合Ｒの決定に際しては、排除受信装置特定部３０３は、後述する記憶部３１９に記憶されている様々なデータを参照することができる。決定された集合Ｒは、後述するセッション鍵決定部３０７に伝送され、配信するコンテンツ等の平文を暗号化するために用いられるセッション鍵等の算出に利用される。また、排除受信装置特定部３０３は、決定された集合Ｒを後述する記憶部３１９に記録してもよい。
【０１９４】
セッション鍵決定部３０７は、受信部３０１が受信し記憶部３１９に記録されている公開鍵および公開情報と、排除受信装置特定部３０３が決定した集合Ｒ等とに基づいて、配信するコンテンツ等の平文を暗号化するために用いられるセッション鍵等を決定する。このセッション鍵決定部３０７は、セッション鍵算出部３０９と、ヘッダ算出部３１１と、を更に備える。
【０１９５】
セッション鍵算出部３０９は、記憶部３１９から取得した公開鍵および公開情報と、排除受信装置特定部３０３から伝送される、排除される受信装置の集合Ｒ等と、に基づいて、配信するコンテンツ等の平文を暗号化するために利用するセッション鍵を算出する。セッション鍵算出部３０９が算出したセッション鍵は、後述する暗号化部３１５に伝送され、平文を暗号化する際に利用される。また、セッション鍵算出部３０９は、算出したセッション鍵を、記憶部３１９に記録してもよい。
【０１９６】
ヘッダ算出部３１１は、セッション鍵算出部３０９がセッション鍵を算出する際に計算した各種データと、記憶部３１９に記録されている公開鍵や公開情報等とを利用して、暗号文と同時に受信装置４０に配信されるヘッダを生成する。生成されたヘッダは、後述する暗号文送信部３１７へと伝送される。また、ヘッダ算出部３１１は、生成したヘッダ情報を、記憶部３１９に記録してもよい。
【０１９７】
双線形写像演算部３１３は、セッション鍵の算出の際に実行する必要がある双線形写像に関する演算を行う処理部である。双線形写像演算部３１３は、記憶部３１９に記録されている公開情報に含まれる双線形群Ｇ，Ｇ１と、セッション鍵決定部３０７から伝送されるデータとを用いて、双線形写像の演算を行う。演算結果は、セッション鍵決定部３０７に再度伝送され、セッション鍵やヘッダの算出に利用される。なお、双線形写像演算部３１３は、演算結果を記憶部３１９に記録してもよい。
【０１９８】
暗号化部３１５は、記憶部３１９等から配信するコンテンツ等の平文を取得し、セッション鍵決定部３０７で算出されたセッション鍵を用いて暗号化処理を行い、平文を暗号化する。暗号化された平文は、暗号文送信部３１７へと伝送される。また、暗号化部３１５は、暗号化した平文を、記憶部３１９に記録してもよい。
【０１９９】
暗号文送信部３１７は、暗号化部３１５によって暗号化された暗号文と、ヘッダ算出部３１１によって算出されたヘッダとを、通信網１２等を介して、各受信装置に同報配信する。
【０２００】
記憶部３１９には、受信部３０１が受信した公開鍵および公開情報や、排除受信装置特定部３０３が決定した集合Ｒや、セッション鍵決定部３０７が算出したセッション鍵やヘッダ情報等が記録される。また、記憶部３１９には、これらの各種データ以外にも、暗号化装置３０が、何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等を、適宜記憶することが可能である。この記憶部３１９は、受信部３０１、排除受信装置特定部３０３、セッション鍵決定部３０７、双線形写像演算部３１３、暗号化部３１５、暗号文送信部３１７、セッション鍵算出方法選択部３２１等が、自由に読み書きを行うことが可能である。
【０２０１】
セッション鍵算出方法選択部３２１は、本実施形態に係る暗号化装置３０が複数のセッション鍵算出方法を記憶しており、複数のセッション鍵算出方法を適宜選択可能である場合に、排除される受信装置の台数に応じて利用するセッション鍵算出方法を選択する。セッション鍵算出方法の選択に際しては、排除される受信装置の台数と所定の閾値との比較を行って、選択するセッション鍵算出方法を決定してもよく、排除される受信装置の台数に基づいて、選択可能なセッション鍵算出方法に要する計算量をそれぞれ算出し、算出した計算量を比較することで、利用するセッション鍵算出方法を選択してもよい。
【０２０２】
＜本実施形態に係る受信装置４０について＞
続いて、図１２を参照しながら、本実施形態に係る受信装置４０について、詳細に説明する。図１２は、本実施形態に係る受信装置４０の構成について説明するためのブロック図である。
【０２０３】
本実施形態に係る受信装置４０は、例えば図１２に示したように、受信部４０１と、セッション鍵算出部４０３と、双線形写像演算部４０５と、復号部４０７と、記憶部４０９と、を主に備える。
【０２０４】
受信部４０１は、鍵生成装置２０により生成された秘密鍵、公開鍵および公開情報を受信する。また、受信部４０１は、暗号化装置３０によって暗号化された暗号文やヘッダ情報についても、受信することが可能である。受信部４０１は、鍵生成装置２０から受信した秘密鍵、公開鍵および公開情報と、暗号化装置３０から受信したヘッダを、後述するセッション鍵算出部４０３に伝送し、暗号化装置３０から受信した暗号文を、後述する復号部４０７に伝送する。なお、受信部４０１は、受信した秘密鍵、公開情報、暗号文、ヘッダ情報等を、後述する記憶部４０９に記録してもよい。
【０２０５】
セッション鍵算出部４０３は、鍵生成装置２０から取得した秘密鍵、公開鍵および公開情報と、暗号化装置３０から送信されたヘッダ等に基づいて、暗号化装置３０から配信された暗号文を復号化処理する際に利用するセッション鍵を算出する。セッション鍵算出部４０３は、算出したセッション鍵を、後述する復号部４０３に伝送する。また、セッション鍵算出部４０３は、算出したセッション鍵を、後述する記憶部４０９に記録してもよい。
【０２０６】
双線形写像演算部４０５は、セッション鍵の算出の際に実行する必要がある双線形写像に関する演算を行う処理部である。双線形写像演算部４０５は、公開情報に含まれる双線形群Ｇ，Ｇ１と、セッション鍵算出部４０３から伝送されるデータとを用いて、双線形写像の演算を行う。演算結果は、セッション鍵算出部４０３に再度伝送され、セッション鍵の算出に利用される。なお、双線形写像演算部４０５は、演算結果を記憶部４０９に記録してもよい。
【０２０７】
復号部４０７は、セッション鍵算出部４０３が算出したセッション鍵を利用して、暗号化装置３０から配信されたコンテンツ等の暗号文を復号化し、平文に変換する。復号部４０７は、取得した平文を、記憶部４０９に格納することが可能である。
【０２０８】
記憶部４０９には、受信部４０１が受信した秘密鍵、公開鍵および公開情報が記録される。また、記憶部４０９には、暗号化装置３０から送信された暗号文およびヘッダや、セッション鍵算出部４０３が算出したセッション鍵や、復号部４０７が復号化処理を行った平文等が記録されてもよい。さらに、記憶部４０９には、これらの各種データ以外にも、受信装置４０が、何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等を、適宜記憶することが可能である。この記憶部４０９は、受信部４０１、セッション鍵算出部４０３、双線形写像演算部４０５、復号部４０７等が、自由に読み書きを行うことが可能である。
【０２０９】
以上、本実施形態に係る鍵生成装置２０、暗号化装置３０および受信装置４０の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、ＣＰＵ等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
【０２１０】
＜鍵生成装置２０の動作：Ｓｅｔｕｐ処理およびＪｏｉｎ処理＞
センタは、所有する鍵生成装置２０を操作し、以下の手順に従って、公開鍵および公開情報と、各ユーザに対応する個人秘密鍵とを生成する。本実施形態に係る鍵生成装置２０が実行するＳｅｔｕｐ処理およびＪｏｉｎ処理は、従来方法におけるＳｅｔｕｐ処理およびＪｏｉｎ処理と同一であるため、図３および図４を参照しながら、本実施形態に係る鍵生成装置２０の動作（すなわち、Ｓｅｔｕｐ処理およびＪｏｉｎ処理）について、詳細に説明する。
【０２１１】
（鍵生成装置２０におけるＳｅｔｕｐ処理）
Ｓｅｔｕｐ処理は、本実施形態に係る鍵生成装置２０を有するセンタがシステム構築時に一度だけ実行する鍵生成処理である。センタは、セキュリティパラメータλを決定し、鍵生成装置は、入力されたセキュリティパラメータλを用いて、以下に説明するＳｅｔｕｐ処理を実行する。
【０２１２】
まず、鍵生成装置２０のパラメータ決定部２５１は、λ−ｂｉｔの素数ｐを生成し、次いで、双線形群選択部２５３は、ｐを位数とする双線形写像群Ｇおよび巡回乗法群Ｇ１を選択する（ステップＳ１１）。
【０２１３】
次に、鍵生成装置２０の双線形群選択部２５３は、双線形写像ｅ：Ｇ×Ｇ→Ｇ１を決定する（ステップＳ１２）。
【０２１４】
続いて、鍵生成装置２０のパラメータ決定部２５１は、Ｇ，Ｈ∈Ｇを選択して、Ｖ＝ｅ（Ｇ，Ｈ）∈Ｇ１を計算する（ステップＳ１３）。
【０２１５】
その後、鍵生成装置２０のパラメータ決定部２５１は、γ∈ＲＺｐ＊を選択し、Ｗ＝γＧ∈Ｇを計算する（ステップＳ１４）。このようにして得られたγおよびＧは、センタのみがマスター鍵ｍｋ＝（γ，Ｇ）として秘密保持する。
【０２１６】
次に、鍵生成装置２０の鍵生成部２５５は、算出したデータを用いて、初期公開鍵ｅｋ０を以下のようにして構成する（ステップＳ１５）。
【０２１７】
0005365072.tif 000041
【０２１８】
公開鍵の生成が終了すると、鍵生成装置２０の配布部２６１は、Ｓｅｔｕｐ処理の実行によって得られた初期公開鍵ｅｋ０を、システム全体の初期公開鍵として公開する。
【０２１９】
（鍵生成装置２０におけるＪｏｉｎ処理）
Ｊｏｉｎ処理は、センタが、ユーザからのシステム加入要求がある毎に実行するユーザ登録処理である。この処理は、センタがシステム設定を終えた後に、任意のタイミングで実行されてよい。
【０２２０】
センタは、公開鍵ｅｋｉ―１（１≦ｉ≦ｎ）、マスター鍵ｍｋおよびｉ番目に加入したユーザのインデックスであるｉを鍵生成装置２０に入力し、以下に説明するＪｏｉｎ処理を実行することで、システム加入要求を送信したユーザの秘密鍵を生成して、システムへの加入処理を行う。
【０２２１】
まず、鍵生成装置２０の鍵生成部２５５は、ユーザｉに固有の値である、ｕｉ∈Ｚｐ＊を計算する（ステップＳ２１）。その後、以下の式１０２に示す計算を行うことにより、鍵生成部２５５は、システム加入要求を送信したユーザｉの秘密鍵ｄｋｉを計算する（ステップＳ２２）。
【０２２２】
【数３９】
0005365072.tif 000042
【０２２３】
ここで、上記式１０２におけるＢｉは、秘密鍵ｄｋｉの一部としているが、Ｂｉは秘密の情報ではなく公開情報であり、ユーザｉは、Ｂｉを秘密保持する必要はない。
【０２２４】
次に、鍵生成装置２０の鍵生成部２５５は、ユーザｉに対応する公開情報を以下の式１０３のようにして計算し、ｄｋｉおよび（ｕｉ，Ｖｉ）を得る（ステップＳ２３）。
【０２２５】
【数４０】
0005365072.tif 000043
【０２２６】
鍵生成装置３０の配布部２６１は、Ｊｏｉｎ処理の実行によって得られたユーザｉの秘密鍵ｄｋｉを、安全な通信路を利用してユーザｉに秘密裏に送信すると共に、現在の公開鍵ｅｋｉ−１にユーザｉに対応する公開情報（ｕｉ，Ｂｉ，Ｖｉ）を追加し、公開鍵ｅｋｉとして更新、公開する。このとき、新たな公開鍵ｅｋｉは、以下の式１０４のような構成となっている。
【０２２７】
【数４１】
0005365072.tif 000044
【０２２８】
以上、本実施形態に係る鍵生成装置２０で実行されるＳｅｔｕｐ処理およびＪｏｉｎ処理について説明した。続いて、本実施形態に係る暗号化装置３０で実行される暗号化処理（Ｅｎｃｒｙｐｔｉｏｎ’処理）について、説明する。
【０２２９】
＜暗号化装置３０の動作：Ｅｎｃｒｙｐｔｉｏｎ’処理＞
コンテンツ等の平文を配信する配信者は、所有する暗号化装置３０を操作し、以下の手順に従って、暗号文とヘッダとを生成する。以下に、図１３および図１４を参照しながら、本実施形態に係る暗号化装置３０の動作について、詳細に説明する。図１３は、本実施形態に係る暗号化装置３０で実行される暗号化処理を説明するための流れ図であり、図１４は、本実施形態に係る暗号化装置３０で実行される双線形群の演算処理を説明するための流れ図である。
【０２３０】
Ｅｎｃｒｙｐｔｉｏｎ’処理は、コンテンツ等の配信を希望する任意の送信者が、暗号化装置３０を用いて、配信毎に実行する処理である。
【０２３１】
送信者は、公開鍵ｅｋｉ、排除されるユーザの集合Ｒ＝｛ｕＲ１，・・・ｕＲｒ｝を本実施形態に係る暗号化装置３０に入力し、以下に説明するＥｎｃｒｙｐｔｉｏｎ’処理を実行することで、配信したいコンテンツ等の平文に暗号化処理を行う。ユーザによって入力された集合Ｒは、暗号化装置３０の排除受信装置特定部３０３により、暗号化装置３０が利用可能なデジタルデータに変換され、Ｅｎｃｒｙｐｔｉｏｎ’処理に用いられる。
【０２３２】
暗号化装置３０の排除受信装置特定部３０３は、まず、Ｒの要素数をカウントして、カウント結果をｒとし（ステップＳ１０１）、カウント結果ｒをセッション鍵決定部３０７に出力する。次に、暗号化装置３０のセッション鍵算出部３０９は、ｋ∈Ｚｐ＊を選択する（ステップＳ１０２）。
【０２３３】
続いて、暗号化装置３０のセッション鍵算出部３０９は、排除されたユーザの数ｒについて、判定を行う（ステップＳ１０３）。ｒ＝０の場合（すなわち、排除されたユーザが誰もいない場合）には、セッション鍵算出部３０９は、後述するステップＳ１０４を実行する。また、ｒ＝１の場合（すなわち、排除されたユーザが一人だけの場合）には、後述するステップＳ１０５を実行する。また、ｒ≧２の場合（すなわち、排除されたユーザが２人以上存在する場合）には、後述するステップＳ１０６を実行する。
【０２３４】
排除されたユーザが誰もいない場合には、セッション鍵算出部３０９は、以下の式１０５および式１０６に基づいて、ＰｒおよびＫ’を決定し（ステップＳ１０４）、その後ステップＳ１０９を実行する。
【０２３５】
【数４２】
0005365072.tif 000045
【０２３６】
また、排除されたユーザが一人である場合には、セッション鍵算出部３０９は、以下の式１０７および式１０８に基づいてＰｒおよびＫ’を決定し（ステップＳ１０５）、その後ステップＳ１０９を実行する。
【０２３７】
【数４３】
0005365072.tif 000046
【０２３８】
また、排除されたユーザが２人以上である場合には、セッション鍵算出部３０９は、双線形写像演算部３１３に対して、Ｇ上で双線形群の演算処理（Ａｇｇｒｅｇａｔｅ（Ｃ）アルゴリズム）を行い、以下の式１０９〜式１１１に示した値を計算するよう要請し、双線形写像演算部３１３は、Ａｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムを実行して、式１０９〜式１１１の値をセッション鍵算出部３０９に出力する（ステップＳ１０６）。なお、双線形群の演算処理アルゴリズムであるＡｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムについては、以下で改めて詳細に説明する。
【０２３９】
【数４４】
0005365072.tif 000047
【０２４０】
ここで、上記式１１０および式１１１は、式１０９（Ｐｒ）を導出する際に、計算の途中経過として算出される値であり、従来方式では、式１１０および式１１１の値は、計算値として出力されるものではなかった。本実施形態に係る暗号化処理では、以下で説明するように、式１１０および式１１１の計算値を効果的に利用することで、暗号化時に必要となる計算量、すなわち計算時間または計算に必要となる機器のコストを削減することが可能となる。
【０２４１】
例えば、ｒ＝３の場合には、双線形写像演算部３１３は、上述のＡｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムを実行することで、Ｐ１，２、Ｐ１，３およびＰ２，３の３つの値を、演算結果としてセッション鍵算出部３０９に出力する。
【０２４２】
【数４５】
0005365072.tif 000048
【０２４３】
次に、セッション鍵算出部３０９は、双線形写像演算部３１３から出力された演算結果を利用して、以下の式１１２の値を算出する（ステップＳ１０７）。
【０２４４】
【数４６】
0005365072.tif 000049
【０２４５】
上記式１１２を展開すると、以下の式１１３のようになる。本実施形態に係るセッション鍵算出部３０９は、上記γＰｒを算出することで、Ｇ１上でのＡｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムが実行不要となり、Ａｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムの実行回数を１回に減らすことが可能となる。
【０２４６】
【数４７】
0005365072.tif 000050
【０２４７】
続いて、セッション鍵算出部３０９は、双線形写像演算部３１３の演算結果と、上記式１１３の値を用いて、以下の式１１４に示した値を計算する（ステップＳ１０８）。
【０２４８】
【数４８】
0005365072.tif 000051
【０２４９】
それぞれの場合について、ＰｒおよびＫ’の算出が終了すると、ヘッダ算出部３０７は、ヘッダｈｄｒを、以下の式１１５のようにして計算する（ステップＳ１０９）。
【０２５０】
【数４９】
0005365072.tif 000052
【０２５１】
次に、セッション鍵算出部３０９は、セッション鍵Ｋを以下の式１１６に基づいて計算し、ヘッダｈｄｒ、Ｋ’およびｋとともに出力する（ステップＳ１１０）。
【０２５２】
【数５０】
0005365072.tif 000053
【０２５３】
暗号化装置３０の暗号化部３１５は、平文Ｍのセッション鍵Ｋによる暗号文Ｃ＝ＥＫ（Ｍ）を生成し、暗号文送信部３１７は、（ｈｄｒ，Ｃ）を同報配信する。かかる処理を行うことで、送信者は、希望するユーザに対して暗号化されたコンテンツ等を送信することができる。
【０２５４】
なお、上記の処理に加えて、さらに平文Ｍの暗号化、または暗号化及び同報配信までをＥｎｃｒｙｐｔｉｏｎ’処理で実行する構成としてもよい。また、ステップＳ１０１は、送信者自身が実行し、Ｅｎｃｒｙｐｔｉｏｎ’処理を実行する暗号化装置３０に入力する形態をとってもよい。
【０２５５】
（双線形群の演算処理−Ａｇｇｒｅｇａｔｅ（Ｃ）アルゴリズム）
続いて、図１４を参照しながら、Ｅｎｃｒｙｐｔｉｏｎ’処理中で実施される双線形群演算処理であるＡｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムについて、詳細に説明する。
【０２５６】
Ａｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムは、暗号化装置３０の双線形写像演算部３１３が（Ｐ１，・・・Ｐｒ）∈Ｇを算出する際に実行するアルゴリズムである。
【０２５７】
まず、暗号化装置３０の双線形写像演算部３１３は、Ｐ０，ｍ＝ＢＲｍ（ｍ＝１，・・・，ｒ）とし、ｊ＝１と設定する（ステップＳ２０１）。続いて、双線形写像演算部３１３は、ｌ＝ｊ＋１と設定する（ステップＳ２０２）。
【０２５８】
ここで、双線形写像演算部３１３は、ｕＲｊとｕＲｌとの比較を行い（ステップＳ２０３）、ｕＲｊ＝ｕＲｌであれば、エラーメッセージを出力し（ステップＳ２０４）、処理を終了する。ｕＲｊ＝ｕＲｌでなければ、以下に示すステップＳ２０５を実行する。
【０２５９】
続いて、双線形写像演算部３１３は、以下の式１１７を用いて、Ｐｊ，ｌを計算する（ステップＳ２０５）。
【０２６０】
【数５１】
0005365072.tif 000054
【０２６１】
上記式１１１の計算が終了すると、双線形写像演算部３１３は、ｌにｌ＋１を代入し（ステップＳ２０６）、ｌとｒ＋１の比較を行う（ステップＳ２０７）。ｌ＝ｒ＋１であれば、双線形写像演算部３１３は、ステップＳ２０８を実行し、ｌがｒ＋１と等しくなければ、双線形写像演算部３１３は、ステップＳ２０３に戻って処理を続行する。
【０２６２】
次に、双線形写像演算部３１３は、ｊにｊ＋１を代入し（ステップＳ２０８）、ｊとｒの比較を行う（ステップＳ２０９）。ｊ＝ｒであれば、双線形写像演算部３１３は、ステップＳ２１０を実行し、ｊがｒと等しくなければ、双線形写像演算部３１３は、ステップＳ２０２に戻って処理を続行する。
【０２６３】
その後、双線形写像演算部３１３は、Ｐｒ＝Ｐｊ−１，ｊ、Ｐｊ−２，ｊ−１およびＰｊ−２，ｊをセッション鍵算出部３０９に出力する（ステップＳ２１０）。
【０２６４】
＜受信装置４０の動作：Ｄｅｃｒｙｐｔｉｏｎ処理＞
本実施形態に係る受信装置４０が実行するＤｅｃｒｙｐｔｉｏｎ処理は、従来方法におけるＤｅｃｒｙｐｔｉｏｎ処理と同一であるため、図７を参照しながら、本実施形態に係る受信装置４０の動作（すなわち、Ｄｅｃｒｙｐｔｉｏｎ処理）について、詳細に説明する。
【０２６５】
Ｄｅｃｒｙｐｔｉｏｎ処理は、コンテンツ等の配信を受けた受信者が暗号文を復号して平文を取得する際に、本実施形態に係る受信装置４０によって実行される処理である。
【０２６６】
受信装置４０は、送信者により送信されたｈｄｒと、秘密鍵ｄｋｉと、自身に固有の値であるｕｉと、に基づいて、以下に説明するＤｅｃｒｙｐｔｉｏｎ処理を実行することで、配信されたコンテンツ等の暗号文に復号処理を行う。
【０２６７】
まず、受信装置４０のセッション鍵算出部４０３は、受信部４０１が受信したｈｄｒの中に、自身に固有の値であるｕｉが存在するか否かを判断する（ステップＳ５１）。ｈｄｒの中に自身に固有の値であるｕｉが存在する場合には、送信者により受信者が排除されたことを意味するため、受信装置４０は、エラーメッセージを出力し（ステップＳ５２）、処理を終了する。また、ｈｄｒの中に自身に固有の値であるｕｉが存在しない場合には、受信装置４０は、以下のステップＳ５３を実行する。
【０２６８】
次に、セッション鍵算出部４０３は、ｒが０か否かを判定する（ステップＳ５３）。ｒ＝０の場合には、セッション鍵算出部４０３は、後述するステップＳ５４を実行する。また、ｒが０ではない場合には、セッション鍵算出部４０３は、後述するステップＳ５５を実行する。
【０２６９】
ここで、ｒ＝０の場合には、セッション鍵算出部４０３は、Ｂｉ，Ｒ＝Ｂｉと設定し、後述するステップＳ５６を実施する。
【０２７０】
また、ｒが０ではない場合には、セッション鍵算出部４０３は、双線形写像演算部４０５に対して、Ｇ上で双線形群の演算処理（Ａｇｇｒｅｇａｔｅ（Ｂ）アルゴリズム）を行い、以下の式１１２に示した値を計算するよう要請し、双線形写像演算部４０５は、Ａｇｇｒｅｇａｔｅ（Ｂ）アルゴリズムを実行して、式１１８の値をセッション鍵算出部４０３に出力する（ステップＳ５５）。なお、双線形群の演算処理アルゴリズムであるＡｇｇｒｅｇａｔｅ（Ｂ）アルゴリズムについては、以下で改めて詳細に説明する。
【０２７１】
【数５２】
0005365072.tif 000055
【０２７２】
ステップＳ５４またはステップＳ５５が終了すると、セッション鍵算出部４０３は、取得したＢｉ，Ｒを用いて、以下の式１１９によりセッション鍵Ｋを算出する（ステップＳ５６）。
【０２７３】
【数５３】
0005365072.tif 000056
【０２７４】
復号部４０７は、上述のＤｅｃｒｙｐｔｉｏｎ処理により得られたセッション鍵Ｋを利用して、送信者から送信されたコンテンツ等の暗号文Ｃを復号し、平文Ｍ＝ＤＫ（Ｃ）を取得する。
【０２７５】
（双線形群の演算処理−Ａｇｇｒｅｇａｔｅ（Ｂ）アルゴリズム）
続いて、図８を参照しながら、Ｄｅｃｒｙｐｔｉｏｎ処理中で実施される双線形群演算処理であるＡｇｇｒｅｇａｔｅ（Ｂ）アルゴリズムについて、詳細に説明する。
【０２７６】
Ａｇｇｒｅｇａｔｅ（Ｂ）アルゴリズムは、双線形写像演算部４０５がＢｉ，Ｒ∈Ｇを算出する際に実行するアルゴリズムである。
【０２７７】
まず、双線形写像演算部４０５は、パラメータｔｍｐを設定し、ｔｍｐの初期値をＢｉとし（ステップＳ６１）、続いて、双線形写像演算部４０５は、ｊ＝１と設定する（ステップＳ６２）。
【０２７８】
次に、双線形写像演算部４０５は、ｕＲｊとｕｉとの比較を行い、ｕＲｊ＝ｕiであれば、エラーメッセージを出力し（ステップＳ６４）、処理を終了する。ｕＲｊ＝ｕiでなければ、以下に示すステップＳ６５を実行する。
【０２７９】
続いて、双線形写像演算部４０５は、以下の式１２０を用いて、新たなｔｍｐの値を計算する（ステップＳ６８）。
【０２８０】
【数５４】
0005365072.tif 000057
【０２８１】
ここで、上記式１１４から明らかなように、式中の分母に、受信装置に固有の値であるｕｉが含まれているため、暗号化装置から送信されたｈｄｒに自身のｕｉが含まれている場合には、ｔｍｐが値を持たなくなる。これにより、排除されたユーザは、セッション鍵Ｋの算出に必要なＢｉ，Ｒを得ることが出来なくなるため、暗号文を復号化することができない。
【０２８２】
上記の演算が終了すると、双線形写像演算部４０５は、ｊの値をｊ＋１とし（ステップＳ６６）、次いで、ｊとｒ＋１の比較を行う（ステップＳ６７）。ｊ＝ｒ＋１であれば、双線形写像演算部４０５は、後述するステップＳ６８を実行する。また、ｊがｒ＋１と等しくない場合には、双線形写像演算部４０５は、ステップＳ６３に戻って処理を続行する。
【０２８３】
次に、双線形写像演算部４０５は、ｔｍｐをセッション鍵算出部４０３に出力する（ステップＳ６８）。出力されたｔｍｐは、Ｂｉ，Ｒであり、セッション鍵算出部４０３は、かかる出力値を用いてセッション鍵Ｋを算出する。
【０２８４】
＜従来方式との相違点について＞
従来方式では、Ｐ１，・・・，Ｐｒを導出するために、ｒ≧２で場合には、ＥｎｃｒｙｐｔｉｏｎアルゴリズムにおけるステップＳ３６にて、Ｇ上の演算に対するＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムを実行する。その後、Ｋ’を導出するために、ステップＳ３７にてＧ１上の演算に対するＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムを実行している。
【０２８５】
これに対して、本実施形態に係る暗号化方法では、従来方式同様、Ｅｎｃｒｙｐｔｉｏｎ’アルゴリズムのステップＳ１０６にてＧ上の演算に対するＡｇｇｒｅｇａｔｅ（Ｃ）を実行しているが、Ｋ’導出には、ステップＳ１０７におけるＧ上の演算と、ステップＳ１０８におけるＧ１上の演算を利用し、Ａｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムを利用していない。ここで、Ａｇｇｒｅｇａｔｅ（Ａ）アルゴリズムとＡｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムは、ステップＳ５０およびステップＳ２１０における出力値が異なるのみであり、かつ、Ａｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムにおいて追加で出力されるＰｒ-２，ｒ-１、Ｐｒ-２，ｒは、Ｐｒを導出するために利用される値でもあるため、これらを追加出力したとしても、計算量はＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムと同じである。
【０２８６】
すなわち、秘密鍵ｄｋｊを持つユーザｊが暗号化を実行する際の計算は、従来方式ではＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズム実行回数が必ず二回となるのに対し、本実施形態に係る暗号化方法では、若干回数のＧ上での演算と一回の双線形写像演算が追加される代わりに、Ａｇｇｒｅｇａｔｅ（Ｃ）アルゴリズム実行回数が一回へと削減されている。また、Ｋ’導出に必要な計算量に関しては、従来方式ではｒが大きくなるにつれｒ２に比例して大きくなるのに対して、本実施形態に係る暗号化方法ではｒに関係なく、一定の計算量となっている点が大きく異なる。
【０２８７】
本実施形態に係る暗号化処理の効果を示すため、従来方式と本実施形態に係る方式の両方における暗号化時の計算量比較を、図１５に示す。図１５に示したように、本実施形態に係る方法は、従来方式と比較して、双線形写像演算が１回、Ｇ上における各演算、すなわち楕円曲線上の加算及び乗算が各々３回および４回、Ｚｐ＊上における逆元演算が２回増加している。しかしながら、Ｇ１上、すなわちビットサイズが最も大きい群における乗算、冪乗算、逆元演算を、各々（ｒ２-ｒ）／２回削減することに成功している。従来方式および本実施形態に係る方式における暗号化時の計算量を比較するため、まず、図１５の各演算を実行するために必要となる演算量を、以下のように定義する。この時、従来方式と比較して、本方式の暗号化時における計算量の増加分は、図１５より、以下の式１２１であることがわかる。一方、減少分は、以下の式１２２となる。よって、ｒが以下の式１２３を満たす場合には、本実施形態に係る方式の方が、暗号化時における計算量を削減可能となっていることが分かる。
【０２８８】
【数５５】
0005365072.tif 000058
【０２８９】
なお、図１５および上記式１２１〜式１２３における記号の意味は、以下の通りである。
【０２９０】
Ａ    ：Ｇにおける楕円曲線上の点の加算
Ｄ    ：Ｇにおける楕円曲線上の点の二倍算
Ｓ    ：Ｇにおける楕円曲線上の点のスカラー倍算
Ｍ    ：Ｇ１における乗算
Ｑ    ：Ｇ１における二乗算
Ｅ    ：Ｇ１における冪乗算
Ｉ    ：Ｇ１における逆元演算
ｍｕｌ：Ｚｐ＊における乗算
ｓｑｒ：Ｚｐ＊における二乗算
ｉｎｖ：Ｚｐ＊における逆元演算
Ｐ    ：双線形写像演算
【０２９１】
式１２３を満たすｒを、数値例を用いて導出する。なお，以下では、１２８−ｂｉｔ等価安全性を満たす場合について考える。この時、ｐのビットサイズは２５６−ｂｉｔ、Ｇ１の元のビットサイズは３０７２−ｂｉｔとなる。以降、Ｚｐ＊上での乗算ｍｕｌを基準として、具体的な数値例を示す。従来方式および本実施形態に係る方式の両方とも、Ｇ上における楕円曲線上の点の演算、Ｇ１、Ｚｐ＊上における各種演算、および、双線形写像演算を利用している。これらの演算には様々な演算手法が存在するため、ここでは非特許文献２に示された演算見積もりを利用する。
【０２９２】
非特許文献２では、Ｚｐ＊上における演算に対して、以下の式１２４の関係を適用している。また、３０７２／２５６＝１２＝２２×３より、Ｇ１上における演算に対しては、以下の式１２５のようになる。また、楕円曲線上の点の演算に関しては、ｐｒｏｊｅｃｔｉｖｅ座標系を利用することにより、以下の式１２６のようになる。ここで、スカラー倍算Ｓは、二倍算と加算を繰り返し実行することによって計算されるため、その平均的な計算量は、点の係数のビット長ｌｏｇ２ｐ回の二倍算と（１／２）ｌｏｇ２ｐ回の加算として見積もることができる。よって、Ｓは、以下の式１２７のように見積もることができる。また、Ｇ１上での冪乗算Ｅも、位数ｐより指数部のビットサイズがｌｏｇ２ｐであり、二乗算と乗算を繰り返し実行することによって計算されるため、スカラー倍算と同様に見積もることが可能であり、以下の式１２８のように見積もることができる。
【０２９３】
双線形写像演算Ｐに関しては、双線形写像演算自体がＭｉｌｌｅｒ’ｓ  ａｌｇｏｒｉｔｈｍによる演算と最終冪乗と呼ばれる冪乗剰余演算から構成されるため、ＣＦｕｌｌを楕円曲線パラメータによって変動するＭｉｌｌｅｒ’ｓ  ａｌｇｏｒｉｔｈｍの計算量とすると、ＣＦｕｌｌ＋３Ｅとして見積もることができる。ここで、３Ｅは、現在想定しているパラメータに対する最終冪乗のコストである。今、非特許文献２に記載の表より、ｐｒｏｊｅｃｔｉｖｅ座標系におけるＡｔｅ  ｐａｉｒｉｎｇ演算の平均値をＣＬｉｔｅとすると、双線形写像演算Ｐは、以下の式１２９となる。
【０２９４】
【数５６】
0005365072.tif 000059
【０２９５】
上記式１２４〜式１２９を用いて、式１２３は、以下の式１３０と変形できる。この式１３０を図示すると、図１６のようになる。
【０２９６】
【数５７】
0005365072.tif 000060
【０２９７】
図１６から明らかなように、前述したようなパラメータ設定を行った場合には、排除されるユーザ数が４人以上となった場合、本実施形態に係る方式の方が、非常に効率よく演算可能であることが分かる。
【０２９８】
（本実施形態に係る暗号化方法の変形例）
本実施形態に係る暗号化方式は、暗号化処理中にユーザに固有な値であるｕｉを利用するため、ユーザであれば暗号化を効率的に実行可能であるが、ユーザではないｅｎｔｉｔｙは実行不可能である。そのため、上述の暗号化方式のみを利用した場合、従来方式よりも暗号化可能なｅｎｔｉｔｙが制限される。また、ユーザであっても、ｒが非常に小さい場合には、従来方式の方が高速に暗号化可能である場合が存在する。よって、従来方式と本実施形態に係る方式を切り替えて利用ことで、効率よく暗号化処理を行うことができる。
【０２９９】
例えば、暗号化装置３０がＥｎｃｒｙｐｔｉｏｎ処理またはＥｎｃｒｙｐｔｉｏｎ’処理を実行する前に、以下の処理を実行することにより、効率的な暗号化処理を選択することが可能である。
【０３００】
暗号化装置３０のセッション鍵決定部３０７は、自身が秘密鍵ｄｋｊを保持しているか否かを判断する。自身が秘密鍵ｄｋｊを保持していなければ、Ｅｎｃｒｙｐｔｉｏｎ処理を実行する。また、自身が秘密鍵ｄｋｊを保持している場合には、排除受信装置特定部３０３は、排除されるユーザの集合Ｒの要素数をカウントして、ｒとする。
【０３０１】
次に、セッション鍵算出部３０９は、本実施形態に係る暗号化処理のステップＳ１０６まで処理を実行する。
【０３０２】
続いて、セッション鍵算出方法選択部３２１は、ｒに対するＥｎｃｒｙｐｔｉｏｎ処理の実行時の計算量と、Ｅｎｃｒｙｐｔｉｏｎ’処理の実行時の計算量と、を比較して、使用するセッション鍵算出方法を判定する。
【０３０３】
その結果、Ｅｎｃｒｙｐｔｉｏｎ処理実行時の計算量が、Ｅｎｃｒｙｐｔｉｏｎ’処理実行時の計算量よりも少ない場合には、セッション鍵算出方法選択部３２１は、Ｅｎｃｒｙｐｔｉｏｎ処理を実行した方が効率が良い旨を、セッション鍵算出部３０９に出力する。その後、
セッション鍵算出部３０９は、Ｅｎｃｒｙｐｔｉｏｎ処理のステップＳ３７以降を実行する。
【０３０４】
また、Ｅｎｃｒｙｐｔｉｏｎ’処理実行時の計算量が、Ｅｎｃｒｙｐｔｉｏｎ処理実行時の計算量よりも少ない場合には、セッション鍵算出方法選択部３２１は、Ｅｎｃｒｙｐｔｉｏｎ’処理を実行した方が効率が良い旨を、セッション鍵算出部３０９に出力する。その後、セッション鍵算出部３０９は、Ｅｎｃｒｙｐｔｉｏｎ’処理のステップＳ１０７以降を実行する。
【０３０５】
暗号化装置３０は、かかる判定を行うことにより、効率的な暗号化処理を選択することが可能である。
【０３０６】
なお、上述の変形例では、暗号化装置３０自身が、効率的な暗号化処理を選択する場合であったが、暗号化装置３０を操作する送信者自身が、処理に要する計算量を算出して、用いる処理の選択を行っても良い。
【０３０７】
以上説明したように、本実施形態に係る方式によれば、従来方式において暗号化時に必要となるビット長が長い巡回群上での乗算、冪乗算、逆元演算を削除し、その代わりに１回の双線形写像演算（ｐａｉｒｉｎｇ）と楕円曲線上の点の演算等を若干数追加することによって、ユーザ、すなわち秘密鍵を保持するｅｎｔｉｔｙ（人、デバイス、サーバ等の動作主体）が暗号化を実行する際には、特にｒが増加するほど、暗号化時に必要となる計算量、すなわち計算時間または計算に必要となる機器のコストを削減可能となる。
【０３０８】
（第２の実施形態）
＜従来方式の問題点＞
従来方式では、上述の問題点に加えて、以下のような問題点も存在する。従来方式では、Ｓｅｔｕｐ処理の実行時に生成される初期公開鍵ｅｋ０＝｛ｐ，Ｇ，Ｇ１，ｅ，Ｗ，Ｈ，Ｖ｝に加え、Ｊｏｉｎ処理が実行されるたびに、ユーザｉに対する公開情報（ｕｉ，Ｂｉ，Ｖｉ）が追加される。従って、ｎ人のユーザが存在する場合には、従来方式における公開鍵は、以下の式９１７のようになる。
【０３０９】
【数５８】
0005365072.tif 000061
【０３１０】
すなわち、従来方式では、図９（ｂ）に示したように、ｎ人のユーザに対する公開鍵の要素数が３ｎ＋３となり、ユーザ数の増加に応じて、公開鍵のサイズが非常に大きくなるという問題があった。例えば、１２８−ｂｉｔ等価安全性を考えた場合、素数ｐのビットサイズが２５６−ｂｉｔとなり、Ｇ１上の元のビットサイズが３０７２−ｂｉｔとなる。ここで、各ユーザの固有値ｕｉ（ｉ＝１，・・・，ｎ）のビットサイズを３２−ｂｉｔとし、ｎ＝１００００人程度のシステムを考える。このとき、従来方式における公開鍵サイズは、最終的に、約４．３ＭＢとなってしまう。
【０３１１】
なお、上述の公開鍵のうち、ｐ，Ｇ，Ｇ１，ｅは、システムパラメータであるため、公開鍵の要素数にはカウントしない。
【０３１２】
そこで、本願発明者らは、上記の問題点を解決すべく鋭意研究を行い、以下に説明するような、公開鍵サイズ及び暗号化時に必要となる計算量の削減を可能とした本発明の一実施形態に係る暗号鍵配信システムを開発した。
【０３１３】
［本実施形態に係る説明］
これまで説明したような基盤技術を踏まえながら、以下において、本発明の第２の実施形態に係る暗号鍵配信システム１０について、詳細に説明する。なお、本実施形態に係る暗号鍵配信システム１０は、本発明の第１の実施形態に係る暗号鍵配信システムと同様の構成を有するため、構成に関する詳細な説明は省略する。
【０３１４】
本実施形態に係る暗号鍵配信システム１０では、従来方式におけるＳｅｔｕｐ処理、Ｊｏｉｎ処理、Ｅｎｃｒｙｐｔｉｏｎ処理の各基本処理をＳｅｔｕｐ’処理、Ｊｏｉｎ’処理、Ｅｎｃｒｙｐｔｉｏｎ”処理へと変更し、Ａｇｇｒｅｇａｔｅ（Ａ）アルゴリズムの代わりに、第１の実施形態において説明したＡｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムを利用することによって、公開鍵サイズおよび暗号化時に必要となる計算量の削減を達成するものである。よって、Ｄｅｃｒｙｐｔｉｏｎ処理およびＤｅｃｒｙｐｔｉｏｎ処理において利用されるＡｇｇｒｅｇａｔｅ（Ｂ）アルゴリズムに関しては、本発明の第１の実施形態に係る方式と同一のものを使用する。
【０３１５】
また、本実施形態に係る鍵生成装置２０、暗号化装置３０および受信装置４０のハードウェア構成は、本発明の第１の実施形態に係る鍵生成装置２０、暗号化装置３０および受信装置４０のハードウェア構成と同一であるため、詳細な説明は省略する。
【０３１６】
＜本実施形態に係る鍵生成装置２０について＞
まず、図１７を参照しながら、本実施形態に係る鍵生成装置２０について、詳細に説明する。図１７は、本実施形態に係る鍵生成装置２０の構成について説明するためのブロック図である。
【０３１７】
本実施形態に係る鍵生成装置２０は、例えば図１７に示したように、パラメータ決定部２５１と、双線形群選択部２５３と、鍵生成部２５５と、配布部２６１と、を主に備える。
【０３１８】
パラメータ決定部２５１は、本実施形態に係る鍵生成装置２０が公開鍵や秘密鍵等を生成するために用いる様々なパラメータを所定の方法に基づいて決定する。かかるパラメータの例として、例えば、Ｓｅｔｕｐ処理等で用いられる素数ｐやＧ、Ｈ、Ｖ、γ等を挙げることができる。パラメータ決定部２５１は、例えば素数ｐやＧ、Ｈ、γを決定する際に、例えば乱数等を利用して無作為に値を決定する。また、パラメータ決定部２５１は、後述する双線形群選択部２５３から伝送された各種双線形群や双線形写像ｅを利用して、パラメータを決定してもよい。パラメータ決定部２５１は、決定した各種パラメータを、後述する双線形群選択部２５３や鍵生成部２５５に伝送する。また、パラメータ決定部２５１は、決定した各種パラメータを、後述する記憶部２６７に記録してもよい。
【０３１９】
双線形群選択部２５３は、パラメータ決定部２５１から伝送されたパラメータである素数ｐを用いて、ｐを位数とする双線形写像群Ｇと、巡回乗法群Ｇ１を選択する。また、双線形群選択部２５３は、双線形写像ｅ：Ｇ×Ｇ→Ｇ１を決定する。双線形群選択部２５３は、選択した双線形群Ｇ、Ｇ１と、決定した双線形写像ｅとを、パラメータ決定部２５１および後述する鍵生成部２５５に伝送する。また、双線形群選択部２５３は、選択した双線形群Ｇ、Ｇ１と、決定した双線形写像ｅとを、後述する記憶部２６７に記録してもよい。
【０３２０】
鍵生成部２５５は、パラメータ決定部２５１および双線形群選択部２５３から伝送された各種データを利用して、公開鍵、各ユーザに配布される秘密鍵、マスター鍵、擬似秘密鍵等の鍵や、各ユーザに対応する公開情報等を生成する。鍵生成部２５５は、鍵算出部２５７と、擬似秘密鍵算出部２５９と、を更に備える。
【０３２１】
鍵生成部２５５は、パラメータ決定部２５１および双線形群選択部２５３から伝送された各種データを利用して、公開鍵、各ユーザに配布される秘密鍵およびマスター鍵と、各ユーザに対応する公開情報を生成する。生成された鍵および公開情報は、ＨＤＤやセキュアモジュールを備えたメモリ等から構成される記憶部に記録される。また、公開が必要な情報および配布する鍵類は、後述する配布部２６１へと伝送される。
【０３２２】
擬似密鍵算出部２５９は、パラメータ決定部２５１および双線形群選択部２５３から伝送された各種データを利用して、擬似秘密鍵ｄｋ０を生成する。生成された擬似秘密鍵は、後述する配布部２６１へと伝送されるとともに、ＨＤＤやセキュアモジュールを備えたメモリ等から構成される記憶部に記録される。
【０３２３】
配布部２６１は、鍵生成装置２０が生成した公開鍵、秘密鍵および擬似秘密鍵と、公開が必要な情報とを、通信網１２を介して配布する。かかる配布部２６１は、送受信部２６３と、公開鍵配布部２６５と、を更に備える。
【０３２４】
送受信部２６３は、鍵生成部２５５が生成した秘密鍵を、安全な通信路を介して個々のユーザに送信するとともに、受信装置４０から伝送されたシステム加入要求を受信する。受信されたシステム加入要求は鍵生成部２５５へと伝送され、鍵生成部２５５により新たな秘密鍵や公開鍵が生成される。
【０３２５】
公開鍵配布部２６１は、鍵生成部２５５が生成した公開鍵、擬似秘密鍵および公開情報を、通信網１２を介して暗号化装置３０や受信装置４０に配布する。暗号化装置３０や受信装置４０は、かかる公開鍵、擬似秘密鍵および公開情報を利用して、平文の暗号化処理や暗号文の復号処理を実行する。
【０３２６】
記憶部２６７には、パラメータ決定部２５１が決定した各種パラメータや、双線形群選択部２５３が選択した双線形群や双線形写像が記録される。また、記憶部２６７には、鍵生成部２５５が生成した各種鍵や公開情報が、秘密保持される。更に、これらの各種データ以外にも、鍵生成装置２０が、何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等を、適宜記憶することが可能である。この記憶部２６７は、パラメータ決定部２５１、双線形群選択部２５３、鍵生成部２５５、配布部２６１等が、自由に読み書きを行うことが可能である。
【０３２７】
＜本実施形態に係る暗号化装置３０について＞
続いて、図１８を参照しながら、本実施形態に係る暗号化装置３０について、詳細に説明する。図１８は、本実施形態に係る暗号化装置３０の構成について説明するためのブロック図である。
【０３２８】
本実施形態に係る暗号化装置３０は、例えば図１８に示したように、受信部３０１と、排除受信装置特定部３０３と、使用鍵特定部３０５と、セッション鍵決定部３０７と、双線形写像演算部３１３と、暗号化部３１５と、暗号文送信部３１７と、記憶部３１９と、を主に備える。また、本実施形態に係る暗号化装置３０は、更に、セッション鍵算出方法選択部３２１を備えても良い。
【０３２９】
受信部３０１は、鍵生成装置２０により生成され、公開された公開鍵および擬似秘密鍵と公開情報とを受信する。受信した公開鍵、擬似秘密鍵および公開情報は、後述する記憶部３１９に記録され、必要な際に読み出されて利用される。
【０３３０】
排除受信装置特定部３０３は、暗号化装置３０に通信網１２を介して接続されている複数の受信装置４０の中から、暗号文の配信を排除する受信装置を特定し、排除される受信装置の集合Ｒを決定する。集合Ｒの決定に際しては、排除受信装置特定部３０３は、後述する記憶部３１７に記憶されている様々なデータを参照することができる。決定された集合Ｒは、後述するセッション鍵決定部３０７に伝送され、配信するコンテンツ等の平文を暗号化するために用いられるセッション鍵等の算出に利用される。また、排除受信装置特定部３０３は、決定された集合Ｒを後述する記憶部３１９に記録してもよい。
【０３３１】
使用鍵特定部３０５は、後述する記憶部３１９を参照して、暗号化装置３０自体に個人秘密鍵が提供されているか否かを判定する。記憶部３１９に個人秘密鍵が記録されている場合には、使用鍵特定部３０５は、個人秘密鍵が存在する旨を後述するセッション鍵決定部３０５に出力する。また、記憶部３１９に個人秘密鍵が記録されていない場合には、使用鍵特定部３０５は、個人秘密鍵は存在せず擬似秘密鍵のみが存在する旨をセッション鍵決定部３０５に出力する。また、使用鍵特定部３０５は、判定結果を後述する記憶部３１９に記録して、次回以降の判定処理を省略するようにしてもよい。
【０３３２】
セッション鍵決定部３０７は、受信部３０１が受信し記憶部３１９に記録されている公開鍵、個人秘密鍵および公開情報と、排除受信装置特定部３０３が決定した集合Ｒと、使用鍵特定部３０５が出力した判定結果とに基づいて、配信するコンテンツ等の平文を暗号化するために用いられるセッション鍵等を決定する。このセッション鍵決定部３０７は、セッション鍵算出部３０９と、ヘッダ算出部３１１と、を更に備える。
【０３３３】
セッション鍵算出部３０９は、記憶部３１９から取得した公開鍵および公開情報と、排除受信装置特定部３０３から伝送される、排除される受信装置の集合Ｒと、使用鍵特定部３０５が出力した判定結果とに基づいて、配信するコンテンツ等の平文を暗号化するために利用するセッション鍵を算出する。セッション鍵算出部３０９が算出したセッション鍵は、後述する暗号化部３１５に伝送され、平文を暗号化する際に利用される。また、セッション鍵算出部３０９は、算出したセッション鍵を、記憶部３１９に記録してもよい。
【０３３４】
ヘッダ算出部３１１は、セッション鍵算出部３０９がセッション鍵を算出する際に計算した各種データと、記憶部３１９に記録されている公開鍵や公開情報等とを利用して、暗号文と同時に受信装置４０に配信されるヘッダを生成する。生成されたヘッダは、後述する暗号文送信部３１７へと伝送される。また、ヘッダ算出部３１１は、生成したヘッダ情報を、記憶部３１９に記録してもよい。
【０３３５】
双線形写像演算部３１３は、セッション鍵の算出の際に実行する必要がある双線形写像に関する演算を行う処理部である。双線形写像演算部３１３は、記憶部３１９に記録されている公開情報に含まれる双線形群Ｇ，Ｇ１と、セッション鍵決定部３０７から伝送されるデータとを用いて、双線形写像の演算を行う。演算結果は、セッション鍵決定部３０７に再度伝送され、セッション鍵やヘッダの算出に利用される。なお、双線形写像演算部３１３は、演算結果を記憶部３１９に記録してもよい。
【０３３６】
暗号化部３１５は、記憶部３１９等から配信するコンテンツ等の平文を取得し、セッション鍵決定部３０７で算出されたセッション鍵を用いて暗号化処理を行い、平文を暗号化する。暗号化された平文は、暗号文送信部３１７へと伝送される。また、暗号化部３１５は、暗号化した平文を、記憶部３１９に記録してもよい。
【０３３７】
暗号文送信部３１７は、暗号化部３１５によって暗号化された暗号文と、ヘッダ算出部３１１によって算出されたヘッダとを、通信網１２等を介して、各受信装置に同報配信する。
【０３３８】
記憶部３１９には、受信部３０１が受信した公開鍵、擬似秘密鍵および公開情報や、排除受信装置特定部３０３が決定した集合Ｒや、セッション鍵決定部３０７が算出したセッション鍵やヘッダ情報等が記録される。また、記憶部３１９には、これらの各種データ以外にも、暗号化装置３０が、何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等を、適宜記憶することが可能である。この記憶部３１９は、受信部３０１、排除受信装置特定部３０３、使用鍵特定部３０５、セッション鍵決定部３０７、双線形写像演算部３１３、暗号化部３１５、暗号文送信部３１７、セッション鍵算出方法選択部３２１等が、自由に読み書きを行うことが可能である。
【０３３９】
セッション鍵算出方法選択部３２１は、本実施形態に係る暗号化装置３０が複数のセッション鍵算出方法を記憶しており、複数のセッション鍵算出方法を適宜選択可能である場合に、排除される受信装置の台数に応じて利用するセッション鍵算出方法を選択する。セッション鍵算出方法の選択に際しては、排除される受信装置の台数と所定の閾値との比較を行って、選択するセッション鍵算出方法を決定してもよく、排除される受信装置の台数に基づいて、選択可能なセッション鍵算出方法に要する計算量をそれぞれ算出し、算出した計算量を比較することで、利用するセッション鍵算出方法を選択してもよい。
【０３４０】
＜本実施形態に係る受信装置４０について＞
続いて、図１９を参照しながら、本実施形態に係る受信装置４０について、詳細に説明する。図１９は、本実施形態に係る受信装置４０の構成について説明するためのブロック図である。
【０３４１】
本実施形態に係る受信装置４０は、例えば図１９に示したように、受信部４０１と、セッション鍵算出部４０３と、双線形写像演算部４０５と、復号部４０７と、記憶部４０９と、を主に備える。
【０３４２】
受信部４０１は、鍵生成装置２０により生成された秘密鍵、公開鍵および公開情報を受信する。また、受信部４０１は、暗号化装置３０によって暗号化された暗号文やヘッダ情報についても、受信することが可能である。受信部４０１は、鍵生成装置２０から受信した秘密鍵、公開鍵および公開情報と、暗号化装置３０から受信したヘッダを、後述するセッション鍵算出部４０３に伝送し、暗号化装置３０から受信した暗号文を、後述する復号部４０７に伝送する。なお、受信部４０１は、受信した秘密鍵、公開情報、暗号文、ヘッダ情報等を、後述する記憶部４０９に記録してもよい。
【０３４３】
セッション鍵算出部４０３は、鍵生成装置２０から取得した秘密鍵、公開鍵および公開情報と、暗号化装置３０から送信されたヘッダ等に基づいて、暗号化装置３０から配信された暗号文を復号化処理する際に利用するセッション鍵を算出する。セッション鍵算出部４０３は、算出したセッション鍵を、後述する復号部４０３に伝送する。また、セッション鍵算出部４０３は、算出したセッション鍵を、後述する記憶部４０９に記録してもよい。
【０３４４】
双線形写像演算部４０５は、セッション鍵の算出の際に実行する必要がある双線形写像に関する演算を行う処理部である。双線形写像演算部４０５は、公開情報に含まれる双線形群Ｇ，Ｇ１と、セッション鍵算出部４０３から伝送されるデータとを用いて、双線形写像の演算を行う。演算結果は、セッション鍵算出部４０３に再度伝送され、セッション鍵の算出に利用される。なお、双線形写像演算部４０５は、演算結果を記憶部４０９に記録してもよい。
【０３４５】
復号部４０７は、セッション鍵算出部４０３が算出したセッション鍵を利用して、暗号化装置３０から配信されたコンテンツ等の暗号文を復号化し、平文に変換する。復号部４０７は、取得した平文を、記憶部４０９に格納することが可能である。
【０３４６】
記憶部４０９には、受信部４０１が受信した秘密鍵、公開鍵および公開情報が記録される。また、記憶部４０９には、暗号化装置３０から送信された暗号文およびヘッダや、セッション鍵算出部４０３が算出したセッション鍵や、復号部４０７が復号化処理を行った平文等が記録されてもよい。さらに、記憶部４０９には、これらの各種データ以外にも、受信装置４０が、何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等を、適宜記憶することが可能である。この記憶部４０９は、受信部４０１、セッション鍵算出部４０３、双線形写像演算部４０５、復号部４０７等が、自由に読み書きを行うことが可能である。
【０３４７】
以上、本実施形態に係る鍵生成装置２０、暗号化装置３０および受信装置４０の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、ＣＰＵ等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
【０３４８】
＜鍵生成装置２０の動作：Ｓｅｔｕｐ’処理およびＪｏｉｎ’処理＞
センタは、所有する鍵生成装置２０を操作し、以下の手順に従って、公開鍵および公開情報と、各ユーザに対応する個人秘密鍵とを生成する。以下に、図２０および図２１を参照しながら、本実施形態に係る鍵生成装置２０の動作（すなわち、Ｓｅｔｕｐ’処理およびＪｏｉｎ’処理）について、詳細に説明する。図２０は、本実施形態に係る鍵生成処理を説明するための流れ図であり、図２１は、本実施形態に係るユーザ登録処理を説明するための流れ図である。
【０３４９】
（鍵生成装置２０におけるＳｅｔｕｐ’処理）
Ｓｅｔｕｐ’処理は、本実施形態に係る鍵生成装置２０を有するセンタがシステム構築時に一度だけ実行する鍵生成処理である。センタは、セキュリティパラメータλを決定し、鍵生成装置は、入力されたセキュリティパラメータλを用いて、以下に説明するＳｅｔｕｐ’処理を実行する。
【０３５０】
まず、鍵生成装置２０のパラメータ決定部２５１は、λ−ｂｉｔの素数ｐを生成し、次いで、双線形群選択部２５３は、ｐを位数とする双線形写像群Ｇおよび巡回乗法群Ｇ１を選択する（ステップＳ３０１）。
【０３５１】
次に、鍵生成装置２０の双線形群選択部２５３は、双線形写像ｅ：Ｇ×Ｇ→Ｇ１を決定する（ステップＳ３０２）。
【０３５２】
続いて、鍵生成装置２０のパラメータ決定部２５１は、Ｇ，Ｈ∈Ｇを選択する（ステップＳ３０３）。
【０３５３】
その後、鍵生成装置２０のパラメータ決定部２５１は、γ∈ＲＺｐ＊を選択し、Ｗ＝γＧ∈Ｇを計算する（ステップＳ３０４）。このようにして得られたγおよびＧは、センタのみがマスター鍵ｍｋ＝（γ，Ｇ）として秘密保持する。
【０３５４】
続いて、鍵生成装置２０のパラメータ決定部２５１は、ユーザ固有値として利用しない値ｕ０∈ＲＺｐ＊を選択し、擬似秘密鍵算出部２５９に出力する。擬似秘密鍵算出部２５９は、伝送されたｕ０に基づいて、以下の式２０１を用いて擬似秘密鍵ｄｋ０を算出する（ステップＳ３０５）。
【０３５５】
【数５９】
0005365072.tif 000062
【０３５６】
次に、鍵生成装置２０の鍵算出部２５７は、算出したデータを用いて、初期公開鍵ｅｋ０を以下のようにして構成する（ステップＳ３０６）。
【０３５７】
ｅｋ０＝｛ｐ，Ｇ，Ｇ１，ｅ，Ｗ，Ｈ，ｕ０，ｄｋ０｝  ・・・（式２０２）
【０３５８】
公開鍵の生成が終了すると、鍵生成装置２０の配布部２６１は、Ｓｅｔｕｐ処理の実行によって得られた擬似秘密鍵ｄｋ０および初期公開鍵ｅｋ０を、システム全体の初期公開鍵として公開する。
【０３５９】
（鍵生成装置２０におけるＪｏｉｎ’処理）
Ｊｏｉｎ’処理は、センタが、ユーザからのシステム加入要求がある毎に実行するユーザ登録処理である。この処理は、センタがシステム設定を終えた後に、任意のタイミングで実行されてよい。
【０３６０】
センタは、公開鍵ｅｋｉ―１（１≦ｉ≦ｎ）、マスター鍵ｍｋおよびｉ番目に加入したユーザのインデックスであるｉを鍵生成装置２０に入力し、以下に説明するＪｏｉｎ’処理を実行することで、システム加入要求を送信したユーザの秘密鍵を生成して、システムへの加入処理を行う。
【０３６１】
まず、鍵生成装置２０の鍵算出部２５７は、ユーザｉに固有の値である、ｕｉ∈Ｚｐ＊＼｛ｕ０｝を計算する（ステップＳ４０１）。その後、以下の式２０３に示す計算を行うことにより、鍵算出部２５７は、システム加入要求を送信したユーザｉの秘密鍵ｄｋｉを計算する（ステップＳ４０２）。
【０３６２】
【数６０】
0005365072.tif 000063
【０３６３】
ここで、上記式２０３におけるＢｉは、秘密鍵ｄｋｉの一部としているが、Ｂｉは秘密の情報ではなく公開情報であり、ユーザｉは、Ｂｉを秘密保持する必要はない。
【０３６４】
鍵生成装置３０の配布部２６１は、Ｊｏｉｎ’処理の実行によって得られたユーザｉの秘密鍵ｄｋｉを、安全な通信路を利用してユーザｉに秘密裏に送信すると共に、現在の公開鍵ｅｋｉ−１にユーザｉに対応する公開情報（ｕｉ，Ｂｉ）を追加し、公開鍵ｅｋｉとして更新、公開する。このとき、新たな公開鍵ｅｋｉは、以下の式２０４のような構成となっている。
【０３６５】
【数６１】
0005365072.tif 000064
【０３６６】
以上、本実施形態に係る鍵生成装置２０で実行されるＳｅｔｕｐ’処理およびＪｏｉｎ’処理について説明した。続いて、本実施形態に係る暗号化装置３０で実行される暗号化処理（Ｅｎｃｒｙｐｔｉｏｎ”処理）について、説明する。
【０３６７】
＜暗号化装置３０の動作：Ｅｎｃｒｙｐｔｉｏｎ”処理＞
コンテンツ等の平文を配信する配信者は、所有する暗号化装置３０を操作し、以下の手順に従って、暗号文とヘッダとを生成する。以下に、図２２を参照しながら、本実施形態に係る暗号化装置３０の動作について、詳細に説明する。図２２は、本実施形態に係る暗号化装置３０で実行される暗号化処理を説明するための流れ図である。
【０３６８】
Ｅｎｃｒｙｐｔｉｏｎ”処理は、コンテンツ等の配信を希望する任意の送信者が、暗号化装置３０を用いて、配信毎に実行する処理である。
【０３６９】
送信者は、公開鍵ｅｋｉ、排除されるユーザの集合Ｒ＝｛ｕＲ１，・・・ｕＲｒ｝を本実施形態に係る暗号化装置３０に入力し、以下に説明するＥｎｃｒｙｐｔｉｏｎ”処理を実行することで、配信したいコンテンツ等の平文に暗号化処理を行う。ユーザによって入力された集合Ｒは、暗号化装置３０の排除受信装置特定部３０３により、暗号化装置３０が利用可能なデジタルデータに変換され、Ｅｎｃｒｙｐｔｉｏｎ”処理に用いられる。
【０３７０】
また、暗号化装置３０の使用鍵特定部３０５は、暗号化装置３０が個人秘密鍵ｄｋｊを保持しているか否かを判定し、結果をセッション鍵決定部３０５に予め通知しておく。セッション鍵決定部３０５は、使用鍵特定部３０５から個人秘密鍵ｄｋｊが存在する旨の通知を受けた場合には、以下で説明する処理において、暗号化装置３０に固有の値であるｕｊと、暗号化装置３０に固有の秘密鍵であるｄｋｊを使用する。また、使用鍵特定部３０５から個人秘密鍵ｄｋｊが存在しない旨の通知を受けた場合には、セッション鍵決定部３０５は、以下で説明する処理において、擬似ユーザに固有の値であるｕ０と、擬似秘密鍵ｄｋ０を使用する。
【０３７１】
以下の説明では、ｕｊおよびｄｋｊを用いて式の表記を行うが、暗号化処理にｕ０およびｄｋ０を用いる場合には、式中のｕｊがｕ０となり、ｄｋｊがｄｋ０となる。
【０３７２】
暗号化装置３０の排除受信装置特定部３０３は、まず、Ｒの要素数をカウントして、カウント結果をｒとする（ステップＳ５０１）。続いて、排除受信装置特定部３０３は、集合Ｒにｕ０を追加して、ｒ＋１の値を新たにカウント結果ｒとする（ステップＳ５０２）。排除受信装置特定部３０３は、このカウント結果ｒをセッション鍵決定部３０７に出力する。
【０３７３】
次に、暗号化装置３０のセッション鍵算出部３０９は、ｋ∈Ｚｐ＊を選択する（ステップＳ５０３）。
【０３７４】
続いて、暗号化装置３０のセッション鍵算出部３０９は、排除されたユーザの数ｒについて、判定を行う（ステップＳ５０４）。ｒ＝１の場合（すなわち、排除されたユーザが一人だけの場合）には、後述するステップＳ５０５を実行する。また、ｒ≧２の場合（すなわち、排除されたユーザが２人以上存在する場合）には、後述するステップＳ５０６を実行する。
【０３７５】
排除されたユーザが一人である場合には、セッション鍵算出部３０９は、以下の式２０５および式２０６に基づいてＰｒおよびＫ’を決定し（ステップＳ５０５）、その後ステップＳ５０９を実行する。
【０３７６】
【数６２】
0005365072.tif 000065
【０３７７】
また、排除されたユーザが２人以上である場合には、セッション鍵算出部３０９は、双線形写像演算部３１３に対して、Ｇ上で双線形群の演算処理（Ａｇｇｒｅｇａｔｅ（Ｃ）アルゴリズム）を行い、以下の式２０７〜式２０９に示した値を計算するよう要請し、双線形写像演算部３１３は、Ａｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムを実行して、式２０７〜式２０９の値をセッション鍵算出部３０９に出力する（ステップＳ５０６）。なお、双線形群の演算処理アルゴリズムであるＡｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムについては、本発明の第１の実施形態に係るＡｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムと同一であるため、詳細な説明は省略する。
【０３７８】
【数６３】
0005365072.tif 000066
【０３７９】
ここで、上記式２０８および式２０９は、式２０７（Ｐｒ）を導出する際に、計算の途中経過として算出される値であり、従来方式では、式２０８および式２０９の値は、計算値として出力されるものではなかった。本実施形態に係る暗号化処理では、式２０８および式２０９の計算値を効果的に利用することで、暗号化時に必要となる計算量、すなわち計算時間または計算に必要となる機器のコストを削減することが可能となる。
【０３８０】
例えば、ｒ＝３の場合には、双線形写像演算部３１３は、上述のＡｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムを実行することで、Ｐ１，２、Ｐ１，３およびＰ２，３の３つの値を、演算結果としてセッション鍵算出部３０７に出力する。
【０３８１】
【数６４】
0005365072.tif 000067
【０３８２】
次に、セッション鍵算出部３０９は、双線形写像演算部３１３から出力された演算結果を利用して、以下の式２１０の値を算出する（ステップＳ５０７）。
【０３８３】
【数６５】
0005365072.tif 000068
【０３８４】
上記式２１０を展開すると、以下の式２１１のようになる。本実施形態に係るセッション鍵算出部３０９は、上記γＰｒを算出することで、Ｇ１上でのＡｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムが実行不要となり、Ａｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムの実行回数を１回に減らすことが可能となる。
【０３８５】
【数６６】
0005365072.tif 000069
【０３８６】
続いて、セッション鍵算出部３０９は、双線形写像演算部３１３の演算結果と、上記式２１１の値と、秘密鍵ｄｋｊまたはｄｋ０を用いて、以下の式２１２に示した値を計算する（ステップＳ５０８）。
【０３８７】
【数６７】
0005365072.tif 000070
・・・（式２１２）
【０３８８】
それぞれの場合について、ＰｒおよびＫ’の算出が終了すると、ヘッダ算出部３１１は、ヘッダｈｄｒを、以下の式２１３のようにして計算する（ステップＳ５０９）。
【０３８９】
【数６８】
0005365072.tif 000071
【０３９０】
次に、セッション鍵算出部３０７は、セッション鍵Ｋを以下の式２１４に基づいて計算し、ヘッダｈｄｒ、Ｋ’およびｋとともに出力する（ステップＳ５１０）。
【０３９１】
【数６９】
0005365072.tif 000072
【０３９２】
暗号化装置３０の暗号化部３１５は、平文Ｍのセッション鍵Ｋによる暗号文Ｃ＝ＥＫ（Ｍ）を生成し、暗号文送信部３１７は、（ｈｄｒ，Ｃ）を同報配信する。かかる処理を行うことで、送信者は、希望するユーザに対して暗号化されたコンテンツ等を送信することができる。
【０３９３】
なお、上記の処理に加えて、さらに平文Ｍの暗号化、または暗号化及び同報配信までをＥｎｃｒｙｐｔｉｏｎ”処理で実行する構成としてもよい。また、ステップＳ５０１およびステップＳ５０２は、送信者自身が実行し、Ｅｎｃｒｙｐｔｉｏｎ”処理を実行する暗号化装置３０に入力する形態をとってもよい。
【０３９４】
なお、Ｅｎｃｒｙｐｔｉｏｎ”処理においては、ｕＲ１は必ずｕ０となる。
【０３９５】
＜受信装置４０の動作：Ｄｅｃｒｙｐｔｉｏｎ処理＞
本実施形態に係る受信装置４０が実行するＤｅｃｒｙｐｔｉｏｎ処理は、本発明の第１の実施形態におけるＤｅｃｒｙｐｔｉｏｎ処理と同一であるため、詳細な説明は省略する。
【０３９６】
＜従来方式との相違点について＞
従来方式では、Ｐ１，・・・，Ｐｒを導出するために、ｒ≧２で場合には、ＥｎｃｒｙｐｔｉｏｎアルゴリズムにおけるステップＳ３６にて、Ｇ上の演算に対するＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムを実行する。その後、Ｋ’を導出するために、ステップＳ３７にてＧ１上の演算に対するＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムを実行している。
【０３９７】
これに対して、本実施形態に係る暗号化方法では、従来方式同様、Ｅｎｃｒｙｐｔｉｏｎ”アルゴリズムのステップＳ５０６にてＧ上の演算に対するＡｇｇｒｅｇａｔｅ（Ｃ）を実行しているが、Ｋ’導出には、ステップＳ５０７におけるＧ上の演算と、ステップＳ５０８におけるＧ１上の演算を利用し、Ａｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムを利用していない。ここで、Ａｇｇｒｅｇａｔｅ（Ａ）アルゴリズムとＡｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムは、ステップＳ５０およびステップＳ２１０における出力値が異なるのみであり、かつ、Ａｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムにおいて追加で出力されるＰｒ-２，ｒ-１、Ｐｒ-２，ｒは、Ｐｒを導出するために利用される値でもあるため、これらを追加出力したとしても、計算量はＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムと同じである。
【０３９８】
すなわち、秘密鍵ｄｋｊを持つユーザｊが暗号化を実行する際の計算は、従来方式ではＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズム実行回数が必ず二回となるのに対し、本実施形態に係る暗号化方法では、若干回数のＧ上での演算と一回の双線形写像演算が追加される代わりに、Ａｇｇｒｅｇａｔｅ（Ｃ）アルゴリズム実行回数が一回へと削減されている。また、Ｋ’導出に必要な計算量に関しては、従来方式ではｒが大きくなるにつれｒ２に比例して大きくなるのに対して、本実施形態に係る暗号化方法ではｒに関係なく、一定の計算量となっている点が大きく異なる。
【０３９９】
また、Ｓｅｔｕｐ処理およびＪｏｉｎ処理をそれぞれＳｅｔｕｐ’処理およびＪｏｉｎ’処理へと変更することによって擬似ユーザの秘密鍵（擬似秘密鍵）ｄｋ０を生成、公開し、Ｅｎｃｒｙｐｔｉｏｎ”処理では、常にＲに擬似ユーザに固有の値であるｕ０を追加することによって、秘密鍵を保持しないユーザであってもＥｎｃｒｙｐｔｉｏｎ”処理を実行可能としている。これにより、任意のユーザ、すなわち秘密鍵を保持しないユーザであっても、暗号化時に要する計算量を削減可能としている。
【０４００】
ここで、本実施形態に係る暗号化方式は、本発明の第１の実施形態におけるＥｎｃｒｙｐｔｉｏｎ’処理を、任意のｅｎｔｉｔｙが利用可能とするように変更したものであるため、暗号化時における計算量に関しては，任意のｅｎｔｉｔｙが、本発明の第１の実施形態に記載の暗号化時における計算量削減効果を得ることが可能である。なお、得られる削減効果の詳細に関しては、第１の実施形態に記載されているため、ここでは省略する。
【０４０１】
また、従来方式では、暗号化時にＧ上でのＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムの実行に加えて、Ｇ１上でのＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムの実行も必要となる。このとき、Ｇ１上でのＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムでは、Ｖｉを利用する必要があるため、Ｊｏｉｎ処理の実行時に、センタはＶｉを公開しておく必要がある。よって、ｎ人のユーザに対してＪｏｉｎ処理を実行した場合の公開鍵は、図２３に示したようなものとなり、システムパラメータを除いた要素数は、３ｎ＋３となる。
【０４０２】
これに対し、本実施形態に係る方式では、Ｓｅｔｕｐ’処理の実行により擬似ユーザの秘密鍵（擬似秘密鍵）ｄｋ０を公開しているため、任意のｅｎｔｉｔｙがＥｎｃｒｙｐｔｉｏｎ”処理を実行可能となり、Ｇ１上でのＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムを実行する必要がなくなる。そのため、センタはＶｉを公開する必要が無くなるため、Ｊｏｉｎ’処理では、Ｊｏｉｎ処理において必要であったＶｉの計算および出力が不要となる。これにより、ｎ人のユーザに対してＪｏｉｎ’処理を実行した場合の公開鍵は、図２３に示したようなものとなり、システムパラメータを除いた要素数は、２ｎ＋５となる。
【０４０３】
以上の説明より、３ｎ＋３≧２ｎ＋５、すなわち、ｎ≧２である場合には、従来方式と比較して、公開鍵サイズを削減可能であることがわかる。
【０４０４】
公開鍵における要素数に関しては、ｎ≧２を満たす場合には、本実施形態に係る方式が効果的であることを示した。しかしながら、公開鍵における各要素は、異なる群における元の集合であるため、安全性を確保するために必要となるビットサイズが異なる。よって以下では、具体的なビットサイズを想定した上で、公開鍵サイズの比較を行う。なお、以下では、１２８−ｂｉｔ等価安全性を満たす場合について考える。このとき、素数ｐのビットサイズは２５６−ｂｉｔとなり、Ｇ１の元のビットサイズは３０７２−ｂｉｔとなる。
【０４０５】
従来方式における公開鍵の各要素は、Ｗ，Ｈ，Ｂｉ（ｉ＝１，・・・，ｎ）が楕円曲線上の点、すなわち、Ｇの元であり、Ｖｉ（ｉ＝１，・・・，ｎ）がＧ１の元となっている。今、簡単のため各ユーザに固有の値であるｕｉ（ｉ＝１，・・・，ｎ）のビットサイズを３２−ｂｉｔとすると、従来方式における公開鍵のビットサイズは、以下の式２１５となる。
【０４０６】
【数７０】
0005365072.tif 000073
【０４０７】
これに対して、本実施形態に係る方式では、公開鍵のビットサイズは、以下の式２１６のようになる。
【０４０８】
【数７１】
0005365072.tif 000074
【０４０９】
ｎの増加に体得る各々の値を比較した結果を、図２４に示す。図２４から明らかなように、ビットサイズで比較した場合には、任意のｎに対して本実施形態に係る方式の方が、ビットサイズを低く抑えられることがわかる。
【０４１０】
（本実施形態に係る暗号化方法の変形例）
本実施形態に係る暗号化処理（Ｅｎｃｒｙｐｔｉｏｎ”処理）では、排除されるユーザの数が実質０、すなわち、擬似ユーザのみが排除されるユーザとなっている場合には、ステップＳ５０５において式２１２を用いてＫ’を算出している。しかしながら、以下のような方法を用いることで、ステップＳ５０５におけるＫ’の算出を削減することが可能である。
【０４１１】
すなわち、鍵生成装置２０におけるＳｅｔｕｐ’処理において、以下の式２１７を予め計算しておき、公開鍵に係る値を追加することによって、ステップＳ５０５におけるＫ’の算出を削減することが可能である。
【０４１２】
【数７２】
0005365072.tif 000075
【０４１３】
また、本実施形態に係るＥｎｃｒｙｐｔｉｏｎ”処理では、送信者が秘密鍵を保持していない場合は擬似秘密鍵ｄｋ０を利用し、ユーザである、すなわち、個人秘密鍵を保持している場合には、自身の秘密鍵を利用することとしている。しかしながら、秘密鍵を安全に保持するためには、秘密鍵の利用頻度を必要最低限にとどめることが望ましい。従って、送信者が個人秘密鍵を保持しているか否かにかかわらず、暗号化時には常に擬似秘密鍵を利用するように構成することも可能である。
【０４１４】
この場合、Ｅｎｃｒｙｐｔｉｏｎ”処理におけるステップＳ５０８の式２１２式を、以下の式２１８とすることが可能である。
【０４１５】
【数７３】
0005365072.tif 000076
【０４１６】
かかる方法を用いることで、ステップＳ５０８におけるＫ’の算出を削減することが可能である。
【０４１７】
また、本実施形態に係るＳｅｔｕｐ’処理中において、ステップＳ３０６では、以下の式２０２を初期公開鍵ｅｋ０として公開している。
【０４１８】
【数７４】
0005365072.tif 000077
【０４１９】
これに対し、以下の式２１９を計算し、初期公開鍵ｅｋ０を、以下の式２２０とする。かかる初期公開鍵を用いる場合には、以降Ｈの代わりに式２１９で算出したＨ０を利用することとする。かかる初期公開鍵を用いることで、Ｅｎｃｒｙｐｔｉｏｎ”処理におけるステップＳ５０２を省略することが可能となる。
【０４２０】
【数７５】
0005365072.tif 000078
【０４２１】
以上説明したように、本実施形態に係る方式によれば、従来方式において暗号化時に必要となるビット長が長い巡回群上での乗算、冪乗算、逆元演算を削除し、その代わりに１回の双線形写像演算（ｐａｉｒｉｎｇ）と楕円曲線上の点の演算等を若干数追加することによって、ユーザ、すなわち秘密鍵を保持するｅｎｔｉｔｙ（人、デバイス、サーバ等の動作主体）が暗号化を実行する際には、特にｒが増加するほど、暗号化時に必要となる計算量、すなわち計算時間または計算に必要となる機器のコストを削減可能となる。
【０４２２】
また、公開情報として、擬似秘密鍵を公開することで、従来方式において暗号化時に必要となるビット長が長い巡回群上の要素を公開する必要がなくなるため、公開鍵サイズの削減も実現可能となる。
【０４２３】
（第３の実施形態および第４の実施形態について）
ところで、従来方式では、任意のｅｎｔｉｔｙがヘッダを生成可能であるため、受信者がヘッダ作成者を確認することが不可能であるという問題があった。上記のような問題点を解決するためには、従来方式に加えて別途署名方式を利用することによって解決可能であるが、Ｂｒｏａｄｃａｓｔ  Ｅｎｃｒｙｐｔｉｏｎと署名を同時に実現する方式はこれまで存在しなかったため、Ｂｒｏａｄｃａｓｔ  Ｅｎｃｒｙｐｔｉｏｎ用の鍵と、署名生成用の鍵という二種類の秘密鍵を保持する必要があり、これらの秘密保持によるメモリ量が増加するという問題も存在した。
【０４２４】
そこで、以下に示す本発明の第３の実施形態および第４の実施形態では、受信者側における受信内容の改ざん検知および送信者の確認が可能となるとともに、受信者側が保持する鍵数の増加を抑制することが可能な鍵生成装置、暗号化装置、受信装置、鍵生成方法、暗号化方法、鍵処理方法およびプログラムを提供することを目的とする。
【０４２５】
本発明の第３の実施形態および第４の実施形態によれば、Ｂｒｏａｄｃａｓｔ  Ｅｎｃｒｙｐｔｉｏｎ用の鍵を利用して送信者認証用情報を生成し、生成した送信者認証用情報をヘッダ及び暗号文と共に配信することによって、受信者側における受信内容の改ざん検知および送信者の確認が可能となるとともに、受信者側が保持する鍵数の増加を抑制することが可能である。
【０４２６】
（第３の実施形態）
＜暗号鍵配信システムについて＞
以下に、本発明の第３の実施形態に係る暗号鍵配信システムについて、詳細に説明する。
【０４２７】
図２５は、本実施形態に係る暗号鍵配信システム１０を示した説明図である。暗号鍵配信システム１０は、例えば、通信網１２と、鍵生成装置２０と、暗号化装置３０と、受信装置４０Ａと、受信装置４０Ｂと、を含む。
【０４２８】
通信網１２は、鍵生成装置２０、暗号化装置３０および受信装置４０を双方向通信又は一方向通信可能に接続する通信回線網である。この通信網は、例えば、インターネット、電話回線網、衛星通信網、同報通信路等の公衆回線網や、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＩＰ−ＶＰＮ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ−Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）、ワイヤレスＬＡＮ等の専用回線網などで構成されており、有線／無線を問わない。
【０４２９】
鍵生成装置２０は、公開鍵と、複数の受信装置それぞれに固有の秘密鍵とを生成し、公開鍵を公開するとともに、各受信装置に対して、安全な通信路を介して、それぞれの秘密鍵を配信する。なお、この鍵生成装置２０は、公開鍵および秘密鍵の生成・管理を行うセンタが所有する。
【０４３０】
暗号化装置３０は、鍵生成装置２０によって生成および公開された公開鍵を用いて、任意のコンテンツを暗号化し、通信網１２を介して、各受信装置に配信する。この暗号化装置３０は、任意の第三者が所有することが可能であり、また、鍵生成装置２０の所有者や、受信装置４０の所有者が所有することも可能である。
【０４３１】
受信装置４０は、暗号化装置３０から配信された暗号化されたコンテンツを、固有の秘密鍵によって復号化して利用することが可能である。なお、受信装置４０Ａと受信装置４０Ｂとは、通信網１２または有線を介して互いに接続可能である。なお、この受信装置４０は、各契約者によって所有されるものである。
【０４３２】
なお、受信装置４０は、パーソナルコンピュータ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ：ＰＣ）等のコンピュータ装置（ノート型、デスクトップ型を問わない。）例に限定されず、ネットワークを介した通信機能を有する機器であれば、例えばＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、家庭用ゲーム機、ＤＶＤ／ＨＤＤレコーダ、Ｂｌｕ−ｒａｙレコーダ、テレビジョン受像器等の情報家電、テレビジョン放送用のチューナやデコーダなどで構成することもできる。また、受信装置４０は、契約者が持ち運びできるポータブルデバイス（Ｐｏｒｔａｂａｌｅ  Ｄｅｖｉｃｅ）、例えば、携帯型ゲーム機、携帯電話、携帯型映像／音声プレーヤ、ＰＤＡ、ＰＨＳなどであってもよい。
【０４３３】
＜鍵生成装置２０のハードウェア構成について＞
次に、本実施形態に係る鍵生成装置２０のハードウェア構成について、図２６を参照しながら簡単に説明する。
【０４３４】
図２６は、鍵生成装置２０のハードウェア構成を示したブロック図である。鍵生成装置２０は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０３と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０５と、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）２０７と、暗号処理部２０９と、メモリ（セキュアモジュール）２１１と、を主に備える。
【０４３５】
ＣＰＵ２０１は、演算処理装置および制御装置として機能し、ＲＯＭ２０３、ＲＡＭ２０５、ＨＤＤ２０７、またはリムーバブル記録媒体１４等に記録された各種プログラムに従って鍵生成装置２０内の動作全般を制御する。ＲＯＭ２０３は、ＣＰＵ２０１が使用するプログラムや演算パラメータ等を記憶する。ＲＡＭ２０５は、ＣＰＵ２０１の実行において使用するプログラムや、このプログラムの実行において適宜変化するパラメータ等を、一次記憶する。
【０４３６】
ＨＤＤ２０７は、本実施形態に係る鍵生成装置２０の記憶部の一例として構成されたデータ格納用の装置である。このＨＤＤ２０７は、ハードディスクを駆動し、ＣＰＵ２０１が実行するプログラムや各種データを格納する。暗号処理部２０９は、本実施形態に係る鍵生成装置２０がＣＰＵ２０１の制御のもとで実行する各種の暗号処理を実行する。メモリ（セキュアモジュール）２１１は、主に、個人秘密鍵や、センタ秘密である乱数等の秘匿が必要な情報を安全に格納するが、このメモリ２１１の内部に格納された情報は、外部から参照することができないという特徴がある。また、メモリ（セキュアモジュール）２１１は、例えば、耐タンパ性を有する記憶装置により構成されていてもよい。なお、セキュアモジュールはメモリである旨の記載をしているが、本発明に係るセキュアモジュールは、メモリに限定されるわけではなく、例えば、磁気ディスク、光ディスク、光磁気ディスクであってもよく、また、半導体メモリ等の記憶媒体であってもよい。
【０４３７】
上記のＣＰＵ２０１、ＲＯＭ２０３、ＲＡＭ２０５、ＨＤＤ２０７、暗号処理部２０９、および、メモリ２１１は、ＣＰＵバス等から構成されるバス２１３により、相互に接続されている。
【０４３８】
バス２１３は、ブリッジを介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バスなどの入出力インターフェース２１５に接続されている。
【０４３９】
入力装置２１７は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチおよびレバー等のユーザが操作する操作手段と、使用者による操作に基づいて入力信号を生成し、ＣＰＵ２０１に出力する入力制御回路等から構成されている。鍵生成装置２０の使用者は、この入力部２１７を操作することにより、鍵生成装置２０に対して各種のデータを入力したり処理動作を指示したりすることができる。
【０４４０】
出力装置２１９は、例えば、ＣＲＴディスプレイ装置、液晶ディスプレイ装置、プラズマディスプレイ装置、ＥＬディスプレイ装置およびランプ等の表示装置と、スピーカおよびヘッドホン等の音声出力装置等で構成される。出力部２１９は、例えば、再生されたコンテンツを出力することが可能である。具体的には、表示装置は、再生された映像データ等の各種情報を、テキストまたはイメージで表示する。一方、音声出力装置は、再生された音楽データ等を音声に変換して出力する。
【０４４１】
通信装置２２１は、例えば、通信網１２に接続するための通信デバイス等で構成された通信インターフェースである。この通信装置２２１は、例えば暗号化装置３０や受信装置４０Ａ、４０Ｂとの間で、通信網１２を介して、暗号鍵に関する情報や、コンテンツ情報等といった、各種データを送受信する。
【０４４２】
ドライブ２２３は、記憶媒体用リーダライタであり、鍵生成装置２０に内蔵、あるいは外付けされる。ドライブ２２３は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体１４に記録されている情報を読み出して、ＲＡＭ２０５に出力する。また、ドライブ２２３は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体１４に記録を書き込むことも可能である。リムーバブル記録媒体１４は、例えば、ＤＶＤメディア、ＨＤ−ＤＶＤメディア、Ｂｌｕ−ｒａｙメディア、コンパクトフラッシュ（登録商標）（ＣｏｍｐａｃｔＦｌａｓｈ：ＣＦ）、メモリースティック、または、ＳＤメモリカード（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ  ｍｅｍｏｒｙ  ｃａｒｄ）等である。また、リムーバブル記録媒体９２７は、例えば、非接触型ＩＣチップを搭載したＩＣカード（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  ｃａｒｄ）または電子機器等であってもよい。
【０４４３】
なお、暗号化装置３０および受信装置４０のハードウェア構成は、鍵生成装置２０のハードウェア構成と実質的に同一であるので、説明を省略する。
【０４４４】
以上、本実施形態に係る鍵生成装置２０、暗号化装置３０および受信装置４０の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。また、上記のハードウェア構成は、あくまでも一例であり、これに限定されるものでないことは言うまでもない。例えば、ＨＤＤ２０７とメモリ（セキュアモジュール）２１１とを同一の記憶装置により構成してもよい。また、利用形態によっては、バス２１３、または入出力インターフェース２１５等を省略する構成も可能である。以下、上記のようなハードウェア構成により実現される暗号鍵生成方式について詳述する。
【０４４５】
＜従来方式の問題点＞
ここで、先に説明したように、従来方式では、任意のｅｎｔｉｔｙによる暗号化と、送信者が指定したユーザ集合に属するユーザのみによる復号という、公開鍵Ｂｒｏａｄｃａｓｔ  Ｅｎｃｒｙｐｔｉｏｎ方式を実現している。しかしながら、ヘッダｈｄｒを生成したｅｎｔｉｔｙ自体の正当性を検証する手段が存在しないという問題点が存在する。
【０４４６】
例えば、従来方式を利用して、インターネットを経由するコンテンツ配信システムにおいて、システムにおけるデバイスのアップデート用ファームウェアもコンテンツ同様の方法により暗号化し、配信する場合を考える。このような場合、従来方式の安全性により、ファームウェアの内容自体は送信者が指定したユーザ以外のｅｎｔｉｔｙが知ることはできない。しかしながら、従来方式を利用した場合には、送信者認証機能が付加されていないため、送信されたヘッダｈｄｒおよび暗号化されたファームウェアが、正しいｅｎｔｉｔｙ（デバイスの製造元等）によって作成されたものかどうかを、デバイス自身が判断不可能である。仮に、送信者を確認せずにｈｄｒを復号し、そこで得られたセッション鍵を利用して暗号化されたファームウェアを復号および実行した場合、ヘッダｈｄｒおよびセッション鍵Ｋは任意のｅｎｔｉｔｙが生成可能であるため、悪意のあるｅｎｔｉｔｙによって生成された不正なファームウェアであっても実行してしまうという問題（第１の問題点）が存在する。
【０４４７】
上記のような問題点を回避するためには、通常、センタが各ユーザに対して従来方式における秘密鍵とは別に署名・検証用鍵ペアを提供し、ヘッダ送信時には、送信者がセッション鍵および暗号文と共にその署名を生成した後、ヘッダ、暗号文と共に配信する。受信者は、送信者の検証用鍵を利用してセッション鍵、暗号文および署名の正当性を検証し、検証に成功すれば、正当なユーザからのヘッダおよび暗号文であるとして復号する。このように構成することで前述の問題点は回避可能となるが、この場合には、各ユーザが従来方式における秘密鍵以外に、署名・検証用の鍵ペアを保持する必要がある。その結果、ユーザが所持するデバイスでは、保持する情報量、すなわちメモリ量が増加するという問題（第２の問題点）が存在する。
【０４４８】
そこで、本願発明者らは、上述の問題点を解決すべく鋭意研究を行い、以下に説明するような、本発明の一実施形態に係る暗号鍵配信システムを開発した。
【０４４９】
＜本実施形態に係る説明＞
これまで説明したような基盤技術を踏まえながら、以下において、本発明の第３の実施形態に係る鍵生成装置２０、暗号化装置３０および受信装置４０について、詳細に説明する。
【０４５０】
本実施形態に係る暗号鍵配信システム１０では、従来方式におけるＳｅｔｕｐアルゴリズムをＳｅｔｕｐ”アルゴリズムへと変更すると共に、ヘッダ署名用の処理として送信者認証用情報生成処理を追加するとともに、ヘッダ検証用の処理として受信内容検証処理を追加するものである。
【０４５１】
よって、Ｊｏｉｎ処理、Ｅｎｃｒｙｐｔｉｏｎ処理、Ｄｅｃｒｙｐｔｉｏｎ処理、Ｅｎｃｒｙｐｔｉｏｎ処理において利用されるＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズム、および、Ｄｅｃｒｙｐｔｉｏｎ処理において利用されるＡｇｇｒｅｇａｔｅ（Ｂ）アルゴリズムに関しては、従来方式と同一のものを使用する。
【０４５２】
＜本実施形態に係る鍵生成装置２０について＞
まず、図２７を参照しながら、本実施形態に係る鍵生成装置２０について、詳細に説明する。図２７は、本実施形態に係る鍵生成装置２０の構成について説明するためのブロック図である。
【０４５３】
本実施形態に係る鍵生成装置２０は、例えば図２７に示したように、パラメータ決定部１２５１と、双線形群選択部１２５３と、鍵生成部１２５５と、配布部１２６１と、記憶部１２６７と、を主に備える。
【０４５４】
パラメータ決定部１２５１は、本実施形態に係る鍵生成装置２０が公開鍵や秘密鍵等を生成するために用いる様々なパラメータを所定の方法に基づいて決定する。かかるパラメータの例として、例えば、Ｓｅｔｕｐ処理等で用いられる素数ｐやＧ、Ｈ、Ｖ、γ等を挙げることができる。パラメータ決定部２５１は、例えば素数ｐやＧ、Ｈ、γを決定する際に、例えば乱数等を利用して無作為に値を決定する。また、パラメータ決定部１２５１は、後述する双線形群選択部１２５３から伝送された各種双線形群や双線形写像ｅを利用して、パラメータを決定してもよい。パラメータ決定部１２５１は、決定した各種パラメータを、後述する双線形群選択部１２５３や鍵生成部１２５５に伝送する。また、パラメータ決定部１２５１は、決定した各種パラメータを、後述する記憶部１２６７に記録してもよい。
【０４５５】
双線形群選択部１２５３は、パラメータ決定部１２５１から伝送されたパラメータである素数ｐを用いて、ｐを位数とする双線形写像群Ｇと、巡回乗法群Ｇ１を選択する。また、双線形群選択部１２５３は、双線形写像ｅ：Ｇ×Ｇ→Ｇ１を決定する。双線形群選択部１２５３は、選択した双線形群Ｇ、Ｇ１と、決定した双線形写像ｅとを、パラメータ決定部１２５１および後述する鍵生成部１２５５に伝送する。また、双線形群選択部１２５３は、選択した双線形群Ｇ、Ｇ１と、決定した双線形写像ｅとを、後述する記憶部１２６７に記録してもよい。
【０４５６】
鍵生成部１２５５は、パラメータ決定部１２５１および双線形群選択部１２５３から伝送された各種データを利用して、公開鍵、各ユーザに配布される秘密鍵、マスター鍵等の鍵や、各ユーザに対応する公開情報等を生成する。生成された鍵や公開情報は、ＨＤＤやセキュアモジュールを備えたメモリ等から構成される記憶部に記録される。また、公開が必要な情報および配布する鍵類は、後述する配布部１２６１へと伝送される。
【０４５７】
配布部１２６１は、鍵生成装置２０が生成した公開鍵および秘密鍵と、公開が必要な情報とを、通信網１２を介して配布する。かかる配布部１２６１は、送受信部１２６３と、公開鍵配布部１２６５と、を更に備える。
【０４５８】
送受信部１２６３は、鍵生成部１２５５が生成した秘密鍵を、安全な通信路を介して個々のユーザに送信するとともに、受信装置４０から伝送されたシステム加入要求を受信する。受信されたシステム加入要求は鍵生成部１２５５へと伝送され、鍵生成部１２５５により新たな秘密鍵や公開鍵が生成される。
【０４５９】
公開鍵配布部１２６５は、鍵生成部１２５５が生成した公開鍵や公開情報を、通信網１２を介して暗号化装置３０や受信装置４０に配布する。暗号化装置３０や受信装置４０は、かかる公開鍵や公開情報を利用して、平文の暗号化処理や暗号文の復号処理を実行する。
【０４６０】
記憶部１２６７には、パラメータ決定部１２５１が決定した各種パラメータや、双線形群選択部１２５３が選択した双線形群や双線形写像が記録される。また、記憶部１２６７には、鍵生成部１２５５が生成した各種鍵や公開情報が、秘密保持される。更に、これらの各種データ以外にも、鍵生成装置２０が、何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等を、適宜記憶することが可能である。この記憶部１２６７は、パラメータ決定部１２５１、双線形群選択部１２５３、鍵生成部１２５５、配布部１２６１等が、自由に読み書きを行うことが可能である。
【０４６１】
＜本実施形態に係る暗号化装置３０について＞
続いて、図２８を参照しながら、本実施形態に係る暗号化装置３０について、詳細に説明する。図２８は、本実施形態に係る暗号化装置３０の構成について説明するためのブロック図である。
【０４６２】
本実施形態に係る暗号化装置３０は、例えば図２８に示したように、受信部１３０１と、排除受信装置特定部１３０３と、セッション鍵決定部１３０７と、双線形写像演算部１３１３と、暗号化部１３１５と、暗号文送信部１３１７と、記憶部１３１９と、送信者認証用情報生成部１３２１と、を主に備える。
【０４６３】
受信部１３０１は、鍵生成装置２０により生成され、公開された公開鍵と公開情報とを受信する。受信した公開鍵および公開情報は、後述する記憶部１３１９に記録され、必要な際に読み出されて利用される。
【０４６４】
排除受信装置特定部１３０３は、暗号化装置３０に通信網１２を介して接続されている複数の受信装置４０の中から、暗号文の配信を排除する受信装置を特定し、排除される受信装置の集合Ｒを決定する。集合Ｒの決定に際しては、排除受信装置特定部１３０３は、後述する記憶部１３１９に記憶されている様々なデータを参照することができる。決定された集合Ｒは、後述するセッション鍵決定部１３０７に伝送され、配信するコンテンツ等の平文を暗号化するために用いられるセッション鍵等の算出に利用される。また、排除受信装置特定部１３０３は、決定された集合Ｒを後述する記憶部１３１９に記録してもよい。
【０４６５】
セッション鍵決定部１３０７は、受信部１３０１が受信し記憶部１３１９に記録されている公開鍵および公開情報と、排除受信装置特定部１３０３が決定した集合Ｒ等とに基づいて、配信するコンテンツ等の平文を暗号化するために用いられるセッション鍵等を決定する。このセッション鍵決定部１３０７は、セッション鍵算出部１３０９と、ヘッダ算出部１３１１と、を更に備える。
【０４６６】
セッション鍵算出部１３０９は、記憶部１３１９から取得した公開鍵および公開情報と、排除受信装置特定部１３０３から伝送される、排除される受信装置の集合Ｒ等と、に基づいて、配信するコンテンツ等の平文を暗号化するために利用するセッション鍵を算出する。セッション鍵算出部１３０９が算出したセッション鍵は、後述する暗号化部１３１５に伝送され、平文を暗号化する際に利用される。また、セッション鍵算出部１３０９が算出したセッション鍵と、セッション鍵の算出の際に用いられた各種パラメータは、後述する送信者認証用情報生成部１３２１に伝送され、送信者認証用情報の生成に利用される。なお、セッション鍵算出部１３０９は、算出したセッション鍵を、記憶部１３１９に記録してもよい。
【０４６７】
ヘッダ算出部１３１１は、セッション鍵算出部１３０９がセッション鍵を算出する際に計算した各種データと、記憶部１３１９に記録されている公開鍵や公開情報等とを利用して、暗号文と同時に受信装置４０に配信されるヘッダを生成する。生成されたヘッダは、後述する暗号文送信部１３１７および送信者認証用情報生成部１３２１へと伝送される。また、ヘッダ算出部１３１１は、生成したヘッダ情報を、記憶部１３１９に記録してもよい。
【０４６８】
双線形写像演算部１３１３は、セッション鍵の算出の際および送信者認証用情報の生成の際に実行する必要がある双線形写像に関する演算を行う処理部である。セッション鍵の算出に際して、双線形写像演算部１３１３は、記憶部１３１９に記録されている公開情報に含まれる双線形群Ｇ，Ｇ１および層線形写像ｅと、セッション鍵決定部１３０７から伝送されるデータとを用いて、双線形写像の演算を行う。演算結果は、セッション鍵決定部１３０７に再度伝送され、セッション鍵やヘッダの算出に利用される。
【０４６９】
また、送信者認証用情報の生成に際して、双線形写像演算部１３１３は、記憶部１３１９に記録されている公開情報に含まれる双線形群Ｇ，Ｇ１および層線形写像ｅと、後述する送信者認証用情報生成部１３２１から伝送されるデータとを用いて、双線形写像の演算を行う。演算結果は、送信者認証用情報生成部１３２１に再度伝送され、送信者認証用情報の生成に利用される。
【０４７０】
なお、双線形写像演算部１３１３は、演算結果を記憶部１３１９に記録してもよい。
【０４７１】
暗号化部１３１５は、記憶部１３１９等から配信するコンテンツ等の平文を取得し、セッション鍵決定部１３０７で算出されたセッション鍵を用いて暗号化処理を行い、平文を暗号化する。暗号化された平文は、暗号文送信部１３１７と送信者認証用情報生成部１３２１へと伝送される。また、暗号化部１３１５は、暗号化した平文を、記憶部１３１９に記録してもよい。
【０４７２】
暗号文送信部１３１７は、暗号化部１３１５によって暗号化された暗号文と、ヘッダ算出部１３１１によって算出されたヘッダと、後述する送信者認証用情報生成部１３２１によって生成された送信者認証用情報とを、通信網１２等を介して、各受信装置に同報配信する。
【０４７３】
記憶部１３１９には、受信部１３０１が受信した公開鍵および公開情報や、排除受信装置特定部１３０３が決定した集合Ｒや、セッション鍵決定部１３０７が算出したセッション鍵やヘッダ情報等が記録される。また、記憶部１３１９には、これらの各種データ以外にも、暗号化装置３０が、何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等を、適宜記憶することが可能である。この記憶部１３１９は、受信部１３０１、排除受信装置特定部１３０３、セッション鍵決定部１３０７、双線形写像演算部１３１３、暗号化部１３１５、暗号文送信部１３１７、送信者認証用情報生成部１３２１等が、自由に読み書きを行うことが可能である。
【０４７４】
送信者認証用情報生成部１３２１は、セッション鍵算出部１３０９から伝送されたセッション鍵および算出に用いられたパラメータと、ヘッダ算出部１３１１から伝送されたヘッダと、暗号化部１３１５から伝送された暗号文と、公開鍵および公開情報と、暗号化装置に固有の値および秘密鍵と、を利用して、送信者認証用情報を生成する。この送信者認証用情報は、受信者が受信装置において、送信された暗号文およびヘッダの改ざんの有無と、送信者の正当性とを検証するために用いられる情報である。送信者認証用情報生成部１３２１は、この送信者認証用情報を生成する際に、双線形写像演算部１３１３を利用してもよい。生成された送信者認証用情報は、暗号文送信部１３１７へと伝送され、ヘッダおよび暗号文とともに、各受信装置に同報配信される。また、送信者認証用情報生成部１３２１は、生成した送信者認証用情報を、記憶部１３１９に記録してもよい。
【０４７５】
＜本実施形態に係る受信装置４０について＞
続いて、図２９を参照しながら、本実施形態に係る受信装置４０について、詳細に説明する。図２９は、本実施形態に係る受信装置４０の構成について説明するためのブロック図である。
【０４７６】
本実施形態に係る受信装置４０は、例えば図２９に示したように、受信部１４０１と、セッション鍵算出部１４０３と、双線形写像演算部１４０５と、受信内容検証部１４０７と、復号部１４０９と、記憶部１４１１と、を主に備える。
【０４７７】
受信部１４０１は、鍵生成装置２０により生成された秘密鍵、公開鍵および公開情報を受信する。また、受信部１４０１は、暗号化装置３０によって暗号化された暗号文、ヘッダ情報および送信者認証用情報についても、受信することが可能である。受信部１４０１は、鍵生成装置２０から受信した秘密鍵、公開鍵および公開情報と、暗号化装置３０から受信したヘッダを、後述するセッション鍵算出部１４０３に伝送する。また、受信部１４０１は、暗号化装置３０から受信した暗号文、ヘッダおよび送信者認証用情報を、後述する受信内容検証部１４０７に伝送する。さらに、受信部１４０１は、暗号化装置３０から受信した暗号文を、後述する復号部１４０９に伝送する。なお、受信部１４０１は、受信した秘密鍵、公開情報、暗号文、ヘッダ情報、送信者認証用情報等を、後述する記憶部１４１１に記録してもよい。
【０４７８】
セッション鍵算出部１４０３は、鍵生成装置２０から取得した秘密鍵、公開鍵および公開情報と、暗号化装置３０から送信されたヘッダ等に基づいて、暗号化装置３０から配信された暗号文を復号化処理する際に利用するセッション鍵を算出する。セッション鍵算出部１４０３は、算出したセッション鍵を、後述する受信内容検証部１４０７および復号部１４０９に伝送する。また、セッション鍵算出部１４０３は、算出したセッション鍵を、後述する記憶部１４１１に記録してもよい。
【０４７９】
双線形写像演算部１４０５は、セッション鍵の算出および受信内容の検証の際に実行する必要がある双線形写像に関する演算を行う処理部である。双線形写像演算部１４０５は、公開情報に含まれる双線形群Ｇ，Ｇ１と、セッション鍵算出部１４０３から伝送されるデータとを用いて、双線形写像の演算を行う。演算結果は、セッション鍵算出部１４０３に再度伝送され、セッション鍵の算出に利用される。
【０４８０】
また、受信内容の検証に際して、双線形写像演算部１４０５は、記憶部１４１１に記録されている公開情報に含まれる双線形群Ｇ，Ｇ１および層線形写像ｅと、後述する受信内容検証部１４０７から伝送されるデータとを用いて、双線形写像の演算を行う。演算結果は、受信内容検証部１４０７に再度伝送され、受信内容の検証に利用される。
【０４８１】
なお、双線形写像演算部１４０５は、演算結果を記憶部１４１１に記録してもよい。
【０４８２】
受信内容検証部１４０７は、セッション鍵算出部１４０３で算出したセッション鍵と、暗号化装置３０から送信されたヘッダ、暗号文および送信者認証用情報とに基づいて、送信者の正当性と、受信した内容に施された改ざんの有無とを検証する。受信内容検証部１４０７は、検証処理を行う際に、双線形写像演算部１４０５を利用してもよい。受信内容検証部１４０７は、検証結果を、後述する復号部１４０９に出力する。また、受信内容検証部１４０７は、検証結果を、後述する記憶部１４１１に記録してもよい。
【０４８３】
復号部１４０９は、セッション鍵算出部１４０３が算出したセッション鍵を利用して、暗号化装置３０から配信されたコンテンツ等の暗号文を復号化し、平文に変換する。復号部１４０９により行われる復号化処理は、受信内容検証部１４０７から伝送される検証結果に応じて行われてもよい。すなわち、復号部１４０９は、受信内容検証部１４０７から受信内容の検証が成功した旨の通知を受けた場合に復号化処理を実行し、検証が失敗した旨の通知を受けた場合には復号化処理を実行しないようにすることが可能である。復号部１４０９は、取得した平文を、記憶部１４１１に格納することが可能である。
【０４８４】
記憶部１４１１には、受信部１４０１が受信した秘密鍵、公開鍵および公開情報が記録される。また、記憶部１４１１には、暗号化装置３０から送信された暗号文、ヘッダおよび送信者認証用情報や、セッション鍵算出部１４０３が算出したセッション鍵や、復号部１４０９が復号化処理を行った平文等が記録されてもよい。さらに、記憶部１４１１には、これらの各種データ以外にも、受信装置４０が、何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等を、適宜記憶することが可能である。この記憶部１４１１は、受信部１４０１、セッション鍵算出部１４０３、双線形写像演算部１４０５、受信内容検証部１４０７、復号部１４０９等が、自由に読み書きを行うことが可能である。
【０４８５】
以上、本実施形態に係る鍵生成装置２０、暗号化装置３０および受信装置４０の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、ＣＰＵ等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
【０４８６】
＜鍵生成装置２０の動作：Ｓｅｔｕｐ”処理およびＪｏｉｎ処理＞
センタは、所有する鍵生成装置２０を操作し、以下の手順に従って、公開鍵および公開情報と、各ユーザに対応する個人秘密鍵とを生成する。なお、本実施形態に係る鍵生成装置２０が実行するＪｏｉｎ処理は、従来方法におけるＪｏｉｎ処理と同一であるため、図４を参照しながら、本実施形態に係る鍵生成装置２０のＪｏｉｎ処理について、詳細に説明する。また、本実施形態に係る鍵生成装置２０が実行するＳｅｔｕｐ”処理については、図３０を参照しながら、詳細に説明する。図３０は、本実施形態に係るＳｅｔｕｐ”処理を説明するための流れ図である。
【０４８７】
［鍵生成装置２０におけるＳｅｔｕｐ”処理］
Ｓｅｔｕｐ”処理は、本実施形態に係る鍵生成装置２０を有するセンタがシステム構築時に一度だけ実行する鍵生成処理である。センタは、セキュリティパラメータλを決定し、鍵生成装置は、入力されたセキュリティパラメータλを用いて、以下に説明するＳｅｔｕｐ”処理を実行する。
【０４８８】
まず、鍵生成装置２０のパラメータ決定部１２５１は、λ−ｂｉｔの素数ｐを生成し、次いで、双線形群選択部１２５３は、ｐを位数とする双線形写像群Ｇおよび巡回乗法群Ｇ１を選択する（ステップＳ１１０１）。
【０４８９】
次に、鍵生成装置２０の双線形群選択部１２５３は、双線形写像ｅ：Ｇ×Ｇ→Ｇ１を決定する（ステップＳ１１０２）。
【０４９０】
続いて、鍵生成装置２０のパラメータ決定部１２５１は、Ｇ，Ｈ∈Ｇを選択して、Ｖ＝ｅ（Ｇ，Ｈ）∈Ｇ１を計算する（ステップＳ１１０３）。
【０４９１】
その後、鍵生成装置２０のパラメータ決定部１２５１は、γ∈ＲＺｐ＊を選択し、鍵生成装置２０の鍵生成部１２５５は、Ｗ＝γＧ∈ＧおよびＸ＝γＨ∈Ｇを計算する（ステップＳ１１０４）。このようにして得られたγおよびＧは、センタのみがマスター鍵ｍｋ＝（γ，Ｇ）として秘密保持する。
【０４９２】
次に、鍵生成装置２０の鍵生成部１２５５は、算出したデータを用いて、初期公開鍵ｅｋ０を以下のようにして構成する（ステップＳ１１０５）。
【０４９３】
ｅｋ０＝｛ｐ，Ｇ，Ｇ１，ｅ，Ｗ，Ｈ，Ｖ，Ｘ｝  ・・・（式３０１）
【０４９４】
公開鍵の生成が終了すると、鍵生成装置２０の配布部１２６１は、Ｓｅｔｕｐ”処理の実行によって得られた初期公開鍵ｅｋ０を、システム全体の初期公開鍵として公開する。
【０４９５】
本実施形態に係る鍵生成装置２０は、公開情報として、Ｘ＝γＨ∈Ｇを公開するため、暗号化装置３０において暗号化処理を実行する際に、排除する受信装置がない場合（すなわち、全ての受信装置に対して送信を行う場合）の処理を簡略化することが可能となる。
【０４９６】
［鍵生成装置２０におけるＪｏｉｎ処理］
Ｊｏｉｎ処理は、センタが、ユーザからのシステム加入要求がある毎に実行するユーザ登録処理である。この処理は、センタがシステム設定を終えた後に、任意のタイミングで実行されてよい。
【０４９７】
センタは、公開鍵ｅｋｉ―１（１≦ｉ≦ｎ）、マスター鍵ｍｋおよびｉ番目に加入したユーザのインデックスであるｉを鍵生成装置２０に入力し、以下に説明するＪｏｉｎ処理を実行することで、システム加入要求を送信したユーザの秘密鍵を生成して、システムへの加入処理を行う。
【０４９８】
まず、鍵生成装置２０の鍵生成部１２５５は、ユーザｉに固有の値である、ｕｉ∈Ｚｐ＊を計算する（ステップＳ２１）。その後、以下の式３０２に示す計算を行うことにより、鍵生成部１２５５は、システム加入要求を送信したユーザｉの秘密鍵ｄｋｉを計算する（ステップＳ２２）。
【０４９９】
【数７６】
0005365072.tif 000079
【０５００】
ここで、上記式３０２におけるＢｉは、秘密鍵ｄｋｉの一部としているが、Ｂｉは秘密の情報ではなく公開情報であり、ユーザｉは、Ｂｉを秘密保持する必要はない。
【０５０１】
次に、鍵生成装置２０の鍵生成部１２５５は、ユーザｉに対応する公開情報を以下の式３０３のようにして計算し、ｄｋｉおよび（ｕｉ，Ｖｉ）を得る（ステップＳ２３）。
【０５０２】
【数７７】
0005365072.tif 000080
【０５０３】
鍵生成装置２０の配布部１２６１は、Ｊｏｉｎ処理の実行によって得られたユーザｉの秘密鍵ｄｋｉを、安全な通信路を利用してユーザｉに秘密裏に送信すると共に、現在の公開鍵ｅｋｉ−１にユーザｉに対応する公開情報（ｕｉ，Ｂｉ，Ｖｉ）を追加し、公開鍵ｅｋｉとして更新、公開する。このとき、新たな公開鍵ｅｋｉは、以下の式３０４のような構成となっている。
【０５０４】
【数７８】
0005365072.tif 000081
【０５０５】
以上、本実施形態に係る鍵生成装置２０で実行されるＳｅｔｕｐ”処理およびＪｏｉｎ処理について説明した。続いて、本実施形態に係る暗号化装置３０で実行される暗号化処理（Ｅｎｃｒｙｐｔｉｏｎ処理）および送信者認証用情報の生成処理（Ｓｉｇｎ処理）について、説明する。
【０５０６】
＜暗号化装置３０の動作：Ｅｎｃｒｙｐｔｉｏｎ処理およびＳｉｇｎ処理＞
コンテンツ等の平文を配信する配信者は、所有する暗号化装置３０を操作し、以下の手順に従って、暗号文とヘッダとを生成する。なお、本実施形態に係る暗号化装置３０が実行するＥｎｃｒｙｐｔｉｏｎ処理は、従来方法におけるＥｎｃｒｙｐｔｉｏｎ処理と同一であるため、図５を参照しながら、本実施形態に係る暗号化装置３０のＥｎｃｒｙｐｔｉｏｎ処理について、詳細に説明する。また、配信者は、暗号化装置３０を操作して、受信装置４０において生成した暗号文とヘッダの正当性および改ざんの有無の検証に用いられる送信者認証用情報を、以下の手順に従って生成する。図３１は、本実施形態に係る暗号化装置３０が送信者認証用情報を生成する際に実行するＳｉｇｎ処理を説明するための流れ図である。
【０５０７】
［暗号化装置３０におけるＥｎｃｒｙｐｔｉｏｎ処理］
Ｅｎｃｒｙｐｔｉｏｎ処理は、コンテンツ等の配信を希望する任意の送信者が、暗号化装置３０を用いて、配信毎に実行する処理である。
【０５０８】
送信者は、公開鍵ｅｋｉ、排除されるユーザの集合Ｒ＝｛ｕＲ１，・・・ｕＲｒ｝を暗号化装置に入力し、以下に説明するＥｎｃｒｙｐｔｉｏｎ処理を実行することで、配信したいコンテンツ等の平文に暗号化処理を行う。
【０５０９】
暗号化装置３０の排除受信装置特定部１３０３は、まず、Ｒの要素数をカウントして、カウント結果をｒとし（ステップＳ３１）、カウント結果ｒをセッション鍵決定部１３０７に出力する。次に、暗号化装置３０のセッション鍵算出部１３０９は、ｋ∈Ｚｐ＊を選択する（ステップＳ３２）。
【０５１０】
続いて、暗号化装置３０のセッション鍵算出部１３０９は、排除されたユーザの数ｒについて、判定を行う（ステップＳ３３）。ｒ＝０の場合（すなわち、排除されたユーザが誰もいない場合）には、セッション鍵算出部１３０９は、後述するステップＳ３４を実行する。また、ｒ＝１の場合（すなわち、排除されたユーザが一人だけの場合）には、後述するステップＳ３５を実行する。また、ｒ≧２の場合（すなわち、排除されたユーザが２人以上存在する場合）には、後述するステップＳ３６を実行する。
【０５１１】
排除されたユーザが誰もいない場合には、セッション鍵算出部１３０９は、以下の式３０５および式３０６に基づいて、ＰｒおよびＫ’を決定し（ステップＳ３４）、その後ステップＳ３８を実行する。
【０５１２】
【数７９】
0005365072.tif 000082
【０５１３】
また、排除されたユーザが一人である場合には、セッション鍵算出部１３０９は、以下の式３０７および式３０８に基づいてＰｒおよびＫ’を決定し（ステップＳ３５）、その後ステップＳ３８を実行する。
【０５１４】
【数８０】
0005365072.tif 000083
【０５１５】
また、排除されたユーザが２人以上である場合には、セッション鍵算出部１３０９は、双線形写像演算部１３１３に対して、Ｇ上の演算における双線形群の演算処理（Ａｇｇｒｅｇａｔｅ（Ａ）アルゴリズム）を行い、以下の式３０９に示した値を計算するよう要請し、双線形写像演算部１３１３は、Ａｇｇｒｅｇａｔｅ（Ａ）アルゴリズムを実行して、式３０９の値をセッション鍵算出部１３０９に出力する（ステップＳ３６）。なお、双線形群の演算処理アルゴリズムであるＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムについては、以下で改めて詳細に説明する。
【０５１６】
【数８１】
0005365072.tif 000084
【０５１７】
続いて、暗号化装置は、セッション鍵算出部１３０９は、双線形写像演算部１３１３に対して、Ｇ１上の演算における双線形群の演算処理（Ａｇｇｒｅｇａｔｅ（Ａ）アルゴリズム）を行い、以下の式３１０に示した値を計算するよう要請し、双線形写像演算部１３１３は、Ａｇｇｒｅｇａｔｅ（Ａ）アルゴリズムを実行して、式３１０の値をセッション鍵算出部１３０９に出力する（ステップＳ３７）。
【０５１８】
【数８２】
0005365072.tif 000085
【０５１９】
それぞれの場合について、ＰｒおよびＫ’の算出が終了すると、暗号化装置３０のヘッダ算出部１３１１は、ヘッダｈｄｒを、以下の式３１１のようにして計算する（ステップＳ３８）。
【０５２０】
【数８３】
0005365072.tif 000086
【０５２１】
次に、暗号化装置のセッション鍵算出部１３０９は、セッション鍵Ｋを以下の式３１２に基づいて計算し、ヘッダｈｄｒ、Ｋ’およびｋとともに出力する。
【０５２２】
【数８４】
0005365072.tif 000087
【０５２３】
暗号化装置の暗号化部１３１５は、平文Ｍのセッション鍵Ｋによる暗号文Ｃ＝ＥＫ（Ｍ）を生成し、送信者認証用情報生成部１３２１に伝送する。また、暗号文送信部１３１７は、生成された（ｈｄｒ，Ｃ）を、後述する送信者認証用情報とともに同報配信する。かかる処理を行うことで、送信者は、希望するユーザに対して暗号化されたコンテンツ等を送信することができる。
【０５２４】
なお、上記の処理に加えて、さらに平文Ｍの暗号化、または暗号化及び同報配信までをＥｎｃｒｙｐｔｉｏｎ処理で実行する構成としてもよい。また、ステップＳ３１は、送信者自身が実行し、Ｅｎｃｒｙｐｔｉｏｎ処理を実行する暗号化装置に入力する形態をとってもよい。
【０５２５】
［双線形群の演算処理−Ａｇｇｒｅｇａｔｅ（Ａ）アルゴリズム］
続いて、図６を参照しながら、Ｅｎｃｒｙｐｔｉｏｎ処理中で実施される双線形群演算処理であるＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムについて、詳細に説明する。
【０５２６】
Ａｇｇｒｅｇａｔｅ（Ａ）アルゴリズムは、双線形写像演算部１３１３が（Ｐ１，・・・Ｐｒ）∈Ｇを算出する際に実行するアルゴリズムである。
【０５２７】
まず、双線形写像演算部１３１３は、Ｐ０，ｍ＝ＶＲｍ（ｍ＝１，・・・，ｒ）とし、ｊ＝１と設定する（ステップＳ４１）。続いて、双線形写像演算部１３１３は、ｌ＝ｊ＋１と設定する（ステップＳ４２）。
【０５２８】
ここで、双線形写像演算部１３１３は、ｕＲｊとｕＲｌとの比較を行い、ｕＲｊ＝ｕＲｌであれば、エラーメッセージを出力し（ステップＳ４４）、処理を終了する。ｕＲｊ＝ｕＲｌでなければ、以下に示すステップＳ４５を実行する。
【０５２９】
続いて、双線形写像演算部１３１３は、以下の式３１３を用いて、Ｐｊ，ｌを計算する（ステップＳ４５）。
【０５３０】
【数８５】
0005365072.tif 000088
【０５３１】
上記式３１３の計算が終了すると、双線形写像演算部１３１３は、ｌにｌ＋１を代入し（ステップＳ４６）、ｌとｒ＋１の比較を行う（ステップＳ４７）。ｌ＝ｒ＋１であれば、双線形写像演算部１３１３は、ステップＳ４８を実行し、ｌがｒ＋１と等しくなければ、双線形写像演算部１３１３は、ステップＳ４３に戻って処理を続行する。
【０５３２】
次に、双線形写像演算部１３１３は、ｊにｊ＋１を代入し（ステップＳ４８）、ｊとｒの比較を行う（ステップＳ４９）。ｊ＝ｒであれば、双線形写像演算部１３１３は、ステップＳ５０を実行し、ｊがｒと等しくなければ、双線形写像演算部１３１３は、ステップＳ４２に戻って処理を続行する。
【０５３３】
その後、双線形写像演算部１３１３は、Ｐｊ−１，ｌをＰｒとして出力する（ステップＳ５０）。
【０５３４】
例えば、ｒ＝３の場合には、双線形写像演算部１３１３は、上述のＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムを実行することで、Ｐ２，３をＰ３として出力する。
【０５３５】
【数８６】
0005365072.tif 000089
【０５３６】
なお、Ｋ’∈Ｇ１も、上述のＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムによって算出することが可能である。この場合、双線形写像演算部１３１３は、Ｐ０，ｍ＝ＶＲｍ（ｍ＝１，・・・，ｒ）とし、加（減）算を乗（除）算に、乗算を冪乗算に変更した上で、ステップＳ４５をＧ１上での演算として実行すればよい。ただし、Ｚｐ＊上の演算である１／（ｕＲ１−ｕＲｊ）は、いずれの場合においてもＺｐ＊上での減算及び逆元演算として計算する必要がある。
【０５３７】
［送信者認証用情報の生成処理−Ｓｉｇｎ処理］
続いて、図３１を参照しながら、本実施形態に係る送信者認証用情報生成部３２１が実行する送信者認証用情報の生成処理（Ｓｉｇｎ処理）について、詳細に説明する。図３１は、本実施形態に係るＳｉｇｎ処理を説明するための流れ図である。
【０５３８】
Ｓｉｇｎ処理は、本実施形態に係る暗号化装置３０を有する送信者がヘッダｈｄｒの生成後に実行する処理である。なお，Ｓｉｇｎ処理は、正規の秘密鍵を有する送信者（暗号化装置３０）にのみ実行可能な処理である。
【０５３９】
送信者は、公開鍵ｅｋｉ、送信者自身に固有の値ｕｊ、送信者自身が保持する秘密鍵ｄｋｊ、Ｅｎｃｒｙｐｔｉｏｎ処理の実行後にセッション鍵算出部１３０９から出力されるｋ、Ｋ’、セッション鍵Ｋ、および、暗号文Ｃを暗号化装置３０に入力し、以下で説明するＳｉｇｎ処理を実行させる。
【０５４０】
まず、送信者認証用情報生成部１３２１は、パラメータｔ∈Ｚｐ＊を無作為に選択する（ステップＳ１２０１）。次に、送信者認証用情報生成部１３２１は、以下の式３１４に基づいて、送信者認証用情報の要素の一つであるｓｉｇｊ，０を算出する（ステップＳ１２０２）。
【０５４１】
【数８７】
0005365072.tif 000090
【０５４２】
次に、送信者認証用情報生成部１３２１は、算出したｓｉｇｊ，０と、暗号文Ｃと、セッション鍵Ｋとを用いて、これらの値のハッシュ値ｈを、ハッシュ関数を用いて以下の式３１５のように計算する（ステップＳ１２０３）。
【０５４３】
【数８８】
0005365072.tif 000091
【０５４４】
続いて、送信者認証用情報生成部１３２１は、算出したハッシュ値ｈと、選択したパラメータｔと、セッション鍵算出部１３０９から伝送された値ｋとを用いて、送信者の秘密情報ｙを以下の式３１６のように算出する（ステップＳ１２０４）。
【０５４５】
ｙ＝ｔ−ｈｋ∈Ｚｐ＊  ・・・（式３１６）
【０５４６】
次に、送信者認証用情報生成部１３２１は、算出した秘密情報ｙと、暗号化装置３０に固有の秘密鍵ｄｋｊとを用いて、送信者認証用情報の要素の一つであるｓｉｇｊ，１を以下の式３１７に基づいて算出し、（ｕｊ，ｓｉｇｊ，０，ｓｉｇｊ，１）を送信者認証用情報として、暗号文送信部１３１７に出力する（ステップＳ１２０５）。
【０５４７】
【数８９】
0005365072.tif 000092
【０５４８】
以上説明したように、本実施形態に係る送信者認証用情報生成部１３２１は、送信者が任意に選択したパラメータに基づいて算出された値と、暗号文Ｃと、セッション鍵Ｋとに関するハッシュ値を用いて送信者認証用情報を生成する。したがって、悪意のある第三者が暗号文の内容やセッション鍵を改ざんして送信者認証用情報を再生成した場合には、算出されるハッシュ値が異なる値となる。そのため、送信者認証用情報を受信した受信装置４０は、この送信者認証用情報を利用することで、送信者の正当性および送信内容に改ざんがなされたか否かを検証することができる。
【０５４９】
以上、本実施形態に係る暗号化装置３０で実行されるＥｎｃｒｙｐｔｉｏｎ処理およびＳｉｇｎ処理について説明した。続いて、本実施形態に係る受信装置４０で実行されるセッション鍵の算出処理（Ｄｅｃｒｙｐｔｉｏｎ処理）および受信内容検証処理（Ｖｅｒｉｆｉｃａｔｉｏｎ処理）について、説明する。
【０５５０】
＜受信装置４０の動作：Ｄｅｃｒｙｐｔｉｏｎ処理及びＶｅｒｉｆｉｃａｔｉｏｎ処理＞
暗号化装置３０から暗号文等の送信を受けた受信者は、所有する受信装置４０を操作し、以下の手順に従って、セッション鍵の算出処理であるＤｅｃｒｙｐｔｉｏｎ処理を実行する。なお、本実施形態に係る受信装置４０が実行するＤｅｃｒｙｐｔｉｏｎ処理は、従来方法におけるＤｅｃｒｙｐｔｉｏｎ処理と同一であるため、図７を参照しながら、本実施形態に係るＤｅｃｒｙｐｔｉｏｎ処理について、詳細に説明する。また、受信者は、受信装置４０を操作して、受信した内容の検証処理を、以下の手順に従って実行する。図３２は、本実施形態に係る受信装置４０が受信内容を検証する際に実行するＶｅｒｉｆｉｃａｔｉｏｎ処理を説明するための流れ図である。
【０５５１】
［セッション鍵の算出処理−Ｄｅｃｒｙｐｔｉｏｎ処理］
Ｄｅｃｒｙｐｔｉｏｎ処理は、コンテンツ等の配信を受けた受信者が暗号文を復号して平文を取得する際に必要となるセッション鍵を算出する処理であり、本実施形態に係る受信装置４０によって実行される。
【０５５２】
受信装置４０は、送信者により送信されたｈｄｒと、秘密鍵ｄｋｉと、自身に固有の値であるｕｉと、に基づいて、以下に説明するＤｅｃｒｙｐｔｉｏｎ処理を実行することで、配信されたコンテンツ等の暗号文を復号するためのセッション鍵を算出する。また、受信装置４０は、算出したセッション鍵を用いて暗号文の復号化処理を行う。
【０５５３】
まず、受信装置４０のセッション鍵算出部１４０３は、受信部１４０１が受信したｈｄｒの中に、自身に固有の値であるｕｉが存在するか否かを判断する（ステップＳ５１）。ｈｄｒの中に自身に固有の値であるｕｉが存在する場合には、送信者により受信者が排除されたことを意味するため、受信装置４０は、エラーメッセージを出力し（ステップＳ５２）、処理を終了する。また、ｈｄｒの中に自身に固有の値であるｕｉが存在しない場合には、受信装置４０は、以下のステップＳ５３を実行する。
【０５５４】
次に、セッション鍵算出部１４０３は、ｒが０か否かを判定する（ステップＳ５３）。ｒ＝０の場合には、セッション鍵算出部１４０３は、後述するステップＳ５４を実行する。また、ｒが０ではない場合には、セッション鍵算出部１４０３は、後述するステップＳ５５を実行する。
【０５５５】
ここで、ｒ＝０の場合には、セッション鍵算出部１４０３は、Ｂｉ，Ｒ＝Ｂｉと設定し、後述するステップＳ５６を実施する。
【０５５６】
また、ｒが０ではない場合には、セッション鍵算出部１４０３は、双線形写像演算部１４０５に対して、Ｇ上で双線形群の演算処理（Ａｇｇｒｅｇａｔｅ（Ｂ）アルゴリズム）を行い、以下の式３１８に示した値を計算するよう要請し、双線形写像演算部１４０５は、Ａｇｇｒｅｇａｔｅ（Ｂ）アルゴリズムを実行して、式３１８の値をセッション鍵算出部１４０３に出力する（ステップＳ５５）。なお、双線形群の演算処理アルゴリズムであるＡｇｇｒｅｇａｔｅ（Ｂ）アルゴリズムについては、以下で改めて詳細に説明する。
【０５５７】
【数９０】
0005365072.tif 000093
【０５５８】
ステップＳ５４またはステップＳ５５が終了すると、セッション鍵算出部１４０３は、取得したＢｉ，Ｒを用いて、以下の式３１９によりセッション鍵Ｋを算出する（ステップＳ５６）。
【０５５９】
【数９１】
0005365072.tif 000094
【０５６０】
セッション鍵算出部１４０３は、上述のＤｅｃｒｙｐｔｉｏｎ処理により得られたセッション鍵Ｋを、受信内容検証部１４０７へと出力する。受信内容検証部１４０７から検証が成功した旨の通知を受けた復号部１４０９は、上述のＤｅｃｒｙｐｔｉｏｎ処理により得られたセッション鍵Ｋを利用して、送信者から送信されたコンテンツ等の暗号文Ｃを復号し、平文Ｍ＝ＤＫ（Ｃ）を取得する。また、受信内容検証部１４０７から検証が失敗した旨の通知を受けた復号部１４０９は、受信した暗号文の復号処理を行わないようにしてもよい。
【０５６１】
［双線形群の演算処理−Ａｇｇｒｅｇａｔｅ（Ｂ）アルゴリズム］
続いて、図８を参照しながら、Ｄｅｃｒｙｐｔｉｏｎ処理中で実施される双線形群演算処理であるＡｇｇｒｅｇａｔｅ（Ｂ）アルゴリズムについて、詳細に説明する。
【０５６２】
Ａｇｇｒｅｇａｔｅ（Ｂ）アルゴリズムは、双線形写像演算部１４０５がＢｉ，Ｒ∈Ｇを算出する際に実行するアルゴリズムである。
【０５６３】
まず、双線形写像演算部１４０５は、パラメータｔｍｐを設定し、ｔｍｐの初期値をＢｉとし（ステップＳ６１）、続いて、双線形写像演算部１４０５は、ｊ＝１と設定する（ステップＳ６２）。
【０５６４】
次に、双線形写像演算部１４０５は、ｕＲｊとｕｉとの比較を行い、ｕＲｊ＝ｕiであれば、エラーメッセージを出力し（ステップＳ６４）、処理を終了する。ｕＲｊ＝ｕiでなければ、以下に示すステップＳ６５を実行する。
【０５６５】
続いて、双線形写像演算部１４０５は、以下の式３２０を用いて、新たなｔｍｐの値を計算する（ステップＳ６８）。
【０５６６】
【数９２】
0005365072.tif 000095
【０５６７】
ここで、上記式３１４から明らかなように、式中の分母に、受信装置に固有の値であるｕｉが含まれているため、暗号化装置から送信されたｈｄｒに自身のｕｉが含まれている場合には、ｔｍｐが値を持たなくなる。これにより、排除されたユーザは、セッション鍵Ｋの算出に必要なＢｉ，Ｒを得ることが出来なくなるため、暗号文を復号化することができない。
【０５６８】
上記の演算が終了すると、双線形写像演算部１４０５は、ｊの値をｊ＋１とし（ステップＳ６６）、次いで、ｊとｒ＋１の比較を行う（ステップＳ６７）。ｊ＝ｒ＋１であれば、双線形写像演算部１４０５は、後述するステップＳ６８を実行する。また、ｊがｒ＋１と等しくない場合には、双線形写像演算部１４０５は、ステップＳ６３に戻って処理を続行する。
【０５６９】
次に、双線形写像演算部１４０５は、ｔｍｐをセッション鍵算出部１４０３に出力する（ステップＳ６８）。出力されたｔｍｐは、Ｂｉ，Ｒであり、セッション鍵算出部１４０３は、かかる出力値を用いてセッション鍵Ｋを算出する。
【０５７０】
［受信内容の検証処理−Ｖｅｒｉｆｉｃａｔｉｏｎ処理］
Ｖｅｒｉｆｉｃａｔｉｏｎ処理は、排除されていないユーザが、送信されたヘッダｈｄｒと、送信者認証用情報である（ｕｊ，ｓｉｇｊ，０，ｓｉｇｊ，１）を利用して、ヘッダｈｄｒおよび暗号文Ｃを生成したのが、正規の秘密鍵を有するユーザであり、かつ、ヘッダｈｄｒおよび暗号文Ｃが改ざんされていないかどうかを確認する際に実行する処理である。
【０５７１】
検証者は、受信したヘッダｈｄｒ、ヘッダｈｄｒの復号結果として得られるセッション鍵Ｋ、暗号文Ｃ、および、送信者認証用情報（ｕｊ，ｓｉｇｊ，０，ｓｉｇｊ，１）を受信装置４０に入力し、受信装置４０は、以下で説明するＶｅｒｉｆｉｃａｔｉｏｎ処理を実行する。
【０５７２】
なお、Ｖｅｒｉｆｉｃａｔｉｏｎ処理では、公開鍵ｅｋｉのシステムパラメータ部分である（ｐ，Ｇ，Ｇ１，ｅ）のみを利用するが、これらの値は、通常あらかじめ各ユーザ（あるいはユーザが保持する受信装置４０）によって保持されているため、ここでは入力として公開鍵を与える必要がないものとする。
【０５７３】
まず、受信装置４０の受信内容検証部１４０７は、排除されるユーザの集合Ｒの要素数をカウントして、カウント結果をｒとし（ステップＳ１３０１）、カウント結果の判定を行う（ステップＳ１３０２）。カウント結果ｒが０である場合（すなわち、排除されるユーザは存在せず、全てのユーザが復号可能である場合）には、受信内容検証部１４０７は、後述するステップＳ１３０３を実行する。また、カウント結果ｒが１である場合には、受信内容検証部１４０７は、後述するステップＳ１３０４を実行する。また、カウント結果ｒが２以上である場合には、受信内容検証部１４０７は、後述するステップＳ１３０５を実行する。
【０５７４】
カウント結果ｒが０である場合には、受信内容検証部１４０７は、公開情報に含まれる値を利用してγＰｒ＝Ｘ、Ｐｒ＝Ｈと設定し（ステップＳ１３０３）、後述するステップＳ１３０６を実行する。
【０５７５】
また、カウント結果ｒが１である場合には、受信内容検証部１４０７は、下記式３２１に基づいてγＰｒを計算し（ステップＳ１３０４）、後述するステップＳ１３０６を実行する。
【０５７６】
【数９３】
0005365072.tif 000096
【０５７７】
また、カウント結果ｒが２以上である場合には、受信内容検証部１４０７は、下記式３２２に基づいてγＰｒを計算し（ステップＳ１３０５）、後述するステップＳ１３０６を実行する。
【０５７８】
【数９４】
0005365072.tif 000097
【０５７９】
次に、受信内容検証部１４０７は、算出したγＰｒと、送信者認証用情報と、公開情報とを利用して、下記式３２３に基づいて、検証用に用いられるパラメータＣＨ１を計算する（ステップＳ１３０６）。
【０５８０】
【数９５】
0005365072.tif 000098
【０５８１】
続いて、受信内容検証部１４０７は、暗号化装置３０から送信された暗号文Ｃおよび送信者認証用情報と、セッション鍵算出部１４０３から伝送されたセッション鍵Ｋとを用いて、以下の式３２４に基づいてハッシュ値ｈ’を算出する（ステップＳ１３０７）。
【０５８２】
【数９６】
0005365072.tif 000099
【０５８３】
次に、受信内容検証部１４０７は、算出した検証用パラメータＣＨ１およびハッシュ値ｈ’と、セッション鍵算出部４０３から伝送されたセッション鍵Ｋとを用いて、検証用の値ＣＨ２を、以下の式３２５に基づいて算出する（ステップＳ１３０８）。
【０５８４】
【数９７】
0005365072.tif 000100
【０５８５】
続いて、受信内容検証部１４０７は、算出した検証用の値ＣＨ２と、送信者認証用情報に含まれているｓｉｇｊ，０とを比較する（ステップＳ１３０９）。ＣＨ２＝ｓｉｇｊ，０であった場合には、受信内容検証部１４０７は、暗号化装置３０から受信した暗号文Ｃおよびヘッダｈｄｒは、正当な秘密鍵を持つユーザｊから送信されたものであって、かつ、暗号文Ｃおよびヘッダｈｄｒに改ざんがなされていない（すなわち、検証が成功した）と判定する（ステップＳ１３１０）。また、ＣＨ２≠ｓｉｇｊ，０であった場合には、受信内容検証部１４０７は、暗号化装置３０から受信した暗号文Ｃおよびヘッダｈｄｒが正当な秘密鍵を持つユーザｊから送信されたものではないか、または、暗号文Ｃおよびヘッダｈｄｒに改ざんがなされたものである（すなわち、検証が失敗した）と判定する（ステップＳ１３１１）。
【０５８６】
検証結果が確定すると、受信内容検証部１４０７は、検証結果を復号部１４０９へと伝送する。
【０５８７】
なお、上述のステップＳ１３０１は、受信者自身が実行し、Ｖｅｒｉｆｉｃａｔｉｏｎ処理を実行する受信装置４０に入力する形態をとってもよい。
【０５８８】
＜検証の正当性について＞
以上、本実施形態に係る受信装置４０の動作について、詳細に説明した。続いて、暗号化装置３０が送信者認証用情報（ｕｊ，ｓｉｇｊ，０，ｓｉｇｊ，１）を付加することにより、受信者側において，ヘッダｈｄｒおよび暗号文Ｃがユーザｊによって作成された（または、他者が生成したものをユーザｊが認証した）こと、および、ヘッダｈｄｒおよび暗号文Ｃが改ざんされていないこと、を確認可能であることを示す。
【０５８９】
検証者であるユーザｉは、受信装置４０によってヘッダを復号してセッション鍵Ｋを取得した後、受信装置４０によりＶｅｒｉｆｉｃａｔｉｏｎ処理を実行する。Ｖｅｒｉｆｉｃａｔｉｏｎ処理では、ステップＳ１３０３〜ステップＳ１３０５においてγＰｒを導出し、ステップＳ１３０６において検証用パラメータＣＨ１を計算している．
【０５９０】
ここで、ｓｉｇｊ，１は、式３１７に示した値を有するものであるため、式３２３を展開すると、ＣＨ１は、以下の式３２６のような値となる。
【０５９１】
【数９８】
0005365072.tif 000101
【０５９２】
他方、ヘッダｈｄｒ，暗号文Ｃおよび送信者認証用情報ｓｉｇｊ，０が改ざんされておらず、送信者認証用情報ｓｉｇｊ，０がユーザｊにより生成され、かつ、ヘッダｈｄｒより正しいセッション鍵Ｋが導出されている場合には、ステップＳ１３０７によりｈ＝ｈ’となる。したがって、上述のような場合には、ステップＳ１３０８で算出される検証用の値ＣＨ２は、以下の式３２７のようになる。
【０５９３】
【数９９】
0005365072.tif 000102
【０５９４】
よって、ＣＨ２＝ｓｉｇｊ，０であるならば、検証が成立していることがわかる。
【０５９５】
＜従来方式との相違点＞
従来方式では、ヘッダｈｄｒを任意のｅｎｔｉｔｙが生成・送信可能であり、排除されていないユーザのみが復号可能であるという公開鍵Ｂｒｏａｄｃａｓｔ  Ｅｎｃｒｙｐｔｉｏｎの機能を実現している。これに対して本実施形態に係る方式では、従来方式において実現されている公開鍵Ｂｒｏａｄｃａｓｔ  Ｅｎｃｒｙｐｔｉｏｎの機能に加えて、正規のユーザであれば、ヘッダｈｄｒ生成後、Ｓｉｇｎ処理を実行することによって、送信者認証用情報を付加することが可能となっている。これにより、ヘッダｈｄｒおよび送信者認証用情報（ｕｊ，ｓｉｇｊ，０，ｓｉｇｊ，１）を受信したユーザが、ヘッダｈｄｒ、暗号文Ｃの改ざん検出及び生成者の確認が可能となっている点が、従来方式と大きく異なる。
【０５９６】
従来方式単独で利用した場合には、受信者が送信者の正当性を確認することが不可能であるが、従来方式に加え、別途既存の署名方式を適用すれば、ヘッダに送信者認証用情報を追加することは可能となる。しかしながら、この場合には、従来方式においてコンテンツを保護するための秘密鍵ｄｋｉと、署名方式において利用する送信者認証用情報を生成するための署名鍵の二種類の秘密鍵を秘密保持する必要が発生する。これに対して、本実施形態に係る方式では、公開鍵Ｂｒｏａｄｃａｓｔ  Ｅｎｃｒｙｐｔｉｏｎ方式を利用してコンテンツを保護する際に利用する演算と同様の演算を行うＳｉｇｎ処理およびＶｅｒｉｆｉｃａｔｉｏｎ処理を追加することにより、公開鍵Ｂｒｏａｄｃａｓｔ  Ｅｎｃｒｙｐｔｉｏｎ方式におけるコンテンツ保護用秘密鍵を利用して送信者認証用情報を生成することが可能となり、保持する秘密鍵が一つでよい、という点が、従来方式に署名を別途追加しただけの既存技術の組み合わせとは大きく異なる。
【０５９７】
以上説明したように、従来方式においては、任意のｅｎｔｉｔｙが、指定したユーザ集合に属するユーザのみが復号可能となる暗号文を送信可能としている。しかしながら、ヘッダ生成が任意のｅｎｔｉｔｙによって可能であり、かつ、ヘッダｈｄｒにはヘッダ生成者を確認する情報が含まれていないため、受信者は受信したヘッダｈｄｒおよび暗号文Ｃに対する改ざんの有無、ならびに、正当なユーザによって生成されたものか否かの確認が不可能となっている。また、上述のような確認を実現するためには、別途、署名生成、検証を行う必要があるため、各ユーザが保持する鍵数が増加するという問題点が存在した。
【０５９８】
これに対して、本実施形態に係る方式では、送信者側には、送信者であるユーザがヘッダ生成時に利用したパラメータｋ、自身の秘密鍵ｄｋｊ、およびセッション鍵Ｋ等を利用してＳｉｇｎ処理を実行することにより、自身が生成したヘッダｈｄｒおよび暗号文Ｃの改ざん検知及び正当性確認を実行可能な状態とし、受信者側には、Ｖｅｒｉｆｉｃａｔｉｏｎ処理を実行することによって、改ざん検知およびヘッダｈｄｒの生成者検証を実現可能としている。これにより、例えば従来方式における第一の問題点で挙げた例では、悪意のあるｅｎｔｉｔｙが不正ファームウェアを送信したとしても、受信者側で生成者の検証が可能となるため、不正ファームウェアを実行する前に破棄できる、といった利点が生じる。また、従来方式では同様の機能を別途署名、検証用アルゴリズムおよびその鍵ペアを利用することによって実現可能であるが、この場合にはＢｒｏａｄｃａｓｔ  Ｅｎｃｒｙｐｔｉｏｎ用と署名用の二つの鍵が必要であるという第二の問題点が存在した。これに対して本実施形態に係る方式では、送信者は自身のＢｒｏａｄｃａｓｔ  Ｅｎｃｒｙｐｔｉｏｎ用秘密鍵のみを利用してヘッダｈｄｒおよび送信者認証用情報（ｕｊ，ｓｉｇｊ，０，ｓｉｇｊ，１）を生成可能であり、受信者側においても、セッション鍵取得後、ヘッダｈｄｒおよび送信者認証用情報（ｕｊ，ｓｉｇｊ，０，ｓｉｇｊ，１）を利用するだけで、同様の機能が実現可能である。そのため、本実施形態に係る方式では、デバイスが保持する鍵数を増加させる必要がないという利点が存在する。
【０５９９】
（第１変形例）
続いて、図３３〜図３６を参照しながら、本実施形態に係る暗号化装置３０の第１変形例について、詳細に説明する。本変形例に係る暗号化装置３０は、本実施形態に係るセッション鍵決定部１３０７が実施するＥｎｃｒｙｐｔｉｏｎ処理を、以下に説明するＥｎｃｒｙｐｔｉｏｎ’処理に変更して実行する装置であり、送信者認証用情報生成処理は、本実施形態に係るＳｉｇｎ処理を実行する。
【０６００】
本変形例に係る暗号化装置３０では、かかる変更を行うことで、暗号化時における計算量の削減を実現することが可能である。
【０６０１】
＜暗号化装置３０の動作：Ｅｎｃｒｙｐｔｉｏｎ’処理＞
コンテンツ等の平文を配信する配信者は、所有する暗号化装置３０を操作し、以下の手順に従って、暗号文とヘッダとを生成する。以下に、図３３および図３４を参照しながら、本変形例に係る暗号化装置３０の動作について、詳細に説明する。図３３は、本変形例に係る暗号化装置３０で実行される暗号化処理を説明するための流れ図であり、図３４は、本変形例に係る暗号化装置３０で実行される双線形群の演算処理を説明するための流れ図である。
【０６０２】
Ｅｎｃｒｙｐｔｉｏｎ’処理は、コンテンツ等の配信を希望する任意の送信者が、暗号化装置３０を用いて、配信毎に実行する処理である。
【０６０３】
送信者は、公開鍵ｅｋｉ、排除されるユーザの集合Ｒ＝｛ｕＲ１，・・・ｕＲｒ｝を本変形例に係る暗号化装置３０に入力し、以下に説明するＥｎｃｒｙｐｔｉｏｎ’処理を実行することで、配信したいコンテンツ等の平文に暗号化処理を行う。ユーザによって入力された集合Ｒは、暗号化装置３０の排除受信装置特定部１３０３により、暗号化装置３０が利用可能なデジタルデータに変換され、Ｅｎｃｒｙｐｔｉｏｎ’処理に用いられる。
【０６０４】
暗号化装置３０の排除受信装置特定部１３０３は、まず、Ｒの要素数をカウントして、カウント結果をｒとし（ステップＳ１４０１）、カウント結果ｒをセッション鍵決定部１３０７に出力する。次に、暗号化装置３０のセッション鍵算出部１３０９は、ｋ∈Ｚｐ＊を選択する（ステップＳ１４０２）。
【０６０５】
続いて、暗号化装置３０のセッション鍵算出部１３０９は、排除されたユーザの数ｒについて、判定を行う（ステップＳ１４０３）。ｒ＝０の場合（すなわち、排除されたユーザが誰もいない場合）には、セッション鍵算出部１３０９は、後述するステップＳ１４０４を実行する。また、ｒ＝１の場合（すなわち、排除されたユーザが一人だけの場合）には、後述するステップＳ１４０５を実行する。また、ｒ≧２の場合（すなわち、排除されたユーザが２人以上存在する場合）には、後述するステップＳ１４０６を実行する。
【０６０６】
排除されたユーザが誰もいない場合には、セッション鍵算出部１３０９は、以下の式３５１および式３５２に基づいて、ＰｒおよびＫ’を決定し（ステップＳ１４０４）、その後ステップＳ１４０９を実行する。
【０６０７】
【数１００】
0005365072.tif 000103
【０６０８】
また、排除されたユーザが一人である場合には、セッション鍵算出部１３０９は、以下の式３５３および式３５４に基づいてＰｒおよびＫ’を決定し（ステップＳ１４０５）、その後ステップＳ１４０９を実行する。
【０６０９】
【数１０１】
0005365072.tif 000104
【０６１０】
また、排除されたユーザが２人以上である場合には、セッション鍵算出部１３０９は、双線形写像演算部１３１３に対して、Ｇ上で双線形群の演算処理（Ａｇｇｒｅｇａｔｅ（Ｃ）アルゴリズム）を行い、以下の式３５５〜式３５７に示した値を計算するよう要請し、双線形写像演算部１３１３は、Ａｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムを実行して、式３５５〜式３５７の値をセッション鍵算出部１３０９に出力する（ステップＳ１４０６）。なお、双線形群の演算処理アルゴリズムであるＡｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムについては、以下で改めて詳細に説明する。
【０６１１】
【数１０２】
0005365072.tif 000105
【０６１２】
ここで、上記式３５６および式３５７は、式３５５（Ｐｒ）を導出する際に、計算の途中経過として算出される値であり、従来方式では、式３５６および式３５７の値は、計算値として出力されるものではなかった。本変形例に係る暗号化処理では、以下で説明するように、式３５６および式３５７の計算値を効果的に利用することで、暗号化時に必要となる計算量、すなわち計算時間または計算に必要となる機器のコストを削減することが可能となる。
【０６１３】
例えば、ｒ＝３の場合には、双線形写像演算部１３１３は、上述のＡｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムを実行することで、Ｐ１，２、Ｐ１，３およびＰ２，３の３つの値を、演算結果としてセッション鍵算出部１３０９に出力する。
【０６１４】
【数１０３】
0005365072.tif 000106
【０６１５】
次に、セッション鍵算出部１３０９は、双線形写像演算部１３１３から出力された演算結果を利用して、以下の式３５８の値を算出する（ステップＳ１４０７）。
【０６１６】
【数１０４】
0005365072.tif 000107
【０６１７】
上記式３５８を展開すると、以下の式３５９のようになる。本変形例に係るセッション鍵算出部１３０９は、上記γＰｒを算出することで、Ｇ１上でのＡｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムが実行不要となり、Ａｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムの実行回数を１回に減らすことが可能となる。
【０６１８】
【数１０５】
0005365072.tif 000108
【０６１９】
続いて、セッション鍵算出部１３０９は、双線形写像演算部１３１３の演算結果と、上記式３５９の値を用いて、以下の式３６０に示した値を計算する（ステップＳ１４０８）。
【０６２０】
【数１０６】
0005365072.tif 000109
【０６２１】
それぞれの場合について、ＰｒおよびＫ’の算出が終了すると、ヘッダ算出部１３０７は、ヘッダｈｄｒを、以下の式３６１のようにして計算する（ステップＳ１４０９）。
【０６２２】
【数１０７】
0005365072.tif 000110
【０６２３】
次に、セッション鍵算出部１３０９は、セッション鍵Ｋを以下の式３６２に基づいて計算し、ヘッダｈｄｒ、Ｋ’およびｋとともに出力する（ステップＳ１４１０）。
【０６２４】
【数１０８】
0005365072.tif 000111
【０６２５】
暗号化装置の暗号化部１３１５は、平文Ｍのセッション鍵Ｋによる暗号文Ｃ＝ＥＫ（Ｍ）を生成し、送信者認証用情報生成部１３２１に伝送する。また、暗号文送信部１３１７は、生成された（ｈｄｒ，Ｃ）を、後述する送信者認証用情報とともに同報配信する。かかる処理を行うことで、送信者は、希望するユーザに対して暗号化されたコンテンツ等を送信することができる。
【０６２６】
なお、上記の処理に加えて、さらに平文Ｍの暗号化、または暗号化及び同報配信までをＥｎｃｒｙｐｔｉｏｎ’処理で実行する構成としてもよい。また、ステップＳ１４０１は、送信者自身が実行し、Ｅｎｃｒｙｐｔｉｏｎ’処理を実行する暗号化装置３０に入力する形態をとってもよい。
【０６２７】
（双線形群の演算処理−Ａｇｇｒｅｇａｔｅ（Ｃ）アルゴリズム）
続いて、図３４を参照しながら、Ｅｎｃｒｙｐｔｉｏｎ’処理中で実施される双線形群演算処理であるＡｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムについて、詳細に説明する。
【０６２８】
Ａｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムは、暗号化装置３０の双線形写像演算部１３１３が（Ｐ１，・・・Ｐｒ）∈Ｇを算出する際に実行するアルゴリズムである。
【０６２９】
まず、暗号化装置３０の双線形写像演算部１３１３は、Ｐ０，ｍ＝ＢＲｍ（ｍ＝１，・・・，ｒ）とし、ｊ＝１と設定する（ステップＳ１５０１）。続いて、双線形写像演算部１３１３は、ｌ＝ｊ＋１と設定する（ステップＳ１５０２）。
【０６３０】
ここで、双線形写像演算部１３１３は、ｕＲｊとｕＲｌとの比較を行い（ステップＳ１５０３）、ｕＲｊ＝ｕＲｌであれば、エラーメッセージを出力し（ステップＳ１５０４）、処理を終了する。ｕＲｊ＝ｕＲｌでなければ、以下に示すステップＳ１５０５を実行する。
【０６３１】
続いて、双線形写像演算部１３１３は、以下の式３６３を用いて、Ｐｊ，ｌを計算する（ステップＳ５０５）。
【０６３２】
【数１０９】
0005365072.tif 000112
【０６３３】
上記式３６３の計算が終了すると、双線形写像演算部１３１３は、ｌにｌ＋１を代入し（ステップＳ１５０６）、ｌとｒ＋１の比較を行う（ステップＳ１５０７）。ｌ＝ｒ＋１であれば、双線形写像演算部１３１３は、ステップＳ１５０８を実行し、ｌがｒ＋１と等しくなければ、双線形写像演算部１３１３は、ステップＳ１５０３に戻って処理を続行する。
【０６３４】
次に、双線形写像演算部１３１３は、ｊにｊ＋１を代入し（ステップＳ１５０８）、ｊとｒの比較を行う（ステップＳ１５０９）。ｊ＝ｒであれば、双線形写像演算部１３１３は、ステップＳ１５１０を実行し、ｊがｒと等しくなければ、双線形写像演算部１３１３は、ステップＳ１５０２に戻って処理を続行する。
【０６３５】
その後、双線形写像演算部１３１３は、Ｐｒ＝Ｐｊ−１，ｊ、Ｐｊ−２，ｊ−１およびＰｊ−２，ｊをセッション鍵算出部１３０９に出力する（ステップＳ１５１０）。
【０６３６】
本変形例に係る暗号化処理の効果を示すため、従来方式と本変形例に係る方式の両方における暗号化時の計算量比較を、図３５に示す。図３５に示したように、本変形例に係る方法は、従来方式と比較して、双線形写像演算が１回、Ｇ上における各演算、すなわち楕円曲線上の加算及び乗算が各々３回および４回、Ｚｐ＊上における逆元演算が２回増加している。しかしながら、Ｇ１上、すなわちビットサイズが最も大きい群における乗算、冪乗算、逆元演算を、各々（ｒ２‐ｒ）／２回削減することに成功している。従来方式および本変形例に係る方式における暗号化時の計算量を比較するため、まず、図３５の各演算を実行するために必要となる演算量を、以下のように定義する。この時、従来方式と比較して、本方式の暗号化時における計算量の増加分は、図３５より、以下の式３６４であることがわかる。一方、減少分は、以下の式３６５となる。よって、ｒが以下の式３６６を満たす場合には、本変形例に係る方式の方が、暗号化時における計算量を削減可能となっていることが分かる。
【０６３７】
【数１１０】
0005365072.tif 000113
【０６３８】
なお、図３５および上記式３６４〜式３６６における記号の意味は、以下の通りである。
【０６３９】
Ａ    ：Ｇにおける楕円曲線上の点の加算
Ｄ    ：Ｇにおける楕円曲線上の点の二倍算
Ｓ    ：Ｇにおける楕円曲線上の点のスカラー倍算
Ｍ    ：Ｇ１における乗算
Ｑ    ：Ｇ１における二乗算
Ｅ    ：Ｇ１における冪乗算
Ｉ    ：Ｇ１における逆元演算
ｍｕｌ：Ｚｐ＊における乗算
ｓｑｒ：Ｚｐ＊における二乗算
ｉｎｖ：Ｚｐ＊における逆元演算
Ｐ    ：双線形写像演算
【０６４０】
式３６６を満たすｒを、数値例を用いて導出する。なお，以下では、１２８−ｂｉｔ等価安全性を満たす場合について考える。この時、ｐのビットサイズは２５６−ｂｉｔ、Ｇ１の元のビットサイズは３０７２−ｂｉｔとなる。以降、Ｚｐ＊上での乗算ｍｕｌを基準として、具体的な数値例を示す。従来方式および本変形例に係る方式の両方とも、Ｇ上における楕円曲線上の点の演算、Ｇ１、Ｚｐ＊上における各種演算、および、双線形写像演算を利用している。これらの演算には様々な演算手法が存在するため、ここでは非特許文献２に示された演算見積もりを利用する。
【０６４１】
非特許文献２では、Ｚｐ＊上における演算に対して、以下の式３６７の関係を適用している。また、３０７２／２５６＝１２＝２２×３より、Ｇ１上における演算に対しては、以下の式３６８のようになる。また、楕円曲線上の点の演算に関しては、ｐｒｏｊｅｃｔｉｖｅ座標系を利用することにより、以下の式３６９のようになる。ここで、スカラー倍算Ｓは、二倍算と加算を繰り返し実行することによって計算されるため、その平均的な計算量は、点の係数のビット長ｌｏｇ２ｐ回の二倍算と（１／２）ｌｏｇ２ｐ回の加算として見積もることができる。よって、Ｓは、以下の式３７０のように見積もることができる。また、Ｇ１上での冪乗算Ｅも、位数ｐより指数部のビットサイズがｌｏｇ２ｐであり、二乗算と乗算を繰り返し実行することによって計算されるため、スカラー倍算と同様に見積もることが可能であり、以下の式３７１のように見積もることができる。
【０６４２】
双線形写像演算Ｐに関しては、双線形写像演算自体がＭｉｌｌｅｒ’ｓ  ａｌｇｏｒｉｔｈｍによる演算と最終冪乗と呼ばれる冪乗剰余演算から構成されるため、ＣＦｕｌｌを楕円曲線パラメータによって変動するＭｉｌｌｅｒ’ｓ  ａｌｇｏｒｉｔｈｍの計算量とすると、ＣＦｕｌｌ＋３Ｅとして見積もることができる。ここで、３Ｅは、現在想定しているパラメータに対する最終冪乗のコストである。今、非特許文献２に記載の表より、ｐｒｏｊｅｃｔｉｖｅ座標系におけるＡｔｅ  ｐａｉｒｉｎｇ演算の平均値をＣＬｉｔｅとすると、双線形写像演算Ｐは、以下の式３７２となる。
【０６４３】
【数１１１】
0005365072.tif 000114
【０６４４】
上記式３６７〜式３７２を用いて、式３６６は、以下の式３７３と変形できる。この式３７３を図示すると、図３６のようになる。
【０６４５】
【数１１２】
0005365072.tif 000115
【０６４６】
図３６から明らかなように、前述したようなパラメータ設定を行った場合には、排除されるユーザ数が４人以上となった場合、本変形例に係る方式の方が、非常に効率よく演算可能であることが分かる。
【０６４７】
以上説明したように、本変形例に係る方式によれば、従来方式において暗号化時に必要となるビット長が長い巡回群上での乗算、冪乗算、逆元演算を削除し、その代わりに１回の双線形写像演算（ｐａｉｒｉｎｇ）と楕円曲線上の点の演算等を若干数追加することによって、ユーザ、すなわち秘密鍵を保持するｅｎｔｉｔｙ（人、デバイス、サーバ等の動作主体）が暗号化を実行する際には、特にｒが増加するほど、暗号化時に必要となる計算量、すなわち計算時間または計算に必要となる機器のコストを削減可能となる。
【０６４８】
（第４の実施形態）
続いて、図３７〜図４６を参照しながら、本発明の第４の実施形態に係る暗号鍵配信システムについて詳細に説明する。なお、本実施形態に係る暗号鍵配信システム１０は、本発明の第３の実施形態に係る暗号鍵配信システムと同様の構成を有するため、構成に関する詳細な説明は省略する。
【０６４９】
本実施形態に係る暗号鍵配信システムは、本発明の第３の実施形態におけるＳｅｔｕｐ”処理、Ｊｏｉｎ処理、Ｅｎｃｒｙｐｔｉｏｎ処理およびＥｎｃｒｙｐｔｉｏｎ処理において利用されるＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムを、それぞれ以下で説明するＳｅｔｕｐ’処理、Ｊｏｉｎ’処理、Ｅｎｃｒｙｐｔｉｏｎ”処理および第３の実施形態の第１変形例に記載のＡｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムへと変更するとともに、本発明の第３の実施形態におけるＳｉｇｎ処理およびＶｅｒｉｆｉｃａｔｉｏｎ処理を、以下で説明するＳｉｇｎ’処理およびＶｅｒｉｆｉｃａｔｉｏｎ’処理へと変更するものである。よってＤｅｃｒｙｐｔｉｏｎ処理およびＤｅｃｒｙｐｔｉｏｎ処理において利用されるＡｇｇｒｅｇａｔｅ（Ｂ）アルゴリズムは、本発明の第３の実施形態における処理と同一である。
【０６５０】
また、本実施形態に係る鍵生成装置２０、暗号化装置３０および受信装置４０のハードウェア構成は、本発明の第３の実施形態に係る鍵生成装置２０、暗号化装置３０および受信装置４０のハードウェア構成と同一であるため、詳細な説明は省略する。
【０６５１】
＜本実施形態に係る鍵生成装置２０について＞
まず、図３７を参照しながら、本実施形態に係る鍵生成装置２０について、詳細に説明する。図３７は、本実施形態に係る鍵生成装置２０の構成について説明するためのブロック図である。
【０６５２】
本実施形態に係る鍵生成装置２０は、例えば図３７に示したように、パラメータ決定部１２５１と、双線形群選択部１２５３と、鍵生成部１２５５と、配布部１２６１と、記憶部１２６７と、を主に備える。
【０６５３】
ここで、本実施形態に係るパラメータ決定部１２５１、双線形群選択部１２５３および記憶部１２６７については、本発明の第３の実施形態に係るパラメータ決定部１２５１、双線形群選択部１２５３および記憶部１２６７とほぼ同一の構成を有し、同様の効果を奏するため、詳細な説明は省略する。
【０６５４】
鍵生成部１２５５は、パラメータ決定部１２５１および双線形群選択部１２５３から伝送された各種データを利用して、公開鍵、各ユーザに配布される秘密鍵、マスター鍵、擬似秘密鍵等の鍵や、各ユーザに対応する公開情報等を生成する。鍵生成部１２５５は、鍵算出部１２５７と、擬似秘密鍵算出部１２５９と、を更に備える。
【０６５５】
鍵生成部１２５５は、パラメータ決定部１２５１および双線形群選択部１２５３から伝送された各種データを利用して、公開鍵、各ユーザに配布される秘密鍵およびマスター鍵と、各ユーザに対応する公開情報を生成する。生成された鍵および公開情報は、ＨＤＤやセキュアモジュールを備えたメモリ等から構成される記憶部に記録される。また、公開が必要な情報および配布する鍵類は、後述する配布部１２６１へと伝送される。
【０６５６】
擬似密鍵算出部１２５９は、パラメータ決定部１２５１および双線形群選択部１２５３から伝送された各種データを利用して、擬似秘密鍵ｄｋ０を生成する。生成された擬似秘密鍵は、後述する配布部１２６１へと伝送されるとともに、ＨＤＤやセキュアモジュールを備えたメモリ等から構成される記憶部に記録される。
【０６５７】
配布部１２６１は、鍵生成装置２０が生成した公開鍵、秘密鍵および擬似秘密鍵と、公開が必要な情報とを、通信網１２を介して配布する。かかる配布部１２６１は、送受信部１２６３と、公開鍵配布部１２６５と、を更に備える。
【０６５８】
送受信部１２６３は、鍵生成部１２５５が生成した秘密鍵を、安全な通信路を介して個々のユーザに送信するとともに、受信装置４０から伝送されたシステム加入要求を受信する。受信されたシステム加入要求は鍵生成部１２５５へと伝送され、鍵生成部１２５５により新たな秘密鍵や公開鍵が生成される。
【０６５９】
公開鍵配布部１２６５は、鍵生成部１２５５が生成した公開鍵、擬似秘密鍵および公開情報を、通信網１２を介して暗号化装置３０や受信装置４０に配布する。暗号化装置３０や受信装置４０は、かかる公開鍵、擬似秘密鍵および公開情報を利用して、平文の暗号化処理や暗号文の復号処理を実行する。
【０６６０】
＜本実施形態に係る暗号化装置３０について＞
続いて、図３８を参照しながら、本実施形態に係る暗号化装置３０について、詳細に説明する。図３８は、本実施形態に係る暗号化装置３０の構成について説明するためのブロック図である。
【０６６１】
本実施形態に係る暗号化装置３０は、例えば図３８に示したように、受信部１３０１と、排除受信装置特定部１３０３と、使用鍵特定部１３０５と、セッション鍵決定部１３０７と、双線形写像演算部１３１３と、暗号化部１３１５と、暗号文送信部１３１７と、記憶部１３１９と、送信者認証用情報生成部１３２１と、を主に備える。
【０６６２】
ここで、本実施形態に係る受信部１３０１、排除受信装置特定部１３０３、双線形写像演算部１３１３、暗号化部１３１５、暗号文送信部１３１７および記憶部１３１９については、本発明の第３の実施形態に係る受信部１３０１、排除受信装置特定部１３０３、双線形写像演算部１３１３、暗号化部１３１５、暗号文送信部１３１７および記憶部１３１９とほぼ同一の構成を有し、同様の効果を奏するため、詳細な説明は省略する。
【０６６３】
使用鍵特定部１３０５は、記憶部１３１９を参照して、暗号化装置３０自体に個人秘密鍵が提供されているか否かを判定する。記憶部１３１９に個人秘密鍵が記録されている場合には、使用鍵特定部１３０５は、個人秘密鍵が存在する旨を後述するセッション鍵決定部１３０７に出力する。また、記憶部１３１９に個人秘密鍵が記録されていない場合には、使用鍵特定部１３０５は、個人秘密鍵は存在せず擬似秘密鍵のみが存在する旨をセッション鍵決定部１３０７に出力する。また、使用鍵特定部１３０５は、判定結果を記憶部１３１９に記録して、次回以降の判定処理を省略するようにしてもよい。
【０６６４】
セッション鍵決定部１３０７は、受信部１３０１が受信し記憶部１３１９に記録されている公開鍵、個人秘密鍵および公開情報と、排除受信装置特定部１３０３が決定した集合Ｒと、使用鍵特定部１３０５が出力した判定結果とに基づいて、配信するコンテンツ等の平文を暗号化するために用いられるセッション鍵等を決定する。このセッション鍵決定部１３０７は、セッション鍵算出部１３０９と、ヘッダ算出部１３１１と、を更に備える。
【０６６５】
セッション鍵算出部１３０９は、記憶部１３１９から取得した公開鍵および公開情報と、排除受信装置特定部１３０３から伝送される、排除される受信装置の集合Ｒと、使用鍵特定部１３０５が出力した判定結果とに基づいて、配信するコンテンツ等の平文を暗号化するために利用するセッション鍵を算出する。セッション鍵算出部１３０９が算出したセッション鍵は、暗号化部１３１５に伝送され、平文を暗号化する際に利用される。また、セッション鍵算出部１３０９は、算出したセッション鍵を、記憶部１３１９に記録してもよい。
【０６６６】
ヘッダ算出部１３１１は、セッション鍵算出部１３０９がセッション鍵を算出する際に計算した各種データと、記憶部１３１９に記録されている公開鍵や公開情報等とを利用して、暗号文と同時に受信装置４０に配信されるヘッダを生成する。生成されたヘッダは、暗号文送信部１３１７へと伝送される。また、ヘッダ算出部１３１１は、生成したヘッダ情報を、記憶部１３１９に記録してもよい。
【０６６７】
送信者認証用情報生成部１３２１は、セッション鍵算出部１３０９から伝送されたセッション鍵および算出に用いられたパラメータと、ヘッダ算出部１３１１から伝送されたヘッダと、暗号化部１３１５から伝送された暗号文と、公開鍵および公開情報と、暗号化装置に固有の値および秘密鍵と、を利用して、送信者認証用情報を生成する。この送信者認証用情報は、受信者が受信装置において、送信された暗号文およびヘッダの改ざんの有無と、送信者の正当性とを検証するために用いられる情報である。送信者認証用情報生成部１３２１は、この送信者認証用情報を生成する際に、双線形写像演算部１３１３を利用してもよい。生成された送信者認証用情報は、暗号文送信部１３１７へと伝送され、ヘッダおよび暗号文とともに、各受信装置に同報配信される。また、送信者認証用情報生成部１３２１は、生成した送信者認証用情報を、記憶部１３１９に記録してもよい。
【０６６８】
＜本実施形態に係る受信装置４０について＞
続いて、図３９を参照しながら、本実施形態に係る受信装置４０について、詳細に説明する。図３９は、本実施形態に係る受信装置４０の構成について説明するためのブロック図である。
【０６６９】
本実施形態に係る受信装置４０は、例えば図３９に示したように、受信部１４０１と、セッション鍵算出部１４０３と、双線形写像演算部１４０５と、受信内容検証部１４０７と、復号部１４０９と、記憶部１４１１と、を主に備える。
【０６７０】
ここで、本実施形態に係る受信部１４０１、セッション鍵算出部１４０３、双線形写像演算部１４０５、復号部１４０９および記憶部１４１１は、本発明の第３の実施形態に係る受信部１４０１、セッション鍵算出部１４０３、双線形写像演算部１４０５、復号部１４０９および記憶部１４１１とほぼ同一の構成を有し、同様の効果を奏するため、詳細な説明は省略する。
【０６７１】
受信内容検証部１４０７は、セッション鍵算出部１４０３で算出したセッション鍵と、暗号化装置３０から送信されたヘッダ、暗号文および送信者認証用情報とに基づいて、送信者の正当性と、受信した内容に施された改ざんの有無とを検証する。受信内容検証部１４０７は、検証処理を行う際に、双線形写像演算部１４０５を利用してもよい。受信内容検証部１４０７は、検証結果を、復号部１４０９に出力する。また、受信内容検証部１４０７は、検証結果を、記憶部１４１１に記録してもよい。
【０６７２】
以上、本実施形態に係る鍵生成装置２０、暗号化装置３０および受信装置４０の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、ＣＰＵ等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
【０６７３】
＜鍵生成装置２０の動作：Ｓｅｔｕｐ’処理およびＪｏｉｎ’処理＞
センタは、所有する鍵生成装置２０を操作し、以下の手順に従って、公開鍵および公開情報と、各ユーザに対応する個人秘密鍵とを生成する。以下に、図４０および図４１を参照しながら、本実施形態に係る鍵生成装置２０の動作（すなわち、Ｓｅｔｕｐ’処理およびＪｏｉｎ’処理）について、詳細に説明する。図４０は、本実施形態に係る鍵生成処理を説明するための流れ図であり、図４１は、本実施形態に係るユーザ登録処理を説明するための流れ図である。
【０６７４】
［鍵生成装置２０におけるＳｅｔｕｐ’処理］
Ｓｅｔｕｐ’処理は、本実施形態に係る鍵生成装置２０を有するセンタがシステム構築時に一度だけ実行する鍵生成処理である。センタは、セキュリティパラメータλを決定し、鍵生成装置は、入力されたセキュリティパラメータλを用いて、以下に説明するＳｅｔｕｐ’処理を実行する。
【０６７５】
まず、鍵生成装置２０のパラメータ決定部１２５１は、λ−ｂｉｔの素数ｐを生成し、次いで、双線形群選択部１２５３は、ｐを位数とする双線形写像群Ｇおよび巡回乗法群Ｇ１を選択する（ステップＳ１６０１）。
【０６７６】
次に、鍵生成装置２０の双線形群選択部１２５３は、双線形写像ｅ：Ｇ×Ｇ→Ｇ１を決定する（ステップＳ１６０２）。
【０６７７】
続いて、鍵生成装置２０のパラメータ決定部１２５１は、Ｇ，Ｈ∈Ｇを選択する（ステップＳ１６０３）。
【０６７８】
その後、鍵生成装置２０のパラメータ決定部１２５１は、γ∈ＲＺｐ＊を選択し、Ｗ＝γＧ∈Ｇを計算する（ステップＳ１６０４）。このようにして得られたγおよびＧは、センタのみがマスター鍵ｍｋ＝（γ，Ｇ）として秘密保持する。
【０６７９】
続いて、鍵生成装置２０のパラメータ決定部１２５１は、ユーザ固有値として利用しない値ｕ０∈ＲＺｐ＊を選択し、擬似秘密鍵算出部１２５９に出力する。擬似秘密鍵算出部１２５９は、伝送されたｕ０に基づいて、以下の式４０１を用いて擬似秘密鍵ｄｋ０を算出する（ステップＳ１６０５）。
【０６８０】
【数１１３】
0005365072.tif 000116
【０６８１】
次に、鍵生成装置２０の鍵算出部１２５７は、算出したデータを用いて、初期公開鍵ｅｋ０を以下のようにして構成する（ステップＳ１６０６）。
【０６８２】
ｅｋ０＝｛ｐ，Ｇ，Ｇ１，ｅ，Ｗ，Ｈ，ｕ０，ｄｋ０｝  ・・・（式４０２）
【０６８３】
公開鍵の生成が終了すると、鍵生成装置２０の配布部１２６１は、Ｓｅｔｕｐ処理の実行によって得られた擬似秘密鍵ｄｋ０および初期公開鍵ｅｋ０を、システム全体の初期公開鍵として公開する。
【０６８４】
［鍵生成装置２０におけるＪｏｉｎ’処理］
Ｊｏｉｎ’処理は、センタが、ユーザからのシステム加入要求がある毎に実行するユーザ登録処理である。この処理は、センタがシステム設定を終えた後に、任意のタイミングで実行されてよい。
【０６８５】
センタは、公開鍵ｅｋｉ―１（１≦ｉ≦ｎ）、マスター鍵ｍｋおよびｉ番目に加入したユーザのインデックスであるｉを鍵生成装置２０に入力し、以下に説明するＪｏｉｎ’処理を実行することで、システム加入要求を送信したユーザの秘密鍵を生成して、システムへの加入処理を行う。
【０６８６】
まず、鍵生成装置２０の鍵算出部１２５７は、ユーザｉに固有の値である、ｕｉ∈Ｚｐ＊＼｛ｕ０｝を計算する（ステップＳ１７０１）。その後、以下の式４０３に示す計算を行うことにより、鍵算出部１２５７は、システム加入要求を送信したユーザｉの秘密鍵ｄｋｉを計算する（ステップＳ１７０２）。
【０６８７】
【数１１４】
0005365072.tif 000117
【０６８８】
ここで、上記式４０３におけるＢｉは、秘密鍵ｄｋｉの一部としているが、Ｂｉは秘密の情報ではなく公開情報であり、ユーザｉは、Ｂｉを秘密保持する必要はない。
【０６８９】
鍵生成装置３０の配布部１２６１は、Ｊｏｉｎ’処理の実行によって得られたユーザｉの秘密鍵ｄｋｉを、安全な通信路を利用してユーザｉに秘密裏に送信すると共に、現在の公開鍵ｅｋｉ−１にユーザｉに対応する公開情報（ｕｉ，Ｂｉ）を追加し、公開鍵ｅｋｉとして更新、公開する。このとき、新たな公開鍵ｅｋｉは、以下の式４０４のような構成となっている。
【０６９０】
【数１１５】
0005365072.tif 000118
【０６９１】
以上、本実施形態に係る鍵生成装置２０で実行されるＳｅｔｕｐ’処理およびＪｏｉｎ’処理について説明した。続いて、本実施形態に係る暗号化装置３０で実行される暗号化処理（Ｅｎｃｒｙｐｔｉｏｎ”処理）について、説明する。
【０６９２】
＜暗号化装置３０の動作：Ｅｎｃｒｙｐｔｉｏｎ”処理およびＳｉｇｎ処理＞
コンテンツ等の平文を配信する配信者は、所有する暗号化装置３０を操作し、以下の手順に従って、暗号文とヘッダとを生成する。以下に、図４２を参照しながら、本実施形態に係る暗号化装置３０のＥｎｃｒｙｐｔｉｏｎ”処理について、詳細に説明する。図４２は、本実施形態に係る暗号化装置３０で実行される暗号化処理を説明するための流れ図である。また、配信者は、暗号化装置３０を操作して、受信装置４０において生成した暗号文とヘッダの正当性および改ざんの有無の検証に用いられる送信者認証用情報を、以下の手順に従って生成する。図４３は、本実施形態に係る暗号化装置３０が送信者認証用情報を生成する際に実行するＳｉｇｎ’処理を説明するための流れ図である。
【０６９３】
［暗号化装置３０におけるＥｎｃｒｙｐｔｉｏｎ”処理］
Ｅｎｃｒｙｐｔｉｏｎ”処理は、コンテンツ等の配信を希望する任意の送信者が、暗号化装置３０を用いて、配信毎に実行する処理である。
【０６９４】
送信者は、公開鍵ｅｋｉ、排除されるユーザの集合Ｒ＝｛ｕＲ１，・・・ｕＲｒ｝を本実施形態に係る暗号化装置３０に入力し、以下に説明するＥｎｃｒｙｐｔｉｏｎ”処理を実行することで、配信したいコンテンツ等の平文に暗号化処理を行う。ユーザによって入力された集合Ｒは、暗号化装置３０の排除受信装置特定部１３０３により、暗号化装置３０が利用可能なデジタルデータに変換され、Ｅｎｃｒｙｐｔｉｏｎ”処理に用いられる。
【０６９５】
また、暗号化装置３０の使用鍵特定部１３０５は、暗号化装置３０が個人秘密鍵ｄｋｊを保持しているか否かを判定し、結果をセッション鍵決定部１３０７に予め通知しておく。セッション鍵決定部１３０７は、使用鍵特定部１３０５から個人秘密鍵ｄｋｊが存在する旨の通知を受けた場合には、以下で説明する処理において、暗号化装置３０に固有の値であるｕｊと、暗号化装置３０に固有の秘密鍵であるｄｋｊを使用する。また、使用鍵特定部１３０５から個人秘密鍵ｄｋｊが存在しない旨の通知を受けた場合には、セッション鍵決定部１３０７は、以下で説明する処理において、擬似ユーザに固有の値であるｕ０と、擬似秘密鍵ｄｋ０を使用する。
【０６９６】
以下の説明では、ｕｊおよびｄｋｊを用いて式の表記を行うが、暗号化処理にｕ０およびｄｋ０を用いる場合には、式中のｕｊがｕ０となり、ｄｋｊがｄｋ０となる。
【０６９７】
暗号化装置３０の排除受信装置特定部１３０３は、まず、Ｒの要素数をカウントして、カウント結果をｒとする（ステップＳ１８０１）。続いて、排除受信装置特定部１３０３は、集合Ｒにｕ０を追加して、ｒ＋１の値を新たにカウント結果ｒとする（ステップＳ１８０２）。排除受信装置特定部１３０３は、このカウント結果ｒをセッション鍵決定部１３０７に出力する。
【０６９８】
次に、暗号化装置３０のセッション鍵算出部１３０９は、ｋ∈Ｚｐ＊を選択する（ステップＳ１８０３）。
【０６９９】
続いて、暗号化装置３０のセッション鍵算出部１３０９は、排除されたユーザの数ｒについて、判定を行う（ステップＳ１８０４）。ｒ＝１の場合（すなわち、排除されたユーザが一人だけの場合）には、後述するステップＳ１８０５を実行する。また、ｒ≧２の場合（すなわち、排除されたユーザが２人以上存在する場合）には、後述するステップＳ１８０６を実行する。
【０７００】
排除されたユーザが一人である場合には、セッション鍵算出部１３０９は、以下の式４０５および式４０６に基づいてＰｒおよびＫ’を決定し（ステップＳ１８０５）、その後ステップＳ１８０９を実行する。
【０７０１】
【数１１６】
0005365072.tif 000119
【０７０２】
また、排除されたユーザが２人以上である場合には、セッション鍵算出部１３０９は、双線形写像演算部１３１３に対して、Ｇ上で双線形群の演算処理（Ａｇｇｒｅｇａｔｅ（Ｃ）アルゴリズム）を行い、以下の式４０７〜式４０９に示した値を計算するよう要請し、双線形写像演算部１３１３は、Ａｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムを実行して、式４０７〜式４０９の値をセッション鍵算出部１３０９に出力する（ステップＳ１８０６）。なお、双線形群の演算処理アルゴリズムであるＡｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムについては、本発明の第３の実施形態における第１変形例で説明したＡｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムと同一であるため、詳細な説明は省略する。
【０７０３】
【数１１７】
0005365072.tif 000120
【０７０４】
ここで、上記式４０８および式４０９は、式４０７（Ｐｒ）を導出する際に、計算の途中経過として算出される値であり、従来方式では、式４０８および式４０９の値は、計算値として出力されるものではなかった。本実施形態に係る暗号化処理では、式４０８および式４０９の計算値を効果的に利用することで、暗号化時に必要となる計算量、すなわち計算時間または計算に必要となる機器のコストを削減することが可能となる。
【０７０５】
例えば、ｒ＝３の場合には、双線形写像演算部１３１３は、上述のＡｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムを実行することで、Ｐ１，２、Ｐ１，３およびＰ２，３の３つの値を、演算結果としてセッション鍵算出部１３０９に出力する。
【０７０６】
【数１１８】
0005365072.tif 000121
【０７０７】
次に、セッション鍵算出部１３０９は、双線形写像演算部１３１３から出力された演算結果を利用して、以下の式４１０の値を算出する（ステップＳ１８０７）。
【０７０８】
【数１１９】
0005365072.tif 000122
【０７０９】
上記式４１０を展開すると、以下の式４１１のようになる。本実施形態に係るセッション鍵算出部１３０９は、上記γＰｒを算出することで、Ｇ１上でのＡｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムが実行不要となり、Ａｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムの実行回数を１回に減らすことが可能となる。
【０７１０】
【数１２０】
0005365072.tif 000123
【０７１１】
続いて、セッション鍵算出部１３０９は、双線形写像演算部１３１３の演算結果と、上記式４１１の値と、秘密鍵ｄｋｊまたはｄｋ０を用いて、以下の式４１２に示した値を計算する（ステップＳ１８０８）。
【０７１２】
【数１２１】
0005365072.tif 000124
【０７１３】
それぞれの場合について、ＰｒおよびＫ’の算出が終了すると、ヘッダ算出部１３１１は、ヘッダｈｄｒを、以下の式４１３のようにして計算する（ステップＳ１８０９）。
【０７１４】
【数１２２】
0005365072.tif 000125
【０７１５】
次に、セッション鍵算出部１３０９は、セッション鍵Ｋを以下の式４１４に基づいて計算し、ヘッダｈｄｒ、Ｋ’およびｋとともに出力する（ステップＳ１８１０）。
【０７１６】
【数１２３】
0005365072.tif 000126
【０７１７】
暗号化装置の暗号化部１３１５は、平文Ｍのセッション鍵Ｋによる暗号文Ｃ＝ＥＫ（Ｍ）を生成し、送信者認証用情報生成部１３２１に伝送する。また、暗号文送信部１３１７は、生成された（ｈｄｒ，Ｃ）を、後述する送信者認証用情報とともに同報配信する。かかる処理を行うことで、送信者は、希望するユーザに対して暗号化されたコンテンツ等を送信することができる。
【０７１８】
なお、上記の処理に加えて、さらに平文Ｍの暗号化、または暗号化及び同報配信までをＥｎｃｒｙｐｔｉｏｎ”処理で実行する構成としてもよい。また、ステップＳ１８０１およびステップＳ１８０２は、送信者自身が実行し、Ｅｎｃｒｙｐｔｉｏｎ”処理を実行する暗号化装置３０に入力する形態をとってもよい。
【０７１９】
なお、Ｅｎｃｒｙｐｔｉｏｎ”処理においては、ｕＲ１は必ずｕ０となる。
【０７２０】
［送信者認証用情報の生成処理−Ｓｉｇｎ’処理］
続いて、図４３を参照しながら、本実施形態に係る送信者認証用情報生成部１３２１が実行する送信者認証用情報の生成処理（Ｓｉｇｎ’処理）について、詳細に説明する。
【０７２１】
Ｓｉｇｎ’処理は、本実施形態に係る暗号化装置３０を有する送信者がヘッダｈｄｒの生成後に実行する処理である。なお，Ｓｉｇｎ’処理は、正規の秘密鍵を有する送信者（暗号化装置３０）にのみ実行可能な処理である。
【０７２２】
送信者は、公開鍵ｅｋｉ、送信者自身に固有の値ｕｊ、送信者自身が保持する秘密鍵ｄｋｊ、Ｅｎｃｒｙｐｔｉｏｎ”処理の実行後にセッション鍵算出部１３０９から出力されるｋ、Ｋ’、セッション鍵Ｋ、および、暗号文Ｃを暗号化装置３０に入力し、以下で説明するＳｉｇｎ’処理を実行させる。
【０７２３】
まず、送信者認証用情報生成部１３２１は、パラメータｔ∈Ｚｐ＊を無作為に選択する（ステップＳ１９０１）。次に、送信者認証用情報生成部１３２１は、以下の式４１５に基づいて、送信者認証用情報の要素の一つであるｓｉｇｊ，０を算出する（ステップＳ１９０２）。
【０７２４】
【数１２４】
0005365072.tif 000127
【０７２５】
次に、送信者認証用情報生成部１３２１は、算出したｓｉｇｊ，０と、暗号文Ｃと、セッション鍵Ｋとを用いて、これらの値のハッシュ値ｈを、ハッシュ関数を用いて以下の式４１６のように計算する（ステップＳ１９０３）。
【０７２６】
【数１２５】
0005365072.tif 000128
【０７２７】
続いて、送信者認証用情報生成部１３２１は、算出したハッシュ値ｈと、選択したパラメータｔとを用いて、送信者の秘密情報ｙを以下の式４１７のように算出する（ステップＳ１９０４）。
【０７２８】
ｙ＝ｔ−ｈ∈Ｚｐ＊  ・・・（式４１７）
【０７２９】
次に、送信者認証用情報生成部１３２１は、算出した秘密情報ｙと、暗号化装置３０に固有の秘密鍵ｄｋｊとを用いて、送信者認証用情報の要素の一つであるｓｉｇｊ，１を以下の式４１８に基づいて算出し、（ｕｊ，ｓｉｇｊ，０，ｓｉｇｊ，１）を送信者認証用情報として、暗号文送信部１３１７に出力する（ステップＳ１９０５）。
【０７３０】
【数１２６】
0005365072.tif 000129
【０７３１】
以上説明したように、本実施形態に係る送信者認証用情報生成部１３２１は、送信者が任意に選択したパラメータに基づいて算出された値と、暗号文Ｃと、セッション鍵Ｋとに関するハッシュ値を用いて送信者認証用情報を生成する。したがって、悪意のある第三者が暗号文の内容やセッション鍵を改ざんして送信者認証用情報を再生成した場合には、算出されるハッシュ値が異なる値となる。そのため、送信者認証用情報を受信した受信装置４０は、この送信者認証用情報を利用することで、送信者の正当性および送信内容に改ざんがなされたか否かを検証することができる。
【０７３２】
以上、本実施形態に係る暗号化装置３０で実行されるＥｎｃｒｙｐｔｉｏｎ”処理およびＳｉｇｎ’処理について説明した。続いて、本実施形態に係る受信装置４０で実行されるセッション鍵の算出処理（Ｄｅｃｒｙｐｔｉｏｎ処理）および受信内容検証処理（Ｖｅｒｉｆｉｃａｔｉｏｎ’処理）について、説明する。
【０７３３】
＜受信装置４０の動作：Ｄｅｃｒｙｐｔｉｏｎ処理およびＶｅｒｉｆｉｃａｔｉｏｎ’処理＞
暗号化装置３０から暗号文等の送信を受けた受信者は、所有する受信装置４０を操作し、以下の手順に従って、セッション鍵の算出処理であるＤｅｃｒｙｐｔｉｏｎ処理を実行する。なお、本実施形態に係る受信装置４０が実行するＤｅｃｒｙｐｔｉｏｎ処理は、本発明の第３の実施形態に係る受信装置４０が実行するＤｅｃｒｙｐｔｉｏｎ処理と同一であるため、詳細な説明は省略する。また、受信者は、受信装置４０を操作して、受信した内容の検証処理を、以下の手順に従って実行する。図４４は、本実施形態に係る受信装置４０が受信内容を検証する際に実行するＶｅｒｉｆｉｃａｔｉｏｎ’処理を説明するための流れ図である。
【０７３４】
［受信内容の検証処理−Ｖｅｒｉｆｉｃａｔｉｏｎ’処理］
Ｖｅｒｉｆｉｃａｔｉｏｎ’処理は、排除されていないユーザが、送信されたヘッダｈｄｒと、送信者認証用情報である（ｕｊ，ｓｉｇｊ，０，ｓｉｇｊ，１）を利用して、ヘッダｈｄｒおよび暗号文Ｃを生成したのが、正規の秘密鍵を有するユーザであり、かつ、ヘッダｈｄｒおよび暗号文Ｃが改ざんされていないかどうかを確認する際に実行する処理である。
【０７３５】
検証者は、受信したヘッダｈｄｒ、ヘッダｈｄｒの復号結果として得られるセッション鍵Ｋ、暗号文Ｃ、および、送信者認証用情報（ｕｊ，ｓｉｇｊ，０，ｓｉｇｊ，１）を受信装置４０に入力し、受信装置４０は、以下で説明するＶｅｒｉｆｉｃａｔｉｏｎ’処理を実行する。
【０７３６】
なお、Ｖｅｒｉｆｉｃａｔｉｏｎ処理では、公開鍵ｅｋｉのシステムパラメータ部分である（ｐ，Ｇ，Ｇ１，ｅ）のみを利用するが、これらの値は、通常あらかじめ各ユーザ（あるいはユーザが保持する受信装置４０）によって保持されているため、ここでは入力として公開鍵を与える必要がないものとする。
【０７３７】
まず、受信装置４０の受信内容検証部１４０７は、排除されるユーザの集合Ｒの要素数をカウントして、カウント結果をｒとし（ステップＳ２００１）、カウント結果の判定を行う（ステップＳ２００２）。カウント結果ｒが１である場合には、受信内容検証部１４０７は、後述するステップＳ２００３を実行する。また、カウント結果ｒが２以上である場合には、受信内容検証部１４０７は、後述するステップＳ２００４を実行する。
【０７３８】
カウント結果ｒが１である場合には、受信内容検証部１４０７は、下記式４１９に基づいてγＰｒを計算し（ステップＳ２００３）、後述するステップＳ２００５を実行する。
【０７３９】
【数１２７】
0005365072.tif 000130
【０７４０】
また、カウント結果ｒが２以上である場合には、受信内容検証部１４０７は、下記式４２０に基づいてγＰｒを計算し（ステップＳ２００４）、後述するステップＳ２００５を実行する。
【０７４１】
【数１２８】
0005365072.tif 000131
【０７４２】
次に、受信内容検証部１４０７は、算出したγＰｒと、送信者認証用情報と、公開情報とを利用して、下記式４２１に基づいて、検証用に用いられるパラメータＣＨ１を計算する（ステップＳ２００５）。
【０７４３】
【数１２９】
0005365072.tif 000132
【０７４４】
続いて、受信内容検証部１４０７は、暗号化装置３０から送信された暗号文Ｃおよび送信者認証用情報と、セッション鍵算出部１４０３から伝送されたセッション鍵Ｋとを用いて、以下の式４２２に基づいてハッシュ値ｈ’を算出する（ステップＳ２００６）。
【０７４５】
【数１３０】
0005365072.tif 000133
【０７４６】
次に、受信内容検証部１４０７は、算出したγＰｒと、公開情報とを利用して、以下の式４２３に基づいて、Ｋ’を算出する（ステップＳ２００７）。
【０７４７】
【数１３１】
0005365072.tif 000134
【０７４８】
次に、受信内容検証部１４０７は、算出した検証用パラメータＣＨ１およびハッシュ値ｈ’と、算出したＫ’とを用いて、検証用の値ＣＨ２を、以下の式４２４に基づいて算出する（ステップＳ２００８）。
【０７４９】
【数１３２】
0005365072.tif 000135
【０７５０】
続いて、受信内容検証部１４０７は、算出した検証用の値ＣＨ２と、送信者認証用情報に含まれているｓｉｇｊ，０とを比較する（ステップＳ２００９）。ＣＨ２＝ｓｉｇｊ，０であった場合には、受信内容検証部１４０７は、暗号化装置３０から受信した暗号文Ｃおよびヘッダｈｄｒは、正当な秘密鍵を持つユーザｊから送信されたものであって、かつ、暗号文Ｃおよびヘッダｈｄｒに改ざんがなされていない（すなわち、検証が成功した）と判定する（ステップＳ２０１０）。また、ＣＨ２≠ｓｉｇｊ，０であった場合には、受信内容検証部１４０７は、暗号化装置３０から受信した暗号文Ｃおよびヘッダｈｄｒが正当な秘密鍵を持つユーザｊから送信されたものではないか、または、暗号文Ｃおよびヘッダｈｄｒに改ざんがなされたものである（すなわち、検証が失敗した）と判定する（ステップＳ２０１１）。
【０７５１】
検証結果が確定すると、受信内容検証部１４０７は、検証結果を復号部１４０９へと伝送する。
【０７５２】
なお、上述のステップＳ２００１は、受信者自身が実行し、Ｖｅｒｉｆｉｃａｔｉｏｎ’処理を実行する受信装置４０に入力する形態をとってもよい。
【０７５３】
＜検証の正当性について＞
以上、本実施形態に係る受信装置４０の動作について、詳細に説明した。続いて、暗号化装置３０が送信者認証用情報（ｕｊ，ｓｉｇｊ，０，ｓｉｇｊ，１）を付加することにより，受信者側において，ヘッダｈｄｒおよび暗号文Ｃがユーザｊによって作成された（または、他者が生成したものをユーザｊが認証した）こと、および、ヘッダｈｄｒおよび暗号文Ｃが改ざんされていないこと、を確認可能であることを示す。
【０７５４】
検証者であるユーザｉは、受信装置４０によってヘッダを復号してセッション鍵Ｋを取得した後、受信装置４０によりＶｅｒｉｆｉｃａｔｉｏｎ’処理を実行する。Ｖｅｒｉｆｉｃａｔｉｏｎ’処理では、ステップＳ２００３〜ステップＳ２００４においてγＰｒを導出し、ステップＳ２００５において検証用パラメータＣＨ１を計算している．
【０７５５】
ここで、ｓｉｇｊ，１は、式４１８に示した値を有するものであるため、式４２１を展開すると、ＣＨ１は、以下の式４２５のような値となる。
【０７５６】
【数１３３】
0005365072.tif 000136
【０７５７】
他方、ヘッダｈｄｒ，暗号文Ｃおよび送信者認証用情報ｓｉｇｊ，０が改ざんされておらず、送信者認証用情報ｓｉｇｊ，０がユーザｊにより生成され、かつ、ヘッダｈｄｒより正しいセッション鍵Ｋが導出されている場合には、ステップＳ２００６によりｈ＝ｈ’となる。したがって、上述のような場合には、ステップＳ２００８で算出される検証用の値ＣＨ２は、以下の式４２６のようになる。
【０７５８】
【数１３４】
0005365072.tif 000137
【０７５９】
よって、ＣＨ２＝ｓｉｇｊ，０であるならば、検証が成立していることがわかる。
【０７６０】
＜従来方式との相違点について＞
従来方式では、Ｐ１，・・・，Ｐｒを導出するために、ｒ≧２で場合には、ＥｎｃｒｙｐｔｉｏｎアルゴリズムにおけるステップＳ３６にて、Ｇ上の演算に対するＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムを実行する。その後、Ｋ’を導出するために、ステップＳ３７にてＧ１上の演算に対するＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムを実行している。
【０７６１】
これに対して、本実施形態に係る暗号化方法では、従来方式同様、Ｅｎｃｒｙｐｔｉｏｎ”アルゴリズムのステップＳ１８０６にてＧ上の演算に対するＡｇｇｒｅｇａｔｅ（Ｃ）を実行しているが、Ｋ’導出には、ステップＳ１８０７におけるＧ上の演算と、ステップＳ１８０８におけるＧ１上の演算を利用し、Ａｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムを利用していない。ここで、Ａｇｇｒｅｇａｔｅ（Ａ）アルゴリズムとＡｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムは、ステップＳ５０およびステップＳ１５１０における出力値が異なるのみであり、かつ、Ａｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムにおいて追加で出力されるＰｒ-２，ｒ-１、Ｐｒ-２，ｒは、Ｐｒを導出するために利用される値でもあるため、これらを追加出力したとしても、計算量はＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムと同じである。
【０７６２】
すなわち、秘密鍵ｄｋｊを持つユーザｊが暗号化を実行する際の計算は、従来方式ではＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズム実行回数が必ず二回となるのに対し、本実施形態に係る暗号化方法では、若干回数のＧ上での演算と一回の双線形写像演算が追加される代わりに、Ａｇｇｒｅｇａｔｅ（Ｃ）アルゴリズム実行回数が一回へと削減されている。また、Ｋ’導出に必要な計算量に関しては、従来方式ではｒが大きくなるにつれｒ２に比例して大きくなるのに対して、本実施形態に係る暗号化方法ではｒに関係なく、一定の計算量となっている点が大きく異なる。
【０７６３】
また、Ｓｅｔｕｐ処理およびＪｏｉｎ処理をそれぞれＳｅｔｕｐ’処理およびＪｏｉｎ’処理へと変更することによって擬似ユーザの秘密鍵（擬似秘密鍵）ｄｋ０を生成、公開し、Ｅｎｃｒｙｐｔｉｏｎ”処理では、常にＲに擬似ユーザに固有の値であるｕ０を追加することによって、秘密鍵を保持しないユーザであってもＥｎｃｒｙｐｔｉｏｎ”処理を実行可能としている。これにより、任意のユーザ、すなわち秘密鍵を保持しないユーザであっても、暗号化時に要する計算量を削減可能としている。
【０７６４】
ここで、本実施形態に係る暗号化方式は、本発明の第３の実施形態における第１変形例と同様であるため、暗号化時における計算量に関しては，任意のｅｎｔｉｔｙが、本発明の第３の実施形態の第１変形例に記載の計算量削減効果を得ることが可能である。なお、得られる削減効果の詳細に関しては、第３の実施形態の第１変形例に記載されているため、ここでは省略する。
【０７６５】
また、従来方式では、暗号化時にＧ上でのＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムの実行に加えて、Ｇ１上でのＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムの実行も必要となる。このとき、Ｇ１上でのＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムでは、Ｖｉを利用する必要があるため、Ｊｏｉｎ処理の実行時に、センタはＶｉを公開しておく必要がある。よって、ｎ人のユーザに対してＪｏｉｎ処理を実行した場合の公開鍵は、図４５に示したようなものとなり、システムパラメータを除いた要素数は、３ｎ＋３となる。
【０７６６】
これに対し、本実施形態に係る方式では、Ｓｅｔｕｐ’処理の実行により擬似ユーザの秘密鍵（擬似秘密鍵）ｄｋ０を公開しているため、任意のｅｎｔｉｔｙがＥｎｃｒｙｐｔｉｏｎ”処理を実行可能となり、Ｇ１上でのＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムを実行する必要がなくなる。そのため、センタはＶｉを公開する必要が無くなるため、Ｊｏｉｎ’処理では、Ｊｏｉｎ処理において必要であったＶｉの計算および出力が不要となる。これにより、ｎ人のユーザに対してＪｏｉｎ’処理を実行した場合の公開鍵は、図４５に示したようなものとなり、システムパラメータを除いた要素数は、２ｎ＋５となる。
【０７６７】
以上の説明より、３ｎ＋３≧２ｎ＋５、すなわち、ｎ≧２である場合には、従来方式と比較して、公開鍵サイズを削減可能であることがわかる。
【０７６８】
公開鍵における要素数に関しては、ｎ≧２を満たす場合には、本実施形態に係る方式が効果的であることを示した。しかしながら、公開鍵における各要素は、異なる群における元の集合であるため、安全性を確保するために必要となるビットサイズが異なる。よって以下では、具体的なビットサイズを想定した上で、公開鍵サイズの比較を行う。なお、以下では、１２８−ｂｉｔ等価安全性を満たす場合について考える。このとき、素数ｐのビットサイズは２５６−ｂｉｔとなり、Ｇ１の元のビットサイズは３０７２−ｂｉｔとなる。
【０７６９】
従来方式における公開鍵の各要素は、Ｗ，Ｈ，Ｂｉ（ｉ＝１，・・・，ｎ）が楕円曲線上の点、すなわち、Ｇの元であり、Ｖｉ（ｉ＝１，・・・，ｎ）がＧ１の元となっている。今、簡単のため各ユーザに固有の値であるｕｉ（ｉ＝１，・・・，ｎ）のビットサイズを３２−ｂｉｔとすると、従来方式における公開鍵のビットサイズは、以下の式４２７となる。
【０７７０】
【数１３５】
0005365072.tif 000138
【０７７１】
これに対して、本実施形態に係る方式では、公開鍵のビットサイズは、以下の式４２８のようになる。
【０７７２】
【数１３６】
0005365072.tif 000139
【０７７３】
ｎの増加に体得る各々の値を比較した結果を、図４６に示す。図４６から明らかなように、ビットサイズで比較した場合には、任意のｎに対して本実施形態に係る方式の方が、ビットサイズを低く抑えられることがわかる。
【０７７４】
以上説明したように、本実施形態に係る方式によれば、従来方式において暗号化時に必要となるビット長が長い巡回群上での乗算、冪乗算、逆元演算を削除し、その代わりに１回の双線形写像演算（ｐａｉｒｉｎｇ）と楕円曲線上の点の演算等を若干数追加することによって、ユーザ、すなわち秘密鍵を保持するｅｎｔｉｔｙ（人、デバイス、サーバ等の動作主体）が暗号化を実行する際には、特にｒが増加するほど、暗号化時に必要となる計算量、すなわち計算時間または計算に必要となる機器のコストを削減可能となる。
【０７７５】
また、公開情報として、擬似秘密鍵を公開することで、従来方式において暗号化時に必要となるビット長が長い巡回群上の要素を公開する必要がなくなるため、公開鍵サイズの削減も実現可能となる。
【０７７６】
（本実施形態に係る暗号化方法の変形例）
本実施形態に係るＳｅｔｕｐ’処理中において、ステップＳ１６０６では、以下の式４０２を初期公開鍵ｅｋ０として公開している。
【０７７７】
【数１３７】
0005365072.tif 000140
【０７７８】
これに対し、以下の式４２９を計算し、初期公開鍵ｅｋ０を、以下の式４３０とする。かかる初期公開鍵を用いる場合には、以降Ｈの代わりに式４２９で算出したＨ０を利用することとする。かかる初期公開鍵を用いることで、Ｅｎｃｒｙｐｔｉｏｎ”処理におけるステップＳ１８０２を省略することが可能となる。
【０７７９】
【数１３８】
0005365072.tif 000141
【０７８０】
また、式４３０に示した初期公開鍵を用いることで、受信装置４０のＶｅｒｉｆｉｃａｔｉｏｎ’処理におけるステップＳ２００３の計算を、以下の式４３１のように変更する。
【０７８１】
【数１３９】
0005365072.tif 000142
【０７８２】
また、本実施形態に係る暗号鍵配信システムでは、送信者認証用情報の生成と、受信内容の検証に、それぞれＳｉｇｎ’処理およびＶｅｒｉｆｉｃａｔｉｏｎ’処理を用いているが、本発明の第３の実施形態に示したＳｉｇｎ処理およびＶｅｒｉｆｉｃａｔｉｏｎ処理を用いることも可能である。
【０７８３】
また、本実施形態に係る方式では、Ｖｅｒｉｆｉｃａｔｉｏｎ’処理において、受信者、すなわち検証者が、Ｋ’∈Ｇ１を計算しているが、送信者が送信者認証用情報としてヘッダと共にＫ’を配信してもよい。検証者は、送信者認証用情報に含まれるＫ’を利用することによって、Ｖｅｒｉｆｉｃａｔｉｏｎ’処理におけるステップＳ２００７を削除することも可能である。
【０７８４】
また、本実施形態に係るＥｎｃｒｙｐｔｉｏｎ”処理では、擬似秘密鍵ｄｋ０を利用した送信者認証用情報を生成することが可能である。しかしながら、擬似秘密鍵ｄｋ０は公開情報であるため、任意のｅｎｔｉｔｙが取得可能であり、擬似秘密鍵ｄｋ０を利用した送信者認証用情報（署名）は、その生成者を特定することが不可能となる。このような点を防止するために、本実施形態に係るＶｅｒｉｆｉｃａｔｉｏｎ’処理において、受信装置４０は、ｕｊ＝ｕ０の場合には、擬似秘密鍵ｄｋ０を用いて送信者認証用情報が生成されたと判断し、検証が不成立であったとして処理を終了するようにしてもよい。
【０７８５】
以上説明したように、本実施形態に係る方式によれば、従来方式において暗号化時に必要となるビット長が長い巡回群上での乗算、冪乗算、逆元演算を削除し、その代わりに１回の双線形写像演算（ｐａｉｒｉｎｇ）と楕円曲線上の点の演算等を若干数追加することによって、ユーザ、すなわち秘密鍵を保持するｅｎｔｉｔｙ（人、デバイス、サーバ等の動作主体）が暗号化を実行する際には、特にｒが増加するほど、暗号化時に必要となる計算量、すなわち計算時間または計算に必要となる機器のコストを削減可能となる。
【０７８６】
また、公開情報として、擬似秘密鍵を公開することで、従来方式において暗号化時に必要となるビット長が長い巡回群上の要素を公開する必要がなくなるため、公開鍵サイズの削減も実現可能となる。
【０７８７】
さらに、本実施形態に係る方式では、正規のユーザであれば、ヘッダｈｄｒ生成後、Ｓｉｇｎ’処理を実行することによって、送信者認証用情報を付加することが可能となっている。これにより、ヘッダｈｄｒおよび送信者認証用情報（ｕｊ，ｓｉｇｊ，０，ｓｉｇｊ，１）を受信したユーザが、ヘッダｈｄｒ、暗号文Ｃの改ざん検出及び生成者の確認を行うことが可能となる。
【０７８８】
また、本実施形態に係る方式では、各処理を以下のように構成することにより、ユーザのみが署名生成可能となるように変更することも可能である。なお、以下の説明において、Ｄｅｃｒｙｐｔｉｏｎ処理およびＡｇｇｒｅｇａｔｅ（Ｂ）処理については、従来方式と同一であるため、詳細な説明は省略する。
【０７８９】
＜鍵生成装置２０の動作：Ｓｅｔｕｐ’’’処理およびＪｏｉｎ’’’処理＞
センタは、所有する鍵生成装置２０を操作し、以下の手順に従って、公開鍵および公開情報と、各ユーザに対応する個人秘密鍵とを生成する。以下に、図４７および図４８を参照しながら、本変形例に係る鍵生成装置２０の動作（すなわち、Ｓｅｔｕｐ’’’処理およびＪｏｉｎ’’’処理）について、詳細に説明する。図４７は、本変形例に係る鍵生成処理を説明するための流れ図であり、図４８は、本変形例に係るユーザ登録処理を説明するための流れ図である。
【０７９０】
［鍵生成装置２０におけるＳｅｔｕｐ’’’処理］
Ｓｅｔｕｐ’’’処理は、本変形例に係る鍵生成装置２０を有するセンタがシステム構築時に一度だけ実行する鍵生成処理である。センタは、セキュリティパラメータλを決定し、鍵生成装置は、入力されたセキュリティパラメータλを用いて、以下に説明するＳｅｔｕｐ’’’処理を実行する。
【０７９１】
まず、鍵生成装置２０のパラメータ決定部１２５１は、λ−ｂｉｔの素数ｐを生成し、次いで、双線形群選択部１２５３は、ｐを位数とする双線形写像群Ｇおよび巡回乗法群Ｇ１を選択する（ステップＳ２１０１）。
【０７９２】
次に、鍵生成装置２０の双線形群選択部１２５３は、双線形写像ｅ：Ｇ×Ｇ→Ｇ１を決定する（ステップＳ２１０２）。
【０７９３】
続いて、鍵生成装置２０のパラメータ決定部１２５１は、Ｇ，Ｈ∈Ｇを選択する（ステップＳ２１０３）。
【０７９４】
その後、鍵生成装置２０のパラメータ決定部１２５１は、γ∈ＲＺｐ＊を選択し、Ｗ＝γＧ∈Ｇを計算する（ステップＳ２１０４）。このようにして得られたγおよびＧは、センタのみがマスター鍵ｍｋ＝（γ，Ｇ）として秘密保持する。
【０７９５】
次に、鍵生成装置２０の鍵算出部１２５７は、算出したデータを用いて、初期公開鍵ｅｋ０を以下のようにして構成する（ステップＳ２１０５）。
【０７９６】
ｅｋ０＝｛ｐ，Ｇ，Ｇ１，ｅ，Ｗ，Ｈ｝  ・・・（式４３２）
【０７９７】
公開鍵の生成が終了すると、鍵生成装置２０の配布部１２６１は、Ｓｅｔｕｐ処理の実行によって得られた初期公開鍵ｅｋ０を、システム全体の初期公開鍵として公開する。
【０７９８】
［鍵生成装置２０におけるＪｏｉｎ’’’処理］
Ｊｏｉｎ’’’処理は、センタが、ユーザからのシステム加入要求がある毎に実行するユーザ登録処理である。この処理は、センタがシステム設定を終えた後に、任意のタイミングで実行されてよい。
【０７９９】
センタは、公開鍵ｅｋｉ―１（１≦ｉ≦ｎ）、マスター鍵ｍｋおよびｉ番目に加入したユーザのインデックスであるｉを鍵生成装置２０に入力し、以下に説明するＪｏｉｎ’’’処理を実行することで、システム加入要求を送信したユーザの秘密鍵を生成して、システムへの加入処理を行う。
【０８００】
まず、鍵生成装置２０の鍵算出部１２５７は、ユーザｉに固有の値である、ｕｉ∈Ｚｐ＊＼｛ｕ０｝を計算する（ステップＳ２２０１）。その後、以下の式４３３に示す計算を行うことにより、鍵算出部１２５７は、システム加入要求を送信したユーザｉの秘密鍵ｄｋｉを計算する（ステップＳ２２０２）。
【０８０１】
【数１４０】
0005365072.tif 000143
【０８０２】
ここで、上記式４３３におけるＢｉは、秘密鍵ｄｋｉの一部としているが、Ｂｉは秘密の情報ではなく公開情報であり、ユーザｉは、Ｂｉを秘密保持する必要はない。
【０８０３】
鍵生成装置３０の配布部１２６１は、Ｊｏｉｎ’’’処理の実行によって得られたユーザｉの秘密鍵ｄｋｉを、安全な通信路を利用してユーザｉに秘密裏に送信すると共に、現在の公開鍵ｅｋｉ−１にユーザｉに対応する公開情報（ｕｉ，Ｂｉ）を追加し、公開鍵ｅｋｉとして更新、公開する。このとき、新たな公開鍵ｅｋｉは、以下の式４３４のような構成となっている。
【０８０４】
【数１４１】
0005365072.tif 000144
【０８０５】
以上、本実施形態に係る鍵生成装置２０で実行されるＳｅｔｕｐ’’’処理およびＪｏｉｎ’’’処理について説明した。続いて、本変形例に係る暗号化装置３０で実行される暗号化処理（Ｅｎｃｒｙｐｔｉｏｎ’’’処理）について、説明する。
【０８０６】
＜暗号化装置３０の動作：Ｅｎｃｒｙｐｔｉｏｎ’’’処理及びＳｉｇｎ’’’処理＞
コンテンツ等の平文を配信する配信者は、所有する暗号化装置３０を操作し、以下の手順に従って、暗号文とヘッダとを生成する。以下に、図４９を参照しながら、本変形例に係る暗号化装置３０のＥｎｃｒｙｐｔｉｏｎ’’’処理について、詳細に説明する。図４９は、本変形例に係る暗号化装置３０で実行される暗号化処理を説明するための流れ図である。また、配信者は、暗号化装置３０を操作して、受信装置４０において生成した暗号文とヘッダの正当性および改ざんの有無の検証に用いられる送信者認証用情報を、以下の手順に従って生成する。図５０は、本変形例に係る暗号化装置３０が送信者認証用情報を生成する際に実行するＳｉｇｎ’’’処理を説明するための流れ図である。
【０８０７】
［暗号化装置３０におけるＥｎｃｒｙｐｔｉｏｎ’’’処理］
Ｅｎｃｒｙｐｔｉｏｎ’’’処理は、コンテンツ等の配信を希望する任意の送信者が、暗号化装置３０を用いて、配信毎に実行する処理である。
【０８０８】
送信者は、公開鍵ｅｋｉ、排除されるユーザの集合Ｒ＝｛ｕＲ１，・・・ｕＲｒ｝を本変形例に係る暗号化装置３０に入力し、以下に説明するＥｎｃｒｙｐｔｉｏｎ’’’処理を実行することで、配信したいコンテンツ等の平文に暗号化処理を行う。ユーザによって入力された集合Ｒは、暗号化装置３０の排除受信装置特定部１３０３により、暗号化装置３０が利用可能なデジタルデータに変換され、Ｅｎｃｒｙｐｔｉｏｎ’’’処理に用いられる。
【０８０９】
暗号化装置３０の排除受信装置特定部１３０３は、まず、Ｒの要素数をカウントして、カウント結果をｒとする（ステップＳ２３０１）。排除受信装置特定部１３０３は、このカウント結果ｒをセッション鍵決定部１３０７に出力する。
【０８１０】
次に、暗号化装置３０のセッション鍵算出部１３０９は、ｋ∈Ｚｐ＊を選択する（ステップＳ２３０２）。
【０８１１】
続いて、暗号化装置３０のセッション鍵算出部１３０９は、排除されたユーザの数ｒについて、判定を行う（ステップＳ２３０３）。ｒ＝０の場合（すなわち、排除されたユーザがいない場合）には、後述するステップＳ２３０４を実行する。また、ｒ≧１の場合（すなわち、排除されたユーザが１人以上存在する場合）には、後述するステップＳ２３０５を実行する。
【０８１２】
排除されたユーザがいない場合には、暗号化装置３０は、自身を排除されたユーザとして設定する。すなわち、セッション鍵算出部１３０９は、Ｒ１＝ｊとしたうえで、以下の式４３５および式４３６に基づいてＰｒおよびＫ’を決定し（ステップＳ２３０４）、その後ステップＳ２３０８を実行する。
【０８１３】
【数１４２】
0005365072.tif 000145
【０８１４】
また、排除されたユーザが１人以上である場合には、セッション鍵算出部１３０９は、双線形写像演算部１３１３に対して、Ｇ上で双線形群の演算処理（Ａｇｇｒｅｇａｔｅ（Ａ）アルゴリズム）を行い、以下の式４３７に示した値を計算するよう要請し、双線形写像演算部１３１３は、Ａｇｇｒｅｇａｔｅ（Ａ）アルゴリズムを実行して、式４３７の値をセッション鍵算出部１３０９に出力する（ステップＳ２３０５）。なお、双線形群の演算処理アルゴリズムであるＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムについては、従来技術におけるＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムと同一であるため、詳細な説明は省略する。
【０８１５】
【数１４３】
0005365072.tif 000146
【０８１６】
次に、セッション鍵算出部１３０９は、双線形写像演算部１３１３から出力された演算結果を利用して、以下の式４３８の値を算出する（ステップＳ２３０６）。
【０８１７】
【数１４４】
0005365072.tif 000147
【０８１８】
本実施形態に係るセッション鍵算出部１３０９は、上記γＰｒを算出することで、Ｇ１上でのＡｇｇｒｅｇａｔｅ（Ａ）アルゴリズムが実行不要となり、Ａｇｇｒｅｇａｔｅ（Ａ）アルゴリズムの実行回数を１回に減らすことが可能となる。
【０８１９】
続いて、セッション鍵算出部１３０９は、双線形写像演算部１３１３の演算結果と、上記式４３８の値と、秘密鍵ｄｋｊを用いて、以下の式４３９に示した値を計算する（ステップＳ２３０７）。
【０８２０】
【数１４５】
0005365072.tif 000148
【０８２１】
それぞれの場合について、ＰｒおよびＫ’の算出が終了すると、ヘッダ算出部１３１１は、ヘッダｈｄｒを、以下の式４４０のようにして計算する（ステップＳ２３０８）。
【０８２２】
【数１４６】
0005365072.tif 000149
【０８２３】
次に、セッション鍵算出部１３０９は、セッション鍵Ｋを以下の式４４１に基づいて計算し、ヘッダｈｄｒ、Ｋ’およびｋとともに出力する（ステップＳ２３０９）。
【０８２４】
【数１４７】
0005365072.tif 000150
【０８２５】
暗号化装置の暗号化部１３１５は、平文Ｍのセッション鍵Ｋによる暗号文Ｃ＝ＥＫ（Ｍ）を生成し、送信者認証用情報生成部１３２１に伝送する。また、暗号文送信部１３１７は、生成された（ｈｄｒ，Ｃ）を、後述する送信者認証用情報とともに同報配信する。かかる処理を行うことで、送信者は、希望するユーザに対して暗号化されたコンテンツ等を送信することができる。
【０８２６】
なお、上記の処理に加えて、さらに平文Ｍの暗号化、または暗号化及び同報配信までをＥｎｃｒｙｐｔｉｏｎ’’’処理で実行する構成としてもよい。また、ステップＳ２３０１は、送信者自身が実行し、Ｅｎｃｒｙｐｔｉｏｎ’’’処理を実行する暗号化装置３０に入力する形態をとってもよい。
【０８２７】
［送信者認証用情報の生成処理−Ｓｉｇｎ’’’処理］
続いて、図５０を参照しながら、本変形例に係る送信者認証用情報生成部１３２１が実行する送信者認証用情報の生成処理（Ｓｉｇｎ’’’処理）について、詳細に説明する。
【０８２８】
Ｓｉｇｎ’’’処理は、本変形例に係る暗号化装置３０を有する送信者がヘッダｈｄｒの生成後に実行する処理である。なお，Ｓｉｇｎ’’’処理は、正規の秘密鍵を有する送信者（暗号化装置３０）にのみ実行可能な処理である。
【０８２９】
送信者は、公開鍵ｅｋｉ、送信者自身に固有の値ｕｊ、送信者自身が保持する秘密鍵ｄｋｊ、Ｅｎｃｒｙｐｔｉｏｎ’’’処理の実行後にセッション鍵算出部１３０９から出力されるｋ、Ｋ’、セッション鍵Ｋ、および、暗号文Ｃを暗号化装置３０に入力し、以下で説明するＳｉｇｎ’’’処理を実行させる。
【０８３０】
まず、送信者認証用情報生成部１３２１は、パラメータｔ∈Ｚｐ＊を無作為に選択する（ステップＳ２４０１）。次に、送信者認証用情報生成部１３２１は、以下の式４４２に基づいて、送信者認証用情報の要素の一つであるｓｉｇｊ，０を算出する（ステップＳ２４０２）。
【０８３１】
【数１４８】
0005365072.tif 000151
【０８３２】
次に、送信者認証用情報生成部１３２１は、算出したｓｉｇｊ，０と、暗号文Ｃと、セッション鍵Ｋとを用いて、これらの値のハッシュ値ｈｊを、ハッシュ関数を用いて以下の式４４３のように計算する（ステップＳ２４０３）。
【０８３３】
【数１４９】
0005365072.tif 000152
【０８３４】
続いて、送信者認証用情報生成部１３２１は、算出したハッシュ値ｈｊと、選択したパラメータｔとを用いて、送信者の秘密情報ｙを以下の式４４４のように算出する（ステップＳ２４０４）。
【０８３５】
ｙ＝ｔ−ｈｊ∈Ｚｐ＊  ・・・（式４４４）
【０８３６】
次に、送信者認証用情報生成部１３２１は、算出した秘密情報ｙと、暗号化装置３０に固有の秘密鍵ｄｋｊとを用いて、送信者認証用情報の要素の一つであるｓｉｇｊ，１を以下の式４４５に基づいて算出し、（ｕｊ，ｈｊ，ｓｉｇｊ，１）を送信者認証用情報として、暗号文送信部１３１７に出力する（ステップＳ２４０５）。
【０８３７】
【数１５０】
0005365072.tif 000153
【０８３８】
以上説明したように、本変形例に係る送信者認証用情報生成部１３２１は、送信者が任意に選択したパラメータに基づいて算出された値と、暗号文Ｃと、セッション鍵Ｋとに関するハッシュ値を用いて送信者認証用情報を生成する。したがって、悪意のある第三者が暗号文の内容やセッション鍵を改ざんして送信者認証用情報を再生成した場合には、算出されるハッシュ値が異なる値となる。そのため、送信者認証用情報を受信した受信装置４０は、この送信者認証用情報を利用することで、送信者の正当性および送信内容に改ざんがなされたか否かを検証することができる。
【０８３９】
以上、本変形例に係る暗号化装置３０で実行されるＥｎｃｒｙｐｔｉｏｎ’’’処理およびＳｉｇｎ’’’処理について説明した。続いて、本変形例に係る受信装置４０で実行される受信内容検証処理（Ｖｅｒｉｆｉｃａｔｉｏｎ’’’処理）について、説明する。
【０８４０】
＜受信装置４０の動作：Ｖｅｒｉｆｉｃａｔｉｏｎ’’’処理＞
暗号化装置３０から暗号文等の送信を受けた受信者は、所有する受信装置４０を操作し、以下の手順に従って、受信した内容の検証処理を実行する。図５１は、本変形例に係る受信装置４０が受信内容を検証する際に実行するＶｅｒｉｆｉｃａｔｉｏｎ’’’処理を説明するための流れ図である。
【０８４１】
Ｖｅｒｉｆｉｃａｔｉｏｎ’’’処理は、排除されていないユーザが、送信されたヘッダｈｄｒと、送信者認証用情報である（ｕｊ，ｈｊ，ｓｉｇｊ，１）を利用して、ヘッダｈｄｒおよび暗号文Ｃを生成したのが、正規の秘密鍵を有するユーザであり、かつ、ヘッダｈｄｒおよび暗号文Ｃが改ざんされていないかどうかを確認する際に実行する処理である。
【０８４２】
検証者は、受信したヘッダｈｄｒ、ヘッダｈｄｒの復号結果として得られるセッション鍵Ｋ、暗号文Ｃ、および、送信者認証用情報（ｕｊ，ｓｉｇｊ，０，ｓｉｇｊ，１）を受信装置４０に入力し、受信装置４０は、以下で説明するＶｅｒｉｆｉｃａｔｉｏｎ’’’処理を実行する。
【０８４３】
なお、Ｖｅｒｉｆｉｃａｔｉｏｎ’’’処理では、公開鍵ｅｋｉのシステムパラメータ部分である（ｐ，Ｇ，Ｇ１，ｅ）のみを利用するが、これらの値は、通常あらかじめ各ユーザ（あるいはユーザが保持する受信装置４０）によって保持されているため、ここでは入力として公開鍵を与える必要がないものとする。
【０８４４】
まず、受信装置４０の受信内容検証部１４０７は、排除されるユーザの集合Ｒの要素数をカウントして、カウント結果をｒとし（ステップＳ２５０１）、カウント結果の判定を行う（ステップＳ２５０２）。カウント結果ｒが１である場合には、受信内容検証部１４０７は、後述するステップＳ２５０３を実行する。また、カウント結果ｒが２以上である場合には、受信内容検証部１４０７は、後述するステップＳ２５０４を実行する。
【０８４５】
カウント結果ｒが１である場合には、受信内容検証部１４０７は、下記式４４６に基づいてγＰｒを計算し（ステップＳ２５０３）、後述するステップＳ２５０５を実行する。
【０８４６】
【数１５１】
0005365072.tif 000154
【０８４７】
また、カウント結果ｒが２以上である場合には、受信内容検証部１４０７は、下記式４４７に基づいてγＰｒを計算し（ステップＳ２５０４）、後述するステップＳ２５０５を実行する。
【０８４８】
【数１５２】
0005365072.tif 000155
【０８４９】
次に、受信内容検証部１４０７は、算出したγＰｒと、送信者認証用情報と、公開情報とを利用して、下記式４４８に基づいて、検証用に用いられるパラメータＣＨ１を計算する（ステップＳ２５０５）。
【０８５０】
【数１５３】
0005365072.tif 000156
【０８５１】
次に、受信内容検証部１４０７は、算出したγＰｒと、自身が保持する秘密鍵ｕｉとを利用して、以下の式４４９に基づいて、Ｋ’を算出する（ステップＳ２５０６）。
【０８５２】
【数１５４】
0005365072.tif 000157
【０８５３】
次に、受信内容検証部１４０７は、算出した検証用パラメータＣＨ１およびハッシュ値ｈｊと、算出したＫ’とを用いて、検証用の値ＣＨ２を、以下の式４５０に基づいて算出する（ステップＳ２５０７）。
【０８５４】
【数１５５】
0005365072.tif 000158
【０８５５】
続いて、受信内容検証部１４０７は、暗号化装置３０から送信された暗号文Ｃと、セッション鍵算出部１４０３から伝送されたセッション鍵Ｋと、算出したＣＨ２とを用いて、以下の式４５１に基づいてハッシュ値ｈ’を算出する（ステップＳ２５０８）。
【０８５６】
【数１５６】
0005365072.tif 000159
【０８５７】
続いて、受信内容検証部１４０７は、算出したハッシュ値ｈ’と、送信者認証用情報に含まれているｈｊとを比較する（ステップＳ２５０９）。ｈ’＝ｈｊであった場合には、受信内容検証部１４０７は、暗号化装置３０から受信した暗号文Ｃおよびヘッダｈｄｒは、正当な秘密鍵を持つユーザｊから送信されたものであって、かつ、暗号文Ｃおよびヘッダｈｄｒに改ざんがなされていない（すなわち、検証が成功した）と判定する（ステップＳ２５１０）。また、ｈ’≠ｈｊであった場合には、受信内容検証部１４０７は、暗号化装置３０から受信した暗号文Ｃおよびヘッダｈｄｒが正当な秘密鍵を持つユーザｊから送信されたものではないか、または、暗号文Ｃおよびヘッダｈｄｒに改ざんがなされたものである（すなわち、検証が失敗した）と判定する（ステップＳ２５１１）。
【０８５８】
検証結果が確定すると、受信内容検証部１４０７は、検証結果を復号部１４０９へと伝送する。
【０８５９】
なお、上述のステップＳ２５０１は、受信者自身が実行し、Ｖｅｒｉｆｉｃａｔｉｏｎ’’’処理を実行する受信装置４０に入力する形態をとってもよい。
【０８６０】
以上説明したように、本変形例によれば、正規のユーザのみが署名の生成を実行できるようにすることが可能となる。
【０８６１】
また、上述の第１の実施形態〜第４の実施形態における暗号化装置３０では、Ａｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムを利用し、以下の式５０１を用いてγＰｒの算出を行っている。
【０８６２】
【数１５７】
0005365072.tif 000160
【０８６３】
しかしながら、上記式５０１の代わりに以下の式５０２を用いることで、Ａｇｇｒｅｇａｔｅ（Ｃ）アルゴリズムではなく、Ａｇｇｒｅｇａｔｅ（Ａ）アルゴリズムを利用して、γＰｒを算出することも可能である。
【０８６４】
【数１５８】
0005365072.tif 000161
【０８６５】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明はかかる例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【０８６６】
例えば、本明細書の各流れ図における各ステップは、必ずしも流れ図として記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含むとしても良い。
【図面の簡単な説明】
【０８６７】
【図１】本発明の第１の実施形態に係る暗号鍵配信システムを説明するための説明図である。
【図２】同実施形態に係る鍵生成装置のハードウェア構成を説明するためのブロック図である。
【図３】本発明の基盤技術に係る鍵生成処理を説明するための流れ図である。
【図４】本発明の基盤技術に係るユーザ登録処理を説明するための流れ図である。
【図５】本発明の基盤技術に係る暗号化処理を説明するための流れ図である。
【図６】本発明の基盤技術に係る双線形群の演算処理を説明するための流れ図である。
【図７】本発明の基盤技術に係る復号化処理を説明するための流れ図である。
【図８】本発明の基盤技術に係る双線形群の演算処理を説明するための流れ図である。
【図９】従来方式におけるデータサイズおよび計算量を説明するための説明図である。
【図１０】本発明の第１の実施形態に係る鍵生成装置の構成について説明するためのブロック図である。
【図１１】同実施形態に係る暗号化装置の構成について説明するためのブロック図である。
【図１２】同実施形態に係る受信装置の構成について説明するためのブロック図である。
【図１３】同実施形態に係る暗号化処理を説明するための流れ図である。
【図１４】同実施形態に係る双線形群の演算処理を説明するための流れ図である。
【図１５】同実施形態に係る暗号化処理における計算量を説明するための説明図である。
【図１６】暗号化処理時の計算量を比較したグラフ図である。
【図１７】本発明の第２の実施形態に係る鍵生成装置の構成について説明するためのブロック図である。
【図１８】同実施形態に係る暗号化装置の構成について説明するためのブロック図である。
【図１９】同実施形態に係る受信装置の構成について説明するためのブロック図である。
【図２０】同実施形態に係る鍵生成処理を説明するための流れ図である。
【図２１】同実施形態に係るユーザ登録処理を説明するための流れ図である。
【図２２】同実施形態に係る暗号化処理を説明するための流れ図である。
【図２３】同実施形態に係る暗号化処理における公開鍵サイズを説明するための流れ図である。
【図２４】暗号化処理における公開鍵サイズを比較したグラフ図である。
【図２５】本発明の第３の実施形態に係る暗号鍵配信システムを説明するための説明図である。
【図２６】同実施形態に係る鍵生成装置のハードウェア構成を説明するためのブロック図である。
【図２７】同実施形態に係る鍵生成装置の構成について説明するためのブロック図である。
【図２８】同実施形態に係る暗号化装置の構成について説明するためのブロック図である。
【図２９】同実施形態に係る受信装置の構成について説明するためのブロック図である。
【図３０】同実施形態に係る鍵生成処理を説明するための流れ図である。
【図３１】同実施形態に係る送信者認証用情報の生成処理を説明するための流れ図である。
【図３２】同実施形態に係る受信内容検証処理を説明するための流れ図である。
【図３３】同実施形態に係る暗号化処理の第１変形例を説明するための流れ図である。
【図３４】同変形例に係る双線形群の演算処理を説明するための流れ図である。
【図３５】同変形例に係る暗号化処理における計算量を説明するための説明図である。
【図３６】暗号化処理時の計算量を比較したグラフ図である。
【図３７】本発明の第４の実施形態に係る鍵生成装置の構成について説明するためのブロック図である。
【図３８】同実施形態に係る暗号化装置の構成について説明するためのブロック図である。
【図３９】同実施形態に係る受信装置の構成について説明するためのブロック図である。
【図４０】同実施形態に係る鍵生成処理を説明するための流れ図である。
【図４１】同実施形態に係るユーザ登録処理を説明するための流れ図である。
【図４２】同実施形態に係る暗号化処理を説明するための流れ図である。
【図４３】同実施形態に係る送信者認証用情報の生成処理を説明するための流れ図である。
【図４４】同実施形態に係る受信内容検証処理を説明するための流れ図である。
【図４５】同実施形態に係る暗号化処理における公開鍵サイズを説明するための流れ図である。
【図４６】暗号化処理における公開鍵サイズを比較したグラフ図である。
【図４７】同実施形態に係る鍵生成処理の一変形例を説明するための流れ図である。
【図４８】同実施形態に係るユーザ登録処理の一変形例を説明するための流れ図である。
【図４９】同実施形態に係る暗号化処理の一変形例を説明するための流れ図である。
【図５０】同実施形態に係る送信者認証用情報の生成処理の一変形例を説明するための流れ図である。
【図５１】同実施形態に係る受信内容検証処理の一変形例を説明するための流れ図である。
【符号の説明】
【０８６８】
１０    暗号鍵配信システム
１２    通信網
２０    鍵生成装置
３０    暗号化装置
４０    受信装置
２５１    パラメータ決定部
２５３    双線形群選択部
２５５    鍵生成部
２５７    鍵算出部
２５９    擬似秘密鍵算出部
２６１    配布部
２６３    送受信部
２６５    公開鍵配布部
２６７    記憶部
３０１    受信部
３０３    排除受信装置特定部
３０５    使用鍵特定部
３０７    セッション鍵決定部
３０９    セッション鍵算出部
３１１    ヘッダ算出部
３１３    双線形写像演算部
３１５    暗号化部
３１７    暗号文送信部
３１９    記憶部
３２１    セッション鍵算出方法選択部
４０１    受信部
４０３    セッション鍵算出部
４０５    双線形写像演算部
４０７    復号部
４０９    記憶部
１２５１    パラメータ決定部
１２５３    双線形群選択部
１２５５    鍵生成部
１２５７    鍵算出部
１２５９    擬似秘密鍵算出部
１２６１    配布部
１２６３    送受信部
１２６５    公開鍵配布部
１２６７    記憶部
１３０１    受信部
１３０３    排除受信装置特定部
１３０５    使用鍵特定部
１３０７    セッション鍵決定部
１３０９    セッション鍵算出部
１３１１    ヘッダ算出部
１３１３    双線形写像演算部
１３１５    暗号化部
１３１７    暗号文送信部
１３１９    記憶部
１３２１    送信者認証用情報生成部
１４０１    受信部
１４０３    セッション鍵算出部
１４０５    双線形写像演算部
１４０７    受信内容検証部
１４０９    復号部
１４１１    記憶部
【図１】
0005365072.tif 000171
【図２】
0005365072.tif 000172
【図３】
0005365072.tif 000173
【図４】
0005365072.tif 000174
【図５】
0005365072.tif 000175
【図６】
0005365072.tif 000176
【図７】
0005365072.tif 000177
【図８】
0005365072.tif 000178
【図９】
0005365072.tif 000179
【図１０】
0005365072.tif 000180
【図１１】
0005365072.tif 000181
【図１２】
0005365072.tif 000182
【図１３】
0005365072.tif 000183
【図１４】
0005365072.tif 000184
【図１５】
0005365072.tif 000185
【図１６】
0005365072.tif 000186
【図１７】
0005365072.tif 000187
【図１８】
0005365072.tif 000188
【図１９】
0005365072.tif 000189
【図２０】
0005365072.tif 000190
【図２１】
0005365072.tif 000191
【図２２】
0005365072.tif 000192
【図２３】
0005365072.tif 000193
【図２４】
0005365072.tif 000194
【図２５】
0005365072.tif 000195
【図２６】
0005365072.tif 000196
【図２７】
0005365072.tif 000197
【図２８】
0005365072.tif 000198
【図２９】
0005365072.tif 000199
【図３０】
0005365072.tif 000200
【図３１】
0005365072.tif 000201
【図３２】
0005365072.tif 000202
【図３３】
0005365072.tif 000203
【図３４】
0005365072.tif 000204
【図３５】
0005365072.tif 000205
【図３６】
0005365072.tif 000206
【図３７】
0005365072.tif 000207
【図３８】
0005365072.tif 000208
【図３９】
0005365072.tif 000209
【図４０】
0005365072.tif 000210
【図４１】
0005365072.tif 000211
【図４２】
0005365072.tif 000212
【図４３】
0005365072.tif 000213
【図４４】
0005365072.tif 000214
【図４５】
0005365072.tif 000215
【図４６】
0005365072.tif 000216
【図４７】
0005365072.tif 000217
【図４８】
0005365072.tif 000218
【図４９】
0005365072.tif 000219
【図５０】
0005365072.tif 000220
【図５１】
0005365072.tif 000221