不正ユーザ検出装置、結託耐性符号生成装置及びプログラム
【課題】デジタルコンテンツに埋め込まれた結託耐性符号のうち全ての符号を抽出できなくても、デジタルコンテンツを不正に生成した不正ユーザの判定を行うことを可能にする不正ユーザ検出技術を提供する。
【解決手段】閾値設定部101は、符号抽出部が抽出した結託耐性符号の符号長に基づいて、ユーザが不正ユーザである否かの判定に用いる閾値を設定する。スコア計算部102は、符号抽出部が抽出した結託耐性符号の全部又は一部の符号と、各ユーザに対して割り当てられた符号と用いてスコアをユーザ毎に計算する。不正ユーザ判定部103は、スコア計算部102が計算した各ユーザのスコアと、閾値設定部101が設定した閾値とを用いて、各ユーザが不正ユーザであるか否かを判定する。
【解決手段】閾値設定部101は、符号抽出部が抽出した結託耐性符号の符号長に基づいて、ユーザが不正ユーザである否かの判定に用いる閾値を設定する。スコア計算部102は、符号抽出部が抽出した結託耐性符号の全部又は一部の符号と、各ユーザに対して割り当てられた符号と用いてスコアをユーザ毎に計算する。不正ユーザ判定部103は、スコア計算部102が計算した各ユーザのスコアと、閾値設定部101が設定した閾値とを用いて、各ユーザが不正ユーザであるか否かを判定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンテンツに埋め込まれた電子透かしの偽造に対抗するための結託耐性符号に基づいて不正ユーザを検出する不正ユーザ検出装置、結託耐性符号を生成する結託耐性符号生成装置及びプログラムに関わる。
【背景技術】
【0002】
近年、コンピュータやネットワークの発達により、デジタルコンテンツを扱う場面が増えてきている。デジタルコンテンツには、非常に低いコストでオリジナルのコンテンツと全く同じコンテンツが作成できるという特徴がある。このため、デジタルコンテンツの著作権を保護するという観点から、デジタルコンテンツの違法コピーに対する対策は不可欠なものとなってきている。違法コピーを抑止するための対策として、例えば、電子透かし技術とフィンガープリンティングという技術とが用いられる。電子透かし技術とは、デジタルコンテンツに情報を埋め込む技術である。フィンガープリンティングとは、電子透かし技術を用いてデジタルコンテンツに利用者IDを埋め込んでおき、違法にコンテンツのコピーが流通した際に、埋めこまれたIDを用いてデジタルコンテンツを違法にコピーしたユーザ(以下、不正ユーザという)を追跡する技術である。
【0003】
しかしながらフィンガープリンティングにおいては、異なるIDの埋め込まれたデジタルコンテンツを複数持ち寄り、これらのIDにおける相違点を書き換えることにより、このIDによるユーザを識別不可能にする結託攻撃が行われる場合がある。これにより、不正ユーザを追跡不能になるため、結託攻撃に対する対策が不可欠である。この結託攻撃に対する対策として、例えば、IDの代わりに結託耐性符号をデジタルコンテンツに埋め込めば良い。
【0004】
結託耐性符号の例としてc-secure(with ε error)符号がある。これは、結託攻撃を行った結託者がc人までであるなら、その結託者(不正ユーザ)を1人も追跡(告発)できない確率、あるいは、結託攻撃を行っていないユーザを誤って追跡してしまう確率(誤り確率)をε以下にすることができる符号である。この具体的な符号の構成例としてTardos符号(非特許文献1参照)とNHWI符号(非特許文献2参照)がある。これらの非特許文献1〜2の技術においては、符号シンボルのうち「1」を取る生起確率の分布をある規則に則ってビット毎に各々取ることにより、符号を構成する(例えば、非特許文献1〜2参照)。
【0005】
これらの非特許文献1〜2に示される技術においては、各ユーザが不正ユーザであるか否かは、結託攻撃後の符号とユーザの符号との相関を基に計算されたスコアを用いて判定され、そのスコアが閾値Zを超えていると判定される場合に不正ユーザとして告発されるアルゴリズムとなっている。すなわち、あるユーザjのスコアをSjとすると、「Sj≧Z」を満たすときに、ユーザjは告発される。
【0006】
Tardos符号(非特許文献1参照)では符号長を「100c2k」と定め、不正ユーザか否かの判定を行うための閾値を「20ck」と定めていた。ここで、「c」は結託者数、「n」はユーザ数、「ε」は誤り確率である。「k」は以下の式1で表される。
【0007】
【数1】
【0008】
NHWI符号(非特許文献2参照)においても、設定された結託者数、ユーザ数等の条件により符号長と閾値が定まっている。上記、いずれの方式においても予め設定された条件で符号を生成し、生成した符号をコンテンツに埋め込み、結託攻撃を行われたコンテンツから符号を抽出し、結託攻撃が行われた符号全体から各ユーザのスコアSjを計算し、設定された閾値を用いて不正ユーザを特定することを想定している。
【0009】
【非特許文献1】“Optimal probabilistic fingerprint codes”, STOC,pp116-125, 2003
【非特許文献2】“Optimal probabilistic fingerprint codes using optimal finite random variables related to numerical quadrature”, CR/0610036, arxiv.org
【発明の開示】
【発明が解決しようとする課題】
【0010】
しかしながら、不正ユーザを追跡する際、全てのビットを対象としてスコア計算を行う必要があるため、不正ユーザであるか否かの判定には膨大な計算量が必要であった。また、コンテンツから全てのビットが抽出できないと、設定された安全性条件で不正ユーザであるか否かが判定させられない場合があるという問題もあった。
【0011】
本発明は、上記に鑑みてなされたものであって、デジタルコンテンツに埋め込まれた結託耐性符号のうち全ての符号を抽出できなくても、デジタルコンテンツを不正に生成した不正ユーザの判定を行うことを可能にする不正ユーザ検出装置、結託耐性符号生成装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
上述した課題を解決し、目的を達成するために、本発明は、不正ユーザ検出装置であって、ユーザ毎に異なって埋め込まれる符号であって結託攻撃を行った不正ユーザを追跡可能な結託耐性符号の一部又は全部をデジタルコンテンツから抽出する抽出手段と、前記結託耐性符号のうち抽出された符号と、各ユーザに対して各々割り当てられた符号とを用いて、ビット毎の相関値を計算し、当該相関値の合計点をユーザ毎に計算する計算手段と、抽出された前記符号の符号長に基づいて、不正ユーザの判定に用いる閾値を設定する第1設定手段と、設定された前記閾値と、計算されたユーザ毎の前記合計点とを用いて、各ユーザが不正ユーザか否かを判定する判定手段とを備えることを特徴とする。
【0013】
また、本発明は、結託耐性符号生成装置であって、デジタルコンテンツに対してユーザ毎に異なって埋め込まれる符号であって結託攻撃を行った不正ユーザを追跡可能な結託耐性符号を生成する結託耐性符号生成装置であって、想定される不正ユーザ数と、ユーザ数と、ユーザを不正ユーザであると誤って判定する誤り確率とに基づいて、符号長を設定する設定手段と、設定された符号長の結託耐性符号を生成する生成手段とを備え、前記設定手段は、前記結託耐性符号を用いて不正ユーザを検出する不正ユーザ検出装置において不正ユーザであるか否かを判定する処理が一ユーザにつき複数回行われ得る場合、当該処理が行われ得る最大の回数t(t:2以上の整数)に応じて、前記符号長を設定することを特徴とする。
【0014】
また、本発明は、プログラムであって、コンピュータを、ユーザ毎に異なって埋め込まれる符号であって結託攻撃を行った不正ユーザを追跡可能な結託耐性符号の一部又は全部をデジタルコンテンツから抽出する抽出手段と、前記結託耐性符号のうち抽出された符号と、各ユーザに対して各々割り当てられた符号とを用いて、ビット毎の相関値を計算し、当該相関値の合計点をユーザ毎に計算する計算手段と、抽出された前記符号の符号長に基づいて、不正ユーザの判定に用いる閾値を設定する第1設定手段と、設定された前記閾値と、計算されたユーザ毎の前記合計点とを用いて、各ユーザが不正ユーザか否かを判定する判定手段として機能させることを特徴とする。
【0015】
また、本発明は、プログラムであって、コンピュータを、デジタルコンテンツに対してユーザ毎に異なって埋め込まれる符号であって結託攻撃を行った不正ユーザを追跡可能な結託耐性符号を生成する結託耐性符号生成装置であって、想定される不正ユーザ数と、ユーザ数と、ユーザを不正ユーザであると誤って判定する誤り確率とに基づいて、符号長を設定する設定手段と、設定された符号長の結託耐性符号を生成する生成手段として機能させ、前記設定手段は、前記結託耐性符号を用いて不正ユーザを検出する不正ユーザ検出装置において不正ユーザであるか否かを判定する処理が一ユーザにつき複数回行われ得る場合、当該処理が行われ得る最大の回数t(t:2以上の整数)に応じて、前記符号長を設定することを特徴とする。
【発明の効果】
【0016】
本発明によれば、デジタルコンテンツに埋め込まれた結託耐性符号のうち全ての符号を抽出できなくても、抽出された符号を基に、デジタルコンテンツを不正に生成した不正ユーザを適切に判定することができ、不正ユーザを追跡することができる。
【0017】
また、本発明によれば、ユーザを不正ユーザであると誤って判定する誤り確率を想定内に収めつつ、判定回数に応じて想定された結託者数の摘発を可能な符号長を設定することにより、設定された安全性条件を満たす結託耐性符号を生成することができる。
【発明を実施するための最良の形態】
【0018】
以下に添付図面を参照して、この発明にかかる不正ユーザ検出装置、結託耐性符号生成装置及びプログラムの最良な実施の形態を詳細に説明する。
【0019】
[第1の実施の形態]
(1)構成
本実施の形態にかかる不正ユーザ検出装置は、装置全体の制御を行うCPU(Central Processing Unit)等の制御装置と、各種データや各種プログラムを記憶するROM(Read Only Memory)やRAM(Random Access Memory)等の記憶装置と、各種データや各種プログラムを記憶するHDD(Hard Disk Drive)やCD(Compact Disk)ドライブ装置等の外部記憶装置と、これらを接続するバスとを備えており、通常のコンピュータを利用したハードウェア構成となっている。
【0020】
次に、このようなハードウェア構成において、不正ユーザ検出装置が、記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される各種機能について説明する。図1は本実施の形態にかかる不正ユーザ検出装置の機能的構成を示す図である。同図に示される不正ユーザ検出装置100は、符号抽出部(図示せず)と、閾値設定部101と、スコア計算部102と、不正ユーザ判定部103とを有する。
【0021】
符号抽出部は、抽出対象のデジタルコンテンツから、結託耐性符号の全部又は一部を抽出する。閾値設定部101は、符号抽出部が抽出した結託耐性符号の符号長に基づいて、ユーザが不正ユーザである否かの判定に用いる閾値を設定する。スコア計算部102は、符号抽出部が抽出した結託耐性符号の全部又は一部の符号と、各ユーザに対して割り当てられた符号とについて、ビット毎に相関値を計算し、各ビットの相関値の合計をスコアとしてユーザ毎に計算する。このようなスコアの計算方法は、例えばTardos符号について非特許文献1に記載されている方法を用いれば良い。不正ユーザ判定部103は、スコア計算部102が計算した各ユーザのスコアと、閾値設定部101が設定した閾値とを用いて、各ユーザが不正ユーザであるか否かを判定する。
【0022】
(2)動作
次に、本実施の形態にかかる不正ユーザ検出装置100の行う処理の手順について図2を参照しながら説明する。尚、本実施の形態においては、抽出対象のデジタルコンテンツに埋め込まれたに結託耐性符号のうち、一部の符号しか抽出できなかった場合について説明する。まず、不正ユーザ検出装置100の符号抽出部が、抽出対象のデジタルコンテンツから符号の一部を抽出する。その際、抽出できた符号の符号長をmLとする。次いで、閾値設定部101は、ステップS101で抽出された符号の符号長mLによって、ユーザが不正ユーザである否かの判定に用いる閾値THLを設定する。閾値の設定は、Tardos符号では例えば以下のように行えば良い。閾値設定部101は、「mL=100cL2k」となる結託者数cLを計算し(ステップS101)、「THL=20cLk」となるように閾値THLを設定する(ステップS102)。即ち、「THL=2√(mLk))」となる。ただしkは上述の式1で表される。尚、これらの各種定数は、記憶装置や外部記憶装置に予め記憶されているものとする。
【0023】
その後、スコア計算部102は、符号抽出部が抽出した符号と、各ユーザに対して割り当てられた符号とについて、ビット毎に相関値を計算し、各ビットの相関値の合計点をスコアとしてユーザ毎に計算する(ステップ103)。次いで、不正ユーザ判定部103は、スコア計算部102が計算した各ユーザjのスコアSjと、閾値設定部101が設定した閾値THLとを用いて、各ユーザjが不正ユーザであるか否かを判定する。具体的には、不正ユーザ判定部103は、ユーザのスコアが閾値THLより大きい場合、当該ユーザは不正ユーザであると判定し、ユーザのスコアが閾値THL以下である場合、当該ユーザは無罪である(無罪ユーザ)と判定する。
【0024】
しかしながら、不正ユーザのスコアを直接評価することは難しい。攻撃アルゴリズムが未知であるため、攻撃アルゴリズムによってはスコアの分布に偏りが生ずる。このため、Tardosらは、不正ユーザの平均スコアが閾値THを超えているか否かで不正ユーザを告発できる確率を評価している。平均スコアであれば攻撃アルゴリズムによらず評価が可能であり、不正ユーザの平均スコアがTHを超えていれば、少なくとも1人の不正ユーザのスコアはTHを超え、告発が可能となるためである。
【0025】
ここで、閾値THLを用いた判定について説明する。図3は、Tardos符号におけるスコアによる無罪ユーザと不正ユーザとの頻度分布(確率分布であってもよい)を簡略化して示した図である。同図に示されるように、無罪ユーザのスコアの平均点は「0」点であり、無罪ユーザは、「0」点の近傍に集中し、この点から遠ざかるほど少なくなる分布となっている。一方、不正ユーザの平均スコアの平均AVは「0」点より大きく、不正ユーザの平均スコアは、平均点AVの近傍に集中し、この点から遠ざかるほど少なくなる分布となっている。このような分布において、スコアが適当に定めた閾値TH以下であれば、無罪ユーザであると判定し、スコアが閾値THより大きければ、不正ユーザであると判定することができる。
【0026】
ところで、無罪ユーザと不正ユーザとの頻度分布は、符号長に応じて異なる。符号長が短くなるほど、その分布の分散は小さくなる。図4は、図3における符号長よりも短い符号長を用いた場合の無罪ユーザと不正ユーザとの頻度分布を簡略化して示した図である。同図に示されるように、この場合、図3に示した分布における閾値THより小さい値となる閾値(THL)を設定しなければならないことになる。従って、上述のステップS102では、閾値設定部101は、この符号長mLの長さに応じて、ユーザが不正ユーザである否かの判定に用いる閾値THLを設定することになる。このように、不正ユーザ判定部103は、符号長mLに応じて設定された閾値THLを用いて不正ユーザであるか否かの判定を行うことにより、その判定を適切に行うことができる。
【0027】
図2に戻り、ステップS104の後、不正ユーザ判定部103は、不正ユーザであると判定したユーザを結託者であるとして告発する(ステップS105)。尚、不正ユーザ判定部103が不正ユーザであると判定したユーザが1人もいない場合、即ち、全てのユーザのスコアが閾値THL以下である場合(ステップS104:NO)、抽出された符号長mLでは不正ユーザの追跡ができないものとして処理は終了する。
【0028】
ここで、本実施の形態において用いる符号長について説明する。図5は、ある結託者数について、当該結託者数が比較的多い場合に、各符号長に対する不正ユーザ及び無罪ユーザのスコアの分布を示した図である。同図では、曲線Cr1〜Cr2は各々、不正ユーザであるか否かを判定するための閾値を示すものである。スコアの値が曲線Cr1より上にある場合、無罪ユーザがそのようなスコアとなることは極めて稀(想定している誤り確率以下)であることから不正ユーザであると判定され、スコアの値が曲線Cr1以下にある場合無罪ユーザであると判定される。また、スコアの値が曲線Cr2以下にある場合、不正ユーザ全員がそのようなスコアをとることも極めて稀(想定している誤り確率以下)であることから無罪ユーザであると判断され、スコアの値が曲線Cr2より上にある場合不正ユーザであると判定される。このような分布において、曲線Cr1及びCr2が交わる点が、不正ユーザと無罪ユーザとを適切に判定することができる符号長(必要符号長)及びそれに対応する閾値であることを示している。
【0029】
図6は、図5における結託者数より少ない結託者数について、各符号長に対する不正ユーザ及び無罪ユーザのスコアの分布を示した図である。この場合、不正ユーザであるか否かを判定するための閾値を示す曲線Cr3の傾きは、曲線Cr2の傾きより急なものとなる。従って、曲線Cr1及びCr3の交点は、曲線Cr1及びCr2の交点より、原点に近いものとなる。従って、結託者がより少ない場合の必要符号長Mは、結託者数がより多い場合の必要符号長より短くなる。即ち、結託者がより少ない場合には、結託者数がより多い場合に比べてより短い符号長(必要符号長)で、不正ユーザであるか否かを適切に判定することができる。
【0030】
以上のような構成によれば、デジタルコンテンツから全ての符号を抽出できない場合であっても、抽出された符号の符号長に応じて想定される結託者数を基に閾値を設定することにより、不正ユーザを適切に判定することができる。従って、このような場合であっても、不正ユーザを効率的に追跡することができる。
【0031】
[第2の実施の形態]
次に、不正ユーザ検出装置の第2の実施の形態について説明する。なお、上述の第1の実施の形態と共通する部分については、同一の符号を使用して説明したり、説明を省略したりする。
【0032】
(1)構成
本実施の形態においては、不正ユーザ検出装置は、元来想定していた符号長よりも短い符号長で不正ユーザの追跡を行う。図7は、本実施の形態にかかる不正ユーザ検出装置の機能的構成を示す図である。上述の第1の実施の形態と異なる部分について説明する。機能的構成において、本実施の形態にかかる不正ユーザ検出装置200は、符号抽出部(図示せず)と、符号長設定部201と、閾値設定部202と、スコア計算部203と、不正ユーザ判定部204とを有する。符号長設定部201は、符号抽出部が抽出した符号のうち、その全部の符号又は一部の符号を用いるべく、不正ユーザであるか否かの判定に用いる符号長を判定回数に応じて設定する。閾値設定部202は、符号長設定部201が設定した符号長に基づいて、ユーザが不正ユーザであるか否かの判定に用いる閾値を設定する。スコア計算部203は、符号抽出部が抽出した符号のうち、符号長設定部201が設定した符号長の符号と、各ユーザの符号とについて、ビット毎に相関値を計算し、各ビットの相関値の合計をスコアとしてユーザ毎に計算する。不正ユーザ判定部204は、スコア計算部203が計算した各ユーザのスコアと、閾値設定部201が設定した閾値とを用いて、各ユーザが不正ユーザであるか否かを判定する。
【0033】
以上のような構成において、不正ユーザ検出装置200は、一ユーザにつき不正ユーザであるか否かを判定する判定処理を最大「t」(t:1以上の正整数)回行うものとする。この「t」回を最大回数という。この最大回数「t」の値は、予め設定され、例えば記憶装置や外部記憶装置に記憶されているものとする。そして、不正ユーザ検出装置200は、1回目の判定処理において、1回目に対応した符号長を設定し、当該符号長に基づいて閾値を設定し、当該閾値を用いて、不正ユーザであるか否かの判定処理を行う。不正ユーザであると判定したユーザが1人もいない場合、判定回数が「t」回に達していなければ、次回の判定処理において、不正ユーザ検出装置200は、当該回数に対応した符号長を設定し、当該符号長に基づいて閾値を設定し、当該閾値を用いて、不正ユーザであるか否かの判定処理を行う。この回においても、不正ユーザであると判定したユーザが1人もいない場合には、「t」回に達するまで、次回の判定処理において、上述と同様の判定処理を繰り返す。
【0034】
また、ここでは、想定される結託者数が、判定回数に対応しており、その判定回数に対応する結託者数の不正ユーザを追跡可能な閾値を設定するための符号長を設定する。例えば、判定回数「1」に対して、結託者数「2」が想定されており、判定回数「2」に対して、結託者数「4」が想定されており、判定回数「3」に対して、結託者数「8」が想定されており、判定回数「4」に対して、結託者数「10」が想定されている場合、最大回数「t=4」と設定され、判定回数uに対応する結託者数cuとして、「c1=2」、「c2=4」、「c3=8」、「c4=10」と設定される。最大回数tに対応する結託者数(最大結託者数)cmaxとする。即ち、ここでは、判定回数が増えるほど、想定される結託者数が多くなるよう設定される。
【0035】
不正ユーザ検出装置200は、不正ユーザであると判定したユーザが1人もいない場合には、このように、判定回数に応じた結託者数を用いて符号長を伸張し、伸張された符号長に基づいて次回の判定処理に用いる閾値を設定する。
【0036】
尚、以上のように、判定回数に応じて符号長を設定するのは、以下の理由からである。上述のように、一ユーザにつき複数回の判定処理を行う場合、無罪であるユーザが、処理回によっては、不正ユーザであると判定される可能性がある。図8は、ユーザに対して計算されるスコアが、符号長の長さによって、即ち、処理回によって異なることを例示する図である。例えば、必要符号長M1を用いる処理回において計算されたスコアがSc1であるユーザに対し、必要符号長M2を用いる処理回において計算されるスコアが、例えばSc1"となる場合がある。この場合、前者の処理回では、スコアSc1は必要符号長M1に対応する閾値THM1以下であるため、無罪であると判定され、後者の処理回では、スコアSc1"は必要符号長M2に対応する閾値THM2を上回るため、不正ユーザであると判定される。また、必要符号長M1を用いる処理回において計算されたスコアがSc2であるユーザに対し、必要符号長M2を用いる処理回において計算されるスコアが、例えばSc2´となる場合もある。この場合、前者の処理回では、スコアSc2は必要符号長M1に対応する閾値THM1を上回るため、不正ユーザであると判定され、後者の処理回では、スコアSc2´は必要符号長M2に対応する閾値THM2以下であるため、無罪であると判定されるはずである。尚、必要符号長M1を用いる処理回において計算されたスコアがSc1であるユーザに対し、必要符号長M2を用いる処理回において計算されるスコアが、例えばSc1´となる場合、又は、前者の処理回でスコアSc2であるユーザに対し、後者の処理回において計算されるスコアが、例えばSc2"となる場合は、前者の処理回と後者の処理回とで判定結果は変わらないため、問題とはならない。
【0037】
このように、複数回の判定処理を行うことにより、一ユーザに対する判定を誤ることがあると、判定を誤った回数分だけ確率事象が増えることになるため、判定を誤る確率が上がることになる。従って、複数回の判定処理を行う場合、判定を誤る確率を上述した誤り確率「ε」、即ち、判定処理が行われ得る回数が一ユーザにつき1回の場合に設定される誤り確率「ε」に収められない可能性があるため、判定回数に応じて符号長を設定する。
【0038】
一方、判定を誤る確率を誤り確率「ε」以内に収めるためには、従来技術において、「c」人の結託者の摘発に必要な符号長がmcだとすると、最悪、以下の式2で表される長さの符号長があれば十分である。
【0039】
【数2】
【0040】
このため、Tardos符号の例では、最大の結託者数として最大結託者数「cmax」を想定し、最大判定回数「t」に対応して、符号長が以下の式3で表される長さ(最大符号長)の符号が必要となる。
【0041】
【数3】
【0042】
このため、対象のデジタルコンテンツには、最大結託者数「cmax」に対応して必要な最大符号長の結託耐性符号を予め埋めておく必要がある。ここでは、このような結託耐性符号が対象のデジタルコンテンツに予め埋め込まれているものとして説明する。尚、このような結託耐性符号を生成する結託耐性符号生成装置については後述する。
【0043】
(2)動作
次に、本実施の形態にかかる不正ユーザ検出装置200の行う処理の手順について図9を参照しながら説明する。まず、判定回数uを「1」とし(ステップS201)、符号長設定部201は、符号抽出部が抽出した符号から、不正ユーザの検出に用いる符号長muを判定回数uに応じて設定する(ステップS202)。ここで、符号長muを判定回数uに応じて設定するのは、判定回数uに対応して想定される結託者数cuに応じて符号長を設定するということである。Tardos符号を用いる場合は、例えば、1回目(判定回数uが「1」のとき)で追跡したい結託者数を「c1」とすると、符号長muを以下の式4で表される長さに設定する。判定回数uが「2」以上の場合については後述する。
【0044】
【数4】
【0045】
次に、閾値設定部202は、ステップS202で設定された符号長muを用いて、ユーザが不正ユーザである否かの判定に用いる閾値THuを設定する(ステップS203)。スコア計算部203は、符号抽出部が抽出した符号のうち、符号長設定部201が設定した符号長muの符号と、各ユーザの符号長mu分の符号とについて、ビット毎に相関値を計算し、各ビットの相関値の合計をスコアとしてユーザ毎に計算する。不正ユーザ判定部204は、スコア計算部203が計算した各ユーザjのスコアSjについて、閾値設定部101が設定した閾値THuを用いて、各ユーザが不正ユーザであるか否かを判定する。そして、不正ユーザ判定部204は、不正ユーザであると判定したユーザを告発する(ステップS206)。不正ユーザであると判定したユーザが1人もいない場合、即ち、全てのユーザjのスコアSjが閾値THu以下である場合(ステップS205:NO)、判定回数uに「1」を加え(ステップS216)、判定回数uが「t」以下である場合(ステップS217:YES)、ステップS202に戻る。
【0046】
尚、判定回数uが「2」の場合のステップS202では、符号長設定部201は、結託者数cを判定回数uに対応した結託者数「c2」として、符号長m2を以下の式5で表される長さに設定する。
【0047】
【数5】
【0048】
そして、ステップS203では、直前のステップS202で設定された符号長muを用いて、ユーザが不正ユーザである否かの判定に用いる閾値THuを設定する。以降同様の処理を繰り返す。判定回数uが「r」(2<r<t)の場合のステップS202では、符号長設定部201は、結託者数cを判定回数uに対応した結託者数「cr」として、符号長を以下の式6で表される長さに設定する。
【0049】
【数6】
【0050】
そして、判定回数uが「t」に達した場合、ステップS202では、符号長設定部201は、結託者数cを最大判定回数「t」に対応した最大結託者数「cmax」として、符号長を以下の式7で表される長さに設定する。
【0051】
【数7】
【0052】
このようにして、符号長設定部201は、判定回数uの値と、判定回数uに対応して想定される結託者数とを用いて、符号長muを設定する。そして、閾値設定部202が、設定された符号長muにより閾値THuを設定し、不正ユーザ判定部204が、設定された閾値THuを用いて、各ユーザが不正ユーザであるか否かを判定する。そして、ステップS217で、判定回数uが「t」よりも大きくなった場合(ステップS217:NO)、抽出された符号では不正ユーザを追跡できないので、処理を終了する。
【0053】
以上のようにして、本実施の形態においては、1回目の処理では、最大結託者数より少ない結託者数を想定して、最大符号長を用いるのではなくより短い符号長を用いて、不正ユーザか否かの判定処理を行う。この判定において、不正ユーザであると判定したユーザが1人もいない場合には、符号長を再設定して、不正ユーザか否かの判定処理を再度行う。このとき、判定回数が増えるほど、想定される結託者数が多くなるように設定するため、結果として、判定回数が増えるほど長く設定される符号長を用いて、不正ユーザか否かの判定処理を再度行うことになる。このように、結託者数が、符号生成時において想定される最大結託者数よりも少ないと想定される場合に、結託耐性符号のうち全部の符号を用いるのではなく一部を用いることにより、上述のスコアの計算や不正ユーザの判定のための計算量を減らすことができる。従って、不正ユーザの追跡をより効率的に行うことができる。
【0054】
また、上述のように、判定を誤る確率を想定内に収めつつ、判定回数に応じて想定された結託者数の摘発を可能な符号長を設定することにより、設定された安全性条件を満たすことができる。
【0055】
<結託耐性符号生成装置>
(1)構成
ここで、不正ユーザ検出装置200において不正ユーザであるか否かを判定する判定処理が一ユーザにつき最大「t」回(上述の最大回数)行われ得る場合の結託耐性符号を生成する結託耐性符号生成装置について説明する。結託耐性符号生成装置は、装置全体の制御を行うCPU(Central Processing Unit)等の制御装置と、各種データや各種プログラムを記憶するROM(Read Only Memory)やRAM(Random Access Memory)等の記憶装置と、各種データや各種プログラムを記憶するHDD(Hard Disk Drive)やCD(Compact Disk)ドライブ装置等の外部記憶装置と、これらを接続するバスとを備えており、通常のコンピュータを利用したハードウェア構成となっている。
【0056】
次に、このようなハードウェア構成において、結託耐性符号生成装置が、記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される各種機能について説明する。図10は、結託耐性符号生成装置500の機能的構成を例示する図である。同図に示される結託耐性符号生成装置500は、誤り確率設定部501と、符号長設定部502と、結託耐性符号生成部503とを有する。誤り確率設定部501は、符号長の設定に用いる誤り確率として、処理が行われ得る最大の回数が1回の場合と比較して「1/t」以下となるように、誤り確率の値を設定する。符号長設定部502は、誤り確率設定部501が設定した誤り確率と、想定される結託者数(不正ユーザ数)と、ユーザ数とに基づいて、符号長を設定する。結託耐性符号生成部503は、符号長設定部502が設定した符号長の結託耐性符号を生成する。
【0057】
尚、最大回数「t」の値は、特に限定されず、予め設定されて記憶装置や外部記憶装置に記憶されているものとする。また、結託耐性符号の生成に用いるユーザ数、想定される結託者数、誤り確率「ε」についても各々記憶装置や外部記憶装置に予め記憶されているものとする。
【0058】
(2)動作
次に、結託耐性符号生成装置500が行う結託耐性符号生成処理の手順について図11を用いて説明する。結託耐性符号生成装置500の誤り確率設定部501は、記憶装置や外部記憶装置に記憶されている誤り確率「ε」と最大回数「t」とを読み出し、その値が「1/t」以下となるように誤り確率を再設定する(ステップS300)。次いで、符号長設定部502は、記憶装置や外部記憶装置に記憶された結託者数と、ユーザ数とを読み出し、これらと、ステップS300で設定された誤り確率とに基づいて、符号長を設定する(ステップS301)。結託耐性符号生成部503は、ステップS301で設定された符号長の結託耐性符号を生成する(ステップS302)。
【0059】
尚、Tardos符号の構成法においては誤り確率を「ε」とした場合、「不正ユーザを一人も告発できない」確率を「ε/n」、「無罪ユーザを不正ユーザとして告発する」確率を「(n−1)ε/n」としており、このうちある「無罪ユーザを不正ユーザとして告発する」確率は「ε/n」以下となる。上記のことを考えれば、ある「無罪ユーザを不正ユーザとして告発する」確率のみ「1/t」倍すれば十分である。しかし、ステップS300では、「不正ユーザを一人も告発できない」確率も「1/t」倍して符号長を導出することを試みている。もちろん、ある「無罪ユーザを不正ユーザとして告発する」確率のみを「1/t」倍して、符号長の設定をやり直せば符号長を短くできるのは自明であるが、ここではその説明を割愛する。
【0060】
また、Tardos符号の構成法では、ユーザ数を「n」、結託者数を「c」、誤り確率を「ε」、符号長を「m」とすると、符号長mは以下の式8で表される。
【0061】
【数8】
【0062】
ステップS301では、符号長設定部502は、この符号長m’を以下の式9で表される長さに設定すれば良い。
【0063】
【数9】
【0064】
尚、不正ユーザ検出装置200において不正ユーザであるか否かを判定する判定処理で用いる閾値は、以下の式10で表される。
【0065】
【数10】
【0066】
この代わりに以下の式11で表される閾値が不正ユーザ検出装置200では用いられるものとして、ステップS302では、結託耐性符号生成部503は結託耐性符号を生成すれば良い。
【0067】
【数11】
【0068】
以上のような構成によって生成された結託耐性符号をデジタルコンテンツに埋め込むことにより、当該結託耐性符号を用いて不正ユーザ検出装置200において不正ユーザであるか否かを判定する判定処理を一ユーザにつき最大「t」回が行われたとしても、判定を誤る確率を想定内(「ε」以内)に収めることができ、設定された安全性条件を満たすことができる。
【0069】
このようなことができるのは以下の理由からである。ユーザ数を「n」とし、ある無罪ユーザを1回の判定処理で不正ユーザとして誤って告発する確率を「εt」とすると、無罪ユーザは最大「n-1」人おり、不正ユーザ検出装置200において1回の判定処理で無罪ユーザ全員が正しく判定される確率は、「(1−εt)n−1」である。
【0070】
毎回の判定処理が独立なものであると仮定すると、2回目の判定処理でもある無罪ユーザを不正ユーザとして誤って告発する確率は「εt」で変わらないため、2回目の判定処理で無罪ユーザ全員が正しく判定される確率は、「(1−εt)n−1」である。
【0071】
尚、実際は、毎回の判定処理が独立なものでないため、本来、誤り確率はこの確率よりもずっと低くなると考えられるが、ここでの評価は少なくともこの評価よりも高い誤り確率になることはない、というケースで誤り確率を見積もったものとなっている。
【0072】
1人でも不正ユーザを告発した時点で判定処理は終了となるため、無罪ユーザを不正ユーザとして誤って告発した場合も判定処理は終了となる。このため、2回目以降は1回目の判定処理で無罪ユーザとして正しく判定されたものに対して判定処理が行われる。このことを考慮すると、2回目の判定処理終了時点で、無罪ユーザ全員が告発されない確率は、「(1−εt)2(n−1)」となる。これを「t」回繰り返すことを考え、「t」回目の判定処理終了時点で無罪ユーザ全員が告発されない確率は、「(1−εt)t(n−1)」となる。
【0073】
ここで「t(n−1)εt≪1」を想定すると、「(1−εt)t(n−1)>1−t(n−1)εt」が成立する。従って、無罪のユーザを不正ユーザとして誤って告発する誤り確率は、「t(n−1)εt」以下となることがわかる。
【0074】
尚、「t(n−1)εt≪1」という想定は、以下の理由からである。「t(n−1)εt」が「1」に近い場合は誤り確率自体が「1」に近いか、「t」が非常に大きいということを示唆するものである。このため、安全性要件と、想定される「t」はせいぜい結託者数「c」以下であることとを鑑みて、上記の想定は妥当な想定であると考えられるからである。
【0075】
例えば、Tardos符号の構成法では、1回の判定処理で無罪ユーザを誤って告発する確率を「(n−1)ε/n」となるようにしている。この確率と、一ユーザにつき最大「t」回の判定処理を行って無罪ユーザを誤って告発する確率とを比較すると、「1−t(n−1)εt≦(n−1)ε/n」が成立する。これを整理すると「εt≦ε/(n・t)」となる。元々、Tardosの構成法ではある無罪ユーザを誤って告発する確率を「ε/n」としていたので、ある無罪のユーザを誤って告発する確率を当初の「1/t」以下にすれば全体としての誤り確率を「ε」以下にすることができる。「ε」とは、上述において説明したように、元々想定される誤り確率の値であり、判定処理が行われ得る回数が一ユーザにつき1回の場合に設定される誤り確率の値である。
【0076】
尚、誤りとは、上述したように、「不正ユーザを1人も告発できない」場合と「無罪ユーザを不正ユーザとして告発する」場合との2通りの場合があり得る。このうち「不正ユーザを一人も告発できない」という確率は、1回の判定処理でこの確率を「ε」以下に抑えているのであれば、「t」回の判定を行った場合も「ε」以下になっているはずである。一方、「無罪のユーザを不正ユーザとして告発する」確率は上記で説明したように「t」回の判定処理を行うと最悪で「t」倍になる。「t」回の判定処理後、全体として誤り確率を「ε」以下に抑えるためには、少なくとも1回のみの判定処理で「無罪ユーザを不正ユーザとして告発する」という誤り確率として「1/t」倍以下のものを用いればよいということが分かる。
【0077】
[変形例]
なお、本発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、前記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。また、以下に例示するような種々の変形が可能である。
【0078】
<変形例1>
上述の各実施の形態においては、不正ユーザ検出装置は、符号抽出部を有する構成であるとしたが、これを有するのではなく、ネットワークを介して外部のコンピュータと通信を行う通信制御装置を有し、当該通信制御装置を介して、コンテンツから抽出された符号を受信することにより、処理対象の符号を取得するように構成しても良い。
【0079】
<変形例2>
上述した実施の形態において、不正ユーザ検出装置で実行される各種プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、当該プログラムを、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成しても良い。
【0080】
<変形例3>
上述の第1の実施の形態の構成の一部又は全部及び第2の実施の形態の構成の一部又は全部を組み合わせても良い。このような構成によれば、例えば、全ての符号を抽出することができなくても、十分な長さの符号長の符号を得られた場合や、一部の符号しか抽出できていなくとも効率性を重視して極めて短い符号で予め不正ユーザの追跡を行いたい場合などに好適である。
【図面の簡単な説明】
【0081】
【図1】第1の実施の形態にかかる不正ユーザ検出装置の機能的構成を示す図である。
【図2】同実施の形態にかかる不正ユーザ検出装置100の行う処理の手順を示すフローチャートである。
【図3】同実施の形態にかかるTardos符号におけるスコアによる無罪ユーザと不正ユーザとの人数分布を簡略化して示した図である。
【図4】図3における符号長よりも短い符号長を用いた場合の無罪ユーザと不正ユーザとの人数分布を簡略化して示した図である。
【図5】ある結託者数について、当該結託者数が比較的多い場合に、各符号長に対する不正ユーザ及び無罪ユーザのスコアの分布を示した図である。
【図6】図5における結託者数より少ない結託者数について、各符号長に対する不正ユーザ及び無罪ユーザのスコアの分布を示した図である。
【図7】第2の実施の形態にかかる不正ユーザ検出装置の機能的構成を示す図である。
【図8】ユーザに対して計算されるスコアが、符号長の長さによって、即ち、処理回によって異なることを例示する図である。
【図9】同実施の形態にかかる不正ユーザ検出装置200の行う処理の手順を示すフローチャートである。
【図10】同実施の形態にかかる結託耐性符号生成装置500の機能的構成を例示する図である。
【図11】同実施の形態にかかる結託耐性符号生成装置500が行う結託耐性符号生成処理の手順を示すフローチャートである。
【符号の説明】
【0082】
100 不正ユーザ検出装置
101 閾値設定部
102 スコア計算部
103 不正ユーザ判定部
201 符号長設定部
202 閾値設定部
203 スコア計算部
204 不正ユーザ判定部
500 結託耐性符号生成装置
501 誤り確率設定部
502 符号長設定部
503 結託耐性符号生成部
【技術分野】
【0001】
本発明は、コンテンツに埋め込まれた電子透かしの偽造に対抗するための結託耐性符号に基づいて不正ユーザを検出する不正ユーザ検出装置、結託耐性符号を生成する結託耐性符号生成装置及びプログラムに関わる。
【背景技術】
【0002】
近年、コンピュータやネットワークの発達により、デジタルコンテンツを扱う場面が増えてきている。デジタルコンテンツには、非常に低いコストでオリジナルのコンテンツと全く同じコンテンツが作成できるという特徴がある。このため、デジタルコンテンツの著作権を保護するという観点から、デジタルコンテンツの違法コピーに対する対策は不可欠なものとなってきている。違法コピーを抑止するための対策として、例えば、電子透かし技術とフィンガープリンティングという技術とが用いられる。電子透かし技術とは、デジタルコンテンツに情報を埋め込む技術である。フィンガープリンティングとは、電子透かし技術を用いてデジタルコンテンツに利用者IDを埋め込んでおき、違法にコンテンツのコピーが流通した際に、埋めこまれたIDを用いてデジタルコンテンツを違法にコピーしたユーザ(以下、不正ユーザという)を追跡する技術である。
【0003】
しかしながらフィンガープリンティングにおいては、異なるIDの埋め込まれたデジタルコンテンツを複数持ち寄り、これらのIDにおける相違点を書き換えることにより、このIDによるユーザを識別不可能にする結託攻撃が行われる場合がある。これにより、不正ユーザを追跡不能になるため、結託攻撃に対する対策が不可欠である。この結託攻撃に対する対策として、例えば、IDの代わりに結託耐性符号をデジタルコンテンツに埋め込めば良い。
【0004】
結託耐性符号の例としてc-secure(with ε error)符号がある。これは、結託攻撃を行った結託者がc人までであるなら、その結託者(不正ユーザ)を1人も追跡(告発)できない確率、あるいは、結託攻撃を行っていないユーザを誤って追跡してしまう確率(誤り確率)をε以下にすることができる符号である。この具体的な符号の構成例としてTardos符号(非特許文献1参照)とNHWI符号(非特許文献2参照)がある。これらの非特許文献1〜2の技術においては、符号シンボルのうち「1」を取る生起確率の分布をある規則に則ってビット毎に各々取ることにより、符号を構成する(例えば、非特許文献1〜2参照)。
【0005】
これらの非特許文献1〜2に示される技術においては、各ユーザが不正ユーザであるか否かは、結託攻撃後の符号とユーザの符号との相関を基に計算されたスコアを用いて判定され、そのスコアが閾値Zを超えていると判定される場合に不正ユーザとして告発されるアルゴリズムとなっている。すなわち、あるユーザjのスコアをSjとすると、「Sj≧Z」を満たすときに、ユーザjは告発される。
【0006】
Tardos符号(非特許文献1参照)では符号長を「100c2k」と定め、不正ユーザか否かの判定を行うための閾値を「20ck」と定めていた。ここで、「c」は結託者数、「n」はユーザ数、「ε」は誤り確率である。「k」は以下の式1で表される。
【0007】
【数1】
【0008】
NHWI符号(非特許文献2参照)においても、設定された結託者数、ユーザ数等の条件により符号長と閾値が定まっている。上記、いずれの方式においても予め設定された条件で符号を生成し、生成した符号をコンテンツに埋め込み、結託攻撃を行われたコンテンツから符号を抽出し、結託攻撃が行われた符号全体から各ユーザのスコアSjを計算し、設定された閾値を用いて不正ユーザを特定することを想定している。
【0009】
【非特許文献1】“Optimal probabilistic fingerprint codes”, STOC,pp116-125, 2003
【非特許文献2】“Optimal probabilistic fingerprint codes using optimal finite random variables related to numerical quadrature”, CR/0610036, arxiv.org
【発明の開示】
【発明が解決しようとする課題】
【0010】
しかしながら、不正ユーザを追跡する際、全てのビットを対象としてスコア計算を行う必要があるため、不正ユーザであるか否かの判定には膨大な計算量が必要であった。また、コンテンツから全てのビットが抽出できないと、設定された安全性条件で不正ユーザであるか否かが判定させられない場合があるという問題もあった。
【0011】
本発明は、上記に鑑みてなされたものであって、デジタルコンテンツに埋め込まれた結託耐性符号のうち全ての符号を抽出できなくても、デジタルコンテンツを不正に生成した不正ユーザの判定を行うことを可能にする不正ユーザ検出装置、結託耐性符号生成装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
上述した課題を解決し、目的を達成するために、本発明は、不正ユーザ検出装置であって、ユーザ毎に異なって埋め込まれる符号であって結託攻撃を行った不正ユーザを追跡可能な結託耐性符号の一部又は全部をデジタルコンテンツから抽出する抽出手段と、前記結託耐性符号のうち抽出された符号と、各ユーザに対して各々割り当てられた符号とを用いて、ビット毎の相関値を計算し、当該相関値の合計点をユーザ毎に計算する計算手段と、抽出された前記符号の符号長に基づいて、不正ユーザの判定に用いる閾値を設定する第1設定手段と、設定された前記閾値と、計算されたユーザ毎の前記合計点とを用いて、各ユーザが不正ユーザか否かを判定する判定手段とを備えることを特徴とする。
【0013】
また、本発明は、結託耐性符号生成装置であって、デジタルコンテンツに対してユーザ毎に異なって埋め込まれる符号であって結託攻撃を行った不正ユーザを追跡可能な結託耐性符号を生成する結託耐性符号生成装置であって、想定される不正ユーザ数と、ユーザ数と、ユーザを不正ユーザであると誤って判定する誤り確率とに基づいて、符号長を設定する設定手段と、設定された符号長の結託耐性符号を生成する生成手段とを備え、前記設定手段は、前記結託耐性符号を用いて不正ユーザを検出する不正ユーザ検出装置において不正ユーザであるか否かを判定する処理が一ユーザにつき複数回行われ得る場合、当該処理が行われ得る最大の回数t(t:2以上の整数)に応じて、前記符号長を設定することを特徴とする。
【0014】
また、本発明は、プログラムであって、コンピュータを、ユーザ毎に異なって埋め込まれる符号であって結託攻撃を行った不正ユーザを追跡可能な結託耐性符号の一部又は全部をデジタルコンテンツから抽出する抽出手段と、前記結託耐性符号のうち抽出された符号と、各ユーザに対して各々割り当てられた符号とを用いて、ビット毎の相関値を計算し、当該相関値の合計点をユーザ毎に計算する計算手段と、抽出された前記符号の符号長に基づいて、不正ユーザの判定に用いる閾値を設定する第1設定手段と、設定された前記閾値と、計算されたユーザ毎の前記合計点とを用いて、各ユーザが不正ユーザか否かを判定する判定手段として機能させることを特徴とする。
【0015】
また、本発明は、プログラムであって、コンピュータを、デジタルコンテンツに対してユーザ毎に異なって埋め込まれる符号であって結託攻撃を行った不正ユーザを追跡可能な結託耐性符号を生成する結託耐性符号生成装置であって、想定される不正ユーザ数と、ユーザ数と、ユーザを不正ユーザであると誤って判定する誤り確率とに基づいて、符号長を設定する設定手段と、設定された符号長の結託耐性符号を生成する生成手段として機能させ、前記設定手段は、前記結託耐性符号を用いて不正ユーザを検出する不正ユーザ検出装置において不正ユーザであるか否かを判定する処理が一ユーザにつき複数回行われ得る場合、当該処理が行われ得る最大の回数t(t:2以上の整数)に応じて、前記符号長を設定することを特徴とする。
【発明の効果】
【0016】
本発明によれば、デジタルコンテンツに埋め込まれた結託耐性符号のうち全ての符号を抽出できなくても、抽出された符号を基に、デジタルコンテンツを不正に生成した不正ユーザを適切に判定することができ、不正ユーザを追跡することができる。
【0017】
また、本発明によれば、ユーザを不正ユーザであると誤って判定する誤り確率を想定内に収めつつ、判定回数に応じて想定された結託者数の摘発を可能な符号長を設定することにより、設定された安全性条件を満たす結託耐性符号を生成することができる。
【発明を実施するための最良の形態】
【0018】
以下に添付図面を参照して、この発明にかかる不正ユーザ検出装置、結託耐性符号生成装置及びプログラムの最良な実施の形態を詳細に説明する。
【0019】
[第1の実施の形態]
(1)構成
本実施の形態にかかる不正ユーザ検出装置は、装置全体の制御を行うCPU(Central Processing Unit)等の制御装置と、各種データや各種プログラムを記憶するROM(Read Only Memory)やRAM(Random Access Memory)等の記憶装置と、各種データや各種プログラムを記憶するHDD(Hard Disk Drive)やCD(Compact Disk)ドライブ装置等の外部記憶装置と、これらを接続するバスとを備えており、通常のコンピュータを利用したハードウェア構成となっている。
【0020】
次に、このようなハードウェア構成において、不正ユーザ検出装置が、記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される各種機能について説明する。図1は本実施の形態にかかる不正ユーザ検出装置の機能的構成を示す図である。同図に示される不正ユーザ検出装置100は、符号抽出部(図示せず)と、閾値設定部101と、スコア計算部102と、不正ユーザ判定部103とを有する。
【0021】
符号抽出部は、抽出対象のデジタルコンテンツから、結託耐性符号の全部又は一部を抽出する。閾値設定部101は、符号抽出部が抽出した結託耐性符号の符号長に基づいて、ユーザが不正ユーザである否かの判定に用いる閾値を設定する。スコア計算部102は、符号抽出部が抽出した結託耐性符号の全部又は一部の符号と、各ユーザに対して割り当てられた符号とについて、ビット毎に相関値を計算し、各ビットの相関値の合計をスコアとしてユーザ毎に計算する。このようなスコアの計算方法は、例えばTardos符号について非特許文献1に記載されている方法を用いれば良い。不正ユーザ判定部103は、スコア計算部102が計算した各ユーザのスコアと、閾値設定部101が設定した閾値とを用いて、各ユーザが不正ユーザであるか否かを判定する。
【0022】
(2)動作
次に、本実施の形態にかかる不正ユーザ検出装置100の行う処理の手順について図2を参照しながら説明する。尚、本実施の形態においては、抽出対象のデジタルコンテンツに埋め込まれたに結託耐性符号のうち、一部の符号しか抽出できなかった場合について説明する。まず、不正ユーザ検出装置100の符号抽出部が、抽出対象のデジタルコンテンツから符号の一部を抽出する。その際、抽出できた符号の符号長をmLとする。次いで、閾値設定部101は、ステップS101で抽出された符号の符号長mLによって、ユーザが不正ユーザである否かの判定に用いる閾値THLを設定する。閾値の設定は、Tardos符号では例えば以下のように行えば良い。閾値設定部101は、「mL=100cL2k」となる結託者数cLを計算し(ステップS101)、「THL=20cLk」となるように閾値THLを設定する(ステップS102)。即ち、「THL=2√(mLk))」となる。ただしkは上述の式1で表される。尚、これらの各種定数は、記憶装置や外部記憶装置に予め記憶されているものとする。
【0023】
その後、スコア計算部102は、符号抽出部が抽出した符号と、各ユーザに対して割り当てられた符号とについて、ビット毎に相関値を計算し、各ビットの相関値の合計点をスコアとしてユーザ毎に計算する(ステップ103)。次いで、不正ユーザ判定部103は、スコア計算部102が計算した各ユーザjのスコアSjと、閾値設定部101が設定した閾値THLとを用いて、各ユーザjが不正ユーザであるか否かを判定する。具体的には、不正ユーザ判定部103は、ユーザのスコアが閾値THLより大きい場合、当該ユーザは不正ユーザであると判定し、ユーザのスコアが閾値THL以下である場合、当該ユーザは無罪である(無罪ユーザ)と判定する。
【0024】
しかしながら、不正ユーザのスコアを直接評価することは難しい。攻撃アルゴリズムが未知であるため、攻撃アルゴリズムによってはスコアの分布に偏りが生ずる。このため、Tardosらは、不正ユーザの平均スコアが閾値THを超えているか否かで不正ユーザを告発できる確率を評価している。平均スコアであれば攻撃アルゴリズムによらず評価が可能であり、不正ユーザの平均スコアがTHを超えていれば、少なくとも1人の不正ユーザのスコアはTHを超え、告発が可能となるためである。
【0025】
ここで、閾値THLを用いた判定について説明する。図3は、Tardos符号におけるスコアによる無罪ユーザと不正ユーザとの頻度分布(確率分布であってもよい)を簡略化して示した図である。同図に示されるように、無罪ユーザのスコアの平均点は「0」点であり、無罪ユーザは、「0」点の近傍に集中し、この点から遠ざかるほど少なくなる分布となっている。一方、不正ユーザの平均スコアの平均AVは「0」点より大きく、不正ユーザの平均スコアは、平均点AVの近傍に集中し、この点から遠ざかるほど少なくなる分布となっている。このような分布において、スコアが適当に定めた閾値TH以下であれば、無罪ユーザであると判定し、スコアが閾値THより大きければ、不正ユーザであると判定することができる。
【0026】
ところで、無罪ユーザと不正ユーザとの頻度分布は、符号長に応じて異なる。符号長が短くなるほど、その分布の分散は小さくなる。図4は、図3における符号長よりも短い符号長を用いた場合の無罪ユーザと不正ユーザとの頻度分布を簡略化して示した図である。同図に示されるように、この場合、図3に示した分布における閾値THより小さい値となる閾値(THL)を設定しなければならないことになる。従って、上述のステップS102では、閾値設定部101は、この符号長mLの長さに応じて、ユーザが不正ユーザである否かの判定に用いる閾値THLを設定することになる。このように、不正ユーザ判定部103は、符号長mLに応じて設定された閾値THLを用いて不正ユーザであるか否かの判定を行うことにより、その判定を適切に行うことができる。
【0027】
図2に戻り、ステップS104の後、不正ユーザ判定部103は、不正ユーザであると判定したユーザを結託者であるとして告発する(ステップS105)。尚、不正ユーザ判定部103が不正ユーザであると判定したユーザが1人もいない場合、即ち、全てのユーザのスコアが閾値THL以下である場合(ステップS104:NO)、抽出された符号長mLでは不正ユーザの追跡ができないものとして処理は終了する。
【0028】
ここで、本実施の形態において用いる符号長について説明する。図5は、ある結託者数について、当該結託者数が比較的多い場合に、各符号長に対する不正ユーザ及び無罪ユーザのスコアの分布を示した図である。同図では、曲線Cr1〜Cr2は各々、不正ユーザであるか否かを判定するための閾値を示すものである。スコアの値が曲線Cr1より上にある場合、無罪ユーザがそのようなスコアとなることは極めて稀(想定している誤り確率以下)であることから不正ユーザであると判定され、スコアの値が曲線Cr1以下にある場合無罪ユーザであると判定される。また、スコアの値が曲線Cr2以下にある場合、不正ユーザ全員がそのようなスコアをとることも極めて稀(想定している誤り確率以下)であることから無罪ユーザであると判断され、スコアの値が曲線Cr2より上にある場合不正ユーザであると判定される。このような分布において、曲線Cr1及びCr2が交わる点が、不正ユーザと無罪ユーザとを適切に判定することができる符号長(必要符号長)及びそれに対応する閾値であることを示している。
【0029】
図6は、図5における結託者数より少ない結託者数について、各符号長に対する不正ユーザ及び無罪ユーザのスコアの分布を示した図である。この場合、不正ユーザであるか否かを判定するための閾値を示す曲線Cr3の傾きは、曲線Cr2の傾きより急なものとなる。従って、曲線Cr1及びCr3の交点は、曲線Cr1及びCr2の交点より、原点に近いものとなる。従って、結託者がより少ない場合の必要符号長Mは、結託者数がより多い場合の必要符号長より短くなる。即ち、結託者がより少ない場合には、結託者数がより多い場合に比べてより短い符号長(必要符号長)で、不正ユーザであるか否かを適切に判定することができる。
【0030】
以上のような構成によれば、デジタルコンテンツから全ての符号を抽出できない場合であっても、抽出された符号の符号長に応じて想定される結託者数を基に閾値を設定することにより、不正ユーザを適切に判定することができる。従って、このような場合であっても、不正ユーザを効率的に追跡することができる。
【0031】
[第2の実施の形態]
次に、不正ユーザ検出装置の第2の実施の形態について説明する。なお、上述の第1の実施の形態と共通する部分については、同一の符号を使用して説明したり、説明を省略したりする。
【0032】
(1)構成
本実施の形態においては、不正ユーザ検出装置は、元来想定していた符号長よりも短い符号長で不正ユーザの追跡を行う。図7は、本実施の形態にかかる不正ユーザ検出装置の機能的構成を示す図である。上述の第1の実施の形態と異なる部分について説明する。機能的構成において、本実施の形態にかかる不正ユーザ検出装置200は、符号抽出部(図示せず)と、符号長設定部201と、閾値設定部202と、スコア計算部203と、不正ユーザ判定部204とを有する。符号長設定部201は、符号抽出部が抽出した符号のうち、その全部の符号又は一部の符号を用いるべく、不正ユーザであるか否かの判定に用いる符号長を判定回数に応じて設定する。閾値設定部202は、符号長設定部201が設定した符号長に基づいて、ユーザが不正ユーザであるか否かの判定に用いる閾値を設定する。スコア計算部203は、符号抽出部が抽出した符号のうち、符号長設定部201が設定した符号長の符号と、各ユーザの符号とについて、ビット毎に相関値を計算し、各ビットの相関値の合計をスコアとしてユーザ毎に計算する。不正ユーザ判定部204は、スコア計算部203が計算した各ユーザのスコアと、閾値設定部201が設定した閾値とを用いて、各ユーザが不正ユーザであるか否かを判定する。
【0033】
以上のような構成において、不正ユーザ検出装置200は、一ユーザにつき不正ユーザであるか否かを判定する判定処理を最大「t」(t:1以上の正整数)回行うものとする。この「t」回を最大回数という。この最大回数「t」の値は、予め設定され、例えば記憶装置や外部記憶装置に記憶されているものとする。そして、不正ユーザ検出装置200は、1回目の判定処理において、1回目に対応した符号長を設定し、当該符号長に基づいて閾値を設定し、当該閾値を用いて、不正ユーザであるか否かの判定処理を行う。不正ユーザであると判定したユーザが1人もいない場合、判定回数が「t」回に達していなければ、次回の判定処理において、不正ユーザ検出装置200は、当該回数に対応した符号長を設定し、当該符号長に基づいて閾値を設定し、当該閾値を用いて、不正ユーザであるか否かの判定処理を行う。この回においても、不正ユーザであると判定したユーザが1人もいない場合には、「t」回に達するまで、次回の判定処理において、上述と同様の判定処理を繰り返す。
【0034】
また、ここでは、想定される結託者数が、判定回数に対応しており、その判定回数に対応する結託者数の不正ユーザを追跡可能な閾値を設定するための符号長を設定する。例えば、判定回数「1」に対して、結託者数「2」が想定されており、判定回数「2」に対して、結託者数「4」が想定されており、判定回数「3」に対して、結託者数「8」が想定されており、判定回数「4」に対して、結託者数「10」が想定されている場合、最大回数「t=4」と設定され、判定回数uに対応する結託者数cuとして、「c1=2」、「c2=4」、「c3=8」、「c4=10」と設定される。最大回数tに対応する結託者数(最大結託者数)cmaxとする。即ち、ここでは、判定回数が増えるほど、想定される結託者数が多くなるよう設定される。
【0035】
不正ユーザ検出装置200は、不正ユーザであると判定したユーザが1人もいない場合には、このように、判定回数に応じた結託者数を用いて符号長を伸張し、伸張された符号長に基づいて次回の判定処理に用いる閾値を設定する。
【0036】
尚、以上のように、判定回数に応じて符号長を設定するのは、以下の理由からである。上述のように、一ユーザにつき複数回の判定処理を行う場合、無罪であるユーザが、処理回によっては、不正ユーザであると判定される可能性がある。図8は、ユーザに対して計算されるスコアが、符号長の長さによって、即ち、処理回によって異なることを例示する図である。例えば、必要符号長M1を用いる処理回において計算されたスコアがSc1であるユーザに対し、必要符号長M2を用いる処理回において計算されるスコアが、例えばSc1"となる場合がある。この場合、前者の処理回では、スコアSc1は必要符号長M1に対応する閾値THM1以下であるため、無罪であると判定され、後者の処理回では、スコアSc1"は必要符号長M2に対応する閾値THM2を上回るため、不正ユーザであると判定される。また、必要符号長M1を用いる処理回において計算されたスコアがSc2であるユーザに対し、必要符号長M2を用いる処理回において計算されるスコアが、例えばSc2´となる場合もある。この場合、前者の処理回では、スコアSc2は必要符号長M1に対応する閾値THM1を上回るため、不正ユーザであると判定され、後者の処理回では、スコアSc2´は必要符号長M2に対応する閾値THM2以下であるため、無罪であると判定されるはずである。尚、必要符号長M1を用いる処理回において計算されたスコアがSc1であるユーザに対し、必要符号長M2を用いる処理回において計算されるスコアが、例えばSc1´となる場合、又は、前者の処理回でスコアSc2であるユーザに対し、後者の処理回において計算されるスコアが、例えばSc2"となる場合は、前者の処理回と後者の処理回とで判定結果は変わらないため、問題とはならない。
【0037】
このように、複数回の判定処理を行うことにより、一ユーザに対する判定を誤ることがあると、判定を誤った回数分だけ確率事象が増えることになるため、判定を誤る確率が上がることになる。従って、複数回の判定処理を行う場合、判定を誤る確率を上述した誤り確率「ε」、即ち、判定処理が行われ得る回数が一ユーザにつき1回の場合に設定される誤り確率「ε」に収められない可能性があるため、判定回数に応じて符号長を設定する。
【0038】
一方、判定を誤る確率を誤り確率「ε」以内に収めるためには、従来技術において、「c」人の結託者の摘発に必要な符号長がmcだとすると、最悪、以下の式2で表される長さの符号長があれば十分である。
【0039】
【数2】
【0040】
このため、Tardos符号の例では、最大の結託者数として最大結託者数「cmax」を想定し、最大判定回数「t」に対応して、符号長が以下の式3で表される長さ(最大符号長)の符号が必要となる。
【0041】
【数3】
【0042】
このため、対象のデジタルコンテンツには、最大結託者数「cmax」に対応して必要な最大符号長の結託耐性符号を予め埋めておく必要がある。ここでは、このような結託耐性符号が対象のデジタルコンテンツに予め埋め込まれているものとして説明する。尚、このような結託耐性符号を生成する結託耐性符号生成装置については後述する。
【0043】
(2)動作
次に、本実施の形態にかかる不正ユーザ検出装置200の行う処理の手順について図9を参照しながら説明する。まず、判定回数uを「1」とし(ステップS201)、符号長設定部201は、符号抽出部が抽出した符号から、不正ユーザの検出に用いる符号長muを判定回数uに応じて設定する(ステップS202)。ここで、符号長muを判定回数uに応じて設定するのは、判定回数uに対応して想定される結託者数cuに応じて符号長を設定するということである。Tardos符号を用いる場合は、例えば、1回目(判定回数uが「1」のとき)で追跡したい結託者数を「c1」とすると、符号長muを以下の式4で表される長さに設定する。判定回数uが「2」以上の場合については後述する。
【0044】
【数4】
【0045】
次に、閾値設定部202は、ステップS202で設定された符号長muを用いて、ユーザが不正ユーザである否かの判定に用いる閾値THuを設定する(ステップS203)。スコア計算部203は、符号抽出部が抽出した符号のうち、符号長設定部201が設定した符号長muの符号と、各ユーザの符号長mu分の符号とについて、ビット毎に相関値を計算し、各ビットの相関値の合計をスコアとしてユーザ毎に計算する。不正ユーザ判定部204は、スコア計算部203が計算した各ユーザjのスコアSjについて、閾値設定部101が設定した閾値THuを用いて、各ユーザが不正ユーザであるか否かを判定する。そして、不正ユーザ判定部204は、不正ユーザであると判定したユーザを告発する(ステップS206)。不正ユーザであると判定したユーザが1人もいない場合、即ち、全てのユーザjのスコアSjが閾値THu以下である場合(ステップS205:NO)、判定回数uに「1」を加え(ステップS216)、判定回数uが「t」以下である場合(ステップS217:YES)、ステップS202に戻る。
【0046】
尚、判定回数uが「2」の場合のステップS202では、符号長設定部201は、結託者数cを判定回数uに対応した結託者数「c2」として、符号長m2を以下の式5で表される長さに設定する。
【0047】
【数5】
【0048】
そして、ステップS203では、直前のステップS202で設定された符号長muを用いて、ユーザが不正ユーザである否かの判定に用いる閾値THuを設定する。以降同様の処理を繰り返す。判定回数uが「r」(2<r<t)の場合のステップS202では、符号長設定部201は、結託者数cを判定回数uに対応した結託者数「cr」として、符号長を以下の式6で表される長さに設定する。
【0049】
【数6】
【0050】
そして、判定回数uが「t」に達した場合、ステップS202では、符号長設定部201は、結託者数cを最大判定回数「t」に対応した最大結託者数「cmax」として、符号長を以下の式7で表される長さに設定する。
【0051】
【数7】
【0052】
このようにして、符号長設定部201は、判定回数uの値と、判定回数uに対応して想定される結託者数とを用いて、符号長muを設定する。そして、閾値設定部202が、設定された符号長muにより閾値THuを設定し、不正ユーザ判定部204が、設定された閾値THuを用いて、各ユーザが不正ユーザであるか否かを判定する。そして、ステップS217で、判定回数uが「t」よりも大きくなった場合(ステップS217:NO)、抽出された符号では不正ユーザを追跡できないので、処理を終了する。
【0053】
以上のようにして、本実施の形態においては、1回目の処理では、最大結託者数より少ない結託者数を想定して、最大符号長を用いるのではなくより短い符号長を用いて、不正ユーザか否かの判定処理を行う。この判定において、不正ユーザであると判定したユーザが1人もいない場合には、符号長を再設定して、不正ユーザか否かの判定処理を再度行う。このとき、判定回数が増えるほど、想定される結託者数が多くなるように設定するため、結果として、判定回数が増えるほど長く設定される符号長を用いて、不正ユーザか否かの判定処理を再度行うことになる。このように、結託者数が、符号生成時において想定される最大結託者数よりも少ないと想定される場合に、結託耐性符号のうち全部の符号を用いるのではなく一部を用いることにより、上述のスコアの計算や不正ユーザの判定のための計算量を減らすことができる。従って、不正ユーザの追跡をより効率的に行うことができる。
【0054】
また、上述のように、判定を誤る確率を想定内に収めつつ、判定回数に応じて想定された結託者数の摘発を可能な符号長を設定することにより、設定された安全性条件を満たすことができる。
【0055】
<結託耐性符号生成装置>
(1)構成
ここで、不正ユーザ検出装置200において不正ユーザであるか否かを判定する判定処理が一ユーザにつき最大「t」回(上述の最大回数)行われ得る場合の結託耐性符号を生成する結託耐性符号生成装置について説明する。結託耐性符号生成装置は、装置全体の制御を行うCPU(Central Processing Unit)等の制御装置と、各種データや各種プログラムを記憶するROM(Read Only Memory)やRAM(Random Access Memory)等の記憶装置と、各種データや各種プログラムを記憶するHDD(Hard Disk Drive)やCD(Compact Disk)ドライブ装置等の外部記憶装置と、これらを接続するバスとを備えており、通常のコンピュータを利用したハードウェア構成となっている。
【0056】
次に、このようなハードウェア構成において、結託耐性符号生成装置が、記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現される各種機能について説明する。図10は、結託耐性符号生成装置500の機能的構成を例示する図である。同図に示される結託耐性符号生成装置500は、誤り確率設定部501と、符号長設定部502と、結託耐性符号生成部503とを有する。誤り確率設定部501は、符号長の設定に用いる誤り確率として、処理が行われ得る最大の回数が1回の場合と比較して「1/t」以下となるように、誤り確率の値を設定する。符号長設定部502は、誤り確率設定部501が設定した誤り確率と、想定される結託者数(不正ユーザ数)と、ユーザ数とに基づいて、符号長を設定する。結託耐性符号生成部503は、符号長設定部502が設定した符号長の結託耐性符号を生成する。
【0057】
尚、最大回数「t」の値は、特に限定されず、予め設定されて記憶装置や外部記憶装置に記憶されているものとする。また、結託耐性符号の生成に用いるユーザ数、想定される結託者数、誤り確率「ε」についても各々記憶装置や外部記憶装置に予め記憶されているものとする。
【0058】
(2)動作
次に、結託耐性符号生成装置500が行う結託耐性符号生成処理の手順について図11を用いて説明する。結託耐性符号生成装置500の誤り確率設定部501は、記憶装置や外部記憶装置に記憶されている誤り確率「ε」と最大回数「t」とを読み出し、その値が「1/t」以下となるように誤り確率を再設定する(ステップS300)。次いで、符号長設定部502は、記憶装置や外部記憶装置に記憶された結託者数と、ユーザ数とを読み出し、これらと、ステップS300で設定された誤り確率とに基づいて、符号長を設定する(ステップS301)。結託耐性符号生成部503は、ステップS301で設定された符号長の結託耐性符号を生成する(ステップS302)。
【0059】
尚、Tardos符号の構成法においては誤り確率を「ε」とした場合、「不正ユーザを一人も告発できない」確率を「ε/n」、「無罪ユーザを不正ユーザとして告発する」確率を「(n−1)ε/n」としており、このうちある「無罪ユーザを不正ユーザとして告発する」確率は「ε/n」以下となる。上記のことを考えれば、ある「無罪ユーザを不正ユーザとして告発する」確率のみ「1/t」倍すれば十分である。しかし、ステップS300では、「不正ユーザを一人も告発できない」確率も「1/t」倍して符号長を導出することを試みている。もちろん、ある「無罪ユーザを不正ユーザとして告発する」確率のみを「1/t」倍して、符号長の設定をやり直せば符号長を短くできるのは自明であるが、ここではその説明を割愛する。
【0060】
また、Tardos符号の構成法では、ユーザ数を「n」、結託者数を「c」、誤り確率を「ε」、符号長を「m」とすると、符号長mは以下の式8で表される。
【0061】
【数8】
【0062】
ステップS301では、符号長設定部502は、この符号長m’を以下の式9で表される長さに設定すれば良い。
【0063】
【数9】
【0064】
尚、不正ユーザ検出装置200において不正ユーザであるか否かを判定する判定処理で用いる閾値は、以下の式10で表される。
【0065】
【数10】
【0066】
この代わりに以下の式11で表される閾値が不正ユーザ検出装置200では用いられるものとして、ステップS302では、結託耐性符号生成部503は結託耐性符号を生成すれば良い。
【0067】
【数11】
【0068】
以上のような構成によって生成された結託耐性符号をデジタルコンテンツに埋め込むことにより、当該結託耐性符号を用いて不正ユーザ検出装置200において不正ユーザであるか否かを判定する判定処理を一ユーザにつき最大「t」回が行われたとしても、判定を誤る確率を想定内(「ε」以内)に収めることができ、設定された安全性条件を満たすことができる。
【0069】
このようなことができるのは以下の理由からである。ユーザ数を「n」とし、ある無罪ユーザを1回の判定処理で不正ユーザとして誤って告発する確率を「εt」とすると、無罪ユーザは最大「n-1」人おり、不正ユーザ検出装置200において1回の判定処理で無罪ユーザ全員が正しく判定される確率は、「(1−εt)n−1」である。
【0070】
毎回の判定処理が独立なものであると仮定すると、2回目の判定処理でもある無罪ユーザを不正ユーザとして誤って告発する確率は「εt」で変わらないため、2回目の判定処理で無罪ユーザ全員が正しく判定される確率は、「(1−εt)n−1」である。
【0071】
尚、実際は、毎回の判定処理が独立なものでないため、本来、誤り確率はこの確率よりもずっと低くなると考えられるが、ここでの評価は少なくともこの評価よりも高い誤り確率になることはない、というケースで誤り確率を見積もったものとなっている。
【0072】
1人でも不正ユーザを告発した時点で判定処理は終了となるため、無罪ユーザを不正ユーザとして誤って告発した場合も判定処理は終了となる。このため、2回目以降は1回目の判定処理で無罪ユーザとして正しく判定されたものに対して判定処理が行われる。このことを考慮すると、2回目の判定処理終了時点で、無罪ユーザ全員が告発されない確率は、「(1−εt)2(n−1)」となる。これを「t」回繰り返すことを考え、「t」回目の判定処理終了時点で無罪ユーザ全員が告発されない確率は、「(1−εt)t(n−1)」となる。
【0073】
ここで「t(n−1)εt≪1」を想定すると、「(1−εt)t(n−1)>1−t(n−1)εt」が成立する。従って、無罪のユーザを不正ユーザとして誤って告発する誤り確率は、「t(n−1)εt」以下となることがわかる。
【0074】
尚、「t(n−1)εt≪1」という想定は、以下の理由からである。「t(n−1)εt」が「1」に近い場合は誤り確率自体が「1」に近いか、「t」が非常に大きいということを示唆するものである。このため、安全性要件と、想定される「t」はせいぜい結託者数「c」以下であることとを鑑みて、上記の想定は妥当な想定であると考えられるからである。
【0075】
例えば、Tardos符号の構成法では、1回の判定処理で無罪ユーザを誤って告発する確率を「(n−1)ε/n」となるようにしている。この確率と、一ユーザにつき最大「t」回の判定処理を行って無罪ユーザを誤って告発する確率とを比較すると、「1−t(n−1)εt≦(n−1)ε/n」が成立する。これを整理すると「εt≦ε/(n・t)」となる。元々、Tardosの構成法ではある無罪ユーザを誤って告発する確率を「ε/n」としていたので、ある無罪のユーザを誤って告発する確率を当初の「1/t」以下にすれば全体としての誤り確率を「ε」以下にすることができる。「ε」とは、上述において説明したように、元々想定される誤り確率の値であり、判定処理が行われ得る回数が一ユーザにつき1回の場合に設定される誤り確率の値である。
【0076】
尚、誤りとは、上述したように、「不正ユーザを1人も告発できない」場合と「無罪ユーザを不正ユーザとして告発する」場合との2通りの場合があり得る。このうち「不正ユーザを一人も告発できない」という確率は、1回の判定処理でこの確率を「ε」以下に抑えているのであれば、「t」回の判定を行った場合も「ε」以下になっているはずである。一方、「無罪のユーザを不正ユーザとして告発する」確率は上記で説明したように「t」回の判定処理を行うと最悪で「t」倍になる。「t」回の判定処理後、全体として誤り確率を「ε」以下に抑えるためには、少なくとも1回のみの判定処理で「無罪ユーザを不正ユーザとして告発する」という誤り確率として「1/t」倍以下のものを用いればよいということが分かる。
【0077】
[変形例]
なお、本発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、前記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。また、以下に例示するような種々の変形が可能である。
【0078】
<変形例1>
上述の各実施の形態においては、不正ユーザ検出装置は、符号抽出部を有する構成であるとしたが、これを有するのではなく、ネットワークを介して外部のコンピュータと通信を行う通信制御装置を有し、当該通信制御装置を介して、コンテンツから抽出された符号を受信することにより、処理対象の符号を取得するように構成しても良い。
【0079】
<変形例2>
上述した実施の形態において、不正ユーザ検出装置で実行される各種プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、当該プログラムを、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成しても良い。
【0080】
<変形例3>
上述の第1の実施の形態の構成の一部又は全部及び第2の実施の形態の構成の一部又は全部を組み合わせても良い。このような構成によれば、例えば、全ての符号を抽出することができなくても、十分な長さの符号長の符号を得られた場合や、一部の符号しか抽出できていなくとも効率性を重視して極めて短い符号で予め不正ユーザの追跡を行いたい場合などに好適である。
【図面の簡単な説明】
【0081】
【図1】第1の実施の形態にかかる不正ユーザ検出装置の機能的構成を示す図である。
【図2】同実施の形態にかかる不正ユーザ検出装置100の行う処理の手順を示すフローチャートである。
【図3】同実施の形態にかかるTardos符号におけるスコアによる無罪ユーザと不正ユーザとの人数分布を簡略化して示した図である。
【図4】図3における符号長よりも短い符号長を用いた場合の無罪ユーザと不正ユーザとの人数分布を簡略化して示した図である。
【図5】ある結託者数について、当該結託者数が比較的多い場合に、各符号長に対する不正ユーザ及び無罪ユーザのスコアの分布を示した図である。
【図6】図5における結託者数より少ない結託者数について、各符号長に対する不正ユーザ及び無罪ユーザのスコアの分布を示した図である。
【図7】第2の実施の形態にかかる不正ユーザ検出装置の機能的構成を示す図である。
【図8】ユーザに対して計算されるスコアが、符号長の長さによって、即ち、処理回によって異なることを例示する図である。
【図9】同実施の形態にかかる不正ユーザ検出装置200の行う処理の手順を示すフローチャートである。
【図10】同実施の形態にかかる結託耐性符号生成装置500の機能的構成を例示する図である。
【図11】同実施の形態にかかる結託耐性符号生成装置500が行う結託耐性符号生成処理の手順を示すフローチャートである。
【符号の説明】
【0082】
100 不正ユーザ検出装置
101 閾値設定部
102 スコア計算部
103 不正ユーザ判定部
201 符号長設定部
202 閾値設定部
203 スコア計算部
204 不正ユーザ判定部
500 結託耐性符号生成装置
501 誤り確率設定部
502 符号長設定部
503 結託耐性符号生成部
【特許請求の範囲】
【請求項1】
ユーザ毎に異なって埋め込まれる符号であって結託攻撃を行った不正ユーザを追跡可能な結託耐性符号の一部又は全部をデジタルコンテンツから抽出する抽出手段と、
前記結託耐性符号のうち抽出された符号と、各ユーザに対して各々割り当てられた符号とを用いて、ビット毎の相関値を計算し、当該相関値の合計点をユーザ毎に計算する計算手段と、
抽出された前記符号の符号長に基づいて、不正ユーザの判定に用いる閾値を設定する第1設定手段と、
設定された前記閾値と、計算されたユーザ毎の前記合計点とを用いて、各ユーザが不正ユーザか否かを判定する判定手段とを備える
ことを特徴とする不正ユーザ検出装置。
【請求項2】
前記第1設定手段は、前記符号長に対して予め想定されている不正ユーザ数を計算し、当該不正ユーザ数を用いて前記閾値を計算して、前記閾値を設定する
ことを特徴とする請求項1に記載の不正ユーザ検出装置。
【請求項3】
不正ユーザであると前記判定手段が判定したユーザが1人もいない場合に、前記符号長を伸張する伸張手段と、
伸張された前記符号長に基づいて、前記閾値を再設定する第2設定手段とを更に備え、
前記判定手段は、再設定された前記閾値と、計算されたユーザ毎の前記合計点とを用いて、各ユーザが不正ユーザか否かを判定する
ことを特徴とする請求項1に記載の不正ユーザ検出装置。
【請求項4】
前記判定手段が1人のユーザに対して不正ユーザであるか否かを判定可能な最大の回数が予め設定されており、
前記伸張手段は、各ユーザに対する前記判定手段による判定回数が最大の回数を超えていない場合且つ不正ユーザであると前記判定手段が判定したユーザが1人もいない場合に、前記符号長を伸張する
ことを特徴とする請求項3に記載の不正ユーザ検出装置。
【請求項5】
判定回数が増えるほど想定される不正ユーザ数が増えるように、前記判定回数に対応して前記不正ユーザ数が予め設定されており、
前記伸張手段は、前記判定回数に対応して予め設定された不正ユーザ数を用いて、前記符号長を再計算することにより、前記符号長を伸張し、
前記計算手段は、抽出された前記符号のうち、伸張された前記符号長の符号と、各ユーザに対して各々割り当てられた符号とを用いて、前記合計点をユーザ毎に計算する
ことを特徴とする請求項4に記載の不正ユーザ検出装置。
【請求項6】
デジタルコンテンツに対してユーザ毎に異なって埋め込まれる符号であって結託攻撃を行った不正ユーザを追跡可能な結託耐性符号を生成する結託耐性符号生成装置であって、
想定される不正ユーザ数と、ユーザ数と、ユーザを不正ユーザであると誤って判定する誤り確率とに基づいて、符号長を設定する設定手段と、
設定された符号長の結託耐性符号を生成する生成手段とを備え、
前記設定手段は、前記結託耐性符号を用いて不正ユーザを検出する不正ユーザ検出装置において不正ユーザであるか否かを判定する処理が一ユーザにつき複数回行われ得る場合、当該処理が行われ得る最大の回数t(t:2以上の整数)に応じて、前記符号長を設定する
ことを特徴とする結託耐性符号生成装置。
【請求項7】
前記設定手段は、
前記結託耐性符号を用いて不正ユーザを検出する不正ユーザ検出装置において不正ユーザであるか否かを判定する処理が一ユーザにつき最大t回行われ得る場合、前記処理が行われ得る最大の回数が1回の場合と比較して1/t以下となるように、前記誤り確率を再設定する確率設定手段と、
再設定された前記誤り確率と、前記不正ユーザ数と、前記ユーザ数とに基づいて、符号長を設定する符号長設定手段とを有する
ことを特徴とする
請求項6に記載の結託耐性符号生成装置。
【請求項8】
コンピュータを、
ユーザ毎に異なって埋め込まれる符号であって結託攻撃を行った不正ユーザを追跡可能な結託耐性符号の一部又は全部をデジタルコンテンツから抽出する抽出手段と、
前記結託耐性符号のうち抽出された符号と、各ユーザに対して各々割り当てられた符号とを用いて、ビット毎の相関値を計算し、当該相関値の合計点をユーザ毎に計算する計算手段と、
抽出された前記符号の符号長に基づいて、不正ユーザの判定に用いる閾値を設定する第1設定手段と、
設定された前記閾値と、計算されたユーザ毎の前記合計点とを用いて、各ユーザが不正ユーザか否かを判定する判定手段として機能させることを特徴とするプログラム。
【請求項9】
コンピュータを、
デジタルコンテンツに対してユーザ毎に異なって埋め込まれる符号であって結託攻撃を行った不正ユーザを追跡可能な結託耐性符号を生成する結託耐性符号生成装置であって、
想定される不正ユーザ数と、ユーザ数と、ユーザを不正ユーザであると誤って判定する誤り確率とに基づいて、符号長を設定する設定手段と、
設定された符号長の結託耐性符号を生成する生成手段として機能させ、
前記設定手段は、前記結託耐性符号を用いて不正ユーザを検出する不正ユーザ検出装置において不正ユーザであるか否かを判定する処理が一ユーザにつき複数回行われ得る場合、当該処理が行われ得る最大の回数t(t:2以上の整数)に応じて、前記符号長を設定する
ことを特徴とするプログラム。
【請求項1】
ユーザ毎に異なって埋め込まれる符号であって結託攻撃を行った不正ユーザを追跡可能な結託耐性符号の一部又は全部をデジタルコンテンツから抽出する抽出手段と、
前記結託耐性符号のうち抽出された符号と、各ユーザに対して各々割り当てられた符号とを用いて、ビット毎の相関値を計算し、当該相関値の合計点をユーザ毎に計算する計算手段と、
抽出された前記符号の符号長に基づいて、不正ユーザの判定に用いる閾値を設定する第1設定手段と、
設定された前記閾値と、計算されたユーザ毎の前記合計点とを用いて、各ユーザが不正ユーザか否かを判定する判定手段とを備える
ことを特徴とする不正ユーザ検出装置。
【請求項2】
前記第1設定手段は、前記符号長に対して予め想定されている不正ユーザ数を計算し、当該不正ユーザ数を用いて前記閾値を計算して、前記閾値を設定する
ことを特徴とする請求項1に記載の不正ユーザ検出装置。
【請求項3】
不正ユーザであると前記判定手段が判定したユーザが1人もいない場合に、前記符号長を伸張する伸張手段と、
伸張された前記符号長に基づいて、前記閾値を再設定する第2設定手段とを更に備え、
前記判定手段は、再設定された前記閾値と、計算されたユーザ毎の前記合計点とを用いて、各ユーザが不正ユーザか否かを判定する
ことを特徴とする請求項1に記載の不正ユーザ検出装置。
【請求項4】
前記判定手段が1人のユーザに対して不正ユーザであるか否かを判定可能な最大の回数が予め設定されており、
前記伸張手段は、各ユーザに対する前記判定手段による判定回数が最大の回数を超えていない場合且つ不正ユーザであると前記判定手段が判定したユーザが1人もいない場合に、前記符号長を伸張する
ことを特徴とする請求項3に記載の不正ユーザ検出装置。
【請求項5】
判定回数が増えるほど想定される不正ユーザ数が増えるように、前記判定回数に対応して前記不正ユーザ数が予め設定されており、
前記伸張手段は、前記判定回数に対応して予め設定された不正ユーザ数を用いて、前記符号長を再計算することにより、前記符号長を伸張し、
前記計算手段は、抽出された前記符号のうち、伸張された前記符号長の符号と、各ユーザに対して各々割り当てられた符号とを用いて、前記合計点をユーザ毎に計算する
ことを特徴とする請求項4に記載の不正ユーザ検出装置。
【請求項6】
デジタルコンテンツに対してユーザ毎に異なって埋め込まれる符号であって結託攻撃を行った不正ユーザを追跡可能な結託耐性符号を生成する結託耐性符号生成装置であって、
想定される不正ユーザ数と、ユーザ数と、ユーザを不正ユーザであると誤って判定する誤り確率とに基づいて、符号長を設定する設定手段と、
設定された符号長の結託耐性符号を生成する生成手段とを備え、
前記設定手段は、前記結託耐性符号を用いて不正ユーザを検出する不正ユーザ検出装置において不正ユーザであるか否かを判定する処理が一ユーザにつき複数回行われ得る場合、当該処理が行われ得る最大の回数t(t:2以上の整数)に応じて、前記符号長を設定する
ことを特徴とする結託耐性符号生成装置。
【請求項7】
前記設定手段は、
前記結託耐性符号を用いて不正ユーザを検出する不正ユーザ検出装置において不正ユーザであるか否かを判定する処理が一ユーザにつき最大t回行われ得る場合、前記処理が行われ得る最大の回数が1回の場合と比較して1/t以下となるように、前記誤り確率を再設定する確率設定手段と、
再設定された前記誤り確率と、前記不正ユーザ数と、前記ユーザ数とに基づいて、符号長を設定する符号長設定手段とを有する
ことを特徴とする
請求項6に記載の結託耐性符号生成装置。
【請求項8】
コンピュータを、
ユーザ毎に異なって埋め込まれる符号であって結託攻撃を行った不正ユーザを追跡可能な結託耐性符号の一部又は全部をデジタルコンテンツから抽出する抽出手段と、
前記結託耐性符号のうち抽出された符号と、各ユーザに対して各々割り当てられた符号とを用いて、ビット毎の相関値を計算し、当該相関値の合計点をユーザ毎に計算する計算手段と、
抽出された前記符号の符号長に基づいて、不正ユーザの判定に用いる閾値を設定する第1設定手段と、
設定された前記閾値と、計算されたユーザ毎の前記合計点とを用いて、各ユーザが不正ユーザか否かを判定する判定手段として機能させることを特徴とするプログラム。
【請求項9】
コンピュータを、
デジタルコンテンツに対してユーザ毎に異なって埋め込まれる符号であって結託攻撃を行った不正ユーザを追跡可能な結託耐性符号を生成する結託耐性符号生成装置であって、
想定される不正ユーザ数と、ユーザ数と、ユーザを不正ユーザであると誤って判定する誤り確率とに基づいて、符号長を設定する設定手段と、
設定された符号長の結託耐性符号を生成する生成手段として機能させ、
前記設定手段は、前記結託耐性符号を用いて不正ユーザを検出する不正ユーザ検出装置において不正ユーザであるか否かを判定する処理が一ユーザにつき複数回行われ得る場合、当該処理が行われ得る最大の回数t(t:2以上の整数)に応じて、前記符号長を設定する
ことを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2009−163604(P2009−163604A)
【公開日】平成21年7月23日(2009.7.23)
【国際特許分類】
【出願番号】特願2008−2052(P2008−2052)
【出願日】平成20年1月9日(2008.1.9)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
【公開日】平成21年7月23日(2009.7.23)
【国際特許分類】
【出願日】平成20年1月9日(2008.1.9)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
[ Back to top ]