(57)【特許請求の範囲】
【請求項１】
複数のユーザ側システムへ暗号化コンテンツを提供するコンテンツ提供側システムであって、
提供すべきコンテンツを、所定のセッション鍵で暗号化する暗号化手段と、
前記コンテンツの提供対象のユーザに割り当てられた復号鍵を用いて前記セッション鍵を復号することを可能にするヘッダ情報を生成する生成手段と、
前記暗号化されたコンテンツに前記ヘッダ情報を付加して送信するための送信手段とを備え、
前記復号鍵は、複数のユーザのユーザ識別情報のグループを、複数のサブグループに分割し、該複数のサブグループの各々に対して互いに異なる鍵生成多項式を割り当て、当該ユーザのユーザ識別情報の属するサブグループに対して割り当てられた鍵生成多項式に、当該ユーザのユーザ識別情報を代入することによって得られた値を、当該ユーザに割り当てられた復号鍵とする生成方法により生成されたものであり、
前記生成手段は、前記ヘッダ情報を生成するにあたって、前記セッション鍵を復号不能にするユーザを個別に設定可能な第１の種類のヘッダ情報を生成する場合に、該第１の種類のヘッダ情報に、前記セッション鍵を復号することを可能にするデータの一部として、各ユーザについて当該ユーザのユーザ識別情報及び当該ユーザに割り当てられた復号鍵を用いて固有のシェア・データを求めるもととなるサブグループに固有のデータと、全サブグループに共通である、前記セッション鍵が復号できないことになるものとして選択したユーザ識別情報についてそれぞれ求めたシェア・データとを含ませるものであり、前記シェア・データは、それが予め定められた種類数だけ揃った場合にのみ前記セッション鍵を復号することを可能にするものであることを特徴とするコンテンツ提供側システム。
【請求項２】
前記予め定められた種類数は、前記ヘッダ情報の生成に際して定められたものであることを特徴とする請求項１に記載のコンテンツ提供側システム。
【請求項３】
前記予め定められた種類数をｍ＋１とし、前記鍵生成多項式の次数をｋとした場合に、前記ｍは前記ｋとは異なる値に設定されたものであることを特徴とする請求項１または２に記載のコンテンツ提供側システム。
【請求項４】
前記セッション鍵を復号不能とするユーザをサブグループ単位でのみ設定可能な第２の種類のヘッダ情報は、前記セッション鍵を復号することを可能にするデータの一部として、前記サブグループに固有のデータを含み、
前記生成手段は、前記第２の種類のヘッダ情報を生成する場合に、特定のサブグループに属する全てのユーザについて前記セッション鍵を復号不能にするときは、前記サブグループに固有のデータのうち、該特定のサブグループに固有のデータのみを正しい値とは異なる値に設定することを特徴とする請求項１ないし３のいずれか１項に記載のコンテンツ提供側システム。
【請求項５】
前記セッション鍵を復号不能とするユーザをサブグループ単位でのみ設定可能な第２の種類のヘッダ情報は、前記セッション鍵を復号することを可能にするデータの一部として、前記サブグループに固有のデータを含み、
前記生成手段は、前記第２の種類のヘッダ情報を生成する場合に、特定のサブグループに属する全てのユーザについて前記セッション鍵を復号不能にするときは、該特定のサブグループに固有のデータの前記ヘッダ情報への記述を禁止することを特徴とする請求項１ないし３のいずれか１項に記載のコンテンツ提供側システム。
【請求項６】
前記生成手段は、前記第１の種類のヘッダ情報を生成する場合に、併せて特定のサブグループに属する全てのユーザについて前記セッション鍵を復号不能とするときは、前記サブグループに固有のデータのうち、該特定のサブグループに固有のデータのみを正しい値とは異なる値に設定することを特徴とする請求項１ないし３のいずれか１項に記載のコンテンツ提供側システム。
【請求項７】
前記生成手段は、前記第１の種類のヘッダ情報を生成する場合に、併せて特定のサブグループに属する全てのユーザについて前記セッション鍵を復号不能とするときは、該特定のサブグループに固有のデータの前記ヘッダ情報への記述を禁止することを特徴とする請求項１ないし３のいずれか１項に記載のコンテンツ提供側システム。
【請求項８】
前記複数のサブグループの各々に対して割り当てられる互いに異なる鍵生成多項式は、多項式係数の一部のみを異にするものであることを特徴とする請求項１ないし７のいずれか1項に記載のコンテンツ提供側システム。
【請求項９】
前記ユーザ識別情報のグループを、ｋ個のサブグループに分割する場合に、第ｉ（ｉ＝１〜ｋとする）のサブグループに対しては、鍵生成多項式ｆｉ（ｘ）＝ａ０＋ａ１・ｘ＋ａ２・ｘ２＋ａ３・ｘ３＋…＋ｂｉ・ｘｉ＋…＋ａｋ−２・ｘｋ−２＋ａｋ−１・ｘｋ−１＋ａｋ・ｘｋを割り当てることを特徴とする請求項１ないし７のいずれか1項に記載のコンテンツ提供側システム。
【請求項１０】
前記ユーザ識別情報のグループを、Ｍ・ｋ＋Δｋ個（０≦Ｍ、０＜Δｋ≦ｋ）のサブグループに分割する場合に、第ｍ・ｋ＋ｉ（０≦ｍ≦Ｍ、０≦ｍ＜Ｍのときに１≦ｉ≦ｋ、ｍ＝Ｍのときに１≦ｉ≦Δｋ）で表されるサブグループに対して、鍵生成多項式ｆｉ（ｘ）＝ａ０＋ａ１・ｘ＋ａ２・ｘ２＋ａ３・ｘ３＋…＋ｂｍ，ｉ・ｘｉ＋…＋ａｋ−２・ｘｋ−２＋ａｋ−１・ｘｋ−１＋ａｋ・ｘｋを割り当てることを特徴とする請求項１ないし７のいずれか1項に記載のコンテンツ提供側システム。
【請求項１１】
コンテンツ提供側システムから提供された暗号化コンテンツを復号するユーザ側システムであって、
前記コンテンツ提供側システムから送信された、所定のセッション鍵で暗号化されたコンテンツ及び該コンテンツの提供対象のユーザに割り当てられた復号鍵を用いて該セッション鍵を復号することを可能にするヘッダ情報を受信するための受信手段と、
受信された前記ヘッダ情報及び当該ユーザに割り当てられた復号鍵を用いて前記セッション鍵を復号するセッション鍵復号手段と、
復号された前記セッション鍵を用いて、受信された前記暗号化されたコンテンツを復号するコンテンツ復号手段とを備え、
当該ユーザに割り当てられた前記復号鍵は、複数のユーザのユーザ識別情報のグループを、複数のサブグループに分割し、該複数のサブグループの各々に対して互いに異なる鍵生成多項式を割り当て、当該ユーザのユーザ識別情報の属するサブグループに対して割り当てられた鍵生成多項式に、当該ユーザのユーザ識別情報を代入することによって得られた値を、当該ユーザに割り当てられた復号鍵とする生成方法により生成されたものであり、
前記セッション鍵復号手段が前記セッション鍵を復号するにあたって用いる前記ヘッダ情報は、それが前記セッション鍵を復号不能にするユーザを個別に設定可能な第１の種類のヘッダ情報である場合に、前記セッション鍵を復号することを可能にするデータの一部として、各ユーザについて当該ユーザのユーザ識別情報及び当該ユーザに割り当てられた復号鍵を用いて固有のシェア・データを求めるもととなるサブグループに固有のデータと、全サブグループに共通である、前記セッション鍵が復号できないことになるものとして選択されたユーザ識別情報についてそれぞれ求められたシェア・データとを含むものであり、前記シェア・データは、それが予め定められた種類数だけ揃った場合にのみ前記セッション鍵を復号することを可能にするものであり、
前記セッション鍵復号手段は、当該ユーザのユーザ識別情報及び当該ユーザに割り当てられた復号鍵並びに前記ヘッダ情報に含まれる当該サブグループに固有のデータを用いて求めた前記固有のシェア・データと、前記ヘッダ情報に含まれるシェア・データとを用いて前記セッション鍵を復号することを特徴とするユーザ側システム。
【請求項１２】
前記予め定められた種類数は、前記ヘッダ情報の生成に際して定められたものであることを特徴とする請求項１１に記載のユーザ側システム。
【請求項１３】
前記予め定められた種類数をｍ＋１とし、前記鍵生成多項式の次数をｋとした場合に、前記ｍは前記ｋとは異なる値に設定されたものであることを特徴とする請求項１１または１２に記載のユーザ側システム。
【請求項１４】
前記ヘッダ情報は、それが前記セッション鍵を復号不能とするユーザをサブグループ単位でのみ設定可能な第２の種類のヘッダ情報である場合は、前記セッション鍵を復号することを可能にするデータの一部として、サブグループに固有のデータを含むものであるとともに、特定のサブグループに属する全てのユーザについて前記セッション鍵を復号不能にするときは、前記サブグループに固有のデータのうち、該特定のサブグループに固有のデータのみが正しい値とは異なる値に設定されているものであり、
前記セッション鍵復号手段は、前記第２の種類のヘッダ情報に含まれる前記サブグループに固有のデータのうち、当該ユーザのユーザ識別情報の属するサブグループに固有のデータを用いて、前記セッション鍵の復号を行うことを特徴とする請求項１１ないし１３のいずれか１項に記載のユーザ側システム。
【請求項１５】
前記ヘッダ情報は、それが前記セッション鍵を復号不能とするユーザをサブグループ単位でのみ設定可能な第２の種類のヘッダ情報である場合は、前記セッション鍵を復号することを可能にするデータの一部として、サブグループに固有のデータを含むものであるとともに、特定のサブグループに属する全てのユーザについて前記セッション鍵を復号不能にするときは、該特定のサブグループに固有のデータが含まれていないものであり、
前記セッション鍵復号手段は、前記第２の種類のヘッダ情報に含まれる前記サブグループに固有のデータのうち、当該ユーザのユーザ識別情報の属するサブグループに固有のデータを用いて、前記セッション鍵の復号を行うことを特徴とする請求項１１ないし１３のいずれか１項に記載のユーザ側システム。
【請求項１６】
前記第１の種類のヘッダ情報は、併せて特定のサブグループに属する全てのユーザについて前記セッション鍵を復号不能とするときは、前記サブグループに固有のデータのうち、該特定のサブグループに固有のデータのみを正しい値とは異なる値に設定されているものであることを特徴とする請求項１１ないし１３のいずれか１項に記載のユーザ側システム。
【請求項１７】
前記第１の種類のヘッダ情報は、併せて特定のサブグループに属する全てのユーザについて前記セッション鍵を復号不能とするときは、該特定のサブグループに固有のデータが含まれていないものであることを特徴とする請求項１１ないし１３のいずれか１項に記載のユーザ側システム。
【請求項１８】
前記複数のサブグループの各々に対して割り当てられる互いに異なる鍵生成多項式は、多項式係数の一部のみを異にするものであることを特徴とする請求項１１ないし１７のいずれか1項に記載のユーザ側システム。
【請求項１９】
前記ユーザ識別情報のグループを、ｋ個のサブグループに分割する場合に、第ｉ（ｉ＝１〜ｋとする）のサブグループに対しては、鍵生成多項式ｆｉ（ｘ）＝ａ０＋ａ１・ｘ＋ａ２・ｘ２＋ａ３・ｘ３＋…＋ｂｉ・ｘｉ＋…＋ａｋ−２・ｘｋ−２＋ａｋ−１・ｘｋ−１＋ａｋ・ｘｋを割り当てることを特徴とする請求項１１ないし１７のいずれか1項に記載のユーザ側システム。
【請求項２０】
前記ユーザ識別情報のグループを、Ｍ・ｋ＋Δｋ個（０≦Ｍ、０＜Δｋ≦ｋ）のサブグループに分割する場合に、第ｍ・ｋ＋ｉ（０≦ｍ≦Ｍ、０≦ｍ＜Ｍのときに１≦ｉ≦ｋ、ｍ＝Ｍのときに１≦ｉ≦Δｋ）で表されるサブグループに対して、鍵生成多項式ｆｉ（ｘ）＝ａ０＋ａ１・ｘ＋ａ２・ｘ２＋ａ３・ｘ３＋…＋ｂｍ，ｉ・ｘｉ＋…＋ａｋ−２・ｘｋ−２＋ａｋ−１・ｘｋ−１＋ａｋ・ｘｋを割り当てることを特徴とする請求項１１ないし１７のいずれか1項に記載のユーザ側システム。
【請求項２１】
所定のセッション鍵で暗号化したコンテンツ及び該コンテンツの提供対象のユーザに割り当てられた復号鍵を用いて該セッション鍵を復号することを可能にするヘッダ情報を受信し、該ヘッダ情報及び当該ユーザに割り当てられた復号鍵を用いて該セッション鍵を復号し、該セッション鍵を用いて該暗号化されたコンテンツを復号する正当なユーザ側システムを、１つ又は複数もとにして作出された、不正なユーザ側システムを対象として、該対象システムの作出のもととなった、１つ又は複数の正当なユーザ側システムの不正ユーザを特定するための追跡システムであって、
特定の一部のユーザについて当該ユーザに割り当てられた復号鍵を用いて該セッション鍵を復号することを不能にし且つ他の全てのユーザについて当該ユーザに割り当てられた復号鍵を用いて該セッション鍵を復号することを可能にするように設定した前記ヘッダ情報を、該セッション鍵を復号不能とするユーザを変えたものについて生成するための生成手段と、
前記ヘッダ情報を前記対象システムへ与え、該対象システムによる前記セッション鍵の復号結果を取得する取得手段と、
前記対象システムへ与えた当該ヘッダ情報において復号不能とされたユーザと、当該ヘッダ情報に対する前記対象システムによる前記セッション鍵の復号結果との関係に基づいて、前記対象システムの作出のもととなった、少なくとも１つの前記正当なユーザ側システムの不正ユーザを特定する特定手段とを備え、
前記復号鍵は、複数のユーザのユーザ識別情報のグループを、複数のサブグループに分割し、該複数のサブグループの各々に対して互いに異なる鍵生成多項式を割り当て、当該ユーザのユーザ識別情報の属するサブグループに対して割り当てられた鍵生成多項式に、当該ユーザのユーザ識別情報を代入することによって得られた値を、当該ユーザに割り当てられた復号鍵とする生成方法により生成されたものであることを特徴とする追跡システム。
【請求項２２】
前記生成手段は、前記ヘッダ情報を生成するにあたって、前記セッション鍵を復号不能にするユーザを個別に設定可能なヘッダ情報を生成する場合に、該ヘッダ情報に、前記セッション鍵を復号することを可能にするデータの一部として、各ユーザについて当該ユーザのユーザ識別情報及び当該ユーザに割り当てられた復号鍵を用いて固有のシェア・データを求めるもととなるサブグループに固有のデータと、全サブグループに共通である、前記セッション鍵が復号できないことになるものとして選択したユーザ識別情報についてそれぞれ求めたシェア・データとを含ませるものであり、前記シェア・データは、それが予め定められた種類数だけ揃った場合にのみ前記セッション鍵を復号することを可能にするものであることを特徴とする請求項２１に記載の追跡システム。
【請求項２３】
前記予め定められた種類数は、前記ヘッダ情報の生成に際して定められたものであることを特徴とする請求項２２に記載の追跡システム。
【請求項２４】
前記予め定められた種類数をｍ＋１とし、前記鍵生成多項式の次数をｋとした場合に、前記ｍは前記ｋとは異なる値に設定されたものであることを特徴とする請求項２１または２２に記載の追跡システム。
【請求項２５】
前記生成手段は、１又は複数のユーザからなるユーザ集合に関して、相異なるユーザ集合に属するユーザについてセッションキーを復号不能にするヘッダ情報を繰り返し生成するものであることを特徴とする請求項２１ないし２４のいずれか1項に記載の追跡システム。
【請求項２６】
前記複数のサブグループの各々に対して割り当てられる互いに異なる鍵生成多項式は、多項式係数の一部のみを異にするものであることを特徴とする請求項２１ないし２５のいずれか1項に記載の追跡システム。
【請求項２７】
前記ユーザ識別情報のグループを、ｋ個のサブグループに分割する場合に、第ｉ（ｉ＝１〜ｋとする）のサブグループに対しては、鍵生成多項式ｆｉ（ｘ）＝ａ０＋ａ１・ｘ＋ａ２・ｘ２＋ａ３・ｘ３＋…＋ｂｉ・ｘｉ＋…＋ａｋ−２・ｘｋ−２＋ａｋ−１・ｘｋ−１＋ａｋ・ｘｋを割り当てることを特徴とする請求項２１ないし２５のいずれか1項に記載の追跡システム。
【請求項２８】
前記ユーザ識別情報のグループを、Ｍ・ｋ＋Δｋ個（０≦Ｍ、０＜Δｋ≦ｋ）のサブグループに分割する場合に、第ｍ・ｋ＋ｉ（０≦ｍ≦Ｍ、０≦ｍ＜Ｍのときに１≦ｉ≦ｋ、ｍ＝Ｍのときに１≦ｉ≦Δｋ）で表されるサブグループに対して、鍵生成多項式ｆｉ（ｘ）＝ａ０＋ａ１・ｘ＋ａ２・ｘ２＋ａ３・ｘ３＋…＋ｂｍ，ｉ・ｘｉ＋…＋ａｋ−２・ｘｋ−２＋ａｋ−１・ｘｋ−１＋ａｋ・ｘｋを割り当てることを特徴とする請求項２１ないし２５のいずれか1項にに記載の追跡システム。
【請求項２９】
前記生成手段は、特定の１つのユーザ側システムのユーザ以外の全てのユーザ側システムのユーザについては前記セッション鍵を復号不能にし且つ該特定の１つのユーザ側システムのユーザについてのみ前記セッション鍵を復号可能に設定した前記ヘッダ情報を、該特定の１つのユーザ側システムのユーザを変えたものについて繰り返し生成し、
前記特定手段は、生成された前記ヘッダ情報それぞれについて、順次、当該ヘッダ情報を前記対象システムへ与えて取得した該対象システムによる前記セッション鍵の復号結果を調べ、該対象システムにより当該ヘッダ情報から正しいセッション鍵が復号されたと判断される場合には、当該ヘッダ情報で前記セッション鍵を復号可能に設定した前記特定の１つのユーザ側システムのユーザは、該対象システムの作出のもととなったユーザ側システムの不正ユーザであると特定することを特徴とする請求項２１ないし２８のいずれか1項に記載の追跡システム。
【請求項３０】
前記生成手段は、特定の１又は複数のユーザ側システムのユーザについてのみ前記セッション鍵を復号不能にし、他の全てのユーザ側システムのユーザについては前記セッション鍵を復号可能に設定した第１のヘッダ情報、及び該特定の１又は複数のユーザ側システムのユーザに新たに特定の１つのユーザ側システムのユーザを加えたものについてのみ前記セッション鍵を復号不能にし、他の全てのユーザ側システムのユーザについては前記セッション鍵を復号可能に設定した第２のヘッダ情報を生成し、
前記特定手段は、前記第１及び第２のヘッダ情報を前記対象システムへそれぞれ与えて取得した該対象システムによる前記セッション鍵の復号結果を調べ、該対象システムにより該第１のヘッダ情報から正しいセッション鍵が復号され、かつ、該対象システムにより該第２のヘッダ情報から正しいセッション鍵が復号されないと判断される場合には、該第２のヘッダ情報で前記セッション鍵を復号不能として新たに加えた前記特定の１つのユーザ側システムのユーザは、該対象システムの作出のもととなったユーザ側システムの不正ユーザであると特定することを特徴とする請求項２１ないし２８のいずれか1項に記載の追跡システム。
【請求項３１】
前記対象システムに対して、前記ヘッダ情報及び前記セッション鍵で暗号化されたコンテンツを与え、
前記特定手段は、前記対象システムへ与えた当該ヘッダ情報において復号不能とされたユーザと、当該ヘッダ情報に対する前記対象システムによる前記セッション鍵で暗号化されたコンテンツの復号結果との関係に基づいて、前記対象システムの作出のもととなった、少なくとも１つの前記正当なユーザ側システムの不正ユーザを特定することを特徴とする請求項２１ないし３０のいずれか1項に記載の追跡システム。
【請求項３２】
暗号化手段と生成手段と送信手段とを備え、複数のユーザ側システムへ暗号化コンテンツを提供するコンテンツ提供側システムのコンテンツ提供方法であって、
前記暗号化手段が、提供すべきコンテンツを、所定のセッション鍵で暗号化する暗号化ステップと、
前記生成手段が、前記コンテンツの提供対象のユーザに割り当てられた復号鍵を用いて前記セッション鍵を復号することを可能にするヘッダ情報を生成する生成ステップと、
前記送信手段が、前記暗号化されたコンテンツに前記ヘッダ情報を付加して送信する送信ステップとを有し、
前記復号鍵は、複数のユーザのユーザ識別情報のグループを、複数のサブグループに分割し、該複数のサブグループの各々に対して互いに異なる鍵生成多項式を割り当て、当該ユーザのユーザ識別情報の属するサブグループに対して割り当てられた鍵生成多項式に、当該ユーザのユーザ識別情報を代入することによって得られた値を、当該ユーザに割り当てられた復号鍵とする生成方法により生成されたものであり、
前記生成ステップにおいて前記生成手段は、前記ヘッダ情報を生成するにあたって、前記セッション鍵を復号不能にするユーザを個別に設定可能な第１の種類のヘッダ情報を生成する場合に、該第１の種類のヘッダ情報に、前記セッション鍵を復号することを可能にするデータの一部として、各ユーザについて当該ユーザのユーザ識別情報及び当該ユーザに割り当てられた復号鍵を用いて固有のシェア・データを求めるもととなるサブグループに固有のデータと、全サブグループに共通である、前記セッション鍵が復号できないことになるものとして選択したユーザ識別情報についてそれぞれ求めたシェア・データとを含ませるものであり、前記シェア・データは、それが予め定められた種類数だけ揃った場合にのみ前記セッション鍵を復号することを可能にするものであることを特徴とするコンテンツ提供方法。
【請求項３３】
前記予め定められた種類数は、前記ヘッダ情報の生成に際して定められたものであることを特徴とする請求項３２に記載のコンテンツ提供方法。
【請求項３４】
前記予め定められた種類数をｍ＋１とし、前記鍵生成多項式の次数をｋとした場合に、前記ｍは前記ｋとは異なる値に設定されたものであることを特徴とする請求項３２または３３に記載のコンテンツ提供方法。
【請求項３５】
受信手段とセッション鍵復号手段とコンテンツ復号手段とを備え、コンテンツ提供側システムから提供された暗号化コンテンツを復号するユーザ側システムの暗号化コンテンツ復号方法であって、
前記受信手段が、前記コンテンツ提供側システムから送信された、所定のセッション鍵で暗号化されたコンテンツ及び該コンテンツの提供対象のユーザに割り当てられた復号鍵を用いて該セッション鍵を復号することを可能にするヘッダ情報を受信する受信ステップと、
前記セッション鍵復号手段が、受信された前記ヘッダ情報及び当該ユーザに割り当てられた復号鍵を用いて前記セッション鍵を復号するセッション鍵復号ステップと、
前記コンテンツ復号手段が、復号された前記セッション鍵を用いて、受信された前記暗号化されたコンテンツを復号するコンテンツ復号ステップとを有し、
当該ユーザに割り当てられた前記復号鍵は、複数のユーザのユーザ識別情報のグループを、複数のサブグループに分割し、該複数のサブグループの各々に対して互いに異なる鍵生成多項式を割り当て、当該ユーザのユーザ識別情報の属するサブグループに対して割り当てられた鍵生成多項式に、当該ユーザのユーザ識別情報を代入することによって得られた値を、当該ユーザに割り当てられた復号鍵とする生成方法により生成されたものであり、
前記セッション鍵復号ステップにおいて前記セッション鍵復号手段が前記セッション鍵を復号するにあたって用いる前記ヘッダ情報は、それが前記セッション鍵を復号不能にするユーザを個別に設定可能な第１の種類のヘッダ情報である場合に、前記セッション鍵を復号することを可能にするデータの一部として、各ユーザについて当該ユーザのユーザ識別情報及び当該ユーザに割り当てられた復号鍵を用いて固有のシェア・データを求めるもととなるサブグループに固有のデータと、全サブグループに共通である、前記セッション鍵が復号できないことになるものとして選択されたユーザ識別情報についてそれぞれ求められたシェア・データとを含むものであり、前記シェア・データは、それが予め定められた種類数だけ揃った場合にのみ前記セッション鍵を復号することを可能にするものであり、
前記セッション鍵復号ステップにおいて前記セッション鍵復号手段は、当該ユーザのユーザ識別情報及び当該ユーザに割り当てられた復号鍵並びに前記ヘッダ情報に含まれる当該サブグループに固有のデータを用いて求めた前記固有のシェア・データと、前記ヘッダ情報に含まれるシェア・データとを用いて前記セッション鍵を復号することを特徴とする暗号化コンテンツ復号方法。
【請求項３６】
前記予め定められた種類数は、前記ヘッダ情報の生成に際して定められたものであることを特徴とする請求項３５に記載の暗号化コンテンツ復号方法。
【請求項３７】
前記予め定められた種類数をｍ＋１とし、前記鍵生成多項式の次数をｋとした場合に、前記ｍは前記ｋとは異なる値に設定されたものであることを特徴とする請求項３５または３６に記載の暗号化コンテンツ復号方法。
【請求項３８】
所定のセッション鍵で暗号化したコンテンツ及び該コンテンツの提供対象のユーザに割り当てられた復号鍵を用いて該セッション鍵を復号することを可能にするヘッダ情報を受信し、該ヘッダ情報及び当該ユーザに割り当てられた復号鍵を用いて該セッション鍵を復号し、該セッション鍵を用いて該暗号化されたコンテンツを復号する正当なユーザ側システムを、１つ又は複数もとにして作出された、不正なユーザ側システムを対象として、該対象システムの作出のもととなった、１つ又は複数の正当なユーザ側システムの不正ユーザを特定するための追跡システムの不正ユーザ特定方法であって、
前記生成手段が、特定の一部のユーザについて当該ユーザに割り当てられた復号鍵を用いて該セッション鍵を復号することを不能にし且つ他の全てのユーザについて当該ユーザに割り当てられた復号鍵を用いて該セッション鍵を復号することを可能にするように設定した前記ヘッダ情報を、該セッション鍵を復号不能とするユーザを変えたものについて生成するための生成ステップと、
前記取得手段が、前記ヘッダ情報を前記対象システムへ与え、該対象システムによる前記セッション鍵の復号結果を取得する取得ステップと、
前記特定手段が、前記対象システムへ与えた当該ヘッダ情報において復号不能とされたユーザと、当該ヘッダ情報に対する前記対象システムによる前記セッション鍵の復号結果との関係に基づいて、前記対象システムの作出のもととなった、少なくとも１つの前記正当なユーザ側システムの不正ユーザを特定する特定ステップとを有し、
前記復号鍵は、複数のユーザのユーザ識別情報のグループを、複数のサブグループに分割し、該複数のサブグループの各々に対して互いに異なる鍵生成多項式を割り当て、当該ユーザのユーザ識別情報の属するサブグループに対して割り当てられた鍵生成多項式に、当該ユーザのユーザ識別情報を代入することによって得られた値を、当該ユーザに割り当てられた復号鍵とする生成方法により生成されたものであることを特徴とする不正ユーザ特定方法。
【請求項３９】
複数のユーザ側システムへ暗号化コンテンツを提供するコンテンツ提供側システムとしてコンピュータを機能させるためのプログラムであって、
提供すべきコンテンツを、所定のセッション鍵で暗号化する暗号化手段と、
前記コンテンツの提供対象のユーザに割り当てられた復号鍵を用いて前記セッション鍵を復号することを可能にするヘッダ情報を生成する生成手段と、
前記暗号化されたコンテンツに前記ヘッダ情報を付加して送信するための送信手段とを機能させ、
前記復号鍵は、複数のユーザのユーザ識別情報のグループを、複数のサブグループに分割し、該複数のサブグループの各々に対して互いに異なる鍵生成多項式を割り当て、当該ユーザのユーザ識別情報の属するサブグループに対して割り当てられた鍵生成多項式に、当該ユーザのユーザ識別情報を代入することによって得られた値を、当該ユーザに割り当てられた復号鍵とする生成方法により生成されたものであり、
前記生成手段は、前記ヘッダ情報を生成するにあたって、前記セッション鍵を復号不能にするユーザを個別に設定可能な第１の種類のヘッダ情報を生成する場合に、該第１の種類のヘッダ情報に、前記セッション鍵を復号することを可能にするデータの一部として、各ユーザについて当該ユーザのユーザ識別情報及び当該ユーザに割り当てられた復号鍵を用いて固有のシェア・データを求めるもととなるサブグループに固有のデータと、全サブグループに共通である、前記セッション鍵が復号できないことになるものとして選択したユーザ識別情報についてそれぞれ求めたシェア・データとを含ませるものであり、前記シェア・データは、それが予め定められた種類数だけ揃った場合にのみ前記セッション鍵を復号することを可能にするものであることを特徴とするプログラム。
【請求項４０】
前記予め定められた種類数は、前記ヘッダ情報の生成に際して定められたものであることを特徴とする請求項３９に記載のプログラム。
【請求項４１】
前記予め定められた種類数をｍ＋１とし、前記鍵生成多項式の次数をｋとした場合に、前記ｍは前記ｋとは異なる値に設定されたものであることを特徴とする請求項３９または４０に記載のプログラム。
【請求項４２】
コンテンツ提供側システムから提供された暗号化コンテンツを復号するユーザ側システムとしてコンピュータを機能させるためのプログラムであって、
前記コンテンツ提供側システムから送信された、所定のセッション鍵で暗号化されたコンテンツ及び該コンテンツの提供対象のユーザに割り当てられた復号鍵を用いて該セッション鍵を復号することを可能にするヘッダ情報を受信するための受信手段と、
受信された前記ヘッダ情報及び当該ユーザに割り当てられた復号鍵を用いて前記セッション鍵を復号するセッション鍵復号手段と、
復号された前記セッション鍵を用いて、受信された前記暗号化されたコンテンツを復号するコンテンツ復号手段とを機能させ、
当該ユーザに割り当てられた前記復号鍵は、複数のユーザのユーザ識別情報のグループを、複数のサブグループに分割し、該複数のサブグループの各々に対して互いに異なる鍵生成多項式を割り当て、当該ユーザのユーザ識別情報の属するサブグループに対して割り当てられた鍵生成多項式に、当該ユーザのユーザ識別情報を代入することによって得られた値を、当該ユーザに割り当てられた復号鍵とする生成方法により生成されたものであり、
前記セッション鍵復号手段が前記セッション鍵を復号するにあたって用いる前記ヘッダ情報は、それが前記セッション鍵を復号不能にするユーザを個別に設定可能な第１の種類のヘッダ情報である場合に、前記セッション鍵を復号することを可能にするデータの一部として、各ユーザについて当該ユーザのユーザ識別情報及び当該ユーザに割り当てられた復号鍵を用いて固有のシェア・データを求めるもととなるサブグループに固有のデータと、全サブグループに共通である、前記セッション鍵が復号できないことになるものとして選択されたユーザ識別情報についてそれぞれ求められたシェア・データとを含むものであり、前記シェア・データは、それが予め定められた種類数だけ揃った場合にのみ前記セッション鍵を復号することを可能にするものであり、
前記セッション鍵復号手段は、当該ユーザのユーザ識別情報及び当該ユーザに割り当てられた復号鍵並びに前記ヘッダ情報に含まれる当該サブグループに固有のデータを用いて求めた前記固有のシェア・データと、前記ヘッダ情報に含まれるシェア・データとを用いて前記セッション鍵を復号することを特徴とするプログラム。
【請求項４３】
前記予め定められた種類数は、前記ヘッダ情報の生成に際して定められたものであることを特徴とする請求項４２に記載のプログラム。
【請求項４４】
前記予め定められた種類数をｍ＋１とし、前記鍵生成多項式の次数をｋとした場合に、前記ｍは前記ｋとは異なる値に設定されたものであることを特徴とする請求項４２または４３に記載のプログラム。
【請求項４５】
所定のセッション鍵で暗号化したコンテンツ及び該コンテンツの提供対象のユーザに割り当てられた復号鍵を用いて該セッション鍵を復号することを可能にするヘッダ情報を受信し、該ヘッダ情報及び当該ユーザに割り当てられた復号鍵を用いて該セッション鍵を復号し、該セッション鍵を用いて該暗号化されたコンテンツを復号する正当なユーザ側システムを、１つ又は複数もとにして作出された、不正なユーザ側システムを対象として、該対象システムの作出のもととなった、１つ又は複数の正当なユーザ側システムの不正ユーザを特定するための追跡システムとしてコンピュータを機能させるためのプログラムであって、
特定の一部のユーザについて当該ユーザに割り当てられた復号鍵を用いて該セッション鍵を復号することを不能にし且つ他の全てのユーザについて当該ユーザに割り当てられた復号鍵を用いて該セッション鍵を復号することを可能にするように設定した前記ヘッダ情報を、該セッション鍵を復号不能とするユーザを変えたものについて生成するための生成手段と、
前記ヘッダ情報を前記対象システムへ与え、該対象システムによる前記セッション鍵の復号結果を取得する取得手段と、
前記対象システムへ与えた当該ヘッダ情報において復号不能とされたユーザと、当該ヘッダ情報に対する前記対象システムによる前記セッション鍵の復号結果との関係に基づいて、前記対象システムの作出のもととなった、少なくとも１つの前記正当なユーザ側システムの不正ユーザを特定する特定手段とを機能させ、
前記復号鍵は、複数のユーザのユーザ識別情報のグループを、複数のサブグループに分割し、該複数のサブグループの各々に対して互いに異なる鍵生成多項式を割り当て、当該ユーザのユーザ識別情報の属するサブグループに対して割り当てられた鍵生成多項式に、当該ユーザのユーザ識別情報を代入することによって得られた値を、当該ユーザに割り当てられた復号鍵とする生成方法により生成されたものであることを特徴とするプログラム。
【請求項４６】
複数のユーザ側システムへ暗号化コンテンツ及びヘッダ情報を提供するコンテンツ提供側システムに使用される暗号化装置であって、
提供すべきコンテンツを、所定のセッション鍵で暗号化する暗号化手段と、
前記コンテンツの提供対象のユーザに割り当てられた復号鍵を用いて前記セッション鍵を復号することを可能にするヘッダ情報を生成する生成手段とを備え、
前記復号鍵は、複数のユーザのユーザ識別情報のグループを、複数のサブグループに分割し、該複数のサブグループの各々に対して互いに異なる鍵生成多項式を割り当て、当該ユーザのユーザ識別情報の属するサブグループに対して割り当てられた鍵生成多項式に、当該ユーザのユーザ識別情報を代入することによって得られた値を、当該ユーザに割り当てられた復号鍵とする生成方法により生成されたものであり、
前記生成手段は、前記ヘッダ情報を生成するにあたって、前記セッション鍵を復号不能にするユーザを個別に設定可能な第１の種類のヘッダ情報を生成する場合に、該第１の種類のヘッダ情報に、前記セッション鍵を復号することを可能にするデータの一部として、各ユーザについて当該ユーザのユーザ識別情報及び当該ユーザに割り当てられた復号鍵を用いて固有のシェア・データを求めるもととなるサブグループに固有のデータと、全サブグループに共通である、前記セッション鍵が復号できないことになるものとして選択したユーザ識別情報についてそれぞれ求めたシェア・データとを含ませるものであり、前記シェア・データは、それが予め定められた種類数だけ揃った場合にのみ前記セッション鍵を復号することを可能にするものであることを特徴とする暗号化装置。
【請求項４７】
前記予め定められた種類数は、前記ヘッダ情報の生成に際して定められたものであることを特徴とする請求項４６に記載の暗号化装置。
【請求項４８】
前記予め定められた種類数をｍ＋１とし、前記鍵生成多項式の次数をｋとした場合に、前記ｍは前記ｋとは異なる値に設定されたものであることを特徴とする請求項４６または４７に記載の暗号化装置。
【請求項４９】
コンテンツ提供側システムから提供された暗号化コンテンツを復号するユーザ側システムに使用される復号装置であって、
所定のセッション鍵で暗号化されたコンテンツ及び該コンテンツの提供対象のユーザに割り当てられた復号鍵を用いて該セッション鍵を復号することを可能にするヘッダ情報を送信する前記コンテンツ提供側システムから受信された、該ヘッダ情報及び当該ユーザに割り当てられた復号鍵を用いて該セッション鍵を復号するセッション鍵復号手段と、
復号された前記セッション鍵を用いて、前記コンテンツ提供側システムから受信された前記暗号化コンテンツを復号するコンテンツ復号手段とを備え、
当該ユーザに割り当てられた前記復号鍵は、複数のユーザのユーザ識別情報のグループを、複数のサブグループに分割し、該複数のサブグループの各々に対して互いに異なる鍵生成多項式を割り当て、当該ユーザのユーザ識別情報の属するサブグループに対して割り当てられた鍵生成多項式に、当該ユーザのユーザ識別情報を代入することによって得られた値を、当該ユーザに割り当てられた復号鍵とする生成方法により生成されたものであり、
前記セッション鍵復号手段が前記セッション鍵を復号するにあたって用いる前記ヘッダ情報は、それが前記セッション鍵を復号不能にするユーザを個別に設定可能な第１の種類のヘッダ情報である場合に、前記セッション鍵を復号することを可能にするデータの一部として、各ユーザについて当該ユーザのユーザ識別情報及び当該ユーザに割り当てられた復号鍵を用いて固有のシェア・データを求めるもととなるサブグループに固有のデータと、全サブグループに共通である、前記セッション鍵が復号できないことになるものとして選択されたユーザ識別情報についてそれぞれ求められたシェア・データとを含むものであり、前記シェア・データは、それが予め定められた種類数だけ揃った場合にのみ前記セッション鍵を復号することを可能にするものであり、
前記セッション鍵復号手段は、当該ユーザのユーザ識別情報及び当該ユーザに割り当てられた復号鍵並びに前記ヘッダ情報に含まれる当該サブグループに固有のデータを用いて求めた前記固有のシェア・データと、前記ヘッダ情報に含まれるシェア・データとを用いて前記セッション鍵を復号することを特徴とする復号装置。
【請求項５０】
前記予め定められた種類数は、前記ヘッダ情報の生成に際して定められたものであることを特徴とする請求項４９に記載の復号装置。
【請求項５１】
前記予め定められた種類数をｍ＋１とし、前記鍵生成多項式の次数をｋとした場合に、前記ｍは前記ｋとは異なる値に設定されたものであることを特徴とする請求項４９または５０に記載の復号装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンテンツを暗号化して受け渡しするコンテンツ提供側システム及びユーザ側システム、該システムに使用される暗号化装置及び復号装置、不正ユーザを特定するための追跡システム、コンテンツ提供方法、暗号化コンテンツ復号方法及び不正ユーザ特定方法、並びにプログラムに関する。
【０００２】
【従来の技術】
従来から放送型コンテンツ配信における各種の不正者特定方法が知られており、それらはユーザの復号鍵生成方法により二つのタイプに分類できる。一つは、組み合わせ論的な構成に基づく方法であり、もう一つは代数的な構成に基づく方法である。前者の方法では、正当な（不正なユーザ側システムの作出に関与していない）ユーザを誤って不正者と検出してしまう確率を十分小さくするために送信オーバヘッドを非常に大きくしなければならない。後者の方法では、この問題を解決し、効率的な送信オーバヘッドを達成している。また、後者の方法に関して、鍵配送方法に秘密分散法を応用することにより特定のユーザの復号鍵を無効化する機能を有する不正者特定方法が提案されている（例えば、非特許文献１参照）。
【０００３】
しかし、海賊版復号器（海賊版復号器には複数のユーザ（不正者）に対応する鍵ｆ（ｘ）（またはそれと等価な機能を有するデータ）が格納されることもある；これを結託と呼ぶ）から１又は複数の不正者を特定する際に、海賊版復号器（不正復号器）の内部情報（復号鍵等）を不正復号器をこじ開けるなどして探査することなく、その入出力のみを観測することにより、不正者を特定するブラックボックス追跡を行うとき、後者の方法では、ブラックボックス追跡に要する処理ステップ数が指数関数的であり、ブラックボックス追跡を行うことが実用上不可能という問題がある。具体的には、追跡者（ブラックボックス追跡を行う者）が容疑者（不正者の候補）を想定し、その容疑者が本当に不正者であるかの検査を行う、という処理を、あり得る容疑者集合の全てに対して行っていた。これは、従来の鍵生成多項式が次式のように単一であることから、
ｆ（ｘ）＝ａ0＋ａ1・ｘ＋ａ2・ｘ2＋…＋ａk・ｘk
、一度に検査できる容疑者数に上限があるためであり、全ユーザ数をｎ、最大結託人数をｋとしたとき、ｎＣｋ＝ｎ！／｛ｋ！（ｎ−ｋ）！｝通りの容疑者集合を検査しなければならず、非実用的である。
【０００４】
【非特許文献１】
M. Naor and B. Pinkas: “Efficient Trace and Revoke Schemes”、 In Proc. of Financial Cryptography ’00、 LNCS 1962、 Springer-Verlag、 pp.1-20、 February 2000
【０００５】
【発明が解決しようとする課題】
上述したように従来の方法では、ブラックボックス追跡に莫大な処理ステップ数を要する問題があった。また、復号鍵の無効化を（無効化できる数に上限があると言う意味で）柔軟に行うことはできなかった。
【０００６】
本発明は、上記事情を考慮してなされたもので、送信オーバヘッドの効率化とともに、より柔軟な復号鍵の無効化あるいはブラックボックス追跡の効率化を可能とするコンテンツ提供側システム、ユーザ側システム、追跡システム、コンテンツ提供方法、暗号化コンテンツ復号方法、不正ユーザ特定方法、暗号化装置、復号装置及びプログラムを提供することを目的とする。
【０００７】
【課題を解決するための手段】
本発明は、コンテンツ提供側システムから複数のユーザ側システムへ、所定のセッション鍵で暗号化したコンテンツに、該コンテンツの提供対象のユーザに割り当てられた復号鍵を用いて該セッション鍵を復号することを可能にするヘッダ情報を付加して送信し、該暗号化されたコンテンツ及びヘッダ情報を受信したユーザ側システムは、当該ユーザに割り当てられた復号鍵及び該ヘッダ情報を用いて該セッション鍵を復号し、該セッション鍵を用いて該暗号化されたコンテンツを復号するデータ通信システムにおける鍵生成方法であって、前記復号鍵を割り当てるべき複数のユーザのユーザ識別情報のグループを、複数のサブグループに分割し、前記複数のサブグループの各々に対して互いに異なる鍵生成多項式を割り当て、当該ユーザのユーザ識別情報の属する前記サブグループに対して割り当てられた前記鍵生成多項式に、当該ユーザのユーザ識別情報を代入することによって得られた値を、当該ユーザに割り当てられた復号鍵とすることを特徴とする。
【０００８】
また、本発明は、各ユーザに固有に割り当てる復号鍵に基づいて特定ユーザにてセッション鍵を復号することを可能にするヘッダ情報を送信するコンテンツ提供側システムと、前記ヘッダ情報を受信し、該ヘッダ情報及び自身に固有に割り当てられた復号鍵に基づいて前記セッション鍵を復号する複数のユーザ側システムとを含むデータ通信システムにおける鍵配送方法であって、前記各ユーザに固有に割り当てられる復号鍵は、ユーザの集合を複数のサブグループに分割し、複数のサブグループの各々に対して互いに異なる鍵生成多項式を割り当てた場合に、当該ユーザの属するサブグループに割り当てられた鍵生成多項式に当該ユーザのユーザ識別情報を代入することによって得られる値とすることを特徴とする。なお、放送型コンテンツ配信では、送信データは単一の鍵（セッション鍵）で暗号化されるのが一般的であり、鍵配送方法とは、セッション鍵を各ユーザの復号鍵で復号できる形式に暗号化するセッション鍵の暗号化・復号方法を意味する。
【０００９】
好ましくは、前記複数のサブグループの各々に対して割り当てられる互いに異なる鍵生成多項式は、多項式係数の一部のみを異にするものであるようにしてもよい。
【００１０】
好ましくは、前記ユーザ識別情報のグループを、ｋ個のサブグループに分割する場合に、第ｉ（ｉ＝１〜ｋとする）のサブグループに対しては、鍵生成多項式ｆi（ｘ）＝ａ0＋ａ1・ｘ＋ａ2・ｘ2＋ａ3・ｘ3＋…＋ｂi・ｘi＋…＋ａk-2・ｘk-2＋ａk-1・ｘk-1＋ａk・ｘkを割り当てるようにしてもよい。
【００１１】
また、好ましくは、前記ユーザ識別情報のグループを、Ｍ・ｋ＋Δｋ個（１≦Ｍ、０＜Δｋ≦ｋ）のサブグループに分割する場合に、第ｍ・ｋ＋ｉ（０≦ｍ≦Ｍ、０≦ｍ＜Ｍのときに１≦ｉ≦ｋ、ｍ＝Ｍのときに１≦ｉ≦Δｋ）で表されるサブグループに対して、鍵生成多項式ｆi（ｘ）＝ａ0＋ａ1・ｘ＋ａ2・ｘ2＋ａ3・ｘ3＋…＋ｂm,i・ｘi＋…＋ａk-2・ｘk-2＋ａk-1・ｘk-1＋ａk・ｘkを割り当てるようにしてもよい。
【００１２】
本発明では、ユーザの復号鍵を鍵生成多項式により生成するにあたって、ユーザ集合を複数のサブグループに分割し、各サブグループへの鍵生成多項式の割り当て方が、例えば、第１のサブグループに対しては、ｆ1（ｘ）＝ａ0＋ｂ1・ｘ＋ａ2・ｘ2＋…＋ａk・ｘkを割り当て、第２のサブグループ２に対しては、ｆ2（ｘ）＝ａ0＋ａ1・ｘ＋ｂ2・ｘ2＋…＋ａk・ｘkを割り当て、以下同様にして、サブグループｋに対しては、ｆk（ｘ）＝ａ0＋ａ1・ｘ＋ａ2・ｘ2＋ａ3・ｘ3＋…＋ｂk・ｘkを割り当て、というように（あるいは、例えば、第１（＝０・ｋ＋１）のサブグループに対しては、ｆ1（ｘ）＝ａ0＋ｂ0,1・ｘ＋ａ2・ｘ2＋ａ3・ｘ3＋…＋ａk・ｘkを割り当て、第２（＝０・ｋ＋２）のサブグループに対しては、ｆ2（ｘ）＝ａ0＋ａ1・ｘ＋ｂ0,2・ｘ2＋ａ3・ｘ3＋…＋ａk・ｘkを割り当て、以下同様にして、第ｋ（＝０・ｋ＋ｋ）のサブグループに対しては、ｆk（ｘ）＝ａ0＋ａ1・ｘ＋ａ2・ｘ2＋ａ3・ｘ3＋…＋ｂ0,k・ｘkを割り当て、第ｋ＋１（＝１・ｋ＋１）のサブグループに対しては、ｆk+1（ｘ）＝ａ0＋ｂ1,1・ｘ＋ａ2・ｘ2＋ａ3・ｘ3＋…＋ａk・ｘkを割り当て、第ｋ＋２（＝１・ｋ＋２）のサブグループに対しては、ｆk+2（ｘ）＝ａ0＋ａ1・ｘ＋ｂ1,2・ｘ2＋ａ3・ｘ3＋…＋ａk・ｘkを割り当て、以下同様にして、第２ｋ（＝１・ｋ＋ｋ）のサブグループに対しては、ｆ2k（ｘ）＝ａ0＋ａ1・ｘ＋ａ2・ｘ2＋ａ3・ｘ3＋…＋ｂ1,k・ｘkを割り当て、以下同様にし、そして、第Ｍ・ｋ＋１のサブグループに対しては、ｆM・k+1（ｘ）＝ａ0＋ｂM,1・ｘ＋ａ2・ｘ2＋ａ3・ｘ3＋…＋ａk・ｘkを割り当て、第Ｍ・ｋ＋２のサブグループに対しては、ｆM・k+2（ｘ）＝ａ0＋ａ1・ｘ＋ｂM,2・ｘ2＋ａ3・ｘ3＋…＋ａk・ｘkを割り当て、以下同様にして、第Ｍ・ｋ＋Δｋのサブグループに対しては、ｆM・k+Δk（ｘ）＝ａ0＋ａ1・ｘ＋ａ2・ｘ2＋…＋ｂM,Δk・ｘΔk＋…＋ａk・ｘkを割り当て、というように）、それぞれのサブグループに対し異なる鍵生成多項式を用いて復号鍵を生成する。これにより、任意の人数のユーザの復号鍵を無効化することが可能となる。また、ブラックボックス追跡に要する処理ステップ数の削減が可能となる。
【００１３】
本発明は、複数のユーザ側システムへ暗号化コンテンツを提供するコンテンツ提供側システムであって、提供すべきコンテンツを、所定のセッション鍵で暗号化する暗号化手段と、前記コンテンツの提供対象のユーザに割り当てられた復号鍵を用いて前記セッション鍵を復号することを可能にするヘッダ情報を生成する生成手段と、前記暗号化されたコンテンツに前記ヘッダ情報を付加して送信するための送信手段とを備え、前記復号鍵は、複数のユーザのユーザ識別情報のグループを、複数のサブグループに分割し、該複数のサブグループの各々に対して互いに異なる鍵生成多項式を割り当て、当該ユーザのユーザ識別情報の属するサブグループに対して割り当てられた鍵生成多項式に、当該ユーザのユーザ識別情報を代入することによって得られた値を、当該ユーザに割り当てられた復号鍵とする生成方法により生成されたものであり、前記生成手段は、前記ヘッダ情報を生成するにあたって、前記セッション鍵を復号不能にするユーザを個別に設定可能な第１の種類のヘッダ情報を生成する場合に、該第１の種類のヘッダ情報に、前記セッション鍵を復号することを可能にするデータの一部として、各ユーザについて当該ユーザのユーザ識別情報及び当該ユーザに割り当てられた復号鍵を用いて固有のシェア・データを求めるもととなるサブグループに固有のデータと、全サブグループに共通である、前記セッション鍵が復号できないことになるものとして選択したユーザ識別情報についてそれぞれ求めたシェア・データとを含ませるものであり、前記シェア・データは、それが予め定められた種類数だけ揃った場合にのみ前記セッション鍵を復号することを可能にするものであることを特徴とする。
【００１４】
本発明は、コンテンツ提供側システムから提供された暗号化コンテンツを復号するユーザ側システムであって、前記コンテンツ提供側システムから送信された、所定のセッション鍵で暗号化されたコンテンツ及び該コンテンツの提供対象のユーザに割り当てられた復号鍵を用いて該セッション鍵を復号することを可能にするヘッダ情報を受信するための受信手段と、受信された前記ヘッダ情報及び当該ユーザに割り当てられた復号鍵を用いて前記セッション鍵を復号するセッション鍵復号手段と、復号された前記セッション鍵を用いて、受信された前記暗号化されたコンテンツを復号するコンテンツ復号手段とを備え、当該ユーザに割り当てられた前記復号鍵は、複数のユーザのユーザ識別情報のグループを、複数のサブグループに分割し、該複数のサブグループの各々に対して互いに異なる鍵生成多項式を割り当て、当該ユーザのユーザ識別情報の属するサブグループに対して割り当てられた鍵生成多項式に、当該ユーザのユーザ識別情報を代入することによって得られた値を、当該ユーザに割り当てられた復号鍵とする生成方法により生成されたものであり、前記セッション鍵復号手段が前記セッション鍵を復号するにあたって用いる前記ヘッダ情報は、それが前記セッション鍵を復号不能にするユーザを個別に設定可能な第１の種類のヘッダ情報である場合に、前記セッション鍵を復号することを可能にするデータの一部として、各ユーザについて当該ユーザのユーザ識別情報及び当該ユーザに割り当てられた復号鍵を用いて固有のシェア・データを求めるもととなるサブグループに固有のデータと、全サブグループに共通である、前記セッション鍵が復号できないことになるものとして選択されたユーザ識別情報についてそれぞれ求められたシェア・データとを含むものであり、前記シェア・データは、それが予め定められた種類数だけ揃った場合にのみ前記セッション鍵を復号することを可能にするものであり、前記セッション鍵復号手段は、当該ユーザのユーザ識別情報及び当該ユーザに割り当てられた復号鍵並びに前記ヘッダ情報に含まれる当該サブグループに固有のデータを用いて求めた前記固有のシェア・データと、前記ヘッダ情報に含まれるシェア・データとを用いて前記セッション鍵を復号することを特徴とする。
【００１５】
本発明では、暗号化データ用の復号鍵であるセッション鍵を、上記したような鍵生成方法により生成される復号鍵で復号可能とするものであり、任意の人数のユーザの復号鍵を無効化することできる。復号鍵の無効化は、無効化対象ユーザ（ある特定の（１人または複数の）ユーザ）の復号鍵を用いてもセッション鍵が得られず、かつそれ以外のユーザの復号鍵で復号できる形式に、セッション鍵を暗号化することにより達成される。
【００１６】
本発明は、所定のセッション鍵で暗号化したコンテンツ及び該コンテンツの提供対象のユーザに割り当てられた復号鍵を用いて該セッション鍵を復号することを可能にするヘッダ情報を受信し、該ヘッダ情報及び当該ユーザに割り当てられた復号鍵を用いて該セッション鍵を復号し、該セッション鍵を用いて該暗号化されたコンテンツを復号する正当なユーザ側システムを、１つ又は複数もとにして作出された、不正なユーザ側システムを対象として、該対象システムの作出のもととなった、１つ又は複数の正当なユーザ側システムの不正ユーザを特定するための追跡システムであって、特定の一部のユーザについて当該ユーザに割り当てられた復号鍵を用いて該セッション鍵を復号することを不能にし且つ他の全てのユーザについて当該ユーザに割り当てられた復号鍵を用いて該セッション鍵を復号することを可能にするように設定した前記ヘッダ情報を、該セッション鍵を復号不能とするユーザを変えたものについて生成するための生成手段と、前記ヘッダ情報を前記対象システムへ与え、該対象システムによる前記セッション鍵の復号結果を取得する取得手段と、前記対象システムへ与えた当該ヘッダ情報において復号不能とされたユーザと、当該ヘッダ情報に対する前記対象システムによる前記セッション鍵の復号結果との関係に基づいて、前記対象システムの作出のもととなった、少なくとも１つの前記正当なユーザ側システムの不正ユーザを特定する特定手段とを備え、前記復号鍵は、複数のユーザのユーザ識別情報のグループを、複数のサブグループに分割し、該複数のサブグループの各々に対して互いに異なる鍵生成多項式を割り当て、当該ユーザのユーザ識別情報の属するサブグループに対して割り当てられた鍵生成多項式に、当該ユーザのユーザ識別情報を代入することによって得られた値を、当該ユーザに割り当てられた復号鍵とする生成方法により生成されたものであることを特徴とする。
【００１７】
本発明では、上記したような鍵生成方法により生成される復号鍵が埋め込まれている海賊版復号器から不正者を特定するにあたって、結託者が構成した不正復号器の内部情報を探査することなく、その入出力を観察するのみにより結託者（のユーザ識別情報）を特定する。本発明では、上記したような鍵生成方法あるいは鍵配送方法を応用することで、一度に検査できる容疑者数の制限をなくすことができる。
【００１８】
なお、装置に係る本発明は方法に係る発明としても成立し、方法に係る本発明は装置に係る発明としても成立する。
また、コンテンツ提供側システム／方法に係る本発明は暗号化装置／方法に係る本発明としても成立し、ユーザ提供側システム／方法に係る本発明は復号装置／方法に係る本発明としても成立する。
また、装置または方法に係る本発明は、コンピュータに当該発明に相当する手順を実行させるための（あるいはコンピュータを当該発明に相当する手段として機能させるための、あるいはコンピュータに当該発明に相当する機能を実現させるための）プログラムとしても成立し、該プログラムを記録したコンピュータ読取り可能な記録媒体としても成立する。
【００１９】
【発明の実施の形態】
以下、図面を参照しながら発明の実施の形態を説明する。
【００２０】
（第１の実施形態）
まず、本発明の第１の実施形態を説明する。
【００２１】
図１に、本実施形態に係るデータ通信システムの構成例を示す。
【００２２】
図１に示されるように、本データ通信システムは、コンテンツを暗号化してネットワーク３を介してブロードキャストあるいはマルチキャストするコンテンツ提供側システム１と、コンテンツ提供側システム１によりブロードキャストあるいはマルチキャストされた暗号化コンテンツをネットワーク３を介して受信し復号する複数のユーザ側システム２とを含む。
【００２３】
なお、図１では、１つのコンテンツ提供側システム１のみ示しているが、コンテンツ提供側システム１が複数存在しても構わない。
【００２４】
また、１つのノードが、コンテンツ提供側システムの機能とユーザ側システムの機能とを兼ね備えてもよい。また、全てのノードがコンテンツ提供側システムの機能とユーザ側システムの機能とを兼ね備えることによって、相互に暗号通信可能としてもよい。
【００２５】
ネットワーク３は、有線ネットワークでも、無線ネットワークでもよい。また、有線ネットワークと無線ネットワークを両方使用したものであってもよい。また、双方向ネットワークでも、単方向ネットワークでもよい。
【００２６】
図２に、本実施形態の全体的なシーケンスの一例を示す。
【００２７】
各ユーザ側システム２には、それぞれ、固有のユーザ識別情報（ユーザＩＤ）が割り当てられているものとする。
【００２８】
コンテンツ提供側システム１は、所定のセッション鍵（単一の鍵）を生成し（Ｓ１）、各ユーザ側システム２にて該セッション鍵を取得（復号）するためのヘッダ情報を生成し（Ｓ２）、該セッション鍵でコンテンツを暗号化し（Ｓ３）、暗号化コンテンツにヘッダ情報を付加してブロードキャストあるいはマルチキャストする（Ｓ４）。なお、Ｓ２とＳ３は、上記とは逆の順序で行ってもよいし、同時に行ってもよい。また、セッション鍵をその都度変更しない場合は、Ｓ１が省かれることもある（従前のセッション鍵を使用する）。
【００２９】
ヘッダ情報／暗号化コンテンツを受信した（Ｓ４）各々のユーザ側システム２は、自身に割り当てられたユーザＩＤをもとに得られる復号鍵及びヘッダ情報に基づいてセッション鍵を取得（復号）し（Ｓ５）、取得（復号）したセッション鍵で暗号化コンテンツを復号する（Ｓ６）。
【００３０】
また、詳しくは後述するように、コンテンツ提供側システム１は、復号鍵を無効化すべき対象となるユーザＩＤがある場合には、無効化対象の（１又は複数の）ユーザＩＤに基づいてヘッダ情報を生成することで、該無効化対象のユーザＩＤを持つユーザ側システム２についてはＳ５で正しいセッション鍵が取得できない（従って、Ｓ６で暗号化コンテンツを復号できない）ようにし、且つ、該無効化対象のユーザＩＤ以外のユーザＩＤを持つユーザ側システム２についてはＳ６で正しいセッション鍵が取得でき（従って、Ｓ６で暗号化コンテンツを復号できる）ようにすることができる。
【００３１】
ここで、本実施形態では、ユーザの復号鍵は鍵生成多項式にユーザＩＤ（一定の範囲内から選択された正整数（例えば、１からｎまでの連番）とする）を代入して生成するが、その際、図５（ａ）に例示するように、ユーザ集合を複数のサブグループに分割し、各サブグループへの鍵生成多項式の割り当て方を、
サブグループＵ1に対しては、
ｆ1（ｘ）＝ａ0＋ｂ1・ｘ＋ａ2・ｘ2＋ａ3・ｘ3＋…＋ａk・ｘkを割り当て、
サブグループＵ2に対しては、
ｆ2（ｘ）＝ａ0＋ａ1・ｘ＋ｂ2・ｘ2＋ａ3・ｘ3＋…＋ａk・ｘkを割り当て、
サブグループＵ3に対しては、
ｆ3（ｘ）＝ａ0＋ａ1・ｘ＋ａ2・ｘ2＋ｂ3・ｘ3＋…＋ａk・ｘkを割り当て、
以下同様にして、
サブグループＵmに対しては、
ｆm（ｘ）＝ａ0＋ａ1・ｘ＋ａ2・ｘ2＋ａ3・ｘ3＋…＋ｂm・ｘm＋…＋ａk・ｘk
、というように、それぞれのサブグループに対し異なる鍵生成多項式（上記は、多項式係数の一部を異にする鍵生成多項式の例）を割り当てる割り当て方とし、当該ユーザＩＤの属するサブグループに割り当てられた鍵生成多項式を用いて当該ユーザＩＤの復号鍵を生成するようにする。
【００３２】
これにより、任意の人数のユーザの復号鍵を無効化することが可能となり、また、ブラックボックス追跡に要する処理ステップ数の削減が可能となる。
【００３３】
なお、ユーザ側システム２に割り当てられたユーザＩＤを、当該ユーザＩＤの属するサブグループに割り当てられた鍵生成多項式に代入して得られる復号鍵は、予めコンテンツ提供側システム１または信頼できる第三者からユーザ側システム２へ与えられて保持しておくものとする。
【００３４】
なお、図５（ａ）に例示したグルーピングの方法は一例であり、この他にも種々のグルーピングの仕方が可能である。
【００３５】
また、上記では、ユーザＩＤを一定の範囲内から選択された正整数（例えば、１からｎまでの連番）としているが、その代わりに、ユーザＩＤは特に正整数とはせずに（例えば、英数字等でもよい）、英数字等のユーザＩＤに対して固有に一定の範囲内から選択された正整数を割り当て、ユーザＩＤに固有に割り当てられた正整数及び該当する鍵生成多項式をもとに復号鍵を計算する構成も可能である。
【００３６】
図３に、本実施形態のコンテンツ提供側システム１に搭載される暗号化装置１０の構成例を示す。
【００３７】
図３に示されるように、本暗号化装置１０は、公開鍵を格納する公開鍵格納部１４、公開鍵をもとにセッション鍵を生成するセッション鍵生成部１５、該セッション鍵でコンテンツを暗号化するコンテンツ暗号化部１１、無効化の対象とするユーザに関する情報を格納する無効化対象ユーザ情報格納部１３、公開鍵、セッション鍵（のもととなる情報）、（無効化対象ユーザがある場合の）情報無効化対象ユーザ情報や、その他の必要なパラメータ（後述する例では、パラメータｐ，ｑ，ｋ，Ｕ）等に基づいてヘッダ情報を生成するヘッダ生成部１２を備えている。
【００３８】
なお、コンテンツ提供側システム１は、通信インタフェース、コンテンツを蓄積する装置あるいはコンテンツを入力する装置など、種々の装置を必要に応じて備えるものとする。
【００３９】
図４に、本実施形態のユーザ側システム２に搭載される復号装置２０の構成例を示す。
【００４０】
図４に示されるように、本復号装置２０は、自身が属するサブグループＩＤと、自身に割り当てられたユーザＩＤと、該ユーザＩＤに対応する復号鍵（該ユーザＩＤ及びそれが属するサブグループに割り当てられた鍵生成多項式に基づいて得られる復号鍵）を格納するユーザ情報格納部２３、復号鍵及びヘッダ情報に基づいてセッション鍵を取得（復号）するセッション鍵復号部２１、取得（復号）したセッション鍵で暗号化コンテンツを復号するコンテンツ復号部２２を備えている。
【００４１】
なお、ユーザ側システム２は、通信インタフェース、コンテンツを蓄積する装置あるいはコンテンツを表示等する装置など、種々の装置を必要に応じて備えるものとする。
【００４２】
ここで、ヘッダ情報からセッション鍵を復号するメカニズムの概要について簡単に説明する。
【００４３】
まず、図５（ｂ）（下線が無効化対象ユーザを示す）のようにユーザＩＤ＝１，２，３のみを無効化する場合には、ある４つのデータ（後述するシェア）が揃って初めて、セッション鍵を復号できるようにする（説明を簡単にするため、無効化対象ユーザ数と最大結託人数が等しいとすると、無効化対象ユーザ数＋１のシェアが揃って初めて、セッション鍵を復号できるようにする）。
【００４４】
ヘッダ情報には、ユーザＩＤ＝１について求まるシェア（１，ｇrF(1)）、ユーザＩＤ＝２について求まるシェア（２，ｇrF(2)）、ユーザＩＤ＝３について求まるシェア（３，ｇrF(3)）を記述するとともに、当該ユーザＩＤ＝ｘ0についてシェア（ｘ0，ｇrF(x0)）を求めるもととなる情報を記述する。
【００４５】
ユーザＩＤ＝１，２，３以外のユーザＩＤについては、当該ユーザＩＤ＝ｘ0に対応するシェア（ｘ0，ｇrF(x0)）を求めることによって、必要な４つのシェアが揃うので、正しいセッション鍵を取得することができる。
【００４６】
これに対して、ユーザＩＤ＝１については、当該ユーザＩＤ＝１に対応するシェア（１，ｇrF(1)）を求めても、ヘッダ情報内に記述されているシェアと重複するので、必要な４つのデータが揃わないことになり、正しいセッション鍵を取得することができない。ユーザＩＤ＝２，３についても同様である。
【００４７】
次に、図５（ｃ）のように無効化対象ユーザＩＤ＝１〜２０が全て同一サブグループＵ1に属する場合には、全無効化対象ユーザ数分のシェアを使用するのではなく、当該１つのサブグループＵ1全体を無効化する。１つのサブグループＵ1全体を無効化する場合には、当該サブグループＵ1についてのみ、正しいセッション鍵が得られないように、（当該サブグループＵ1に対応する）セッション鍵を計算するもととなる情報に、間違った値（乱数等）を記述しておく。
【００４８】
サブグループＵ1に属するユーザＩＤについては、セッション鍵を計算するもととなる情報が間違った値になっているので、正しいセッション鍵を取得することができない。
【００４９】
また、図５（ｄ）のようにユーザＩＤ＝１〜２０すなわち１つのサブグループＵ1全体を無効化するとともに、ユーザＩＤ＝２１，２２，２３を無効化する場合には、図５（ｂ）の方法と、図５（ｃ）の方法を組み合わせて実施する。なお、説明を簡単にするため、サブグループ全体が無効化されるサブグループに属さない無効化対象ユーザの数と最大結託人数が等しい場合、セッション鍵の復号に必要なシェアの数は、サブグループ全体が無効化されるサブグループに属さない無効化対象ユーザの数＋１とする。
【００５０】
この例の場合、ヘッダ情報には、ユーザＩＤ＝２１について求まるシェア（２１，ｇrF(21)）、ユーザＩＤ＝２２について求まるシェア（２２，ｇrF(22)）、ユーザＩＤ＝２３について求まるシェア（２３，ｇrF(23)）を記述する。また、無効化するサブグループＵ1についてのみ、正しいシェアが得られないように、（当該サブグループＵ1に対応する）シェアを計算するもととなる情報に、間違った値（乱数等）を記述しておく。それ以外のサブグループにいては、正しいシェアが得られるように、（当該サブグループに対応する）シェアを計算するもととなる情報に、正しい値を記述しておく。
【００５１】
サブグループＵ1に属するユーザＩＤ以外で且つユーザＩＤ＝２１，２２，２３以外のユーザＩＤについては、正しいシェアを求めることができ、これによって必要な４つのデータが揃うので、正しいセッション鍵を取得することができる。
【００５２】
ユーザＩＤ＝２１，２２，２３については、正しいシェアを求めることができても、必要な４つのシェアが揃わないので、正しいセッション鍵を取得することができない。
【００５３】
サブグループＵ1に属するユーザＩＤについては、正しいシェアを計算するもととなる情報が間違った値になっているので、正しい４つのシェアが揃わないことになり、結局、正しいセッション鍵を取得することができない。
【００５４】
さて、以下では、鍵生成フェーズ、暗号化フェーズ、復号フェーズについて、詳細に説明する。
【００５５】
始めにパラメータを定義する。
全ユーザ数をｎとし、最大結託人数をｋとする。
ｐ，ｑを素数とし、ｑはｐ−１を割り切り、かつ、ｑはｎ＋１以上であるとする。
Ｚｑ＝｛０，１，…，ｑ−１｝とする。
Ｚｐ*＝｛１，…，ｐ−１｝とする。
ｇを、Ｚｐ*上の１のｑ乗根とする。
Ｇｑを、Ｚｐ*の部分群であり、かつ、位数がｑである乗法群とする。
ユーザ集合（ユーザの識別情報（ユーザ番号）の集合）を、Ｕ（Ｕ⊆Ｚｑ−｛０｝）とする。なお、Ｚｑ−｛０｝は、Ｚｑから｛０｝を取り除いたものを意味する。
無効化対象ユーザ集合（復号鍵を無効化されるユーザの集合）をχとする。
ｐ，ｑ，ｇの値は公開されている。
以下、特に断りの無い限り、計算はＺｐ*上で行われるとする。
【００５６】
（鍵生成フェーズ）
公開鍵のもととなるパラメータａ0，…，ａk，ｂ1，…，ｂk，ｃ0をＺｑからランダムに選択する。なお、(ｇｃ0)rがセッション鍵となる。
【００５７】
ただし、ここではｃ0を選択しない構成も可能であり、そのような構成の場合には、後述する暗号化フェーズにおいてｃ0が生成される。
【００５８】
次に、公開鍵ｅを計算する。
【００５９】
上記でｃ0を選択した場合には、公開鍵ｅは、式（１）のようになる。
【００６０】
【数１】
0003917507.tif 000002
【００６１】
ここではｃ0を選択しない構成の場合には、公開鍵ｅは、式（２）のようになる。
【００６２】
【数２】
0003917507.tif 000003
【００６３】
さらに、ユーザ集合Ｕを、共通要素を持たないｋ（＝最大結託人数）個の部分集合に分割する。これらｋ個の部分集合をＵ1，…，Ｕkとする。Ｕ1，…，Ｕkは公開されている。
【００６４】
最後に、部分集合Ｕiに属するユーザｕ（ユーザｕのユーザＩＤをｕとする）に復号鍵ｆi（ｕ）（ユーザｕの属する部分集合Ｕiに割り当てられた鍵生成多項式ｆi（ｘ）にｘ＝ｕを代入して得た値）を与える。ここで、鍵生成多項式ｆi（ｘ）は、式（３）のように表される。
【００６５】
【数３】
0003917507.tif 000004
【００６６】
（暗号化フェーズ）
無効化対象ユーザ集合χ（例えば、図５（ｄ）の｛１，…，２３｝）から、Ｕz⊆χを満たす全ての部分集合Ｕz（例えば、図５（ｄ）のＵ1）を取り除いた集合が、空集合でない場合、それを｛ｘ1，…，ｘm｝とする（例えば、図５（ｄ）の場合に｛ｘ1，…，ｘ3｝＝｛２１，２２，２３｝（ｍ＝３）などとなる）。
【００６７】
次に、ｃ1，…，ｃmを（鍵生成フェーズでｃ0が生成されない構成の場合には、ｃ0，…，ｃmを）、Ｚｑからランダムに選択し、ヘッダｈ（ｒ，χ）を、式（４）〜（４−８）に従って計算する。
【００６８】
【数４】
0003917507.tif 000005
ここで、ｒ，ｒjは乱数である。
【００６９】
鍵生成フェーズでｃ0が生成されない構成の場合にも、ｙ2,0＝ｇc0である。
【００７０】
例えば、図５（ｄ）の場合に、Ｈ1＝（２１，ｇrF(21)）、Ｈ2＝（２２，ｇrF(22)）、Ｈ3＝（２３，ｇrF(23)）などとなる。
【００７１】
他方、無効化対象ユーザ集合χからＵz⊆χを満たす全ての部分集合Ｕzを取り除いた集合が空集合である場合（例えば、図５（ｃ）の場合）、または無効化対象ユーザ集合χが空集合である場合（例えば、図５（ａ）の場合）には、（鍵生成フェーズでｃ0が生成されない場合には、ｃ0をＺｑからランダムに選択し、）ヘッダｈ（ｒ，χ）を、式（５）のように計算する。
【００７２】
【数５】
0003917507.tif 000006
ここで、１≦ｊ≦ｋであり、ｒ，ｒｊは乱数である。
【００７３】
鍵生成フェーズでｃ0が生成されない構成の場合にも、ｙ2,0＝ｇc0である。
【００７４】
なお、式（５）に示したヘッダは、式（４）に示したヘッダからＨ１，…，Ｈｍを取り除き、ｍ＝０として構成したものとみなすことができる。
【００７５】
ここで、ｒはコンテンツ配信者が生成する乱数であり、ヘッダは公開鍵ｅを用いて計算できるので、誰でもコンテンツ配信者になることができる。
【００７６】
セッション鍵はｇrc0（＝y2,0r）＝ｇrF(0)であり、ヘッダｈ（ｒ，χ）とセッション鍵で暗号化したコンテンツとをユーザへ送信する。
【００７７】
（復号フェーズ）
部分集合Ｕiに属するユーザｘ0を考える。式（４）のヘッダを受信した場合、ユーザｘ0が無効化対象ユーザ集合χの要素でないとき、つまり、ユーザｘ0が無効化対象ユーザでないとき、まず、セッション鍵を計算するためのシェアｇrF(x0)を、式（６）のように計算する。
【００７８】
【数６】
0003917507.tif 000007
ここで、ｒ，ｒｊは乱数である。
【００７９】
このシェアｇrF(x0)を用いて、式（７）のようにセッション鍵ｇrF(0)を計算する。
【００８０】
【数７】
0003917507.tif 000008
【００８１】
他方、受信したヘッダが、式（５）の形式である場合、ｍ＝０として式（８）のようにセッション鍵ｇrF(0)を計算する。
【００８２】
【数８】
0003917507.tif 000009
【００８３】
なお、Ｄi（ｘ0），Ｂi,jの定義は、ｍ＝０とした場合に対応する式（６）におけるものと同様である。
【００８４】
なお、上記処理において、無効化対象ユーザ集合χからＵz⊆χを満たす全ての部分集合Ｕzを取り除いた集合｛ｘ1，…，ｘm｝に対し、（ユーザ集合以外且つ｛０｝以外で）Ｚｑから適宜選択したｘm+1，…，ｘtを任意に付け加えることも可能である（この場合、｛ｘ1，…，ｘm，ｘm+1，…，ｘt｝を、これまでの｛ｘ1，…，ｘm｝と考えて（すなわち、これまでの各数式においてｍ＝ｔとして）計算を行えばよい）。
【００８５】
さて、以下では、本実施形態の追跡装置について説明する。
【００８６】
本追跡装置は、海賊版復号器（不正復号器）が押収された場合に、ブラックボックス追跡（復号器の内部情報を探査することなく、その入出力を観察するのみにより不正者のユーザＩＤを特定する不正者特定方法）により、該海賊版復号器の不正作出のもととなった不正者（のユーザＩＤ）を特定するためのものである。
【００８７】
（正当な復号装置をもとにして）海賊版復号器が作出される場合には、１つの復号装置のみをもとにして作出される場合と、複数の復号装置をもとにして作出される場合とがある。後者の場合の復号装置のユーザ（不正者）を結託者と呼ぶ。
【００８８】
１つの復号装置のみをもとにして作出された海賊版復号器は、当該復号装置と同じ復号鍵が使用可能になる。複数の復号装置をもとにして作出された海賊版復号器は、当該複数の復号装置と同じ復号鍵がいずれも使用可能になる。後者の場合、結託者に対する全ての復号鍵が無効化されない限り、セッション鍵を得ることが可能になる。
【００８９】
図６に、本実施形態の追跡装置の構成例を示す。
【００９０】
本実施形態では、これまで説明した鍵配送方法を利用して、一度に検査できる容疑者数の制限をなくしている。
【００９１】
図６に示されるように、本追跡装置４０は、全体の制御を司る制御部４２、公開鍵を格納する公開鍵格納部４３、制御部４２からの指示に従い公開鍵やその他の必要なパラメータ（後述する例では、パラメータｐ，ｑ，ｋ，Ｕ）等をもとにしてヘッダ情報を生成するヘッダ生成部４１を備えている。
【００９２】
なお、本追跡装置４０は、例えば、コンテンツ提供側システム１に搭載されてもよいし、コンテンツ提供側システム１とは独立した装置であってもよい。また、ネットワーク３に接続する機能を備えてもよいし、備えなくても構わない。
【００９３】
概略的には、制御部４２は、無効化すべき（１又は複数の）ユーザＩＤ（すなわち無効化対象ユーザ集合）をヘッダ生成部４１に指示し、ヘッダ生成部４１は、指示された無効化対象ユーザ集合に従い、ヘッダ情報を生成する。なお、セッション鍵（のもととなる情報）は、制御部４２が生成してヘッダ生成部４１に指示してもよいし、ヘッダ生成部４１が生成して制御部４２に通知してもよい。生成されたヘッダ情報は、追跡対象の復号装置（海賊版復号器）２００に与えられる。制御部４２は、追跡対象復号装置２００により復号されたセッション鍵を入力し、正しいセッション鍵が得られたか否かを調べる。制御部４２は、無効化対象ユーザ集合を変えながら、同様の処理を繰り返し行い、それらの判定結果を総合して、不正者のユーザＩＤを特定する。
【００９４】
なお、ここでは、追跡対象復号装置２００において正しいセッション鍵が得られたか否かを判断しているが、追跡対象復号装置２００にセッション鍵で暗号化されたコンテンツも入力し、追跡対象復号装置２００では得られたセッション鍵で暗号化コンテンツを復号し、その結果を制御部４２に与え、制御部４２は追跡対象復号装置２００において暗号化コンテンツが正しく復号できたか否かを判定するようにしてもよい。
【００９５】
さて、以下では、本実施形態の追跡アルゴリズムの手順例を幾つか示す。なお、具体的な追跡アルゴリズムの手順については様々なバリエーションが可能であり、以下に示すものに限定されるものではない。
【００９６】
（手順例１）
図７に、本実施形態に係る追跡アルゴリズムの処理手順の一例を示す。
【００９７】
また、図８に、ステップＳ３のアルゴリズムＡの処理手順の一例を示す。
【００９８】
海賊版復号器Ｄが押収されたとき、以下の処理により不正者を特定する。
【００９９】
なお、部分集合Ｕ1，…，Ｕkの要素は、式（９）のようにラベル付けされているとする。
【０１００】
【数９】
0003917507.tif 000010
【０１０１】
Ｒ＝φ（空集合）およびｚ＝１に設定し（Ｓ１）、ｚ＝１，…，ｎについて以下の処理を実行する（Ｓ５，Ｓ６）。
【０１０２】
Ｔz＝Ｕ−｛ｕz｝と代入する（Ｓ２）。なお、Ｕ−｛ｕz｝は、Ｕから｛ｕz｝を取り除いたものを意味する。
【０１０３】
入力をＵ1，…，Ｕk，Ｔz，ＤとしてアルゴリズムＡを実行する（Ｓ３）。
【０１０４】
アルゴリズムＡ（Ｕ1，…，Ｕk，Ｔz，Ｄ）の出力が“１”ならばｕzをＲの要素に加える（Ｓ４）。出力が“０”ならばなにもしない。
【０１０５】
ステップＳ５でｚ＜ｎならば、ｚを１だけインクリメントして（Ｓ６）、ステップＳ２へ戻る。
【０１０６】
そして、ステップＳ５でｚ＝ｎとなったならば、処理ループを抜け、Ｒを不正者集合（不正者のユーザＩＤの集合）と決定して、Ｒを出力する（Ｓ７）。
【０１０７】
アルゴリズムＡについては、次のようになる。
【０１０８】
ＴzからＵi⊆Ｔzを満たす全ての部分集合Ｕiを取り除いた集合をＢとする（Ｓ１１）。
【０１０９】
Ｂが空集合であるかどうかチェックする（Ｓ１２）。
【０１１０】
Ｂが空集合でない場合、Ｂの全要素をｘ1，…，ｘmに代入し、式（４）のようにｈ（ｒ，Ｔｚ）を計算する（Ｓ１３）。他方、Ｂが空集合である場合、式（５）のようにｈ（ｒ，Ｔｚ）を計算する（Ｓ１４）。
【０１１１】
海賊版復号器Ｄに対して、ステップＳ１３またはステップＳ１４で計算されたｈ（ｒ，Ｔｚ）を入力し、その出力を観測する（Ｓ１５）。
【０１１２】
ここで、海賊版復号器Ｄが正しいセッション鍵を出力したか否か判定する（Ｓ１６）。
【０１１３】
海賊版復号器Ｄが正しいセッション鍵を出力するものである場合、“１”を出力する（Ｓ１８）。そうでない場合、“０”を出力する（Ｓ１７）。
【０１１４】
なお、海賊版復号器Ｄが復号後のコンテンツのみを出力する場合、コンテンツが正しく復号されているか否かを観測し、コンテンツが正しく復号されていれば“１”を出力し、そうでなければ“０”を出力するようにすればよい。
【０１１５】
この追跡方法では、容疑者（不正者の候補）を一人ずつ選択し（すなわち、選択した１つのユーザＩＤ以外の全てのユーザＩＤを無効化対象として生成したヘッダ情報を追跡対象復号装置に与え）、その容疑者が本当に不正者であるかを検査しており、この検査をｎ回行うことにより不正者全員を特定することができる。
【０１１６】
例えば、ユーザＩＤの集合を｛１，…，ｎ｝とし、追跡対象復号装置の結託者のユーザＩＤ＝ｃ１，ｃ２であるとする。
【０１１７】
この場合、ユーザＩＤ＝ｃ１以外の全てのユーザＩＤを無効化対象として生成したヘッダ情報を与えると、該追跡対象復号装置はユーザＩＤ＝ｃ１に対応しているので、正しいセッション鍵が得られる。
【０１１８】
また、ユーザＩＤ＝ｃ２以外の全てのユーザＩＤを無効化対象として生成したヘッダ情報を与えると、該追跡対象復号装置はユーザＩＤ＝ｃ２にも対応しているので、正しいセッション鍵が得られる。
【０１１９】
また、ユーザＩＤ＝ｃ２，ｃ３に該当しないある１つのユーザＩＤ以外の全てのユーザＩＤを無効化対象として生成したヘッダ情報を与えると、該追跡対象復号装置からは、正しいセッション鍵が得られない。
【０１２０】
したがって、該追跡対象復号装置の結託者のユーザＩＤは、ｃ１およびｃ２であることがわかる。
【０１２１】
（手順例２）
図９に、本実施形態に係る追跡アルゴリズムの処理手順の他の例を示す。
【０１２２】
この追跡方法では、二分探索を用いて/ｌｏｇ2  ｎ/＋１回の検査により不正者集合のうちの一人を特定する。なお、/ｌｏｇ2  ｎ/は、ｌｏｇ2  ｎを越えない最大の整数を示す。この場合、所要処理ステップ数がＯ（ｌｏｇ  ｎ）となる。
【０１２３】
先の例と同様、部分集合Ｕ１，…，Ｕｋの要素は式（９）のようにラベル付けされているとする。
【０１２４】
Ｌo＝０、Ｈi＝ｎ、およびｚ＝１に設定し（Ｓ２１）、ｚ＝１，…，/ｌｏｇ2ｎ/＋１について以下の処理を実行する（Ｓ２６，Ｓ２７）。
【０１２５】
Ｍｉｄ＝/（Ｌｏ＋Ｈｉ）／２/（すなわち、（Ｌｏ＋Ｈｉ）／２を越えない最大の整数）、Ｔz＝｛ｕ1，…，ｕMid｝と代入し（Ｓ２２）、入力をＵ1，…，Ｕk，Ｔz，Ｄとして前述したアルゴリズムＡ（図８参照）を実行する（Ｓ２３）。
【０１２６】
アルゴリズムＡ（Ｕ１，…，Ｕｋ，Ｔｚ，Ｄ）の出力が“１”ならばＬｏ＝Ｍｉｄと代入する（Ｓ２４）。出力が“０”ならばＨｉ＝Ｍｉｄと代入する（Ｓ２５）。
【０１２７】
ステップＳ２６でｚ＜/ｌｏｇ2  ｎ/＋１ならば、ｚを１だけインクリメントして（Ｓ２７）、ステップＳ２２へ戻る。
【０１２８】
そして、ステップＳ２６でｚ＝/ｌｏｇ2  ｎ/＋１となったならば、処理ループを抜け、あるｚ（ｚ＝１，…，/ｌｏｇ2  ｎ/＋１）について、Ａ（Ｕ1，…，Ｕk，Ｔz，Ｄ）＝“１”かつＡ（Ｕ1，…，Ｕk，Ｔz∪｛ｕ｝，Ｄ）＝“０”を満たすｕを不正者ＩＤと決定して出力する（Ｓ２８）。
【０１２９】
（手順例３）
手順例２では二分探索的に容疑者を増減して検査を行っているが、その代わりに、容疑者を一人ずつ増やして検査を行う方法も可能である。
【０１３０】
（第２の実施形態）
続いて、本発明の第２の実施形態を説明する。
【０１３１】
以下では、第１の実施形態と相違する点を中心に説明する。
【０１３２】
本実施形態に係るデータ通信システムの構成例は図１と同様である。なお、コンテンツ提供側システム１が複数存在しても構わない点も、１つのノードがコンテンツ提供側システムの機能とユーザ側システムの機能とを兼ね備えてもよい点も、全てのノードがコンテンツ提供側システムの機能とユーザ側システムの機能とを兼ね備えることによって相互に暗号通信可能としてもよい点も第１の実施形態と同様である。また、ネットワーク３に関するバリエーションについても第１の実施形態と同様である。
【０１３３】
本実施形態の全体的なシーケンスの一例は図２と同様である。
【０１３４】
なお、各ユーザ側システム２には、それぞれ、固有のユーザ識別情報（ユーザＩＤ）が割り当てられているものとする点も、第１の実施形態と同様である。
【０１３５】
また、コンテンツ提供側システム１は、復号鍵を無効化すべき対象となるユーザＩＤがある場合には、無効化対象の（１又は複数の）ユーザＩＤに基づいてヘッダ情報を生成することで、該無効化対象のユーザＩＤを持つユーザ側システム２については図２のＳ５で正しいセッション鍵が取得できない（従って、図２のＳ６で暗号化コンテンツを復号できない）ようにし、且つ、該無効化対象のユーザＩＤ以外のユーザＩＤを持つユーザ側システム２については図２のＳ６で正しいセッション鍵が取得でき（従って、図２のＳ６で暗号化コンテンツを復号できる）ようにすることができる点も、第１の実施形態と同様である。
【０１３６】
また、本実施形態でも、第１の実施形態と同様、ユーザの復号鍵は鍵生成多項式にユーザＩＤを代入して生成するものであるとともに、ユーザ集合を複数のサブグループに分割し、それぞれのサブグループに対し異なる鍵生成多項式を割り当て、各ユーザＩＤの属するサブグループに割り当てられた鍵生成多項式を用いて各ユーザＩＤの復号鍵を生成するようにする。これにより、任意の人数のユーザの復号鍵を無効化することが可能となり、また、ブラックボックス追跡に要する処理ステップ数の削減が可能となる。
【０１３７】
本実施形態のコンテンツ提供側システム１に搭載される暗号化装置１０の構成例は図３と同様である。なお、コンテンツ提供側システム１は、通信インタフェース、コンテンツを蓄積する装置あるいはコンテンツを入力する装置など、種々の装置を必要に応じて備えるものとする点も、第１の実施形態と同様である。
【０１３８】
本実施形態のユーザ側システム２に搭載される復号装置２０の構成例は基本的には図４と同様である。なお、ユーザ側システム２は、通信インタフェース、コンテンツを蓄積する装置あるいはコンテンツを表示等する装置など、種々の装置を必要に応じて備えるものとする点も、第１の実施形態と同様である。
【０１３９】
ここで、ヘッダ情報からセッション鍵を復号するメカニズムの概要について簡単に説明する。
【０１４０】
まず、図５（ｂ）（下線が無効化対象ユーザを示す）のようにユーザＩＤ＝１，２，３のみを無効化する場合には、ある４つのデータ（後述するシェア）が揃って初めて、セッション鍵を復号できるようにする（説明を簡単にするため、無効化対象ユーザ数と最大結託人数が等しいとすると、無効化対象ユーザ数＋１のシェアが揃って初めて、セッション鍵を復号できるようにする）。
【０１４１】
ヘッダ情報には、ユーザＩＤ＝１について求まるシェア（１，ｇF(1)）、ユーザＩＤ＝２について求まるシェア（２，ｇF(2)）、ユーザＩＤ＝３について求まるシェア（３，ｇF(3)）を記述するとともに、当該ユーザＩＤ＝ｘ0についてシェア（ｘ0，ｇF(x0)）を求めるもととなる情報を記述する。
【０１４２】
ユーザＩＤ＝１，２，３以外のユーザＩＤについては、当該ユーザＩＤ＝ｘ0に対応するシェア（ｘ0，ｇF(x0)）を求めることによって、必要な４つのシェアが揃うので、正しいセッション鍵を取得することができる。
【０１４３】
これに対して、ユーザＩＤ＝１については、当該ユーザＩＤ＝１に対応するシェア（１，ｇF(1)）を求めても、ヘッダ情報内に記述されているシェアと重複するので、必要な４つのデータが揃わないことになり、正しいセッション鍵を取得することができない。ユーザＩＤ＝２，３についても同様である。
【０１４４】
次に、図５（ｃ）のように無効化対象ユーザＩＤ＝１〜２０が全て同一サブグループＵ1に属する場合には、全無効化対象ユーザ数分のシェアを使用するのではなく、当該１つのサブグループＵ1全体を無効化する。１つのサブグループＵ1全体を無効化する場合には、当該サブグループＵ1についてのみ、正しいセッション鍵が得られないように、（当該サブグループＵ1に対応する）セッション鍵を計算するもととなる情報に、間違った値（乱数等）を記述しておく。
【０１４５】
サブグループＵ1に属するユーザＩＤについては、セッション鍵を計算するもととなる情報が間違った値になっているので、正しいセッション鍵を取得することができない。
【０１４６】
また、図５（ｄ）のようにユーザＩＤ＝１〜２０すなわち１つのサブグループＵ1全体を無効化するとともに、ユーザＩＤ＝２１，２２，２３を無効化する場合には、図５（ｂ）の方法と、図５（ｃ）の方法を組み合わせて実施する。なお、説明を簡単にするため、サブグループ全体が無効化されるサブグループに属さない無効化対象ユーザの数と最大結託人数が等しい場合、セッション鍵の復号に必要なシェアの数は、サブグループ全体が無効化されるサブグループに属さない無効化対象ユーザの数＋１とする。
【０１４７】
この例の場合、ヘッダ情報には、ユーザＩＤ＝２１について求まるシェア（２１，ｇF(21)）、ユーザＩＤ＝２２について求まるシェア（２２，ｇF(22)）、ユーザＩＤ＝２３について求まるシェア（２３，ｇF(23)）を記述する。また、無効化するサブグループＵ1についてのみ、正しいシェアが得られないように、（当該サブグループＵ1に対応する）シェアを計算するもととなる情報に、間違った値（乱数等）を記述しておく。それ以外のサブグループにいては、正しいシェアが得られるように、（当該サブグループに対応する）シェアを計算するもととなる情報に、正しい値を記述しておく。
【０１４８】
サブグループＵ1に属するユーザＩＤ以外で且つユーザＩＤ＝２１，２２，２３以外のユーザＩＤについては、正しいシェアを求めることができ、これによって必要な４つのデータが揃うので、正しいセッション鍵を取得することができる。
【０１４９】
ユーザＩＤ＝２１，２２，２３については、正しいシェアを求めることができても、必要な４つのシェアが揃わないので、正しいセッション鍵を取得することができない。
【０１５０】
サブグループＵ1に属するユーザＩＤについては、正しいシェアを計算するもととなる情報が間違った値になっているので、正しい４つのシェアが揃わないことになり、結局、正しいセッション鍵を取得することができない。
【０１５１】
さて、以下では、鍵生成フェーズ、暗号化フェーズ、復号フェーズについて、詳細に説明する。
【０１５２】
始めにパラメータを定義する。
全ユーザ数をｎとし、最大結託人数をｋとする。
ｐ，ｑを素数とし、ｑはｐ−１を割り切り、かつ、ｑはｎ＋ｋ＋１以上であるとする。
Ｚｑ＝｛０，１，…，ｑ−１｝とする。
Ｚｐ*＝｛１，…，ｐ−１｝とする。
ｇを、Ｚｐ*上の１のｑ乗根とする。
Ｇｑを、Ｚｐ*の部分群であり、かつ、位数がｑである乗法群とする。
ユーザ集合（ユーザの識別情報（ユーザ番号）の集合）を、Ｕ（Ｕ⊆Ｚｑ−｛０｝）とする。なお、Ｚｑ−｛０｝は、Ｚｑから｛０｝を取り除いたものを意味する。
無効化対象ユーザ集合（復号鍵を無効化されるユーザの集合）をχとする。
ｐ，ｑ，ｇの値は公開されている。
以下、特に断りの無い限り、計算はＺｐ*上で行われるとする。
【０１５３】
（鍵生成フェーズ）
公開鍵のもととなるパラメータａ0，…，ａk，ｂ1，…，ｂkをＺｑからランダムに選択する。なお、ｇｃ0がセッション鍵となる。
【０１５４】
次に、公開鍵ｅを計算する。
【０１５５】
公開鍵ｅは、式（２）のようになる。
【０１５６】
さらに、ユーザ集合Ｕを、共通要素を持たないｋ（＝最大結託人数）個の部分集合に分割する。これらｋ個の部分集合をＵ1，…，Ｕkとする。Ｕ1，…，Ｕkは公開されている。
【０１５７】
最後に、部分集合Ｕiに属するユーザｕ（ユーザｕのユーザＩＤをｕとする）に復号鍵ｆi（ｕ）（ユーザｕの属する部分集合Ｕiに割り当てられた鍵生成多項式ｆi（ｘ）にｘ＝ｕを代入して得た値）を与える。ここで、鍵生成多項式ｆi（ｘ）は、式（３）のように表される。
【０１５８】
（暗号化フェーズ）
無効化対象ユーザ集合χ（例えば、図５（ｄ）の｛１，…，２３｝）から、Ｕz⊆χを満たす全ての部分集合Ｕz（例えば、図５（ｄ）のＵ1）を取り除いた集合（Ｙと定義する）が空集合であるか否かをチェックする。Ｙが、空集合でない場合、それを｛ｘ1，…，ｘw｝とする（例えば、図５（ｄ）の場合に｛ｘ1，…，ｘ3｝＝｛２１，２２，２３｝（ｗ＝３）などとなる）。次に、ｄ（ｋ＋１）≦ｗ≦ｄ（ｋ＋１）＋ｋを満たす整数ｄを見つけ、ｍ＝ｄ（ｋ＋１）＋ｋとする。他方、Ｙが空集合である場合（例えば、図５（ｃ）の場合）、または無効化対象ユーザ集合χが空集合である場合（例えば、図５（ａ）の場合）には、ｍ＝ｋ、ｗ＝０とする。
【０１５９】
次に、ｃ0，…，ｃmを、Ｚｑからランダムに選択し、ｗ＜ｍならば、ｘw＋１，…，ｘmをＺｑ−（Ｕ＋｛０｝）からランダムに選択する。なお，Ｚｑ−（Ｕ＋｛０｝）は、ＺｑからＵと｛０｝の和集合を取り除いたものを意味する。ヘッダｈ（ｒ，χ）を、式（１０）〜（１０−６）に従って計算する。
【０１６０】
【数１０】
0003917507.tif 000011
【０１６１】
例えば、図５（ｄ）の場合に、Ｈ1＝（２１，ｇF(21)）、Ｈ2＝（２２，ｇF(22)）、Ｈ3＝（２３，ｇF(23)）などとなる。
【０１６２】
ここで、ｒ，ｒｊはコンテンツ配信者が生成する乱数であり、ヘッダは公開鍵ｅを用いて計算できるので、誰でもコンテンツ配信者になることができる。
【０１６３】
セッション鍵はｇc0＝ｇF(0)であり、ヘッダｈ（ｒ，χ）とセッション鍵で暗号化したコンテンツとをユーザへ送信する。
【０１６４】
（復号フェーズ）
部分集合Ｕiに属するユーザｘ0を考える。ユーザｘ0が無効化対象ユーザ集合χの要素でないとき、つまり、ユーザｘ0が無効化対象ユーザでないとき、まず、セッション鍵を計算するためのシェアｇF(x0)を、式（１１）のように計算する。
【０１６５】
【数１１】
0003917507.tif 000012
【０１６６】
このシェアｇF(x0)を用いて、式（１２）のようにセッション鍵ｇF(0)を計算する。
【０１６７】
【数１２】
0003917507.tif 000013
【０１６８】
本実施形態の追跡装置については、基本的には、第１の実施形態と同様である。
【０１６９】
また、本実施形態の追跡アルゴリズムの手順例も、基本的には第１の実施形態の手順例１〜手順例３と同様である。ただし、本実施形態では、手順例１，２の一部が第１の実施形態を修正したものになるので。もちろん、具体的な追跡アルゴリズムの手順については様々なバリエーションが可能であり、手順例１〜手順例３に限定されるものではない点も同様である。
【０１７０】
（手順例１）
本実施形態に係る追跡アルゴリズムの処理手順の一例（手順例１）は図７と同様である。
【０１７１】
図１０に、ステップＳ３のアルゴリズムＡの本実施形態での処理手順例を示す。
【０１７２】
本実施形態における図１０のアルゴリズムＡの手順例と第１の実施形態における図８のアルゴリズムＡの手順例との相違は、図８のステップＳ１３とステップＳ１４が、それぞれ、図１０のステップＳ１３´とステップＳ１４´に修正されている点である。
【０１７３】
すなわち、本実施形態の手順例１では、ステップＳ１２でＢが空集合であるかどうかチェックした後、Ｂが空集合でない場合には、Ｂの全要素をｘ1，…，ｘwに代入し、ｄ（ｋ＋１）≦ｗ≦ｄ（ｋ＋１）＋ｋを満たす整数ｄを見つけ、ｍ＝ｄ（ｋ＋１）＋ｋとして、式（１０）のようにｈ（ｒ，Ｔｚ）を計算する（Ｓ１３´）。他方、Ｂが空集合である場合には、ｍ＝ｋ、ｗ＝０として、式（１０）のようにｈ（ｒ，Ｔｚ）を計算する（Ｓ１４´）。
【０１７４】
（手順例２）
本実施形態に係る追跡アルゴリズムの処理手順の他の例（手順例２）は図９と同様である。この場合も、ステップＳ２３で実行するアルゴリズムＡが図１０の様になる。
【０１７５】
ところで、上記各実施形態においては、(最大)分割サブグループ数がｋであり、サブグループ数を増加させたい場合、ｋの値を増加させて鍵生成多項式を生成するものであった。例えば、(最大)分割サブグループ数をＭ・ｋ＋Δｋ個（ここで、１≦Ｍ、０＜Δｋ≦ｋとする）に増加させる場合には、各サブグループＵ1〜ＵM・k+Δkにそれぞれ対する鍵生成多項式ｆ1（ｘ）〜ｆM・k+Δk（ｘ）は、次式（１３）のようになる。この場合、それに対応して公開鍵、ヘッダの変更(要素の追加)を適宜行えばよい。
0003917507.tif 000014
これに対して、他の種々の方法も可能である。
【０１７６】
例えば、Ｍ・ｋ＋Δｋ個（１≦Ｍ、０＜Δｋ≦ｋ）のサブグループに分割する場合に、第ｍ・ｋ＋ｉ（０≦ｍ≦Ｍ、０≦ｍ＜Ｍのときに１≦ｉ≦ｋ、ｍ＝Ｍのときに１≦ｉ≦Δｋ）で表されるサブグループに対して、次式（１５）で表されるような鍵生成多項式を割り当てる方法も可能である。
【０１７７】
ｆｉ（ｘ）＝ａ０＋ａ１・ｘ＋ａ２・ｘ２＋ａ３・ｘ３＋…＋ｂｍ，ｉ・ｘｉ＋…＋ａｋ−２・ｘｋ−２＋ａｋ−１・ｘｋ−１＋ａｋ・ｘｋ  …（１５）
なお、上記のｂｍ，ｉでｍ＝０の場合の各係数すなわちｂ０，１，…，ｂ０，ｋは、それぞれ、これまでの説明におけるｂ１，…，ｂｋに対応している。また、以下の説明では、ｂ０，１，…，ｂ０，ｋをそれぞれｂ１，…，ｂｋで略記し、ｂ１，１，…，ｂ１，ｋをそれぞれｄ１，…，ｄｋで略記することもある。
【０１７８】
例えば、上記でＭ＝１とすると、ｋの値は増加させずに、鍵生成フェーズにおいてｄ1，…，ｄΔk（上記式（１５）では、ｂ1,1，…，ｂ1,Δkとなる）を追加し、鍵生成多項式の種類(サブグループ数)を次式（１６）のように増加させることもできる。
0003917507.tif 000015
なお、Ｍ＝１、Δｋ＝ｋの場合には、次式（１７）のようになる。
0003917507.tif 000016
Ｍ＞２の場合には、同様にして適宜パラメータを追加して、鍵生成多項式の種類(サブグループ数)を増加させればよい。
【０１７９】
また、ｋの値を増加させるとともに、パラメータの追加も行うようにして、鍵生成多項式の種類(サブグループ数)を増加させることも可能である。
【０１８０】
なお、これまでの説明では、ヘッダ情報に、各サブグループに対応するシェアを計算するもととなる情報を記述するにあたって、１又は複数の特定のサブグループを無効化する場合には、当該１又は複数の特定のサブグループについては、正しいシェアが得られないように、（当該１又は複数の特定のサブグループのそれぞれに対応する）シェアを計算するもととなるそれぞれの情報に、間違った値（乱数等）を記述し、それ以外のサブグループについては、正しいシェアが得られるように、（当該サブグループにそれぞれ対応する）シェアを計算するもととなるそれぞれの情報に、正しい値を記述する例を示した。その代わりに、例えば、無効化する１又は複数の特定のサブグループについては、（当該１又は複数の特定のサブグループにそれぞれ対応する）シェアを計算するもととなるそれぞれの情報を、ヘッダ情報に記述することを禁止し、それ以外のサブグループについては、（当該サブグループにそれぞれ対応する）シェアを計算するもととなるそれぞれの情報（正しい値）を、ヘッダ情報に記述することを許可するようにしてもよい。このようにしても、無効化する１又は複数の特定のサブグループについては、ヘッダ情報に、シェアを計算するもととなる情報自体が含まれていないので、結局、正しいシェアを求めることができず、他方、それ以外のサブグループについては、正しいシェアを求めることができることになる。
【０１８１】
本実施形態の暗号化装置、復号装置、追跡装置は、いずれも、半導体集積装置などのハードウェアとしても、ソフトウェア（（コンピュータに所定の手段を実行させるための、あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるための）プログラム）としても、実現可能である。もちろん、ハードウェアとソフトウェアとを併用して実現することも可能である。
【０１８２】
なお、この発明の実施の形態で例示した構成は一例であって、それ以外の構成を排除する趣旨のものではなく、例示した構成の一部を他のもので置き換えたり、例示した構成の一部を省いたり、例示した構成に別の機能あるいは要素を付加したり、それらを組み合わせたりすることなどによって得られる別の構成も可能である。また、例示した構成と論理的に等価な別の構成、例示した構成と論理的に等価な部分を含む別の構成、例示した構成の要部と論理的に等価な別の構成なども可能である。また、例示した構成と同一もしくは類似の目的を達成する別の構成、例示した構成と同一もしくは類似の効果を奏する別の構成なども可能である。
また、この発明の実施の形態で例示した各種構成部分についての各種バリエーションは、適宜組み合わせて実施することが可能である。
また、この発明の実施の形態は、個別装置としての発明、関連を持つ２以上の装置についての発明、システム全体としての発明、個別装置内部の構成部分についての発明、またはそれらに対応する方法の発明等、種々の観点、段階、概念またはカテゴリに係る発明を包含・内在するものである。
従って、この発明の実施の形態に開示した内容からは、例示した構成に限定されることなく発明を抽出することができるものである。
【０１８３】
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【０１８４】
【発明の効果】
本発明によれば、より効果的な鍵生成方法や鍵配送方法を実現することができる。また、より柔軟な復号鍵の無効化が可能になる。また、ブラックボックス追跡をより効率化することが可能になる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るデータ通信システムの構成例を示す図
【図２】同実施形態に係るデータ通信システムの全体的なシーケンスの一例を示す図
【図３】同実施形態に係るコンテンツ提供側システムに搭載される暗号化装置の構成例を示す図
【図４】同実施形態のユーザ側システムに搭載される復号装置の構成例を示す図
【図５】ユーザ集合のグルーピング及び無効化対象ユーザについて説明するための図
【図６】同実施形態に係る追跡装置の構成例を示す図
【図７】同実施形態に係る追跡アルゴリズム（不正者特定方法）の処理手順の一例を示すフローチャート
【図８】アルゴリズムＡの処理手順の一例を示すフローチャート
【図９】同実施形態に係る追跡アルゴリズム（不正者特定方法）の処理手順の他の例を示すフローチャート
【図１０】アルゴリズムＡの処理手順の他の例を示すフローチャート
【符号の説明】
１…コンテンツ提供側システム
２…ユーザ側システム
３…ネットワーク
１１…コンテンツ暗号化部
１２…ヘッダ生成部
１３…無効化対象ユーザ情報格納部
１４…公開鍵格納部
１５…セッション鍵生成部
２１…セッション鍵復号部
２２…コンテンツ復号部
２３…ユーザ情報格納部
４１…ヘッダ生成部
４２…制御部
４３…公開鍵格納部
【図１】
0003917507.tif 000017
【図２】
0003917507.tif 000018
【図３】
0003917507.tif 000019
【図４】
0003917507.tif 000020
【図５】
0003917507.tif 000021
【図６】
0003917507.tif 000022
【図７】
0003917507.tif 000023
【図８】
0003917507.tif 000024
【図９】
0003917507.tif 000025
【図１０】
0003917507.tif 000026