(57)【要約】【課題】データの位置によって機密度が不均一であるデータベースに対して、セキュリティ強度と暗号化の処理負荷とのバランスがとれるデータベースシステムを提供すること。【解決手段】地図暗号化装置２は、平文テーブルデータ７１のセル位置ごとに、暗号定義情報７６に記載されている暗号化の要否情報をもとに、そのセル位置のデータ値を暗号化するか否かを決定し、セル位置のデータを暗号化するときには、暗号テーブルデータ７３のセル位置に所定値を格納するとともに、そのセル位置が含まれる行の暗号列７５に平文テーブルデータ７１のセル位置のデータ値を暗号化した結果の暗号値を追加し、セル位置のデータを暗号化しないときには、暗号テーブルデータ７３のセル位置に平文テーブルデータ７１のセル位置のデータ値をコピーする。【選択図】図１
2010224655.tif 000002
【特許請求の範囲】
【請求項１】
データベースに格納される平文テーブルデータを暗号化して暗号テーブルデータを作成する暗号化装置と、前記暗号テーブルデータを復号化して前記平文テーブルデータを取得する復号化装置と、を用いるデータベースシステムによるデータベース処理方法であって、
前記暗号化装置は、
前記平文テーブルデータを記憶手段から読み取り、
前記平文テーブルデータのセル位置に存在するデータ値の暗号化の要否を示す暗号定義情報を記憶手段から読み取り、
前記セル位置とは、前記平文テーブルデータを構成する各行および各列の組み合わせで示され、
前記平文テーブルデータのセル位置ごとに、前記暗号定義情報に記載されている暗号化の要否情報をもとに、そのセル位置のデータ値を暗号化するか否かを決定し、
セル位置のデータを暗号化するときには、前記暗号テーブルデータのセル位置に所定値を格納するとともに、そのセル位置が含まれる行の暗号列に前記平文テーブルデータのセル位置のデータ値を暗号化した結果の暗号値を追加し、
セル位置のデータを暗号化しないときには、前記暗号テーブルデータのセル位置に前記平文テーブルデータのセル位置のデータ値をコピーし、
前記復号化装置は、
前記暗号テーブルデータのセル位置に前記所定値が格納されているときには、そのセル位置が含まれる行の前記暗号列から暗号値を復号化し、復号化に成功したときには、その結果のデータ値でセル位置に格納されている前記所定値を上書きすることを特徴とする
データベース処理方法。
【請求項２】
前記暗号化装置は、セル位置のデータを暗号化するときには、セル位置が含まれる行の前記暗号列に暗号値を追加するとともに、その暗号化処理を記載する前記暗号定義情報を併せて前記暗号列に追加し、
前記復号化装置は、前記暗号列から１つ以上の暗号値を復号化するときに、その暗号列に含まれている前記暗号定義情報を参照して、各暗号値を復号化するか否かを決定することを特徴とする
請求項１に記載のデータベース処理方法。
【請求項３】
前記暗号定義情報は、セル位置ごとの暗号化の要否情報に加えて、暗号化を必要とするときに、その暗号化処理を実行するための暗号化アルゴリズムの種別が併せて記載されており、
前記暗号化装置は、セル位置のデータを暗号化するときには、前記暗号定義情報に記載されている前記暗号化アルゴリズムに従って、セル位置のデータ値に対して暗号化処理を実行することとし、
前記暗号定義情報に記載されている前記暗号化アルゴリズムは、共通鍵暗号方法、公開鍵暗号方法、確定的な（deterministic）暗号化方法、および、確率的な（probabilistic）暗号化方法のうちの少なくとも１つの方法として構成されることを特徴とする
請求項１または請求項２に記載のデータベース処理方法。
【請求項４】
前記復号化装置は、前記暗号テーブルデータへのクエリ検索処理を受け付けると、前記暗号テーブルデータ内の暗号化されているデータ値へのクエリ検索処理を実行するときに、
前記暗号テーブルデータの前記暗号列に含まれている暗号値を暗号化したときの暗号鍵を用いて、クエリ検索条件に含まれるパラメータを暗号化し、
前記暗号テーブルデータの前記暗号列に含まれている暗号値と、前記クエリ検索条件に含まれるパラメータの暗号値とを照合することにより、前記クエリ検索条件に該当するか否かを判定することを特徴とする
請求項１ないし請求項３のいずれか１項に記載のデータベース処理方法。
【請求項５】
前記復号化装置は、前記暗号テーブルデータへのクエリ検索処理を受け付けると、前記暗号テーブルデータ内の暗号化されているデータ値へのクエリ検索処理を実行するときに、
前記暗号テーブルデータの生成元となった前記平文テーブルデータを示す検索用のインデックスと、クエリ検索条件に含まれるパラメータとを照合することにより、前記クエリ検索条件に該当するか否かを判定することを特徴とする
請求項１ないし請求項３のいずれか１項に記載のデータベース処理方法。
【請求項６】
前記暗号定義情報は、セル位置ごとの暗号化の要否情報に加えて、その復号化処理を許可するユーザのリストが併せて記載されており、
前記暗号化装置は、セル位置のデータを暗号化するときには、復号化処理を許可するユーザごとの暗号鍵でセル位置のデータ値を暗号化してユーザごとの暗号値を作成し、それぞれの作成された暗号値を前記暗号列に追加することを特徴とする
請求項１ないし請求項５のいずれか１項に記載のデータベース処理方法。
【請求項７】
前記暗号定義情報は、セル位置ごとの暗号化の要否情報に加えて、その復号化処理を許可するユーザのリストが併せて記載されており、
前記暗号化装置は、セル位置のデータを暗号化するときには、各ユーザに共通の前記セッション鍵でセル位置のデータ値を暗号化して第１暗号値を作成するとともに、復号化処理を許可するユーザごとの暗号鍵で前記セッション鍵を暗号化して第２暗号値を作成し、前記第１暗号値および前記第２暗号値を前記暗号列に追加することを特徴とする
請求項１ないし請求項５のいずれか１項に記載のデータベース処理方法。
【請求項８】
前記復号化装置は、前記クエリ検索条件を送信するユーザごとのデータ閲覧装置に組み込まれていることを特徴とする
請求項１ないし請求項７のいずれか１項に記載のデータベース処理方法。
【請求項９】
前記復号化装置は、前記クエリ検索条件を送信するユーザごとの前記データ閲覧装置とは別の装置として構成し、複数の前記データ閲覧装置からの前記クエリ検索条件に伴う前記暗号テーブルデータから前記平文テーブルデータへの復号化処理を実行すること
請求項１ないし請求項７のいずれか１項に記載のデータベース処理方法。
【請求項１０】
前記暗号化装置は、前記暗号テーブルデータの前記セル位置に書き込む前記所定値として、未定義を示すデータサイズが０の値、または、前記セル位置に格納されるデータ値が取りうる範囲から外れた値を書き込むことを特徴とする
請求項１ないし請求項９のいずれか１項に記載のデータベース処理方法。
【請求項１１】
請求項１ないし請求項１０のいずれか１項に記載のデータベース処理方法を、前記データベースシステムの各装置に実行させるためのデータベース処理プログラム。
【請求項１２】
データベースに格納される平文テーブルデータを暗号化して暗号テーブルデータを作成する暗号化装置と、前記暗号テーブルデータを復号化して前記平文テーブルデータを取得する復号化装置と、を用いるデータベースシステムの暗号化装置であって、
前記平文テーブルデータを記憶手段から読み取り、
前記平文テーブルデータのセル位置に存在するデータ値の暗号化の要否を示す暗号定義情報を記憶手段から読み取り、
前記セル位置とは、前記平文テーブルデータを構成する各行および各列の組み合わせで示され、
前記平文テーブルデータのセル位置ごとに、前記暗号定義情報に記載されている暗号化の要否情報をもとに、そのセル位置のデータ値を暗号化するか否かを決定し、
セル位置のデータを暗号化するときには、前記暗号テーブルデータのセル位置に所定値を格納するとともに、そのセル位置が含まれる行の暗号列に前記平文テーブルデータのセル位置のデータ値を暗号化した結果の暗号値を追加し、
セル位置のデータを暗号化しないときには、前記暗号テーブルデータのセル位置に前記平文テーブルデータのセル位置のデータ値をコピーすることを特徴とする
暗号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース処理方法、データベース処理プログラム、および、暗号化装置の技術に関する。
【背景技術】
【０００２】
従来データベース装置に格納されたデータの暗号化技術として、非特許文献１に開示された、Transparent Data Encryptionという技術がある。このTransparent Data Encryption技術は、データベースに格納されたデータを暗号化する技術であり、データベース利用者が透過的に、すなわちデータを暗号化されていることを意識することなく、利用可能な技術である。
【０００３】
Transparent Data Encryption技術においては、あらかじめ指定されたテーブルの列にデータ書き込み時に暗号化し、暗号化されたデータを、当該データベース装置に固有の方法で格納しておき、その列のデータを読み出す際には、暗号化された状態で格納されていたデータを復号して平文データとして読み出される（例えば、非特許文献1：Figure 3-1 Transparent Data Encryption Overview参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Oracle, Oracle(R) Database Advanced Security Administrator’s Guide 11g Release 1 (11.1), August 2008
【発明の概要】
【発明が解決しようとする課題】
【０００５】
同じテーブル内に存在するデータでも、そのデータの位置によって機密度がばらばら（不均一）であるケースも多い。例えば、来客室の位置情報は、来客が把握する必要のあるため、機密度の低い情報の一例であり、会議室の位置情報は、社外秘の開発会議が行われる場所であるため、機密度の高い情報の一例である。
その場合、機密度の低いデータについての暗号化処理と、機密度の高いデータについての暗号化処理とで、区別することが、効果的である。つまり、機密度に応じた暗号化処理により、セキュリティ強度と暗号化の処理負荷とのバランスがとれ、利便性の高い暗号化のデータベースシステムを提供することができる。
【０００６】
一方、Transparent Data Encryption技術においては、あらかじめ指定された列について、同じテーブル内のある行のデータは暗号化し、他の行のデータは暗号化しない、というように暗号化対象と非対象のデータを混在させることについては考慮されていない。
そのため、機密度の低いデータについて過剰に暗号化処理を行ってしまって、暗号化の処理負荷を上げてしまうケースや、機密度の高いデータについて暗号化処理の強度が不足してしまって、セキュリティ強度を充分に保てないケースが、それぞれ発生してしまう。
【０００７】
そこで、本発明は、前記した問題を解決し、データの位置によって機密度が不均一であるデータベースに対して、セキュリティ強度と暗号化の処理負荷とのバランスがとれるデータベースシステムを提供することを、主な目的とする。
【課題を解決するための手段】
【０００８】
前記課題を解決するために、本発明は、データベースに格納される平文テーブルデータを暗号化して暗号テーブルデータを作成する暗号化装置と、前記暗号テーブルデータを復号化して前記平文テーブルデータを取得する復号化装置と、を用いるデータベースシステムによるデータベース処理方法であって、
前記暗号化装置が、
前記平文テーブルデータを記憶手段から読み取り、
前記平文テーブルデータのセル位置に存在するデータ値の暗号化の要否を示す暗号定義情報を記憶手段から読み取り、
前記セル位置とは、前記平文テーブルデータを構成する各行および各列の組み合わせで示され、
前記平文テーブルデータのセル位置ごとに、前記暗号定義情報に記載されている暗号化の要否情報をもとに、そのセル位置のデータ値を暗号化するか否かを決定し、
セル位置のデータを暗号化するときには、前記暗号テーブルデータのセル位置に所定値を格納するとともに、そのセル位置が含まれる行の暗号列に前記平文テーブルデータのセル位置のデータ値を暗号化した結果の暗号値を追加し、
セル位置のデータを暗号化しないときには、前記暗号テーブルデータのセル位置に前記平文テーブルデータのセル位置のデータ値をコピーし、
前記復号化装置が、
前記暗号テーブルデータのセル位置に前記所定値が格納されているときには、そのセル位置が含まれる行の前記暗号列から暗号値を復号化し、復号化に成功したときには、その結果のデータ値でセル位置に格納されている前記所定値を上書きすることを特徴とする。
その他の手段は、後記する。
【発明の効果】
【０００９】
本発明によれば、データの位置によって機密度が不均一であるデータベースに対して、セキュリティ強度と暗号化の処理負荷とのバランスがとれるデータベースシステムを提供することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態に関する地図情報データベースシステムを示す構成図である。
【図２】本発明の一実施形態に関する地図情報データベースシステムを構成する各装置のハードウェア構成を示す構成図である。
【図３】本発明の一実施形態に関する地図情報の各データ（平文テーブルデータ、暗号テーブルデータ、暗号定義情報）の一例を示す構成図である。
【図４】本発明の一実施形態に関する図３の暗号テーブルデータを、ユーザごとに復号化した結果の平文テーブルデータを示す説明図である。
【図５】本発明の一実施形態に関する図１の地図情報データベースシステムの処理を示すフローチャートである。
【図６】本発明の一実施形態に関する暗号化処理部が実行する、平文テーブルデータから暗号テーブルデータを作成する暗号化処理の詳細を示すフローチャートである。
【図７】本発明の一実施形態に関する図１の復号処理を地図閲覧装置から地図復号装置へと変更した、地図情報データベースシステムを示す構成図である。
【図８】本発明の一実施形態に関する図７の構成に対応する地図情報データベースシステムの処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の一実施形態を、図面を参照して詳細に説明する。
【００１２】
図１は、地図情報データベースシステムを示す構成図である。地図情報データベースシステムは、屋内地図を扱う。この屋内地図は、不特定多数に開示しうる情報と、特定の権限を有する閲覧者に対してのみ開示すべき情報とが混在するデータの一例である。
なお、屋内地図データは、データベースシステムが扱うデータのあくまで一例であり、その他にも、屋外地図、氏名、住所、電話番号、メールアドレス、投薬歴、既往症、遺伝子情報、カルテ、レセプト、学歴、職歴、コンピュータシステムの管理情報、ネットワークの管理情報、文書、動画像、静止画像、音声データ、音楽データなどが、データベースシステムが扱うデータとして適用可能である。
【００１３】
地図情報データベースシステムは、ネットワーク１を介し、地図暗号化装置２、地図格納装置３、地図配信装置４、地図閲覧装置５、および、鍵管理装置９が接続されている。
地図暗号化装置２は、暗号鍵８１を格納する暗号鍵格納部８３と、暗号化処理部１１と、平文テーブルデータ７１と、暗号定義情報７６と、を有する。
【００１４】
平文テーブルデータ７１は、地図情報としての屋内地図を平文（暗号化されていない状態）として構成するデータである。この平文テーブルデータ７１は、地図暗号化装置２が作成してもよいし、他装置などから入力を受け付けてもよい。平文テーブルデータ７１は、ＤＢＭＳ（DataBase Management System）の処理対象である表形式のデータでもよいし、その表形式のデータからＣＳＶ（Comma Separated Values）形式に変換（エクスポート）されたテキストデータでもよい。
【００１５】
暗号化処理部１１は、暗号定義情報７６に記載された定義に従って、暗号鍵８１を用いて、平文テーブルデータ７１を暗号化することで、暗号テーブルデータ７３を作成する。そして、暗号化処理部１１は、作成した暗号テーブルデータ７３を地図格納装置３に送信する。
【００１６】
ここで、平文テーブルデータ７１として、データベース処理部１７が扱う表形式のデータからエクスポートされたＣＳＶデータを用いることにより、暗号化処理部１１の暗号化処理と、データベース処理部１７のクエリ検索処理とが独立しておのおのの処理を実行することができるため、暗号化処理部１１は、データベース処理部１７が処理可能なデータ形式に依存せず、暗号化処理を実行することができる。
一方、平文テーブルデータ７１として、ＣＳＶデータを使用せずに、データベース処理部１７が扱う表形式のデータをそのまま用いることにより、エクスポート処理が不要となるため、処理負荷が軽減されるという点で優れる。
【００１７】
地図格納装置３は、暗号テーブルデータ７３と、データベース処理部１７とを有する。
暗号テーブルデータ７３は、平文テーブルデータ７１の構造（スキーマ：Schema）に暗号列７５（図３参照）を一列追加した構造をもつテーブルデータである。
データベース処理部１７は、暗号テーブルデータ７３を処理対象とするＤＢＭＳ（DataBase Management System）である。つまり、データベース処理部１７は、暗号テーブルデータ７３を処理対象として、ＳＱＬなどで記載されているクエリ処理（地図検索処理など）を実行する。
【００１８】
このように、地図格納装置３は、平文テーブルデータ７１ではなく、その平文テーブルデータ７１から暗号化された暗号テーブルデータ７３を保持する。この暗号テーブルデータ７３は、地図格納装置３の管理者でもその復号は許可されていない。これにより、地図格納装置３からは、暗号化された箇所の平文データが漏えいする危険は実質的に生じない。
さらに、暗号定義情報７６が地図暗号化装置２に存在するため、その暗号定義情報７６が示すアクセス制御の条件（どのユーザに、平文テーブルデータ７１内のどの位置のデータを見せるか）は、地図暗号化装置２によって設定される。その暗号定義情報７６が示すアクセス制御の条件の変更（閲覧不可から閲覧可への変更など）は、地図格納装置３の管理者には許可されていない。これにより、地図暗号化装置２からみると、自装置において設定したアクセス制御条件を地図格納装置３に強制することができる。そして、地図閲覧装置５が適切な復号鍵８６を有していれば、復号されてから閲覧されるが、そうでないときには、復号が失敗し閲覧できなくなるため、実質的にアクセス制御が実現される。
【００１９】
地図配信装置４は、クエリ受付部１４と、暗号化インデックス復号処理部１５と、暗号化インデックス１６と、を有する。
クエリ受付部１４は、クエリ要求部１３からのクエリ（地図閲覧要求など）を受け付けると、データベース処理部１７にそのクエリ処理を依頼し、その結果（暗号テーブルデータ７３内のクエリに該当する暗号行データ７４）をクエリ要求部１３へと応答（地図配信処理など）する。
暗号化インデックス復号処理部１５は、クエリ受付部１４からの依頼を受け、暗号テーブルデータ７３内の暗号列７５に対するクエリ処理をデータベース処理部１７の代わりに実行する。
暗号化インデックス１６は、暗号化インデックス復号処理部１５が実行するクエリ処理において参照される、暗号テーブルデータ７３のデータ内容を示すインデックスデータである。暗号化インデックス１６は、平文テーブルデータ７１のクエリ処理を高速で実現するためのインデックスデータを、暗号鍵８１を用いて暗号化したものである。平文テーブルデータ７１のインデックスデータとは、例えば、平文テーブルデータ７１を構成する表のセル値ごとの、そのセル値が格納されている表のセル位置（ｉ行ｊ列目など）のリストとして平文テーブルデータ７１から作成される。
【００２０】
地図閲覧装置５は、復号化処理部１２と、クエリ要求部１３と、復号鍵８６を格納する復号鍵格納部８８と、を有する。
クエリ要求部１３は、クエリ受付部１４に対して、クエリ（地図閲覧要求など）を要求し、そのクエリ応答として暗号行データ７４を受信する。
復号化処理部１２は、クエリ要求部１３からの依頼を受け、復号鍵８６を用いてクエリ応答（暗号行データ７４）の復号化処理を実行する。そして、地図閲覧装置５は、復号化した暗号行データ７４の地図を表示する。
【００２１】
鍵管理装置９は、暗号鍵８１および復号鍵８６を管理するため、暗号鍵８１を生成する暗号鍵生成部８２と、復号鍵８６を生成する復号鍵生成部８７と、を有する。鍵管理装置９は、暗号鍵８１を地図暗号化装置２に配布し、復号鍵８６を地図閲覧装置５に配布する。
【００２２】
図２は、地図情報データベースシステムを構成する各装置のハードウェア構成を示す構成図である。
【００２３】
地図情報データベースシステムの各装置は、ＣＰＵ９１と、ＲＡＭ９２と、外部記憶装置９３と、記憶媒体９５を読み取る読み取り装置９４と、入力装置９６と、表示装置９７と、通信装置９８と、インターフェイス９９と、を備えるコンピュータ（電子計算機）として構成される。
【００２４】
ＣＰＵ９１は、ＲＡＭ９２上にロードしたプログラムを実行することで、図１に示す各処理部（暗号化処理部１１など）をプロセスとして具現化する。
ＲＡＭ９２は、ＣＰＵ９１のワークエリアとして機能する。
外部記憶装置９３は、ハードディスク装置などで構成され、図１に示す各処理部のプログラムおよびその各処理部が扱うデータ（平文テーブルデータ７１など）を格納する。
読み取り装置９４は、記憶媒体９５からデータを読み取る装置である。
記憶媒体９５は、ＣＤ−ＲＯＭやＦＤなどの可搬性を有する媒体である。記憶媒体９５には、ＣＰＵ９１が実行する各処理部のプログラムが記憶されている。
入力装置９６は、キーボードやマウスなどで構成される。
表示装置９７は、ディスプレイなどで構成される。
通信装置９８は、ネットワークを介して他の装置と通信を行うため通信インタフェースである。通信装置９８は、ＣＰＵ９１が実行する各処理部のプログラムをダウンロードする。
インターフェイス９９は、装置内の各構成要素間のデータ送受を司る内部バスである。
【００２５】
図３は、地図情報を示す各データ（平文テーブルデータ７１、暗号テーブルデータ７３、暗号定義情報７６）の一例を示す構成図である。
【００２６】
平文テーブルデータ７１は、屋内地図を示すデータである。一般に空間データは、地物（Feature）の集合として記述される。ここで、地物とは、位置に関する情報と直接的、間接的に結びつけられた物や現象のことである。屋内地図の場合は、例えば、部屋や廊下などが、地物の例である。
平文テーブルデータ７１は、１つの行が１つの地物に対応する。平文テーブルデータ７１は、地物ごとに、「ＩＤ列」と、「ジオメトリ」と、「接続関係」と、「名称」と、「収容人数」と、を対応づけて構成する。
「ＩＤ列」は、地物を一意に識別するためのキー列であり、暗号化処理の対象外であり、整数型などで定義される。
「ジオメトリ」は、地物の位置と形状とを、その頂点位置（ｘ，ｙ）の集合で表し、文字列型などで定義される。
「接続関係」は、各地物間で相互に移動可能かどうかを示し、整数型（ＩＤ列）の集合などで定義される。
「名称」は、各地物の名称を示し、文字列型などで定義される。
「収容人数」は、各地物の収容可能人員数を示し、整数型などで定義される。なお、「収容人数」の「NULL」は、０人ではなく、未定義（データサイズが０）である所定値を示す。
【００２７】
なお、図３に示した平文テーブルデータ７１の構成はあくまで一例であり、その他にも、各地物の設備や、利用目的、制限事項などの属性を示す列を含んでいてもよい。さらに、各地物間の接続関係以外の関係、例えば包含関係などを表す列を含んでいてもよい。そして、各項目のデータ型についても、例えばジオメトリを表現するための専用の型を定義し、それを用いてもよい。さらに、平文テーブルデータ７１を１つのテーブルデータとする代わりに、「ＩＤ列」をキーとして互いに関連づけられた複数のテーブルデータの集合として表現されていてもよい。
【００２８】
暗号テーブルデータ７３は、平文テーブルデータ７１の少なくとも一部のデータを暗号化した結果である。暗号テーブルデータ７３の左側の列（ＩＤ列〜収容人数）は、平文テーブルデータ７１と共通する。暗号テーブルデータ７３の右側の列（暗号列７５）は、平文テーブルデータ７１から新たに追加された列である。暗号列７５は、対応する平文テーブルデータ７１の暗号化された結果を格納する。
例えば、図３の暗号テーブルデータ７３は、平文テーブルデータ７１と比較すると、ＩＤ列「００２」において列「名称」および列「収容人数」が暗号化されているとともに、ＩＤ列「００３」において、列「名称」が暗号化されていることが、それぞれのデータ値が「NULL」になっていることからわかる。
これらの暗号化されている行の暗号列７５には、暗号化された結果のテキスト（図示では、バイナリデータのテキスト結果であり、このテキスト自体は、人間が読めないデータである）が格納されている。つまり、各行に含まれるデータのうち、１つ以上の暗号化する列（項目）のデータを暗号化したデータを、当該行の暗号列７５に格納する。
一方、ＩＤ列「００１」およびＩＤ列「００４」は、暗号化対象の列が存在しないため、暗号列７５には「NULL」が格納されている。つまり、暗号列７５の「NULL」は、対応するデータ列内のいずれのデータ値も暗号化されていないことを示すが、データ列の「NULL」は、そのデータ列内のデータ値が暗号化されていることを示す。
【００２９】
よって、暗号化した１つ以上の値を暗号列７５に格納するときに、特定のエンコード方法（たとえばbase64形式、XML形式、ASN.1(Abstract Syntax Notation One)に規定されたBER,CER,DERまたはそのほかのエンコード形式など）に従い、エンコードしたテキストデータを、どの項目（列名称）を暗号化したかを示すタグで囲ったＸＭＬデータとして、暗号列７５に１つずつ追加すればよい。
このように、暗号列７５を作成することにより、元の平文データの型（たとえば整数型、文字列型、日付型など）によらず、暗号列７５に格納する暗号化されたデータの型（たとえば文字列型）を統一することが可能となる。さらには、元の平文データが、複数の列（項目）のデータを含み、それらの各列のデータの型が異なっていた場合であっても、暗号列７５に格納する暗号化されたデータの型を統一することが可能となる。
【００３０】
暗号定義情報７６は、平文テーブルデータ７１から暗号テーブルデータ７３を作成するときに、暗号処理の内容をセル（行と列の組み合わせ）ごとに定義する情報である。暗号定義情報７６のＩＤ列は、平文テーブルデータ７１および暗号テーブルデータ７３と共通するキー列である。
暗号定義情報７６のその他の列には、暗号化対象であるときには「暗号化」が格納され、暗号化対象でないときには空欄が、それぞれの行ごとに格納される。さらに、暗号定義情報７６の「暗号化」が格納されるセルについて、その暗号化処理を復号化できるユーザ（換言すると復号鍵８６を有するユーザ）を特定する情報を格納してもよい。
例えば、「ＩＤ列＝００２」行の「名称」列のセル値は、ユーザＡおよびユーザＢそれぞれの暗号鍵８１で暗号化されているため、ユーザＡおよびユーザＢそれぞれの復号鍵８６を用いて復号（閲覧）可能であるが、「ＩＤ列＝００２」行の「収容人数」列のセル値は、ユーザＡの復号鍵８６だけが復号（閲覧）可能である。このように、暗号定義情報７６では、各行の暗号列７５に格納するデータとして、行ごとに異なった列（項目）を暗号化したデータであってもよいし、各行に含まれる複数列（項目）を暗号化したデータであってもよい。
このように暗号定義情報７６を定義することにより、従来技術では設定困難であった暗号化条件を、容易に設定可能となる。例えば、あらかじめ指定された列について、ある行のデータは暗号化し、他の行のデータは暗号化しない、というように暗号化対象と非対象のデータを混在させることが可能になる。
【００３１】
さらに、暗号定義情報７６には、セルごとに使用する暗号化アルゴリズムを指定してもよい。以下、暗号化処理部１１および復号化処理部１２が実行する、暗号化アルゴリズムの一例を示す。
【００３２】
まず、暗号定義情報７６の暗号化アルゴリズムとして、共通鍵暗号または公開鍵暗号のいずれかが、指定される。
共通鍵暗号方式は、暗号鍵８１と復号鍵８６とで、同じ鍵を用いる方式であり、例えば、DESやAES、MUGIなどのアルゴリズムが指定される。この共通鍵暗号方式を用いた場合、公開鍵暗号方式と比較し、一般に処理負荷が少ないという点で優れる。
公開鍵暗号は、暗号鍵８１と復号鍵８６とで、異なる鍵を用いる方式であり、例えば、RSA、楕円曲線暗号方式などのアルゴリズムが指定される。この公開鍵暗号方式を用いた場合、別々の平文テーブルデータ７１に対して、同じ鍵を用いていたとしても、それぞれの平文テーブルデータ７１の秘匿性を損なう可能性は実質的に生じないという点で優れる。
【００３３】
次に、暗号定義情報７６の暗号化アルゴリズムとして、確定的な（deterministic）暗号化方法、または、確率的な（probabilistic）暗号化方法のいずれかが、指定される。
確定的な（deterministic）暗号化方法は、同じ平文を同じ暗号鍵を用いて暗号化したときに得られる暗号文が、常に同一であるような暗号化方式のことである。
確率的な（probabilistic）暗号化方法は、同じ平文を同じ暗号鍵を用いて暗号化しても、異なる暗号文が得られることがあるような暗号化方式のことである。
【００３４】
図４は、図３の暗号テーブルデータ７３を、ユーザごとに復号化した結果の平文テーブルデータ７１（一部抜粋）を示す説明図である。平文テーブルデータ７１の抜粋した箇所以外の復号結果は、各ユーザとも全て閲覧可能である。さらに、図４では、平文テーブルデータ７１の復号結果に応じて画面表示される屋内地図を、右側に図示している。
平文テーブルデータ７１の「NULL」でない箇所は、もともと暗号化されていない箇所、または、暗号化されているものの復号化に成功した箇所（つまり、復号化を試みたユーザに対してアクセス権が設定されている箇所）である。
平文テーブルデータ７１の「NULL」である箇所は、暗号化されており復号化に失敗した箇所であり、復号化を試みたユーザに対してアクセス権が設定されていない箇所である。
【００３５】
まず、図４（ａ）に示すユーザＡの復号結果では、平文テーブルデータ７１が全て閲覧可能である。これは、暗号定義情報７６で「暗号化」と記述されている全ての箇所に「ユーザＡ」と記載されているためである。
次に、図４（ｂ）に示すユーザＢの復号結果では、平文テーブルデータ７１の一部（ＩＤ列＝００２の収容人数列）が閲覧不可能（NULL）である。これは、暗号定義情報７６で「暗号化」と記述されている箇所の内の「ユーザＢ」と記載されていない箇所が存在するためである。
さらに、図４（ｃ）に示すユーザＣの復号結果では、平文テーブルデータ７１の一部（ＩＤ列＝００２の名称列および収容人数列、ＩＤ列＝００３の名称列）が閲覧不可能（NULL）である。これは、暗号定義情報７６で「暗号化」と記述されている箇所の内の「ユーザＣ」と記載されている箇所が存在しないためである。
【００３６】
以下、図３および図４で示したユーザごとのアクセス権を反映するための、暗号鍵生成部８２による暗号鍵８１の生成方法および暗号化処理部１１による暗号鍵８１の使用方法について、２つの方法を例示する。この２つの方法は、暗号定義情報７６の暗号化アルゴリズムとして、指定される。
【００３７】
ここで、暗号鍵８１およびその暗号鍵８１で暗号化されたデータを示すため、以下の記述を用いる。
｛暗号化対象の平文データ｝←暗号鍵８１
例えば、以下の記述は、平文テーブルデータ７１のＩＤ列＝００２の名称列である「部内会議室Ａ」を、ユーザＡの暗号鍵８１で暗号化した結果を示す。
｛部内会議室Ａ（ＩＤ列＝００２の名称列）｝←ユーザＡ
【００３８】
ユーザごとのアクセス権を反映する第１の方法として、暗号定義情報７６で「暗号化」が指定された平文テーブルデータ７１の該当箇所を、アクセス権が与えられたユーザごとの暗号鍵８１で暗号化する手法が、挙げられる。
【００３９】
暗号テーブルデータ７３のＩＤ列＝００２の暗号列７５（A3bxt$35と記載された部分）には、以下の暗号化されたデータが格納される。
｛部内会議室Ａ（ＩＤ列＝００２の名称列）｝←ユーザＡ
｛部内会議室Ａ（ＩＤ列＝００２の名称列）｝←ユーザＢ
｛１０（ＩＤ列＝００２の収容人数列）｝←ユーザＡ
そして、ユーザＡの地図閲覧装置５は、自分の復号鍵８６を用いて、「部内会議室Ａ」および「１０」をそれぞれ復号化できる。ユーザＢの地図閲覧装置５は、自分の復号鍵８６を用いて、「部内会議室Ａ」を復号化できる。
【００４０】
暗号テーブルデータ７３のＩＤ列＝００３の暗号列７５（5#971yQと記載された部分）には、以下の暗号化されたデータが格納される。
｛部内会議室Ｂ（ＩＤ列＝００３の名称列）｝←ユーザＡ
｛部内会議室Ｂ（ＩＤ列＝００３の名称列）｝←ユーザＢ
【００４１】
ユーザごとのアクセス権を反映する第２の方法として、暗号定義情報７６で「暗号化」が指定された平文テーブルデータ７１の該当箇所を、各ユーザに共通のセッション鍵で暗号化し、そのセッション鍵をアクセス権が与えられたユーザごとの暗号鍵８１で暗号化する手法が、挙げられる。この手法は、特開２００７−２５１９２１号公報に開示された手法であり、選択的開示暗号方法とも呼ばれる。具体的には、「暗号化」が指定された平文テーブルデータ７１の各列を選択的開示暗号方法における分割の単位とし、得られた暗号文を、暗号値列に格納するデータとする。
【００４２】
暗号テーブルデータ７３のＩＤ列＝００２の暗号列７５（A3bxt$35と記載された部分）には、以下の暗号化されたデータが格納される。
｛部内会議室Ａ（ＩＤ列＝００２の名称列）｝←セッション鍵Ｋ１
｛１０（ＩＤ列＝００２の収容人数列）｝←セッション鍵Ｋ２
｛セッション鍵Ｋ１｝←ユーザＡ
｛セッション鍵Ｋ１｝←ユーザＢ
｛セッション鍵Ｋ２｝←ユーザＡ
そして、ユーザＡの地図閲覧装置５は、自分の復号鍵８６を用いて、セッション鍵Ｋ１およびＫ２を取得して、「部内会議室Ａ」および「１０」をそれぞれ復号化できる。ユーザＢの地図閲覧装置５は、自分の復号鍵８６を用いて、セッション鍵Ｋ１を取得して、「部内会議室Ａ」を復号化できる。
【００４３】
暗号テーブルデータ７３のＩＤ列＝００３の暗号列７５（5#971yQと記載された部分）には、以下の暗号化されたデータが格納される。
｛部内会議室Ｂ（ＩＤ列＝００３の名称列）｝←セッション鍵Ｋ３
｛セッション鍵Ｋ３｝←ユーザＡ
｛セッション鍵Ｋ３｝←ユーザＢ
【００４４】
このように、選択的開示暗号方法は、平文データを、閲覧するユーザ毎に異なる部分を開示可能な状態に、暗号化する方法である。選択的開示暗号方法の一方法においては、平文データをまず開示条件の異なる単位に分割し、分割された各部分に対し、共通鍵暗号方式における暗号鍵（以下、部分データ暗号鍵と称す）を乱数として生成して、この部分データ暗号鍵を用いて暗号化する。次に、部分データ暗号鍵を、当該部分を閲覧可能なユーザの公開鍵を用いて暗号化し、ヘッダ情報として保持する。
【００４５】
このとき当該箇所を複数（ｎ人）のユーザが閲覧可能な場合は、それぞれの公開鍵を用いて暗号化する（したがってヘッダ情報にはｎ個のデータが含まれることになる）。各部分の暗号文とヘッダ情報とを合わせた（結合した）データを、選択的開示可能な暗号方法に従って暗号化した結果得られた暗号文と呼ぶ。
【００４６】
そして、復号の際には、まずヘッダ情報に含まれる各情報に対し、閲覧ユーザの所有する（公開鍵暗号方式における）秘密鍵を用いて復号を試みる。復号に成功し部分データ暗号鍵が得られた場合は、当該部分の暗号文を、部分データ暗号鍵によって復号し、当該部分の平文を得る。
【００４７】
以上説明した選択的開示暗号方法によれば、行ごとに異なる列を暗号化し、また、同一行内の各列に閲覧可能なユーザが異なるデータが混在するように、暗号化することが可能となる。
【００４８】
図５は、図１の地図情報データベースシステムの処理を示すフローチャートである。
【００４９】
Ｓ１０１として、地図閲覧装置５は、鍵管理装置９の復号鍵生成部８７から復号鍵８６を受信し、復号鍵格納部８８に格納する。
Ｓ１０２として、地図暗号化装置２は、鍵管理装置９の暗号鍵生成部８２から暗号鍵８１を受信し、暗号鍵格納部８３に格納する。
Ｓ１０３として、地図暗号化装置２の暗号化処理部１１は、暗号鍵８１をもとに平文テーブルデータ７１を暗号化することで、暗号テーブルデータ７３を作成し、その暗号テーブルデータ７３を地図格納装置３に送信する。このＳ１０３の処理の詳細は、図６で後記する。
Ｓ１０４として、地図格納装置３は、暗号化された暗号テーブルデータ７３を受信し、自装置内の外部記憶装置９３に格納する。
【００５０】
Ｓ１１１として、地図閲覧装置５のクエリ要求部１３は、地図閲覧要求のクエリを地図配信装置４のクエリ受付部１４に対して送信する。地図閲覧要求は、例えば、地図閲覧装置５の現在位置情報を送信し、現在位置周辺の地図を要求する旨である。この場合、例えば地図閲覧装置５は、現在位置情報の取得手段として、ＧＰＳ(Global Positioning System)による測位手段を備えていてもよい。
Ｓ１１２として、地図配信装置４のクエリ受付部１４は、受信したクエリのデータ検索要求を、地図格納装置３のデータベース処理部１７に依頼する。
Ｓ１１３として、地図格納装置３のデータベース処理部１７は、データ検索要求を受信して、Ｓ１０４で格納した暗号テーブルデータ７３に対して、検索処理を実行する。
【００５１】
Ｓ１２１として、地図格納装置３のデータベース処理部１７は、Ｓ１１３の検索結果として、暗号データ（暗号テーブルデータ７３内のクエリの検索条件に該当する暗号行データ７４）を、クエリ受付部１４に返信する。
Ｓ１２２として、地図配信装置４のクエリ受付部１４は、Ｓ１１１のクエリの応答として、Ｓ１２１で返信された暗号データを、クエリ要求部１３に送信する。
Ｓ１２３として、地図閲覧装置５のクエリ要求部１３は、Ｓ１２２で送信されたクエリの応答を受信する。
【００５２】
Ｓ１３１として、地図閲覧装置５の復号化処理部１２は、Ｓ１２３で受信したクエリ応答の暗号データ（暗号行データ７４）を復号化する。このとき、復号化処理部１２は、Ｓ１０１で格納した復号鍵８６を用いる。
なお、復号化処理部１２は、暗号行データ７４の復号処理において、復号化処理部１２が属する地図閲覧装置５のユーザの復号鍵８６を用いて、暗号行データ７４の暗号列７５に含まれている１つ以上のデータ値に対して、１つずつ復号化を試みる。まず、復号化に成功したときには、そのデータ値を、暗号行データ７４の該当するセル位置の「NULL」値から置き換えることにより、暗号行データ７４から平文行データ７２を取得する。
【００５３】
一方、復号化に失敗したときには、そのデータ値は地図閲覧装置５のユーザにはアクセス権が与えられていないことになるので、そのセル位置のデータ値として「NULL」を出力する。ここで、復号化処理部１２は、アクセス権が与えられていないデータ値の復号化処理を実際に試みる代わりに、暗号列７５に含まれている補足情報を参照して、アクセス権が与えられていないデータ値の復号化処理をスキップしてもよい。そのためには、暗号化処理部１１は、暗号化の際に、暗号化する列のデータのほかに、補足情報を含めてデータを暗号化し、暗号列７５に格納しておくとよい。
補足情報とは、例えば、暗号定義情報７６に格納されている情報や、どの列を暗号化したかを識別するための情報（たとえば列名など）、暗号化する列のデータの型情報などにより構成される。
【００５４】
以上、図５を参照して説明した地図閲覧要求の処理により、地図閲覧装置５は、自装置に許可された部分の地図を閲覧させることができる。
【００５５】
なお、Ｓ１１３において、データベース処理部１７は、暗号テーブルデータ７３への検索処理を実行するときに、暗号化されたデータ値に対しては、平文のクエリ検索条件をそのまま評価することは、困難である。そこで、以下に示す２通りの手法のいずれかにより、平文のクエリ検索条件を暗号化されたデータ値に対して評価することができる。
【００５６】
第１の評価方法は、平文のクエリ検索条件を暗号化して、暗号化されたデータ値に評価する手法である。
まず、Ｓ１０３の暗号化処理において、確定的な（deterministic）暗号化方法によって暗号化する。
次に、データベース処理部１７は、Ｓ１１３の暗号テーブルデータ７３への検索処理において、暗号鍵８１を鍵管理装置９または他装置（地図暗号化装置２、地図閲覧装置５など）から取得する。
そして、データベース処理部１７は、クエリ検索条件に含まれるパラメータ（例えば、検索対象の文字列）を、取得した暗号鍵８１で暗号化する。
さらに、データベース処理部１７は、暗号テーブルデータ７３内の暗号化されたセル値と、クエリ検索条件に含まれるパラメータの暗号化値とを照合することにより、クエリ検索条件を評価する。データベース処理部１７は、例えば、双方の値が互いに一致していたときには、クエリ検索条件に該当する、と判断する。つまり、確定的な暗号化方法を用いることにより、同じデータ値を同じ暗号鍵８１で暗号化した結果は、常に同じ暗号化値になるため、復号化処理を行うことなく、クエリ検索条件を評価することができる。
【００５７】
第２の評価方法は、暗号化前の平文データから生成されるインデックスを用いて、平文のクエリ検索条件を評価する手法である。そのため、図１の地図暗号化装置２は、暗号鍵８１ごとの暗号化インデックス１６をあらかじめ作成しておく。作成された暗号化インデックス１６は、図１の地図格納装置３において保持され、必要に応じて（たとえば地図配信装置４が、地図閲覧装置５からクエリを受け付けたときに）図１の地図配信装置４に送信される。また地図配信装置４は暗号化インデックス復号処理部１５を有する。なお、暗号鍵８１ごとの暗号化インデックス１６を作成するときには、選択的開示暗号方法のセッション鍵で１つの暗号化インデックス１６を作成し、そのセッション鍵を暗号鍵８１ごとに暗号化してもよい。
まず、Ｓ１１２として、クエリ受付部１４は、受信したクエリのデータ検索要求を、データベース処理部１７に依頼するときに、暗号行データ７４については、受信したクエリのデータ検索要求を、暗号化インデックス復号処理部１５に依頼する。
次に、暗号化インデックス復号処理部１５は、Ｓ１１１でクエリ要求したクエリ要求部１３の属する地図閲覧装置５の暗号鍵８１で暗号化された暗号化インデックス１６を、その地図閲覧装置５のユーザの復号鍵８６で復号し、その復号化されたインデックスデータをもとに、クエリ処理を実行する。
そして、Ｓ１２２として、クエリ受付部１４は、暗号化インデックス復号処理部１５の処理結果として、クエリに該当する暗号行データ７４を、クエリ要求部１３に送信する。
【００５８】
図６は、暗号化処理部１１が実行する、平文テーブルデータ７１から暗号テーブルデータ７３を作成する暗号化処理（Ｓ１０３）の詳細を示すフローチャートである。
【００５９】
Ｓ２０１において、暗号化処理部１１は、平文テーブルデータ７１および暗号定義情報７６を、自装置の外部記憶装置９３から取得する。
Ｓ２０２において、平文テーブルデータ７１を構成する各行（各レコード）を１つずつ順に選択するループを開始する。以下、選択した行を「選択行」と記述する。
Ｓ２０３において、選択行の暗号列７５の初期値として「NULL」を設定する。
Ｓ２０４において、平文テーブルデータ７１を構成する各列を１つずつ順に選択するループを開始する。以下、選択した列を「選択列」と記述し、選択行内の選択列で指定される表の要素を、「選択セル」と記述する。
Ｓ２０５において、暗号定義情報７６を参照し、選択セルの暗号化を行うか否かを判定する。Ｓ２０５でＹｅｓならＳ２０７に進み、ＮｏならＳ２０６に進む。
【００６０】
Ｓ２０６において、平文テーブルデータ７１内の選択セルのデータ値を、暗号テーブルデータ７３内の選択セルのデータ値へと、そのままコピーする。
Ｓ２０７において、平文テーブルデータ７１内の選択セルのデータ値を、暗号定義情報７６内の選択セルに記述されている暗号化手法に従って暗号化し、その結果である暗号化値を選択行の暗号列７５に追加する。
Ｓ２０８において、暗号テーブルデータ７３内の選択セルのデータ値に、「NULL」を書き出す。なお、暗号化する列のデータ型がNULLを許容しない場合は、そのデータ型において、実質的に無意味なデータとして利用可能な他の値（たとえばyyyy/mm/ddの日付型における0000/00/00など）を用いるようにしてもよい。
多くのデータ型において、NULLは、実質的に無意味なデータとして許容されているため、NULLで置き換えることにより、暗号化されたデータが他の装置に影響を及ぼすことを防止可能となる。他の装置とは、例えば、地図情報データベースシステムを構成する各装置のいずれかに接続された他の装置であって、その地図情報データベースに格納されたデータを参照する装置である。
【００６１】
Ｓ２０９において、Ｓ２０４からの選択列のループを終了する。
Ｓ２１０において、Ｓ２０３およびＳ２０７で更新された選択行の暗号列７５を、暗号テーブルデータ７３に書き出す。
Ｓ２１１において、Ｓ２０２からの選択行のループを終了する。
Ｓ２１２において、作成された暗号テーブルデータ７３を地図格納装置３に送信する。
【００６２】
以上説明した本実施形態は、以下に示すとおりの変形実施が可能である。
【００６３】
以下の変形実施の形態では、暗号化したデータの復号処理を実行する装置を、地図閲覧装置５から地図復号装置６へと変更することにより、地図閲覧装置５の処理負荷を軽減することができる。その結果、地図閲覧装置５は、処理能力が低い装置（携帯電話など）にも適用することができ、ユーザの利便性が向上する。
【００６４】
さらには、復号処理だけではなく、復号後のデータを利用した処理を地図配信装置４において行うことも可能となる。例えば、復号後の平文行データ７２に基づき、地図を表現する画像データを生成する処理を、地図配信装置４において、行ってもよい。
これにより、地図閲覧装置５においては、地図配信装置４で生成された画像データの表示手段を有していれば、地図が閲覧できることになるため、多くの携帯端末（地図閲覧装置５）が既に備えているＷｅｂブラウザを用いて地図を閲覧可能となることも、新たに地図閲覧装置５で動作する閲覧のためのプログラム開発等の手間を軽減するという観点から好ましい。
【００６５】
図７は、図１の復号処理を地図閲覧装置５から地図復号装置６へと変更した、地図情報データベースシステムを示す構成図である。以下、図１との相違点に着目して、図７の構成を説明する。
【００６６】
地図情報データベースシステムにおいて、新たに地図復号装置６が追加される。
まず、地図復号装置６は、図１の地図閲覧装置５が備えていた復号化処理部１２および復号鍵８６を格納するための復号鍵格納部８８を代わりに備えている。復号鍵格納部８８は、複数の地図閲覧装置５に対応するため、その地図閲覧装置５ごとの複数の復号鍵８６を格納することが好ましい。
次に、地図復号装置６は、図１の地図配信装置４が備えていた暗号化インデックス復号処理部１５および暗号化インデックス１６を代わりに備えている。
そして、地図復号装置６の復号化処理部１２は、地図閲覧装置５の復号化処理を代行するときに、その代行を依頼した（つまり、クエリ要求を送信した）地図閲覧装置５を認証する手段を有することが、好ましい。この認証手段は、例えば、以下に示す２つの手法のいずれかにより、実現される。
【００６７】
第１の認証手段としては、地図閲覧装置５の装置固有のＩＤ（ＭＡＣアドレスなど）や、地図閲覧装置５のユーザ固有の情報（ユーザＩＤ、生体情報など）などの認証用の入力情報を入力装置９６などから入力を受け付けて、認証する手法である。そして、地図復号装置６は、認証用の入力情報を受信すると、あらかじめ作成してある認証用のディレクトリに対して、ＬＤＡＰ（Lightweight Directory Access Protocol）などで認証の問い合わせを行うことで、認証する。
なお、認証用の入力情報は、地図閲覧装置５から地図復号装置６に直接送信してもよいし、地図閲覧装置５から地図配信装置４を介して地図復号装置６に送信してもよい。
【００６８】
第２の認証手段として、一般には複製や偽造が困難と考えられる生体情報を送信するようにした場合には、これをもって認証も行われたものとしてもよい。あるいは、暗号技術を用いて、ユーザ認証を行うようにしてもよい。具体的には、例えばＳＳＬ（Secure Sockets Layer）通信やＴＬＳ（Transport Layer Security）通信における、クライアント認証方法を用いて実現してもよい。
【００６９】
図８は、図７の構成に対応する地図情報データベースシステムの処理を示すフローチャートである。図８の処理と図５の処理とでは多くの処理が共通するので、以下の説明では、それぞれの処理の相違点に着目して、説明する。
Ｓ１０１として、復号化処理部１２が地図閲覧装置５から地図復号装置６へと配置変更されていることに伴い、復号鍵８６の受信および格納処理は、地図復号装置６側で行う。
検索結果の通知処理（Ｓ１２２〜Ｓ１２３）は、以下に示すＳ１２４〜Ｓ１２８へと置き換わる。
Ｓ１２４として、地図配信装置４のクエリ受付部１４は、Ｓ１２１で受信した暗号データ（暗号行データ７４）の復号化を、地図復号装置６に指示する。
Ｓ１２５として、地図復号装置６の復号化処理部１２は、指示された暗号行データ７４を復号化することで、平文行データ７２を取得する。
Ｓ１２６として、地図復号装置６の復号化処理部１２は、復号化した平文行データ７２を、地図配信装置４のクエリ受付部１４に返信する。
Ｓ１２７として、地図配信装置４のクエリ受付部１４は、クエリの応答としての平文行データ７２を、地図閲覧装置５のクエリ要求部１３に送信する。
Ｓ１２８として、地図閲覧装置５のクエリ要求部１３は、クエリの応答を受信する。受信したクエリの応答に含まれる平文行データ７２は、そのまま地図閲覧装置５の表示装置９７に表示できる。
なお、Ｓ１３１の地図閲覧装置５側による復号化処理は、不要になる。
【００７０】
以上、図１および図７でそれぞれ説明した地図情報データベースシステムの構成について、図示した装置内の構成要素や、各装置の台数などは、あくまで一例であり、例えば以下に示すような変形実施も可能である。
【００７１】
例えば、地図情報データベースシステムの各装置は、それぞれ１台ずつ存在していてもよいし、以下に例示するように、複数台存在する装置があってもよい。
・地図復号装置６が複数台存在していてもよい。
・鍵管理装置９が複数台存在し、１台以上の地図復号装置６との間でデータを送受信してもよい。
・地図配信装置４が複数台存在し、１台の地図復号装置６との間でデータを送受信してもよい。
・地図格納装置３が複数台存在していてもよい。この場合、地図配信装置４は、Ｓ１１２において、地図閲覧要求の内容に応じて、複数存在する地図格納装置のうち、適切な装置を選んでクエリすればよい。例えば、各地図格納装置が保持する地図データが、都道府県毎に分かれているなど、領域毎に分かれている場合には、地図閲覧要求の内容が、神奈川県内の情報を要求するものであれば、神奈川県のデータを管理する地図格納装置にクエリすればよい。
【００７２】
地図情報データベースシステムの各装置は、それぞれ独立した計算機上で動作してもよいし、以下に例示するように、複数の装置が一台の計算機上で動作していてもよい。
・地図配信装置４と地図復号装置６と、同一の計算機として構成してもよい。
・地図復号装置６と鍵管理装置９と、同一の計算機として構成してもよい。
【００７３】
地図閲覧装置５の復号鍵８６がはじめに鍵管理装置９にあり、Ｓ１０１において、地図閲覧装置５に送信される場合を例に挙げて説明したが、これとは異なる構成であってもよい。
【００７４】
暗号鍵生成部８２および復号鍵生成部８７を有する鍵管理装置９は、その鍵生成のための処理部を、他の処理部に代行させてもよい。例えば、地図閲覧装置５は、暗号鍵生成部８２および復号鍵生成部８７を有することとし、それぞれの生成部が、復号鍵８６と暗号鍵８１とからなる鍵ペアを生成して、復号鍵８６を復号鍵格納部８８に格納し、暗号鍵８１を暗号鍵格納部８３に格納する。
このようにすると、復号鍵８６が地図閲覧装置５内だけに存在することになるので、セキュリティの観点からは好ましい。
【００７５】
地図情報データベースシステムの各装置は、１つのネットワーク１で接続されていてもよいし、複数のネットワークで接続されていてもよい。例えば、地図閲覧装置５と地図配信装置４は、携帯電話網を介して接続されていてもよい。またこれらの装置のうち、互いにデータをやりとりしなくてもよい装置間には、ネットワークが張られていなくてもよい。互いにデータをやりとりしなくてもよい装置の組み合わせの例として、地図暗号化装置２と地図閲覧装置５との組み合わせを含んでもよい。
【００７６】
以上説明した本実施形態は、データベースに格納されるテーブルの各行に、暗号値を格納する列（暗号列７５）を備え、各行に含まれるデータのうちの暗号化する列（項目）のデータを暗号化したデータを、当該行の暗号列７５に格納するとともに、暗号化する列のデータを、NULL（空白）を意味するデータに書き換える。
これにより、あらかじめ指定された列について、ある行のデータは暗号化し、他の行のデータは暗号化しない、というように暗号化対象と非対象のデータを混在させることが可能となる。
【符号の説明】
【００７７】
１      ネットワーク
２      地図暗号化装置（暗号化装置）
３      地図格納装置
４      地図配信装置
５      地図閲覧装置（復号化装置）
６      地図復号装置（復号化装置）
９      鍵管理装置
１１    暗号化処理部
１２    復号化処理部
１３    クエリ要求部
１４    クエリ受付部
１５    暗号化インデックス復号処理部
１６    暗号化インデックス
１７    データベース処理部
７１    平文テーブルデータ
７２    平文行データ
７３    暗号テーブルデータ
７４    暗号行データ
７５    暗号列
７６    暗号定義情報
８１    暗号鍵
８２    暗号鍵生成部
８３    暗号鍵格納部
８６    復号鍵
８７    復号鍵生成部
８８    復号鍵格納部
９１    ＣＰＵ
９２    ＲＡＭ
９３    外部記憶装置
９４    読み取り装置
９５    記憶媒体
９６    入力装置
９７    表示装置
９８    通信装置
９９    インターフェイス
【図１】
2010224655.tif 000003
【図２】
2010224655.tif 000004
【図３】
2010224655.tif 000005
【図４】
2010224655.tif 000006
【図５】
2010224655.tif 000007
【図６】
2010224655.tif 000008
【図７】
2010224655.tif 000009
【図８】
2010224655.tif 000010