(57)【要約】【課題】鍵データの管理上のセキュリティを向上させることが可能な情報処理装置、情報処理プログラム、及び情報処理方法を提供する。【解決手段】管理システムＭＳは、鍵データを生成するための元となるシード値の保管場所を示すインデックス情報に基づいて、分散保管されたそれぞれのシード値を複数の保管システムＤｎから取得し、取得されたそれぞれのシード値を元に鍵データを動的に生成し、生成された鍵データを用いて、所定のデータを暗号化する。【選択図】図１
2019220871.tif 000002
【特許請求の範囲】
【請求項１】
鍵データを生成するための元となる１つ以上のシード値を保管する複数の保管部が分散された分散システムにアクセス可能な情報処理装置であって、
何れかの前記シード値の保管場所を示すインデックス情報を取得するインデックス取得手段と、
前記インデックス情報に基づいて、前記保管されたそれぞれのシード値を前記複数の保管部から取得するシード値取得手段と、
前記取得されたそれぞれのシード値を元に鍵データを生成する鍵生成手段と、
前記生成された鍵データを用いて、所定のデータを暗号化または暗号化されたデータを復号する処理手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記シード値取得手段は、データベースへの登録単位であるレコード単位、または前記レコード単位且つカラム単位で前記複数の保管部から前記シード値を取得し、
前記鍵生成手段は、前記レコード単位、または前記レコード単位且つカラム単位で前記取得されたそれぞれのシード値を元に、前記レコード単位、または前記レコード単位且つカラム単位で前記鍵データを生成し、
前記処理手段は、前記レコード単位、または前記レコード単位且つカラム単位で生成された鍵データを用いて、前記レコード単位、または前記レコード単位且つカラム単位で、前記所定のデータを暗号化または暗号化されたデータを復号することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記処理手段により暗号化されたデータと、当該データの暗号化に用いられた前記インデックス情報とを前記レコード毎に対応付けてデータベースに登録する登録手段を更に備えることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
鍵データを生成するための元となる１つ以上のシード値を保管する複数の保管部が分散された分散システムにアクセス可能なコンピュータを、
何れかの前記シード値の保管場所を示すインデックス情報を取得するインデックス取得手段と、
前記インデックス情報に基づいて、前記保管されたそれぞれのシード値を前記複数の保管部から取得するシード値取得手段と、
前記取得されたそれぞれのシード値を元に鍵データを生成する鍵生成手段と、
前記生成された鍵データを用いて、所定のデータを暗号化または暗号化されたデータを復号する処理手段として機能させることを特徴とする情報処理プログラム。
【請求項５】
鍵データを生成するための元となる１つ以上のシード値を保管する複数の保管部が分散された分散システムにアクセス可能なコンピュータにより実行される情報処理方法であって、
前記複数の保管部の中から２つ以上の保管部をランダムで選定し、選定した保管部毎に保管されている複数のシード値の中から予め定められた数のシード値を前記選定した保管部のそれぞれから取得するステップと、
前記取得されたそれぞれのシード値を元に鍵データを動的に生成して、当該動的に生成された鍵データを用いて所定のデータを暗号化するステップと、
を含むことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動的に鍵データを生成して所定のデータを暗号化する方法等の技術分野に関する。
【背景技術】
【０００２】
ネットワーク技術とコンピュータ技術の発展に伴い、近年ではより暗号化技術が重要な項目として位置付けられている。特許文献１には、クラウド計算機環境のように多人数がアクセス可能な分散計算機システムにおいて、各分散ノードが実施する分散処理の過程におけるデータセキュリティを一貫して保ちつつ、暗号鍵を柔軟に変更することができるデータ処理システムが開示されている。このデータ処理システムは、アプリケーションプログラムの入出力データと鍵との間の対応関係を記述したプロセス識別子を鍵管理データベースによって管理しており、各分散ノードは、鍵管理データベースが管理している対応関係にしたがって必要な鍵を鍵管理データベースから取得して、アプリケーションプログラムの入出力データを暗号化または復号するようになっている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開２０１５／１６２６８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、鍵データを保管しているシステムのいずれか１つでも機密上の脆弱性を有する場合、鍵データが漏洩する可能性がある。また、万が一、鍵データが漏洩した場合、この鍵データにより暗号化データが復号される可能性がある。
【０００５】
そこで、本発明は、以上の点等に鑑みてなされたものであり、鍵データの管理上のセキュリティを向上させることが可能な情報処理装置、情報処理プログラム、及び情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、請求項１に記載の発明は、鍵データを生成するための元となる１つ以上のシード値を保管する複数の保管部が分散された分散システムにアクセス可能な情報処理装置であって、何れかの前記シード値の保管場所を示すインデックス情報を取得するインデックス取得手段と、前記インデックス情報に基づいて、前記保管されたそれぞれのシード値を前記複数の保管部から取得するシード値取得手段と、前記取得されたそれぞれのシード値を元に鍵データを生成する鍵生成手段と、前記生成された鍵データを用いて、所定のデータを暗号化または暗号化されたデータを復号する処理手段と、を備えることを特徴とする。
【０００７】
請求項２に記載の発明は、請求項１に記載の情報処理装置において、前記シード値取得手段は、データベースへの登録単位であるレコード単位、または前記レコード単位且つカラム単位で前記複数の保管部から前記シード値を取得し、前記鍵生成手段は、前記レコード単位、または前記レコード単位且つカラム単位で前記取得されたそれぞれのシード値を元に、前記レコード単位、または前記レコード単位且つカラム単位で前記鍵データを生成し、前記処理手段は、前記レコード単位、または前記レコード単位且つカラム単位で生成された鍵データを用いて、前記レコード単位、または前記レコード単位且つカラム単位で、前記所定のデータを暗号化または暗号化されたデータを復号することを特徴とする。
【０００８】
請求項３に記載の発明は、請求項２に記載の情報処理装置において、前記処理手段により暗号化されたデータと、当該データの暗号化に用いられた前記インデックス情報とを前記レコード毎に対応付けてデータベースに登録する登録手段を更に備えることを特徴とする。
【０００９】
請求項４に記載の発明は、鍵データを生成するための元となる１つ以上のシード値を保管する複数の保管部が分散された分散システムにアクセス可能なコンピュータを、何れかの前記シード値の保管場所を示すインデックス情報を取得するインデックス取得手段と、前記インデックス情報に基づいて、前記保管されたそれぞれのシード値を前記複数の保管部から取得するシード値取得手段と、前記取得されたそれぞれのシード値を元に鍵データを生成する鍵生成手段と、前記生成された鍵データを用いて、所定のデータを暗号化または暗号化されたデータを復号する処理手段として機能させることを特徴とする。
【００１０】
請求項５に記載の発明は、鍵データを生成するための元となる１つ以上のシード値を保管する複数の保管部が分散された分散システムにアクセス可能なコンピュータにより実行される情報処理方法であって、前記複数の保管部の中から２つ以上の保管部をランダムで選定し、選定した保管部毎に保管されている複数のシード値の中から予め定められた数のシード値を前記選定した保管部のそれぞれから取得するステップと、前記取得されたそれぞれのシード値を元に鍵データを動的に生成して、当該動的に生成された鍵データを用いて所定のデータを暗号化するステップと、を含むことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、鍵データの管理上のセキュリティを向上させることができる。
【図面の簡単な説明】
【００１２】
【図１】通信システムＳの概要構成の一例を示す図である。
【図２】（Ａ）は、ＩＤリストの一例を示す図であり、（Ｂ）は、あるレコードのデータを暗号化するための鍵データの生成に用いられるインデックス情報の一例を示す図である。
【図３】管理システムＭＳにより実行されるレコード登録処理の一例を示すフローチャートである。
【図４】管理システムＭＳにより実行されるレコード取得処理の一例を示すフローチャートである。
【図５】管理システムＭＳにより実行されるレコード更新処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明の一実施形態について詳細に説明する。なお、以下に説明する実施の形態は、通信システムに対して本発明を適用した場合の実施形態である。
【００１４】
［１．通信システムＳの構成及び機能］
先ず、図１等を参照して、本実施形態に係る通信システムＳの構成及び機能について説明する。図１は、通信システムＳの概要構成の一例を示す図である。図１に示すように、通信システムＳは、分散システムＤＩＳ、ＤＢシステムＤＢＳ、及び管理システムＭＳ等を備えて構成されている。
【００１５】
分散システムＤＩＳには、鍵データを生成するための元となる１つ以上のシード値を保管する複数の保管システム（保管部の一例）Ｄｎ（ｎ＝１，２，３・・・ｋ）が分散されている。ここで、鍵データは、例えば共通鍵暗号方式の暗号鍵であり（復号鍵でもある）、再現可能な複数のバイト列から構成される。シード値は、例えば乱数生成器により生成された乱数（ランダムな値）であるとよい。図１の例では、保管システムＤｎには、それぞれ、値の異なる複数のシード値が保管されている。保管システムＤｎに保管されるそれぞれのシード値のデータ長は同一（固定長）であるとよい。１つの保管システムＤｎに保管されるシード値の数は、特に限定されるものではないが、例えば数十〜数千の間の数となる。また、保管システムＤｎに保管されているシード値のうち古くなったシード値は削除されるように構成してもよく、また、新たなシード値が追加して保管されるように構成してもよい。なお、図１の例では、保管システムＤｎは、それぞれ、ＣＰＵ（Central Processing Unit）、及びシード値を保管するための記憶部（例えば、ハードディスク）等を有するサーバコンピュータを主体として構成され、物理的に分離していることを想定しているが、シード値を保管する複数の保管部（記憶部）が１つのサーバコンピュータ内に備えられて分散（物理的に分離）されていてもよい（言い換えれば、分散システムＤＩＳは、複数のシード値を保管するストレージであってもよい）。なお、保管システムＤｎには、それぞれ、固有のシステムＩＤ（識別情報）が付与されており、保管システムＤｎに保管されるシード値には、それぞれ、固有のシードＩＤが付与されている。
【００１６】
ＤＢシステムＤＢＳは、ＤＢ（データベース）を備えている。図１の例では、ＤＢシステムＤＢＳは、ＣＰＵ、及びＤＢに用いられる記憶部等を有するサーバコンピュータを主体として構成されることを想定しており、また、ＤＢは、データをテーブル形式（つまり、レコード（行）とカラム（列）から構成される形式）で登録（格納）するリレーショナルデータベースであることを想定している。レコードは、ＤＢへの登録単位（最小単位）である。１レコードは、例えば１件分のデータに相当し、１件分のデータは、カラム（例えば、顧客等の氏名、住所、電話番号、メールアドレス等のカラム名）毎に区分される。図１の例では、ＤＢに登録されている各レコードＲＣ１〜ＲＣ８は、鍵データを生成するために必要な情報（後述するインデックス情報等）を格納する鍵生成情報保管部と、鍵データにより暗号化されたデータ（つまり、暗号化データ）を格納する暗号情報保管部とから構成され、各レコードＲＣ１〜ＲＣ８には、レコード固有情報等が付与されている。例えば、レコードに顧客等の情報（例えば、個人情報）が格納される場合、レコード固有情報は、顧客等に固有のＩＤであってもよい。なお、図１の例では、１つのレコードにおいて、鍵生成情報保管部と暗号情報保管部とが１対１で対応しているが、両者の関係を定義できれば、これに限定されない。例えば、複数に分割された鍵生成情報保管部と、１つの暗号情報保管部とから１つのレコードが構成されてもよいし、１つの鍵生成情報保管部と、複数に分割された暗号情報保管部とから１つのレコードが構成されてもよい。また、鍵生成情報保管部と、暗号情報保管部とが複数のレコードに分割されてもよい。
【００１７】
管理システムＭＳは、鍵生成処理部Ｍ１、暗号・復号処理部Ｍ２、及びレコード処理部Ｍ３を備えている。なお、システムの可用性を確保するため、管理システムＭＳは、同一の機能（つまり、鍵生成処理部Ｍ１、暗号・復号処理部Ｍ２、及びレコード処理部Ｍ３）を備える複数のノードにより構成（冗長化して構成）されてもよい。図１の例では、管理システムＭＳは、ＣＰＵ、及び記憶部等を有するサーバコンピュータ（本発明の情報処理装置の一例）を主体として構成されることを想定しており、各保管システムＤｎ、及びＤＢシステムＤＢＳとの間で、例えばローカルエリアネットワークを介して通信可能になっている。なお、管理システムＭＳとＤＢシステムＤＢＳとは、１台のコンピュータシステムに統合されてもよい。また、管理システムＭＳは、Ｗｅｂサーバ、及びオペレータ端末との間で、例えばローカルエリアネットワークを介して通信可能になっている。管理システムＭＳの記憶部には、オペレーティングシステム、アプリケーションプログラム、及び各種データが記憶されている。各種データには、ＤＢシステムＤＢＳのアドレス情報、分散システムＤＩＳのアドレス情報、及び分散システムＤＩＳのＩＤリストが含まれる。ＤＢシステムＤＢＳのアドレス情報は、ＤＢシステムＤＢＳへアクセスするための宛先アドレスを示す。分散システムＤＩＳのアドレス情報は、分散システムＤＩＳにおける各保管システムＤｎへアクセスするための宛先アドレスを示す。分散システムＤＩＳのＩＤリストは、分散システムＤＩＳにおける各保管システムＤｎのシステムＩＤ、及び各保管システムＤｎに保管されるシード値のシードＩＤを示す。なお、各保管システムＤｎの宛先アドレスとシステムＩＤとは対応付けられている。
【００１８】
図２（Ａ）は、ＩＤリストの一例を示す図である。図２（Ａ）に示すように、ＩＤリストには、各保管システムＤｎのシステムＩＤ、及び各保管システムＤｎに保管されるシード値のシードＩＤが記述されている。なお、保管システムＤｎに保管されるシード値のシードＩＤは、システムＩＤに対応付けられているので、保管システムＤｎ間でシードＩＤは重複してもよい（例えば、保管システムＤ１におけるシード値のシードＩＤと、保管システムＤ２におけるシード値のシードＩＤとは重複してもよい）。
【００１９】
鍵生成処理部Ｍ１、暗号・復号処理部Ｍ２、及びレコード処理部Ｍ３は、それぞれ、オペレーティングシステム上で実行されるアプリケーションプログラム（本発明の情報処理プログラムの一例）の一機能として動作するソフトウェアモジュールである。鍵生成処理部Ｍ１は、本発明におけるインデックス取得手段、シード値取得手段、及び鍵生成手段の一例である。暗号・復号処理部Ｍ２は、本発明の処理手段の一例である。レコード処理部Ｍ３は、本発明における登録手段の一例である。鍵生成処理部Ｍ１は、ＤＢシステムＤＢＳにおけるＤＢに登録されるべきデータを暗号化するための鍵データ、または、当該ＤＢに登録されている暗号化データを復号するための鍵データを生成する。ここで、データの暗号化は、レコード毎（または、レコード毎且つカラム毎）に行われる。そのため、鍵データは、レコード毎（または、レコード毎且つカラム毎）に異なるように生成される。なお、全レコードにおける一部の複数レコード間で鍵データが共通（例えば、１０レコード単位で鍵データが共通）であってもよい。鍵生成処理部Ｍ１は、鍵データの生成にあたり、鍵データを生成するための元となる複数のシード値のそれぞれの保管場所（所在）を示すインデックス情報を取得する。なお、ＤＢに登録されるべきデータを暗号化する場合、インデックス情報は、管理システムＭＳの内部または外部で予め生成されることで取得される。一方、ＤＢに登録されている暗号化データを復号する場合、インデックス情報は、当該暗号化データを格納する暗号情報保管部に対応付けられた鍵生成情報保管部から取得される。
【００２０】
図２（Ｂ）は、あるレコードのデータを暗号化するための鍵データの生成に用いられるインデックス情報の一例を示す図である。図２（Ｂ）の例では、シード値の保管場所は、システムＩＤとシードＩＤとの組により示されており、これにより、鍵データを生成するための元となるシード値がどの保管システムＤｎに保管されているかを特定することができる。つまり、図２（Ｂ）に示すインデックス情報から、鍵データを生成するための元となるシード値は、保管システムＤ２（システムＩＤ“002”）におけるシードＩＤ“0103”、シードＩＤ“0104”、シードＩＤ“0107”、及びシードＩＤ“0113”のそれぞれに対応するシード値、並びに、保管システムＤ３（システムＩＤ“003”）におけるシードＩＤ“0304”、シードＩＤ“0314”、シードＩＤ“0347”、及びシードＩＤ“0377”のそれぞれに対応するシード値等であることが分かる。なお、図２（Ｂ）の例は、レコード毎に（つまり、レコード単位で）データを暗号化するための鍵データの生成に用いられるインデックス情報を示すが、別の例として、レコード毎且つカラム毎に（つまり、レコード単位且つカラム単位で）データを暗号化するための鍵データの生成に用いられるインデックス情報は、例えば、カラム名（カラムＩＤでもよい）とシステムＩＤとシードＩＤとの組をカラム毎に区別して示すことになる。
【００２１】
鍵生成処理部Ｍ１は、取得したインデックス情報に基づいて、分散システムＤＩＳに分散して保管されたそれぞれのシード値を複数の保管システムＤｎから取得する。そして、鍵生成処理部Ｍ１は、取得されたそれぞれのシード値を元に鍵データを生成（つまり、取得されたそれぞれのシード値を使用して鍵データを生成）する。例えば、鍵生成処理部Ｍ１は、取得した複数のシード値を所定の順序で連結し、連結されたシード値を引数として暗号学的ハッシュ関数に入力することにより当該暗号学的ハッシュ関数から出力された戻り値（ハッシュ値）を鍵データとして得る。ここで、所定の順序とは、例えば、図２（Ｂ）に示すインデックス情報に記述されるシードＩＤの順序（“0103”,“0104”,“0107”,“0113”,“0304”,“0314”,“0347”,“0377”・・・の順）である。つまり、この場合のインデックス情報には、シード値の連結順序を示す情報が含まれることになる。暗号学的ハッシュ関数としては、例えば、ＳＨＡ−２５６が用いられる。ＳＨＡ−２５６は、任意長の長さのデータを入力すると、２５６ビットのハッシュ値を出力するものである。なお、鍵生成処理部Ｍ１は、上述したように、暗号学的ハッシュ関数から出力された戻り値を取得し、取得した戻り値から鍵データの長さに相当する所定長のバイト列を切り出し（例えば、予め定められたバイト位置（先頭位置でもよい）から切り出す）、切り出した値を鍵データとして得てもよい。或いは、鍵生成処理部Ｍ１は、取得した複数のシード値を所定の順序で連結し、暗号学的ハッシュ関数を用いることなく、連結したシード値から鍵データの長さに相当する所定長のバイト列を切り出し、切り出した値を鍵データとして得てもよい。
【００２２】
暗号・復号処理部Ｍ２は、鍵生成処理部Ｍ１により生成されたレコード毎（または、レコード毎且つカラム毎）の鍵データを用いて、ＤＢに登録されるべき所定のデータをレコード毎（または、レコード毎且つカラム毎）に、所定の暗号方式（暗号アルゴリズム）にしたがって暗号化する。ここで、暗号方式としては、例えば、共通鍵暗号方式であるＡＥＳ（Advanced Encryption Standard）またはＤＥＳ（Data Encryption Standard）が用いられる。また、暗号・復号処理部Ｍ２は、鍵生成処理部Ｍ１により生成されたレコード毎（または、レコード毎且つカラム毎）の鍵データを用いて、ＤＢに登録されている暗号化データをレコード毎（または、レコード毎且つカラム毎）に、上記暗号方式にしたがって復号する。
【００２３】
ＤＢに登録されるべきデータが暗号化された場合、レコード処理部Ｍ３は、その暗号化データを格納する暗号情報保管部と、当該暗号化に用いられた鍵データの生成に用いられたインデックス情報を格納する鍵生成情報保管部とから構成されるレコードを生成し、生成したレコードを、ＤＢシステムＤＢＳにおけるＤＢに登録させる。一方、ＤＢから取得されたレコード中の暗号化データが復号された場合、レコード処理部Ｍ３は、復号されたデータを、管理システムＭＳとの間でセキュリティ通信路が形成されたＷｅｂサーバまたはオペレータ端末へ送信する。
【００２４】
［２．通信システムＳの動作］
次に、通信システムＳの動作について説明する。
【００２５】
（２．１  レコード登録処理）
先ず、図３を参照して、レコードがＤＢに新規登録される場合のレコード登録処理について説明する。図３は、管理システムＭＳにより実行されるレコード登録処理の一例を示すフローチャートである。図３に示す処理は、例えば、管理システムＭＳとの間でセキュリティ通信路が形成されたＷｅｂサーバまたはオペレータ端末からのレコード登録要求を受信した場合に開始される。レコード登録要求には、新たに追加される所定件数分のデータが付加されている。このようなデータは、例えば、Ｗｅｂサーバがクライアント端末から受信したデータ、または、オペレータ端末に入力されたデータである。
【００２６】
図３に示す処理が開始されると、鍵生成処理部Ｍ１は、鍵データを生成するための元となる複数のシード値のそれぞれの保管場所を示すインデックス情報を取得する（ステップＳ１）。例えば、鍵生成処理部Ｍ１は、ＩＤリストに記述されているシステムＩＤ及びシードＩＤの中から、システムＩＤとシードＩＤとの組（換言すると、どの保管システムＤｎ内のどのシード値を使用するかを示す組）をレコード毎（つまり、レコード登録要求に示される件数分のレコード毎）に区別して選定し、選定した組を記述するインデックス情報をレコード毎に生成する。なお、レコード毎且つカラム毎に鍵データを生成する場合、システムＩＤとシードＩＤとの組は、レコード毎且つカラム毎に区別されて選定される。
【００２７】
ここで、システムＩＤとシードＩＤとの組の選定方法の具体例について説明する。例えば、鍵生成処理部Ｍ１は、ＩＤリスト中の複数のシステムＩＤの中から１つのシステムＩＤをランダムで選定し、選定したシステムＩＤに対応付けられている（ＩＤリスト中で対応付けられている）複数のシードＩＤの中から予め定められた数（複数）のシードＩＤをランダムで選定するという処理を、予め設定された回数（２回以上）行うことで１レコード（または、１レコードの１カラム）分の組を選定する。換言すると、複数の保管システムＤｎの中から２つ以上の保管システムＤｎがランダムで選定され、選定された保管システムＤｎ毎に保管されている複数のシード値の中から予め定められた数のシード値が選定される。このような選定がレコード登録要求に示される件数（または、当該件数×カラム数）分、行われる。これにより、選定されるシステムＩＤ及びシードＩＤが、レコード内またはレコード間で分散される（１つのシステムＩＤやシードＩＤに集中しない）ようにすることができ、セキュリティを向上させることができる。このような選定において、１回選定されたシステムＩＤ及びシードＩＤは、以降、所定回数選定されないように構成してもよい。
【００２８】
次いで、鍵生成処理部Ｍ１は、ステップＳ１で取得されたインデックス情報に基づいて、分散システムＤＩＳに分散して保管されたそれぞれのシード値を複数の保管システムＤｎからレコード毎（または、レコード毎且つカラム毎）に取得（収集）する（ステップＳ２）。例えば、鍵生成処理部Ｍ１は、ステップＳ１で取得したインデックス情報に示されるシステムＩＤ毎に、システムＩＤに対応する保管システムＤｎにアクセス（上記アドレス情報を用いてアクセス）してインデックス情報に示されるシードＩＤを含むシード値要求を送信することで、対象となる各保管システムＤｎに保管されるシード値を各保管システムＤｎから取得する。なお、分散システムＤＩＳが例えば１つのサーバコンピュータにより構成される場合、鍵生成処理部Ｍ１は、分散システムＤＩＳにアクセスしてインデックス情報を含むシード値要求を送信することで、対象となる各保管システムＤｎに保管されるシード値を分散システムＤＩＳから取得することになる。
【００２９】
次いで、鍵生成処理部Ｍ１は、ステップＳ２でレコード毎（または、レコード毎且つカラム毎）に取得されたそれぞれのシード値を元に鍵データをレコード毎（または、レコード毎且つカラム毎）に生成（つまり、動的に生成）する（ステップＳ３）。例えば、上述したように、鍵生成処理部Ｍ１は、取得した複数のシード値を所定の順序で連結し、連結されたシード値を引数として暗号学的ハッシュ関数に入力することにより当該暗号学的ハッシュ関数から出力された戻り値を鍵データとして得る。これにより、鍵データが生成される。
【００３０】
別の例として、鍵生成処理部Ｍ１は、上述したように連結したシード値に、暗号強度を高めるためのソルト値を更に連結し、連結されたシード値とソルト値を引数として暗号学的ハッシュ関数に入力することにより当該暗号学的ハッシュ関数から出力された戻り値を鍵データとして得てもよい。ここで、ソルト値の例として、データを暗号化するための鍵データを生成する直前に鍵生成処理部Ｍ１が生成する乱数、或いはデータを暗号化するための鍵データの生成する直前に鍵生成処理部Ｍ１が取得するタイムスタンプなどが挙げられる。鍵データの生成にソルト値を用いることによって、より一層、ハッシュ空間で戻り値を分散させる（つまり、戻り値の衝突を防ぐ）ことができ、暗号強度を高めることができる。
【００３１】
或いは、鍵生成処理部Ｍ１は、上述したように連結したシード値に、暗号強度を高めるためのソルト値に加えて、暗号強度を高めるための固有値を更に連結（ソルト値を連結せず、シード値に固有値を連結してもよい）し、連結されたシード値とソルト値と固有値（または、連結されたシード値と固有値）を引数として暗号学的ハッシュ関数に入力することにより当該暗号学的ハッシュ関数から出力された戻り値を鍵データとして得てもよい。ここで、固有値の例として、管理システムＭＳまたはアプリケーションプログラムに固有の文字列（外部から取得できない文字列）が挙げられる。鍵データの生成に固有値を用いることによっても、暗号強度を高めることができる。なお、鍵データがレコード毎且つカラム毎に生成される場合、固有値は、暗号対象となるデータが保持されるカラムのカラム名（カラムＩＤでもよい）であってもよい。
【００３２】
次いで、暗号・復号処理部Ｍ２は、ステップＳ３で生成されたレコード毎（または、レコード毎且つカラム毎）の鍵データを用いて、レコード登録要求に付加された所定件数分のデータをレコード毎（または、レコード毎且つカラム毎）に所定の暗号方式にしたがって暗号化する（ステップＳ４）。次いで、レコード処理部Ｍ３は、ステップＳ４で暗号化された暗号化データを格納する暗号情報保管部と、ステップＳ３において鍵データの生成に用いられたインデックス情報を格納する鍵生成情報保管部とから構成されるレコード（登録用のレコード）を、レコード登録要求に付加された所定件数分、生成する（ステップＳ５）。なお、ステップＳ３における鍵データの生成の際にソルト値が用いられた場合、鍵生成情報保管部には、インデックス情報及びソルト値が格納される。
【００３３】
次いで、レコード処理部Ｍ３は、ＤＢシステムＤＢＳにアクセスしてステップＳ５で生成されたレコードが付加された登録要求を送信することで、当該生成されたレコードをＤＢに登録させる（ステップＳ６）。これにより、例えば、図１に示すように、鍵生成情報保管部と暗号情報保管部とから構成されるレコードが新たにＤＢに登録される。或いは、複数に分割された鍵生成情報保管部と１つの暗号情報保管部とから構成されるレコード、或いは１つの鍵生成情報保管部と複数に分割された暗号情報保管部とから構成されるレコードが新たにＤＢに登録される。
【００３４】
（２．２  レコード取得処理）
次に、図４を参照して、レコードがＤＢから取得される場合のレコード取得処理について説明する。図４は、管理システムＭＳにより実行されるレコード取得処理の一例を示すフローチャートである。図４に示す処理は、例えば、管理システムＭＳとの間でセキュリティ通信路が形成されたＷｅｂサーバまたはオペレータ端末からのレコード取得要求を受信した場合に開始される。レコード取得要求には、例えば取得対象となるレコードのレコード固有情報が含まれている。レコード固有情報は、例えば、Ｗｅｂサーバがクライアント端末から受信した情報、または、オペレータ端末に入力された情報である。
【００３５】
図４に示す処理が開始されると、レコード処理部Ｍ３は、ＤＢシステムＤＢＳにアクセスして上記レコード取得要求を送信することで、上記レコード固有情報に対応するレコードであって鍵生成情報保管部と暗号情報保管部とから構成されるレコードをＤＢから取得する（ステップＳ１１）。これにより、鍵データを生成するための元となる複数のシード値のそれぞれの保管場所を示すインデックス情報（または、インデックス情報及びソルト値）と、当該インデックス情報に対応付けられた暗号化データとが取得されることになる。次いで、鍵生成処理部Ｍ１は、ステップＳ１１で取得されたインデックス情報に基づいて、分散システムＤＩＳに分散して保管されたそれぞれのシード値を複数の保管システムＤｎからレコード毎（または、レコード毎且つカラム毎）に取得する（ステップＳ１２）。
【００３６】
次いで、鍵生成処理部Ｍ１は、ステップＳ１２でレコード毎（または、レコード毎且つカラム毎）に取得されたそれぞれのシード値を元に鍵データをレコード毎（または、レコード毎且つカラム毎）に生成（つまり、動的に生成）する（ステップＳ１３）。例えば、鍵生成処理部Ｍ１は、取得した複数のシード値を所定の順序で連結し、連結されたシード値を引数として暗号学的ハッシュ関数に入力することにより当該暗号学的ハッシュ関数から出力された戻り値を鍵データとして得る。なお、鍵データの生成にソルト値を用いる場合、鍵生成処理部Ｍ１は、上述したように連結したシード値に、ステップＳ１１で取得されたソルト値を更に連結し、連結されたシード値とソルト値を引数として暗号学的ハッシュ関数に入力することにより当該暗号学的ハッシュ関数から出力された戻り値を鍵データとして得る。或いは、鍵データの生成に固有値を用いる場合、鍵生成処理部Ｍ１は、上述したように連結したシード値（または、連結されたシード値とソルト値）に、上述した固有値（例えば、管理システムＭＳまたはアプリケーションプログラムに固有の文字列）を更に連結し、連結されたシード値と固有値（または、連結されたシード値とソルト値と固有値）を引数として暗号学的ハッシュ関数に入力することにより当該暗号学的ハッシュ関数から出力された戻り値を鍵データとして得る。
【００３７】
次いで、暗号・復号処理部Ｍ２は、ステップＳ１３で生成されたレコード毎（または、レコード毎且つカラム毎）の鍵データを用いて、ステップＳ１１で取得された暗号化データをレコード毎（または、レコード毎且つカラム毎）に所定の暗号方式にしたがって復号する（ステップＳ１４）。次いで、レコード処理部Ｍ３は、ステップＳ１４で復号されたデータを、レコード取得要求元へ送信する（ステップＳ１５）。
【００３８】
なお、上述したレコード登録処理及びレコード取得処理では、鍵データ生成の度に各シード値が保管システムＤｎから取得される例を示したが、各シード値は事前に保管システムＤｎから取得されて管理システムＭＳのメモリ内に一定時間キャッシュ（記憶）されるようにしておき（つまり、一定時間経過後にシード値は消失）、鍵生成処理部Ｍ１は、当該記憶されたそれぞれのシード値を元に鍵データを生成するように構成してもよい。この構成によれば、処理の高速化を図ることができる。
【００３９】
（２．３  レコード更新処理）
次に、図５を参照して、シード値の更新される場合のレコード更新処理について説明する。図５は、管理システムＭＳにより実行されるレコード更新処理の一例を示すフローチャートである。なお、管理システムＭＳが複数のノードにより構成される場合、レコード更新処理は、当該複数のノードのうち、何れか１つのマスターノードにより実行され、その結果が他のノードにより共有されるとよい。また、レコード更新処理の前提として、管理システムＭＳは、情報管理手段として、管理システムＭＳのメモリ内に各シード値の状態情報及び日時情報を例えばシードＩＤに対応付けて記憶し管理しているものとする。ここで、シード値の状態情報は、例えば、「利用可能」、「利用停止」、及び「廃止」の状態（ステータス）のうち、何れか１つの状態を示す。「利用可能」とは、そのシード値を使用した暗号化及び復号が許可されている状態である。「利用停止」とは、そのシード値を使用した復号のみが許可され、当該シード値を使用した暗号化が許可されていない状態である。「廃止」とは、そのシード値が廃止（つまり、暗号化及び復号のいずれにも使用不可）された状態である。また、シード値の日時情報は、例えば、当該シード値が生成された日時（以下、「生成日時」という）を示す。或いは、シード値が事前に保管システムＤｎから取得されて管理システムＭＳのメモリ内に一定時間キャッシュされるケースでは、シード値の日時情報は、例えば、当該シード値がキャッシュされた日時（以下、「キャッシュ日時」という）を示す。
【００４０】
図５に示す処理は、例えば、管理システムＭＳが有するタイマーを用いて所定期間間隔で実行される。図５に示す処理が開始されると、レコード処理部Ｍ３は、更新対象特定手段として、上記状態情報が「利用可能」を示しているシード値のうち、上記日時情報が示す生成日時またはキャッシュ日時が所定条件を満たすシード値を更新対象として特定（例えば、シードＩＤで特定）する（ステップＳ３１）。ここで、所定条件の例として、例えば、(i)生成日時またはキャッシュ日時が最も古いものから所定順位以内に入ること（最も古いもの１つだけでもよい）、(ii)生成日時またはキャッシュ日時から現在時刻までの時間が所定時間（例えば、数か月）以上であること、などが挙げられる。次いで、レコード処理部Ｍ３は、状態情報変更手段として、更新対象のシード値（つまり、ステップＳ３１で更新対象として特定されたシード値）の状態情報を、「利用可能」から「利用停止」に変更する（ステップＳ３２）。
【００４１】
次いで、レコード処理部Ｍ３は、更新対象のシード値（つまり、状態情報が「利用停止」に変更されたシード値）のシードＩＤが記述されたインデックス情報を含む鍵生成情報保管部と暗号化データを含む暗号情報保管部とから構成されるレコード（つまり、「利用停止」状態に変更されたシード値が使用された鍵データにより暗号化されている１または複数のレコード）をＤＢから取得する（ステップＳ３３）。なお、シード値が事前に保管システムＤｎから取得されて管理システムＭＳのメモリ内に一定時間キャッシュされるケースでは、ステップＳ３３の処理は、状態情報が「利用停止」に変更されてから一定時間（例えば、キャッシュされているシード値が消失されるまでの時間＋α）経過後に実行されることになる。
【００４２】
次いで、鍵生成処理部Ｍ１は、ステップＳ３３で取得されたインデックス情報に基づいて、分散システムＤＩＳに分散して保管されたそれぞれのシード値（「利用可能」状態にあるシード値ばかりでなく、「利用停止」状態に変更されたシード値も含む）を複数の保管システムＤｎからレコード毎（または、レコード毎且つカラム毎）に取得する（ステップＳ３４）。なお、シード値が事前に保管システムＤｎから取得されて管理システムＭＳのメモリ内に一定時間キャッシュされるケースでは、ステップＳ３４において、キャッシュされているシード値の中から、ステップＳ３３で取得されたインデックス情報に基づいて、使用されるシード値がレコード毎（または、レコード毎且つカラム毎）に取得されることになる。
【００４３】
次いで、鍵生成処理部Ｍ１は、ステップＳ３４でレコード毎（または、レコード毎且つカラム毎）に取得されたそれぞれのシード値を元に鍵データをレコード毎（または、レコード毎且つカラム毎）に生成する（ステップＳ３５）。なお、ステップＳ３５の処理では、ステップＳ１３の処理と同様、ソルト値または固有値が用いられる場合もある。次いで、暗号・復号処理部Ｍ２は、ステップＳ３５で生成された、レコード毎（または、レコード毎且つカラム毎）の鍵データを用いて、ステップＳ３３で取得された暗号化データをレコード毎（または、レコード毎且つカラム毎）に所定の暗号方式にしたがって復号する（ステップＳ３６）。
【００４４】
次いで、鍵生成処理部Ｍ１は、鍵データ（つまり、ステップＳ３６で復号されたデータを再暗号化するための鍵データ）を生成するための元となる複数のシード値（「利用可能」状態にあるシード値）のそれぞれの保管場所を示すインデックス情報を再取得する（ステップＳ３７）。例えば、鍵生成処理部Ｍ１は、ＩＤリストに記述されているシステムＩＤ及びシードＩＤの中から、システムＩＤとシードＩＤ（「利用可能」状態にあるシード値のシードＩＤ）との組をレコード毎に区別して選定（例えば、上述したように、ランダムで選定）し、選定した組を記述するインデックス情報をレコード毎に生成する。
【００４５】
次いで、鍵生成処理部Ｍ１は、ステップＳ３７で再取得されたインデックス情報（「利用可能」状態にある複数のシード値のそれぞれの保管場所を示すインデックス情報）に基づいて、分散システムＤＩＳに分散して保管されたそれぞれのシード値を複数の保管システムＤｎからレコード毎（または、レコード毎且つカラム毎）に再取得する（ステップＳ３８）。次いで、鍵生成処理部Ｍ１は、ステップＳ３８でレコード毎（または、レコード毎且つカラム毎）に再取得されたそれぞれのシード値を元に鍵データをレコード毎（または、レコード毎且つカラム毎）に再生成する（ステップＳ３９）。上述したように、シード値が変更されたので、ステップＳ３９で生成される鍵データは、ステップＳ３５で生成された鍵データとは異なる。なお、ステップＳ３９の処理では、ステップＳ１３の処理と同様、ソルト値または固有値が用いられる場合もある。
【００４６】
次いで、暗号・復号処理部Ｍ２は、ステップＳ３９で再生成された、レコード毎（または、レコード毎且つカラム毎）の鍵データを用いて、ステップＳ３６で復号されたデータをレコード毎（または、レコード毎且つカラム毎）に所定の暗号方式にしたがって再暗号化する（ステップＳ４０）。次いで、レコード処理部Ｍ３は、ステップＳ４０で再暗号化された暗号化データを格納する暗号情報保管部と、ステップＳ３９において鍵データの再生成に用いられたインデックス情報を格納する鍵生成情報保管部とから構成されるレコード（更新用のレコード）を再生成する（ステップＳ４１）。なお、ステップＳ３９における鍵データの生成の際にソルト値が用いられた場合、鍵生成情報保管部には、インデックス情報及びソルト値が格納される。次いで、レコード処理部Ｍ３は、ＤＢシステムＤＢＳにアクセスしてステップＳ４１で再生成されたレコードが付加された更新要求を送信することで、当該再生成されたレコードにより、ＤＢに登録されているレコードを更新（上書き）させる（ステップＳ４２）。こうして、レコードが更新されると、更新対象のシード値（つまり、ステップＳ３１で更新対象として特定されたシード値）の状態情報が、「利用停止」から「廃止」に変更される。このように、状態情報が「廃止」に変更されたシード値は、上述したレコード登録処理によりレコードが新規登録される場合に使用されない。
【００４７】
以上説明したように、上記実施形態によれば、管理システムＭＳは、鍵データを生成するための元となるシード値の保管場所を示すインデックス情報に基づいて、分散保管されたそれぞれのシード値を複数の保管システムＤｎから取得し、取得されたそれぞれのシード値を元に鍵データを動的に生成し、生成された鍵データを用いて、所定のデータを暗号化または暗号化されたデータを復号するように構成したので、鍵データの管理上のセキュリティを向上させることができる。すなわち、本実施形態によれば、鍵データ自体は保管されていないので、鍵データの漏洩を防止することができる。また、本実施形態では、鍵データの元になるシード値が分散保管されているので、全てのシード値が漏洩する可能性は極めて低く、万が一、鍵データの元になる全てのシード値が漏洩した場合であっても、インデックス情報及び鍵データの生成アルゴリズムが漏洩しなければ、鍵データを再現することは極めて困難である。仮に、鍵データの元になる全てのシード値、インデックス情報及び鍵データの生成アルゴリズムが漏洩した場合であっても、レコード毎（または、レコード毎且つカラム毎）に鍵データが生成されるので、その影響を最小限に抑えることができる。
【００４８】
また、上記実施形態では、ＤＢに登録された複数のレコードのそれぞれに含まれるインデックス情報により特定可能な各シード値の日時情報を少なくとも管理し、当該日時情報が示す日時が所定条件を満たす（例えば、生成日時またはキャッシュ日時が最も古い）シード値を更新対象として特定するように構成したので、更新対象のシード値を元に生成された鍵データにより暗号化された暗号化データを含むレコードの更新処理を適宜行うことが可能となり、セキュリティを維持することができる。すなわち、管理システムＭＳは、更新対象のシード値を特定できるインデックス情報と暗号化データとを含むレコードをＤＢから取得し、取得されたインデックス情報により特定できた複数のシード値を元に鍵データを生成し、生成された鍵データを用いて、当該暗号化データを復号する。そして、管理システムＭＳは、復号されたデータを再暗号化するための鍵データを生成するための元となる複数のシード値（上記更新対象のシード値を除く）のそれぞれの保管場所を示すインデックス情報を再取得し、再取得されたインデックス情報に基づいて、それぞれのシード値を複数の保管システムＤｎから再取得し、再取得されたそれぞれのシード値を元に鍵データを再生成し、再生成された鍵データを用いて、上記復号されたデータを再暗号化し、再暗号化された暗号化データと、鍵データの再生成に用いられたインデックス情報とを含むレコードにより、既にＤＢに登録されているレコードを更新する。
【００４９】
なお、以上のように本発明の一実施形態を説明したが、本発明は上記実施形態に限定されるものではなく（もちろん上述したシステム以外にも適用可能である）、本発明の要旨を逸脱しない範囲で上記実施形態から種々構成等に変更を加えてもよく、その場合も本発明の技術的範囲に含まれる。例えば、本発明は、ファイルに格納されるデータを暗号化または復号する場合にも適用可能である。なお、再現可能な複数のバイト列から構成されるデータの例として暗号の初期ベクトルがあるが、このような初期ベクトルを生成する場合にも、本発明を適用することで、分散保管されたそれぞれのシード値を元に初期ベクトルを生成するように構成してもよい。
【符号の説明】
【００５０】
Ｍ１  鍵生成処理部
Ｍ２  暗号・復号処理部
Ｍ３  レコード処理部
ＤＩＳ  分散システム
ＤＢＳ  ＤＢシステム
ＭＳ  管理システム
Ｓ  通信システム
【図１】
2019220871.tif 000003
【図２】
2019220871.tif 000004
【図３】
2019220871.tif 000005
【図４】
2019220871.tif 000006
【図５】
2019220871.tif 000007
【手続補正書】
【提出日】平成30年10月29日(2018.10.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
鍵データを生成するための元となる１つ以上のシード値を保管する複数の保管部が分散された分散システムにアクセス可能な情報処理装置であって、
何れかの前記シード値の保管場所を示すインデックス情報を取得するインデックス取得手段と、
前記インデックス情報に基づいて、データベースへの登録単位であるレコード単位、または前記レコード単位且つカラム単位で前記複数の保管部から前記保管されたそれぞれのシード値を取得するシード値取得手段と、
前記レコード単位、または前記レコード単位且つカラム単位で取得されたそれぞれのシード値を元に、前記レコード単位、または前記レコード単位且つカラム単位で鍵データを生成する鍵生成手段と、
前記レコード単位、または前記レコード単位且つカラム単位で生成された鍵データを用いて、前記レコード単位、または前記レコード単位且つカラム単位で、所定のデータを暗号化または暗号化されたデータを復号する処理手段と、
前記処理手段により暗号化されたデータと、当該データの暗号化に用いられた前記インデックス情報とを前記レコード毎に対応付けてデータベースに登録する登録手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
鍵データを生成するための元となる１つ以上のシード値を保管する複数の保管部が分散された分散システムにアクセス可能なコンピュータを、
何れかの前記シード値の保管場所を示すインデックス情報を取得するインデックス取得手段と、
前記インデックス情報に基づいて、データベースへの登録単位であるレコード単位、または前記レコード単位且つカラム単位で前記複数の保管部から前記保管されたそれぞれのシード値を取得するシード値取得手段と、
前記レコード単位、または前記レコード単位且つカラム単位で取得されたそれぞれのシード値を元に、前記レコード単位、または前記レコード単位且つカラム単位で鍵データを生成する鍵生成手段と、
前記レコード単位、または前記レコード単位且つカラム単位で生成された鍵データを用いて、前記レコード単位、または前記レコード単位且つカラム単位で、所定のデータを暗号化または暗号化されたデータを復号する処理手段と、
前記処理手段により暗号化されたデータと、当該データの暗号化に用いられた前記インデックス情報とを前記レコード毎に対応付けてデータベースに登録する登録手段として機能させることを特徴とする情報処理プログラム。
【請求項３】
鍵データを生成するための元となる１つ以上のシード値を保管する複数の保管部が分散された分散システムにアクセス可能なコンピュータにより実行される情報処理方法であって、
何れかの前記シード値の保管場所を示すインデックス情報を取得するステップと、
前記インデックス情報に基づいて、データベースへの登録単位であるレコード単位、または前記レコード単位且つカラム単位で前記複数の保管部から前記保管されたそれぞれのシード値を取得するステップと、
前記レコード単位、または前記レコード単位且つカラム単位で取得されたそれぞれのシード値を元に、前記レコード単位、または前記レコード単位且つカラム単位で鍵データを生成するステップと、
前記レコード単位、または前記レコード単位且つカラム単位で生成された鍵データを用いて、前記レコード単位、または前記レコード単位且つカラム単位で、所定のデータを暗号化または暗号化されたデータを復号するステップと、
前記暗号化されたデータと、当該データの暗号化に用いられた前記インデックス情報とを前記レコード毎に対応付けてデータベースに登録するステップと、
を含むことを特徴とする情報処理方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
上記課題を解決するために、請求項１に記載の発明は、鍵データを生成するための元となる１つ以上のシード値を保管する複数の保管部が分散された分散システムにアクセス可能な情報処理装置であって、何れかの前記シード値の保管場所を示すインデックス情報を取得するインデックス取得手段と、記インデックス情報に基づいて、データベースへの登録単位であるレコード単位、または前記レコード単位且つカラム単位で前記複数の保管部から前記保管されたそれぞれのシード値を取得するシード値取得手段と、前記レコード単位、または前記レコード単位且つカラム単位で取得されたそれぞれのシード値を元に、前記レコード単位、または前記レコード単位且つカラム単位で鍵データを生成する鍵生成手段と、前記レコード単位、または前記レコード単位且つカラム単位で生成された鍵データを用いて、前記レコード単位、または前記レコード単位且つカラム単位で、所定のデータを暗号化または暗号化されたデータを復号する処理手段と、前記処理手段により暗号化されたデータと、当該データの暗号化に用いられた前記インデックス情報とを前記レコード毎に対応付けてデータベースに登録する登録手段と、を備えることを特徴とする。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】削除
【補正の内容】
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】削除
【補正の内容】
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
請求項２に記載の発明は、鍵データを生成するための元となる１つ以上のシード値を保管する複数の保管部が分散された分散システムにアクセス可能なコンピュータを、何れかの前記シード値の保管場所を示すインデックス情報を取得するインデックス取得手段と、前記インデックス情報に基づいて、データベースへの登録単位であるレコード単位、または前記レコード単位且つカラム単位で前記複数の保管部から前記保管されたそれぞれのシード値を取得するシード値取得手段と、前記レコード単位、または前記レコード単位且つカラム単位で取得されたそれぞれのシード値を元に、前記レコード単位、または前記レコード単位且つカラム単位で鍵データを生成する鍵生成手段と、前記レコード単位、または前記レコード単位且つカラム単位で生成された鍵データを用いて、前記レコード単位、または前記レコード単位且つカラム単位で、所定のデータを暗号化または暗号化されたデータを復号する処理手段と、前記処理手段により暗号化されたデータと、当該データの暗号化に用いられた前記インデックス情報とを前記レコード毎に対応付けてデータベースに登録する登録手段として機能させることを特徴とする。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
請求項３に記載の発明は、鍵データを生成するための元となる１つ以上のシード値を保管する複数の保管部が分散された分散システムにアクセス可能なコンピュータにより実行される情報処理方法であって、何れかの前記シード値の保管場所を示すインデックス情報を取得するステップと、前記インデックス情報に基づいて、データベースへの登録単位であるレコード単位、または前記レコード単位且つカラム単位で前記複数の保管部から前記保管されたそれぞれのシード値を取得するステップと、前記レコード単位、または前記レコード単位且つカラム単位で取得されたそれぞれのシード値を元に、前記レコード単位、または前記レコード単位且つカラム単位で鍵データを生成するステップと、前記レコード単位、または前記レコード単位且つカラム単位で生成された鍵データを用いて、前記レコード単位、または前記レコード単位且つカラム単位で、所定のデータを暗号化または暗号化されたデータを復号するステップと、前記暗号化されたデータと、当該データの暗号化に用いられた前記インデックス情報とを前記レコード毎に対応付けてデータベースに登録するステップと、を含むことを特徴とする。