説明

情報処理装置、コンピュータプログラム、および情報処理方法

【課題】 3次元図形を構成する複数の頂点に対応する複数の頂点データを有する3次元図形データに対する電子透かしなどの付加情報の埋め込みにおいて、データの改ざんが検出されやすくする。
【解決手段】 図形データ23における複数の頂点データのうちの少なくとも1つの頂点データについて、その頂点データにおける一座標の浮動小数点実数データの仮数部の一部に付加情報を埋め込み、その頂点データにおける別座標の浮動小数点実数データの仮数部の一部に、少なくともその仮数部の残りの部分と付加情報とから一方向性関数により得られる符号を埋め込む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、コンピュータプログラム、および情報処理方法に関するものである。
【背景技術】
【0002】
3次元図形を構成する複数の頂点に対応する複数の頂点データを有する3次元図形データに対して電子透かしを埋め込む技術が提案されている(例えば非特許文献1,2参照)。
【0003】
非特許文献1に記載の技術では、電子透かしの埋込処理において、頂点が挿入頂点(mark vertex)、調節頂点(adjusting vertex)などに分類され、挿入頂点の頂点データ(x,x,x)のx座標に、挿入頂点であることを示す情報が埋め込まれ、x座標に電子透かしが埋め込まれ、x座標に電子透かしのハッシュ値が埋め込まれる。
【0004】
座標に電子透かしを埋め込みx座標にハッシュ値を埋め込む際には、まず、挿入頂点に隣接する頂点のx座標値の重心とx座標値の重心が計算され、それらの値と、電子透かしの値およびハッシュ値とから一意に得られる値が頂点データのx座標およびx座標にそれぞれ代入される。そして、x座標への電子透かしの埋め込みおよびx座標へのハッシュ値の埋め込みに起因して発生するx座標値の重心の変動とx座標値の重心の変動を補償するために、調節頂点の位置(x座標値およびx座標値)が調節される。
【0005】
そして、電子透かしの取出処理において、各頂点の頂点データのx座標の値に基づいて挿入頂点が特定され、挿入頂点の頂点データのx座標およびx座標から電子透かしおよびハッシュ値を取り出し、取り出した電子透かしのハッシュ値を計算し、計算したハッシュ値と取り出したハッシュ値とを比較して認証が行う。計算したハッシュ値と取り出したハッシュ値とが同一であれば、改ざんがないと判断され、認証に成功する。
【0006】
しかし、この方法では、頂点データの各座標が浮動小数点の実数データである場合、丸め誤差などの演算誤差が発生するため、改ざんがない場合でも、電子透かしの取出処理において、計算したハッシュ値と取り出したハッシュ値とが一致しないことがあり、実用的ではない。
【0007】
非特許文献2に記載の技術では、電子透かしの埋込処理において、互いに隣接しないように挿入頂点(mark vertex)が指定され、挿入頂点の頂点データ(x,x,x)におけるx座標の浮動小数点実数データの仮数部の一部に、挿入頂点であることを示す情報が埋め込まれ、x座標の浮動小数点実数データの仮数部の一部に電子透かしが埋め込まれ、x座標の浮動小数点実数データの仮数部の一部に電子透かしのハッシュ値が埋め込まれる。
【0008】
座標に電子透かしを埋め込みx座標にハッシュ値を埋め込む際には、まず、挿入頂点に隣接する頂点のx座標値の浮動小数点実数データの仮数部の一部についての重心とx座標値の浮動小数点実数データの仮数部の一部について重心が計算され、それらの値と電子透かしの値およびハッシュ値との間のビット演算により得られる排他的論理和が頂点データのx座標およびx座標にそれぞれ代入される。
【0009】
そして、電子透かしの取出処理において、各頂点の頂点データのx座標の値に基づいて挿入頂点が特定され、挿入頂点の頂点データのx座標およびx座標からビット演算で電子透かしおよびハッシュ値を取り出し、取り出した電子透かしのハッシュ値を計算し、計算したハッシュ値と取り出したハッシュ値とを比較して認証が行う。計算したハッシュ値と取り出したハッシュ値とが同一であれば、改ざんがないと判断され、認証に成功する。
【0010】
非特許文献2に記載の技術では、ビット演算で挿入頂点のx座標およびx座標に対する電子透かしおよびハッシュ値の埋め込みおよび取り出しが行われるため、上述のような浮動小数点演算の丸め誤差などの演算誤差が発生しない。
【先行技術文献】
【非特許文献】
【0011】
【非特許文献1】「A public fragile watermarking scheme for 3D model authentication」、Chang-Min Chou, Din-Chang Tseng著、Computer-Aided Design, Volume 38, Issue 11, November 2006
【非特許文献2】「A numerically stable fragile watermarking scheme for authenticating 3D models」、Wei-Bo Wang et al.著、Computer-Aided Design, Volume 40, Issue 5, May 2008
【発明の概要】
【発明が解決しようとする課題】
【0012】
しかしながら、上述の非特許文献2に記載の技術では、挿入頂点の頂点データにおけるx3座標の浮動小数点実数データの仮数部の一部にのみ、電子透かしのハッシュ値が埋め込まれるため、仮数部の残りの部分が改ざんされた場合でも、認証に成功してしまうという問題がある。また、埋め込める情報量が非特許文献1の方法と比較して、減少してしまうという問題点もある。
【0013】
本発明は、上記の問題に鑑みてなされたものであり、3次元図形を構成する複数の頂点に対応する複数の頂点データを有する3次元図形データに対する電子透かしなどの付加情報の埋め込みにおいて、データの改ざんが検出されやすくなるようにする情報処理装置、コンピュータプログラム、および情報処理方法を得ることを目的とする。
【課題を解決するための手段】
【0014】
上記の課題を解決するために、本発明では以下のようにした。
【0015】
本発明に係る情報処理装置は、3次元図形を構成する複数の頂点に対応する複数の頂点データを有する3次元図形データを記憶する記憶手段と、記憶手段から3次元図形データを読み出し、複数の頂点データのうちの少なくとも1つの頂点データについて、その頂点データにおける一座標の浮動小数点実数データの仮数部の一部に付加情報を埋め込み、その頂点データにおける別座標の浮動小数点実数データの仮数部の一部に、少なくともその仮数部の残りの部分と付加情報とから一方向性関数により得られる符号を埋め込む情報埋込手段とを備える。
【0016】
これにより、少なくともその仮数部の残りの部分と付加情報とから一方向性関数により得られる符号が埋め込まれるため、付加情報の取り出しの際に、データの改ざんが検出されやすくなる。
【0017】
また、本発明に係る情報処理装置は、上記の情報処理装置に加え、次のようにしてもよい。この場合、情報処理装置は、複数の頂点の一部または全部を、挿入頂点、調節頂点、および孤立頂点に分類する頂点分類手段をさらに備える。挿入頂点は、調節頂点と対になり、頂点データに付加情報を埋め込む頂点である。調節頂点は、挿入頂点と対になり、挿入頂点への付加情報の埋め込みに起因して発生する所定のパラメータ値の変動を補償するために座標値を変更させられる頂点である。孤立頂点は、隣接する頂点がすべて調節頂点であり、頂点データに付加情報を埋め込む頂点である。そして、情報埋込手段は、挿入頂点の頂点データにおける残りの座標の浮動小数点実数データの仮数部の一部に、挿入頂点であることを示す所定の第1識別値を埋め込み、孤立頂点の頂点データにおける残りの座標の浮動小数点実数データの仮数部の一部に、当該頂点が孤立頂点であることを示す所定の第2識別値を埋め込む。この第2識別値は、第1識別値とは異なる。
【0018】
また、本発明に係る情報処理装置は、上記の情報処理装置のいずれかに加え、次のようにしてもよい。この場合、情報処理装置は、複数の頂点の一部または全部を、挿入頂点および調節頂点に分類する頂点分類手段をさらに備える。挿入頂点は、調節頂点と対になり、頂点データに付加情報を埋め込む頂点である。調節頂点は、挿入頂点と対になり、挿入頂点への付加情報の埋め込みに起因して発生する所定のパラメータ値の変動を補償するために座標値を変更させられる頂点である。そして、情報埋込手段は、挿入頂点に隣接する頂点の頂点データにおける一座標および別座標の浮動小数点実数データの仮数部の一部から座標ごとに所定のパラメータ値を整数演算で計算し、調節頂点の頂点データにおける一座標および別座標の浮動小数点実数データの仮数部の一部を、所定のパラメータ値の変動を補償するために変更する。
【0019】
これにより、所定のパラメータの値が整数演算で計算されるため、丸め誤差などの演算誤差が発生せず、付加情報の取り出し時に、この所定のパラメータを使用した認証を正確に行うことができる。
【0020】
本発明に係るコンピュータプログラムは、3次元図形を構成する複数の頂点に対応する複数の頂点データを有する3次元図形データを記憶する記憶手段を有する情報処理装置におけるコンピュータを、記憶手段から3次元図形データを読み出し、複数の頂点データのうちの少なくとも1つの頂点データについて、その頂点データにおける一座標の浮動小数点実数データの仮数部の一部に付加情報を埋め込み、その頂点データにおける別座標の浮動小数点実数データの仮数部の一部に、少なくともその仮数部の残りの部分と付加情報とから一方向性関数により得られる符号を埋め込む情報埋込手段として機能させる。
【0021】
これにより、少なくともその仮数部の残りの部分と付加情報とから一方向性関数により得られる符号が埋め込まれるため、付加情報の取り出しの際に、データの改ざんが検出されやすくなる。
【0022】
本発明に係る情報処理方法は、3次元図形を構成する複数の頂点に対応する複数の頂点データを有する3次元図形データを記憶手段から読み出すステップと、複数の頂点データのうちの少なくとも1つの頂点データについて、その頂点データにおける一座標の浮動小数点実数データの仮数部の一部に付加情報を埋め込むステップと、その頂点データにおける別座標の浮動小数点実数データの仮数部の一部に、少なくともその仮数部の残りの部分と付加情報とから一方向性関数により得られる符号を埋め込むステップとを備える。
【0023】
これにより、少なくともその仮数部の残りの部分と付加情報とから一方向性関数により得られる符号が埋め込まれるため、付加情報の取り出しの際に、データの改ざんが検出されやすくなる。
【0024】
本発明に係る情報処理装置は、3次元図形を構成する複数の頂点に対応する複数の頂点データを有する3次元図形データを記憶する記憶手段と、記憶手段から3次元図形データを読み出し、複数の頂点データのうちの少なくとも1つの頂点データについて、その頂点データにおける一座標の浮動小数点実数データの仮数部の一部から付加情報を取り出し、その頂点データにおける別座標の浮動小数点実数データの仮数部の一部から符号を取り出し、少なくとも取り出した符号と仮数部の残りの部分とから一方向性関数により得られる値で、取り出した符号の認証を行う情報取出手段とを備える。
【0025】
これにより、少なくともその仮数部の残りの部分と付加情報とから一方向性関数により得られる符号が埋め込まれているため、付加情報の取り出しの際に、データの改ざんが検出されやすくなる。
【0026】
また、本発明に係る情報処理装置は、上記の情報処理装置に加え、次のようにしてもよい。この場合、情報処理装置は、ある頂点の頂点データにおける残りの座標の浮動小数点実数データの仮数部の一部の値が所定の第1識別値である場合、その頂点を挿入頂点と特定し、仮数部の一部の値が所定の第2識別値である場合、その頂点を孤立頂点と特定する頂点種類特定手段をさらに備える。挿入頂点は、調節頂点と対になり、頂点データに付加情報を埋め込む頂点である。調節頂点は、挿入頂点と対になり、挿入頂点への付加情報の埋め込みに起因して発生する所定のパラメータ値の変動を補償するために座標値を変更させられる頂点である。孤立頂点は、隣接する頂点がすべて調節頂点であり、頂点データに付加情報を埋め込む頂点である。第2識別値は、第1識別値とは異なる。そして、情報取出手段は、挿入頂点および孤立頂点の頂点データについて、付加情報および符号を取り出し、少なくとも取り出した符号と仮数部の残りの部分とから一方向性関数により得られる値で、取り出した符号の認証を行う。
【0027】
本発明に係るコンピュータプログラムは、3次元図形を構成する複数の頂点に対応する複数の頂点データを有する3次元図形データを記憶する記憶手段を有する情報処理装置におけるコンピュータを、記憶手段から3次元図形データを読み出し、複数の頂点データのうちの少なくとも1つの頂点データについて、その頂点データにおける一座標の浮動小数点実数データの仮数部の一部から付加情報を取り出し、その頂点データにおける別座標の浮動小数点実数データの仮数部の一部から符号を取り出し、少なくとも取り出した符号と仮数部の残りの部分とから一方向性関数により得られる値で、取り出した符号の認証を行う情報取出手段として機能させる。
【0028】
これにより、少なくともその仮数部の残りの部分と付加情報とから一方向性関数により得られる符号が埋め込まれているため、付加情報の取り出しの際に、データの改ざんが検出されやすくなる。
【0029】
本発明に係る情報処理方法は、3次元図形を構成する複数の頂点に対応する複数の頂点データを有する3次元図形データを記憶手段から読み出すステップと、複数の頂点データのうちの少なくとも1つの頂点データについて、その頂点データにおける一座標の浮動小数点実数データの仮数部の一部から付加情報を取り出すステップと、その頂点データにおける別座標の浮動小数点実数データの仮数部の一部から符号を取り出すステップと、少なくとも取り出した符号と仮数部の残りの部分とから一方向性関数により得られる値で、取り出した符号の認証を行うステップとを備える。
【0030】
これにより、少なくともその仮数部の残りの部分と付加情報とから一方向性関数により得られる符号が埋め込まれているため、付加情報の取り出しの際に、データの改ざんが検出されやすくなる。
【発明の効果】
【0031】
本発明によれば、3次元図形を構成する複数の頂点に対応する複数の頂点データを有する3次元図形データに対する電子透かしなどの付加情報の埋め込みにおいて、データの改ざんが検出されやすくなる。
【図面の簡単な説明】
【0032】
【図1】図1は、本発明の実施の形態に係る情報処理装置の構成を示すブロック図である。
【図2】図2は、図1におけるCPUでプログラムが実行されることにより実現される処理部を示すブロック図である。
【図3】図3は、本発明の実施の形態における各頂点データの構造の一例を示す図である。
【図4】図4は、本発明の実施の形態における付加情報の埋め込みについて説明するフローチャートである。
【図5】図5は、本発明の実施の形態における挿入頂点および調節頂点の分類について説明する図である。
【図6】図6は、本発明の実施の形態における付加情報の取り出しについて説明するフローチャートである。
【発明を実施するための形態】
【0033】
以下、図に基づいて本発明の実施の形態を説明する。
【0034】
図1は、本発明の実施の形態に係る情報処理装置の構成を示すブロック図である。図1に示す情報処理装置1は、コンピュータを内蔵しており、各種プログラムを実行して演算や処理を実行する。情報処理装置1としては、例えばパーソナルコンピュータが使用される。
【0035】
端末装置1において、CPU(Central Processing Unit)11は、プログラムに記述された処理を実行する演算処理装置である。また、ROM(Read Only Memory)12は、プログラムおよびデータを予め記憶した不揮発性のメモリである。また、RAM(Random Access Memory)13は、プログラムを実行する際にそのプログラムおよびデータを一時的に記憶するメモリである。
【0036】
CPU11、ROM12およびRAM13は、バスやコントローラチップを介して互いに接続されており、さらに、バス、コントロールチップ、インタフェースなどを介して記憶装置14、表示装置15、および入力装置16に接続されている。
【0037】
記憶装置14は、図示せぬオペレーティングシステム、各種プログラム、および各種データを格納する記録媒体を有する装置である。記憶装置14としては、不揮発性半導体メモリ、ハードディスク駆動装置、ディスクアレイ装置などが使用される。また、表示装置15は、操作画面などを表示する装置である。表示装置15としては、例えば液晶ディスプレイが使用される。入力装置16は、操作画面に対する操作を入力するための装置である。入力装置16としては、例えばキーボードやマウスが使用される。
【0038】
この実施の形態では、記憶装置14には、埋め込みプログラム21、取り出しプログラム22、および図形データ23が記憶されている。なお、プログラム21,22を、CD−ROM、DVD−ROMなどの可搬性のある記録媒体に記録し、その記録媒体から情報処理装置1にインストールするようにしてもよい。
【0039】
埋め込みプログラム21は、電子透かしなどの付加情報を図形データ23に埋め込むためのコンピュータプログラムである。
【0040】
取り出しプログラム22は、電子透かしなどの付加情報を埋め込まれた図形データからその付加情報を取り出すためのコンピュータプログラムである。
【0041】
図形データ23は、3次元図形を構成する複数の頂点に対応する複数の頂点データを有する3次元図形データである。図形データ23は、例えば、STL形式のデータである。
【0042】
CPU11は、ROM12または記憶装置14に格納されているプログラムをRAM13にロードして実行する。これにより、プログラムに記述された処理を実行する処理部が実現される。
【0043】
図2は、図1におけるCPU11でプログラム21,22が実行されることにより実現される処理部を示すブロック図である。
【0044】
この実施の形態では、付加情報を図形データ23に埋め込むために埋め込みプログラム21が実行されることにより、頂点分類部31および情報埋込部32が実現され、付加情報を埋め込まれた図形データから付加情報を取り出すために取り出しプログラム22が実行されることにより、頂点種類特定部41および情報取出部42が実現される。
【0045】
図3は、本発明の実施の形態における各頂点データの構造の一例を示す図である。
【0046】
図3(A)は、IEEE754で規定されている浮動小数点実数データのデータ構造を示す図である。S(1ビット)は、符号ビットであり、EXP(8ビット)は、指数部であり、FRAC(23ビット)は、仮数部である。
【0047】
頂点データが浮動小数点実数データである場合において、付加情報を埋め込む頂点データ(x,x,x)については、各座標x,x,xの浮動小数点実数データの仮数部FRACの一部nx(i=1,2,3)が変更される。図3(B)に示すように、ここでは、nxは、例えば、下位の所定ビット長(ここでは5ビット)の部分とされる。
【0048】
頂点分類部31は、図形データ23について、頂点間のリンクに基づいて、複数の頂点の一部または全部を、挿入頂点、調節頂点、および孤立頂点に分類する。挿入頂点は、調節頂点と対となり、頂点データに付加情報を埋め込む頂点である。調節頂点は、挿入頂点と対になり、挿入頂点への付加情報の埋め込みに起因して発生する所定のパラメータ値の変動を補償するために座標値を変更させられる頂点である。孤立頂点は、隣接する頂点がすべて調節頂点であり、頂点データに付加情報を埋め込む頂点である。なお、ある頂点とその頂点に隣接する頂点とは1本のリンクで直接接続されている。
【0049】
この実施の形態では、上述のパラメータは、x座標およびx座標のそれぞれについての重心nx,nxであって、式(1)で示される。
【0050】
【数1】

【0051】
ここで、N(v)は、注目頂点(挿入頂点または孤立頂点)に隣接する頂点(つまり、注目頂点との間にリンクがある頂点)の集合であり、nxは、各隣接頂点のx座標のデータの所定部分(図3(B)の場合、連続する下位5ビット)の値であり、|N(v)|は、注目頂点に隣接する頂点の個数である。Maxは、nxの最大値maxに1を加算した数値である。例えば、nxのビット長が5である場合、Maxは32である。key(j=2,3)は、剰余演算modの値域を調節するためのx座標(j=2)とx座標(j=3)の所定の拡散係数である。なお、keyは秘匿され公開されない。
【0052】
情報埋込部32は、RAM13または記憶装置14から図形データ23を読み出し、複数の頂点データのうちの少なくとも1つの頂点データについて、その頂点データにおける一座標(ここではx座標)の浮動小数点実数データの仮数部の一部に付加情報を埋め込み、その頂点データにおける別座標(ここではx座標)の浮動小数点実数データの仮数部の一部に、少なくともその仮数部の残りの部分と付加情報とから一方向性関数により得られる符号を埋め込む。この実施の形態では、一方向性関数は、ハッシュ関数である。
【0053】
具体的には、情報埋込部32は、挿入頂点の頂点データにおける残りの座標(ここではx座標)の浮動小数点実数データの仮数部の一部nxに、挿入頂点であることを示す所定の第1識別値を埋め込み、孤立頂点の頂点データにおける残りの座標(ここではx座標)の浮動小数点実数データの仮数部の一部に、当該頂点が孤立頂点であることを示す所定の第2識別値を埋め込む。この第2識別値は、第1識別値とは異なる。
【0054】
例えば、情報埋込部32は、挿入頂点および孤立頂点のx座標について、式(2)に従って、元のnxにnx’を代入する。つまり、仮数部のうち、nxの部分が変更される。
【0055】
【数2】

【0056】
ここで、keyは、第1識別値であり、第2識別値は、key/2となる。なお、keyは、nxと同一のビット長のデータであり、key/2は整数となる。なお、keyは秘匿され公開されない。
【0057】
挿入頂点および孤立頂点のいずれでもない頂点のnxが、keyおよびkey/2のいずれかと同一である場合には、nx’は、key/3とされる。なお、key/3も整数となる。挿入頂点および孤立頂点のいずれでもない頂点について、nxがkeyおよびkey/2のいずれでもない場合、nx’=nxとされる。
【0058】
また、例えば、情報埋込部32は、挿入頂点および孤立頂点のx座標およびx座標について、式(3)に従って、ビット演算(式(3)ではビットごとの排他的論理和)でnx’を計算し、nxにnx’を代入し、nxにnx’を代入する。
【0059】
【数3】

【0060】
ここで、wは、i番目の電子透かしなどの付加情報であり、hはハッシュ関数であり、Nvhは、仮数部における、nx以外の残りの部分の値である。
【0061】
この実施の形態では、情報埋込部32は、wとNvhを引数として、ハッシュ関数hの値を計算し、そのハッシュ関数hの値とnxとの排他的論理和をnx’として計算する。
【0062】
また、情報埋込部32は、挿入頂点に隣接する頂点の頂点データにおける一座標(ここではx座標)および別座標(ここではx座標)の浮動小数点実数データの仮数部の一部から、座標ごとに所定のパラメータ値を整数演算で計算し、調節頂点の頂点データにおける一座標(ここではx座標)および別座標(ここではx座標)の浮動小数点実数データの仮数部の一部を、所定のパラメータ値の変動を補償するために変更する。
【0063】
この実施の形態では、式(3)に従って挿入頂点の頂点データが変更されるため、調節頂点のx座標およびx座標のデータにおける、nxと同一の所定部分(図3(B)の場合、下位5ビット)nx’adの値が、式(4)に従って変更される。
【0064】
【数4】

【0065】
ここで、N(mv)は、挿入頂点に隣接する頂点から調節頂点を除いた集合である。kは、0または1の値を有する係数であって、式(4)の右辺第1項から第2項を減算して得られる値が負である場合にはk=1とし、式(4)の右辺第1項から第2項を減算して得られる値が正である場合にはk=0とする。つまり、nx’adが5ビットである場合、nx’adの値は、0から31(つまり、max)のいずれかの値であり、負とはならないため、このように計算される。
【0066】
また、頂点種類特定部41は、ある頂点の頂点データにおける、後述の付加情報および符号の取り出し元となる2つの座標以外の残りの座標(ここではx座標)の浮動小数点実数データの仮数部の一部の値が上述の第1識別値である場合、その頂点を挿入頂点と特定し、仮数部の一部の値が上述の第2識別値である場合、その頂点を孤立頂点と特定する。
【0067】
情報取出部42は、この実施の形態に示す方法で付加情報を埋め込まれた3次元図形データ(図示せず)を、RAM13または記憶装置14から読み出し、複数の頂点データのうちの少なくとも1つの頂点データについて、その頂点データにおける一座標(ここではx座標)の浮動小数点実数データの仮数部の一部から付加情報を取り出し、その頂点データにおける別座標(ここではx座標)の浮動小数点実数データの仮数部の一部から符号を取り出し、少なくとも取り出した符号と仮数部の残りの部分とから一方向性関数により得られる値で、取り出した符号の認証を行う。この一方向性関数は、付加情報を埋め込む際に使用される上述の一方向性関数と同一の関数である。
【0068】
具体的には、情報取出部42は、挿入頂点および孤立頂点の頂点データについて、付加情報および符号を取り出し、少なくとも取り出した符号と仮数部の残りの部分とから一方向性関数により得られる値で、取り出した符号の認証を行う。
【0069】
情報取出部42は、挿入頂点および孤立頂点の頂点データについて、式(1)に従って、x座標およびx座標の重心nx,nxを計算するとともに、x座標およびx座標のデータの仮数部の所定部分nx’,nx’を抽出し、式(5)に従って、付加情報w’および符号(埋め込み時のハッシュ値)h’を取り出す。なお、w’は、i番目の付加情報を示し、h’は、i番目の符号を示している。つまり、挿入頂点および孤立頂点の数が合計n個であれば、n対の付加情報および符号が取り出される。
【0070】
【数5】

【0071】
次に、上記情報処理装置の動作について説明する。ここでは、付加情報の埋め込みの際の動作と、付加情報の取り出しの際の動作とについて説明する。
【0072】
(1)付加情報の埋め込み
【0073】
図4は、本発明の実施の形態における付加情報の埋め込みについて説明するフローチャートである。
【0074】
まず、頂点分類部31は、図形データ23を読み出し、図形データ23における頂点を注目頂点として1つずつ選択し、分類処理を行っていく。
【0075】
最初に、頂点分類部31は、図形データ23におけるすべての頂点を調節頂点候補とする(ステップS1)。例えば、各頂点の頂点データに関連付けて、その頂点の種類を示す頂点種類データがRAM13上に設けられ、そのデータの初期値が、調節頂点候補を示す値とされる。
【0076】
次に、頂点分類部31は、注目頂点としてまだ処理していない頂点があるか否かを判定する(ステップS2)。
【0077】
注目頂点としてまだ処理していない(つまり、挿入頂点、調節頂点および孤立頂点として確定しておらず、注目頂点として選択されていない)1または複数の頂点がある場合、頂点分類部31は、その1または複数の頂点から1つの頂点を注目頂点として選択し(ステップS3)、その注目頂点に隣接する頂点を図形データ23に基づいて特定し、その隣接する頂点の頂点種類データを参照して、その注目頂点に隣接する頂点がすべて調節頂点であるか否かを判定する(ステップS4)。
【0078】
その注目頂点に隣接する頂点がすべて調節頂点である場合、頂点分類部31は、その注目頂点を孤立頂点に分類し、その注目頂点の頂点種類データの値を、孤立頂点であることを示す値とする(ステップS5)。
【0079】
一方、その注目頂点に隣接する頂点の少なくとも1つが調節頂点ではない場合、頂点分類部31は、その注目頂点に隣接する頂点の少なくとも1つが調節頂点候補であるか否かを判定する(ステップS6)。
【0080】
その注目頂点に隣接する頂点のいずれも調節頂点候補ではない場合、この注目頂点の処理を終了し、ステップS2に戻る。
【0081】
一方、その注目頂点に隣接する頂点の少なくとも1つが調節頂点候補である場合、頂点分類部31は、その注目頂点を挿入頂点とし、その注目頂点に隣接する調節頂点候補の1つを選択し、その選択した頂点を、その挿入頂点と対をなす調節頂点とする(ステップS7)。このとき、頂点分類部31は、その注目頂点の頂点種類データの値を、挿入頂点であることを示す値とし、その選択した隣接頂点の頂点種類データの値を、調節頂点であることを示す値とする。また、この2つの頂点が対であることを示す情報も頂点種類データに含められる。
【0082】
そして、頂点分類部31は、その注目頂点に隣接する頂点のうちの、調節頂点以外の頂点を調節頂点候補から外す(ステップS8)。このとき、頂点分類部31は、その注目頂点に隣接する頂点のうちの、調節頂点以外の頂点の頂点種別データの値を、調節頂点候補の値から、別の所定値へ変更する。
【0083】
ステップS7,S8において挿入頂点と調節頂点との対が選択された後、この注目頂点の処理を終了し、ステップS2に戻る。
【0084】
このようにして、図形データ23についての一部または全部の頂点のそれぞれが、挿入頂点、調節頂点、および孤立頂点のいずれかに分類される。
【0085】
ここで、具体例について説明する。図5は、本発明の実施の形態における挿入頂点および調節頂点の分類について説明する図である。図5(A)は、図形データ23による頂点およびリンクの一例を示している。この図形には、頂点#1から頂点#7が存在している。
【0086】
まず、これらの頂点#1〜#7は、調節頂点候補とされる(ステップS1)。次に、頂点#1が選択される(ステップS3)。頂点#1について、隣接する頂点の少なくとも1つが調節頂点ではなく(ステップS4)、かつ隣接する頂点の少なくとも1つが調節頂点候補であるので(ステップS6)、図5(B)に示すように、頂点#1は挿入頂点とされ、それに隣接する頂点のうちの頂点#4が調節頂点とされる(ステップS7)。なお、図5において、黒丸の頂点は挿入頂点を表し、白丸の頂点は調節頂点を表している。そして、その他の隣接頂点である、頂点#2、頂点#3、および頂点#5は、調節頂点候補から外される(ステップS8)。
【0087】
次に、頂点種類が未確定である頂点#2が選択される(ステップS3)。頂点#2について、隣接する頂点の少なくとも1つが調節頂点ではなく(ステップS4)、かつ隣接する頂点の少なくとも1つが調節頂点候補であるので(ステップS6)、図5(C)に示すように、頂点#2は挿入頂点とされ、それに隣接する頂点のうちの頂点#6が調節頂点とされる(ステップS7)。そして、その他の隣接する調節頂点候補の頂点#7は、調節頂点候補から外される(ステップS8)。
【0088】
次に、頂点種類が未確定である頂点#3が選択される(ステップS3)。頂点#3について、隣接する頂点の少なくとも1つが調節頂点ではなく(ステップS4)、かつ隣接する頂点のいずれも調節頂点候補ではないので(ステップS6)、頂点#3についての処理は終了する。
【0089】
次に、頂点種類が未確定である頂点#5が選択される(ステップS3)。頂点#5について、隣接する頂点の少なくとも1つが調節頂点ではなく(ステップS4)、かつ隣接する頂点の少なくとも1つが調節頂点候補であるので(ステップS6)、図5(D)に示すように、頂点#5は挿入頂点とされ、それに隣接する頂点のうちの頂点#7が調節頂点とされる(ステップS7)。
【0090】
そして、頂点種類が未確定である未処理の頂点がなくなったため、ここで、頂点種類の分類処理は終了される。
【0091】
上述のようにして、頂点種類が分類された後、情報埋込部32は、挿入頂点、調節頂点、孤立頂点、およびそれら以外について、まず、その頂点種類に応じて、式(2)に従って、X(x)座標を変更する(ステップS9)。つまり、情報埋込部32は、頂点種類データの値に基づいて頂点種類を特定し、式(2)に従って、変更後のX(x)座標の値を特定し、その頂点の頂点データのX(x)座標の値をその特定した値で変更する。
【0092】
次に、情報埋込部32は、各挿入頂点について、Y(x)座標およびZ(x)座標の値を、式(3)に従って変更する(ステップS10)。さらに、情報埋込部32は、その挿入頂点と対をなす調節頂点について、Y(x)座標およびZ(x)座標の値を、式(4)に従って変更する(ステップS11)。
【0093】
また、情報埋込部32は、各孤立頂点について、Y(x)座標およびZ(x)座標の値を、式(3)に従って変更する(ステップS12)。
【0094】
このようにして、図形データ23から、付加情報が埋め込まれた図形データが生成される。なお、頂点種別データは、図形データへの付加情報の埋め込み時のみに使用され、付加情報が埋め込まれた図形データには付加されていない。このようにして生成された図形データは、例えば記憶装置14に記憶される。
【0095】
(2)付加情報の取り出し
【0096】
上述のようにして付加情報が埋め込まれた図形データからは、付加情報を取り出すことが可能である。
【0097】
図6は、本発明の実施の形態における付加情報の取り出しについて説明するフローチャートである。
【0098】
頂点種類特定部41は、注目頂点としてまだ処理していない頂点があるか否かを判定する(ステップS21)。
【0099】
注目頂点としてまだ処理していない1または複数の頂点がある場合、頂点種類特定部41は、その1または複数の頂点から1つの頂点を注目頂点として選択し(ステップS22)、その注目頂点の頂点種別がその注目頂点の頂点データにおけるX(x)座標の値に基づいて特定する(ステップS23)。式(2)に示す分類に基づいて、頂点種別が特定される。
【0100】
そして、その注目頂点の頂点種別が挿入頂点である場合(ステップS24)、情報取出部42は、その注目頂点の頂点データにおけるY(x)座標およびZ(x)座標の値から、式(5)に従って付加情報w’と符号h’を取り出す(ステップS25)。
【0101】
次に、情報取出部42は、この付加情報w’とx座標の仮数部のnx以外の残りのビット領域Nvh’とを引数として、式(3)におけるハッシュ関数hの値を計算し、その値と符号h’とを比較し、両者が一致した場合、付加情報w’が正しい(改ざんされていない)ものと認め、両者が一致しない場合、付加情報w’が正しくない(改ざんされている)ものと認める(ステップS26)。
【0102】
一方、その注目頂点の頂点種別が挿入頂点ではなく孤立頂点である場合(ステップS27)、情報取出部42は、その注目頂点の頂点データにおけるY(x)座標およびZ(x)座標の値から、式(5)に従って付加情報w’と符号h’を取り出す(ステップS28)。
【0103】
次に、情報取出部42は、この付加情報w’とx座標の仮数部のnx以外の残りのビット領域Nvh’とを引数として、式(3)におけるハッシュ関数hの値を計算し、その値と符号h’とを比較し、両者が一致した場合、付加情報w’が正しい(改ざんされていない)ものと認め、両者が一致しない場合、付加情報w’が正しくない(改ざんされている)ものと認める(ステップS29)。
【0104】
このようにして付加情報が埋め込まれた図形データから付加情報が取り出され、その付加情報の認証が行われる。
【0105】
以上のように、上記実施の形態によれば、付加情報の埋め込みにおいて、図形データ23における複数の頂点データのうちの少なくとも1つの頂点データについて、その頂点データにおける一座標の浮動小数点実数データの仮数部の一部に付加情報を埋め込み、その頂点データにおける別座標の浮動小数点実数データの仮数部の一部に、少なくともその仮数部の残りの部分と付加情報とから一方向性関数により得られる符号を埋め込む。
【0106】
また、上記実施の形態によれば、その付加情報の取り出しにおいて、図形データにおける複数の頂点データのうちの少なくとも1つの頂点データについて、その頂点データにおける一座標の浮動小数点実数データの仮数部の一部から付加情報を取り出し、その頂点データにおける別座標の浮動小数点実数データの仮数部の一部から符号を取り出し、少なくとも取り出した符号と仮数部の残りの部分とから一方向性関数により得られる値で、取り出した符号の認証を行う。
【0107】
これにより、少なくともその仮数部の残りの部分と付加情報とから一方向性関数により得られる符号が埋め込まれるため、付加情報の取り出しの際に、データの改ざんが検出されやすくなる。
【0108】
なお、上述の実施の形態は、本発明の好適な例であるが、本発明は、これらに限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。
【0109】
例えば、上記実施の形態において、ハッシュ関数に別の引数を追加してもよい。
【0110】
また、上記実施の形態では、図1に示す情報処理装置では、付加情報の埋め込みおよび付加情報の取り出しの両方を実行可能であるが、付加情報の埋め込みおよび付加情報の取り出しの一方のみを実行可能な装置としてもよい。
【0111】
また、上記実施の形態において、図形データがポリゴンデータである場合、ある頂点から延びるポリゴンの辺をリンクとするようにしてもよい。
【0112】
また、上記実施の形態において、ハッシュ関数の代わりに、他の一方向性関数を使用するようにしてもよい。
【0113】
また、上記実施の形態において、埋め込み時に変更される仮数部におけるビット部分の長さは、5ビットに限定されるものではない。
【産業上の利用可能性】
【0114】
本発明は、例えば、電子透かしの埋め込みおよび取り出しに適用可能である。
【符号の説明】
【0115】
13 RAM(記憶手段の一例)
14 記憶装置(記憶手段の一例)
21 埋め込みプログラム(コンピュータプログラムの一例)
22 取り出しプログラム(コンピュータプログラムの一例)
23 図形データ(3次元図形データの一例)
31 頂点分類部(頂点分類手段の一例)
32 情報埋込部(情報埋込手段の一例)
41 頂点種類特定部(頂点種類特定手段の一例)
42 情報取出部(情報取出手段の一例)

【特許請求の範囲】
【請求項1】
3次元図形を構成する複数の頂点に対応する複数の頂点データを有する3次元図形データを記憶する記憶手段と、
前記記憶手段から前記3次元図形データを読み出し、前記複数の頂点データのうちの少なくとも1つの頂点データについて、その頂点データにおける一座標の浮動小数点実数データの仮数部の一部に付加情報を埋め込み、その頂点データにおける別座標の浮動小数点実数データの仮数部の一部に、少なくとも前記仮数部の残りの部分と前記付加情報とから一方向性関数により得られる符号を埋め込む情報埋込手段と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記複数の頂点の一部または全部を、挿入頂点、調節頂点、および孤立頂点に分類する頂点分類手段を備え、
前記挿入頂点は、前記調節頂点と対になり、前記頂点データに前記付加情報を埋め込む頂点であり、
前記調節頂点は、前記挿入頂点と対になり、前記挿入頂点への前記付加情報の埋め込みに起因して発生する所定のパラメータ値の変動を補償するために座標値を変更させられる頂点であり、
前記孤立頂点は、隣接する頂点がすべて前記調節頂点であり、前記頂点データに前記付加情報を埋め込む頂点であり、
前記情報埋込手段は、前記挿入頂点の前記頂点データにおける残りの座標の浮動小数点実数データの仮数部の一部に、前記挿入頂点であることを示す所定の第1識別値を埋め込み、前記孤立頂点の前記頂点データにおける残りの座標の浮動小数点実数データの仮数部の一部に、当該頂点が前記孤立頂点であることを示す所定の第2識別値を埋め込み、
前記第2識別値は、前記第1識別値とは異なること、
を特徴とする請求項1記載の情報処理装置。
【請求項3】
前記複数の頂点の一部または全部を、挿入頂点および調節頂点に分類する頂点分類手段を備え、
前記挿入頂点は、前記調節頂点と対になり、前記頂点データに前記付加情報を埋め込む頂点であり、
前記調節頂点は、前記挿入頂点と対になり、前記挿入頂点への前記付加情報の埋め込みに起因して発生する所定のパラメータ値の変動を補償するために座標値を変更させられる頂点であり、
前記情報埋込手段は、前記挿入頂点に隣接する頂点の頂点データにおける一座標および別座標の浮動小数点実数データの仮数部の一部から座標ごとに前記所定のパラメータ値を整数演算で計算し、前記調節頂点の頂点データにおける一座標および別座標の浮動小数点実数データの仮数部の一部を、前記所定のパラメータ値の変動を補償するために変更すること、
を特徴とする請求項1記載の情報処理装置。
【請求項4】
3次元図形を構成する複数の頂点に対応する複数の頂点データを有する3次元図形データを記憶する記憶手段を有する情報処理装置におけるコンピュータを、
前記記憶手段から前記3次元図形データを読み出し、前記複数の頂点データのうちの少なくとも1つの頂点データについて、その頂点データにおける一座標の浮動小数点実数データの仮数部の一部に付加情報を埋め込み、その頂点データにおける別座標の浮動小数点実数データの仮数部の一部に、少なくとも前記仮数部の残りの部分と前記付加情報とから一方向性関数により得られる符号を埋め込む情報埋込手段
として機能させるコンピュータプログラム。
【請求項5】
3次元図形を構成する複数の頂点に対応する複数の頂点データを有する3次元図形データを記憶手段から読み出すステップと、
前記複数の頂点データのうちの少なくとも1つの頂点データについて、その頂点データにおける一座標の浮動小数点実数データの仮数部の一部に付加情報を埋め込むステップと、
その頂点データにおける別座標の浮動小数点実数データの仮数部の一部に、少なくとも前記仮数部の残りの部分と前記付加情報とから一方向性関数により得られる符号を埋め込むステップと、
を備えることを特徴とする情報処理方法。
【請求項6】
3次元図形を構成する複数の頂点に対応する複数の頂点データを有する3次元図形データを記憶する記憶手段と、
前記記憶手段から前記3次元図形データを読み出し、前記複数の頂点データのうちの少なくとも1つの頂点データについて、その頂点データにおける一座標の浮動小数点実数データの仮数部の一部から付加情報を取り出し、その頂点データにおける別座標の浮動小数点実数データの仮数部の一部から符号を取り出し、少なくとも取り出した前記符号と前記仮数部の残りの部分とから一方向性関数により得られる値で、取り出した前記符号の認証を行う情報取出手段と、
を備えることを特徴とする情報処理装置。
【請求項7】
ある頂点の前記頂点データにおける残りの座標の浮動小数点実数データの仮数部の一部の値が所定の第1識別値である場合、その頂点を挿入頂点と特定し、前記仮数部の一部の値が所定の第2識別値である場合、その頂点を孤立頂点と特定する頂点種類特定手段を備え、
前記挿入頂点は、調節頂点と対になり、前記頂点データに前記付加情報を埋め込む頂点であり、
前記調節頂点は、前記挿入頂点と対になり、前記挿入頂点への前記付加情報の埋め込みに起因して発生する所定のパラメータ値の変動を補償するために座標値を変更させられる頂点であり、
前記孤立頂点は、隣接する頂点がすべて前記調節頂点であり、前記頂点データに前記付加情報を埋め込む頂点であり、
前記第2識別値は、前記第1識別値とは異なり、
前記情報取出手段は、前記挿入頂点および前記孤立頂点の前記頂点データについて、前記付加情報および前記符号を取り出し、少なくとも取り出した前記符号と前記仮数部の残りの部分とから一方向性関数により得られる値で、取り出した前記符号の認証を行うこと、
を特徴とする請求項6記載の情報処理装置。
【請求項8】
3次元図形を構成する複数の頂点に対応する複数の頂点データを有する3次元図形データを記憶する記憶手段を有する情報処理装置におけるコンピュータを、
前記記憶手段から前記3次元図形データを読み出し、前記複数の頂点データのうちの少なくとも1つの頂点データについて、その頂点データにおける一座標の浮動小数点実数データの仮数部の一部から付加情報を取り出し、その頂点データにおける別座標の浮動小数点実数データの仮数部の一部から符号を取り出し、少なくとも取り出した前記符号と前記仮数部の残りの部分とから一方向性関数により得られる値で、取り出した前記符号の認証を行う情報取出手段
として機能させるコンピュータプログラム。
【請求項9】
3次元図形を構成する複数の頂点に対応する複数の頂点データを有する3次元図形データを前記記憶手段から読み出すステップと、
前記複数の頂点データのうちの少なくとも1つの頂点データについて、その頂点データにおける一座標の浮動小数点実数データの仮数部の一部から付加情報を取り出すステップと、
その頂点データにおける別座標の浮動小数点実数データの仮数部の一部から符号を取り出すステップと、
少なくとも取り出した前記符号と前記仮数部の残りの部分とから一方向性関数により得られる値で、取り出した前記符号の認証を行うステップと、
を備えることを特徴とする情報処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−169732(P2012−169732A)
【公開日】平成24年9月6日(2012.9.6)
【国際特許分類】
【出願番号】特願2011−26993(P2011−26993)
【出願日】平成23年2月10日(2011.2.10)
【出願人】(506209422)地方独立行政法人 東京都立産業技術研究センター (134)
【Fターム(参考)】