説明

情報管理システム

【課題】暗号化された情報と暗号鍵がともに流出する可能性を低減することのできる情報管理システムを提供する。
【解決手段】本発明に係る情報管理システムは、情報を管理する情報管理サーバと、暗号処理を行う暗号処理サーバを分散させ、復号処理を行うために必要な秘密鍵は、情報管理サーバではなく暗号処理サーバが保持する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報を管理する技術に関するものである。
【背景技術】
【0002】
近年の情報処理技術の発達により、個人情報の蓄積や流通が容易になり、第三者に個人情報を取得され、架空請求詐欺やクレジットカードの不正利用等の被害に遭う事例が増えている。そのため、個人情報保護に対する関心が高まり、個人情報保護法の施行等、法制度の整備が進められている。また、個人情報を取り扱うサービス事業者には、個人情報の適正な管理が求められている。
【0003】
個人情報漏洩を防止するための手段としては、個人情報を暗号化して通信、保管を行う方法がある。
【0004】
一般的に、個人情報のような機密情報を暗号化して送信する場合、個人情報を処理の高速な共通鍵暗号方式によって暗号化し、鍵の管理、配布が容易な公開鍵暗号方式で共通鍵を暗号化する、ハイブリッド暗号方式がよく用いられる。
【0005】
下記特許文献1には、共通鍵を公開鍵で暗号化して送信し、共通鍵を2者間で共有する方法が開示されている。また、下記特許文献2には、暗号化により保存してある個人情報の安全性を高めるデータベース装置が開示されている。
【0006】
一方、個人情報を暗号化して保管したとしても、攻撃者に解析されることを防止するために暗号鍵に有効期限を設定する必要がある。そのため、暗号鍵は定期的に更新されなければならない。この点を考慮したセキュリティ標準として、クレジットカード業界で採用されている、PCI DSS(Payment Card Industry Data Security Standard)がある。PCI DSSでは、暗号鍵管理の要件として、少なくとも一年毎の鍵の更新を挙げている。
【0007】
PCI DSSは、クレジット業界だけで採用されているわけではなく、クレジットカード情報と関連のない企業や組織でもセキュリティ標準として採用され始めている。これにより、定期的な鍵の更新は、個人情報を取扱うあらゆるサービス事業者が遵守すべき要件となっている。
【0008】
下記特許文献3には、暗号通信において、定期的に暗号鍵を更新する暗号鍵管理システムが開示されている。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開平11−187008号公報
【特許文献2】特開2009−116553号公報
【特許文献3】特開2008−103988号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
上記特許文献1〜2に記載されている技術では、暗号化された情報と暗号鍵を同一のサーバシステム等の内部で管理していると、これらがともに流出してしまう可能性がある。暗号化された情報と暗号鍵がともに流出すると、情報は容易に復号化されるため、もはや情報の安全性は保たれていないといえる。
【0011】
本発明は、上記のような課題を解決するためになされたものであり、暗号化された情報と暗号鍵がともに流出する可能性を低減することのできる情報管理システムを提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明に係る情報管理システムは、情報を管理する情報管理サーバと、暗号処理を行う暗号処理サーバを分散させ、復号処理を行うために必要な秘密鍵は、情報管理サーバではなく暗号処理サーバが保持する。
【発明の効果】
【0013】
本発明に係る情報管理システムによれば、管理対象である暗号化された情報と、その復号処理に必要な秘密鍵とが分散管理されているので、情報と復号鍵がともに流出する可能性を低減することができる。
【図面の簡単な説明】
【0014】
【図1】実施の形態1に係る情報管理システム1000の構成図である。
【図2】公開鍵テーブル110の構成とデータ例を示す図である。
【図3】情報管理テーブル120の構成とデータ例を示す図である。
【図4】秘密鍵テーブル210の構成とデータ例を示す図である。
【図5】実施の形態1に係る情報管理システム1000の動作フロー図である。
【図6】実施の形態2に係る情報管理システム1000の構成図である。
【図7】共通鍵テーブル130の構成とデータ例を示す図である。
【図8】実施の形態2における情報管理テーブル120の構成とデータ例を示す図である。
【図9】サーバ側秘密鍵テーブル220の構成とデータ例を示す図である。
【図10】端末側秘密鍵テーブル410の構成とデータ例を示す図である。
【図11】情報提供端末300が管理対象情報を情報管理サーバ100に格納する際の各機器の動作シーケンスを示す図である。
【図12】図11のステップS1102における情報暗号化シーケンスを示す図である。
【図13】図11のステップS1106における情報再暗号化シーケンスの前半部分を示す図である。
【図14】図11のステップS1106における情報再暗号化シーケンスの後半部分を示す図である。
【図15】図11のステップS1104を実行した後の共通鍵テーブル130のデータ例を示す図である。
【図16】図11のステップS1105を実行した後の情報管理テーブル120のデータ例を示す図である。
【図17】ステップS1302で情報管理サーバ100が生成する情報リストのデータ例を示す図である。
【図18】ステップS1316で暗号処理サーバ200が生成する情報リストのデータ例を示す図である。
【図19】ステップS1320を実行した後における共通鍵テーブル130のデータ例を示す図である。
【図20】ステップS1319を実行した後における情報管理テーブル110のデータ例を示す図である。
【図21】情報検索クライアント端末400が部分復号を実行する場合の動作シーケンスを示す図である。
【図22】共通鍵を自動更新する処理シーケンスを示す図である。
【図23】ステップS2209を実行した後の共通鍵テーブル130のデータ例を示す図である。
【図24】実施の形態3において、ステップS1302で情報管理サーバ100が生成する情報リストのデータ例を示す図である。
【図25】実施の形態3において、ステップS1316で暗号処理サーバ200が生成する情報リストのデータ例を示す図である。
【図26】実施の形態3において、ステップS1320を実行した後における共通鍵テーブル130のデータ例を示す図である。
【図27】実施の形態3において、ステップS1319を実行した後における情報管理テーブル110のデータ例を示す図である。
【図28】公開鍵を自動更新する処理シーケンスを示す図である。
【図29】図28のステップS2813における共通鍵再暗号化シーケンスの前半部分を示す図である。
【図30】図28のステップS2813における共通鍵再暗号化シーケンスの後半部分を示す図である。
【図31】ステップ2807を実行した後の公開鍵テーブル110のデータ例を示す図である。
【図32】ステップ2811を実行した後のサーバ側秘密鍵テーブル220のデータ例を示す図である。
【図33】ステップ2812を実行した後の端末側秘密鍵テーブル410のデータ例を示す図である。
【図34】ステップS2902で生成される再暗号化共通鍵リストのデータ例を示す図である。
【図35】ステップS2910で生成される再暗号化共通鍵リストのデータ例を示す図である。
【図36】ステップS2913を実行した後の共通鍵テーブル130のデータ例を示す図である。
【図37】ステップS2914を実行した後の公開鍵テーブル110のデータ例を示す図である。
【図38】ステップS2916を実行した後のサーバ側秘密鍵テーブル220のデータ例を示す図である。
【図39】ステップS2917を実行した後の端末側秘密鍵テーブル410のデータ例を示す図である。
【図40】情報検索クライアント400が管理対象情報を検索する際の処理シーケンスを示す図である。
【図41】図40のステップS4006における検索文字列暗号化シーケンスを示す図である。
【図42】図40のステップS4011における検索結果復号シーケンスを示す図である。
【図43】図40のステップS4004で生成される検索用共通鍵リストのデータ例を示す図である。
【図44】図40のステップS4009で生成される暗号化検索結果リストのデータ例を示す図である。
【図45】図41のステップS4105で生成される検索文字列リストのデータ例を示す図である。
【図46】図42のステップS4201で生成される公開鍵IDリストのデータ例を示す図である。
【図47】図42のステップS4203で生成される端末側秘密鍵リストのデータ例を示す図である。
【図48】図42のステップS4207で生成される復号化検索結果リストのデータ例を示す図である。
【発明を実施するための形態】
【0015】
<用語の説明>
本発明の実施の形態の説明に入る前に、本発明で用いられる用語を説明しておく。
【0016】
公開鍵で暗号化されたデータは、秘密鍵がなければ復号できない。例えばRSA方式では、平文をm、公開鍵をe、2つの素数の積をnとすると、次式(1)により平文mを暗号化して暗号文cを得る。
c=m mod n ・・・(1)
【0017】
また、秘密鍵をdとすると、次式(2)により暗号文cを復号して平文mを得る。
m=c mod n ・・・(2)
【0018】
dが素数でない場合には、dは2つの2以上の整数の積で表すことができる。この2つの整数をそれぞれd1、d2とすると、上記式(2)は次式(3)で表すことができる。
m=cd1×d2 mod n
=(cd1)d2 mod n
=(cd1 mod n)d2 mod n ・・・(3)
【0019】
すなわち、秘密鍵dは、第1秘密鍵d1と第2秘密鍵d2に分散し、それぞれ別個に保持することができる。したがって、秘密鍵dを分散させる場合、秘密鍵dには素数でない数を用いることにする。
【0020】
本発明において、「サーバ側秘密鍵」「端末側秘密鍵」とは、上記第1秘密鍵と第2秘密鍵を、後述の暗号処理サーバ200と情報検索クライアント端末400にそれぞれ別個に保持させたものをいう。
【0021】
本発明において、「一部復号」とは、上記式(3)のcd1 mod nを演算すること、すなわち2つに分散した秘密鍵のうち一方のみを用いて復号処理を行うことをいう。
【0022】
本発明において、「完全復号」とは、上記式(3)の演算により復号すること、すなわち2つに分散した秘密鍵の双方を用いて復号処理を行うこと、または上記式(3)の後半部分の処理を実行することをいう。
【0023】
<実施の形態1>
図1は、本発明の実施の形態1に係る情報管理システム1000の構成図である。情報管理システム1000は、例えば個人情報などの情報を管理するシステムであり、情報管理サーバ100、暗号処理サーバ200、情報提供端末300a〜300c、情報検索クライアント端末400を有する。これらの端末およびサーバは、ネットワーク500を解して接続されている。
【0024】
情報管理サーバ100は、管理対象である情報を管理するサーバコンピュータであり、公開鍵テーブル110、情報管理テーブル120を備える。各テーブルの構成については後述する。
【0025】
暗号処理サーバ200は、情報の暗号化処理と復号化処理を行うサーバコンピュータであり、サーバ側秘密鍵テーブル210を備える。情報管理サーバ100は、暗号化処理や復号化処理を行わず、これらの処理を暗号処理サーバ200に委譲する。暗号処理サーバ200は、公開鍵と秘密鍵のペアを生成し、秘密鍵は自己が保持し、公開鍵は情報管理サーバ100や情報提供端末300などに公開する。
【0026】
情報提供端末300a〜300cは、管理対象である情報の提供元端末である。ここでは3つの情報提供端末300a〜300cを示したが、個数は任意でよい。情報提供端末300a〜300cは同様の構成を有する。以下、情報提供端末300a〜300cを総称的に取り扱うときは、情報提供端末300とよぶ。
【0027】
情報検索クライアント端末400は、情報管理サーバ100が管理している情報を検索し、閲覧するクライアント端末である。
【0028】
図2は、公開鍵テーブル110の構成とデータ例を示す図である。公開鍵テーブル110は、暗号処理サーバ200が生成する公開鍵の生成日時を管理するためのテーブルであり、公開鍵ID列111、生成日時列112、公開鍵列113、鍵更新フラグ列114を有する。
【0029】
公開鍵ID列111は、個々の公開鍵を識別するためのIDを保持する。生成日時列112は、公開鍵ID列111の値で識別される公開鍵の生成日時を保持する。公開鍵列113は、公開鍵ID列111の値で識別される公開鍵そのものを保持する。鍵更新フラグ列114は、公開鍵ID列111の値で識別される公開鍵を更新する必要があるか否かを示す。本列の値がTRUEであれば更新が必要であることを示し、FALSEであれば更新不要であることを示す。
【0030】
図3は、情報管理テーブル120の構成とデータ例を示す図である。情報管理テーブル120は、暗号処理サーバ200が生成した公開鍵を用いて暗号化された管理対象情報を管理するテーブルであり、公開鍵ID列121、管理対象情報列122を備える。
【0031】
公開鍵ID列121は、個々の公開鍵を識別するためのIDを保持する列であり、値そのものは公開鍵テーブル110の公開鍵ID列111とリンクしている。管理対象情報列122は、公開鍵ID列121の値で識別される公開鍵を用いて暗号化された管理対象情報を保持する。
【0032】
図4は、秘密鍵テーブル210の構成とデータ例を示す図である。秘密鍵テーブル210は、暗号処理サーバ200が生成した秘密鍵を管理するためのテーブルであり、公開鍵ID列211、秘密鍵列212を有する。
【0033】
公開鍵ID列211は、個々の公開鍵を識別するためのIDを保持する列であり、値そのものは公開鍵テーブル110の公開鍵ID列111とリンクしている。秘密鍵列212は、公開鍵ID列121の値で識別される公開鍵とペアで生成された秘密鍵そのものを保持する。
【0034】
以上、本実施の形態1に係る情報管理システム1000の構成を説明した。次に、情報管理システム1000の動作を説明する。
【0035】
図5は、本実施の形態1に係る情報管理システム1000の動作フロー図である。以下、図5に示す各ステップについて説明する。
【0036】
(1)情報を公開鍵で暗号化する
情報提供端末300は、暗号処理サーバ200が生成した公開鍵を、あらかじめ取得しておく。情報提供端末300は、情報管理サーバ1000に管理させる情報を、上記公開鍵を用いて暗号化する。
【0037】
(2)送信する
情報提供端末300は、公開鍵を用いて暗号化した管理対象情報を、情報管理サーバ100に送信する。また、少なくともその公開鍵の公開鍵ID(公開鍵ID列111の値に相当)を、併せて情報管理サーバ100に送信する。管理の便宜上、公開鍵そのものを併せて送信し、公開鍵と公開鍵IDをセットにして管理するようにしてもよい。図2では、公開鍵と公開鍵IDをセットにして管理する構成例を示したが、公開鍵IDのみを管理するように公開鍵テーブル110を構成してもよい。以下の実施の形態でも同様である。
【0038】
(3)閲覧リクエスト
情報検索クライアント端末400は、情報管理サーバ100が管理している情報に対する閲覧リクエストを、暗号処理サーバ200に対して発行する。このとき、閲覧対象である情報を識別することのできる識別子、例えば閲覧対象情報の管理IDなど(図示せず)を併せて指定する。
【0039】
(4)送信要求
暗号処理サーバ200は、情報検索クライアント端末400より閲覧リクエストを受け取ると、その情報を送信するように、情報管理サーバ100へ要求する。このとき、その情報の識別子を併せて送信する。
【0040】
(5)送信する
情報管理サーバ100は、情報検索クライアント端末400が閲覧リクエストを発行した情報を、暗号処理サーバ200に送信する。また、その情報を暗号化している公開鍵のIDを、併せて暗号処理サーバ200に送信する。このとき暗号処理サーバ200に送信される情報は、公開鍵で暗号化されている。
【0041】
(6)情報を秘密鍵で復号化する
暗号処理サーバ200は、情報管理サーバ100から受け取った情報を暗号化する際に用いられた公開鍵を、公開鍵IDによって特定する。暗号処理サーバ200は、その公開鍵とペアになっている秘密鍵を用いて、情報を復号化する。
【0042】
(7)送信する
暗号処理サーバ200は、ステップ(6)で復号した情報を、情報検索クライアント端末400に送信する。
【0043】
以上、本実施の形態1に係る情報管理システム1000の動作を説明した。
【0044】
以上のように、本実施の形態1によれば、情報管理サーバ100は公開鍵で暗号化された管理対象情報を管理し、復号のために必要な秘密鍵は保持しない。情報管理サーバ100は、管理対象情報を暗号化する際に用いられた公開鍵のIDのみを管理しておき、管理対象情報を復号する必要がある場合は、その公開鍵IDを暗号処理サーバ200に通知する。これにより、管理対象情報とその復号鍵を切り離して分散管理することができるので、管理対象情報と復号鍵がともに流出してしまう可能性を低減し、情報セキュリティを高めることができる。
【0045】
<実施の形態2>
本発明の実施の形態2では、情報提供端末300の処理能力などが比較的低い場合を想定した構成と動作例を説明する。また、<用語の説明>において説明した、秘密鍵を分散管理する手法についても併せて説明する。
【0046】
公開鍵暗号方式では、一般に秘密鍵の鍵長が長い傾向がある。情報提供端末300のなかに、携帯電話のような処理速度の遅い端末が含まれる場合、公開鍵で暗号化された情報の復号を情報提供端末300で行うと、処理時間が過大になってしまう。
【0047】
そこで本実施の形態2では、情報提供端末300ではより短い共通鍵を用いて情報を暗号化し、その共通鍵を公開鍵で暗号化し、暗号化後の情報と共通鍵を情報管理サーバ100に送信する構成をとる。暗号処理サーバ200は、共通鍵を秘密鍵で復号化し、さらにその共通鍵を用いて情報を復号化する。
【0048】
なお、上記構成を採用した場合、実施の形態1とは異なり、情報提供端末300の数だけ共通鍵が存在することになる。したがって、情報検索クライアント端末400より複数の情報を参照しようとした場合、同数の異なる共通鍵を用いて復号化処理を行う必要が生じ、処理時間が過大になってしまう。そこで、暗号化に用いる共通鍵の数をできる限り少なくする手法についても、本実施の形態2で併せて説明する。
【0049】
図6は、本実施の形態2に係る情報管理システム1000の構成図である。本実施の形態2において、情報管理サーバ100は、実施の形態1で説明した構成に加えて新たに共通鍵テーブル130を備える。また、情報管理テーブル120の内容が、実施の形態1とは異なる。暗号処理サーバ200は秘密鍵テーブル210に代えてサーバ側秘密鍵テーブル220を備え、情報検索クライアント端末400は端末側秘密鍵テーブル410を備える。情報提供端末300は、比較的処理能力の低い、例えば携帯電話などの端末である。その他の構成は、実施の形態1と同様である。
【0050】
図7は、共通鍵テーブル130の構成とデータ例を示す図である。共通鍵テーブル130は、情報提供端末300または暗号処理サーバ200が生成する共通鍵の生成日時を管理するためのテーブルであり、共通鍵ID列131、公開鍵ID列132、生成日時列133、共通鍵列134、鍵更新フラグ列135を有する。
【0051】
共通鍵ID列131は、個々の共通鍵を識別するためのIDを保持する。公開鍵ID列132は、共通鍵ID列131の値で識別される共通鍵を暗号化した公開鍵のIDを保持する。生成日時列133は、共通鍵ID列131の値で識別される共通鍵の生成日時を保持する。共通鍵列134は、共通鍵ID列131の値で識別される共通鍵そのものを保持する。ただし、この共通鍵は、公開鍵ID列132の値で識別される公開鍵で暗号化されている。鍵更新フラグ列135は、共通鍵ID列131の値で識別される共通鍵を更新する必要があるか否かを示す。本列の値がTRUEであれば更新が必要であることを示し、FALSEであれば更新不要であることを示す。
【0052】
図8は、本実施の形態2における情報管理テーブル120の構成とデータ例を示す図である。本実施の形態2において、情報管理テーブル120は、実施の形態1で説明した構成に代えて、共通鍵ID列123、管理対象情報列124を有する。
【0053】
共通鍵ID列123は、個々の共通鍵を識別するためのIDを保持する列であり、値そのものは共通鍵テーブル130の共通鍵ID列131とリンクしている。管理対象情報列124は、共通鍵ID列123の値で識別される共通鍵で暗号化された情報を保持する。
【0054】
図9は、サーバ側秘密鍵テーブル220の構成とデータ例を示す図である。サーバ側秘密鍵テーブル220は、暗号処理サーバ200が生成した秘密鍵を分散して生成した秘密鍵のうち、暗号処理サーバ200が保持するもの、すなわちサーバ側秘密鍵を管理するテーブルである。サーバ側秘密鍵テーブル220は、公開鍵ID列221、サーバ側秘密鍵222を有する。
【0055】
公開鍵ID列221は、個々の公開鍵を識別するためのIDを保持する列であり、値そのものは公開鍵テーブル110の公開鍵ID列111とリンクしている。サーバ側秘密鍵222は、公開鍵ID列221の値で識別される公開鍵とペアになっているサーバ側秘密鍵そのものを保持する。
【0056】
図10は、端末側秘密鍵テーブル410の構成とデータ例を示す図である。端末側秘密鍵テーブル410は、暗号処理サーバ200が生成した秘密鍵を分散して生成した秘密鍵のうち、情報検索クライアント端末400が保持するもの、すなわち端末側秘密鍵を管理するテーブルである。端末側秘密鍵テーブル410は、公開鍵ID列411、端末側秘密鍵412を有する。
【0057】
公開鍵ID列411は、個々の公開鍵を識別するためのIDを保持する列であり、値そのものは公開鍵テーブル110の公開鍵ID列111とリンクしている。端末側秘密鍵412は、公開鍵ID列411の値で識別される公開鍵とペアになっている端末側秘密鍵そのものを保持する。
【0058】
図11は、情報提供端末300が管理対象情報を情報管理サーバ100に格納する際の各機器の動作シーケンスを示す図である。以下、図11の各ステップについて説明する。
【0059】
(図11:ステップS1101)
情報提供端末300のユーザは、情報管理システム1000に管理させる情報を、情報提供端末300に入力する。
【0060】
(図11:ステップS1102)
情報提供端末300と情報管理サーバ100の間で、後述の図12で説明する情報暗号化シーケンスを実行する。本ステップにより、管理対象情報は共通鍵で暗号化され、共通鍵は公開鍵で暗号化される。
【0061】
(図11:ステップS1103)
情報提供端末300は、共通鍵で暗号化された管理対象情報、公開鍵で暗号化された共通鍵、および共通鍵を暗号化した公開鍵のIDを、情報管理サーバ100に送信する。
【0062】
(図11:ステップS1104)
情報管理サーバ100は、共通鍵IDを新たに生成し、共通鍵テーブル130の共通鍵ID列131の新たな行に格納する。また、新たに格納した共通鍵ID列131と同じ行において、ステップS1103で受信した公開鍵IDと共通鍵を、それぞれ公開鍵ID列132と共通鍵列134に格納する。生成日時列133にはステップS1103の受信日時を格納し、鍵更新フラグ列135にはTRUEを格納する。本ステップを実行した後の共通鍵テーブル130の様子は、後述の図15で改めて示す。
【0063】
(図11:ステップS1105)
情報管理サーバ100は、情報管理テーブル120の共通鍵ID列123に、ステップS1104で新たに生成した共通鍵IDを格納し、管理対象情報列124に、ステップS1103で受け取った管理対象情報を格納する。本ステップを実行した後の情報管理テーブル120の様子は、後述の図16で改めて示す。
【0064】
(図11:ステップS1106)
情報管理サーバ100、暗号処理サーバ200、情報検索クライアント端末400は、後述の図13〜図14で説明する情報再暗号化シーケンスを実行する。本ステップでは、ステップS1102で暗号化された管理対象情報を、他の管理対象情報と共通の共通鍵で改めて暗号する。これにより、複数の管理対象情報を同一の共通鍵で暗号化し、共通鍵の数を抑えることができる。
【0065】
図12は、図11のステップS1102における情報暗号化シーケンスを示す図である。以下、図12の各ステップについて説明する。
【0066】
(図12:ステップS1201)
情報提供端末300は、情報管理システム1000に管理させる情報を暗号化するための共通鍵を新たに生成する。
【0067】
(図12:ステップS1202)
情報提供端末300は、ステップS1201で生成された共通鍵を暗号鍵とし、管理対象情報を暗号化する。
【0068】
(図12:ステップS1203)
情報提供端末300は、ステップS1201で生成された共通鍵を暗号化するための公開鍵を送信するよう、情報管理サーバ100に要求する。
【0069】
(図12:ステップS1204)
情報管理サーバ100は、公開鍵テーブル110から生成日時列112の値が最も新しい公開鍵と公開鍵IDを抽出する。例えば、図2に示した公開鍵テーブル110のデータ例では、公開鍵3と公開鍵ID103が抽出される。
【0070】
(図12:ステップS1205)
情報管理サーバ100は、ステップS1204で抽出した公開鍵と公開鍵IDを情報提供側端末300に送信する。
【0071】
(図12:ステップS1206)
情報提供側端末300は、ステップS1205で受信した公開鍵を暗号鍵とし、ステップS1201で生成された共通鍵を暗号化する。
【0072】
図13は、図11のステップS1106における情報再暗号化シーケンスの前半部分を示す図である。以下、図13の各ステップについて説明する。
【0073】
(図13:ステップS1301)
情報管理サーバ100は、共通鍵テーブル130から鍵更新フラグがTRUEであるレコードの共通鍵列134(被更新共通鍵)、共通鍵ID列131、公開鍵ID列132の値を抽出する。ここでは、ステップS1104で新たに格納した共通鍵11のレコードが抽出される。
【0074】
(図13:ステップS1302)
情報管理サーバ100は、情報管理テーブル120のうちステップS1301で抽出した共通鍵IDを持つレコードから管理対象情報列124を抽出し、再暗号化する情報のリストを生成する。本ステップで情報管理サーバ100が生成する情報リストの例は、後述の図17で改めて示す。
【0075】
(図13:ステップS1303)
情報管理サーバ100は、共通鍵テーブル130から、生成日時が最も新しく、鍵更新フラグがFALSEのレコードの共通鍵列134(最新共通鍵)、共通鍵ID列131、公開鍵ID列132を抽出する。
【0076】
(図13:ステップS1304)
情報管理サーバ100は、ステップS1301で抽出した被更新共通鍵、被更新共通鍵の公開鍵ID、ステップS1302で生成した情報リスト、ステップS1303で抽出した最新共通鍵、最新共通鍵の公開鍵IDを、暗号処理サーバ200に送信する。
【0077】
(図13:ステップS1305)
暗号処理サーバ200は、ステップS1304で受信した被更新共通鍵の公開鍵IDを情報検索クライアント端末400に送信する。
【0078】
(図13:ステップS1306)
暗号処理サーバ200は、サーバ側秘密鍵テーブル220から、ステップS1304で受信した被更新共通鍵の公開鍵IDを持つレコードのサーバ側秘密鍵を抽出する。
【0079】
(図13:ステップS1307)
情報検索クライアント端末400は、端末側秘密鍵テーブル410から、ステップS1305で受信した被更新共通鍵の公開鍵IDを持つレコードの端末側秘密鍵を抽出する。
【0080】
(図13:ステップS1308)
情報検索クライアント端末400は、ステップS1307で抽出した端末側秘密鍵を暗号処理サーバ200に送信する。
【0081】
(図13:ステップS1309)
暗号処理サーバ200は、ステップS1306で抽出したサーバ側秘密鍵とステップS1308で受信した端末側秘密鍵を復号鍵とし、ステップS1304で受信した被更新共通鍵を復号する。
【0082】
(図13:ステップS1310)
暗号処理サーバ200は、ステップS1309で復号した被更新共通鍵を復号鍵とし、ステップS1304で受信した情報リストの情報を復号する。
【0083】
図14は、図11のステップS1106における情報再暗号化シーケンスの後半部分を示す図である。以下、図14の各ステップについて説明する。
【0084】
(図14:ステップS1311)
暗号処理サーバ200は、ステップS1304で受信した最新共通鍵の公開鍵IDを、情報検索クライアント端末400に送信する。
【0085】
(図14:ステップS1312)
暗号処理サーバ200は、サーバ側秘密鍵テーブル220から、ステップS1304で受信した最新共通鍵の公開鍵IDを持つレコードのサーバ側秘密鍵を抽出する。
【0086】
(図14:ステップS1313)
情報検索クライアント端末400は、端末側秘密鍵テーブル410から、ステップS1311で受信した最新共通鍵の公開鍵IDを持つレコードの端末側秘密鍵を抽出する。
【0087】
(図14:ステップS1314)
情報検索クライアント端末400は、ステップS1313で抽出した端末側秘密鍵を暗号処理サーバ200に送信する。
【0088】
(図14:ステップS1315)
暗号処理サーバ200は、ステップS1312で抽出したサーバ側秘密鍵とステップS1314で受信した端末側秘密鍵を復号鍵とし、ステップS1304で受信した最新共通鍵を復号する。
【0089】
(図14:ステップS1316)
暗号処理サーバ200は、ステップS1315で復号した最新共通鍵を暗号鍵とし、ステップS1310で復号した情報リストの情報を再暗号化する。本ステップで再暗号化した情報リストの例は、図18で改めて示す。
【0090】
(図14:ステップS1317)
暗号処理サーバ200は、ステップS1316で暗号化された情報リストを情報管理サーバ100に送信する。
【0091】
(図14:ステップS1318)
情報管理サーバ100は、ステップS1317で受信した情報リスト内の情報を、ステップS1303で抽出した最新共通鍵IDとともに、情報管理テーブル110に保存する。
【0092】
(図14:ステップS1319)
情報管理サーバ100は、情報管理テーブル110から、ステップS1301で抽出した被更新共通鍵IDを持つレコードを削除する。本ステップの後における情報管理テーブル110のデータ例は、図20で改めて示す。
【0093】
(図14:ステップS1320)
情報管理サーバ100は、共通鍵テーブル130から、ステップS1301で抽出した被更新共通鍵IDを持つレコードを削除する。本ステップの後における共通鍵テーブル130のデータ例は、図19で改めて示す。
【0094】
図15は、図11のステップS1104を実行した後の共通鍵テーブル130のデータ例を示す図である。図7で示したデータ例に加えて、新たに共通鍵ID列131の値が1011であるレコードが追加されている。このレコードは、共通鍵の数を少なく抑えるため、後に削除される。したがって、鍵更新フラグ列135にはTRUEがセットされる。
【0095】
図16は、図11のステップS1105を実行した後の情報管理テーブル120のデータ例を示す図である。図8で示したデータ例に加えて、新たに共通鍵11で暗号化されたレコードが追加されている。このレコードは、共通鍵の数を抑えるため、後の再暗号化シーケンス(図13〜図14)で共通鍵10によって再暗号化される。
【0096】
図17は、ステップS1302で情報管理サーバ100が生成する情報リストのデータ例を示す図である。図15のデータ例によれば、鍵更新フラグ列135がTRUEである共通鍵は共通鍵11(共通鍵ID=1011)であるため、ステップS1302では、共通鍵11で暗号化された情報が抽出される。
【0097】
図18は、ステップS1316で暗号処理サーバ200が生成する情報リストのデータ例を示す図である。図15のデータ例によれば、鍵更新フラグ列135がFALSEである共通鍵のうち最新のものは共通鍵10(共通鍵ID=1010)であるため、ステップS1316では、共通鍵10を用いて情報リストが暗号化される。
【0098】
図19は、ステップS1320を実行した後における共通鍵テーブル130のデータ例を示す図である。図15において鍵更新フラグ列135=TRUEであった共通鍵11は、削除されている。
【0099】
図20は、ステップS1319を実行した後における情報管理テーブル110のデータ例を示す図である。図16において共通鍵11で暗号化されていた情報は、共通鍵10を用いて再暗号化されている。
【0100】
以上のステップS1305〜S1309、およびステップS1311〜1315では、暗号処理サーバ200で全ての復号処理を実行しているが、公開鍵暗号方式としてRSAを用いる場合、情報検索クライアント端末400で部分復号を行ってもよい。
【0101】
図21は、ステップS1305〜S1309、またはステップS1311〜1315において、情報検索クライアント端末400が部分復号を実行する場合の動作シーケンスを示す図である。以下、図21の各ステップについて説明する。
【0102】
(図21:ステップS2101)
暗号処理サーバ200は、ステップS1304で受信した被更新共通鍵の公開鍵ID、およびその被更新共通鍵を、情報検索クライアント端末400に送信する。
【0103】
(図21:ステップS2102)
情報検索クライアント端末400は、端末側秘密鍵テーブル410から、ステップS2101で受信した被更新共通鍵の公開鍵IDを持つレコードの端末側秘密鍵を抽出する。
【0104】
(図21:ステップS2103)
情報検索クライアント端末400は、ステップS2101で受け取った被更新共通鍵を端末側秘密鍵で部分復号する。
【0105】
(図21:ステップS2104)
情報検索クライアント端末400は、ステップS2103で部分復号した被更新共通鍵を暗号処理サーバ200に送信する。
【0106】
(図21:ステップS2105)
暗号処理サーバ200は、サーバ側秘密鍵テーブル220から、ステップS2104で受信した被更新共通鍵の公開鍵IDを持つレコードのサーバ側秘密鍵を抽出する。
【0107】
(図21:ステップS2106)
暗号処理サーバ200は、ステップS2105で抽出したサーバ側秘密鍵を復号鍵とし、ステップS2104で受信した被更新共通鍵を復号する。
【0108】
以上、情報提供端末300が提供した情報を、他の共通鍵で暗号化し直し、共通鍵の数を抑える手法を説明した。
【0109】
以上のように、本実施の形態2では、情報提供端末300が共通鍵を用いて管理対象情報を暗号化し、公開鍵を用いて共通鍵を暗号化する構成の下、他の管理対象情報と同一の共通鍵を用いて管理対象情報を再暗号化する。これにより、情報提供端末300の処理能力が低い場合でも、情報提供端末300の処理負荷を低減し、さらに共通鍵の数を抑えて復号処理時の演算負荷を低減することができる。
【0110】
<実施の形態3>
本発明の実施の形態3では、実施の形態2で説明した構成の下、共通鍵を自動的に更新する動作例を説明する。
【0111】
共通鍵は、暗号鍵であると同時に復号鍵でもあるため、共通鍵を更新する場合、その共通鍵で暗号化されている管理対象情報を、新たな共通鍵で再暗号化する必要がある。この作業を管理者が手動で行うと、多大な負担となる。そこで本実施の形態3では、これを自動化することを図る。
【0112】
図22は、共通鍵を自動更新する処理シーケンスを示す図である。以下、図22の各ステップについて説明する。
【0113】
(図22:ステップS2201)
情報管理サーバ100は、共通鍵テーブル130から、生成日時が現在より所定時間以上前のレコードを抽出する。例えば、共通鍵の有効期間を11ヶ月に設定している場合、生成日時列133の値が現在日時より11ヶ月以上前のレコードを抽出する。
【0114】
(図22:ステップS2202)
ステップS2301でレコードが抽出された場合はステップS2203に進み、レコードが抽出されなかった場合は本処理シーケンスを終了する。
【0115】
(図22:ステップS2203)
情報管理サーバ100は、ステップS2201で抽出されたレコードの鍵更新フラグ列135をTRUEに変更する。
【0116】
(図22:ステップS2204)
情報管理サーバ100は、公開鍵テーブル110から、生成日時列112の最も新しいレコードの公開鍵ID列111と公開鍵列113を抽出する。
【0117】
(図22:ステップS2205)
情報管理サーバ100は、ステップS2204で抽出した公開鍵を暗号処理サーバ200に送信する。
【0118】
(図22:ステップS2206)
暗号処理サーバ200は、共通鍵を新たに生成する。
【0119】
(図22:ステップS2207)
暗号処理サーバ200は、ステップS2205で受信した公開鍵を暗号鍵とし、ステップS2206で生成した共通鍵を暗号化する。
【0120】
(図22:ステップS2208)
暗号処理サーバ200は、ステップS2207で暗号化した共通鍵を情報管理サーバ100に送信する。
【0121】
(図22:ステップS2209)
情報管理サーバ100は、共通鍵IDを新たに発行し、ステップS2208で受信した共通鍵とステップS2204で抽出した公開鍵IDを共通鍵テーブル130に保存する。この時、生成日時列133には、共通鍵更新処理(本処理シーケンス)を実行する日時、鍵更新フラグ列135にはFALSEを格納する。本ステップを実行した後の共通鍵テーブル130のデータ例は、後述の図23で改めて示す。
【0122】
(図22:ステップS2210)
本ステップでは、図13〜図14と同様の処理シーケンスを実行し、新たに生成した共通鍵を用いて管理対象情報を再暗号化する。具体的には、情報管理サーバ100は、ステップS2201で抽出した古い共通鍵で暗号化されている管理対象情報を抽出し、新しい共通鍵およびその共通鍵を暗号化している公開鍵とともに暗号処理サーバ200へ送信する。暗号処理サーバ200は、情報検索クライアント400から端末側秘密鍵を取得し、サーバ側秘密鍵と併せて共通鍵を復号し、その共通鍵を用いて管理対象を再暗号化して情報管理サーバ100に送信する。
【0123】
図23は、ステップS2209を実行した後の共通鍵テーブル130のデータ例を示す図である。ステップS2203の結果として、生成日時列133の値が最も古い共通鍵の鍵更新フラグ列135がTRUEに変更されている。また、ステップS2209の結果として、共通鍵12が新たに生成されている。
【0124】
図24は、本実施の形態3において、ステップS1302で情報管理サーバ100が生成する情報リストのデータ例を示す図である。図23のデータ例によれば、鍵更新フラグ列135がTRUEである共通鍵は共通鍵1(共通鍵ID=1001)であるため、ステップS1302では、共通鍵1で暗号化された情報が抽出される。
【0125】
図25は、本実施の形態3において、ステップS1316で暗号処理サーバ200が生成する情報リストのデータ例を示す図である。図23のデータ例によれば、鍵更新フラグ列135がFALSEである共通鍵のうち最新のものは共通鍵12(共通鍵ID=1012)であるため、ステップS1316では、共通鍵12を用いて情報リストが暗号化される。
【0126】
図26は、本実施の形態3において、ステップS1320を実行した後における共通鍵テーブル130のデータ例を示す図である。図23において鍵更新フラグ列135=TRUEであった共通鍵1は、削除されている。
【0127】
図27は、本実施の形態3において、ステップS1319を実行した後における情報管理テーブル110のデータ例を示す図である。共通鍵1で暗号化されていた情報は、共通鍵12を用いて再暗号化されている。
【0128】
以上、生成日時の古い共通鍵を自動更新するとともに、管理対象情報を新しい共通鍵で再暗号化する処理シーケンスを説明した。
【0129】
以上のように、本実施の形態3において、情報管理サーバ100は生成日時列133が所定期間以上経過した共通鍵を抽出する。暗号処理サーバ200は、新たな共通鍵を生成し、その共通鍵を用いて管理対象情報を再暗号化する。これにより、共通鍵(暗号鍵/復号鍵)の更新に伴う再暗号化処理を自動化し、管理者の負担を軽減することができる。
【0130】
<実施の形態4>
本発明の実施の形態4では、公開鍵を自動的に更新する動作例を説明する。また、公開鍵を用いて共通鍵を暗号化している場合において、公開鍵の更新に伴い共通鍵を再暗号化する動作例を説明する。
【0131】
図28は、公開鍵を自動更新する処理シーケンスを示す図である。以下、図28の各ステップについて説明する。
【0132】
(図28:ステップS2801)
情報管理サーバ100は、公開鍵テーブル110から、生成日時が現在より所定時間以上前のレコードを抽出する。例えば、公開鍵の有効期間を11ヶ月に設定している場合、生成日時列112の値が現在日時より11ヶ月以上前のレコードを抽出する。
【0133】
(図28:ステップS2802)
ステップS2801でレコードが抽出された場合はステップS2803に進み、レコードが抽出されなかった場合は本処理シーケンスを終了する。
【0134】
(図28:ステップS2803)
情報管理サーバ100は、ステップS2801で抽出されたレコードの鍵更新フラグ列114をTRUEに変更する。
【0135】
(図28:ステップS2804)
情報管理サーバ100は、公開鍵を新たに生成するよう、暗号処理サーバ200に要求する。
【0136】
(図28:ステップS2805)
暗号処理サーバ200は、公開鍵と秘密鍵のペアを新たに生成する。
【0137】
(図28:ステップS2806)
暗号処理サーバ200は、ステップS2805で生成した公開鍵を情報管理サーバ100に送信する。
【0138】
(図28:ステップS2807)
情報管理サーバ100は、公開鍵IDを新たに発行し、ステップS2806で受信した公開鍵とともに公開鍵テーブル110に格納する。この時、生成日時列112には、公開鍵更新処理(本処理シーケンス)を実行する日時、鍵更新フラグ列114にはFALSEを格納する。本ステップを実行した後の公開鍵テーブル110のデータ例は、後述の図31で改めて示す。
【0139】
(図28:ステップS2808)
情報管理サーバ100は、ステップS2807で発行した公開鍵IDを暗号処理サーバ200に送信する。
【0140】
(図28:ステップS2809)
暗号処理サーバ200は、ステップS2805で生成した秘密鍵を分散し、サーバ側秘密鍵と端末側秘密鍵を生成する。
【0141】
(図28:ステップS2810)
暗号処理サーバ200は、ステップS2808で受信した公開鍵IDとステップS2809で生成した端末側秘密鍵を個人情報検索クライアント端末400に送信する。
【0142】
(図28:ステップS2811)
暗号処理サーバ200は、ステップS2808で受信した公開鍵IDとステップS2809で生成したサーバ側秘密鍵をサーバ側秘密鍵テーブル220に保存する。本ステップを実行した後のサーバ側秘密鍵テーブル220のデータ例は、後述の図32で改めて示す。
【0143】
(図28:ステップS2812)
情報検索クライアント端末400は、ステップS2810で受信した公開鍵IDと端末側秘密鍵を端末側秘密鍵テーブル410に格納する。本ステップを実行した後の端末側秘密鍵テーブル410のデータ例は、後述の図33で改めて示す。
【0144】
(図28:ステップS2813)
情報管理サーバ100、暗号処理サーバ200、情報検索クライアント端末400は、後述の図29〜図30で説明する共通鍵再暗号化シーケンスを実行する。本ステップでは、ステップS2805で新たに生成した公開鍵を用いて、共通鍵を再暗号化する。これにより、公開鍵の更新に伴う共通鍵の再暗号化処理を自動的に行うことができる。
【0145】
図29は、図28のステップS2813における共通鍵再暗号化シーケンスの前半部分を示す図である。以下、図29の各ステップについて説明する。
【0146】
(図29:ステップS2901)
情報管理サーバ100は、公開鍵テーブル110から、鍵更新フラグ列114の値がTRUEであるレコードの公開鍵ID列111(被更新公開鍵)を抽出する。本ステップで公開鍵を抽出する際の公開鍵テーブル110のデータ例は、後述の図31で改めて示す。
【0147】
(図29:ステップS2902)
情報管理サーバ100は、共通鍵テーブル130から、ステップS2901で抽出した公開鍵IDを持つレコードの共通鍵ID列131と共通鍵列134を抽出し、再暗号化する共通鍵のリスト(再暗号化共通鍵リスト)を生成する。本ステップで生成される再暗号化共通鍵リストの例は、後述の図34で改めて示す。
【0148】
(図29:ステップS2903)
情報管理サーバ100は、公開鍵テーブル110から、生成日時列112の値が最も新しく、鍵更新フラグ列114がFALSEのレコード(最新公開鍵)の、公開鍵列113、公開鍵ID列111を抽出する。
【0149】
(図29:ステップS2904)
管理サーバ100は、ステップS2901で抽出した公開鍵の公開鍵ID、ステップS2902で生成した再暗号化共通鍵リスト、ステップS2903で抽出した最新公開鍵、最新公開鍵の公開鍵IDを、暗号処理サーバ200に送信する。
【0150】
(図29:ステップS2905)
暗号処理サーバ200は、ステップS2904で受信した(被更新)共通鍵の公開鍵IDを、情報検索クライアント端末400に送信する。
【0151】
(図29:ステップS2906)
暗号処理サーバ200は、サーバ側秘密鍵テーブル220から、ステップS2904で受信した被更新共通鍵の公開鍵IDを持つレコードのサーバ側秘密鍵を抽出する。
【0152】
(図29:ステップS2907)
情報検索クライアント端末400は、端末側秘密鍵テーブル410から、ステップS2905で受信した被更新共通鍵の公開鍵IDを持つレコードの端末側秘密鍵を抽出する。
【0153】
(図29:ステップS2908)
情報検索クライアント端末400は、ステップS2907で抽出した端末側秘密鍵を暗号処理サーバ200に送信する。
【0154】
(図29:ステップS2909)
暗号処理サーバ200は、ステップS2906で抽出したサーバ側秘密鍵とステップS2908で受信した端末側秘密鍵を復号鍵とし、ステップS2904で受信した再暗号化共通鍵リストを復号する。
【0155】
(図29:ステップS2910)
暗号処理サーバ200は、ステップS2904で受信した最新公開鍵を暗号鍵とし、ステップS2909で復号した再暗号化共通鍵リストを暗号化する。本ステップで再暗号化した再暗号化共通鍵リストのデータ例は、後述の図35で改めて示す。
【0156】
なお、ステップS2905からステップS2909までの処理は、公開鍵暗号方式としてRSAを用いる場合、図21で説明したような部分復号処理で代用してもよい。
【0157】
図30は、図28のステップS2813における共通鍵再暗号化シーケンスの後半部分を示す図である。以下、図30の各ステップについて説明する。
【0158】
(図30:ステップS2911)
暗号処理サーバ200は、ステップS2910で暗号化した再暗号化共通鍵リストを情報管理サーバ100に送信する。
【0159】
(図30:ステップS2912)
情報管理サーバ100は、ステップS2911で受信した再暗号化共通鍵リスト内の共通鍵と同じ共通鍵IDを持つ共通鍵テーブル130のレコードについて、公開鍵ID列132を最新公開鍵の公開鍵IDに変更する。
【0160】
(図30:ステップS2913)
情報管理サーバ100は、ステップS2911で受信した再暗号化共通鍵リスト内の共通鍵と同じ共通鍵IDを持つ共通鍵テーブル130のレコードについて、共通鍵列134を再暗号化共通鍵リスト内の共通鍵に変更する。本ステップを実行した後の共通鍵テーブル130のデータ例は、後述の図36で改めて示す。
【0161】
(図30:ステップS2914)
情報管理サーバ100は、公開鍵テーブル110から、ステップS2901で抽出した被更新公開鍵IDを持つレコードを削除する。本ステップを実行した後の公開鍵テーブル110のデータ例は、後述の図37で改めて示す。
【0162】
(図30:ステップS2915)
暗号処理サーバ200は、共通鍵の再暗号化が完了した旨の通知を情報検索クライアント端末400に送信する。
【0163】
(図30:ステップS2916)
暗号処理サーバ200は、サーバ側秘密鍵テーブル220から、ステップS2904で受信した被更新公開鍵の公開鍵IDを持つレコードを削除する。本ステップを実行した後のサーバ側秘密鍵テーブル220のデータ例は、後述の図38で改めて示す。
【0164】
(図30:ステップS2917)
情報検索クライアント端末400は、端末側秘密鍵テーブル410から、ステップS2905で受信した被更新公開鍵の公開鍵IDを持つレコードを削除する。本ステップを実行した後の端末側秘密鍵テーブル410のデータ例は、後述の図39で改めて示す。
【0165】
図31は、ステップ2807を実行した後の公開鍵テーブル110のデータ例を示す図である。ステップS2803の結果として、生成日時列112の値が最も古い公開鍵の鍵更新フラグ列114がTRUEに変更されている。また、ステップS2807の結果として、公開鍵4が新たに生成されている。
【0166】
図32は、ステップ2811を実行した後のサーバ側秘密鍵テーブル220のデータ例を示す図である。ステップS2808で情報管理サーバ100から受信した新たな公開鍵IDと、ステップS2809で新たに生成したサーバ側秘密鍵が、4行目に追加されている。
【0167】
図33は、ステップ2812を実行した後の端末側秘密鍵テーブル410のデータ例を示す図である。ステップS2810で暗号処理サーバ200から受信した新たな公開鍵IDと、ステップS2809で暗号処理サーバ200が新たに生成した端末側秘密鍵が、4行目に追加されている。
【0168】
図34は、ステップS2902で生成される再暗号化共通鍵リストのデータ例を示す図である。図31において、鍵更新フラグ114がTRUEである公開鍵は公開鍵1であるため、公開鍵1で暗号化された共通鍵が、再暗号化する対象として抽出される。
【0169】
図35は、ステップS2910で生成される再暗号化共通鍵リストのデータ例を示す図である。図31において、生成日時列112の値が最も新しい公開鍵は公開鍵4であるため、再暗号化共通鍵リストは、公開鍵4で再暗号化される。
【0170】
図36は、ステップS2913を実行した後の共通鍵テーブル130のデータ例を示す図である。公開鍵1で暗号化されていた共通鍵1と共通鍵2(1〜2行目)は、更新後の共通鍵4で再暗号化された再暗号化共通鍵リストの内容で置き換えられている。
【0171】
図37は、ステップS2914を実行した後の公開鍵テーブル110のデータ例を示す図である。鍵更新フラグ列114=TRUEであった1行目のデータ(公開鍵1)が削除されている。
【0172】
図38は、ステップS2916を実行した後のサーバ側秘密鍵テーブル220のデータ例を示す図である。公開鍵1に対応する公開鍵ID=101(1行目)のデータが削除されている。
【0173】
図39は、ステップS2917を実行した後の端末側秘密鍵テーブル410のデータ例を示す図である。公開鍵1に対応する公開鍵ID=101(1行目)のデータが削除されている。
【0174】
以上、公開鍵を自動的に更新するとともに、共通鍵を公開鍵で暗号化している場合において、共通鍵を再暗号化する動作例を説明した。
【0175】
以上のように、本実施の形態4において、情報管理サーバ100は生成日時列112が所定期間以上経過した公開鍵を抽出する。暗号処理サーバ200は、新たな公開鍵を生成し、その公開鍵を用いて共通鍵を再暗号化する。これにより、公開鍵の更新に伴う再暗号化処理を自動化し、管理者の負担を軽減することができる。
【0176】
<実施の形態5>
実施の形態4において、管理対象情報を公開鍵で暗号化している場合には、以下のような処理シーケンスとなる。共通鍵を用いる点を除いて実施の形態4と概ね同様であるため概略のみ説明する。
【0177】
(1)古い公開鍵を見つける
情報管理サーバ100は、ステップS2801と同様に、生成日時が所定期間以上前の公開鍵を、公開鍵テーブル110から検索する。古い公開鍵を見つけた場合は、ステップS2803と同様に、鍵更新フラグ列114をTRUEに変更する。
【0178】
(2)公開鍵を生成する
情報管理サーバ100は、ステップS2804と同様に、公開鍵を新たに生成するよう暗号処理サーバ200に依頼する。暗号処理サーバ200は、公開鍵と秘密鍵を新たに生成し、生成した公開鍵を情報管理サーバ100に送信する。情報管理サーバ100は、公開鍵IDを新たに発行し、暗号処理サーバに通知する。
【0179】
(3)管理対象情報を再暗号化する
情報管理サーバ100は、鍵更新フラグ列114=TRUEの公開鍵IDを抽出する。情報管理サーバ100は、この公開鍵で暗号化されている管理対象情報、最新の公開鍵のIDなどを、暗号処理サーバ200に送信する。暗号処理サーバ200は、最新の公開鍵に対応する秘密鍵で管理対象情報を再暗号化し、情報管理サーバ100に戻す。
【0180】
<実施の形態6>
本発明の実施の形態6では、不特定複数の管理対象情報を検索する場合の処理シーケンスを説明する。
【0181】
特定の管理対象情報を閲覧する場合と異なり、不特定複数の管理対象情報を検索する場合は、対応する復号鍵も不特定複数となる。これに対応する手法として、管理対象情報を全て復号化してから検索を実行することが考えられるが、処理時間が課題となり、現実的ではない。そこで本実施の形態6では、管理対象情報を全て復号することなく検索を実行する手法を説明する。
【0182】
図40は、情報検索クライアント400が管理対象情報を検索する際の処理シーケンスを示す図である。以下、図40の各ステップについて説明する。
【0183】
(図40:ステップS4001)
情報検索クライアント端末400のユーザは、情報検索クライアント端末400に検索文字列を入力する。
【0184】
(図40:ステップS4002)
情報検索クライアント端末400は、ステップS4001で入力された検索文字列を暗号処理サーバ200に送信する。
【0185】
(図40:ステップS4003)
暗号処理サーバ200は、検索文字列の暗号化を行うための共通鍵リストを送信するよう、情報管理サーバ100に要求する。
【0186】
(図40:ステップS4004)
情報管理サーバ100は、共通鍵テーブル130の全てのレコードから、共通鍵ID131列、公開鍵ID列132、共通鍵列134を抽出し、検索用共通鍵リストを生成する。本ステップで生成される検索用共通鍵リストのデータ例は、図43で改めて示す。
【0187】
(図40:ステップS4005)
情報管理サーバ100は、ステップS4004で生成した検索用共通鍵リストを暗号処理サーバ200に送信する。
【0188】
(図40:ステップS4006)
暗号処理サーバ200と情報検索クライアント端末400は、後述の図41で説明する検索文字列暗号化シーケンスを実行する。
【0189】
(図40:ステップS4007)
暗号処理サーバ200は、ステップS4006で生成された検索文字列リストを、情報管理サーバ100に送信する。
【0190】
(図40:ステップS4008)
情報管理サーバ100は、情報管理テーブル120から、ステップS4006で受信した検索文字列リストに含まれる共通鍵IDと、共通鍵で暗号化された検索文字列が、ともに一致するレコードを抽出する。
【0191】
(図40:ステップS4009)
情報管理サーバ100は、共通鍵テーブル130から、ステップS4007で抽出されたレコードと同じ共通鍵IDを持つレコードの公開鍵ID列132と共通鍵列134を抽出し、管理対象情報と合わせて暗号化検索結果リストを生成する。本ステップで生成される暗号化検索結果リストのデータ例は、後述の図44で改めて示す。
【0192】
(図40:ステップS4010)
情報管理サーバ100は、ステップS4008で生成した暗号化検索結果リストを暗号処理サーバ110に送信する。
【0193】
(図40:ステップS4011)
暗号処理サーバ200と情報検索クライアント端末400は、後述の図42で説明する検索結果復号シーケンスを実行する。
【0194】
(図40:ステップS4012)
暗号処理サーバ200は、ステップS4011で生成された復号検索結果リストを、情報検索クライアント端末400に送信する。
【0195】
(図40:ステップS4013)
情報検索クライアント端末400は、ステップS4012で受信した復号化検索結果リストを画面表示するなどして、ユーザに提示する。
【0196】
図41は、図40のステップS4006における検索文字列暗号化シーケンスを示す図である。以下、図41の各ステップについて説明する。
【0197】
(図41:ステップS4101)
暗号処理サーバ200は、端末側秘密鍵テーブル410を送信するよう、情報検索クライアント端末400に送信する。
【0198】
(図41:ステップS4102)
情報検索クライアント端末400は、端末側秘密鍵テーブル410を暗号処理サーバ200に送信する。
【0199】
(図41:ステップS4103)
暗号処理サーバ200は、ステップS4005で受信した検索用共通鍵リストの共通鍵を、サーバ側秘密鍵テーブル220内の同じ公開鍵IDを持つサーバ側秘密鍵と、ステップS4102で受信した端末側秘密鍵テーブル410内の同じ公開鍵IDを持つ端末側秘密鍵を復号鍵とし、復号する。
【0200】
(図41:ステップS4104)
暗号処理サーバ200は、ステップS4103で復号された検索用共通鍵リスト内の共通鍵を暗号鍵とし、ステップS4002で受信した検索文字列を暗号化する。
【0201】
(図41:ステップS4105)
暗号処理サーバ200は、ステップS4104で暗号化された検索文字列と、ステップS4005で受信した検索用共通鍵リスト内の共通鍵の共通鍵IDから、検索文字列リストを生成する。本ステップで生成される検索文字列リストのデータ例は、後述の図45で改めて示す。
【0202】
図42は、図40のステップS4011における検索結果復号シーケンスを示す図である。以下、図42の各ステップについて説明する。
【0203】
(図42:ステップS4201)
暗号処理サーバ200は、ステップS4010で受信した暗号化検索結果リストから公開鍵IDを抽出し、公開鍵IDリストを生成する。本ステップで生成される公開鍵IDリストのデータ例は、後述の図46で改めて示す。
【0204】
(図42:ステップS4202)
暗号処理サーバ200は、ステップS4201で生成した公開鍵IDリストを、情報検索クライアント端末400に送信する。
【0205】
(図42:ステップS4203)
情報検索クライアント端末400は、端末側秘密鍵テーブル410から、ステップS4202で受信した公開鍵IDリストと同じ公開鍵IDを持つ端末側秘密鍵を抽出し、公開鍵IDとともに端末側秘密鍵リストを生成する。本ステップで生成される端末側秘密鍵リストのデータ例は、後述の図47で改めて示す。
【0206】
(図42:ステップS4204)
情報検索クライアント端末400は、ステップS4203で生成された端末側秘密鍵リストを、暗号処理サーバ200に送信する。
【0207】
(図42:ステップS4205)
暗号処理サーバ200は、ステップS4010で受信した暗号化検索結果リストの共通鍵を、サーバ側秘密鍵テーブル220内の同じ公開鍵IDを持つサーバ側秘密鍵と、ステップS4204で受信した端末側秘密鍵リスト内の同じ公開鍵IDを持つ端末側秘密鍵を復号鍵とし、復号する。
【0208】
(図42:ステップS4206)
暗号処理サーバ200は、暗号化検索結果リスト内の管理対象情報を、ステップS4205で復号された同じレコードの共通鍵を復号鍵とし、復号する。
【0209】
(図42:ステップS4207)
暗号処理サーバ200は、ステップS4206で復号された管理対象情報から、復号化検索結果リストを生成する。本ステップで生成される復号化検索結果リストのデータ例は後述の図48で改めて示す。
【0210】
図43は、図40のステップS4004で生成される検索用共通鍵リストのデータ例を示す図である。検索用共通鍵リストは、共通鍵テーブル130が保持する全ての共通鍵ID列131、公開鍵列132、および共通鍵列134を有する。
【0211】
図44は、図40のステップS4009で生成される暗号化検索結果リストのデータ例を示す図である。暗号化検索結果リストには、共通鍵で暗号化された管理対象情報のうち検索文字列に合致するもの、管理対象情報を暗号化している共通鍵、および共通鍵を暗号化している公開鍵のIDが含まれる。
【0212】
図45は、図41のステップS4105で生成される検索文字列リストのデータ例を示す図である。情報検索クライアント端末400が送信した検索文字列は、全ての共通鍵を用いて暗号化され、検索文字列リストとなる。
【0213】
図46は、図42のステップS4201で生成される公開鍵IDリストのデータ例を示す図である。暗号化検索結果リストが図44のようになっている場合、同図に含まれる公開鍵ID=101と公開鍵ID=103が抽出され、公開鍵IDリストとなる。
【0214】
図47は、図42のステップS4203で生成される端末側秘密鍵リストのデータ例を示す図である。図46で示した公開鍵IDリスト内に含まれる公開鍵IDに対応する端末側秘密鍵が、端末側秘密鍵リストに含まれる。
【0215】
図48は、図42のステップS4207で生成される復号化検索結果リストのデータ例を示す図である。図44で示した暗号化検索結果リストに含まれる管理対象情報が復号され、情報検索クライアント端末400に提供される。
【0216】
以上、情報検索クライアント400が管理対象情報を検索する際の処理シーケンスを説明した。なお、管理対象情報が公開鍵で暗号化されている場合は、暗号処理サーバ200は検索文字列を公開鍵で暗号化して検索を行い、検索結果を秘密鍵で復号して情報検索クライアント端末400に返信する。
【0217】
以上のように、本実施の形態6によれば、情報検索クライアント400が送信する検索用文字列は、複数の共通鍵を用いて暗号化され、暗号化された状態で検索が実行される。管理対象情報を全て復号してから検索を実行する場合と比較して、暗号化処理/復号化処理は共通鍵の数の分だけで済むので、処理負荷を抑えながら、暗号化された状態のままで検索を実行することができる。
【0218】
<実施の形態7>
以上の実施の形態1〜6において、各テーブルは、例えばテーブル内のデータを記録するデータファイルをHDD(Hard Disk Drive)などの記憶装置に格納することによって構成することができる。
【0219】
また、以上の実施の形態1〜6において、情報検索クライアント端末400と暗号処理サーバ200を、同一のローカルネットワーク内に配置してもよい。これにより、復号化検索結果リストの内容を外部ネットワークに漏洩させる懸念を低減することができる。
【0220】
また、以上の実施の形態1〜6において、情報提供端末300と、情報検索クライアント端末400は、別個の端末であるものとして説明したが、これらが同一の端末であってもよい。
【符号の説明】
【0221】
100:情報管理サーバ、110:公開鍵テーブル、111:公開鍵ID列、112:生成日時列、113:公開鍵列、114:鍵更新フラグ列、120:情報管理テーブル、121:公開鍵ID列、122:管理対象情報列、123:共通鍵ID列、124:管理対象情報列、130:共通鍵テーブル、131:共通鍵ID列、132:公開鍵ID列、133:生成日時列、134:共通鍵列、135:鍵更新フラグ列、200:暗号処理サーバ、210:秘密鍵テーブル、211:公開鍵ID列、212:秘密鍵列、220:サーバ側秘密鍵テーブル、221:公開鍵ID列、222:サーバ側秘密鍵、300a〜300c:情報提供端末、400:情報検索クライアント端末、410:端末側秘密鍵テーブル、411:公開鍵ID列、412:端末側秘密鍵、500:ネットワーク、1000:情報管理システム。

【特許請求の範囲】
【請求項1】
情報を管理する情報テーブルを備えた情報管理サーバと、
暗号化処理および復号化処理を行う暗号処理サーバと、
を有し、
前記情報管理サーバは、
前記情報テーブル内に、前記暗号処理サーバが生成する公開鍵を用いて暗号化された前記情報、または、前記情報の送信元端末もしくは前記暗号処理サーバが生成した共通鍵を用いて暗号化された前記情報を格納し、
前記暗号処理サーバは、
暗号化処理を行う際に用いる公開鍵と、前記公開鍵による暗号を復号化する際に用いる秘密鍵とをペアにして生成し、
前記公開鍵を公開するとともに前記秘密鍵を当該暗号処理サーバ内に保持し、
前記秘密鍵を用いて、前記情報テーブル内に格納されている情報または前記共通鍵を復号化する
ことを特徴とする情報管理システム。
【請求項2】
前記情報管理サーバは、
前記共通鍵で暗号化された前記情報とともに、前記公開鍵で暗号化された前記共通鍵を受け取り、
前記暗号処理サーバに、前記共通鍵で暗号化された前記情報、前記公開鍵で暗号化された前記共通鍵、および他の日時においてまたは他の送信元端末によって生成された第2共通鍵を前記公開鍵で暗号化したものを送信し、
前記暗号処理サーバは、
前記秘密鍵を用いて前記共通鍵を復号化し、
復号化した前記共通鍵を用いて前記情報を復号化し、
前記秘密鍵を用いて前記第2共通鍵を復号化し、
復号化した前記第2共通鍵を用いて前記情報を再暗号化し、
前記第2共通鍵を用いて再暗号化した前記情報を前記情報管理サーバに送信して前記情報テーブルに格納させる
ことを特徴とする請求項1記載の情報管理システム。
【請求項3】
前記情報管理サーバは、
前記共通鍵の生成日時を格納する共通鍵管理テーブルを備え、
生成日時が所定期間以上前の前記共通鍵が存在する場合は、
前記共通鍵を更新すべき旨のリクエストを前記暗号処理サーバに送信し、
前記暗号処理サーバは、
新たな前記共通鍵を生成して前記公開鍵で暗号化した上で前記情報管理サーバに送信し、
前記情報管理サーバと前記暗号処理サーバは、
前記暗号処理サーバが新たに生成し前記公開鍵を用いて暗号化した前記共通鍵を用いて、請求項2記載の処理をそれぞれ改めて実行する
ことを特徴とする請求項2記載の情報管理システム。
【請求項4】
前記情報管理サーバは、
前記公開鍵の生成日時を格納する公開鍵管理テーブルを備え、
生成日時が所定期間以上前の前記公開鍵が存在する場合は、
その公開鍵を更新すべき旨の通知、またはその公開鍵を用いて暗号化された前記共通鍵を前記暗号処理サーバに送信するとともに、
前記情報テーブルが格納している情報のうちその公開鍵を用いて暗号化された前記情報、または前記情報テーブルが格納している情報のうちその公開鍵を用いて暗号化された前記共通鍵を用いて暗号化された前記情報を、前記暗号処理サーバに送信し、
前記暗号処理サーバは、
前記情報管理サーバが送信した前記情報が前記公開鍵で暗号化されている場合は、その前記情報を前記秘密鍵によって復号化し、
前記情報管理サーバが送信した前記情報が前記共通鍵で暗号化されている場合は、その共通鍵を前記秘密鍵によって復号化するとともに、復号化した共通鍵を用いて前記情報管理サーバが送信した前記情報を復号化し、
前記公開鍵と前記秘密鍵を新たに生成し、
前記情報管理サーバが前記情報を送信した場合は、前記情報管理サーバが送信した前記情報を新たに生成した公開鍵によって暗号化して前記情報管理サーバに送信し、
前記情報管理サーバが前記共通鍵を送信した場合は、その共通鍵をその新たに生成した公開鍵によって暗号化して前記情報管理サーバに送信する
ことを特徴とする請求項1から3までのいずれか1項に記載の情報管理システム。
【請求項5】
前記暗号処理サーバは、
前記情報テーブルが格納している前記情報に対する検索リクエストと検索文字列を検索クライアント端末から受け取り、
前記情報テーブルが格納している前記情報を暗号化している前記公開鍵または前記共通鍵を用いて前記検索文字列を暗号化し、
暗号化した前記検索文字列を前記情報管理サーバに送信し、
前記情報管理サーバは、
暗号化された前記検索文字列を用いて前記情報テーブルを検索し、
合致する前記情報を抽出して前記暗号処理サーバに送信し、
前記暗号処理サーバは、
前記情報管理サーバから受け取った前記情報を前記秘密鍵または前記共通鍵によって復号化して前記検索クライアント端末に送信する
ことを特徴とする請求項1から4までのいずれか1項に記載の情報管理システム。
【請求項6】
前記暗号処理サーバは、
前記秘密鍵を第1秘密鍵と第2秘密鍵の2つに分割し、
前記第1秘密鍵を保持し、前記第2秘密鍵を、前記情報テーブルに対して検索リクエストを発行する検索クライアント端末に送信し、
前記情報または前記共通鍵を復号化するときは、
その情報または共通鍵を暗号化した公開鍵に対応する前記第2秘密鍵を前記検索クライアント端末から取得し、
前記第1秘密鍵と前記第2秘密鍵を用いて前記情報または前記共通鍵を復号化する
ことを特徴とする請求項1から5までのいずれか1項に記載の情報管理システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate

【図40】
image rotate

【図41】
image rotate

【図42】
image rotate

【図43】
image rotate

【図44】
image rotate

【図45】
image rotate

【図46】
image rotate

【図47】
image rotate

【図48】
image rotate


【公開番号】特開2011−164907(P2011−164907A)
【公開日】平成23年8月25日(2011.8.25)
【国際特許分類】
【出願番号】特願2010−26668(P2010−26668)
【出願日】平成22年2月9日(2010.2.9)
【出願人】(000233055)株式会社日立ソリューションズ (1,610)
【Fターム(参考)】