(57)【要約】【課題】バックアップサーバ上のデータに差分を適用するにあたり、適用処理時間を大幅に短縮すると共に、適用時のセキュリティを向上させる。【解決手段】クライアントコンピュータ２上にあるデータを、バックアップ開始条件の成立に応じて、バックアップサーバ３上にバックアップするバックアッププログラムであって、クライアント用バックアッププログラムは、今回バックアップ時のデータと、前回バックアップ時のデータとの比較にもとづいて差分を抽出するとともに、該差分を暗号化された状態でバックアップサーバ３に転送し、サーバ用バックアッププログラムは、バックアップサーバ３に暗号化状態で記憶された前回バックアップ時のデータに対し、クライアントコンピュータ２から受信した差分を暗号化状態のまま適用する。【選択図】図２
2010067055.tif 000002
【特許請求の範囲】
【請求項１】
クライアントコンピュータ上で実行されるクライアント用バックアッププログラムと、
ネットワークを介してクライアントコンピュータに接続されたバックアップサーバ上で実行されるサーバ用バックアッププログラムとを含み、
クライアントコンピュータ上にあるデータを、バックアップ開始条件の成立に応じて、バックアップサーバ上にバックアップするバックアッププログラムであって、
前記クライアント用バックアッププログラムは、
今回バックアップ時のデータと、前回バックアップ時のデータとの比較にもとづいて差分を抽出するとともに、該差分を暗号化された状態でバックアップサーバに転送し、
前記サーバ用バックアッププログラムは、
バックアップサーバに暗号化状態で記憶された前回バックアップ時のデータに対し、クライアントコンピュータから受信した差分を暗号化状態のまま適用することを特徴とするバックアッププログラム。
【請求項２】
前記暗号化は、ストリーム暗号方式を用いて行われることを特徴とする請求項１記載のバックアッププログラム。
【請求項３】
前記差分は、クライアントコンピュータに記憶された今回バックアップ時のデータと、クライアントコンピュータに記憶された前回バックアップ時のデータとの比較にもとづいて抽出されるものであり、比較される両データは平文であることを特徴とする請求項１又は２記載のバックアッププログラム。
【請求項４】
前記差分は、クライアントコンピュータに記憶された今回バックアップ時のデータと、バックアップサーバに記憶された前回バックアップ時のデータとの比較にもとづいて抽出されるものであり、比較される両データは暗号文であることを特徴とする請求項１又は２記載のバックアッププログラム。
【請求項５】
前記サーバ用バックアッププログラムは、クライアントコンピュータから差分を受信する毎に、該差分を前回バックアップ時のデータに逐次適用することを特徴とする請求項１〜４のいずれかに記載のバックアッププログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアントコンピュータ上にあるデータを、ネットワークを介して接続されたバックアップサーバ上にバックアップするバックアッププログラムに関する。
【背景技術】
【０００２】
クライアントコンピュータ上にあるデータを、ネットワークを介して接続されたバックアップサーバ上にバックアップするバックアッププログラムが知られている（例えば、特許文献１参照）。この種のバックアッププログラムは、バックアップの対象となっているデータを、バックアップ開始条件の成立に応じて、バックアップサーバ上に自動的にバックアップすることが可能であり、例えば、ユーザが指定した時間（例えば、システム起動から１時間毎）であること、ユーザが指定した時刻（例えば、毎日１７時）であること、ユーザが所定の操作（例えば、システム終了操作）を行うこと、クライアントコンピュータが所定時間（例えば、１０分）に亘って非操作状態であること、などをバックアップ開始条件として自動的なバックアップを行うようになっている。
【特許文献１】特開２００７−１１５０８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記のようなバックアッププログラムでは、アプリケーションソフトの固有データもバックアップの対象となるが、固有データのファイルサイズが大きくなると、毎回ファイルを全て転送する方式では、転送負荷（時間、ネットワークの圧迫）が高くなるという問題がある。例えば、メールやスケジュールを統合的に管理するアプリケーションソフトのなかには、データベースのように、全てのデータを１ファイルに格納するものがあり、このようなデータは、メールやスケジュールの増加に応じてファイルサイズが大きくなるため、バックアップの対象にすると転送負荷が大きくなってしまう。
【０００４】
このような場合、クライアントコンピュータにてオリジナルデータからの差分（異なる部分の位置情報及びデータ）を抽出し、抽出した差分だけをバックアップサーバに送る方式が有効である。そして、バックアップサーバとしては、受け取った差分をバックアップサーバ上のデータに適用する方式と、受け取った差分を適用せずに累積保存する方式とがあり、前者は、クライアントコンピュータ上のデータとバックアップサーバ上のデータとの整合性を維持できるという利点がある。
【０００５】
しかしながら、転送中におけるデータの盗聴、バックアップサーバからのデータ漏洩などを阻止するために、転送中のデータやバックアップサーバ上のデータを暗号化するバックアップシステムでは、バックアップサーバ上のデータに差分を適用すると、適用処理に時間がかかるだけでなく、セキュリティ性が低下するという問題があった。つまり、従来のバックアップシステムでは、バックアップサーバ上のデータに差分を適用する場合、暗号化されているデータ及び差分を一旦復号してから差分を適用し、再度暗号化していたので、適用処理に時間がかかり、また、差分を適用するタイミングで、一旦バックアップサーバ内でオリジナルデータが復元されるため、セキュリティ上の問題がある。
【課題を解決するための手段】
【０００６】
本発明は、上記の如き実情に鑑みこれらの課題を解決することを目的として創作されたものであって、クライアントコンピュータ上で実行されるクライアント用バックアッププログラムと、ネットワークを介してクライアントコンピュータに接続されたバックアップサーバ上で実行されるサーバ用バックアッププログラムとを含み、クライアントコンピュータ上にあるデータを、バックアップ開始条件の成立に応じて、バックアップサーバ上にバックアップするバックアッププログラムであって、前記クライアント用バックアッププログラムは、今回バックアップ時のデータと、前回バックアップ時のデータとの比較にもとづいて差分を抽出するとともに、該差分を暗号化された状態でバックアップサーバに転送し、前記サーバ用バックアッププログラムは、バックアップサーバに暗号化状態で記憶された前回バックアップ時のデータに対し、クライアントコンピュータから受信した差分を暗号化状態のまま適用することを特徴とする。このようにすると、バックアップサーバ上のデータに差分を適用するにあたり、暗号化されているデータ及び差分を復号してから差分を適用する場合に比べ、適用処理時間を大幅に短縮することができる。しかも、差分を適用するタイミングで、一旦バックアップサーバ内でオリジナルデータが復元されることもないので、セキュリティ上の問題も解消することができる。
また、前記暗号化は、ストリーム暗号方式を用いて行われることを特徴とする。このようにすると、バックアップサーバに暗号化状態で記憶された前回バックアップ時のデータに対し、クライアントコンピュータから受信した差分を暗号化状態のまま適用するという差分適用処理を、容易かつ高速に行うことができる。
また、前記差分は、クライアントコンピュータに記憶された今回バックアップ時のデータと、クライアントコンピュータに記憶された前回バックアップ時のデータとの比較にもとづいて抽出されるものであり、比較される両データは平文であることを特徴とする。このようにすると、クライアントコンピュータ内において、平文同士のデータ比較にもとづいて、容易かつ安全に差分抽出を行うことができる。
また、前記差分は、クライアントコンピュータに記憶された今回バックアップ時のデータと、バックアップサーバに記憶された前回バックアップ時のデータとの比較にもとづいて抽出されるものであり、比較される両データは暗号文であることを特徴とする。このようにすると、クライアントコンピュータ上に常時ローカルコピーを置かなくても、ネットワークを介したデータ比較にもとづいて差分抽出を行うことができる。しかも、暗号文同士のデータ比較であるため、データの盗聴や漏洩も防止することができる。
また、前記サーバ用バックアッププログラムは、クライアントコンピュータから差分を受信する毎に、該差分を前回バックアップ時のデータに逐次適用することを特徴とする。このようにすると、クライアントコンピュータ上のデータとバックアップサーバ上のデータとの整合性を維持することができ、また、バックアップサーバに差分を累積保存する場合に比べ、バックアップサーバの記憶容量を節約できる。
【発明を実施するための最良の形態】
【０００７】
［バックアップシステム］
次に、本発明の実施の形態について、図面に基づいて説明する。図１において、１は本発明のバックアッププログラムが適用されたバックアップシステムであって、該バックアップシステム１は、クライアントコンピュータ２と、バックアップサーバ３と、これらを通信可能に接続するＬＡＮ（ローカルエリアネットワーク）などのネットワーク４とを備えて構成されている。
【０００８】
クライアントコンピュータ２は、本発明のバックアッププログラム（クライアント用バックアッププログラム）がインストールされたコンピュータであり、バックアップサーバ３は、サーバ用バックアッププログラムがインストールされたコンピュータである。そして、クライアントコンピュータ２上でクライアント用バックアッププログラムを実行し、また、バックアップサーバ３上でサーバ用バックアッププログラムを実行すると、クライアントコンピュータ２の記憶領域にある所定のデータを、ネットワーク４を介して接続されたバックアップサーバ３の記憶領域にバックアップすることが可能になる。
【０００９】
具体的には、バックアップの対象となっているデータを、バックアップ開始条件の成立に応じて、自動的にバックアップすることが可能であり、例えば、ユーザが指定した時間（例えば、システム起動から１時間毎）であること、ユーザが指定した時刻（例えば、毎日１７時）であること、ユーザが所定の操作（例えば、システム終了操作）を行うこと、コンピュータが所定時間（例えば、１０分）に亘って非操作状態であること、などをバックアップ開始条件として自動的なバックアップを行うことができる。
【００１０】
［バックアッププログラム］
クライアントコンピュータ２上で実行されるクライアント用バックアッププログラムは、メールソフト、スケジュール管理ソフト、メール・スケジュール統合管理ソフト、データベースソフトなどのアプリケーションソフトが生成する固有データをバックアップの対象とすることができる。アプリケーションソフトの固有データとしては、全てのデータを１ファイルに格納するものがあり、データの増加に応じてファイルサイズが大きくなるため、バックアップの対象にすると転送負荷が大きくなってしまう。
【００１１】
このような場合は、図２に示すように、クライアントコンピュータ２にてオリジナルデータからの差分（異なる部分の位置情報及びデータ）を抽出し、抽出した差分だけをバックアップサーバ３に送る方式が有効である。そして、本発明の実施形態では、このような差分転送方式を採用するにあたり、バックアップサーバ３に受け取った差分を累積保存する方式ではなく、受け取った差分をバックアップサーバ３上のデータに適用する方式を採用する。これにより、クライアントコンピュータ２上のデータとバックアップサーバ３上のデータとの整合性を維持することができる。
【００１２】
また、本発明の実施形態では、転送中におけるデータの盗聴、バックアップサーバ３からのデータ漏洩などを阻止するために、転送中のデータやバックアップサーバ３上のデータを暗号化する。この場合、従来のバックアップシステムでは、バックアップサーバ３側の差分適用処理に時間がかかるだけでなく、バックアップサーバ３側のセキュリティ性が低下するという問題があったが、本発明の実施形態に係るバックアッププログラムによれば、このような問題を解決することが可能になる。
【００１３】
つまり、本発明の実施形態に係るクライアント用バックアッププログラムは、今回バックアップ時のデータと、前回バックアップ時のデータとの比較にもとづいて差分を抽出するとともに、該差分を暗号化された状態でバックアップサーバ３に転送し、サーバ用バックアッププログラムは、バックアップサーバ３に暗号化状態で記憶された前回バックアップ時のデータに対し、クライアントコンピュータ２から受信した差分を暗号化状態のまま適用するように構成される。このようにすると、バックアップサーバ３上のデータに差分を適用するにあたり、暗号化されているデータ及び差分を復号してから差分を適用する場合に比べ、適用処理時間を大幅に短縮することができる。しかも、差分を適用するタイミングで、一旦バックアップサーバ３内でオリジナルデータが復元されることもないので、セキュリティ上の問題も解消することができる。
【００１４】
また、差分は、クライアントコンピュータ２に記憶された今回バックアップ時のデータと、クライアントコンピュータ２に記憶された前回バックアップ時のデータとの比較にもとづいて抽出され、比較される両データは平文であることことが好ましい。このようにすると、クライアントコンピュータ２内において、平文同士のデータ比較にもとづいて、容易かつ安全に差分抽出を行うことができる。
【００１５】
また、サーバ用バックアッププログラムは、クライアントコンピュータ２から差分を受信する毎に、該差分を前回バックアップ時のデータに逐次適用することが好ましい。このようにすると、クライアントコンピュータ２上のデータとバックアップサーバ３上のデータとの整合性を維持することができ、また、バックアップサーバ３に差分を累積保存する場合に比べ、バックアップサーバ３の記憶容量を節約できる。
【００１６】
暗号化の方式には、ブロック暗号方式やストリーム暗号方式があるが、本発明の実施形態における暗号化は、全てストリーム暗号方式を用いて行われる。このようにすると、バックアップサーバ３に暗号化状態で記憶された前回バックアップ時のデータに対し、クライアントコンピュータ２から受信した差分を暗号化状態のまま適用するという差分適用処理を、容易かつ高速に行うことができる。以下、ブロック暗号方式とストリーム暗号方式の違いや、具体的な差分の抽出方法及び差分の適用方法について説明する。
【００１７】
ブロック暗号は、不定長の平文を先頭から順に一定の長さのブロックに区切り、ブロック単位で暗号化・復号化を行う暗号方式である。ブロック暗号でのブロック長は、暗号化アルゴリズムにより異なり、可変長、固定長を問わないが、処理の容易さの点で固定長が用いられることが多い。また、ブロック暗号が解読されないようにするために、ブロック内のデータが暗号処理の過程でランダムに配置されるよう工夫される。
【００１８】
また、ブロック暗号では、ブロック間に相関関係を持たせることも必要である。例えば、あるブロックを暗号化するときには、前のブロックを暗号化した結果を入力として用いる。しかしながら、ブロック間に相関関係があるということは、差分位置以前のデータもすべて暗号化しなおさないと、差分位置の暗号ができないことを意味する。つまり、ブロック暗号では、暗号化したまま部分的に差分を適用することはできず、一旦すべてを復号し、平文状態で差分を適用した上で、再度暗号化する必要がある。
【００１９】
一方、ストリーム暗号は、平文を１ビット又は数ビットごとに暗号化・復号化する暗号方式である。ストリーム暗号では、暗号鍵（本実施形態では、親鍵＋ＳＥＥＤ）から鍵系列と呼ばれる擬似乱数を生成し、擬似乱数により平文を逐次暗号化する。具体的には、図３の（Ａ）に示すように、１ビット単位で平文と鍵系列の排他的論理和（ＸＯＲ）を求め、暗号文とする。擬似乱数は、ソフトウェアでも比較的高速に生成することができるため、ストリーム暗号をソフトウェアで実現する場合でも、高速な処理を行うことができる。
【００２０】
図３の（Ｂ）に示すように、ストリーム暗号と差分（オフセット位置＋差分データ）の組み合せでは、平文のオフセット位置と同じ位置の鍵系列を取り出すことで、差分データのみの暗号化が可能であり、また、ストリーム暗号により暗号化された差分は、バックアップサーバ３に格納された暗号化状態のデータにそのまま適用することが可能である。例えば、図３の（Ｂ）に示すように、平文のｄ３〜ｄ５がデータ更新されてＤ３〜Ｄ５となった場合、Ｄ３〜Ｄ５とＲ３〜Ｒ５の排他的論理和により暗号化された差分を作成し、バックアップサーバ３に格納された暗号データの該当部分のみを上書き更新することができる。
【００２１】
また、ストリーム暗号により暗号化された差分は、バックアップサーバ３に格納された暗号化状態のデータに何度適用しても同じ結果が得られる。したがって、差分適用中にバックアップサーバ３がダウンするようなトラブルが発生しても、復旧後に再度差分を先頭から適用しなおすことができる。これにより、差分ファイルは、差分適用が終わった時点で削除するというシンプルなロジックで確実な差分適用が可能になる。
【００２２】
［バックアッププログラムの処理手順］
次に、本発明の実施形態に係るクライアント用バックアッププログラム及びサーバ用バックアッププログラムの具体的な処理手順について、図４〜図７を参照して説明する。ただし、これらのバックアッププログラムは、クライアントコンピュータ２の記憶領域にあるメールデータをバックアップの対象とし、該メールデータをバックアップサーバ３の記憶領域にバックアップするように設定されているものとする。
【００２３】
クライアント用バックアッププログラムは、起動後、バックアップ開始条件の成立判断を行う。そして、バックアップ開始条件が成立した場合に、図４に示すバックアップ処理が実行される。図４に示すバックアップ処理が開始されると、まず、メールソフトが実行中であるか否かを判断し（Ｓ１０１）、この判断結果がＹＥＳである場合は、メールソフトを終了させる（Ｓ１０２）。次に、初回バックアップであるか否かを判断し（Ｓ１０３）、この判断結果がＹＥＳの場合は、クライアントコンピュータ２上にメールデータ（オリジナルデータ）のローカルコピーを作成すると共に（Ｓ１０４）、ローカルコピーをバックアップサーバ３に転送する（Ｓ１０５）。ここで、バックアップサーバ３に転送するローカルコピーは、後述する差分と同様に暗号化されていることが好ましいが、平文のローカルコピーをバックアップサーバ３に転送し、バックアップサーバ３上で暗号化してもよい。
【００２４】
一方、初回バックアップでない場合は、後述する差分抽出処理を行った後（Ｓ１０６）、バックアップサーバ３からＳＥＥＤ（鍵系列作成用データ）を受信すると共に（Ｓ１０７）、ＳＥＥＤ及び親鍵から鍵系列を生成し、該鍵系列を用いて差分を暗号化し、暗号化した差分をバックアップサーバ３に転送する（Ｓ１０８）。また、クライアントコンピュータ２上のローカルコピーに今回の差分を適用する（Ｓ１０９）。その後、当該バックアップ処理によってメールソフトを終了させたか否かを判断し（Ｓ１１０）、終了させた場合は、メールソフトを起動させた後（Ｓ１１１）、バックアップ処理を終了とする。
【００２５】
図５に示すように、差分抽出処理では、オリジナルデータ（今回バックアップ時のデータ）とローカルコピー（前回バックアップ時のデータ）を読み進めながら（Ｓ２０２）、差異を検出する（Ｓ２０３）。差異を見つけた場合は、そのオフセット位置を記録すると共に（Ｓ２０４）、差異がなくなるまで更新データ（差分データ）を記録する（Ｓ２０５〜Ｓ２０７）。差異がなくなったら、ステップＳ２０２に戻り、再び差異を検出する。そして、これらの処理は、オリジナルデータ又はローカルコピーの終わりまで繰り返される（Ｓ２０１〜Ｓ２０８）。次に、オリジナルデータとローカルコピーとのデータ長を比較し（Ｓ２０９）、ここでオリジナルデータが長い場合は、増分データを読み込んで記録する（Ｓ２１０、Ｓ２１１）。また、ローカルコピーが長い場合は、データの切り詰め位置を記録する（Ｓ２１２）。
【００２６】
図６に示すように、サーバ用バックアッププログラムは、バックアップサーバ３の起動後、まず、差分ファイルが残っているか否かを判断する（Ｓ３０１）。この判断結果がＹＥＳの場合は、後述する差分適用処理を実行する（Ｓ３０２）。次に、サーバ用バックアッププログラムは、クライアントコンピュータ２からの要求を待ち受ける待ち受け状態に入る（Ｓ３０３）。この要求待ち受け状態で、クライアントコンピュータ２からＳＥＥＤ要求があった場合は、バックアップサーバ３の記憶領域からＳＥＥＤを読み出し（Ｓ３０４）、これをクライアントコンピュータ２へ転送する（Ｓ３０５）。また、クライアントコンピュータ２から通常転送要求があった場合は、クライアントコンピュータ２からバックアップ対象のファイルを受信し（Ｓ３０６）、これをバックアップサーバ３の記憶領域に保存する（Ｓ３０７）。また、クライアントコンピュータ２から差分転送要求があった場合は、クライアントコンピュータ２から差分ファイルを受信した後（Ｓ３０８）、後述する差分適用処理を実行する（Ｓ３０９）。
【００２７】
差分適用処理は、バックアップサーバ３に暗号化状態で記憶された前回バックアップ時のバックアップデータに対し、クライアントコンピュータ２から受信した差分を暗号化状態のまま適用する処理であって、図７に示すように、差分適用処理が始まると、差分ファイル（更新情報）の先頭側からオフセット位置と差分データを順次読み込み（Ｓ４０２）、バックアップデータのオフセット位置に差分データを書き込む（Ｓ４０３）。そして、これらの処理は、差分ファイルから全てのオフセット位置及び差分データを読み込むまで繰り返される（Ｓ４０１〜Ｓ４０４）。次に、オリジナルデータとバックアップデータとのデータ長を比較し（Ｓ４０５）、ここでオリジナルデータが長い場合は、増分データを読み込み（Ｓ４０６）、これをバックアップデータに追記する（Ｓ４０７）。また、バックアップデータが長い場合は、データの切り詰めを行う（ＳＳ４０８）。
【００２８】
［バックアップシステム全体の動作手順］
次に、バックアップシステム１の全体動作について、図８を参照して説明する。ただし、図８は、メールソフトの実行中にバックアップ開始条件が成立した場合における初回のバックアップ処理動作と、次回以降のバックアップ処理動作を示すものとする。
【００２９】
図８の上段に示すように、初回のバックアップ処理では、バックアップ開始条件の成立に応じて、メールソフトに終了要求を行った後（Ｓ５０１）、オリジナルデータ（メールデータ）のローカルコピーを作成する（Ｓ５０２）。その後、終了させたメールソフトを起動させると共に（Ｓ５０３）、ローカルコピーをバックアップサーバ３へ通常転送（全量転送）する（Ｓ５０４）。
【００３０】
図８の下段に示すように、次回以降のバックアップ処理では、バックアップ開始条件の成立に応じて、メールソフトに終了要求を行った後（Ｓ５０５）、オリジナルデータとローカルコピーとの比較にもとづいて差分を抽出する（Ｓ５０６）。その後、終了させたメールソフトを起動させると共に（Ｓ５０７）、バックアップサーバ３にＳＥＥＤ要求を送る（Ｓ５０８）。この要求に応じてバックアップサーバ３からＳＥＥＤを受信したら（Ｓ５０９）、ＳＥＥＤ及び親鍵から生成した鍵系列で差分を暗号化し、暗号化した差分ファイル及びＣＲＣをバックアップサーバ３へ転送する（Ｓ５１０）。また、クライアントコンピュータ２側では、ローカルコピーに対し、今回抽出した差分を適用する（Ｓ５１１）。一方、バックアップサーバ３側では、クライアントコンピュータ２から差分ファイルを受信したら、暗号化状態のバックアップデータに対し、差分を暗号化状態のまま適用する（Ｓ５１２）。そして、差分の適用が終了したら、差分ファイルを削除する（Ｓ５１３）。
【００３１】
叙述の如く構成された本実施形態によれば、クライアントコンピュータ２上で実行されるクライアント用バックアッププログラムと、ネットワーク４を介してクライアントコンピュータ２に接続されたバックアップサーバ３上で実行されるサーバ用バックアッププログラムとを含み、クライアントコンピュータ２上にあるデータを、バックアップ開始条件の成立に応じて、バックアップサーバ３上にバックアップするバックアッププログラムであって、クライアント用バックアッププログラムは、今回バックアップ時のデータと、前回バックアップ時のデータとの比較にもとづいて差分を抽出するとともに、該差分を暗号化された状態でバックアップサーバ３に転送し、サーバ用バックアッププログラムは、バックアップサーバ３に暗号化状態で記憶された前回バックアップ時のデータに対し、クライアントコンピュータ２から受信した差分を暗号化状態のまま適用するので、バックアップサーバ３上のデータに差分を適用するにあたり、暗号化されているデータ及び差分を復号してから差分を適用する場合に比べ、適用処理時間を大幅に短縮することができる。しかも、差分を適用するタイミングで、一旦バックアップサーバ３内でオリジナルデータが復元されることもないので、セキュリティ上の問題も解消することができる。
【００３２】
また、暗号化は、ストリーム暗号方式を用いて行われるので、バックアップサーバ３に暗号化状態で記憶された前回バックアップ時のデータに対し、クライアントコンピュータ２から受信した差分を暗号化状態のまま適用するという差分適用処理を、容易かつ高速に行うことができる。
【００３３】
また、本実施形態の差分は、クライアントコンピュータ２に記憶された今回バックアップ時のデータと、クライアントコンピュータ２に記憶された前回バックアップ時のデータとの比較にもとづいて抽出されるものであり、比較される両データは平文であるため、クライアントコンピュータ２内において、平文同士のデータ比較にもとづいて、容易かつ安全に差分抽出を行うことができる。
【００３４】
また、本実施形態のサーバ用バックアッププログラムは、クライアントコンピュータ２から差分を受信する毎に、該差分を前回バックアップ時のデータに逐次適用するので、クライアントコンピュータ２上のデータとバックアップサーバ３上のデータとの整合性を維持することができ、また、バックアップサーバ３に差分を累積保存する場合に比べ、バックアップサーバ３の記憶容量を節約できる。
【００３５】
［他の実施形態］
次に、本発明の第二実施形態に係るバックアッププログラムについて説明する。
【００３６】
本発明の第二実施形態に係るバックアッププログラムは、前述した実施形態のように、クライアントコンピュータ２に記憶された今回バックアップ時のデータと、クライアントコンピュータ２に記憶された前回バックアップ時のデータとの比較にもとづいて差分を抽出するのではなく、クライアントコンピュータ２に記憶された今回バックアップ時のデータと、バックアップサーバ３に記憶された前回バックアップ時のデータとの比較にもとづいて差分を抽出するように構成されている。このようにすると、クライアントコンピュータ２上に常時ローカルコピーを置かなくても、ネットワーク４を介したデータ比較にもとづいて差分抽出を行うことができる。また、比較される両データを暗号文とすることにより、ネットワーク４を介したデータ比較におけるデータの盗聴や漏洩も防止することができる。
【００３７】
暗号文同士の比較による差分抽出は、ストリーム暗号を用いることにより可能となる。つまり、図９の（Ａ）に示すように、オリジナルデータ（平文）と鍵系列の排他的論理和を求め、暗号文１とする。また、ｄ３〜ｄ５がデータ更新されてＤ３〜Ｄ５となった更新データと鍵系列の排他的論理和を求め、暗号文２とする。そして、暗号文１と暗号文２の差異は、ｄ３’〜ｄ５’とＤ３’〜Ｄ５’の違いであるため、暗号化された差分の抽出が可能となる。
【００３８】
上記の差分抽出は、１ビット単位のデータ比較となるため、ネットワーク４を介してデータ比較を行った場合、データ転送量は全量転送と差がなくなり、ネットワーク負荷が大きくなってしまう。そこで、本実施形態では、図９の（Ｂ）に示すように、暗号文同士をブロックに区切り、そのハッシュ値を比較することで、該当ブロックに更新があったかどうかを判断し、ハッシュ値が異なるブロックを差分と見做す。ブロックのサイズは、ベースの特質に合わせて、任意のサイズとすることができる。例えば、図９の（Ｂ）に示すように、５データ（ｄ１’〜ｄ５’，ｄ６’〜ｄ１０’・・・）を１ブロックとしてハッシュ値を比較処理する。そして、図９の（Ｂ）に示す例では、暗号文のｄ３’〜ｄ５’とＤ３’〜Ｄ５’が異なるため、第１ブロックのハッシュ値は相違する一方、第２ブロックのハッシュ値は一致することになる。この場合、ハッシュ値の異なる第１ブロックのみを差分と見做して、暗号文のままバックアップサーバ３へ転送し、暗号文のままバックアップデータに適用することができる。尚、ハッシュ値とは、ネットワーク上の大きなデータに対して、ある決まった演算を行って導き出された短い固定長のデータを言う。元のデータを改ざんして、ハッシュ値を変えないように保つことが困難なため、通信データの改ざんの検出（完全性）の検査に利用される。
【００３９】
尚、本発明は、前記実施形態に限定されないことは勿論であって、特許請求の範囲を逸脱しない限り、実施形態を任意に変更できることは言うまでもない。また、特許請求の範囲や本明細書では、クライアントコンピュータ、バックアップサーバ、クライアント用バックアッププログラム、サーバ用バックアッププログラムといった用語を用いているが、これらの用語に含まれるクライアントは、ネットワークを介したバックアップ処理のバックアップ元を示し、サーバは、ネットワークを介したバックアップ処理のバックアップ先を示すものであって、ハードウエアやＯＳの種別、ネットワーク設定における主従関係などで規定されるクライアントやサーバの概念とは必ずしも一致しない。例えば、クライアント用バックアッププログラムが導入されたサーバ上のデータを、サーバ用バックアッププログラムが導入されたクライアントコンピュータ上や第二のサーバ上にバックアップする場合も本発明に含まれる。
【図面の簡単な説明】
【００４０】
【図１】本発明の実施形態に係るバックアップシステムの構成を示すブロック図である。
【図２】本発明の実施形態に係るバックアッププログラムの作用説明図である。
【図３】（Ａ）及び（Ｂ）は本発明の実施形態に係るバックアッププログラムの暗号方式を示す説明図である。
【図４】クライアント用バックアッププログラムの処理手順を示すフローチャートである。
【図５】差分抽出処理の処理手順を示すフローチャートである。
【図６】サーバ用バックアッププログラムの処理手順を示すフローチャートである。
【図７】差分適用処理の処理手順を示すフローチャートである。
【図８】バックアップシステム全体の動作手順を示す梯子図である。
【図９】（Ａ）及び（Ｂ）は他の実施形態に係るバックアッププログラムの作用説明図である。
【符号の説明】
【００４１】
１  バックアップシステム
２  クライアントコンピュータ
３  バックアップサーバ
４  ネットワーク
【図１】
2010067055.tif 000003
【図２】
2010067055.tif 000004
【図３】
2010067055.tif 000005
【図４】
2010067055.tif 000006
【図５】
2010067055.tif 000007
【図６】
2010067055.tif 000008
【図７】
2010067055.tif 000009
【図８】
2010067055.tif 000010
【図９】
2010067055.tif 000011