(57)【要約】【課題】第三者による分散情報格納部への不正アクセスがあっても、分散データから元のデータへの復元を困難にする。【解決手段】データ管理装置（１０４＿１）は、分散データを記憶する記憶部を有し、前記データ管理装置１０４＿１により、ネットワークから主キーとデータの組の登録要求を受信すると、前記主キーから複数のハッシュ値を計算し、前記データを分割して分散データを生成し、前記ハッシュ値と前記分散データの複数のデータ対を生成し、前記ハッシュ値から前記記憶部におけるアドレスへ不可逆な変換を行い、該アドレスに、該アドレスと対になる前記分散データを格納する。【選択図】  図１
2014130412.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークと接続されるデータ管理装置における主キーとデータの組を管理するデータ管理方法であって、
前記データ管理装置は、分散データを記憶する記憶部を有し、
前記データ管理装置により、
前記ネットワークから主キーとデータの組の登録要求を受信すると、前記主キーから複数のハッシュ値を計算し、前記データを分割して分散データを生成し、前記ハッシュ値と前記分散データの複数のデータ対を生成する処理と、
前記ハッシュ値から前記記憶部におけるアドレスへ不可逆な変換を行い、該アドレスに、該アドレスと対になる前記分散データを格納する処理とを実施する、
ことを特徴とするデータ管理方法。
【請求項２】
前記データ管理装置により、
前記ネットワークから主キーに対応するデータの参照要求を受信すると、前記主キーから複数のハッシュ値を計算する処理と、
前記ハッシュ値から前記記憶部におけるアドレスへ不可逆な変換を行い、該アドレスに存在する前記分散データを取得する処理と、
前記取得した分散データを結合してデータを復元し、該データをネットワークに送信する処理とを実施する、
ことを特徴とする請求項１に記載のデータ管理方法。
【請求項３】
前記データ管理装置により、
乱数生成器により乱数を生成し、前記乱数と前記データとの排他的論理和を計算して難読化中間値を生成し、前記難読化中間値と前記乱数を結合して結合データを生成し、該結合データを分割して分散データを生成する処理を実施する、
ことを特徴とする請求項２に記載のデータ管理方法。
【請求項４】
前記データ管理装置により、
前記分散データを結合して結合データを生成し、該結合データから難読化中間値と乱数を取得し、前記難読化中間値と前記乱数との排他的論理和を計算してデータを復元する処理を実施する、
ことを特徴とする請求項３に記載のデータ管理方法。
【請求項５】
前記記憶部は、指定されたアドレスに分散データを記憶するデータ記憶領域と、インデックス配列構造によりリンク構造の分散データの先頭アドレスを記憶する先頭アドレス記憶領域を有し、
前記データ管理装置により、
前記データ記憶領域の空き領域を指すアドレスの中から任意のアドレスを選択し、前記データ記憶領域の前記アドレスに分散データ、ハッシュ値を記憶し、剰余計算を用いて前記ハッシュ値からインデックスを計算し、前記先頭アドレス記憶領域の前記インデックスから先頭アドレスを取得し、前記先頭アドレスから順に辿ることでリンク構造の末端に前記アドレスを格納する処理を実施する、
ことを特徴とする請求項２に記載のデータ管理方法。
【請求項６】
前記データ管理装置により、
剰余計算を用いてハッシュ値からインデックスを計算し、前記先頭アドレス記憶領域の前記インデックスが指す位置から先頭アドレスを取得し、前記先頭アドレスから順にリンク構造を辿り、前記ハッシュ値が前記データ記憶領域に記憶されたハッシュ値と一致した分散データを取得する処理を実施する、
ことを特徴とする請求項５に記載のデータ管理方法。
【請求項７】
前記データ管理装置により、
主キーを分割して分散主キーを生成する処理と、
前記データ記憶領域に前記分散主キー、前記分散データ、ハッシュ値を格納する処理とを実施する、
ことを特徴とする請求項６に記載のデータ管理方法。
【請求項８】
前記データ管理装置により、
複数の分散主キーの全ての組み合わせに対して、分散主キーを結合して主キーを復元し、前記主キーと前記参照要求に含まれる主キーと一致する組み合わせを判別し、前記組み合わせにより分散データを結合してデータを復元する処理を実施する、
ことを特徴とする請求項７に記載のデータ管理方法。
【請求項９】
前記データ管理装置により、
乱数生成器により乱数を生成し、前記乱数と前記主キーとの排他的論理和を計算して難読化主キーを生成し、前記難読化主キーと前記乱数を結合して主キーを生成し、前記主キーを分割して分散主キーを生成する処理を実施する、
ことを特徴とする請求項８に記載のデータ管理方法。
【請求項１０】
前記データ管理装置により、
前記分散主キーを結合して主キーを生成し、前記主キーから難読化主キーと乱数を取得し、前記難読化主キーと前記乱数との排他的論理和を計算して主キーを復元する処理を実施する、
ことを特徴とする請求項９に記載のデータ管理方法。
【請求項１１】
ネットワークと接続されるデータ管理装置であって、
制御部と、分散データを記憶する記憶部とを有し、
前記制御部は、
前記ネットワークから主キーとデータの組の登録要求を受信すると、前記主キーから複数のハッシュ値を計算し、前記データを分割して分散データを生成し、前記ハッシュ値と前記分散データの複数のデータ対を生成し、
前記ハッシュ値から前記記憶部におけるアドレスへ不可逆な変換を行い、該アドレスに、該アドレスと対になる前記分散データを記憶する、
ことを特徴とするデータ管理装置。
【請求項１２】
前記制御部は、
前記ネットワークから主キーに対応するデータの参照要求を受信すると、前記主キーから複数のハッシュ値を計算し、
前記ハッシュ値から前記記憶部におけるアドレスへ不可逆な変換を行い、該アドレスに存在する前記分散データを取得し、
複数の前記分散データを結合してデータを復元し、該データをネットワークに送信する、
ことを特徴とする請求項１１に記載のデータ管理装置。
【請求項１３】
前記データ管理装置は、さらに乱数を生成する乱数生成器を有し、
前記制御部は、
前記乱数生成器により生成した乱数と前記データとの排他的論理和を計算して難読化中間値を生成し、前記難読化中間値と前記乱数を結合して結合データを生成し、該結合データを分割して分散データを生成する、
ことを特徴とする請求項１２に記載のデータ管理装置。
【請求項１４】
前記制御部は、
前記分散データを結合して結合データを生成し、該結合データから難読化中間値と乱数を取得し、前記難読化中間値と前記乱数との排他的論理和を計算してデータを復元する、
ことを特徴とする請求項１３に記載のデータ管理管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの管理方法およびこれを実施するデータ管理装置に関する。
【背景技術】
【０００２】
一般的に、情報システムでは人や物、またはそれらに関連する情報（以下、個人情報と呼ぶ）は安全に管理されることが望ましい。例えば、保険会社から会員の保険情報が漏えいした場合、会員のプライバシーは侵害される可能性がある。仮に会員の会員番号などが漏えいした場合、なりすましなどの被害を受ける可能性もある。
【０００３】
個人情報を情報システムにて管理する場合、情報システムが人や物等の管理対象を一意に特定できるようにするため、識別子（以下、ＩＤと呼ぶ）を管理対象に割り当ることが一般的である。例えば、運転免許保有者の情報を管理するために、運転免許保有者それぞれに唯一無二の運転免許証番号が割り当てられ、前記運転免許証番号を用いて前記運転免許保有者に関わる個人情報の操作を行う。そのため、個人情報を安全に管理しつつ、ＩＤを検索するための主キーとして、個人情報を管理可能なデータ管理技術が必要となる。
【０００４】
データの安全管理に関わる技術として、例えば、文書データを暗号化技術により暗号化データに変換し、インデックスと暗号化データを対応付けてデータベースで管理する技術が提案されている（例えば、特許文献１参照）。
【０００５】
しかし、特許文献１に開示された技術では、文書データを暗号化するための暗号鍵が安全に管理される必要があり、暗号鍵の管理は複雑かつ困難な課題であるため、暗号鍵の管理が不要な技術が提案されている（例えば、特許文献２参照）。この技術によれば、文書データをしきい値型秘密分散法により秘密分散データとし、秘密分散データそれぞれに文書ＩＤを対応付けて各分散データ格納装置の分散情報格納部にて管理する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−５２６９８号公報
【特許文献２】特開２００９−１８０９１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献２に開示された技術によれば、文書データは秘密分散データに変換されるため、秘密分散データ単体からは文書データを復元できないが、第三者による分散情報格納部への不正アクセスなどにより文書ＩＤが取得されと、その文書ＩＤから全ての秘密分散データを収集することで、文書データを復元される危険性がある。
【０００８】
本発明は、このような事情に鑑みてなされたものであり、第三者による分散情報格納部への不正アクセスがあっても、分散データから元のデータへの復元を困難にするデータ管理方法およびデータ管理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の代表的な一例は、以下の通りである。すなわち、本発明は、ネットワークに接続されるデータ管理装置における主キーとデータの組を管理するデータ管理方法である。前記データ管理装置は、分散データを記憶する記憶部を有する。そして、前記データ管理装置により、前記ネットワークから主キーとデータの組の登録要求を受信すると、前記主キーから複数のハッシュ値を計算し、前記データを分割して分散データを生成し、前記ハッシュ値と前記分散データの複数のデータ対を生成する処理と、前記ハッシュ値から前記記憶部におけるアドレスへ不可逆な変換を行い、該アドレスに、該アドレスと対になる前記分散データを格納する処理とを実施する、ことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、第三者による分散情報格納部への不正アクセスがあっても、分散データから元のデータへの復元を困難にすることができる。
【図面の簡単な説明】
【００１１】
【図１】本実施例におけるＩＤ管理システムの構成図の例である。
【図２】本実施例におけるクライアント装置１０１の構成図の例である。
【図３】本実施例における分散管理装置１０２の構成図の例である。
【図４】本実施例におけるデータ管理装置１０４＿１乃至１０４＿ｎの構成図の例である。
【図５】本実施例におけるクライアント装置１０１、分散管理装置１０２、データ管理装置１０４＿１乃至１０４＿ｎのハードウェア構成図の例である。
【図６】本実施例におけるＩＤ登録処理のシーケンス図の例である。
【図７】本実施例におけるＩＤ登録処理の中で送受信されるメッセージの例である。
【図８】本実施例における難読化と秘密分散化の例である。
【図９】本実施例におけるハッシュ値生成６０４の例である。
【図１０】本実施例における分散管理装置１０２の記憶部３１５のデータ管理装置情報記憶領域３１６とハッシュ関数記憶領域３１７の構成例である。
【図１１】本実施例におけるデータ管理装置１０４＿１、１０４＿２、・・・、１０４＿ｎの中からデータ追加を行うデータ管理装置を決定する処理を説明する図である。
【図１２】本実施例におけるメタ情報１２０１の例である。
【図１３】本実施例におけるＩＤ登録時のデータ管理装置１０４＿１の記憶部４１３の例である。
【図１４】本実施例におけるＩＤ変換処理のシーケンス図の例である。
【図１５】本実施例におけるＩＤ変換処理の中で送受信されるメッセージの例である。
【図１６】本実施例におけるＩＤ変換時のデータ管理装置１０４＿１の記憶部４１３の例である。
【図１７】本実施例における秘密分散復元１４０９と可読化１４１０の例である。
【図１８】本実施例におけるＩＤ削除処理のシーケンス図の例である。
【図１９】本実施例におけるＩＤ削除処理の中で送受信されるメッセージの例である。
【図２０】本実施例におけるＩＤ削除時のデータ管理装置１０４＿１の記憶部４１３の例である。
【発明を実施するための形態】
【００１２】
以下、図面を用いて本発明の実施の形態について説明する。なお、これにより本発明が限定されるものではない。
【００１３】
本実施例では、特定のＩＤから特定のＩＤへと変換を可能とするＩＤ管理システムの例を説明する。
【００１４】
図１は、本実施例におけるＩＤ管理システムの構成例を示す図である。ＩＤ管理システムは、クライアント装置１０１と接続された分散管理装置１０２が、ネットワーク１０３を介して、複数のデータ管理装置１０４＿１乃至１０４＿ｎのそれぞれと相互に通信可能に構成されている。ユーザは、クライアント装置１０１を介してＩＤ管理システムの機能を利用する。クライアント装置１０１と分散管理装置１０２は1個に限定されず、実施形態によって複数の場合もある。また、クライアント装置１０１と分散管理装置１０２は直接接続されている必要はなく、実施形態によってはネットワーク、あるいはゲートウェイ装置などを介して接続される場合もある。ネットワーク１０３は、例えば、一般的に公開されない閉じたイントラネットワークである。
【００１５】
図２は、本実施例におけるクライアント装置１０１の構成図の例である。クライアント装置１０１は、制御部２０１と、入出力部２０５と、送受信部２０６を有する。制御部２０１は、ＩＤ登録要求部２０２、ＩＤ変換要求部２０３、ＩＤ削除要求部２０４から構成されている。ＩＤ登録要求部２０２は、入出力部２０５を介してユーザからＩＤ登録要求を受け付け、送受信部２０６を介して分散管理装置１０２にＩＤ登録要求メッセージを送信し、また、送受信部２０６を介して分散管理装置１０２からＩＤ登録応答メッセージを受信し、入出力部２０５を介してユーザにＩＤ登録結果を通知する処理部である。ＩＤ変換要求部２０３は、入出力部２０５を介してユーザからＩＤ変換要求を受け付け、送受信部２０６を介して分散管理装置１０２にＩＤ変換要求メッセージを送信し、また、送受信部２０６を介して分散管理装置１０２からＩＤ変換応答メッセージを受信し、入出力部２０５を介してユーザにＩＤ変換結果を通知する処理部である。ＩＤ削除要求部２０４は、入出力部２０５を介してユーザからＩＤ削除要求を受け付け、送受信部２０６を介して分散管理装置１０１にＩＤ削除要求メッセージを送信し、また、送受信部２０６を介して分散管理装置１０２からＩＤ削除応答メッセージを受信し、入出力部２０５を介してユーザにＩＤ削除結果を通知する処理部である。入出力部２０５は、キーボード等のインタフェースを介してユーザからの入力を制御し、モニタ等のインタフェースを介してユーザへの出力を制御する。送受信部２０６は、ネットワーク１０３を介して情報の送受信を行う。  図３は、本実施例における分散管理装置１０２の構成図の例である。分散管理装置１０２は、制御部３０１と、記憶部３１５と、送受信部３１８を有する。制御部３０１は、データ管理装置情報管理部３０２、ＩＤ登録処理部３０３、ＩＤ変換処理部３０４、ＩＤ削除処理部３０５、難読化部３０６、可読化部３０７、秘密分散化部３０８、秘密分散復元部３０９、ハッシュ値生成部３１０、データ管理装置決定部３１１、データ追加要求部３１２、データ参照要求部３１３、データ更新要求部３１５、データ削除要求部３１６から構成されている。
【００１６】
データ管理装置情報管理部３０２は、送受信部３１８を介してデータ管理装置１０４＿１乃至１０４＿ｎと相互通信し、データ管理装置情報記憶領域３１６に格納されているデータ管理装置１０４＿１乃至１０４＿ｎの接続情報（ノードＩＤ、ＩＰアドレス、ポート番号等）の同期をとる処理部である。ノードＩＤはデータ管理装置１０４＿１乃至１０４＿ｎに割り当てられた唯一無二の番号であり、その形式は限定しない。ＩＤ登録処理部３０３は、送受信部３１８を介してクライアント装置１０１からＩＤ登録要求メッセージを受信し、ＩＤ登録処理を行い、送受信部３１８を介してクライアント装置１０１にＩＤ登録応答メッセージを送信する処理部である。ＩＤ変換処理部３０４は、送受信部３１８を介してクライアント装置１０１からＩＤ変換要求メッセージを受信し、ＩＤ変換処理を行い、送受信部３１８を介してクライアント装置１０１にＩＤ変換応答メッセージを送信する処理部である。ＩＤ削除処理部３０５は、送受信部３１８を介してクライアント装置１０１からＩＤ削除要求メッセージを受信し、ＩＤ削除処理を行い、送受信部３１８を介してクライアント装置１０１にＩＤ削除応答メッセージを送信する処理部である。難読化部３０６は、制御部３０１内の他処理部から主キー、あるいはデータを受け付け、その主キー、あるいはデータから難読化中間値を生成し、これを返す処理部である。なお、主キーとは、データ記憶領域から、ある一組のデータセット（レコード）を一意に識別するための情報である。可読化部３０７は、制御部３０１内の他処理部から難読化中間値を受け付け、その難読化中間値から主キー、あるいはデータへ可読化し、これを返す処理部である。秘密分散化部３０８は、制御部３０１内の他処理部から難読化中間値を受け付け、その難読化中間値から秘密分散主キー、あるいは秘密分散データを生成し、これを返す処理部である。秘密分散復元部３０９は、制御部３０１内の他処理部から秘密分散主キー、あるいは秘密分散データを受け付け、その秘密分散主キー、あるいは秘密分散データから難読化中間値を復元し、これを返す処理部である。ハッシュ値生成部３１０は、制御部３０１内の他処理部からデータを受け付け、そのデータから複数のハッシュ値を計算し、これを返す処理部である。データ管理装置決定部３１１は、制御部３０１内の他処理部からハッシュ値を受け付け、そのハッシュ値から、データ管理装置１０４＿１乃至１０４＿ｎのうちデータ処理を行うデータ管理装置を決定し、データ管理装置情報記憶領域３１６を参照することで、決定したデータ管理装置の接続情報を返す処理部である。データ追加要求部３１２は、制御部３０１内の他処理部から秘密分散データとハッシュ値を受け付け、送受信部３１８を介してデータ管理装置決定部３１１により決定されたデータ管理装置へデータ追加要求メッセージを送信し、また、送受信部３１８を介して、決定されたデータ管理装置からデータ追加応答メッセージを受信し、データ追加結果を返す処理部である。データ参照要求部３１３は、制御部３０１内の他処理部から秘密分散データとハッシュ値を受け付け、送受信部３１８を介してデータ管理装置決定部３１１により決定されたデータ管理装置へデータ参照要求メッセージを送信し、また、送受信部３１８を介して、決定されたデータ管理装置からデータ参照応答メッセージを受信し、データ参照結果を返す処理部である。データ削除要求部３１４は、制御部３０１内の他処理部から秘密分散データとハッシュ値を受け付け、送受信部３１８を介してデータ管理装置決定部３１１により決定されたデータ管理装置へデータ削除要求メッセージを送信し、また、送受信部３１８を介して、決定されたデータ管理装置からデータ削除応答メッセージを受信し、データ削除結果を返す処理部である。
【００１７】
記憶部３１５は、データ管理装置情報記憶領域３１６、ハッシュ関数記憶領域３１７から構成されている。データ管理装置情報記憶領域３１６は、データ管理装置１０４＿１乃至１０４＿ｎの接続情報を記憶する領域である。接続情報はデータ管理装置情報管理部３０２により同期をとることで、データ管理装置１０４＿１乃至１０４＿ｎと同じ値が共有される。ハッシュ関数記憶領域３１７は、ハッシュ値生成部３１０で利用する複数のハッシュ関数を記憶する領域である。ハッシュ関数は不可逆性が保証された関数であれば良く、ハッシュ関数の数は秘密分散化部３０８で行う分割数と一致する。また、分割数（即ち、ハッシュ関数の数）は２以上の整数であれば良い。このハッシュ関数には項目番号が割り振られているとする。
【００１８】
送受信部３１８は、ネットワーク１０３を介して情報の送受信を行う。
【００１９】
図４は、本実施例におけるデータ管理装置１０４＿１乃至１０４＿ｎの構成図の例である。データ管理装置１０４＿１乃至１０４＿ｎは、制御部４０１と、記憶部４１３と、送受信部４１８を有する。制御部４０１は、データ管理装置情報管理部４０２、データ追加処理部４０３、データ参照処理部４０４、データ削除処理部４０５、インデックス生成部４０６、空アドレス取得部４０７、メタ情報生成部４０８、先頭アドレス格納処理部４０９、先頭アドレス取得処理部４１０、データ格納処理部４１１、データ取得処理部４１２から構成されている。
【００２０】
データ管理装置情報管理部４０２は、送受信部４１８を介して分散管理装置１０２と相互通信し、データ管理装置情報記憶領域４１４に格納されているデータ管理装置１０４＿１乃至１０４＿ｎの接続情報の同期をとる処理部である。データ追加処理部４０３は、送受信部４１８を介して分散管理装置１０２からデータ追加要求メッセージを受信し、データ追加処理を行い、送受信部４１８を介して分散管理装置１０２にデータ追加応答メッセージを送信する処理部である。データ参照処理部４０４は、送受信部４１８を介して分散管理装置１０２からデータ参照要求メッセージを受信し、データ参照処理を行い、送受信部４１８を介して分散管理装置１０２にデータ参照応答メッセージを送信する処理部である。データ削除処理部４０５は、送受信部４１８を介して分散管理装置１０２からデータ削除要求メッセージを受信し、データ削除処理を行い、送受信部４１８を介して分散管理装置１０２にデータ削除応答メッセージを送信する処理部である。インデックス生成部４０６は、制御部４０１内の他処理部からハッシュ値を受け付け、そのハッシュ値からインデックスを生成し、インデックスを返す処理部である。空アドレス取得部４０７は、データ管理情報記憶領域４１５を参照し、データ記憶領域４１７内の空き領域のアドレスを返す処理部である。メタ情報生成部４０８は、制御部４０１内の他処理部から秘密分散データ、ハッシュ値を受け付け、その秘密分散データ、ハッシュ値からメタ情報を生成し、これを返す処理部である。先頭アドレス格納処理部４１１は、制御部４０１内の他処理部からインデックス、アドレスを受け付け、先頭アドレス記憶領域４１６内の該当インデックス位置に受け付けたアドレスを書き込む処理部である。先頭アドレス取得処理部４１０は、制御部４０１内の他処理部からインデックスを受け付け、先頭アドレス記憶領域４１６内の該当インデックス位置からアドレスを読み込む処理部である。データ格納処理部４１１は、アドレス、メタ情報、秘密分散情報を受け付け、データ記憶領域４１７内の該当アドレスに受け付けたメタ情報、および秘密分散情報を書き込む処理部である。データ取得処理部４１２は、アドレスを受け付け、データ記憶領域４１７内の該当アドレスのメタ情報、および秘密分散情報を読み込み、読み込んだメタ情報、および秘密分散情報を返す処理部である。
【００２１】
記憶部４１３は、データ管理装置情報記憶領域４１４、データ管理情報記憶領域４１５、先頭アドレス記憶領域４１６、データ記憶領域４１７から構成されている。データ管理装置情報記憶領域４１４は、データ管理装置１０４＿１乃至１０４＿ｎの接続情報を記憶する領域である。接続情報はデータ管理装置情報管理部４０２により同期をとることで、分散管理装置１０２と同じ値が共有される。データ管理情報記憶領域４１５は、データ記憶領域４１７内の、空き領域情報を記憶する領域である。先頭アドレス記憶領域４１６は、アドレスを記憶する領域である。先頭アドレス記憶領域４１６はインデックス配列構造を有しており、インデックスが定める位置にアドレスが格納される。データ記憶領域４１７は、メタ情報と秘密分散データを記憶する領域である。データ記憶領域４１７は指定されたアドレスにデータを格納する。
【００２２】
送受信部４１８は、ネットワーク１０３を介して情報の送受信を行う。
【００２３】
図５は、本実施例におけるクライアント装置１０１、分散管理装置１０２、データ管理装置１０４＿１乃至１０４＿ｎのハードウェア構成図の例である。各装置は一般的なコンピュータ５０１により実現でき、図５に示すように、ＣＰＵ５０２、メモリ５０３、外部記憶装置５０４、送受信装置５０５、入力装置５０６、出力装置５０７を有する。これらは、ＢＵＳ（バス）により接続されている。上述した各装置の処理部はプログラムにより実現され、外部記憶装置５０４に記憶されている。ＣＰＵ５０２は、外部記憶装置５０４から必要なプログラムをメモリ５０３にロードし実行する。また、分散管理装置１０２、データ管理装置１０４＿１乃至１０４＿ｎの記憶部３１５、４１３は、メモリ５０３や外部記憶装置５０４により実現される。各装置の送受信部２０６、３１８、４１８は、送受信装置５０５により実現される。クライアント装置１０１の入出力部２０５は、入力装置５０６、出力装置５０７により実現される。
【００２４】
図６から図１３を用いて、ＩＤ登録処理を行う際に、クライアント装置１０１、分散管理装置１０２、データ管理装置１０４＿１が実行する一連の処理を説明する。ここでは、ＩＤ”１２３４５６７８９”からＩＤ”ＡＢＣＤＥＨＧＨＩ”への変換を可能とするため、ＩＤ”１２３４５６７８９”を主キーとし、ＩＤ”ＡＢＣＤＥＨＧＨＩ”をデータとしてＩＤ管理システムに登録する例を示す。逆方向への変換を可能とするためには、本処理のＩＤ”１２３４５６７８９”とＩＤ”ＡＢＣＤＥＨＧＨＩ”を入れ替えた処理を行えば良い。
【００２５】
図６は、本実施例におけるＩＤ登録処理のシーケンス図の例である。最初にクライアント装置１０１は、分散管理装置１０２にＩＤ登録要求メッセージ６０１を送信する。
【００２６】
図７は、本実施例におけるＩＤ登録処理の中で送受信されるメッセージの例である。図７に示すように、ＩＤ登録要求メッセージ６０１は主キー７０１、データ７０２の２つのパラメータを含む。図６の例では、ＩＤ”１２３４５６７８９”が主キー７０１、ＩＤ”ＡＢＣＤＥＨＧＨＩ”がデータ７０２である。
【００２７】
図６に戻って説明を続ける。次に分散管理装置１０２は、主キー７０１、およびデータ７０２それぞれに対して難読化６０２、および秘密分散化６０３を行う。主キー７０１を難読化６０２、および秘密分散化６０３したものが秘密分散主キー７０４に、データ７０２を難読化６０２、および秘密分散化６０３したものが秘密分散データ７０５になる。
【００２８】
図８は、本実施例における難読化と秘密分散化の例である。難読化６０２では、まず乱数生成器により事前に規定された長さの乱数８０１を生成し、対象となるデータ（主キー７０１、あるいはデータ７０２）と乱数８０１の排他的論理和を計算し、この計算結果と乱数８０１を結合し、難読化中間値８０２を生成する。図８の例では、主キー７０１“１２３４５６７８９”と乱数８０１“２ｏｒ２０３ｒｕ２”との排他的論理和を取ることで、“ｘｏ３８９ｊ２３８”を生成し、これを乱数８０１“２ｏｒ２０３ｒｕ２”と結合することで難読化中間値８０２“ｘｏ３８９ｊ２３８２ｏｒ２０３ｒｕ２”を生成している。秘密分散化６０３では、分割数の数だけ難読化中間値８０２を分割することで、秘密分散したデータ（秘密分散主キー７０４、あるいは秘密分散データ７０５）を生成する。図８の例では、難読化中間値８０２“ｘｏ３８９ｊ２３８２ｏｒ２０３ｒｕ２”を６分割することで、秘密分散主キー７０４“ｘｏ３  ７０４＿１”、“８９ｊ  ７０４＿２”、“２３８  ７０４＿３”、“２ｏｒ  ７０４＿４”、“２０３７０４＿５”、“ｒｕ２  ７０４＿６”を生成している。同様に、本実施例では、ＩＤ”ＡＢＣＤＥＨＧＨＩ”を難読化６０２、および秘密分散化６０３することで、秘密分散データ７０５＿１“ｒ６８”、  ７０５＿２“０２ｗ”、７０５＿３“ｍ２ｚ”、７０５＿４“ｌｗｑ”、７０５＿５“ｍｎｖ”、７０５＿６“ｃｄｒ”を得る。秘密分散化６０３における分割数はシステムの設計者が要件にあわせて設計し、事前に定めておく数である。本実施例では、分割数を６としているが、分割数は６に限定されず、２以上の整数であれば任意の値で良い。また、難読化６０２を実施せず、主キー７０１、およびデータ７０２を平文のまま分割し、秘密分散化しても良いが、例えば、秘密分散主キー７０４＿１、および秘密分散データ７０５＿１から主キー７０１、およびデータ７０２の一部分を読み取られる危険性がある。難読化６０２は部分的に主キー７０１、およびデータ７０２を読み取られる危険を防ぐ効果がある。
【００２９】
図６に戻って説明を続ける。次に分散管理装置１０２はハッシュ値生成６０４を行う。図９は、本実施例におけるハッシュ値生成６０４の例である。ハッシュ値生成６０４では、分散管理装置１０２はまずハッシュ関数記憶領域３１７から６個のハッシュ関数９０２を取得し、主キー９０１から６個のハッシュ関数９０２を用いて、６個のハッシュ値７０３＿１、７０３＿２、・・・、７０３＿６を生成する。図９の例では、主キー７０１“１２３４５６７８９”からハッシュ値７０３＿１“１５８４”などが生成されている。ハッシュ関数９０２の数は秘密分散化６０３における分割数と一致する。本実施例では、秘密分散化６０３の分割数が６であるため、ハッシュ関数９０２の数は６個となっている。
【００３０】
図１０は、本実施例における分散管理装置１０２の記憶部３１５のデータ管理装置情報記憶領域３１６とハッシュ関数記憶領域３１７の構成例である。ハッシュ関数記憶領域３１７には、ハッシュ関数９０２＿１、９０２＿２、・・・、９０６＿６のそれぞれが項番と対応付けられて格納されている。ハッシュ関数は一方向性を有する関数のため、ハッシュ値７０３＿１、７０３＿２、・・・、７０３＿６のいずれのハッシュ値からも主キー７０１を推定することは出来ない。
【００３１】
図６に戻って説明を続ける。分散管理装置１０２は、６個の秘密分散主キー７０４＿１、７０４＿２、・・・、７０４＿６と６個の秘密分散データ７０５＿１、７０５＿２、・・・、７０５＿６を分割した先頭から順に選択し、さらにハッシュ関数の項番順にハッシュ値７０３＿１、７０３＿２、・・・、７０３＿６を選択することで、秘密分散主キーとハッシュ値と秘密分散データとをそれぞれ対応付けて６個の組に分ける。そして、分散管理装置１０２は、各組に対して、以降のデータ管理装置決定６０５からデータ追加応答メッセージ６１２まで行う。本実施例では、分割数を６としているため、６個の組に分けられ、データ管理装置決定６０５からデータ追加応答メッセージ６１２までが６回繰り返されることとなる。
【００３２】
分散管理装置１０２は、データ管理装置決定６０５を行う。
【００３３】
図１１は、本実施例におけるデータ管理装置１０４＿１、１０４＿２、・・・、１０４＿ｎの中からデータ追加を行うデータ管理装置を決定する処理を説明する図である。データ管理装置決定６０５では、データ管理装置情報記憶領域３１６からノードＩＤ１００１＿１、１００２＿２、・・・と接続情報１００２＿１、１００２＿２、・・・を取得し、ノードＩＤがハッシュ値以上で最も小さいデータ管理装置を担当者と決定する。ハッシュ値がどのノードＩＤよりも大きい場合は、最も小さいノードＩＤを持つデータ管理装置を担当者と決定する。図１１の例では、 ハッシュ値７０３＿１“１５８４”はノードＩＤ１００１＿１“１１５２”以上ノードＩＤ１００１＿２“２０８４”未満なので、データ管理装置１０４＿１が担当者に決定されている。
【００３４】
図６に戻って説明を続ける。次に分散管理装置１０２は担当者として決定したデータ管理装置１０４＿１にデータ追加要求メッセージ６０６を送信する。データ追加要求メッセージ６０６の例は図７に示す。データ追加要求メッセージ６０６は、図７に示すように、ハッシュ値７０３＿１、秘密分散主キー７０４＿１、秘密分散データ７０５＿１の３つのパラメータを含む。
【００３５】
次にデータ管理装置１０４＿１はインデックス生成６０７を行う。インデックスとは、先頭アドレス記憶領域に配列構造で記憶される先頭アドレスの配列の添え字を意味する。先頭アドレスの意味は後述する。インデックス生成６０７では、ハッシュ値をインデックスの最大値で割った余りを計算し、その余りをインデックスとする。本実施例では、インデックスの最大値を“１００”とし、ハッシュ値７０３＿１“１５８４”からはインデックス“８４”が生成される。インデックスの最大値はシステム稼働前に決定される定数である。
【００３６】
次にデータ管理装置１０４＿１は空アドレス取得６０８を行う。空アドレス取得６０８では、データ管理情報記憶領域４１５を参照し、空き領域である追記アドレス１３０１を取得する。追記アドレスとは、データ記憶領域において新規にレコードを追記する場所を意味する。データ管理情報記憶領域４１５の例は図１３に示す。図１３は、本実施例におけるＩＤ登録前のデータ管理装置１０４＿１の記憶部４１３の例である。図１３の例では、アドレス  “１３３２８９”から始まる領域9023byte分の空き領域があるため、“１３３２８９”を追記アドレス１３０１＿１としている。
【００３７】
図６に戻って説明を続ける。次にデータ管理装置１０４＿１はメタ情報生成６０９を行う。メタ情報とは、データ管理装置１０４＿１に記憶するハッシュ値、秘密分散主キー、秘密分散データに関連する情報のことであり、データ管理装置１０４＿１が内部の処理において利用する中間的な情報である。
【００３８】
図１２は、本実施例におけるメタ情報１２０１の例である。メタ情報生成６０９では、秘密分散主キーと秘密分散データのデータサイズをそれぞれ秘密分散主キー長１２０３、秘密分散データ長１２０４とし、“ｎｕｌｌ”アドレスを次アドレス１２０２として、ハッシュ値７０３＿１、次アドレス１２０２、秘密分散主キー長１２０３、秘密分散データ長１２０４を１つのデータ列として結合することでメタ情報１２０１を生成する。図１２の例では、“１５８４”、“ｎｕｌｌ”、“３”  （“ｘｏ３”の文字列長）、“３”  （“ｒ６８”の文字列長）がメタ情報１２０１となる。次アドレス１２０２については後述する。
【００３９】
図６に戻って説明を続ける。次にデータ管理装置１０４＿１は先頭アドレス格納６１０を行う。先頭アドレス格納６１０では、先頭アドレス記憶領域４１６のインデックス位置おけるアドレスの有無により条件分岐し、２通りの処理を行う。アドレスが存在しない場合、該インデックス位置に追記アドレス１３０１＿１を先頭アドレスとして書き込む。既にアドレスが存在する場合、インデックス位置に存在する先頭アドレスを読み込む。先頭アドレス記憶領域４１６の例を図１３に示す。図１３の例では、インデックス“８４”に既に先頭アドレスが存在するため、該インデックス位置から先頭アドレス１３０２“９０２３８”を読み込んでいる。
【００４０】
図６に戻って説明を続ける。次にデータ管理装置１０４＿１はデータ格納６１１を行う。本実施例では、データ記憶領域４１７にメタ情報１２０１と秘密分散主キー７０４＿１、秘密分散データ７０５＿１を１つのレコードとして記憶する。データ記憶領域４１７の例を図１３に示す。データ記憶領域４１７では、インデックス生成６０７により同値のインデックスを持つレコードをリンク構造で記憶する。よって、先頭アドレスとは、該リンク構造の先頭となるレコードのアドレスを意味し、次アドレスは該リンク構造において次のレコードのアドレスを意味する。データ格納６１１では、該リンク構造を実現する為、第一にデータ記憶領域４１７の追記アドレス１３０１＿１にメタ情報１２０１（ハッシュ値７０３＿１、次アドレス１２０２、秘密分散主キー長１２０３、秘密分散データ長１２０４）と秘密分散主キー７０４＿１、秘密分散データ７０５＿１を１レコードとして書き込む。第二に、先頭アドレス格納６１０において、先頭アドレスを書き込んだ場合はデータ格納６１１を終了し、以降の第三、第四の処理は行わない。第三に、先頭アドレス１３０２に該当するレコードを読み込み、レコードのリンク構造を辿って末端のレコードを探索する。末端のレコードの探索としては、先頭アドレスから順にレコード内の次アドレス１２０２が指すレコードを参照していき、次アドレス１２０２が“ｎｕｌｌ”となっているものがリンク構造の末端のレコードとなる。第四に、末端のレコードの次アドレス１２０２に追記アドレス１３０１＿１を書き込む。図１３の例では、追記アドレス１３０１＿１“１３３２８９”にメタ情報（“１５８４”、“ｎｕｌｌ”、“３”、“３”）と秘密分散主キー７０４＿１（“ｘｏ３”）、秘密分散データ７０５＿１（“ｒ６８”）を書き込み、先頭アドレス１３０２“９０２３８”のメタ情報内の次アドレス１３０３が“ｎｕｌｌ”なので、  “１３３２８９”に書き換えている。このようなリンク構造を取ることで、インデックスが衝突した場合に対応することが可能となる。本実施例では、インデックスの最大値を”１００”としたため、ハッシュ値”１５８４”と”３５８４”は同じインデックスをとる。そのため、リンク構造を取り、メタ情報１２０２内にハッシュ値を有しておけば、ハッシュ値に対して一意にレコードを特定することが可能となる。また、秘密分散主キーをレコード内に有しているのは、ハッシュ値の衝突に対応するためである。その詳細について、ＩＤ変換処理の例の説明において、詳細に記述する。
【００４１】
図６に戻って説明を続ける。次にデータ管理装置１０４＿１は分散管理装置１０２にデータ追加応答メッセージ６１２を送信する。データ追加応答メッセージ６１２の例は図７に示す。データ追加応答メッセージ６１２はデータ登録結果７０７のパラメータから構成されている。
【００４２】
図６に戻って説明を続ける。次に分散管理装置１０２はクライアント装置１０１にＩＤ登録応答メッセージ６１３を送信する。ＩＤ登録応答メッセージ６１３の例は図７に示す。ＩＤ登録応答メッセージ６１３はＩＤ登録結果７０６のパラメータから構成されている。
【００４３】
このような方法でデータを記憶することにより、１レコードに格納される情報がハッシュ値と秘密分散主キー、秘密分散データと関連するメタ情報のみとなり、レコード内の情報から対応する他の秘密分散主キー、秘密分散データが格納されたレコード特定することは不可能となる。前述したように、ハッシュ関数は一方向性のある関数のため、ハッシュ値から主キーを特定することも不可能である。よって、本構造により、主キーが既知の場合のみ、主キーからハッシュ値を計算し、対応する秘密分散データが格納されたレコードを特定することが可能となる。
【００４４】
以上が、ＩＤ登録処理を行う際に、クライアント装置１０１、分散管理装置１０２、データ管理装置１０４＿１が実行する一連の処理である。本実施例では、ＩＤからＩＤへの変換を例としたが、ＩＤにドメイン情報を付加したものとＩＤにドメイン情報を付加したものの変換としても良い。
【００４５】
図１４から図１７を用いて、ＩＤ変換処理を行う際に、クライアント装置１０１、分散管理装置１０２、データ管理装置１０４＿１が実行する一連の処理の例について説明する。ここでは、ＩＤ”１２３４５６７８９”を主キーとして、対応するデータをＩＤ管理システムから取得する例を示す。
【００４６】
図１４は、本実施例におけるＩＤ変換処理のシーケンス図の例である。最初にクライアント装置１０１は分散管理装置１０２にＩＤ変換要求メッセージ１４０１を送信する。ＩＤ変換要求メッセージ１４０１の例は図１５に示す。図１５は、本実施例におけるＩＤ変換処理の中で送受信されるメッセージの例である。ＩＤ変換要求メッセージ１４０１は主キー１５０１のパラメータを含む。
【００４７】
図１４に戻って説明を続ける。次に分散管理装置１０２はハッシュ値生成１４０２を行う。本処理は前記ＩＤ登録処理時のハッシュ値生成６０４と同様であり、本実施例では、主キー１５０１“１２３４５６７８９”からハッシュ値１５０２“１５８４”などを取得される。分散管理装置１０２は、各ハッシュ値に対して、以降のデータ管理装置決定１４０３からデータ参照応答メッセージ１４０８まで行う。本実施例では、分割数を６としているため、データ管理装置決定１４０３からデータ参照応答メッセージ１４０８までが６回繰り返されることとなる。次に分散管理装置１０２はデータ管理装置決定１４０３を行う。本処理は前記ＩＤ登録処理時のデータ管理装置決定６０５と同様である。次に分散管理装置１０２は、決定したデータ管理装置１０４＿１にデータ参照要求メッセージ１４０４を送信する。データ参照要求メッセージ１４０４の例は図１５に示す。データ参照要求メッセージ１４０４はハッシュ値１５０２のパラメータを含む。
【００４８】
次にデータ管理装置１０４＿１はインデックス生成１４０５を行う。本処理は前記ＩＤ登録処理時のインデックス生成６０７と同様である。本実施例では、ハッシュ値１５０２”１５８４”からインデックス”８４”が生成される。次にデータ管理装置１０４＿１は先頭アドレス取得１４０６を行う。先頭アドレス取得１４０６では、先頭アドレス記憶領域４１６のインデックス位置の先頭アドレス１６０１を読み込む。先頭アドレス取得１４０６の例は図１６に示す。図１６は、本実施例におけるＩＤ変換時のデータ管理装置１０４＿１の記憶部４１３の例である。図１６の例では、先頭アドレス記憶領域４１６のインデックス“８４”から先頭アドレス１６０１“９０２３８”を読み込んでいる。
【００４９】
図１４に戻って説明を続ける。次にデータ管理装置１０４＿１はデータ取得１４０７を行う。データ取得１４０７では、データ管理装置１０４＿１はデータ記憶領域４１７の先頭アドレス１６０１が指すレコードから順にリンク構造を辿り、与えられたハッシュ値１５０２とレコード中のハッシュ値１６０２＿１、１６０２＿２、・・・が一致するレコードを探索し、同レコードの秘密分散主キーと秘密分散データを取得する。ハッシュ値は衝突する可能性があるため、与えられたハッシュ値１５０２と一致するハッシュ値を持つレコードが複数存在する可能性があるが、ここでは一致するものは全て取得する。データ取得１４０７の例を図１６に示す。図１６の例では、先頭アドレス１６０１“９０２３８”から始め、次アドレス１６０３＿１“１３３２８９”、次アドレス１６０３＿２“２０９３８４”と順にリンク構造を辿ってレコードを参照し、ハッシュ値が  “１５８４”と一致するレコードから（秘密分散主キー長、秘密分散データ長）＝（“ｘｏ３”，“ｒ６８”）（“９ｊｉ”，“ｑ３０”）を取得する。
【００５０】
図１４に戻って説明を続ける。次にデータ管理装置１０４＿１は分散管理装置１０２にデータ参照応答メッセージ１４０８を送信する。データ参照応答メッセージ１４０８の例を図１５に示す。データ参照応答メッセージ１４０８はデータ参照結果１５０５と秘密分散主キー１５０６＿１、１５０６＿２、・・・と秘密分散データ１５０７＿１、１５０７＿２、・・・のパラメータを含む。
【００５１】
図１４に戻って説明を続ける。次に分散管理装置１０２は受け取ったデータ参照応答メッセージ１４０８から秘密分散主キーを１つずつ選択し、全ての組み合わせに対して秘密分散復元１４０９と可読化１４１０を行う。そして、分散管理装置１０２は、復元した主キーが最初に与えられた主キー１５０１と一致する組み合わせを正しい組み合わせと判断する。本実施例では、分散管理装置１０２は６個のデータ参照応答メッセージ１４０８から秘密分散主キーとして（“ｘｏ３”ｏｒ“９ｊｉ”）、（“８９ｊ”）、（“２３８”）、（“２ｏｒ”）、（“２０３”）、（“ｒｕ２”）を受け取り、（“ｘｏ３”“８９ｊ”“２３８”“２ｏｒ”“２０３”“ｒｕ２”）と（“９ｊｉ”“８９ｊ”“２３８”“２ｏｒ”“２０３”“ｒｕ２”）の２個の組み合わせに対して、秘密分散復元１４０９と可読化１４１０を行い、復元した主キーがＩＤ変換要求メッセージ１４０１に含まれる主キーと一致することから前者の組み合わせが正しいと判断する。
【００５２】
具体的には、まず秘密分散復元１４０９では、分散管理装置１０２は、取得した秘密分散主キーをハッシュ関数の項目番号順に並べ、結合する。秘密分散復元１４０９の例を図１７に示す。図１７は本実施例における秘密分散復元１４０９と可読化１４１０の例である。図１７の例では、分散管理装置１０２は、取得した秘密分散主キー１７０１＿１“ｘｏ３”、１７０１＿２“８９ｊ”、１７０１＿３“２３８”、１７０１＿４“２ｏｒ”、１７０１＿５“２０３”、１７０１＿６“ｒｕ２”を結合し、難読化中間値１７０２“ｘｏ３８９ｊ２３８２ｏｒ２０３ｒｕ２”を生成する。
【００５３】
図１４に戻って説明を続ける。可読化１４１０では、分散管理装置１０２は難読化中間値１７０２の末尾から乱数１７０３を取得し、難読化中間値１７０２の乱数以外の部分と乱数１７０３の排他的論理和を計算することで復元主キー１７０４を生成する。図１７の例では、難読化中間値１７０２“ｘｏ３８９ｊ２３８２ｏｒ２０３ｒｕ２”から乱数１７０３“２ｏｒ２０３ｒｕ２”を取得し、“ｘｏ３８９ｊ２３８”と乱数１７０３“２ｏｒ２０３ｒｕ２”の排他的論理和を計算することで、復元主キー１７０４“１２３４５６７８９”を生成している。
【００５４】
次に分散管理装置１０２は、ＩＤ変換要求メッセージ１４０１に含まれる主キーと一致する組み合わせが存在する場合、該組み合わせに従って、秘密分散データを選択し、秘密分散復元１４０９と可読化１４１０１５０７を行い、データ１５０４を取得する。ＩＤ変換要求メッセージ１４０１に含まれる主キーと一致する組み合わせが存在しない場合、分散管理装置１０２はＩＤ変換結果１５０３を“Ｆａｌｓｅ”とする。
【００５５】
次に分散管理装置１０２はクライアント装置１０１にＩＤ変換応答メッセージ１４１１を送信する。ＩＤ変換応答メッセージ１４１１の例を図１５に示す。ＩＤ変換応答メッセージ１４１１はＩＤ変換結果１５０３とデータ１５０４のパラメータを含む。
【００５６】
以上が、ＩＤ変換処理する際に、クライアント装置１０１、分散管理装置１０２、データ管理装置１０４＿１が実行する一連の処理である。秘密分散復元１４０９から可読化１４１０にかけて、秘密分散主キーの全組み合わせに対して処理を行うのは、ハッシュ値の衝突問題を解決するためである。一般的に、ハッシュ関数は、ごく低確率ではあるが異なる値から同一のハッシュ値を得ることがある。そのため、ハッシュ値の衝突問題に対応しなかった場合、主キーから無関係のレコードを取得してしまう恐れがある。本実施例では、レコード中に秘密分散主キーを格納し、参照時に秘密分散主キーを復元してみることで、主キーに対応するレコードを一意に特定し、ハッシュ値の衝突問題を解決している。この処理は一見非効率的に見えるが、ハッシュ関数は本来、衝突が十分に小さくなるように設計するものであり、適切な設計がなされていれば、秘密分散主キー１５０６の組み合わせが生まれることは稀であり、計算効率として問題にならない。
【００５７】
図１８から図２０を用いて、ＩＤ削除処理を行う際に、クライアント装置１０１、分散管理装置１０２、データ管理装置１０４＿１が実行する一連の処理の例について説明する。ここでは、ＩＤ”１２３４５６７８９”を主キーとし、ＩＤ”ＡＢＣＤＥＨＧＨＩ”をデータとするレコードを削除する例を示す。
【００５８】
図１８は、本実施例におけるＩＤ削除処理のシーケンス図の例である。最初にクライアント装置１０１は分散管理装置１０２にＩＤ削除要求メッセージ１８０１を送信する。ＩＤ削除要求メッセージ１８０１の例を図１９に示す。図１９は、本実施例におけるＩＤ削除処理の中で送受信されるメッセージの例である。ＩＤ削除要求メッセージ１８０１は主キー１９０１、データ１９０２のパラメータから構成されている。
【００５９】
図１８に戻って説明を続ける。次に分散管理装置１０２は主キー１９０１を用いて、ＩＤの変換処理を行う。そのため、ハッシュ値生成１８０２から可読化１８１０までは、ＩＤ変換処理に必要な工程であり、ＩＤ変換処理時のハッシュ値生成１４０２から可読化１４１０と同様である。この処理により、分散管理装置１０２はハッシュ値１９０３を生成し、図１５のデータ参照応答メッセージに示すように、秘密分散主キーおよび秘密分散データが格納されているレコードのアドレス１９０４を取得する。本実施例では、ハッシュ値１９０３”１５８４”などが生成され、アドレス１９０４”１３３２８９”を取得する。
【００６０】
次に分散管理装置１０２はデータ管理装置１０４＿１にデータ削除要求メッセージ１８１１を送信する。データ削除要求メッセージ１８１１の例を図１９に示す。データ削除要求メッセージ１８１１はハッシュ値１９０３、アドレス１９０４のパラメータから構成されている。
【００６１】
図１８に戻って説明を続ける。次にデータ管理装置１０４＿１はインデックス生成１８１２を行う。本処理は前記ＩＤ登録処理時のインデックス生成６０７と同様である。次にデータ管理装置１０４＿１は先頭アドレス取得１８１３を行う。本処理は前記ＩＤ変換処理時の先頭アドレス取得１４０６と同様である。次にデータ管理装置１０４＿１はデータ削除１８１４を行う。データ削除１８１４の例を図２０に示す。図２０は、本実施例におけるＩＤ削除時のデータ管理装置１０４＿１の記憶部４１３の例である。データ削除１８１２では、第一に、データ記憶領域４１７のアドレス１９０４が指すレコードを参照し、次アドレス２００３＿２を取得し、同レコードを削除する。第二に、データ記憶領域４１７の先頭アドレス２００１が指すレコードから順にリンク構造を辿り、与えられたアドレス１９０４とレコード中の次アドレス２００３＿２が一致するレコードを探索し、次アドレス２００３＿１を次アドレス２００３＿２に置き換える。第三に、与えられたアドレス１９０４が先頭アドレス２００１と一致した場合、先頭アドレス記憶領域４１６の先頭アドレス２００１を次アドレス２００３＿２に置き換える。図１８の例では、アドレス１９０４”１３３２８９”が与えられるため、次アドレス２００３＿２”２０９３８４”を取得して、当該レコードを削除する。第二に、リンク構造を先頭アドレス２００１”９０２３８”から辿り、次アドレス２００３＿１が”１３３２８９”となるレコードを探索し、同レコードの次アドレス２００３＿１を次アドレス２００３＿２”２０９３８４”に置き換える。第三の処理は、先頭アドレス２００１”９０２３８”は与えられたアドレス１９０４”１３３２８９”と一致しないため、行わない。
【００６２】
図１８に戻って説明を続ける。次にデータ管理装置１０４＿１は分散管理装置１０２にデータ削除応答メッセージ１８１５を送信する。データ削除応答メッセージ１８１５の例を図１９に示す。データ削除応答メッセージ１８１５はデータ削除結果１９０６のパラメータを含む。
【００６３】
図１８に戻って説明を続ける。次に分散管理装置１０２はクライアント装置１０１にＩＤ削除応答メッセージ１８１６を送信する。ＩＤ削除応答メッセージ１８１６の例を図１９に示す。ＩＤ削除応答メッセージ１８１６はＩＤ削除結果１９０５のパラメータを含む。
【００６４】
以上が、ＩＤ削除処理を行う際に、クライアント装置１０１、分散管理装置１０２、データ管理装置１０４＿１が実行する一連の処理である。
【００６５】
以上本発明の一実施例について説明した。上記実施例によれば、第三者による分散情報格納部への不正アクセスがあっても、主キーを取得することができないため、分散データから元のデータへの復元を困難にすることができる。したがって、主キーを知っている利用者だけがデータを参照可能となる。
【００６６】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００６７】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現しても良い。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現しても良い。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【００６８】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えても良い。
【符号の説明】
【００６９】
１０１・・・クライアント装置、１０２・・・分散管理装置、１０３・・・ネットワーク、１０４＿１、１０４＿ｎ・・・データ管理装置、２０１、３０１、４０１・・・制御部、３１５、４１３・・・記憶部、２０５・・・入出力部、２０６、３１８、４１８・・・送受信部、５０１・・・コンピュータ、５０２・・・ＣＰＵ、５０３・・・メモリ、５０４・・・外部記憶装置、５０５・・・送受信装置、５０６・・・出力装置、５０７・・・入力装置。
【図１】
2014130412.tif 000003
【図２】
2014130412.tif 000004
【図３】
2014130412.tif 000005
【図４】
2014130412.tif 000006
【図５】
2014130412.tif 000007
【図６】
2014130412.tif 000008
【図７】
2014130412.tif 000009
【図８】
2014130412.tif 000010
【図９】
2014130412.tif 000011
【図１０】
2014130412.tif 000012
【図１１】
2014130412.tif 000013
【図１２】
2014130412.tif 000014
【図１３】
2014130412.tif 000015
【図１４】
2014130412.tif 000016
【図１５】
2014130412.tif 000017
【図１６】
2014130412.tif 000018
【図１７】
2014130412.tif 000019
【図１８】
2014130412.tif 000020
【図１９】
2014130412.tif 000021
【図２０】
2014130412.tif 000022