(57)【特許請求の範囲】
【請求項１】
寄託者装置および複数の受託者装置を含む分散バックアップシステムであって、少なくとも寄託者装置と受託者装置との間で相互に通信可能とされ、
上記寄託者装置は、
バックアップの対象である所定のデータ（寄託データ）と、寄託データの寄託先である受託者装置を識別する受託者識別情報と、正当なバックアップデータの個数の閾値Ｔとを記憶する記憶手段と、
寄託データを用いて、寄託データと受託者装置に記憶されるバックアップデータとの同一性を検証可能な情報（タグ）を生成するタグ生成手段と、
寄託データを受託者装置に送信する第１対受託者装置送信手段と、
受託者装置から、受託者装置に記憶されるバックアップデータを用いて生成された、寄託データとバックアップデータとの同一性を検証可能な情報である検証用データを受信する対受託者装置受信手段と、
寄託データと受託者装置に記憶されるバックアップデータとの同一性を、タグおよび検証用データを用いて検証する検証手段と、
上記検証に成功したバックアップデータの個数と閾値Ｔとの差ｔを求める判定手段と、
上記検証に成功したバックアップデータの個数が閾値Ｔよりも少ない場合、寄託データを少なくともｔ個の受託者装置へ送信する第２対受託者装置送信手段とを備え、
各上記受託者装置は、
寄託者装置から送信された寄託データを受信する対寄託者装置受信手段と、
寄託データをバックアップデータとして記憶する記憶手段と、
記憶手段に記憶されるバックアップデータを用いて検証用データを生成する検証用データ生成手段と、
検証用データを寄託者装置に送信する対寄託者装置送信手段とを備えた
分散バックアップシステム。
【請求項２】
管理者装置、寄託者装置および複数の受託者装置を含む分散バックアップシステムであって、少なくとも、管理者装置と寄託者装置との間、管理者装置と受託者装置との間で相互に通信可能とされ、
上記寄託者装置は、
バックアップの対象である所定のデータ（寄託データ）を記憶する記憶手段と、
寄託データを用いて、寄託データと受託者装置に記憶されるバックアップデータとの同一性を検証可能な情報（タグ）を生成するタグ生成手段と、
寄託データとタグを管理者装置に送信する対管理者装置送信手段とを備え、
上記管理者装置は、
寄託者装置から送信された、寄託データおよびタグを受信する対寄託者装置受信手段と、
寄託データと、タグと、寄託データの寄託先である受託者装置を識別する受託者識別情報と、正当なバックアップデータの個数の閾値Ｔとを記憶する記憶手段と、
寄託データを受託者装置に送信する第１対受託者装置送信手段と、
受託者装置から、受託者装置に記憶されるバックアップデータを用いて生成された、寄託データとバックアップデータとの同一性を検証可能な情報である検証用データを受信する対受託者装置受信手段と、
寄託データと受託者装置に記憶されるバックアップデータとの同一性を、タグおよび検証用データを用いて検証する検証手段と、
上記検証に成功したバックアップデータの個数と閾値Ｔとの差ｔを求める判定手段と、
上記検証に成功したバックアップデータの個数が閾値Ｔよりも少ない場合、寄託データを少なくともｔ個の受託者装置へ送信する第２対受託者装置送信手段とを備え、
各上記受託者装置は、
管理者装置から送信された寄託データを受信する対管理者装置受信手段と、
寄託データをバックアップデータとして記憶する記憶手段と、
記憶手段に記憶されるバックアップデータを用いて、寄託データとバックアップデータとの同一性を検証可能な情報である検証用データを生成する検証用データ生成手段と、
検証用データを管理者装置に送信する対管理者装置送信手段とを備えた
分散バックアップシステム。
【請求項３】
分散バックアップ方法であって、
寄託者装置の記憶手段には、バックアップの対象である所定のデータ（寄託データ）と、寄託データの寄託先である受託者装置を識別する受託者識別情報と、正当なバックアップデータの個数の閾値Ｔとが記憶されており、
寄託者装置のタグ生成手段が、寄託データを用いて生成された、寄託データと受託者装置に記憶されるバックアップデータとの同一性を検証可能な情報（タグ）を生成するタグ生成ステップと、
寄託者装置の第１対受託者装置送信手段が、寄託データを受託者装置に送信する第１対受託者装置送信ステップと、
受託者装置の対寄託者装置受信手段が、寄託者装置から送信された寄託データを受信する対寄託者装置受信ステップと、
受託者装置の記憶手段が、寄託データをバックアップデータとして記憶する記憶ステップと、
受託者装置の検証用データ生成手段が、受託者装置の記憶手段に記憶されるバックアップデータを用いて、寄託データとバックアップデータとの同一性を検証可能な情報である検証用データを生成する検証用データ生成ステップと、
受託者装置の対寄託者装置送信手段が、検証用データを寄託者装置に送信する対寄託者装置送信ステップと、
寄託者装置の対受託者装置受信手段が、受託者装置から検証用データを受信する対受託者装置受信ステップと、
寄託者装置の検証手段が、寄託データと受託者装置に記憶されるバックアップデータとの同一性を、タグおよび検証用データを用いて検証する検証ステップと、
寄託者装置の判定手段が、上記検証に成功したバックアップデータの個数と閾値Ｔとの差ｔを求める判定ステップと、
寄託者装置の第２対受託者装置送信手段が、上記検証に成功したバックアップデータの個数が閾値Ｔよりも少ない場合、寄託データを少なくともｔ個の受託者装置へ送信する第２対受託者装置送信ステップとを有する
分散バックアップ方法。
【請求項４】
分散バックアップ方法であって、
寄託者装置の記憶手段には、バックアップの対象である所定のデータ（寄託データ）が記憶されており、
管理者装置の記憶手段には、正当なバックアップデータの個数の閾値Ｔが記憶されており、
寄託者装置のタグ生成手段が、寄託データを用いて、寄託データと受託者装置に記憶されるバックアップデータとの同一性を検証可能な情報（タグ）を生成するタグ生成ステップと、
寄託者装置の対管理者装置送信手段が、寄託データとタグを管理者装置に送信する対管理者装置送信ステップと、
管理者装置の対寄託者装置受信手段が、寄託者装置から送信された、寄託データおよびタグを受信する対寄託者装置受信ステップと、
管理者装置の記憶手段が、寄託データと、タグと、寄託データの寄託先である受託者装置を識別する受託者識別情報とを記憶する記憶ステップと、
管理者装置の第１対受託者装置送信手段が、寄託データを受託者装置に送信する第１対受託者装置送信ステップと、
受託者装置の対管理者装置受信手段が、管理者装置から送信された寄託データを受信する対管理者装置受信ステップと、
受託者装置の記憶手段が、寄託データをバックアップデータとして記憶する記憶ステップと、
受託者装置の検証用データ生成手段が、記憶手段に記憶されるバックアップデータを用いて、寄託データとバックアップデータとの同一性を検証可能な情報である検証用データを生成する検証用データ生成ステップと、
受託者装置の対管理者装置送信手段が、検証用データを管理者装置に送信する対管理者装置送信ステップと、
管理者装置の対受託者装置受信手段が、受託者装置から検証用データを受信する対受託者装置受信ステップと、
管理者装置の検証手段が、寄託データと受託者装置に記憶されるバックアップデータとの同一性を、タグおよび検証用データを用いて検証する検証ステップと、
管理者装置の判定手段が、上記検証に成功したバックアップデータの個数と閾値Ｔとの差ｔを求める判定ステップと、
管理者装置の第２対受託者装置送信手段が、上記検証に成功したバックアップデータの個数が閾値Ｔよりも少ない場合、寄託データを少なくともｔ個の受託者装置へ送信する第２対受託者装置送信ステップとを有する
分散バックアップ方法。
【請求項５】
寄託者装置および複数の受託者装置で構成される分散バックアップシステムにおける寄託者装置であって、
バックアップの対象である所定のデータ（寄託データ）と、寄託データの寄託先である受託者装置を識別する受託者識別情報と、正当なバックアップデータの個数の閾値Ｔとを記憶する記憶手段と、
寄託データを用いて、寄託データと受託者装置に記憶されるバックアップデータとの同一性を検証可能な情報（タグ）を生成するタグ生成手段と、
寄託データを受託者装置に送信する第１対受託者装置送信手段と、
受託者装置から、受託者装置に記憶されるバックアップデータを用いて生成された、寄託データとバックアップデータとの同一性を検証可能な情報である検証用データを受信する対受託者装置受信手段と、
寄託データと受託者装置に記憶されるバックアップデータとの同一性を、タグおよび検証用データを用いて検証する検証手段と、
上記検証に成功したバックアップデータの個数と閾値Ｔとの差ｔを求める判定手段と、
上記検証に成功したバックアップデータの個数が閾値Ｔよりも少ない場合、寄託データを少なくともｔ個の受託者装置へ送信する第２対受託者装置送信手段と
を備えた寄託者装置。
【請求項６】
管理者装置、寄託者装置および複数の受託者装置で構成される分散バックアップシステムにおける管理者装置であって、
寄託者装置から送信された、バックアップの対象である所定のデータ（寄託データ）および、寄託データと受託者装置に記憶されるバックアップデータとの同一性を検証可能な情報（タグ）を受信する対寄託者装置受信手段と、
寄託データと、タグと、寄託データの寄託先である受託者装置を識別する受託者識別情報と、正当なバックアップデータの個数の閾値Ｔとを記憶する記憶手段と、
寄託データを受託者装置に送信する第１対受託者装置送信手段と、
受託者装置から、受託者装置に記憶されるバックアップデータを用いて生成された、寄託データとバックアップデータとの同一性を検証可能な情報である検証用データを受信する対受託者装置受信手段と、
寄託データと受託者装置に記憶されるバックアップデータとの同一性を、タグおよび検証用データを用いて検証する検証手段と、
上記検証に成功したバックアップデータの個数と閾値Ｔとの差ｔを求める判定手段と、
上記検証に成功したバックアップデータの個数が閾値Ｔよりも少ない場合、寄託データを少なくともｔ個の受託者装置へ送信する第２対受託者装置送信手段と
を備えた管理者装置。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データをユーザ間で分散バックアップする技術に関する。
【背景技術】
【０００２】
バックアップシステムがバックアップシステムとしての機能を果たすためには、ハードディスクの故障などハードウェア的な障害やコンピュータウイルスなどのソフトウェア的な障害などを考慮しながら、バックアップ情報を管理しなくてはならない。
【０００３】
このため、バックアップシステムを個々のコンピュータごとに用意することはコストの面から得策ではない。この不利益を解決するために、ＮＤＭＰ（network data manegement protocol）を使うバックアップサーバ（ＮＡＳ（network attached storage）サーバ）が存在し、バックアップ用のソフトウェアをネットワーク上で共有することで、個々のコンピュータごとに用意しなくてはならなかったバックアップシステムを一つに集約している。このためで、一台あたりのバックアップの管理コストを低減させることが出来る。
【０００４】
しかし、ＮＤＭＰによるバックアップシステムのようにバックアップシステムを一箇所で集中管理している構成では、大規模災害などによるシステムごとの破壊が起こった場合に回復困難な損害が生じる。このような虞を回避するために、例えば非特許文献１に示すＤＩＢＳ（Distributed Internet Backup System）のような、データを分散させてバックアップする分散型のバックアップシステムが存在する。
【非特許文献１】Emin Martinian、"Distributed Internet Backup System"、インターネット〈URL:http://www.mit.edu/~emin/source_code/dibs/index.html〉［平成２０年１月１５日検索］
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ＮＤＭＰによるバックアップシステムは、バックアップシステムを一箇所で集中管理している構成であるから管理が容易であるが、障害に対するリスク回避に弱点がある。逆にＤＩＢＳは分散管理を行う構成であるから耐障害性に優れているが、拠点ごとの管理に手間がかかる。
【０００６】
ＮＤＭＰによるバックアップシステムの弱点を改善しようとした場合、自らの管理下に置かれている全てのＮＡＳサーバについて、設置場所を分散させることによって問題を解決しようとすることも考えられるが、現実的には、その場所に実際に行かないと解決できない問題が発生することもあり、管理コストの面で問題を惹起する。
【０００７】
このような事情に鑑みて、本発明は、バックアップデータの正当性の検証が可能な分散型バックアップ技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の分散バックアップシステムは、寄託者装置および複数の受託者装置を含む構成であって、少なくとも寄託者装置と受託者装置との間で相互に通信可能とされ、寄託者装置は、バックアップの対象である所定のデータ（寄託データ）と、寄託データの寄託先である受託者装置を識別する受託者識別情報と、正当なバックアップデータの個数の閾値Ｔとを記憶する記憶手段と、寄託データを用いて、寄託データと受託者装置に記憶されるバックアップデータとの同一性を検証可能な情報（タグ）を生成するタグ生成手段と、寄託データを受託者装置に送信する第１対受託者装置送信手段と、受託者装置から、受託者装置に記憶されるバックアップデータを用いて生成された、寄託データとバックアップデータとの同一性を検証可能な情報である検証用データを受信する対受託者装置受信手段と、寄託データと受託者装置に記憶されるバックアップデータとの同一性を、タグおよび検証用データを用いて検証する検証手段と、この検証に成功したバックアップデータの個数と閾値Ｔとの差ｔを求める判定手段と、上記検証に成功したバックアップデータの個数が閾値Ｔよりも少ない場合、寄託データを少なくともｔ個の受託者装置へ送信する第２対受託者装置送信手段とを備えていて、各受託者装置は、寄託者装置から送信された寄託データを受信する対寄託者装置受信手段と、寄託データをバックアップデータとして記憶する記憶手段と、記憶手段に記憶されるバックアップデータを用いて検証用データを生成する検証用データ生成手段と、検証用データを寄託者装置に送信する対寄託者装置送信手段とを備えている。
【０００９】
あるいは、本発明の分散バックアップシステムは、管理者装置、寄託者装置および複数の受託者装置を含む構成であって、少なくとも、管理者装置と寄託者装置との間、管理者装置と受託者装置との間で相互に通信可能とされ、寄託者装置は、バックアップの対象である所定のデータ（寄託データ）を記憶する記憶手段と、寄託データを用いて、寄託データと受託者装置に記憶されるバックアップデータとの同一性を検証可能な情報（タグ）を生成するタグ生成手段と、寄託データとタグを管理者装置に送信する対管理者装置送信手段とを備えていて、管理者装置は、寄託者装置から送信された、寄託データおよびタグを受信する対寄託者装置受信手段と、寄託データと、タグと、寄託データの寄託先である受託者装置を識別する受託者識別情報と、正当なバックアップデータの個数の閾値Ｔとを記憶する記憶手段と、寄託データを受託者装置に送信する第１対受託者装置送信手段と、受託者装置から、受託者装置に記憶されるバックアップデータを用いて生成された、寄託データとバックアップデータとの同一性を検証可能な情報である検証用データを受信する対受託者装置受信手段と、寄託データと受託者装置に記憶されるバックアップデータとの同一性を、タグおよび検証用データを用いて検証する検証手段と、この検証に成功したバックアップデータの個数と閾値Ｔとの差ｔを求める判定手段と、上記検証に成功したバックアップデータの個数が閾値Ｔよりも少ない場合、寄託データを少なくともｔ個の受託者装置へ送信する第２対受託者装置送信手段とを備えていて、各受託者装置は、管理者装置から送信された寄託データを受信する対管理者装置受信手段と、寄託データをバックアップデータとして記憶する記憶手段と、記憶手段に記憶されるバックアップデータを用いて、寄託データとバックアップデータとの同一性を検証可能な情報である検証用データを生成する検証用データ生成手段と、検証用データを管理者装置に送信する対管理者装置送信手段とを備えている。
【００１０】
また、本発明の分散バックアップ方法は、寄託者装置の記憶手段には、バックアップの対象である所定のデータ（寄託データ）と、寄託データの寄託先である受託者装置を識別する受託者識別情報と、正当なバックアップデータの個数の閾値Ｔとが記憶されているとして、寄託者装置のタグ生成手段が、寄託データを用いて生成された、寄託データと受託者装置に記憶されるバックアップデータとの同一性を検証可能な情報（タグ）を生成するタグ生成ステップと、寄託者装置の第１対受託者装置送信手段が、寄託データを受託者装置に送信する第１対受託者装置送信ステップと、受託者装置の対寄託者装置受信手段が、寄託者装置から送信された寄託データを受信する対寄託者装置受信ステップと、受託者装置の記憶手段が、寄託データをバックアップデータとして記憶する記憶ステップと、受託者装置の検証用データ生成手段が、受託者装置の記憶手段に記憶されるバックアップデータを用いて、寄託データとバックアップデータとの同一性を検証可能な情報である検証用データを生成する検証用データ生成ステップと、受託者装置の対寄託者装置送信手段が、検証用データを寄託者装置に送信する対寄託者装置送信ステップと、寄託者装置の対受託者装置受信手段が、受託者装置から検証用データを受信する対受託者装置受信ステップと、寄託者装置の検証手段が、寄託データと受託者装置に記憶されるバックアップデータとの同一性を、タグおよび検証用データを用いて検証する検証ステップと、寄託者装置の判定手段が、上記検証に成功したバックアップデータの個数と閾値Ｔとの差ｔを求める判定ステップと、寄託者装置の第２対受託者装置送信手段が、上記検証に成功したバックアップデータの個数が閾値Ｔよりも少ない場合、寄託データを少なくともｔ個の受託者装置へ送信する第２対受託者装置送信ステップとを有する。
【００１１】
あるいは、本発明の分散バックアップ方法は、寄託者装置の記憶手段には、バックアップの対象である所定のデータ（寄託データ）が記憶されており、管理者装置の記憶手段には、正当なバックアップデータの個数の閾値Ｔが記憶されているとして、寄託者装置のタグ生成手段が、寄託データを用いて、寄託データと受託者装置に記憶されるバックアップデータとの同一性を検証可能な情報（タグ）を生成するタグ生成ステップと、寄託者装置の対管理者装置送信手段が、寄託データとタグを管理者装置に送信する対管理者装置送信ステップと、管理者装置の対寄託者装置受信手段が、寄託者装置から送信された、寄託データおよびタグを受信する対寄託者装置受信ステップと、管理者装置の記憶手段が、寄託データと、タグと、寄託データの寄託先である受託者装置を識別する受託者識別情報とを記憶する記憶ステップと、管理者装置の第１対受託者装置送信手段が、寄託データを受託者装置に送信する第１対受託者装置送信ステップと、受託者装置の対管理者装置受信手段が、管理者装置から送信された寄託データを受信する対管理者装置受信ステップと、受託者装置の記憶手段が、寄託データをバックアップデータとして記憶する記憶ステップと、受託者装置の検証用データ生成手段が、記憶手段に記憶されるバックアップデータを用いて、寄託データとバックアップデータとの同一性を検証可能な情報である検証用データを生成する検証用データ生成ステップと、受託者装置の対管理者装置送信手段が、検証用データを管理者装置に送信する対管理者装置送信ステップと、管理者装置の対受託者装置受信手段が、受託者装置から検証用データを受信する対受託者装置受信ステップと、管理者装置の検証手段が、寄託データと受託者装置に記憶されるバックアップデータとの同一性を、タグおよび検証用データを用いて検証する検証ステップと、管理者装置の判定手段が、上記検証に成功したバックアップデータの個数と閾値Ｔとの差ｔを求める判定ステップと、管理者装置の第２対受託者装置送信手段が、上記検証に成功したバックアップデータの個数が閾値Ｔよりも少ない場合、寄託データを少なくともｔ個の受託者装置へ送信する第２対受託者装置送信ステップとを有する。
【発明の効果】
【００１２】
本発明によれば、寄託データを用いて生成したタグと、受託者装置が記憶するいバックアップデータを用いて生成された検証用データとを用いて、両者の同一性を検証することで、バックアップデータの正当性の検証が可能である。また、受託者装置と寄託者装置／管理者装置との相互通信によりバックアップデータの正当性の検証が可能であるから管理コストが少なくて済む。
【発明を実施するための最良の形態】
【００１３】
《実施形態１》
実施形態１における分散バックアップシステムは、当該システムを管理する管理者のコンピュータである管理者装置、データ（以下、「寄託データ」と云う。）の寄託者であるユーザのコンピュータである寄託者装置、受託した寄託データをバックアップデータとしてストレージに保持することとなる受託者のコンピュータである受託者装置から構成される。なお、「寄託者装置」、「受託者装置」の文言は、或る寄託データＸの立場から見た言葉遣いであって、ユーザの使用する装置（コンピュータ）が寄託者装置にも受託者装置にもなりえることに留意しなければならない。
【００１４】
そこで、管理者装置、寄託者装置、受託者装置について説明してから、実施形態１における分散バックアップシステムのシステム構成を説明する。その上で、当該システムにおける分散バックアップ方法の処理手順について叙述的に説明する。
【００１５】
［分散バックアップシステム］
＜寄託者装置＞
実施形態１における寄託者装置について説明する。
図１は、実施形態１に係わる寄託者装置（２）のハードウェア構成を例示した構成ブロック図である。
【００１６】
図１に例示するように、寄託者装置（２）は、キーボードやポインティングデバイスなどの入力装置が接続可能な入力部（２１）、液晶ディスプレイなどの出力装置が接続可能な出力部（２２）、寄託者装置（２）外部に通信可能な通信装置（例えば通信ケーブル）が接続可能な通信部（２３）、ＣＰＵ（Central Processing Unit）（２４）〔キャッシュメモリなどを備えていてもよい。〕、メモリであるＲＡＭ（２５）やＲＯＭ（２６）、ハードディスクである外部記憶装置（２７）並びにこれらの入力部（２１）、出力部（２２）、通信部（２３）、ＣＰＵ（２４）、ＲＡＭ（２５）、ＲＯＭ（２６）、外部記憶装置（２７）間のデータのやり取りが可能なように接続するバス（２８）を有している。また必要に応じて、寄託者装置（２）に、ＣＤ−ＲＯＭなどの記憶媒体を読み書きできる装置（ドライブ）などを設けるとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
【００１７】
寄託者装置（２）の外部記憶装置（２７）には、管理者装置（１）が寄託データとバックアップデータとの同一性に関わる検証に用いる情報を寄託データから生成するためのプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている（外部記憶装置に限らず、例えば読み出し専用記憶装置であるＲＯＭにプログラムやデータなどを記憶させておくなどでもよい。）。また、このプログラムの処理によって得られるデータなどは、ＲＡＭや外部記憶装置などに適宜に記憶される。以下、演算結果やその格納領域のアドレスなどを記憶するＲＡＭやレジスタなどの記憶装置を単に「記憶部」と呼ぶことにする。
【００１８】
より具体的には、寄託者装置（２）の外部記憶装置（２７）〔あるいはＲＯＭなど〕には、寄託データＸが寄託者装置（２）の外部記憶装置（２７）に記憶されているとする。また、寄託データＸを用いて、寄託データＸと受託者装置に記憶されるバックアップデータとの同一性を検証可能な情報（タグ）を生成するためのプログラムなどが記憶される。その他、このプログラムに基づく処理を制御するための制御プログラムも適宜に保存しておく。
【００１９】
本明細書において寄託データＸは、説明の便宜上、ビット列からなるものとする。特に、管理者装置、寄託者装置、受託者装置をコンピュータによって実現する場合には、いかなる情報（例えば人間が意味理解可能なテキスト形式の情報などがある。）であっても、２進数表記されるビット列として外部記憶装置〔あるいはＲＯＭなど〕に記憶されることはいうまでもない。また、寄託データＸは、必要に応じて公然と知られた方法で暗号化されたデータとしてもよい。
【００２０】
寄託者装置（２）では、外部記憶装置（２７）〔あるいはＲＯＭなど〕に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてＲＡＭ（２５）に読み込まれて、ＣＰＵ（２４）で解釈実行・処理される。その結果、ＣＰＵ（２４）が所定の機能（タグ生成部、制御部）を実現する。
【００２１】
＜管理者装置＞
実施形態１における管理者装置について説明する。
図２は、実施形態１に係わる管理者装置（１）のハードウェア構成を例示した構成ブロック図である。
【００２２】
図２に例示するように、管理者装置（１）は、キーボードやポインティングデバイスなどの入力装置が接続可能な入力部（１１）、液晶ディスプレイなどの出力装置が接続可能な出力部（１２）、管理者装置（１）外部に通信可能な通信装置（例えば通信ケーブル）が接続可能な通信部（１３）、ＣＰＵ（Central Processing Unit）（１４）〔キャッシュメモリなどを備えていてもよい。〕、メモリであるＲＡＭ（１５）やＲＯＭ（１６）、ハードディスクである外部記憶装置（１７）並びにこれらの入力部（１１）、出力部（１２）、通信部（１３）、ＣＰＵ（１４）、ＲＡＭ（１５）、ＲＯＭ（１６）、外部記憶装置（１７）間のデータのやり取りが可能なように接続するバス（１８）を有している。また必要に応じて、管理者装置（１）に、ＣＤ−ＲＯＭなどの記憶媒体を読み書きできる装置（ドライブ）などを設けるとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
【００２３】
管理者装置（１）の外部記憶装置（１７）には、受託者装置が寄託データを保持していることを検証するのに必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶される（外部記憶装置に限らず、例えば読み出し専用記憶装置であるＲＯＭにプログラムやデータなどを記憶させておくなどでもよい。）。また、このプログラムの処理によって得られるデータなどは、ＲＡＭや外部記憶装置などに適宜に記憶される。以下、演算結果やその格納領域のアドレスなどを記憶するＲＡＭやレジスタなどの記憶装置を単に「記憶部」と呼ぶことにする。
【００２４】
より具体的には、管理者装置（１）の外部記憶装置（１７）には、寄託者装置（２）から受信したタグと、受託者装置がバックアップデータを用いて生成した、寄託データとバックアップデータとの同一性を検証可能な情報である検証用データとを用いて検証するためのプログラム、検証に成功したバックアップデータの個数と閾値Ｔとの差ｔを求めるためのプログラムなどが記憶されている。その他、これらのプログラムに基づく処理を制御するための制御プログラムも適宜に保存しておく。
【００２５】
管理者装置（１）では、外部記憶装置（１７）〔あるいはＲＯＭなど〕に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてＲＡＭ（１５）に読み込まれて、ＣＰＵ（１４）で解釈実行・処理される。その結果、ＣＰＵ（１４）が所定の機能（検証部、判定部、制御部）を実現する。
【００２６】
＜受託者装置＞
実施形態１における受託者装置について説明する。
図３は、実施形態１に係わる受託者装置（３）のハードウェア構成を例示した構成ブロック図である。
【００２７】
図３に例示するように、受託者装置（３）は、キーボードやポインティングデバイスなどの入力装置が接続可能な入力部（３１）、液晶ディスプレイなどの出力装置が接続可能な出力部（３２）、受託者装置（３）外部に通信可能な通信装置（例えば通信ケーブル）が接続可能な通信部（３３）、ＣＰＵ（Central Processing Unit）（３４）〔キャッシュメモリなどを備えていてもよい。〕、メモリであるＲＡＭ（３５）やＲＯＭ（３６）、ハードディスクである外部記憶装置（３７）並びにこれらの入力部（３１）、出力部（３２）、通信部（３３）、ＣＰＵ（３４）、ＲＡＭ（３５）、ＲＯＭ（３６）、外部記憶装置（３７）間のデータのやり取りが可能なように接続するバス（３８）を有している。また必要に応じて、受託者装置（３）に、ＣＤ−ＲＯＭなどの記憶媒体を読み書きできる装置（ドライブ）などを設けるとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
【００２８】
受託者装置（３）の外部記憶装置（３７）には、管理者装置（１）が検証に用いる情報を生成するためのプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている（外部記憶装置に限らず、例えば読み出し専用記憶装置であるＲＯＭにプログラムやデータなどを記憶させておくなどでもよい。）。また、このプログラムの処理によって得られるデータなどは、ＲＡＭや外部記憶装置などに適宜に記憶される。以下、演算結果やその格納領域のアドレスなどを記憶するＲＡＭやレジスタなどの記憶装置を単に「記憶部」と呼ぶことにする。
【００２９】
より具体的には、受託者装置（３）の外部記憶装置（３７）〔あるいはＲＯＭなど〕には、寄託データとバックアップデータとの同一性を検証可能な情報である検証用データをバックアップデータを用いて生成するためのプログラムなどが記憶されている。その他、このプログラムに基づく処理を制御するための制御プログラムも適宜に記憶しておく。
【００３０】
受託者装置（３）では、外部記憶装置（３７）〔あるいはＲＯＭなど〕に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてＲＡＭ（３５）に読み込まれて、ＣＰＵ（３４）で解釈実行・処理される。その結果、ＣＰＵ（３４）が所定の機能（検証用データ生成部、制御部）を実現する。
【００３１】
＜システム構成＞
実施形態１における分散バックアップシステム（５）のシステム構成について説明する。
図４は、分散バックアップシステム（５）のシステム構成を示す図である。
【００３２】
実施形態１では、１個の管理者装置（１）と、複数の寄託者装置（２）と、複数の受託者装置（３）とが、インターネットなどの通信ネットワーク（６）を介して相互に通信可能に接続されている。
【００３３】
また、本発明では分散バックアップの性質上、寄託者装置（２）は複数存在しえるが、説明の便宜から、寄託者装置（２）は１個とする〔図４は、この場合を表している。〕。つまり、或る寄託データＸの立場からすると、その本来の所有者である寄託者装置は１個であるから、この意味で寄託者装置（２）を１個として説明する。
【００３４】
以下の説明では、複数の受託者装置を区別するために、ｆ個の受託者装置をハイフン（hyphen）付きの符号（３−１）、（３−２）、・・・、（３−ｆ）をもって表記する。また、同様にして、各装置の機能部もハイフン付きの符号を当てて区別する。
【００３５】
[分散バックアップ方法の処理手順]
続いて、分散バックアップシステム（５）における分散バックアップ方法の処理手順について叙述的に説明する。
実施形態１は、基本的な実施形態の一つを示しており、本発明の趣旨を逸脱するものでないならば、種々の実施の形態に拡張可能である。以下、図５および図６を参照しながら説明する。なお、各装置の機能ブロック図を示す図では、同じ符号が与えられた機能部が示されているが、各別のものを示すものではなく、説明の便宜から各別に示しているに過ぎない。このことは各実施形態における図でも同様である。
【００３６】
＜準備＞
寄託者装置（２）を識別する情報であるＩＤとこれに対応する認証子（パスワード、合言葉などの情報、もしくはハードウェアトークンやＩＣカードなどの物理的な所有権、もしくは指紋、虹彩といった生体情報などの認証情報などを例示できる。）が、予め管理者装置（１）の記憶部に登録されているとする。
【００３７】
＜寄託手続＞
寄託者装置（２）のタグ生成部（２０１）は、寄託データＸを用いて、寄託データＸと受託者装置（３−１、３−２、・・・、３−ｆ）に記憶されるバックアップデータとの同一性を検証可能な情報（タグ）Ｙを生成する（ステップＳ１）。
【００３８】
ここで、タグＹは、寄託データＸを高い確率で一意に特定できるものである。また、タグＹは、寄託データＸよりもデータ量が小さいデータであることが望ましい。
【００３９】
タグＹの生成アルゴリズムに限定は無いが、ここに一例を説明する。
[タグの生成アルゴリズム]
〈１〉ｐ，ｑとして（ｐ−１）／２，（ｑ−１）／２も素数であるような素数をランダムに選択する。
〈２〉Ｎ＝ｐ×ｑを計算する。
〈３〉ｇ∈｛（Ｚ／ＮＺ）＊｜（ａ／Ｎ）＝１，ａ≠１，ａとＮは互いに素｝を選択する（ｇ＝２でもよい。）。（Ｚ／ＮＺ）＊は剰余環である。記号（・）はLegendre記号である。
〈４〉Ｗ＝Ｘ（mod ＬＣＭ（ｐ−１，ｑ−１））を計算する。
〈５〉Ｙ＝ｇＷ（mod Ｎ）を計算する。
【００４０】
タグ生成アルゴリズム〈１〉の素数選択は寄託データごとに行ってもよいし、ユーザごとに行ってもよい。
【００４１】
タグ生成アルゴリズム〈２〉の法Ｎの算出について、説明を加える。
このアルゴリズムでは、法となるＮは、素数であることが判定可能な数を除く自然数であって、素因数分解困難な数であればよい。Ｎが素数である場合、Ｎを法とした剰余環（Ｚ／ＮＺ）＊の乗法についての位数は、Ｎ−１の計算によって容易に求めることができる。よって、素数であることが判定可能な数を定数Ｎとしないことが望ましい。また、Ｎが合成数（但し、Ｎ＝ｐ・ｑであり、ｐ，ｑは十分大きな素数）である場合、Ｎを法とした剰余環（Ｚ／ＮＺ）＊は、乗法に関して位数ｐ・ｑ−ｐ−ｑ＋１の巡回群となる。よって、このＮの素因数分解が容易なのであれば、Ｎ＝ｐ・ｑを満たすｐ，ｑから、Ｎを法とした剰余環（Ｚ／ＮＺ）＊の乗法に関しての位数を求めることができる。逆に、この位数が分かり、冪乗剰余演算結果を衝突させることができるのであれば、それらの情報を用いてＮの素因数分解ができることも知られている（例えば、G. Miller. Riemanann's hypothesis and tests for primality. Journal of Computer Systems Science, Vol. 13, pages 300-317,1976.など参照）。すなわち、Ｎが合成数である場合、上記位数を求めることは、Ｎの素因数分解を行う以上に困難である（Ｎが２つの素数の積からなる合成数である場合、これらの困難性は同等である。）。
【００４２】
よって、素数であることが判定可能な数を除く自然数であって、素因数分解困難な数をＮとすることが望ましい。なお、「素数であることが判定可能な数」とは、本願出願時に公然知られた素数判定法を用いることによって「素数であること」が判定可能な数、及び、本願出願時に「素数であること」が公然知られた数を意味する。
【００４３】
また、Ｎは、３つ以上の素数の積からなる合成数であってもよい。この場合、たとえ攻撃者がＮを素因数分解できたとしても、この攻撃者は、Ｎを法とした剰余環（Ｚ／ＮＺ）＊の乗法に関しての位数を容易に算出できないからである。なお、演算効率の面からは、素数であることが判定可能な数を除く自然数であって、素因数分解困難な数をＮ（但し、Ｎが合成数の場合、Ｎ＝ｐ・ｑであり、ｐ，ｑは十分大きな素数）とすることが望ましい。
【００４４】
また、素因数分解が困難な合成数Ｎとして、２のべき乗に近い数、例えば２ｍ−１の形で表せる合成数Ｎを生成するようにしてもよい。このような合成数Ｎにおいては、合成数Ｎによる剰余計算は、例えば２ｍを１に置換することで計算ができ、このような演算は通常のＣＰＵにおいてシフト演算またはビットの並び替えで実現することができる。従って高速な剰余演算を実現することができる。そのような合成数Ｎを確率的アルゴリズムによって効率的に生成することもできるし、素因数分解が困難な数の表は公知であるから、そのような表から２のべき乗に近い合成数Ｎを選択するようにしてもよい。
【００４５】
また、ｇは、Ｎと互いに素であることが望ましい。ｇがＮと互いに素でなく、その旨の情報が攻撃者に知られた場合、この攻撃者は、ｇの情報を、Ｎを素因数分解するための情報として利用できる場合があるからである（例えば、ｇの約数がＮの約数となるか否かを試していく処理等が考えられる。）。
【００４６】
寄託者装置（２）の制御部（２０３）は、寄託者装置（２）の通信部（２３）を制御して、寄託データＸとタグＹを管理者装置（１）に送信する（ステップＳ２）。なお、この処理の後、寄託者装置（２）は寄託データＸとタグＹをその記憶部から消去してもよい。
【００４７】
管理者装置（１）の制御部（１０３）は、管理者装置（１）の通信部（１３）を介して、寄託者装置（２）から送信された寄託データＸとタグＹを受信する（ステップＳ３）。
【００４８】
管理者装置（１）の制御部（１０３）により、管理者装置（１）の記憶部に、＜準備＞で登録された寄託者装置（２）のＩＤに対応付けて、寄託データＸとタグＹが記憶される。さらに、管理者装置（１）の制御部（１０３）により選定された受託者装置（３−１、・・・、３−ｄ）の各ＩＤ（受託者識別情報）も、寄託者装置（２）のＩＤに対応付けられて管理者装置（１）の記憶部に記憶される（ステップＳ４）。なお、この実施形態１では、正当なバックアップデータの個数の閾値Ｔも寄託者装置（２）のＩＤに対応付けられて管理者装置（１）の記憶部に記憶されているとする。閾値Ｔは分散バックアップシステム（５）に固有（寄託者装置に共通）の値としてもよいし、寄託者装置（２）に固有の値または寄託データＸごとに定められた値でもよい。閾値Ｔが寄託者装置（２）で定められる場合には、＜準備＞の段階あるいはステップＳ２、Ｓ３の各処理にて閾値Ｔも送受信される。さらに、寄託データＸの送受信時刻も寄託者装置（２）のＩＤに対応付けられて管理者装置（１）の記憶部に記憶されているとしてもよい。
【００４９】
管理者装置（１）の制御部（１０３）は、管理者装置（１）の通信部（１３）を制御して、寄託データＸを選定された受託者装置（３−１、・・・、３−ｄ）に送信する（ステップＳ５）。なお、この処理の後、管理者装置（１）は寄託データＸをその記憶部から消去してもよい。
【００５０】
各受託者装置（３−１、・・・、３−ｄ）の制御部（３０３−１、・・・、３０３−ｄ）はそれぞれ、自身の通信部（３３−１、・・・、３３−ｄ）を介して、管理者装置（１）から送信された寄託データＸを受信する（ステップＳ６）。
【００５１】
各受託者装置（３−１、・・・、３−ｄ）の制御部（３０３−１、・・・、３０３−ｄ）により、各受託者装置（３−１、・・・、３−ｄ）の記憶部に、寄託データＸがバックアップデータとして記憶される（ステップＳ７）。このようにして、通常は複数の受託者装置に寄託データＸが分散バックアップされる。
【００５２】
＜更新手続＞
ステップＳ１〜Ｓ７の各処理は、複数の寄託データに応じて定期ないし不定期に実施される。また、ひとたび寄託した寄託データＸを再び分散バックアップすることもできる。ただし、管理者装置（１）は、寄託者装置（２）から受信した寄託データＸと以前に受信した寄託データＸと比較し、１ｂｉｔたりとも変化していない場合は、寄託データＸの送受信時刻のみを最新のものに更新し、他の処理を行わなくてもよい。また、変更部分が現在記憶されている寄託データＸに対して小さい場合は、この変更部分ΔＸを追加する処理を、上述した処理に則して行ってもよい。なお、この更新手続は任意の処理である。
【００５３】
＜検証手続＞
管理者装置（１）は、寄託者装置（２）の要求に応じて、あるいは、何かしらの事故やトラブルが起きたときに、あるいは、定期的な時間ごとのように、定期ないし不定期に、寄託データＸの寄託先である各受託者装置（３−１、・・・、３−ｄ）のバックアップデータが寄託データＸのバックアップデータとして正しく記憶されているかを検証する。
【００５４】
管理者装置（１）から検証開始が通知されると、各受託者装置（３−１、・・・、３−ｄ）の検証用データ生成部（３０１−１、・・・、３０１−ｄ）が、自身の記憶部に記憶されるバックアップデータを用いて、寄託データＸとバックアップデータとの同一性を検証可能な情報である検証用データを生成する（ステップＳ８）。
【００５５】
各受託者装置（３−１、・・・、３−ｄ）の制御部（３０３−１、・・・、３０３−ｄ）は、自身の通信部（３３−１、・・・、３３−ｄ）を制御して、自身の検証用データ生成部（３０１−１、・・・、３０１−ｄ）が生成した検証用データを管理者装置（１）に送信する（ステップＳ９）。
【００５６】
管理者装置（１）の制御部（１０３）は、管理者装置（１）の通信部（１３）を介して、各受託者装置（３−１、・・・、３−ｄ）から送信された検証用データを受信する（ステップＳ１０）。
【００５７】
そして、管理者装置（１）の検証部（１０４）が、各受託者装置（３−１、・・・、３−ｄ）ごとに、寄託データＸと受託者装置に記憶されるバックアップデータとの同一性を、タグＹおよび検証用データを用いて検証する（ステップＳ１１）。検証に成功した数ｓ（受託者装置が記憶するバックアップデータが寄託データＸの正しいバックアップデータである数）は管理者装置（１）の記憶部に記憶される。
以上が＜検証手続＞である。
【００５８】
具体的な検証方式は、どの受託者装置が寄託データＸをバックアップデータとして正しく記憶しているのかが確認できるプロトコルであって、そのプロトコルを盗み見た人（不正者）が真似をしても、不正者が寄託データＸをバックアップデータとして記憶しているかのように見せかけることのできない方式が好ましい。
【００５９】
検証方式に限定は無いが、ここに一例を説明する。
[検証方式]
〈１〉管理者装置（１）の乱数生成部は、乱数ｒ∈［０，・・・，Ｎ］を選択し、Ｒ＝ｇｒ（mod Ｎ）を計算する。
〈２〉管理者装置（１）の検証開始部は、セッションＩＤを生成し、乱数ｒを秘密鍵、Ｒを公開鍵とする電子署名（例えばSchnorr署名(ISO/IEC14888-3)で規定）を、セッションＩＤに対して行い、これをσとする。
〈３〉管理者装置（１）の制御部（１０３）は、通信部（１３）を制御してＲ，署名σ，セッションＩＤを各受託者装置（３−１、・・・、３−ｄ）に送信する。各受託者装置（３−１、・・・、３−ｄ）の制御部は、自身の通信部を介してＲ，署名σ，セッションＩＤを管理者装置から受信する。
〈４〉各受託者装置（３−１、・・・、３−ｄ）は、Ｒ∈｛（Ｚ／ＮＺ）＊｜（ａ／Ｎ）＝１，ａとＮは互いに素｝かつセッションＩＤに対応する署名σを確認する。確認できなかった場合は、処理を中止する。
〈５〉上記確認をできた場合、各受託者装置（３−１、・・・、３−ｄ）の検証用データ生成部は、Ｈ＝ＲＸ（mod Ｎ）を計算する（ステップＳ８に相当）。但し、Ｘは受託者装置の記憶部に記憶されているバックアップデータである。
〈６〉各受託者装置（３−１、・・・、３−ｄ）の制御部は、自身の通信部を制御して、Ｈを管理者装置に送信する（ステップＳ９に相当）。管理者装置（１）の制御部は、自身の通信部を介してＨを各受託者装置（３−１、・・・、３−ｄ）から受信する（ステップＳ１０に相当）。
〈７〉管理者装置（１）の検証部（１０４）は、各受託者装置（３−１、・・・、３−ｄ）ごとに、Ｈ＝Ｙｒ（mod Ｎ）であることを確認できた場合は検証成功、確認できなかった場合は検証失敗とする（ステップＳ１１に相当）。
【００６０】
例示した検証方式ではセッションＩＤを用いたが、これに限定されるものではなく、管理者装置と受託者装置にとって不正ができない値であって且つ毎回異なる値であるならばどのような情報でも利用可能である。例えば、時報局による時刻情報や、管理者装置（１）のＩＤと受託者装置のＩＤの合成（例えばビット列で表される両ＩＤのビット列結合）などを利用できる。
【００６１】
通信先を保証することができる通信ネットワーク（６）を利用している場合（例えばＰＫＩ（Public Key Infrastructure）を利用したＳＳＬ相手先認証など）、出願済み未公開の特許出願（特願２００５−２０４９５４）に記載される認証技術を検証方式に利用することができる。
【００６２】
この認証技術は、特定または不特定の装置が、所定の情報を内部に保持していることを証明・検証することを可能とする技術である。この認証技術に拠れば、バックアップデータが格納された受託者装置に通信可能に接続された管理者装置が、当該バックアップデータと、任意の対比情報（寄託データに相当する。）と、の同一性を検証する。管理者装置は、対比情報の内容に依存する内容を有し、対比情報の情報量に依存しない情報量を有する検証情報と、任意の情報である第１任意情報と、を第１記憶部に記憶する。また、管理者装置は、受託者装置に認証情報を生成させるための認証情報生成因子を、第１記憶部に記憶された第１任意情報を用いて生成し、生成した認証情報生成因子を受託者装置に送信する。受託者装置は、上記の認証情報生成因子を受信し、当該認証情報生成因子と、第２記憶部に記憶されたバックアップデータとを用い、認証情報生成因子とバックアップデータとの内容に依存する内容を有し、バックアップデータの情報量に依存しない情報量を有する認証情報を生成する。次に、受託者装置は、この認証情報を管理者装置に送信する。管理者装置は、受託者装置が送信した認証情報を受信し、管理者装置の判定部が、その認証情報と、第１記憶部に記憶された検証情報及び第１任意情報との間に、所定の関係が成立するか否かを判定する。これにより、管理者装置は、受託者装置に格納されたバックアップデータが、対比情報と同一であることを検証する。
【００６３】
また、検証手続を実施する管理者装置は寄託データＸの配布元である管理者装置と同一でなくてもよい（検証用の管理者装置と寄託データ配布用の管理者装置とを別個とする仕様が可能であり、ＩＤ、寄託データＸ、タグＹなどを対応付けたデータベースを両管理者装置で共有すればよい。）。このような場合、寄託データＸを配布した管理者装置と検証手続を実施する管理者装置が同じかもしくはその実施の委託先の装置であることを電子署名などを用いて示せばよい。
【００６４】
さて、管理者装置（１）の判定部（１０５）は、検証に成功した数ｓ（受託者装置が記憶するバックアップデータが寄託データＸの正しいバックアップデータである数）とその記憶部に記憶される閾値Ｔとの差ｔを求める（ステップＳ１２）。
【００６５】
管理者装置（１）の制御部（１０３）は、検証に成功した数ｓが閾値Ｔよりも少ない場合、新たな受託者装置を選定し、これらの受託者装置へ寄託データＸを送信する（ステップＳ１３）。もし、管理者装置（１）に寄託データＸが存在しない場合、寄託者装置（２）から寄託データＸを再度受信して、これを新たな受託者装置へ送信すればよい。また、寄託者装置（２）にも寄託データＸが存在しない場合、検証に成功した受託者装置からバックアップデータを受信して、これを新たな受託者装置へ送信すればよい。新たに選定される受託者装置は、検証に失敗した受託者装置であってもよいし、検証に失敗した受託者装置以外の装置としてもよい。新たに選定される受託者装置の個数はｔ以上とする。これは、寄託データＸのバックアップデータを記憶する受託者装置をＴ個以上とするためである。
【００６６】
＜返還手続＞
管理者装置（１）は、寄託者装置（２）の要求に応じて、あるいは、何かしらの事故やトラブルが起きたときに、あるいは、定期的な時間ごとのように、定期ないし不定期に、受託者装置に記憶されているバックアップデータを寄託者装置（２）に返還する手続を行う。
【００６７】
管理者装置（１）の本人認証部は、例えば寄託者装置（２）から寄託データＸの返還要求の通知を受けると、返還しようとする相手である寄託者装置（２）との間で、＜準備＞で登録されたユーザＩＤ及び認証子を用いて本人認証を行う。本人認証が成功した場合、管理者装置（１）は、検証に成功した（ことのある）受託者装置に、寄託データＸを管理者装置に送信する旨の通知を受託者装置に送信する。この通知を受信した受託者装置は、管理者装置（１）からの通知であることを確認し（例えば通知に添付された電子署名の検証を行う。）、バックアップデータを管理者装置（１）に送信する。管理者装置（１）は、受信したバックアップデータを寄託者である寄託者装置（２）に寄託データＸを送信する。なお、管理者装置（１）は、受信したバックアップデータに対してタグＹを利用して寄託データＸとの整合性を再度確認してもよい。また、寄託者装置（２）と受託者装置とが相互に通信可能であれば、管理者装置（１）は、検証に成功した（ことのある）受託者装置に、寄託データＸを管理者装置に送信する旨の通知と共に寄託者装置（２）を指示する情報を受託者装置に送信し、これらを受信した受託者装置が、寄託者装置（２）に管理者装置（１）を介さずにバックアップデータを送信してもよい。
【００６８】
実施形態１では、寄託データＸの立場からユーザ装置を寄託者装置、受託者装置に分けて説明したが、ユーザ装置は寄託者装置にも受託者装置にもなりえるから、ユーザ装置の観点からすれば、ユーザ装置はいずれもタグ生成部、検証用データ生成部の各機能を持つことが好ましい。
【００６９】
《実施形態２》
実施形態１は、管理者装置が寄託者装置と受託者装置との間に介在するハイブリッド型の分散バックアップシステムであった。実施形態２では、Ｐ２Ｐ（Peer-to-Peer）型の分散バックアップシステムを説明する。
【００７０】
実施形態１との差異は、実施形態２では寄託者装置（２）が管理者装置（１）の機能を実装することにある。従って、実施形態１と異ならない事項については同一符号を当てて説明を省略する。
【００７１】
実施形態２における分散バックアップシステムは、寄託データの寄託者であるユーザのコンピュータである寄託者装置、寄託者装置から受託した寄託データをバックアップデータとしてストレージに保持することとなる受託者のコンピュータである受託者装置から構成される。
【００７２】
［分散バックアップシステム］
＜受託者装置＞
そのハードウェア構成例、機能構成例は実施形態１と同様である。
【００７３】
＜寄託者装置＞
実施形態２における寄託者装置について説明する。この寄託者装置のハードウェア構成例は図１に示したとおりである。
【００７４】
寄託者装置（２ａ）の外部記憶装置（２７）には、寄託データとバックアップデータとの同一性に関わる検証に用いる情報を寄託データから生成するためのプログラム、受託者装置が寄託データを保持していることを検証するのに必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている（外部記憶装置に限らず、例えば読み出し専用記憶装置であるＲＯＭにプログラムやデータなどを記憶させておくなどでもよい。）。また、このプログラムの処理によって得られるデータなどは記憶部に適宜に記憶される。
【００７５】
より具体的には、寄託者装置（２ａ）の外部記憶装置（２７）〔あるいはＲＯＭなど〕には、寄託データＸが寄託者装置（２ａ）の外部記憶装置（２７）に記憶されているとする。また、寄託データＸを用いて、寄託データＸと受託者装置に記憶されるバックアップデータとの同一性を検証可能な情報（タグ）を生成するためのプログラム、タグと、受託者装置がバックアップデータを用いて生成した、寄託データとバックアップデータとの同一性を検証可能な情報である検証用データとを用いて検証するためのプログラム、検証に成功したバックアップデータの個数と閾値Ｔとの差ｔを求めるためのプログラムなどが記憶される。その他、このプログラムに基づく処理を制御するための制御プログラムも適宜に保存しておく。
【００７６】
寄託者装置（２ａ）では、外部記憶装置（２７）〔あるいはＲＯＭなど〕に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてＲＡＭ（２５）に読み込まれて、ＣＰＵ（２４）で解釈実行・処理される。その結果、ＣＰＵ（２４）が所定の機能（タグ生成部、検証部、判定部、制御部）を実現する。
【００７７】
＜システム構成＞
実施形態２における分散バックアップシステム（５ａ）のシステム構成について説明する。
図７は、分散バックアップシステム（５ａ）のシステム構成を示す図である。
【００７８】
実施形態１では、複数の寄託者装置（２ａ）と、複数の受託者装置（３）とが、インターネットなどの通信ネットワーク（６）を介して相互に通信可能に接続されている。説明の便宜から寄託者装置（２ａ）は１個とするが、その理由は実施形態１で述べたとおりである。
【００７９】
[分散バックアップ方法の処理手順]
続いて、分散バックアップシステム（５ａ）における分散バックアップ方法の処理手順について叙述的に説明する。
実施形態２は、基本的な実施形態の一つを示しており、本発明の趣旨を逸脱するものでないならば、種々の実施の形態に拡張可能である。以下、図８および図９を参照しながら説明する。
【００８０】
実施形態１で説明した＜準備＞は、特段の事情の無い限り実施形態２では不要である。
【００８１】
＜寄託手続＞
寄託者装置（２ａ）のタグ生成部（２０１）は、寄託データＸを用いて、寄託データＸと受託者装置（３−１、・・・、３−ｆ）に記憶されるバックアップデータとの同一性を検証可能な情報（タグ）Ｙを生成する（ステップＳ１ａ）。タグＹの性質やその生成アルゴリズムなどは実施形態１と同じである。
【００８２】
寄託者装置（２ａ）の制御部（２０３）は、受託者装置（３−１、・・・、３−ｄ）を選定し、寄託者装置（２）の通信部（２３）を制御して、寄託データＸを選定された受託者装置（３−１、・・・、３−ｄ）に送信する（ステップＳ２ａ）。寄託者装置（２）の記憶部には、少なくともタグＹを記憶し、また寄託データＸの配布先である受託者装置（３−１、・・・、３−ｄ）の各ＩＤ（受託者識別情報）も記憶しておく。この実施形態２では、正当なバックアップデータの個数の閾値Ｔも寄託者装置（２）の記憶部に記憶されているとする。この処理の後、寄託者装置（２）は寄託データＸをその記憶部から消去してもよい。
【００８３】
各受託者装置（３−１、・・・、３−ｄ）の制御部（３０３−１、・・・、３０３−ｄ）はそれぞれ、自身の通信部（３３−１、・・・、３３−ｄ）を介して、寄託者装置（２ａ）から送信された寄託データＸを受信する（ステップＳ３ａ）。
【００８４】
各受託者装置（３−１、・・・、３−ｄ）の制御部（３０３−１、・・・、３０３−ｄ）により、各受託者装置（３−１、・・・、３−ｄ）の記憶部に、寄託データＸがバックアップデータとして記憶される（ステップＳ４ａ）。このようにして、通常は複数の受託者装置に寄託データＸが分散バックアップされる。
【００８５】
＜更新手続＞
ステップＳ１〜Ｓ４ａの各処理は、複数の寄託データに応じて定期ないし不定期に実施される。また、ひとたび寄託した寄託データＸを再び分散バックアップすることもできる。また、変更部分が現在記憶されている寄託データＸに対して小さい場合は、この変更部分ΔＸを追加する処理を、上述した処理に則して行ってもよい。なお、この更新手続は任意の処理である。
【００８６】
＜検証手続＞
寄託者装置（２ａ）は、何かしらの事故やトラブルが起きたときに、あるいは、定期的な時間ごとのように、定期ないし不定期に、寄託データＸの寄託先である各受託者装置（３−１、・・・、３−ｄ）のバックアップデータが寄託データＸのバックアップデータとして正しく記憶されているかを検証する。
【００８７】
寄託者装置（２ａ）から検証開始が通知されると、各受託者装置（３−１、・・・、３−ｄ）の検証用データ生成部（３０１−１、・・・、３０１−ｄ）が、自身の記憶部に記憶されるバックアップデータを用いて、寄託データＸとバックアップデータとの同一性を検証可能な情報である検証用データを生成する（ステップＳ５ａ）。
【００８８】
各受託者装置（３−１、・・・、３−ｄ）の制御部（３０３−１、・・・、３０３−ｄ）は、自身の通信部（３３−１、・・・、３３−ｄ）を制御して、自身の検証用データ生成部（３０１−１、・・・、３０１−ｄ）が生成した検証用データを寄託者装置（２ａ）に送信する（ステップＳ６ａ）。
【００８９】
寄託者装置（２ａ）の制御部（２０３）は、寄託者装置（２ａ）の通信部（２３）を介して、各受託者装置（３−１、・・・、３−ｄ）から送信された検証用データを受信する（ステップＳ７ａ）。
【００９０】
そして、寄託装置（２ａ）の検証部（２０４）が、各受託者装置（３−１、・・・、３−ｄ）ごとに、寄託データＸと受託者装置に記憶されるバックアップデータとの同一性を、タグＹおよび検証用データを用いて検証する（ステップＳ８ａ）。
具体的な検証方式は、実施形態１で述べたとおりである。
以上が＜検証手続＞である。
【００９１】
さて、寄託者装置（２ａ）の判定部（２０５）は、検証に成功した数ｓ（受託者装置が記憶するバックアップデータが寄託データＸの正しいバックアップデータである数）とその記憶部に記憶される閾値Ｔとの差ｔを求める（ステップＳ９ａ）。
【００９２】
寄託者装置（２ａ）の制御部（２０３）は、検証に成功した数ｓが閾値Ｔよりも少ない場合、新たな受託者装置を選定し、これらの受託者装置へ寄託データＸを送信する（ステップＳ１０ａ）。もし、寄託者装置（２ａ）に寄託データＸが存在しない場合、検証に成功した受託者装置からバックアップデータを受信して、これを新たな受託者装置へ送信すればよい。新たに選定される受託者装置は、検証に失敗した受託者装置であってもよいし、検証に失敗した受託者装置以外の装置としてもよい。新たに選定される受託者装置の個数はｔ以上とする。これは、寄託データＸのバックアップデータを記憶する受託者装置をＴ個以上とするためである。
【００９３】
＜返還手続＞
寄託者装置（２ａ）は、何かしらの事故やトラブルが起きたときに、あるいは、定期的な時間ごとのように、定期ないし不定期に、受託者装置に記憶されているバックアップデータを寄託者装置（２）に返還要求する手続を行う。
【００９４】
寄託者装置（２ａ）は、検証に成功した（ことのある）受託者装置に、寄託データＸを寄託者装置（２ａ）に送信する旨の通知を受託者装置に送信する。この通知を受信した受託者装置は、寄託者装置（２ａ）からの通知であることを確認し（例えば通知に添付された電子署名の検証を行う。）、バックアップデータを寄託者装置（２ａ）に送信する。寄託者装置（２ａ）は、受信したバックアップデータに対してタグＹを利用して寄託データＸとの整合性を再度確認してもよい。
【００９５】
実施形態２では、寄託データＸの立場からユーザ装置を寄託者装置、受託者装置に分けて説明したが、ユーザ装置は寄託者装置にも受託者装置にもなりえるから、ユーザ装置の観点からすれば、ユーザ装置はいずれもタグ生成部、検証用データ生成部、検証部、判定部の各機能を持つことが好ましい。
【００９６】
本発明である分散バックアップシステム・分散バックアップ方法などは上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。例えば、タグ生成方法や検証方法は適宜に変更可能である。また、上記分散バックアップシステム・分散バックアップ方法において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
【００９７】
また、上記管理者装置、寄託者装置、受託者装置における処理機能をコンピュータによって実現する場合、管理者装置、寄託者装置、受託者装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記管理者装置、寄託者装置、受託者装置における処理機能がコンピュータ上で実現される。
【００９８】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等を、光磁気記録媒体として、ＭＯ（Magneto-Optical disc）等を、半導体メモリとしてＥＥＰ−ＲＯＭ（Electronically Erasable and Programmable-Read Only Memory）等を用いることができる。
【００９９】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【０１００】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【０１０１】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、管理者装置、寄託者装置、受託者装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【産業上の利用可能性】
【０１０２】
本発明は、データの分散バックアップに有用である。
【図面の簡単な説明】
【０１０３】
【図１】寄託者装置（２）のハードウェア構成を例示した構成ブロック図。
【図２】管理者装置（１）のハードウェア構成を例示した構成ブロック図。
【図３】受託者装置（３）のハードウェア構成を例示した構成ブロック図。
【図４】分散バックアップシステム（５）のシステム構成を例示した図。
【図５】実施形態１に係る管理者装置（１）、寄託者装置（２）、受託者装置（３）の機能ブロック図。
【図６】実施形態１における処理フローを示す図。
【図７】分散バックアップシステム（５ａ）のシステム構成を例示した図。
【図８】実施形態２に係る寄託者装置（２ａ）、受託者装置（３）の機能ブロック図。
【図９】実施形態２における処理フローを示す図。
【符号の説明】
【０１０４】
１          管理者装置
２          寄託者装置
２ａ        寄託者装置
３、３−１、３−２、・・・、３−ｆ  受託者装置
５          分散バックアップシステム
５ａ        分散バックアップシステム
１０４      検証部
１０５      判定部
２０１      タグ生成部
２０４      検証部
２０５      判定部
３０１−１、・・・、３０１−ｄ  検証用データ生成部
【図１】
0004996489.tif 000002
【図２】
0004996489.tif 000003
【図３】
0004996489.tif 000004
【図４】
0004996489.tif 000005
【図５】
0004996489.tif 000006
【図６】
0004996489.tif 000007
【図７】
0004996489.tif 000008
【図８】
0004996489.tif 000009
【図９】
0004996489.tif 000010