JP4006214B2 - Data search system, data relay server, database server, and database access method - Google Patents

Data search system, data relay server, database server, and database access method Download PDF

Info

Publication number
JP4006214B2
JP4006214B2 JP2001321741A JP2001321741A JP4006214B2 JP 4006214 B2 JP4006214 B2 JP 4006214B2 JP 2001321741 A JP2001321741 A JP 2001321741A JP 2001321741 A JP2001321741 A JP 2001321741A JP 4006214 B2 JP4006214 B2 JP 4006214B2
Authority
JP
Japan
Prior art keywords
data
search condition
search
query
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2001321741A
Other languages
Japanese (ja)
Other versions
JP2002297606A (en
Inventor
格 西澤
一智 牛嶋
隆彦 新谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2001321741A priority Critical patent/JP4006214B2/en
Publication of JP2002297606A publication Critical patent/JP2002297606A/en
Application granted granted Critical
Publication of JP4006214B2 publication Critical patent/JP4006214B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、データベースのアクセス方法およびシステムに関し、更に詳しくは、ユーザもしくはアプリケーションプログラムから与えられたデータ検索のための問合せの内容をデータベースの管理者に隠蔽可能にしたデータベースアクセス方法およびデータ検索システム、特にデータ中継サーバとデータベース・サーバシステムに関する。
【0002】
【従来の技術】
インターネットをはじめとするネットワーク技術の進歩と普及により、多数の計算機がネットワークに接続されるようになっている。これに伴い、様々な情報をネットワーク経由でユーザに提供する情報提供サービスが広く利用されつつある。例えば、特許情報検索サービスや遺伝子配列情報検索サービスがその好例である。
【0003】
これらの情報提供サービスを利用するユーザは、様々な計算機(端末)からネットワーク経由で、情報サービスを提供する計算機をアクセスする。以下の説明では、ユーザが操作する計算機(端末)をクライアント計算機、情報サービスを提供する計算機をサーバ計算機またはDBサーバと呼ぶこととする。現状では、クライアント計算機としては、ワークステーション、パーソナルコンピュータ、小型の携帯端末や携帯電話が利用され、サーバ計算機としては、メインフレームやUNIXサーバ、PCサーバが利用されることが多い。
【0004】
上述した情報提供サービスへのアクセスにおいて、各ユーザは、クライアント計算機上で専用のソフトウェアやWEBブラウザを利用する。一方、情報サービスを提供するサーバ計算機上でのデータ管理および検索は、データベース管理システム(以下、DBMS)によって行われるのが普通である。
【0005】
情報提供サービスへのアクセスにおいて、例えば、遺伝子配列情報や特許情報を検索する場合に、ユーザにとっては、誰が、どのような条件で情報にアクセスしたかを隠蔽できること、すなわち、アクセスの匿名性と、検索内容の秘密性が保持されることが望ましい。これは、遺伝子配列検索や特許キーワード検索等においては、問合せで指定された条件自体が機密の対象となるため、これらの機密を隠蔽したまま情報検索を行うことが、製品開発や研究開発を進める上で重要となるからである。
【0006】
従来のセキュリティ技術では、例えば、(1)ネットワーク上での盗聴に対する通信情報の保護、(2)不正アクセスを防止するためのサーバ側でのユーザ認証などが実現されている。
【0007】
また、これらのセキュリティ実現方法としては、互いに通信するクライアント計算機とサーバ計算機間で、例えば、SSL(Secure Socket Layer)などの暗号化プロトコルを用いる方法や、図13に示すように、クライアント計算機10から、暗号化した問合せ202をネットワーク203経由で情報サービスを提供するサーバ計算機205に転送し、上記サーバ計算機205では、ネットワークインタフェース部206で受信した上記暗号化問合せ202を問合せ復号部210に送り、問合せ復号部210で上記暗号化問合せを復号し、DBMS208が、復号化された問い合わせ条件に従ってデータベース211を検索する方式が知られている。検索結果207は、必要に応じて暗号化された後、上記ネットワークインタフェース206とネットワーク203を経由して、クライアント計算機10に返送される。
【0008】
しかしながら、上述した従来の方法では、問合せ内容202が、ネットワーク上では暗号化された状態で転送されているものの、サーバ計算機205内では問合せ内容を復号化した状態で検索処理を実行しているため、ユーザが機密にしたい検索内容がサーバ計算機に対して隠蔽されていない。そのため、機密情報である検索内容が、悪意を持つサーバ側の管理者に漏洩する危険性がある。
すなわち、従来のネットワークを経由したデータベースアクセスでは、サーバが信用できることを前提として、情報のセキュリティが保証されており、問合せで指定される検索条件自体が機密の対象となる場合に、これらの機密をユーザ以外の他人に隠蔽したまま検索を行うことは困難であった。
【0009】
特開平11−259512号の「データ検索システム」(文献1)では、ユーザから入力された問合せの条件に対し、(1)予め登録された機密項目に関する条件を削除し、(2)条件値の包含関係(概念階層)を利用して条件値を類似語または上位概念語に置き換え、(3)入力された検索条件を分割し、(4)データ検索装置とデータ検索サーバとの間に設置した代行サーバにデータ検索サーバへのアクセスを代行させることにより、検索サーバのデータベーストレースの履歴データからユーザの所在や検索条件等の機密が漏れるのを保護するシステムを提供している。
【0010】
上記文献1に開示された従来技術によれば、ユーザの機密情報の一部はサーバに対して隠蔽が可能となるが、検索条件がサーバに取得されるという問題があり、例えば、人名や遺伝子配列などの検索条件の値を包含関係によって他の用語へ置き換えることが困難な分野では、検索条件を十分に隠蔽できないという問題があった。
【0011】
特開昭64−14665号の「住民基本台帳ファイル方式」(文献2)では、住民基本台帳データの入力時に、住民基本台帳データを暗号化し、暗号化されたデータをデータファイルに格納することにより、悪意を持つ者が住民台帳ファイルをアクセスして個人情報を取得するのを防止している。上記文献2に開示された従来技術では、住民台帳ファイルの登録データとユーザの問合せデータとのマッチングを行う際に、データファイルに格納された暗号化データを復号処理しており、ユーザの問合せはサーバ側では隠蔽されていない。従って、サーバの管理者に悪意がある場合には、その問合せ内容を知られてしまうという問題がある。
【0012】
特開平11−272681号の「個人情報の記録方法およびその記録媒体」(文献3)では、上記文献2の方式に関して、データ復号化に伴う検索処理効率が低下し、暗号化の方法によっては検索不可の条件が生ずる問題があると理解した上で、(1)個人情報を、基本データ項目を格納するための基本情報ファイルと、それ以外のデータを格納するための属性情報ファイル群に分割し、(2)個人情報を特定する個人コードとして上記2つのファイル間の関連付ける特殊なコードを使用し、(3)必要に応じて上記個人コードを暗号化することにより、ファイルデータ全体を暗号化する必要のない個人情報の記録方法が提案されている。しかしながら、この従来技術でも、文献2の技術と同様に、ユーザが指定する検索条件は暗号化されないため、サーバ側で上記条件が漏洩する危険を伴う。
【0013】
米国特許5963642号、“METHOD AND APPARATUS FOR SECURE STORAGE OF DATA”(文献4)では、データベースに格納するデータ自体をビットマップ化し、ユーザの問合せは同様のビットマップに変換して検索することにより、上記問合せを復号することなく検索を行うようにしている。しかしながら、上記文献4に開示された従来技術では、サーバに蓄積されるデータの全てを予めビットマップにエンコードしておく必要があり、既存のデータベースに対して本方式を適用するのは困難である。
【0014】
【発明が解決しようとする課題】
上述したように、従来技術によれば、クライアント計算機から、ネットワークを介して、サーバ計算機上で稼動する情報提供サービスを利用する場合に、クライアント計算機でユーザが入力した機密にすべき検索条件を隠蔽したまま、情報サービスを受けることは困難であった。
【0015】
本発明の第1の目的は、ユーザが機密にしたい検索条件を隠蔽したまま、情報提供サービスを利用できるデータベースアクセス方法およびシステムを提供することである。
本発明の第2の目的は、情報検索条件を隠蔽したまま情報サービスを提供できるプロトコルを提供することである。
更に、本発明の第3の目的は、ユーザが保護したい検索条件を隠蔽して情報提供サービスを実現できるデータ中継サーバおよびデータベース検索サーバを提供することである。
【0016】
【課題を解決するための手段】
上記目的を達成するため、本発明では、検索条件に含まれる秘匿すべきデータ項目を暗号化した暗号化問合せをサーバ計算機に送信し、サーバ計算機では、上記暗号化された検索条件を復号化することなく、検索対象となるデータを上記秘匿データ項目と同様に暗号化しながら、暗号化データマッチングによってデータ検索することを特徴とする。
【0017】
本発明の他の特徴は、ユーザが入力した問合せを他の問合せと連結したり、1つの問合せを複数の問合せに分割する等の問合せ変換を行い、変換された問合せをDBサーバに送信することによって、DBサーバに履歴データとして残る問合せの内容とユーザが入力した問合せ内容との対応関係を変えることにある。
【0018】
上記問合せ変換は、クライアント計算機とDBサーバの間に接続されたデータ中継サーバによって行われる。例えば、1つの問合せを第1、第2の問合せに分割した場合、第1の問合せは、クライアント計算機からの問合せを受信した第1のデータ中継サーバからDBサーバに送信され、第2の問合せは、上記第1のデータ中継サーバと協調して動作する第2のデータ中継サーバを介して上記DBサーバに送信される。この場合、第2の問合せに対する検索結果は、第2のデータ中継サーバを介して第1のデータ中継サーバに転送される。
検索条件の暗号化に加えて、このように問合せ内容の変換とDBサーバに対する問合せの要求元の分散を行うことにより、DBサーバ管理者によるユーザ機密情報の分析を困難にすることができる。
【0019】
【発明の実施の形態】
本発明の情報提供サービスを実現する計算機ネットワークシステムは、ユーザからデータ検索要求(問合せ)を受け付ける少なくとも1つのクライアント計算機(以下、クライアントと言う)と、クライアントからの検索要求に従って情報サービス用のデータベースを検索する少なくとも1つのサーバ計算機(以下、DBサーバという)と、各クライアントを所望のDBサーバに接続するためのネットワークと、クライアントとDBサーバとの間に位置し、クライアントからの検索要求を修飾してDBサーバに転送する少なくとも1つのデータ中継サーバとからなる。
【0020】
上記データ中継サーバの基本的な構成は、クライアントからの問合せを解析する問合せ解析部と、解析した問合せの一部を暗号化する暗号化問合せ生成部と、DBサーバがデータベースから読み出し特定属性のデータを暗号化するための暗号化プログラムを生成する暗号化プログラム生成部と、暗号化された問合せを含み、必要に応じて暗号化プログラムが追加された問合せメッセージを生成し、適切なDBサーバに送信するための問合せメッセージ生成部と、DBサーバから受信した検索結果に対して、必要に応じて再検索や複数の検索結果の統合処理を行う検索結果処理部とを含む。
【0021】
上記データ中継サーバは、上記問合せ解析部から出力された複数の問合せを1つの結合問合せに変換したり、上記問合せ解析部から出力された1つの問合せを該データ中継サーバと協調する他のデータ中継サーバに分配するために、複数の分配問合せに変換する問合せ変換部とを含んでもよい。また、上記データ中継サーバは、DBサーバのデータベース蓄積データの一部をコピーとして保持するためのキャッシュデータベースと、クライアントからの問合せに応答して上記キャッシュデータベースでデータ検索する検索実行部とを備えてもよい。
【0022】
本発明が適用されるDBサーバは、ユーザに提供すべきデータを保持するデータベースと、上記データベースを管理し、問合せを受け付けるデータ管理・検索部と、問合せ内容に応じて上記データベースからデータを読み出すデータアクセス部とを含む。上記データ管理検索部は、受け付けた問合せが示す検索条件の一部が暗号化されていた場合に、データ中継サーバもしくは暗号化プログラムサーバから受け取った暗号化プログラムを上記データアクセス部に渡す。この場合、上記データアクセス部は、上記暗号化された検索条件に対応する属性もつ蓄積データを暗号化しながら読み出し、これによって、暗号化データマッチングによる検索条件との一致検出が行われる。
【0023】
図1は、本発明による計算機ネットワークシステムの1実施形態を示す。
図1では、クライアント計算機10(10Aと10B)が、ネットワーク21を介してデータ中継サーバ100−1に接続されている。データ中継サーバ100−1は、ネットワーク22を介して、互いに協調する他のデータ中継サーバ100−2に接続されており、これらのデータ中継サーバは、ネットワーク23を介してBDサーバ11に接続されている。データ中継サーバ100−2は、データ中継サーバ100−1と同様に、図示しない複数のクライアント計算機と接続される。上記ネットワーク21は、例えば、イーサネット、光ファイバまたはFDDIで接続されるローカルエリアネットワーク(LAN)、もしくはLANよりも低速なインターネットを含んだワイドエリアネットワーク(WAN)でも差し支えない。
【0024】
通常、ユーザは、クライアント計算機10上で稼動する専用プログラムもしくはブラウザを利用して、データベースシステムに対して問合せを発行し、上記問合せに対する結果を取得しているため、以降の説明では、問合せの発行元と最終結果の取得先をクライアント計算機10と考えることとする。
【0025】
クライアント計算機10は、例えば、(株)日立製作所のHitachiFLORAなどのパーソナルコンピュータや(株)日立製作所のHitachi3500ワークステーションなどの任意のコンピュータシステム、(株)日立製作所のPersonaなどの携帯端末、もしくは問合せインタフェースを持つ携帯電話でも差し支えない。
【0026】
また、クライアント計算機が接続されるデータ中継サーバ100−1、100−2と、情報提供サービスを行うDBサーバ119は、例えば、(株)日立製作所のHitachi3500ワークステーションなど、任意のコンピュータシステムによって構成される。さらに、DBサーバ119上で情報提供サービスのために稼動するデータ管理検索部124は、例えば、(株)日立製作所のHiRDB、オラクル(Oracle)社のOracle8、IBM社DB2など、汎用データベース・マネージメントシステム(DBMS)製品で差し支えない。
【0027】
データ中継サーバ100−1、100−2間を結ぶネットワーク22と、これらのデータ中継サーバとDBサーバ119を接続するネットワーク23は、例えば、イーサネット、光ファイバまたはFDDIで接続されるローカルエリアネットワーク(LAN)、もしくはLANよりも低速なインターネットを含んだワイドエリアネットワーク(WAN)でも差し支えない。
【0028】
ここでは、ネットワーク21、22、23が、互いに独立したネットワークとなっているが、これらは同一のネットワークであってもよい。データ中継サーバ100−1には、2つのクライアント計算機が接続されているが、クライアント計算機の数は任意である。また、ネットワーク22に接続されるデータ中継サーバの数も任意である。
【0029】
本実施例では、クライアント計算機が、例えば、小型の携帯端末や携帯電話等のように、記憶装置容量、計算能力あるいはバッテリー能力の制限から、余分な処理能力を装備できない場合を考慮して、クライアント計算機とDBサーバの間にデータ中継サーバを配置しているが、以下に説明するデータ中継サーバの機能の一部または全部をクライアント計算機に備えても差し支えない。
【0030】
本発明では、クライアント10A(または10B)から発行された問合せメッセージ103は、データ中継サーバ100−1で受信され、検索条件の一部を暗号化した後、暗号化問合せ115として、DBサーバ119に転送される。この時、必要に応じてデータ中継サーバ100−1で暗号化プログラム116が生成され、暗号化問合せ115と共にDBサーバ119に転送される。
【0031】
DBサーバ119は、ネットワーク23に接続されたネットワークインタフェース120と、データ管理検索部124と、データベース126からなり、上記問合せ115に応答してデータ検索を行い、検索結果を示す応答メッセージ118をデータ中継サーバ100−1に送信する。データ中継サーバ100−1は、応答メッセージ118が示す検索結果について所定の処理を施し、問合せ103に対応した検索結果104として、要求元のクライアント計算機10Aに送信する。
【0032】
図2は、データ中継サーバ100−1の詳細な構成を示すブロック図、図3は、問合せメッセージ103の内容を示す。
クライアント計算機から発行される問合せメッセージ103は、データ部に、クライアントID11と、セキュリティ優先度12と、問合せ内容13とを含み、これにネットワーク21の通信プロトコルによって決まる所定のヘッダ情報が付された構成となっている。
【0033】
問合せ内容13は、例えば、データベースから選択すべきデータの属性(データ項目名)13Sと、アクセスすべきファイル名13Fと、検索条件13Wとを含む。検索条件13Wは、検索すべきデータエントリを特定するために複数の定義13w−1〜13W−nと、各定義と対応して用意された秘匿表示13E−1〜13E−nとを含む。
【0034】
クライアント計算機10Aが発行した問合せ103は、ネットワークインタフェース101で受信され、問合せ解析部106によって解析され、データ中継サーバ100−1が備えるキャッシュデータベース128の蓄積データで検索処理が可能か否かが判定される。上記解析および判定には、例えば、特開平01−109758号(特願平11−285164)公報に開示された部分レプリカを利用した方法を適用すればよい。
【0035】
キャッシュデータベース128の蓄積データで検索処理が可能であれば、検索部113によってキャッシュデータベース128から検索条件に適合したデータが検索される。検索結果は、検索結果処理部111によって応答メッセージに編集され、ネットワークインタフェース101を介して、要求元のクライアント計算機に送信される。データ中継サーバ100−1にキャッシュデータベースが存在しない場合、または上記キャッシュデータベースの蓄積データでは問合せに回答できないと判定された場合は、問合せメッセージ103は問合せ変換部107に送られる。
【0036】
問合せ変換部107の動作を図6のフローチャートを参照して説明する。
問合せ変換部107では、問合せを受け付けた(ステップ602)後、問合せ連結を行うか否かを判定する(ステップ603)。問合せ連結とは、問合せ内容を秘匿するために、複数の問合せを連結して1つの問合せに変換するための処理を意味し、同一クライアント計算機から発行された問合せのみならず、異なるクライアント計算機から発行された問合せも、連結の対象となる。
【0037】
例えば、DBサーバ119上の情報提供システムによって提供されるデータが顧客の貯蓄額であり、データベース126に、図7の(A)に示すように、顧客ID802と対応して、預金口座が登録された銀行支店名803と、貯蓄額804とを示す貯蓄残高表801が記憶されている場合を想定する。
【0038】
今、クライアント計算機10Aから図7の(B)に示す問合せQ1(805)が発行され、クライアント計算機10Bから図7の(C)に示す問合せQ2(806)が発行されたとする。この場合、Q1とQ2の連結問合せは、例えば、図7Dに807で示すように、Q1の選択対象項目(属性)である{顧客ID、支店、貯蓄額}と、Q2の選択対象項目である{顧客ID、貯蓄額}の和集合である{顧客ID、支店、貯蓄額}を選択対象項目とし、問合せQ1の検索条件{貯蓄額>=1,000,000}と問合せQ2の検索条件{貯蓄額<=10,000}との論理和を検索条件としたものとなる。問合せ連結を行うか否かは、連結可能な別の問合せメッセージが受信済みとなっているか否かで判定される。
【0039】
問合せ連結の要否判定の後、問合せ分配を行うか否かを判定する(ステップ604、605)。問合せ分配とは、問合せの発行元ユーザと問合せ内容との関係をDBサーバ119側のデータ提供システムから隠蔽するために、一つの問合せを複数の問合せに分割し、互いに協調する複数のデータ中継サーバからDBサーバ119に問合せを送信することを意味している。
【0040】
例えば、図7の(D)に示した連結問合せ807が分配対象問合せとなり、データ中継サーバ100−2がデータ中継サーバ100−1と協調して分配問合せメッセージをDBサーバ119に転送する場合を仮定する。
この場合、問合せ807を、例えば、図7の(E)に示す分配問合せDQ1(808)と、図7の(F)に示す分配問合せDQ2(809)に分割し、分配問合せDQ1はデータ中継サーバ100−1からDBサーバ119に送信し、分配問合せDQ2は、データ中継サーバ100−2を介して、DBサーバ119に送信する。
【0041】
このようにすれば、問合せ807に対する検索結果のうち、支店=新宿となっているレコードは、分配問合せDQ1に対する応答としてデータ中継サーバ100−1が受信し、それ以外のレコードは、分配問合せDQ2に対する応答としてデータ中継サーバ100−2で受信し、データ中継サーバ100−1に転送することになる。
このように1つの問合せを複数の分配問合せに分割することにより、問合せ807が示す検索条件と発行元をDBサーバ119上で稼動する情報提供システムから隠蔽することが可能となる。
【0042】
分配の対象となる問合せは、連結前のものでも差し支えない。また、問合せ分配の要否は、受信した問合せメッセージ103のセキュリティ優先度12によって判定され、セキュリティ優先度12が問合せの秘匿を指示していなければ、問合せ分配は行われない。
【0043】
問合せ変換部107では、問合せ連結と問合せ分配の両方を行う(ステップ603と604の判定結果がYes)場合は、連結・分配問合せを生成し(ステップ607)、図5に示す検索管理テーブル114に新たなエントリを登録(ステップ610)した後、問合せ変換処理を終了する。
【0044】
問合せ連結は行うが、問合せ分配は行わない(ステップ604の判定結果がNo)場合は、連結問合せを生成(ステップ606)した後、ステップ610を実行する。問合せ連結を行わず(ステップ603がNo)、問合せ分配のみを行う(ステップ605がYes)場合は、分配問合せを生成(ステップ608)した後、ステップ610を実行する。問合せ連結も問合せ分配も行わない(ステップ605がNo)場合は、問合せ変換を行うことなくステップ610を実行する。
【0045】
検索管理テーブル114には、図5に示すように、データ中継サーバ100−1で受信した問合せメッセージまたは送出される問合せメッセージと対応した複数のエントリEN−1、EN−2、・・・が登録される。各エントリは、クライアントID1141と、元の問合せ内容1142と、変換された問合せ内容1143と、問合せ変換の種類を示す変換タイプ1144と、後述する暗号化問合せ生成部108で暗号化された検索定義と元の検索定義との関係が1:1の関係にあるか否かを示す1:1変換フラグ1145とを含む。
【0046】
2つの問合せメッセージM1とM2が連結された場合は、メッセージM1に対応するエントリEN−1と、メッセージM2に対応するエントリEN−2が、フィールド1143に同一の内容を含む。1つの問合せメッセージM1の内容が2つのメッセージm1、m2に分配された場合は、フィールド1142に同一の内容を含む2つのエントリEN−1とEN−2が生成され、エントリEN−1のフィールド1143にはメッセージm1、エントリEN−2のフィールド1143にはメッセージm2が設定される。
【0047】
他のデータ中継サーバ100―2から分配問合せメッセージを受信した場合は、例えば、受信メッセージに含まれるクライアントIDと、受信メッセージのヘッダに含まれる送信元(データ中継サーバ100―2)のアドレスとの関係が、図示しない転送メッセージ管理テーブルに記憶される。
【0048】
図2に戻って、問合せ変換部107で処理された問合せは、暗号化問合せ生成部108に転送され、問合せ内容の一部が暗号化される。また、上記問合せ内容の暗号化に、DBサーバにとって新しい暗号化方法が使用された場合は、暗号化プログラム生成部109によって、上記暗号化方法に対応する暗号化プログラムを生成される。暗号化された問合せと、暗号化プログラムは、問合せメッセージ生成部110によって、DBサーバ119宛の暗号化問合せメッセージに編集される。暗号化問合せメッセージは、ネットワークインタフェース部112を介して、ネットワーク23に送信され、DBサーバ119で受信される。
【0049】
暗号化問合せ生成部108と暗号化プログラム生成部109の動作を、図8、図9および図10を参照して説明する。
暗号化問合せ生成部108は、図8に示すように、問合せ変換部107から問合せメッセージを受け付けると(ステップ402)、問合せ条件の中に隠蔽対象項目が存在するか否かを判定する(ステップ403)。隠蔽対象項目の有無は、クライアント10(10A、10B)から受信された図3の問合せメッセージ103において、検索定義毎に設けられた秘匿表示13E−1〜13E−nをチェックすることによって判定できる。
【0050】
隠蔽対象項目が存在しなければ、問合せの暗号化と暗号化プログラムの生成を行うことなく、暗号化問合せ生成部108の処理を終了する。隠蔽対象項目が存在した場合は、秘匿表示13E−iで指定された条件定義13W−iが示すデータを所定の暗号化関数fe()に従って暗号化し、暗号化データと上記暗号化関数とを含む暗号化問合せを生成する(ステップ404)。
【0051】
例えば、DBサーバ119が、図9の(A)に示す遺伝子配列表901をデータベース126に保持しており、暗号化問合せ生成部108が、図9の(B)に示すように、配列構造=‘atcg’を検索条件として含む問合せメッセージQ3(905)を受信したと仮定する。配列構造=‘atcg’は、問合せメッセージQ3の最初の条件定義13W−1に記述される。もし、秘匿表示13E−1が、条件定義13W−1の秘匿を指示していた場合、データ“atcg”が隠蔽対象項目となる。
【0052】
この場合、ステップ404では、隠蔽対象項目として指定されたデータ“atcg”を所定の暗号化関数fe()で暗号化し、例えば、図9の(C)に示すように、配列構造=“@2aSzE”を検索条件とし、SELECT文で指定される取得対象データに新たなデータ項目として「配列構造」を追加した暗号化問合せQ4(906)を生成する。これは、暗号化前のデータ値“atcg”と、暗号化後のデータ値“@2aSzE”とが1:1の関係にあることが保証されない場合に、DBサーバから受け取った検索結果に対して、データ中継サーバ側で配列構造=“atcg”を検索条件として、再検索する必要があるからである。
【0053】
隠蔽対象となった検索条件が「=」(等号条件)、もしくは「≠」(非等号)を含む場合は、元のデータ値を任意の暗号化関数で変換できる。ただし、隠蔽対象となった検索条件が「<」、「≦」、「>」、もしくは「≧」のように不等号を含む場合は、大小関係を保持できる暗号化方法を用いる必要がある。
【0054】
検索条件を暗号化(暗号化問合せを生成)した場合は、暗号化プログラム生成が必要か否かを判定する(ステップ405)。データ中継サーバ100−1が、暗号化プログラムサーバ129に登録された既存の暗号化プログラムを利用する場合、または、ステップ404で使用した暗号化プログラムがDBサーバ側に既に通知済みとなっている場合は、暗号化プログラムの生成は不要となる。この場合は、暗号化プログラムを生成することなく、ステップ407に進む。
【0055】
DBサーバに暗号化プログラムを通知する必要があれば、暗号化プログラム生成部109と共同して、暗号化プログラムを生成(ステップ406)した後、ステップ407を実行する。ステップ407では、検索管理テーブル114の1:1変換フラグ・フィールド1145に、1:1変換の有無、すなわち、暗号化前のデータと暗号化後のデータとが1:1の関係にあるか否かを示すフラグ値を記録する。
【0056】
図10を用いて暗号化プログラムについて説明する。
隠蔽対象項目(隠蔽対象属性)をTc、暗号化に利用する関数をfe()、暗号化前のデータ値をvb、暗号化後のデータ値をvaと表記すると、暗号化による問合せ条件の変換は、模式的に図10のようになる。この時、暗号化プログラム生成部109によって生成される暗号化プログラムは、DBサーバ119のデータ管理検索部(DBMS)124に含まれるデータアクセス部125で使用されるもので、暗号化関数fe()に相当するデータ変換処理を行うためのプログラムである。
【0057】
上記暗号化プログラムは、DBMS124が、例えば、(株)日立製作所のHiRDBのように、プラグインインタフェースを持っている場合には、上記インタフェース仕様を満足するプログラムでよい。また、DBMSがその内部にあるプログラミング言語の実行エンジンを搭載している場合には、上記プログラミング言語で記述したプログラムでも差し支えない。
【0058】
図2に戻って、暗号化問合せ生成部108は、検索条件の一部を暗号化し、必要に応じて取得対象データ項目が変更された問合せメッセージを、暗号化に適用した関数識別子(暗号化プログラム識別子)と共に、DB問合せメッセージ生成部110に渡す。検索条件を暗号化しなかった場合は、問合せ変換部107から受信した問合せメッセージが、DB問合せメッセージ生成部110に渡される。また、暗号化プログラムが生成された場合は、暗号化プログラム生成部109からDB問合せメッセージ生成部110に、暗号化プログラムが渡される。
【0059】
DB問合せメッセージ生成部110は、暗号化問合せ生成部108からの受信データに基づいて、例えば、図4に示すように、データ部にクライアントID:11と、暗号化された問合せ内容14と、暗号化関数識別子15とを含むDBサーバ119宛の問合せメッセージ(DB問合せメッセージ)115を作成し、ネットワークインタフェース部112を介して、DBサーバ119に送出する。暗号化プログラムが生成された場合は、DB問合せメッセージ115に暗号化プログラム16が加わる。
【0060】
DB問合せメッセージ生成部110は、暗号化問合せ生成部108からの受信メッセージが、直前の受信メッセージと同一のクライアントIDをもっていた場合、これを分配問合せ用のメッセージと判断し、予め指定されている協調サーバ、例えば、データ中継サーバ100−2宛に送信する。
【0061】
次に、DBサーバ119で行われる問合せ処理について、図1と図11を参照して説明する。
DBサーバ119では、ネットワークインタフェース部120で受信したDB問合せメッセージ115を、DBMS124によって解析し(ステップ502)、DB問合せメッセージに暗号化プログラム16が含まれていた場合は、これをデータアクセス部125に設定する。
【0062】
DBMS124は、DB問合せメッセージ115中の暗号化された検索条件に該当するデータが、DBサーバ119側(データベース126)に、上記検索条件と照合可能な暗号化データとして存在しているか否かをチェックする(ステップ505)。
【0063】
暗号化データが既に存在する場合は、DBMS124は、データアクセス部125にDB問合せメッセージの検索条件が示す隠蔽対象項目の読出しを指令し、上記暗号化済みデータを利用して、上記DB問合せメッセージが要求するデータ検索処理を実行する(ステップ506)。
暗号化済みデータが存在しない場合は、DBMS124は、DB問合せメッセージの検索条件が示す隠蔽対象項目と暗号化関数識別子15を指定して、データアクセス部125にデータエントリの読出しを指令する。
【0064】
データアクセス部125は、データベース126からの読み出しデータのうち、隠蔽対象項目については、上記暗号化関数識別子15と対応した暗号化プログラムで暗号化し、その他のデータ項目は、通常のデータ形式で出力する。DBMS208は、データベースからの読出しデータを問合せメッセージの検索条件に従って判定し、隠蔽対象項目については暗号化データを検索条件と比較しながら、検索条件に適合するデータレコードを検索する(ステップ507)。
【0065】
例えば、問合せメッセージ115が、検索条件として、図9の(C)に示した暗号化問合せQ4と暗号化プログラムfe1()を含む場合、DBMS124では、問合せQ4に含まれる暗号化データを復号化することなく検索処理を実行し、データベース126に蓄積された遺伝子配列表901から配列構造904を読み出す時、データアクセス部125に配列構造の蓄積データを関数fe1()で暗号化した形で出力させ、検索条件が示す配列構造=’@2aSzE’に合致するレコードを検索する。
【0066】
DBMS208は、検索結果を含む応答メッセージを生成し(ステップ508)、該応答メッセージを問合せメッセージ115の送信元であるデータ中継サーバ100−1または100−2に送出して(ステップ509)、問合せ処理を終了する。DBMS124で生成された応答メッセージは、図1に記号18と118で示すように、ネットワークインタフェース120を介して、ネットワークにデータ中継サーバに転送される。
【0067】
尚、検索結果に含まれるデータ綱目のうち、暗号化されていないデータ項目をDBMS124で自動的に暗号化した形で、上記応答メッセージを生成するようにしてもよい。また、実施例では、問合せメッセージ115によって検索条件と暗号化プログラムとを同時に送信したが、問合せメッセージ115では検索条件と暗号化に適用した関数識別子のみを送信し、DBサーバ119側で、上記関数識別子と対応する暗号化プログラムを既に保持しているか否かをチェックし、必要な暗号化プログラムを保持していない場合に、DBサーバ119から問合せメッセージ115の送信元サーバ100−1または100−2に暗号化プログラムの送信を要求するようにしてもよい。
【0068】
データ中継サーバ100−1は、ネットワークインタフェース112を介して受け取った応答メッセージ(検索結果)を検索結果処理部111で処理する。
図12は、上記検索結果処理部111で実行する検索結果処理ルーチン701を示す。
【0069】
検索結果処理部111では、受信した応答メッセージに含まれるクライアントIDに基づいて転送メッセージ管理テーブルを参照し、上記応答メッセージが、他の協調サーバから依頼された問合せに対する回答か否かを判定する(ステップ702)。受信した応答メッセージが他の協調サーバから依頼された問合せに対する回答メッセージであれば、転送メッセージ管理テーブルが指定するデータ中継サーバのアドレス宛に上記応答メッセージを転送して(ステップ703)、このルーチンを終了する。
【0070】
受信した応答メッセージが、データ中継サーバ100−1で生成した問合せに対する回答であった場合、上記受信応答メッセージに含まれるクライアントIDに基づいて、図5に示した検索管理テーブル114を参照し、検索結果に暗号化されたデータ項目が含まれているか否かをチェックする(ステップ704)。暗号化されたデータ項目が含まれていた場合、暗号化されたデータ項目を復号化処理する(ステップ705)。
【0071】
次に、検索管理テーブル114を参照して、上記受信応答メッセージが連結問合せに対する回答か否かをチェックする(ステップ706)。もし、上記受信応答メッセージが連結問合せに対する回答であれば、検索管理テーブル114の元の問合せ内容1142が示す連結変換前の検索条件を適用して再検索を実行し、各クライアント計算機から発行された問合せに対する正しい検索結果を生成する(ステップ710)。この後、再検索結果に含む要求元クライアント計算機宛の応答メッセージを作成し(ステップ712)、ネットワークインタフェース101を介して応答メッセージをネットワーク21に送信する(ステップ713)。
【0072】
上記受信応答メッセージが連結問合せに対する回答でなかった場合は、上記受信応答メッセージが分配問合せに対する回答か否かをチェックする(ステップ707)。上記受信応答メッセージが分配問合せに対する回答の場合、分配問合せに対する全ての回答(検索結果)が揃ったか否かをチェックし(ステップ708)、全ての回答が揃っていた場合は、ステップ710で、検索管理テーブル114の元の問合せ内容1142が示す分配変換前の検索条件を適用して再検索を実行する。分配問合せに対する全ての回答が揃っていなければ、ワークメモリ上に用意された分配問合せ検索結果の一時保存領域に検索結果を記憶し(ステップ709)、このルーチンを終了する。ステップ708で行うチェックは、上記分配問合せ検索結果の一時保存領域を参照して行われる。
【0073】
ステップ707の判定結果がNOの場合、検索結果が、問合せ変換部107による変換処理が行われなかった問合せに対する回答であることを意味している。この場合、問合せの検索条件に適用した暗号化関数が1:1変換用のものであったか否かをチェックする(ステップ711)。
【0074】
暗号化関数が1:1変換用でなかった場合、値の異なる2以上のデータが、暗号化によって同一値のデータとなることを意味しており、暗号化された検索条件で得られた検索結果は、暗号化しない検索条件で得られる検索結果よりも大きな解集合となっている。この場合は、DBサーバから通知された検索結果に対して、検索管理テーブル114の元の問合せ内容1142が示す暗号化前の検索条件を適用して再検索を実行し(ステップ710)、クライアント計算機から発行された問合せに対する正しい検索結果を生成する。
【0075】
暗号化関数が1:1変換用のものであった場合は、DBサーバから通知された検索結果に従って、要求元のクライアント計算機宛の応答メッセージを作成し(ステップ712)、応答メッセージをネットワーク21に送信する(ステップ713)。
【0076】
以上の実施例から明らかなように、本発明によれば、ユーザ問合せに含まれる機密条件の秘匿を高度に保証した情報提供サービスを提供できる。また、本発明により、各クライアント計算機のユーザは、自らが保護したい条件を隠蔽したまま、情報提供サービスを受けることができ、悪意のあるDBサーバの管理者から利用者の機密を保護することができる。
【0077】
【発明の効果】
本発明によるデータ中継サーバは、例えば、ユーザからの問合せを、該問合せに含まれる機密条件の秘匿を保証できる情報提供サーバにのみ選択的に転送する問合せ仲介サービス方法に応用できる。また、本発明のデータ中継サーバは、例えば、複数の情報提供サーバからのサービス課金情報を収集して、対価をまとめて支払っておき、上記課金情報をクライアント毎に配分して、各クライアントに課金する情報サービスにも応用できる。
【図面の簡単な説明】
【図1】本発明のデータベース・アクセスシステムの全体構成の1例を示す図。
【図2】図1に示したデータ中継サーバ100−1の構成を示すブロック図。
【図3】図1に示したクライアント計算機10(10A、10B)からデータ中継サーバ100−1に送信される問合せメッセージの1実施例を示す図。
【図4】図1に示したデータ中継サーバ100−1からDBサーバ119に送信される問合せメッセージの1実施例を示す図。
【図5】データ中継サーバ100−1が備える検索管理テーブルの構成を示す図。
【図6】データ中継サーバ100−1の問合せ変換部107の機能を示すフローチャート。
【図7】DBサーバ119が備えるデータベースの内容の1例(A)と、上記データベースに対する2つの問合せQ1、Q2の1例(B、C)と、問合せ変換部107で生成される連結問合せの1例(D)および分配問合せの1例(E、F)を示す図。
【図8】データ中継サーバ100−1の暗号化問合せ生成部108の機能を示すフローチャート。
【図9】データベースの内容の1例(A)と、上記データベースに対する問合せQ3の1例(B)と、問合せQ3から得られる暗号化問合せの1例(C)を示す図。
【図10】データ中継サーバ100−1の暗号化プログラム生成部109で生成される暗号化プログラムを説明するための図。
【図11】DBサーバ119で実行される問合せ処理の1例を示すフローチャート。
【図12】データ中継サーバ100−1の検索結果処理部111の機能を示すフローチャート。
【図13】暗号化問合せを利用した従来のデータ検索システムを説明するための図。
【符号の説明】
10:クライアント計算機、21、22、23:ネットワーク、
100:データ中継サーバ、101、112:ネットワークインタフェース、
106:問合せ解析部、107:問合せ変換部、108:暗号化問合せ生成部、
109:暗号化プログラム生成部、100:DB問合せメッセージ生成部、
111:検索結果処理部、113:検索部、114:検索管理テーブル、
119:DBサーバ、120:ネットワークインタフェース、
124:データ管理検索部、129:暗号化プログラムサーバ。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a database access method and system, and more specifically, a database access method and a data search system in which contents of a query for data search given by a user or an application program can be hidden from a database administrator, In particular, the present invention relates to a data relay server and a database server system.
[0002]
[Prior art]
With the advancement and spread of network technologies including the Internet, many computers are connected to the network. Accordingly, information providing services that provide users with various information via a network are being widely used. For example, patent information search service and gene sequence information search service are good examples.
[0003]
A user who uses these information providing services accesses a computer that provides the information service from various computers (terminals) via the network. In the following description, a computer (terminal) operated by a user is called a client computer, and a computer that provides an information service is called a server computer or a DB server. At present, workstations, personal computers, small portable terminals and mobile phones are used as client computers, and mainframes, UNIX servers, and PC servers are often used as server computers.
[0004]
In accessing the information providing service described above, each user uses dedicated software or a WEB browser on the client computer. On the other hand, data management and retrieval on a server computer that provides an information service is usually performed by a database management system (hereinafter referred to as DBMS).
[0005]
In accessing information providing services, for example, when searching for gene sequence information and patent information, it is possible for the user to conceal who accessed the information under what conditions, that is, anonymity of access, It is desirable to maintain the confidentiality of search contents. This is because, in gene sequence searches and patent keyword searches, the conditions specified in the queries themselves are subject to confidentiality, so performing information searches while concealing these secrets promotes product development and research and development. This is important.
[0006]
In the conventional security technology, for example, (1) protection of communication information against eavesdropping on the network, and (2) user authentication on the server side to prevent unauthorized access are realized.
[0007]
As these security realizing methods, for example, a method using an encryption protocol such as SSL (Secure Socket Layer) between a client computer and a server computer communicating with each other, or as shown in FIG. The encrypted query 202 is transferred to the server computer 205 that provides the information service via the network 203, and the server computer 205 sends the encrypted query 202 received by the network interface unit 206 to the query decryption unit 210. A method is known in which the decryption unit 210 decrypts the encrypted query and the DBMS 208 searches the database 211 in accordance with the decrypted query condition. The search result 207 is encrypted as necessary, and then returned to the client computer 10 via the network interface 206 and the network 203.
[0008]
However, in the conventional method described above, the query content 202 is transferred in an encrypted state on the network, but the search processing is executed in the server computer 205 with the query content decrypted. The search contents that the user wants to keep secret are not concealed from the server computer. Therefore, there is a risk that the search contents, which are confidential information, may be leaked to a malicious server-side administrator.
In other words, in database access via a conventional network, the security of information is guaranteed on the premise that the server can be trusted, and if the search condition specified in the query itself is subject to confidentiality, these secrets are protected. It has been difficult to perform a search while hiding it by someone other than the user.
[0009]
In the “data search system” (reference 1) of Japanese Patent Laid-Open No. 11-259512, (1) a condition relating to a confidential item registered in advance is deleted in response to an inquiry condition input by a user, and (2) the condition value Using inclusion relationships (concept hierarchies), replace condition values with similar words or broader concept words, (3) divide input search conditions, and (4) install between data search device and data search server By delegating access to the data search server to the proxy server, a system is provided that protects the confidentiality of the user's location, search conditions, etc. from leaking database trace history data of the search server.
[0010]
According to the prior art disclosed in the above document 1, a part of user's confidential information can be concealed from the server, but there is a problem that the search condition is acquired by the server. In a field where it is difficult to replace a search condition value such as an array with another term by an inclusion relationship, there is a problem that the search condition cannot be sufficiently concealed.
[0011]
In “Basic Resident Register File System” of Japanese Patent Laid-Open No. 64-14665 (Reference 2), when inputting Basic Resident Register data, the Basic Resident Register data is encrypted, and the encrypted data is stored in a data file. , To prevent a malicious person from accessing the resident register file to obtain personal information. In the prior art disclosed in the above-mentioned document 2, when matching the registration data of the resident register file and the user inquiry data, the encrypted data stored in the data file is decrypted. It is not hidden on the server side. Therefore, there is a problem that if the server administrator is malicious, the contents of the inquiry are known.
[0012]
According to Japanese Patent Laid-Open No. 11-226881, “Personal Information Recording Method and Recording Medium” (Reference 3), the search processing efficiency associated with data decryption is reduced with respect to the method of Reference 2, and the search is performed depending on the encryption method. (1) Dividing personal information into a basic information file for storing basic data items and an attribute information file group for storing other data. (2) Using a special code for associating the two files as a personal code for identifying personal information, and (3) encrypting the entire file data by encrypting the personal code as necessary. A method of recording personal information that is not necessary has been proposed. However, even in this conventional technique, the search condition specified by the user is not encrypted, as in the technique of Document 2, and there is a risk that the above condition leaks on the server side.
[0013]
In US Pat. No. 5,963,462, “METHOD AND APPARATUS FOR SECURE STORAGE OF DATA” (reference 4), the data itself stored in the database is converted into a bitmap, and the user's query is converted into a similar bitmap and searched. The search is performed without decrypting the query. However, in the prior art disclosed in the above document 4, it is necessary to encode all the data stored in the server into a bitmap in advance, and it is difficult to apply this method to an existing database. .
[0014]
[Problems to be solved by the invention]
As described above, according to the prior art, when using an information providing service that operates on a server computer from a client computer via a network, the search conditions that should be kept confidential by the user on the client computer are hidden. It was difficult to receive information services.
[0015]
A first object of the present invention is to provide a database access method and system that can use an information providing service while hiding a search condition that a user wants to keep confidential.
A second object of the present invention is to provide a protocol capable of providing an information service while hiding information retrieval conditions.
A third object of the present invention is to provide a data relay server and a database search server that can realize an information providing service by hiding search conditions that a user wants to protect.
[0016]
[Means for Solving the Problems]
In order to achieve the above object, in the present invention, an encrypted query in which a data item to be concealed included in a search condition is encrypted is transmitted to the server computer, and the server computer decrypts the encrypted search condition. The data search is performed by encrypted data matching while the data to be searched is encrypted in the same manner as the secret data item.
[0017]
Another feature of the present invention is to perform query transformation such as concatenating a query input by a user with another query or dividing one query into a plurality of queries, and sending the transformed query to the DB server. Thus, the correspondence between the contents of the query remaining as history data in the DB server and the query content input by the user is changed.
[0018]
The inquiry conversion is performed by a data relay server connected between the client computer and the DB server. For example, when one query is divided into first and second queries, the first query is transmitted from the first data relay server that has received the query from the client computer to the DB server, and the second query is The data is transmitted to the DB server via the second data relay server operating in cooperation with the first data relay server. In this case, the search result for the second query is transferred to the first data relay server via the second data relay server.
In addition to the encryption of the search conditions, the conversion of the query contents and the distribution of the query request sources to the DB server in this way can make it difficult for the DB server administrator to analyze the user confidential information.
[0019]
DETAILED DESCRIPTION OF THE INVENTION
A computer network system for realizing an information providing service according to the present invention includes at least one client computer (hereinafter referred to as a client) that receives a data search request (inquiry) from a user, and an information service database according to the search request from the client. It is located between at least one server computer (hereinafter referred to as a DB server) for searching, a network for connecting each client to a desired DB server, and the client and the DB server, and modifies the search request from the client. And at least one data relay server transferred to the DB server.
[0020]
The basic configuration of the data relay server includes a query analysis unit that analyzes a query from a client, an encrypted query generation unit that encrypts a part of the analyzed query, and data that has a specific attribute read from the database by the DB server. An encryption program generation unit that generates an encryption program for encrypting a message and an inquiry message including an encrypted query, to which an encryption program is added, if necessary, and send to an appropriate DB server And a search result processing unit that performs a re-search and an integration process of a plurality of search results as necessary for the search result received from the DB server.
[0021]
The data relay server converts a plurality of queries output from the query analysis unit into one combined query, or another data relay that cooperates with the data relay server for one query output from the query analysis unit. In order to distribute to the server, a query conversion unit that converts the query into a plurality of distribution queries may be included. Further, the data relay server includes a cache database for storing a part of the database accumulated data of the DB server as a copy, and a search execution unit that searches the cache database for data in response to an inquiry from a client. Also good.
[0022]
A DB server to which the present invention is applied includes a database that holds data to be provided to a user, a data management / search unit that manages the database and receives a query, and data that reads data from the database according to a query content And an access unit. The data management search unit passes the encrypted program received from the data relay server or the encryption program server to the data access unit when a part of the search condition indicated by the received query is encrypted. In this case, the data access unit reads out the stored data having the attribute corresponding to the encrypted search condition while encrypting it, thereby detecting the match with the search condition by encrypted data matching.
[0023]
FIG. 1 shows an embodiment of a computer network system according to the present invention.
In FIG. 1, client computers 10 (10A and 10B) are connected to a data relay server 100-1 via a network 21. The data relay server 100-1 is connected to another data relay server 100-2 that cooperates with each other via the network 22, and these data relay servers are connected to the BD server 11 via the network 23. Yes. Similarly to the data relay server 100-1, the data relay server 100-2 is connected to a plurality of client computers (not shown). The network 21 may be, for example, a local area network (LAN) connected by Ethernet, optical fiber, or FDDI, or a wide area network (WAN) including the Internet that is slower than the LAN.
[0024]
Normally, the user issues a query to the database system using a dedicated program or browser running on the client computer 10 and obtains the result for the above query. Assume that the acquisition destination of the original and final results is the client computer 10.
[0025]
The client computer 10 is, for example, a personal computer such as Hitachi FLORA from Hitachi, Ltd., an arbitrary computer system such as Hitachi 3500 workstation from Hitachi, Ltd., or a mobile terminal such as Persona from Hitachi, Ltd., or an inquiry interface. You can also use a mobile phone with
[0026]
Further, the data relay servers 100-1 and 100-2 to which the client computer is connected and the DB server 119 that provides the information providing service are configured by an arbitrary computer system such as Hitachi 3500 workstation of Hitachi, Ltd. The Further, the data management search unit 124 that operates for the information providing service on the DB server 119 is a general-purpose database management system such as HiRDB of Hitachi, Ltd., Oracle8 of Oracle, or DB2 of IBM. (DBMS) products can be used.
[0027]
The network 22 connecting the data relay servers 100-1 and 100-2 and the network 23 connecting the data relay server and the DB server 119 are, for example, a local area network (LAN) connected by Ethernet, optical fiber, or FDDI. Or a wide area network (WAN) including the Internet, which is slower than a LAN.
[0028]
Here, the networks 21, 22, and 23 are networks independent of each other, but they may be the same network. Two client computers are connected to the data relay server 100-1, but the number of client computers is arbitrary. The number of data relay servers connected to the network 22 is also arbitrary.
[0029]
In the present embodiment, the client computer considers the case where it is not possible to equip the extra processing capacity due to the limitation of the storage device capacity, the calculation capacity or the battery capacity, such as a small portable terminal or a mobile phone. Although the data relay server is arranged between the computer and the DB server, a part or all of the functions of the data relay server described below may be provided in the client computer.
[0030]
In the present invention, the inquiry message 103 issued from the client 10A (or 10B) is received by the data relay server 100-1, and after encrypting a part of the search condition, it is sent to the DB server 119 as an encrypted inquiry 115. Transferred. At this time, the data relay server 100-1 generates the encryption program 116 as necessary, and transfers it to the DB server 119 together with the encryption query 115.
[0031]
The DB server 119 includes a network interface 120 connected to the network 23, a data management search unit 124, and a database 126. The DB server 119 performs data search in response to the query 115 and relays a response message 118 indicating the search result. It transmits to the server 100-1. The data relay server 100-1 performs predetermined processing on the search result indicated by the response message 118, and transmits it to the requesting client computer 10A as the search result 104 corresponding to the query 103.
[0032]
FIG. 2 is a block diagram showing the detailed configuration of the data relay server 100-1, and FIG. 3 shows the contents of the inquiry message 103.
The inquiry message 103 issued from the client computer includes a client ID 11, a security priority level 12, and an inquiry content 13 in the data part, and predetermined header information determined by the communication protocol of the network 21 is added to the data part. It has become.
[0033]
The inquiry content 13 includes, for example, an attribute (data item name) 13S of data to be selected from the database, a file name 13F to be accessed, and a search condition 13W. The search condition 13W includes a plurality of definitions 13w-1 to 13W-n for specifying a data entry to be searched, and secret displays 13E-1 to 13E-n prepared corresponding to the definitions.
[0034]
The query 103 issued by the client computer 10A is received by the network interface 101, analyzed by the query analysis unit 106, and it is determined whether or not the search processing is possible with the accumulated data in the cache database 128 provided in the data relay server 100-1. The For the analysis and determination, for example, a method using a partial replica disclosed in Japanese Patent Application Laid-Open No. 01-109758 (Japanese Patent Application No. 11-285164) may be applied.
[0035]
If the stored data in the cache database 128 can be searched, the search unit 113 searches the cache database 128 for data that meets the search conditions. The search result is edited into a response message by the search result processing unit 111 and transmitted to the requesting client computer via the network interface 101. When there is no cache database in the data relay server 100-1 or when it is determined that the query cannot be answered with the stored data in the cache database, the query message 103 is sent to the query conversion unit 107.
[0036]
The operation of the inquiry conversion unit 107 will be described with reference to the flowchart of FIG.
After receiving the inquiry (step 602), the inquiry conversion unit 107 determines whether to perform inquiry connection (step 603). Query concatenation means processing to concatenate multiple queries and convert them into a single query in order to conceal the contents of the query. Issued from different client computers as well as queries issued from the same client computer Inquired queries are also subject to concatenation.
[0037]
For example, the data provided by the information providing system on the DB server 119 is the customer's savings amount, and a deposit account is registered in the database 126 corresponding to the customer ID 802 as shown in FIG. It is assumed that a saving balance table 801 indicating a bank branch name 803 and a saving amount 804 is stored.
[0038]
Assume that a query Q1 (805) shown in FIG. 7B is issued from the client computer 10A and a query Q2 (806) shown in FIG. 7C is issued from the client computer 10B. In this case, the concatenation inquiry between Q1 and Q2 is, for example, {customer ID, branch, savings amount} that is the selection target item (attribute) of Q1, and the selection target item of Q2, as indicated by 807 in FIG. 7D. {Customer ID, savings} is the union of {customer ID, branch, savings}, and the search condition for query Q1 {savings> = 1,000,000} and the search for query Q2 {savings <= The search condition is a logical sum of 10,000}. Whether or not to perform inquiry connection is determined by whether or not another inquiry message that can be connected has been received.
[0039]
After determining whether or not query connection is necessary, it is determined whether or not query distribution is performed (steps 604 and 605). The query distribution is a plurality of data relay servers that divide one query into a plurality of queries and cooperate with each other in order to hide the relationship between the query issuing user and the query contents from the data providing system on the DB server 119 side. This means that an inquiry is transmitted from the database to the DB server 119.
[0040]
For example, it is assumed that the connection query 807 shown in FIG. 7D is a distribution target query, and the data relay server 100-2 transfers the distribution query message to the DB server 119 in cooperation with the data relay server 100-1. To do.
In this case, for example, the query 807 is divided into a distribution query DQ1 (808) shown in FIG. 7E and a distribution query DQ2 (809) shown in FIG. 7F, and the distribution query DQ1 is a data relay server. 100-1 is transmitted to the DB server 119, and the distribution inquiry DQ2 is transmitted to the DB server 119 via the data relay server 100-2.
[0041]
In this way, among the search results for the query 807, the record for branch = Shinjuku is received by the data relay server 100-1 as a response to the distribution query DQ1, and the other records are for the distribution query DQ2. The response is received by the data relay server 100-2 and transferred to the data relay server 100-1.
As described above, by dividing one query into a plurality of distributed queries, it is possible to hide the search condition and issuer indicated by the query 807 from the information providing system operating on the DB server 119.
[0042]
Queries to be distributed can be pre-concatenation queries. The necessity of query distribution is determined by the security priority 12 of the received inquiry message 103. If the security priority 12 does not instruct the confidentiality of the query, the query distribution is not performed.
[0043]
In the query conversion unit 107, when both query concatenation and query distribution are performed (the determination results in steps 603 and 604 are Yes), a concatenation / distribution query is generated (step 607), and the search management table 114 shown in FIG. After registering a new entry (step 610), the query conversion process is terminated.
[0044]
If query concatenation is performed but query distribution is not performed (No in step 604), a concatenated query is generated (step 606), and then step 610 is executed. When query connection is not performed (No in Step 603) and only query distribution is performed (Yes in Step 605), a distribution query is generated (Step 608), and then Step 610 is executed. If neither query concatenation nor query distribution is performed (No in step 605), step 610 is executed without performing query conversion.
[0045]
In the search management table 114, as shown in FIG. 5, a plurality of entries EN-1, EN-2,... Corresponding to the inquiry message received or transmitted by the data relay server 100-1 are registered. Is done. Each entry includes a client ID 1141, original query content 1142, converted query content 1143, a conversion type 1144 indicating the type of query conversion, and a search definition encrypted by the encrypted query generation unit 108 to be described later. A 1: 1 conversion flag 1145 indicating whether or not the relationship with the original search definition is a 1: 1 relationship.
[0046]
When the two inquiry messages M1 and M2 are connected, the entry EN-1 corresponding to the message M1 and the entry EN-2 corresponding to the message M2 include the same contents in the field 1143. When the contents of one inquiry message M1 are distributed to the two messages m1 and m2, two entries EN-1 and EN-2 including the same contents in the field 1142 are generated, and the field 1143 of the entry EN-1 is generated. Is set in message m1, and message m2 is set in field 1143 of entry EN-2.
[0047]
When a distribution inquiry message is received from another data relay server 100-2, for example, the client ID included in the received message and the address of the transmission source (data relay server 100-2) included in the header of the received message The relationship is stored in a transfer message management table (not shown).
[0048]
Returning to FIG. 2, the query processed by the query conversion unit 107 is transferred to the encrypted query generation unit 108, and a part of the query content is encrypted. When a new encryption method is used for the DB server for encryption of the inquiry content, the encryption program generation unit 109 generates an encryption program corresponding to the encryption method. The encrypted inquiry and the encrypted program are edited by the inquiry message generation unit 110 into an encrypted inquiry message addressed to the DB server 119. The encryption inquiry message is transmitted to the network 23 via the network interface unit 112 and received by the DB server 119.
[0049]
The operations of the encryption query generation unit 108 and the encryption program generation unit 109 will be described with reference to FIGS. 8, 9, and 10. FIG.
As shown in FIG. 8, when the inquiry message is received from the query conversion unit 107 (step 402), the encrypted query generation unit 108 determines whether or not a concealment target item exists in the query condition (step 403). ). The presence / absence of a concealment target item can be determined by checking the concealment displays 13E-1 to 13E-n provided for each search definition in the inquiry message 103 of FIG. 3 received from the client 10 (10A, 10B).
[0050]
If the concealment target item does not exist, the process of the encryption query generation unit 108 is terminated without performing the encryption of the query and the generation of the encryption program. When there is a concealment target item, the data indicated by the condition definition 13W-i specified by the concealment display 13E-i is encrypted according to a predetermined encryption function fe (), and includes the encrypted data and the encryption function. An encrypted query is generated (step 404).
[0051]
For example, the DB server 119 holds the gene sequence table 901 shown in FIG. 9A in the database 126, and the encrypted query generation unit 108 has an array structure = as shown in FIG. 9B. Assume that an inquiry message Q3 (905) including “atcg” as a search condition is received. The array structure = 'atcg' is described in the first condition definition 13W-1 of the inquiry message Q3. If the concealment display 13E-1 instructs concealment of the condition definition 13W-1, the data “atcg” is a concealment target item.
[0052]
In this case, in step 404, the data “atcg” designated as the concealment target item is encrypted with a predetermined encryption function fe (), and for example, as shown in FIG. 9C, the array structure = “@ 2aSzE "Is used as a search condition, and an encryption query Q4 (906) is generated by adding" array structure "as a new data item to the acquisition target data specified by the SELECT statement. This is because the search result received from the DB server when the data value “atcg” before encryption and the data value “@ 2aSzE” after encryption are not guaranteed to have a 1: 1 relationship. This is because the data relay server side needs to search again using the array structure = “atcg” as a search condition.
[0053]
When the search condition to be concealed includes “=” (equal sign condition) or “≠” (non-equal sign), the original data value can be converted with an arbitrary encryption function. However, when the search condition that is the concealment target includes an inequality sign such as “<”, “≦”, “>”, or “≧”, it is necessary to use an encryption method that can maintain a magnitude relationship.
[0054]
If the search condition is encrypted (encryption query is generated), it is determined whether or not an encryption program needs to be generated (step 405). When the data relay server 100-1 uses an existing encryption program registered in the encryption program server 129, or when the encryption program used in step 404 has already been notified to the DB server side Therefore, it is not necessary to generate an encryption program. In this case, the process proceeds to step 407 without generating an encryption program.
[0055]
If it is necessary to notify the DB server of the encryption program, the encryption program is generated (step 406) in cooperation with the encryption program generation unit 109, and then step 407 is executed. In step 407, the 1: 1 conversion flag field 1145 of the search management table 114 has a 1: 1 conversion, that is, whether the data before encryption and the data after encryption have a 1: 1 relationship. A flag value indicating that is recorded.
[0056]
The encryption program will be described with reference to FIG.
When the concealment target item (concealment target attribute) is Tc, the function used for encryption is represented by fe (), the data value before encryption is represented by vb, and the data value after encryption is represented by va, conversion of query conditions by encryption Is schematically shown in FIG. At this time, the encryption program generated by the encryption program generation unit 109 is used by the data access unit 125 included in the data management search unit (DBMS) 124 of the DB server 119. The encryption function fe () Is a program for performing data conversion processing corresponding to the above.
[0057]
When the DBMS 124 has a plug-in interface, such as HiRDB of Hitachi, Ltd., the encryption program may be a program that satisfies the interface specifications. In addition, when the DBMS has an execution engine of a programming language in the DBMS, a program described in the programming language may be used.
[0058]
Returning to FIG. 2, the encrypted query generation unit 108 encrypts a part of the search condition, and converts the query message in which the acquisition target data item is changed as necessary into a function identifier (encryption program) applied to the encryption. ID) and the DB inquiry message generation unit 110. When the search condition is not encrypted, the inquiry message received from the inquiry conversion unit 107 is passed to the DB inquiry message generation unit 110. When the encryption program is generated, the encryption program is transferred from the encryption program generation unit 109 to the DB inquiry message generation unit 110.
[0059]
Based on the received data from the encrypted query generation unit 108, the DB query message generation unit 110, for example, as shown in FIG. An inquiry message (DB inquiry message) 115 addressed to the DB server 119 including the activation function identifier 15 is created and sent to the DB server 119 via the network interface unit 112. When the encryption program is generated, the encryption program 16 is added to the DB inquiry message 115.
[0060]
When the received message from the encrypted query generation unit 108 has the same client ID as that of the immediately preceding received message, the DB query message generation unit 110 determines that this is a message for distribution inquiry, and the cooperation specified in advance. The data is transmitted to a server, for example, the data relay server 100-2.
[0061]
Next, the inquiry process performed by the DB server 119 will be described with reference to FIGS.
In the DB server 119, the DB inquiry message 115 received by the network interface unit 120 is analyzed by the DBMS 124 (step 502). If the DB inquiry message includes the encryption program 16, this is sent to the data access unit 125. Set.
[0062]
The DBMS 124 checks whether the data corresponding to the encrypted search condition in the DB inquiry message 115 exists on the DB server 119 side (database 126) as encrypted data that can be collated with the search condition. (Step 505).
[0063]
When the encrypted data already exists, the DBMS 124 instructs the data access unit 125 to read the concealment target item indicated by the search condition of the DB inquiry message, and the DB inquiry message is transmitted using the encrypted data. The requested data retrieval process is executed (step 506).
When there is no encrypted data, the DBMS 124 designates the concealment target item and the encryption function identifier 15 indicated by the search condition of the DB inquiry message, and instructs the data access unit 125 to read the data entry.
[0064]
The data access unit 125 encrypts the concealment target item in the read data from the database 126 with the encryption program corresponding to the encryption function identifier 15 and outputs the other data items in a normal data format. . The DBMS 208 determines the data read from the database according to the search condition of the inquiry message, and searches for a data record that matches the search condition while comparing the encrypted data with the search condition for the item to be concealed (step 507).
[0065]
For example, when the inquiry message 115 includes the encryption query Q4 and the encryption program fe1 () shown in FIG. 9C as search conditions, the DBMS 124 decrypts the encrypted data included in the query Q4. When the sequence structure 904 is read from the gene sequence table 901 stored in the database 126 without executing the search process, the data access unit 125 outputs the stored data of the array structure in a form encrypted with the function fe1 (), A record that matches the array structure indicated by the search condition = '@ 2aSzE' is searched.
[0066]
The DBMS 208 generates a response message including the search result (step 508), sends the response message to the data relay server 100-1 or 100-2 that is the transmission source of the inquiry message 115 (step 509), and performs inquiry processing. Exit. The response message generated by the DBMS 124 is transferred to the data relay server via the network interface 120 via the network interface 120 as indicated by symbols 18 and 118 in FIG.
[0067]
Note that the response message may be generated in a form in which data items that are not encrypted in the data list included in the search result are automatically encrypted by the DBMS 124. In the embodiment, the search condition and the encryption program are simultaneously transmitted by the inquiry message 115. However, the inquiry message 115 transmits only the search condition and the function identifier applied to the encryption, and the DB server 119 side transmits the above function. It is checked whether or not the encryption program corresponding to the identifier is already held, and when the necessary encryption program is not held, the source server 100-1 or 100-2 of the inquiry message 115 from the DB server 119 is checked. The transmission of the encryption program may be requested.
[0068]
In the data relay server 100-1, the search result processing unit 111 processes the response message (search result) received via the network interface 112.
FIG. 12 shows a search result processing routine 701 executed by the search result processing unit 111.
[0069]
The search result processing unit 111 refers to the transfer message management table based on the client ID included in the received response message, and determines whether the response message is an answer to an inquiry requested from another cooperative server ( Step 702). If the received response message is a response message to an inquiry requested from another cooperative server, the response message is transferred to the address of the data relay server specified by the transfer message management table (step 703). finish.
[0070]
If the received response message is an answer to the query generated by the data relay server 100-1, the search management table 114 shown in FIG. 5 is referred to and searched based on the client ID included in the received response message. It is checked whether or not an encrypted data item is included in the result (step 704). If the encrypted data item is included, the encrypted data item is decrypted (step 705).
[0071]
Next, with reference to the search management table 114, it is checked whether or not the reception response message is an answer to the concatenation query (step 706). If the received response message is an answer to the concatenation query, a re-search is executed by applying the search condition before the concatenation conversion indicated by the original query content 1142 of the search management table 114, and issued from each client computer. A correct search result for the query is generated (step 710). Thereafter, a response message addressed to the requesting client computer included in the re-search result is created (step 712), and the response message is transmitted to the network 21 via the network interface 101 (step 713).
[0072]
If the reception response message is not an answer to the concatenation inquiry, it is checked whether or not the reception response message is an answer to the distribution inquiry (step 707). If the received response message is an answer to the distribution query, it is checked whether or not all the answers (search results) to the distribution query have been prepared (step 708). The search is executed again by applying the search condition before distribution conversion indicated by the original inquiry content 1142 of the management table 114. If all the answers to the distribution query are not available, the search result is stored in the temporary storage area of the distribution query search result prepared on the work memory (step 709), and this routine is terminated. The check performed in step 708 is performed with reference to the temporary storage area of the distribution query search result.
[0073]
If the determination result in step 707 is NO, it means that the search result is an answer to a query for which the conversion processing by the query conversion unit 107 has not been performed. In this case, it is checked whether or not the encryption function applied to the query search condition is for 1: 1 conversion (step 711).
[0074]
If the encryption function is not for 1: 1 conversion, it means that two or more data with different values become the same value data by encryption, and the search obtained with the encrypted search condition The result is a larger solution set than the search result obtained with the search condition not encrypted. In this case, the search result notified from the DB server is applied to the search condition before encryption indicated by the original query content 1142 of the search management table 114 to execute the search again (step 710), and the client computer Generate correct search results for queries issued from.
[0075]
If the encryption function is for 1: 1 conversion, a response message addressed to the requesting client computer is created according to the search result notified from the DB server (step 712), and the response message is sent to the network 21. Transmit (step 713).
[0076]
As is clear from the above embodiments, according to the present invention, it is possible to provide an information providing service that highly guarantees secrecy of confidential conditions included in a user inquiry. Further, according to the present invention, the user of each client computer can receive the information providing service while concealing the condition he / she wants to protect, and can protect the confidentiality of the user from the malicious DB server administrator. it can.
[0077]
【The invention's effect】
The data relay server according to the present invention can be applied to, for example, a query mediation service method that selectively transfers a query from a user only to an information providing server that can guarantee confidentiality of confidential conditions included in the query. In addition, the data relay server of the present invention collects service billing information from a plurality of information providing servers, pays the charges together, distributes the billing information for each client, and bills each client. It can also be applied to information services.
[Brief description of the drawings]
FIG. 1 is a diagram showing an example of the overall configuration of a database access system of the present invention.
FIG. 2 is a block diagram showing the configuration of the data relay server 100-1 shown in FIG.
FIG. 3 is a diagram showing an example of an inquiry message transmitted from the client computer 10 (10A, 10B) shown in FIG. 1 to the data relay server 100-1.
4 is a diagram showing an example of an inquiry message transmitted from the data relay server 100-1 shown in FIG. 1 to the DB server 119. FIG.
FIG. 5 is a diagram showing a configuration of a search management table provided in the data relay server 100-1.
FIG. 6 is a flowchart showing the function of the query conversion unit 107 of the data relay server 100-1.
FIG. 7 shows an example (A) of the contents of a database included in the DB server 119, an example (B, C) of two queries Q1 and Q2 for the database, and a linked query generated by the query conversion unit 107. The figure which shows one example (E) and one example (E, F) of a distribution inquiry.
FIG. 8 is a flowchart showing the function of the encryption query generation unit 108 of the data relay server 100-1.
FIG. 9 is a diagram showing an example (A) of database contents, an example (B) of a query Q3 for the database, and an example (C) of an encrypted query obtained from the query Q3.
FIG. 10 is a diagram for explaining an encryption program generated by the encryption program generation unit 109 of the data relay server 100-1.
FIG. 11 is a flowchart showing an example of inquiry processing executed by the DB server 119;
FIG. 12 is a flowchart showing the function of a search result processing unit 111 of the data relay server 100-1.
FIG. 13 is a diagram for explaining a conventional data search system using an encrypted query.
[Explanation of symbols]
10: client computer, 21, 22, 23: network,
100: Data relay server 101, 112: Network interface
106: Query analysis unit, 107: Query conversion unit, 108: Encryption query generation unit,
109: Encryption program generation unit, 100: DB inquiry message generation unit,
111: Search result processing unit 113: Search unit 114: Search management table
119: DB server, 120: network interface,
124: Data management search unit, 129: Encryption program server.

Claims (11)

通信ネットワークから、検索条件の一部が暗号化された問合せメッセージを受信し、該問合せメッセージが示す検索条件に従って情報検索を実行するデータベースサーバと、クライアント計算機から受信した問合せ要求が示す検索条件の一部を暗号化し、上記データベースサーバ宛の問合せメッセージとして、上記通信ネットワークに送信するデータ中継サーバとからなるデータ検索システムにおいて、
上記データ中継サーバが、
クライアント計算機から、データ項目名とデータ値との関係式を示す少なくとも1組の検索条件定義で検索条件を指定し、上記検索条件定義に付随した秘匿表示で検索条件定義の暗号化要否を指定した問合せ要求を受信し、上記秘匿表示に応じて、特定の検索条件定義に含まれる特定のデータ値を暗号化するための第1手段と、
検索条件の一部に、上記第1手段で暗号化され検索条件定義を含み、検索条件定義毎に暗号化の有無を示す秘匿表示を含む上記データベースサーバ宛の問合せメッセージを生成するための第2手段と、
上記第2手段で生成された問合せメッセージを上記通信ネットワークに送信するための第3手段と、
上記通信ネットワークを介して、上記データベースサーバから、上記問合せメッセージが示す検索条件に適合したデータを検索結果として受信するための第4手段と、
上記第4手段で受信された検索結果に基づいてクライアント計算機宛の応答メッセージを生成し、問合せ要求元のクライアントに転送するための第5手段とを備え、
上記データベースサーバが、
サービス情報となるデータを蓄積したデータベースと、
上記問合せメッセージが示す秘匿表示に基いて、検索条件定義が暗号化されているか否かを判定し、暗号化されていない検索条件定義については、該検索条件定義が示す関係式に従って上記データベースの蓄積データを判定し、暗号化されたデータ値を含む検索条件定義については、上記データベースから該検索条件定義が示す特定のデータ項目名のデータを読み出し、これを暗号化して上記検索条件定義が示す関係式と照合することによって、上記検索条件に適合したサービス情報を検索するための検索手段と、
上記問合せメッセージの送信元宛に、検索されたデータを含むメッセージを送信するための手段とを備えることを特徴とするデータ検索システム
One of the search conditions indicated by the query request received from the database server that receives an inquiry message in which a part of the search condition is encrypted from the communication network and executes information search according to the search condition indicated by the inquiry message. In a data retrieval system consisting of a data relay server that encrypts a part and sends it to the communication network as an inquiry message addressed to the database server .
The data relay server is
From the client computer , specify the search condition with at least one set of search condition definitions that indicate the relational expression between the data item name and the data value, and specify whether the search condition definition needs to be encrypted or not in a secret display attached to the search condition definition. A first means for encrypting a specific data value included in the specific search condition definition in response to the confidential display ,
A part of the search condition includes a search condition definition encrypted by the first means, and a query message for generating a query message addressed to the database server including a secret display indicating the presence or absence of encryption for each search condition definition . Two means,
Third means for transmitting the inquiry message generated by the second means to the communication network;
A fourth means for receiving, as a search result, data that matches the search condition indicated by the inquiry message from the database server via the communication network;
And a fifth means for generating a response message addressed to the client computer based on the search result received by the fourth means and transferring it to the client of the inquiry request source ,
The database server is
A database that stores data that is service information;
Based on the confidential display indicated by the inquiry message, it is determined whether the search condition definition is encrypted. For the search condition definition that is not encrypted, the database is stored according to the relational expression indicated by the search condition definition. For the search condition definition that determines the data and includes the encrypted data value, the data of the specific data item name indicated by the search condition definition is read from the database, and is encrypted and the relationship indicated by the search condition definition A search means for searching for service information that matches the search conditions by checking against an expression;
A data search system comprising: means for transmitting a message including the searched data to the transmission source of the inquiry message .
前記クライアント計算機から受信した問合せ要求が、検索結果として回答すべきデータ項目を指定しており、前記データ中継サーバの前記第2手段で生成される前記データベースサーバ宛の問合せメッセージが、前記クライアント計算機からの問合せ要求で指定されたデータ項目と、一部が暗号化された前記検索条件の他に、前記検索条件定義の暗号化に適用された暗号化プログラムまたは暗号化関数の識別情報を含み
前記データベースサーバの前記検索手段が、上記識別情報で指定された暗号化プログラムまたは暗号化関数を適用して、前記データベースから読み出された特定のデータ項目名のデータを暗号化することを特徴とする請求項1に記載のデータ検索システム
The inquiry request received from the client computer specifies a data item to be answered as a search result, and an inquiry message addressed to the database server generated by the second means of the data relay server is sent from the client computer. In addition to the data item specified in the query request and the search condition partially encrypted, the identification information of the encryption program or encryption function applied to the encryption of the search condition definition ,
The search means of the database server applies the encryption program or encryption function specified by the identification information, and encrypts data of a specific data item name read from the database. The data search system according to claim 1.
前記データ中継サーバの前記第2手段で生成された前記データベースサーバ宛の問合せメッセージが、前記検索条件定義の暗号化に適用された暗号化プログラムを含み、
前記データベースサーバの前記検索手段が、上記暗号化プログラムを適用して、前記データベースから読み出されたデータを暗号化することを特徴とする請求項に記載のデータ検索システム
The inquiry message addressed to the database server generated by the second means of the data relay server includes an encryption program applied to encryption of the search condition definition ,
The data search system according to claim 2 , wherein the search unit of the database server encrypts data read from the database by applying the encryption program .
前記データ中継サーバの前記第5手段が、前記第4手段で受信された検索結果を前記クライアント計算機から受信した問合せ要求に含まれる検索条件で再検索するための手段を有し、
前記クライアント計算機宛の応答メッセージが、上記再検索の結果を示すことを特徴とする請求項1〜請求項3の何れかに記載のデータ検索システム。
The fifth means of the data relay server has means for re-searching the search result received by the fourth means with a search condition included in the query request received from the client computer;
4. The data search system according to claim 1, wherein a response message addressed to the client computer indicates the result of the re-search.
前記データ中継サーバが、
異なるクライアント計算機から、前記検索条件と検索結果として回答すべき選択データ項目とを指定した問合せ要求を受信し、受信した少なくとも2つの問合せ要求に含まれる選択データ項目の和集合を新たな選択データ項目とし、上記2つの問合せ要求が示す検索条件定義の論理和を新たな検索条件として、上記2つの問合せ要求を1つの連結問合せに変換し、該連結問合せを前記第1手段に供給するための第6手段を有し、
前記第5手段が、前記データベースサーバから受信した上記連結問合せに対する検索結果の中から、上記各クライアント計算機が発行した元の問合せが示す検索条件に適合したデータを再検索し、各クライアント計算機宛の応答メッセージを生成することを特徴とする請求項1〜請求項4の何れかに記載のデータ検索システム。
The data relay server is
A query request specifying the search condition and a selection data item to be answered as a search result is received from a different client computer, and a union of the selection data items included in the received at least two query requests is a new selection data item. The second query request is converted into one linked query using the logical sum of the search condition definitions indicated by the two query requests as a new search condition, and the linked query is supplied to the first means. 6 means,
The fifth means re-searches the data matching the search condition indicated by the original query issued by each client computer from the search results for the linked query received from the database server, and sends the data to each client computer. The data search system according to any one of claims 1 to 4, wherein a response message is generated.
前記データ中継サーバが、
クライアント計算機から、前記検索条件として複数組の検索条件定義を含み、検索結果として回答すべき選択データ項目を指定した問合せ要求を受信し、該問合せ要求が示す上記複数組の検索条件定義を第1、第2の検索条件に分割することによって、上記選択データ項目と上記第1の検索条件と含む第1分配問合せと、上記選択データ項目と上記第2の検索条件と含む第2分配問合せを生成し、該第1、第2の分配問合せを前記第1手段に供給するための第6手段を有し、
前記第2手段が、前記第1手段で検索条件が部分的に暗号化された第1、第2の分配問合せのうちの1つを前記データベースサーバ宛の問合せメッセージに変換し、他方の分配問合せを予め指定された他のデータ中継サーバ宛の問合せメッセージに変換し、
前記第5手段が、前記データベースサーバから受信した上記一方の分配問合せに対する検索結果と、上記他のデータ中継サーバから受信した上記他方の分配問合せに対する検索結果の中から、上記クライアント端末が発行した元の問合せが示す検索条件に適合したデータを再検索し、クライアント端末宛の応答メッセージを生成することを特徴とする請求項1〜請求項4の何れかに記載のデータ検索システム。
The data relay server is
A query request including a plurality of sets of search condition definitions as the search conditions and specifying a selection data item to be answered as a search result is received from a client computer, and the plurality of sets of search condition definitions indicated by the query request are first , Generating a first distribution query including the selection data item and the first search condition, and a second distribution query including the selection data item and the second search condition by dividing into the second search condition And sixth means for supplying the first and second distribution queries to the first means,
The second means converts one of the first and second distribution queries in which the search condition is partially encrypted by the first means into an inquiry message addressed to the database server, and the other distribution query. Is converted into an inquiry message addressed to another data relay server specified in advance,
A source issued by the client terminal from the search result for the one distribution query received from the database server and the search result for the other distribution query received from the other data relay server by the fifth means. The data search system according to any one of claims 1 to 4, wherein the data that meets the search condition indicated by the query is re-searched to generate a response message addressed to the client terminal.
クライアント計算機から受信したデータベースの問合せ要求に従って、通信ネットワークを介して、データベースサーバをアクセスするデータ中継サーバにおいて、
クライアント計算機から、データ項目名とデータ値との関係式を示す少なくとも1組の検索条件定義で検索条件を指定し、上記検索条件定義に付随した秘匿表示で検索条件定義の暗号化要否を指定した問合せ要求を受信し、上記秘匿表示に応じて、該問合せ要求に含まれる特定の検索条件定義が指定するデータ値を暗号化するための第1手段と、
検索条件の一部に、上記第1手段によって一部が暗号化された検索条件定義を含み、検索条件定義毎に暗号化の有無を示す秘匿表示を含む上記データベースサーバ宛の問合せメッセージを生成するための第2手段と、
上記第2手段で生成された問合せメッセージを上記通信ネットワークに送信するための第3手段と、
上記通信ネットワークを介して、上記データベースサーバから、上記問合せメッセージが示す検索条件に従って検索され、上記暗号化された検索条件定義部分に関しては、上記検索条件定義が示す特定のデータ項目名をもつ暗号化されたデータ値と、上記データベースサーバから読み出された上記データ項目名をもつデータの暗号化された値との間のマッチングによって選択されたデータを検索結果として受信するための第4手段と、
上記第4手段で受信された検索結果に基づいてクライアント計算機宛の応答メッセージを生成し、問合せ要求元のクライアントに転送するための第5手段とを有することを特徴とするデータ中継サーバ。
In the data relay server that accesses the database server via the communication network according to the database query request received from the client computer,
From the client computer, specify the search condition with at least one set of search condition definitions that indicate the relational expression between the data item name and the data value, and specify whether the search condition definition needs to be encrypted or not in a secret display attached to the search condition definition. A first means for encrypting a data value designated by a specific search condition definition included in the inquiry request in response to the confidential display,
A query message addressed to the database server including a search condition definition partially encrypted by the first means and including a secret display indicating the presence or absence of encryption is generated for each search condition definition. A second means for
Third means for transmitting the inquiry message generated by the second means to the communication network;
The database server is searched according to the search condition indicated by the inquiry message via the communication network, and the encrypted search condition definition part is encrypted with a specific data item name indicated by the search condition definition. A fourth means for receiving, as a search result, data selected by matching between the data value obtained and the encrypted value of the data having the data item name read from the database server;
5. A data relay server comprising: fifth means for generating a response message addressed to the client computer based on the search result received by the fourth means and transferring the response message to the client that has made the inquiry request.
通信ネットワークから検索条件の一部が暗号化された問合せメッセージを受信し、該問合せメッセージが示す検索条件に従って情報検索を実行するデータベースサーバであって、
サービス情報となるデータを蓄積したデータベースと、上記データベースから、上記問合せメッセージが指定する検索条件に適合したデータを検索するデータベース管理システムとからなり、
通信ネットワークから受信する問合せメッセージが、データ項目名とデータ値との関係式を示す少なくとも1組の検索条件定義で検索条件を指定し、上記検索条件定義毎に暗号化の有無を示す秘匿表示を含んでおり、
上記データベース管理システムが、
上記問合せメッセージが示す秘匿情報に基いて、検索条件定義が暗号化されているか否かを判定し、暗号化されていない検索条件定義については、該検索条件定義が示す関係式に従って上記データベースの蓄積データを判定し、暗号化されたデータ値を含む検索条件定義については、上記データベースから該検索条件定義が示す特定のデータ項目名のデータを読み出し、これを暗号化して上記検索条件定義が示す関係式と照合することによって、上記検索条件に適合したサービス情報を検索するための検索手段と、
上記問合せメッセージの送信元宛に、上記検索手段で検索されたデータを含むメッセージを送信するための手段とを備えることを特徴とするデータベースサーバ。
A database server that receives an inquiry message in which a part of a search condition is encrypted from a communication network , and performs an information search according to the search condition indicated by the inquiry message,
A database storing the the service information data, from the database consists of a database management system to retrieve data that matches the search condition the inquiry message specifies,
An inquiry message received from the communication network specifies a search condition with at least one set of search condition definitions indicating a relational expression between a data item name and a data value, and displays a secret display indicating the presence or absence of encryption for each search condition definition. Including
The database management system is
Based on the confidential information indicated by the inquiry message, it is determined whether or not the search condition definition is encrypted, and the search condition definition that is not encrypted is stored in the database according to the relational expression indicated by the search condition definition. For the search condition definition that determines the data and includes the encrypted data value, the data of the specific data item name indicated by the search condition definition is read from the database, and is encrypted and the relationship indicated by the search condition definition A search means for searching for service information that matches the search conditions by checking against an expression ;
A database server, comprising: means for transmitting a message including data searched by the search means to a transmission source of the inquiry message.
前記問合せメッセージが、前記検索条件定義の暗号化に適用された暗号化プログラムまたは暗号化関数の識別情報を含み、
前記検索手段が、前記データベースから読み出された特定のデータ項目名のデータを上記識別情報で指定された暗号化プログラムまたは暗号化関数によって暗号化することを特徴とする請求項8に記載のデータベースサーバ。
The inquiry message includes identification information of an encryption program or an encryption function applied to encryption of the search condition definition ;
9. The database according to claim 8, wherein the search means encrypts data of a specific data item name read from the database using an encryption program or an encryption function specified by the identification information. server.
クライアントからデータ中継サーバに、データ項目名とデータ値との関係式を示す少なくとも1組の検索条件定義で検索条件を指定し、上記検索条件定義に付随した秘匿表示で検索条件定義の暗号化の要否を指定した問合せ要求を送信するステップと、
上記問合せ要求を受信した上記データ中継サーバが、該問合せ要求が示す秘匿表示に応じて、特定の検索条件定義に含まれる特定のデータ値を暗号化し、検索条件定義毎に暗号化の有無を示す秘匿表示を含む、検索条件の少なくとも一部暗号化された問合せ要求に変換するステップと、
上記データ中継サーバからデータベースを備えた情報サーバに、上記少なくとも一部が暗号化された検索条件を含む問合せメッセージを送信するステップと
上記問合せメッセージを受信した上記情報サーバが、該問合せメッセージが示す秘匿情報に基いて、検索条件定義が暗号化されているか否かを判定し、暗号化されていない検索条件定義については、該検索条件定義が示す関係式に従って上記データベースの蓄積データを判定し、暗号化されたデータ値を含む検索条件定義については、上記データベースから該検索条件定義が示す特定のデータ項目名のデータを読み出し、これを暗号化して上記検索条件定義が示す関係式と照合することによって、上記検索条件に適合したサービス情報を検索するステップと、
上記情報サーバから上記データ中継サーバに、検索結果として上記検索条件に適合したサービス情報を送信するステップと
上記データ中継サーバから上記クライアントに、上記情報サーバから受信したサービス情報を送信するステップとからなることを特徴とするデータベースのアクセス方法。
A search condition is specified by at least one set of search condition definitions indicating a relational expression between a data item name and a data value from the client to the data relay server, and the search condition definition is encrypted in a secret display attached to the search condition definition. Sending a query request specifying whether it is necessary; and
The data relay server that has received the inquiry request encrypts a specific data value included in the specific search condition definition according to the confidential display indicated by the inquiry request, and indicates the presence or absence of encryption for each search condition definition. a step including confidential display, at least a part of the search criteria into a query request that is encrypted,
Transmitting an inquiry message including a search condition at least partially encrypted from the data relay server to an information server including a database;
The information server that has received the inquiry message determines whether or not the search condition definition is encrypted based on the confidential information indicated by the inquiry message, and for the search condition definition that is not encrypted, the search The stored data in the database is determined according to the relational expression indicated by the condition definition, and for the search condition definition including the encrypted data value, the data of the specific data item name indicated by the search condition definition is read from the database. Searching service information that matches the search condition by encrypting and comparing with the relational expression indicated by the search condition definition ;
To the data relay server from the information server, and sending the service information conforming to the search conditions as a search result,
A method for accessing a database, comprising: a step of transmitting service information received from the information server to the client from the data relay server .
前記データ中継サーバにおいて、前記情報サーバから受信した検索結果を前記クライアントが指定した検索条件に従って再検索するステップを含み、
上記データ中継サーバから上記クライアントに、上記再検索されたサービス情報が送信されることを特徴とする請求項10に記載のデータベースのアクセス方法。
Re-searching the search result received from the information server according to a search condition designated by the client in the data relay server ,
11. The database access method according to claim 10, wherein the re-searched service information is transmitted from the data relay server to the client .
JP2001321741A 2001-01-26 2001-10-19 Data search system, data relay server, database server, and database access method Expired - Fee Related JP4006214B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001321741A JP4006214B2 (en) 2001-01-26 2001-10-19 Data search system, data relay server, database server, and database access method

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2001017827 2001-01-26
JP2001-17827 2001-01-26
JP2001321741A JP4006214B2 (en) 2001-01-26 2001-10-19 Data search system, data relay server, database server, and database access method

Publications (2)

Publication Number Publication Date
JP2002297606A JP2002297606A (en) 2002-10-11
JP4006214B2 true JP4006214B2 (en) 2007-11-14

Family

ID=26608324

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001321741A Expired - Fee Related JP4006214B2 (en) 2001-01-26 2001-10-19 Data search system, data relay server, database server, and database access method

Country Status (1)

Country Link
JP (1) JP4006214B2 (en)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100365617C (en) * 2003-07-10 2008-01-30 华为技术有限公司 Dosage statistic module and dosage statistic method
US7661141B2 (en) 2004-02-11 2010-02-09 Microsoft Corporation Systems and methods that optimize row level database security
JP4837362B2 (en) * 2005-10-31 2011-12-14 株式会社エヌ・ティ・ティ・データ Data search system, information processing apparatus, data search method, and program.
JP2007226635A (en) * 2006-02-24 2007-09-06 Victor Co Of Japan Ltd Server device and client device of remote desktop system
JP5215996B2 (en) * 2006-05-13 2013-06-19 シーエフピーエイチ, エル.エル.シー. Products and processes for using order data and related data
US8285629B2 (en) 2007-11-15 2012-10-09 Cfph, Llc Trading system products and processes
JP5116593B2 (en) * 2008-07-25 2013-01-09 インターナショナル・ビジネス・マシーンズ・コーポレーション SEARCH DEVICE, SEARCH METHOD, AND SEARCH PROGRAM USING PUBLIC SEARCH ENGINE
JP5306356B2 (en) 2008-08-26 2013-10-02 インターナショナル・ビジネス・マシーンズ・コーポレーション SEARCH DEVICE, SEARCH METHOD, AND SEARCH PROGRAM USING PUBLIC SEARCH ENGINE
US8131738B2 (en) 2008-12-30 2012-03-06 International Business Machines Corporation Search engine service utilizing hash algorithms
JP5471373B2 (en) * 2009-12-02 2014-04-16 日本電気株式会社 Mobile communication terminal system, information search and transmission method and information search and transmission program used in the system
KR101104845B1 (en) * 2010-09-08 2012-01-16 (주)소만사 Safe communication system between database and client using db vpn and the method thereof
EP3745293A1 (en) * 2012-12-13 2020-12-02 Nec Corporation Intermediate server, database query processing method and program
US10887291B2 (en) 2016-12-16 2021-01-05 Amazon Technologies, Inc. Secure data distribution of sensitive data across content delivery networks
US10121199B1 (en) 2017-06-23 2018-11-06 Cfph, Llc Distributed trading network and interface
US11159498B1 (en) 2018-03-21 2021-10-26 Amazon Technologies, Inc. Information security proxy service
US10979403B1 (en) 2018-06-08 2021-04-13 Amazon Technologies, Inc. Cryptographic configuration enforcement
CN110519761B (en) * 2019-08-12 2022-09-09 深圳市优克联新技术有限公司 User identity identification card verification method and device, electronic equipment and storage medium

Also Published As

Publication number Publication date
JP2002297606A (en) 2002-10-11

Similar Documents

Publication Publication Date Title
US7228416B2 (en) Database access method and system capable of concealing the contents of query
JP4006214B2 (en) Data search system, data relay server, database server, and database access method
US7873168B2 (en) Secret information management apparatus and secret information management system
US7801310B1 (en) Nestable skeleton decryption keys for digital rights management
US9497062B1 (en) System and method for secure storage, transfer and retrieval of content addressable information
US7694134B2 (en) System and method for encrypting data without regard to application
US7797342B2 (en) Database system providing encrypted column support for applications
US6135646A (en) System for uniquely and persistently identifying, managing, and tracking digital objects
US6539093B1 (en) Key ring organizer for an electronic business using public key infrastructure
JP4685782B2 (en) Method and apparatus for encrypting database columns
US9600677B2 (en) Database apparatus, method, and program
US20160217274A1 (en) System for dynamically encrypting content for secure internet commerce and providing embedded fulfillment software
US20030079120A1 (en) Web environment access control
US20140156533A1 (en) System for dynamically encrypting information for secure internet commerce and providing embedded fulfillment software
US20080133935A1 (en) Structure Preserving Database Encryption Method and System
US7356847B2 (en) System for dynamically encrypting content for secure internet commerce and providing embedded fulfillment software
JPH09179768A (en) File ciphering system and file deciphering system
US7930560B2 (en) Personal information management system, personal information management program, and personal information protecting method
JP2002278970A (en) Document managing system
JP4201556B2 (en) Information processing method and access authority management method in center system
JP5140026B2 (en) Database processing method, database processing program, and encryption apparatus
US20120089495A1 (en) Secure and mediated access for e-services
KR20020067663A (en) Data distribution system
CN106326666A (en) Health record information management service system
JP4594078B2 (en) Personal information management system and personal information management program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041014

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070424

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070625

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20070625

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070731

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070827

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100831

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100831

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110831

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120831

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120831

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130831

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees