電子透かし(digital watermarking)は、ディジタルデータ化された音声、音楽、動画、静止画等のコンテンツに対して、コンテンツの著作権者や利用者の識別情報、著作権者の権利情報、コンテンツの利用条件、その利用時に必要な秘密情報、コピー制御情報などの情報(これらを透かし情報と呼ぶ)を知覚が容易ではない状態となるように埋め込み、後に必要に応じて透かし情報をコンテンツから検出することによって利用制御、コピー制御を含む著作権保護を行ったり、二次利用の促進を行うための技術である。
[電子透かしの要件]
不正利用の防止を目的とする場合、電子透かし技術はディジタル著作物に対して通常に施されると想定される各種の操作や意図的な攻撃によって、透かし情報が消失したり改竄されたりしないような性質(ロバスト性)を持つ必要がある。例えば、静止画や動画はそれぞれJPEG(Joint Photographic Coding Experts Group)符号化、MPEG(Moving Picture Experts Group)符号化と呼ばれる非可逆圧縮を施されることが多いため、電子透かし技術はこれらの非可逆圧縮に対するロバスト性を持つことが重要な要件となることが通常である。
[電子透かしの分類]
従来、画像に対する電子透かしの方式は、画素領域利用型と周波数領域利用型に大別することができる。画素領域利用型の電子透かし方式は、画素値を変更することで直接的に透かし情報の埋め込みを行うものである。一方、周波数領域利用型の電子透かし方式は、直交変換によって、一旦、画素領域から周波数領域へ移り、周波数領域において埋め込みを行った後、再び、逆直交変換によって周波数領域から画素領域に戻るものである。透かし情報は波として埋め込まれることになる。
[周波数領域利用型電子透かし方式]
周波数領域利用型の電子透かし方式としては、例えば文献[1] Cox, I.J., Kilian, J., Leighton, T. and Shamoon, T., “Secure Spread Spectrum Watermarking for Multimedia”, NEC Research Institute, Technical Report 95-10, 1995.(Coxらの方式という)がある。この方式では、埋め込み対象となる周波数成分を非可逆圧縮による影響が小さな低周波数から中間周波数に設定することで非可逆圧縮に対するロバスト性を実現している。
[スペクトラム拡散による電子透かし]
スペクトラム拡散(spread spectrum)の考えを適用することで非可逆圧縮へのロバスト性を高める方式がある。スペクトラム拡散とは、通信したい信号に必要な帯域に比べて十分大きな帯域中に、情報を広く分散させて伝送する通信方式をいう(文献[2] 山内雪路, “スペクトラム拡散通信”, 東京電機大学出版局, 1994.)。伝送路上のノイズに対する耐性が優れている。元のコンテンツを搬送波、透かし情報を希望波、非可逆圧縮による影響を干渉波(ノイズ)とみなすことで、スペクトラム拡散の考えを電子透かし技術へ適用する。スペクトラム拡散による電子透かし方式として、周波数領域における拡散(先の文献[1]参照)が提案されている。
[周波数領域における拡散(摂動法)]
先の文献[1]の方式では、透かし情報の埋め込みは画素値に対して直交変換を行い、周波数領域において透かし情報を拡散して埋め込む。拡散は、周波数領域において複数の周波数成分の値とある乱数列に従って変化させることによって行う。拡散後、逆直交変換を行う。透かし情報の検出は、画素値に対して直交変換を行い、埋め込みが行われた周波数成分の値を埋め込みに用いられた乱数列の間の相関値によって判定を行う。埋め込まれた透かし情報は、画素領域では、画像(ブロック)全体に分散されているため、各種の操作に対してロバストである。また、透かし情報を埋め込んだ周波数成分が低中間周波数領域にあるならば、低周波数通過フィルタによっても透かし情報が失われにくい。
[フィンガープリンティング]
電子透かし方式において、コンテンツに透かし情報として利用者ID(利用者識別番号)を埋め込むことで、そのコンテンツの利用者を特定する情報を埋め込む応用形態が考えられる。このような応用形態は「フィンガープリンティング」と呼ばれ、不法コピーいわゆる海賊版の再配布を抑止する効果が期待できる。
[結託攻撃問題]
ところが、同じコンテンツに異なる透かし情報が埋め込まれた複数の埋め込み済みコンテンツが存在する場合、それら複数の埋め込み済コンテンツを利用して透かし情報を改竄、消失させるという行為が考えられる。このような行為は、「結託攻撃(collusion attack)」と呼ばれている。結託攻撃では、複数の埋め込み済みコンテンツの画素値を平均化することで新たなコンテンツを偽造したり、値が異なる画素値や周波数成分値の部分に対して、ランダムに、あるいは、多数決/少数決に従って値を変更する、などのやり方で改変を加える。
[結託攻撃に対する従来の対策]
従来、結託攻撃に対処する方法として、スペクトラム拡散による方法(先の文献[1]、及び文献[3]山本哲也, 渡辺創, 嵩忠雄, “すべての結託ユーザを特定可能な電子透かし法”, SCIS'98, 10.2.B, 1998.)と、符号理論的な方法(文献[4] Boneh, Dan and Shaw, James, “Collusion-Secure Fingerprinting for Digital Data”, CRYPTO'95, 452-465, 1995.、文献[5]鈴置昌宏, 渡辺創, 嵩忠雄, “結託攻撃に強い電子透かし法”, SCIS'97, 31B, 1997.及び文献[6] 吉田淳, 岩村恵市, 今井秀樹, “画質劣化が少なく結託攻撃に強い電子透かし法”, SCIS'98, 10.2.A, 1998.)が提案されている。
文献[1]の方法によれば、利用者毎にN(0,1)に従う相異なる実乱数列が与えられる。2つの異なる実乱数列の間に相関がないとする。結託攻撃は、画素値を平均化する操作とする。結託によって、検出時の相関値は減衰してしまう。
文献[1]では、相関値の代わりに、定義された類似度によって結託の検出を行う。この類似度は、相関値を検出された透かし情報のノルムで除したものとして定義される。結託により電子透かしのノルムも減衰しているので、相関値が減衰しても類似度はさほど減衰しない。これにより結託者全員を特定することができる。ただし、この方法は検出において埋め込み対象であった原画像を必要とし、また結託者特定に時間がかかるのが難点である。
文献[3]では、むしろ平均化による結託攻撃の際の相関値の減衰という性質を利用した結託者の特定方法を提案している。結託者間で共通の電子透かしは減衰せず、それ以外の電子透かしは減衰するので、埋め込み時のレベルを保っている電子透かしの組から結託者の組を特定する。全利用者数をn、想定する最大の結託者数をcとすると、(c+1)(c−1)logc+1nオーダの長さの埋め込み符号で結託者を特定することができる。ただし、この方法はスペクトラム拡散法に特有の性質を利用するため、すべての電子透かし方式に適用が可能なわけではない。
先の文献[4]には、透かし情報を表現する符号において、すべての結託者の間で共通な値を持つビットは検出不能であるという性質を利用して、検出不能なビットがそのまま残るならば、それ以外のビットを如何に変更しようとも、結託者以外の利用者の符号を生成することができない符号(c-frameproof符号と呼ばれる)を埋め込み符号として生成し、コンテンツに透かし情報として埋め込む方式が提案されている。
この方式では、埋め込み符号として誰のものでもない符号が生成される可能性は残るものの、ある利用者が自らのコンテンツをそのまま再配布した場合(native redistribution)、その利用者は他者の結託によるものであると主張しての否認はできなくなる。
結託者の総数に制限が無いn-frameproof符号は、符号サイズがnとなる。結託者総数が最大cであるc-frameproof符号は、符号サイズが16c2 logn(cは結託者数、nは全利用者数)である。
文献[4]ではさらに、2組の結託者のグループがあって、共通部分が空集合の場合、それぞれのグループ内での結託によって生成できる符号(feasible set)の集合間の共通部分も空集合であるような符号(totally c-secure符号)は存在しないということを示している。つまり、結託攻撃によって誰のものでもない符号を生成することができない符号は、厳密には存在しないことを示した。
そこで、文献[4]では結託者数がc人以内の場合に結託者を誤って指摘する確率がε以下である符号(c-secure code with ε-error)を埋め込み符号として構成した。まず、誤りεを持つn-secure符号Γ(n,2n2 log(2n/ε))を構成した。その符号サイズは、2n2(n-1)log(2n/ε)である。
さらに、それをTraitor Tracingスキーム(文献[7]Chor, B., Fiat, A. and Naor, M., “Tracing traitors”, Proceedings of CRYPTO'94, 257-270, 1994.)と組合せて誤りがε以下のc-secure符号の可能性を示した。この符号の符号サイズは、O(c4 log(n/ε) log(1/ε))である。
[Chernoffの限界(Chernoff bound)]
文献[7]では、Traitor Tracingスキームにおいて、Chernoffの限界の式を利用して結託者を特定するために必要な利用者固有鍵の数を決定している。先の文献[4]では、その方法を流用して誤りεのn-secure符号やc-secure符号を構成した。平均値pの独立なn個の確率変数X
i∈{0,1}があるとき、これらの和が平均値からずれる確率の限界を与えるのがChernoffの限界である。上端と下端の限界は、それぞれ次式で与えられる。
ここで、0≦δ<p(1−p)とする。また、次式が成り立つ。
[結託者中の2人のみを指摘する方法]
文献[4]で提案されている誤りεのn-secure符号やc-secure符号は、できるだけ多数の結託者を指摘するように設計されていた。利用者を順序集合とみなし、先の文献[4]で示されているΓ0(n,d)符号を、結託者の集合の中から最大と最小の2人を特定する符号として利用することもできる。この場合には、より小さな符号サイズでΓ0(n,d)符号を構成することが可能である。
ここで、Γ0(n,d)符号とはdビットを一単位とする連続した1の列及び0の列で構成される符号であり、このようなdビットの1の列や0の列を符号数nに応じた単位数だけ並べて構成される。従って、この符号では1と0はそれぞれdビットを単位として連続するように配置され、dビット未満の数の1や0が孤立して存在することはない。
例えば、d=3,n=5とすれば、Γ0(n,d)符号であるΓ0(5,3)符号は以下のようになる。
111 111 111 111
000 111 111 111
000 000 111 111
000 000 000 111
000 000 000 000
文献[5]では、2つの符号を昇順と降順に重ね合わせた符号を利用し、結託者中の2人を特定するn-secure符号を提案している。この符号の符号サイズは、2nlog4(2/ε)=nlog2(2/ε)となる。文献[6]では、Γ0(n,d)符号において0<weight(x|Bs)となる最小のS(Smin)と、weight(x|Bs)<dとなる最大のS(Smax)を求め、SminとSmax+1を結託者であると指摘するアルゴリズムによって結託者の2人を特定する方法を示した。この符号の場合、誤りεのn-secure符号は、符号サイズが(n−1)log2(2/ε)となる。
[誤りεの2-secure符号]
結託者総数が小さな場合には、埋め込み符号の符号サイズを小さくすることが可能である。先の文献[6]には、結託者総数2人の場合に結託者の両方を指摘する符号であって、その符号サイズが(3n1/2−1)log2(6/ε)の埋め込み符号を示している。
[結託攻撃耐性の限界]
文献[9] Ergun, Funde, Joe Kilian and Ravi Kumar, “A Note on the Limits of Collusion-Resistant Watermarking”, EUROCRYPT'99, 140-149, 1999.)は、電子透かし方式の詳細に依存せずに、結託攻撃に対する耐性には限界があることを理論的に示した。その主張は、正しい結託者を指摘する確率を高くしようとすると、誤った利用者を結託者として指摘してしまう確率(偽陽性率)が高くなってしまうというものであった。
文献[9]で想定している結託攻撃は、図38に示すように異なるすかし情報が埋め込まれた複数のコンテンツ(コンテンツ1,コンテンツ2,コンテンツ3)を平均化し、その後、ランダムな擾乱を加えるというものである。Ergun等の観点から、例えば先の文献[4]での議論を捉えなおしてみる。文献[4]における議論では、確率論的なc-secure符号の構成要素としてΓ0(n,d)符号を用いている。このΓ0(n,d)符号は、図39(d=3の例)のように(1,1,1)と(-1,-1,-1)に符号をとる符号化をn重に直積して得られる。
このΓ0(n,d)符号に対して、文献[9]で想定された結託攻撃を適用すると、平均化によって得られるコンテンツは、(1,1,1)と(-1,-1,-1)を結ぶ直線上にある重心に移る。結託攻撃は、さらに、その重心からずれた位置にコンテンツを移す。この場合、結託攻撃後のコンテンツが(1,1,1)か(-1,-1,-1)の近傍にある場合には、これは結託攻撃によって変更されていないと判断し、原点付近にある場合には結託攻撃によって変更されたとみなすことになる。
このΓ0(n,d)符号において、結託者のうち(1,1,1)の符号を持つ者の数と(-1,-1,-1)の符号を持つ者の数の間に大きな偏りがある場合、平均化の結果、重心は(1,1,1)あるいは(-1,-1,-1)のかなり近くに位置することとなる。その後、ランダムな擾乱を受けるので、一般に、結託者を特定するアルゴリズムは、コンテンツが(1,1,1)または(-1,-1,-1)から擾乱によって移ったものか、重心から擾乱によって移ったものかを誤って判断する可能性が高い。つまり、Ergun等自身、彼らの結論がほとんどの電子透かしアルゴリズムに適用されると言明しているが、Boneh等の符号化もErgun等の限界を逃れることはできないといえる。
一方、Γ0(n,d)符号において、2つの符号間の最大距離はnd、最小距離はdと幅が大きい(図40参照)。Γ0(n,d)符号は結託攻撃への耐性に重点がおかれいることから、受信空間中に非常にスパースに符号語が配置されているためである。
電子透かしアルゴリズムは、コンテンツの品質への影響がないように、符号間の最大距離ndの符号を埋め込む必要がある。電子透かしアルゴリズムが、Γ0(n,d)符号をコンテンツ空間へ埋め込み、その埋め込みが、符号間の距離とコンテンツ間の距離とが比例するような性質を持つ場合、オリジナルのコンテンツと透かし情報を埋め込んだ後のコンテンツとの間の最大距離もnd/2以上となるので、ndが大きな場合には、コンテンツ品質への影響が大きくなる(図41の埋め込み1)。
仮に、これを避けるため、電子透かしアルゴリズムが符号をコンテンツ空間中のオリジナルコンテンツからの距離関係が保たれないような埋め込みによって、すべての符号語がオリジナルコンテンツとほぼ等しい距離にあるようにしたとすると、Γ0(n,d)符号がもともと持っていた結託攻撃への耐性の根拠が失われてしまうことになる(図41の埋込み2)。
つまり、Ergun等の限界を意識した上で、結託攻撃に対する耐性の高さとコンテンツの品質への影響の小ささを適切に両立させた符号化による電子透かし方式を実現することが望ましいと考えられる。
(スペクトラム拡散による電子透かしの結託攻撃耐性)
一方、スペクトラム拡散による電子透かし方式では、埋め込みの影響がコンテンツ品質に大きな影響を与えないように埋め込み強度が設定される。その上で、埋め込みに用いる擬似乱数列が符号語に対応する。
標本値空間と周波数空間の間の直交変換は線形写像なので、攻撃対象の電子透かし方式が空間領域利用型であれ周波数領域利用型であれ、Ergun等の結託攻撃は擬似乱数列を平均化して、さらに擾乱を与えるという操作となる。
スペクトラム拡散による電子透かし方式では、符号語である擬似乱数列は相互相関(cross-correlation)がほとんどゼロとなるように選択されることが普通である。従って、k個のコンテンツの平均によって得られるコンテンツは、ある結託者に対応する擬似乱数列との相関が1/kに減衰すると考えられる。擬似乱数列間の相互相関が十分小さく、かつ、このkがあまり大きくなければ、電子透かしの検出において相関値があるあらかじめ定められた閾値を越えるため、結託者を特定することが可能である。
前述した文献[1]の方式は、検出においてオリジナルコンテンツを利用することを前提としており、相関値の代わりに類似度(similarity)と呼ばれる量を用いて検出が行われる。類似度は、検出対象コンテンツからオリジナルコンテンツを引いた差分と埋め込みに用いた擬似乱数列の間の相互相関値を差分の自己相関値の平方根で正規化したものである。
類似度による検出では、結託攻撃における平均化によって、分子の相関値が1/kに減衰するが、分母の差分のノルムも1/kに減衰するため、類似度は減衰しないことが期待される。ただし、平均化以外にノイズが加わる場合には、そのノイズの影響は正規化によってかえって大きくなる。
文献[10] Kilian, Joe, F.Thomas Leighton, Lesley R. Matheson, Talal G. Shamoon, Robert E. Tarjan, and Francis Zane, “Resistance of Digital Watermarks to Collusive Attacks”, Technical Report TR-585-98, Department of Computer Science, Princeton University, 1998.では、統計的な議論によって文献[1]の電子透かし方式が何人までの結託者による結託攻撃に対する耐性を持っているかという理論的考察を行っている。疑似乱数系列はガウシアンノイズを仮定し、結託攻撃は結託者の持つコンテンツからオリジナルコンテンツを統計的に推定することで行うと仮定する。その結果、現実的なパラメータ設定で、数名から十数名の結託者に対する耐性を実現することが可能であるという結論が得られている。
また、電子透かしの応用形態によっては、オリジナルコンテンツを用いた検出が行えず、検出対象コンテンツのみから検出を行う必要がある場合がある。その場合には、類似度による検出は行えない。この場合には、許容される結託者の数はさらに小さくなると考えられる。
ところで、文献[1]や文献[10]での議論は、すべて、符号語である擬似乱数列の間の相互相関が十分小さいという前提に基づいている。しかし、一般に擬似乱数列の数が増えてくると、仮にそれをランダムに選択したとしても、偶然に大きな相互相関値を持つ対が生ずる可能性が高くなってくると思われる。
いったい、どの程度多くの擬似乱数系列が任意の対の間で相互相関値を小さくできるのか、また、そのような性質を持つ擬似乱数列をどのように選択すれば良いのか、そして、そのようにして選択された擬似乱数列を符号語として、どのような電子透かし方式を実現すれば、結託攻撃に強い方式となるのかが未解決の問題として残されている。
この問題も、先に[結託攻撃耐性]の項で述べた文献[9]での限界を意識した上で、結託攻撃に対する耐性の高さとコンテンツの品質への影響の小ささを適切に両立させた符号化による電子透かし方式をどう実現させるかという問題の一つと考えられる。
相互相関の小さな2値の擬似ランダムビット列を生成する方法として、M系列を利用する方法が知られている。M系列は、線形フィードバックシフトレジスタ(LFSR)の出力として得られる系列のうち、LFSRがGF(2)の原始多項式の係数に対応するタップを持つ場合に生成されるものである。M系列中の1と0をそれぞれ+1と−1に置き換えると、PN系列となる。M系列は、0の出現頻度が1の出現頻度がほぼ等しく(1の出現頻度が一回少ない)、その間の相互相関関数は0のとき値1、0以外のとき−1/Lとなる。ここで、Lは系列の周期で、レジスタの段数をnとすると、L=2n−1である。
M系列から得られたPN系列を巡回シフトして得られる系列を符号語として採用すれば、相互相関の小さな符号語が得られる。これらの符号語を電子透かしの埋め込みの際の擬似乱数系列として用いれば良い。この乱数系列は、空間領域利用型と周波数領域利用型の両方のスペクトラム拡散による電子透かしに利用できる。
周波数領域利用型のスペクトラム拡散の電子透かし方式では、普通、N(0,1)に従うガウシアンノイズを符号語とする。相互相関が小さな符号語を複数構成するには、逐次乱数列を生成し、それが、それまでに生成したすべての乱数列との相関が小さいことを確認し、仮に、大きな相互相関値を持つ場合には、その乱数列は符号語として採用しないという方法をとる。
しかし、この方法では、新たに生成した乱数列がそれまでに生成した乱数列と小さな相互相関であるという保証がないため、せっかく生成した乱数列を捨てなければならないことがあるため処理が無駄である。特に、乱数列の数がある程度以上増えると、その確率は高くなる。
図1は、本発明の電子透かし埋め込み装置1と電子透かし検出装置2が適用されるシステムの例であるフィンガープリンティングシステムの概念図を示す。
画像や音声などの埋め込み対象コンテンツと利用者識別番号(以下、利用者識別番号を利用者IDという)が電子透かし埋め込み装置1に入力され、ここで得られた埋め込み済みコンテンツがこれを格納する記憶媒体を含む流通経路3を経て流通する。
前述した結託攻撃は、流通経路3において埋め込みコンテンツに対して行われる。このような結託攻撃に対抗するために、本発明に基づく電子透かし検出装置2では、結託の有無を示す結託判定信号、結託があった場合の結託者を特定する結託者ID(結託者の利用者ID)、及び結託がなかった場合の正規の利用者IDが生成される。
以下、本発明による電子透かし埋め込み装置及び電子透かし検出装置の実施形態について説明する。
(第1の実施形態)
本発明の第1の実施形態として、従来例よりも小さな符号サイズを持つε誤りのc-secure符号を埋め込み符号とする電子透かし埋め込み装置及び電子透かし検出装置について説明する。
図2(a)(b)は、本発明の第1の実施形態に係る電子透かし埋め込み装置及び電子透かし検出装置の概略構成を示している。図2(a)に示す電子透かし埋め込み装置は、埋め込むべき透かし情報である利用者IDの埋め込み符号を生成する埋め込み符号生成部11と、生成された埋め込み符号を埋め込み対象コンテンツに埋め込み、埋め込み済みコンテンツを得る符号埋め込み部12とから構成される。一方、図2(b)に示す電子透かし検出装置は、検出対象コンテンツ(例えば、埋め込み済みコンテンツ)から埋め込み符号を抽出する埋め込み符号抽出部13と、抽出された埋め込み符号を検出して復号する埋め込み符号検出部14とから構成される。
図3は、埋め込み符号生成部11の構成を示している。この埋め込み符号生成部11は、それぞれk′個の法記憶部21−1,21−2,…,21−k′、剰余計算部22−1,22−2,…,22−k′、成分符号生成部24−1,24−2,…,24−k′と、符号パラメータ記憶部23及び符号連接部25からなる。
法記憶部21−1,21−2,…,21−k′には、互いに素の関係にある整数、この例では相異なるk′個の素数pi(i=1,2,…,k′)が記憶されており、これらの素数piが剰余計算部22−1,22−2,…,22−k′に法として供給される。剰余計算部22−1,22−2,…,22−k′は、入力される利用者IDuに対して、素数piを法とする剰余ui=u mod pi(i=1,2,…,k′)をそれぞれ求める。すなわち、入力された利用者IDに対応した複数の整数要素の組として、剰余計算部22−1,22−2,…,22−k′により剰余ui=u mod pi(i=1,2,…,k′)が計算される。
成分符号生成部24−1,24−2,…,24−k′は、k′個の素数pi(i=1,2,…,k′)に対して、符号パラメータ記憶部23に記憶された符号パラメータtに従って剰余計算部22−1,22−2,…,22−k′により求められた剰余ui(i=1,2,…,k′)を表す前述したΓ0(n,d)符号からなる成分符号Γ0(pi,t)をそれぞれ生成する。すなわち、成分符号生成部24−1,24−2,…,24−k′では、所定個数(n)の利用者IDに対して剰余計算部22−1,22−2,…,22−k′で計算される全ての剰余ui(i=1,2,…,k′)の組を表現可能なk′個の成分符号のうちのk個の組み合わせが利用者IDを一意に表現できる成分符号Γ0(pi,t)を各剰余に対応して生成する。
符号連接部25は、成分符号生成部24−1,24−2,…,24−k′により生成された各成分符号Γ0(pi,t)を連接することによって、透かし情報である埋め込み符号を生成する。
図4に、成分符号生成部24−1,24−2,…,24−k′の一つ(24−i)の構成を示す。符号パラメータをt、剰余をui、法をpiとすると、減算部31ではpi−ui−1が求められる。“0”列生成部32では、符号パラメータtと剰余uiに基づきt×uiビットの連続した“0”列が生成され、“1”列生成部33では、符号パラメータtと減算部31からの出力pi−ui−1に基づきt×(pi−ui−1)ビットの連続した“1”列が生成される。そして、これらの“0”列と“1”列が連接部34で連接され、t×(pi−1)ビットのビット列がΓ0(n,d)符号からなる成分符号Γ0(pi,t)として生成される。
図5は、こうして生成される成分符号の一例を示している。0からn−1までのn個の利用者IDに対応して、B(0),…,B(n−2)のブロック“0”列からなる成分符号が割り当てられている。
図6に、図2(b)における埋め込み符号検出部14の構成を示す。この埋め込み符号検出部14は、検出対象コンテンツから図2(b)の埋め込み符号抽出部13で抽出された埋め込み符号を入力とする符号分割部41、成分符号復号部42−1,42−2,…,42−k′、利用者ID計算部43、結託判定部44−1,44−2,…,44−k′、結託判定OR部45及び結託者ID計算部46から構成されている。
検出対象コンテンツから埋め込み符号抽出部13により抽出された透かし情報である埋め込み符号は、符号分割部41により各成分符号に分割された後、成分符号復号部42−1,42−2,…,42−k′により復号されることにより、利用者IDに対応する剰余対が生成される。
こうして生成された各剰余対の一方の剰余から、利用者ID計算部43により利用者IDが計算で求められ、また各剰余対から結託判定部44−1,44−2,…,44−k′により結託の有無が判定される。結託判定部44−1,44−2,…,44−k′の判定結果について、結託判定OR部45で論理和がとられることにより、結託が存在したか否かが最終的に判定される。さらに、結託が存在すると判定されたときは各剰余対から結託者ID計算部46で結託者IDが計算され、結託者が特定される。
図7に、結託者ID計算部46の詳細な構成を示す。この結託者ID計算部46は、k′個の剰余対から各一つの剰余を選択する剰余選択部51、選択されたk′個の剰余のうちk個の剰余を選択する一貫性検査部52、及び一貫性検査部52で選択されたk個の剰余に対して中国剰余定理を適用して結託者ID候補を得る中国剰余定理部53からなる。
図8に、図7中の一貫性検査部52の内部構成を示す。中国剰余定理部53により得られた結託者ID候補は一貫性検査部52にフィードバックされ、k′個の剰余のうち残りの(k′−k)個の剰余との間の一貫性検査が行われて、最終的に結託者IDが求められる。図8の一貫性検査部52は、剰余の(k+z)組の生成部521と、剰余のz組と結託者ID候補の一貫性検査部522から構成される。その動作については、後に説明する。
本実施形態の電子透かし埋め込み装置及び電子透かし検出装置によると、利用者総数や結託者総数が大きい場合においても、コンテンツの品質劣化の少ない電子透かしが可能となる。以下、詳細に説明する。
利用者総数をnとし、結託者総数の最大値をcとする。一方、図3の法記憶部21−1,21−2,…,21−k′で用意されているk′個の素数p1,p2,…,pk′から任意のk個の素数を選んだとき、それらのk個の素数の積はn以上とする。例えば、この積はn≦p1×p2×…×pkである。
埋め込み符号生成部12では、各素数pi(i=1,2,…k′)に対して、図3の成分符号生成部24−1,24−2,…,24−k′により成分符号Γ0(pi,t)が生成される。これらの成分符号Γ0(pi,t)を符号連接部25により連接することによって、新たな符号Γ(p1,p2,…,pk′:n,t)が生成される。
ここで、各利用者の利用者IDをuとすると、その利用者IDuに対応する連接符号Γ(p1,p2,…,pk′:n,t)の符号語は、各成分符号Γ0(pi,t)がその利用者IDuに対する素数piを法とする、剰余計算部22−1,22−2,…,22−k′で計算された剰余u mod piを表す符号語となり、これが透かし情報(埋め込み符号)として埋め込み対象コンテンツに埋め込まれることになる。
このようにして得られた埋め込み済みコンテンツに対して結託攻撃が行われた場合、図6の電子透かし検出装置において、符号分割部41で分割された各成分符号Γ0(pi,t)を成分符号復号部42−1,42−2,…,42−k′で復号することによって、c人中のある2人の利用者IDのpiに関する剰余(residue)の対が得られる。これをpiに関する剰余対(residue pair)と呼ぶことにする。
また、piに関する剰余対中のある剰余がある利用者IDuを保有する結託者の剰余であるとき、その剰余は利用者IDuを保有する結託者に起因すると呼ぶことにする。このとき、この結託者を含めて結託者と同じ剰余の値を持つ利用者に関しては、その剰余はその利用者の利用者IDに起因する可能性があると呼ぶことにする。
(中国剰余定理(Chinese Remainder Theorem))
相異なるk個の素数p1,p2,…,pkが与えられたとき、各i(i=1,2,…,k)についてui∈Zpiが与えられると、ui≡u mod piであるu∈Zp1×Zp2×…×Zpkが一意に定まり、帰納的に計算できる。これが中国剰余定理である。
中国剰余定理を適用すると、図7に示すように中国剰余定理部53にk′個の素数のうちk個の素数に対応する剰余が与えられれば、それから利用者IDを一意に定めることができる。しかし、それらの剰余すべてが同一結託者の利用者IDに起因するとは限らないため、求めた利用者IDが結託者を正しく特定するとは限らない。
そこで、さらに余分にz個の剰余を用意し、(k+z)個の剰余の間の一貫性を検査することで、得られた利用者IDの正当性を検証する。言い換えると、(k+z)個の連立合同方程式の解の存在を確認する。例えば、k個の剰余から得られた利用者IDに対して、残りの剰余rk+1,…,rk+zに対応する整数pk+1,…,pk+zで除した余り(remainder)を求め、それらがそれぞれ剰余rk+1,…,rk+zに一致し、一致したか否かで結託者を判定することとする。
すなわち、図7の一貫性検査部52では図8に示すように、図7の剰余選択部51でk′個の剰余対から各一つ選択されたk′=c(k+z)/2個の剰余を剰余の(k+z)組の生成部521に入力し、これらk′個の剰余の中からk個の剰余を選択して中国剰余定理部53に引き渡す。さらに、一貫性検査部522により剰余のz組と結託者ID候補との一貫性検査を行って、結託者ID(結託者の利用者ID)を出力する。
結託者数が2人の場合については、この方法を比較的容易に実現できる(例えば、特願平10−108039,特願平10−122108)。ここでは、それを一般の結託者数に拡張する。
利用者総数をnとし、結託者の最大数をcとする。先の文献[13]によって導入されたε誤りを持つn-secure符号(cubic length n-secure code with ε-error)は、以下のように定義される。
(定義1) ((n−1)d,n)符号Γ
0(n,d)は、その符号語w
(0),…,w
(n-1)が次の条件を満たす符号と定義する。
ここで、w(i)|Bjは符号語w(i)をビット位置の集合Bj に制限したものである。集合Bi, i=0,…,n−2はブロック(blocks)と呼ばれ、d個のビット位置から構成される。異なるブロック間は共通部分を持たない(i≠jに対してBi∩Bj=φ)。
すべての利用者に対して、シリアル番号のような形で順序をつけることができると仮定する。i番目の利用者に対して、符号語w(i)を割り当てるとする。さらに、利用者は自分に割り当てられたシリアル番号を知らされていないとする。
先の文献[12][14]によって導入されたε誤りを持つ線形n-secure符号(linear length n-secure code with ε-error)は、符号語は定義1で定義された符号と同一であるが、検出アルゴリズムが異なる。この符号は、結託者中で最大と最小のシリアル番号をもつ2人の結託者を特定することができる。符号サイズは、Θ(n)である。
(定理1) 以下の検出アルゴリズム1を符号Γ0(n,d)に適用するとする。d=log2(2/ε)ならば、この符号はε誤りを持ったn-secure符号である。
(検出アルゴリズム1)
(1)検出された符号x∈{0,1}zを入力する。ここで、z=(n−1)d、d=log(1/ε)とする。
(2)s=0からn−2まで、以下を実行する:
(2−1)もし、x|Bs≠{0}dならば中断する。
(3)t=n−2からSまで、以下を実行する:
(3−1)もし、x|Bt-1≠{0}dならば中断する。
(4)sとtを出力する。
次に、本発明に特有のアルゴリズム部分について説明する。
k,k′,zは、k′=c(k+z)/2を満足する正整数とする。p1,…,pk′は、互いに素の関係にある整数とする。pはp1,…,pk′のうち最小のものとする。また、p1,…,pk′のうち小さい方から選んだk個の積をn以上とする。これらの整数p1,…,pk′を以下では因数と呼ぶことにする。
これらの因数の平均値をpaveとする(pave=p1+…+pk′)/k′)。i=1,…,k′の各piに対応して、先の文献[13]のn-secure符号Γ0(pi,t)を構成要素の符号として用意する。
(定義2) ((pave−1)k′t,n)符号Γ(p1…,pk′;n,t)は、その符号語W(1),…,W(n)が次のように構成された符号であると定義する。
W(u)|Ci=w(u mod pi)∈Γ0(pi,t)
ここで、Ciは構成要素の符号Γ0(pi,t)に対応するビット位置の集合である。この符号をu番目の利用者に割り当てることにする。
埋め込み符号生成のための符号化アルゴリズムは、次の通りである。
(符号化アルゴリズム)
(1)利用者IDu∈{0,…,n−1}を入力する。
(2)i=1からk′まで以下を実行する:
(2−1)u mod piを計算し、符号語w(u mod pi)∈Γ0(pi,t)を生成する。
(3)生成された符号語を連接して、一つの符号語W(u)とする。
この符号化アルゴリズムにより生成された埋め込み符号の検出アルゴリズムとしては、先の検出アルゴリズム1を利用する。
(定義3) Γ(p1,…,pk′;n,t)の構成要素に対して、検出アルゴリズム1を適用することで、高々2つの整数ri (-),ri (+)∈Zpiを得る。ここで、0≦ri (-)≦ri (+)≦piである。
これらの整数ri (-),ri (+)∈ZpiをΓ0(pi,t)の剰余(residues)と呼ぶことにする。また、集合{ri (-),ri (+)}をΓ0(pi,t)の剰余対(residue pair)と呼ぶことにする。
(定義4) rをΓ0(pi,t)の剰余とする。結託者の集合の中にr≡u mod piを満たす結託者が存在する場合、剰余rはuに起因する(r arises from u)と呼ぶ。また、利用者が結託者であるか否かに関わらず、rがr≡u mod piを満足する場合、剰余rはuに起因する可能性がある(possibly arise from)と呼ぶ。
(定義5) m個の素数に対応する剰余の組(m-tuple of residues)の中の任意のk個の剰余に対して中国剰余定理を適用したとき、これらm個の剰余の組がすべて同一の利用者IDを与える場合、このような剰余の組を一貫している(consistent)と呼ぶことにする。
さらに、このような一貫している剰余の組の全ての剰余が、求められた結託者の利用者IDに起因している場合、この剰余の組は真に一貫している(truly consistent)と呼び、そうでない場合、この剰余の組は偽って一貫している(falsely consistent)と呼ぶことにする。このような偽って一貫している組の簡単な例を以下に挙げる。
(検出アルゴリズム2)
(1)検出された符号x∈{0,1}Lを入力する。ここで、L=(pave−1)k′tとする。
(2)xをk′個の制限x|Ci,i=1,…,k′個に分解する。
(3)i=1からk′まで以下を実行する:
(3−1)検出アルゴリズム1をx|Ciに適用する。
(4)全ての剰余のm組に対して以下を実行する:
(4−1)もし、剰余のm組が一貫しているならば、以下を実行する:
(4−2)その解を結託者として出力し中止する。
(5)結託者が検出されなかったと出力する。
(定理2) t≧log
2(4k′/ε)とする。以下の方程式が成立するとき、符号Γ(p1,…,pk′;n,t)はε誤りを持ったc-secure符号である。
このとき、符号サイズは、L=(pave−1)k′tで与えられる。
(補題1) 符号Γ(p1,…,pk′;n,t)のk′個の剰余対の中には、少なくとも2k′/c個の剰余を起因させている結託者が少なくとも1人存在する。
(補題1の証明) 符号Γ(p1,…,pk′;n,t)のk′個の剰余対に含まれる剰余は2k′個ある。平均すると、結託者1人あたり2k′/c個の剰余を起因させていることになる。従って、少なくとも1人の結託者は、2k′/c個以上の剰余を起因させている。
(補題1の一般化)
補題1は、各成分符号から検出できる整数要素(剰余)の個数qをq=2とした場合の例であるが、これをqを用いて一般化すると、次の通りとなる。
(一般化した補題1の証明)
符号Γ(p1,…,pk′;n,t)のk′個の剰余q対(対ではないが、ここでは便宜上、そう呼ぶことにする)に含まれる剰余は、qk′個ある。平均すると結託者1人あたり、qk′/c個の剰余を起因させていることになる。従って、少なくとも1人の結託者は、qk′/c個以上の剰余を起因させている。
ここで、結託者ID(結託者の利用者ID)の再構成と検定には、(k+z)個の剰余が必要なので、一般化した補題1の結果より、qk′/c≧k+zが成立する必要がある。左辺の因子q/cを右辺に移すと、条件式k′≧c(k+z)/qを得る。実際には、k′は整数であるので、k′≧[c(k+z)/q]である。
(補題2) t≧log2(2k′/ε)とする。符号Γ(p1,…,pk′;n,t)に対して先の検出アルゴリズム1を適用するとき、k′個の剰余対の検出誤り率(k′個の剰余対の中に、どの結託者にも起因しない剰余が含まれてしまう確率)は、ε以下である。
(補題2の証明) ある構成要素Γ0(pi,t)に対して検出アルゴリズム1を適用するときは、定理1よりt≧log2(2k′/ε)ならば、剰余対の検出誤り率はε/k′以下である。全部でk′個の構成要素が存在するので、全ての剰余対に対する検出誤り率はε以下である。
(補題3) ある一貫した剰余のm組が存在しており、これに別の因数pに対する剰余対からの剰余を加えて剰余の(m+1)組を構成するとき、この(m+1)組の剰余が偽に一貫している確率は、1−(1−1/p)c以下である。
(補題3の証明) 各剰余対は、全ての結託者の利用者IDに対するqを法とする剰余のうちの最大値と最小値により構成されている。利用者は自分の利用者IDを知らないので、結託が行われたとき、ある利用者IDが結託者のものである確率は、利用者IDによらず一様であると考えられる。従って、ある結託者の剰余がある値をとる確率は、等しく1/pである。
c人の結託者の剰余が全て一様に分布するとき、最大の剰余がある値c∈Z/pZをとる確率Pr[x]は、以下のように与えられる。なお、Z/pZは0以上、p未満の整数の集合である。
(補題4) 以下の条件が成り立つとき、偽に一貫している剰余の(k+z)組が存在する確率は次式に示すようにε以下である。
(補題4の証明) k′個の剰余対から剰余の(k+z)組を選択する組合せは、
k′C
k+z×2 k+z通りある。補題14から、剰余の(k+z)組が偽に一貫している確率は、(1−(1−1/p)
c)
zである。従って、全ての組合せにおいて、少なくとも1個の偽に一貫している剰余の(k+z)組が現れる確率は、次のような上限が与えられる。
補題1の条件式が成立するとき、確率PFはε以下である。
(定理2の証明) 潔白な利用者を誤って結託者であると検出する原因は、剰余対の検出誤りと、偽に一貫している剰余の組の選択の二つがある。それぞれの確率をε/2以下とするならば、検出誤り率はε以下となる。補題2と補題4より、上の上限の式を得る。
偽に一貫している剰余の組を排除する確率を最小の因数で下限を抑える代わりに、小さい方からz個の因数を用いて下限を抑えることで、式(4)に代えて次式(8)に示すような符号サイズのより小さな上限を得ることができる。
ここで、p1,…,pzはp1,…,pk′の中から選んだz個(ただし、p1<p2…<pzとする)であり、最も小さいものから順に選んだz個であってもよいし、k+z番目から小さい順に最も大きいk+z番目まで選んだz個であってもよいし、あるいは最も小さいものからk+z番目に小さいものまでの中から選んだz個であってもよい。また、pi(i=1,2,…,k′)はc個の利用者IDに対して剰余計算部で計算される各剰余(整数要素)のとりうる値であり、本実施形態では前述の法記憶部21−1,21−2,…,21−k′で用意されているk′個の素数である。
式(8)の意味について説明する。まず、式(8)の左辺は、検出が正しく結託者IDを特定する確率の下限を与えている。つまり、左辺の大括弧の肩に乗っている「べき」は、k′個の剰余対から(k+z)個の剰余を選択してくる場合の例である。その個々の選択に対して、結託者IDが正しいか否かの判定を正しく行う確率の加減が右辺全体の意味するところである。
ここで、式(8)左辺の大括弧の中身について詳しく説明する。上記の各選択では、結託者IDが正しいか否かを余分にz個の剰余によって検定している。大括弧の中のΠによる積の部分は、z個の検定すべてが、誤った結託者IDを正しいとしてしまう確率の上限を与えている。なぜなら、各検定が誤った結託者IDを正しいと判定してしまう確率の下限は、(補題3)において、与えている確率1−(1−1/p)cにおいて、各成分符号から検出できる整数要素(剰余)の個数pをその剰余に対応する因数で置き換えたものによって与えられる。
検定に用いられる剰余に対応するz個の因数は、最も小さな因数からなる組み合わせがp1,p2,…,pzの場合であって、この組み合わせが、誤った検定を行う確率の下限を最大にする組み合わせである。よって、Πによる積部分がz個の検定すべてが、誤った結託者IDを正しいとしてしまう確率の上限を与えていることになる。よって、式(8)は左辺であるところの正しい結託者IDを検出する確率の下限が右辺であるところの1−ε/2以上であるための条件式を意味していることになる。
このように本実施形態によると、前述した一般化した補題1によって与えられる条件式k′≧(k+z)/qを満たすように、より好ましくは式(8)を満足するように成分符号の数k′を規定することによって、結託攻撃への耐性を有し、かつ3人以上の結託者が改竄に関与した場合においても、正しい誤り率の評価に基づいて十分かつ適切な埋め込み符号を生成し、かつその埋め込み符号を正しく復号することができる。
次に、本実施形態における結託者を特定するアルゴリズムについて図9に示すフローチャートを用いて説明する。
結託者ID計算部46は、成分符号復号部42−1,42−2,…,42−k′が出力したk′個の剰余対を入力する(ステップS1)。剰余対は、まず剰余選択部51に入力される。剰余選択部51は、各剰余対から一方の剰余を選択し、k個の剰余の組(R1,R2,…,Rk′)を生成する(ステップS2)。
生成されたk′個の剰余の組は、一貫性検査部52に入力される。一貫性検査部52は、入力されたk′個の剰余の組から相異なるk個の剰余(S1,S2,…,Sk)を選択し(ステップS3)、中国剰余定理部53に渡す。
中国剰余定理部53は、中国剰余定理に従い結託者IDuを計算する(ステップS4)。この中国剰余定理の計算は、図10のフローチャートに示す処理の流れに従って行われる。計算された結託者IDuは、一貫性検査部52へ返される。
一貫性検査部52では、残りの(k′−k)個の剰余のうちの所定個数(z)の剰余との間に、Ri=u mod pi(i=i1,i2,…,iz)の関係が成立する場合があるか否かを判定する(ステップS5)。この関係が成立する場合、一貫性検査部52はuを結託者IDとして出力する(ステップS6)。この関係が成立しない場合には、この関係が成立するまで、ステップS3で入力されたk′個の剰余の組から新たな相異なるk個の剰余(S1,S2,…,Sk)を選択して中国剰余定理部53に渡す処理を行う。
ステップS7でk個の剰余(S1,S2,…,Sk)が最後の候補と判定されると、一貫性検査部52は剰余選択部51に対して新たなk′個の剰余の組を要求し(ステップS8)、ステップS5でRi=u mod pi(i1,i2,…,iz)の関係が成立するまでステップS3,S4,S7の処理を繰り返す。もし、ステップS7で新たなk個の剰余(S1,S2,…,Sk)の候補が存在しない場合には、結託者IDの特定に失敗したとする(ステップS9)。
最後に、図11に示すフローチャートを用いて本実施形態における埋め込み符号検出部14の処理の流れについて説明する。
検出対象コンテンツ(例えば埋め込み済みコンテンツ)が入力され(ステップS11)、この検出対象コンテンツから埋め込み符号が抽出されると(ステップS12)、符号分割部41及び部分復号部42−1,42−2,…,42−k′を介して得られた成分符号に基づいて、結託判定部44−1,44−2,…,44−k′により結託の有無が判定される(ステップS13)。
ここで、結託判定部44−1,44−2,…,44−k′のいずれでも結託が無いと判定されると、利用者ID計算部43により利用者IDが計算され(ステップS14)、この利用者IDが出力される(ステップS15)。
一方、ステップS13で結託判定部44−1,44−2,…,44−k′の少なくとも一つで結託が有ると判定されると、結託判定部45を介して結託存在信号が出力され(ステップS16)、かつ結託者ID計算部46で結託者IDが計算され(ステップS17)、この結託者IDが出力される(ステップS18)。
この場合、ステップS13での結託の有無の判定と、ステップS14での利用者IDの計算については、処理が簡単であり、高速に行うことができる。これに対して、ステップS17での結託者IDの計算には時間がかかるが、結託の有無の判定を先に行い、結託が有ったと判断された場合にのみ結託者IDの計算を行うことにより、無駄な計算を省略できる。
また、本発明の電子透かし検出装置を利用者機器に適用する場合には、結託の有無のみを判定し、その結果によって利用を中断させるなどの利用制御を行えばよいので、結託者の計算(特定)まで行う必要は必ずしもない。
このように本実施形態によると、埋め込むべき符号サイズを抑えつつ、利用者総数や結託者数が大きい場合についても、結託攻撃に対するロバスト性を持つことができる。
(第2の実施形態)
図12は、本発明の第2の実施形態における埋め込み符号生成部11の構成を示している。本実施形態の埋め込み符号生成部11では、図3に示した構成にコンテンツの利用者を特定する利用者特定情報に対して利用者IDを割り当てる利用者ID割り当て部26と、利用者IDと利用者ID割り当て部26により割り当てられた利用者IDとを対応付けて格納した利用者特定情報/利用者ID対応テーブル27が追加されている。
利用者ID割り当て部26では、入力された利用者特定情報に対して後述するように利用者IDの割り当てが行われ、この割り当てられた利用者IDが剰余計算部22−1〜22−k′に入力される。また、利用者特定情報/利用者ID対応テーブル27は、
図13に示されるように、利用者ID割り当て部26は利用者ID候補生成部261、利用者ID候補判定部262及び利用者ID決定部263から構成される。図14に示すフローチャートを用いて、図13の利用者ID割り当て部26の処理手順を説明する。
まず、利用者特定情報を入力する(ステップS21)。利用者特定情報は、個々の利用者に対応してユニークな識別情報であり、例えば利用者の氏名が用いられる。利用者特定情報に対応して、利用者ID候補生成部261において利用者ID候補を一つずつ生成する(ステップS22)。利用者ID候補としては、まだ割り当てられていない(使用されていない)IDが用いられる。
次に、各利用者ID候補について弱IDか否かの判定を利用者ID候補判定部262において順次行う(ステップS23)。弱IDとは、複数の利用者ID候補のうちで結託者IDでない、つまり無実(結託者でない)の利用者の利用者IDであるにも関わらず、結託者IDとして誤検出される可能性のより高い利用者IDであり、誤検出に弱いIDという意味から、このように呼ぶものとする。このステップS23の判定の結果、利用者ID候補が弱IDである場合は、ステップS22に戻って次の利用者ID候補を生成し、再びステップS23の判定を行う。
ステップS23の判定の結果、利用者ID候補が弱IDでなければ、つまり結託者IDとして誤検出される可能性のより低い利用者ID(これを誤検出に弱くないIDという意味で、非弱IDという)であれば、利用者ID候補決定部263においてその利用者ID候補をステップS21で入力された利用者特定情報に割り当てる利用者IDに決定する(ステップS24)。
図15に示すフローチャートを用いて、利用者ID候補が弱IDか非弱IDかを判定するステップS23の判定処理の具体的な手順を説明する。
まず、ステップS22で生成された利用者ID候補を一つずつシーケンシャルに入力し(ステップS31)、この利用者ID候補が結託者IDとして誤検出される確率(誤検出確率)を推定する(ステップS32)。この誤検出確率の推定は、例えば前述したp
i,k,k′,cといったパラメータを用いて次のようにして行われる。まず、
を定義する。ある利用者ID(uとする)が結託者IDとして誤検出される確率を概ね表す量として、次の評価値EEFを計算する。
ここで、u
p=u mod pとする。これ以外にも、ある利用者IDについて誤検出確率を近似する評価値が存在するならば、それを式(11)のEEPの代わりに用いることが可能である。例えば、次式(12)で表される評価値EEPを用いてもよい。
次に、ステップS32で推定された誤検出確率(例えば、式(11)または(12)のEEF)が所定の閾値を超えたか否かを調べ(ステップS33)、閾値を超える場合は、利用者ID候補が弱IDであると判定し(ステップS34)、また誤検出確率が閾値以下の場合は、利用者ID候補が非弱IDであると判定する(ステップS35)。
このようにして図12中に示した利用者ID割り当て部26では、入力された利用者特定情報に対して、複数の利用者ID候補の中から結託者IDとして誤検出されにくいID(非弱ID)が利用者IDとして割り当てられる。以後、こうして利用者ID割り当て部26で割り当てられた利用者IDに対して、第1の実施形態と同様に剰余計算部22−1〜22−k′、成分符号生成部24−1〜24−k′及び符号連接部25により順次処理が行われることによって、埋め込み符号が生成される。
言い換えれば、利用者ID割り当て部26においては、入力された利用者特定情報に対して、複数の利用者ID候補の中から結託者IDとして誤検出されやすい弱IDを利用者IDに割り当てないようにすることによって、誤検出の確率を小さくすることができる。仮に、弱IDが結託者IDとして検出されたとしても、それは結託者IDとして見なさないことにすればよい。
ところで、弱IDは埋め込み符号の符号長の決定に大きな影響を与える。電子透かし検出装置においてある利用者IDが検出されたとき、それがたとえ弱IDであったとしても誤検出確率をある許容される確率より小さくするためには、非常に多数の因数からなる因子基底(具体的には、法記憶部21−1,21−2,…,21−k′に記憶される互いに素の関係にある整数、例えば相異なるk′個の素数pi(i=1,2,…,k′))を用意する必要がある。しかし、弱IDを排除しない場合に、ある埋め込み符号がある誤検出確率を持つ場合、弱IDを利用者IDから排除することによって、より少数の因子からなる因子基底を持つ埋め込み符号によって同等の誤検出確率を実現できる。
このことは、次のように説明できる。ある利用者IDをuとし、このuが検出されるという事象をdetect(u)、uが弱IDであるという事象をweak(u)、uが結託者IDであるという事象をcollude(u)と表すことにする。このとき、
となる。これらのうち誤検出率に寄与するのは、式(14)右辺の第2項と第4項である。符号長を短くするには、誤検出率を低下させることなく、より小さな個数(k′)の因数によって結託者ID候補の検定を行うことができるような方法を採用すればよい。ここで、単純により小さな個数の因数によって結託者ID候補の検定を行う場合は、式(14)右辺の第4項の確率はさほど変化しないが、第2項の確率は大きく増加してしまい、誤検出確率が増加してしまう。
しかし、前述したように弱IDを予め利用者IDとして割り当てないように排除しておけば、式(14)右辺の第2項は誤検出確率には組み込まれない。後述する埋め込み符号検出部14において結託者ID候補の利用者IDリストを用意しておき、その利用者IDリストの中から同じIDを取り出していけば、やがて非弱IDが得られる確率が高いので、それを結託者IDと決定することにすれば、結果的に短い符号長の埋め込み符号を生成できることになる。
図16は、第2の実施形態における埋め込み符号検出部14の構成を示している。本実施形態では、第1の実施形態と同様に図6で説明した符号分割部41を経て成分符号復号部42−1,42−2,…,42−k′で得られた利用者IDに対応するk′個の剰余対が結託者ID計算部47に入力される。
結託者ID計算部47で計算された結託者IDは、結託者特定情報生成部49に入力され、この結託者特定情報生成部48において図12で説明した利用者特定情報/利用者ID対応テーブル27を参照して結託者特定情報が生成される。結託者ID計算部47は、図6中に示した結託者ID計算部46と異なり、利用者IDを以下のようにして計算する。
図17に示されるように、結託者ID計算部47は結託者ID候補生成部471、結託者ID候補判定部472及び結託者ID決定部473から構成される。以下、図18に示すフローチャートを用いて、図17の結託者ID計算部47の処理手順を説明する。
まず、結託者ID候補生成部471の処理について説明する。
成分符号復号部42−1,42−2,…,42−k′で得られたk′個の剰余対を入力する(ステップS41)。次に、既に使用されている全ての利用者IDをj(j=0〜n−1)として、まず、j=0に設定する(ステップS42)。次に、現在設定されているjが利用者IDの範囲を越えているか(j>n−1)否か(j≦n−1)を判定する(ステップS43)。jが利用者IDの範囲を越えている場合には、結託者IDの計算を終了する。
一方、jが結託者IDの範囲を越えていない場合には、その利用者ID(j)について、図18のステップS41で入力されたk′個の全ての剰余対に対して、いずれかの剰余(ri (+)またはri (-))に対するpiを法とする合同式j≡ri (±) mod p iを満足している場合の数xを計数する(ステップS44)。以下、この場合の数xを「合同式充足数」と呼ぶ。
次に、この合同式充足数(x)が所定の閾値y以上かどうかを調べる(ステップS45)。この閾値yの値は、検出誤りを小さくしたい場合には大きな値を、検出誤りが大きくて良い場合には大きな値をそれぞれ設定することができる。以下で説明するような、結託者ID候補に対して弱IDか否かによる判定を行う場合には、yとしてk+zよりも小さな値に設定した場合でも、検出誤りをε以下とできることがある。しかし、そのような判定を行わない場合には、yはk+z以上の値に設定しないと、検出誤りをε以下にできない。
合同式充足数xがこの閾値y以上の場合には、jは結託者ID候補であると決定する(ステップS46)。一方、xが閾値yより小さい場合には、後述するステップS49に進む。こうして生成された結託者ID候補が、結託者ID候補生成部471より出力される。
次に、結託者ID候補判定部472の処理について説明する。
結託者ID候補生成部471が生成した結託者ID候補は、弱IDであって、本当の結託者IDではない恐れがある。そこで、結託者ID候補判定部472は、こうして生成された結託者ID候補jが弱IDであるか否かを判定する(ステップS47)。弱IDとは、前述したように結託者IDでないにもかかわらず、結託者IDとして誤検出される可能性のより高い利用者IDである。一方、結託者IDとして誤検出される可能性のより低い利用者IDを非弱IDと呼ぶ。
最後に、結託者ID決定部473の処理について説明する。
結託者ID候補判定部472におけるステップS47の判定の結果、結託者ID候補が弱IDでなければ、つまり、結託者IDとして誤検出される可能性のより低い利用者IDであれば、結託者ID決定部473によって、その結託者ID候補を結託者IDに決定する(ステップS48)。
一方、ステップS47の判定の結果、結託者ID候補が弱IDである場合には、ステップS49に進む。
以上は、jの一つの値に対して行われる処理である。ステップS49では、次のjについて同様の処理を行うため、jを1だけ増加させる。その後、ステップS43に戻り、同様の処理を繰り返す。従って、図19の結託者ID候補生成処理は、すべての利用者IDに対して行われ、x≧yとなるjが全て結託者ID候補として求められる。
次に、図19に示すフローチャートを用いて、上記のようにして生成された結託者ID候補について弱IDか非弱IDかを判定する図18のステップS47の判定処理の具体的な手順について説明する。
この判定処理は、基本的に図12に示した埋め込み符号生成部11において利用者ID割り当て部26における図13の利用者ID候補判定部262の図15で示した判定処理と同様であり、判定の対象が利用者ID候補から結託者ID候補に置き換わっただけである。
すなわち、まず図18のステップS46で決定された結託者ID候補を一つずつシーケンシャルに入力し(ステップS61)、これらの結託者ID候補が結託者IDとして誤検出される確率(誤検出確率)を推定する(ステップS62)。この誤検出確率の推定は、例えば先の式(9)(10)を定義し、ある利用者ID(u)が結託者IDとして誤検出される確率を概ね表す量として、式(11)または式(12)の評価値EEFを計算することによって行う。次に、ステップS62で推定された誤検出確率(例えば、式(11)または(12)のEEF)が所定の閾値を超えたか否かを調べ(ステップS63)、閾値を超える場合は、結託者ID候補が弱IDであると判定し(ステップS64)、また誤検出確率が閾値以下の場合は、結託者ID候補が非弱IDであると判定する(ステップS65)。
図20は、本実施形態において各パラメータがL=7.34×106、c=32、EEF=0.000001、k=2、p0=512、z=11、k′=208、n=2.63×105の場合に、実際の結託者IDに対して検出される結託者IDと、先の合同式充足数(x)と、検出結果の正誤(1が正検出、0が誤検出)を示している。
この例では、k+z=13であるので、第1の実施形態では実際の結託者IDのうちID=47824だけが結託者IDとして検出される。これに対し、本実施形態では実際の結託者IDのうち、それが非弱IDであって、かつ充足式数xが比較的多いIDは正しく結託者IDとして検出される。図20の例では、結託者IDのうち例えば3桁を超えるIDを非弱IDとすれば、これらの非弱IDのうち充足式数xが10以上のものは、全て結託者IDとして検出される。
図21は、本実施形態においてパラメータL、c、EEF、k、p0、z、k′及びnのうち結託者数c以外は図20と同じにし、c=64とした場合に、実際の結託者IDに対して検出される結託者IDと、先の合同式充足数(x)と、検出結果の正誤(1が正検出、0が誤検出)を示している。結託者数cが図20の場合の2倍となっているので、第1の実施形態では結託者IDを検出することはできない。これに対し、図21の例では、結託者IDのうち例えば5桁以上のIDを非弱IDとすれば、これらの非弱IDのうち充足式数xが6以上のものは、全て結託者IDとして検出される。
このように本実施形態によると、以下の効果を得ることができる。
(1)より大きな結託者数cに対しても、結託者数を特定できる。言い換えれば、想定する最大の結託者数が同じならば、第1の実施形態に比較してより短い符号長の埋め込み符号を実現することができる。
(2)複数の結託者IDを特定できる。
(3)埋め込み符号に結託攻撃以外のノイズ(例えば、ランダムノイズ)が加わっても、結託者を特定できる。
ここで、(1)(2)は前述した通りであるが、(3)の効果について補足すると次の通りである。埋め込み符号(透かし情報)に例えばコンテンツ全体にわたってランダムなノイズが加わると、成分符号の復号時に誤った剰余を出力する符号が生じることがある。このようなランダムノイズによる誤り率がある程度までならば、正しい剰余対の数の方が圧倒的に多い。従って、上述した合同式充足数は、誤った結託者ID候補よりも正しい結託者ID候補の方が大きいため、結託者IDの誤検出率は小さいことになる。
(第3の実施形態)
図22に、本発明の第3の実施形態における埋め込み符号生成部11の構成を示す。本実施形態の埋め込み符号生成部11では、図3に示した構成にデータベース参照部28及び非弱IDデータベース29が追加されている。
非弱IDデータベース29は、全ての利用者ID候補のうち非弱IDを格納している。この非弱データベース29に格納される非弱IDは、第2の実施形態の利用者ID候補判定部262における判定方法と同様の方法、例えば図15で説明したアルゴリズムによって全ての利用者ID候補について弱IDか非弱IDかの判定を行うことによって得られる。
データベース参照部28は、利用者特定情報が入力されると、この利用者特定情報に対応して非弱IDデータベース29内の一つの非弱IDを利用者IDとして割り当て、その非弱ID(利用者ID)を出力する。この利用者IDに対して、第1及び第2の実施形態と同様に剰余計算部22−1〜22−k′、成分符号生成部24−1〜24−k′及び符号連接部25により順次処理が行われることによって、埋め込み符号が生成される。
非弱IDデータベース29には、データベース参照部28で利用者特定情報にどの非弱IDを割り当てたかを示す情報が併せて格納される。すなわち、非弱IDデータベース29に格納される非弱IDのうち、既に利用者特定情報に対して利用者IDとして割り当てられた非弱IDには、対応する利用者特定情報が対応付けて格納される。これにより以後に入力される利用者特定情報には、既に他の利用者特定情報に対して割り当てが行われた非弱IDは割り当てられない。
このように本実施形態の埋め込み符号生成部11によると、非弱ID、すなわち全ての利用者IDのうちで結託者IDとして誤検出される可能性の低い利用者IDを予め求めて、これらを非弱IDデータベース29に格納しておき、この非弱IDデータベース29を参照して利用者特定情報に対する利用者IDの割り当てを行うため、第2の実施形態と同様の利用者ID割り当て処理を少ない処理量で、短時間に実現することができる。
図23は、本実施形態における埋め込み符号検出部14の構成を示している。本実施形態の埋め込み符号検出部14は、図16に示した利用者特定情報/利用者ID対応テーブル27と結託者特定情報生成部48に代えて、非弱IDデータベース29とデータベース参照部49が追加されている。
非弱IDデータベース29は、図22で説明した通りであり、非弱IDと利用者特定情報を対応付けて格納している。データベース参照部49は、結託者ID候補生成部47から結託者ID候補が入力されると、非弱IDデータベース29に格納されている非弱IDのうち、結託者ID候補のいずれかに合致する非弱IDを結託者IDと決定し、その非弱IDに対応する利用者特定情報を非弱IDデータベース29から読み出して、これを結託者特定情報として出力する。
本実施形態の埋め込み符号検出部14によると、非弱ID、すなわち全ての利用者IDのうちで結託者IDとして誤検出される可能性の低い利用者IDを予め求めて、これらを非弱IDデータベース29に格納しておき、この非弱IDデータベース29を参照して結託者IDの計算と結託者IDに対応する利用者特定情報の算出を行うため、第2の実施形態と同様の結託者ID計算の処理を少ない処理量で、短時間に実現することができる。
ここでは、非弱IDを弱IDと判別するために非弱IDデータベース29を用いたが、回路やプログラムとして弱IDと非弱IDとの判別を行うようにしてもよい。特に、結託者IDが分かればそれから結託者を特定することが本発明以外の手段により可能である場合には、単に弱IDの排除のみを行えばよい。
(第4の実施形態)
次に、本発明の第4の実施形態として、ある条件の下で実現できる、第2の実施形態よりも短い符号サイズのc-secure符号による電子透かし埋め込み装置及び検出装置について説明する。
図24は、本実施形態に係る電子透かし埋め込み装置における埋め込み符号生成部の構成を示すブロック図である。この埋め込み符号生成部は、利用者IDを入力して同値類に基づく成分符号を生成する成分符号生成部61−1,61−2,…,61−k′と、これらの各成分符号を一つの符号に連接することによって、透かし情報である埋め込み符号を生成する符号連接部62からなる。
図25に、図24に示した同値類に基づく成分符号生成部61−1,61−2,…,61−k′の一つ(61−i)の構成を示す。以下、Z/pZ={0,1,2,…,p−1}とする。成分符号生成部61−iは、(Z/pZ)k内対応点計算部611と同値類要素番号計算部612及び成分符号生成部613によって構成される。
Zpk内対応点計算部611は、利用者IDを入力して、対応するZpk内の点を出力する。利用者IDID(u)と(Z/pZ)k内の点(u0,u1,u2,…,up-1)との対応付けは、例えば、u=u0+u1p+…+uk-1 pk-1によって行う。ある集合Uの要素に間に同値関係Rがあるとき、その同値関係Rによってある要素uと同値なもの全体の集合をその要素uの同値類と呼ぶ。Uの同値関係Rに関する同値類全体からなる集合をU/Rで表し、UのRに関する同値類という。(Z/pZ)kの要素の間にある平行移動Tによって、同値関係RTが定義できる。そして、この同値関係RTに関する同値類が定義できる。
一つの同値類に属する要素に対して、0からpk-1−1まで番号(これを同値類要素番号と呼ぶことにする)を割り振ることができる。同値類要素番号計算部612は、この同値類番号を計算して部分IDとして出力する。すなわち、本実施形態では入力された利用者IDに対する整数要素の組として、同値類要素番号計算部612により同値類要素番号が計算される。成分符号生成部613は、同値類要素番号計算部612で計算された部分IDから成分符号を生成する。
図26は、平行移動による同値類の例を示す図である。これはp=7,k=2の例である。平行移動(1,6)と平行移動(3,4)は、斜線部で示される格子によって構成されている同じ同値類を定義していることが分かる。
図27は、図26のp×pの格子を周期的に繰り返したとき、同値類がどのように表されるかを示す図である。平行移動による同値関係によって定義される同値類であって、(0,0)の格子を含む同値類は、ある傾きを持った直線上に乗っていることが分かる。図28は、図26をk=3に拡張した場合の例を示す図である。同様にして、任意の正整数kに対して平行移動による同値関係によって同値類を定義することができる。
一つの同値類に含まれる元の個数は、p個である。順序番号(同値類内要素番号)は、このp個の元に対して与えられる。
一方、商集合の要素の個数(=同値類の個数)はpk/p=pk−1である。従って、順序番号を指定すると、pk−1個の元が指定されることになる。この順序番号が部分IDとして成分符号によって符号化されることになる。
ここで、同値類要素番号計算部612での同値類要素番号(部分ID)の割当て方法について述べる。この割当て方法として、次の2通りが考えられる。
(割当て方法1) 同値関係RAに関する同値類に対して割り当てた番号である同値類番号を用いる方法であり、0からpk-1−1までの番号が割り当てられる。
(割当て方法2) 同値類の要素に対して割り当てた番号を用いる方法であり、0からp−1までの番号が割り当てられる。
これらのうち割当て方法2がより好ましい。この割当て方法1を採用した場合には、第2の実施形態と同様の議論が展開できるため、先の式(6)が成立する。つまり、式(6)と後述する式(22)の両者を満足するような符号を採用すれば良い。この割当て方法2の例を挙げる。平行移動A
i=(a
i,0,a
i,1,…,a
i,k-1)による同値類の場合、u=(u
0,…,u
k-1)は、同値類要素番号(部分ID)として次式が割り当てられる。
図29に、本実施形態に係る電子透かし検出装置における埋め込み符号検出部の構成を示す。この埋め込み符号検出部は、符号分割部71、同値類に基づく成分符号復号部72−1,72−2,…,72−k′及び結託者ID計算部73から構成されている。
図示しない埋め込み符号抽出部により、入力された検出対象コンテンツ(埋め込み済みコンテンツ)から透かし情報(埋め込み符号)が抽出され、この抽出された透かし情報である埋め込み符号が符号分割部71により各成分符号に分割された後、同値類に基づく成分符号復号部72−1,72−2,…,72−k′により復号されることにより、利用者IDに対応する同値類要素番号の対が生成される。こうして生成された各同値類要素番号の対から、結託者ID計算部73で結託者IDが計算され、結託者が特定される。
なお、第1、第2の実施形態と同様に、同値類要素番号の対の一方から利用者ID計算部により利用者IDを求め、また各同値類要素番号の対から結託判定部により結託の有無を判定し、その結託判定部判定結果について、結託判定OR部で論理和をとることにより、結託が存在したか否かを最終的に判定して、結託が存在すると判定されたときに結託者ID計算部73で結託者IDを計算する構成としてもよい。
図30は、同値類に基づく成分符号復号部72−1,72−2,…,72−k′の一つ(72−i)の構成を示している。同値類に基づく部分復号部72−iは、後述するランダム誤りを許容する検出アルゴリズム3に基づくものであり、ブロック分割部720、“1”ビット計数部721、“>t0”判定部722、“<d−t0”判定部723、最小位置決定部724及び最大位置決定部725から構成される。
ブロック分割部720は、入力された成分符号を各ブロックへ制限したものに分割して分割結果をそれぞれ“1”ビット計数部721へ出力する。“1”ビット計数部721は、“1”が立っているビットの数を計数して、その計数値を“>t0”判定部722及び“<d−t0”判定部723へそれぞれ出力する。
“>t0”判定部722は、入力が第1の閾値t0より大きいか否かを判定し、真ならば1、偽ならば0をそれぞれ出力する。“<d−t0”判定部723は、入力が第2の閾値d−t0より小さいか否かを判定し、真ならば1、偽ならば0をそれぞれ出力する。
最小位置決定部724は、“>t0”判定部722からの入力ビットの組のうち1が立っている最小のビット番号を出力する。最大位置決定部725は、“<d−t0”判定部723からの入力ビットの組のうち1が立っている最大のビット番号を出力する。
ここで、図29の電子透かし検出装置において埋め込み符号である透かし情報の復号時に誤りが生ずる可能性がある場合について説明する。埋め込み符号の復号時に誤りがある場合には、誤った利用者を結託者と特定するおそれがある。この誤りを防ぐには2通りの方法がある。
(方法1) 電子透かし埋め込み装置において、埋め込み符号に対して誤り訂正符号化を行ってから埋め込みを行い、電子透かし検出装置において検出された符号に対して誤り訂正復号を行う。
(方法2) 図29の成分符号復号部72−1,72−2,…,72−k′に誤りを許容する性質を持たせる。
本実施形態では、(方法2)を採用する。抽出された埋め込み符号には誤り確率のランダムな誤りが加わっていると仮定する。第2の実施形態で述べた検出アルゴリズム1に改良を加えた以下のような検出アルゴリズム3を用いることで、誤りを許容する。
(検出アルゴリズム3)
(1)検出された符号x∈{0,1}lを入力する。ここで、z=(n−1)dとする。
(2)s=0からn−2まで、以下を実行する:
(2−1)もし、weight(x|Bs)>0ならば、中断する。
(3)t=n−2からsまで、以下を実行する:
(3−1)もし、weight(x|Bt)<d−t0ならば、中断する。
(4)sとtを出力する。
ここでt0は、この検出アルゴリズム3の誤りに対する許容性を表すパラメータである。
次に、結託による埋め込み符号の改竄があったことを判定する閾値として、新たなパラメータを加える意味について説明する。
埋め込み符号のうち、結託によっては改竄んが行われなかったブロックに対して、結託以外の原因でランダムな誤りが発生した場合、t
0+1ビット以上の反転が生ずる確率は、次式で与えられる。
一方、結託によって改竄が行われたブロックに対して、結託以外の原因でランダムな誤りが加法的に加わった場合、t
0ビット以下の反転が生ずる確率は、次式より小さい。
ランダム誤りのために埋め込み符号を誤って検出をしてしまう確率は、少なくとも一つのブロックにおいて誤った検出をする確率以下であり、この確率は、
ε3=1−(1−ε1)n-1(1−ε2)2<(n−1)ε1+2ε2
で表される。図31に示すようにt0を適当に選択することで、加法的にランダムな誤りが加わった場合にも、検出誤りを小さく設定できる。
図30に示した成分符号復号部72−iは、上述したようなランダム誤りを許容する先の検出アルゴリズム3に基づく処理を行う。
図32に、結託者ID計算部74の構成を示す。結託者ID計算部74は、同値類選択部81、一貫性検査部82及び候補ID計算部83から構成される。
同値類要素選択部81は、k′個の同値類要素番号の対の各々から一方の同値類番号を選択して一貫性検査部82へ出力し、一貫性検査部82から次候補の要求を受けると、同値類要素番号の新たな組を選択する。
一貫性検査部82は、k′個の組から(k+1)個の組を選択し、その同値類要素番号の組が真に一貫しているか否かを検査する。この検査は、(k+1)個のうちk個の同値類要素番号を候補ID計算部83に渡し、返された候補IDが残りの同値類要素番号の示す同値類番号と矛盾していないか否かを判定することにより行われる。残りの個のすべての同値類番号に対して、この判定が矛盾していないという結果ならば、この候補IDを結託者IDとして出力し、そうでない場合には、次候補を一貫性検査部82に要求する。
ここで、図32中の候補ID計算部83においてk個の同値類要素番号から結託者IDを再構成する方法を示す。例えば、k個の平行移動A
i(0),…,A
i(k-1)に対して、同値類要素番号がr
0,…,r
k-1で与えられた場合、次式の連立合同方程式が成り立つ。
k次正方行列(a
i(v),j)が正則ならば、逆行列(a
-1 j,i(v))が存在する。この場合、次式によって利用者IDが得られる。
一般には、正則性が満たされるとは限らない。正則性が満足されない場合には、利用者IDは一意に決まらず、結託者IDを含む利用者IDの集合が得られる。この集合は、pのべき乗の大きさを持つ。正則性を満たさない成分符号の組はあらかじめ分かっているので、結託者IDの候補の計算には、選択しないような構成もできる。
図32中の一貫性検査部82は、こうして得られた結託者IDの候補(を含む集合に対して)と、さらにz個の同値類要素番号r
k,…,r
k+z-1との間の一貫性を検証する。それは、v=0,…,z−1に対して、次式が成立することを確認することで行われる。
本実施形態によると、第1、第2の実施形態と同様に結託攻撃への耐性を有し、かつ3人以上の結託者が改竄に関与した場合においても、正しい誤り率の評価に基づいて十分かつ適切な埋め込み符号を生成し、かつその埋め込み符号を正しく復号することが可能となる。以下、詳細に説明する。
まず、pを正整数とする。すなわち、本実施形態では第2の実施形態におけるpi(i=1,2,…,k′)(所定個数nの利用者IDに対して計算される剰余の値の個数)に相当する個数(所定個数nの利用者IDに対して計算される整数要素の値の個数)を同一の正整数pとしている。そして、利用者IDuをu=u0+u1p+…uk-1pk-1に従って、(u0,u1,…,uk-1)∈(Z/pZ)kで表現する。また、k′=c(k+z)/2とし、pk≧nとする。
空間Zp kの平行移動A≡(a0,a1,…,ak-1)に関する同値関係RAを以下のように定義する。
RA((u0,u1,…,uk-1),((u0′,u1′,…,uk-1′))
←→ u0′≡u0+a0 mod p,
u1′≡u1+a1 mod p…,
uk-1′≡uk-1+ak-1 mod p
jA−(ja0 mod p,ja1 mod p,…,jak-1 mod p)とすると、jがgcd(j,p)=1を満たすときには、RAとRjAとは同じ同値関係を与える。
利用者全体の集合をU=(Z/pZ)kの同値関係RAに関する商集合U/RAが定義できる。この商集合の個々の元は同値類と呼ばれ、同値関係RAによって同一視された元の集合である。すべての同値類に対して、それに含まれる元に順序番号を与えることにより、ある番号を指定することで、各同値類から1個ずつ元を選択できる。
k′(k′≧k)個の平行移動A0,…,Ak’-1を用意すると、それぞれに対して商集合Qi=U/RAi(i=0,…,k′−1)が定義される。各商集合に対して、上に述べた順序番号を定義する。
次に、k′個の商集合中の任意のk個の商集合のそれぞれに対して、順序番号を指定することで、利用者を一意に特定できるような商集合の組を構成するために、以下のような条件を仮定する。
(条件1) 商集合の大きさを等しいとする。すべてのAi=(ai,0,…,ai,k-1)(i=0,…,k′−1)において、すべてのai,m(m=0,…,k−1)に対して、gcd(ai,m,p)=1またはai,m=0であるとする。これにより、jAi=(0 mod p,…,0 mod p)を満たす最小の正整数jはpとなる。
(条件2) 2つの平行移動Ai,Ai′に対して、jAi=j′Ai′が成立する正整数j<p,j′<pが存在しない。
pが素数の場合、このような条件を満たす平行移動の個数は、次のように数え上げることができる。
まず、(条件1)より各平行移動の成分の値がpと互いに素の関係にある場合の数は、φ(p)=p−1で表される。ここで、φはオイラー関数である。これに0である場合を加えて、各成分がとりうる値の場合の数は、pである。従って、平行移動として許される場合の数は、(pk−1)個である。ここで、−1は、(0,0,…,0)を除外したことによる。ところが、これらの中には(p−1)個ずつ互いに他の整数倍(1倍、2倍、…、(p−1)倍)となっているものがある。従って、実際に、相異なる商集合を定義する平行移動として独立なものは、(pk−1)/(p−1)個となる。
また、(条件2)に関しては、仮にある2つの平行移動A
i,A
i′が(条件2)の制約を満たさないとする。つまり、正整数j<p,j′<pに対してjA
i=j′A
i′とすると、pが素数の場合には、これは互いに他の整数倍で表現できることを意味する。よって、(条件1)に対して数え上げた独立な平行移動は、そのまま(条件2)を満足する。
平行移動の組は、次のように具体的に構成できる。
pが素数でない場合についても、(条件1)(条件2)を満足するように平行移動を選択すれば、同様の構成が可能である。
上述したような平行移動の組によって商集合を構成し、各商集合の同値類の元に順序番号を定義することで、中国剰余定理に基づく符号の場合と同様の符号を構成できる。この符号が誤りεを持つc-secure符号となるためには、定理2が成立することに加えて、以下の条件が満たされなければならない。
この場合、全ての因数は同じ大きさのpであるので、pave=pである。
このように本実施形態によると、成分符号として式(21)で示されるような平行移動によって定義される同値類に基づく符号を生成して、この成分符号を連接することで、第1、第2の実施形態よりも短い符号サイズのc-secure符号による埋め込み符号を生成し、その埋め込み符号を検出する場合において、第2の実施形態で規定した条件式k′≧c(k+z)/qや式(8)の条件に加え、さらに式(22)の条件を満足するようにすることによって、結託攻撃への耐性を有し、かつ3人以上の結託者が改竄に関与した場合においても、正しい誤り率の評価に基づいて十分かつ適切な埋め込み符号を生成し、かつその埋め込み符号を正しく復号することができる。
(第5の実施形態)
次に、本発明の第5の実施形態として、埋め込み済みコンテンツの品質への影響を小さく抑えるように、従来よりも最適な符号化が行われる電子透かし埋め込み装置及び検出装置について説明する。
図33に、本実施形態に係る電子透かし埋め込み装置の構成を示す。この電子透かし埋め込み装置は、シンプレックス符号生成部91、符号語選択部92及び電子透かし埋め込み部93から構成されている。
シンプレックス符号とは、符号長n−1、符号語数nで、符号語間の相互相関が−1/(n−1)となる符号であり、n次のアダマール(Hadamard)行列を基に構成することができる。すなわち、符号語がn−1次元ユークリッド空間中のn−1次元単体の頂点に位置するような符号がシンプレックス符号である。例えば、3次元ユークリッド空間の場合は、図34に示すように(-1,-1,1),(1,-1,-1),(-1,1,-1)で示す3つの頂点に位置する符号がシンプレックス符号を構成する。
シンプレックス符号生成部91では、このようなシンプレックス符号の符号語を生成する。シンプレックス符号生成部91は、あらかじめ生成された符号語の表を記憶したものであってもよい。符号語選択部92は、生成されたシンプレックス符号に順番を割り振っておき、与えられた利用者IDに対応する符号語を選択して出力する。なお、シンプレックス符号生成部91及び符号語選択部92の部分は、利用者IDが入力されてから、利用者IDに対応するシンプレックス符号の符号語を生成して出力するように構成されていてもよい。
電子透かし埋め込み部93は、符号語選択部92より受け取った符号語を透かし情報として埋め込み対象コンテンツに埋め込む。埋め込みは、スペクトラム拡散によって行う。
図35に、図33に示した電子透かし埋め込み装置に対応する本実施形態に係る電子透かし検出装置の構成を示す。この電子透かし検出装置は、シンプレックス符号生成部101、符号語選択部102、相関値計算部103及び相関値判定部104から構成されている。シンプレックス符号生成部101と符号語選択部102については、図33で説明した電子透かし埋め込み装置の中のそれと同一であるため、説明を省略する。
相関値計算部103では、入力された埋め込み済みコンテンツと入力された利用者IDに基づいて符号選択部102で選択された符号語との間の相関値を計算する。相関値判定部104では、相関値計算部103により計算された相関値がある閾値を超えているか否かによって、符号選択部102からの符号語が埋め込み済みコンテンツに埋め込まれているか否かを判定し、検出/非検出信号を出力する。
このように本実施形態に係る電子透かし埋め込み/検出装置によれば、任意の対の間での相互相関値が小さくなるようなシンプレックス符号の符号語を擬似乱数系列として用い、これを透かし情報として埋め込んでいる。従って、透かし情報として別の利用者IDに対応する符号語が埋め込まれていると誤判定を行う確率は非常に小さくなる。
(第6の実施形態)
次に、本発明の第6の実施形態として、第5の実施形態の電子透かし検出装置を応用して結託攻撃に対する結託者特定機能を持たせた電子透かし検出装置ついて説明する。図36は、本実施形態に係る結託者特定機能に係る部分の構成を示している。
この電子透かし検出装置は、結託者特定機能を持たせるために、シンプレックス符号生成部111、符号語選択部112、相関値計算部113、利用者ID生成部114、相関値ベクトルノルム計算部115、電子透かし判定部116及び結託者判定部117を有する。シンプレックス符号生成部111、符号語選択部112及び相関値計算部113は、図35に示した電子透かし検出装置の中のそれと基本的に同じである。
利用者ID生成部114では、予め登録されたすべての利用者IDを生成する。符号語選択部112では、これらすべての利用者IDに対応するシンプレックス符号の符号語が選択され、これらの各符号語と図示しない埋め込み済みコンテンツとの相関値が相関値計算部113で計算される。
相関値ベクトルノルム計算部115では、すべての利用者IDに対して計算された相関値をベクトルとみなして、そのノルムを計算する。この相関値ベクトルノルムは、例えばすべての相関値の和とする。
電子透かし判定部116では、計算されたベクトルノルムに基づいて、例えば、このノルムがある閾値を超えるか否かにより、透かし情報が埋め込まれていたか否かを判定する。この判定の結果、透かし情報が埋め込まれていたと判断した場合には、結託者判定部117において相関値ベクトルの中で最も大きな値を示した利用者IDを保有する利用者を結託者として特定する。
また、結託者特定部117においては、このような方法の他、例えば相関値ベクトルがn−1次元単体の部分単体のうち、どの部分単体の重心を通るかを求め、その部分単体の頂点に対応する利用者IDを保有する利用者を結託者とすることで、複数の結託者を特定することもできる。
なお、第5乃至第6の実施形態において、透かし情報として用いる擬似乱数系列として、N(0,1)のガウシアンノイズを採用する場合には、図37に示すようにシンプレックス符号生成部121で生成されたシンプレックス符号を座標ランダム回転部122によりランダムに回転させて符号語とすればよい。
さらに、本発明に係る埋め込み符号生成装置は、電子透かし埋め込み装置のようにディジタルデータである埋め込み対象コンテンツの透かし情報として埋め込むための埋め込み符号のみでなく、例えば化学物質からなる合成物などに化学的に埋め込むための埋め込み符号を生成するような用途にも適用できる。その場合には、実質上その物質の構成を変化させても構わない複数の部分に対して、構成変化を施す部分を“1”、構成変化を施さない部分を“0”として、本発明に係る符号の符号語のビットを対応付けるようにする。