(57)【要約】【課題】情報埋め込みの対象データ及び情報埋め込みに用いられる関数を秘匿する。【解決手段】クライアントは、所定のデータが入力されると第１データが出力される第２関数に対する入力データ及び当該入力データを第２関数に入力して得られる出力データの複数の対と、第１ダミーデータ及び第２ダミーデータの対とを区別なく情報埋め込み装置に送信する。情報埋め込み装置は、所定のデータが入力されると第２データが出力される第３関数に入力データ又は第１ダミーデータを入力した結果と、第１関数に当該入力データ又は当該第１ダミーデータと対応する出力データ又は第２ダミーデータを入力した結果とに基づいた複数の結果データを生成する。クライアントは、当該複数の結果データの中から入力データ及び出力データの対に応じた結果データを紛失通信により取得することにより、第１データを第１関数で処理して得られる情報埋め込みデータを得る。【選択図】図１
2007193280.tif 000002
【特許請求の範囲】
【請求項１】
通信可能に接続されるクライアントが有する第１データを第１関数で処理して得られる情報埋め込みデータを前記クライアントに提供する情報埋め込み装置であって、
前記クライアントから、所定のデータが入力されると前記第１データが出力される第２関数に対する入力データ及び当該入力データを前記第２関数に入力して得られる出力データの複数の対と、第１ダミーデータ及び第２ダミーデータの対とを区別なく受信するデータ受信部と、
前記所定のデータが入力されると第２データが出力される第３関数に前記入力データ又は前記第１ダミーデータを入力した結果と、前記第１関数に当該入力データ又は当該第１ダミーデータと対応する前記出力データ又は前記第２ダミーデータを入力した結果とに基づいた複数の結果データを、前記クライアントが当該複数の結果データの中から前記入力データ及び前記出力データの対に応じた前記結果データを紛失通信（Oblivious Transfer）により取得することにより前記情報埋め込みデータを得ることを可能とするために生成する結果データ生成部と、
を備えることを特徴とする情報埋め込み装置。
【請求項２】
請求項１に記載の情報埋め込み装置であって、
前記第１データ、前記所定のデータ、前記入力データ、前記出力データ、前記第１ダミーデータ、及び前記第２ダミーデータはｎ（ｎ：自然数）個の数値により構成される数列であり、
前記第１関数及び第３関数はｎ変数多項式であり、
前記第２関数は、前記入力データを構成するｎ個の数値の夫々が順に入力されるｎ個の１変数多項式により構成される関数列であること、
を特徴とする情報埋め込み装置。
【請求項３】
通信可能に接続されるクライアントが有する第１データを第１関数で処理して得られる情報埋め込みデータを前記クライアントに提供する情報埋め込み装置の制御方法であって、
前記情報埋め込み装置は、
前記クライアントから、所定のデータが入力されると前記第１データが出力される第２関数に対する入力データ及び当該入力データを前記第２関数に入力して得られる出力データの複数の対と、第１ダミーデータ及び第２ダミーデータの対とを区別なく受信し、
前記所定のデータが入力されると第２データが出力される第３関数に前記入力データ又は前記第１ダミーデータを入力した結果と、前記第１関数に当該入力データ又は当該第１ダミーデータと対応する前記出力データ又は前記第２ダミーデータを入力した結果とに基づいた複数の結果データを、前記クライアントが当該複数の結果データの中から前記入力データ及び前記出力データの対に応じた前記結果データを紛失通信（Oblivious Transfer）により取得することにより前記情報埋め込みデータを得ることを可能とするために生成すること、
を特徴とする情報埋め込み装置の制御方法。
【請求項４】
請求項３に記載の情報埋め込み装置の制御方法であって、
前記第１データ、前記所定のデータ、前記入力データ、前記出力データ、前記第１ダミーデータ、及び前記第２ダミーデータはｎ（ｎ：自然数）個の数値により構成される数列であり、
前記第１関数及び第３関数はｎ変数多項式であり、
前記第２関数は、前記入力データを構成するｎ個の数値の夫々が順に入力されるｎ個の１変数多項式により構成される関数列であること、
を特徴とする情報埋め込み装置の制御方法。
【請求項５】
通信可能に接続されるクライアントが有する第１データを第１関数で処理して得られる情報埋め込みデータを前記クライアントに提供する情報埋め込み装置に、
前記クライアントから、所定のデータが入力されると前記第１データが出力される第２関数に対する入力データ及び当該入力データを前記第２関数に入力して得られる出力データの複数の対と、第１ダミーデータ及び第２ダミーデータの対とを区別なく受信する機能と、
前記所定のデータが入力されると第２データが出力される第３関数に前記入力データ又は前記第１ダミーデータを入力した結果と、前記第１関数に当該入力データ又は当該第１ダミーデータと対応する前記出力データ又は前記第２ダミーデータを入力した結果とに基づいた複数の結果データを、前記クライアントが当該複数の結果データの中から前記入力データ及び前記出力データの対に応じた前記結果データを紛失通信（Oblivious Transfer）により取得することにより前記情報埋め込みデータを得ることを可能とするために生成する機能と、
を実現させるためのプログラム。
【請求項６】
請求項５に記載のプログラムであって、
前記第１データ、前記所定のデータ、前記入力データ、前記出力データ、前記第１ダミーデータ、及び前記第２ダミーデータはｎ（ｎ：自然数）個の数値により構成される数列であり、
前記第１関数及び第３関数はｎ変数多項式であり、
前記第２関数は、前記入力データを構成するｎ個の数値の夫々が順に入力されるｎ個の１変数多項式により構成される関数列であること、
を特徴とするプログラム。
【請求項７】
クライアントが有する第１データを第１関数で処理して得られる情報埋め込みデータを前記クライアントに提供する情報埋め込み装置と通信可能に接続される前記クライアントに、
所定のデータが入力されると前記第１データが出力される第２関数に対する入力データ及び当該入力データを前記第２関数に入力して得られる出力データの複数の対と、第１ダミーデータ及び第２ダミーデータの対とを区別なく前記情報埋め込み装置に送信する機能と、
前記所定のデータが入力されると第２データが出力される第３関数に前記入力データ又は前記第１ダミーデータを入力した結果と、前記第１関数に当該入力データ又は当該第１ダミーデータと対応する前記出力データ又は前記第２ダミーデータを入力した結果とに基づいて前記情報埋め込み装置が生成する複数の結果データの中から、前記入力データ及び前記出力データの対に応じた前記結果データを紛失通信（Oblivious Transfer）により取得する機能と、
取得した前記結果データに基づいて、前記第１データを前記第１関数で処理して得られる前記情報埋め込みデータを得る機能と、
を実現させるためのプログラム。
【請求項８】
請求項７に記載のプログラムであって、
前記第１データ、前記所定のデータ、前記入力データ、前記出力データ、前記第１ダミーデータ、及び前記第２ダミーデータはｎ（ｎ：自然数）個の数値により構成される数列であり、
前記第１関数及び第３関数はｎ変数多項式であり、
前記第２関数は、前記入力データを構成するｎ個の数値の夫々が順に入力されるｎ個の１変数多項式により構成される関数列であること、
を特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報埋め込み装置、情報埋め込み装置の制御方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、著作権保護を目的とした電子透かし（特許文献１）等、様々な分野においてデータに対する情報埋め込みが行われている。このような情報埋め込みのサービスを実現する方式として、クライアント処理方式及びサーバ処理方式が知られている。
【０００３】
情報埋め込みサービスをクライアント処理方式で実現する場合の一般的な構成を、図５に示す。まず、クライアント１００は、情報埋め込みを行う関数を実行するためのプログラム１０５をサーバ１１０からダウンロードする。そして、クライアント１００は、ダウンロードしたプログラム１０５を用いて、データ１２０に情報（Ｃ）を埋め込む処理を実行することにより、情報が埋め込まれたデータ１２５を得ることができる。
【０００４】
また、情報埋め込みサービスをサーバ処理方式で実現する場合の一般的な構成を、図６に示す。まず、クライアント１００は、埋め込み元のデータ１２０と、埋め込む情報（Ｃ）をサーバ１１０にアップロードする。そして、サーバ１１０は、情報埋め込みを行う関数を実行するためのプログラム１０５を用いて、データ１２０に情報（Ｃ）を埋め込む処理を実行し、情報が埋め込まれたデータ１２５を生成する。その後、クライアント１００は、情報が埋め込まれたデータ１２５をサーバ１１０からダウンロードすることにより取得する。
【特許文献１】特開２００２−１５８８５９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
前述したクライアント処理方式の場合、クライアント１００が保持する情報埋め込みの対象データをサーバ１１０に秘匿することはできるが、プログラム１０５がクライアント１００に配布されるため、情報埋め込みを行う関数のアルゴリズムが解読されてしまう危険性がある。また、前述したサーバ処理方式の場合、情報埋め込みを行う関数のアルゴリズムを秘匿することはできるが、クライアント１００が保持する情報埋め込みの対象データをサーバ１１０に秘匿することはできない。
【０００６】
本発明は上記課題を鑑みてなされたものであり、情報埋め込みの対象データ及び情報埋め込みに用いられる関数を秘匿可能な情報埋め込み装置、情報埋め込み装置の制御方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の情報埋め込み装置は、通信可能に接続されるクライアントが有する第１データを第１関数で処理して得られる情報埋め込みデータを前記クライアントに提供する情報埋め込み装置であって、前記クライアントから、所定のデータが入力されると前記第１データが出力される第２関数に対する入力データ及び当該入力データを前記第２関数に入力して得られる出力データの複数の対と、第１ダミーデータ及び第２ダミーデータの対とを区別なく受信するデータ受信部と、前記所定のデータが入力されると第２データが出力される第３関数に前記入力データ又は前記第１ダミーデータを入力した結果と、前記第１関数に当該入力データ又は当該第１ダミーデータと対応する前記出力データ又は前記第２ダミーデータを入力した結果とに基づいた複数の結果データを、前記クライアントが当該複数の結果データの中から前記入力データ及び前記出力データの対に応じた前記結果データを紛失通信（Oblivious Transfer）により取得することにより前記情報埋め込みデータを得ることを可能とするために生成する結果データ生成部と、を備えることとする。
【０００８】
また、本発明の情報埋め込み装置の制御方法は、通信可能に接続されるクライアントが有する第１データを第１関数で処理して得られる情報埋め込みデータを前記クライアントに提供する情報埋め込み装置の制御方法であって、前記情報埋め込み装置は、前記クライアントから、所定のデータが入力されると前記第１データが出力される第２関数に対する入力データ及び当該入力データを前記第２関数に入力して得られる出力データの複数の対と、第１ダミーデータ及び第２ダミーデータの対とを区別なく受信し、前記所定のデータが入力されると第２データが出力される第３関数に前記入力データ又は前記第１ダミーデータを入力した結果と、前記第１関数に当該入力データ又は当該第１ダミーデータと対応する前記出力データ又は前記第２ダミーデータを入力した結果とに基づいた複数の結果データを、前記クライアントが当該複数の結果データの中から前記入力データ及び前記出力データの対に応じた前記結果データを紛失通信（Oblivious Transfer）により取得することにより前記情報埋め込みデータを得ることを可能とするために生成することとする。
【０００９】
また、本発明のプログラムは、通信可能に接続されるクライアントが有する第１データを第１関数で処理して得られる情報埋め込みデータを前記クライアントに提供する情報埋め込み装置に、前記クライアントから、所定のデータが入力されると前記第１データが出力される第２関数に対する入力データ及び当該入力データを前記第２関数に入力して得られる出力データの複数の対と、第１ダミーデータ及び第２ダミーデータの対とを区別なく受信する機能と、前記所定のデータが入力されると第２データが出力される第３関数に前記入力データ又は前記第１ダミーデータを入力した結果と、前記第１関数に当該入力データ又は当該第１ダミーデータと対応する前記出力データ又は前記第２ダミーデータを入力した結果とに基づいた複数の結果データを、前記クライアントが当該複数の結果データの中から前記入力データ及び前記出力データの対に応じた前記結果データを紛失通信（Oblivious Transfer）により取得することにより前記情報埋め込みデータを得ることを可能とするために生成する機能と、を実現させるためのものとする。
【００１０】
また、本発明のプログラムは、クライアントが有する第１データを第１関数で処理して得られる情報埋め込みデータを前記クライアントに提供する情報埋め込み装置と通信可能に接続される前記クライアントに、所定のデータが入力されると前記第１データが出力される第２関数に対する入力データ及び当該入力データを前記第２関数に入力して得られる出力データの複数の対と、第１ダミーデータ及び第２ダミーデータの対とを区別なく前記情報埋め込み装置に送信する機能と、前記所定のデータが入力されると第２データが出力される第３関数に前記入力データ又は前記第１ダミーデータを入力した結果と、前記第１関数に当該入力データ又は当該第１ダミーデータと対応する前記出力データ又は前記第２ダミーデータを入力した結果とに基づいて前記情報埋め込み装置が生成する複数の結果データの中から、前記入力データ及び前記出力データの対に応じた前記結果データを紛失通信（Oblivious Transfer）により取得する機能と、取得した前記結果データに基づいて、前記第１データを前記第１関数で処理して得られる前記情報埋め込みデータを得る機能と、を実現させるためのものとする。
【００１１】
また、前記第１データ、前記所定のデータ、前記入力データ、前記出力データ、前記第１ダミーデータ、及び前記第２ダミーデータはｎ（ｎ：自然数）個の数値により構成される数列であり、前記第１関数及び第３関数はｎ変数多項式であり、前記第２関数は、前記入力データを構成するｎ個の数値の夫々が順に入力されるｎ個の１変数多項式により構成される関数列であることとすることができる。
【発明の効果】
【００１２】
情報埋め込みの対象データ及び情報埋め込みに用いられる関数を秘匿可能な情報埋め込み装置、情報埋め込み装置の制御方法、及びプログラムを提供することができる。
【発明を実施するための最良の形態】
【００１３】
＝＝情報埋め込み（１変数）＝＝
１．システム概要
まず、クライアントから送信されるデータが１つ（１変数）の場合における情報埋め込みシステムの概要について説明する。本発明の情報埋め込み装置の一例であるサーバを含んで構成される１変数の情報埋め込みシステムの例を、図１に示す。情報埋め込みシステムは、サーバ１０及びクライアント２０を含んで構成されている。サーバ１０及びクライアント２０は、インターネット、ＬＡＮ（Local Area Network）等によるネットワークや、ＵＳＢ接続、シリアルポート接続、プリンタポート接続等により有線又は無線で相互に通信可能に接続されている。サーバ１０は、例えば、ワークステーションやＰＣサーバ等の情報処理装置であり、情報埋め込みを行うためのプログラム２５を有している。また、クライアント２０は、例えば、ＰＣや携帯端末、携帯電話等の情報処理装置であり、情報埋め込みの対象となるデータ３０を有している。
【００１４】
このような情報埋め込みシステムにおいて情報埋め込みが行われる流れを説明する。まず、クライアント２０が、情報埋め込みの対象となるデータ３０をサーバ１０にアップロードする。ここで、データ３０のサーバ１０へのアップロードは、紛失多項式評価（Oblivious Polynomial Evaluation：以後「ＯＰＥ」と称する）を用いて行われる。したがって、データ３０そのものがアップロードされるわけではない。なお、ＯＰＥの詳細については後述する。
【００１５】
そして、サーバ１０は、プログラム２５を実行することにより、クライアント２０からアップロードされたデータ３０に情報（Ｃ）を埋め込み、情報が埋め込まれたデータ３５を生成する。ここで、サーバ１０における情報埋め込み処理も、ＯＰＥを用いて行われる。したがって、データ３０に情報（Ｃ）が埋め込まれたデータ３５そのものがサーバ１０上に生成されるわけではない。
【００１６】
その後、クライアント２０は、情報（Ｃ）が埋め込まれたデータ３５をサーバ１０からダウンロードする。ここで、データ３５のサーバ１０からのダウンロードも、ＯＰＥを用いて行われる。したがって、情報（Ｃ）が埋め込まれたデータ３５そのものがダウンロードされるわけではない。
【００１７】
このような情報埋め込み処理としては、例えば、データ３０に電子透かし（Ｃ）を埋め込む電子透かし処理や、データ３０に信頼のある第三者機関により発行されるタイムスタンプ（Ｃ）を埋め込む処理等がある。そして、ＯＰＥを用いて情報埋め込みを行うことにより、クライアント２０が有するデータ３０をサーバ１０に対して秘匿することができ、サーバ１０のプログラム２５において実行される情報埋め込み処理の関数のアルゴリズムをクライアント２０に対して秘匿することができる。さらに、サーバ１０とクライアント２０との間の通信がＯＰＥであり、データ３０やデータ３５そのものが送受信されるわけではないため、不正な第三者への情報漏洩を防ぐことができる。
【００１８】
なお、本例では、クライアント２０からサーバ１０にデータ３０をアップロードし、サーバ１０においてデータ３０に情報（Ｃ）を埋め込むこととしたが、例えばステガノグラフィ処理などの情報ハイディング技術による処理のように、クライアント２０からサーバ１０に情報（Ｃ）をアップロードし、サーバ１０においてサーバ１０が有するデータ３０に情報（Ｃ）を埋め込むこととしてもよい。この場合においても、ＯＰＥを用いて情報埋め込みを行うことにより、クライアント２０が有する埋め込み情報（Ｃ）をサーバ１０に対して秘匿することができ、サーバ１０のプログラム２５において実行される情報埋め込み処理の関数のアルゴリズムをクライアント２０に対して秘匿することができる。
【００１９】
次に、サーバ１０及びクライアント２０の構成について説明する。サーバ１０及びクライアント２０の一例である情報処理装置４０のハードウェア構成を、図２に示す。情報処理装置４０は、ＣＰＵ５０、メモリ５１、記憶装置５２、入力インタフェース５３、出力インタフェース５４、記録媒体読取装置５５、及び通信インタフェース５６を含んで構成されている。
【００２０】
ＣＰＵ５０は、メモリ５１に格納されたプログラムを実行することにより、情報処理装置４０を統括制御するものである。メモリ５１は、ＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）等の記憶領域であり、ＣＰＵ５０が実行するプログラムや様々なデータ等が格納される。記憶装置５２は、例えばハードディスク等の記憶領域であり、各種のプログラムやデータ等が格納される。なお、記憶装置５２に格納されたプログラムは、実行される際にメモリ５１に順次格納される。
【００２１】
入力インタフェース５３は、キーボードやマウス、マイク、スキャナ、カメラ、ビデオカメラ等の入力装置６０からの文書データや音データ、画像データ、映像データ等の入力データを受け付けるインタフェースである。出力インタフェース５４は、ディスプレイやプリンタ、スピーカ等の出力装置６１への文書データや音データ、画像データ、映像データ等の出力を行うインタフェースである。記録媒体読取装置５５は、ＣＤ−ＲＯＭ等の記録媒体６２に記録されているプログラムやデータを読み取る装置である。そして、記録媒体読取装置５５によって読み取られたデータは、メモリ５１や記憶装置５２等に格納される。通信インタフェース５６は、インターネットやＬＡＮ等のネットワーク６３やＵＳＢ接続、シリアルポート接続、プリンタポート接続等により有線又は無線でデータの送受信を行うためのインタフェースである。なお、情報処理装置４０は、通信インタフェース５６を介してプログラムを受信することもできる。
【００２２】
サーバ１０が有する機能ブロックの構成を、図３に示す。サーバ１０は、データ受信部７０及び結果データ生成部７５を備えている。データ受信部７０は、クライアント２０からデータ３０をＯＰＥにより受信する。結果データ生成部７５は、クライアント２０から受信したデータ３０に情報（Ｃ）を埋め込んだデータ３５をＯＰＥにより生成する。これらの機能ブロック７０，７５は、サーバ１０において、メモリ５１に格納されたプログラムをＣＰＵ５０が実行することにより実現されるものである。なお、これらの機能ブロック７０，７５の機能の詳細は後述する。また、クライアント２０においても、メモリ５１に格納されたプログラムをＣＰＵ５０が実行することにより、後述する各種の処理が実現される。
【００２３】
２．紛失通信
次に、ＯＰＥで用いられるサブプロトコルである紛失通信（Oblivious Transfer：以後「ＯＴ」と称する）について説明する。
【００２４】
（１）ＯＴ21（1-out-of-2 Oblivious Transfer）
まず、ＯＴ21について説明する。サーバ１０は、秘密情報であるＭ0，Ｍ1を持っている。クライアント２０は、サーバ１０の持っている情報Ｍ0，Ｍ1のどちらか一方の情報のみを得ることができ、他方の情報を得ることはできない。また、サーバ１０は、クライアント２０が得た情報がＭ0，Ｍ1のどちらであるかを知ることができない。このような要件を満たすプロトコルがＯＴ21である。以下に、ＯＴ21の詳細な手順の一例を示す。
【００２５】
（１−１）
サーバ１０は、PKCS（公開鍵暗号系）のインスタンス（Ｅx，Ｄx）をランダムに選ぶ。なお、Ｅxは暗号鍵、Ｄxは復号鍵であり、Ｄx(Ｅx(ｍ))＝Ｅx(Ｄx(ｍ))＝ｍの関係にある。また、サーバ１０はPKCSインスタンス上のメッセージ空間Ｍxからランダムに２つのメッセージｍ0，ｍ1を選ぶ。そして、サーバ１０はクライアント２０にＥx，ｍ0，ｍ1をセキュアなチャネル経由で送信する。
【００２６】
（１−２）
クライアント２０はサーバ１０からＥx，ｍ0，ｍ1を受信する。また、クライアント２０はランダムにメッセージＫ（∈Ｍx）を選ぶ。ここで、クライアント２０はサーバ１０の持っている情報Ｍr（ｒ∈｛０，１｝）を知りたいとする。クライアント２０は、ｑ＝Ｅx(Ｋ)[+]ｍrを計算し、サーバ１０へ送信する。なお、[+]はビットごとのＸＯＲ（排他的論理和）を表すこととする。
【００２７】
（１−３）
サーバ１０は、クライアント２０からｑ＝Ｅx(Ｋ)[+]ｍrを受信する。そして、サーバ１０は、Ｋ0'＝Ｄx(ｑ[+]ｍ0)，Ｋ1'＝Ｄx(ｑ[+]ｍ1)を計算する。これら２つのＫi'（ｉ∈｛０，１｝）は、ｉ＝ｒのときＫr'＝Ｋとなり、ｉ≠ｒのときＫr(+)1'＝Ｋ'（≠Ｋ）となる。なお、(+)はＸＯＲ（排他的論理和）を表すこととする。ただし、サーバ１０はｒの値を知らないので、Ｋi'のどちらがＫであるかを知ることはできない。そして、サーバ１０は、Ｍ0[+]Ｋ0'，Ｍ1[+]Ｋ1'を計算し、クライアント２０へ送信する。
【００２８】
（１−４）
クライアント２０は、Ｍ0[+]Ｋ0'，Ｍ1[+]Ｋ1'を受信する。クライアント２０は、この中からＭr[+]Ｋr'を選び、Ｍr[+]Ｋr'[+]Ｋ＝Ｍr[+]Ｋ[+]Ｋ＝Ｍrを計算し、求めたい情報Ｍrを得ることができる。また、もう一方の情報Ｍr(+)1に関しては、Ｋr(+)1'の値の解読困難性がPKCSにより保証されており、クライアント２０はＭr(+)1[+]Ｋr(+)1'からＭr(+)1の値を得ることができない。
【００２９】
（２）ＯＴN1（1-out-of-N Oblivious Transfer）
次に、ＯＴN1について説明する。サーバ１０はｍビットの秘密情報Ｘ1，Ｘ2，…，ＸNを持っている。クライアント２０はサーバ１０の持っているＮ個の情報の中から１つだけ情報を得ることができ、その他の情報については得ることができない。また、サーバ１０は、クライアント２０がＮ個の情報の中からどの情報を得たかを知ることができない。このような要件を満たすプロトコルがＯＴN1である。以下に、ＯＴN1の詳細な手順の一例を示す。
【００３０】
（２−１）
サーバ１０は、擬似ランダム関数ＦKに対する鍵Ｋjb（１≦ｊ≦ｌ，ｂ∈｛０，１｝）のペア（Ｋ10，Ｋ11），（Ｋ20，Ｋ21），…，（Ｋl0，Ｋl1）をランダムに用意する。なお、ＦKはｍビットのバイナリストリングを生成する関数であり、ｌ＝log2Ｎである。また、Ｉ（１≦Ｉ≦Ｎ）を２進数＜ｉ1，ｉ2，…，ｉl＞で表すこととする。そして、サーバ１０は、次式（１）によりＹ1，Ｙ2，…，ＹNを計算する。なお、(+)j=1lはｊ＝１からｌまでのＸＯＲ（排他的論理和）を表すこととする。
【数１】
2007193280.tif 000003
【００３１】
（２−２）
ここで、クライアント２０が、サーバ１０の持っている秘密情報のうちＸTを知りたいとする。クライアント２０は、サーバ１０とＯＴ21をｌ（＝log2Ｎ）回行い、（Ｋj0，Ｋj1）のペアからＫ1t1，Ｋ2t2，…，Ｋltlを取得する。なお、ＯＴ21を用いているため、サーバ１０はＴを知ることができない。
【００３２】
（２−３）
サーバ１０は、クライアント２０にＹ1，Ｙ2，…，ＹNを送信する。
【００３３】
（２−４）
クライアント２０は、Ｙ1，Ｙ2，…，ＹNを受信し、Ｋ1t1，Ｋ2t2，…，Ｋltlから次式（２）に示されるｌ個の関数を求める。
【数２】
2007193280.tif 000004
【００３４】
そして、クライアント２０は、次式（３）により求めたい情報ＸTを得ることができる。
【数３】
2007193280.tif 000005
【００３５】
なお、ＯＴ21を用いているため、クライアント２０はＫjtj(+)1（１≦ｊ≦ｌ）については知ることができない。したがって、クライアント２０はＫjtj(+)1に対応するＦを求めることができず、ＸT以外の秘密情報ＸIを得ることができない。
【００３６】
（３）ＯＴNk（k-out-of-N ＯＴ）
次に、ＯＴNkについて説明する。サーバ１０はｍビットの秘密情報Ｘ1，Ｘ2，…，ＸNを持っている。クライアント２０はサーバ１０の持っているＮ個の情報の中からｋ個だけ情報を得ることができ、その他の情報については知ることができる範囲が限られている。また、サーバ１０は、クライアント２０がＮ個の情報の中からどの情報を得たかを知ることができない。このような要件を満たすプロトコルがＯＴNkである。ＯＴNkは、ＯＴN1をｋ回繰り返すことで実現可能である。なお、以下に示す手順によりＯＴNkを実現することにより、処理効率を改善することも可能である。
【００３７】
（３−１−１）
サーバ１０は、√Ｎ個の２つのセットの鍵Ｒ1，Ｒ2，…，Ｒ√N，Ｃ1，Ｃ2，…，Ｃ√Nをランダムに選ぶ。なお、Ｒi，Ｃjは擬似ランダム関数Ｆに対する値である。また、√ＮはＮの平方根を表すこととする。そして、サーバ１０は、Ｘ1，Ｘ2，…，ＸNを√Ｎ×√Ｎの次の表に適当に配置し、クライアント２０へ送信する。
【表１】
2007193280.tif 000006
【００３８】
また、サーバ１０は、次式（４）によりＹi,j（０≦ｉ≦√Ｎ，０≦ｊ≦√Ｎ）を計算する。
【数４】
2007193280.tif 000007
【００３９】
（３−１−２）
クライアント２０は、サーバ１０から送信されてくる表を受信する。そして、クライアント２０は表から自分が欲しい情報に対応している値を見つける。ここでは、自分が欲しい情報に対応している値がＸI,Jであることとする。クライアント２０は、サーバ１０とＯＴ√N1を２回行い、Ｒ1，Ｒ2，…，Ｒ√NとＣ1，Ｃ2，…，Ｃ√NからＲI，ＣJを取得する。
【００４０】
（３−１−３）
サーバ１０は、クライアント２０にＹi,j（０≦ｉ≦√Ｎ，０≦ｊ≦√Ｎ）を送信する。
【００４１】
（３−１−４）
クライアント２０は、Ｙi,jを受信する。そして、クライアント２０は、ＲI，ＣJからＦRI，ＦCJを求め、次式（５）により求めたい情報ＸI,Jを得ることができる。
【数５】
2007193280.tif 000008
【００４２】
（３−１−５）
前述した（３−１−２）〜（３−１−４）の手順を繰り返し行うことにより、クライアント２０は知りたい情報をｋ個知ることができる。
【００４３】
なお、（３−１−１）〜（３−１−５）に示した手順では、クライアント２０が得た情報がどれであるかをサーバ１０が知ることができないという要件は満たされるが、クライアント２０は自分が知りたい情報以外に最大でｋ2−ｋ個のサーバ１０の情報を知ることができる。ここで、ｋ＜＜Ｎの条件が満たされれば、クライアント２０に知られてしまう情報の数は非常に少なく、実用上は問題ない場合が多い。なお、クライアント２０に知られてしまう情報の数を更に少なくするために、以下に示す手順によりＯＴNkを実現することも可能である。
【００４４】
（３−２−１）
サーバ１０は、√Ｎ個の２つのセットの鍵Ｒ1P，Ｒ2P，…，Ｒ√NP，Ｃ1P，Ｃ2P，…，Ｃ√NPをランダムに選ぶ。そして、そして、サーバ１０は、Ｘ1，Ｘ2，…，ＸNを√Ｎ×√Ｎの次の表σPに適当に配置し、クライアント２０へ送信する。
【表２】
2007193280.tif 000009
【００４５】
（３−２−２）
クライアント２０は、表σPを受信する。ここで、クライアント２０は、ＸT1，…，ＸTkの値を知りたいこととする。クライアント２０は、（３−１−１）〜（３−１−５）の手順に従い、Ｒ1P，Ｒ2P，…，Ｒ√NP，Ｃ1P，Ｃ2P，…，Ｃ√NPの中から表σPにおいて自分の知りたい情報ＸT1，…，ＸTkに対応する次式（６）で示されるＲ，Ｃを取得する。なお、σR(Ii)Pは、表σPにおける知りたい情報ＩiのＲの番号を示すものであり、σC(Ii)Pは、表σPにおける知りたい情報ＩiのＣの番号を示すものである。
【数６】
2007193280.tif 000010
【００４６】
（３−２−３）
前述した手順（３−１−１），（３−１−２）を、Ｐ＝１からＷ（任意の数）まで繰り返し実行する。
【００４７】
（３−２−４）
サーバ１０は、次式（７）によりＹI（１≦Ｉ≦Ｎ）を計算し、クライアント２０へ送信する。
【数７】
2007193280.tif 000011
【００４８】
（３−２−５）
クライアント２０は、Ｙ1〜ＹNを受信する。そして、クライアント２０は、式（６）で示されるＲ，Ｃ（１≦Ｐ≦Ｗ）から、次式（８）で示されるＦ（１≦Ｐ≦Ｗ）を求める。
【数８】
2007193280.tif 000012
【００４９】
そして、クライアント２０は、次式（９）より求めたい情報ＸTiを得ることができる。
【数９】
2007193280.tif 000013
【００５０】
３．紛失多項式評価（１変数）
次に、サーバ１０及びクライアント２０間におけるＯＰＥの一例について説明する。ここで、クライアント２０は、定数αを持っており、サーバ１０は、１変数多項式Ｐ(ｘ)を持っていることとする。そして、ＯＰＥのプロトコル終了後、クライアント２０は、Ｐ(α)を得ることができる。なお、ＯＰＥのプロトコルでは、次の２つの要件が満たされる。  
・クライアント２０は、１変数多項式Ｐ(ｘ)について知ることができない。  
・サーバ１０は、α及びＰ(α)を知ることができない。
【００５１】
このようなＯＰＥのプロトコルの詳細について説明する。  
（１）サーバ１０が情報埋め込み処理において用いる秘密にしたい関数（第１関数）を、次式（１０）で表されるｄp次の１変数多項式とする。また、クライアントが秘密にしたいデータ３０（第１データ）の値をαとする。
【数１０】
2007193280.tif 000014
【００５２】
（２）まず、サーバ１０は、関数Ｐを隠すために、次式（１１）で示されるｄ次の関数（第３関数）である多項式Ｐ'を生成する。なお、ｄ＝ｄp×Ｋであり、Ｐ'(０)＝０となっている。ここで、Ｐ'(０)の"０"が本発明における所定のデータに相当し、Ｐ'(０)により求められる"０"が本発明の第２データに相当する。なお、Ｋは任意に定められる自然数であり、このＫの値が大きいほどＰ'の次数が高くなり、Ｐの推測が困難となる。
【数１１】
2007193280.tif 000015
【００５３】
そして、サーバ１０は、次式（１２）で示される２変数多項式Ｑ(ｘ，ｙ)を定義する。
【数１２】
2007193280.tif 000016
【００５４】
なお、Ｐ'(０)＝０であるため、全てのｙにおいて、Ｑ(０，ｙ)＝Ｐ(ｙ)となる。
【００５５】
（３）クライアント２０は、αを隠すために、Ｓ(０)＝αとなるＫ次の関数（第２関数）である多項式Ｓ(ｘ)をランダムに生成する。
【００５６】
（４）ここで、Ｒ(ｘ)＝Ｑ(ｘ，Ｓ(ｘ))と定義する。そして、Ｒ(ｘ)の次数をｄRとすると、クライアント２０は、(ｄR＋１)個のデータ（ｘi，Ｓ(ｘi)）を生成し、（ｘi，Ｓ(ｘi)）と関係のない複数のダミーデータ（ｘj'，Ｓj'）とともに区別なくサーバ１０に送信する。ここで、ｘiが本発明の入力データに相当し、Ｓ(ｘi)が本発明の出力データに相当する。また、ｘj'が本発明の第１ダミーデータに相当し、Ｓj'が本発明の第２ダミーデータに相当する。
【００５７】
（５）サーバ１０のデータ受信部７０は、クライアント２０から送信されてくる(ｄR＋１)個のデータ（ｘi，Ｓ(ｘi)）とダミーデータ（ｘj'，Ｓj'）を受信する。そして、サーバ１０の結果データ生成部７５は、これらのデータをＱ(ｘ，ｙ)に代入し、Ｒ(ｘi)＝Ｑ(ｘi，Ｓ(ｘi))及びＲ'(ｘj)＝Ｑ(ｘj'，Ｓj')を生成する。ここで、（ｘi，Ｒ(ｘi)）及び（ｘj'，Ｒ'(ｘj')）が本発明の結果データに相当する。
【００５８】
（６）（ｄR＋１）＋ダミーデータの数をＮとすると、クライアント２０は、サーバ１０で生成された（ｘi，Ｒ(ｘi)）及び（ｘj'，Ｒ'(ｘj')）の中から、(dR+1)-out-of-N Oblivious Transferを用いて、ｄR＋１個の（ｘi，Ｒ(ｘi)）を取得する。なお、ＯＴが用いられているため、サーバ１０は、クライアント２０がどのデータを選んだかを知ることはできない。
【００５９】
（７）クライアント２０は、ｄR＋１個の（ｘi，Ｒ(ｘi)）からＲ(ｘ)を推測し、次式（１３）に示されるように、Ｒ(ｘ)に０を代入することにより、情報埋め込みデータＰ(α)を得る。
【数１３】
2007193280.tif 000017
【００６０】
なお、ＯＰＥにおいてクライアント２０がサーバ１０から受け取るデータは、(dR+1)-out-of-N Oblivious Transferにより得られるｄR＋１個の（ｘi，Ｒ(ｘi)）だけである。したがって、クライアント２０が得ることができるのは、Ｐ(ｘ)の１つの値であるＰ(α)だけである。これにより、関数Ｐ(ｘ)をクライアント２０に秘匿することができる。また、クライアント２０がサーバ１０に送信する定数αは多項式関数Ｓ(ｘ)の中に隠される。そして、（ｘi，Ｓ(ｘi)）の対は、ｘiやＳ(ｘi)と関係のないダミーデータと混ぜてサーバ１０に送信されるため、定数αをサーバ１０に秘匿することができる。
【００６１】
このように、ＯＰＥを用いて情報埋め込みを行うことにより、クライアント２０が有するデータ３０（α）をサーバ１０に対して秘匿することができ、サーバ１０のプログラム２５において実行される情報埋め込み処理の関数（Ｐ(ｘ)）のアルゴリズムをクライアント２０に対して秘匿することができる。
【００６２】
＝＝情報埋め込み（多変数）＝＝
１．システム概要
次に、クライアントから送信されるデータが複数（多変数）の場合における情報埋め込みシステムの概要について説明する。本発明の情報埋め込み装置の一例であるサーバを含んで構成される多変数の情報埋め込みシステムの例を、図４に示す。なお、サーバ１０及びクライアント２０の構成は図１に示した例と同様であることとする。ただし、サーバ１０は、図１に示したプログラム２５の代わりに、多変数に対応したプログラム８０を有していることとする。そして、データ受信部７０は、クライアント２０からデータ３０及び埋め込み情報（Ｃ）をＯＰＥにより受信することとする。また、クライアント２０も、多変数に対応したプログラムを有していることとする。
【００６３】
このような情報埋め込みシステムにおいて情報埋め込みが行われる流れを説明する。まず、クライアント２０が、情報埋め込みの対象となるデータ３０及び埋め込み情報（Ｃ）をサーバ１０にアップロードする。ここで、データ３０及び埋め込み情報（Ｃ）のサーバ１０へのアップロードは、多変数に拡張されたＯＰＥを用いて行われる。したがって、データ３０及び埋め込み情報（Ｃ）そのものがアップロードされるわけではない。なお、多変数に拡張されたＯＰＥの詳細については後述する。
【００６４】
そして、サーバ１０は、プログラム８０を実行することにより、クライアント２０からアップロードされたデータ３０に情報（Ｃ）を埋め込み、情報が埋め込まれたデータ３５を生成する。ここで、サーバ１０における情報埋め込み処理も、多変数に拡張されたＯＰＥを用いて行われる。したがって、データ３０に情報（Ｃ）が埋め込まれたデータ３５そのものがサーバ１０上に生成されるわけではない。
【００６５】
その後、クライアント２０は、情報（Ｃ）が埋め込まれたデータ３５をサーバ１０からダウンロードする。ここで、データ３５のサーバ１０からのダウンロードも、多変数に拡張されたＯＰＥを用いて行われる。したがって、情報（Ｃ）が埋め込まれたデータ３５そのものがダウンロードされるわけではない。
【００６６】
このような情報埋め込み処理としては、例えば、データ３０に電子透かし（Ｃ）を埋め込む電子透かし処理やステガノグラフィ処理等がある。そして、多変数に拡張されたＯＰＥを用いて情報埋め込みを行うことにより、クライアント２０が有するデータ３０及び埋め込み情報（Ｃ）をサーバ１０に対して秘匿することができ、サーバ１０のプログラム８０において実行される情報埋め込み処理の関数のアルゴリズムをクライアント２０に対して秘匿することができる。さらに、サーバ１０とクライアント２０との間の通信が多変数に拡張されたＯＰＥであり、データ３０やデータ３５そのものが送受信されるわけではないため、不正な第三者への情報漏洩を防ぐことができる。
【００６７】
なお、データ３０を複数のデータにより構成されるデータ列、埋め込み情報（Ｃ）を複数の埋め込み情報により構成される埋め込み情報列とすることも可能である。つまり、例えば複数の画像データにより構成されるデータ列に対して１つの埋め込み情報（Ｃ）を埋め込むことも可能であるし、１つの画像データに対して埋め込み情報列により構成される複数の埋め込み情報（Ｃ）を埋め込むことも可能である。
【００６８】
２．紛失多項式評価（多変数）
次に、サーバ１０及びクライアント２０間における多変数に拡張されたＯＰＥの一例について説明する。ここで、クライアント２０は、定数列α＝（α1，α2，…，αn）を持っており、サーバ１０は、ｎ変数ｋ次多項式Ｐ(ｘ)（ｘ＝（ｘ1，ｘ2，…，ｘn））を持っていることとする。そして、ＯＰＥのプロトコル終了後、クライアント２０は、Ｐ(α)を得ることができる。なお、多変数に拡張されたＯＰＥのプロトコルでは、次の２つの要件が満たされる。  
・クライアント２０は、多変数多項式Ｐ(ｘ)について知ることができない。  
・サーバ１０は、α及びＰ(α)を知ることができない。
【００６９】
このような多変数に拡張されたＯＰＥのプロトコルの詳細について説明する。  
（１）サーバ１０が情報埋め込み処理において用いる秘密にしたい関数（第１関数）を、次式（１４）で表されるｎ変数ｋ次多項式とする。また、クライアント２０が秘密にしたいデータ（第１データ）を定数列α＝（α1，α2，…，αn）とする。なお、ｋ＝ｍ×ｎである。
【数１４】
2007193280.tif 000018
【００７０】
（２）まず、サーバ１０は、関数Ｐを隠すために、次式（１５）で示されるｋ'次の関数（第３関数）である多項式Ｐ'を生成する。なお、ｋ'＝ｋ×Ｋであり、Ｐ'(０，…，０)＝０となっている。また、式（１５）においては（ｋ1，…，ｋn）≠（０，…，０）であることとする。ここで、Ｐ'(０，…，０)の"０，…，０"が本発明における所定のデータに相当し、Ｐ'(０，…，０)により求められる"０"が本発明の第２データに相当する。なお、Ｋは任意に定められる自然数であり、この値が大きいほどＰ'の次数が高くなり、Ｐの推測が困難となる。なお、（ｋ1，…，ｋn）＝（０，…，０）である場合は、Ｐ'(ｘ1，…，ｘn)＝０であることとする。
【数１５】
2007193280.tif 000019
【００７１】
そして、サーバ１０は、次式（１６）で示される多項式Ｑ（ｘ，ｙ）（ｘ＝（ｘ1，…，ｘn），ｙ＝（ｙ1，…，ｙn））を定義する。
【数１６】
2007193280.tif 000020
【００７２】
なお、Ｐ'(０，…，０)＝０であるため、全てのｙにおいて、Ｑ(０，ｙ)＝Ｐ(ｙ)となる。
【００７３】
（３）クライアント２０は、定数列α＝（α1，α2，…，αn）を隠す関数（第２関数）となる多項式関数列Ｓ＝（Ｓ1，Ｓ2，…，Ｓn）を生成する。なお、Ｓi（ｉ＝１，…，ｎ）の次数はＫ次であり、Ｓi(０)＝αiとなっている。
【００７４】
（４）クライアント２０は、｛γij｜ｉ＝１，…，ｎ，ｊ＝１，…，ｓ｝（γij≠０）を生成し、次式（１７）で示されるｓ個の対を生成する。
【数１７】
2007193280.tif 000021
【００７５】
なお、ｓは次式（１８）により示される数とする。
【数１８】
2007193280.tif 000022
【００７６】
また、クライアント２０は、式（１７）で示されるｓ個の対と関係のない、次式（１９）で示されるｔ個のダミーデータの対を生成する。
【数１９】
2007193280.tif 000023
【００７７】
そして、クライアント２０は、式（１７）に示されるｓ個の対を、式（１９）に示されるｔ個の対とともに区別なくサーバ１０に送信する。ここで、（γ1i，…，γni）（ｉ＝１，…，ｓ）が本発明の入力データに相当し、（Ｓ1(γ1i)，…，Ｓn(γni)）（ｉ＝１，…，ｓ）が本発明の出力データに相当する。また、（γ1j'，…，γnj'）（ｊ＝１，…，ｔ）が本発明の第１ダミーデータに相当し、（Ｓ1j'，…，Ｓnj'）（ｊ＝１，…，ｔ）が本発明の第２ダミーデータに相当する。
【００７８】
（５）サーバ１０のデータ受信部７０は、クライアント２０から送信されてくるｓ個のデータ（（γ1i，…，γni），（Ｓ1(γ1i)，…，Ｓn(γni)））と、ｔ個のダミーデータ（（γ1j'，…，γnj'），（Ｓ1j'，…，Ｓnj'））を受信する。そして、サーバ１０の結果データ生成部７５は、これらのデータをＱ(ｘ，ｙ)に代入し、Ｒ(γi)＝Ｑ((γ1i，…，γni)，(Ｓ1(γ1i)，…，Ｓn(γni)))及びＲ'(γj)＝Ｑ((γ1j'，…，γnj')，(Ｓ1j'，…，Ｓnj'))を生成する。ここで、（(γ1i，…，γni)，Ｒ(γi)）及び（(γ1j'，…，γnj')，Ｒ'(γj)）が本発明の結果データに相当する。
【００７９】
（６）ｓ＋ｔ＝ｕとすると、クライアント２０は、サーバ１０で生成された（(γ1i，…，γni)，Ｒ(γi)）及び（(γ1j'，…，γnj')，Ｒ'(γj)）の中から、s-out-of-u Oblivious Transferを用いて、ｓ個の（(γ1i，…，γni)，Ｒ(γi)）を取得する。なお、ＯＴが用いられているため、サーバ１０は、クライアント２０がどのデータを選んだかを知ることはできない。
【００８０】
（７）クライアント２０は、ｓ個の（(γ1i，…，γni)，Ｒ(γi)）からＲ(ｘ)＝Ｑ((ｘ1，…，ｘn)，(Ｓ1(ｘ1)，…，Ｓn(ｘn)))を推測し、次式（２０）に示されるように、Ｒ(ｘ)に０を代入することにより、情報埋め込みデータＰ(α)＝Ｐ(α1，…，αn)を得る。
【数２０】
2007193280.tif 000024
【００８１】
なお、多変数に拡張されたＯＰＥにおいてクライアント２０がサーバ１０から受け取るデータは、s-out-of-t Oblivious Transferにより得られるｓ個の（(γ1i，…，γni)，Ｒ(γi)）だけである。したがって、クライアント２０が得ることができるのは、Ｐ(ｘ)の１つの値であるＰ(α)だけである。これにより、関数Ｐ(ｘ)をクライアント２０に秘匿することができる。また、クライアント２０がサーバ１０に送信する定数列αは多項式関数列Ｓi(ｘ)の中に隠される。そして、（(γ1i，…，γni)，(Ｓ1(γ1i)，…，Ｓn(γni))）の対は、（γ1i，…，γni）やＳi(ｘ)と関係のないダミーデータと混ぜてサーバ１０に送信されるため、定数列αをサーバ１０に秘匿することができる。
【００８２】
ここで、例えばα1をデータ３０、α2を埋め込み情報（Ｃ）とすることにより、図４に示した情報埋め込み処理を多変数に拡張されたＯＰＥを用いて行うことができる。このように、多変数に拡張されたＯＰＥを用いて情報埋め込みを行うことにより、クライアント２０が有するデータ３０や埋め込み情報等のデータ（α＝(α1，…，αn)）をサーバ１０に対して秘匿することができ、サーバ１０のプログラム２５において実行される情報埋め込み処理の関数（Ｐ(ｘ)＝Ｐ(ｘ1，…，ｘn)）のアルゴリズムをクライアント２０に対して秘匿することができる。なお、図４には、αがデータ３０と埋め込み情報（Ｃ）の２変数により構成される例を示したが、３変数以上であっても同様に適用可能である。
【００８３】
以上、本実施形態の情報埋め込みシステムについて説明した。前述したように、ＯＰＥを用いて情報埋め込みを行うことにより、クライアント２０が有するデータ３０（α）をサーバ１０に対して秘匿することができ、サーバ１０のプログラム２５において実行される情報埋め込み処理の関数（Ｐ(ｘ)）のアルゴリズムをクライアント２０に対して秘匿することができる。
【００８４】
また、多変数に拡張されたＯＰＥを用いて情報埋め込みを行うことにより、クライアント２０が有するデータ３０や埋め込み情報等のデータ（α＝(α1，…，αn)）をサーバ１０に対して秘匿することができ、サーバ１０のプログラム８０において実行される情報埋め込み処理の関数（Ｐ(ｘ)＝Ｐ(ｘ1，…，ｘn)）のアルゴリズムをクライアント２０に対して秘匿することができる。
【００８５】
なお、上記実施形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。
【図面の簡単な説明】
【００８６】
【図１】本発明の情報埋め込み装置の一例であるサーバを含んで構成される１変数の情報埋め込みシステムの例を示す図である。
【図２】サーバ及びクライアントの一例である情報処理装置のハードウェア構成を示す図である。
【図３】サーバが有する機能ブロックの構成を示す図である。
【図４】本発明の情報埋め込み装置の一例であるサーバを含んで構成される多変数の情報埋め込みシステムの例を示す図である。
【図５】情報埋め込みサービスをクライアント処理方式で実現する場合の一般的な構成を示す図である。
【図６】情報埋め込みサービスをサーバ処理方式で実現する場合の一般的な構成を示す図である。
【符号の説明】
【００８７】
１０  サーバ                            ２０  クライアント
２５，８０  プログラム                  ３０  データ
３５  情報埋め込みデータ                ４０  情報処理装置
５０  ＣＰＵ                            ５１  メモリ
５２  記憶装置                          ５３  入力インタフェース
５４  出力インタフェース                ５５  記録媒体読取装置
５６  通信インタフェース                ６０  入力装置
６１  出力装置                          ６２  記録媒体
６３  ネットワーク                      ７０  データ受信部
７５  結果データ生成部
【図１】
2007193280.tif 000025
【図２】
2007193280.tif 000026
【図３】
2007193280.tif 000027
【図４】
2007193280.tif 000028
【図５】
2007193280.tif 000029
【図６】
2007193280.tif 000030