(57)【特許請求の範囲】
【請求項１】
電子データ化されたコンテンツ及び電子透かし情報を取得するインターフェース部と、
前記コンテンツに前記電子透かし情報を埋め込む処理部であって、
前記電子透かし情報を含む基準符号語を生成する符号語生成機能と、
前記電子透かし情報を前記コンテンツに繰り返し埋め込む際に、前記埋め込むごとに、ビットの入れ替え順序を規定する所定の入れ替え規則に従ったシフト量に応じて前記基準符号語に含まれる前記電子透かし情報のビット配列を入れ替えることにより、互いに異なる複数の修正符号語を生成するシフト機能と、
前記コンテンツに前記複数の修正符号語を埋め込む透かし重畳機能と、
を実現する処理部と、
を有する電子透かし埋め込み装置。
【請求項２】
前記所定の入れ替え規則は巡回シフトであり、
前記シフト機能は、前記コンテンツに前記電子透かし情報を埋め込むごとに求められる複数の乱数に従って前記シフト量を決定する、請求項１に記載の電子透かし埋め込み装置。
【請求項３】
前記符号語生成機能は、前記電子透かし情報に、前記コンテンツ中の前記複数の修正符号語のそれぞれの位置を特定するために用いられる位置検出符号と前記複数の修正符号語のそれぞれに対応する前記シフト量を特定するために用いられるシフト量検出符号とを付加することにより前記基準符号語を生成する、請求項１または２に記載の電子透かし埋め込み装置。
【請求項４】
電子データ化されたコンテンツに電子透かし情報を埋め込むことをコンピュータに実行させる電子透かし埋め込み用コンピュータプログラムであって、
前記電子透かし情報を含む基準符号語を生成し、
前記電子透かし情報を前記コンテンツに繰り返し埋め込む際に、前記埋め込むごとに、ビットの入れ替え順序を規定する所定の入れ替え規則に従ったシフト量に応じて前記基準符号語に含まれる前記電子透かし情報のビット配列を入れ替えることにより、互いに異なる複数の修正符号語を生成し、
前記コンテンツに前記複数の修正符号語を埋め込む、
ことをコンピュータに実行させる電子透かし埋め込み用コンピュータプログラム。
【請求項５】
電子透かし情報が埋め込まれた電子データ化されたコンテンツを取得するインターフェース部と、
前記コンテンツから前記電子透かし情報を検出する処理部であって、
前記コンテンツから、前記電子透かし情報のビット配列がビットの入れ替え順序を規定する所定の入れ替え規則に従った互いに異なるシフト量に応じて入れ替えられた複数の修正符号語を検出し、該複数の修正符号語を含む第１検出符号を生成する符号語検出機能と、
前記第１検出符号に基づいて、前記複数の修正符号語のうちの第１の修正符号語に含まれる前記ビット配列を前記複数の修正符号語のうちの第２の修正符号語に含まれる前記ビット配列と一致させるように、前記第１の修正符号語の前記ビット配列を入れ替える第２のシフト量を求めるシフト系列検出機能と、
前記第２のシフト量を打ち消すように前記第１の修正符号語の前記ビット配列を前記所定の入れ替え規則に従って入れ替えてから前記第１の修正符号語と前記第２の修正符号語を合成することにより第２検出符号を生成する逆シフト機能と、
前記第２検出符号から前記電子透かし情報を抽出する電子透かし抽出機能と、
を実現する処理部と、
を有する電子透かし検出装置。
【請求項６】
前記シフト系列検出機能は、前記第１の修正符号語の少なくとも一部を前記入れ替え規則に従って入れ替えながら、当該少なくとも一部と、前記第２の修正符号語の対応する部分との相互相関値を求め、該相互相関値が最大となるときの前記第１の修正符号語の少なくとも一部のシフト量を、前記第１の修正符号語に対する前記第２のシフト量とする、請求項５に記載の電子透かし検出装置。
【請求項７】
電子データ化されたコンテンツに埋め込まれた電子透かし情報を検出することをコンピュータに実行させる電子透かし検出用コンピュータプログラムであって、
前記コンテンツから、前記電子透かし情報のビット配列がビットの入れ替え順序を規定する所定の入れ替え規則に従った互いに異なるシフト量に応じて入れ替えられた複数の修正符号語を検出し、該複数の修正符号語を含む第１検出符号を生成し、
前記第１検出符号に基づいて、前記複数の修正符号語のうちの第１の修正符号語に含まれる前記ビット配列を前記複数の修正符号語のうちの第２の修正符号語に含まれる前記ビット配列と一致させるように、前記第１の修正符号語の前記ビット配列を入れ替える第２のシフト量を求め、
前記第２のシフト量を打ち消すように前記第１の修正符号語の前記ビット配列を前記所定の入れ替え規則に従って入れ替えてから前記第１の修正符号語と前記第２の修正符号語を合成することにより第２検出符号を生成し、
前記第２検出符号から前記電子透かし情報を抽出する、
ことをコンピュータに実行させる電子透かし検出用コンピュータプログラム。
【請求項８】
電子データ化されたコンテンツ及び電子透かし情報を取得するインターフェース部と、
前記コンテンツに前記電子透かし情報を埋め込む処理部であって、
前記電子透かし情報を含む基準符号語を生成する符号語生成機能と、
前記電子透かし情報を前記コンテンツに繰り返し埋め込む際に、前記埋め込むごとに、ビットの入れ替え順序を規定する所定の入れ替え規則に従ったシフト量に応じて前記基準符号語に含まれる前記電子透かし情報のビット配列を入れ替えることにより、互いに異なる複数の修正符号語を生成するシフト機能と、
前記コンテンツに前記複数の修正符号語を埋め込む透かし重畳機能と、
を実現する処理部と、
を有し、
前記シフト機能は、互いに異なる複数の乱数系列の何れかを前記コンテンツに前記電子透かし情報を埋め込むごとに選択し、該選択された乱数系列に属する複数の乱数によって前記シフト量を決定する、
電子透かし埋め込み装置。
【請求項９】
電子透かし情報が埋め込まれた電子データ化されたコンテンツを取得するインターフェース部と、
前記コンテンツから前記電子透かし情報を検出する処理部であって、
前記コンテンツから、前記電子透かし情報のビット配列がビットの入れ替え順序を規定する所定の入れ替え規則に従った互いに異なるシフト量に応じて入れ替えられた複数の修正符号語を検出し、該複数の修正符号語を含む第１検出符号を生成する符号語検出機能と、
前記第１検出符号に基づいて、前記複数の修正符号語のうちの第１の修正符号語に含まれる前記ビット配列を前記複数の修正符号語のうちの第２の修正符号語に含まれる前記ビット配列と一致させるように、前記第１の修正符号語の前記ビット配列を入れ替える第２のシフト量を求めるシフト系列検出機能と、
前記第２のシフト量を打ち消すように前記第１の修正符号語の前記ビット配列を前記所定の入れ替え規則に従って入れ替えてから前記第１の修正符号語と前記第２の修正符号語を合成することにより第２検出符号を生成する逆シフト機能と、
前記第２検出符号から前記電子透かし情報を抽出する電子透かし抽出機能と、
を実現する処理部と、
を有し、
前記シフト量は、互いに異なる複数の乱数系列の中から前記コンテンツに前記電子透かし情報が埋め込まれる際に選択された乱数系列に属する複数の乱数によって決定され、
前記シフト系列検出機能は、前記複数の乱数系列のそれぞれごとに、当該乱数系列に応じた前記シフト量を打ち消すように前記複数の修正符号語を入れ替えたときの前記第２の修正符号語とその他の修正符号語間の相互相関値の和である適合度を算出し、前記複数の乱数系列のうち、該適合度が最大となる乱数系列に属する複数の乱数の一つにより決定された前記第１の修正符号語についての前記シフト量を前記第１の修正符号語についての前記第２のシフト量とする、
電子透かし検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、電子データ化されたコンテンツ中に電子透かし情報を埋め込む電子透かし埋め込み装置及び電子透かし埋め込み用コンピュータプログラムに関する。また本発明は、例えば、電子データ化されたコンテンツに埋め込まれた電子透かし情報を検出する電子透かし検出装置及び電子透かし検出用コンピュータプログラムに関する。
【背景技術】
【０００２】
近年、インターネットなどを介して、映画あるいは音楽などの電子データ化されたコンテンツを配信するサービスが提供されている。これらのコンテンツは、デジタル著作権管理（Digital Rights Management、DRM）技術によって暗号化された上で配信される。また、DRM技術によって、これらのコンテンツを不正に複製したり、あるいは配布することが禁止されている。
しかし、視聴者がコンピュータのディスプレイまたはテレビジョンモニタに表示された映像コンテンツをカムコーダなどの撮影機器を用いて撮影することによって映像コンテンツを不正に複製し、複製された映像コンテンツを不正に流通させる事件が発生している。ディスプレイに表示された映像コンテンツは、暗号化されていないため、撮影により複製された映像コンテンツの流通を防ぐことは難しい。
【０００３】
そこで、予め視聴者の識別番号などの情報を電子透かしとしてコンテンツに埋め込む技術が開発されている。電子透かしは、例えば、ディスプレイに表示されたその電子透かしが埋め込まれた映像コンテンツをカムコーダで撮影して不正に複製したとしても、複製された映像コンテンツの中に依然として残っている。このようなアナログキャプチャによって不正に複製された映像コンテンツの流通後において、その複製された映像コンテンツから電子透かしを検出することにより、映像コンテンツの不正利用を行った視聴者の識別番号が特定可能となっている。したがって、映像コンテンツがアナログキャプチャにより不正に複製されて投稿サイトなどにアップロードされた場合でも、映像コンテンツの管理者は、アップロードされた映像コンテンツに埋め込まれている情報から流出元を特定することができる。
【０００４】
また、電子透かしの技術は、電子広告（デジタルサイネージ）にも応用可能である。例えば、ユーザが、街頭スクリーンまたはテレビに映った電子透かし情報が埋め込まれた広告動画をカメラにより撮影した動画像から電子透かし情報を検出することで、その広告動画で紹介された商品の詳細情報といった付加情報を得ることができる。
【０００５】
ところで、電子透かしが埋め込まれたコンテンツは、データ圧縮処理、データの一部切り取り、あるいはフィルタ処理などによって劣化することがある。そのため、埋め込まれた電子透かしは、このようなデータの劣化が生じても、電子透かし検出装置にて検出可能なように、データの劣化に対する耐性を持つことが好ましい。とりわけ、電子透かしが著作権保護の目的で使用される場合、電子透かしは、悪意のあるユーザが電子透かしを解析してその電子透かしを無効化するような攻撃に耐え得ることが好ましい。
【０００６】
電子透かしを無効化する攻撃の一つとして、結託攻撃と呼ばれるものがある。結託攻撃の一例では、複数のユーザがそれぞれ別個に入手した、異なる電子透かしが埋め込まれた同一のコンテンツ同士を比較することにより電子透かしが解析される。そして例えば、そのような異なる電子透かしが埋め込まれた同一のコンテンツの互いに対応する部分のデータを平均化することで、電子透かしを劣化させたコンテンツが作成される。
【０００７】
そこで、このような結託攻撃に対する耐性を持つ電子透かしが研究されている（例えば、特許文献１、２及び非特許文献１、２を参照）。
【０００８】
例えば、非特許文献１及び２には、c人のユーザが電子透かしが埋め込まれたデータに対して結託攻撃を行った場合に、結託者でないユーザに対する電子透かし情報を検出する確率がε以下となる結託耐性符号が提案されている。しかし、非特許文献１及び２で提案された結託体制符号の符号長は非常に長く、利用し難い。
そこで特許文献１には、結託耐性符号の符号長を短くする技術が提案されている。この技術では、不正者追跡のために用いる閾値の候補が計算により複数生成され、その複数の閾値の候補のそれぞれに対応する複数の符号長が計算により求められる。そして、その複数の符号長の値から最も小さい値が選択され、その選択された符号長で利用者ごとに異なる符号語が生成される。
【０００９】
また、特許文献２には、電子透かし情報に冗長ビットを付加して誤り訂正符号語を生成し、その誤り訂正符号語をコンテンツに埋め込む技術が提案されている。また、その誤り訂正符号語に対して異なる複数の鍵を用いて複数のスクランブルデータを生成し、各スクランブルデータを個別の電子透かし情報としてオリジナルコンテンツに埋め込むことが提案されている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００７−１７８８５７号公報
【特許文献２】特開２００７−３２４７２０号公報
【非特許文献】
【００１１】
【非特許文献１】D. Boneh and J. Shaw, "Collusion-Secure Fingerprinting for Digital Data", in Proc of CRYPTO'95, LNCS 963, 1995年, pp.452-465
【非特許文献２】G. Tardos, "Optimal Probabilistic Fingerprint Codes", in STOC'03, ACM(2003), 2003年, pp.116-125
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかし、非特許文献１、２または特許文献１に開示された技術では、結託耐性符号の符号長が十分に短くなっておらず、その結託耐性符号は実用的でないことがある。特に、電子透かし情報が埋め込まれるデータの量が小さい場合、電子透かし情報の埋め込みによるそのデータの劣化をユーザが知覚できないように電子透かし情報を埋め込むことが困難となるおそれがあった。また、そのような長い符号は、結託攻撃が行われていないコンテンツから電子透かし情報を検出するには非常に冗長であり、電子透かしの埋め込み及び検出の両方の処理の演算量も不必要に増大してしまうので好ましくない。
【００１３】
また、特許文献２に開示された技術では、電子透かし検出装置は、埋め込まれた情報を復元するために、スクランブルデータの生成に用いられた鍵を用いる。そのため、電子透かし検出装置がスクランブルデータの生成に用いられた鍵を知らない場合、全ての鍵のそれぞれについて埋め込まれた情報を復元する処理を行うことになるので、電子透かし情報を検出するための演算量が増大してしまうおそれがあった。
【００１４】
そこで本明細書は、結託攻撃に耐性を持ち、かつ、電子透かし情報の埋め込み及び検出のための演算量を抑制できる電子透かし埋め込み装置を提供することを目的とする。
【課題を解決するための手段】
【００１５】
一つの実施形態によれば、電子透かし埋め込み装置が提供される。この電子透かし埋め込み装置は、電子データ化されたコンテンツ及び電子透かし情報を取得するインターフェース部と、そのコンテンツに電子透かし情報を埋め込む処理部とを有する。処理部は、電子透かし情報を含むビット列を含む基準符号語を生成する符号語生成機能と、基準符号語に含まれる電子透かし情報を含むビット列の配列を、所定の入れ替え規則に従って電子透かし情報ごとに異なる複数のシフト量のそれぞれに応じて入れ替えることにより、互いに異なる複数の修正符号語を生成するシフト機能と、コンテンツに複数の修正符号語を埋め込む透かし重畳機能とを実現する。
【００１６】
また他の実施形態によれば、電子透かし検出装置が提供される。この電子透かし検出装置は、電子透かし情報が埋め込まれた電子データ化されたコンテンツを取得するインターフェース部と、そのコンテンツから電子透かし情報を検出する処理部とを有する。処理部は、コンテンツから、電子透かし情報を含むビット列の配列が所定の入れ替え規則に従って複数のシフト量の何れかに応じて入れ替えられた複数の修正符号語を検出し、その複数の修正符号語を含む第１検出符号を生成する符号語検出機能と、第１検出符号に基づいて、第１の修正符号語に含まれる電子透かし情報を含むビット列の配列を第２の修正符号語に含まれる電子透かし情報を含むビット列の配列と一致させるように、第１の修正符号語のビット列の配列を入れ替える第２のシフト量を求めるシフト系列検出機能と、第２のシフト量を打ち消すように第１の修正符号語のビット列の配列を所定の入れ替え規則に従って入れ替えてから第１の修正符号語と第２の修正符号語を合成することにより第２検出符号を生成する逆シフト機能と、第２検出符号から電子透かし情報を抽出する電子透かし抽出機能とを実現する。
【００１７】
本発明の目的及び利点は、請求項において特に指摘されたエレメント及び組み合わせにより実現され、かつ達成される。
上記の一般的な記述及び下記の詳細な記述の何れも、例示的かつ説明的なものであり、請求項のように、本発明を制限するものではないことを理解されたい。
【発明の効果】
【００１８】
ここに開示される電子透かし埋め込み装置は、結託攻撃に耐性を持ち、かつ、電子透かし情報の埋め込み及び検出のための演算量を抑制できる。
【図面の簡単な説明】
【００１９】
【図１】第１の実施形態による電子透かし埋め込み装置の概略構成図である。
【図２】第１の実施形態による、電子透かし情報をデータに埋め込むために実現される処理部の機能を示すブロック図である。
【図３】基準符号語の一例を示す図である。
【図４】基準符号語と修正符号語の一例を示す図である。
【図５】透かしパターンの一周期分の時間変化の一例を示す図である。
【図６】図５に対応する、参照領域内の画素値の平均値の時間変化を表すグラフである。
【図７】透かしパターンの時間経過と埋め込まれるビットの値の関係の一例を示す図である。
【図８】電子透かし埋め込み装置の処理部上で実行されるコンピュータプログラムにより制御される、電子透かし埋め込み処理の動作フローチャートである。
【図９】第１の実施形態による電子透かし検出装置の概略構成図である。
【図１０】電子透かし情報をコンテンツから検出するために実現される電子透かし検出装置の処理部の機能を示すブロック図である。
【図１１】第１検出符号に含まれる複数の巡回シフト対象部分と、第２検出符号の関係の一例を示す図である。
【図１２】電子透かし検出処理の動作フローチャートである。
【図１３】（Ａ）は、コンテンツから検出された第１検出符号の一例及びその第１検出符号に含まれる二つの巡回シフト対象部分間の相互相関値の一例を示す図である。（Ｂ）は、異なる電子透かし情報が埋め込まれた、（Ａ）に示されたコンテンツと同一のコンテンツから検出された第１検出符号の一例及びその第１検出符号に含まれる二つの巡回シフト対象部分間の相互相関値の一例を示す図である。
【図１４】図１３（Ａ）、（Ｂ）に示された第１検出符号が埋め込まれた二つのコンテンツを合成することにより得られたコンテンツから検出された第１検出符号と、その第１検出符号に含まれる二つの巡回シフト対象部分間の相互相関値を示す図である。
【発明を実施するための形態】
【００２０】
以下、図を参照しつつ、電子透かし埋め込み装置について説明する。この電子透かし埋め込み装置は、電子透かし情報を含むビット列を、乱数により決定される互いに異なるシフト量だけ巡回シフトさせた複数の符号語を生成し、その複数の符号語をコンテンツに埋め込む。さらにこの電子透かし埋め込み装置は、異なる電子透かし情報を埋め込む度に、そのシフト量を決定するために用いられる乱数を変えることで、電子透かし情報に結託攻撃に対する耐性を付与する。
【００２１】
なお、本実施形態におけるコンテンツは、電子化されたデータであり、例えば、映像を表す動画像データまたは音声データである。
【００２２】
図１は、第１の実施形態による電子透かし埋め込み装置の概略構成図である。電子透かし埋め込み装置１は、インターフェース部１１と、記憶部１２と、処理部１３とを有する。そして電子透かし埋め込み装置１は、インターフェース部１１を介して取得したコンテンツに対して電子透かし情報を埋め込む。
【００２３】
インターフェース部１１は、例えば、電子透かし埋め込み装置１を、カムコーダなどの入力装置（図示せず）または液晶ディスプレイなどの表示装置（図示せず）と接続するための信号インターフェース及びその制御回路を有する。あるいは、インターフェース部１１は、電子透かし埋め込み装置１を、イーサネット（登録商標）などの通信規格に従った通信ネットワークに接続するための通信インターフェース及びその制御回路を有してもよい。あるいはまた、インターフェース部１１は、無線配信されるコンテンツを受信するためのアンテナと電子透かし埋め込み装置１を接続し、アンテナを介して受信したコンテンツを復号するための回路を有する。
インターフェース部１１は、入力装置から、または通信ネットワークあるいはアンテナを介してコンテンツを取得し、そのコンテンツを処理部１３へ渡す。
さらに、インターフェース部１１は、キーボードまたはマウスといったユーザインターフェース装置を電子透かし埋め込み装置１に接続するために、ユニーバーサルシリアルバスなどのバス規格に従ったインターフェース回路を有してもよい。そしてインターフェース部１１は、ユーザインターフェース装置または通信ネットワークから、コンテンツに電子透かし情報として埋め込むデータを取得し、そのデータを処理部１３へ渡す。
【００２４】
電子透かし情報は、例えば、視聴者の識別番号、コンテンツの配信元の識別番号、及び電子透かし埋め込み装置１が組み込まれた画像表示装置またはオーディオ装置といったコンテンツ再生装置の識別番号の少なくとも一つを含む。また本明細書において、電子透かし情報に含まれる視聴者の識別番号などを表す複数の数値又は記号は、ビット列で表される。
【００２５】
さらに、インターフェース部１１は、電子透かし情報が埋め込まれたコンテンツを処理部１３から受け取り、その電子透かし情報が埋め込まれたコンテンツを液晶ディスプレイまたはスピーカなどの出力装置へ出力する。または、インターフェース部１１は、電子透かし情報が埋め込まれたコンテンツを、通信ネットワークを介して電子透かし埋め込み装置１と接続された他の機器へ送信してもよい。
【００２６】
記憶部１２は、例えば、半導体メモリ、磁気ディスク装置、または光ディスク装置のうちの少なくとも何れか一つを有する。そして記憶部１２は、電子透かし埋め込み装置１で実行されるコンピュータプログラムと、電子透かし情報を埋め込むために使用する各種のパラメータを記憶する。また記憶部１２は、電子透かし情報が埋め込まれる前のコンテンツの一部及び電子透かし情報を、処理部１３により電子透かし情報が埋め込まれたコンテンツが作成されるまで、一時的に記憶してもよい。さらに記憶部１２は、電子透かし情報が埋め込まれたコンテンツを記憶してもよい。
【００２７】
処理部１３は、１個または複数個のプロセッサと、ランダムアクセスメモリといったメモリ回路と、周辺回路を有する。そして処理部１３は、電子透かし埋め込み装置１全体を制御する。
【００２８】
さらに処理部１３は、電子透かし情報を含む基準符号語を生成し、その基準符号語の一部を乱数に従って決定されたシフト量で巡回シフトさせることにより得られる複数の修正符号語をコンテンツに埋め込む。
【００２９】
図２は、コンテンツに電子透かし情報を埋め込むために実現される処理部１３の機能を示すブロック図である。処理部１３は、符号語生成部２１と、シフト部２２と、透かし情報埋め込み部２３とを有する。処理部１３が有するこれらの各部は、処理部１３が有するプロセッサ上で実行されるコンピュータプログラムによって実装される機能モジュールである。あるいは、符号語生成部２１、シフト部２２及び透かし情報埋め込み部２３は、それぞれ別個の演算回路として電子透かし埋め込み装置１に実装されてもよい。
【００３０】
符号語生成部２１は、電子透かし情報を含む基準符号語を生成する。
図３は、基準符号語の一例を示す図である。基準符号語３００は、先頭から順に、位置検出符号３０１と、シフト量検出符号３０２と、電子透かし情報３０３と、誤り検出／訂正符号３０４とを含む。位置検出符号３０１は、電子透かし情報が埋め込まれたコンテンツにおいて、符号語の位置を示すための符号である。またシフト量検出符号３０２は、後述するシフト部２２により巡回シフトされた修正符号語におけるシフト量を、電子透かし検出装置が検出するために利用される符号である。位置検出符号３０１及びシフト量検出符号３０２は、電子透かし検出装置が正確に位置検出符号及びシフト量検出符号を検出できるように、互いに直交する所定長のビット列として設定されることが好ましい。例えば、位置検出符号３０１及びシフト量検出符号３０２は、それぞれ16ビットのビット列'1111111100000000'、'0000111100001111'とすることができる。なお、位置検出符号３０１及びシフト量検出符号３０２のビット長は16ビットに限られず、例えば、8ビットあるいは32ビットであってもよい。また位置検出符号３０１のビット長とシフト量検出符号３０２のビット長は異なっていてもよい。
【００３１】
また、基準符号語３００に含まれる電子透かし情報３０３は、インターフェース部１１を介して取得された電子透かし情報である。そして誤り検出／訂正符号３０４は、電子透かし情報３０３に対する誤り検出符号及び誤り訂正符号である。誤り検出／訂正符号３０４は、コンテンツに埋め込まれた符号語がデータ圧縮処理、ノイズの重畳または結託攻撃などによって劣化した場合に符号語に含まれる誤りを検出または訂正するために用いられる。誤り検出／訂正符号３０４には、誤り検出符号として、例えば、巡回冗長検査(Cyclic Redundancy Check, CRC)符号が用いられてもよい。また、誤り検出／訂正符号３０４には、誤り訂正符号として、リードソロモン符号あるいは低密度パリティ検査(low-density parity-check, LDPC)符号が用いられてもよい。なお、基準符号語は、誤り検出／訂正符号を含まなくてもよい。
【００３２】
符号語生成部２１は、インターフェース部１１を介して電子透かし情報を受け取ると、上記のように、その電子透かし情報の前に位置検出符号及びシフト量検出符号を付す。そして符号語生成部２１は、電子透かし情報に対する誤り検出符号及び誤り訂正符号を算出する。そして符号語生成部２１は、その誤り検出符号及び誤り訂正符号を、電子透かし情報の後に追加することで基準符号語を生成する。
なお、符号語生成部２１は、符号語を生成する前に、電子透かし情報の暗号化、電子透かし情報に含まれるビット列を所定のブロック単位で入れ換えるスクランブル処理の実行またはスペクトラム拡散などの前処理を行ってもよい。この場合、符号語生成部２１は、その前処理が行われた電子透かし情報を基準符号語に含める。
また、符号語生成部２１は、電子透かし情報が所定のビット長よりも長いビット列で表される場合、そのビット列をその所定のビット長単位で分割し、分割されたビット列ごとに基準符号語を生成してもよい。
符号語生成部２１は、生成した基準符号語をシフト部２２へ渡す。
【００３３】
シフト部２２は、基準符号語のうち、位置検出符号を除いた部分、すなわち、シフト量検出符号、電子透かし情報及び誤り検出／訂正符号を含むビット列である巡回シフト対象部分を所定の入れ替え規則に従って入れ替えることにより、修正符号語を生成する。本実施形態では、シフト部２２は、巡回シフト対象部分を巡回シフトすることにより修正符号語を生成する。
図４は、基準符号語と修正符号語の一例を示す図である。図４において、基準符号語４０１に対して、修正符号語４０２は、位置検出符号４１０を除いた巡回シフト対象部分４１１が、シフト量であるRビットだけ右側へシフトされている。そして基準符号語４０１における右端のRビットが位置検出符号の後、かつシフト量検出符号の前に移動している。
【００３４】
本実施形態では、シフト部２２は、一つのコンテンツに対して、一つの基準符号語から複数の修正符号語を生成する。その際、シフト部２２は、各修正符号語に対するシフト量を、それぞれ別個の乱数または擬似乱数により決定する。例えば、シフト部２２は、線形合同法、メルセンヌ・ツイスタあるいはAdvanced Encryption Standard(AES)暗号を用いた乱数生成法などの乱数発生法に従って、修正符号語ごとに乱数を生成する。この乱数は、例えば、0以上巡回シフト対象部分のビット長M未満の整数である。シフト部２２は、何れか一つの乱数から他の乱数が推定されることがないように、例えば、修正符号語ごとに異なる種を用いて異なる乱数系列を発生させ、その乱数系列内の何れかの乱数をシフト量として選択する。あるいは、シフト部２２は、一つの乱数系列から修正符号語の数だけ選択された複数の乱数を、それぞれ他の乱数系列の順序とすることで選択された複数の乱数をそれぞれシフト量としてもよい。
【００３５】
さらに、シフト部２２は、同一のコンテンツであっても、新たな電子透かし情報が埋め込まれる度に、異なる乱数または擬似乱数を用いて各修正符号語についてのシフト量を決定する。したがって、電子透かし情報が埋め込まれた複数のコンテンツ間で、各修正符号語についてのシフト量の組は異なる。
【００３６】
なお、一つのコンテンツに対して生成される修正符号語の数は、そのコンテンツのデータ量が多いほど多くなるように設定されてもよい。例えば、生成される修正符号語の数は、コンテンツのデータ量を、一つの修正符号語を埋め込むために必要なデータ量で除した値とすることができる。ただし、その値が所定の上限値を超える場合、シフト部２２は、生成される修正符号語の数をその上限値としてもよい。この上限値は、例えば、５または１０とすることができる。
シフト部２２は、生成した複数の修正符号語を透かし情報埋め込み部２３へ渡す。
【００３７】
透かし情報埋め込み部２３は、コンテンツに対してシフト部２２から受け取った複数の修正符号語を埋め込む。透かし情報埋め込み部２３は、電子透かし情報を埋め込むために、コンテンツに応じた様々な電子透かし情報の埋め込み方法の何れかを利用できる。例えば、コンテンツが音声データである場合、透かし情報埋め込み部２３は、人の非可聴域に修正符号語を埋め込む。その際、透かし情報埋め込み部２３は、修正符号語に含まれるビットごとに、そのビットの値に応じた信号を生成する。そして透かし情報埋め込み部２３は、修正符号語の先頭のビットから順に、各ビットの値に応じた信号を時系列に沿って音声データの非可聴域に重畳する。
【００３８】
あるいは、コンテンツが動画像データである場合、透かし情報埋め込み部２３は、その動画像データに含まれる時系列順に並んだ複数の画像に対して、修正符号語の先頭のビットから順に、一つのビットずつ埋め込む。例えば、透かし情報埋め込み部２３は、各画像のそれぞれの所定位置の画素の輝度値を、修正符号語の先頭のビットから順に、そのビットの値に応じた輝度値にする。なお、所定位置は、例えば、画像の４隅の何れかの画素とすることができる。
【００３９】
さらにまた、透かし情報埋め込み部２３は、修正符号語に含まれるビットごとに複数の画像を含む所定の区間を設定し、その所定の区間において各画像に重畳される透かしパターンを生成し、その透かしパターンの面積をビットの値に応じて周期的に変化させてもよい。この場合、透かし情報埋め込み部２３は、埋め込まれるビットの値に応じて、透かしパターンの面積の周期的な時間変動の位相またはその時間変動の周期を変える。これにより、画像全体または画像の一部に設定され、透かしパターンが含まれる参照領域内の平均画素値も周期的に増減するので、参照領域内の平均画素値の周期的な時間変動の位相またはその時間変動の周期も変動する。
なお、参照領域は、面積が最大となるときの透かしパターンが含まれ、かつ一定のサイズを持つように設定される。すなわち、参照領域は、透かしパターンの面積に関わらず、画像上で透かしパターンが重畳される領域を含む。
【００４０】
図５は、透かしパターンの一周期分の時間変化の一例を示す図である。この例では、透かしパターンは複数の透かしブロックを有し、各透かしブロックに含まれる画素は、負の値、例えば、'-2'を持つ。そのため、各透かしブロックは影状となり、その結果、透かしパターンに含まれる画素が重畳されることにより、その重畳された画素の値は元の画素値よりも低くなる。
図５において、時刻tから時刻(t+8)までの時間的に連続する９枚の画像が示されている。時刻tの画像５０１には、矩形状の透かしパターン５１１が重畳されている。そして時刻tから時刻(t+4)にかけて、透かしブロック５１２の数が減ることにより、画像に重畳される透かしパターンの面積が減少する。そして時刻(t+4)における画像５０２において透かしパターンは消失する。また、時刻(t+4)以降、透かしパターンの面積は増加し、時刻(t+8)における画像５０３にて、再び透かしパターンの面積が最大となる。
【００４１】
図６は、図５に対応する、透かしパターンの面積の時間変化と透かしパターンを含む領域内の画素値の平均値の時間変化との対応関係を表すグラフである。図６における上側のグラフにおいて、横軸は時間を表し、縦軸は透かしパターンの面積を表す。そしてグラフ６０１は、各時刻t〜(t+8)における、透かしパターンの面積を表す。一方、下側のグラフにおいて、横軸は時間を表し、縦軸は画素値を表す。そしてグラフ６０２は、各時刻t〜(t+8)における、参照領域内の平均画素値を表す。
【００４２】
グラフ６０１に示されるように、時刻t〜(t+8)において、透かしパターンの面積は、三角波状に変化する。またこの例では、透かしパターンの各画素は負の値を持つ。そのため、グラフ６０２に示されるように、参照領域内の平均画素値は透かしパターンの面積が減少するにつれて増加し、逆に透かしパターンの面積が増加するにつれて減少する。そのため、平均画素値も時系列に沿って三角波状に変化し、平均画素値の変化を表す三角波の位相は、透かしパターンの面積の変化を表す三角波の位相に対して反転する。
【００４３】
上述したように、一例として、動画像データに埋め込まれるビットの値は、透かしパターンの面積の変動周期、すなわち、参照領域内の平均画素値の変動周期によって表される。
図７は、透かしパターンの時間経過と埋め込まれるビットの値の関係の一例を示す図である。図７における上側、中央、下側の各グラフの横軸は時間を表し、縦軸は参照領域内の平均画素値を表す。そしてグラフ７０１及び７０２は、それぞれ、ビットの値が'0'または'1'である場合の時間経過に対する参照領域内の平均画素値の変動を表す。この例では、ビットの値が'1'である場合の周期T1は、ビットの値が'0'である場合の周期T2の1/2となっている。なお、埋め込まれた値の検出を容易にするために、一つのビットが埋め込まれる区間の長さは、ビットの値によらず、同一であることが好ましい。例えば、図７における、複数のビットに対する参照領域内の平均画素値の時間変動を表すグラフ７０３に示されるように、ビットの値が'0'である場合、一つの区間７１０には2周期の平均画素値の変動が含まれ、一方、ビットの値が'1'である場合、一つの区間７１１には4周期の平均画素値の変動が含まれる。
【００４４】
あるいは、動画像データに埋め込まれるビットの値は、透かしパターンの面積の時間変動における位相によって表されてもよい。透かし情報埋め込み部２３は、例えば、ビットの値が'0'であるときの透かしパターンの面積の時間変動の位相に対して、ビットの値が'1'であるときの透かしパターンの面積の時間変動の位相を反転させてもよい。
【００４５】
透かし情報埋め込み部２３は、画像ごとに参照領域を特定する。そして透かし情報埋め込み部２３は、透かしパターンに含まれる画素と重なる画像上の画素の値を、その透かしパターンに含まれる画素の値で修正する。例えば、透かしパターンに含まれる各画素が'-2'の値を持つ場合、透かし情報埋め込み部２３は、透かしパターンと重なる領域に含まれる各画素の値から'2'減算する。逆に、透かしパターンに含まれる各画素が'2'の値を持つ場合、透かし情報埋め込み部２３は、透かしパターンと重なる領域に含まれる各画素の値に'2'加算する。
【００４６】
上記のように、透かし情報埋め込み部２３は、動画像データに対して時系列方向に複数のビットを埋め込むことができる。この場合、透かし情報埋め込み部２３は、動画像データに埋め込まれる一つのビットに対応する区間が終了する度に、ビットごとの区切りを示す所定のパターンを、次のビットに対応する区間が始まるまでの画像に重畳してもよい。
【００４７】
また、透かし情報埋め込み部２３は、動画像データ中の各画像に、電子透かし情報に含まれる複数のビットを埋め込んでもよい。例えば、各画像の複数の所定の画素が、修正符号語に含まれるビットの値を表すために用いられる。あるいは、動画像データ中の各画像には、複数の参照領域及び各参照領域に含まれる透かしパターンが設定される。そして、各参照領域とその参照領域内に重畳される透かしパターンが一つのビットに対応する。また、電子透かし情報に含まれる全てのビットが各画像に埋め込まれる場合、所定区間は、動画像データの先頭の画像から終端の画像までとしてもよい。
同様に、透かし情報埋め込み部２３は、コンテンツが音声データである場合に、その音声データの一つのフレームの非可聴域内の複数の周波数帯域にそれぞれ修正符号語に含まれる一つのビットを埋め込んでもよい。
【００４８】
透かし情報埋め込み部２３は、複数の修正符号語をそれぞれ上記のようにコンテンツに埋め込む。そして透かし情報埋め込み部２３は、複数の修正符号語が埋め込まれたコンテンツを記憶部１２に記憶する。あるいは、透かし情報埋め込み部２３は、複数の修正符号語が埋め込まれたコンテンツを、インターフェース部１１を介して他の機器へ出力してもよい。
【００４９】
図８は、この実施形態による電子透かし埋め込み装置の処理部上で実行されるコンピュータプログラムにより制御される、電子透かし埋め込み処理の動作フローチャートである。
処理部１３の符号語生成部２１は、インターフェース部１１を通じて受け取った電子透かし情報に位置検出符号、シフト量検出符号及び誤り検出／訂正符号を付加することにより基準符号語を生成する（ステップＳ１０１）。符号語生成部２１は、基準符号語をシフト部２２へ渡す。また処理部１３は、インターフェース部１１を通じて受け取ったコンテンツに未挿入領域が有るか否か判定する（ステップＳ１０２）。なお、未挿入領域は、未だに修正符号語が埋め込まれておらず、かつ、修正符号語を埋め込むことが可能な領域である。例えば、コンテンツが音声データであれば、修正符号語が埋め込まれておらず、かつ、修正符号語のデータ量を重畳可能な非可聴域である。あるいは、コンテンツが動画像データであれば、未挿入領域は、例えば、修正符号語が埋め込まれておらず、かつ、修正符号語に含まれるビットの総数に対応する複数の画像である。
【００５０】
コンテンツに未挿入領域があれば（ステップＳ１０２−Ｙｅｓ）、シフト部２２は、乱数を生成し、その乱数に応じたシフト量Rを算出する（ステップＳ１０３）。そしてシフト部２２は、基準符号語中の位置検出符号を除いた巡回シフト対象部分を、シフト量Rで巡回シフトすることにより修正符号語を作成する（ステップＳ１０４）。シフト部２２は、修正符号語を透かし情報埋め込み部２３へ渡す。透かし情報埋め込み部２３は、コンテンツの未挿入領域に、シフト部２２から受け取った修正符号語を埋め込む（ステップＳ１０５）。そして処理部１３は、ステップＳ１０２以降の処理を再度実行する。
一方、コンテンツに未挿入領域がなければ（ステップＳ１０２−Ｎｏ）、処理部１３は、電子透かし埋め込み処理を終了する。
【００５１】
次に、第１の実施形態による電子透かし埋め込み装置によりコンテンツに埋め込まれた電子透かし情報を検出する電子透かし検出装置について説明する。
【００５２】
図９は、第１の実施形態による電子透かし検出装置の概略構成図である。電子透かし検出装置２は、インターフェース部３１と、記憶部３２と、処理部３３とを有する。そして電子透かし検出装置２は、インターフェース部３１を介して取得した、コンテンツに埋め込まれた電子透かし情報を検出する。
【００５３】
インターフェース部３１は、例えば、電子透かし検出装置２を、カムコーダなどのコンテンツ入力装置（図示せず）と接続するための信号インターフェース及びその制御回路を有する。あるいは、インターフェース部３１は、電子透かし検出装置２を、イーサネット（登録商標）などの通信規格に従った通信ネットワークに接続するための通信インターフェース及びその制御回路を有してもよい。
インターフェース部３１は、コンテンツ入力装置または通信ネットワークを介して電子透かし情報が埋め込まれたコンテンツを取得し、そのコンテンツを処理部３３へ渡す。
さらに、インターフェース部３１は、検出された電子透かし情報を処理部３３から受け取り、その電子透かし情報を、通信ネットワークを介して電子透かし検出装置２と接続された他の機器へ送信してもよい。
【００５４】
記憶部３２は、例えば、半導体メモリ、磁気ディスク装置、または光ディスク装置のうちの少なくとも何れか一つを有する。そして記憶部３２は、電子透かし検出装置２で実行されるコンピュータプログラム、コンテンツに埋め込まれた電子透かし情報を検出するために使用する各種のパラメータを記憶する。例えば、記憶部３２は、位置検出符号のテンプレート及びシフト量検出符号のテンプレートを記憶する。また記憶部３２は、検出された電子透かし情報を記憶してもよい。さらに記憶部３２は、電子透かし情報が埋め込まれたコンテンツを記憶してもよい。
【００５５】
処理部３３は、１個または複数個のプロセッサと、ランダムアクセスメモリといったメモリ回路と、周辺回路を有する。そして処理部３３は、コンテンツに埋め込まれた電子透かし情報を検出する。さらに処理部３３は、電子透かし検出装置２全体を制御する。
【００５６】
図１０は、コンテンツに埋め込まれた電子透かし情報を検出するために実現される処理部の機能を示すブロック図である。
処理部３３は、符号語検出部４１と、巡回シフト系列検出部４２と、逆シフト部４３と、透かし情報抽出部４４とを有する。
【００５７】
符号語検出部４１は、コンテンツに埋め込まれた複数の修正符号語を検出する。そのために、符号語検出部４１は、コンテンツに埋め込まれた複数の修正符号語の各ビットを、電子透かし埋め込み装置１により用いられた各ビットの埋め込み方法に応じた検出方法を用いて検出する。例えば、上記のように、コンテンツが音声データであり、その音声データの非可聴域に修正符号語に含まれる各ビットの値に応じた信号が付加されているとする。この場合、符号語検出部４１は、その信号に対応するテンプレートと非可聴域の信号とのテンプレートマッチングにより非可聴域内でテンプレートと一致する信号を検出する。そして符号語検出部４１は、その一致したテンプレートに対応するビット値を修正符号語に含まれるビットとして検出する。
また、コンテンツが動画像データであり、各画像の所定の画素が修正符号語に含まれるビット値に応じた値を持っている場合、符号語検出部４１は、その所定の画素の値に応じたビット値を検出する。
【００５８】
また、コンテンツが動画像データであり、修正符号語に含まれる各ビットの値が、画像に重畳された透かしパターンの面積の周期的な変動により表されている場合、符号語検出部４１は、各画像の参照領域内の平均画素値を算出する。なお、一つの画像に複数の参照領域が設定されている場合、符号語検出部４１は、参照領域ごとに平均画素値を算出する。
なお、動画像データは、電子透かし情報が埋め込まれた映像をアナログキャプチャしたものであることがある。そこで符号語検出部４１は、例えば、各画像に対してエッジ検出処理を行って元の映像が写っている動画像領域のエッジを検出することにより、各画像内の動画像領域を特定する。そして符号語検出部４１は、予め分かっている動画像領域と参照領域との比に基づいて、動画像領域内で参照領域を検出する。
【００５９】
符号語検出部４１は、参照領域ごとに、参照領域内の平均画素値を時系列順に並べた１次元ベクトルを作成する。そして符号語検出部４１は、その１次元ベクトルを一つのビットの値に相当する区間単位で周波数変換することにより、その区間における平均画素値の時間変動に対するスペクトルを求める。なお、周波数変換として、例えば、高速フーリエ変換または離散コサイン変換が用いられる。また符号語検出部４１は、区間の区切りを示す所定のパターンを、例えばパターンマッチングにより検出することで、その区間を特定できる。
【００６０】
符号語検出部４１は、各参照領域についての区間ごとのスペクトルから透かしパターンの面積の周期的な変化による参照領域内の平均画素値の時間変動に相当する周波数成分のみを抽出する。そして埋め込まれたビットの値が参照領域内の平均画素値の時間変動の位相により表されている場合、符号語検出部４１は、抽出した周波数成分から位相情報を求める。そして符号語検出部４１は、例えば、その位相に対応するビットの値を、位相とシンボルの値との関係を表す参照テーブルを参照することにより求める。
【００６１】
また、ビットの値が透かしパターンの面積の時間変動の周期により表されている場合、符号語検出部４１は、ビットの取り得るそれぞれの値に相当する周波数成分のうち、最も強い周波数成分を求め、その最も強い周波数成分に対応する周期を求める。そして符号語検出部４１は、周期とビットの値との関係を表す参照テーブルを参照して、検出された周期に対応するビットの値を埋め込まれたビットの値とする。
【００６２】
符号語検出部４１は、所定の順序、例えば、時系列順に抽出したビットの値を並べることにより、複数の修正符号語を含むビット列である第１検出符号を生成する。また、動画像データの一つの画像に複数のビットが埋め込まれている場合には、符号語検出部４１は、予め設定された、その画像に埋め込まれたビットの順序に従って各ビットの値を並べることにより、第１検出符号を生成する。同様に、コンテンツが音声データであり、その音声データの一つのフレームの非可聴域の複数の周波数帯域にそれぞれビットが埋め込まれている場合、そのフレームに埋め込まれたビットの順序に従って各ビットの値を並べることにより、第１検出符号を生成する。
符号語検出部４１は、第１検出符号を巡回シフト系列検出部４２及び逆シフト部４３へ渡す。
【００６３】
巡回シフト系列検出部４２は、第１検出符号に含まれる複数の修正符号語のうち、基準となる修正符号語に対するその他の修正符号語の相対的なシフト量を検出する。すなわち、巡回シフト系列検出部４２は、各修正符号語内の電子透かし情報を表すビットの配列を一致させるためのシフト量を検出する。そのために、巡回シフト系列検出部４２は、第１検出符号と、位置検出符号と同じビット列を持つテンプレートとの間でパターンマッチングを行って、第１検出符号中でそのテンプレートと一致するビット列を、修正符号語に含まれる位置検出符号として検出する。そして巡回シフト系列検出部４２は、一つの位置検出符号から次の位置検出符号までのビット列を一つの修正符号語として検出する。なお、電子透かし情報が埋め込まれたコンテンツは、データ圧縮あるいはアナログキャプチャなどによって劣化していることがあり、そのため、第１検出符号に含まれる位置検出符号も誤りを含む可能性がある。そこで、巡回シフト系列検出部４２は、例えば、位置検出符号のテンプレートとのハミング距離が所定距離以下となるビット列を、位置検出符号として検出してもよい。この場合、所定距離は、例えば、1、2といった固定値、あるいは位置検出符号のビット長の1/10といった値に設定される。
【００６４】
次に、巡回シフト系列検出部４２は、それぞれの修正符号語から位置検出符号を除いた巡回シフト対象部分を求める。そして巡回シフト系列検出部４２は、基準となる修正符号語の巡回シフト対象部分とその他の修正符号語の巡回シフト対象部分との相互相関値を、例えば次式に従って算出する。
【数１】
0005793865.tif 000002
ここで、C[0][k]は、基準となる修正符号語の巡回シフト対象部分のk番目のビットに相当する値を表す。本実施形態では、基準となる修正符号語は、第１検出符号に含まれる先頭の修正符号語である。ただし、基準となる修正符号語は、その先頭の修正符号語に限られず、第１検出符号に含まれる修正符号語のうちの任意の修正符号語とすることができる。またC[i][k]は、第１検出符号に含まれる、先頭の修正符号語を除いたi番目(i=1,2,..,N-1、ただしNは第１検出符号に含まれる修正符号語の総数)の修正符号語における、巡回シフト対象部分のk番目のビットに相当する値を表す。ただし、そのk番目のビットの値が'1'であれば、C[i][k]=1であり、そのk番目のビットの値が'0'であれば、C[i][k]=-1である。また演算子%は剰余演算子であり、A、Bをそれぞれ整数とした場合にA%BはAをBで除したときの剰余を表す。Mは、巡回シフト対象部分の符号長である。そしてr[i][j]は、第１検出符号に含まれる、i番目の修正符号語の巡回シフト対象部分をjビットだけ右側へ巡回シフトした場合の、そのi番目の修正符号語の巡回シフト対象部分と先頭の修正符号語の巡回シフト対象部分間の相互相関値を表す。そして各巡回シフト対象部分は、コンテンツの劣化により修正符号語が書き換えられなければ、異なるシフト量で巡回シフトされていることを除いて同一の値を持つ。従って、この相互相関値は、i番目の修正符号語の巡回シフト対象部分と先頭の修正符号語の巡回シフト対象部分との間の相対的なシフト量が打ち消された場合に、最も大きな値を持つ。
【００６５】
そこで巡回シフト系列検出部４２は、1番目以降の各修正符号語の巡回シフト対象部分について、シフト量jを0から(M-1)まで変更しつつ、それぞれ先頭の修正符号語の巡回シフト対象部分との相互相関値を算出し、その相互相関値の最大値を求める。そして巡回シフト系列検出部４２は、i番目の修正符号語の巡回シフト対象部分についての相互相関値の最大値に対応するシフト量jmaxを、先頭の修正符号語のシフト量に対する、そのi番目の修正符号語の相対的なシフト量とする。
巡回シフト系列検出部４２は、基準となる修正符号語以外の他の修正符号語の相対的なシフト量を逆シフト部４３へ通知する。
【００６６】
逆シフト部４３は、基準となる修正符号語以外の各修正符号語の巡回シフト対象部分を、その修正符号語に対応する相対的なシフト量jmaxだけ右側へ巡回シフトする。これにより、基準となる修正符号語に含まれる巡回シフト対象部分のシフト量と、その他の各修正符号語に含まれる巡回シフト対象部分のシフト量は一致する。
【００６７】
逆シフト部４３は、各修正符号語の巡回シフト対象部分の互いに対応するビットごとに、次式に従って多数決でそのビットの値を決定することにより第２検出符号を生成する。
【数２】
0005793865.tif 000003
ここで、C[i][k]は、（１）式と同様に、第１検出符号に含まれる、先頭からi番目の修正符号語における、巡回シフト対象部分のk番目のビットに相当する値を表す。ただし、ここでは、先頭の修正符号語も含まれるよう、iは0から(N-1)までの値を取る。またS[i]は、i番目の修正符号語について求められた相対的なシフト量である。Mは、巡回シフト対象部分の符号長である。そしてC*[j]は、第２検出符号のj番目のビットの値を表す。逆シフト部４３は、jを0から(M-1)まで変えつつ、（２）式に従ってC*[j]を算出することにより、第２検出符号を生成する。
なお、巡回シフト系列検出部４２及び逆シフト部４３は、第１検出符号に含まれる全ての修正符号語について上記の処理を行わなくてもよい。巡回シフト系列検出部４２及び逆シフト部４３は、少なくとも二つの修正符号語のうちの一方を基準となる修正符号語として、他方の修正符号語について相対的なシフト量を求めて第２検出符号を生成すればよい。
【００６８】
図１１は、第１検出符号に含まれる複数の修正符号語の巡回シフト対象部分と、第２検出符号の関係の一例を示す図である。図１１において、シフト量検出符号は、ビット列'ab'で表されるものとする。基準となる修正符号語の巡回シフト対象部分１１０１は、基準符号語の巡回シフト対象部分が２ビット右側へ巡回シフトされたものであり、そのため、先頭から３番目及び４番目にそれぞれビット'a'、'b'が位置している。これに対し、他の二つの修正符号語の巡回シフト対象部分１１０２、１１０３は、それぞれ、巡回シフト対象部分１１０１に対して相対的にS[1]ビット、S[2]ビット左側にずれている。その結果、巡回シフト対象部分１１０２、１１０３は、それぞれ、S[1]ビット、S[2]ビット右側に巡回シフトしたときに、巡回シフト対象部分１１０２、１１０３と巡回シフト対象部分１１０１との相互相関値が最大となる。そこで、逆シフト部４３は、巡回シフト対象部分１１０２、１１０３を、それぞれ、S[1]ビット、S[2]ビット右側に巡回シフトした後に、巡回シフト対象部分１１０１〜１１０３の対応するビット同士を合成する。これにより、第２検出符号１１１０が生成される。この第２検出符号１１１０は、基準となる修正符号語の巡回シフト対象部分１１０１と同様に、基準符号語の巡回シフト対象部分が２ビット右側へ巡回シフトされたものとなる。
【００６９】
そこで、逆シフト部４３は、第２検出符号と、シフト量検出符号と同じビット列を持つテンプレートとの間でパターンマッチングを行って、第２検出符号中でそのテンプレートと一致するビット列をシフト量検出符号として検出する。そして逆シフト部４３は、第２検出符号を、シフト量検出符号が先頭に位置するように、電子透かし埋め込み装置による巡回シフトの方向と逆方向へ巡回シフトする。これにより、基準符号語の巡回シフト対象部分が再現される。また第２検出符号は、複数の修正符号の巡回シフト対象部分の対応するビットを合成することにより求められている。そのため、第２検出符号に含まれるシフト量検出符号は、第１検出符号に含まれる個々の修正符号語に含まれるシフト量検出符号よりも正確である可能性が高い。したがって、逆シフト部４３は、第２検出符号における巡回シフト対象部分のシフト量を正確に検出できる。
逆シフト部４３は、再現された基準符号語の巡回シフト対象部分を透かし情報抽出部４４へ渡す。
【００７０】
透かし情報抽出部４４は、再現された基準符号語の巡回シフト対象部分に含まれる誤り検出／訂正符号を用いて、その巡回シフト対象部分に対して誤り検出処理及び誤り訂正処理を行う。そして透かし情報抽出部４４は、その巡回シフト対象部分から、シフト量検出符号の次に配置されている電子透かし情報を抽出する。なお、電子透かし情報に対して暗号化、スクランブル処理またはスペクトラム拡散といった前処理が行われている場合、透かし情報抽出部４４は、抽出された電子透かし情報に対してその前処理の逆処理を行うことで、電子透かし情報に含まれる情報を再生する。
【００７１】
透かし情報抽出部４４は、電子透かし情報を記憶部３２に記憶する。あるいは、透かし情報抽出部４４は、電子透かし情報を、インターフェース部３１を介して他の機器へ出力してもよい。
【００７２】
図１２は、電子透かし検出装置２の処理部３３上で実行されるコンピュータプログラムにより制御される、電子透かし検出処理の動作フローチャートである。
処理部３３の符号語検出部４１は、電子透かし情報が埋め込まれたコンテンツから複数の修正符号語を含むビット列を第１検出符号として検出する（ステップＳ２０１）。そして符号語検出部４１は、第１検出符号を処理部３３の巡回シフト系列検出部４２及び逆シフト部４３へ渡す。
【００７３】
巡回シフト系列検出部４２は、第１検出符号内の位置検出符号を検出することにより各修正符号語を検出する（ステップＳ２０２）。そして巡回シフト系列検出部４２は、修正符号語の巡回シフト対象部分同士の相互相関により基準となる修正符号語に対する他の修正符号語の相対的なシフト量を特定する（ステップＳ２０３）。巡回シフト系列検出部４２は、基準となる修正符号語以外の各修正符号語の相対的なシフト量を逆シフト部４３へ通知する。
【００７４】
逆シフト部４３は、相対的なシフト量を打ち消すように各修正符号語の巡回シフト対象部分を巡回シフトする（ステップＳ２０４）。そして逆シフト部４３は、各修正符号語の巡回シフト対象部分の対応するビットの値の多数決により各巡回シフト対象部分を合成して第２検出符号を生成する（ステップＳ２０５）。さらに逆シフト部４３は、第２検出符号からシフト量検出符号を検出して基準となる修正符号語のシフト量を特定する（ステップＳ２０６）。そして逆シフト部４３は、第２検出符号を特定されたシフト量だけ逆巡回シフトして基準符号語の巡回シフト対象部分を再生する（ステップＳ２０７）。逆シフト部４３は、再生された基準符号語の巡回シフト対象部分を処理部３３の透かし情報抽出部４４へ渡す。
【００７５】
透かし情報抽出部４４は、再生された巡回シフト対象部分から電子透かし情報を抽出する（ステップＳ２０８）。そして処理部３３は、電子透かし検出処理を終了する。
【００７６】
以下、本実施形態による電子透かし埋め込み装置により埋め込まれた電子透かし情報が結託攻撃に対して耐性を持つことを、図を参照しつつ説明する。
図１３（Ａ）は、コンテンツから検出された第１検出符号の一例及びその第１検出符号に含まれる二つの巡回シフト対象部分間の相互相関値の一例を示す図である。また図１３（Ｂ）は、異なる電子透かし情報が埋め込まれた、図１３（Ａ）に示されたコンテンツと同一のコンテンツから検出された第１検出符号の一例及びその第１検出符号に含まれる二つの巡回シフト対象部分間の相互相関値の一例を示す図である。
図１３（Ａ）に示された第１検出符号１３０１には、二つの修正符号語が含まれており、各修正符号語には、それぞれ、巡回シフト対象部分C1[0]、C1[1]が含まれている。また図１３（Ａ）の下側に示されたグラフは、巡回シフト対象部分C1[0]とC1[1]間の相互相関値を表す。このグラフにおいて、横軸はC1[1]のC1[0]に対する相対的なシフト量を表し、縦軸は相互相関値を表す。そしてグラフ１３０２は、C1[1]の相対的なシフト量ごとの相互相関値を表す。グラフ１３０２に示されるように、相互相関値は、シフト量S1[1]にて最大となる。したがって、C1[1]は、C1[0]に対してシフト量S1[1]だけ巡回シフトされている。
【００７７】
一方、図１３（Ｂ）に示された第１検出符号１３１１にも、二つの修正符号語が含まれており、各修正符号語には、それぞれ、巡回シフト対象部分C2[0]、C2[1]が含まれている。また図１３（Ｂ）の下側に示されたグラフは、巡回シフト対象部分C2[0]とC2[1]間の相互相関値を表す。このグラフにおいて、横軸はC2[1]のC2[0]に対する相対的なシフト量を表し、縦軸は相互相関値を表す。そしてグラフ１３１２は、C2[1]の相対的なシフト量ごとの相互相関値を表す。グラフ１３１２に示されるように、相互相関値は、シフト量S2[1]にて最大となる。したがって、C2[1]は、C2[0]に対してシフト量S2[1]だけ巡回シフトされている。
【００７８】
図１４は、図１３（Ａ）及び図１３（Ｂ）に示された第１検出符号が埋め込まれた二つのコンテンツを合成することにより得られたコンテンツから検出された第１検出符号と、その第１検出符号に含まれる二つの巡回シフト対象部分間の相互相関値を示す。なお、二つのコンテンツの合成は、例えば、二つのコンテンツ間の対応する信号を平均化することにより行われる。
図１４に示された第１検出符号１４０１には、二つの修正符号語が含まれており、各修正符号語には、それぞれ、コンテンツの合成により改変された巡回シフト対象部分D[0]、D[1]が含まれている。また図１４の下側に示されたグラフは、巡回シフト対象部分D[0]とD[1]間の相互相関値を表す。このグラフにおいて、横軸はD[1]のD[0]に対する相対的なシフト量を表し、縦軸は相互相関値を表す。そしてグラフ１４０２は、D[1]の相対的なシフト量ごとの相互相関値を表す。グラフ１４０２に示されるように、相互相関値は、二つの極大値を持つ。この二つの極大値の一方は、改変されていない巡回シフト対象部分C1[1]のC1[0]に対する相対的なシフト量S1[1]に対応し、他方は、改変されていない巡回シフト対象部分C2[1]のC2[0]に対する相対的なシフト量S2[1]に対応する。したがって、D[1]をシフト量S1[1]で巡回シフトした後に、D[1]とD[0]を合成することにより得られた第２検出符号は、C1[0]、C1[1]に含まれる電子透かし情報が強調されたものとなる。そのため、電子透かし検出装置は、D[1]とD[0]を合成することにより得られた第２検出符号から、C1[0]、C1[1]に含まれる電子透かし情報が抽出できる。一方、この巡回シフトにより、C2[0]、C2[1]に含まれる電子透かし情報の対応するビットは異なる位置となるので、この巡回シフトによってC2[0]、C2[1]に含まれる電子透かし情報はランダムノイズ化される。そのため、電子透かし検出装置は、その第２検出符号からC2[0]、C2[1]に含まれる電子透かし情報を抽出できない。
【００７９】
同様に、D[1]をシフト量S2[1]で巡回シフトした後に、D[1]とD[0]を合成することにより得られた第２検出符号は、C2[0]、C2[1]に含まれる電子透かし情報が強調されたものとなる。そのため、電子透かし検出装置は、D[1]とD[0]を合成することにより得られた第２検出符号から、C2[0]、C2[1]に含まれる電子透かし情報を抽出できる。
このように、本実施形態による電子透かし埋め込み装置によりコンテンツに埋め込まれた電子透かし情報は、結託攻撃に対して耐性を持つ。
【００８０】
以上に説明してきたように、この実施形態による電子透かし埋め込み装置は、異なる電子透かし情報が埋め込まれた同一のコンテンツを複数用いて結託攻撃が行われても、修正符号語に含まれる電子透かし情報を再現でき、その結果、結託攻撃に対する耐性を持つ。またこの電子透かし埋め込み装置では、コンテンツに埋め込まれる符号語のビット長は、電子透かし情報のビット長の高々数倍〜十数倍程度のビット長でよい。このように、符号語のビット長は実用的に問題の無いレベルに抑制され、その結果、電子透かし埋め込み処理の演算量及び電子透かし検出処理の演算量も抑制される。
【００８１】
変形例によれば、電子透かし検出装置の処理部の巡回シフト系列検出部は、第１検出符号からシフト量検出符号をパターンマッチングなどを用いて直接検出することにより、各修正符号語におけるシフト量を求めてもよい。
【００８２】
また他の変形例によれば、電子透かし埋め込み装置の処理部のシフト部は、基準符号語の巡回シフト対象部分を、巡回シフトさせる代わりに、シフト量検出符号と同じ長さを持つブロック単位で分割し、各ブロックをスクランブル処理してもよい。なお、この変形例におけるスクランブル処理は、所定の入れ替え規則に従って各ブロックの位置を入れ替える処理である。この場合、シフト部は、スクランブル処理後のシフト量検出符号を含むブロックの位置に対して、他のブロックの順序が一意に定められるようにスクランブル処理を行うことが好ましい。そしてシフト部は、修正符号語ごとに、シフト量検出符号を含むブロックの位置が異なるように基準符号語の巡回シフト対象部分をスクランブル処理する。さらにシフト部は、コンテンツに埋め込まれる電子透かし情報ごとに、修正符号語ごとのブロックの配置を異ならせる。
【００８３】
この場合、電子透かし検出装置の処理部の巡回シフト系列検出部は、第１検出符号からシフト量検出符号をパターンマッチングなどを用いて直接検出する。そして巡回シフト系列検出部は、シフト量検出符号の位置とブロックの入れ替え順序との関係を表す参照テーブルを参照することにより、各巡回シフト対象部分におけるブロックの入れ替え順序を特定する。そして逆シフト部は、特定された入れ替え順序に従って、各巡回シフト対象部分のブロックを逆スクランブル処理して、ブロックの配列を元に戻す。なお、参照テーブルは、予め電子透かし検出装置の記憶部に記憶される。
【００８４】
次に第２の実施形態について説明する。
第２の実施形態による電子透かし埋め込み装置は、一つのコンテンツに埋め込まれる複数の修正符号語を生成するための複数のシフト量を、特定の乱数系列に従って決定する。この第２の実施形態による電子透かし埋め込み装置は、第１の実施形態と比較して、処理部のシフト部による処理が異なる。そこで以下では、シフト部の処理及び関連する事項に関して説明する。なお、電子透かし埋め込み装置のその他の構成要素に関しては、第１の実施形態による電子透かし埋め込み装置の対応する構成要素の説明を参照されたい。
【００８５】
電子透かし埋め込み装置の記憶部は、予め複数個の乱数系列R[0]、R[1]、...、R[L-1]を記憶する。各乱数系列に含まれる乱数は、0から(M-1)までの何れかの整数であり、Mは巡回シフト対象部分のビット長である。また、Lは２以上の整数であり、例えば、同一のコンテンツが配信される最大ユーザ数の想定値に設定される。なお、乱数系列は、例えば、線形合同法、メルセンヌ・ツイスタあるいはAES暗号を用いた乱数生成法といった様々な乱数生成法または擬似乱数生成法の何れかに従って作成されればよい。ただし、各乱数系列は、共通の乱数生成法及び共通の種を用いて生成された基準乱数系列から、互いに異なる先頭位置から一つのコンテンツに含まれる修正符号語の最大数だけ連続する乱数を取り出したものである。また、各乱数系列R[0]、R[1]、...、R[L-1]に周期的となる部分が含まれないように、基準乱数系列が生成されることが好ましい。例えば、線形合同法を用いて基準乱数系列が生成される場合、生成される乱数系列の周期がLに修正符号語の最大数を乗じた値よりも長くなるようなパラメータを用いて基準乱数系列を生成することが好ましい。なお、各乱数系列R[0]、R[1]、...、R[L-1]は、基準乱数系列の一部が重複するように選択されてもよい。例えば、各乱数系列R[0]、R[1]、...、R[L-1]は、それぞれ、基準乱数系列のi番目、(i+1)番目、...、(i+L-1)番目の乱数を先頭とする複数個の乱数の組であってもよい。
【００８６】
電子透かし埋め込み装置の処理部のシフト部は、コンテンツに電子透かし情報を埋め込む度に、記憶された乱数系列のうちの何れかの乱数系列R｛k](0≦k≦L-1)を選択する。そしてシフト部は、その選択した乱数系列R[k]に含まれる乱数の順序に従って各修正符号語に含まれる巡回シフト対象部分のシフト量を決定する。例えば、シフト部は、異なる電子透かし情報ごとに異なる乱数系列R[k]を選択する。そしてシフト部は、n番目(ただしnは、1以上の整数)の修正符号語に対するシフト量を、乱数系列R[k]のn番目の乱数[k][(n-1)]とする。なお、このシフト量の決定は、図８に示した電子透かし埋め込み処理のフローチャートにおけるステップＳ１０３の処理として実行される。
シフト部は、このように何れかの乱数系列に従って決定された複数のシフト量を用いて基準符号語の巡回シフト対象部分を巡回シフトすることにより、複数の修正符号語を生成する。そしてこの実施形態による電子透かし埋め込み装置は、それら複数の修正符号語をコンテンツに埋め込む。
【００８７】
一方、第２の実施形態による電子透かし検出装置は、第２の実施形態による電子透かし埋め込み装置により電子透かし情報が埋め込まれたコンテンツから電子透かし情報を抽出する。この第２の実施形態による電子透かし検出装置は、第１の実施形態による電子透かし検出装置と比較して、処理部の巡回シフト系列検出部の処理が異なる。そこで以下では、巡回シフト系列検出部について説明する。
この実施形態では、各修正符号語に対して適用されたシフト量が、予め準備された複数の乱数系列のうちの何れかに従って決定されているので、巡回シフト系列検出部は、それら複数の乱数系列の中から、最も確からしいものを決定すればよい。そこで巡回シフト系列検出部は、次式に従ってそれぞれの乱数系列に対するその確からしさを表す適合度を算出する。
【数３】
0005793865.tif 000004
ここでC[i][k]は、（２）式と同様に、第１検出符号に含まれる、先頭からi番目の修正符号語における、巡回シフト対象部分のk番目のビットに相当する値を表す。ただし、先頭の修正符号語も含まれるよう、iは0から(N-1)までの値を取る。またR[j][l]は、乱数系列R[j]のl番目の乱数を表す。Mは巡回シフト対象部分の符号長であり、Nは第１検出符号に含まれる修正符号語の数、すなわち、第１検出符号において検出された位置検出符号の数である。そしてv[j]は、乱数系列R[j]に対する適合度である。（３）式により求められる適合度は、着目する乱数系列に応じた複数のシフト量を打ち消すように複数の修正符号語を入れ替えたときの修正符号語のうちの一つと、その他の修正符号語との相互相関値の和を表す。
巡回シフト系列検出部は、jを変えつつ、適合度v[j]を求め、その適合度v[j]が最大となる乱数系列R[jmax]を特定する。そして巡回シフト系列検出部は、乱数系列R[jmax]のl番目の乱数を、第１検出符号に含まれるl番目の巡回シフト対象部分に対するシフト量とする。なお、このシフト量の決定は、図１２に示した電子透かし検出処理のフローチャートにおけるステップＳ２０３の処理として実行される。
【００８８】
この実施形態では、各修正符号語の生成に用いられるシフト量の組み合わせの数が、予め準備された乱数系列の数に限定されている。そのため、各修正符号語の生成に用いられるシフト量の組み合わせを求めるために、電子透かし検出装置は、その乱数系列の組の数だけ適合度を算出すればよい。そのため、この実施形態では、各修正符号語の生成に用いられるシフト量の組み合わせを求めるための演算量を第１の実施形態による電子透かし検出装置によるその演算量よりも削減できる。
【００８９】
上記の各実施形態による電子透かし埋め込み装置は、例えば、セットトップボックス、サーバあるいはパーソナルコンピュータに組み込まれる。そして電子透かし埋め込み装置が組み込まれた装置は、例えば、通信ネットワークあるいはアンテナを介して受信したコンテンツである動画像データに対して、動画像データを再生する際に上記の電子透かし埋め込み処理を実行する。その装置は、動画像データが所定の圧縮方式に従って圧縮されている場合、その動画像データに含まれる各画像をその所定の圧縮方式に従って復号する。そしてその装置は、その動画像データに含まれる各画像を時系列順に、その装置が有するバッファメモリに保存する。そしてその装置は、バッファメモリから時系列順に画像を読み出して、電子透かし埋め込み処理を実行し、電子透かし情報が埋め込まれた画像をディスプレイに表示させる。
【００９０】
さらに、上記の各実施形態による電子透かし埋め込み装置の処理部が有する各機能をコンピュータに実現させるコンピュータプログラムは、コンピュータによって読み取り可能な媒体に記録された形で提供されてもよい。同様に、上記の実施形態による電子透かし検出装置の処理部が有する各機能をコンピュータに実現させるコンピュータプログラムは、コンピュータによって読み取り可能な媒体に記録された形で提供されてもよい。
【００９１】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
【００９２】
以上説明した実施形態及びその変形例に関し、更に以下の付記を開示する。
（付記１）
電子データ化されたコンテンツ及び電子透かし情報を取得するインターフェース部と、
前記コンテンツに前記電子透かし情報を埋め込む処理部であって、
前記電子透かし情報を含むビット列を含む基準符号語を生成する符号語生成機能と、
前記基準符号語に含まれる前記ビット列の配列を、所定の入れ替え規則に従って電子透かし情報ごとに異なる複数のシフト量のそれぞれに応じて入れ替えることにより、互いに異なる複数の修正符号語を生成するシフト機能と、
前記コンテンツに前記複数の修正符号語を埋め込む透かし重畳機能と、
を実現する処理部と、
を有する電子透かし埋め込み装置。
（付記２）
前記所定の入れ替え規則は巡回シフトであり、
前記シフト機能は、前記コンテンツに前記電子透かし情報を埋め込む度に求められる複数の乱数に従って前記複数のシフト量を決定する、付記１に記載の電子透かし埋め込み装置。
（付記３）
前記シフト機能は、互いに異なる複数の乱数系列の何れかを前記コンテンツに前記電子透かし情報を埋め込む度に選択し、該選択された乱数系列に属する複数の乱数によって前記複数のシフト量を決定する、付記２に記載の電子透かし埋め込み装置。
（付記４）
前記符号語生成機能は、前記電子透かし情報に、前記コンテンツ中の前記複数の修正符号語のそれぞれの位置を特定するために用いられる位置検出符号と前記複数の修正符号語のそれぞれに対応する前記シフト量を特定するために用いられるシフト量検出符号とを付加することにより前記基準符号語を生成する、付記１〜３の何れか一項に記載の電子透かし埋め込み装置。
（付記５）
前記ビット列の配列は、前記電子透かし情報と前記シフト量検出符号とを含む、付記４に記載の電子透かし埋め込み装置。
（付記６）
電子データ化されたコンテンツに電子透かし情報を埋め込むことをコンピュータに実行させる電子透かし埋め込み用コンピュータプログラムであって、
前記電子透かし情報を含むビット列を含む基準符号語を生成し、
前記基準符号語に含まれる前記ビット列の配列を、所定の入れ替え規則に従って電子透かし情報ごとに異なる複数のシフト量のそれぞれに応じて入れ替えることにより、互いに異なる複数の修正符号語を生成し、
前記コンテンツに前記複数の修正符号語を埋め込む、
ことをコンピュータに実行させる電子透かし埋め込み用コンピュータプログラム。
（付記７）
電子データ化されたコンテンツ及び電子透かし情報を取得し、
前記電子透かし情報を含むビット列を含む基準符号語を生成し、
前記基準符号語に含まれる前記ビット列の配列を、所定の入れ替え規則に従って電子透かし情報ごとに異なる複数のシフト量のそれぞれに応じて入れ替えることにより、互いに異なる複数の修正符号語を生成し、
前記コンテンツに前記複数の修正符号語を埋め込む、
ことを含む電子透かし埋め込み方法。
（付記８）
電子透かし情報が埋め込まれた電子データ化されたコンテンツを取得するインターフェース部と、
前記コンテンツから前記電子透かし情報を検出する処理部であって、
前記コンテンツから、前記電子透かし情報を含むビット列の配列が所定の入れ替え規則に従って複数のシフト量の何れかに応じて入れ替えられた複数の修正符号語を検出し、該複数の修正符号語を含む第１検出符号を生成する符号語検出機能と、
前記第１検出符号に基づいて、前記複数の修正符号語のうちの第１の修正符号語に含まれる前記ビット列の配列を前記複数の修正符号語のうちの第２の修正符号語に含まれる前記ビット列の配列と一致させるように、前記第１の修正符号語の前記ビット列の配列を入れ替える第２のシフト量を求めるシフト系列検出機能と、
前記第２のシフト量を打ち消すように前記第１の修正符号語の前記ビット列の配列を前記所定の入れ替え規則に従って入れ替えてから前記第１の修正符号語と前記第２の修正符号語を合成することにより第２検出符号を生成する逆シフト機能と、
前記第２検出符号から前記電子透かし情報を抽出する電子透かし抽出機能と、
を実現する処理部と、
を有する電子透かし検出装置。
（付記９）
前記シフト系列検出機能は、前記第１の修正符号語の少なくとも一部を前記入れ替え規則に従って入れ替えながら、当該少なくとも一部と、前記第２の修正符号語の対応する部分との相互相関値を求め、該相互相関値が最大となるときの前記第１の修正符号語の少なくとも一部のシフト量を、前記第１の修正符号語に対する前記第２のシフト量とする、付記８に記載の電子透かし検出装置。
（付記１０）
前記複数のシフト量は、互いに異なる複数の乱数系列の中から前記コンテンツに前記電子透かし情報が埋め込まれる際に選択された乱数系列に属する複数の乱数によって決定され、
前記シフト系列検出機能は、前記複数の乱数系列のそれぞれごとに、当該乱数系列に応じた前記複数のシフト量を打ち消すように前記複数の修正符号語を入れ替えたときの前記第２の修正符号語とその他の修正符号語間の相互相関値の和である適合度を算出し、前記複数の乱数系列のうち、該適合度が最大となる乱数系列に属する複数の乱数の一つにより決定された前記第１の修正符号語についての前記シフト量を前記第１の修正符号語についての前記第２のシフト量とする、付記８に記載の電子透かし検出装置。
（付記１１）
前記複数の修正符号語のそれぞれは、所定のビットの組である位置検出符号を含み、
前記シフト系列検出機能は、前記第１検出符号から前記位置検出符号を検出することにより、前記複数の修正符号語を検出する、付記８〜１０の何れか一項に記載の電子透かし検出装置。
（付記１２）
前記複数の修正符号語のそれぞれの前記ビット列は、所定のビットの組であるシフト量検出符号を含み、
前記逆シフト機能は、前記第２検出符号から前記シフト量検出符号を検出し、当該シフト量検出符号が所定の位置となるように前記第２検出符号に含まれるビット列の配列を前記入れ替え規則に従って入れ替え、
前記電子透かし抽出機能は、前記ビット列の配列が入れ替えられた第２検出符号から前記電子透かし情報を抽出する、付記８〜１１の何れか一項に記載の電子透かし検出装置。
（付記１３）
電子データ化されたコンテンツに埋め込まれた電子透かし情報を検出することをコンピュータに実行させる電子透かし検出用コンピュータプログラムであって、
前記コンテンツから、前記電子透かし情報を含むビット列の配列が所定の入れ替え規則に従って複数のシフト量の何れかに応じて入れ替えられた複数の修正符号語を検出し、該複数の修正符号語を含む第１検出符号を生成し、
前記第１検出符号に基づいて、前記複数の修正符号語のうちの第１の修正符号語に含まれる前記ビット列の配列を前記複数の修正符号語のうちの第２の修正符号語に含まれる前記ビット列の配列と一致させるように、前記第１の修正符号語の前記ビット列の配列を入れ替える第２のシフト量を求め、
前記第２のシフト量を打ち消すように前記第１の修正符号語の前記ビット列の配列を前記所定の入れ替え規則に従って入れ替えてから前記第１の修正符号語と前記第２の修正符号語を合成することにより第２検出符号を生成し、
前記第２検出符号から前記電子透かし情報を抽出する、
ことをコンピュータに実行させる電子透かし検出用コンピュータプログラム。
（付記１４）
電子透かし情報が埋め込まれた電子データ化されたコンテンツを取得し、
前記コンテンツから、前記電子透かし情報を含むビット列の配列が所定の入れ替え規則に従って複数のシフト量の何れかに応じて入れ替えられた複数の修正符号語を検出し、該複数の修正符号語を含む第１検出符号を生成し、
前記第１検出符号に基づいて、前記複数の修正符号語のうちの第１の修正符号語に含まれる前記ビット列の配列を前記複数の修正符号語のうちの第２の修正符号語に含まれる前記ビット列の配列と一致させるように、前記第１の修正符号語の前記ビット列の配列を入れ替える第２のシフト量を求め、
前記第２のシフト量を打ち消すように前記第１の修正符号語の前記ビット列の配列を前記所定の入れ替え規則に従って入れ替えてから前記第１の修正符号語と前記第２の修正符号語を合成することにより第２検出符号を生成し、
前記第２検出符号から前記電子透かし情報を抽出する、
ことをコンピュータに実行させる電子透かし検出方法。
【符号の説明】
【００９３】
１    電子透かし埋め込み装置
１１    インターフェース部
１２    記憶部
１３    処理部
２１    符号語生成部
２２    シフト部
２３    透かし情報埋め込み部
２    電子透かし検出装置
３１    インターフェース部
３２    記憶部
３３    処理部
４１    符号語検出部
４２    巡回シフト系列検出部
４３    逆シフト部
４４    透かし情報抽出部
【図１】
0005793865.tif 000005
【図２】
0005793865.tif 000006
【図３】
0005793865.tif 000007
【図４】
0005793865.tif 000008
【図６】
0005793865.tif 000009
【図７】
0005793865.tif 000010
【図８】
0005793865.tif 000011
【図９】
0005793865.tif 000012
【図１０】
0005793865.tif 000013
【図１１】
0005793865.tif 000014
【図１２】
0005793865.tif 000015
【図１３】
0005793865.tif 000016
【図１４】
0005793865.tif 000017
【図５】
0005793865.tif 000018