(57)【特許請求の範囲】
【請求項１】
複数のコンピュータ間でデータベースを共有化するデータベース共有化システムにおいて、暗号化された蓄積データ本体と前記データベースに対してユーザ登録されたユーザのＩＤ、前記ユーザの公開鍵および前記暗号化された蓄積データ本体に対応する暗号鍵を前記ユーザの公開鍵で暗号化して得られた暗号化暗号鍵の内、少なくとも前記公開鍵および暗号化暗号鍵を含むデータベースアクセス情報とを保有するデータベースを記憶する第１の記憶手段と、前記データベースに対するアクセス権限を有する複数のユーザのＩＤ、当該複数のユーザの対応するコンピュータへのログイン情報、前記複数のユーザの公開鍵および当該複数のユーザの公開鍵に対応する秘密鍵を含むユーザ認証情報を記憶する第２の記憶手段と、前記複数のユーザおよびコンピュータに対するメールアドレスおよび当該複数のユーザの公開鍵を含むアドレス情報をそれぞれ記憶するアドレス情報記憶手段とを備えており、前記各コンピュータは、前記アドレス情報記憶手段内に前記データベースに対して未登録の他コンピュータユーザの公開鍵が不足している際に、前記他コンピュータユーザのメールアドレスに基づいて前記コンピュータに対して当該他コンピュータユーザの公開鍵を要求する公開鍵要求手段と、他コンピュータからの公開鍵要求に応じて、対応する他コンピュータユーザの公開鍵を前記第２の記憶手段のユーザ認証情報から読み出して返信する公開鍵返信手段と、返信された他コンピュータユーザの公開鍵に基づいて暗号化された前記他コンピュータユーザの暗号化暗号鍵および前記他コンピュータユーザに対して設定されたアクセス権限に基づいて前記データベースを編集して前記他コンピュータユーザを当該データベースに登録する登録手段とを備えたことを特徴とするデータベース共有化システム。
【請求項２】
前記公開鍵要求手段は、他コンピュータユーザのメールアドレスに基づいて前記他コンピュータユーザの公開鍵を要求するメールを作成するメール作成手段と、作成された公開鍵要求メールを前記他コンピュータに送信する鍵要求メール送信手段と、前記他コンピュータから返信されてきた当該他コンピュータユーザの公開鍵を前記アドレス情報記憶手段に書込む公開鍵書込み手段とを備えたことを特徴とする請求項１記載のデータベース共有化システム。
【請求項３】
前記公開鍵返信手段は、前記他コンピュータから送信されてきたメールが鍵要求メールか否かを解読し、その解読の結果、公開鍵要求メールの場合に、前記第２の記憶手段から前記鍵要求メールに対応する他コンピュータユーザの公開鍵を読み出してメールに添付することにより返信メールを作成する返信メール作成手段と、作成された返信メールを前記公開鍵要求メール送信元の他コンピュータに対して返信するメール返信手段とを備えたことを特徴とする請求項２記載のデータベース共有化システム。
【請求項４】
前記登録手段は、前記メール返信手段から返信された返信メールに添付された前記他コンピュータユーザの公開鍵を取り出す取出し手段と、取り出された他コンピュータユーザの公開鍵を用いて、暗号化された蓄積データ本体に対応する暗号鍵を暗号化して暗号化暗号鍵を生成する暗号化手段と、前記データベースのアクセス権限情報に基づいて前記他コンピュータユーザに対応するアクセス権限を設定する設定手段と、生成された他コンピュータユーザの暗号化暗号鍵および設定された他コンピュータユーザのアクセス権限を前記データベースに書込むことにより、当該他コンピュータユーザを当該データベースに登録する書込み手段とを備えたことを特徴とする請求項３記載のデータベース共有化システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のコンピュータ間（複数のユーザ間）でデータベースをセキュアに共有化するためのデータベース共有化システムに関する。
【０００２】
【従来の技術】
従来、データベースの共有は、データベースサーバにデータベースを置いて行われている。このようなシステムでは、ユーザは、ユーザＩＤを入力してデータベースサーバにログインすることにより、データベースサーバを介してユーザの認証が行なわれ、データベースの使用が正式に許可されているユーザだけがデータベースに対してアクセスできるように構成されている。
【０００３】
また、例えば出張先等、データベースサーバにログインすることなくデータベースを使用する際には、データベースサーバに置かれたデータベースのレプリカを、出張先で使用するパーソナルコンピュータ等のコンピュータに置き、アクセスしている。
【０００４】
【発明が解決しようとする課題】
従来のデータベース共有システムにおいて、データベースをデータベースサーバを経由することなく使用する場合には、データベースは、ユーザによりコンピュータに置かれる。
【０００５】
したがって、データベースが置かれたコンピュータを操作することにより、誰でもデータベースにアクセスすることができるため、複数のユーザ間でデータベースを共有することができる。
【０００６】
しかしながら、従来のデータベース共有システムにおいては、データベース使用権限がないユーザもデータベースにアクセスしてデータベースの内容を読取ることができるため、データベース共有システムのセキュリティを低下させていた。
【０００７】
そこで、データベース使用権限がないユーザのデータベースへのアクセスを防止するために、データベースをそのユーザの暗号鍵を用いて暗号化することにより、データベースアクセスのセキュリティを高めることも行なわれている。
【０００８】
しかしながら、特定の複数のユーザが出張先等においてデータベースサーバにログインすることなくデータベースを使用する場合には、暗号鍵に対応するユーザ以外のユーザはデータベースに対してアクセスすることができず、複数のユーザ間のセキュアなデータベース共有化を実現することができなかった。
【０００９】
また、従来のデータベース共有システムにおいては、データベース使用権限を有するユーザをそのユーザＩＤにより管理しているため、ユーザＩＤを入力することなく匿名のユーザとしてデータベースにアクセスすることができず、ユーザのプライバシーを保護することが難しかった。
【００１０】
本発明は、上述した事情に鑑みてなされたもので、例えば出張先等において、データベースサーバにログインすることなくデータベースをセキュアに共有することを可能にしたデータベース共有方法およびシステム、ならびにコンピュータ読取り可能な記憶媒体を提供することにある。
【００１１】
特に、本発明は、上述した事情に鑑みてなされたもので、各ユーザ毎の暗号鍵を用いてデータベースをアクセスすることを可能にして、データベース共有化をセキュアに実現することにある。
【００１２】
さらに、本発明は、上述した事情に鑑みてなされたもので、ユーザＩＤを入力することなく匿名のユーザとしてデータベースにアクセスすることを可能にして、ユーザのプライバシーを保護しながらデータベース共有化を実現することにある。
【００１９】
【課題を解決するための手段】
上述した目的を達成するための請求項１記載の発明によれば、複数のコンピュータ間でデータベースを共有化するデータベース共有化システムにおいて、暗号化された蓄積データ本体と前記データベースに対してユーザ登録されたユーザのＩＤ、前記ユーザの公開鍵および前記暗号化された蓄積データ本体に対応する暗号鍵を前記ユーザの公開鍵で暗号化して得られた暗号化暗号鍵の内、少なくとも前記公開鍵および暗号化暗号鍵を含むデータベースアクセス情報とを保有するデータベースを記憶する第１の記憶手段と、前記データベースに対するアクセス権限を有する複数のユーザのＩＤ、当該複数のユーザの対応するコンピュータへのログイン情報、前記複数のユーザの公開鍵および当該複数のユーザの公開鍵に対応する秘密鍵を含むユーザ認証情報を記憶する第２の記憶手段と、前記複数のユーザおよびコンピュータに対するメールアドレスおよび当該複数のユーザの公開鍵を含むアドレス情報をそれぞれ記憶するアドレス情報記憶手段とを備えており、前記各コンピュータは、前記アドレス情報記憶手段内に前記データベースに対して未登録の他コンピュータユーザの公開鍵が不足している際に、前記他コンピュータユーザのメールアドレスに基づいて前記コンピュータに対して当該他コンピュータユーザの公開鍵を要求する公開鍵要求手段と、他コンピュータからの公開鍵要求に応じて、対応する他コンピュータユーザの公開鍵を前記第２の記憶手段のユーザ認証情報から読み出して返信する公開鍵返信手段と、返信された他コンピュータユーザの公開鍵に基づいて暗号化された前記他コンピュータユーザの暗号化暗号鍵および前記他コンピュータユーザに対して設定されたアクセス権限に基づいて前記データベースを編集して前記他コンピュータユーザを当該データベースに登録する登録手段とを備えている。
【００２０】
請求項２記載の発明において、前記公開鍵要求手段は、他コンピュータユーザのメールアドレスに基づいて前記他コンピュータユーザの公開鍵を要求するメールを作成するメール作成手段と、作成された公開鍵要求メールを前記他コンピュータに送信する鍵要求メール送信手段と、前記他コンピュータから返信されてきた当該他コンピュータユーザの公開鍵を前記アドレス情報記憶手段に書込む公開鍵書込み手段とを備えている。
【００２１】
請求項３記載の発明において、前記公開鍵返信手段は、前記他コンピュータから送信されてきたメールが鍵要求メールか否かを解読し、その解読の結果、公開鍵要求メールの場合に、前記第２の記憶手段から前記鍵要求メールに対応する他コンピュータユーザの公開鍵を読み出してメールに添付することにより返信メールを作成する返信メール作成手段と、作成された返信メールを前記公開鍵要求メール送信元の他コンピュータに対して返信するメール返信手段とを備えている。
【００２２】
請求項４記載の発明において、前記登録手段は、前記メール返信手段から返信された返信メールに添付された前記他コンピュータユーザの公開鍵を取り出す取出し手段と、取り出された他コンピュータユーザの公開鍵を用いて、暗号化された蓄積データ本体に対応する暗号鍵を暗号化して暗号化暗号鍵を生成する暗号化手段と、前記データベースのアクセス権限情報に基づいて前記他コンピュータユーザに対応するアクセス権限を設定する設定手段と、生成された他コンピュータユーザの暗号化暗号鍵および設定された他コンピュータユーザのアクセス権限を前記データベースに書込むことにより、当該他コンピュータユーザを当該データベースに登録する書込み手段とを備えている。
【００３０】
【発明の実施の形態】
本発明の実施の形態について図面を参照して説明する。
【００３１】
図１は、本発明の各実施形態に係るデータベース共有システム１の全体的な構成を示す図である。
【００３２】
図１によれば、データベース共有化システム１は、公衆回線や専用回線を用いたネットワーク２に接続された複数のコンピュータ３、４および５を備えている。なお、図１においては、３台のコンピュータであるが、コンピュータの数は任意である。
【００３３】
上記複数のコンピュータ３〜５は、ネットワーク２にデータベース管理用のデータベースサーバが接続されている際には、そのデータベースサーバに対してデータベースアクセス要求を行ない、そのデータベースアクセス要求に応じてデータベースサーバから送信されたデータに応じてデータベースの閲覧、編集等の処理を行なうようになっており、サーバクライアントシステムにおけるクライアント３〜５として構成されている。
【００３４】
そして、本実施形態において、データベース共有化システム１においては、データベースサーバを用いることなく、あるいはデータベースサーバにデータベースを配置することなく、あるいはデータベースサーバにログインすることなく、各クライアント３〜５にデータベースサーバ機能を持たせることにより、複数のクライアント３〜５間でデータベースを共有化するものである。したがって、厳密には、各コンピュータ３〜５は、クライアント／サーバと記載するのが相応しいとも言えるが、簡単化のため、クライアント３〜５と記載する。
【００３５】
すなわち、データベース共有化システム１において、共有化するデータベースは、ネットワーク２上の任意の少なくとも１台のクライアントあるいはサーバに置かれている。
【００３６】
各クライアント３〜５は、ワークステーションやパーソナルコンピュータ等のコンピュータ本体（計算機本体）に表示装置、入力装置、記憶装置およびユーザ認証装置としての指紋読取装置等を付加して構成されている。
【００３７】
図２は、データベース共有化システム１における各クライアント３〜５のハードウエア構成を示すブロック図である。
【００３８】
図２に示すように、各クライアント３〜５は、コンピュータ（クライアントコンピュータ）本体（以下、単にコンピュータと記載する）１０と、このコンピュータ１０に接続された表示装置１１、入力装置１２、印刷装置１３、外部記憶装置１４および指紋読取り装置１５とを備えている。
【００３９】
コンピュータ１０は、ＣＰＵバス１６、ＣＰＵ１７、ＲＯＭ１８およびＲＡＭ１９をそれぞれ備えており、ＣＰＵ１７、ＲＯＭ１８およびＲＡＭ１９は、それぞれ互いに通信可能にＣＰＵバス１６に接続されている。
【００４０】
また、コンピュータ１０は、ＣＰＵバス１６に接続された周辺装置インタフェース用のインタフェース部２０〜２６をそれぞれ備えており、これらインタフェース部２０〜２６には、各周辺装置、すなわち、ハードディスク装置２８、通信装置２９、表示装置１１、入力装置１２、印刷装置１３、外部記憶装置１４および指紋読取り機１５がそれぞれ接続されており、ＣＰＵ１７は、ＣＰＵバス１６および各インタフェース部２０〜２６を介して各周辺装置２８、２９、１１〜１５を制御するようになっている。
【００４１】
ＲＯＭ１８には、コンピュータ１０を起動してオペレーティングシステム（ＯＳ）等を立ち上げるのに用いられるブート処理プログラムなどが格納されている。
【００４２】
また、ハードディスク装置（ハードディスクドライブ；ＨＤＤ）２８には、プログラム格納部（格納領域）３０およびデータ格納部（格納領域）３１が設けられている。
【００４３】
プログラム格納部３０には、ＯＳやデータベース共有システムを実現するプログラム（データベース共有システムプログラム３４）等が格納され、データ格納部３１には、後述するデータベース、ＩＤファイル、アドレス帳、チケット、その他各種の情報が格納される。
【００４４】
ＲＡＭ１９は、いわゆる主記憶やキャッシュ記憶に使用される。すなわち、ＲＡＭ１９は、ＣＰＵ１７による各種処理のための作業領域３２とプログラム格納領域３３とを備えており、このプログラム格納領域３３には、ＣＰＵ１７の処理によりプログラム格納部３１から読み込まれたデータベース共有システムプログラム３４が格納されるようになっている。
【００４５】
各クライアント３〜５のＣＰＵ１７は、ＲＡＭ１９に格納されたデータベース共有システムプログラム３４に従って、上記各周辺装置に対する制御処理を含む演算制御処理を実行することにより、自クライアント、他クライアントあるいはデータベースサーバに置かれた共有データベースに対してアクセスできるようになっており、データベース共有化システム１を実現している。
【００４６】
通信装置２９は、自クライアントおよび他クライアント間の通信処理および自クライアントおよびデータベースサーバ間の通信処理を行なうようになっており、自クライアントのデータ格納部３１に格納された各種データ（データベース、メール、チケット等）の内の少なくとも一部は、ＣＰＵ１７の処理により、必要に応じて他クライアントやデータベースサーバに供給され、また、他クライアントやデータベースサーバから供給されたデータ（データベース、メール、チケット等の内の少なくとも一部）は、ＣＰＵ１７の処理により、通信装置２９を介して自クライアント内に受け取られ、ハードディスク装置２８のデータ格納部３１に格納されるようになっている。
【００４７】
表示装置１１および入力装置１２は、ＣＰＵ１７と協調してＧＵＩ機能を実現しており、ユーザは、自クライアントの入力装置１２を操作することにより、表示装置１１の表示画面上においてＣＰＵ１７に対して各種指令を入力可能になっており、また、表示画面上に表示されたデータの編集作業を行なうことが可能になっている。
【００４８】
外部記憶装置１４は、コンピュータ１０の処理により、自クライアントのデータ格納部３１に格納された各種データ（データベース、ＩＤファイル、チケット、アドレス帳、プログラム、その他各種情報）の内の少なくとも一部を可搬な記憶媒体に格納し、保存や輸送を便利かつ容易にする装置である。外部記憶装置１４としては、例えば可搬媒体がフロッピーディスクであるフロッピーディスク装置（フロッピーディスクドライブ；ＦＤＤ）、可搬媒体が光磁気ディスクである光磁気ディスク装置（ＭＯ）、可搬媒体がＣＤ−Ｒ（コンパクトディスクリコーダブル）であるＣＤ−Ｒドライブ装置、可搬媒体がＣＤ−Ｒ／Ｗ（コンパクトディスクリライタブル）であるＣＤ−Ｒ／Ｗドライブ装置、可搬媒体がＤＶＤであるＤＶＤドライブ装置、可搬媒体がＩＣメモリであるＩＣメモリ読書装置、あるいは可搬媒体がＺＩＰディスクであるＺＩＰドライブ装置等が用いられる。
【００４９】
指紋読取り装置１５は、ユーザ（人間）の指紋を読取る装置であり、自クライアントの使用が許可されたユーザであるか否かを認証するようになっている。なお、本発明の各実施形態においては、ユーザ認証用として上記指紋読取り装置を用いたが、本人確認に使用できる装置であれば何でも使用可能である。また、特別の認証装置を用いないで、ユーザのパスワード入力・照合による認証も可能である。
【００５０】
（第１の実施の形態）
図３は、本発明の第１の実施の形態に係るデータベース４１の概略構造を概念的に示す図である。このデータベース４１は、クライアント３〜５で共有化されるものであり、クライアント３〜５の内の少なくとも１台か、あるいはデータベースサーバに保持されている。
【００５１】
図３に示すように、データベース４１は、データベース４１自体のＩＤを表すデータベース（ＤＢ）ＩＤ４２と、データベース４１の使用権限（アクセス権限）を有するユーザの認証情報４３とを備えている。
【００５２】
ユーザ認証情報４３は、図３に示すように、予めデータベース４１内に記憶されたクライアント３のユーザであるＡ氏のＩＤ４３−１Ａと、予めデータベース４１内に記憶されたユーザＡ氏の公開鍵４３−２Ａと、ユーザＡ氏の公開鍵により暗号化された暗号化乱数４３−３Ａと、予めデータベース４１に記憶されたユーザＡ氏による暗号化暗号鍵４３−４Ａとを備えている。
【００５３】
この暗号化暗号鍵４３−４Ａは、データベース４１の暗号化された蓄積データ（データベース本体）に対応する暗号鍵（一般的な共通鍵方式の暗号鍵）をＡ氏の公開鍵により暗号化して得られたものである。
【００５４】
同様に、４３−１Ｂ、４３−２Ｂ、４３−３Ｂ、４３−４Ｂは、それぞれクライアント４のユーザＢ氏に対するＩＤ、公開鍵、暗号化係数、暗号化暗号鍵であり、４３−１Ｃ、４３−２Ｃ、４３−３Ｃ、４３−４Ｃは、それぞれクライアント５のユーザＣ氏に対するＩＤ、公開鍵、暗号化係数、暗号鍵である。
【００５５】
本実施形態においては、ユーザＣ氏までを記載しているが、データベース４１のアクセス権限を有するユーザの人数が多い場合には、ユーザ認証情報４３の中身がユーザ人数に応じて増加するようになっている。
【００５６】
公開鍵は、秘密鍵と組み合わせて使用される暗号鍵であり、例えば周知のＲＳＡ方式等が適用される。
【００５７】
一方、データベース４１は、図３に示すように、各ユーザＡ〜Ｃのデータベース４１に対するアクセス権限のレベルを各ユーザの名前に対応付けて保持するアクセス制御リスト４４と、暗号化された蓄積データを含むデータベース本体４５と、データベース４１のデータベース本体４５を操作制御するデータベース制御プログラム４６とを備えている。
【００５８】
アクセス制御リスト４４には、データベースアクセス権限を有するユーザ毎に、そのユーザのデータベースアクセス権限レベルとして、投稿者権限、データベース本体４５のデータベースレコードを読み出すことができる読者権限、新規データベースレコードを作成できる作成者権限、データベースレコードの内容を編集する編集者権限およびデータベース本体を管理する管理者権限の内の何れかがそれぞれ設定されている。
【００５９】
図４は、第１の実施の形態に係る例えばユーザＡ氏のユーザＩＤファイル４７の概略構造を概念的に示す図である。なお、他のユーザＢおよびＣ氏のユーザファイルも、ユーザＡ氏のユーザＩＤファイルと同様である。この各ユーザＡ〜ＣのユーザＩＤファイル４７は、例えば対応する各クライアントに保持されている。
【００６０】
ユーザＩＤファイル４７はファイル形態を有しており、図４に示すように、対応するユーザのＩＤを表すユーザＩＤ４７−１と、そのユーザＩＤに対応するユーザの名前４７−２と、ユーザＩＤに対応するクライアントへのログイン情報であるログインパスワード４７−３と、ユーザＩＤに対応するユーザの秘密鍵４７−４と、ユーザＩＤに対応するユーザの公開鍵４７−５とを備えており、こられの情報（４７−１〜４７−５）は、各ユーザ特有の情報である。
【００６１】
図５は、本実施形態に係るデータベース共有システム１の各クライアント３〜５（各コンピュータ１０、およびその周辺装置１１〜１５）の各機能を示すブロック図である。なお、図３および図４と同一の構成要件については、同一符号を付している。
【００６２】
図５において、各クライアント３〜５は、自クライアント、他クライアントあるいはデータベースサーバに置かれたデータベース４１を含む各種データ、プログラム等を自クライアント内、あるいは自クライアントおよび他クライアント・データベースサーバ間で例えばパケット通信方式等により送受信（通信）するための送受信部５０と、例えば自クライアントのハードディスク装置２８や外部記憶装置１４の記憶媒体等に格納されたＩＤファイル４７を参照して自クライアントの使用権限（アクセス権限）を有するユーザか否かを認証するための認証部５１と、データベース４１の暗号鍵を処理する暗号鍵処理部５２と、データベース４１におけるデータベース制御プログラム４６に従ってデータベース本体４５を処理するためのデータベース処理部５３とを備えている。
【００６３】
図６は、本実施形態に係るデータベース共有システム１の認証部５１の各機能を示すブロック図である。なお、図６において、前掲図面の構成要素と同一符号のものについては、同一構成要素を示している。
【００６４】
図６に示すように、認証部５１は、指紋読取り機１５により認証されたユーザ（例えばＡ氏とする）に対応する公開鍵４３−２Ａをデータベース４１から送受信部５０を介して取り出す鍵取り出し手段６０と、乱数６１を発生させる乱数発生手段６２と、発生された乱数６１を、鍵取り出し手段６０により取り出されたユーザの公開鍵４３−２Ａを用いて暗号化し、暗号化乱数６３を生成する暗号化手段６４とを備えている。
【００６５】
また、認証部５１は、指紋読取り機１５により認証されたユーザ（例えばＡ氏）に対応するＡ氏ＩＤファイル４７から対応するユーザの秘密鍵４７−４を取り出す鍵取り出し手段６５と、暗号化された暗号化乱数６３をユーザの秘密鍵４７−４を用いて復号化する復号化手段６６と、乱数発生手段６２により発生された元の乱数６１と復号化手段６６により復号化された乱数６７とを照合し、照合の結果一致した場合に、認証データ６９を生成する照合手段６８とを備えている。
【００６６】
さらに、認証部５１は、データベース４１からアクセス制御リスト４４を取り出すアクセス制御リスト取り出し手段７０と、認証データ６９および取り出されたアクセス制御リスト４４に基づいて、対応するユーザのアクセス権７１を設定するアクセス権設定手段７２とを備えている。
【００６７】
図７は、本実施形態に係るデータベース共有システム１の暗号鍵処理部５２の各機能を示すブロック図である。なお、図７において、前掲図面の構成要素と同一符号のものについては、同一構成要素を示している。
【００６８】
図７に示すように、暗号鍵処理部５２は、認証部５１の認証データ６９の生成に応じて、認証ユーザに対応する公開鍵４３−２Ａで暗号化された暗号化暗号鍵４３−４Ａをデータベース４１から取り出す鍵取り出し手段８０と、取り出されたデータベース４１の暗号化暗号鍵４３−４Ａを、認証部５１により認証されたユーザの秘密鍵４７−４を用いて復号化し、データベース暗号鍵８１を求める復号化手段８２とを備えている。
【００６９】
図８は、本実施形態に係るデータベース共有システム１のデータベース処理部５３の各機能を示すブロック図である。なお、図８において、前掲図面の構成要素と同一符号のものについては、同一構成要素を示している。
【００７０】
図８に示すように、データベース処理部５３は、データベース４１のデータベース本体４５における暗号化データベースレコードを取り出すレコード取り出し手段９１と、取り出した暗号化データベースレコード９０を、暗号化処理部５２により得られたデータベース暗号鍵８１で復号化してデータベースレコード９２を求める復号化手段９３と、復号化されたデータベースレコード９２の表示や編集を行なう表示編集手段９４と、編集が完了したデータベースレコード（更新データベースレコード）９２Ａをデータベース４１の暗号鍵８１で暗号化する暗号化手段９５と、暗号化された更新データベースレコード９２Ｂをデータベース本体４１に書き込むレコード書込み手段９６とを備えている。
【００７１】
図９は、本実施形態に係るデータベース共有システム１のデータベース処理部５３Ａにおけるレコード追加処理機能を示すブロック図である。なお、図９において、前掲図面の構成要素と同一符号のものについては、同一構成要素を示している。
【００７２】
図９に示すように、データベース処理部５３Ａは、新たなレコードの表示や編集を行うことにより、データベース４１の新規レコード９２Ｃを作成する表示編集手段９４Ａと、この表示編集手段９４Ａにより作成された新規レコード９２Ｃをデータベース４１の暗号鍵８１で暗号化する暗号化手段９５Ａと、暗号化された新規レコード９２Ｄをデータベース４１のデータベース本体４５に書き込むレコード書込み手段９６Ａとを備えている。
【００７３】
次に、本実施形態に係るデータベース共有システム１の全体動作について、例えばユーザＡ氏が使用するクライアント３のデータベース４１アクセス処理について説明する。
【００７４】
ユーザＡ氏は、クライアント３に対して、入力装置１２を操作してデータベース共有システムプログラム３４を起動させる。このとき、クライアント３は、起動されたデータベース共有システムプログラム３４に従って、ユーザＡ氏のログイン処理を行なう。
【００７５】
すなわち、ユーザＡ氏は、自ら所有するユーザＩＤファイル４７が予め格納された記憶媒体を外部記憶装置１４に取り付け、入力装置１２を介してログインパスワードを入力する。
【００７６】
クライアント３（クライアントコンピュータ１０）は、その外部記憶装置１４を介して読み出されたＩＤファイル４７を、例えばハードディスク装置２８のデータ格納部３１に格納し、格納したＩＤファイル４７のログインパスワードと入力装置１２を介して入力されたログインパスワードとを参照してユーザＡ氏をログインさせ（図１０；ステップＭ１）、データベース４１のオープン、すなわち、自クライアント３をデータベース４１に接続する（ステップＭ２Ａ）。
【００７７】
次いで、コンピュータ１０は、データベース４１のデータベース制御プログラム４６に従って動作し、ユーザＡ氏がデータベース４１に対してどのようなアクセス権限レベルを有しているか否かをデータベース４１のアクセス制御リスト４４を参照して認証し、この認証されたユーザＡ氏のアクセス権限レベルに従って、データベース４１のデータベース本体４５にアクセスし、ユーザＡ氏の指示に基づくデータベース本体４５のレコード閲覧処理、レコード編集処理、新レコード作成処理等を行う（ステップＭ３Ａ）。
【００７８】
そして、コンピュータ１０は、ユーザＡ氏のデータベースクローズ指令に応じてオープンしたデータベース４１をクローズして自クライアント３のデータベース４１に対する接続を切り離し（ステップＭ４Ａ）、データベース共有化システムプログラム３４からログアウトしてデータベース共有化システムプログラム３４を終了する（ステップＭ５）。
【００７９】
なお、データベース４１が１種類ではなく複数種類存在する場合には、コンピュータ１０は、ステップＭ２Ｂ〜ステップＭ４Ｂに示すように、複数種類のデータベースをそれぞれ繰り返しオープンさせてそれぞれアクセス処理するようになっている。
【００８０】
図１１は、図１０におけるデータベースオープン処理（ステップＭ２Ａ、Ｍ２Ｂ）の手順を詳細に示すフローチャートである。
【００８１】
図１１によれば、コンピュータ１０は、データベース４１に接続し（ステップＭ２−１）、自ユーザＡ氏のデータベース４１アクセスに関する認証処理を実行し（ステップＭ２−２）、認証処理結果が成功の際に、データベース４１の暗号鍵処理を実行する（ステップＭ２−３）。
【００８２】
図１２は、図１１における認証処理（ステップＭ２−２）の手順を詳細に示すフローチャートである。
【００８３】
図１２によれば、コンピュータ１０は、データベース４１からＡ氏の公開鍵４３−２Ａを送受信部５０および鍵取り出し手段６０（ハードウエア的には、コンピュータ１０のＣＰＵ１７、Ｉ／Ｆ２１および通信装置２９等）の処理により例えばネットワーク２を経由（データベース４１が自クライアント以外の場所に置かれている場合）、あるいはＣＰＵバス１６経由（データベース４１が自クライアントに置かれている場合）で取り出し、ＲＡＭ３４の作業領域３２や、ハードディスク装置２８のデータ格納部３１に保存する（ステップＡ１）。
【００８４】
次いで、コンピュータ１０は、その乱数発生手段６２により乱数６１を発生し、発生した乱数６１を、その暗号化手段６４により公開鍵４３−２Ａを使用して暗号化する（ステップＡ２）。
【００８５】
このステップＡ２の暗号化処理としては、例えば代表的なＲＳＡ方式等の公開鍵方式の暗号化処理が用いられており、このように、公開鍵方式による暗号化処理、すなわち、Ａ氏の公開鍵で暗号化された乱数はＡ氏の秘密鍵以外では復号化できない。
【００８６】
コンピュータ１０は、その鍵取出手段６５により、ハードディスク装置２８のデータ格納部３１に格納されたＡ氏のＩＤファイル４７からＡ氏の秘密鍵４７−４を読み出し、ＲＡＭ１９の作業領域３２に保存する（ステップＡ３）。
【００８７】
次いで、コンピュータ１０は、ステップＡ３の処理で暗号化した暗号化乱数６３を、ＲＡＭ１９の作業領域３２に保存したＡ氏の秘密鍵４７−４を用いて復号化手段６６で復号化し、乱数６７を得る（ステップＡ４）。
【００８８】
そして、コンピュータ１０は、元の乱数６１と復号化した乱数６７とを照合手段６８により照合して、元の乱数６１および復号化乱数６７が一致するか否か判断する（ステップＡ５）。
【００８９】
このステップＡ５の判断の結果一致する場合には（ステップＡ５→“一致”）、コンピュータ１０は、秘密鍵と公開鍵とが正しいペアであると判断し、ステップＡ６の処理に移行し、一致しない場合には（ステップＡ５→“不一致”）、コンピュータ１０は、秘密鍵と公開鍵とがペアになっていないものと判断し、ステップＡ７の処理に移行する。
【００９０】
特に、本実施形態では、ステップＡ１〜ステップＡ５の処理において、公開鍵および秘密鍵を単純に照合するのではなく、公開鍵で暗号化した乱数と秘密鍵で暗号化した乱数とを照合することにより、公開鍵および秘密鍵の照合を行なっている。
【００９１】
これは、例えば、単純にＩＤファイル４７の公開鍵とデータベース４１の公開鍵とを照合化する場合では、仮にハッカーが公開鍵を使用してデータベース４１へのアクセスに関する認証を求めた場合に、そのハッカーを発見することが難しくなる。
【００９２】
しかしながら、本実施形態の認証処理では、Ａ氏が有するＩＤファイル４の秘密鍵を使用して認証しているため、公開鍵を用いてデータベース４１に対するアクセスを試みるハッカーを発見することができる。
【００９３】
ステップＡ７において、コンピュータ１０は、認証フラグ“０（偽）”を立て、データベース４１のＡ氏公開鍵４３−２ＡがＡ氏のＩＤファイル４７の秘密鍵４７−４と一致しないことを表す情報、例えば「鍵が一致しないため、データベースへのアクセスは拒否されました」等のメッセージを表示装置１１や印刷装置１３を介してＡ氏に表示出力して、処理を終了する。
【００９４】
一方、ステップＡ６において、コンピュータ１０は、その照合手段６８により認証データとして、認証フラグ“１（真）”を立て、送受信部５０およびアクセス制御リスト取り出し手段７０により、通信ネットワーク２あるいはＣＰＵバス１６を経由してデータベース４１からアクセス制御リスト４４を取り出す。
【００９５】
そして、コンピュータ１０は、取り出したアクセス制御リスト４４をＲＡＭ１９の作業領域３２に格納し、次いで、設定手段７２により、作業領域３２のアクセス制御リスト４４からＡ氏のアクセス権７１を取り出し、そのアクセス権７１のレベルに対応する値を作業領域３２に格納する（ステップＡ８）。
【００９６】
この結果、Ａ氏がデータベース４１に格納されたＡ氏とまさに同一である場合のみに、認証フラグの値が“１（真）”となる。また、コンピュータ１０のＲＡＭ１９における作業領域３２には、Ａ氏のデータベース４１に対する認証が成功した場合（ステップＡ５→“一致”）にのみ、Ａ氏のアクセス権７１のレベルに対応する値が格納される。
【００９７】
図１３は、図１２における暗号鍵処理（ステップＭ２−３）の手順を詳細に示すフローチャートである。
【００９８】
図１３によれば、コンピュータ１０は、認証フラグ“１（真）”が立っているか否か判断し（ステップＥ１）、この判断の結果、“０（偽）”であれば、コンピュータ１０は、表示装置１１や印刷装置１３を介したエラーメッセージ表示処理等のエラー処理を行なって（ステップＥ２）、処理を終了する。
【００９９】
一方、ステップＥ１の判断の結果、認証フラグ“１（真）”が立っていれば、コンピュータ１０は、その送受信部５０および鍵取出手段８０により、通信ネットワーク２あるいはＣＰＵバス１６を経由して、他クライアント・サーバあるいは自クライアントに置かれたデータベース４１からＡ氏の公開鍵で暗号化したデータベース４１の暗号化暗号鍵４３−４Ａを取得して、ＲＡＭ１９における作業領域３２に保存する（ステップＥ３）。
【０１００】
次いで、コンピュータ１０は、ステップＡ３の処理によりＩＤファイル４７から取得されてＲＡＭ１９の作業領域３２に保存されたＡ氏の秘密鍵４７Ａ−４を用いて、Ａ氏の公開鍵で暗号化されたデータベース４１の暗号化暗号鍵４３−４Ａを復号化し、データベース４１の暗号鍵８１、すなわち、データベース４１の暗号化されたレコードを復号化、あるいは復号化されたレコードを再度暗号化可能な暗号鍵８１を取得し、取得した暗号鍵８１をＲＡＭ１９の作業領域３２やハードディスク装置２８のデータ格納部３１に保存する（ステップＥ４）。
【０１０１】
この結果、Ａ氏の認証が正確に行なわれた場合（認証フラグ“１（真）”の場合にのみデータベース４１の暗号鍵が取得され、取得された暗号鍵は、データベース制御プログラム４６に基づくコンピュータ１０の動作が継続している時には、ＲＡＭ１９やハードディスク装置２８等に保存されており、暗号鍵自体は誰の目にも触れることがない。
【０１０２】
図１４は、図１０におけるデータベースアクセス処理（ステップＭ３Ａ、Ｍ３Ｂ）の手順を詳細に示すフローチャートである。
【０１０３】
図１４に示すように、コンピュータ１０は、ステップＡ８の処理によりアクセス制御リスト４４から取り出されたアクセス権７１に基づいて、Ａ氏に読者権限以上のアクセス権が有るか否か判断する（ステップＤ１）。
【０１０４】
このステップＤ１の処理により、Ａ氏にデータベース４１に対する読者権限以上の権限が無い場合には、コンピュータ１０は、表示装置１１や印刷装置１３を介して、例えば「貴方は読者権限以上の権限が無いのでレコードの読み出しは出来ません」等のエラーメッセージ表示出力処理を含むエラー処理を行なって（ステップＤ２）、処理を終了する。
【０１０５】
一方、ステップＤ１の処理により、Ａ氏にデータベース４１に対する読者権限以上の権限が有る場合には、コンピュータ１０は、送受信部５０およびレコード取出手段９１の処理により、通信ネットワーク２あるいはＣＰＵバス１６を経由してデータベース４１からデータベース一覧を取り出し、表示装置１１の表示画面上に表示する。
【０１０６】
このとき、Ａ氏は、入力装置１２を操作して、表示されたデータベース一覧の中から、表示あるいは編集したいデータベースレコードを指定すると、コンピュータ１０は、その送受信部５０およびレコード取出手段９１の処理により、データベース４１のデータベース本体４５における暗号化された指定データベースレコード９０を通信ネットワーク２あるいはＣＰＵバス２を経由して取り出し、取り出した指定暗号化データベースレコードをＲＡＭ１９の作業領域３２に保存する（ステップＤ３）。
【０１０７】
次いで、コンピュータ１０は、保存した暗号化データベースレコード９０を、ステップＥ４の処理により取り出したデータベース４１の暗号鍵８１を用いて復号化し、データベースレコード９２を生成する（ステップＤ４）。
【０１０８】
そして、コンピュータ１０は、アクセス権７１に基づいて、Ａ氏に編集者権限以上のアクセス権が有るか否か判断する（ステップＤ５）。
【０１０９】
このステップＤ５の処理により、Ａ氏にデータベース４１に対する編集者権限以上の権限が無い場合には、コンピュータ１０は、そのデータベース表示編集手段９４により、復号化したデータベースレコード９２を表示装置１１の表示画面上に表示する（ステップＤ６）。
【０１１０】
一方、ステップＤ５の処理により、Ａ氏にデータベース４１に対する編集者権限以上の権限が有る場合には、コンピュータ１０は、そのデータベース表示編集手段９４により、復号化したデータベースレコード９２を表示装置１１の表示画面上に表示し、Ａ氏の入力装置１２操作に基づいて表示画面上に表示されたデータベースレコード９２を順次編集しながら更新表示し、Ａ氏の編集作業が完了すると、編集完了したデータベースレコード（更新データベースレコード）９２ＡをＲＡＭ１９の作業領域３２に保存する（ステップＤ７）。
【０１１１】
続いて、コンピュータ１０は、更新データベースレコード９２Ａをデータベース４１に書き込む前に、ステップＤ５と同様の編集権限判断処理を行ない（ステップＤ８）、ステップＤ８の処理により、Ａ氏にデータベース４１に対する編集者権限以上の権限が無い場合には、コンピュータ１０は、表示装置１１や印刷装置１３を介して、例えば「貴方は編集者権限以上の権限が無いのでレコードの書き込みは出来ません」等のエラーメッセージ表示出力処理を含むエラー処理を行なって（ステップＤ９）、処理を終了する。
【０１１２】
一方、ステップＤ８の処理により、Ａ氏にデータベース４１に対する編集者権限以上の権限が有る場合には、コンピュータ１０は、その暗号化手段９５により、更新データベースレコード９２Ａを、ステップＥ４で取得されたデータベース暗号鍵９１を用いて暗号化する（ステップＤ１０）。
【０１１３】
次いで、コンピュータ１０は、データベース一覧（図示せず）にデータベースレコードの一覧情報を書き込み（ステップＤ１１）、ステップＤ１０の処理で暗号化した暗号化データベースレコード９２Ｂを、送受信部５０およびレコード書込手段９６の処理により、通信ネットワーク２あるいはＣＰＵバス１６を経由して、他クライアント・サーバあるいは自クライアントに置かれたデータベース４１のデータベース本体４５に書込む（ステップＤ１２）。
【０１１４】
一方、上述したステップＤ１〜Ｄ１２のデータベースアクセス処理において、必要に応じて、コンピュータ１０は、図１５に示すデータベース追加処理を行なう。
【０１１５】
すなわち、コンピュータ１０は、ステップＡ８の処理によりアクセス制御リスト４４から取り出されたアクセス権７１に基づいて、Ａ氏にデータベース作成者権限以上のアクセス権が有るか否か判断する（ステップＤ２０）。
【０１１６】
このステップＤ２０の処理により、Ａ氏にデータベース４１に対するデータベース作成権限以上の権限が無い場合には、コンピュータ１０は、表示装置１１や印刷装置１３を介して、例えば「貴方はデータベース作成権限が無いのでレコードの作成は出来ません」等のエラーメッセージ表示出力処理を含むエラー処理を行なって（ステップＤ２１）、処理を終了する。
【０１１７】
一方、ステップＤ２１の処理により、Ａ氏にデータベース４１に対する作成権限以上の権限が有る場合において、Ａ氏は、入力装置１２を操作して、表示装置１１の表示画面上において新たに追加するデータベースレコードとして追加したい情報を入力する。
【０１１８】
コンピュータ１０は、そのデータベース表示編集手段９４Ａにより、入力されたレコード情報に基づいて新規データベースレコード９２Ｃを編集して作成し、作成した新規データベースレコード９２ＣをＲＡＭ１９の作業領域３２に保存する（ステップＤ２２）。
【０１１９】
次いで、コンピュータ１０は、新規データベースレコード９２Ｃを、ステップＥ４の処理により取り出したデータベース４１の暗号鍵８１を用いて暗号化し、暗号化データベースレコード９２Ｄを生成する（ステップＤ２３）。
【０１２０】
そして、コンピュータ１０は、データベース一覧（図示せず）にデータベースレコードの一覧情報を書き込み（ステップＤ２４）、ステップＤ１３の処理で暗号化した暗号化データベースレコード９２Ｄを、送受信部５０およびレコード書込手段９６の処理により、通信ネットワーク２あるいはＣＰＵバス１６を経由して、他クライアント・サーバあるいは自クライアントに置かれたデータベース４１のデータベース本体４５に書込む（ステップＤ２５）。
【０１２１】
上述したコンピュータ１０のデータベースアクセス処理において、データベース４１のデータベースレコード９２、更新データベースレコード９２Ａおよび新規データベースレコード９２Ｃは、自クライアントコンピュータ１０のＲＡＭ１９における作業領域３２内においては、元の非暗号化データとして保存されており、自クライアントコンピュータ１０から通信ネットワーク２を介して外部（他クライアント・サーバ）へ送信される場合および外部から自クライアントコンピュータ１０へ通信ネットワーク２を介して送信されてくる場合には、上記データベースレコード９２、更新データベースレコード９２Ａおよび新規データベースレコード９２Ｃは、それぞれデータベース暗号鍵８１により、暗号化データベースレコード９０、９２Ｂおよび９２Ｄとして暗号化されている。
【０１２２】
以上述べたように、本実施形態に係るデータベース共有システム１、このデータベース共有システム１を構成する各クライアント（コンピュータ）３〜５が読取り可能なデータベース４１、およびデータベース４１・ＩＤファイル４７を記憶した記憶媒体によれば、データベース４１に対して使用権限を有するユーザを正確に認証することができ、データベース４１をセキュアに共有化することができる。
【０１２３】
すなわち、データベース４１に対して、各ユーザの公開鍵により暗号化されたデータベース暗号鍵を記憶しておき、各ユーザは、自ユーザに基づく個別の秘密鍵および公開鍵がデータベース４１とは別個に記憶されたＩＤファイル４７を有しているため、データベース使用権限の無いユーザは、対応するユーザの秘密鍵を用いなければデータベース暗号鍵を得ることができず、データベース使用権限の無いユーザのデータベース４１に対するアクセスを拒否することができる。
【０１２４】
また、本実施形態によれば、各ユーザ個別の秘密鍵を、データベース４１ではなく各ユーザ個別のＩＤファイル４７（記憶媒体）に記憶させているため、データベース４１から秘密鍵が盗まれる心配を無くし、データベース共有システム１の信頼性を大幅に向上させることができる。
【０１２５】
さらに、本実施形態によれば、データベース４１自体に保存された公開鍵を用いてユーザのデータベースアクセス権限の有無に関する認証処理を行なっているため、各ユーザ毎の公開鍵をクライアント等に保存しておく必要がない。
【０１２６】
すなわち、データベース４１使用権限を有するユーザは、自クライアント以外の他クライアントに自らの公開鍵が保存されていなくても、データベース４１から自らの公開鍵を取得し、取得した公開鍵を用いて他クライアントを介して容易にデータベース４１にアクセスすることができる。
【０１２７】
したがって、各クライアントが、データベース４１のアクセス権限を有し、かつ自クライアントを使用可能な全てのユーザの公開鍵を管理する必要がなくなる。
【０１２８】
そして、本実施形態によれば、データベースアクセス権限の無い不正ユーザ、ハッカー等が仮にデータベース４１のフォーマットを解読して公開鍵を差し替える改ざんを行なったとしても、データベース４１には、データベース暗号鍵ではなく、そのデータベース暗号鍵が公開鍵で暗号化された暗号化暗号鍵が記憶されており、データベース４１からデータベース暗号鍵の値を取得することはできないため、上記不正ユーザ、ハッカー等は、公開鍵で暗号化されたデータベース暗号鍵を改竄することができず、データベース４１の機密性を高く維持することができる。
【０１２９】
また、本実施形態においては、データベース暗号鍵を各ユーザ個別の公開鍵で暗号化し、暗号化暗号鍵としてデータベース４１に記憶させているため、特にデータベースサーバを設けなくとも複数ユーザでセキュアなデータベース４１を利用することができる。
【０１３０】
特に、本実施形態によれば、通信ネットワーク２上で通信される鍵やデータベースレコード等のデータは、暗号化されたものか、あるいはその妥当性を確認できるものであるため、通信ネットワーク２上でハッカー等に送信パケットを捕捉された場合でも、通信データ自体およびデータベース４１の機密性を高く維持することができる。
【０１３１】
また、本実施形態によれば、各クライアントを使用する各ユーザは、ユーザＩＤを入力することなく、データベース４１にアクセスすることができるため、複数のクライアント間（複数のユーザ間）でデータベースをセキュアに利用することができる。すなわち、アクセス権限を有する特定のユーザのみがデータベース４１にアクセスでき、その上、アクセスしているユーザの匿名性を確保することができるため、データベース４１にアクセスするユーザのプライバシーを保護することができる。
【０１３２】
そして、本実施形態によれば、データベース共有化に係るデータベースの基本機能に関するプログラム（データベース共有システムプログラム３４）を各クライアントコンピュータに記憶し、データベース４１の固有の処理に係るデータベース制御プログラム４６を、上記データベース共有システムプログラム３４から切り離してデータベース４１自体に記憶することができるため、データベース４１の管理を容易にすることができる。
【０１３３】
なお、データベース共有システムプログラム３４を、データベース制御プログラム４６と共にデータベース４１に記憶させておくことも可能であるし、また、データベース制御プログラム４６を、データベース共有システムプログラム３４と共に各クライアントに記憶させておくことも可能である。
【０１３４】
特に、本実施形態の認証処理では、乱数をユーザの公開鍵で暗号化し、対応するＩＤファイルの秘密鍵で復号化しているため、データベースフォーマットを解読して公開鍵を差し替えられても、その差し替えを発見することができ、認証の安全性を向上させることができる。
【０１３５】
また特に、本実施形態の暗号鍵処理によれば、例えば通信ネットワーク２を介して送受信されるデータは、各ユーザの公開鍵により暗号化されたデータベース暗号化暗号鍵であるため、通信ネットワーク２上でハッカー等に送受信パケットを補足された場合でも、送受信データ自体およびデータベース４１の機密性を高く維持することができる。
【０１３６】
さらに、本実施形態の暗号鍵処理によれば、ユーザのＩＤファイルから送受信部５０を介さずに直接クライアントコンピュータ１０に秘密鍵を渡すことができるため、秘密鍵が盗まれる恐れを無くして機密性を高く維持することができる。
【０１３７】
そして、本実施形態のデータベースアクセス処理によれば、データベース４１が置かれた他クライアント・サーバから自クライアントコンピュータ間を通信ネットワーク２で接続して構築されたデータベース共有化システム１において、通信ネットワーク２を経由してデータベースレコードを通信する際においても、通信ネットワーク２上においては、暗号化された暗号化データベースレコードを通信するように構成しているため、通信ネットワーク２上でハッカー等に通信パケットを捕捉された場合でも、データベースレコードの通信パケット自体およびデータベース４１全体の機密性を高く維持することができる。
【０１３８】
（第２の実施の形態）
図１６は、本発明の第２の実施の形態に係るデータベース共有システム１Ａのクライアント３Ａの各機能を示すブロック図である。なお、前掲した各図面と同一の構成要素については、同一符号を付してその説明を省略または簡略化する。
【０１３９】
図１６に示すように、Ａ氏のクライアント３Ａは、例えば自クライアントのハードディスク装置２８のデータ格納部３１や外部記憶装置１４の記憶媒体等に記憶されたアドレス帳１００と、他ユーザの公開鍵を対応する他クライアントへ要求するための公開鍵要求部１０１と、他クライアントに対して自クライアントユーザの公開鍵を返信するための公開鍵返信部１０２と、データベース４１Ａに対するユーザのアクセス権限登録／削除用のユーザアクセス制御部１０３とを備えている。
【０１４０】
なお、他クライアント４Ａおよび５Ａ（図示省略）も、クライアント３Ａと同一の機能ブロック構成を有している。
【０１４１】
図１７は、アドレス帳１００の概略構造を概念的に示す図である。
【０１４２】
アドレス帳１００は、図１７に示すように、ユーザＡ氏のメールアドレス１００−１Ａと、ユーザＡ氏の名前１００−２Ａと、ユーザＡ氏の所属１００−３Ａと、ユーザＡ氏の公開鍵１００−４Ａとを備えている。同様に、１００−１Ｂ、１００−２Ｂ、１００−３Ｂ、１００−４Ｂは、Ｂ氏に対するメールアドレス、名前、所属、公開鍵である。なお、ユーザＣ氏については図示を省略している。
【０１４３】
また、本実施形態において、データベース４１Ａには、ユーザＢ氏が未登録（少なくとも、その暗号化暗号鍵およびアクセス権限が未登録）であるとする。
【０１４４】
図１８は、本実施形態に係るクライアント３Ａの公開鍵要求部１０１の各機能を示すブロック図である。なお、図１８において、前掲図面の構成要素と同一符号のものについては、同一構成要素を示している。
【０１４５】
図１８に示すように、公開鍵要求部１０１は、ユーザＡ氏から入力された他クライアント（例えば、ユーザＢのクライアント４）のメールアドレス１１１に基づいて鍵要求メール１１２を作成し、送受信部５０の処理により、鍵要求メールを対応するメールアドレス（他クライアント）に向けて通信ネットワーク２を経由して送信する鍵要求メール作成手段１１３と、メールアドレス先（他クライアント）から通信ネットワーク２を経由して送信され送受信部５０を介して受信された返信メール１１４に基づいて公開鍵１１６を取り出す公開鍵取出し手段１１５と、取り出した公開鍵１１６に基づいてアドレス帳１００を編集するアドレス帳編集手段１１７とを備えている。
【０１４６】
図１９は、本実施形態に係るクライアント３Ａの公開鍵返信部１０２の各機能を示すブロック図である。なお、図１９において、前掲図面の構成要素と同一符号のものについては、同一構成要素を示している。
【０１４７】
公開鍵返信部１０２は、他クライアントの公開鍵要求部１０１から通信ネットワーク２を経由して送信され送受信部５０を介して受信処理された鍵要求メール１１２を解読するメール解読手段１２０と、解読された鍵要求メールに基づいて公開鍵返信メール１１４を作成する公開鍵返信メール作成手段１２２とを備えている。
【０１４８】
図２０は、本実施形態に係るクライアント３Ａのユーザアクセス制御部１０３の各機能を示すブロック図である。なお、図２０において、前掲図面の構成要素と同一符号のものについては、同一構成要素を示している。
【０１４９】
図２０に示すように、ユーザアクセス制御部１０３は、アドレス帳１００から他クライアントの他ユーザの公開鍵を取得する公開鍵取得手段１３０と、取得した他ユーザの公開鍵を用いてデータベース暗号鍵８１を暗号化して暗号化暗号鍵１３２を生成する暗号化手段１３１と、暗号化された他ユーザの暗号化暗号鍵１３２をデータベース４１Ａにおける他ユーザの暗号化暗号鍵として書き込むアクセス制御書込み手段１３３と、データベース４１Ａのアクセス制御リスト４４の内容を編集するアクセス制御リスト編集手段１３４とを備えている。
【０１５０】
次に、本実施形態に係るデータベース共有システム１Ａの全体動作について、例えばユーザＡ氏のクライアント３Ａからの、ユーザＢ氏アクセス権限登録処理について説明する。
【０１５１】
ユーザＡ氏は、自クライアント３Ａに置かれたアドレス帳１００の中にユーザＢ氏の公開鍵１００−４Ｂが保存されていない状態において、ユーザＢ氏の公開鍵を要求する際に、入力装置１２を介してクライアント３Ａのコンピュータ１０に対してユーザＢ氏のメールアドレス１００−１Ｂを入力する。なお、直接入力しなくても、ユーザＡ氏は、アドレス帳１００からＢ氏のメールアドレス１００−１Ｂを選択して入力してもよい。
【０１５２】
このとき、クライアント３Ａのコンピュータ１０は、その公開鍵要求部１０１における鍵要求メール作成手段１１３により、予め定められた書式に従ってＢ氏の公開鍵１１６（＝１００−４Ｂ）を要求する内容の鍵要求メール１１２を作成し（図２１；ステップＳ１）、送受信部５０の処理により、作成した鍵要求メール１１２を、図示しないメールサーバおよび通信ネットワーク２を介してメールアドレス１００−１Ｂに対応するユーザＢ氏のクライアント４Ａに送信する（ステップＳ２）。
【０１５３】
クライアント４Ａのコンピュータ１０は、自コンピュータ１０の送受信部１０を介して受信された複数のメールの中から、メール解読手段１２０により、鍵要求メール１１２のみを識別してその内容を解読し（図２２；ステップＴ１）、その要求内容（公開鍵１００−４Ｂ要求）に基づいて、公開鍵作成手段１２２により対応するＢ氏の公開鍵１００−４Ｂをメールに添付して返信メール１１４を作成し（ステップＴ２）、作成した返信メール１１４を、送受信部５０の処理により、図示しないメールサーバおよび通信ネットワーク２を介して要求メール送信元のクライアント３Ａに返信する（ステップＴ３）。
【０１５４】
クライアント３Ａのコンピュータ１０は、通信ネットワーク２を経由して返信され送受信部５０を介して受信された返信メール１１４に基づいて、そのメール１２１に添付されたＢ氏の公開鍵１１６（＝１００−４Ｂ）を公開鍵取出手段１１５により取出し、取り出した公開鍵１００−４ＢをＲＡＭ１９の作業エリア３２に保存する（ステップＳ３）。
【０１５５】
そして、クライアント３Ａのコンピュータ１０は、そのアドレス帳編集手段１１７により、作業エリア３２に保存されたＢ氏の公開鍵１００−４Ｂを、アドレス帳１００に書込む（ステップＳ４）。
【０１５６】
次いで、クライアント３Ａのコンピュータ１０は、Ｂ氏の公開鍵１００−４Ｂに基づいて、その公開鍵１００−４Ｂで暗号化されたＢ氏のデータベース暗号化暗号鍵４３−４Ｂおよびアクセス権限を、そのＢ氏が未登録のデータベース４１Ａに登録する際に、公開鍵取出手段１３０により、アドレス帳１００からユーザＢ氏の公開鍵１００−４Ｂを取り出し（ステップＳ５）、取り出した公開鍵１００−４Ｂを用いて、暗号化手段１３１によりデータベース暗号鍵８１を暗号化してＢ氏のデータベース暗号化暗号鍵１３２（＝４３−４Ｂ）を生成する（ステップＳ６）。
【０１５７】
次いで、コンピュータ１０は、そのアクセス制御リスト編集手段１３４により、自クライアント３ＡのＲＡＭ１９の作業エリア３２に保存されたアクセス制御リスト４４を取り出して、Ｂ氏のアクセス権限が所定の権限となるようにリスト４４を編集する（ステップＳ７）。
【０１５８】
そして、コンピュータ１０は、その送受信部５０およびアクセス制御書込手段１３３により、編集されたアクセス権限、および生成されたＢ氏のデータベース暗号化暗号鍵４３−４Ｂを、通信ネットワーク２あるいはＣＰＵバス１６を経由して、他クライアント・サーバあるいは自クライアントに置かれたデータベース４１Ａに書込んで、上記Ｂ氏をデータベース４１Ａに登録して、処理を終了する（ステップＳ８）。
【０１５９】
なお、コンピュータ１０は、その送受信部５０およびアクセス制御書込手段１３３により、通信ネットワーク２あるいはＣＰＵバス１６を経由して、他クライアント・サーバあるいは自クライアントに置かれたデータベース４１に格納された所定のユーザのデータベース暗号化暗号鍵を削除することにより、その所定ユーザのデータベース４１に対するアクセス権限を削除することができる。
【０１６０】
以上述べたように、本実施形態によれば、例えばクライアント３ＡのユーザＡ氏は、自クライアント３Ａからデータベース暗号鍵８１を出すことなく、そのクライアント３Ａを介してデータベース４１に対して、データベース４１Ａに対して未登録の他ユーザＢ氏のデータベース暗号化暗号鍵およびアクセス権限をそれぞれ設定して、ユーザＢ氏のデータベース４１Ａに対するユーザ登録を行なうことができるため、データベース４１Ａのアクセス権限を有していない（未登録）のユーザＢ氏も、データベース４１Ａに対してアクセスすることができる。
【０１６１】
特に、データベース暗号鍵８１を、直接通信ネットワーク２を介して送信するのではなく、暗号化されたデータベース暗号化暗号鍵を送信することにより、ユーザＡ氏およびＢ氏間においてデータベース４１Ａのセキュアな共有化を実現できる。
【０１６２】
また、本実施形態によれば、ユーザＡ氏が、データベース４１Ａに対してユーザ登録したい他ユーザＢ氏の公開鍵を自動的に自クライアント３Ａのアドレス帳１００に登録し、登録した他ユーザＢ氏の公開鍵に基づいて上記Ｂ氏のデータベース暗号化暗号鍵を求めることができる。
【０１６３】
さらに、本実施形態によれば、ユーザＡ氏のクライアント３Ａから送信された複数のメールから公開鍵要求メールを自動的に識別し、識別した公開鍵要求メールに基づいて、Ｂ氏の公開鍵を含む返信メールを自動的に作成して、要求者であるユーザＡ氏に返信することができる。
【０１６４】
なお、本実施形態では、ユーザＡ氏のクライアント３ＡからのユーザＢ氏アクセス権限登録処理について説明したが、他のユーザＣ氏のアクセス権登録も可能であり、また、ユーザＢ氏、Ｃ氏のクライアント４Ａ、５Ａからの他ユーザアクセス権限登録も可能である。
【０１６５】
（第３の実施の形態）
図２３は、本発明の第３の実施の形態に係るデータベース４１Ｂの概略構造を概念的に示す図である。なお、前掲図３と同一の構成要素については、同一の符号を付してその説明を省略または簡略化する。
【０１６６】
図２３に示すように、本実施形態に係るデータベース４１Ｂは、データベースＩＤ４１と、データベース管理者（管理者権限を有するユーザ）であるユーザＡ氏の認証情報４３Ｂと、アクセス制御リスト４４と、データベース本体４５と、データベース制御プログラム４６とを備えている。
【０１６７】
管理者Ａ氏の認証情報４３Ｂは、図２３に示すように、予めデータベース４１Ｂ内に記憶された管理者Ａ氏のＩＤ４３Ｂ−１Ａと、予めデータベース４１Ｂ内に記憶された管理者Ａ氏の公開鍵４３Ｂ−２Ａと、管理者Ａ氏の公開鍵により暗号化された暗号化乱数４３Ｂ−３Ａと、予めデータベース４１Ｂに記憶された管理者Ａ氏による暗号化暗号鍵４３Ｂ−４Ａとを備えている。
【０１６８】
図２４は、本実施形態に係るデータベース共有システム１Ｂのクライアント３Ｂの各機能を示すブロック図である。なお、前掲した各図面と同一の構成要素については、同一符号を付してその説明を省略または簡略化する。
【０１６９】
図２４に示すように、Ａ氏のクライアント３Ｂは、例えば自クライアントのハードディスク装置２８のデータ格納部３１や外部記憶装置１４の記憶媒体等に記憶されたチケット１４０と、例えば自クライアントのハードディスク装置２８や外部記憶装置１４の記憶媒体等に格納されたＩＤファイル４７を参照して自クライアントのアクセス権限を有するユーザか否かを認証し、かつ認証されたユーザのアクセス権限の内容をチケット１４０を参照して認証する認証部５１Ｂと、鍵取出し手段８０Ｂにより、認証ユーザに対応する暗号化暗号鍵をデータベース４１からではなく、チケット１４０から取り出して処理する暗号鍵処理部５２Ｂとを備えており、この暗号鍵処理部５２Ｂにおける鍵取出し取出し手段８０Ｂの機能以外の機能については、図７に示す暗号鍵処理部５２の機能と同等であるため、説明は省略する。
【０１７０】
なお、他クライアント４Ｂおよび５Ｂ（図示省略）も、クライアント３Ｂと同一の機能ブロック構成を有している。
【０１７１】
図２５は、チケット１４０の概略構造を概念的に示す図である。
【０１７２】
チケット１４０は、図２５に示すように、データベース４１Ｂの管理者（Ａ氏）に関する情報１４０Ａと、データベース４１Ｂの使用者（管理者権限未満のアクセス権限を有するユーザ）Ｂ氏に関する情報１４０Ｂと、データベース４１Ｂへのアクセス経路に関する情報１４０Ｃとを備えている。
【０１７３】
管理者情報１４０Ａは、管理者Ａ氏のメールアドレス１４０−１Ａと、管理者Ａ氏のＩＤ１４０−２Ａと、管理者Ａ氏の名前１４０−３Ａと、管理者Ａ氏の所属１４０−４Ａと、管理者Ａ氏の公開鍵１４０−４Ａとを備えている。
【０１７４】
使用者情報１４０Ｂは、管理者情報１４０Ａと同様に、使用者Ｂ氏のメールアドレス１４０−１Ｂ、Ｂ氏ＩＤ１４０−２Ｂ、Ｂ氏名前１４０−３Ｂ、Ｂ氏所属１４０−４Ｂ、Ｂ氏公開鍵１４０−５Ｂをそれぞれ備えている。
【０１７５】
そして、使用者情報１４０Ｂは、Ｂ氏の公開鍵１４０−５Ｂで暗号化された暗号化暗号鍵１４０−６Ｂと、管理者Ａ氏の秘密鍵で暗号化されたＢ氏のデータベース４１Ｂに対するアクセスレベル１４０−７Ｂとをそれぞれ備えている。なお、使用者Ｃ氏については図示を省略している。
【０１７６】
図２６は、本実施形態に係るデータベース共有システム１Ｂの認証部５１Ｂの各機能を示すブロック図である。なお、図２６において、前掲図６の構成要素と同一符号のものについては、同一構成要素を示している。
【０１７７】
図２６に示すように、認証部５１Ｂにおける鍵取出し手段６０Ｂは、指紋読取り機１５により認証されたユーザ（例えばＢ氏とする）に対応する公開鍵１４０−５Ｂをチケット１４０から取り出すようになっている。
【０１７８】
そして、認証部５１Ｂにおける鍵取出し手段６５Ｂは、指紋読取り機１５により認証されたユーザＢ氏に対応するＢ氏ＩＤファイル４７から対応するユーザの秘密鍵４７−４を取り出すようになっている。
【０１７９】
さらに、本実施形態において、認証部５１Ｂは、チケット１４０から管理者Ａ氏の公開鍵１４０−５Ａを取り出す鍵取り出し手段６０Ｃと、チケット１４０から、管理者Ａ氏秘密鍵４７−４で暗号化されたＢ氏アクセスレベル１４０−７Ｂを取り出すアクセスレベル取出手段１５０と、Ｂ氏暗号化アクセスレベル１４０−７Ｂを、鍵取出し手段６０Ｃにより取り出された管理者Ａ氏の公開鍵１４０−５Ａを用いて復号化する復号化手段１５１と、アクセス制御リスト取出手段７０によりデータベース４１Ｂから取り出されたアクセス制御リスト４４におけるＢ氏アクセスレベルと復号化されたＢ氏アクセスレベルとを照合する照合手段１５２とを備えており、アクセス権設定手段７２Ｂは、認証データ６９および照合手段１５２の照合結果に基づいて、対応するユーザＢ氏のアクセス権７１を設定するようになっている。
【０１８０】
次に、本実施形態に係るデータベース共有システム１Ｂの全体動作について、例えばユーザＢ氏のクライアント４Ｂからのデータベース４１Ｂアクセス処理について説明する。
【０１８１】
ユーザＢ氏は、クライアント４Ｂに対して、入力装置１２を操作してデータベース共有システムプログラム３４を起動させ、ユーザＢ氏のログイン処理が行なわれる（前掲図１０のステップＭ１参照）。そして、データベース４１Ｂのオープン、すなわち、自クライアント４Ｂがデータベース４１Ｂに接続される（図１０；ステップＭ２Ａ参照）。
【０１８２】
次いで、ユーザＢ氏のクライアント４Ｂにおけるコンピュータ１０は、データベース４１Ｂのデータベース制御プログラム４６に従って動作し、ユーザＢ氏がデータベース４１Ｂに対してどのようなアクセス権限レベルを有しているか否かをチケット１４０の情報に基づいて認証し、この認証されたユーザＢ氏のアクセス権限レベルに従って、データベース４１Ｂのデータベース本体４５にアクセスし、ユーザＢ氏の指示に基づくデータベース本体４５のレコード閲覧処理、レコード編集処理、新レコード作成処理等を行う（図１０；ステップＭ２Ａ参照）。
【０１８３】
本実施形態においても、データベースオープン処理（ステップＭ２Ａ、Ｍ２Ｂ）については、図１１のステップＭ２−１〜ステップＭ２−３と同様であり、本実施形態では、データベースオープン処理におけるステップＭ２−２の認証処理が第１実施形態と異なる。
【０１８４】
すなわち、クライアント４Ｂのコンピュータ１０は、チケット１４０からＢ氏の公開鍵１４０−５Ｂを鍵取り出し手段６０Ｂの処理により取り出し、ＲＡＭ１９の作業領域３２や、ハードディスク装置２８のデータ格納部３１に保存する（図２７；ステップＵ１）。
【０１８５】
次いで、コンピュータ１０は、取り出したＢ氏の公開鍵１４０−５Ｂと自クライアント４Ｂに保存されたＢ氏ＩＤファイル４７の秘密鍵とをそれぞれ乱数化して照合し、照合結果が“一致”の場合において、認証フラグ“１（真）”を立てる（前掲図１２；ステップＡ２〜Ａ６参照）。
【０１８６】
続いて、クライアント４Ｂのコンピュータ１０は、チケット１４０から、管理者Ａ氏の秘密鍵で暗号化された自ユーザＢ氏のアクセスレベル１４０−７Ｂを取出してＲＡＭ１９の作業領域３２に格納する。このとき、Ｂ氏のアクセスレベル１４０−７Ｂは、管理者Ａ氏の秘密鍵により暗号化されているため、何人もアクセスレベルの偽造や改ざんを行なうことはできない。
【０１８７】
そして、コンピュータ１０は、チケット１４０から管理者Ａ氏の公開鍵１４０−５Ａを取出してＲＡＭ１９の作業領域３２に保存し（ステップＵ２）、復号化手段１５１により、Ｂ氏の暗号化アクセスレベル１４０−７Ｂを、管理者Ａ氏の公開鍵１４０−５Ａを用いて復号化し、復号化したＢ氏のアクセスレベル１４０−７Ｂ１をＲＡＭ１９の作業領域に保存する（ステップＵ３）。
【０１８８】
一方、コンピュータ１０は、チケット１４０におけるデータベース４１Ｂへのアクセス経路１４０Ｃを参照して、データベース４１Ｂが記憶された場所（自クライアント、あるいは他クライアント・サーバ）に対するアクセス経路１４０Ｃを読み出し、読み出したアクセス経路１４０Ｃに従って、送受信部５０およびアクセス制御リスト取り出し手段７０により、通信ネットワーク２あるいはＣＰＵバス１６を経由して、データベース４１Ｂの存在する自クライアント、あるいは他クライアント・サーバにアクセスし、そのデータベース４１Ｂからアクセス制御リスト４４を取り出す（ステップＵ４）。
【０１８９】
そして、コンピュータ１０は、取り出したアクセス制御リスト４４をＲＡＭ１９の作業領域３２に格納し、次いで、照合手段１５２により、復号化されたＢ氏のアクセスレベルとデータベース４１Ｂから取り出されたアクセス制御リスト４４におけるＢ氏のアクセスレベルとを照合する（ステップＵ５）。
【０１９０】
この照合の結果、復号化されたＢ氏のアクセスレベルとデータベース４１Ｂから取り出されたＢ氏のアクセスレベルとが一致しない場合には、コンピュータ１０は、データベース４１ＢのＢ氏アクセスレベルがチケット１４０のＢ氏アクセスレベルと一致しないことを表す情報、例えば「アクセスレベルが一致しないため、データベースへのアクセスは拒否されました」等のエラーメッセージを表示装置１１や印刷装置１３を介してＢ氏に表示出力して、処理を終了する（ステップＵ６）。
【０１９１】
一方、上記照合の結果、復号化されたＢ氏のアクセスレベルとデータベース４１Ｂから取り出されたＢ氏のアクセスレベルとが一致する場合であり、かつステップＡ６における認証フラグが“１（真）”である場合に、設定手段７２Ｂにより、一致したアクセスレベルに応じてユーザＢ氏のアクセス権７１を設定する（ステップＵ７）。
【０１９２】
以下、第１実施形態と同様に、データベースオープン処理における暗号鍵処理Ｍ２−３、およびデータベースアクセス処理が行なわれ、設定されたアクセス権７１に基づいて、Ｂ氏のデータベース４１Ｂに対するアクセスが行なわれる。
【０１９３】
以上述べたように、本実施形態によれば、データベース４１Ｂとチケット１４０により、正しいデータベース４１Ｂへのアクセス者を認証することができる。
【０１９４】
すなわち、ユーザＢ氏は、自らの公開鍵により暗号化されたデータベース暗号化暗号鍵が記憶されたチケット１４０を有しているため、データベース使用権限の無いユーザは、対応するユーザＢ氏の秘密鍵を用いなければ上記データベース暗号化暗号鍵を復号化してデータベース暗号鍵を得ることができず、データベース使用権限の無いユーザのデータベース４１Ｂに対するアクセスを拒否することができる。
【０１９５】
また、本実施形態によれば、各ユーザ個別の秘密鍵を、データベース４１Ｂではなく各ユーザ個別のＩＤファイル４７（記憶媒体）に記憶させているため、データベース４１Ｂから秘密鍵が盗まれる心配を無くし、データベース共有システム１Ｂの信頼性を大幅に向上させることができる。
【０１９６】
さらに、本実施形態によれば、仮にユーザＢ氏が自ら所有するチケット１４０を紛失したり、あるいはチケット１４０が盗難にあった場合でも、所有者以外の不正使用者がチケット１４０を使用することはできないため、データベース４１Ｂの機密性を高く維持することができる。
【０１９７】
そして、本実施形態によれば、データベースアクセス権限の無い不正ユーザ、ハッカー等が仮にデータベース４１Ｂのフォーマットを解読して公開鍵を差し替える改ざんを行なったとしても、データベース４１Ｂからデータベース暗号鍵の値を取得することはできないため、上記不正ユーザ、ハッカー等は、公開鍵で暗号化されたデータベース暗号鍵を改竄することができず、データベース４１Ｂの機密性を高く維持することができる。
【０１９８】
また、本実施形態においては、データベース暗号鍵を各ユーザ個別の公開鍵で暗号化し、暗号化暗号鍵としてチケット１４０に記憶させているため、特にデータベースサーバを設けなくとも複数ユーザでセキュアなデータベース４１Ｂを利用することができる。
【０１９９】
特に、本実施形態によれば、通信ネットワーク２上で通信される鍵やデータベースレコード等のデータは、暗号化されたものか、あるいはその妥当性を確認できるものであるため、通信ネットワーク２上でハッカー等に送信パケットを捕捉された場合でも、通信データ自体およびデータベース４１Ｂの機密性を高く維持することができる。
【０２００】
さらに、本実施形態によれば、各クライアントを使用する各ユーザは、ユーザＩＤを入力することなく、データベース４１Ｂにアクセスすることができるため、複数クライアント間（複数ユーザ間）でデータベースをセキュアに利用することができる。すなわち、アクセス権限を有する特定のユーザのみがその匿名性を確保しながらデータベース４１にアクセスできるため、ユーザのプライバシーを保護することができる。
【０２０１】
特に、本実施形態によれば、チケット１４０に保存された公開鍵を用いてユーザのデータベースアクセス権限に関する認証処理を行なっているため、各ユーザ毎の公開鍵をクライアント等に保存しておく必要がない。
【０２０２】
また特に、本実施形態の認証処理では、乱数をユーザの公開鍵で暗号化し、対応するＩＤファイルの秘密鍵で復号化しているため、データベースフォーマットを解読して公開鍵を差し替えられても、その差し替えを発見することができ、認証の安全性を向上させることができる。
【０２０３】
そして、本発明によれば、チケット１４０にデータベースアクセス経路を記憶したため、データベース４１Ｂにアクセスしたいクライアントは、チケット１４０のアクセス経路を参照し、そのアクセス経路に従って迅速かつ容易にデータベース４１Ｂにアクセスすることができ、データベースアクセス効率を向上させることができる。
【０２０４】
なお、本実施形態では、ユーザＢ氏のクライアント４Ｂからのデータベースアクセス処理について説明したが、他のユーザＣ氏のアクセス処理も同様に行なわれる。なお、管理者をＡ氏としたが、他のユーザＢ氏、Ｃ氏が管理者であってもよい。
【０２０５】
上述した各実施形態においては、認証部の認証処理として、その乱数発生手段６２により乱数を発生してユーザの公開鍵で暗号化し、暗号化した乱数をユーザの秘密鍵で復号化したが、本発明はこれに限定されるものではなく、最初からデータベース４１、４１Ｂにユーザの公開鍵で暗号化した乱数を記憶しておいてもよい。
【０２０６】
そして、上述した各実施形態においては、データベース４１、４１Ａ、４１Ｂには、ユーザ認証情報として、予めユーザＩＤ、ユーザの公開鍵、およびユーザの暗号化暗号鍵を記憶したが、本発明はこれに限定されるものではなく、少なくともユーザの公開鍵およびユーザの暗号化暗号鍵をデータベースに記憶しておき、ユーザＩＤは、ＩＤファイルやチケットから取得されるように構成することも可能である。
【０２０７】
また、上述した各実施形態においては、データベース４１、４１Ｂにおいて、データベース本体（データベースレコード）を暗号化して記憶したが、本発明はこれに限定されるものではなく、単に認証のみを行なってデータベース本体４５に対するアクセス制御を行なうことも可能である。
【０２０８】
さらに、データベース本体４５、すなわち、データベース４１、４１Ｂの蓄積データは、どのような形態のデータでもよく、テキストデータ、音声データ、映像データ、プログラム等のあらゆる形態のデータでよいことは言うまでもない。
【０２０９】
【発明の効果】
以上述べたように、本発明によれば、データベースサーバを用いることなく複数コンピュータ（複数ユーザ）によりデータベースをセキュアに共有化し、各ユーザは、出張先等、何処でも共有データベースに対してアクセスすることができるため、ユーザのデータベース利用効率を大幅に向上させることができる。
【０２１０】
また、本発明によれば、データベースを共有するコンピュータ間において通信されるデータは暗号化されたものか、その妥当性を確認出来るものばかりであるので、共有コンピュータ間のデータ通信時においてハッカー等により通信データを捕捉されても、データ自体およびデータベースの機密性を高く維持することができるため、社内での安全なイントラネット上だけでなく、不特定多数が利用する電話回線・インターネット等を経由して、データベース共有化コンピュータ間の通信をセキュアに行なうことができる。
【図面の簡単な説明】
【図１】本発明の各実施形態に係るデータベース共有システム１の全体的な構成を示す図。
【図２】データベース共有化システム１における各クライアントのハードウエア構成を示すブロック図。
【図３】本発明の第１の実施の形態に係るデータベースの概略構造を概念的に示す図。
【図４】第１の実施の形態に係る例えばユーザＡ氏のユーザＩＤファイルの概略構造を概念的に示す図。
【図５】第１の実施形態に係るデータベース共有システムの各クライアントの各機能を示すブロック図。
【図６】第１の実施形態に係るデータベース共有システムの認証部の各機能を示すブロック図。
【図７】第１の実施形態に係るデータベース共有システムの暗号鍵処理部の各機能を示すブロック図。
【図８】第１の実施形態に係るデータベース共有システムのデータベース処理部の各機能を示すブロック図。
【図９】第１の実施形態に係るデータベース共有システムのデータベース処理部におけるレコード追加処理機能を示すブロック図。
【図１０】第１実施形態に係るデータベース共有化システムの全体的なデータベースアクセス処理の一例を説明するための概略フローチャート。
【図１１】図１０におけるデータベースオープン処理の一例を説明するための概略フローチャート。
【図１２】
図１１における認証処理の手順を詳細に示すフローチャート。
【図１３】図１２における暗号鍵処理の手順を詳細に示すフローチャート。
【図１４】図１０におけるデータベースアクセス処理の手順を詳細に示すフローチャート。
【図１５】図１４に示すデータベースアクセス処理におけるデータベース追加処理の手順を説明するための概略フローチャート。
【図１６】本発明の第２の実施の形態に係るデータベースの概略構造を概念的に示す図。
【図１７】図１６に示すアドレス帳の概略構造を概念的に示す図。
【図１８】第２の実施形態に係るクライアントの公開鍵要求部の各機能を示すブロック図。
【図１９】第２の実施形態に係るクライアントの公開鍵返信部の各機能を示すブロック図。
【図２０】第２の実施形態に係るクライアントのユーザアクセス制御部の各機能を示すブロック図。
【図２１】第２の実施形態に係るデータベース共有システムにおけるユーザＡ氏のクライアントからのユーザＢ氏アクセス権限登録処理の一例を示す概略フローチャート。
【図２２】第２の実施形態に係るデータベース共有システムにおけるユーザＡ氏のクライアントからのユーザＢ氏アクセス権限登録処理の一例を示す概略フローチャート。
【図２３】本発明の第３の実施の形態に係るデータベースの概略構造を概念的に示す図。
【図２４】第３の実施形態に係るデータベース共有システムのクライアントの各機能を示すブロック図。
【図２５】図２４に示すチケットの概略構造を概念的に示す図。
【図２６】第３の実施形態に係るデータベース共有システムの認証部の各機能を示すブロック図。
【図２７】第３の実施形態に係るデータベース共有システムにおけるユーザＢ氏のクライアントからのデータベースアクセス処理の一例を示す概略フローチャート。
【符号の説明】
１、１Ａ、１Ｂ  データベース共有化システム
２  ネットワーク
３〜５、３Ａ〜５Ａ、３Ｂ〜５Ｂ  コンピュータ（クライアント）
１０  コンピュータ本体
１１  表示装置
１２  入力装置
１４  外部記憶装置
１５  指紋読取り装置
１７  ＣＰＵ
１８  ＲＯＭ
１９  ＲＡＭ
２８  ハードディスクドライブ
２９  通信装置
４１、４１Ａ、４１Ｂ  データベース
４３−１Ａ〜４３−１Ｃ  ユーザＡ氏〜Ｃ氏のＩＤ
４３−２Ａ〜４３−２Ｃ  ユーザＡ氏〜Ｃ氏の公開鍵
４３−４Ａ〜４３−４Ｃ  ユーザＡ氏〜Ｃ氏の暗号化暗号鍵
４４  アクセス制御リスト
４５  データベース本体
４６  データベース制御プログラム
４７  ＩＤファイル
４７−１  ＩＤ
４７−２  名前
４７−３  ログインパスワード
４７−４  秘密鍵
４７−５、１１６  公開鍵
５０  送受信部
５１、５１Ｂ  認証部
５２、５２Ｂ  暗号鍵処理部
５３  データベース処理部
６０、６０Ｂ、６０Ｃ、６５  鍵取出し手段
６１、６７  乱数
６２  乱数発生手段
６３  暗号化乱数
６４、９５、１３１  暗号化手段
６６、８２、９３、１５１  複合化手段
６８、１５２  照合手段
６９  認証データ
７０  アクセス制御リスト取出手段
７１  アクセス権
７２、７２Ｂ  アクセス権設定手段
８０  鍵取り出し手段
８１  データベース暗号鍵
９０  暗号化データベースレコード
９１  レコード取出手段
９２  データベースレコード
９２Ａ  更新データベースレコード
９２Ｂ  暗号化データベースレコード
９２Ｃ  追加データベースレコード
９４、９４Ａ  データベース表示編集手段
９６、９６Ａ  レコード書込み手段
１００  アドレス帳
１００−１Ａ〜１００−１Ｂ、１４０−１Ａ〜１４０−１Ｂ  Ａ氏〜Ｂ氏のメールアドレス
１００−４Ａ〜１００−４Ｂ、１４０−５Ａ〜１４０−５Ｂ  Ａ氏〜Ｂ氏の公開鍵
１０１  公開鍵要求部
１０２  公開鍵返信部
１０３  ユーザアクセス制御部
１１２  鍵要求メール
１１３  鍵要求メール作成手段
１１４  返信メール
１１５、１３０  公開鍵取出手段
１１７  アドレス帳編集手段
１２０  メール解読手段
１２２  公開鍵返信メール作成手段
１３０  公開鍵取出手段
１３２  暗号化暗号鍵
１３３  アクセス制御書込手段
１３４  アクセス制御リスト編集手段
１４０  チケット
１４０−２Ａ〜１４０−２Ｂ  Ａ氏〜Ｂ氏のＩＤ
１４０−６Ｂ  Ｂ氏の暗号化暗号鍵
１４０−７Ｂ  Ｂ氏のアクセスレベル
１４０Ｃ  データベースへのアクセス経路
１５０  アクセス権レベル取出手段
【図１】
0003727819.tif 000002
【図２】
0003727819.tif 000003
【図３】
0003727819.tif 000004
【図４】
0003727819.tif 000005
【図５】
0003727819.tif 000006
【図６】
0003727819.tif 000007
【図７】
0003727819.tif 000008
【図８】
0003727819.tif 000009
【図９】
0003727819.tif 000010
【図１０】
0003727819.tif 000011
【図１１】
0003727819.tif 000012
【図１２】
0003727819.tif 000013
【図１３】
0003727819.tif 000014
【図１４】
0003727819.tif 000015
【図１５】
0003727819.tif 000016
【図１６】
0003727819.tif 000017
【図１７】
0003727819.tif 000018
【図１８】
0003727819.tif 000019
【図１９】
0003727819.tif 000020
【図２０】
0003727819.tif 000021
【図２１】
0003727819.tif 000022
【図２２】
0003727819.tif 000023
【図２３】
0003727819.tif 000024
【図２４】
0003727819.tif 000025
【図２５】
0003727819.tif 000026
【図２６】
0003727819.tif 000027
【図２７】
0003727819.tif 000028