(57)【要約】暗号文の復号を許可された会員の情報である配付メンバ集合データ、乱数および公開鍵が格納され、共有鍵が入力されると、共有鍵、配付メンバ集合データ、および会員毎に異なる情報である誤差情報を含む暗号文である誤差付暗号文と誤差情報の暗号文である誤差修正暗号文とを生成して配付する暗号化装置４００と、暗号化装置と接続され、公開鍵および自装置に対応する秘密鍵が格納され、誤差付暗号文および誤差修正暗号文を暗号化装置から受信すると、配付メンバ集合データに自装置が含まれているか否かを判定し、配付メンバ集合データに自装置が含まれていると、公開鍵および秘密鍵により誤差付暗号文および誤差修正暗号文を復号し、復号した誤差付暗号文から誤差情報を取り除いて共有鍵を出力する復号装置５００とを有する。
2007142170.tif 000002
【特許請求の範囲】
【請求項１】
登録された会員のうち暗号文の復号を許可された会員の情報である配付メンバ集合データ、乱数および公開鍵が格納された記憶部と、共有鍵またはメッセージの少なくともいずれかが入力されると、該共有鍵または該メッセージ、前記配付メンバ集合データ、および会員毎に異なる情報である誤差情報を含む暗号文である誤差付暗号文と該誤差情報の暗号文である誤差修正暗号文とを生成して配付する制御部とを有する暗号化装置と、
前記暗号化装置と接続され、前記公開鍵および自装置に対応する秘密鍵が格納された記憶部と、前記誤差付暗号文および前記誤差修正暗号文を前記暗号化装置から受信すると、前記配付メンバ集合データに自装置が含まれているか否かを判定し、該配付メンバ集合データに自装置が含まれていると、前記公開鍵および前記秘密鍵により前記誤差付暗号文および前記誤差修正暗号文を復号し、復号した誤差付暗号文から前記誤差情報を取り除いて前記共有鍵または前記メッセージを出力する制御部とを有する復号装置と、
を含む不正者失効システム。
【請求項２】
登録された会員の復号装置に暗号文を配付する暗号化装置であって、
前記登録された会員のうち暗号文の復号を許可された会員の情報である配付メンバ集合データ、乱数および公開鍵が格納された記憶部と、
共有鍵またはメッセージの少なくともいずれかが入力されると、該共有鍵または該メッセージ、前記配付メンバ集合データ、および会員毎に異なる情報である誤差情報を含む暗号文である誤差付暗号文と該誤差情報の暗号文である誤差修正暗号文とを生成する制御部と、
を有する暗号化装置。
【請求項３】
前記公開鍵は、任意の整数をＬとし、任意の加法巡回群上の要素で、この巡回群の生成元Ｇについて、１からＬのいずれかの整数ｋ毎に無作為に生成された整数θｋと定整数αの冪乗αｉ（ｉは１から２Ｌのいずれかの整数）の積であるθｋαｉ倍した［θｋαｉ］Ｇを含み、
前記制御部は、
前記誤差付暗号文を生成する際、前記配付メンバ集合に属さないメンバの個数のデータの和を求める処理を行う、請求項２記載の暗号化装置。
【請求項４】
外部から受信する暗号文を復号する復号装置であって、
公開鍵および自装置に対応する秘密鍵が格納された記憶部と、
共有鍵またはメッセージの少なくともいずれかの情報、登録された複数の復号装置毎に異なり自装置に対応する情報である誤差情報、および暗号文の復号を許可された会員の情報である配付メンバ集合データを含む暗号文である誤差付暗号文と、該誤差情報の暗号文である誤差修正暗号文とが入力されると、該配付メンバ集合データに自装置が含まれているか否かを判定し、該配付メンバ集合データに自装置が含まれていると、前記公開鍵および前記秘密鍵により前記誤差付暗号文および前記誤差修正暗号文を復号し、復号した誤差付暗号文から前記誤差情報を取り除いて前記共有鍵または前記メッセージを出力する制御部と、
を有する復号装置。
【請求項５】
前記公開鍵は、任意の整数をＬとし、任意の加法巡回群上の要素で、この巡回群の生成元Ｇについて、１からＬのいずれかの整数ｋ毎に無作為に生成された整数θｋと定整数αの冪乗αｉ（ｉは１から２Ｌのいずれかの整数）の積であるθｋαｉ倍した［θｋαｉ］Ｇを含み、
前記制御部は、
前記誤差付暗号文を復号する際、前記配付メンバ集合に属さないメンバの個数のデータの和を求める処理を行う、請求項４記載の復号装置。
【請求項６】
登録された会員の復号装置のうち不正処理を行う復号装置を特定するための不正者失効装置であって、
元になる共有鍵である追跡用共有鍵または元になるメッセージである追跡用メッセージの少なくともいずれかの情報、前記復号装置毎に異なる識別番号の情報を含む配付メンバ集合データ、公開鍵、および不正者を判定するための基準となる閾値が格納された記憶部と、
不正処理を行うと有意な確率で正しい共有鍵またはメッセージを出力できない追跡用暗号文を前記公開鍵を用いて生成し、前記復号装置毎に該追跡用暗号文を複数送信し、該復号装置から共有鍵またはメッセージを複数受信すると、受信した複数の共有鍵と前記追跡用共有鍵との一致する確率、または、受信した複数のメッセージと前記追跡用メッセージとの一致する確率を算出し、隣り合う前記識別番号の復号装置間で該確率の差が前記閾値より小さいか否かを判定し、該閾値より大きい確率の復号装置を失効対象と判定する制御部と、
を有する不正者失効装置。
【請求項７】
前記記憶部に追跡鍵が格納され、
前記制御部は、前記公開鍵および前記追跡鍵を用いて前記追跡用暗号文を生成する、請求項６記載の不正者失効装置。
【請求項８】
前記公開鍵は、任意の整数をＬとし、任意の加法巡回群上の要素で、この巡回群の生成元Ｇについて、１からＬのいずれかの整数ｋ毎に無作為に生成された整数θｋと定整数αの冪乗αｉ（ｉは１から２Ｌのいずれかの整数）の積であるθｋαｉ倍した［θｋαｉ］Ｇを含み、
前記制御部は、
前記追跡用暗号文を生成する際、前記配付メンバ集合に属さないメンバの個数のデータの和を求める処理を行う、請求項６または７記載の不正者失効装置。
【請求項９】
登録された会員の復号装置に暗号文を配付する暗号化装置による暗号化方法であって、
前記登録された会員のうち暗号文の復号を許可された会員の情報である配付メンバ集合データ、乱数および公開鍵が入力されると、これらの情報を記憶部に格納し、
共有鍵またはメッセージの少なくともいずれかが入力されると、該共有鍵または該メッセージ、前記配付メンバ集合データ、および会員毎に異なる情報である誤差情報を含む暗号文である誤差付暗号文と該誤差情報の暗号文である誤差修正暗号文とを生成する、暗号化方法。
【請求項１０】
前記公開鍵は、任意の整数をＬとし、任意の加法巡回群上の要素で、この巡回群の生成元Ｇについて、１からＬのいずれかの整数ｋ毎に無作為に生成された整数θｋと定整数αの冪乗αｉ（ｉは１から２Ｌのいずれかの整数）の積であるθｋαｉ倍した［θｋαｉ］Ｇを含み、
前記誤差付暗号文を生成する際、前記配付メンバ集合に属さないメンバの個数のデータの和を求める処理を行う、請求項９記載の暗号化方法。
【請求項１１】
外部から受信する暗号文を復号する復号装置による復号方法であって、
公開鍵および自装置に対応する秘密鍵が入力されると、これらの情報を記憶部に格納し、
共有鍵またはメッセージの少なくともいずれかの情報、登録された複数の復号装置毎に異なり自装置に対応する情報である誤差情報、および暗号文の復号を許可された会員の情報である配付メンバ集合データを含む暗号文である誤差付暗号文と、該誤差情報の暗号文である誤差修正暗号文とが入力されると、該配付メンバ集合データに自装置が含まれているか否かを判定し、
前記配付メンバ集合データに自装置が含まれていると、前記公開鍵および前記秘密鍵により前記誤差付暗号文および前記誤差修正暗号文を復号し、
復号した誤差付暗号文から前記誤差情報を取り除いて前記共有鍵または前記メッセージを出力する、復号方法。
【請求項１２】
前記公開鍵は、任意の整数をＬとし、任意の加法巡回群上の要素で、この巡回群の生成元Ｇについて、１からＬのいずれかの整数ｋ毎に無作為に生成された整数θｋと定整数αの冪乗αｉ（ｉは１から２Ｌのいずれかの整数）の積であるθｋαｉ倍した［θｋαｉ］Ｇを含み、
前記誤差付暗号文を復号する際、前記配付メンバ集合に属さないメンバの個数のデータの和を求める処理を行う、請求項１１記載の復号方法。
【請求項１３】
登録された会員の復号装置のうち不正処理を行う復号装置を特定するための不正者失効装置による不正者失効方法であって、
元になる共有鍵である追跡用共有鍵または元になるメッセージである追跡用メッセージの少なくともいずれかの情報、前記復号装置毎に異なる識別番号の情報を含む配付メンバ集合データ、公開鍵、および不正者を判定するための基準となる閾値を記憶部に格納し、
不正処理を行うと有意な確率で正しい共有鍵またはメッセージを出力できない追跡用暗号文を前記公開鍵を用いて生成し、
前記復号装置毎に前記追跡用暗号文を複数送信し、
前記復号装置から共有鍵またはメッセージを複数受信すると、受信した複数の共有鍵と前記追跡用共有鍵との一致する確率、または、受信した複数のメッセージと前記追跡用メッセージとの一致する確率を算出し、
隣り合う前記識別番号の復号装置間で前記確率の差が前記閾値より小さいか否かを判定し、該閾値より大きい確率の復号装置を失効対象と判定する、不正者失効方法。
【請求項１４】
前記公開鍵とともに追跡鍵を前記記憶部に格納し、
前記公開鍵および前記追跡鍵を用いて前記追跡用暗号文を生成する、請求項１３記載の不正者失効方法。
【請求項１５】
前記公開鍵は、任意の整数をＬとし、任意の加法巡回群上の要素で、この巡回群の生成元Ｇについて、１からＬのいずれかの整数ｋ毎に無作為に生成された整数θｋと定整数αの冪乗αｉ（ｉは１から２Ｌのいずれかの整数）の積であるθｋαｉ倍した［θｋαｉ］Ｇを含み、
前記追跡用暗号文を生成する際、前記配付メンバ集合に属さないメンバの個数のデータの和を求める処理を行う、請求項１３または１４記載の不正者失効方法。
【請求項１６】
登録された会員の復号装置に暗号文を配付するコンピュータに実行させるためのプログラムであって、
前記登録された会員のうち暗号文の復号を許可された会員の情報である配付メンバ集合データ、乱数および公開鍵が入力されると、これらの情報を格納し、
共有鍵またはメッセージの少なくともいずれかが入力されると、該共有鍵または該メッセージ、前記配付メンバ集合データ、および会員毎に異なる情報である誤差情報を含む暗号文である誤差付暗号文と該誤差情報の暗号文である誤差修正暗号文とを生成する処理を前記コンピュータに実行させるためのプログラム。
【請求項１７】
前記公開鍵は、任意の整数をＬとし、任意の加法巡回群上の要素で、この巡回群の生成元Ｇについて、１からＬのいずれかの整数ｋ毎に無作為に生成された整数θｋと定整数αの冪乗αｉ（ｉは１から２Ｌのいずれかの整数）の積であるθｋαｉ倍した［θｋαｉ］Ｇを含み、
前記誤差付暗号文を生成する際、前記配付メンバ集合に属さないメンバの個数のデータの和を求める処理をさらに有する請求項１６記載のプログラム。
【請求項１８】
外部から受信する暗号文を復号するコンピュータに実行させるためのプログラムであって、
公開鍵および自装置に対応する秘密鍵が入力されると、これらの情報を格納し、
共有鍵またはメッセージの少なくともいずれかの情報、登録された複数の復号装置毎に異なり自装置に対応する情報である誤差情報、および暗号文の復号を許可された会員の情報である配付メンバ集合データを含む暗号文である誤差付暗号文と、該誤差情報の暗号文である誤差修正暗号文とが入力されると、該配付メンバ集合データに自装置が含まれているか否かを判定し、
前記配付メンバ集合データに自装置が含まれていると、前記公開鍵および前記秘密鍵により前記誤差付暗号文および前記誤差修正暗号文を復号し、
復号した誤差付暗号文から前記誤差情報を取り除いて前記共有鍵または前記メッセージを出力する処理を前記コンピュータに実行させるためのプログラム。
【請求項１９】
前記公開鍵は、任意の整数をＬとし、任意の加法巡回群上の要素で、この巡回群の生成元Ｇについて、１からＬのいずれかの整数ｋ毎に無作為に生成された整数θｋと定整数αの冪乗αｉ（ｉは１から２Ｌのいずれかの整数）の積であるθｋαｉ倍した［θｋαｉ］Ｇを含み、
前記誤差付暗号文を復号する際、前記配付メンバ集合に属さないメンバの個数のデータの和を求める処理をさらに有する請求項１８記載のプログラム。
【請求項２０】
登録された会員の復号装置のうち不正処理を行う復号装置を特定するコンピュータに実行させるためのプログラムであって、
元になる共有鍵である追跡用共有鍵または元になるメッセージである追跡用メッセージの少なくともいずれかの情報、前記復号装置毎に異なる識別番号の情報を含む配付メンバ集合データ、公開鍵、および不正者を判定するための基準となる閾値を記憶部に格納し、
不正処理を行うと有意な確率で正しい共有鍵またはメッセージを出力できない追跡用暗号文を前記公開鍵を用いて生成し、
前記復号装置毎に前記追跡用暗号文を複数送信し、
前記復号装置から共有鍵またはメッセージを複数受信すると、受信した複数の共有鍵と前記追跡用共有鍵との一致する確率、または、受信した複数のメッセージと前記追跡用メッセージとの一致する確率を算出し、
隣り合う前記識別番号の復号装置間で前記確率の差が前記閾値より小さいか否かを判定し、該閾値より大きい確率の復号装置を失効対象と判定する処理を前記コンピュータに実行させるためのプログラム。
【請求項２１】
前記公開鍵とともに追跡鍵を前記記憶部に格納し、
前記公開鍵および前記追跡鍵を用いて前記追跡用暗号文を生成する処理をさらに有する請求項２０記載のプログラム。
【請求項２２】
前記公開鍵は、任意の整数をＬとし、任意の加法巡回群上の要素で、この巡回群の生成元Ｇについて、１からＬのいずれかの整数ｋ毎に無作為に生成された整数θｋと定整数αの冪乗αｉ（ｉは１から２Ｌのいずれかの整数）の積であるθｋαｉ倍した［θｋαｉ］Ｇを含み、
前記追跡用暗号文を生成する際、前記配付メンバ集合に属さないメンバの個数のデータの和を求める処理をさらに有する請求項２０または２１記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２００６年５月２９日に提出された日本国特許出願第２００６−１４８８２５号、２００６年７月２０日に提出された日本国特許出願第２００６−１９８１１７号、及び２００６年１２月１３日に提出された日本国特許出願第２００６−３３５６８１号に基づき、且つ、その優先権の恩恵を主張するものであり、その開示は、参照することによりここにその全体を組み入れる。
技術分野：
本発明は、複数の受信装置が復号可能な暗号方式の不正者失効システム、暗号化装置、復号装置、不正者失効装置、暗号化方法、復号方法、不正者失効方法、およびこれらの方法をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
放送型暗号方式は、同一の暗号文を、それぞれ異なる秘密鍵を持った複数の受信者が受信し、それぞれ復号した結果が同じ平文となる暗号方式である。
従来の放送型暗号化方式で任意のメンバ（会員）を失効できる方式として、非特許文献１（Ｄａｎ  Ｂｏｎｅｈ，Ｃｒａｉｇ  Ｇｅｎｔｒｙ，Ｂｒｅｎｔ  Ｗａｔｅｒｓ：Ｃｏｌｌｕｓｉｏｎ  Ｒｅｓｉｓｔａｎｔ  Ｂｒｏａｄｃａｓｔ  Ｅｎｃｒｙｐｔｉｏｎ  Ｗｉｔｈ  Ｓｈｏｒｔ  Ｃｉｐｈｅｒｔｅｘｔｓ  ａｎｄ  Ｐｒｉｖａｔｅ  Ｋｅｙｓ，Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｌｏｇｙ−ＣＲＹＰＴＯ  ２００５：２５ｔｈ  Ａｎｎｕａｌ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｒｙｐｔｏｌｏｇｙ  Ｃｏｎｆｅｒｅｎｃｅ，Ｓａｎｔａ  Ｂａｒｂａｒａ，Ｃａｌｉｆｏｒｎｉａ，ＵＳＡ，Ａｕｇｕｓｔ  １４−１８，２００５，Ｐｒｏｃｅｅｄｉｎｇｓ．Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ  ３６２１  Ｓｐｒｉｎｇｅｒ  ２００５，ＩＳＢＮ  ３−５４０−２８１１４−２，ｐｐ．２５８−２７５）に記されている放送型暗号方式が挙げられる。この方式では、最初に決められたメンバのうち、任意の集合に属するメンバのみに正しく復号できる暗号文を生成することが可能である。以下に、この暗号方式を簡単に説明する。
図１１は従来の放送型暗号方式の一構成例を示すブロック図である。
図１１に示す放送型暗号方式１００は、管理者、暗号文生成者、多数の暗号文受信者が利用することを想定している。そして、放送型暗号方式１００は、設定アルゴリズム１０５、暗号化アルゴリズム１０８および復号化アルゴリズム１１０を有する。これらのアルゴリズムの処理を各アルゴリズムに対応する情報処理装置がそれぞれ行う。
管理者は設定アルゴリズム１０５を用いて、公開鍵１０６及び、全ての暗号文受信者に関して個別の秘密鍵１０７を生成し（すなわち全員の秘密鍵の集合を生成する）、各自に秘密に渡す。
暗号文生成者は、メッセージ１１１とこれを配付したい暗号文受信者のみの集合（配付メンバ集合）１０３を決定する。次に、暗号文生成者は暗号化アルゴリズム１０８を用いて、メッセージ１１１と、公開鍵１０６と、配付したい受信者のみの集合を表すデータ１０３から放送型暗号文１０９を生成し、これを全ての受信者に放送する。なお、この暗号文１０９には、どの受信者が復号できるかが記されている。
全ての受信者は暗号文１０９を受信するが、自身がこの暗号文を復号できる受信者として記されている場合に限り以下の様にメッセージを復号する。受信者は、復号アルゴリズム１１０を用いて、自身に渡された秘密鍵１０７、受信した暗号文１０９（この暗号文には、どの受信者が復号できるかが記されている）から、メッセージ１１１を復元する。
一方、従来の放送型暗号化方式で不正者を追跡することができる方式として、非特許文献２（Ｄａｎ  Ｂｏｎｅｈ，Ａｍｉｔ  Ｓａｈａｉ，Ｂｒｅｎｔ  Ｗａｔｅｒｓ：Ｆｕｌｌｙ  Ｃｏｌｌｕｓｉｏｎ  Ｒｅｓｉｓｔａｎｔ  Ｔｒａｉｔｏｒ  Ｔｒａｃｉｎｇ  Ｗｉｔｈ  Ｓｈｏｒｔ  Ｃｉｐｈｅｒｔｅｘｔｓ  ａｎｄ  Ｐｒｉｖａｔｅ  Ｋｅｙｓ，Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｌｏｇｙ−ＥＵＲＯＣＲＹＰＴ  ２００６，Ｐｒｏｃｅｅｄｉｎｇｓ．Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ  Ｓｐｒｉｎｇｅｒ  ２００６，インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｅｐｒｉｎｔ．ｉａｃｒ．ｏｒｇ／２００６／０４５＞）に記されている不正者追跡暗号方式が挙げられる。この方式では、最初に決められたメンバのうち、任意の集合に属するメンバが各々の秘密鍵を持ち寄り、復号装置を違法に複製して海賊版を作ったとしても、この装置から少なくとも一人の海賊版作成に関わったメンバを特定できる。特に、このメンバを特定するためには、復号装置の海賊版の回路あるいはプログラムコードを直接調査することなく、暗号文を入力し、その出力を観測することでのみで十分である。以下に、この暗号方式を簡単に説明する。
図１２は従来の放送型暗号方式の他の構成例を示すブロック図である。図１２に示すように、放送型暗号方式２００は、管理者、暗号文生成者、多数の暗号文受信者、不正者追跡者が利用することを想定している。そして、放送型暗号方式２００は、設定アルゴリズム２０３と、暗号化アルゴリズム２０８と、復号アルゴリズム２１０と、ブラックボックス型不正者追跡アルゴリズム２１２とを有する。なお、各アルゴリズムの処理を情報処理装置が実行する。
管理者は設定アルゴリズム２０３を用いて、公開鍵２０４及び全ての暗号文受信者に関して個別の秘密鍵２０５を生成し（すなわち，全員の秘密鍵の集合を生成する）、各自に秘密に渡す。さらに、ブラックボックス型分生者追跡アルゴリズム２１２に、追跡鍵２０６を生成した上で渡す。
暗号文生成者は暗号化アルゴリズム２０８を用いて、メッセージ２１１と公開鍵２０４から放送型暗号文２０９を生成し、これを全ての受信者に放送する。なお、この暗号文２０９には、全ての受信者が復号できる。受信者は、復号アルゴリズム２１０を用いて、自身に渡された秘密鍵２０５、受信した暗号文２０９から、メッセージ２１１を復元する。
ある受信者が、自身の秘密鍵を使って、復号アルゴリズムを内蔵した復号装置、あるいは復号の為のプログラムを不正に作成し、他者に渡した場合を考える。以下、このプログラムあるいは装置を海賊版と呼ぶ。
不正者追跡者は、上記海賊版を入手し、これらから、自身の秘密鍵を悪用した不正者を発見したい。ただし、不正者追跡者は、プログラム自体を解読するような難しい作業を行うことは避ける。
ブラックボックス型不正者追跡アルゴリズム２１２は、追跡鍵２０６を用いて不正者追跡のために作られた特別な暗号文を複数生成し、それらを順番に海賊版に暗号文として入力する。海賊版はこの暗号文を復号しようとする。しかし、この特別な暗号文は、その復号結果が復号に使われた秘密鍵（１つとは限らない）２０５に依存するようにできている。そこで、この復号結果を解析することにより、不正に秘密鍵を流出させた受信者を特定することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来技術（１）の暗号方式の問題点は、メンバが自身の秘密鍵を用いて復号装置の海賊版を作成した場合、どのメンバの秘密鍵が使われているかを知るためには、装置の回路あるいはプログラムコードを直接調べなければならない可能性があることである。問題となる装置の回路あるいはプログラムコードに対して難読化処理が行われている場合、鍵の特定は非常に困難である。ただし、秘密鍵をいったん特定したならば、この秘密鍵を用いても復号できない暗号文を作る、すなわち、対応するメンバを失効することは容易である。これは、暗号文の配付メンバ集合から上記秘密鍵保持者を除外すれば十分であるからである。
従来技術（２）の暗号方式の問題点を説明する。いかなるメンバの集合が、彼らの秘密鍵を持ち寄って復号装置の海賊版を作成した場合にも、少なくとも１人のこれらメンバの秘密鍵を特定することは容易である。しかも装置の回路あるいはプログラムコードを直接調べる必要はなく、複数の暗号文を入力し、それがどのように復号されるかを観測するだけでよい。しかし、たとえ問題となっている秘密鍵を特定することができても、この秘密鍵で復号することができないような暗号文を作る、すなわち、対応するメンバを失効することは困難である。
上記２つの問題は互いに相反する関係にあり、一方の問題は他方では解決されている。しかしながら、両方の問題を同時に解決する方法は知られていない。
ここで、従来技術（１）の第１の方法と従来技術（２）の第２の方法を合わせることにより両方の問題を解決する自然な方法が成功しないことを説明する。
メッセージが与えられた暗号文生成者は、メッセージを第１の方法で暗号化し、さらにこれを第２の方式で暗号化するような方式がこの自然な方式に当たる。実際は、メッセージ自体を直接暗号化すると、メッセージが長い場合に計算量が膨大となるので、次のような方式となる。方式１でランダムな文字列Ｋ１を暗号化する。方式２でランダムな文字列Ｋ２を暗号化する。Ｋ＝Ｋ１＋Ｋ２を秘密鍵暗号方式の秘密鍵とする。そして、このＫでメッセージを暗号化する。受信者は、方式１に対応している秘密鍵でＫ１を復号し、方式２に対応している秘密鍵でＫ２を復号し、両者からＫを生成し、メッセージのＫによる暗号文を復号する。
上記方法を用いると次のような不正者の失効が可能である。ある不正者Ａが、方式１におけるＡの秘密鍵Ａ１を用いて復号することでＫ１を計算し、方式２におけるＡの秘密鍵Ａ２を用いて復号することでＫ２を計算し、結果的にＫを求める海賊版を生成した場合を考える。不正者追跡者はこの海賊版を手に入れ、今後この不正者及び海賊版が暗号文を復号できなくなるようにしたい、すなわち、不正者の失効を行いたい。
不正者追跡者は、方式２のブラックボックス不正者追跡方法を用いて、海賊版の回路あるいはプログラムを直接解析することなく、Ａの秘密鍵Ａ２を特定する。そこで、この情報から以降の暗号文は方式１においてＡ１を用いてもＫ１が復号できないよう、Ａが受信対象者から除外される様にＫ１を暗号化する。以降、海賊版はＫ２を求めることはできるが、Ｋ１を求めることができないため、Ｋを知ることはできない。
この不正者失効は、上記の例では有効に働いたが、次のような攻撃に対しては十分に有効ではない。ある不正者Ａと不正者Ｂが結託して、方式１におけるＡの秘密鍵Ａ１を用いて復号することでＫ１を計算し、方式２におけるＢの秘密鍵Ｂ２を用いて復号することでＫ２を計算し、結果的にＫを求める海賊版を生成した場合を考える。不正者追跡者はこの海賊版を手にいれ、今後この不正者及び海賊版が暗号文を復号できなくなるようにしたい、すなわち、不正者の失効を行いたい。
不正者追跡者は、方式２のブラックボックス不正者追跡方法を用いて、海賊版の回路あるいはプログラムを直接解析することなく、Ｂの秘密鍵Ｂ２を特定する。そこで、この情報から以降の暗号文は方式１においてＢ１を用いてもＫ１が復号できないよう、Ｂが受信対象者から除外される様にＫ１を暗号化する。もちろん海賊版を募集して、現実世界のＢを特定することができればＢを罰することもできる。しかし、海賊版が多く複製されて広く配付されてしまっている場合、次のように本海賊版はメッセージを復号し続けることができる。
まず、方式１におけるＡの秘密鍵Ａ１を用いて復号することでＫ１が計算できる。なぜならＫ１を復号できなくなったのは、鍵Ｂ１によってであって、Ａ１によってではない。次に、方式２におけるＢの秘密鍵Ｂ２を用いて復号することでＫ２を計算し、結果的にＫを求めることができる。すなわち、何度新しく海賊版の複製を発見したところで、Ｂを再度特定するだけであってＡを特定し、Ａ１を失効させることはできない。
すなわち、上記の不正者失効者は、不正者を少なくとも１つ追跡することには成功したが、この不正装置を失効するには至らなかったと言える。このような方式では、海賊版が大量にインターネット上で配付されるような事態に対処することは難しく、問題である。
本発明は上述したような従来の技術が有する問題点を解決するためになされたものであり、プログラムや装置の不正複製を防止する不正者失効システム、暗号化装置、復号装置、不正者失効装置、暗号化方法、復号方法、不正者失効方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００４】
上記目的を達成するための本発明の不正者失効システムは、
登録された会員のうち暗号文の復号を許可された会員の情報である配付メンバ集合データ、乱数および公開鍵が格納された記憶部と、共有鍵またはメッセージの少なくともいずれかが入力されると、該共有鍵または該メッセージ、前記配付メンバ集合データ、および会員毎に異なる情報である誤差情報を含む暗号文である誤差付暗号文と該誤差情報の暗号文である誤差修正暗号文とを生成して配付する制御部とを有する暗号化装置と、
前記暗号化装置と接続され、前記公開鍵および自装置に対応する秘密鍵が格納された記憶部と、前記誤差付暗号文および前記誤差修正暗号文を前記暗号化装置から受信すると、前記配付メンバ集合データに自装置が含まれているか否かを判定し、該配付メンバ集合データに自装置が含まれていると、前記公開鍵および前記秘密鍵により前記誤差付暗号文および前記誤差修正暗号文を復号し、復号した誤差付暗号文から前記誤差情報を取り除いて前記共有鍵または前記メッセージを出力する制御部とを有する復号装置と、
を含む構成である。
本発明では、メンバ集合データに自装置が含まれていなければ暗号文を復号しないので、メンバ集合データを不正者が除かれたデータである場合には不正者の復号装置だけ暗号文を復号できなくなる。
一方、上記目的を達成するための本発明の不正者失効装置は、登録された会員の復号装置のうち不正処理を行う復号装置を特定するための不正者失効装置であって、
元になる共有鍵である追跡用共有鍵または元になるメッセージである追跡用メッセージの少なくともいずれかの情報、前記復号装置毎に異なる識別番号の情報を含む配付メンバ集合データ、公開鍵、および不正者を判定するための基準となる閾値が格納された記憶部と、
不正処理を行うと有意な確率で正しい共有鍵またはメッセージを出力できない追跡用暗号文を前記公開鍵を用いて生成し、前記復号装置毎に該追跡用暗号文を複数送信し、該復号装置から共有鍵またはメッセージを複数受信すると、受信した複数の共有鍵と前記追跡用共有鍵との一致する確率、または、受信した複数のメッセージと前記追跡用メッセージとの一致する確率を算出し、隣り合う前記識別番号の復号装置間で該確率の差が前記閾値より小さいか否かを判定し、該閾値より大きい確率の復号装置を失効対象と判定する制御部と、
を有する構成である。
本発明では、不正者の復号装置が暗号文を復号すると、復号した共有鍵またはメッセージが元の情報と一致する確率が他の復号装置と比較して極端に異なる値になる。その結果、不正者の復号装置を特定することが可能となる。
【発明の効果】
【０００５】
本発明では、違法にプログラムや装置を複製する不正者を特定すれば、不正者を含むメンバ全員に暗号文を配付しても、不正者だけ暗号文を復号できなくすることができる。その後の不正者による、暗号文の違法な復号を防止できる。
【図面の簡単な説明】
【０００６】
図１は実施形態１、３および５の不正者失効システムの一構成例を示すブロック図である。
図２は実施形態１から６のメンバ追加装置の一構成例を示すブロック図である。
図３は実施形態１、３および５の暗号化装置の一構成例を示すブロック図である。
図４は暗号化装置の動作手順を示すフローチャートである。
図５は実施形態１、３および５の復号装置の一構成例を示すブロック図である。
図６は復号装置の動作手順を示すフローチャートである。
図７は実施形態２、４および６の不正者失効システムの一構成例を示すブロック図である。
図８は実施形態２、４および６の不正者失効装置の一構成例を示すブロック図である。
図９は不正者失効装置の動作手順を示すフローチャートである。
図１０は不正者失効装置による不正者探索の動作手順を示すフローチャートである。
図１１は従来の放送型暗号方式の一構成例を示すブロック図である。
図１２は従来の放送型暗号方式の他の構成例を示すブロック図である。
【発明を実施するための最良の形態】
【０００７】
［記法］
最初に記法を説明する。
ｐとｑを異なる素数とし、ｎをｎ＝ｐｑなる合成数とする。ＧＢとＧＴを位数ｎの巡回群とする。ＧＢ’を異数ｑとなるＧＢの部分群とし、ＧＴ’を異数ｑとなるＧＴの部分群とする。Ｇ’’Ｔを異数ｐとなるＧＴの部分群とする。ｇをＧＢの生成元の一つとし、ｇ’をＧＢ’の生成元の一つとし、ｇ’’をＧ’’Ｂの生成元の一つとし、ｇＴをＧＴの生成元の一つとし、ｇＴ’をＧＴ’の生成元の一つとする。
ここで、ＧＢを加法的巡回群、ＧＴを乗法的巡回群であるとする。ｇ１∈ＧＢのα倍を［α］ｇ１と表し、ｇｔ∈ＧＴのα乗をｇｔαと表す。
ｅをＧＢ掛けるＧＢからＧＴへの非縮退な双線形写像であるとする。ここで、双線形であるとは、全てのα，β∈Ｚ／ｑＺ及びｇ１，ｇ２∈ＧＢに対して、
ｅ（［α］ｇ１，［β］ｇ２）＝ｅ（ｇ１，ｇ２）αβが成り立つことである。
また、非縮退であるとは、ｅ（ｇ，ｇ）がＧＴの生成元となるということである。
Ｌを整数、∧を二つの集合｛１，．．．，Ｌ｝と｛１，．．．，Ｌ｝の直積とする。すなわち、∧の要素は、二つの１からＬまでの数、たとえば、ｉとｊで（ｉ，ｊ）のように指定される。故に、∧の要素はＬ２個ある。
∧ｊ⊆∧を（ｉ，ｊ）、ただし、ｉ∈｛１，．．．，Ｌ｝と表せる∧の部分集合とする。また、∧の各要素（ｉ，ｊ）と、各メンバが一対一で対応しているとする。∧の要素の数はＬ２であるため、メンバの数のＬ２と表せる必要があるように見えるが、メンバ数よりＬ２が大きくなるようにＬを選び、余計なメンバを形式的なものとすることで使用しなければ、任意のＮを選ぶことができる。
Ａ＾ＢはＡＢと同義とする。
（実施形態１）
本実施形態の不正者失効システムの構成を説明する。図１は本実施形態の不正者失効システムの一構成例を示すブロック図である。
図１に示すように、不正者失効システムは、メンバ追加装置３００と、暗号化装置４００と、複数の復号装置５００とを有する。複数の復号装置５００は同一の構成であるため、図１では復号装置を１台だけ示している。各装置は、ネットワークなどの通信回線で接続されている。以下に、各構成を詳細に説明する。
はじめに、メンバ追加装置３００の構成を説明する。図２はメンバ追加装置３００の一構成例を示すブロック図である。
図２に示すように、メンバ追加装置３００は、記憶部３２０と、制御部３２１と、入力部３２２と、出力部３２３とを有する。入力部３２２および出力部３２３は、ネットワークを介して外部とデータを送受信するための通信部を構成する。制御部３２１は、プログラムにしたがって所定の処理を実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）（不図示）と、プログラムを格納するためのメモリ（不図示）とを有する。
制御部３２１は、ドメイン変数生成手段３０３と、ランダム要素生成手段３０５と、諸鍵生成手段３０７と、秘密鍵生成手段３１２とを有する。ドメイン変数生成手段３０３、ランダム要素生成手段３０５、諸鍵生成手段３０７および秘密鍵生成手段３１２は、ＣＰＵがプログラムにしたがって処理を実行することでメンバ追加装置３００内に仮想的に構成される。
秘密鍵生成手段３１２は、配付メンバ集合に属するメンバに対応した鍵である秘密鍵をメンバ毎に生成する。
記憶部３２０には、制御部３２１の処理過程において算出されるドメイン変数３０４、ランダム要素４０３、諸鍵３０８およびメンバ追加鍵３１１の他に、外部から受信する情報が格納される。
次に、メンバ追加装置３００の動作を説明する。
最大メンバ数変数Ｌ（３０１）と乱数３０２が外部から入力される。Ｌは、本実施形態のシステムが扱う対象となるメンバの数をＮとしたとき、Ｎ＜Ｌ２＋１となる整数Ｌである。
ドメイン変数生成手段３０３が、Ｌ，ｐ，ｑ，ｎ，ＧＢ，ＧＴ，ｅを決定する。すなわち、これらを指定するドメイン変数３０４を生成する。続いて、ランダム要素生成手段３０５が、乱数３０２およびドメイン変数３０４を用いて、
ＧＢの生成元ｇ，ｈ，
ＧＢ’の生成元ｇ’，ｈ’，
ＧＢ’’の生成元ｇ’’，
ＧＴの生成元ｇＴ，
ＧＴ’の生成元ｇＴ’，
及び、
η∈Ｚ／ｑＺ，
α∈Ｚ／ｎＺ，
（βｊ）ｊ＝１，．．．，Ｌ∈（Ｚ／ｎＺ）Ｌ，
（δｊ）ｊ＝１，．．．，Ｌ∈（Ｚ／ｎＺ）Ｌ，
（γｉ）ｊ＝１，．．．，Ｌ∈（Ｚ／ｎＺ）Ｌ，
であるランダム要素３０６を一様無作為に生成する。
その後、諸鍵生成手段３０７が、ドメイン変数３０４とランダム要素３０６を用いて、
（ｇｉ）ｉ＝１，．．．，２Ｌ＝（［αｉ］ｇ）ｉ＝１，．．．，２Ｌ，
ｍ’＝［η］ｇ’，
（ｍｉ）ｉ＝１，．．．，２Ｌ＝（［ηαｉ］ｇ）ｉ＝１，．．．，２Ｌ，
（ｇ’ｉ）ｉ＝１，．．．，２Ｌ＝（［αｉ］ｇ’）ｉ＝１，．．．，２Ｌ，
（ｖ’ｉ）ｉ＝１，．．．，２Ｌ＝（［αｉη］ｇ’）ｉ＝１，．．．，２Ｌ，
（ｂ’ｊ）ｊ＝１，．．．，Ｌ＝（［βｊη］ｇ’）ｊ＝１，．．．，Ｌ，
（ｄｊ）ｊ＝１，．．．，Ｌ＝（［δｊ］ｇ）ｊ＝１，．．．，Ｌ，
（ｗ’ｊ）ｊ＝１，．．．，Ｌ＝（［ηδｊ］ｇ’）ｊ＝１，．．．，Ｌ，
（ｙｉ）ｉ＝１，．．．，Ｌ＝（［γｉ］ｇ）ｉ＝１，．．．，Ｌ，
（ｚ’ｊ）ｉ＝１，．．．，Ｌ＝（［ηβｊ］ｈ’）ｉ＝１，．．．，Ｌ，
ｍ＝［η］ｇ，
（ｗｊ）ｊ＝１，．．．，Ｌ＝（［ηδｊ］ｇ）ｊ＝１，．．．，Ｌ，
（ｂｊ）ｊ＝１，．．．，Ｌ＝（［βｊη］ｍ）ｊ＝１，．．．，Ｌ，
（ｚｊ）ｊ＝１，．．．，Ｌ＝（［ηβｊ］Ｈ）ｊ＝１，．．．，Ｌ，
である諸鍵３０８を生成する。
続いて、諸鍵生成手段３０７が、ランダム要素３０６と諸鍵３０８のデータから公開鍵３０９、メンバ追加鍵３１１、追跡鍵３１０を以下のように選んで出力する。
公開鍵３０９：
ＰＫＥＹ＝（Ｌ，ｇ，ｈ，ｍ’，（ｇｉ，ｍｉ，ｇ’ｉ，ｖ’ｉ）ｉ＝１，．．．，Ｌ，Ｌ＋２，．．．，２Ｌ，（ｙｉ）ｉ＝１，．．．，Ｌ，（ｂ’ｊ，ｄｊ，ｗ’ｊ，ｚ’ｊ）ｊ＝１，．．．，Ｌ）
メンバ追加鍵３１１：ＭＫＥＹ＝（α，（δｊ，βｊ）ｊ＝１，．．．，Ｌ，（γｉ）ｉ＝１，．．．，Ｌ）
追跡鍵３１０：ＴＫＥＹ＝（ｇ’，ｈ’，ｇ’’，ｍ，（ｗｊ，ｂｊ，ｚｊ）ｊ＝１，．．．，Ｌ）
さらに、秘密鍵生成手段３１２は、公開鍵３０９とメンバ追加鍵３１１を用いて、全ての（ｉ，ｊ）∈∧に対して秘密鍵３１３：ＳＫＥＹ［ｉｊ］＝ｋｉｊ＝［δｊαｉ＋βｊγｉ］ｇを生成し、これらの集合を出力する。
次に、暗号化装置４００の構成を説明する。図３は暗号化装置４００の一構成例を示すブロック図である。
図３に示すように、暗号化装置４００は、記憶部４２０と、制御部４２１と、入力部４２２と、出力部４２３とを有する。入力部４２２および出力部４２３は、ネットワークを介して外部とデータを送受信するための通信部を構成する。制御部４２１は、プログラムにしたがって所定の処理を実行するＣＰＵ（不図示）と、プログラムを格納するためのメモリ（不図示）とを有する。
制御部４２１は、ランダム要素生成手段４０２と、共有鍵生成手段４０４と、誤差付暗号文生成手段４０６と、誤差修正暗号文生成手段４０９とを有する。ランダム要素生成手段４０２と、共有鍵生成手段４０４と、誤差付暗号文生成手段４０６と、誤差修正暗号文生成手段４０９は、ＣＰＵがプログラムにしたがって処理を実行することで暗号化装置４００内に仮想的に構成される。記憶部４２０には、制御部４２１の処理過程において算出されるランダム要素４０３の他に、外部から受信する情報が格納される。
誤差付暗号文生成手段４０６は、共有鍵またはメッセージの少なくともいずれかと、暗号文の復号が許可されたメンバの集合を表すデータである配付メンバ集合データと、公開鍵３０９とを含むデータとが入力されると、共有鍵４０５またはメッセージの少なくともいずれかを含む暗号文の一種である誤差付暗号文４０７を生成する。配付メンバ集合データには、メンバ毎に異なる識別子の情報が含まれている。
誤差付暗号文４０７は、配付メンバ集合に属するメンバ毎に異なる情報である誤差情報を、共有鍵４０５またはメッセージの少なくともいずれかに付加したデータの暗号文である。そして、配付メンバ集合に属する各メンバの秘密鍵でそれぞれ復号できるように、これらのメンバ集合に依存した方法で暗号化されている。また、誤差付暗号文４０７には、配付メンバ集合データも含まれている。
誤差修正暗号文生成手段４０９は、公開鍵３０９を含むデータが入力されると、誤差修正暗号文４０８を生成する。誤差修正暗号文４１０は、上記誤差情報の暗号文である。各メンバの復号装置５００はそれぞれの秘密鍵で誤差修正暗号文４０８を復号することで、各自に対応した誤差情報を得ることが可能となる。
なお、本実施形態では、共有鍵を生成してこれを暗号化する場合の詳細を記しているが、別途メッセージを入力してこれを共有鍵と置き換えて暗号化することとしてもよい。また、公開鍵３０９はメンバ追加装置３００により生成されたものである。
次に、暗号化装置４００の動作を説明する。図４は暗号化装置の動作手順を示すフローチャートである。
配付メンバ集合Ｓ⊂∧を表すデータである配付メンバ集合４０１と、乱数４１１とが外部から入力され、メンバ追加装置３００から公開鍵３０９が入力されると、共有鍵生成手段４０４が、公開鍵３０９と乱数４１１を用いて、共有鍵４０５：Ｋ∈ＧＴ，を一様無作為に生成する。また、ランダム要素生成手段４０２が、公開鍵３０９と乱数４１１を用いて、（σｊ）ｊ＝１，．．．，Ｌ∈（Ｚ／ｎＺ）Ｌ、（εｉ）ｉ＝１，．．．，Ｌ∈（Ｚ／ｎＺ）Ｌおよびτ∈Ｚ／ｎＺを含むランダム要素４０３を一様無作為に生成する（ステップ１００１）。
続いて、誤差付暗号文生成手段４０６は、共有鍵４０５、公開鍵３０９、ランダム要素４０３および配付メンバ集合４０１を用いて、誤差付暗号文４０７を生成する（ステップ１００２）。誤差付暗号文４０７の要素は、Ｓ及び全てのｉ＝１，．．．，Ｌに関するＣｊ＝Ｋｅ（ｇ’１，ｍＬ）＾（σｊτ）、ｅ’ｊ＝［σｊτ］ｍ’、ｆ’ｊ＝［σｊτ］（ｗ’ｊ＋Σｋ∈ｓ∩∧ｊｖ’Ｌ＋１−ｋ）、およびｒ’ｊ＝［σｊ］ｂ’ｊ，ｔ’ｊ＝［σｊ］ｚ’ｊである。
また、誤差修正暗号文生成手段４０９は、公開鍵３０９およびランダム要素４０３を用いて、誤差修正暗号文４０８を生成する（ステップ１００３）。誤差修正暗号文４０８の要素は、全てのｊ＝１，．．．，Ｌに関するｓｉ＝［τ］ｙｉ＋［εｉ］ｈ、ｕｉ＝［εｉ］ｇである。なお、ステップ１００２とステップ１００３の処理はいずれが先であってもよい。
続いて、制御部４２１は、誤差付暗号文４０７および誤差修正暗号文４０８を含む共有鍵暗号文４１０：ＨＤＲ（Ｓ）＝（Ｓ，（Ｃｊ，ｅ’ｊ，ｆ’ｊ，ｒ’ｊ，ｔ’ｊ）ｊ＝１，．．．，Ｌ，（ｓｉ，ｕｉ）ｉ＝１，．．．，Ｌ）を出力する。また、生成した共有鍵４０５を出力する（ステップ１００４）。
次に、復号装置５００の構成を説明する。図５は復号装置５００の一構成例を示すブロック図である。
図５に示すように、復号装置５００は、記憶部５２０と、制御部５２１と、入力部５２２と、出力部５２３とを有する。入力部５２２および出力部５２３は、ネットワークを介して外部とデータを送受信するための通信部を構成する。制御部５２１は、プログラムにしたがって所定の処理を実行するＣＰＵ（不図示）と、プログラムを格納するためのメモリ（不図示）とを有する。
制御部５２１は、誤差付暗号文復号手段５０１と、誤差修正手段５０３とを有する。誤差付暗号文復号手段５０１および誤差修正手段５０３は、ＣＰＵがプログラムにしたがって処理を実行することで復号装置５００内に仮想的に構成される。記憶部５２０には、制御部５２１の処理過程において算出される誤差付共有鍵５０２の他に、外部から受信する情報が格納される。また、メンバとして登録された自装置の識別子が格納されている。
誤差付暗号文復号手段５０１は、誤差付暗号文４０７、公開鍵３０９、および秘密鍵３１３が入力されると、誤差付共有鍵５０２または誤差付メッセージの少なくともいずれかを出力する。誤差付共有鍵５０２は、配付メンバ集合に属するメンバ毎に異なる情報である誤差情報が付加された共有鍵である。誤差付メッセージは、誤差情報が付加されたメッセージである。
誤差修正手段５０３は、誤差付共有鍵５０２と、公開鍵３０９と、秘密鍵３１３と、誤差修正暗号文４０８とが入力されると、秘密鍵３１３で誤差修正暗号文４０８を復号して誤差情報を取り出し、誤差付共有鍵５０２から誤差情報を取り除いた共有鍵を出力する。また、誤差付メッセージが入力される場合には、誤差付メッセージから誤差情報を取り除いたメッセージを出力する。
なお、本実施形態では、復号されるデータが共有鍵である場合で説明しているが、共有鍵をメッセージと見なしてもよい。また、公開鍵３０９および秘密鍵３１３はメンバ追加装置３００により生成されたものである。
次に、復号装置５００の動作を説明する。図６は復号装置の動作手順を示すフローチャートである。
共有鍵暗号文ＨＤＲ（Ｓ）（４１０）が暗号化装置４００から入力され、公開鍵ＰＫＥＹ（３０９）および秘密鍵ＳＫＥＹ［ｉｊ］（３１３）がメンバ追加装置３００から入力される。ここで、各メンバの識別子となるインデックス（ｉ，ｊ）∈Ｓであるとする。誤差付暗号文復号手段５０１が、配付メンバ集合４０１に自装置の識別子の情報が含まれているか否かを判定する（ステップ１１０１）。配付メンバ集合４０１に自装置の識別子の情報が含まれている場合、ステップ１１０２に進み、含まれていない場合、暗号文の復号をせずに処理を終了する。
ステップ１１０２で、誤差付暗号文復号手段５０１が、誤差付暗号文４０７、公開鍵３０９および秘密鍵３１３を用いて、誤差付共有鍵Ｋ’（５０２）：Ｋ’＝Ｃｊ（ｅ（ｅ’ｊ，ｋｉｊ＋Σｋ≠ｉ，ｋ∈ｓ∩∧ｊＧＬ＋１−ｋ＋ｉ）／ｅ（ｇｉ，ｆ’ｊ））を生成する。
続いて、誤差修正手段５０３が、誤差付共有鍵５０２、公開鍵３０９および秘密鍵３１３を用いて、共有鍵Ｋ（４０５）：Ｋ＝Ｋ’（ｅ（ｔ’ｊ，ｕｉ）／ｅ（ｒ’ｊ，ｓｉ））を生成する。その後、制御部５２１は、共有鍵Ｋ（４０５）を出力する（ステップ１１０３）。
次に、本実施形態の不正者失効システムの動作を、図１を参照して説明する。
メンバ追加装置３００は、最大メンバ数変数３０１および乱数３０２が入力されると、公開鍵３０９、追跡鍵３１０、及び各インデックス（ｉ，ｊ）∈∧に対する秘密鍵３１３を生成する。
各インデックス（ｉ，ｊ）に対して、復号装置５００の１つが対応し、（ｉ，ｊ）に対応する復号装置５００には、公開鍵３０９と秘密鍵ＳＫＥＹ［ｉｊ］（３１３）が入力される。
暗号化装置４００は、どの復号装置５００に共有鍵を配付したいかを示す配付メンバ集合Ｓ（４０１）と、公開鍵３０９とが入力されると、共有鍵暗号文４１０と共有鍵４０５を生成する。続いて、暗号化装置４００は、共有鍵暗号文４１０をブロードキャストチャンネルを用いて配付する。
なお、この共有鍵４０５と共通鍵暗号システムを用いれば、任意のメッセージを配付メンバ集合に対して配付することが可能だが、この処理方法については、本発明の対象でないので詳細な説明を省略する。
各復号装置５００は、配付された共有鍵暗号文４１０を受信すると、配付メンバ集合Ｓに自装置に対応するインデックス（ｉ，ｊ）が含まれているか否かを判定する。配付メンバ集合Ｓに自装置のインデックス（ｉ，ｊ）が含まれている場合、秘密鍵３１３と公開鍵３０９とを用いて共有鍵暗号文４１０から共有鍵４０５を求める。一方、配付メンバ集合Ｓに自装置のインデックス（ｉ，ｊ）が含まれていない場合、暗号化された共有鍵の復号処理を行わない。
例えば、メンバのうちの不正者が明らかになった場合、配付メンバ集合Ｓからその不正者のインデックスを取り除くことにより、その後、暗号化装置はこの不正者が取り除かれた集合のみが復号できる暗号文を生成することができる。
本実施形態の不正者失効システムは、上述のようにして、「任意のメンバを失効できる暗号方式」の暗号文と「不正者をブラックボックス追跡可能な暗号方式」の暗号文とをリンクさせることが可能となる。それは、前者の暗号方式の暗号文を復号しただけでは受信者の持つ鍵に依存した雑音が残ることに対して、後者の暗号方式の暗号文を復号してその雑音をはじめて消去できるという関係にあるからである。このように、雑音によって両方の暗号文が関連づけられるので、後者の暗号方式により不正者を追跡し、特定した不正者を前者の暗号方式で失効することが可能となる。
本発明の暗号化装置や復号装置を、有料のＤＶＤやＣＤを再生する再生装置に限らず、ケーブルテレビ、衛星放送、一般の放送の送信装置や受信装置に適用することが可能である。受信料を支払う利用者に本発明の復号装置の機能を備えた受信装置を配付する。この受信装置の配付を受けた利用者、または、本発明の復号装置の機能を備えた受信装置を購入した利用者は、受信装置に視聴対象を受信させて試聴する。
このような場合に、利用者が自分の受信装置に含まれるデータから新たな受信装置を作って、他人に配布した場合を考える。特に、インターネットに復号プログラムを配布した場合を考える。従来技術（１）の方式を使った場合、インターネット上の復号プログラムを発見しても、不正者を発見できるとは限らない。また、従来技術（２）の方式を使った場合、不正者を発見できるが、インターネット上に広くばらまかれた復号プログラムは有効に働き続けるため、被害を食い止めることはできない。しかし、本発明を使えば、上述したように、広く配布されたプログラムに対して、それ以降の放送内容を復号できなくすることができる。
また、受信装置の海賊版が作られた場合、この海賊版の具体的な回路やプログラムコードを直接見なくても、この海賊版には復号できないが、他の受信装置には引き続き復号可能な暗号文を配付することで、海賊版を失効させることが可能となる。
本発明では、違法にプログラムや装置を複製する不正者を特定し、不正者を含むメンバ全員に暗号文を配付しても、不正者だけ暗号文を復号できなくすることができる。その後の不正者による、暗号文の違法な復号を防止できる。
（実施形態２）
本実施形態の不正者失効システムの構成を説明する。図７は本実施形態の不正者失効システムの一構成例を示すブロック図である。
図７に示すように、不正者失効システムは、不正者失効装置６００と、複数の復号装置と、メンバ追加装置３００とを有する。不正者失効装置６００、複数の復号装置、およびメンバ追加装置３００は、ネットワークなどの通信回線で接続されている。図７では、復号装置を１台だけ示している。不正者失効装置６００は、通信回線を介して、実施形態１で説明したメンバ追加装置３００と接続されている。復号装置８０３は、実施形態１で説明した複数の復号装置５００のうち、不正であるとされているものに相当する。
次に、不正者失効装置６００の構成を説明する。図８は不正者失効装置６００の一構成例を示すブロック図である。
図８に示すように、不正者失効装置６００は、記憶部６２０と、制御部６２１と、入力部６２２と、出力部６２３とを有する。入力部６２２および出力部６２３は、ネットワークを介して外部とデータを送受信するための通信部を構成する。制御部６２１は、ブログラムにしたがって所定の処理を実行するＣＰＵ（不図示）と、プログラムを格納するためのメモリ（不図示）とを有する。
制御部６２１は、追跡用ランダム要素生成手段６０４と、追跡用共有鍵生成手段６０６と、追跡用誤差付暗号文生成手段６０８と、追跡用誤差修正暗号文生成手段６０９とを有する。追跡用ランダム要素生成手段６０４、追跡用共有鍵生成手段６０６、追跡用誤差付暗号文生成手段６０８および追跡用誤差修正暗号文生成手段６０９は、ＣＰＵがプログラムにしたがって処理を実行することで不正者失効装置６００内に仮想的に構成される。記憶部６２０には、制御部６２１の処理過程において算出されるランダム要素６０５の他に、外部から受信する情報が格納される。また、不正者を判定するための基準となる閾値が予め格納されている。
追跡用共有鍵生成手段６０６は、公開鍵３０９と乱数６０１とが入力されると、追跡用共有鍵６０７または追跡用メッセージの少なくともいずれかを出力する。追跡用共有鍵６０７は、元になる共有鍵として記憶部６２０に格納される。
追跡用誤差付暗号文生成手段６０８は、共有鍵またはメッセージの少なくともいずれかと、配付メンバ集合データと、検査インデックス６０３と、公開鍵３０９を含むデータとが入力されると、共有鍵またはメッセージのうち少なくともいずれかの暗号文の一種である追跡用誤差付暗号文６１０を生成する。
追跡用誤差修正暗号文生成手段６０９は、検査インデックス６０３と、追跡鍵３１０と、公開鍵３０９を含むデータとが入力されると、追跡用誤差修正暗号文６１１を生成する。追跡用誤差付暗号文６１０および追跡用誤差修正暗号文６１１を含む暗号文を追跡用共有鍵暗号文６１２と称する。
本実施形態では、登録されたメンバから、追跡用共有鍵暗号文６１２の送信対象となるメンバを部分集合として抽出し、これを配付メンバ集合６０２とする。検査インデックス６０３は配付メンバ集合６０２に属するメンバの識別番号である。なお、登録されたメンバ全員を配付メンバ集合６０２としてもよい。
追跡用誤差付暗号文６１０は、配付メンバ集合６０２に属するメンバ毎に異なる情報である誤差情報を、共有鍵またはメッセージの少なくともいずれかに付加したデータの暗号文である。追跡用誤差付暗号文６１０には、配付メンバ集合データも含まれている。
不正者失効装置６００の制御部６２１は、各検査インデックス６０３の復号装置に対して複数個の追跡用暗号文を生成し、繰り返し送信する。そして、復号装置からの共有鍵の情報を収集し、受信した複数の共有鍵と追跡用共有鍵６０７との一致する確立を算出する。そして、隣り合う検査インデックス６０３の復号装置間で確率の差が閾値より小さいか否かを判定し、閾値より大きい確率の復号装置を失効対象とする。
次に、本実施形態の復号装置について説明する。なお、復号装置の構成は、実施形態１で説明した復号装置５００と同様であるため、ここでは、実施形態１の場合と異なる動作を説明する。不正対象の復号装置８０３は、追跡用共有鍵暗号文６１２が与えられたとき、有意な確率で正しい共有鍵を出力できないものとする。一方、不正対象でない復号装置５００は、有意な確率で正しい共有鍵を出力することが可能である。
なお、本実施形態では、共有鍵に対応する追跡用共有鍵を生成する場合で説明しているが、共有鍵をメッセージと見なしてもよい。また、公開鍵３０９および追跡鍵３１０はメンバ追加装置３００により生成されたものである。
次に、不正者失効装置６００の動作を説明する。図９は不正者失効装置の動作手順を示すフローチャートである。
検査インデックス（Ｉ，Ｊ）∈Ｓ（６０３）の情報を含む配付メンバ集合Ｓ⊂∧（６０２）と、乱数６０１とが外部から入力され、メンバ追加装置３００から公開鍵３０９および追跡鍵３１０が入力される。
追跡用共有鍵生成手段６０６は、公開鍵３０９および乱数６０１を用いて、追跡用共有鍵６０７：Ｋ∈ＧＴ’を一様無作為に生成する（ステップ１２０１）。
また、追跡用ランダム要素生成手段６０４は、公開鍵３０９、乱数６０１および検査インデックス６０３を用いて、追跡用のランダム要素６０５を一様無作為に生成する（ステップ１２０２）。追跡用のランダム要素６０５は、（σｊ）ｊ＝１，．．．，Ｌ∈（Ｚ／ｎＺ）Ｌ、（σ’ｊ）ｊ＝１，．．．，Ｊ−１∈（Ｚ／ｎＺ）Ｊ−１、τ∈Ｚ／ｎＺ、（Ｋｊ）ｊ＝１，．．．，Ｊ−１∈（ＧＴ’）Ｊ−１、（εｉ）ｉ＝１，．．．，Ｌ∈（Ｚ／ｎＺ）Ｌ、および（μｉ）ｉ＝１，．．．，ｌ］∈（Ｚ／ｎＺ）ｌである。
なお、ステップ１２０１とステップ１２０２の処理はいずれが先であってもよい。
そして、追跡用誤差付暗号文生成手段６０８は、追跡用共有鍵６０７、公開鍵３０９、ランダム要素６０５、検査インデックス６０３および配付メンバ集合Ｓ（６０２）を用いて、追跡用誤差付暗号文６１０：（Ｓ，Ｃｊ，ｅ’ｊ，ｆ’ｊ，ｒ’ｊ，ｔ’ｊ）ｊ＝１，．．．，Ｌを次のように生成する（ステップ１２０３）：
ｊ＞Ｊに関しては、
Ｃｊ＝Ｋｅ（ｇ’１，ｍＬ）＾｛σｊτ｝，
ｅ’ｊ＝［σｊτ］ｍ’，
ｆ’ｊ＝［σｊτ］（ｗ’ｊ＋Σ＿｛ｋ∈Ｓ∩∧ｊ｝ｖ’Ｌ＋１−ｋ），
ｒ’ｊ＝［σｊ］ｂ’ｊ，
ｔ’ｊ＝［σｊ］ｚ’ｊと生成する。
ｊ＝Ｊに関しては、
Ｃｊ＝Ｋｅ（ｇ１，ｍＬ）＾｛σｊτ｝、
ｅ’ｊ＝［σｊτ］ｍ、
ｆ’ｊ＝［σｊτ］（ｗｊ＋Σｋ∈ｓ∩∧ｊｍＬ＋１−ｋ）、
ｒ’ｊ＝［σｊ］ｂｊ，
ｔ’ｊ＝［σｊ］ｚｊと生成し、
ｊ＜Ｊに関しては、
Ｃｊ＝Ｋｊｅ（ｇ１，ｍＬ）＾｛σｊτ｝，
ｅ’ｊ＝［σｊτ］ｍ，
ｆ’ｊ＝［σｊτ］（ｗｊ＋Σｋ∈ｓ∩∧ｊｍＬ＋１−ｋ），
ｒ’ｊ＝［σ’ｊ］ｂｊ，
ｔ’ｊ＝［σ’ｊ］ｚｊと生成する。
また、追跡用誤差修正暗号文生成手段６０９は、公開鍵３０９、追跡鍵３１０、ランダム要素６０５および検査インデックス６０３を用いて、追跡用誤差修正暗号文６１１：（ｓｉ，ｕｉ）ｉ＝１，．．．，Ｌを次のように生成する（ステップ１２０４）：
ｉ≧Ｉに関しては、ｓｉ＝［τ］ｙｉ＋［εｉ］ｈ，ｕｉ＝［εｉ］ｇを生成し、
ｉ＜Ｉに関しては、ｓｉ＝［τ］ｙｉ＋［εｉ］ｈ＋［μｉ］ｇ’’，ｕｉ＝［εｉ］ｇを生成する。
なお、ステップ１２０３とステップ１２０４の処理はいずれが先であってもよい。
続いて、制御部６２１は、追跡用誤差付暗号文６１０および追跡用誤差修正暗号文６１１を含む追跡用共有鍵暗号文６１２
ＨＤＲ［Ｓ，Ｉ，Ｊ］＝（Ｓ，（Ｃｊ，ｅ’ｊ，ｆ’ｊ，ｒ’ｊ，ｔ’ｊ）ｊ＝１，．．．，Ｌ，（ｓｉ，ｕｉ）ｉ＝１，．．．，Ｌ）
を出力する。また、生成した追跡用共有鍵６０７を出力する（ステップ１２０５）。
次に、不正者失効システムにおいて、不正者失効装置６００による不正者を探索するための動作を説明する。図１０は不正者失効装置による不正者探索の動作手順を示すフローチャートである。ここでは、便宜上、初期値としてｉ＝０、ｊ＝０を設定している。図７では、不正者失効装置６００と復号装置８０３とが行う処理を模式的に示している。この不正者失効システムでは配付メンバ集合Ｓ＊＝Ｓとする。
不正者失効装置６００が次のような動作を行う。ｉとｊについて初期値を設定する（ステップ１３０１）。
（１）ｉ＝１からＬまでｉに関して順に（２）から（３）の処理をする（ステップ１３０２およびステップ１３０９）。なお、ステップ１３０２で、ｉが１増える度にｊを初期値に戻す。
（２）ｊ＝１からＬまでｊに関して順に（３）の処理をする（ステップ１３０３およびステップ１３０８）。
（３）以下の（ｉ）から（ｉｉ）の処理（ステップ１３０４）を多数繰り返し、復号装置８０３の出力する共有鍵８０６が追跡用共有鍵６０７と一致する確率を求める（ステップ１３０５）。結果、一致する確率がｂ＝０の場合とｂ＝１の場合で無視できないほど異なっていれば、Ｓ＊から検査インデックス（ｉ，ｊ）のメンバを除いた集合を新たにＳ＊とし、（１）に戻る。結果、一致する確率の違いが無視できるほどであれば、何もせずに（３）を終了する（ステップ１３０６）。検査インデックス（ｉ，ｊ）と検査インデックス（ｉ，ｊ＋１）の間で上記確率の値が大きく異なる場合、検査インデックス（ｉ，ｊ）のメンバは不正者から除外され、検査インデックス（ｉ，ｊ＋１）のメンバが不正者として推定され、検査インデックス（ｉ，ｊ＋１）のメンバがＳ＊に残ることになる（ステップ１３０７）。一致する確率の違いが無視できるかできないかは、閾値を基準にして判定する。
（ｉ）ｂ∈｛０，１｝をランダムに選び、Ｓ＊と（ｉ，ｊ＋ｂ）と公開鍵３０９と追跡鍵３１０とを用いて、追跡用共有鍵暗号文６１２と追跡用共有鍵６０７を求める。ただし、ｊ＝Ｌの場合、（ｉ，Ｌ＋１）は、（ｉ＋１，０）と読み直す。
（ｉｉ）追跡用共有鍵暗号文６１２を復号装置８０３に送信し、その出力を追跡用共有鍵６０７と比較する。
（４）最後に変更が加えられたＳ＊を出力する。このＳ＊が失効対象のメンバ集合となる。
このようにして、不正者失効装置６００は、共有鍵暗号文を復号できなくなるような復号装置８０３の集合である失効済配付メンバ集合Ｓ＊⊂Ｓ（８０７）を求める。
本実施形態の不正者失効システムは、不正者失効装置が、配付メンバ集合に対して、復号装置が不正処理を行うと有意な確率で正しい共有鍵を出力できない暗号文を出力する。不正者の復号装置が暗号文を復号すると、復号した共有鍵またはメッセージが元の情報と
一致する確立が他の復号装置と比較して極端に異なる値になる。その結果、不正者の復号装置を検出することが可能となる。これにより実施形態１と同様な効果を得ることができる。
（実施形態３）
本実施形態で用いられる記法について説明する。
ｐとｑを異なる素数、ｎをｎ＝ｐｑなる合成数とする。ＧＢとＧＴを位数ｎの巡回群とする。ＧＢ’を異数ｑとなるＧＢの部分群とし、ＧＴ’を異数ｑとなるＧＴの部分群とする。ＧＢ’’を異数ｐとなるＧＢの部分群とする。Ｇ’’をＧＢ’’の生成元の一つとする。ここで、ＧＢを加法的巡回群、ＧＴを乗法的巡回群であるとする。Ｇ’∈ＧＢのα倍を［α］Ｇ’と表し、ｇ∈ＧＴのα乗をｇαと表す。
ｅをＧＢ掛けるＧＢからＧＴへの非縮退な双線形写像であるとする。ここで、双線形であるとは、全てのα，β∈Ｚ／ｑＺ及びＧ，Ｈ∈ＧＢに対して、
ｅ（［α］Ｇ，［β］Ｈ）＝ｅ（Ｇ，Ｈ）αβが成り立つことである。
また、非縮退であるとは、ＧがＧＢの生成元であるとき、ｅ（Ｇ，Ｇ）がＧＴの生成元となるということである。
Ｌを整数、∧を二つの集合｛１，．．．，Ｌ｝と｛１，．．．，Ｌ｝の直積とする。すなわち、∧の要素は、二つの１からＬまでの数、たとえば、ｉとｊで（ｉ，ｊ）のように指定される。故に、∧の要素はＬ２個ある。
∧ｊ⊆∧を（ｉ，ｊ）、ただし、ｉ∈｛１，．．．，Ｌ｝と表せる∧の部分集合とする。また、∧の各要素（ｉ，ｊ）と、各メンバが一対一で対応しているとする。∧の要素の数はＬ２であるため、メンバの数のＬ２と表せる必要があるように見えるが、メンバ数よりＬ２が大きくなるようにＬを選び、余計なメンバを形式的なものとすることで使用しなければ、任意のＮを選ぶことができる。
Ａ＾ＢはＡＢと同義とする。
∧の部分集合Ｓ⊂∧に対して、Ｓ＊は∧＼Ｓ、すなわち∧におけるＳの補集合を表すものとする。
次に、本実施形態の不正者失効システムについて説明する。なお、本実施形態の不正者失効システムは図１に示す構成と同様であるため、図１から図６を参照し、実施形態１と比べて異なる構成および動作を中心に説明する。
図１に示すように、本実施形態の不正者失効システムは、メンバ追加装置３００と、暗号化装置４００と、複数の復号装置５００とを有する。複数の復号装置５００は同一の構成であるため、図１では復号装置を１台だけ示している。各装置は、ネットワークなどの通信回線で接続されている。各装置の構成は実施形態１と同様であるため、ここではその詳細な説明を省略する。
次に、メンバ追加装置３００の動作を説明する。
最大メンバ数変数Ｌ（３０１）と乱数３０２が外部から入力される。Ｌは、本実施形態のシステムが扱うメンバの数をＮとしたとき、Ｎ＜Ｌ２＋１となる整数Ｌである。
ドメイン変数生成手段３０３が、Ｌ，ｐ，ｑ，ｎ，ＧＢ，ＧＴ，ｅを決定する。すなわち、これらを指定するドメイン変数３０４を生成する。メンバは１からＬまでの整数二つのなす対によって指定される。
続いて、ランダム要素生成手段３０５が、乱数３０２とドメイン変数３０４を用いて、
ＧＢの生成元Ｇ，Ｈ，Ｍ，
ＧＢ’の生成元Ｇ’，Ｈ’，
ＧＢ’’の生成元Ｇ’’，
及び、
ξ∈Ｚ／ｎＺ，
α∈Ｚ／ｎＺ，
（βｊ）ｊ＝１，．．．，Ｌ∈（Ｚ／ｎＺ）Ｌ，
（δｊ）ｊ＝１，．．．，Ｌ∈（Ｚ／ｎＺ）Ｌ，
（γｉ）ｊ＝１，．．．，Ｌ∈（Ｚ／ｎＺ）Ｌ，
（θｋ）ｋ＝１，．．．，Ｌ∈（Ｚ／ｎＺ）Ｌ，
であるランダム要素３０６を一様無作為に生成する。
その後、諸鍵生成手段３０７が、ドメイン変数３０４とランダム要素３０６を用いて、
Ｈ＝［ξ］Ｇ
Ｈ’＝［ξ］Ｇ’
ｍ＝ｅ（Ｇ，Ｍ）
ｍ’＝ｅ（Ｇ’，Ｍ）
（Ｂｊ）ｊ＝１，．．．，Ｌ＝（［βｊ］Ｇ）ｊ＝１，．．．，Ｌ，
（Ｈｊ）ｊ＝１，．．．，Ｌ＝（［βｊ］Ｈ）ｊ＝１，．．．，Ｌ，
（Ｂ’ｊ）ｊ＝１，．．．，Ｌ＝（［βｊ］Ｇ’）ｊ＝１，．．．，Ｌ，
（Ｈ’ｊ）ｊ＝１，．．．，Ｌ＝（［βｊ］Ｈ’）ｊ＝１，．．．，Ｌ，
（Ｇｉ）ｉ＝１，．．．，２Ｌ＝（［αｉ］Ｇ）ｉ＝１，．．．，２Ｌ，
（Ｇ’ｉ）ｉ＝１，．．．，２Ｌ＝（［αｉ］Ｇ’）ｉ＝１，．．．，２Ｌ，
（Ｄｊ）ｊ＝１，．．．，Ｌ＝（［δｊ］Ｇ）ｊ＝１，．．．，Ｌ，
（Ｄ’ｊ）ｊ＝１，．．．，Ｌ＝（［δｊ］Ｇ’）ｊ＝１，．．．，Ｌ，
（Ｊｉ）ｉ＝１，．．．，Ｌ＝（［γｉ］Ｇ）ｉ＝１，．．．，Ｌ，
（Ｘｋ，ｉ）ｋ＝１，．．．，Ｌ：ｉ＝１，．．．，２Ｌ＝（［θｋαｉ］Ｇ）ｉ＝１，．．．，２Ｌ，
である諸鍵３０８を生成する。
この諸鍵３０８がｋ毎に無作為に生成されたθｋと定数αの冪乗αｉの積に比例する鍵Ｘｋ，ｉとを含んでいることが、本実施形態の大きな特徴である。
続いて、諸鍵生成手段３０７が、ランダム要素３０６と諸鍵３０８のデータから公開鍵３０９、メンバ追加鍵３１１、追跡鍵３１０を以下のように選んで出力する。
公開鍵３０９：ＰＫＥＹ＝｛Ｌ，ｎ，ｍ，ｍ’，Ｇ，Ｈ，Ｇ’，（Ｂｊ，Ｈｊ，Ｂ’ｊ，Ｈ’ｊ）ｊ＝１，．．．，Ｌ，（Ｇｉ，Ｇ’ｉ）ｉ＝１，．．．，Ｌ，Ｌ＋２，．．．，２Ｌ，（Ｄｉ，Ｄ’ｉ）ｉ＝１，．．．，Ｌ，（Ｊｉ）ｉ＝１，．．．，Ｌ，（Ｘｋ，ｉ）ｋ＝１，．．．，Ｌ，ｉ＝１，．．．，２Ｌ｝
メンバ追加鍵３１１：ＭＫＥＹ＝（Ｍ，α，（δｊ，βｊ）ｊ＝１，．．．，Ｌ，（γｉ）ｉ＝１，．．．，Ｌ，（θｋ）ｋ＝１，．．．，Ｌ）
追跡鍵３１０：ＴＫＥＹ＝Ｇ’’
さらに、秘密鍵生成手段３１２は、公開鍵３０９とメンバ追加鍵３１１を用いて、全ての（ｉ，ｊ）∈∧に対して秘密鍵３１３：ＳＫＥＹ［ｉｊ］＝Ｋｉ，ｊ＝［δｊαｉθｉ＋βｊγｉ］Ｇ＋Ｍを生成し、これらの集合を出力する。
この秘密鍵を生成するために、ｋ毎に無作為に生成されたθｋと定数αｉの積に比例する値αｉθｉを生成する過程が含まれていることが、本実施形態の大きな特徴である。
次に、暗号化装置４００の動作を図４を参照して説明する。本実施形態では、共有鍵を生成してこれを暗号化する場合の詳細を記しているが、別途メッセージが入力されることで、共有鍵と置き換えてこれを暗号化してもよい。また、公開鍵および秘密鍵は本実施形態のメンバ追加装置３００により生成されたものである。
配付メンバ集合Ｓ⊂∧を表すデータである配付メンバ集合４０１と乱数４１１とが外部から入力され、公開鍵３０９がメンバ追加装置３００から入力される。共有鍵生成手段４０４が公開鍵３０９と乱数４１１を用いて、共有鍵４０５：ｋ∈ＧＴを一様無作為に生成する。また、ランダム要素生成手段４０２が、公開鍵３０９と乱数４１１を用いて、（σｊ）ｊ＝１，．．．，Ｌ∈（Ｚ／ｎＺ）Ｌ、（εｉ）ｉ＝１，．．．，Ｌ∈（Ｚ／ｎＺ）Ｌ、およびτ∈Ｚ／ｎＺであるランダム要素４０３を一様無作為に生成する（ステップ１００１）。
続いて、誤差付暗号文生成手段４０６は、共有鍵４０５、公開鍵３０９、ランダム要素４０３および配付メンバ集合４０１を用いて、誤差付暗号文４０７を生成する（ステップ１００２）。誤差付暗号文４０７の要素は、Ｓ及び全てのｉ＝１，．．．，Ｌに関する：
ｃｊ＝ｋｍ’＾（σｊτ），
Ｅ’ｊ＝［σｊτ］Ｇ’，
Ｆ’ｊ＝［σｊτ］（Ｄ’ｊ＋Σｋ∈Ｓ（ｊ）Ｇ’Ｌ＋１−ｋ），
Ｒ’ｊ＝［σｊ］Ｂ’ｊ，
Ｔ’ｊ＝［σｊ］Ｈ’ｊ，
である。
ただし、Ｓ（ｊ）＝Ｓ＊∩∧ｊである。
また、誤差修正暗号文生成手段４０９は、公開鍵３０９およびランダム要素４０３を用いて、誤差修正暗号文４０８を生成する（ステップ１００３）。誤差修正暗号文４０８の要素は、全てのｊ＝１，．．．，Ｌに関するＳｉ＝［τ］Ｊｉ＋［εｉ］Ｈ、Ｕｉ＝［εｉ］Ｇである。なお、ステップ１００２とステップ１００３の処理はいずれが先であってもよい。
本実施形態では、個々で、暗号化に際して、用いるＳ（ｉ）はＳの要素が含まれないものである。そのため、暗号文を生成するにあたり、全てのｊに関してＳ（ｊ）に属する（ｋ，ｊ）に関してＧＬ＋１−ｋの和を取るため、配付メンバ集合に属さないメンバの個数のデータの和を取る処理となる。
続いて、制御部４２１は、誤差付暗号文４０７および誤差修正暗号文４０８を含む共有鍵暗号文４１０：ＨＤＲ（Ｓ）＝（Ｓ，（ｃｊ，Ｅ’ｊ，Ｆ’ｊ，Ｒ’ｊ，Ｔ’ｊ）ｊ＝１，．．．，Ｌ，（Ｓｉ，Ｕｉ）ｉ＝１，．．．，Ｌ）を出力する。また、生成した共有鍵４０５を出力する（ステップ１００４）。
次に、復号装置５００の動作を図６を参照して説明する。本実施形態では、データが共有鍵である場合の詳細を記しているが、これをメッセージとみなしてもよい。また、公開鍵および秘密鍵は本実施形態のメンバ追加装置３００により生成されたものである。
共有鍵暗号文ＨＤＲ（Ｓ）（４１０）が暗号化装置４００から入力され、公開鍵ＰＫＥＹ（３０９）および秘密鍵ＳＫＥＹ［ｉｊ］（３１３）がメンバ追加装置３００から入力される。ここで、各メンバの識別子となるインデックス（ｉ，ｊ）∈Ｓであるとする。
誤差付暗号文復号手段５０１が、配付メンバ集合４０１に自装置の識別子の情報が含まれているか否かを判定する（ステップ１１０１）。配付メンバ集合４０１に自装置の識別子の情報が含まれている場合、ステップ１１０２に進み、含まれていない場合、暗号文の復号をせずに処理を終了する。
ステップ１１０２で、誤差付暗号文復号手段５０１は、誤差付暗号文４０７、公開鍵３０９および秘密鍵３１３を用いて、誤差付共有鍵Ｋ’（５０２）：ｋ’＝ｃｊ（ｅ（Ｘｉ，ｉ，Ｆ’ｊ）／ｅ（Ｅ’ｊ，Ｋｉ，ｊ＋Σｋ∈Ｓ（ｊ）Ｘｉ，Ｌ＋１−ｋ＋ｉ））を生成する。ただし、Ｓ（ｊ）＝Ｓ＊∩∧ｊである。
ここで、各（ｉ，ｊ）に関する復号において使われるＸｋ，ｉはｋ＝ｉに限られることが特徴である。また、この誤差付暗号文を復号するにあたり、全てのｊに関してＳ（ｊ）に属する（ｋ，ｊ）に関してＸｉ，Ｌ＋１−ｋの和を取るため、配付メンバ集合に属さないメンバの個数のデータの和を取る処理となる。
続いて、誤差修正手段５０３が、誤差付共有鍵５０２、公開鍵３０９および秘密鍵３１３を用いて、共有鍵Ｋ’４０５：ｋ＝ｋ’（ｅ（Ｒ’ｊ，Ｓｉ）／ｅ（Ｔ’ｊ，Ｕｉ））を生成する。その後、制御部５２１は、共有鍵ｋ（４０５）を出力する（ステップ１１０３）。
本実施形態の不正者失効システムの動作は、上述したように、暗号装置４００および復号装置５００が配付メンバ集合に属さないメンバの個数のデータの和を求める処理を行い、その他については実施形態１と同様であるため、その詳細な説明を省略する。
本実施形態の不正者失効システムにおいては、実施形態１の方法と比べて、より多くのメンバが結託して復号装置の海賊版を構成しても、全ての結託したメンバを特定することが可能であることが証明できる。実際、全てのメンバが結託した場合においてもこれらを全て特定し、それらの資格を失効することが可能となる効果がある。
（実施形態４）
本実施形態の不正者失効システムについて説明する。なお、本実施形態の不正者失効システムは図７に示す構成と同様であるため、図７から図１０を参照し、実施形態２と比べて異なる構成および動作を中心に説明する。また、本実施形態で用いられる記法については、実施形態３の場合と同様であるため、その詳細な説明を省略する。
図７に示すように、不正者失効システムは、不正者失効装置６００と、複数の復号装置と、メンバ追加装置３００とを有する。不正者失効装置６００、複数の復号装置、およびメンバ追加装置３００は、ネットワークなどの通信回線で接続されている。図７では、復号装置を１台だけ示している。不正者失効装置６００は、通信回線を介して、実施形態３で説明したメンバ追加装置３００と接続されている。復号装置８０３は、実施形態３で説明した複数の復号装置５００のうち、不正であるとされているものに相当する。各装置の構成は実施形態２と同様であるため、ここではその詳細な説明を省略する。
次に、不正者失効装置６００の動作を図９を参照して説明する。なお、公開鍵、秘密鍵および追跡鍵は実施形態３で説明したメンバ追加装置３００により生成されたものである。
配付メンバ集合Ｓ⊂∧（６０２）、検査インデックス（Ｉ，Ｊ）∈Ｓ（６０３）、および乱数６０１が外部から入力され、公開鍵３０９がメンバ追加装置３００から入力される。
追跡用共有鍵生成手段６０６は、公開鍵３０９および乱数６０１を用いて、追跡用共有鍵６０７：ｋ∈ＧＴ’を一様無作為に生成する（ステップ１２０１）。
また、追跡用ランダム要素生成手段６０４は、公開鍵３０９、乱数６０１、および検査インデックス６０３を用いて、追跡用のランダム要素６０５を一様無作為に生成する（ステップ１２０２）。追跡用のランダム要素６０５は、（σｊ）ｊ＝１，．．．，Ｌ∈（Ｚ／ｎＺ）Ｌ、τ∈Ｚ／ｎＺ、（ｋ’ｊ）ｊ＝１，．．．，Ｊ−１∈（ＧＴ’）Ｊ−１、（σ’ｊ），ｊ＝１，．．．，Ｊ−１（Ｚ／ｎＺ）Ｊ−１、（εｉ）ｉ＝１，．．．，Ｌ∈（Ｚ／ｎＺ）Ｌ、および（ε’ｉ）ｉ＝１，．．．，ｌ｝∈（Ｚ／ｎＺ）Ｌである。
なお、ステップ１２０１とステップ１２０２の処理はいずれが先であってもよい。
そして、追跡用誤差付暗号文生成手段６０８は、追跡用共有鍵６０７、公開鍵３０９、ランダム要素６０５、検査インデックス６０３および配付メンバ集合Ｓ（６０２）を用いて、追跡用誤差付暗号文６１０：（Ｓ，ｃｊ，Ｅ’ｊ，Ｆ’ｊ，Ｒ’ｊ，Ｔ’ｊ）ｊ＝１，．．．，Ｌを次のように生成する（ステップ１２０３）：
ｊ＞Ｊに関しては、
ｃｊ＝ｋｍ’＾｛σｊτ｝，
Ｅ’ｊ＝［σｊτ］Ｇ’，
Ｆ’ｊ＝［σｊτ］（Ｄ’ｊ＋Σｋ∈Ｓ（ｊ）Ｇ’Ｌ＋１−ｋ），
Ｒ’ｊ＝［σｊ］Ｂ’ｊ，
Ｔ’ｊ＝［σｊ］Ｈ’ｊと生成する。
ｊ＝Ｊに関しては、
ｃｊ＝ｋｍ＾｛σｊτ｝，
Ｅ’ｊ＝［σｊτ］Ｇ，
Ｆ’ｊ＝［σｊτ］（Ｄｊ＋Σｋ∈Ｓ（ｊ）ＧＬ＋１−ｋ），
Ｒ’ｊ＝［σｊ］Ｂｊ，
Ｔ’ｊ＝［σｊ］Ｈｊと生成し、
ｊ＜Ｊに関しては、
ｃｊ＝ｋ’ｊｍ＾｛σｊτ｝，
Ｅ’ｊ＝［σｊτ］Ｇ，
Ｆ’ｊ＝［σｊτ］（Ｄｊ＋Σｋ∈Ｓ（ｊ）ＧＬ＋１−ｋ），
Ｒ’ｊ＝［σ’ｊ］Ｂｊ，
Ｔ’ｊ＝［σ’ｊ］Ｈｊと生成する。
本実施形態では、個々で、暗号化に際して、用いるＳ（ｉ）はＳの要素が含まれないものである。そのため、暗号文を生成するにあたり、全てのｊに関してＳ（ｊ）に属する（ｋ，ｊ）に関してＧＬ＋１−ｋの和を取るため、配付メンバ集合に属さないメンバの個数のデータの和を取る処理となる。
また、追跡用誤差修正暗号文生成手段６０９は、公開鍵３０９、追跡鍵３１０、ランダム要素６０５および検査インデックス６０３を用いて、追跡用誤差修正暗号文６１１：（Ｓｓｉ，Ｕｉ）ｉ＝１，．．．，Ｌを次のように生成する（ステップ１２０４）：
ｉ≧Ｉに関しては、Ｓｉ＝［τ］Ｊｉ＋［εｉ］Ｈ，Ｕｉ＝［εｉ］Ｇと生成し、
ｉ＜Ｉに関しては、Ｓｉ＝［τ］Ｊｉ＋［εｉ］Ｈ＋［ε’ｉ］Ｇ’’，Ｕｉ＝［εｉ］Ｇを生成する。なお、ステップ１２０３とステップ１２０４の処理はいずれが先であってもよい。
続いて、制御部６２１は、追跡用誤差付暗号文６１０および追跡用誤差修正暗号文６１１を含む追跡用共有鍵暗号文６１２：
ＨＤＲ［Ｓ，Ｉ，Ｊ］＝（Ｓ，（ｃｊ，Ｅ’ｊ，Ｆ’ｊ，Ｒ’ｊ，Ｔ’ｊ）ｊ＝１，．．．，Ｌ，（Ｓｉ，Ｕｉ）ｉ＝１，．．．，Ｌ）
を出力する。また、生成した追跡用共有鍵６０７を出力する（ステップ１２０５）。
本実施形態の不正者失効システムの動作は、上述したように、不正者失効装置６００が配付メンバ集合に属さないメンバの個数のデータの和を求める処理を行う。図１０で説明した不正者探索動作などのその他の動作については実施形態２と同様であるため、その詳細な説明を省略する。
本実施形態の不正者失効システムにおいては、実施形態２の方法と比べて、より多くのメンバが結託して復号装置の海賊版を構成しても、全ての結託したメンバを特定することが可能であることが証明できる。実際、全てのメンバが結託した場合においてもこれらを全て特定し、それらの資格を失効することが可能となる効果がある。
（実施形態５）
本実施形態で用いられる記法は、実施形態３で説明した記法と同様であるために、ここではその説明を省略する。
本実施形態の不正者失効システムについて説明する。なお、本実施形態の不正者失効システムは、メンバ追加装置３００が追跡鍵３１０を生成しないことを除いて、図１に示す構成と同様であるため、ここでは各装置の構成の詳細な説明を省略する。また、図１から図６を参照し、実施形態３と比べて異なる動作を中心に説明する。
図１に示すように、本実施形態の不正者失効システムは、メンバ追加装置３００と、暗号化装置４００と、複数の復号装置５００とを有する。複数の復号装置５００は同一の構成であるため、図１では復号装置を１台だけ示している。各装置は、ネットワークなどの通信回線で接続されている。本実施形態のメンバ追加装置３００は、実施形態３の場合と異なり、図１に示す追跡鍵３１０を生成しない。
次に、メンバ追加装置３００の動作を説明する。
最大メンバ数変数Ｌ（３０１）と乱数３０２が外部から入力される。Ｌは、本実施形態のシステムが扱うメンバの数をＮとしたとき、Ｎ＜Ｌ２＋１となる整数Ｌである。
ドメイン変数生成手段３０３が、Ｌ，ｐ，ｑ，ｎ，ＧＢ，ＧＴ，ｅを決定する。すなわち、これらを指定するドメイン変数３０４を生成する。メンバは１からＬまでの整数二つのなす対によって指定される。
続いて、ランダム要素生成手段３０５が、乱数３０２とドメイン変数３０４を用いて、
ＧＢの生成元Ｇ，Ｈ，Ｍ，
ＧＢ’の生成元Ｇ’，Ｈ’，
ＧＢ’’の生成元Ｇ’’，
及び、
ξ∈Ｚ／ｎＺ，
α∈Ｚ／ｎＺ，
（βｊ）ｊ＝１，．．．，Ｌ∈（Ｚ／ｎＺ）Ｌ，
（δｊ）ｊ＝１，．．．，Ｌ∈（Ｚ／ｎＺ）Ｌ，
（γｉ）ｊ＝１，．．．，Ｌ∈（Ｚ／ｎＺ）Ｌ，
（θｋ）ｋ＝１，．．．，Ｌ∈（Ｚ／ｎＺ）Ｌ，
（λ，π）∈（Ｚ／ｎＺ）２，
であるランダム要素３０６を一様無作為に生成する。本実施形態では、（λ，π）がランダム要素３０６に含まれている。
その後、諸鍵生成手段３０７が、ドメイン変数３０４とランダム要素３０６を用いて、
Ｈ＝［ξ］Ｇ
Ｈ’＝［ξ］Ｇ’
ｍ＝ｅ（Ｇ，Ｍ）
ｍ’＝ｅ（Ｇ’，Ｍ）
（Ｂｊ）ｊ＝１，．．．，Ｌ＝（［βｊ］Ｇ）ｊ＝１，．．．，Ｌ，
（Ｈｊ）ｊ＝１，．．．，Ｌ＝（［βｊ］Ｈ）ｊ＝１，．．．，Ｌ，
（Ｂ’ｊ）ｊ＝１，．．．，Ｌ＝（［βｊ］Ｇ’）ｊ＝１，．．．，Ｌ，
（Ｈ’ｊ）ｊ＝１，．．．，Ｌ＝（［βｊ］Ｈ’）ｊ＝１，．．．，Ｌ，
（Ｇｉ）ｉ＝１，．．．，２Ｌ＝（［αｉ］Ｇ）ｉ＝１，．．．，２Ｌ，
（Ｇ’ｉ）ｉ＝１，．．．，２Ｌ＝（［αｉ］Ｇ’）ｉ＝１，．．．，２Ｌ，
（Ｄｊ）ｊ＝１，．．．，Ｌ＝（［δｊ］Ｇ）ｊ＝１，．．．，Ｌ，
（Ｄ’ｊ）ｊ＝１，．．．，Ｌ＝（［δｊ］Ｇ’）ｊ＝１，．．．，Ｌ，
（Ｊｉ）ｉ＝１，．．．，Ｌ＝（［γｉ］Ｇ）ｉ＝１，．．．，Ｌ，
（Ｘｋ，ｉ）ｋ＝１，．．．，Ｌ：ｉ＝１，．．．，２Ｌ＝（［θｋαｉ］Ｇ）ｉ＝１，．．．，２Ｌ，
（Ｖ，Ｗ）＝（［π］Ｇ，［λ］Ｇ’’＋［π］Ｈ）
である諸鍵３０８を生成する。実施形態３と異なり、諸鍵３０８に（Ｖ，Ｗ）が含まれている。
本実施形態では、諸鍵３０８がｋ毎に無作為に生成されたθｋと定数αの冪乗αｉの積に比例する鍵Ｘｋ，ｉとを含んでいることが、実施形態３と同様に、大きな特徴である。
続いて、諸鍵生成手段３０７が、ランダム要素３０６と諸鍵３０８のデータから公開鍵３０９、メンバ追加鍵３１１、追跡鍵３１０を以下のように選んで出力する。
公開鍵３０９：ＰＫＥＹ＝｛Ｌ，ｎ，ｍ，ｍ’，Ｇ，Ｈ，Ｇ’，（Ｂｊ，Ｈｊ，Ｂ’ｊ，Ｈ’ｊ）ｊ＝１，．．．，Ｌ，（Ｇｉ，Ｇ’ｉ）ｉ＝１，．．．，Ｌ，Ｌ＋２，．．．，２Ｌ，（Ｄｉ，Ｄ’ｉ）ｉ＝１，．．．，Ｌ，（Ｊｉ）ｉ＝１，．．．，Ｌ，（Ｘｋ，ｉ）ｋ＝１，．．．，Ｌ，ｉ＝１，．．．，２Ｌ，（Ｖ，Ｗ）｝
メンバ追加鍵３１１：ＭＫＥＹ＝（Ｍ，α，（δｊ，βｊ）ｊ＝１，．．．，Ｌ，（γｉ）ｉ＝１，．．．，Ｌ，（θｋ）ｋ＝１，．．．，Ｌ）
さらに、秘密鍵生成手段３１２は、公開鍵３０９とメンバ追加鍵３１１を用いて、全ての（ｉ，ｊ）∈∧に対して秘密鍵３１３：ＳＫＥＹ［ｉｊ］＝Ｋｉ，ｊ＝［δｊαｉθｉ＋βｊγｉ］Ｇ＋Ｍを生成し、これらの集合を出力する。
本実施形態は、実施形態３と同様に、秘密鍵を生成するために、ｋ毎に無作為に生成されたθｋと定数αｉの積に比例する値αｉθｉを生成する過程が含まれていることが大きな特徴である。また、実施形態３と比べると、追跡鍵を生成する必要がない。
次に、暗号化装置４００の動作を図４を参照して説明する。本実施形態では、共有鍵を生成してこれを暗号化する場合の詳細を記しているが、別途メッセージが入力されることで、共有鍵と置き換えてこれを暗号化してもよい。また、公開鍵および秘密鍵は本実施形態のメンバ追加装置３００により生成されたものである。
配付メンバ集合Ｓ⊂∧を表すデータである配付メンバ集合４０１と乱数４１１とが外部から入力され、公開鍵３０９がメンバ追加装置３００から入力される。共有鍵生成手段４０４が公開鍵３０９と乱数４１１を用いて、共有鍵４０５：ｋ∈ＧＴを一様無作為に生成する。また、ランダム要素生成手段４０２が、公開鍵３０９と乱数４１１を用いて、（σｊ）ｊ＝１，．．．，Ｌ∈（Ｚ／ｎＺ）Ｌ、（εｉ）ｉ＝１，．．．，Ｌ∈（Ｚ／ｎＺ）Ｌ、および（τ，ρ）∈（Ｚ／ｎＺ）２であるランダム要素４０３を一様無作為に生成する（ステップ１００１）。本実施形態の暗号化装置４００では、メンバ追加装置３００が追跡鍵を生成しないことに対応して、ランダム要素４０３に（τ，ρ）が含まれている。実施形態３と異なり、後述する誤差付暗号文４０７および誤差修正暗号文４０８等に「ρ」が含まれる。
続いて、誤差付暗号文生成手段４０６は、共有鍵４０５、公開鍵３０９、ランダム要素４０３および配付メンバ集合４０１を用いて、誤差付暗号文４０７を生成する（ステップ１００２）。誤差付暗号文４０７の要素は、Ｓ及び全てのｉ＝１，．．．，Ｌに関する：
ｃｊ＝ｋｍ’＾（σｊτ），
Ｅ’ｊ＝［σｊτ］Ｇ’，
Ｆ’ｊ＝［σｊτ］（Ｄ’ｊ＋Σｋ∈Ｓ（ｊ）Ｇ’Ｌ＋１−ｋ），
Ｒ’ｊ＝［σｊ］Ｂ’ｊ，
Ｔ’ｊ＝［ρσｊ］Ｈ’ｊ，
である。
ただし、Ｓ（ｊ）＝Ｓ＊∩∧ｊである。
また、誤差修正暗号文生成手段４０９は、公開鍵３０９およびランダム要素４０３を用いて、誤差修正暗号文４０８を生成する（ステップ１００３）。誤差修正暗号文４０８の要素は、全てのｊ＝１，．．．，Ｌに関するＳｉ＝［τ］Ｊｉ＋［ρεｉ］Ｈ、Ｕｉ＝［εｉ］Ｇである。なお、ステップ１００２とステップ１１００３の処理はいずれが先であってもよい。
本実施形態では、個々で、暗号化に際して、用いるＳ（ｉ）はＳの要素が含まれないものである。そのため、暗号文を生成するにあたり、全てのｊに関してＳ（ｊ）に属する（ｋ，ｊ）に関してＧＬ＋１−ｋの和を取るため、配付メンバ集合に属さないメンバの個数のデータの和を取る処理となる。
続いて、制御部４２１は、誤差付暗号文４０７および誤差修正暗号文４０８を含む共有鍵暗号文４１０：ＨＤＲ（Ｓ）＝（Ｓ，（ｃｊ，Ｅ’ｊ，Ｆ’ｊ，Ｒ’ｊ，Ｔ’ｊ）ｊ＝１，．．．，Ｌ，（Ｓｉ，Ｕｉ）ｉ＝１，．．．，Ｌ）を出力する。また、生成した共有鍵４０５を出力する（ステップ１００４）。
なお、暗号化装置４００は追跡鍵を直接利用するものではないが、実施形態６で説明するメンバ追加装置と不正者失効装置との処理に対応して、上述したように、実施形態３とは異なる処理を行っている。
次に、復号装置５００の動作を図６を参照しで説明する。本実施形態では、データが共有鍵である場合の詳細を記しているが、これをメッセージとみなしてもよい。また、公開鍵および秘密鍵は本実施形態のメンバ追加装置３００により生成されたものである。
共有鍵暗号文ＨＤＲ（Ｓ）（４１０）が暗号化装置４００から入力され、公開鍵ＰＫＥＹ（３０９）および秘密鍵ＳＫＥＹ［ｉｊ］（３１３）がメンバ追加装置３００から入力される。ここで、各メンバの識別子となるインデックス（ｉ，ｊ）∈Ｓであるとする。
誤差付暗号文復号手段５０１が、配付メンバ集合４０１に自装置の識別子の情報が含まれているか否かを判定する（ステップ１１０１）。配付メンバ集合４０１に自装置の識別子の情報が含まれている場合、ステップ１１０２に進み、含まれていない場合、暗号文の復号をせずに処理を終了する。
ステップ１１０２で、誤差付暗号文復号手段５０１は、誤差付暗号文４０７、公開鍵３０９および秘密鍵３１３を用いて、誤差付共有鍵Ｋ’（５０２）：ｋ’＝ｃｊ（ｅ（Ｘｉ，ｉ，Ｆ’ｊ）／ｅ（Ｅ’ｊ，Ｋｉ，ｊ＋Σｋ∈Ｓ（ｊ）Ｘｉ，Ｌ＋１−ｋ＋ｉ））を生成する。ただし、Ｓ（ｊ）＝Ｓ＊∩∧ｊである。
ここで、各（ｉ，ｊ）に関する復号において使われるＸｋ，ｉはｋ＝ｉに限られることが特徴である。また、この誤差付暗号文を復号するにあたり、全てのｊに関してＳ（ｊ）に属する（ｋ，ｊ）に関してＸｉ，Ｌ＋１−ｋの和を取るため、配付メンバ集合に属さないメンバの個数のデータの和を取る処理となる。
続いて、誤差修正手段５０３が、誤差付共有鍵５０２、公開鍵３０９および秘密鍵３１３を用いて、共有鍵Ｋ’４０５：ｋ＝ｋ’（ｅ（Ｒ’ｊ，Ｓｉ）／ｅ（Ｔ’ｊ，Ｕｉ））を生成する。その後、制御部５２１は、共有鍵ｋ（４０５）を出力する（ステップ１１０３）。
本実施形態の不正者失効システムの動作は、上述したように、暗号化装置４００および復号装置５００が配付メンバ集合に属さないメンバの個数のデータの和を求める処理を行い、その他については実施形態１と同様であるため、その詳細な説明を省略する。
なお、本実施形態の復号装置５００の処理は実施形態３と見かけ上同様になるが、メンバ追加装置３００から受け取る公開鍵３０９および暗号化装置４００から受け取る共有鍵暗号文４１０には実施形態３とは異なる成分が含まれている。
本実施形態の不正者失効システムにおいても、実施形態３と同様に、より多くのメンバが結託して復号装置の海賊版を構成しても、全ての結託したメンバを特定することが可能であることが証明できる。実際、全てのメンバが結託した場合においてもこれらを全て特定し、それらの資格を失効することが可能となる効果がある。
（実施形態６）
本実施形態の不正者失効システムについて説明する。
なお、本実施形態の不正者失効システムは、メンバ追加装置３００が追跡鍵３１０を生成しないことを除いて、図７に示す構成と同様であるため、ここでは各装置の構成の詳細な説明を省略する。また、図７から図１０を参照し、実施形態４と比べて異なる動作を中心に説明する。
また、本実施形態で用いられる記法については、実施形態３の場合と同様であるため、その詳細な説明を省略する。
図７に示すように、不正者失効システムは、不正者失効装置６００と、複数の復号装置と、メンバ追加装置３００とを有する。不正者失効装置６００、複数の復号装置、およびメンバ追加装置３００は、ネットワークなどの通信回線で接続されている。図７では、復号装置を１台だけ示している。不正者失効装置６００は、通信回線を介して、実施形態５で説明したメンバ追加装置３００と接続されている。復号装置８０３は、実施形態５で説明した複数の復号装置５００のうち、不正であるとされているものに相当する。
次に、不正者失効装置６００の動作を図９を参照して説明する。なお、公開鍵および秘密鍵は実施形態５で説明したメンバ追加装置３００により生成されたものである。
配付メンバ集合Ｓ⊂∧（６０２）、検査インデックス（Ｉ，Ｊ）∈（６０３）、および乱数６０１が外部から入力され、公開鍵３０９がメンバ追加装置３００から入力される。
追跡用共有鍵生成手段６０６は、公開鍵３０９および乱数６０１を用いて、追跡用共有鍵６０７：ｋ∈ＧＴ’を一様無作為に生成する（ステップ１２０１）。
また、追跡用ランダム要素生成手段６０４は、公開鍵３０９、乱数６０１、および検査インデックス６０３を用いて、追跡用のランダム要素６０５を一様無作為に生成する（ステップ１２０２）。追跡用のランダム要素６０５は、（σｊ）ｊ＝１，．．．，Ｌ∈（Ｚ／ｎＺ）Ｌ、（τ，ρ）∈（Ｚ／ｎＺ）２、（ｋ’ｊ）ｊ＝１，．．．，Ｊ−１∈（ＧＴ’）Ｊ−１、（σ’ｊ）ｊ＝１，．．．，Ｊ−１∈（Ｚ／ｎＺ）Ｊ−１、（εｉ）ｉ＝１，．．．，Ｌ∈（Ｚ／ｎＺ）Ｌ、および（ε’ｉ）ｉ＝１，．．．，ｌ｝∈（Ｚ／ｎＺ）Ｌである。
なお、ステップ１２０１とステップ１２０２の処理はいずれが先であってもよい。
そして、追跡用誤差付暗号文生成手段６０８は、追跡用共有鍵６０７、公開鍵３０９、ランダム要素６０５、検査インデックス６０３および配付メンバ集合Ｓ（６０２）を用いて、追跡用誤差付暗号文６１０：（Ｓ，ｃｊ，Ｅ’ｊ，Ｆ’ｊ，Ｒ’ｊ，Ｔ’ｊ）ｊ＝１，．．．，Ｌを次のように生成する（ステップ１２０３）：
ｊ＞Ｊに関しては、
ｃｊ＝ｋｍ’＾｛σｊτ｝，
Ｅ’ｊ＝［σｊτ］Ｇ’，
Ｆ’ｊ＝［σｊτ］（Ｄ’ｊ＋Σｋ∈Ｓ（ｊ）Ｇ’Ｌ＋１−ｋ），
Ｒ’ｊ＝［σｊ］Ｂ’ｊ，
Ｔ’ｊ＝［ρσｊ］Ｈ’ｊと生成する。
ｊ＝Ｊに関しては、
ｃｊ＝ｋｍ＾｛σｊτ｝，
Ｅ’ｊ＝［σｊτ］Ｇ，
Ｆ’ｊ＝［σｊτ］（Ｄｊ＋Σｋ∈Ｓ（ｊ）ＧＬ＋１−ｋ），
Ｒ’ｊ＝［σｊ］Ｂｊ，
Ｔ’ｊ＝［ρσｊ］Ｈｊと生成し、
ｊ＜Ｊに関しては、
ｃｊ＝ｋ’ｊｍ＾｛σｊτ｝，
Ｅ’ｊ＝［σｊτ］Ｇ，
Ｆ’ｊ＝［σｊτ］（Ｄｊ＋Σｋ∈Ｓ（ｊ）ＧＬ＋１−ｋ），
Ｒ’ｊ＝［σ’ｊ］Ｂｊ，
Ｔ’ｊ＝［ρσ’ｊ］Ｈｊと生成する。
本実施形態では、個々で、暗号化に際して、用いるＳ（ｉ）はＳの要素が含まれないものである。そのため、暗号文を生成するにあたり、全てのｊに関してＳ（ｊ）に属する（ｋ，ｊ）に関してＧＬ＋１−ｋの和を取るため、配付メンバ集合に属さないメンバの個数のデータの和を取る処理となる。
また、追跡用誤差修正暗号文生成手段６０９は、公開鍵３０９、ランダム要素６０５および検査インデックス６０３を用いて、追跡用誤差修正暗号文６１１：（Ｓｓｉ，Ｕｉ）ｉ＝１，．．．，Ｌを次のように生成する（ステップ１２０４）：
ｉ≧Ｉに関しては、Ｓｉ＝［τ］Ｊｉ＋［ρεｉ］Ｈ，Ｕｉ＝［εｉ］Ｇと生成し、
ｉ＜Ｉに関しては、Ｓｉ＝［τ］Ｊｉ＋［ρεｉ］Ｈ＋［ρε’ｉ］Ｗ，Ｕｉ＝［εｉ］Ｇ＋［ρε’ｉ］Ｖ
を生成する。なお、ステップ１２０３とステップ１２０４の処理はいずれが先であってもよい。図９のステップ１２０４において、本実施形態では、追跡用誤差修正暗号文６１１の生成に、追跡鍵を用いない。
続いて、制御部６２１は、追跡用誤差付暗号文６１０および追跡用誤差修正暗号文６１１を含む追跡用共有鍵暗号文６１２：
ＨＤＲ［Ｓ，Ｉ，Ｊ］＝（Ｓ，（ｃｊ，Ｅ’ｊ，Ｆ’ｊ，Ｒ’ｊ，Ｔ’ｊ）ｊ＝１，．．．，Ｌ，（Ｓｉ，Ｕｉ）ｉ＝１，．．．，Ｌ）
を出力する。また、生成した追跡用共有鍵６０７を出力する（ステップ１２０５）。
本実施形態の不正者失効システムの動作は、上述したように、不正者失効装置６００が配付メンバ集合に属さないメンバの個数のデータの和を求める処理を行う。図１０で説明した不正者探索動作などのその他の動作については実施形態２と同様であるため、その詳細な説明を省略する。
本実施形態の不正者失効システムにおいては、追跡鍵を用いなくても実施形態４と同様に、より多くのメンバが結託して復号装置の海賊版を構成しても、全ての結託したメンバを特定することが可能であることが証明できる。実際、全てのメンバが結託した場合においてもこれらを全て特定し、それらの資格を失効することが可能となる効果がある。
なお、本発明の暗号化方法、復号方法、および不正者失効方法をコンピュータに実行させるためのプログラムに適用してもよい。
【図１】
2007142170.tif 000003
【図２】
2007142170.tif 000004
【図３】
2007142170.tif 000005
【図４】
2007142170.tif 000006
【図５】
2007142170.tif 000007
【図６】
2007142170.tif 000008
【図７】
2007142170.tif 000009
【図８】
2007142170.tif 000010
【図９】
2007142170.tif 000011
【図１０】
2007142170.tif 000012
【図１１】
2007142170.tif 000013
【図１２】
2007142170.tif 000014
【手続補正書】
【提出日】平成20年1月8日(2008.1.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
公開鍵は、任意の整数をＬとし、任意の加法巡回群上の要素で、この巡回群の生成元Ｇについて、１からＬのいずれかの整数ｋ毎に無作為に生成された整数θｋと定整数αの冪乗αｉ（ｉは１から２Ｌのいずれかの整数）の積であるθｋαｉ倍した［θｋαｉ］Ｇを含み、
登録された会員のうち暗号文の復号を許可された会員の情報である配付メンバ集合データ、乱数および前記公開鍵が格納された記憶部と、共有鍵またはメッセージの少なくともいずれかが入力されると、該共有鍵または該メッセージ、前記配付メンバ集合データ、および会員毎に異なる情報である誤差情報を含む暗号文である誤差付暗号文と該誤差情報の暗号文である誤差修正暗号文とを生成し、前記誤差付暗号文を生成する際、前記配付メンバ集合に属さないメンバの個数のデータの和を求め、前記誤差付暗号文および前記誤差修正暗号文とを配布する制御部とを有する暗号化装置と、
前記暗号化装置と接続され、前記公開鍵および自装置に対応する秘密鍵が格納された記憶部と、前記誤差付暗号文および前記誤差修正暗号文を前記暗号化装置から受信すると、該配付メンバ集合データに自装置が含まれているか否かを判定し、該配付メンバ集合データに自装置が含まれていると、前記公開鍵および前記秘密鍵により前記誤差付暗号文および前記誤差修正暗号文を復号し、前記誤差付暗号文を復号する際、前記配付メンバ集合に属さないメンバの個数のデータの和を求め、復号した誤差付暗号文から前記誤差情報を取り除いて前記共有鍵または前記メッセージを出力する制御部を有する復号装置と
を含む不正者失効システム。
【請求項２】
登録された会員の復号装置に暗号文を配付する暗号化装置であって、
公開鍵は、任意の整数をＬとし、任意の加法巡回群上の要素で、この巡回群の生成元Ｇについて、１からＬのいずれかの整数ｋ毎に無作為に生成された整数θｋと定整数αの冪乗αｉ（ｉは１から２Ｌのいずれかの整数）の積であるθｋαｉ倍した［θｋαｉ］Ｇを含み、
前記登録された会員のうち暗号文の復号を許可された会員の情報である配付メンバ集合データ、乱数および前記公開鍵が格納された記憶部と、
共有鍵またはメッセージの少なくともいずれかが入力されると、該共有鍵または該メッセージ、前記配付メンバ集合データ、および会員毎に異なる情報である誤差情報を含む暗号文である誤差付暗号文と該誤差情報の暗号文である誤差修正暗号文とを生成し、前記誤差付暗号文を生成する際、前記配付メンバ集合に属さないメンバの個数のデータの和を求める処理を行う制御部と
を有する
暗号化装置。
【請求項３】
（削除）
【請求項４】
外部から受信する暗号文を復号する復号装置であって、
公開鍵は、任意の整数をＬとし、任意の加法巡回群上の要素で、この巡回群の生成元Ｇについて、１からＬのいずれかの整数ｋ毎に無作為に生成された整数θｋと定整数αの冪乗αｉ（ｉは１から２Ｌのいずれかの整数）の積であるθｋαｉ倍した［θｋαｉ］Ｇを含み、
前記公開鍵および自装置に対応する秘密鍵が格納された記憶部と、
共有鍵またはメッセージの少なくともいずれかの情報、登録された複数の復号装置毎に異なり自装置に対応する情報である誤差情報、および暗号文の復号を許可された会員の情報である配付メンバ集合データを含む暗号文である誤差付暗号文と、該誤差情報の暗号文である誤差修正暗号文とが入力されると、該配付メンバ集合データに自装置が含まれているか否かを判定し、該配付メンバ集合データに自装置が含まれていると、前記公開鍵および前記秘密鍵により前記誤差付暗号文および前記誤差修正暗号文を復号し、前記誤差付暗号文を復号する際、前記配付メンバ集合に属さないメンバの個数のデータの和を求め、復号した誤差付暗号文から前記誤差情報を取り除いて前記共有鍵または前記メッセージを出力する制御部と
を有する復号装置。
【請求項５】
（削除）
【請求項６】
登録された会員の復号装置のうち不正処理を行う復号装置を特定するための不正者失効装置であって、
公開鍵は、任意の整数をＬとし、任意の加法巡回群上の要素で、この巡回群の生成元Ｇについて、１からＬのいずれかの整数ｋ毎に無作為に生成された整数θｋと定整数αの冪乗αｉ（ｉは１から２Ｌのいずれかの整数）の積であるθｋαｉ倍した［θｋαｉ］Ｇを含み、
元になる共有鍵である追跡用共有鍵または元になるメッセージである追跡用メッセージの少なくともいずれかの情報、前記復号装置毎に異なる識別番号の情報を含む配付メンバ集合データ、前記公開鍵、および不正者を判定するための基準となる閾値が格納された記憶部と、
不正処理を行うと有意な確率で正しい共有鍵またはメッセージを出力できない追跡用暗号文を前記公開鍵を用いて生成し、前記復号装置毎に該追跡用暗号文を複数送信し、該復号装置から共有鍵またはメッセージを複数受信すると、受信した複数の共有鍵と前記追跡用共有鍵との一致する確率、または、受信した複数のメッセージと前記追跡用メッセージとの一致する確率を算出し、隣り合う前記識別番号の復号装置間で該確率の差が前記閾値より小さいか否かを判定し、該閾値より大きい確率の復号装置を失効対象と判定し、前記追跡用暗号文を生成する際、前記配付メンバ集合に属さないメンバの個数のデータの和を求める処理を行う制御部と
を有する不正者失効装置。
【請求項７】
前記記憶部に追跡鍵が格納され、
前記制御部は、前記公開鍵および前記追跡鍵を用いて前記追跡用暗号文を生成する、請求項６記載の不正者失効装置。
【請求項８】
（削除）
【請求項９】
登録された会員の復号装置に暗号文を配付する暗号化装置による暗号化方法であって、
公開鍵は、任意の整数をＬとし、任意の加法巡回群上の要素で、この巡回群の生成元Ｇについて、１からＬのいずれかの整数ｋ毎に無作為に生成された整数θｋと定整数αの冪乗αｉ（ｉは１から２Ｌのいずれかの整数）の積であるθｋαｉ倍した［θｋαｉ］Ｇを含み、
前記登録された会員のうち暗号文の復号を許可された会員の情報である配付メンバ集合データ、乱数および前記公開鍵が入力されると、これらの情報を記憶部に格納し、
共有鍵またはメッセージの少なくともいずれかが入力されると、該共有鍵または該メッセージ、前記配付メンバ集合データ、および会員毎に異なる情報である誤差情報を含む暗号文である誤差付暗号文と該誤差情報の暗号文である誤差修正暗号文とを生成し、前記誤差付暗号文を生成する際、前記配付メンバ集合に属さないメンバの個数のデータの和を求める暗号化方法。
【請求項１０】
（削除）
【請求項１１】
外部から受信する暗号文を復号する復号装置による復号方法であって、
公開鍵は、任意の整数をＬとし、任意の加法巡回群上の要素で、この巡回群の生成元Ｇについて、１からＬのいずれかの整数ｋ毎に無作為に生成された整数θｋと定整数αの冪乗αｉ（ｉは１から２Ｌのいずれかの整数）の積であるθｋαｉ倍した［θｋαｉ］Ｇを含み、
前記公開鍵および自装置に対応する秘密鍵が入力されると、これらの情報を記憶部に格納し、
共有鍵またはメッセージの少なくともいずれかの情報、登録された複数の復号装置毎に異なり自装置に対応する情報である誤差情報、および暗号文の復号を許可された会員の情報である配付メンバ集合データを含む暗号文である誤差付暗号文と、該誤差情報の暗号文である誤差修正暗号文とが入力されると、該配付メンバ集合データに自装置が含まれているか否かを判定し、
前記配付メンバ集合データに自装置が含まれていると、前記公開鍵および前記秘密鍵により前記誤差付暗号文および前記誤差修正暗号文を復号し、
前記誤差付暗号文を復号する際、前記配付メンバ集合に属さないメンバの個数のデータの和を求め、
復号した誤差付暗号文から前記誤差情報を取り除いて前記共有鍵または前記メッセージを出力する復号方法。
【請求項１２】
（削除）
【請求項１３】
登録された会員の復号装置のうち不正処理を行う復号装置を特定するための不正者失効装置による不正者失効方法であって、
公開鍵は、任意の整数をＬとし、任意の加法巡回群上の要素で、この巡回群の生成元Ｇについて、１からＬのいずれかの整数ｋ毎に無作為に生成された整数θｋと定整数αの冪乗αｉ（ｉは１から２Ｌのいずれかの整数）の積であるθｋαｉ倍した［θｋαｉ］Ｇを含み、
元になる共有鍵である追跡用共有鍵または元になるメッセージである追跡用メッセージの少なくともいずれかの情報、前記復号装置毎に異なる識別番号の情報を含む配付メンバ集合データ、前記公開鍵、および不正者を判定するための基準となる閾値を記憶部に格納し、
不正処理を行うと有意な確率で正しい共有鍵またはメッセージを出力できない追跡用暗号文を前記公開鍵を用いて生成し、
前記追跡用暗号文を生成する際、前記配付メンバ集合に属さないメンバの個数のデータの和を求め、
前記復号装置毎に前記追跡用暗号文を複数送信し、
前記復号装置から共有鍵またはメッセージを複数受信すると、受信した複数の共有鍵と前記追跡用共有鍵との一致する確率、または、受信した複数のメッセージと前記追跡用メッセージとの一致する確率を算出し、
隣り合う前記識別番号の復号装置間で前記確率の差が前記閾値より小さいか否かを判定し、該閾値より大きい確率の復号装置を失効対象と判定する
不正者失効方法。
【請求項１４】
前記公開鍵とともに追跡鍵を前記記憶部に格納し、
前記公開鍵および前記追跡鍵を用いて前記追跡用暗号文を生成する、請求項１３記載の不正者失効方法。
【請求項１５】
（削除）
【請求項１６】
登録された会員の復号装置に暗号文を配付するコンピュータに実行させるためのプログラムであって、
公開鍵は、任意の整数をＬとし、任意の加法巡回群上の要素で、この巡回群の生成元Ｇについて、１からＬのいずれかの整数ｋ毎に無作為に生成された整数θｋと定整数αの冪乗αｉ（ｉは１から２Ｌのいずれかの整数）の積であるθｋαｉ倍した［θｋαｉ］Ｇを含み、
前記登録された会員のうち暗号文の復号を許可された会員の情報である配付メンバ集合データ、乱数および前記公開鍵が入力されると、これらの情報を格納し、
共有鍵またはメッセージの少なくともいずれかが入力されると、該共有鍵または該メッセージ、前記配付メンバ集合データ、および会員毎に異なる情報である誤差情報を含む暗号文である誤差付暗号文と該誤差情報の暗号文である誤差修正暗号文とを生成し、前記誤差付暗号文を生成する際、前記配付メンバ集合に属さないメンバの個数のデータの和を求める処理を前記コンピュータに実行させるためのプログラム。
【請求項１７】
（削除）
【請求項１８】
外部から受信する暗号文を復号するコンピュータに実行させるためのプログラムであって、
公開鍵は、任意の整数をＬとし、任意の加法巡回群上の要素で、この巡回群の生成元Ｇについて、１からＬのいずれかの整数ｋ毎に無作為に生成された整数θｋと定整数αの冪乗αｉ（ｉは１から２Ｌのいずれかの整数）の積であるθｋαｉ倍した［θｋαｉ］Ｇを含み、
前記公開鍵および自装置に対応する秘密鍵が入力されると、これらの情報を格納し、
共有鍵またはメッセージの少なくともいずれかの情報、登録された複数の復号装置毎に異なり自装置に対応する情報である誤差情報、および暗号文の復号を許可された会員の情報である配付メンバ集合データを含む暗号文である誤差付暗号文と、該誤差情報の暗号文である誤差修正暗号文とが入力されると、該配付メンバ集合データに自装置が含まれているか否かを判定し、
前記配付メンバ集合データに自装置が含まれていると、前記公開鍵および前記秘密鍵により前記誤差付暗号文および前記誤差修正暗号文を復号し、
前記誤差付暗号文を復号する際、前記配付メンバ集合に属さないメンバの個数のデータの和を求め、
復号した誤差付暗号文から前記誤差情報を取り除いて前記共有鍵または前記メッセージを出力する処理を前記コンピュータに実行させるためのプログラム。
【請求項１９】
（削除）
【請求項２０】
登録された会員の復号装置のうち不正処理を行う復号装置を特定するコンピュータに実行させるためのプログラムであって、
公開鍵は、任意の整数をＬとし、任意の加法巡回群上の要素で、この巡回群の生成元Ｇについて、１からＬのいずれかの整数ｋ毎に無作為に生成された整数θｋと定整数αの冪乗αｉ（ｉは１から２Ｌのいずれかの整数）の積であるθｋαｉ倍した［θｋαｉ］Ｇを含み、
元になる共有鍵である追跡用共有鍵または元になるメッセージである追跡用メッセージの少なくともいずれかの情報、前記復号装置毎に異なる識別番号の情報を含む配付メンバ集合データ、前記公開鍵、および不正者を判定するための基準となる閾値を記憶部に格納し、
不正処理を行うと有意な確率で正しい共有鍵またはメッセージを出力できない追跡用暗号文を前記公開鍵を用いて生成し、
前記追跡用暗号文を生成する際、前記配付メンバ集合に属さないメンバの個数のデータの和を求め、
前記復号装置毎に前記追跡用暗号文を複数送信し、
前記復号装置から共有鍵またはメッセージを複数受信すると、受信した複数の共有鍵と前記追跡用共有鍵との一致する確率、または、受信した複数のメッセージと前記追跡用メッセージとの一致する確率を算出し、
隣り合う前記識別番号の復号装置間で前記確率の差が前記閾値より小さいか否かを判定し、該閾値より大きい確率の復号装置を失効対象と判定する処理を前記コンピュータに実行させるためのプログラム。
【請求項２１】
前記公開鍵とともに追跡鍵を前記記憶部に格納し、
前記公開鍵および前記追跡鍵を用いて前記追跡用暗号文を生成する処理をさらに有する請求項２０記載のプログラム。
【国際調査報告】
2007142170.tif 000015
2007142170.tif 000016
2007142170.tif 000017
2007142170.tif 000018
2007142170.tif 000019
2007142170.tif 000020