(57)【特許請求の範囲】
【請求項１】
外部記憶装置と接続可能な端末におけるデータの分散記憶方法において、
前記データの暗号化のために、
前記端末が、原データを第１のローカルデータ及び第１のリモートデータに分割し、前記外部記憶装置から前記第１のリモートデータを取得するために許容通信時間が予め決定されており、前記外部記憶装置との間の通信速度に基づいて前記許容通信時間を満たす最大データ長を算出し、前記第１のリモートデータの長さを、最大で前記第１のローカルデータの長さと等しく、且つ、前記最大データ長以下となるように決定する第１のステップと、
前記端末が、前記第１のローカルデータから前記第１のリモートデータを鍵として暗号化して第２のローカルデータを生成する第２のステップと、
前記端末が、前記第１のリモートデータを外部記憶装置へ送信して蓄積させる第３のステップと、
前記端末が、前記第２のローカルデータをローカルデータ蓄積部に蓄積する第４のステップと
を有することを特徴とするデータの分散記憶方法。
【請求項２】
前記第１のステップは、秘密分散法に基づいて、前記原データを分割することを特徴とする請求項１に記載のデータの分散記憶方法。
【請求項３】
前記データの復号のために、
前記端末が、前記第２のローカルデータを前記ローカルデータ蓄積部から取得する第５のステップと、
前記端末が、前記第１のリモートデータを前記外部記憶装置から受信する第６のステップと、
前記端末が、前記第２のローカルデータから、前記第１のリモートデータを鍵として復号して前記第１のローカルデータを生成する第７のステップと、
前記端末が、前記第１のローカルデータと前記第１のリモートデータとを合成して、前記原データを生成する第８のステップと
を更に有することを特徴とする請求項１又は２に記載のデータの分散記憶方法。
【請求項４】
前記第１のステップで、前記原データを圧縮して原圧縮データを生成し、該原圧縮データを分割し、
第８のステップとして、前記原圧縮データを解凍して前記原データを生成する
ことを特徴とする請求項３に記載のデータの分散記憶方法。
【請求項５】
前記第１のステップと前記第２のステップとの間で、前記第１のリモートデータをスクランブリングして第２のリモートデータを生成するステップを更に有し、
前記第２のステップは、前記第１のローカルデータから、前記第１のリモートデータを鍵として、第２のリモートデータ長ごとにビット列の排他的論理和によって暗号化して第２のローカルデータを生成し、
前記第３のステップは、前記第２のリモートデータを前記外部記憶装置へ送信して蓄積させ、
前記第６のステップは、前記第２のリモートデータを前記外部記憶装置から受信し、
前記第７のステップは、前記第２のローカルデータから、前記第２のリモートデータを鍵として第２のリモートデータ長ごとにビット列の排他的論理和によって復号して前記第１のローカルデータを生成し、
前記第７のステップと前記第８のステップとの間で、前記第２のリモートデータを逆スクランブリングして第１のリモートデータを生成する
ことを特徴とする請求項３又は４に記載のデータの分散記憶方法。
【請求項６】
データの分散記憶のために外部記憶装置と接続可能な端末において、
前記データの暗号化のために、
原データを第１のローカルデータ及び第１のリモートデータに分割し、前記外部記憶装置から前記第１のリモートデータを取得するために許容通信時間が予め決定されており、前記外部記憶装置との間の通信速度に基づいて前記許容通信時間を満たす最大データ長を算出し、前記第１のリモートデータの長さを、最大で前記第１のローカルデータの長さと等しく、且つ、前記最大データ長以下となるように決定するデータ分割手段と、
前記第１のローカルデータから、前記第１のリモートデータを鍵として暗号化して第２のローカルデータを生成する暗号化手段と、
前記第１のリモートデータを外部記憶装置へ送信して蓄積させるリモートデータ送信手段と、
前記第２のローカルデータを蓄積するローカルデータ蓄積手段と
を有することを特徴とする端末。
【請求項７】
前記データ分割手段は、秘密分散法に基づいて、前記原データを分割することを特徴とする請求項６に記載の端末。
【請求項８】
前記データの復号のために、
前記第１のリモートデータを前記外部記憶装置から受信するリモートデータ受信手段と、
前記ローカルデータ蓄積手段から取得した前記第２のローカルデータから、前記第１のリモートデータを鍵として復号して前記第１のローカルデータを生成する復号手段と、
前記第１のローカルデータと前記第１のリモートデータとを合成して、前記原データを生成するデータ合成手段と
を更に有することを特徴とする請求項６又は７に記載の端末。
【請求項９】
前記原データを圧縮して原圧縮データを生成し、該原圧縮データを前記データ分割手段へ通知するデータ圧縮手段と、
前記データ合成手段から前記原圧縮データが通知され、該原圧縮データを解凍して前記原データを生成するデータ解凍手段と
を有することを特徴とする請求項８に記載の端末。
【請求項１０】
前記データ分割手段から通知された前記第１のリモートデータをスクランブリングして前記第２のリモートデータを生成し、該第２のリモートデータを前記リモートデータ送信手段へ通知するスクランブル手段と、
前記リモートデータ受信手段から通知された前記第２のリモートデータを逆スクランブリングして前記第１のリモートデータを生成し、該第１のリモートデータを前記復号手段へ通知する逆スクランブル手段と
を更に有し、
前記暗号化手段は、前記第１のローカルデータから、前記第２のリモートデータを鍵として、第２のリモートデータ長ごとのビット列の排他的論理和によって暗号化して第２のローカルデータを生成し、
前記復号手段は、前記第２のローカルデータから、前記第２のリモートデータを鍵として、第２のリモートデータ長ごとのビット列の排他的論理和によって復号して前記第１のローカルデータを生成する
ことを特徴とする請求項８又は９に記載の端末。
【請求項１１】
データの分散記憶のために外部記憶装置と接続可能な端末に搭載されたコンピュータを機能させるプログラムにおいて、
前記データの暗号化のために、
原データを第１のローカルデータ及び第１のリモートデータに分割し、前記外部記憶装置から前記第１のリモートデータを取得するために許容通信時間が予め決定されており、前記外部記憶装置との間の通信速度に基づいて前記許容通信時間を満たす最大データ長を算出し、前記第１のリモートデータの長さを、最大で前記第１のローカルデータの長さと等しく、且つ、前記最大データ長以下となるように決定するデータ分割手段と、
前記第１のローカルデータから、前記第１のリモートデータを鍵として暗号化して第２のローカルデータを生成する暗号化手段と、
前記第１のリモートデータを外部記憶装置へ送信して蓄積させるリモートデータ送信手段と、
前記第２のローカルデータを蓄積するローカルデータ蓄積手段と
してコンピュータを機能させることを特徴とするプログラム。
【請求項１２】
前記データの復号のために、
前記第１のリモートデータを前記外部記憶装置から受信するリモートデータ受信手段と、
前記ローカルデータ蓄積手段から取得した前記第２のローカルデータから、前記第１のリモートデータを鍵として復号して前記第１のローカルデータを生成する復号手段と、
前記第１のローカルデータと前記第１のリモートデータとを合成して、前記原データを生成するデータ合成手段と
してコンピュータを更に機能させることを特徴とする請求項１１に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの分散記憶方法、端末及びプログラムに関する。特に、携帯電話機のような携帯端末において、操作性を低減させずに、データを秘匿し且つ保持することに適する。
【背景技術】
【０００２】
携帯端末が普及すると共に、その携帯端末の紛失又は窃盗によってその内部に蓄積されたデータが漏洩することが想定される。近年では、携帯電話機がクレジットカードのような電子決済機能を備える場合も多く、秘匿性を必要とするデータ又は個人情報が携帯端末に蓄積されている。このような状況において、携帯端末は、パスワードのような鍵を用いてこれらデータを暗号化して蓄積することによって、第三者の不正使用を防止しようとしている。
【０００３】
暗号化されたデータを、携帯端末内部の記憶装置に蓄積し、更には、リモートサーバ又はＵＳＢ(Universal Serial Bus)メモリのような外部の記憶装置に蓄積することもできる。しかしながら、暗号化されたデータが漏洩した場合、高速演算をするコンピュータによって、ある程度の時間をかければ、合い鍵を検出することは可能である。即ち、１つの装置内で、データを蓄積管理した場合、暗号化耐性が極めて高くなければ、そのデータが復元される恐れがある。
【０００４】
これに対し、秘密分散法という暗号化方式もある。秘密分散法は、原データを暗号化し、暗号化されたデータを分割し、分割データ（シェア）を別々の場所で管理する。ここで、分割された特定数の分割データが揃わない限り、原データに復号することができない。特定数未満の暗号化データの漏洩では、原データを復号できないように構成されている。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、複数の分割データを、ネットワーク上で別々のサーバで管理することは、暗号化耐性の点からは効果があるものの、コストの点からは不都合が多い。例えば、膨大に普及している携帯電話機を対象とすると、その携帯電話機に蓄積されたデータを、複数のサーバで蓄積し管理するためのコストは、膨大なものとならざるを得ない。
【０００６】
一方で、従来技術によれば、１つのサーバでデータを蓄積管理した場合、暗号化がパスワードのような鍵のみに依存するために、暗号化耐性が弱くなるという問題もある。
【０００７】
従って、本発明は、１つの外部記憶装置を備えるだけで、端末の原データに対して極めて高い暗号化耐性を確保することができる、データの分散記憶方法、端末及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明によれば、外部記憶装置と接続可能な端末におけるデータの分散記憶方法において、
データの暗号化のために、
原データを第１のローカルデータ及び第１のリモートデータに分割し、該第１のリモートデータの長さを外部記憶装置との間の通信速度に応じて決定する第１のステップと、
第１のローカルデータから第１のリモートデータを鍵として暗号化して第２のローカルデータを生成する第２のステップと、
第１のリモートデータを外部記憶装置へ送信して蓄積させる第３のステップと、
第２のローカルデータをローカルデータ蓄積部に蓄積する第４のステップと
を有することを特徴とする。
【０００９】
また、本発明の分散記憶方法における他の実施形態によれば、
第１のステップは、秘密分散法に基づいて、原データを分割することも好ましい。
【００１０】
更に、本発明の分散記憶方法における他の実施形態によれば、
データの復号のために、
第２のローカルデータをローカルデータ蓄積部から取得する第５のステップと、
第１のリモートデータを外部記憶装置から受信する第６のステップと、
第２のローカルデータから、第１のリモートデータを鍵として復号して第１のローカルデータを生成する第７のステップと、
第１のローカルデータと第１のリモートデータとを合成して、原データを生成する第８のステップと
を更に有することも好ましい。
【００１１】
更に、本発明の分散記憶方法における他の実施形態によれば、
第１のステップで、原データを圧縮して原圧縮データを生成し、該原圧縮データを分割し、
第８のステップとして、原圧縮データを解凍して原データを生成する
ことも好ましい。
【００１２】
更に、本発明の分散記憶方法における他の実施形態によれば、
第１のステップと第２のステップとの間で、第１のリモートデータをスクランブリングして第２のリモートデータを生成するステップを更に有し、
第２のステップは、第１のローカルデータから、第２のリモートデータを鍵として、第２のリモートデータ長ごとにビット列の排他的論理和によって暗号化して第２のローカルデータを生成し、
第３のステップは、第２のリモートデータを外部記憶装置へ送信して蓄積させ、
第６のステップは、第２のリモートデータを外部記憶装置から受信し、
第７のステップは、第２のローカルデータから、第２のリモートデータを鍵として、第２のリモートデータ長ごとにビット列の排他的論理和によって復号して第１のローカルデータを生成し、
第７のステップと第８のステップとの間で、第２のリモートデータを逆スクランブリングして第１のリモートデータを生成する
ことも好ましい。
【００１３】
更に、本発明の分散記憶方法における他の実施形態によれば、
第１のステップについて、外部記憶装置からリモートデータを取得するために許容通信時間が予め決定されており、
外部記憶装置との間の通信速度に基づいて許容通信時間を満たす最大データ長を算出し、
リモートデータの長さは、最大でローカルデータの長さと等しく、且つ、最大データ長以下となるように決定される
ことも好ましい。
【００１４】
本発明によれば、データの分散記憶のために外部記憶装置と接続可能な端末において、
データの暗号化のために、
原データを第１のローカルデータ及び第１のリモートデータに分割し、該第１のリモートデータの長さを外部記憶装置との間の通信速度に応じて決定するデータ分割手段と、
第１のローカルデータから、第１のリモートデータを鍵として暗号化して第２のローカルデータを生成する暗号化手段と、
第１のリモートデータを外部記憶装置へ送信して蓄積させるリモートデータ送信手段と、
第２のローカルデータを蓄積するローカルデータ蓄積手段と
を有することを特徴とする。
【００１５】
また、本発明の端末における他の実施形態によれば、
データ分割手段は、秘密分散法に基づいて、原データを分割することも好ましい。
【００１６】
更に、本発明の端末における他の実施形態によれば、
データの復号のために、
第１のリモートデータを外部記憶装置から受信するリモートデータ受信手段と、
ローカルデータ蓄積手段から取得した第２のローカルデータから、第１のリモートデータを鍵として復号して第１のローカルデータを生成する復号手段と、
第１のローカルデータと第１のリモートデータとを合成して、原データを生成するデータ合成手段と
を更に有することも好ましい。
【００１７】
更に、本発明の端末における他の実施形態によれば、
原データを圧縮して原圧縮データを生成し、該原圧縮データをデータ分割手段へ通知するデータ圧縮手段と、
データ合成手段から原圧縮データが通知され、該原圧縮データを解凍して原データを生成するデータ解凍手段と
を有することも好ましい。
【００１８】
更に、本発明の端末における他の実施形態によれば、
データ分割手段から通知された第１のリモートデータをスクランブリングして第２のリモートデータを生成し、該第２のリモートデータをリモートデータ送信手段へ通知するスクランブル手段と、
リモートデータ受信手段から通知された第２のリモートデータを逆スクランブリングして第１のリモートデータを生成し、該第１のリモートデータを復号手段へ通知する逆スクランブル手段と
を更に有し、
暗号化手段は、第１のローカルデータから、第２のリモートデータを鍵として、第２のリモートデータ長ごとにビット列の排他的論理和によって暗号化して第２のローカルデータを生成し、
復号手段は、第２のローカルデータから、第２のリモートデータを鍵として、第２のリモートデータ長ごとにビット列の排他的論理和によって復号して第１のローカルデータを生成する
ことも好ましい。
【００１９】
更に、本発明の端末における他の実施形態によれば、
データ分割手段は、外部記憶装置からリモートデータを取得するために許容通信時間が予め決定されており、
外部記憶装置との間の通信速度に基づいて許容通信時間を満たす最大データ長を算出し、
リモートデータの長さは、最大でローカルデータの長さと等しく、且つ、最大データ長以下となるように決定される
ことも好ましい。
【００２０】
本発明によれば、データの分散記憶のために外部記憶装置と接続可能な端末に搭載されたコンピュータを機能させるプログラムにおいて、
データの暗号化のために、
原データを第１のローカルデータ及び第１のリモートデータに分割し、該第１のリモートデータの長さが、外部記憶装置との間の通信速度に応じて決定されるデータ分割手段と、
第１のローカルデータから、第１のリモートデータを鍵として暗号化して第２のローカルデータを生成する暗号化手段と、
第１のリモートデータを外部記憶装置へ送信して蓄積させるリモートデータ送信手段と、
第２のローカルデータを蓄積するローカルデータ蓄積手段と
してコンピュータを機能させることを特徴とする。
【００２１】
本発明のプログラムにおける他の実施形態によれば、
データの復号のために、
第１のリモートデータを外部記憶装置から受信するリモートデータ受信手段と、
ローカルデータ蓄積手段から取得した第２のローカルデータから、第１のリモートデータを鍵として復号して第１のローカルデータを生成する復号手段と、
第１のローカルデータと第１のリモートデータとを合成して、原データを生成するデータ合成手段と
してコンピュータを更に機能させることも好ましい。
【発明の効果】
【００２２】
本発明によれば、１つの外部記憶装置を備えるだけで、端末の原データに対して極めて高い暗号化耐性を確保することができる。
【００２３】
本発明によれば、暗号鍵が原データから作成されるために、暗号鍵がその度毎に異なり、暗号化耐性を高める。また、秘密分散法を用いることによって、ローカルデータとリモートデータとを必ず揃えなければ、原データを復号することができない。リモートデータの長さを、ローカルデータの長さと最大で等しくすることによって、バーナム暗号化の近似の効果を得ることができる。更に、外部記憶装置との間の通信速度に応じてリモートデータの長さが決定されるので、リモートデータの長さＲが把握できず、更に暗号化耐性を高めることできる。更に、原データを圧縮することによって、原データのビット列（８ビット全体で）の規則性を備えないようにし、暗号化耐性を高めることができる。更に、許容通信時間を考慮して、リモートデータの長さを決定することができるので、端末１の即時性を高めることができる。このように、本発明によれば、ローカルデータ又はリモートデータのいずれか一方が、不正第三者に漏洩したとしても、他方のデータを含めて原圧縮データを復号することはできない。
【発明を実施するための最良の形態】
【００２４】
以下では、図面を用いて、本発明を実施するための最良の形態について詳細に説明する。
【００２５】
図１は、本発明における暗号化のためのフローチャートである。
【００２６】
（Ｓ１０１）原データを圧縮する。圧縮アルゴリズムは、既存の公知の方法であってもよい。
【００２７】
最初に原データを圧縮する理由は、データ量を小さくすることのみならず、暗号化耐性（暗号を解くための計算量）を高めることに効果がある。通常、原データは、一定の規則性の高い（例えば７ビット単位のテキスト情報）ものが多いために、暗号化されたデータにおいても一定の規則性（周期）を持つ場合もある。一定の規則性を有する暗号化データは、暗号化耐性が弱いといえる。原データを圧縮することによって、原データのビット列（８ビット全体で）の規則性を備えないようにし、暗号化耐性を高めることができる。
【００２８】
（Ｓ１０２）原圧縮データを、秘密分散法（ＳＳＳ：Secret Sharing Schemes）に基づいて、第１のローカルデータ及び第１のリモートデータに分割する。このとき、第１のリモートデータの長さが、外部記憶装置との間の通信速度に応じて決定される。
【００２９】
具体的には、最初に、原圧縮データを複数のエレメントに分割し、これらエレメントを、２つの割符（ローカルデータ及びリモートデータ）にランダムに振り分ける。このとき、エレメントの配置は、振り分けテーブルに記録される。振り分けテーブルには、分割数、原圧縮データの長さ、振り分け情報等が含まれる。例えば、エレメントに順にシーケンス番号を付与し、そのシーケンス番号毎に割符識別符号を付与することができる。
【００３０】
秘密分散法は、電子割符に用いられる技術であって、原データを複数の分割データに分割し、その分割データを特定数だけ集めることによって、原データが復元できるという技術である。これは、分割データを別々のリモートサーバに蓄積した場合に、そのサーバのダウンによって、原データが復元できなくなることを回避する技術である。
【００３１】
秘密分散法は、具体的には、原データをＮ個の分割データに分割し、任意のＫ（≦Ｎ）個の分散データを集めると原データが復元できる。但し、Ｎ個のうち、どのＫ−１個の分割データをもってしても原データは復元できない。このような秘密分散法を、（Ｋ，Ｎ）閾値法ともいう。
【００３２】
これに対し、本発明によれば、（２，２）閾値法の秘密分散法を用いて、原圧縮データを分割する。これは、原圧縮データをＮ＝２個に分割し、分割データをＫ＝２個（＝Ｎ）集めなければ復元できないとする。即ち、いずれか１個の分割データでは、原圧縮データを復号できないことを意味する。
【００３３】
２つの割符は、ローカルデータとリモートデータと称される。ローカルデータは、当該端末１の記憶装置に記憶される割符であって、リモートデータは、リモートサーバ２の記憶装置に記憶される割符である。
【００３４】
本発明において更に特徴的な点として、リモートデータの長さＲは、ローカルデータの長さＬ（原圧縮データの長さＤの半分）以下であって、且つ、ネットワークの通信帯域（伝送速度）に応じて可変となるものである。特に、ネットワークの通信帯域が狭い（伝送速度が遅い）ときには、リモートデータの長さＲを短くし、ネットワークの通信帯域が広い（伝送速度が早い）ときには、リモートデータの長さＲを長くする。但し、リモートデータの長さＲは、最長でもローカルデータの長さＬに等しい長さまでである。
【００３５】
本発明によれば、端末１の存在場所によってネットワークの通信帯域が変動するので、その度毎にリモートデータの長さＲは自動的に変化する。従って、端末１の利用者のみならず、第三者においても、リモートデータの長さＲは把握できない。リモートデータの長さＲが把握できなれければ、原圧縮データを復号することもできず、これも暗号化耐性を高める一因となる。
【００３６】
リモートデータの長さＲは、具体的には、端末１における復号時間を考慮して、次のような方法で決定される。復号時間は、端末１における復号処理時間と、サーバから暗号化データをダウンロードする通信時間とによって制約される。その通信時間は、以下のように、転送される暗号化データ量と伝送速度との関係式が成立する。
通信時間＝暗号化データ量／伝送速度
【００３７】
本発明によれば、外部記憶装置（例えばリモートサーバ）からリモートデータを取得するための許容通信時間が予め決定される。そうすると、リモートサーバとの間の通信速度に基づいて、許容通信時間を満たす最大データ長を算出することができる。従って、リモートデータの長さは、最大で前記ローカルデータの長さと等しく、且つ、最大データ長以下となるように決定される。
最大暗号化データ量＝許容通信時間×伝送速度
【００３８】
表１は、伝送速度に対する暗号化データ量を表す。許容通信時間を３秒とすると、例えば、以下のようになる。
【表１】
0004784260.tif 000002
【００３９】
（Ｓ１０３）リモートデータを、スクランブリングし、リモートデータ２（長さＲ２）を生成する。スクランブルアルゴリズムは、公知のものであってもよく、可変のパラメータを与えることができるものであってもよい。既に圧縮されたリモートデータに対して、スクランブルをかけることによって、規則性（周期）の長い乱数ビット列を導出することができる。また、リモートサーバに蓄積するためにも、リモートデータにスクランブルをかける必要もある。スクランブルアルゴリズムは、少なくとも可逆性を有する必要がある。
【００４０】
ここで、スクランブルアルゴリズムとして、ハッシュ関数を用いることもできる。但し、ハッシュ関数は可逆アルゴリズムでないので、原データをリモートサーバに蓄積しなければならない。
【００４１】
（Ｓ１０４）ローカルデータを、リモートデータ２で暗号化し、ローカルデータ２（長さＬ２）を生成する。
【００４２】
ここでの暗号化としては、例えばバーナム暗号化がある。バーナム暗号化とは、原データと鍵の長さとが等しく、且つ、鍵が十分な乱数系列となっている場合、原データに対して鍵の排他的論理和（ＸＯＲ）をとることにより、暗号化データのみからは解読不可能であることが証明されているアルゴリズムである。
【００４３】
リモートデータの長さが、ローカルデータの長さよりも短ければ、ローカルデータに対して、リモートデータをブロック暗号的に１つずつ当てはめてＸＯＲをとることもできる。
【００４４】
本発明によれば、近似のバーナム暗号化を構成するために、最大でローカルデータの長さＬとリモートデータの長さＲとを等しくするようにしている。ローカルデータＬを暗号化するための鍵として、スクランブリングされたリモートデータ２は、十分な乱数系列となっているといえる。そうすると、ローカルデータを、十分な乱数系列の鍵であるリモートデータ２によって排他的論理和をとれば、近似的にバーナム暗号になっている。従って、その効果も、近似的に、暗号化データのみから解読不可能となる。
【００４５】
また、本発明の特徴として、暗号鍵が原圧縮データから作成されるために、暗号鍵がその度毎に異なり、暗号化耐性を高めるという効果もある。
【００４６】
（Ｓ１０５）リモートデータ２は、ネットワークを介してリモートサーバ２へ送信される。
【００４７】
（Ｓ１０６）端末１は、ローカルデータ蓄積部に、ローカルデータ２を記憶する。このとき、リモートデータ２が蓄積されるリモートサーバ２のURI(Uniform Resource Identifier: RFC3986)が、ローカルデータ２に対応づけて、ローカルデータ蓄積部に蓄積される。
【００４８】
図２は、本発明における復号のためのフローチャートである。
【００４９】
（Ｓ２０１）端末１は、ローカルデータ蓄積部から、復号すべきデータのローカルデータ２を検索して取り出す。
【００５０】
（Ｓ２０２）端末１は、ローカルデータ蓄積部から、ローカルデータ２と共にＵＲＩも取り出す。端末１は、そのＵＲＩに基づいて、ネットワークを介してリモートサーバ２へ問い合わせ、リモートサーバ２から復号すべきデータのリモートデータ２を受信する。
【００５１】
（Ｓ２０３）ローカルデータ２に対して、リモートデータ２を鍵として復号する。具体的には、ローカルデータ２に対して、リモートデータ２のブロックごとの排他的論理和（ＸＯＲ）をとる。
【００５２】
（Ｓ２０４）リモートデータ２を逆スクランブリングし、リモートデータを導出する。
【００５３】
（Ｓ２０５）ローカルデータに含まれるエレメントと、リモートデータに含まれるエレメントとを、テーブル情報に応じて合成し、原圧縮データに復号する。
【００５４】
（Ｓ２０６）原圧縮データを解凍し、原データを導出する。
【００５５】
図３は、本発明におけるシステムの機能構成図である。
【００５６】
図３によれば、端末１は、ネットワークを介してリモートサーバ２に接続される。但し、リモートデータ２は、ＵＳＢメモリのような外部記憶装置であってもよい。即ち、リモートデータ２は、端末１以外の外部で記憶されればよい。
【００５７】
プログラムを端末に搭載されたコンピュータによって実行させることによって、以下で説明する端末１の各機能が実現されるものであってもよい。このようなプログラムは、デバイスドライバとして実装されるのが好ましい。
【００５８】
端末１は、暗号化のために、データ圧縮部１０１と、データ分割部１０２と、スクランブル部１０３と、暗号化部１０４と、リモートデータ送信部１０５と、ローカルデータ蓄積部１０６と、通信帯域検出部１１２とを有する。端末１は、更に、復号のために、リモートデータ受信部１０７と、逆スクランブル部１０８と、復号部１０９と、データ合成部１１０と、データ解凍部１１１とを有する。
【００５９】
データ圧縮部１０１は、前述したＳ１０１のように、原データを圧縮する。
【００６０】
データ分割部１０２は、前述したＳ１０２のように、データ圧縮部１０１から通知された原圧縮データを、秘密分散法に基づいて、第１のローカルデータ及び第１のリモートデータに分割する。このとき、第１のリモートデータの長さは、通信帯域検出部１１２によって検出された、外部記憶装置との間の通信速度に応じて決定される。
【００６１】
スクランブル部１０３は、前述したＳ１０３のように、データ分割部１０２から通知されたリモートデータを、スクランブリングし、リモートデータ２を生成する。
【００６２】
暗号化部１０４は、前述したＳ１０４のように、データ分割部１０２から通知されたローカルデータを、スクランブル部１０３から通知されたリモートデータ２で暗号化して、ローカルデータ２を生成する。
【００６３】
リモートデータ送信部１０５は、前述したＳ１０５のように、スクランブル部１０３から通知されたリモートデータ２を、ネットワークを介してリモートサーバ２へ送信する。
【００６４】
ローカルデータ蓄積部１０６は、前述したＳ１０６のように、暗号化部１０４から通知されたローカルデータ２を記憶する。また、前述したＳ２０１のように、そのローカルデータ２を復号部１０９へ出力する。
【００６５】
リモートデータ受信部１０７は、前述したＳ２０２のように、リモートサーバ２から復号すべきデータのリモートデータ２を受信する。
【００６６】
逆スクランブル部１０８は、前述したＳ２０４のように、リモートデータ２を逆スクランブリングし、リモートデータを導出する。
【００６７】
復号部１０９は、前述したＳ２０３のように、ローカルデータ２に対して、リモートデータ２を鍵として復号する。
【００６８】
データ合成部１１０は、前述したＳ２０５のように、ローカルデータに含まれるエレメントと、リモートデータに含まれるエレメントとを、テーブル情報に応じて合成し、原圧縮データに復号する。
【００６９】
データ解凍部１１１は、前述したＳ２０６のように、原圧縮データを解凍し、原データを導出する。
【００７０】
通信帯域検出部１１２は、リモートサーバ２との間の通信帯域（伝送速度）を検出し、その通信帯域情報をデータ分割部１０２へ通知する。
【００７１】
前述したように本発明におけるデータの分散記憶方法、端末及びプログラムによれば、１つの外部記憶装置を備えるだけで、端末の原データに対して極めて高い暗号化耐性を確保することができる。
【００７２】
本発明によれば、暗号鍵が原データから作成されるために、暗号鍵がその度毎に異なり、暗号化耐性を高める。また、秘密分散法を用いることによって、ローカルデータとリモートデータとを必ず揃えなければ、原データを復号することができない。リモートデータの長さを、ローカルデータの長さと最大で等しくすることによって、バーナム暗号化の近似の効果を得ることができる。更に、外部記憶装置との間の通信速度に応じてリモートデータの長さが決定されるので、リモートデータの長さＲが把握できず、更に暗号化耐性を高めることできる。更に、原データを圧縮することによって、原データのビット列（８ビット全体で）の規則性を備えないようにし、暗号化耐性を高めることができる。更に、許容通信時間を考慮して、リモートデータの長さを決定することができるので、端末１の即時性を高めることができる。このように、本発明によれば、ローカルデータ又はリモートデータのいずれか一方が、不正第三者に漏洩したとしても、他方のデータを含めて原圧縮データを復号することはできない。
【００７３】
本発明におけるデータは、例えば携帯端末に蓄積される顧客データであってもよい。一般に、顧客データはサーバに蓄積され、携帯端末からそのサーバを参照することによって実現される。本発明によれば、暗号化耐性が高いために、携帯端末に顧客データの一部をローカルデータとして蓄積することによって、そのデータを参照する際の即時性を高めることができる。
【００７４】
また、本発明におけるデータは、例えば著作権保護された音楽・映画コンテンツであってもよい。一般に、音楽・映画コンテンツは、携帯端末に蓄積されるものであるが、コピーによって不正利用される恐れもある。本発明のように、携帯端末とリモートサーバとを紐付けすることによって、これらコンテンツの一部が携帯端末に蓄積されるために即時性を確保できると共に、コンテンツの不正利用を防ぐことができる。
【００７５】
前述した本発明の種々の実施形態によれば、本発明の技術思想及び見地の範囲の種々の変更、修正及び省略を、当業者は容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。
【図面の簡単な説明】
【００７６】
【図１】本発明における暗号化のためのフローチャートである。
【図２】本発明における復号のためのフローチャートである。
【図３】本発明におけるシステムの機能構成図である。
【符号の説明】
【００７７】
１  端末
１０１  データ圧縮部
１０２  データ分割部
１０３  スクランブル部
１０４  暗号化部
１０５  リモートデータ送信部
１０６  ローカルデータ蓄積部
１０７  リモートデータ受信部
１０８  逆スクランブル部
１０９  復号部
１１０  データ合成部
１１１  データ解凍部
１１２  通信帯域検出部
２  リモートサーバ
【図１】
0004784260.tif 000003
【図２】
0004784260.tif 000004
【図３】
0004784260.tif 000005