(57)【要約】【課題】データベース上の特定のデータ項目に対するセキュリティを他のデータ項目よりも高めて暗号化する。【解決手段】外部データベース記憶装置１８に記憶されたデータベースをデータベースＩ／Ｆ１７を介して読み込む。ここで、鍵スペックテーブル１６ｃを参照してデータベースの所定の列項目のデータについて当該列項目に共通の列鍵を用いて暗号化し、その他の列項目のデータについては高セキュリティが要求される項目として各行毎に固有の行鍵を用いて暗号化する。さらに、基本鍵記憶部１６ｂを参照して前記行鍵を基本鍵にて暗号化し、前記暗号化されたデータベースと共に暗号化データ格納部１６ｄに格納する。復号化処理部３１は、この暗号化レコード読出メモリ３０に格納された暗号化レコードを鍵スペックテーブル１６ｃ及び基本鍵記憶部１６ｂを用いて復号化する。【選択図】      図２
2008097648.tif 000002
【特許請求の範囲】
【請求項１】
データベースの所定の列項目のデータについて当該列項目に共通の列鍵を用いて暗号化し、その他の列項目のデータについては各行毎に固有の行鍵を用いて暗号化する第１の暗号化手段と、
この第１の暗号化手段による前記データベースの他の列項目のデータの暗号化に用いられた行鍵を各行に共通の別の鍵を用いて暗号化する第２の暗号化手段と、
検索文字列が入力された際に、検索対象となる列項目が前記所定の列項目であれば、当該列項目の前記列鍵で前記入力された検索文字列を暗号化し、暗号化された検索文字列とデータベース内の当該列項目の暗号化されている文字列を比較し、一致した項目を含むレコードデータを抽出する第１の抽出手段と、
検索文字列が入力された際に、検索対象となる列項目が前記その他の列項目であれば、前記行鍵を各行に共通の別の鍵を用いて復号化し、復号化された行鍵で各行の文字列を復号化し、この復号化された文字列と前記入力された検索文字列を比較し、一致した項目を含むレコードデータを抽出する第２の抽出手段と
を具備したことを特徴とするデータベース管理装置。
【請求項２】
コンピュータに、
データベースの所定の列項目のデータについて当該列項目に共通の列鍵を用いて暗号化し、その他の列項目のデータについては各行毎に固有の行鍵を用いて暗号化する第１の暗号化機能と、
この第１の暗号化機能による前記データベースの他の列項目のデータの暗号化に用いられた行鍵を各行に共通の別の鍵を用いて暗号化する第２の暗号化機能と
検索文字列が入力された際に、検索対象となる列項目が前記所定の列項目であれば、当該列項目の前記列鍵で前記入力された検索文字列を暗号化し、暗号化された検索文字列とデータベース内の当該列項目の暗号化されている文字列を比較し、一致した項目を含むレコードデータを抽出する第１の抽出機能と、
検索文字列が入力された際に、検索対象となる列項目が前記その他の列項目であれば、前記行鍵を各行に共通の別の鍵を用いて復号化し、復号化された行鍵で各行の文字列を復号化し、この復号化された文字列と前記入力された検索文字列を比較し、一致した項目を含むレコードデータを抽出する第２の抽出機能と
を実行させるためのプログラムを記録したコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースを暗号化して管理するデータベース管理装置及びデータベースを暗号化するためのプログラムを記録した記録媒体に関する。
【背景技術】
【０００２】
データベース管理装置では、データベースのセキュリティを確保するため、管理対象として保有しているデータベースを暗号化して保存しておくことが求められる。
【０００３】
ここで、データベースを暗号化する場合に、例えばパスワード等によって生成された１つの固定的な暗号化鍵を用いて対象ファイル全体を暗号化するのが一般的であった。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
データベースは膨大なデータ量を有し、その中には機密性の高いデータ項目も含まれており、他のデータ項目よりもセキュリティを高くすることが要求される。しかしながら、上述したように従来の方式では、１つの固定的な暗号化鍵を用いて暗号化していたため、各データ項目のセキュリティレベルは同じになり、しかも、同じデータを持つ項目があった場合には暗号化結果も同じになってしまい、そこから暗号化鍵が解読される危険性があった。
【０００５】
本発明は前記のような課題を解決するためになされたもので、データベース上の特定のデータ項目に対するセキュリティを他のデータ項目よりも高めて暗号化し、このように暗号化されたデータベースからレコードを抽出することのできるデータベース管理装置及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明のデータベース管理装置は、データベースの所定の列項目のデータについて当該列項目に共通の列鍵を用いて暗号化し、その他の列項目のデータについては各行毎に固有の行鍵を用いて暗号化する第１の暗号化手段と、この第１の暗号化手段による前記データベースの他の列項目のデータの暗号化に用いられた行鍵を各行に共通の別の鍵を用いて暗号化する第２の暗号化手段と、検索文字列が入力された際に、検索対象となる列項目が前記所定の列項目であれば、当該列項目の前記列鍵で前記入力された検索文字列を暗号化し、暗号化された検索文字列とデータベース内の当該列項目の暗号化されている文字列を比較し、一致した項目を含むレコードデータを抽出する第１の抽出手段と、検索文字列が入力された際に、検索対象となる列項目が前記その他の列項目であれば、前記行鍵を各行に共通の別の鍵を用いて復号化し、復号化された行鍵で各行の文字列を復号化し、この復号化された文字列と前記入力された検索文字列を比較し、一致した項目を含むレコードデータを抽出する第２の抽出手段とを具備したことを特徴とする。
【発明の効果】
【０００７】
本発明によれば、データベースを暗号化する際に、検索に利用される所定の列項目以外の列項目のデータについては、各行毎に鍵を異ならせて暗号化し、さらに、当該列項目の暗号化に用いられた鍵を別の鍵で再暗号化するようにしたため、鍵の解読を困難として高セキュリティ化を実現することができ、更に、このように暗号化されたデータベースからレコードデータの抽出が可能になる。
【発明を実施するための最良の形態】
【０００８】
以下、図面を参照して本発明の実施形態を説明する。
【０００９】
（第１の実施形態）
図１は本発明の第１の実施形態に係るデータベース管理装置の構成を示す図である。本装置は、行と列からなるマトリクス形式のデータベースを暗号化して管理する機能と共に、その暗号化されたデータベースを検索する機能を備えたものであって、例えば磁気ディスク等の記録媒体に記録されたプログラムを読み込み、このプログラムによって動作が制御されるコンピュータによって実現される。
【００１０】
図１に示すように、本装置には、ＣＰＵ１１、表示装置１２、入力装置１３、プログラム記憶装置１４、鍵生成装置１５、データ記憶装置１６、データベースＩ／Ｆ１７が設けられている。
【００１１】
ＣＰＵ１１は、本装置全体の制御を行うものであり、プログラム記憶装置１４に記憶されたプログラムを読み込み、そのプログラムに従って各種処理を実行する。本実施形態において、ＣＰＵ１１は図８に示すようなデータベースの暗号化処理や、図９及び図１０に示すようなデータベースの検索処理を実行する。
【００１２】
表示装置１２は、データを表示するためのデバイスであり、例えばＬＣＤ（Liquid Crystal Display）やＣＲＴ（Cathode-ray tube）等が用いられる。入力装置１３は、データを入力するためのデバイスであり、例えばキーボード、マウス等が用いられる。
【００１３】
プログラム記憶装置１４は、例えばＲＯＭあるいはＲＡＭなどで構成され、本装置に必要なプログラムを記憶する。本装置に必要なプログラムとしては、データベース暗号化プログラムやデータベース検索プログラム等がある。
【００１４】
なお、プログラム記憶装置１４は半導体メモリの他に磁気的、光学的記録媒体で構成することができる。この記録媒体はＣＤ-ＲＯＭ等の可搬型の媒体やハードディスク等の固定的な媒体を含む。また、この記録媒体に格納するプログラムは、その一部若しくは全部をサーバやクライアントからネットワーク回線などの伝送媒体を介して伝送制御部から受信する構成にしてもよく、更に、前記記録媒体はネットワーク上に構築されたサーバの記録媒体であってもよい。更に、前記プログラムをネットワーク回線などの伝送媒体を介してサーバーやクライアントへ伝送してこれらの機器にインストールするように構成してもよい。
【００１５】
鍵生成装置１５は、データベースの暗号化に用いられる暗号化鍵を生成するためのデバイスであり、ここでは暗号化鍵として基本鍵、行鍵、列鍵の３つの鍵を生成するための基本鍵生成部１５ａ、行鍵生成部１５ｂ、列鍵生成部１５ｃから構成されている。
【００１６】
データ記憶装置１６は、本装置に必要な各種のデータやテーブルを記憶するためのデバイスであり、例えばＲＡＭあるいは磁気ディスク装置等の外部記憶装置で構成される。このデータ記憶装置１６には、基本鍵パラメータテーブル１６ａ、基本鍵記憶部１６ｂ、鍵スペックテーブル１６ｃ、暗号化データ格納部１６ｄ、検索文字列格納部１６ｅが設けられている。
【００１７】
基本鍵パラメータテーブル１６ａは、基本鍵のパラメータ値が登録されたテーブルである（図４参照）。基本鍵記憶部１６ｂは、オペレータの指定操作によって得られた基本鍵のパラメータ値を記憶する。鍵スペックテーブル１６ｃは、データベースの各列（フィールド）毎に定義された暗号化方式の種類（非暗号化，行鍵，列鍵）を記憶するテーブルである（図６参照）。暗号化データ格納部１６ｄは、暗号化されたデータベースを格納する。検索文字列格納部１６ｅは、データベース検索時にオペレータにより指定された検索用文字列を格納する。
【００１８】
データベースＩ／Ｆ１７は、本装置とは独立して設けられた外部データベース記憶装置１８との間でデータの授受を行うためのインタフェースである。この外部データベース記憶装置１８は、複数のデータベースファイル（オリジナルデータ）を有しており、これらのデータベースファイルは本装置からのアクセスによって選択的に読み出されるように構成されている。
【００１９】
ここで、本装置の動作を説明する前に、理解を容易にするため、本装置におけるデータベースの暗号化方法について説明しておく。
【００２０】
データベースを暗号化する場合に、各行毎（レコード毎）に異なる鍵を用いて暗号化すれば鍵の解読は困難となり、セキュリティ性を高めることができる。しかし、すべての行について鍵を異ならせると、データベースを検索する際に、暗号化されているデータを各行毎の鍵で復号化するか、または、検索用として入力されたデータ（キーワード）を各行毎の鍵で暗号化しなければならいため、検索結果を得るのに時間がかかることになる。一方、各列毎（フィールド毎）に異なる鍵を用いてデータベースを暗号化すると、検索対象となる列項目に対応した鍵のみを用いて検索用データを暗号化すれば良いのでデータベース検索を高速に行うことができる。しかし、同じ列の中で同一のデータがあると、暗号化結果も同じになってしまうため、そこから鍵を解読される可能性が高くなる。
【００２１】
そこで、本発明では、データベースを暗号化する際に、検索に頻繁に利用される列項目のデータについては非暗号化あるいはその列項目に共通の鍵（列鍵）で暗号化し、その他の列項目のデータについては高セキュリティが要求される項目として、各行毎に異なる鍵（行鍵）で暗号化し、さらに、各行毎に異なる鍵（行鍵）を各行に共通の別の鍵（基本鍵）で再暗号化することを特徴とする。つまり、高セキュリティが要求される列項目のデータについては、各行毎に暗号化鍵を異ならせ、さらに、その暗号化鍵をシステム基本鍵で暗号化することで、高セキュリティ化を実現するものである。
【００２２】
図１１に具体例を示す。
【００２３】
図１１は本装置によるデータベースの構成を説明するための図であり、図１１（ａ）は暗号化前の状態、同図（ｂ）は暗号化後の状態、同図（ｃ）は復号化後の状態を示している。
【００２４】
図１１（ａ）に示すように、本装置では、行と列からなるマトリックス形式のデータベースを暗号化対象としている。ここでは、個人データをデータベース化したものを示している。このデータベースには、「ｃｏｄｅ」，「ｎａｍｅ」，「ｓｔａｔｅ」，「ａｇｅ」，「ｐｈｏｎｅ」の各列項目（フィールド）を有する。
【００２５】
このようなデータベースに対し、列鍵と行鍵を用いて暗号化を行う。すなわち、検索に頻繁に利用される列項目を「ｓｔａｔｅ」，「ａｇｅ」とした場合に、これらの列項目の各行のデータ（レコード）については、各列項目に共通の列鍵を用いて暗号化し、その他の列項目「ｎａｍｅ」，「ｐｈｏｎｅ」の各行のデータ（レコード）については高セキュリティが要求される項目として、各行毎に固有の行鍵を用いて暗号化してレコードファイルに格納する。その際に、当該列項目の暗号化に用いられた行鍵を基本鍵で再暗号化し、その暗号化された行鍵を各レコードに付加して格納する。なお、「ｃｏｄｅ」の列項目のデータについては暗号化を行わないものとする。
【００２６】
図１１（ａ）のデータベースを列鍵と行鍵を用いて暗号化した結果を図１１（ｂ）に示す。この場合、「ｌｉｎｅ  ｋｅｙ」といった列項目が追加され、そこに基本鍵で暗号化された行鍵（９６５８，９１４３，８２７８…）が格納される。図１に示すデータ記憶装置１６の暗号化データ格納部１６ｄには、図１１（ｂ）に示すような状態でデータベースが保存されることになる。
【００２７】
また、データベースを検索する場合には、検索に利用される列項目に対応した列鍵を用いて検索用データを暗号化してから検索処理を行う。例えば、「ｓｔａｔｅ」の中の「Ｆｌｏｒｉｄａ」といったデータを検索する場合には、まず、検索用データとして入力された「Ｆｌｏｒｉｄａ」を「ｓｔａｔｅ」の列鍵で暗号化して、「ｈ＊／ｆＤＤ」を得る。この「ｈ＊／ｆＤＤ」といったデータを「ｓｔａｔｅ」の列の各行から検索する。これにより、「ｃｏｄｅ２」と「ｃｏｄｅ８」に該当するデータが存在することがわかる。
【００２８】
また、暗号化されたデータベースを元に戻す場合には、暗号化の時と同じ列鍵、行鍵、基本鍵を用いる。図１１（ｂ）のデータベースを暗号化の時と同じ列鍵、行鍵、基本鍵を用いて復号化すると、図１１（ｃ）に示すように元のデータを得ることができる。
【００２９】
次に、このようなデータベースの暗号化／復号化を実現するための具体的な構成について説明する。
【００３０】
図２は本装置の構成を機能的に示したブロック図である。
【００３１】
本装置を機能的に示すと、入力処理系は基本鍵指定部２１、基本鍵設定部２２、鍵スペック入力部２３、鍵スペック設定部２４で構成される。また、暗号化処理系はデータ読出し部２５、レコード入力メモリ２６、暗号化処理部２７、暗号化レコード書込メモリ２８、データ書込み部２９で構成され、復号化処理系は暗号化レコード読出メモリ３０、復号化処理部３１、レコード出力メモリ３２、データ出力部３３で構成される。また、この他に、上述した基本鍵パラメータテーブル１６ａ、基本鍵記憶部１６ｂ、鍵スペックテーブル１６ｃ、暗号化データ格納部１６ｄが用いられる。基本鍵パラメータテーブル１６ａは基本鍵設定部２２に用いられ、基本鍵記憶部１６ｂ、鍵スペックテーブル１６ｃ、暗号化データ格納部１６ｄは暗号化処理部２７及び復号化処理部３１の両方に用いられる。
【００３２】
なお、図２に示した各種のメモリ２６，２８，３０，３２は、レジスタ群であり、例えばデータ記憶装置１６の所定のエリアに設けられる。
【００３３】
このような構成において、データベースの暗号化を行う場合には、まず、オペレータの操作により基本鍵指定部２１を通じて基本鍵を指定する。基本鍵設定部２２は、この基本鍵指定部２１によって指定された基本鍵のパラメータ値を基本鍵パラメータテーブル１６ａから読み出して基本鍵記憶部１６ｂにセットする。
【００３４】
具体的には、図３に示すような基本鍵設定ダイアログを通じて基本鍵の指定を行う。基本鍵設定ダイアログは、オペレータが基本鍵を任意に指定するための画面であり、その画面上に基本鍵指定ボタン部４１、ＯＫボタン４２、キャンセルボタン４３が設けられている。基本鍵指定ボタン部４１は複数個のボタンからなり、オペレータがこれらのボタンの中の任意のボタンを押下すると、その押下したボタンの位置により基本鍵のパラメータ値が決定される。なお、ＯＫボタン４２は基本鍵の指定を確定するためのボタン、キャンセルボタン４３は基本鍵の指定を取り消すためのボタンである。
【００３５】
例えば、基本鍵指定ボタン部４１に１６個のボタン「１」〜「１６」が左から４個ずつ順に配列されているものとする。図４に示すように、基本鍵パラメータテーブル１６ａには、これらのボタンの位置に対応させて基本鍵のパラメータ値が定義されている。オペレータが基本鍵指定ボタン部４１上の「１」のボタンを押下すると、この基本鍵パラメータテーブル１６ａに従って基本鍵のパラメータ値として「５」が決定される。同様に、基本鍵指定ボタン部４１上の「２」のボタンを押下した場合には、基本鍵のパラメータ値として「７」が決定される。
【００３６】
次に、外部データベース記憶装置１８にアクセスして、外部データベース記憶装置１８に格納された各種データベースの中から暗号化対象となるデータベースを指定する。データベースの指定後、オペレータの操作により鍵スペック入力部２３を通じて当該データベースの各データ項目に対する鍵スペックを指定する。鍵スペック設定部２４は、この鍵スペック入力部２３による鍵スペックの指定操作に従って鍵スペックテーブル１６ｃに鍵スペック情報の登録を行う。
【００３７】
具体的には、図５に示すような鍵スペック設定ダイアログを通じて鍵スペックの指定を行う。鍵スペック設定ダイアログは、オペレータがデータベースの各列項目（フィールド）毎に暗号化方式（暗号化に用いる鍵の種類）を任意に指定するための画面であり、その画面上に暗号化方式指定欄５１、ＯＫボタン５２、キャンセルボタン５３が設けられている。
【００３８】
暗号化方式としては、各行毎に固有の鍵（行鍵）を用いた暗号化、各列毎に共通の鍵（列鍵）を用いた暗号化がある。ここでは、非暗号化を含め、０：非暗号化、１：行鍵、２：列鍵として、暗号化方式指定欄５１にデータベースの各列項目に対する暗号化方式を数値入力するように構成されている。なお、ＯＫボタン５２は鍵スペックの指定を確定するためのボタン、キャンセルボタン５３は鍵スペックの指定を取り消すためのボタンである。この鍵スペック設定ダイアログにて暗号化方式を指定すると、その指定内容が各列項目に対する鍵スペック情報として鍵スペックテーブル１６ｃに登録される。
【００３９】
図６に鍵スペックテーブル１６ｃの登録例を示す。
【００４０】
ここでは、データベースの列番号「１」の項目に対して非暗号化、列番号「２」の項目に対して行鍵、列番号「３」の項目に対して列鍵、列番号「４」の項目に対して列鍵、列番号「５」の項目に対して行鍵が登録されている。列番号「１」の項目は「ｃｏｄｅ」、列番号「２」の項目は「ｎａｍｅ」、列番号「３」の項目は「ｓｔａｔｅ」、列番号「４」の項目は「ａｇｅ」、列番号「５」の項目は「ｐｈｏｎｅ」に相当する。
【００４１】
このようにして、基本鍵記憶部１６ｂに基本鍵が設定され、鍵スペックテーブル１６ｃに各列項目に対する鍵スペック情報が設定されると、これらの設定情報を用いてデータベースの暗号化が以下のような手順で実行される。
【００４２】
すなわち、図２に示すように、まず、外部データベース記憶装置１８の中から指定されたデータベースがデータ読出し部２５によって行単位（レコード単位）で読み出され、レコード入力メモリ２６に順に格納される。暗号化処理部２７はこのレコード入力メモリ２６に格納されたレコードを基本鍵パラメータテーブル１６ａ及び基本鍵記憶部１６ｂを用いて暗号化する。このときの暗号化処理については後に図７を参照して詳しく説明する。
【００４３】
暗号化処理部２７にて暗号化されたレコードは暗号化レコード書込メモリ２８に格納された後、データ書込み部２９を通じて暗号化データ格納部１６ｄに書き込まれる。このようにして、暗号化データ格納部１６ｄ内に暗号化されたデータベースが作成される。
【００４４】
一方、データベースの復号化は暗号化と逆の手順で行なわれる。
【００４５】
すなわち、まず、暗号化データ格納部１６ｄに格納された暗号化データベースが行単位（レコード単位）で読み出され、暗号化レコード読出メモリ３０に順に格納される。復号化処理部３１は、この暗号化レコード読出メモリ３０に格納された暗号化レコードを鍵スペックテーブル１６ｃ及び基本鍵記憶部１６ｂを用いて復号化する。このときの復号化処理については後に図７を参照して詳しく説明する。復号化処理部３１にて復号化されたレコードはレコード出力メモリ３２に格納された後、データ出力部３３を通じてデータファイル３４に出力される。このようにして、データファイル３４内に復号化されたデータベースが作成される。なお、データファイル３４は図１のデータ記憶装置１６の所定のエリアに設けられる。
【００４６】
図７に具体例を示す。
【００４７】
図７は本装置におけるデータベースの暗号化時と復号化時のデータの流れを示す図である。
【００４８】
今、暗号化対象として指定されたデータベースの１行目のレコードがデータ読出し部２５によって読み出され、レコード入力メモリ２６に格納されたとする。この場合、図１１（ａ）に示すデータベースを例にすると、そのデータベースの１行目の「１００１」，「Ｊｈｏｎ」，「Ｎｅｗ  Ｙｏｒｋ」，「２２」，「４０７−２２８−６６１１」といった５項目からなるデータが順にレコード入力メモリ２６に格納されることになる。
【００４９】
暗号化処理部２７は、この５項目のデータからなるレコードに対し、鍵スペックテーブル１６ｃを参照して各項目に応じた暗号化を行う。例えば、鍵スペックテーブル１６ｃに設定された内容が図６のような場合には、列番号「１」に相当する当該レコードの１項目（「ｃｏｄｅ」）のデータについては暗号化せずに、そのまま暗号化レコード書込メモリ２８に書き込む。
【００５０】
また、列番号「２」に相当する当該レコードの２項目（「ｎａｍｅ」）のデータについては行鍵を用いて暗号化して暗号化レコード書込メモリ２８に書き込む。行鍵は当該行番号と乱数によってランダムに生成されるものであり、各行毎に異なる値を有する。列番号「３」に相当する当該レコードの３項目（「ｓｔａｔｅ」）のデータについては列鍵を用いて暗号化する。この列鍵は各列に共通の値を有する。
【００５１】
同様にして、列番号「４」に相当する当該レコードの４項目（「ａｇｅ」）のデータについては列鍵、列番号「５」に相当する当該レコードの５項目（「ｐｈｏｎｅ」）のデータについては行鍵を用いて、それぞれ暗号化して暗号化レコード書込メモリ２８に書き込む。これにより、暗号化レコード書込メモリ２８には、「１００１」，「ｗｊｌｓ」，「ｎｏｅｖｊｏｌｃ」，「ｊｈ」，「ｊｇｄｌｔｙｔｆｈＤＳｋ」といった１行分の暗号化データが生成されることになる。
【００５２】
さらに、暗号化処理部２７は、基本鍵記憶部１６ｂにセットされたパラメータ値を用いて各行に共通の基本鍵にて当該レコードの暗号化に用いた行鍵を暗号化することにより、その暗号化後の行鍵を暗号化レコード書込メモリ２８に付加する。図７の例では、「９５６８」といったデータが暗号化後の行鍵である。
【００５３】
以上のような処理がデータベースの各行に対して繰り返し行われ、暗号化後のデータベースが暗号化データ格納部１６ｄに格納される。この状態が図１１（ｂ）に相当する。
【００５４】
一方、復号化時には、暗号化時と逆の処理になる。
【００５５】
すなわち、暗号化データ格納部１６ｄに格納された暗号化データベースが１レコード単位で暗号化レコード読出メモリ３０に読み出される。今、１行目の暗号化レコードが暗号化レコード読出メモリ３０に読み出されたとする。前記の例であれば、「１００１」，「ｗｊｌｓ」，「ｎｏｅｖｊｏｌｃ」，「ｊｈ」，「ｊｇｄｌｔｙｔｆｈＤＳｋ」及び「９５６８」といった行鍵を含む６項目からなる暗号化データが順に暗号化レコード読出メモリ３０に格納されることになる。
【００５６】
復号化処理部３１は、この６項目のデータからなるレコードに対し、鍵スペックテーブル１６ｃを参照して各項目に応じた復号化を行う。図６の例では、列番号「１」に相当する当該レコードの１項目（「ｃｏｄｅ」）のデータについては非暗号化であるため、そのままレコード出力メモリ３２に書き込む。
【００５７】
また、列番号「２」に相当する当該レコードの２項目（「ｎａｍｅ」）のデータについては行鍵を用いて復号化してレコード出力メモリ３２に書き込む。ただし、行鍵については暗号化時に基本鍵にて暗号化されているため、その基本鍵を用いて行鍵自体を復号化して元に戻す処理が必要となる。また、列番号「３」に相当する当該レコードの２項目（「ｎａｍｅ」）のデータについては列鍵を用いて復号化してレコード出力メモリ３２に書き込む。
【００５８】
同様にして、列番号「４」に相当する当該レコードの４項目（「ａｇｅ」）のデータについては列鍵、列番号「５」に相当する当該レコードの５項目（「ｐｈｏｎｅ」）のデータについては行鍵を用いて、それぞれ復号化してレコード出力メモリ３２に書き込む。これにより、レコード出力メモリ３２には、「１００１」，「Ｊｈｏｎ」，「Ｎｅｗ  Ｙｏｒｋ」，「２２」，「４０７−２２８−６６１１」といった１行分の復号化データ（元データ）が生成されることになる。
【００５９】
以上のような処理が暗号化データベースの各行に対して繰り返し行われ、復号化後のデータベースがデータファイル３４に格納される。この状態が図１１（ｃ）に相当する。
【００６０】
以下、フローチャートを参照して本装置の動作について説明する。
【００６１】
ここでは、（ａ）データベースを暗号化する場合の処理と、（ｂ）データベースを検索する場合の処理に分けて説明する。なお、このフローチャートで示す各機能を実現するプログラムはＣＰＵが読み取り可能なプログラムコードの形態で前記プログラム記憶装置１４の記録媒体に格納されている。また、このプログラムはプログラムコードの形態でネットワーク回線などの伝送媒体を介して伝送することもできる。
【００６２】
（ａ）データベースを暗号化する場合
図８は本装置にて実行されるデータベース暗号化処理の動作を示すフローチャートである。今、データベースが暗号化されていない状態で外部データベース記憶装置１８に記憶されているものとする。この状態が図１１（ａ）である。
【００６３】
データベースの暗号化を行う場合に、まず、図８（ａ）のフローチャートに示すように、基本鍵の設定を行う（ステップＡ１１）。この基本鍵の設定は、上述したように基本鍵設定ダイアログを通じて行う。
【００６４】
すなわち、図８（ｂ）のフローチャートに示すように、データベースの暗号化時に図３に示すような基本鍵設定ダイアログが表示装置１２に表示される（ステップＢ１１）。この基本鍵設定ダイアログには、基本鍵指定ボタン部４１が設けられており、オペレータはその基本鍵指定ボタン部４１に配列された複数個のボタンの中の任意のボタンを押下することで基本鍵の指定を行う。
【００６５】
オペレータが基本鍵指定ボタン部４１の中の任意のボタンを押下した後、ＯＫボタン５２を押下して確定指示を行うと（ステップＢ１２）、当該ボタンの位置に対応した基本鍵のパラメータ値が図４に示す基本鍵パラメータテーブル１６ａから読み出されて基本鍵記憶部１６ｂにセットされる（ステップＢ１３）。
【００６６】
次に、暗号化対象となるデータベースを指定する（ステップＡ１２）。本実施形態では、本装置とは独立した外部データベース記憶装置１８に各種のデータベース（元データ）を保持している。したがって、暗号化を行う場合には、データベースＩ／Ｆ１７を介して外部データベース記憶装置１８にアクセスし、その中から暗号化対象となるデータベースを指定するといった操作が必要となる。
【００６７】
暗号化対象となるデータベースを指定後、そのデータベースに設けられた各列項目の中で検索に利用する列項目と、暗号化を必要としない列項目をそれぞれ設定すると共に（ステップＡ１３）、各列項目に対する暗号化鍵（行鍵と列鍵）を決定する（ステップＡ１４）。
【００６８】
これらの設定は、上述した図５の鍵スペック設定ダイアログを通じて行う。この鍵スペック設定ダイアログは、オペレータがデータベースの各列項目（フィールド）毎に暗号化方式（暗号化に用いる鍵の種類）を任意に指定するための画面であり、前記ステップＡ１２にて、暗号化対象となるデータベースを指定した際に表示装置１２に表示される。ここでは、非暗号化を含め、０：非暗号化、１：行鍵、２：列鍵として、前記図５の鍵スペック設定ダイアログに設けられた暗号化方式指定欄５１にデータベースの各列項目に対する暗号化方式を数値入力するように構成されている。
【００６９】
この場合、図１１（ａ）に示すデータベースにおいて、検索に利用される列項目（つまり、高セキュリティが要求されない項目）は３列目の「ｓｔａｔｅ」と４列目の「ａｇｅ」であり、これらの列項目に対しては列鍵を指定し、その他の項目である２列目の「ｎａｍｅ」と５列目の「ｐｈｏｎｅ」は高セキュリティが要求される項目として行鍵を指定するものとする。また、暗号化を必要としない列項目は１列目の「ｃｏｄｅ」である。ここで設定された暗号化鍵は、鍵スペック情報として鍵スペックテーブル１６ｃに図６のように登録される。
【００７０】
このような設定操作の後、データベースの暗号化が以下のようにして実行される。
【００７１】
すなわち、まず、データベースの各行のデータが第１行目から順に図２に示すレコード入力メモリ２６に読み出される（ステップＡ１５）。その際、鍵生成装置１５の行鍵生成部１５ｂによって当該行に割り付けられた行番号と乱数により行鍵がランダムに生成され、データ記憶装置１６の所定のエリアに保持される（ステップＡ１６）。
【００７２】
ここで、レコード入力メモリ２６に読み出された行データの各列項目が１列目から順次に指定され（ステップＡ１７）、その指定された列項目に対する暗号化方式が鍵スペックテーブル１６ｃに記憶された鍵スペック情報に基づいて判断され（ステップＡ１８）、行鍵または列鍵を用いて暗号化される（ステップＡ１９〜Ａ２２）。
【００７３】
具体的に説明すると、データベースの中の１列目の項目である「ｃｏｄｅ」については図６の鍵スペックテーブル１６ｃに示すように非暗号化項目として設定されているので、何もしない（ステップＡ１８→Ａ２３）。つまり、「ｃｏｄｅ」の項目は元データのままである。
【００７４】
また、２列目の項目である「ｎａｍｅ」については行鍵が設定されているので、前記ステップＡ１６にて生成された当該行番号に対応した行鍵（各行毎に固有の鍵）がデータ記憶装置１６の所定エリアから読み出され（ステップＡ１８→Ａ２１）、その行鍵にて２列目のデータが暗号化される（ステップＡ２２）。
【００７５】
また、３列目の項目である「ｓｔａｔｅ」については列鍵が設定されているので、当該列番号に対応した列鍵（各列毎に共通の鍵）が鍵生成装置１５の列鍵生成部１５ｃにより生成され（ステップＡ１８→Ａ１９）、その列鍵にて３列目のデータが暗号化される（ステップＡ２０）。
【００７６】
以下同様にして、４列目の項目である「ａｇｅ」については列鍵にて暗号化が行われ、５列目の項目である「ｐｈｏｎｅ」については行鍵にて暗号化が行われることになる。
【００７７】
暗号化された各列項目のデータは、図２の暗号化レコード書込メモリ２８に格納される。ここで、最終項目の暗号化が終了した時点で、当該行データの２列目及び３列目の項目の暗号化に用いられた行鍵が基本鍵にて暗号化されて暗号化レコード書込メモリ２８に追加される（ステップＡ２５）。この基本鍵は、鍵生成装置１５の基本鍵生成部１５ａにて生成される。基本鍵生成部１５ａは、前記図３の基本鍵設定ダイアログにてオペレータが指定したパラメータ値を基本鍵記憶部１６ｂから読み出し、そのパラメータ値に基づいて基本鍵を生成する。
【００７８】
暗号化レコード書込メモリ２８に１行分の暗号化データと、行鍵を基本鍵にて暗号化したデータが格納されると、それらのデータが暗号化データ格納部１６ｄに保存される（ステップＡ２５）。
【００７９】
このような暗号化処理がデータベースの各行毎について繰り返し行なわれる（ステップＡ２６→Ａ１５）。すべての行のデータの暗号化処理が終了し、最終的に得られた暗号化データベースの状態が図１１（ｂ）である。この暗号化データベースには、各行の最終項目に行鍵が基本鍵にて暗号化された状態で付加されている。
【００８０】
（ｂ）データベースを検索する場合
次に、暗号化後のデータベースを検索する処理について説明する。
【００８１】
図９は本装置にて実行されるデータベース検索処理の動作を示すフローチャートである。今、前記（ａ）で説明した暗号化処理にて、データベースが暗号化されて暗号化データ格納部１６ｄに保存されているものとする。
【００８２】
まず、図９（ａ）のフローチャートに示すように、図示せぬデータベース検索用設定画面にて、検索情報の入力を行う（ステップＣ１１）。検索情報の入力とは、検索対象となる列項目と、検索用の文字列（キーワード）を入力することである。これらの入力情報はデータ記憶装置１６の所定のエリアに格納される。入力装置１３を通じて検索情報が入力されると、検索前処理が実行される（ステップＣ１２）。
【００８３】
この検索前処理では、図９（ｂ）のフローチャートに示すように、検索対象として入力された列項目が所定の列項目であるか否かが判断され（ステップＤ１１）、所定の列項目であることが判明した場合には（ステップＤ１１のＹｅｓ）、その列項目に共通の列鍵で検索用の文字列が暗号化される（ステップＤ１２）。
【００８４】
所定の列項目とは、前記データベースの暗号化時に設定された検索対象項目（検索に利用される項目つまり高セキュリティが要求されない項目）であり、具体的には「ｓｔａｔｅ」，「ａｇｅ」の各項目が該当する。この検索対象項目には列鍵が設定されている。したがって、前記ステップＤ１１では、鍵スペックテーブル１６ｃを参照して当該列項目に設定された鍵の種類によって所定の列項目であるか否かの判断を行うことになる。所定の列項目であれば、鍵生成装置１５の列鍵生成部１５ｃにより当該列項目に対応した列鍵を生成し、その列鍵にて検索用の文字列を暗号化することになる。
【００８５】
また、検索対象として入力された列項目が所定の列項目でなかった場合には（ステップＤ１１のＮｏ）、前記のような検索用文字列の暗号化は行われない。
【００８６】
このような検索前処理の後、データベースの検索処理（図１０参照）が行われ（ステップＣ１３）、その検索結果として得られたデータが表示装置１２に表示される（ステップＣ１４）。図１０にデータベースの検索処理を示す。
【００８７】
図１０は前記ステップＣ１３の検索処理の動作を具体的に示すフローチャートである。
【００８８】
まず、図１０（ａ）のフローチャートに示すように、検索用文字列がデータベースとの比較文字列としてデータ記憶装置１６の検索文字列格納部１６ｅにセットされる（ステップＥ１１）。この場合、上述したように検索対象として入力された列項目が所定の列項目（「ｓｔａｔｅ」，「ａｇｅ」）であった場合には、前記検索前処理によって、当該検索用文字列がその列項目に対応した列鍵にて暗号化されて検索文字列格納部１６ｅにセットされる。その他の列項目の場合には、暗号化されることなく、そのままの状態で検索文字列格納部１６ｅにセットされる。
【００８９】
次に、データ記憶装置１６のデータベース格納エリア１６ａに格納された暗号化データベースの列番号による暗号化方式が判断される（ステップＥ１２）。その結果、検索対象が列鍵で暗号化された所定の列項目に該当する場合には、その対象列の各行データが順次走査され（ステップＥ１２→Ｅ１３）、それらの行の暗号化文字列と前記検索文字列格納部１６ｅにセットされた検索用文字列（暗号化された文字列）とが比較される（ステップＥ１４）。
【００９０】
この比較処理では、図１０（ｂ）のフローチャートに示すように、データベースから取り出された当該行の暗号化文字列と検索用の暗号化文字列とを比較して、両者が一致するか否かを判断する（ステップＦ１１）。両者が一致した場合には（ステップＦ１１のＹｅｓ）、その一致した項目を含むレコードデータをデータベース検索結果として抽出する（ステップＦ１２）。
【００９１】
この処理を暗号化データベースの終端まで繰り返して、該当するデータを順次抽出し（ステップＥ１５）、この抽出したデータを検索結果として出力する（ステップＥ２１）。
【００９２】
具体的に説明すると、図１１（ｂ）の暗号化データベースの例で、例えば「ｓｔａｔｅ」の項目の中の「Ｆｌｏｒｉｄａ」といったデータを検索することが指定された場合には、まず、検索用データとして入力された「Ｆｌｏｒｉｄａ」を「ｓｔａｔｅ」の３列目の列鍵で暗号化して「ｈ＊／ｆＤＤ」を得る。この「ｈ＊／ｆＤＤ」といったデータを「ｓｔａｔｅ」の列から検索する。これにより、コード番号の「１００１」と「１００８」に該当するデータが存在することがわかる。
【００９３】
一方、検索対象が行鍵で暗号化された列項目つまり高セキュリティが要求される列項目に該当する場合には、その対象列の各行データが順次走査される（ステップＥ１２→Ｅ１６）。ここで、これらの行データの暗号化に用いられた各行鍵は基本鍵にて暗号化されているので、各行鍵を基本鍵にて復号化するといった処理が必要となる（ステップＥ１７）。各行鍵が基本鍵にて復号化されると、それらの行鍵を用いて各行の暗号化文字列が復号化され（ステップＥ１８）、その復号化の文字列と前記検索文字列格納部１６ｅにセットされた検索用文字列（非暗号化文字列）とが比較される（ステップＥ１９）。
【００９４】
この比較処理では、図１０（ｂ）のフローチャートに示すように、データベースから取り出された当該行の復号化文字列と検索用の非暗号化文字列との比較により、両者が一致するか否かを判断する（ステップＦ１１）。両者が一致した場合には（ステップＦ１１のＹｅｓ）、その一致した項目を含むレコードデータをデータベース検索結果として抽出する（ステップＦ１２）。
【００９５】
この処理を暗号化データベースの終端まで繰り返して、該当するデータを順次抽出し（ステップＥ２０）、この抽出したデータを検索結果として出力する（ステップＥ２１）。
【００９６】
具体的に説明すると、図１１（ｂ）の暗号化データベースの例で、例えば「ｎａｍｅ」の項目の中の「Ｊｈｏｎ」といったデータを検索することが指定された場合には、まず、「ｎａｍｅ」の１行目に対応した行鍵「９６５４」（暗号化データ）を基本鍵にて復号化した後、その行鍵を用いて１行目の「ｗＪＩＳ」を復号化して「Ｊｈｏｎ」といったデータを得る。同様にして、各行に対応した行鍵（暗号化データ）を基本鍵にて復号化した後、その行鍵を用いて各行目のデータを復号化して元のデータを得る。図１１（ｃ）に示すように「ｎａｍｅ」の項目の各行のデータを各行鍵にて復元した後、その中から検索用データとして入力された「Ｊｈｏｎ」と一致するデータを検索する。これにより、コード番号の「１００１」に該当するデータが存在することがわかる。
【００９７】
このように、データベースを暗号化する際に、検索に利用される所定の列項目については列共通鍵で暗号化することで、検索時には、検索用データをその列共通鍵で暗号化してデータベース上の暗号化データと比較して高速検索を実現できる。また、所定の列項目以外の列項目については各行毎に異なる鍵を与えて暗号化と、さらに、その行鍵を基本鍵にて暗号化しておくことで、鍵の解読を困難として高セキュリティ化を実現できるものである。
【００９８】
（第２の実施形態）
前記第１の実施形態では、本発明を装置単体で構成したが、データベース管理を行う端末とデータベース検索を行う端末とに分けて、これらの端末でデータベースシステムを構築することも可能である。
【００９９】
以下に、このようなデータベースシステムについて説明する。
【０１００】
図１２は本発明の第２の実施形態に係るデータベースシステムの構成を示すブロック図である。本システムは、１台のサーバ装置１００と複数台（ここでは３台のみ示す）の携帯端末２００ａ，２００ｂ，２００ｃ…とで構成される。サーバ装置１００と各携帯端末２００ａ，２００ｂ，２００ｃ…との間はオフラインであり、データの授受は記録媒体４００ａ，４００ｂ，４００ｃ…を通じて行われる。
【０１０１】
サーバ装置１００は、データベースサービスを行うサーバコンピュータとして用いられるものであって、各端末に配布するデータの収集処理を行う配布データ収集装置１０１、データベースの暗号化処理を行う暗号化装置１０２、各種アプリケーションソフト（ＡＰ）を格納したＡＰソフト格納部１０３、各種のデータベースを格納したデータベース格納部１０４を備えている。ＡＰソフト格納部１０３及びデータベース格納部１０４は、例えば磁気ディスク装置等のデータ記憶装置によって構成される。この他、サーバ装置１００には、特に図示しないが、汎用コンピュータに標準装備されている表示装置、入力装置等も設けられている。
【０１０２】
一方、携帯端末２００ａ，２００ｂ，２００ｃ…は、サーバ装置１００からデータベースの提供を受けるクライアントコンピュータとして用いられるものである。携帯端末２００ａは、暗号化されたデータベースを復号化処理する復号化装置２０１ａ、データベース検索処理を行うデータベース検索装置２０２ａを備えている。携帯端末２００ｂ，２００ｃについても同様の構成であり、それぞれに復号化装置２０１ｂ，２０１ｃ、データベース検索装置２０２ｂ，２０２ｃを備えている。また、携帯端末２００ａ，２００ｂ，２００ｃには、特に図示しないが、表示装置、入力装置等の他、媒体読込み装置も設けられている。これらの携帯端末２００ａ，２００ｂ，２００ｃ…は、オンライン上でデータを閲覧するためのブラウザ機能を備えておらず、サーバ装置１００との間のデータの授受はすべて記録媒体４００ａ，４００ｂ，４００ｃ…を通じて行うように構成されている。
【０１０３】
記録媒体４００ａ，４００ｂ，４００ｃ…は、例えばＣＦカード（コンパクトフラッシュ（登録商標）メモリカード）からなる可搬型の記録媒体である。カードリーダ／ライタ３００は、これらの記録媒体４００ａ，４００ｂ，４００ｃ…に対するデータの書込みや読出しを行うためのデバイスであり、サーバ装置１００に接続されている。
【０１０４】
このような構成において、サーバ装置１００側では、データベース格納部１０４内の各種データベースの中でオペレータが指定したデータベースを読み込み、暗号化装置１０２を通じて暗号化する。この場合、暗号化装置１０２では、前記第１の実施形態と同様の手法によりデータベースの暗号化する。すなわち、検索に利用される所定の列項目については列共通鍵で暗号化すると共に、所定の列項目以外の列項目については高セキュリティが要求される項目として、各行毎に異なる鍵を与えて暗号化し、さらに、その行鍵を基本鍵にて暗号化するといった処理を行う。
【０１０５】
ここで、暗号化装置１０２によって暗号化されたデータベースをファイルに保存し、この暗号化ファイルを例えばＣＦカード等の可搬型記録媒体４００ａ，４００ｂ，４００ｃ…にカードリーダ／ライタ３００を用いて格納する。この場合、記録媒体４００ａ，４００ｂ，４００ｃ…に暗号化ファイルを格納する際に、図１３に示すように、暗号化データファイル４０２の他に、鍵スペックテーブル４０３、基本鍵パラメータテーブル４０４、さらにアプリケーションプログラム４０１も格納しておく。
【０１０６】
鍵スペックテーブル４０３は、データベースの各列（フィールド）毎に定義された暗号化方式の種類（非暗号化，行鍵，列鍵）を記憶したテーブルであり、前記第１の実施形態における鍵スペックテーブル１６ｃと同様の構成を有する（図６参照）。基本鍵パラメータテーブル４０４は、基本鍵のパラメータ値が登録されたテーブルであり、前記第１の実施形態における基本鍵パラメータテーブル１６ａと同様の構成を有する（図４参照）。この鍵スペックテーブル４０３及び基本鍵パラメータテーブル４０４は、暗号化装置１０２内に保持されていたものである。また、アプリケーションプログラム４０１は、データベース検索用のプログラムであり、ＡＰソフト格納部１０３内に保持されていたものである。
【０１０７】
これらの情報が格納された記録媒体４００ａ，４００ｂ，４００ｃ…は、携帯端末２００ａ，２００ｂ，２００ｃ…を扱う各ユーザにそれぞれ配布される。各ユーザは、配布された記録媒体４００ａ，４００ｂ，４００ｃ…を自身が持つ端末に挿入することで、データ検索を行うことができる。
【０１０８】
すなわち、例えば携帯端末２００ａであれば、配布された記録媒体４００ａを挿入することで、その記録媒体４００ａに記録されていたデータ検索用のアプリケーションプログラム４０１、暗号化データファイル４０２の他に、鍵スペックテーブル４０３、基本鍵パラメータテーブル４０４を読み込む。そして、データ検索用のアプリケーションプログラム４０１を起動し、所望の列項目を指定して、暗号化データファイル４０２に対するデータ検索を行い、その検索結果として得られたデータを復号化して表示する。
【０１０９】
データ検索は、携帯端末２００ａに設けられたデータベース検索装置２０２ａにて行われる。このデータベース検索装置２０２ａは、データ検索用のアプリケーションプログラム４０１に従って動作し、前記第１の実施形態と同様のデータベース検索処理を実行する。また、データの復号化は、復号化装置２０１ａにて行われる。この復号化装置２０１ａは、鍵スペックテーブル４０３及び基本鍵パラメータテーブル４０４を参照して、前記第１の実施形態と同様のデータベース復号化処理を実行する。
【０１１０】
このように、データベース管理を行う端末とデータベース検索を行う端末とに分けてデータベースシステムを構築するようにすれば、例えば顧客管理用のデータベースを暗号化して記録媒体に記録し、これを営業マンに配布し、営業マンは別の端末を用いてデータ検索を行うといったような利用が可能となる。この場合、記録媒体に記録されたデータベースは上述したような手法にて暗号化されているため、そのデータの機密性を保持することができる。また、記録媒体には、暗号化ファイルだけでなく、データ検索用のアプリケーションプログラムも格納されている。したがって、携帯端末側にはデータ検索用のアプリケーションプログラムを搭載しておく必要はなく、簡易な構成の携帯端末で本システムを実現できるといった利点がある。
【図面の簡単な説明】
【０１１１】
【図１】本発明の第１の実施形態に係るデータベース管理装置の構成を示す図。
【図２】前記データベース管理装置の構成を機能的に示したブロック図。
【図３】前記データベース管理装置における基本鍵設定ダイアログの構成を示す図。
【図４】前記データベース管理装置における基本鍵パラメータテーブルの一例を示す図。
【図５】前記データベース管理装置における鍵スペック設定ダイアログの構成を示す図。
【図６】前記データベース管理装置における鍵スペックテーブルの登録例を示す図。
【図７】前記データベース管理装置におけるデータベースの暗号化時と復号化時のデータの流れを示す図。
【図８】前記データベース管理装置にて実行されるデータベース暗号化処理の動作を示すフローチャート。
【図９】前記データベース管理装置にて実行されるデータベース検索処理の動作を示すフローチャート。
【図１０】前記図９のステップＣ１３の検索処理の動作を具体的に示すフローチャート。
【図１１】前記データベース管理装置におけるデータベースの構成を説明するための図であり、図１１（ａ）は暗号化前の状態、同図（ｂ）は暗号化後の状態、同図（ｃ）は復号化後の状態を示す図。
【図１２】本発明の第２の実施形態に係るデータベースシステムの構成を示すブロック図。
【図１３】前記データベースシステムに用いられる記録媒体のデータ内容を示す図。
【符号の説明】
【０１１２】
１１…ＣＰＵ
１２…表示装置
１３…入力装置
１４…プログラム記憶装置
１５…鍵生成装置
１５ａ…基本鍵生成部
１５ｂ…行鍵生成部
１５ｃ…列鍵生成部
１６…データ記憶装置
１６ａ…基本鍵パラメータテーブル
１６ｂ…基本鍵記憶部
１６ｃ…鍵スペックテーブル
１６ｄ…暗号化データ格納部
１６ｅ…検索文字列格納部
１７…データベースＩ／Ｆ
１８…外部データベース記憶装置
１００…サーバ装置
２００ａ〜２００ｃ…携帯端末
３００…カードリーダ／ライタ
４００ａ〜４００ｃ…記録媒体
【図１】
2008097648.tif 000003
【図２】
2008097648.tif 000004
【図３】
2008097648.tif 000005
【図４】
2008097648.tif 000006
【図５】
2008097648.tif 000007
【図６】
2008097648.tif 000008
【図７】
2008097648.tif 000009
【図８】
2008097648.tif 000010
【図９】
2008097648.tif 000011
【図１０】
2008097648.tif 000012
【図１１】
2008097648.tif 000013
【図１２】
2008097648.tif 000014
【図１３】
2008097648.tif 000015