(57)【特許請求の範囲】
【請求項１】
通信ネットワークから、検索条件の一部が暗号化された問合せメッセージを受信し、該問合せメッセージが示す検索条件に従って情報検索を実行するデータベースサーバと、クライアント計算機から受信した問合せ要求が示す検索条件の一部を暗号化し、上記データベースサーバ宛の問合せメッセージとして、上記通信ネットワークに送信するデータ中継サーバとからなるデータ検索システムにおいて、
上記データ中継サーバが、
クライアント計算機から、データ項目名とデータ値との関係式を示す少なくとも１組の検索条件定義で検索条件を指定し、上記検索条件定義に付随した秘匿表示で検索条件定義の暗号化要否を指定した問合せ要求を受信し、上記秘匿表示に応じて、特定の検索条件定義に含まれる特定のデータ値を暗号化するための第１手段と、
検索条件の一部に、上記第１手段で暗号化された検索条件定義を含み、検索条件定義毎に暗号化の有無を示す秘匿表示を含む上記データベースサーバ宛の問合せメッセージを生成するための第２手段と、
上記第２手段で生成された問合せメッセージを上記通信ネットワークに送信するための第３手段と、
上記通信ネットワークを介して、上記データベースサーバから、上記問合せメッセージが示す検索条件に適合したデータを検索結果として受信するための第４手段と、
上記第４手段で受信された検索結果に基づいてクライアント計算機宛の応答メッセージを生成し、問合せ要求元のクライアントに転送するための第５手段とを備え、
上記データベースサーバが、
サービス情報となるデータを蓄積したデータベースと、
上記問合せメッセージが示す秘匿表示に基いて、検索条件定義が暗号化されているか否かを判定し、暗号化されていない検索条件定義については、該検索条件定義が示す関係式に従って上記データベースの蓄積データを判定し、暗号化されたデータ値を含む検索条件定義については、上記データベースから該検索条件定義が示す特定のデータ項目名のデータを読み出し、これを暗号化して上記検索条件定義が示す関係式と照合することによって、上記検索条件に適合したサービス情報を検索するための検索手段と、
上記問合せメッセージの送信元宛に、検索されたデータを含むメッセージを送信するための手段とを備えることを特徴とするデータ検索システム。
【請求項２】
前記クライアント計算機から受信した問合せ要求が、検索結果として回答すべきデータ項目を指定しており、前記データ中継サーバの前記第２手段で生成される前記データベースサーバ宛の問合せメッセージが、前記クライアント計算機からの問合せ要求で指定されたデータ項目と、一部が暗号化された前記検索条件の他に、前記検索条件定義の暗号化に適用された暗号化プログラムまたは暗号化関数の識別情報を含み、
前記データベースサーバの前記検索手段が、上記識別情報で指定された暗号化プログラムまたは暗号化関数を適用して、前記データベースから読み出された特定のデータ項目名のデータを暗号化することを特徴とする請求項１に記載のデータ検索システム。
【請求項３】
前記データ中継サーバの前記第２手段で生成された前記データベースサーバ宛の問合せメッセージが、前記検索条件定義の暗号化に適用された暗号化プログラムを含み、
前記データベースサーバの前記検索手段が、上記暗号化プログラムを適用して、前記データベースから読み出されたデータを暗号化することを特徴とする請求項２に記載のデータ検索システム。
【請求項４】
前記データ中継サーバの前記第５手段が、前記第４手段で受信された検索結果を前記クライアント計算機から受信した問合せ要求に含まれる検索条件で再検索するための手段を有し、
前記クライアント計算機宛の応答メッセージが、上記再検索の結果を示すことを特徴とする請求項１〜請求項３の何れかに記載のデータ検索システム。
【請求項５】
前記データ中継サーバが、
異なるクライアント計算機から、前記検索条件と検索結果として回答すべき選択データ項目とを指定した問合せ要求を受信し、受信した少なくとも２つの問合せ要求に含まれる選択データ項目の和集合を新たな選択データ項目とし、上記２つの問合せ要求が示す検索条件定義の論理和を新たな検索条件として、上記２つの問合せ要求を１つの連結問合せに変換し、該連結問合せを前記第１手段に供給するための第６手段を有し、
前記第５手段が、前記データベースサーバから受信した上記連結問合せに対する検索結果の中から、上記各クライアント計算機が発行した元の問合せが示す検索条件に適合したデータを再検索し、各クライアント計算機宛の応答メッセージを生成することを特徴とする請求項１〜請求項４の何れかに記載のデータ検索システム。
【請求項６】
前記データ中継サーバが、
クライアント計算機から、前記検索条件として複数組の検索条件定義を含み、検索結果として回答すべき選択データ項目を指定した問合せ要求を受信し、該問合せ要求が示す上記複数組の検索条件定義を第１、第２の検索条件に分割することによって、上記選択データ項目と上記第１の検索条件と含む第１分配問合せと、上記選択データ項目と上記第２の検索条件と含む第２分配問合せを生成し、該第１、第２の分配問合せを前記第１手段に供給するための第６手段を有し、
前記第２手段が、前記第１手段で検索条件が部分的に暗号化された第１、第２の分配問合せのうちの１つを前記データベースサーバ宛の問合せメッセージに変換し、他方の分配問合せを予め指定された他のデータ中継サーバ宛の問合せメッセージに変換し、
前記第５手段が、前記データベースサーバから受信した上記一方の分配問合せに対する検索結果と、上記他のデータ中継サーバから受信した上記他方の分配問合せに対する検索結果の中から、上記クライアント端末が発行した元の問合せが示す検索条件に適合したデータを再検索し、クライアント端末宛の応答メッセージを生成することを特徴とする請求項１〜請求項４の何れかに記載のデータ検索システム。
【請求項７】
クライアント計算機から受信したデータベースの問合せ要求に従って、通信ネットワークを介して、データベースサーバをアクセスするデータ中継サーバにおいて、
クライアント計算機から、データ項目名とデータ値との関係式を示す少なくとも１組の検索条件定義で検索条件を指定し、上記検索条件定義に付随した秘匿表示で検索条件定義の暗号化要否を指定した問合せ要求を受信し、上記秘匿表示に応じて、該問合せ要求に含まれる特定の検索条件定義が指定するデータ値を暗号化するための第１手段と、
検索条件の一部に、上記第１手段によって一部が暗号化された検索条件定義を含み、検索条件定義毎に暗号化の有無を示す秘匿表示を含む上記データベースサーバ宛の問合せメッセージを生成するための第２手段と、
上記第２手段で生成された問合せメッセージを上記通信ネットワークに送信するための第３手段と、
上記通信ネットワークを介して、上記データベースサーバから、上記問合せメッセージが示す検索条件に従って検索され、上記暗号化された検索条件定義部分に関しては、上記検索条件定義が示す特定のデータ項目名をもつ暗号化されたデータ値と、上記データベースサーバから読み出された上記データ項目名をもつデータの暗号化された値との間のマッチングによって選択されたデータを検索結果として受信するための第４手段と、
上記第４手段で受信された検索結果に基づいてクライアント計算機宛の応答メッセージを生成し、問合せ要求元のクライアントに転送するための第５手段とを有することを特徴とするデータ中継サーバ。
【請求項８】
通信ネットワークから検索条件の一部が暗号化された問合せメッセージを受信し、該問合せメッセージが示す検索条件に従って情報検索を実行するデータベースサーバであって、
サービス情報となるデータを蓄積したデータベースと、上記データベースから、上記問合せメッセージが指定する検索条件に適合したデータを検索するデータベース管理システムとからなり、
通信ネットワークから受信する問合せメッセージが、データ項目名とデータ値との関係式を示す少なくとも１組の検索条件定義で検索条件を指定し、上記検索条件定義毎に暗号化の有無を示す秘匿表示を含んでおり、
上記データベース管理システムが、
上記問合せメッセージが示す秘匿情報に基いて、検索条件定義が暗号化されているか否かを判定し、暗号化されていない検索条件定義については、該検索条件定義が示す関係式に従って上記データベースの蓄積データを判定し、暗号化されたデータ値を含む検索条件定義については、上記データベースから該検索条件定義が示す特定のデータ項目名のデータを読み出し、これを暗号化して上記検索条件定義が示す関係式と照合することによって、上記検索条件に適合したサービス情報を検索するための検索手段と、
上記問合せメッセージの送信元宛に、上記検索手段で検索されたデータを含むメッセージを送信するための手段とを備えることを特徴とするデータベースサーバ。
【請求項９】
前記問合せメッセージが、前記検索条件定義の暗号化に適用された暗号化プログラムまたは暗号化関数の識別情報を含み、
前記検索手段が、前記データベースから読み出された特定のデータ項目名のデータを上記識別情報で指定された暗号化プログラムまたは暗号化関数によって暗号化することを特徴とする請求項８に記載のデータベースサーバ。
【請求項１０】
クライアントからデータ中継サーバに、データ項目名とデータ値との関係式を示す少なくとも１組の検索条件定義で検索条件を指定し、上記検索条件定義に付随した秘匿表示で検索条件定義の暗号化の要否を指定した問合せ要求を送信するステップと、
上記問合せ要求を受信した上記データ中継サーバが、該問合せ要求が示す秘匿表示に応じて、特定の検索条件定義に含まれる特定のデータ値を暗号化し、検索条件定義毎に暗号化の有無を示す秘匿表示を含む、検索条件の少なくとも一部が暗号化された問合せ要求に変換するステップと、
上記データ中継サーバからデータベースを備えた情報サーバに、上記少なくとも一部が暗号化された検索条件を含む問合せメッセージを送信するステップと、
上記問合せメッセージを受信した上記情報サーバが、該問合せメッセージが示す秘匿情報に基いて、検索条件定義が暗号化されているか否かを判定し、暗号化されていない検索条件定義については、該検索条件定義が示す関係式に従って上記データベースの蓄積データを判定し、暗号化されたデータ値を含む検索条件定義については、上記データベースから該検索条件定義が示す特定のデータ項目名のデータを読み出し、これを暗号化して上記検索条件定義が示す関係式と照合することによって、上記検索条件に適合したサービス情報を検索するステップと、
上記情報サーバから上記データ中継サーバに、検索結果として上記検索条件に適合したサービス情報を送信するステップと、
上記データ中継サーバから上記クライアントに、上記情報サーバから受信したサービス情報を送信するステップとからなることを特徴とするデータベースのアクセス方法。
【請求項１１】
前記データ中継サーバにおいて、前記情報サーバから受信した検索結果を前記クライアントが指定した検索条件に従って再検索するステップを含み、
上記データ中継サーバから上記クライアントに、上記再検索されたサービス情報が送信されることを特徴とする請求項１０に記載のデータベースのアクセス方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データベースのアクセス方法およびシステムに関し、更に詳しくは、ユーザもしくはアプリケーションプログラムから与えられたデータ検索のための問合せの内容をデータベースの管理者に隠蔽可能にしたデータベースアクセス方法およびデータ検索システム、特にデータ中継サーバとデータベース・サーバシステムに関する。
【０００２】
【従来の技術】
インターネットをはじめとするネットワーク技術の進歩と普及により、多数の計算機がネットワークに接続されるようになっている。これに伴い、様々な情報をネットワーク経由でユーザに提供する情報提供サービスが広く利用されつつある。例えば、特許情報検索サービスや遺伝子配列情報検索サービスがその好例である。
【０００３】
これらの情報提供サービスを利用するユーザは、様々な計算機（端末）からネットワーク経由で、情報サービスを提供する計算機をアクセスする。以下の説明では、ユーザが操作する計算機（端末）をクライアント計算機、情報サービスを提供する計算機をサーバ計算機またはＤＢサーバと呼ぶこととする。現状では、クライアント計算機としては、ワークステーション、パーソナルコンピュータ、小型の携帯端末や携帯電話が利用され、サーバ計算機としては、メインフレームやＵＮＩＸサーバ、ＰＣサーバが利用されることが多い。
【０００４】
上述した情報提供サービスへのアクセスにおいて、各ユーザは、クライアント計算機上で専用のソフトウェアやＷＥＢブラウザを利用する。一方、情報サービスを提供するサーバ計算機上でのデータ管理および検索は、データベース管理システム（以下、ＤＢＭＳ）によって行われるのが普通である。
【０００５】
情報提供サービスへのアクセスにおいて、例えば、遺伝子配列情報や特許情報を検索する場合に、ユーザにとっては、誰が、どのような条件で情報にアクセスしたかを隠蔽できること、すなわち、アクセスの匿名性と、検索内容の秘密性が保持されることが望ましい。これは、遺伝子配列検索や特許キーワード検索等においては、問合せで指定された条件自体が機密の対象となるため、これらの機密を隠蔽したまま情報検索を行うことが、製品開発や研究開発を進める上で重要となるからである。
【０００６】
従来のセキュリティ技術では、例えば、（１）ネットワーク上での盗聴に対する通信情報の保護、（２）不正アクセスを防止するためのサーバ側でのユーザ認証などが実現されている。
【０００７】
また、これらのセキュリティ実現方法としては、互いに通信するクライアント計算機とサーバ計算機間で、例えば、ＳＳＬ（Secure Socket Layer）などの暗号化プロトコルを用いる方法や、図１３に示すように、クライアント計算機１０から、暗号化した問合せ２０２をネットワーク２０３経由で情報サービスを提供するサーバ計算機２０５に転送し、上記サーバ計算機２０５では、ネットワークインタフェース部２０６で受信した上記暗号化問合せ２０２を問合せ復号部２１０に送り、問合せ復号部２１０で上記暗号化問合せを復号し、ＤＢＭＳ２０８が、復号化された問い合わせ条件に従ってデータベース２１１を検索する方式が知られている。検索結果２０７は、必要に応じて暗号化された後、上記ネットワークインタフェース２０６とネットワーク２０３を経由して、クライアント計算機１０に返送される。
【０００８】
しかしながら、上述した従来の方法では、問合せ内容２０２が、ネットワーク上では暗号化された状態で転送されているものの、サーバ計算機２０５内では問合せ内容を復号化した状態で検索処理を実行しているため、ユーザが機密にしたい検索内容がサーバ計算機に対して隠蔽されていない。そのため、機密情報である検索内容が、悪意を持つサーバ側の管理者に漏洩する危険性がある。
すなわち、従来のネットワークを経由したデータベースアクセスでは、サーバが信用できることを前提として、情報のセキュリティが保証されており、問合せで指定される検索条件自体が機密の対象となる場合に、これらの機密をユーザ以外の他人に隠蔽したまま検索を行うことは困難であった。
【０００９】
特開平１１−２５９５１２号の「データ検索システム」（文献１）では、ユーザから入力された問合せの条件に対し、（１）予め登録された機密項目に関する条件を削除し、（２）条件値の包含関係（概念階層）を利用して条件値を類似語または上位概念語に置き換え、（３）入力された検索条件を分割し、（４）データ検索装置とデータ検索サーバとの間に設置した代行サーバにデータ検索サーバへのアクセスを代行させることにより、検索サーバのデータベーストレースの履歴データからユーザの所在や検索条件等の機密が漏れるのを保護するシステムを提供している。
【００１０】
上記文献１に開示された従来技術によれば、ユーザの機密情報の一部はサーバに対して隠蔽が可能となるが、検索条件がサーバに取得されるという問題があり、例えば、人名や遺伝子配列などの検索条件の値を包含関係によって他の用語へ置き換えることが困難な分野では、検索条件を十分に隠蔽できないという問題があった。
【００１１】
特開昭６４−１４６６５号の「住民基本台帳ファイル方式」（文献２）では、住民基本台帳データの入力時に、住民基本台帳データを暗号化し、暗号化されたデータをデータファイルに格納することにより、悪意を持つ者が住民台帳ファイルをアクセスして個人情報を取得するのを防止している。上記文献２に開示された従来技術では、住民台帳ファイルの登録データとユーザの問合せデータとのマッチングを行う際に、データファイルに格納された暗号化データを復号処理しており、ユーザの問合せはサーバ側では隠蔽されていない。従って、サーバの管理者に悪意がある場合には、その問合せ内容を知られてしまうという問題がある。
【００１２】
特開平１１−２７２６８１号の「個人情報の記録方法およびその記録媒体」（文献３）では、上記文献２の方式に関して、データ復号化に伴う検索処理効率が低下し、暗号化の方法によっては検索不可の条件が生ずる問題があると理解した上で、（１）個人情報を、基本データ項目を格納するための基本情報ファイルと、それ以外のデータを格納するための属性情報ファイル群に分割し、（２）個人情報を特定する個人コードとして上記２つのファイル間の関連付ける特殊なコードを使用し、（３）必要に応じて上記個人コードを暗号化することにより、ファイルデータ全体を暗号化する必要のない個人情報の記録方法が提案されている。しかしながら、この従来技術でも、文献２の技術と同様に、ユーザが指定する検索条件は暗号化されないため、サーバ側で上記条件が漏洩する危険を伴う。
【００１３】
米国特許5963642号、“METHOD AND APPARATUS FOR SECURE STORAGE OF DATA”（文献４）では、データベースに格納するデータ自体をビットマップ化し、ユーザの問合せは同様のビットマップに変換して検索することにより、上記問合せを復号することなく検索を行うようにしている。しかしながら、上記文献４に開示された従来技術では、サーバに蓄積されるデータの全てを予めビットマップにエンコードしておく必要があり、既存のデータベースに対して本方式を適用するのは困難である。
【００１４】
【発明が解決しようとする課題】
上述したように、従来技術によれば、クライアント計算機から、ネットワークを介して、サーバ計算機上で稼動する情報提供サービスを利用する場合に、クライアント計算機でユーザが入力した機密にすべき検索条件を隠蔽したまま、情報サービスを受けることは困難であった。
【００１５】
本発明の第１の目的は、ユーザが機密にしたい検索条件を隠蔽したまま、情報提供サービスを利用できるデータベースアクセス方法およびシステムを提供することである。
本発明の第２の目的は、情報検索条件を隠蔽したまま情報サービスを提供できるプロトコルを提供することである。
更に、本発明の第３の目的は、ユーザが保護したい検索条件を隠蔽して情報提供サービスを実現できるデータ中継サーバおよびデータベース検索サーバを提供することである。
【００１６】
【課題を解決するための手段】
上記目的を達成するため、本発明では、検索条件に含まれる秘匿すべきデータ項目を暗号化した暗号化問合せをサーバ計算機に送信し、サーバ計算機では、上記暗号化された検索条件を復号化することなく、検索対象となるデータを上記秘匿データ項目と同様に暗号化しながら、暗号化データマッチングによってデータ検索することを特徴とする。
【００１７】
本発明の他の特徴は、ユーザが入力した問合せを他の問合せと連結したり、１つの問合せを複数の問合せに分割する等の問合せ変換を行い、変換された問合せをＤＢサーバに送信することによって、ＤＢサーバに履歴データとして残る問合せの内容とユーザが入力した問合せ内容との対応関係を変えることにある。
【００１８】
上記問合せ変換は、クライアント計算機とＤＢサーバの間に接続されたデータ中継サーバによって行われる。例えば、１つの問合せを第１、第２の問合せに分割した場合、第１の問合せは、クライアント計算機からの問合せを受信した第１のデータ中継サーバからＤＢサーバに送信され、第２の問合せは、上記第１のデータ中継サーバと協調して動作する第２のデータ中継サーバを介して上記ＤＢサーバに送信される。この場合、第２の問合せに対する検索結果は、第２のデータ中継サーバを介して第１のデータ中継サーバに転送される。
検索条件の暗号化に加えて、このように問合せ内容の変換とＤＢサーバに対する問合せの要求元の分散を行うことにより、ＤＢサーバ管理者によるユーザ機密情報の分析を困難にすることができる。
【００１９】
【発明の実施の形態】
本発明の情報提供サービスを実現する計算機ネットワークシステムは、ユーザからデータ検索要求（問合せ）を受け付ける少なくとも１つのクライアント計算機（以下、クライアントと言う）と、クライアントからの検索要求に従って情報サービス用のデータベースを検索する少なくとも１つのサーバ計算機（以下、ＤＢサーバという）と、各クライアントを所望のＤＢサーバに接続するためのネットワークと、クライアントとＤＢサーバとの間に位置し、クライアントからの検索要求を修飾してＤＢサーバに転送する少なくとも１つのデータ中継サーバとからなる。
【００２０】
上記データ中継サーバの基本的な構成は、クライアントからの問合せを解析する問合せ解析部と、解析した問合せの一部を暗号化する暗号化問合せ生成部と、ＤＢサーバがデータベースから読み出し特定属性のデータを暗号化するための暗号化プログラムを生成する暗号化プログラム生成部と、暗号化された問合せを含み、必要に応じて暗号化プログラムが追加された問合せメッセージを生成し、適切なＤＢサーバに送信するための問合せメッセージ生成部と、ＤＢサーバから受信した検索結果に対して、必要に応じて再検索や複数の検索結果の統合処理を行う検索結果処理部とを含む。
【００２１】
上記データ中継サーバは、上記問合せ解析部から出力された複数の問合せを１つの結合問合せに変換したり、上記問合せ解析部から出力された１つの問合せを該データ中継サーバと協調する他のデータ中継サーバに分配するために、複数の分配問合せに変換する問合せ変換部とを含んでもよい。また、上記データ中継サーバは、ＤＢサーバのデータベース蓄積データの一部をコピーとして保持するためのキャッシュデータベースと、クライアントからの問合せに応答して上記キャッシュデータベースでデータ検索する検索実行部とを備えてもよい。
【００２２】
本発明が適用されるＤＢサーバは、ユーザに提供すべきデータを保持するデータベースと、上記データベースを管理し、問合せを受け付けるデータ管理・検索部と、問合せ内容に応じて上記データベースからデータを読み出すデータアクセス部とを含む。上記データ管理検索部は、受け付けた問合せが示す検索条件の一部が暗号化されていた場合に、データ中継サーバもしくは暗号化プログラムサーバから受け取った暗号化プログラムを上記データアクセス部に渡す。この場合、上記データアクセス部は、上記暗号化された検索条件に対応する属性もつ蓄積データを暗号化しながら読み出し、これによって、暗号化データマッチングによる検索条件との一致検出が行われる。
【００２３】
図１は、本発明による計算機ネットワークシステムの１実施形態を示す。
図１では、クライアント計算機１０（１０Ａと１０Ｂ）が、ネットワーク２１を介してデータ中継サーバ１００−１に接続されている。データ中継サーバ１００−１は、ネットワーク２２を介して、互いに協調する他のデータ中継サーバ１００−２に接続されており、これらのデータ中継サーバは、ネットワーク２３を介してＢＤサーバ１１に接続されている。データ中継サーバ１００−２は、データ中継サーバ１００−１と同様に、図示しない複数のクライアント計算機と接続される。上記ネットワーク２１は、例えば、イーサネット、光ファイバまたはＦＤＤＩで接続されるローカルエリアネットワーク（ＬＡＮ）、もしくはＬＡＮよりも低速なインターネットを含んだワイドエリアネットワーク（ＷＡＮ）でも差し支えない。
【００２４】
通常、ユーザは、クライアント計算機１０上で稼動する専用プログラムもしくはブラウザを利用して、データベースシステムに対して問合せを発行し、上記問合せに対する結果を取得しているため、以降の説明では、問合せの発行元と最終結果の取得先をクライアント計算機１０と考えることとする。
【００２５】
クライアント計算機１０は、例えば、（株）日立製作所のＨｉｔａｃｈｉＦＬＯＲＡなどのパーソナルコンピュータや（株）日立製作所のＨｉｔａｃｈｉ３５００ワークステーションなどの任意のコンピュータシステム、（株）日立製作所のＰｅｒｓｏｎａなどの携帯端末、もしくは問合せインタフェースを持つ携帯電話でも差し支えない。
【００２６】
また、クライアント計算機が接続されるデータ中継サーバ１００−１、１００−２と、情報提供サービスを行うＤＢサーバ１１９は、例えば、（株）日立製作所のＨｉｔａｃｈｉ３５００ワークステーションなど、任意のコンピュータシステムによって構成される。さらに、ＤＢサーバ１１９上で情報提供サービスのために稼動するデータ管理検索部１２４は、例えば、（株）日立製作所のＨｉＲＤＢ、オラクル（Ｏｒａｃｌｅ）社のＯｒａｃｌｅ８、ＩＢＭ社ＤＢ２など、汎用データベース・マネージメントシステム（ＤＢＭＳ）製品で差し支えない。
【００２７】
データ中継サーバ１００−１、１００−２間を結ぶネットワーク２２と、これらのデータ中継サーバとＤＢサーバ１１９を接続するネットワーク２３は、例えば、イーサネット、光ファイバまたはＦＤＤＩで接続されるローカルエリアネットワーク（ＬＡＮ）、もしくはＬＡＮよりも低速なインターネットを含んだワイドエリアネットワーク（ＷＡＮ）でも差し支えない。
【００２８】
ここでは、ネットワーク２１、２２、２３が、互いに独立したネットワークとなっているが、これらは同一のネットワークであってもよい。データ中継サーバ１００−１には、２つのクライアント計算機が接続されているが、クライアント計算機の数は任意である。また、ネットワーク２２に接続されるデータ中継サーバの数も任意である。
【００２９】
本実施例では、クライアント計算機が、例えば、小型の携帯端末や携帯電話等のように、記憶装置容量、計算能力あるいはバッテリー能力の制限から、余分な処理能力を装備できない場合を考慮して、クライアント計算機とＤＢサーバの間にデータ中継サーバを配置しているが、以下に説明するデータ中継サーバの機能の一部または全部をクライアント計算機に備えても差し支えない。
【００３０】
本発明では、クライアント１０Ａ（または１０Ｂ）から発行された問合せメッセージ１０３は、データ中継サーバ１００−１で受信され、検索条件の一部を暗号化した後、暗号化問合せ１１５として、ＤＢサーバ１１９に転送される。この時、必要に応じてデータ中継サーバ１００−１で暗号化プログラム１１６が生成され、暗号化問合せ１１５と共にＤＢサーバ１１９に転送される。
【００３１】
ＤＢサーバ１１９は、ネットワーク２３に接続されたネットワークインタフェース１２０と、データ管理検索部１２４と、データベース１２６からなり、上記問合せ１１５に応答してデータ検索を行い、検索結果を示す応答メッセージ１１８をデータ中継サーバ１００−１に送信する。データ中継サーバ１００−１は、応答メッセージ１１８が示す検索結果について所定の処理を施し、問合せ１０３に対応した検索結果１０４として、要求元のクライアント計算機１０Ａに送信する。
【００３２】
図２は、データ中継サーバ１００−１の詳細な構成を示すブロック図、図３は、問合せメッセージ１０３の内容を示す。
クライアント計算機から発行される問合せメッセージ１０３は、データ部に、クライアントＩＤ１１と、セキュリティ優先度１２と、問合せ内容１３とを含み、これにネットワーク２１の通信プロトコルによって決まる所定のヘッダ情報が付された構成となっている。
【００３３】
問合せ内容１３は、例えば、データベースから選択すべきデータの属性（データ項目名）１３Ｓと、アクセスすべきファイル名１３Ｆと、検索条件１３Ｗとを含む。検索条件１３Ｗは、検索すべきデータエントリを特定するために複数の定義１３ｗ−１〜１３Ｗ−ｎと、各定義と対応して用意された秘匿表示１３Ｅ−１〜１３Ｅ−ｎとを含む。
【００３４】
クライアント計算機１０Ａが発行した問合せ１０３は、ネットワークインタフェース１０１で受信され、問合せ解析部１０６によって解析され、データ中継サーバ１００−１が備えるキャッシュデータベース１２８の蓄積データで検索処理が可能か否かが判定される。上記解析および判定には、例えば、特開平０１−１０９７５８号（特願平１１−２８５１６４）公報に開示された部分レプリカを利用した方法を適用すればよい。
【００３５】
キャッシュデータベース１２８の蓄積データで検索処理が可能であれば、検索部１１３によってキャッシュデータベース１２８から検索条件に適合したデータが検索される。検索結果は、検索結果処理部１１１によって応答メッセージに編集され、ネットワークインタフェース１０１を介して、要求元のクライアント計算機に送信される。データ中継サーバ１００−１にキャッシュデータベースが存在しない場合、または上記キャッシュデータベースの蓄積データでは問合せに回答できないと判定された場合は、問合せメッセージ１０３は問合せ変換部１０７に送られる。
【００３６】
問合せ変換部１０７の動作を図６のフローチャートを参照して説明する。
問合せ変換部１０７では、問合せを受け付けた（ステップ６０２）後、問合せ連結を行うか否かを判定する（ステップ６０３）。問合せ連結とは、問合せ内容を秘匿するために、複数の問合せを連結して１つの問合せに変換するための処理を意味し、同一クライアント計算機から発行された問合せのみならず、異なるクライアント計算機から発行された問合せも、連結の対象となる。
【００３７】
例えば、ＤＢサーバ１１９上の情報提供システムによって提供されるデータが顧客の貯蓄額であり、データベース１２６に、図７の（Ａ）に示すように、顧客ＩＤ８０２と対応して、預金口座が登録された銀行支店名８０３と、貯蓄額８０４とを示す貯蓄残高表８０１が記憶されている場合を想定する。
【００３８】
今、クライアント計算機１０Ａから図７の（Ｂ）に示す問合せＱ１（８０５）が発行され、クライアント計算機１０Ｂから図７の（Ｃ）に示す問合せＱ２（８０６）が発行されたとする。この場合、Ｑ１とＱ２の連結問合せは、例えば、図７Ｄに８０７で示すように、Ｑ１の選択対象項目（属性）である｛顧客ＩＤ、支店、貯蓄額｝と、Ｑ２の選択対象項目である｛顧客ＩＤ、貯蓄額｝の和集合である｛顧客ＩＤ、支店、貯蓄額｝を選択対象項目とし、問合せＱ１の検索条件｛貯蓄額＞＝1,000,000｝と問合せＱ２の検索条件｛貯蓄額＜＝10,000｝との論理和を検索条件としたものとなる。問合せ連結を行うか否かは、連結可能な別の問合せメッセージが受信済みとなっているか否かで判定される。
【００３９】
問合せ連結の要否判定の後、問合せ分配を行うか否かを判定する（ステップ６０４、６０５）。問合せ分配とは、問合せの発行元ユーザと問合せ内容との関係をＤＢサーバ１１９側のデータ提供システムから隠蔽するために、一つの問合せを複数の問合せに分割し、互いに協調する複数のデータ中継サーバからＤＢサーバ１１９に問合せを送信することを意味している。
【００４０】
例えば、図７の（Ｄ）に示した連結問合せ８０７が分配対象問合せとなり、データ中継サーバ１００−２がデータ中継サーバ１００−１と協調して分配問合せメッセージをＤＢサーバ１１９に転送する場合を仮定する。
この場合、問合せ８０７を、例えば、図７の（Ｅ）に示す分配問合せＤＱ１（８０８）と、図７の（Ｆ）に示す分配問合せＤＱ２（８０９）に分割し、分配問合せＤＱ１はデータ中継サーバ１００−１からＤＢサーバ１１９に送信し、分配問合せＤＱ２は、データ中継サーバ１００−２を介して、ＤＢサーバ１１９に送信する。
【００４１】
このようにすれば、問合せ８０７に対する検索結果のうち、支店＝新宿となっているレコードは、分配問合せＤＱ１に対する応答としてデータ中継サーバ１００−１が受信し、それ以外のレコードは、分配問合せＤＱ２に対する応答としてデータ中継サーバ１００−２で受信し、データ中継サーバ１００−１に転送することになる。
このように１つの問合せを複数の分配問合せに分割することにより、問合せ８０７が示す検索条件と発行元をＤＢサーバ１１９上で稼動する情報提供システムから隠蔽することが可能となる。
【００４２】
分配の対象となる問合せは、連結前のものでも差し支えない。また、問合せ分配の要否は、受信した問合せメッセージ１０３のセキュリティ優先度１２によって判定され、セキュリティ優先度１２が問合せの秘匿を指示していなければ、問合せ分配は行われない。
【００４３】
問合せ変換部１０７では、問合せ連結と問合せ分配の両方を行う（ステップ６０３と６０４の判定結果がＹｅｓ）場合は、連結・分配問合せを生成し（ステップ６０７）、図５に示す検索管理テーブル１１４に新たなエントリを登録（ステップ６１０）した後、問合せ変換処理を終了する。
【００４４】
問合せ連結は行うが、問合せ分配は行わない（ステップ６０４の判定結果がＮｏ）場合は、連結問合せを生成（ステップ６０６）した後、ステップ６１０を実行する。問合せ連結を行わず（ステップ６０３がＮｏ）、問合せ分配のみを行う（ステップ６０５がＹｅｓ）場合は、分配問合せを生成（ステップ６０８）した後、ステップ６１０を実行する。問合せ連結も問合せ分配も行わない（ステップ６０５がＮｏ）場合は、問合せ変換を行うことなくステップ６１０を実行する。
【００４５】
検索管理テーブル１１４には、図５に示すように、データ中継サーバ１００−１で受信した問合せメッセージまたは送出される問合せメッセージと対応した複数のエントリＥＮ−１、ＥＮ−２、・・・が登録される。各エントリは、クライアントＩＤ１１４１と、元の問合せ内容１１４２と、変換された問合せ内容１１４３と、問合せ変換の種類を示す変換タイプ１１４４と、後述する暗号化問合せ生成部１０８で暗号化された検索定義と元の検索定義との関係が１：１の関係にあるか否かを示す１：１変換フラグ１１４５とを含む。
【００４６】
２つの問合せメッセージＭ１とＭ２が連結された場合は、メッセージＭ１に対応するエントリＥＮ−１と、メッセージＭ２に対応するエントリＥＮ−２が、フィールド１１４３に同一の内容を含む。１つの問合せメッセージＭ１の内容が２つのメッセージｍ１、ｍ２に分配された場合は、フィールド１１４２に同一の内容を含む２つのエントリＥＮ−１とＥＮ−２が生成され、エントリＥＮ−１のフィールド１１４３にはメッセージｍ１、エントリＥＮ−２のフィールド１１４３にはメッセージｍ２が設定される。
【００４７】
他のデータ中継サーバ１００―２から分配問合せメッセージを受信した場合は、例えば、受信メッセージに含まれるクライアントＩＤと、受信メッセージのヘッダに含まれる送信元（データ中継サーバ１００―２）のアドレスとの関係が、図示しない転送メッセージ管理テーブルに記憶される。
【００４８】
図２に戻って、問合せ変換部１０７で処理された問合せは、暗号化問合せ生成部１０８に転送され、問合せ内容の一部が暗号化される。また、上記問合せ内容の暗号化に、ＤＢサーバにとって新しい暗号化方法が使用された場合は、暗号化プログラム生成部１０９によって、上記暗号化方法に対応する暗号化プログラムを生成される。暗号化された問合せと、暗号化プログラムは、問合せメッセージ生成部１１０によって、ＤＢサーバ１１９宛の暗号化問合せメッセージに編集される。暗号化問合せメッセージは、ネットワークインタフェース部１１２を介して、ネットワーク２３に送信され、ＤＢサーバ１１９で受信される。
【００４９】
暗号化問合せ生成部１０８と暗号化プログラム生成部１０９の動作を、図８、図９および図１０を参照して説明する。
暗号化問合せ生成部１０８は、図８に示すように、問合せ変換部１０７から問合せメッセージを受け付けると（ステップ４０２）、問合せ条件の中に隠蔽対象項目が存在するか否かを判定する（ステップ４０３）。隠蔽対象項目の有無は、クライアント１０（１０Ａ、１０Ｂ）から受信された図３の問合せメッセージ１０３において、検索定義毎に設けられた秘匿表示１３Ｅ−１〜１３Ｅ−ｎをチェックすることによって判定できる。
【００５０】
隠蔽対象項目が存在しなければ、問合せの暗号化と暗号化プログラムの生成を行うことなく、暗号化問合せ生成部１０８の処理を終了する。隠蔽対象項目が存在した場合は、秘匿表示１３Ｅ−ｉで指定された条件定義１３Ｗ−ｉが示すデータを所定の暗号化関数ｆｅ（）に従って暗号化し、暗号化データと上記暗号化関数とを含む暗号化問合せを生成する（ステップ４０４）。
【００５１】
例えば、ＤＢサーバ１１９が、図９の（Ａ）に示す遺伝子配列表９０１をデータベース１２６に保持しており、暗号化問合せ生成部１０８が、図９の（Ｂ）に示すように、配列構造＝‘ａｔｃｇ’を検索条件として含む問合せメッセージＱ３（９０５）を受信したと仮定する。配列構造＝‘ａｔｃｇ’は、問合せメッセージＱ３の最初の条件定義１３Ｗ−１に記述される。もし、秘匿表示１３Ｅ−１が、条件定義１３Ｗ−１の秘匿を指示していた場合、データ“ａｔｃｇ”が隠蔽対象項目となる。
【００５２】
この場合、ステップ４０４では、隠蔽対象項目として指定されたデータ“ａｔｃｇ”を所定の暗号化関数ｆｅ（）で暗号化し、例えば、図９の（Ｃ）に示すように、配列構造＝“＠２ａＳｚＥ”を検索条件とし、SELECT文で指定される取得対象データに新たなデータ項目として「配列構造」を追加した暗号化問合せＱ４（９０６）を生成する。これは、暗号化前のデータ値“ａｔｃｇ”と、暗号化後のデータ値“＠２ａＳｚＥ”とが１：１の関係にあることが保証されない場合に、ＤＢサーバから受け取った検索結果に対して、データ中継サーバ側で配列構造＝“ａｔｃｇ”を検索条件として、再検索する必要があるからである。
【００５３】
隠蔽対象となった検索条件が「＝」（等号条件）、もしくは「≠」（非等号）を含む場合は、元のデータ値を任意の暗号化関数で変換できる。ただし、隠蔽対象となった検索条件が「＜」、「≦」、「＞」、もしくは「≧」のように不等号を含む場合は、大小関係を保持できる暗号化方法を用いる必要がある。
【００５４】
検索条件を暗号化（暗号化問合せを生成）した場合は、暗号化プログラム生成が必要か否かを判定する（ステップ４０５）。データ中継サーバ１００−１が、暗号化プログラムサーバ１２９に登録された既存の暗号化プログラムを利用する場合、または、ステップ４０４で使用した暗号化プログラムがＤＢサーバ側に既に通知済みとなっている場合は、暗号化プログラムの生成は不要となる。この場合は、暗号化プログラムを生成することなく、ステップ４０７に進む。
【００５５】
ＤＢサーバに暗号化プログラムを通知する必要があれば、暗号化プログラム生成部１０９と共同して、暗号化プログラムを生成（ステップ４０６）した後、ステップ４０７を実行する。ステップ４０７では、検索管理テーブル１１４の１：１変換フラグ・フィールド１１４５に、１：１変換の有無、すなわち、暗号化前のデータと暗号化後のデータとが１：１の関係にあるか否かを示すフラグ値を記録する。
【００５６】
図１０を用いて暗号化プログラムについて説明する。
隠蔽対象項目（隠蔽対象属性）をＴｃ、暗号化に利用する関数をｆｅ（）、暗号化前のデータ値をｖｂ、暗号化後のデータ値をｖａと表記すると、暗号化による問合せ条件の変換は、模式的に図１０のようになる。この時、暗号化プログラム生成部１０９によって生成される暗号化プログラムは、ＤＢサーバ１１９のデータ管理検索部（ＤＢＭＳ）１２４に含まれるデータアクセス部１２５で使用されるもので、暗号化関数ｆｅ（）に相当するデータ変換処理を行うためのプログラムである。
【００５７】
上記暗号化プログラムは、ＤＢＭＳ１２４が、例えば、（株）日立製作所のＨｉＲＤＢのように、プラグインインタフェースを持っている場合には、上記インタフェース仕様を満足するプログラムでよい。また、ＤＢＭＳがその内部にあるプログラミング言語の実行エンジンを搭載している場合には、上記プログラミング言語で記述したプログラムでも差し支えない。
【００５８】
図２に戻って、暗号化問合せ生成部１０８は、検索条件の一部を暗号化し、必要に応じて取得対象データ項目が変更された問合せメッセージを、暗号化に適用した関数識別子（暗号化プログラム識別子）と共に、ＤＢ問合せメッセージ生成部１１０に渡す。検索条件を暗号化しなかった場合は、問合せ変換部１０７から受信した問合せメッセージが、ＤＢ問合せメッセージ生成部１１０に渡される。また、暗号化プログラムが生成された場合は、暗号化プログラム生成部１０９からＤＢ問合せメッセージ生成部１１０に、暗号化プログラムが渡される。
【００５９】
ＤＢ問合せメッセージ生成部１１０は、暗号化問合せ生成部１０８からの受信データに基づいて、例えば、図４に示すように、データ部にクライアントＩＤ：１１と、暗号化された問合せ内容１４と、暗号化関数識別子１５とを含むＤＢサーバ１１９宛の問合せメッセージ（ＤＢ問合せメッセージ）１１５を作成し、ネットワークインタフェース部１１２を介して、ＤＢサーバ１１９に送出する。暗号化プログラムが生成された場合は、ＤＢ問合せメッセージ１１５に暗号化プログラム１６が加わる。
【００６０】
ＤＢ問合せメッセージ生成部１１０は、暗号化問合せ生成部１０８からの受信メッセージが、直前の受信メッセージと同一のクライアントＩＤをもっていた場合、これを分配問合せ用のメッセージと判断し、予め指定されている協調サーバ、例えば、データ中継サーバ１００−２宛に送信する。
【００６１】
次に、ＤＢサーバ１１９で行われる問合せ処理について、図１と図１１を参照して説明する。
ＤＢサーバ１１９では、ネットワークインタフェース部１２０で受信したＤＢ問合せメッセージ１１５を、ＤＢＭＳ１２４によって解析し（ステップ５０２）、ＤＢ問合せメッセージに暗号化プログラム１６が含まれていた場合は、これをデータアクセス部１２５に設定する。
【００６２】
ＤＢＭＳ１２４は、ＤＢ問合せメッセージ１１５中の暗号化された検索条件に該当するデータが、ＤＢサーバ１１９側（データベース１２６）に、上記検索条件と照合可能な暗号化データとして存在しているか否かをチェックする（ステップ５０５）。
【００６３】
暗号化データが既に存在する場合は、ＤＢＭＳ１２４は、データアクセス部１２５にＤＢ問合せメッセージの検索条件が示す隠蔽対象項目の読出しを指令し、上記暗号化済みデータを利用して、上記ＤＢ問合せメッセージが要求するデータ検索処理を実行する（ステップ５０６）。
暗号化済みデータが存在しない場合は、ＤＢＭＳ１２４は、ＤＢ問合せメッセージの検索条件が示す隠蔽対象項目と暗号化関数識別子１５を指定して、データアクセス部１２５にデータエントリの読出しを指令する。
【００６４】
データアクセス部１２５は、データベース１２６からの読み出しデータのうち、隠蔽対象項目については、上記暗号化関数識別子１５と対応した暗号化プログラムで暗号化し、その他のデータ項目は、通常のデータ形式で出力する。ＤＢＭＳ２０８は、データベースからの読出しデータを問合せメッセージの検索条件に従って判定し、隠蔽対象項目については暗号化データを検索条件と比較しながら、検索条件に適合するデータレコードを検索する（ステップ５０７）。
【００６５】
例えば、問合せメッセージ１１５が、検索条件として、図９の（Ｃ）に示した暗号化問合せＱ４と暗号化プログラムｆｅ１（）を含む場合、ＤＢＭＳ１２４では、問合せＱ４に含まれる暗号化データを復号化することなく検索処理を実行し、データベース１２６に蓄積された遺伝子配列表９０１から配列構造９０４を読み出す時、データアクセス部１２５に配列構造の蓄積データを関数ｆｅ１（）で暗号化した形で出力させ、検索条件が示す配列構造＝’＠２ａＳｚＥ’に合致するレコードを検索する。
【００６６】
ＤＢＭＳ２０８は、検索結果を含む応答メッセージを生成し（ステップ５０８）、該応答メッセージを問合せメッセージ１１５の送信元であるデータ中継サーバ１００−１または１００−２に送出して（ステップ５０９）、問合せ処理を終了する。ＤＢＭＳ１２４で生成された応答メッセージは、図１に記号１８と１１８で示すように、ネットワークインタフェース１２０を介して、ネットワークにデータ中継サーバに転送される。
【００６７】
尚、検索結果に含まれるデータ綱目のうち、暗号化されていないデータ項目をＤＢＭＳ１２４で自動的に暗号化した形で、上記応答メッセージを生成するようにしてもよい。また、実施例では、問合せメッセージ１１５によって検索条件と暗号化プログラムとを同時に送信したが、問合せメッセージ１１５では検索条件と暗号化に適用した関数識別子のみを送信し、ＤＢサーバ１１９側で、上記関数識別子と対応する暗号化プログラムを既に保持しているか否かをチェックし、必要な暗号化プログラムを保持していない場合に、ＤＢサーバ１１９から問合せメッセージ１１５の送信元サーバ１００−１または１００−２に暗号化プログラムの送信を要求するようにしてもよい。
【００６８】
データ中継サーバ１００−１は、ネットワークインタフェース１１２を介して受け取った応答メッセージ（検索結果）を検索結果処理部１１１で処理する。
図１２は、上記検索結果処理部１１１で実行する検索結果処理ルーチン７０１を示す。
【００６９】
検索結果処理部１１１では、受信した応答メッセージに含まれるクライアントＩＤに基づいて転送メッセージ管理テーブルを参照し、上記応答メッセージが、他の協調サーバから依頼された問合せに対する回答か否かを判定する（ステップ７０２）。受信した応答メッセージが他の協調サーバから依頼された問合せに対する回答メッセージであれば、転送メッセージ管理テーブルが指定するデータ中継サーバのアドレス宛に上記応答メッセージを転送して（ステップ７０３）、このルーチンを終了する。
【００７０】
受信した応答メッセージが、データ中継サーバ１００−１で生成した問合せに対する回答であった場合、上記受信応答メッセージに含まれるクライアントＩＤに基づいて、図５に示した検索管理テーブル１１４を参照し、検索結果に暗号化されたデータ項目が含まれているか否かをチェックする（ステップ７０４）。暗号化されたデータ項目が含まれていた場合、暗号化されたデータ項目を復号化処理する（ステップ７０５）。
【００７１】
次に、検索管理テーブル１１４を参照して、上記受信応答メッセージが連結問合せに対する回答か否かをチェックする（ステップ７０６）。もし、上記受信応答メッセージが連結問合せに対する回答であれば、検索管理テーブル１１４の元の問合せ内容１１４２が示す連結変換前の検索条件を適用して再検索を実行し、各クライアント計算機から発行された問合せに対する正しい検索結果を生成する（ステップ７１０）。この後、再検索結果に含む要求元クライアント計算機宛の応答メッセージを作成し（ステップ７１２）、ネットワークインタフェース１０１を介して応答メッセージをネットワーク２１に送信する（ステップ７１３）。
【００７２】
上記受信応答メッセージが連結問合せに対する回答でなかった場合は、上記受信応答メッセージが分配問合せに対する回答か否かをチェックする（ステップ７０７）。上記受信応答メッセージが分配問合せに対する回答の場合、分配問合せに対する全ての回答（検索結果）が揃ったか否かをチェックし（ステップ７０８）、全ての回答が揃っていた場合は、ステップ７１０で、検索管理テーブル１１４の元の問合せ内容１１４２が示す分配変換前の検索条件を適用して再検索を実行する。分配問合せに対する全ての回答が揃っていなければ、ワークメモリ上に用意された分配問合せ検索結果の一時保存領域に検索結果を記憶し（ステップ７０９）、このルーチンを終了する。ステップ７０８で行うチェックは、上記分配問合せ検索結果の一時保存領域を参照して行われる。
【００７３】
ステップ７０７の判定結果がＮＯの場合、検索結果が、問合せ変換部１０７による変換処理が行われなかった問合せに対する回答であることを意味している。この場合、問合せの検索条件に適用した暗号化関数が１：１変換用のものであったか否かをチェックする（ステップ７１１）。
【００７４】
暗号化関数が１：１変換用でなかった場合、値の異なる２以上のデータが、暗号化によって同一値のデータとなることを意味しており、暗号化された検索条件で得られた検索結果は、暗号化しない検索条件で得られる検索結果よりも大きな解集合となっている。この場合は、ＤＢサーバから通知された検索結果に対して、検索管理テーブル１１４の元の問合せ内容１１４２が示す暗号化前の検索条件を適用して再検索を実行し（ステップ７１０）、クライアント計算機から発行された問合せに対する正しい検索結果を生成する。
【００７５】
暗号化関数が１：１変換用のものであった場合は、ＤＢサーバから通知された検索結果に従って、要求元のクライアント計算機宛の応答メッセージを作成し（ステップ７１２）、応答メッセージをネットワーク２１に送信する（ステップ７１３）。
【００７６】
以上の実施例から明らかなように、本発明によれば、ユーザ問合せに含まれる機密条件の秘匿を高度に保証した情報提供サービスを提供できる。また、本発明により、各クライアント計算機のユーザは、自らが保護したい条件を隠蔽したまま、情報提供サービスを受けることができ、悪意のあるＤＢサーバの管理者から利用者の機密を保護することができる。
【００７７】
【発明の効果】
本発明によるデータ中継サーバは、例えば、ユーザからの問合せを、該問合せに含まれる機密条件の秘匿を保証できる情報提供サーバにのみ選択的に転送する問合せ仲介サービス方法に応用できる。また、本発明のデータ中継サーバは、例えば、複数の情報提供サーバからのサービス課金情報を収集して、対価をまとめて支払っておき、上記課金情報をクライアント毎に配分して、各クライアントに課金する情報サービスにも応用できる。
【図面の簡単な説明】
【図１】本発明のデータベース・アクセスシステムの全体構成の１例を示す図。
【図２】図１に示したデータ中継サーバ１００−１の構成を示すブロック図。
【図３】図１に示したクライアント計算機１０（１０Ａ、１０Ｂ）からデータ中継サーバ１００−１に送信される問合せメッセージの１実施例を示す図。
【図４】図１に示したデータ中継サーバ１００−１からＤＢサーバ１１９に送信される問合せメッセージの１実施例を示す図。
【図５】データ中継サーバ１００−１が備える検索管理テーブルの構成を示す図。
【図６】データ中継サーバ１００−１の問合せ変換部１０７の機能を示すフローチャート。
【図７】ＤＢサーバ１１９が備えるデータベースの内容の１例（Ａ）と、上記データベースに対する２つの問合せＱ１、Ｑ２の１例（Ｂ、Ｃ）と、問合せ変換部１０７で生成される連結問合せの１例（Ｄ）および分配問合せの１例（Ｅ、Ｆ）を示す図。
【図８】データ中継サーバ１００−１の暗号化問合せ生成部１０８の機能を示すフローチャート。
【図９】データベースの内容の１例（Ａ）と、上記データベースに対する問合せＱ３の１例（Ｂ）と、問合せＱ３から得られる暗号化問合せの１例（Ｃ）を示す図。
【図１０】データ中継サーバ１００−１の暗号化プログラム生成部１０９で生成される暗号化プログラムを説明するための図。
【図１１】ＤＢサーバ１１９で実行される問合せ処理の１例を示すフローチャート。
【図１２】データ中継サーバ１００−１の検索結果処理部１１１の機能を示すフローチャート。
【図１３】暗号化問合せを利用した従来のデータ検索システムを説明するための図。
【符号の説明】
１０：クライアント計算機、２１、２２、２３：ネットワーク、
１００：データ中継サーバ、１０１、１１２：ネットワークインタフェース、
１０６：問合せ解析部、１０７：問合せ変換部、１０８：暗号化問合せ生成部、
１０９：暗号化プログラム生成部、１００：ＤＢ問合せメッセージ生成部、
１１１：検索結果処理部、１１３：検索部、１１４：検索管理テーブル、
１１９：ＤＢサーバ、１２０：ネットワークインタフェース、
１２４：データ管理検索部、１２９：暗号化プログラムサーバ。
【図１】
0004006214.tif 000002
【図２】
0004006214.tif 000003
【図３】
0004006214.tif 000004
【図４】
0004006214.tif 000005
【図５】
0004006214.tif 000006
【図６】
0004006214.tif 000007
【図７】
0004006214.tif 000008
【図８】
0004006214.tif 000009
【図９】
0004006214.tif 000010
【図１０】
0004006214.tif 000011
【図１１】
0004006214.tif 000012
【図１２】
0004006214.tif 000013
【図１３】
0004006214.tif 000014