(57)【要約】【課題】  正規化前のテキストデータに透かし情報が埋め込まれていたとしても、テキストデータの内容の真正性を保証すること。【解決手段】  まずテキストデータと、透かし情報を入力し（ステップＳ１００１）、入力したテキストデータに対して、「ひらがな・カタカナの濁音文字，半濁音文字では結合文字は使用しないで１文字で表現する」という正規化を行う（ステップＳ１００２）。そして、正規化を施されたテキストデータに対して、同じ文字を別の符号化データとして表現し、透かし情報を埋め込む（ステップＳ１００３）。【選択図】  図１０
2005124137.tif 000002
【特許請求の範囲】
【請求項１】
テキストデータを入力する入力手段と、
前記テキストデータを所定の正規化方式を用いて正規化する正規化手段と、
前記正規化されたデータに基づいて、埋め込みデータを生成する埋め込みデータ生成手段と、
前記埋め込みデータを前記テキストデータに対して埋め込む埋め込み手段と
を備えることを特徴とする文章処理装置。
【請求項２】
前記埋め込みデータ生成手段は、前記正規化されたデータに対して一方向性ハッシュ関数によりハッシュ値を算出し、前記ハッシュ値より得られた署名情報を埋め込みデータとして生成することを特徴とする請求項１に記載の文章処理装置。
【請求項３】
前記入力手段が入力するテキストデータは、透かし情報が埋め込まれたデータであることを特徴とする請求項１又は２に記載の文章処理装置。
【請求項４】
前記正規化方式は、前記埋め込み手段の埋め込み方法に応じた正規化方式であることを特徴とする請求項１乃至３の何れか１項に記載の文章処理装置。
【請求項５】
透かし情報が埋め込まれているテキストデータを入力する入力手段と、
前記入力されたテキストデータを、所定の正規化方式を用いて正規化する正規化手段と、
前記正規化手段により正規化されたテキストデータと、前記入力手段により入力されたテキストデータとを比較することによって、前記透かし情報を抽出する抽出手段と
を備えることを特徴とする文章処理装置。
【請求項６】
前記入力手段により入力されたテキストデータは、正規化された後に、前記透かし情報が埋め込まれているデータであることを特徴とする請求項５に記載の文章処理装置。
【請求項７】
テキストデータを入力する入力工程と、
前記テキストデータを所定の正規化方式を用いて正規化する正規化工程と、
前記正規化されたデータに基づいて、埋め込みデータを生成する埋め込みデータ生成工程と、
前記埋め込みデータを前記テキストデータに対して埋め込む埋め込み工程と
を備えることを特徴とする装置の制御方法。
【請求項８】
透かし情報が埋め込まれているテキストデータを入力する入力工程と、
前記入力されたテキストデータを、所定の正規化方式を用いて正規化する正規化工程と、
前記正規化工程で正規化されたテキストデータと、前記入力工程で入力されたテキストデータとを比較することによって、前記透かし情報を抽出する抽出工程と
を備えることを特徴とする装置の制御方法。
【請求項９】
コンピュータに請求項７又は８に記載の制御方法を実行させるためのプログラムを格納することを特徴とする、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テキストデータに対して透かし情報を埋め込む、又は、透かし情報が埋め込まれたテキストデータから透かし情報を抽出する為の技術に関するものである。
【背景技術】
【０００２】
近年、インターネットの普及により通信技術が向上したことに伴い、あらゆる情報のデジタル化が進められインターネット上で流通することが可能となった。データをデジタル化することで再利用性を高め利便性が向上した反面，画像データや音声データなどのデジタルコンテンツを加工したり複製することが容易となったため著作権保護の面で大きな問題が浮上している。
【０００３】
以上のような背景から、著作権保護を目的として特に画像データや音声データに対する電子透かし技術が提案されている。電子透かし技術は、ディジタルデータに人間が知覚できない程度に透かし情報を埋め込む技術であり，著作権保有者の名前や購入者のＩＤなどが埋めこまれる。上記の透かし情報により加工や複製による無断使用を追跡することができる。
【０００４】
一般的に電子透かし技術は、画像データや音声データなどの冗長部分が多いデータ形式に対して適用されている。一方、文書に対する電子透かしとしては、防衛大方式（中村康弘、松井甲子雄、著作権保護のための電子文書のハードコピーへの署名の埋め込み、情報処理学会論文誌Ｖｏｌ．３６  Ｎｏ．８，  １９９５  年、及び特開平９−１８６６０３号公報「電子文書の単語間の空白部分の長さを利用した符号化および復号化方法、電子文書への署名情報の埋め込み方法、機密文書の暗号化方法」）が提案されているが、文書をテキストデータとしてとらえるのではなく画像データとして電子透かし技術を適用しているに過ぎない。具体的には単語間の間隔を操作することで透かし情報を埋め込んでいる。
【０００５】
同様の方式として日本ＩＢＭ方式（天野富夫、平山唯樹、レイアウト構造を利用したページ記述への電子透かし埋め込み手法、情報処理学会研究報告、マルチメディア通信と分散処理９０−９，コンピュータセキュリティ２−９，１９９８年，特開２０００−９９５０１号公報（Ｐ２０００−９９５０１Ａ）「文書データへの情報の埋め込み方法およびシステム」）が提案されており、これによれば文字間の間隔を操作することで透かし情報を埋め込んでいる。
【０００６】
テキストデータそのものへの電子透かしとしては、強制的に改行文字を挿入する方法や単語間の空白文字を複数にする方法が古くから知られている。松本勉、中川裕志、村瀬一郎、ステガノグラフィを用いた秘匿通信の研究開発（第１８回  ＩＰＡ技術発表会論文集ｐｐ．５１−６０）では、辞書変換法により文書中の単語の置き換えを行う方法が提案されている。この方法は同義語が定義された辞書を使い、文中の単語を別の単語に置きかえることにより透かし情報を埋め込む方法である。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記従来技術では下記のような問題があった。単語間や文字間の間隔を操作するなどの文書の位置関係を変化させる、つまりレイアウト情報を変更することによる電子透かし手法では、レイアウト情報を持つデータ形式にしか適用できない。
【０００８】
つまり、文書からレイアウト情報を取り除いた文書そのものであるテキストデータを抽出した場合には透かしデータを復元することができない欠点がある。
さらにレイアウト情報を操作するために一見しただけで不自然さが残るという問題点もある。また。辞書変換法による電子透かし手法では、単語変換による文脈の乱れが生じ、同様に不自然さが残る問題点が生じる。
【０００９】
本発明は以上の問題に鑑みてなされたものであり、正規化前のテキストデータに透かし情報が埋め込まれていたとしても、テキストデータの内容の真正性を保証することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の目的を達成するために、例えば本発明の文章処理装置は以下の構成を備える。
【００１１】
即ち、テキストデータを入力する入力手段と、
前記テキストデータを所定の正規化方式を用いて正規化する正規化手段と、
前記正規化されたデータに基づいて、埋め込みデータを生成する埋め込みデータ生成手段と、
前記埋め込みデータを前記テキストデータに対して埋め込む埋め込み手段と
を備えることを特徴とする。
【００１２】
本発明の目的を達成するために、例えば本発明の文章処理装置は以下の構成を備える。
【００１３】
即ち、透かし情報が埋め込まれているテキストデータを入力する入力手段と、
前記入力されたテキストデータを、所定の正規化方式を用いて正規化する正規化手段と、
前記正規化手段により正規化されたテキストデータと、前記入力手段により入力されたテキストデータとを比較することによって、前記透かし情報を抽出する抽出手段と
を備えることを特徴とする。
【００１４】
本発明の目的を達成するために、例えば本発明の装置の制御方法は以下の構成を備える。
【００１５】
即ち、テキストデータを入力する入力工程と、
前記テキストデータを所定の正規化方式を用いて正規化する正規化工程と、
前記正規化されたデータに基づいて、埋め込みデータを生成する埋め込みデータ生成工程と、
前記埋め込みデータを前記テキストデータに対して埋め込む埋め込み工程と
を備えることを特徴とする。
【００１６】
本発明の目的を達成するために、例えば本発明の装置の制御方法は以下の構成を備える。
【００１７】
即ち、透かし情報が埋め込まれているテキストデータを入力する入力工程と、
前記入力されたテキストデータを、所定の正規化方式を用いて正規化する正規化工程と、
前記正規化工程で正規化されたテキストデータと、前記入力工程で入力されたテキストデータとを比較することによって、前記透かし情報を抽出する抽出工程と
を備えることを特徴とする。
【発明の効果】
【００１８】
本発明の構成により、正規化前のテキストデータに透かし情報が埋め込まれていたとしても、テキストデータの内容の真正性を保証することができる。
【発明を実施するための最良の形態】
【００１９】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００２０】
［第１の実施形態］
図１は本実施形態における、文章（テキストデータ）に透かし情報を埋め込む方法を説明するブロック図である。
【００２１】
まず、透かし情報（透かしデータ）を埋め込みたい文書（テキストデータ）の入力を行う（１００）。テキストデータは文字データの集まりである。通常コンピュータが文字を扱うときは，文字をある数値に対応させて表現していることが多い。この文字と対応する数値の対応付けを表わす対応表を文字コード（character code）という。文字を数値に変換することを符号化と呼ぶ。つまり、テキストデータはある文字コードを用いて表現された符号化データの集まりである。
【００２２】
次に、入力されたテキストデータを正規化方式（１０２）に則って、正規化処理を行う（１０１）。
【００２３】
次に、同じ文字を別の符号化データとして表現することを利用して、透かし情報１０４を埋め込む、透かし情報埋め込み処理を行う（１０３）。
【００２４】
文章入力１００における具体例として、Ｕｎｉｃｏｄｅにおける結合文字(Combining Characters)を利用した方法を、以下説明する。
【００２５】
Ｕｎｉｃｏｄｅは、Ｕｎｉｃｏｄｅコンソーシアムで規格化された文字集合であり，文字符号化方式としてはＵＴＦ−８、ＵＴＦ−１６などがある。Ｕｎｉｃｏｄｅには結合文字と呼ばれる一群の文字があり、日本語ではＵ＋３０９９という数値で表わされる「゛」濁点と、Ｕ＋３０９Ａ（「゜」半濁点）などが結合文字である。
【００２６】
一方、Ｕｎｉｃｏｄｅでは、Ｕ＋３０４Ｃ「が」も存在することから，Ｕ＋３０４Ｃ「が」と、｛Ｕ＋３０４Ｂ，Ｕ＋３０９９｝「か゛」は同値である。このように文字としては同じ意味を表現しても符号化データとしては異なる場合がある。
【００２７】
ここでステップ正規化処理１０１には正規化方式１０２が必要であるが、正規化方式として「ひらがな・カタカナの濁音文字，半濁音文字では結合文字は使用しないで１文字で表現する」という方式を採用したとすると、次のように透かし情報を埋め込むことができる．
テキストデータ内のすべての濁音文字、半濁音文字ごとに１ビットの透かし情報を対応させる。ビット０を埋め込む場合には１文字表現（つまり結合文字を利用しない）のまま、ビット１を埋め込む場合には結合文字を利用するように、透かし情報埋め込み処理１０３を行う。例えば、正規化後の「が」に対し、ビット０を埋め込む場合には「が」、ビット１を埋め込む場合には「か゛」（「か」＋「゛」）と変換することで透かし情報を埋め込む。
【００２８】
以上の透かし情報の埋め込み処理のフローチャートを図１０に示す。本フローチャートに関する説明は上述の説明と同じなので、ここでは簡単に説明する。
【００２９】
まずテキストデータと、透かし情報を入力し（ステップＳ１００１）、入力したテキストデータに対して上述の正規化を行う（ステップＳ１００２）。そして、正規化を施されたテキストデータに対して、同じ文字を別の符号化データとして表現し、透かし情報を埋め込む（ステップＳ１００３）。
【００３０】
図５は上記のような透かし情報を埋め込む処理を行う装置（透かし情報埋め込み装置）の概略構成を示す図である。同装置に対する入力は、テキスト文書５０１と、透かし情報５０２である。透かし情報埋め込み装置は、正規化処理１０１を行う正規化処理装置５０３と、正規化方式１０２を格納する正規化方式格納装置５０４と、透かし情報埋め込み処理１０３を行う埋め込み処理装置５０５を有し，透かし処理済テキスト文書５０６を出力とする。また、以上の各装置は以下説明する図７のような構成を備える装置によっても実現できる。
【００３１】
なお、図１０に示したフローチャートに従ったプログラムコードは、不図示のＲＯＭやＲＡＭなどのメモリに格納され、不図示のＣＰＵに読み出され、実行されるものとする。
【００３２】
図７においてホストコンピュータ７０１は、例えば一般に普及しているパソコンであり、ユーザからの各種指示等はマウス７１２やキーボード７１３からの入力により行われ、テキストデータをプリンタ７１５から印刷させることが可能である。
【００３３】
また、ホストコンピュータ７０１の内部では、バス７１６により後述する各ブロックが接続され、種々のデータの受け渡しが可能である。
【００３４】
７０２はシステムメッセージなどを含むユーザへの指示やテキストデータの表示に用いられるモニタである。
【００３５】
７０３は内部の各ブロックの動作を制御，或いはＲＯＭ７０４やＲＡＭ７０５に格納された各種のプログラムを実行するＣＰＵである。
【００３６】
７０４は印刷されることが認められていない特定画像を記憶したり、あらかじめ必要な画像処理プログラム等（図１０に示したフローチャートに従ったプログラムを含む）を記憶しておくＲＯＭである。また文字コードなども記憶している。
【００３７】
７０５はＣＰＵ７０３にて処理を行うために一時的にプログラムや処理対象のテキストデータを格納しておくＲＡＭである。
【００３８】
７０６は，ＲＡＭ７０５等に転送されるプログラムやテキストデータをあらかじめ格納したり，処理後のテキストデータを保存することのできるハードディスク（ＨＤ）である。
【００３９】
７０８は外部記憶媒体の一つであるＣＤ（ＣＤ−Ｒ）に記憶されたデータを読み込み或いは書き出すことのできるＣＤドライブである。
【００４０】
７０９はＣＤドライブ７０８と同様に、ＦＤからの読み込み、ＦＤへの書き出しができるＦＤドライブである。７１０もＣＤドライブ７０８と同様に、ＤＶＤからの読み込み、ＤＶＤへの書き出しができるＤＶＤドライブである。尚、ＣＤ，ＦＤ，ＤＶＤ等に編集用のプログラム、或いはプリンタドライバが記憶されている場合には、これらプログラムをＨＤ７０６上にインストールし、必要に応じてＲＡＭ７０５に転送されるようになっている。
【００４１】
７１１はマウス７１２或いはキーボード７１３からの入力指示を受け付けるために、これらと接続されるインターフェイス（Ｉ／Ｆ）である。
【００４２】
７１８はモデムであり、インターフェース（Ｉ／Ｆ）７１９を介し、公衆回線を通じて外部のネットワークに接続されている。
【００４３】
また７０７はネットワーク接続装置であり、インターフェース（Ｉ／Ｆ）７１４により外部のネットワークに接続されている。
【００４４】
次に透かし情報の抽出処理を説明する．
図２は本実施形態における、透かし情報が埋め込まれた文章（テキストデータ）から透かし情報を抽出する方法を説明するブロック図である。
【００４５】
まず、透かし情報が埋め込まれたテキストデータの入力を行う（２００）。
【００４６】
次に、入力したテキストデータを後述する正規化方式２０２に則って文字コードレベルで正規化処理を行う（２０１）。なお、２００で入力したテキストデータは所定の不図示のメモリに格納しておくと共に、このテキストデータのコピーを生成し、このコピーに対して正規化処理を行う。
【００４７】
次に、正規化前のテキストデータ（所定の不図示のメモリに格納されたテキストデータ）と正規化後のテキストデータ（コピーに対して正規化処理を施した結果）との比較処理を行い、差分情報を生成する（２０３）。
【００４８】
次に、２０３で得られた差分情報から透かし情報を特定し、透かし情報を抽出する。
【００４９】
本実施形態では正規化方式２０２として、「ひらがな・かたかなの濁音文字，半濁音文字では結合文字は使用しないで１文字で表現する」という方式を採用し、上述した濁音文字、半濁音文字ごとに１ビットの透かし情報を対応させる方式で抽出を行うとする。
【００５０】
その結果、透かし情報抽出処理２０４において、濁音文字、半濁音文字のところで１文字表現（つまり結合文字を利用しない）場合はビット０が、結合文字が利用されている場合はビット１を抽出することができる。例えば、正規化後の「が」と比較し，正規化前データが「が」と表現されていた場合にはビット０を、「か゛」と表現されていた場合にはビット１を抽出できる。
【００５１】
以上の透かし情報の抽出処理のフローチャートを図１１に示し、以下説明する。本フローチャートに関する説明は上述の説明と同じなので、ここでは簡単に説明する。
【００５２】
まず、透かし情報が埋め込まれたテキストデータを入力し、所定の不図示のメモリに格納すると共に、コピーを生成する（ステップＳ１１０１）。次に、コピーされたテキストデータに対して、上述の正規化処理を行う（ステップＳ１１０２）。次に、正規化前のテキストデータと、正規化後のテキストデータとの差分情報を生成する（ステップＳ１１０３）。次に、全ての濁音文字、半濁音文字に対してこの差分情報に基づき結合文字が利用されているかどうか判断し（ステップＳ１１０４）、利用されていれば、ビットを１（ステップＳ１１０５），利用されていなければビットを０（ステップＳ１１０６）としてビット列を生成し、この検索を全ての濁音文字、半濁音文字に対して行う（ステップＳ１１０７）。そして全ての濁音文字、半濁音文字に対して生成されたビット列を得ることで、透かし情報を抽出することができる（ステップＳ１１０８）。
【００５３】
図６は上記のような透かし情報を抽出する処理を行う装置としての、透かし情報抽出装置を説明する図である。同装置に対する入力は透かし済テキスト文書６０１である。透かし情報抽出装置は、正規化処理２０１を行う正規化処理装置６０２と、正規化方式２０２を格納する正規化方式格納装置６０３と、比較処理２０３を行う比較処理装置６０４と、透かし情報抽出処理２０４を行う抽出処理装置６０５を有し、透かし情報６０６を出力とする。なお、図１１に示したフローチャートに従ったプログラムコードは、図６に示した装置内の不図示のメモリに格納され、不図示のＣＰＵにより読み出され、実行されるものとする。
【００５４】
また、以上の各装置は図７のような構成をもつ信号処理装置によっても実現できる。この場合、図１１に示したフローチャートに従ったプログラムコードはＲＯＭ７０４に格納され、ＣＰＵ７０３により読み出され、実行されるものとする。
【００５５】
以上の説明により、本実施形態では結合文字として日本語における濁音文字、半濁音文字を取り上げたが、本実施形態は日本語のテキストデータだけに特化した技術ではなく、独語のウムラウトなどにも適用でき、結合文字が利用されるすべての符号化処理コードに適用することが可能である。
【００５６】
また、同じ文字を表わすが符号化データとしては異なる場合として、カンマやコロン、セミコロンを半角文字にするか全角文字するかというデータの振れを利用することも可能である。
【００５７】
［第２の実施形態］
第１の実施形態では、正規化を行うことにより生じる正規化前データとの差分から透かし情報を抽出する方法を説明した。しかし、第１の実施形態では、画像に対する電子透かしとは異なり、耐性が弱く、透かし情報が容易に除去可能であるため、透かし情報を消去されてしまうと困る用途には利用できない。たとえば作者の著作権情報や購入者のＩＤを埋め込むことで、著作権保護を行う場合などである。しかしテキストデータの真正性を保証し、改ざん検出に利用することができる。
【００５８】
図３は本実施形態における文章（テキストデータ）に透かし情報を埋め込む方法を説明するブロック図である。
【００５９】
まず、透かし情報が埋め込まれたテキストデータの入力を行う（３００）。ここで、透かし情報が埋め込まれたテキストデータは、例えば第１の実施形態に係る電子透かし埋め込み方法でもって生成されたものであるとしても良いし、その他の方法でもって生成されたものであっても良い。また、以下の処理の対象となるテキストデータは、入力したテキストデータのコピーである。
【００６０】
次に、入力されたテキストデータを正規化方式３０２に則って正規化処理を行う（３０１）。この正規化方式３０２については、例えば第１の実施形態で用いた正規化方式２０２と同じものを用いても良いし、その他のものを用いるようにしても良い。
【００６１】
次に、正規化データの後述するハッシュ値を計算する（３０３）。
【００６２】
次に、後述する署名作成者の秘密鍵を用いて、ハッシュ値計算処理３０３で得られたハッシュ値から後述する署名データを作成する（３０４）。
【００６３】
次に、署名計算処理３０４で得られた署名データを、透かし情報として入力したテキストデータに埋め込む（３０５）。
【００６４】
なお、本実施形態において、上述の処理を行う透かし情報埋め込み装置の構成は図５に示した装置の場合、更に、前記秘密鍵を埋め込み処理装置５０５に入力し、埋め込み処理装置５０５内でハッシュ値計算、署名データの作成を行う。なお、このハッシュ値計算、署名データの作成は、埋め込み処理装置５０５内でなく、夫々専用の装置を設けても良い。
【００６５】
［ハッシュ値］
ハッシュ値とは１変数関数であるハッシュ関数ｈの出力値であり、ハッシュ関数とは衝突を起こしにくい圧縮関数をいう。ここで衝突とは、異なる入力値ｘ１，ｘ２に対して、ｈ（ｘ１）＝ｈ（ｘ２）となることである。また圧縮関数とは、任意のビット長のビット列をある固定長さのビット列に変換する関数である。
【００６６】
従って、ハッシュ関数とは任意のビット長のビット列をある長さのビット列に変換する関数で、ｈ（ｘ１）＝ｈ（ｘ２）を満たすｘ１，ｘ２を容易に見い出せないものである。ハッシュ関数の代表的なものとしては，ＭＤ５（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  ５）、ＳＨＡ（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ）などがある。
【００６７】
［署名データ］
署名データの作成方法としては公開鍵暗号方式を用いた方式などがあるが、本実施形態では特に限定しない。以下、公開鍵暗号方式を用いた署名方式について説明する。
【００６８】
公開鍵暗号方式は暗号鍵と復号鍵が異なり、暗号鍵を公開、復号鍵を秘密に保持する暗号方式である。通信文Ｍに対して、公開の暗号鍵ｋｐを用いた暗号化操作をＥ（ｋｐ，Ｍ）とし、Ｃ＝Ｅ（ｋｐ，Ｍ）であるとき（Ｃは暗号鍵ｋｐにより暗号化された通信文Ｍ）、秘密の復号鍵ｋｓを用いた復号操作をＤ（ｋｓ，Ｃ）とすると、公開鍵暗号アルゴリズムは次の３つの条件を満たす。
【００６９】
（１）  ｋｐが与えられたとき、Ｅ（ｋｐ，Ｍ）の計算は容易である．ｋｓが与えられたとき，Ｄ（ｋｓ，Ｍ）の計算は容易である。
【００７０】
（２）  もしｋｓを知らないなら、ｋｐとＥの計算手順とＣ＝Ｅ（ｋｐ，Ｍ）を知っていても、Ｍを決定することは計算量の点で困難である。
【００７１】
（３）  全ての通信文(平文)Ｍに対し、Ｅ（ｋｐ，Ｍ）が定義でき、Ｄ（ｋｓ，Ｅ（ｋｐ，Ｍ））＝Ｍが成立する。
【００７２】
以上の性質を満たす公開鍵暗号方式を用いて、ユーザＰが文書Ｍに対して署名を行う。つまりＭが確かにＰが作成した文書であることを証明する方式は次のとおりである。
【００７３】
Ｐは自分の秘密鍵ｋｓで送信文Ｃ＝Ｄ（ｋｓ，Ｍ）を生成し、ＭとともにユーザＶに送る。
【００７４】
ユーザＶは、ユーザＰの公開鍵ｋｐで、Ｃを復元変換Ｍ’＝Ｅ（ｋｐ，Ｃ）を行い。Ｍ’が文書Ｍと一致するかどうかを確認する。このユーザＶの操作を署名の検証と呼ぶ。
【００７５】
一般的に公開鍵暗号による暗号化は時間がかかるという欠点があるため、文書Ｍ自体に上記の演算を施すのではなく、一度ハッシュ関数を用いてデータを圧縮した上で署名処理が行われることが多く、３０４の署名計算処理でもこの方式を採用している。
【００７６】
上述の処理のフローチャートを図１２に示す。なお、本フローチャートは図１０に示したフローチャートに従った処理により生成される、透かし情報が埋め込まれたテキストデータを入力することが前提となっている。よって、本実施形態における透かし情報埋め込み装置が行う処理は、ステップＳ１００３の代わりにステップＳ１２０１以降の処理を行うとしたフローチャートに従った処理となる。
【００７７】
また、本フローチャートに従ったプログラムコードは、不図示のＲＯＭやＲＡＭなどのメモリに格納され、不図示のＣＰＵにより読み出され、実行されるものとする。
【００７８】
まず、テキストデータ、秘密鍵を入力する（ステップＳ１２０１）。次に入力したテキストデータに対して正規化処理を行い（ステップＳ１２０２）、正規化されたコピーデータからハッシュ値を算出する（ステップＳ１２０３）。次に、入力した秘密鍵を用いて、算出されたハッシュ値から署名データを作成する（ステップＳ１２０４）。そしてこの署名データを入力したテキストデータに対して埋め込む（ステップＳ１２０５）。
【００７９】
図４は本実施形態における、透かし情報が埋め込まれた文章（テキストデータ）から署名情報を得、検証する方法を説明するブロック図である。
【００８０】
まず、透かし情報が埋め込まれたテキストデータの入力を行う（４００）。次に入力したテキストデータのコピーに対して、正規化方式４０２に則って正規化処理を行う（４０１）。この正規化方式４０２については、埋め込み側で用いた正規化方式３０２と同じものである。
【００８１】
次に、正規化前のテキストデータと正規化後のテキストデータの比較処理を行い、差分情報を生成する（４０３）。
【００８２】
４０３で得られた差分情報から、署名データを得る（４０４）。
【００８３】
４０４で得た署名データの検証を上述の通り行う。
【００８４】
なお本実施形態における透かし情報抽出装置の構成は、図６に示した装置において、抽出処理装置６０５から得た署名データの検証を埋め込み時に利用した秘密鍵に対応する検証鍵の入力と共に行う装置を図６に示した装置に加えることで、上述の検証ができる。
【００８５】
なお本実施形態における透かし情報抽出装置が行う上述の処理のフローチャートを図１３に示す。また、本フローチャートに従ったプログラムコードは、不図示のＲＯＭやＲＡＭなどのメモリに格納され、不図示のＣＰＵにより読み出され、実行されるものとする。
【００８６】
まず透かし情報が埋め込まれたテキストデータを入力すると共に、埋め込み時に利用した秘密鍵に対応する検証鍵も入力する（ステップＳ１３０１）。次に、入力したテキストデータのコピーに対して正規化を行い（ステップＳ１３０２）、正規化前のテキストデータと、正規化後のテキストデータとの比較を行い、前述の差分情報を生成する（ステップＳ１３０３）。次に、この差分情報から署名データを得ると共に（ステップＳ１３０４）、この署名データに対して、ステップＳ１３０１で入力した秘密の復号鍵を用いて検証を行う（ステップＳ１３０５）。
【００８７】
以上の説明により、本実施形態により、署名データを透かし情報として埋め込み、この署名データにより、テキストデータの真正性を保証し、改ざん検出に利用することができる。
【００８８】
即ち、テキストデータを正規化し、正規化データに基づいた値から埋め込みデータを生成し、テキストデータに埋め込むので、たとえ、正規化前のテキストデータに透かし情報が埋め込まれていたとしても、テキストデータの内容の真正性を保証することができる。
【００８９】
また、正規化後に透かし情報が埋め込まれているテキストデータと、オリジナルのテキストデータを正規化したデータとを比較することによって、透かし情報を抽出するので、透かし抽出及び改ざん検出が容易に行うことができる。
【００９０】
［第３の実施形態］
第２の実施形態の特別な場合として、本実施形態ではＸＭＬ文書に対する署名情報の埋め込みを説明する。
【００９１】
ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）はＷ３Ｃで策定されたマークアップ言語である。規格はＷ３Ｃ  Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ、  Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ  （ＸＭＬ）  １．０、ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＴＲ／１９９８／  ＲＥＣ−ｘｍｌ−１９９８０２１０．ｈｔｍｌで公開されている。
【００９２】
ＸＭＬはテキストデータによって記述される可読のデータ形式で、例えば「＜Ｔａｇ＞」と「＜／Ｔａｇ＞」、といったような「＜」と「＞」形式のタグでデータ項目を表現し、またこのタグで別のデータを入れ子構造になるように囲むことによって様々なデータを表現する。
【００９３】
さらに、このタグ中にはプロパティと呼ばれる、タグに関連する特徴データを記述することも可能で，例えば，「＜Ｔａｇ  ｐｒｏｐ＝”Ｐｒｏｐｅｒｔｙ”＞  …  ＜／Ｔａｇ＞」というように，「プロパティ名＝”値”」という文字列をタグ名（例では”Ｔａｇ”）と空白文字で区切って後続してタグに内挿することによって実現される。
【００９４】
ＸＭＬ文書は次の３つの部分に分けられる。
【００９５】
（１）  バージョン宣言や文字コード宣言を行うＸＭＬ宣言部分。
【００９６】
（２）  後述するＸＭＬインスタンスの文書構造を宣言し，タグの構文を規定する  ＤＴＤ（Ｄｏｃｕｍｅｎｔ  Ｔｙｐｅ  Ｄｅｆｉｎｉｔｉｏｎ）部分。
【００９７】
（３）  実際のタグ付き文書であるＸＭＬインスタンスの部分。
【００９８】
ＸＭＬはテキストデータというデータ形式であるので、一般的な文書編集ソフトウェア（テキストエディタなど）で容易に作成したり編集したりすることができる。このことは，ＸＭＬの取り扱いを容易にするという点では長所であり、様々なアプリケーションで利用されつつある。
【００９９】
契約文書の保証などを目的としてデータの署名は必要不可欠な技術であるが、ＸＭＬ文書に対する署名の要求も高く、Ｗ３ＣとＩＥＴＦでフォーマットの標準化が進められており、規格としてＸＭＬ−Ｓｉｇｎａｔｕｒｅ  Ｓｙｎｔａｘ  ａｎｄ  Ｐｒｏｃｅｓｓｉｎｇ、ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＴＲ／ｘｍｌｄｓｉｇ−ｃｏｒｅ／  （以下ｘｍｌｄｓｉｇ−ｃｏｒｅとあらわす）が公開されている。
【０１００】
署名処理は，まずＷ３Ｃの別の策定文書であるＣａｎｏｎｉｃａｌ  ＸＭＬ  Ｖｅｒｓｉｏｎ  １．０、  ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＴＲ／ｘｍｌ−ｃ１４ｎ  （以下ｘｍｌ−ｃ１４ｎとあらわす）で規定された正規化方法に則り、ＸＭＬ文書を正規化した上で署名を施すことが提案されている。
【０１０１】
ｘｍｌｄｓｉｇ−ｃｏｒｅにおけるＸＭＬ文書に対する署名は、ｘｍｌ−ｃ１４ｎによる正規化処理を行ったデータのハッシュを取り、署名データを計算後、署名を施していることを表わす次のようなヘッダ部分を元ＸＭＬ文書に添付させる必要がある。
＜Ｓｉｇｎａｔｕｒｅ＞
．．．
＜ＳｉｇｎａｔｕｒｅＶａｌｕｅ＞
ＡＢＣＤＥＦ．．．
＜／ＳｉｇｎａｔｕｒｅＶａｌｕｅ＞
＜／Ｓｉｇｎａｔｕｒｅ＞
ｘｍｌ−ｃ１４ｎでは改行文字をＬＦにすること、文字符号化方式はつねにＵＴＦ−８であることなどが規定されている。しかし文字コードレベルでの正規化については策定文書の範囲外であり、ベンダー間の取り決めが行われたり、アプリケーションに依存することになる。そこで署名を施す前の正規化として，以下の手順で正規化処理を行う。
【０１０２】
図９は、本実施形態における署名手順を説明するブロック図である。
したフローチャートである。
【０１０３】
まず、透かし情報が埋め込まれたＸＭＬ文章を入力する（９００）。
【０１０４】
次に、入力されたＸＭＬ文書（テキストデータ）を正規化方式９０２に則って文字コードレベルでの正規化を行う（９０１）。
【０１０５】
次に、ｘｍｌ−ｃ１４ｎによる正規化を行う（９０３）。
【０１０６】
署名作成者の秘密鍵を用い，２種類の正規化処理（９０１，９０３）を行ったデータのハッシュ値を取り、署名データを生成する（９０４）。
【０１０７】
９０４で得られた署名データをヘッダ（以下署名ヘッダ）として透かし情報として埋め込む（９０５）。
【０１０８】
署名を施す前の正規化として、ｘｍｌ−ｃ１４ｎによる正規化の前に、上述の文字コードレベルでの正規化処理を行うことで、第２の実施形態と同様に署名を行うことができ、計算された署名ヘッダをＸＭＬ文書に埋め込むことができる。
【０１０９】
署名ヘッダのデータ容量が大きい場合は以下のようにして署名ヘッダの一部だけを透かしデータとして埋め込む方法も考えられる。以下は署名ヘッダのうち署名データのみを透かし情報として埋め込んだ場合の署名ヘッダの例である．
＜Ｓｉｇｎａｔｕｒｅ＞
．．．
＜ＳｉｇｎａｔｕｒｅＶａｌｕｅｏｐｔｉｏｎ＝”ＷａｔｅｒＭａｒｋｅｄ”／＞
＜／Ｓｉｇｎａｔｕｒｅ＞
”ＷａｔｅｒＭａｒｋｅｄ”というプロパティ値から、署名データが埋め込まれていることがわかる。
【０１１０】
なお、実施形態における透かし情報埋め込み装置の構成は第１の実施形態と同じであり、同装置が行う処理のフローチャートとしては、ステップＳ１２０２において、更にｘｍｌ−ｃ１４ｎによる正規化を行うとしたフローチャートである。一方、本実施形態における透かし情報抽出装置の構成は第１の実施形態と同じであり、同装置が行う処理のフローチャートとしては、ステップ１３０２において、ｘｍｌ−ｃ１４ｎによる正規化を行うとしたフローチャートである。
【０１１１】
以上説明したように本実施形態によれば、ＸＭＬ文書に対する署名データを外部に持って別々に管理する必要がなく、ＸＭＬ文書から署名データを抽出して署名の検証を行うことによりＸＭＬ文書の真正性を保証し、改ざんを検出することができる。また、上記の方式はＸＭＬだけでなくＳＧＭＬやＨＴＭＬ等のマークアップ言語に適用可能である。
【０１１２】
［第４の実施形態］
前述の実施形態では、正規化処理には正規化方式が必要であった。本実施形態は、この正規化方式を秘匿にし、特定のユーザだけが埋め込みデータを抽出する方法について説明する。なお、埋め込み処理者は正規化方式を秘匿にして文字コードレベルでの正規化を行うと共に、埋め込み処理者は透かし情報の抽出を許可する抽出者にのみ暗号通信路などを用いて正規化方式を安全に共有する。又、本実施形態では暗号方式については特には限定しない。
【０１１３】
図８は、抽出者ごとに別々の正規化方式を保持した透かしシステムの概要を示した図である。
【０１１４】
埋め込み装置８０１は正規化方式格納装置８０２を持ち、埋め込み処理者Ｘは正規化方式Ａ（８０３）と、正規化方式Ｂ（８０４）とを作成し、正規化方式格納装置８０２に格納しておく。
【０１１５】
埋め込み処理者Ｘは抽出者Ａ及び抽出者Ｂにそれぞれ正規化方式Ａ（８０３）と、正規化方式Ｂ（８０４）とを第３者に知られないように共有しておく。
【０１１６】
抽出装置８０５を持つ抽出者Ａは、正規化方式格納装置８０６に正規化方式Ａ（８０７）を格納しておく。同様に、抽出装置８０８を持つ抽出者Ｂは正規化方式格納装置８０９に正規化方式Ｂ（８１０）を格納しておく。
【０１１７】
埋め込み処理者Ｘが抽出者Ａにのみ抽出可能な情報を埋め込む場合には、正規化方式Ａ（８０３）を用いて透かし処理を行うことにより、抽出者Ａのみが正規化方式Ａ（８０７）を用いて情報を抽出することが可能である。この場合、正規化方式Ａを持たない抽出者Ｂは透かし情報を抽出することはできない。
【０１１８】
以上説明したように、本実施形態によれば、ユーザごとに個別に正規化方式を持つことにより，特定の抽出者だけが埋め込みデータを抽出することができるしくみを提供することが可能である。
【０１１９】
［第５の実施形態］
本実施形態は、透かし情報としてメタデータを扱う例を説明する。メタデータ（ｍｅｔａ−ｄａｔａ）とは、「データに関するデータ」であり、あるデータＤを説明するデータＭのことである。しかし、データＤとメタデータＭが別々のファイルで存在した場合、ファイルの移動やコピーの際に、ユーザが同時に管理しなければならない問題点がある。そこで、本実施形態では透かし情報としてメタデータを適用させることにより、複数のファイルで管理する煩わしさを解消することが可能である。
【０１２０】
また、他文書との関連や関係する情報のポインタなどのデータの関連性を示すリンク情報を透かし情報として埋め込むことも可能であり、上記と同様の効果が得られる。
【０１２１】
リンク情報としてはアプリケーション特有の識別子や、ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）や、ＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ）などで表わすことができる。ＵＲＬは、ＨＴＭＬのハイパーリンクで利用されているインターネット上に存在するデータを特定するためのフォーマットであり、ＵＲＩは、ＵＲＬを包含した識別子であり、Ｗ３Ｃで策定されている。
【０１２２】
以上説明したように、本実施形態によれば、文書に対するメタデータやリンク情報を外部に持って別々に管理する必要がなく、文書のスムーズな管理をすることができる。また、上記の方式は被埋め込みデータまたは透かし情報としてＸＭＬ、ＳＧＭＬ、ＨＴＭＬ等のマークアップ言語で記述することも可能である。
【０１２３】
［第６の実施形態］
本発明は上記実施の形態を実現するための装置及び方法及び実施の形態で説明した方法を組み合わせて行う方法のみに限定されるものではなく、上記システム又は装置内のコンピュータ（ＣＰＵあるいはＭＰＵ）に、上記実施の形態を実現するためのソフトウエアのプログラムコードを供給し、このプログラムコードに従って上記システムあるいは装置のコンピュータが上記各種デバイスを動作させることにより上記実施の形態を実現する場合も本発明の範疇に含まれる。
【０１２４】
またこの場合、前記ソフトウエアのプログラムコード自体が上記実施の形態の機能を実現することになり、そのプログラムコード自体、及びそのプログラムコードをコンピュータに供給するための手段、具体的には上記プログラムコードを格納した記憶媒体は本発明の範疇に含まれる。
【０１２５】
この様なプログラムコードを格納する記憶媒体としては、例えばフロッピー(登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【０１２６】
また、上記コンピュータが、供給されたプログラムコードのみに従って各種デバイスを制御することにより、上記実施の形態の機能が実現される場合だけではなく、上記プログラムコードがコンピュータ上で稼働しているＯＳ（オペレーティングシステム）、あるいは他のアプリケーションソフト等と共同して上記実施の形態が実現される場合にもかかるプログラムコードは本発明の範疇に含まれる。
【０１２７】
更に、この供給されたプログラムコードが、コンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードや機能格納ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって上記実施の形態が実現される場合も本発明の範疇に含まれる。
【０１２８】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明した（図１０、及び／又は図１１、及び／又は図１２、及び／又は図１３に示す）フローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１２９】
【図１】本発明の第１の実施形態における文章（テキストデータ）に透かし情報を埋め込む方法を説明するブロック図である。
【図２】本発明の第１の実施形態における、透かし情報が埋め込まれた文章（テキストデータ）から透かし情報を抽出する方法を説明する図である。
【図３】本発明の第２の実施形態における文章（テキストデータ）に透かし情報を埋め込む方法を説明する図である。
【図４】本発明の第２の実施形態における、透かし情報が埋め込まれた文章（テキストデータ）から署名情報を得、検証する方法を説明するブロック図である。
【図５】本発明の第１の実施形態における透かし情報埋め込み装置の概略構成を示す図である。
【図６】本発明の第１の実施形態における透かし情報抽出装置の概略構成を示す図である。
【図７】本発明の第１の実施形態における透かし情報埋め込み装置としての装置の概略構成を示す図である。
【図８】本発明の第４の実施形態における、抽出者ごとに別々の正規化方式を保持した透かしシステムの概要を示した図である。
【図９】本発明の第３の実施形態における、署名手順を説明するブロック図である。
【図１０】本発明の第１の実施形態における透かし情報埋め込み装置が行う、透かし情報埋め込み処理のフローチャートである。
【図１１】本発明の第１の実施形態における透かし情報抽出装置が行う、透かし情報抽出処理のフローチャートである。
【図１２】本発明の第２の実施形態における透かし情報埋め込み装置が行う、透かし情報埋め込み処理のフローチャートである。
【図１３】本発明の第２の実施形態における透かし情報抽出装置が行う、透かし情報抽出処理のフローチャートである。
【図１】
2005124137.tif 000003
【図２】
2005124137.tif 000004
【図３】
2005124137.tif 000005
【図４】
2005124137.tif 000006
【図５】
2005124137.tif 000007
【図６】
2005124137.tif 000008
【図７】
2005124137.tif 000009
【図８】
2005124137.tif 000010
【図９】
2005124137.tif 000011
【図１０】
2005124137.tif 000012
【図１１】
2005124137.tif 000013
【図１２】
2005124137.tif 000014
【図１３】
2005124137.tif 000015