(57)【要約】      （修正有）【課題】秘密情報の保護を強化する秘密分散モジュールと、データの読み出し又は書き込みを制御する制御モジュールとを提供する。【解決手段】秘密分散モジュールにより処理される秘密データは、仮想ドライブ内に保持される。制御モジュールは、仮想ドライブ８１を生成するための仮想ドライブメタデータ８０を取得し、取得された仮想ドライブメタデータに基づいて、情報処理装置のファイルシステムに仮想ドライブの設定を登録することにより仮想ドライブを生成し、ファイルシステムを介して、仮想ドライブ内で扱われるファイルの保存についてのファイル保存要求を検出し、ファイル保存要求が検出された場合に、保存されるべきファイルのファイルイメージを秘密分散モジュールに秘密分散法を用いて少なくとも第１の分散ファイル９１ａ及び第２の分散ファイル９１ｂへと分散させる。【選択図】図８
2017126319.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置のプロセッサを、
秘密分散法を用いて秘密データを分散することにより複数の分散データを形成する、ように構成される秘密分散モジュールと、
前記複数の分散データの各々の、対応する記憶装置のデータ領域への書き込みを制御する、ように構成される制御モジュールと、
として機能させるためのコンピュータプログラムであって、
前記制御モジュールは、
前記情報処理装置の揮発性メモリ内にのみ記憶されるファイルイメージとして前記秘密データを保持する仮想ドライブを生成するための仮想ドライブメタデータを取得し、
取得された前記仮想ドライブメタデータに基づいて、前記情報処理装置のファイルシステムに前記仮想ドライブの設定を登録することにより、前記仮想ドライブを生成する、
ようにさらに構成され、
前記制御モジュールは、
前記ファイルシステムを介して、前記仮想ドライブ内で扱われるファイルの保存についてのファイル保存要求を検出し、
前記ファイル保存要求が検出された場合に、保存されるべき前記ファイルのファイルイメージを前記秘密分散モジュールに前記秘密分散法を用いて少なくとも第１の分散ファイル及び第２の分散ファイルへと分散させる、
ようにさらに構成される、コンピュータプログラム。
【請求項２】
前記制御モジュールは、
前記仮想ドライブ内の前記ファイルの起動が要求された場合に、少なくとも前記第１の分散ファイル及び前記第２の分散ファイルを、第１の記憶装置及び第２の記憶装置からそれぞれ読み出し、
少なくとも前記第１の分散ファイル及び前記第２の分散ファイルから、起動されるべき前記ファイルの前記ファイルイメージを前記秘密分散モジュールに復元させる、
ようにさらに構成される、請求項１に記載のコンピュータプログラム。
【請求項３】
前記仮想ドライブ内のファイルのファイルメタデータは、少なくとも第１の分散ファイルメタデータ及び第２の分散ファイルメタデータへと分散され、
前記制御モジュールは、
前記第１の分散ファイルメタデータを前記第１の記憶装置から読み出し、
前記第２の分散ファイルメタデータを前記第２の記憶装置から読み出し、
少なくとも前記第１の分散ファイルメタデータ及び前記第２の分散ファイルメタデータから、前記秘密分散モジュールに前記ファイルメタデータを復元させ、
復元される前記ファイルメタデータを前記ファイルシステムへ受け渡すことにより、前記仮想ドライブ内の前記ファイルに関する標識の表示を可能にする、
ようにさらに構成される、請求項２に記載のコンピュータプログラム。
【請求項４】
前記仮想ドライブ内のファイルの前記起動は、復元される前記ファイルメタデータに基づいて表示される前記ファイルに関する前記標識に対するユーザ入力によって要求される、請求項３に記載のコンピュータプログラム。
【請求項５】
前記秘密分散モジュールは、前記ファイルシステムによるデータの処理における処理単位のサイズと同じブロックサイズごとに前記ファイルイメージを分散する、請求項１に記載のコンピュータプログラム。
【請求項６】
前記制御モジュールは、前記ファイルシステムに登録された前記仮想ドライブの前記設定を消去することにより、前記仮想ドライブを無効化する、ようにさらに構成される、請求項１に記載のコンピュータプログラム。
【請求項７】
秘密データを分散することにより複数の分散データを形成することの可能な秘密分散法を用いて、情報処理装置において実行される秘密管理方法であって、
前記情報処理装置の揮発性メモリ内にのみ記憶されるファイルイメージとして前記秘密データを保持する仮想ドライブを生成するための仮想ドライブメタデータを取得することと、
取得された前記仮想ドライブメタデータに基づいて、前記情報処理装置のファイルシステムに前記仮想ドライブの設定を登録することにより、前記仮想ドライブを生成することと、
前記ファイルシステムを介して、前記仮想ドライブ内で扱われるファイルの保存についてのファイル保存要求を検出することと、
前記ファイル保存要求が検出された場合に、保存されるべき前記ファイルのファイルイメージを前記秘密分散法を用いて少なくとも第１の分散ファイル及び第２の分散ファイルへと分散させることと、
前記第１の分散ファイル及び前記第２の分散ファイルを、それぞれ対応する記憶装置のデータ領域へ書き込むことと、
を含む方法。
【請求項８】
秘密分散法を用いて秘密データを分散することにより複数の分散データを形成する、ように構成される秘密分散モジュールと、
前記複数の分散データの各々の、対応する記憶装置のデータ領域への書き込みを制御する、ように構成される制御モジュールと、
を含む情報処理システムであって、
前記制御モジュールは、
情報処理装置の揮発性メモリ内にのみ記憶されるファイルイメージとして前記秘密データを保持する仮想ドライブを生成するための仮想ドライブメタデータを取得し、
取得された前記仮想ドライブメタデータに基づいて、前記情報処理装置のファイルシステムに前記仮想ドライブの設定を登録することにより、前記仮想ドライブを生成する、
ようにさらに構成され、
前記制御モジュールは、
前記ファイルシステムを介して、前記仮想ドライブ内で扱われるファイルの保存についてのファイル保存要求を検出し、
前記ファイル保存要求が検出された場合に、保存されるべき前記ファイルのファイルイメージを前記秘密分散モジュールに前記秘密分散法を用いて少なくとも第１の分散ファイル及び第２の分散ファイルへと分散させる、
ようにさらに構成される、情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンピュータプログラム、秘密管理方法及びシステムに関する。
【背景技術】
【０００２】
近年、企業、官公庁、教育機関又はその他の団体により管理される情報が漏洩する事件が相次いで発生している。この原因の１つは、情報通信技術の発達の結果として情報へのアクセスが容易になり及び情報の可搬性も拡大しているにも関わらず、情報への不正なアクセス又はユーザの不注意による情報漏洩を防止する仕組みが十分に整備されていないことである。情報漏洩のリスクにさらされているのは、企業等の団体のみならず、個人も同様である。
【０００３】
セキュリティリスクから情報を保護するために最も広く利用されている技術は、パスワードを用いた暗号化である。しかし、単に情報を暗号化するだけでは、パスワード又は暗号鍵のクラッキング又はソーシャルハッキングによる情報漏洩のリスクを解消できない。全てのエンドユーザがパスワードを厳重に管理することを期待することも、現実的ではない。そこで、近年注目されている技術が、秘密分散法である。秘密分散法によれば、情報は複数の断片へと分散され、所定数以上の断片が集まらない限り元の情報は復元不能とされる。
【０００４】
特許文献１は、秘密分散法を用いて情報漏洩を抑止するためのシステムを提案している。特許文献１により提案されている情報漏洩抑止システムは、情報端末において利用されるアプリケーション（ＡＰ）の実行ファイル、ドライバ及びデータから仮想ＡＰイメージファイルを生成し、仮想ＡＰイメージファイルを２つ以上のシェアファイルへと分散する。これらシェアファイルのうちの１つは、情報端末とは別個の携帯端末により記憶される。情報端末により記憶されたシェアファイルは、情報端末の紛失又は盗難が管理サーバへと通知された場合に、管理サーバからの指示に応じて消去され得る。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−１３９９９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１により提案されたシステムでは、１つ以上のアプリケーションに関連する全てのファイル及びデータを包含する仮想ＡＰイメージファイルごとに秘密分散が行われる。仮想ＡＰイメージファイルは、情報端末のシャットダウンを契機として、複数のシェアファイルへと分散される。このシャットダウンを契機とした秘密分散が行われるまでは、ファイル及びデータは保護されない。一旦複数のシェアファイルへと分散された仮想ＡＰイメージファイルは、ユーザが情報端末上の専用のアプリケーションを起動することによって復元され、二次記憶装置により再び記憶される。例えばユーザが気付かないうちに悪意ある第三者が情報端末へと不正侵入した場合には、仮想ＡＰイメージファイル内の秘密情報は、比較的容易に読み取られ得る。また、シャットダウンされていない情報端末が盗難された場合にも、秘密情報の漏洩は避けられないであろう。特許文献１により提案されたシステムにおいて、仮想ＡＰイメージファイルの対象とされるアプリケーションがより多いほど、より多くの情報が保護される。しかし、対象のアプリケーションの増加は秘密分散処理の遅延を増大させ、ユーザビリティを低下させる。仮想ＡＰイメージファイルの対象ではないアプリケーションの情報は、保護されない。
【０００７】
本開示に係る技術は、上述した既存の技術の欠点のうちの１つ以上を解決し又は少なくとも軽減する仕組みを提供する。
【課題を解決するための手段】
【０００８】
本開示のある観点によれば、情報処理装置のプロセッサを、秘密分散法を用いて秘密データを分散することにより複数の分散データを形成する、ように構成される秘密分散モジュールと、前記複数の分散データの各々の、対応する記憶装置のデータ領域への書き込みを制御する、ように構成される制御モジュールと、として機能させるためのコンピュータプログラムであって、前記制御モジュールは、前記情報処理装置の揮発性メモリ内にのみ記憶されるファイルイメージとして前記秘密データを保持する仮想ドライブを生成するための仮想ドライブメタデータを取得し、取得された前記仮想ドライブメタデータに基づいて、前記情報処理装置のファイルシステムに前記仮想ドライブの設定を登録することにより、前記仮想ドライブを生成する、ようにさらに構成され、前記制御モジュールは、前記ファイルシステムを介して、前記仮想ドライブ内で扱われるファイルの保存についてのファイル保存要求を検出し、前記ファイル保存要求が検出された場合に、保存されるべき前記ファイルのファイルイメージを前記秘密分散モジュールに前記秘密分散法を用いて少なくとも第１の分散ファイル及び第２の分散ファイルへと分散させる、ようにさらに構成される、コンピュータプログラムが提供される。
【０００９】
前記制御モジュールは、前記仮想ドライブ内の前記ファイルの起動が要求された場合に、少なくとも前記第１の分散ファイル及び前記第２の分散ファイルを、第１の記憶装置及び第２の記憶装置からそれぞれ読み出し、少なくとも前記第１の分散ファイル及び前記第２の分散ファイルから、起動されるべき前記ファイルの前記ファイルイメージを前記秘密分散モジュールに復元させる、ようにさらに構成されてもよい。
【００１０】
前記仮想ドライブ内のファイルのファイルメタデータは、少なくとも第１の分散ファイルメタデータ及び第２の分散ファイルメタデータへと分散され、前記制御モジュールは、前記第１の分散ファイルメタデータを前記第１の記憶装置から読み出し、前記第２の分散ファイルメタデータを前記第２の記憶装置から読み出し、少なくとも前記第１の分散ファイルメタデータ及び前記第２の分散ファイルメタデータから、前記秘密分散モジュールに前記ファイルメタデータを復元させ、復元される前記ファイルメタデータを前記ファイルシステムへ受け渡すことにより、前記仮想ドライブ内の前記ファイルに関する標識の表示を可能にする、ようにさらに構成されてもよい。
【００１１】
前記仮想ドライブ内のファイルの前記起動は、復元される前記ファイルメタデータに基づいて表示される前記ファイルに関する前記標識に対するユーザ入力によって要求されてもよい。
【００１２】
前記秘密分散モジュールは、前記ファイルシステムによるデータの処理における処理単位のサイズと同じブロックサイズごとに前記ファイルイメージを分散してもよい。
【００１３】
前記制御モジュールは、前記ファイルシステムに登録された前記仮想ドライブの前記設定を消去することにより、前記仮想ドライブを無効化する、ようにさらに構成されてもよい。
【００１４】
他の観点によれば、秘密データを分散することにより複数の分散データを形成することの可能な秘密分散法を用いて、情報処理装置において実行される秘密管理方法であって、前記情報処理装置の揮発性メモリ内にのみ記憶されるファイルイメージとして前記秘密データを保持する仮想ドライブを生成するための仮想ドライブメタデータを取得することと、取得された前記仮想ドライブメタデータに基づいて、前記情報処理装置のファイルシステムに前記仮想ドライブの設定を登録することにより、前記仮想ドライブを生成することと、前記ファイルシステムを介して、前記仮想ドライブ内で扱われるファイルの保存についてのファイル保存要求を検出することと、前記ファイル保存要求が検出された場合に、保存されるべき前記ファイルのファイルイメージを前記秘密分散法を用いて少なくとも第１の分散ファイル及び第２の分散ファイルへと分散させることと、前記第１の分散ファイル及び前記第２の分散ファイルを、それぞれ対応する記憶装置のデータ領域へ書き込むことと、を含む方法が提供される。
【００１５】
他の観点によれば、秘密分散法を用いて秘密データを分散することにより複数の分散データを形成する、ように構成される秘密分散モジュールと、前記複数の分散データの各々の、対応する記憶装置のデータ領域への書き込みを制御する、ように構成される制御モジュールと、を含む情報処理システムであって、前記制御モジュールは、情報処理装置の揮発性メモリ内にのみ記憶されるファイルイメージとして前記秘密データを保持する仮想ドライブを生成するための仮想ドライブメタデータを取得し、取得された前記仮想ドライブメタデータに基づいて、前記情報処理装置のファイルシステムに前記仮想ドライブの設定を登録することにより、前記仮想ドライブを生成する、ようにさらに構成され、前記制御モジュールは、前記ファイルシステムを介して、前記仮想ドライブ内で扱われるファイルの保存についてのファイル保存要求を検出し、前記ファイル保存要求が検出された場合に、保存されるべき前記ファイルのファイルイメージを前記秘密分散モジュールに前記秘密分散法を用いて少なくとも第１の分散ファイル及び第２の分散ファイルへと分散させる、ようにさらに構成される、情報処理システムが提供される。
【発明の効果】
【００１６】
本開示に係る技術によれば、上述した既存の技術の欠点のうちの１つ以上を解決し又は少なくとも軽減することができる。
【図面の簡単な説明】
【００１７】
【図１Ａ】本開示に係る技術が適用され得るシステムの概要を示している。
【図１Ｂ】本開示に係る技術が適用され得るシステムの第１の応用例を示している。
【図１Ｃ】本開示に係る技術が適用され得るシステムの第２の応用例を示している。
【図２】一実施形態に係る情報処理装置のハードウェア構成の一例を示している。
【図３】二次記憶装置及び外部記憶装置により記憶され得るデータの構成の一例を示している。
【図４】一実施形態に係る情報処理装置の論理的な機能構成の一例を示している。
【図５】仮想ドライブを新たに生成するための仮想ドライブ生成処理の流れの一例を示すフローチャートである。
【図６】ファイルを秘密分散法を用いて分散するためのファイル分散処理の流れの一例を示すフローチャートである。
【図７】仮想ドライブを復元するための仮想ドライブ復元処理の流れの一例を示すフローチャートである。
【図８】復元された仮想ドライブの概略的なデータ構成の一例を示している。
【図９】ファイルを秘密分散法を用いて復元するためのファイル復元処理の流れの一例を示すフローチャートである。
【図１０】ファイルを秘密分散法を用いて分散するためのファイル分散処理の流れの第１の変形例を示すフローチャートである。
【図１１】ファイルを秘密分散法を用いて分散するためのファイル分散処理の流れの第２の変形例を示すフローチャートである。
【発明を実施するための形態】
【００１８】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１９】
また、以下の順序で説明を行う。
１．システムの概要
（１）システム構成例
（２）用語の意味
２．装置の構成
（１）ハードウェア構成例
（２）データ構成例
（３）機能構成例
３．処理の流れ
（１）仮想ドライブ生成
（２）ファイル分散
（３）仮想ドライブ復元
（４）ファイル復元
４．まとめ
５．変形例
（１）ファイル分散−第１の変形例
（２）ファイル分散−第２の変形例
（３）その他の変形例
【００２０】
＜１．システムの概要＞
（１）システム構成例
図１Ａは、本開示に係る技術が適用され得るシステムの概要を示している。図１Ａを参照すると、秘密情報管理システム１は、情報処理装置１００と、外部記憶装置４００とを含む。
【００２１】
情報処理装置１００は、例えば、ノートブックＰＣ（Personal  Computer）、タブレットＰＣ、デスクトップＰＣ、スマートフォン、セルラーフォン、ナビゲーション端末又はＰＤＡ（Personal  Digital  Assistant）などの、いかなる種類の情報端末又は電子装置であってもよい。ユーザは、情報処理装置１００上で、様々な形態のデータを扱う。情報処理装置１００上で扱われるデータは、ユーザ又は情報処理装置１００の管理者が秘密にすることを望むデータ（以下、秘密データという）を含む。秘密データは、例えば、テキスト、文書、通信メッセージ、画像、映像、音声、設定データ又は実行可能ファイルといった、いかなる形式のデータであってもよい。情報処理装置１００は、メインメモリと二次記憶装置とを備える。メインメモリは、典型的には、揮発性メモリ（例えば、ＲＡＭ（Random  Access  Memory））である。二次記憶装置は、不揮発性の記憶媒体を有する、例えばＨＤＤ（Hard  Disk  Drive）又はＳＳＤ（Solid  State  Drive）であってよい。
【００２２】
外部記憶装置４００は、情報処理装置１００の何らかの接続インタフェースを介して情報処理装置１００へと接続される記憶装置である。外部記憶装置４００は、不揮発性の記憶媒体を有する。外部記憶装置４００は、例えば、ＵＳＢ（Universal  Serial  Bus）メモリ、ＩＣ（Integrated  Circuit）カード、メモリカード（例えば、ＳＤカード）又は外付けＨＤＤのような、情報の記憶を主な目的とした周辺装置であってもよい。また、外部記憶装置４００は、例えばＰＣ又はスマートフォンなどの、情報処理装置１００に類似する種類の情報端末又は電子装置であってもよい。また、外部記憶装置４００は、例えば、インターネット又はＬＡＮ（Local  Area  Network）などのネットワークを介してアクセスされ得る、ＮＡＳ（Network  Attached  Storage）、クラウドサーバ又はデータサーバなどのネットワーク装置であってもよい。外部記憶装置４００の情報処理装置１００との接続は、有線接続であってもよく又は無線接続であってもよい。情報処理装置１００の接続インタフェースは、接続端子、接続ケーブルを受け入れるコネクタ、又はアンテナ及び無線フロントエンドなど、いかなる形態のインタフェースであってもよい。
【００２３】
後述するいくつかの実施形態において、本開示に係る技術により保護される秘密データは、秘密分散法を用いてＮ個（Ｎは２以上の整数）の分散データへと分散される。そして、Ｎ個の分散データのうちの少なくとも１つが、外部記憶装置４００へと書き込まれる。秘密データの作成、閲覧及び更新は、情報処理装置１００上で生成される仮想ドライブ内で行われる。秘密データは、不揮発性メモリにより記憶される実体的なファイルとしては存在せず、揮発性メモリ（典型的には、メインメモリ）内にのみ記憶されるファイルイメージとして保持される。仮想ドライブは、外部記憶装置４００が情報処理装置１００へと接続されている状態で生成され、仮想ドライブのアンマウント又は外部記憶装置４００の接続切断に応じて消失する。一例として、仮想ドライブを生成するための仮想ドライブメタデータもまた、秘密分散法を用いて複数の分散メタデータへと分散され、それら分散メタデータのうちの少なくとも１つが外部記憶装置４００へと書き込まれる。これは、外部記憶装置４００を情報処理装置１００へ接続しない限り、秘密データをユーザが扱うための場所を提供する仮想ドライブが生成されないこと、及びその仮想ドライブ自体も秘密分散法によって保護されることを意味する。例えば、秘密データのみを秘密分散法を用いて分散する従来の手法では、初めて作成されている途中の、分散前のデータは保護されない。データ作成の途中で頻繁にユーザが秘密分散処理を実行しなければならないとすれば、そうした操作はユーザにとって煩雑である。対照的に、ここで説明される実施形態によれば、秘密データをユーザが扱うための場所を提供する仮想ドライブ自体が、秘密分散法によって保護される。即ち、仮想ドライブを作業場所として作業が行われる限り、データは作業の当初から保護される。
【００２４】
また、アプリケーションの実行ファイル、ドライバ及びデータを含む包括的なデータセットを単一のイメージとして分散する従来の手法では、アプリケーションを扱う都度、大規模なイメージデータを暗号化し及び復号することを要し、無視できない処理遅延が発生する。イメージデータのサイズを抑制するためには、保護対象のアプリケーションを縮減せざるを得ない。対照的に、ここで説明される実施形態によれば、仮想ドライブ内のデータは、いかなる種類のアプリケーションによっても扱われることができる。また、メタデータも仮想ドライブ内のファイルも別々に処理され得るため、処理遅延はごくわずかである。
【００２５】
さらに、特定のアプリケーションに関連するデータ又は特定の種類のデータのみを秘密分散法を用いて分散する手法では、ユーザ又はシステム管理者が保護対象を予め適切に設定することを要する。こうした設定が不適切に行われた場合又は設定が行われなかった場合には、保護されるべき秘密データが漏洩のリスクにさらされる。現実的には、パスワードの設定又は更新といった簡単な作業ですらユーザは怠りがちであるため、セキュリティの目的でユーザに課せられる負担はできる限り小さい方が望ましい。この点において、ここで説明される実施形態によれば、ユーザは、外部記憶装置４００を情報処理装置１００へ接続するという直感的なアクションによって仮想ドライブを利用することを可能とされる。そして、一旦仮想ドライブが生成されれば、ユーザは、その仮想ドライブ内で、通常の情報端末上のデータ領域で作業するのと同様の感覚で秘密データを扱うことができる。さらに、作業が終了すれば、ユーザは、外部記憶装置４００を情報処理装置１００から接続切断するだけで、第三者による秘密データへのアクセスを不能とすることができる。これは、情報端末のシャットダウンを契機として秘密分散処理を実行してディスク上の秘密データを削除する従来の手法が、情報端末への不正侵入又は情報端末の盗難による情報漏洩のリスクを十分に解消できていない点とは対照的である（事後的なデータの遠隔削除は、情報漏洩を防ぐには遅すぎる可能性がある）。
【００２６】
図１Ｂは、本開示に係る技術が適用され得るシステムの第１の応用例を示している。図１Ａの例では、秘密情報管理システム１が１つの外部記憶装置４００のみを含んでいるが、図１Ｂに示した第１の応用例では、秘密情報管理システム１ａは、情報処理装置１００ａに加えて、２つの外部記憶装置４００ａ、４００ｂを含む。例えば、外部記憶装置４００ａは、情報処理装置１００ａへと直接的に接続され得るＵＳＢメモリである。外部記憶装置４００ｂは、無線通信インタフェースを介して情報処理装置１００ａへ接続され得るデータサーバである。情報処理装置１００ａにおいて秘密分散法を用いて秘密データから分散された分散データのうちの少なくとも１つは、外部記憶装置４００ａへ書き込まれ得る。分散データのうちの少なくとも他の１つは、外部記憶装置４００ｂへ書き込まれ得る。情報処理装置１００ａの二次記憶装置は、分散データのうちの１つ以上を記憶してもよく、又は記憶しなくてもよい。
【００２７】
図１Ｃは、本開示に係る技術が適用され得るシステムの第２の応用例を示している。図１Ｃに示した第２の応用例では、秘密情報管理システム１ｂは、情報処理装置１００ｂに加えて、２つの外部記憶装置４００ａ、４００ｃを含む。外部記憶装置４００ｃは、ユーザにより携帯され又はユーザにより装着され得る端末装置である。情報処理装置１００ｂにおいて秘密分散法を用いて秘密データから分散された分散データのうちの少なくとも１つは、外部記憶装置４００ａへ書き込まれ得る。分散データのうちの少なくとも他の１つは、外部記憶装置４００ｃへ書き込まれ得る。情報処理装置１００ｂの二次記憶装置は、分散データのうちの１つ以上を記憶してもよく、又は記憶しなくてもよい。
【００２８】
これら応用例から理解されるように、本開示に係る技術において、秘密データは、秘密分散法を用いていくつの分散データへと分散されてもよい。また、それら分散データは、物理的に異なる少なくとも２つの記憶装置へと書き込まれればよく、それら記憶装置は、任意の接続形態で接続可能ないかなる種類の装置を含んでもよい。また、後に詳しく説明される、情報処理装置において実行されるコンピュータプログラムは、必ずしも情報処理装置の内部の媒体（非一時的なコンピュータ読取可能な媒体）に予め記憶されていなくてもよく、例えば実行時に外部記憶装置４００ｂのような外部のサーバからダウンロードされ又は呼び出されてもよい。
【００２９】
なお、本明細書におけるこれ以降の説明において、秘密情報管理システム１、１ａ及び１ｂは、符号の末尾のアルファベットを省略することにより、秘密情報管理システム１と総称される。同様に、情報処理装置１００、１００ａ及び１００ｂは情報処理装置１００、外部記憶装置４００、４００ａ、４００ｂ及び４００ｃは外部記憶装置４００とそれぞれ総称される。また、多くの例において、説明の簡明さのために、秘密データは秘密分散法を用いて２つの分散データへと分散されるものとする。但し、これらは、本開示に係る技術の範囲を限定するものではない。
【００３０】
（２）用語の意味
以下、本明細書で使用される主な用語の典型的な意味について説明する。
ａ）秘密分散法（secret  splitting/secret  sharing）
秘密分散法とは、秘密にすることが望まれる情報を所定の方式で変換し、変換後の情報を複数の断片（シェアともいう）へと分散する技術である。情報変換方式を適切に選択することで、個々の断片から元の情報を推測することが不能となる。元の情報を復元するためにはある数以上の断片を結合することを要し、これら断片を物理的に別個の装置に記憶させることで、例えば１つの装置の紛失又は盗難といったセキュリティリスクに対する保護が提供される。複数の断片への分散の前の変換、及び複数の断片を結合した後の逆変換を、それぞれ暗号化及び復号ともいう。秘密分散法のため使用されるよく知られた情報変換方式の１つは、１９９７年にR.  Rivest氏により提案されたＡＯＮＴ（All  Or  Nothing  Transform）方式である。ＡＯＮＴ−ＣＢＣ（Cipher  Block  Chaining）方式及びＡＯＮＴ−ＯＡＥＰ（Optimal  Asymmetric  Encryption  Padding）などのＡＯＮＴ方式の派生が存在し、例えばＡＯＮＴ−ＣＢＣ方式は小ブロック単位の高速な暗号化に適している。後述する実施形態では、ＡＯＮＴ方式が利用され得る。ＡＯＮＴ方式は、変換の前後で情報量を大きく変化させない点で、情報端末での扱いに良好に適している。但し、本開示に係る技術は、閾値方式などの他の情報変換方式にも適用可能である。
【００３１】
ｂ）分散データ（split  data）
分散データとは、秘密分散法を用いて秘密データを分散することにより形成されるデータの個々の断片をいう。上述したように、秘密データは、例えば、テキスト、文書、通信メッセージ、画像、映像、音声、設定データ又は実行可能ファイルといった、いかなる形式のデータであってもよい。
【００３２】
ｃ）仮想ドライブ（virtual  drive）
仮想ドライブとは、物理的実体としては存在しないものの、ユーザ又はアプリケーションからは存在しているように見える、仮想化された記憶領域（ドライブ）をいう。後述する実施形態において、秘密データは、仮想ドライブ内に保持される。
【００３３】
ｄ）ファイルイメージ（file  image）
ファイルイメージとは、仮想ドライブ内の秘密データの一表現形式である。例えば二次記憶装置上に記憶され得る通常のファイルと区別するために、このファイルイメージとの語が使用される。ファイルイメージが秘密分散法を用いて分散されると、分散ファイルが形成される。本開示に係る技術は、ユーザ又はアプリケーションにより扱われる一般的なファイルのみならず、システムが暗黙的に扱う制御ファイル（例えば、ドライブ内の階層的なフォルダ構成を定義する制御ファイルなど）をも、秘密分散の対象とされるファイルイメージとして扱うことができる。
【００３４】
ｅ）仮想ドライブメタデータ（virtual  drive  meta-data）
仮想ドライブメタデータとは、仮想ドライブを生成する際に利用されるメタデータをいう。一例として、仮想ドライブメタデータは、生成すべき仮想ドライブのドライブ名及びドライブサイズ（容量）を含む。仮想ドライブのドライブ名は、例えば仮想ドライブ内のファイルへユーザ又はアプリケーションがアクセスする際のファイルパスの一部になり得る。ドライブ名は、例えば、Ｗｉｎｄｏｗｓ（登録商標）ＯＳにおけるドライブレターであってもよい。仮想ドライブメタデータは、さらに、仮想ドライブの作成日時、更新日時及び使用済み領域サイズなどのその他のデータを含んでもよい。分散メタデータとは、仮想ドライブメタデータを秘密分散法を用いて分散することにより形成されるデータをいう。
【００３５】
ｆ）ファイルメタデータ（file  meta-data）
ファイルメタデータとは、個々のファイルの属性を表すメタデータをいう。一例として、ファイルメタデータは、ファイル名、ファイルパス、作成日時、更新日時及びファイルサイズを含む。分散ファイルメタデータとは、ファイルメタデータを秘密分散法を用いて分散することにより形成されるデータをいう。後述する実施形態において、ファイルイメージが復元されなくても、分散ファイルメタデータからファイルメタデータを復元することにより、仮想ドライブ内のファイルに関する標識を例えばファイルシステムを通じて画面上に表示することが可能とされる。
【００３６】
ｇ）分散ドライブ（split  drive）
分散ドライブとは、分散ファイル、分散メタデータ及び分散ファイルメタデータなどを含み得る分散データの書き込み先となる実ドライブ（又は実ドライブ上のデータ領域）をいう。分散ドライブの記憶領域は、メタデータ領域と、ファイルデータ領域とから構成され得る。メタデータ領域には、分散メタデータ及び分散ファイルメタデータが書き込まれる。ファイルデータ領域には、分散ファイルが書き込まれる。各分散ドライブには、各分散ドライブを一意に識別するための分散ドライブ識別子が付与される。分散ドライブ識別子は、例えば、互いに対応する分散ドライブ（同じ秘密データから分散された分散データがそれぞれ書き込まれるドライブ）の間で共通する文字列と、それら分散ドライブを区別する枝番号との連結であってもよい。こうした識別子は、例えば、分散ドライブ間の対応関係の検証のために利用され得る。
【００３７】
＜２．装置の構成＞
（１）ハードウェア構成例
図２は、一実施形態に係る情報処理装置１００のハードウェア構成の一例を示している。図２を参照すると、情報処理装置１００は、プロセッサ１０１、メインメモリ１０２、ディスプレイ１０３、入力インタフェース１０４、二次記憶装置１０５、及び１つ以上の接続インタフェース１０６を備える。プロセッサ１０１は、例えばＣＰＵ（Central  Processing  Unit）又はＭＰＵ（Micro  Processing  Unit）であってよい。プロセッサ１０１は、例えば二次記憶装置１０５又は他の何らかの記憶媒体により記憶されるコンピュータプログラムを実行することにより、秘密情報管理システム１又は情報処理装置１００の動作全般を制御する。メインメモリ１０２は、例えばＲＡＭのような揮発性メモリであってよい。ディスプレイ１０３は、例えば液晶ディスプレイ（ＬＣＤ）又は有機発光ダイオード（ＯＬＥＤ）ディスプレイであってよい。入力インタフェース１０４は、例えばタッチパネル、キーパッド、キーボード又はポインティングデバイスなどを含んでよく、ユーザ入力を受け付けるように構成される。二次記憶装置１０５は、例えばＨＤＤ又はＳＳＤであってよい。一例として、二次記憶装置１０５は、分散データが書き込まれる分散ドライブとして使用され得る。接続インタフェース１０６は、接続されるべき外部記憶装置４００の種類に応じて、例えばＵＳＢインタフェース、ＩＣカードインタフェース、メモリカードインタフェース、有線ＬＡＮインタフェース、無線ＬＡＮインタフェース又はセルラー通信インタフェースなどを含んでよい。
【００３８】
（２）データ構成例
図３は、二次記憶装置１０５及び外部記憶装置４００により記憶され得るデータの構成の一例を示している。
【００３９】
図３を参照すると、二次記憶装置１０５には、制御モジュールプログラム５０及び秘密分散モジュールプログラム６０が記憶されている。制御モジュールプログラム５０及び秘密分散モジュールプログラム６０は、情報処理装置１００のプロセッサ１０１を、それぞれ制御モジュール１０及び秘密分散モジュール３０（図４参照）として機能させるための命令セットを含む。制御モジュール１０は、秘密分散モジュール３０により形成される複数の分散データの各々の、対応する記憶装置のデータ領域からの読み出し及び／又は当該データ領域への書き込みを制御するモジュールである。秘密分散モジュール３０は、制御モジュール１０による制御の下で、秘密分散法を用いて秘密データを分散することにより複数の分散データを形成し、及びそれら複数の分散データのうちの少なくとも２つの分散データを結合することにより元のデータを復元するためのモジュールである。
【００４０】
外部記憶装置４００の予め定義される記憶領域には、基本構成情報７５が記憶される。基本構成情報７５は、例えば、分散ドライブ数Ｎと、Ｎ個の分散ドライブパスと、秘密分散アルゴリズムのバージョンとを含み得る。分散ドライブの数が固定的である場合（例えば、常に秘密データが２つの分散データへと分散される場合）には、分散ドライブ数Ｎは省略されてよい。例えば、Ｎ＝２の場合、第１の分散ドライブパスは、制御モジュール１０が第１の分散ドライブ７０ａへアクセスするためのパスを表し、第２の分散ドライブパスは、制御モジュール１０が第２の分散ドライブ７０ｂへアクセスするためのパスを表す。
【００４１】
外部記憶装置４００は、第１の分散ドライブ７０ａをさらに含む。二次記憶装置１０５は、第２の分散ドライブ７０ｂをさらに含む。外部記憶装置４００の第１の分散ドライブ７０ａは、第１の分散ドライブ識別子７１ａ、第１の分散メタデータ８０ａ、第１の分散ファイルメタデータ９０ａ及び第１の分散ファイル９１ａを記憶する。二次記憶装置１０５の第２の分散ドライブ７０ｂは、第２の分散ドライブ識別子７１ｂ、第２の分散メタデータ８０ｂ、第２の分散ファイルメタデータ９０ｂ及び第２の分散ファイル９１ｂを記憶する。
【００４２】
第１の分散ドライブ識別子７１ａは、複数の分散ドライブのうちの第１の分散ドライブ７０ａを一意に識別する。第２の分散ドライブ識別子７１ｂは、複数の分散ドライブのうちの第２の分散ドライブ７０ｂを一意に識別する。第１の分散メタデータ８０ａ及び第２の分散メタデータ８０ｂは、仮想ドライブを生成するための仮想ドライブメタデータを秘密分散法を用いて分散することにより形成された分散データである。
【００４３】
第１の分散ファイルメタデータ９０ａ及び第２の分散ファイルメタデータ９０ｂ、並びに第１の分散ファイル９１ａ及び第２の分散ファイル９１ｂは、仮想ドライブ内に保護されるべきファイルが作成され、そのファイルの保存が要求された場合に、それぞれの分散ドライブ内に記憶され得る。第１の分散ファイルメタデータ９０ａ及び第２の分散ファイルメタデータ９０ｂは、仮想ドライブ内のファイルのファイルメタデータを秘密分散法を用いて分散することにより形成された分散データである。第１の分散ファイル９１ａ及び第２の分散ファイル９１ｂは、仮想ドライブ内のファイルのファイルイメージを秘密分散法を用いて分散することにより形成された分散データである。図３には、１セットの分散ファイルメタデータ及び分散ファイルのみを示しているが、実際には、仮想ドライブ内のファイルの数だけ、分散ファイルメタデータ及び分散ファイルのセットが記憶され得る。
【００４４】
（３）機能構成例
図４は、一実施形態に係る情報処理装置１００の論理的な機能構成の一例を示している。なお、本開示に係る技術に直接的に関連しない機能は、図から省略されている。図４を参照すると、情報処理装置１００は、上述した制御モジュール１０及び秘密分散モジュール３０に加えて、ファイルシステム４０及びＵＩ（User  Interface）モジュール４５を有する。
【００４５】
制御モジュール１０は、ドライブ設定機能１１、仮想ドライブメタデータ分散機能１２、分散ドライブ連携機能１３、イベント監視機能１４、仮想ドライブメタデータ復元機能１５、仮想ドライブ管理機能１６、ファイル分散機能１７及びファイル復元機能１８を有する。
【００４６】
ドライブ設定機能１１は、生成されるべき仮想ドライブの設定データを取得して、仮想ドライブメタデータを作成するための機能である。ドライブ設定機能１１は、例えば、ＵＩモジュール４５を介してディスプレイ１０３の画面上に対話的なＧＵＩを表示させ、ユーザ又はシステム管理者により入力インタフェース１０４を用いて入力される設定データを取得してもよい。その代わりに、ドライブ設定機能１１は、他の装置において予め作成された設定データファイルを外部のデータサーバから受信することにより、設定データを取得してもよい。ドライブ設定機能１１は、同様に、基本構成情報７５及び分散ドライブ識別子７１ａ、７１ｂのための設定データをも取得し得る。
【００４７】
仮想ドライブメタデータ分散機能１２は、ドライブ設定機能１１により作成される仮想ドライブメタデータを、分散に関する設定（例えば、分散ドライブ数Ｎ及びドライブごとの分散サイズ）に従って、秘密分散モジュール３０に少なくとも第１の分散メタデータ８０ａ及び第２の分散メタデータ８０ｂへと分散させる。
【００４８】
分散ドライブ連携機能１３は、外部記憶装置４００に第１の分散ドライブ７０ａが存在しない場合には、外部記憶装置４００の予め定義される記憶領域に基本構成情報７５を書き込み、第１の分散ドライブ７０ａのデータ領域を作成し、第１の分散ドライブ７０ａに第１の分散ドライブ識別子７１ａを書き込む。そして、分散ドライブ連携機能１３は、仮想ドライブメタデータから分散された第１の分散メタデータ８０ａを第１の分散ドライブ７０ａへと書き込む。また、分散ドライブ連携機能１３は、二次記憶装置１０５に第２の分散ドライブ７０ｂが存在しない場合には、二次記憶装置１０５に第２の分散ドライブ７０ｂのデータ領域を作成し、第２の分散ドライブ７０ｂに第２の分散ドライブ識別子７１ｂを書き込む。そして、分散ドライブ連携機能１３は、仮想ドライブメタデータから分散された第２の分散メタデータ８０ｂを第２の分散ドライブ７０ｂへと書き込む。
【００４９】
イベント監視機能１４は、ファイルシステム４０、ＵＩモジュール４５及び接続インタフェース１０６において発生するイベントを監視し及び検出する。イベント監視機能１４により検出されるイベントは、例えば、次を含み得る：
−ファイル保存要求
−仮想ドライブのアンマウント要求
−外部記憶装置４００の情報処理装置１００への接続
−外部記憶装置４００の情報処理装置１００からの接続切断
−仮想ドライブの起動（オープン）
−仮想ドライブ内のフォルダの起動
−仮想ドライブ内のファイルの起動
例えば、ユーザが文書編集アプリケーションに編集された文書ファイルを保存することを指示した場合、イベント監視機能１４は、文書編集アプリケーションからのファイル保存要求をファイルシステム４０を介して検出し得る。
【００５０】
仮想ドライブメタデータ復元機能１５は、分散メタデータが対応する記憶装置へとそれぞれ書き込まれ、外部記憶装置４００が情報処理装置１００から接続切断された後、あるイベントの検出に応じて、第１の分散メタデータ８０ａを分散ドライブ連携機能１３を通じて第１の分散ドライブ７０ａから読み出す。また、仮想ドライブメタデータ復元機能１５は、対応する第２の分散メタデータ８０ｂを分散ドライブ連携機能１３を通じて第２の分散ドライブ７０ｂから読み出す。そして、仮想ドライブメタデータ復元機能１５は、少なくとも第１の分散メタデータ８０ａ及び第２の分散メタデータ８０ｂから、秘密分散モジュール３０に仮想ドライブメタデータを復元させる。仮想ドライブメタデータの復元の契機となるイベントは、例えば、第１の分散メタデータ８０ａを記憶している外部記憶装置４００の情報処理装置１００への接続を含む。あるいは、仮想ドライブメタデータの復元は、仮想ドライブへのアクセス権限のあるユーザの認証の成功後に行われてもよい。
【００５１】
仮想ドライブメタデータ復元機能１５は、仮想ドライブメタデータの復元を開始する前に、分散ドライブ間又は分散メタデータ間の対応関係を検証してもよい。例えば、仮想ドライブメタデータ復元機能１５は、それぞれの分散ドライブが有する分散ドライブ識別子が所定の文字列を含んでいるか、及び／又は作成日時若しくは更新日時などのタイムスタンプが一致するかなどを判定することにより、上述した対応関係を検証することができる。仮想ドライブメタデータ復元機能１５は、対応関係が不正であると判定された場合、仮想ドライブメタデータの復元を中止してもよい。
【００５２】
仮想ドライブ管理機能１６は、仮想ドライブメタデータ復元機能１５により復元される仮想ドライブメタデータに基づいて、仮想ドライブを生成する。仮想ドライブ管理機能１６は、例えば、ファイルシステム４０に仮想ドライブの設定を登録することにより、仮想ドライブを生成し得る。一例として、仮想ドライブ管理機能１６は、仮想ドライブ内の秘密データを、揮発性メモリ（典型的には、メインメモリ１０２）内にのみ記憶されるファイルイメージとして保持する。ここでの仮想ドライブ内の秘密データとは、ユーザが仮想ドライブ内で扱ういかなる種類のデータであってもよい。また、仮想ドライブ管理機能１６は、仮想ドライブのアンマウントのためのアンマウント要求が検出された場合に、仮想ドライブを無効化する。仮想ドライブ管理機能１６は、外部記憶装置４００の情報処理装置１００からの接続切断が検出された場合にも、仮想ドライブを無効化する。仮想ドライブ管理機能１６は、例えば、ファイルシステム４０に登録された仮想ドライブの設定を消去することにより、仮想ドライブを無効化し得る。このように仮想ドライブが無効化されると、ユーザ又は第三者は、仮想ドライブ内のデータへアクセス不能となる。
【００５３】
ファイル分散機能１７は、仮想ドライブ内のファイルの保存が要求された場合に、当該ファイルのファイルイメージを秘密分散モジュール３０に秘密分散法を用いて少なくとも第１の分散ファイル９１ａ及び第２の分散ファイル９１ｂへと分散させる。第１の分散ファイル９１ａは、分散ドライブ連携機能１３により、第１の分散ドライブ７０ａへ書き込まれる。第２の分散ファイル９１ｂは、分散ドライブ連携機能１３により、第２の分散ドライブ７０ｂへ書き込まれる。また、ファイル分散機能１７は、保存されるべきファイルのファイルメタデータを、秘密分散モジュール３０に少なくとも第１の分散ファイルメタデータ９０ａ及び第２の分散ファイルメタデータ９０ｂへと分散させる。第１の分散ファイルメタデータ９０ａは、分散ドライブ連携機能１３により、第１の分散ドライブ７０ａへ書き込まれる。第２の分散ファイルメタデータ９０ｂは、分散ドライブ連携機能１３により、第２の分散ドライブ７０ｂへ書き込まれる。こうしたファイルメタデータは、仮想ドライブ内のファイルに関する標識をＵＩモジュール４５に画面上へ表示させるために使用され得る。
【００５４】
分散ドライブ連携機能１３は、第１の動作モードにおいて、ファイル保存要求の検出に応じて、第１の分散ファイル９１ａを第１の分散ドライブ７０ａへ、第２の分散ファイルを第２の分散ドライブ７０ｂへ書き込んでもよい。第１の動作モードは、ファイル保存の時点で直接的に分散ファイルが分散ドライブに書き込まれることから、例えばダイレクトモードと呼ばれ得る。
【００５５】
また、分散ドライブ連携機能１３は、第２の動作モードにおいて、ファイル保存要求の検出に応じてファイル分散機能１７によりファイルイメージが第１の分散ファイル９１ａ及び第２の分散ファイル９１ｂへと分散された後、さらに仮想ドライブのアンマウントのためのアンマウント要求の検出を待ってから、第１の分散ファイル９１ａを第１の分散ドライブ７０ａへ書き込んでもよい。第２の動作モードにおいて、ファイル保存要求の検出からアンマウント要求の検出までの間、分散ファイルは、仮想ドライブ管理機能１６により揮発性メモリ内に保持され得る。第２の動作モードは、ファイル保存の時点では少なくとも１つの分散ファイルが分散ドライブに書き込まれずメモリ内にキャッシュされることから、例えばキャッシュモードと呼ばれ得る。システムの動作モードは、ユーザのニーズに依存して、予め固定的に設定されてもよく、又は複数のモードの間で動的に切替え可能であってもよい。
【００５６】
仮想ドライブ管理機能１６は、仮想ドライブ内に１つ以上のファイルが存在する場合、仮想ドライブの生成後に自動的に、又はファイルシステム４０を介して仮想ドライブがオープンされた後、それらファイルに関する標識を、ＵＩモジュール４５に画面上へ表示させてよい。ファイルに関する標識を生成するために必要とされるファイルメタデータは、第１の分散ファイルメタデータ９０ａ及び第２の分散ファイルメタデータ９０ｂから復元される。分散ドライブ連携機能１３は、第１の分散ファイルメタデータ９０ａを第１の分散ドライブ７０ａから読み出し、第２の分散ファイルメタデータ９０ｂを第２の分散ドライブ７０ｂから読み出す。ファイル復元機能１８は、少なくとも第１の分散ファイルメタデータ９０ａ及び第２の分散ファイルメタデータ９０ｂから、秘密分散モジュール３０にファイルメタデータを復元させて、仮想ドライブ内のファイルに関する標識の表示を可能にする。ファイルに関する標識は、例えば、ドライブ内のファイルの一覧の各アイテムに相当し、ファイル名、ファイルサイズ、アイコン及び更新日などを含み得る。
【００５７】
さらに、ファイル復元機能１８は、表示されたファイルに関する標識に対するユーザ入力（例えば、ファイル名又はアイコンのダブルクリック又はタップなど）によって、仮想ドライブ内のファイルの起動が要求された場合に、当該ファイルのファイルイメージから分散された複数の分散ファイルのうちの少なくとも第１の分散ファイル９１ａ及び第２の分散ファイル９１ｂを、分散ドライブ連携機能１３を通じて、第１の分散ドライブ７０ａ及び第２の分散ドライブ７０ｂからそれぞれ読み出す。そして、ファイル復元機能１８は、少なくとも第１の分散ファイル９１ａ及び第２の分散ファイル９１ｂから、起動されるべきファイルのファイルイメージを秘密分散モジュール３０に復元させる。なお、ファイル復元機能１８は、ファイルの起動の要求を待つことなく、仮想ドライブ内の特定のファイルのファイルイメージを復元してもよい。
【００５８】
制御モジュール１０は、ここで説明した様々な動作の任意のタイミングで、ユーザにパスワードの入力を求めてもよい。例えば、制御モジュール１０は、外部記憶装置４００の接続が検出された場合に、分散メタデータを対応する分散ドライブから読み出す前にユーザにパスワードの入力を求め、パスワード認証が成功したときに限って分散メタデータを読み出してもよい。
【００５９】
秘密分散モジュール３０は、暗号化機能３１、分散機能３２、結合機能３３及び復号機能３４を有する。暗号化機能３１は、制御モジュール１０による制御の下で、指定されたデータ（例えば、仮想ドライブメタデータ、ファイルメタデータ又はファイルイメージ）を、例えばＡＯＮＴ方式で暗号化する。分散機能３２は、暗号化機能３１により暗号化された（ＡＯＮＴ変換された）データを、指定された個数の、それぞれ指定されたサイズを有する分散データへと分散する。結合機能３３は、復元されるべきデータから秘密分散法を用いて形成された複数の分散データのうちの少なくとも２つの分散データを結合して、結合データを生成する。復号機能３４は、少なくとも２つの分散データに基づく結合データから、元のデータをＡＯＮＴ方式で復号することにより、秘密データを復元する。
【００６０】
一例として、秘密分散モジュール３０は、ブロック単位でこれら暗号化、分散、結合及び復号という動作を実行する。ここでのブロックサイズは、ファイルシステム４０のアロケーションユニットのサイズ（例えば、ＮＴＦＳであれば４０９６バイト）に一致していることが望ましい。秘密分散処理の処理単位のサイズが大きい場合、処理時間は分散すべきデータのデータサイズに対して線型的ではなくむしろ指数関数的に増加する。一方、ファイルシステムのアロケーションサイズ程度の小さい処理単位で秘密分散処理を実行すれば、データサイズに対する処理時間の増加を、ほぼ線型的な増加にまで抑制することができる。
【００６１】
ファイルシステム４０は、情報処理装置１００上で動作するオペレーティングシステムがファイルを管理するために有するシステムモジュールである。例えばＮＴＦＳ、ＦＡＴ又はＦＡＴ３２などといった、いかなる種類のファイルシステムが利用されてもよい。情報処理装置１００上の様々なアプリケーションと制御モジュール１０及び秘密分散モジュール３０との間にファイルシステム４０が介在する構成によって、それらアプリケーションが制御モジュール１０及び秘密分散モジュール３０の存在を認識する必要性が回避される。上述したファイルシステム４０のアロケーションユニットのサイズに合わせた秘密分散の動作と、ファイルシステム４０を介在させる構成とによって、秘密情報管理システム１を、多様なアプリケーション及びオペレーティングシステムが実行される多くのプラットフォーム上で、個別の機能修正を要することなく円滑に動作させることが可能となる。
【００６２】
ファイルシステム４０又は情報処理装置１００上で動作するオペレーティングシステムは、制御モジュール１０からの仮想ドライブの設定の登録を受け付ける。一旦登録された仮想ドライブは、ユーザ又はアプリケーションの視点からは、他の物理的な又は論理的なディスクドライブと同様に扱われる。即ち、ユーザは、仮想ドライブ内で、ファイルの更新、移動、コピー、ファイル名の変更、フォルダ（ディレクトリ）の作成及びフォルダの属性の設定といった様々な作業を、通常のドライブとの違いを意識することなく行うことができる。
【００６３】
ＵＩモジュール４５は、制御モジュール１０及びファイルシステム４０がユーザとのインタラクションを行うためのユーザインタフェースを提供する。例えば、ＵＩモジュール４５は、ディスプレイ１０３の画面上にＧＵＩを表示させ、入力インタフェース１０４を介してユーザ入力を受け付ける。ＵＩモジュール４５は、音声ＵＩ又はジェスチャＵＩなどといった、非視覚的なユーザインタフェースを提供してもよい。
【００６４】
＜３．処理の流れ＞
次に、秘密情報管理システム１における動作の流れについて詳細に説明する。
【００６５】
（１）仮想ドライブ生成
図５は、仮想ドライブを新たに生成するための仮想ドライブ生成処理の流れの一例を示すフローチャートである。
【００６６】
まず、制御モジュール１０は、ステップＳ１において、生成されるべき仮想ドライブの設定データを取得して、仮想ドライブメタデータを作成する。ここで作成される仮想ドライブメタデータは、例えば、新たな仮想ドライブのドライブ名及び容量を含み得る。
【００６７】
次に、制御モジュール１０は、ステップＳ２において、作成された仮想ドライブメタデータを秘密分散モジュール３０に暗号化させ、ステップＳ３において、暗号化された仮想ドライブメタデータを第１及び第２の分散メタデータ８０ａ、８０ｂへと分散させる。
【００６８】
そして、制御モジュール１０は、ステップＳ４において、外部記憶装置４００に第１の分散ドライブ７０ａを作成し、ステップＳ５において、二次記憶装置１０５に第２の分散ドライブ７０ｂを作成する。なお、この段階では、第１及び第２の分散ドライブ７０ａ、７０ｂに、データ及びファイルは書き込まれていない。なお、当然ながら、ステップＳ４は、外部記憶装置４００が接続インタフェース１０６を介して情報処理装置１００へ接続された状態において実行される。
【００６９】
次に、ステップＳ６において、制御モジュール１０は、作成した第１及び第２の分散ドライブ７０ａ、７０ｂを互いに対応付けるために、第１の分散ドライブ識別子７１ａを第１の分散ドライブ７０ａへ、第２の分散ドライブ識別子７１ｂを第２の分散ドライブ７０ｂへと書き込む。また、制御モジュール１０は、外部記憶装置４００の予め定義される記憶領域に基本構成情報７５を書き込む。基本構成情報７５は、例えば、外部記憶装置４００内の第１の分散ドライブ７０ａの分散ドライブパス及び二次記憶装置１０５内の第２の分散ドライブ７０ｂの分散ドライブパスを含む。それにより、後に制御モジュール１０がそれぞれの分散ドライブへとアクセスすること、並びに分散ドライブ識別子及びその他のメタデータを照合して分散ドライブ間の対応関係を検証することが可能となる。
【００７０】
次に、制御モジュール１０は、ステップＳ７において、第１の分散ドライブ７０ａへ第１の分散メタデータ８０ａを書き込む。また、制御モジュール１０は、ステップＳ８において、第２の分散ドライブ７０ｂへ第２の分散メタデータ８０ｂを書き込む。
【００７１】
次に、制御モジュール１０は、ステップＳ９において、第１及び第２の分散ドライブ７０ａ、７０ｂに対応する新たな仮想ドライブを生成する。より具体的には、制御モジュール１０は、例えば、仮想ドライブメタデータに含まれる設定データをファイルシステム４０に登録することにより、仮想ドライブを生成し得る。制御モジュール１０は、ステップＳ１において作成され又は取得された仮想ドライブメタデータをここで利用してもよい。その代わりに、制御モジュール１０は、第１及び第２の分散ドライブ７０ａ、７０ｂへそれぞれ書き込まれた第１及び第２の分散メタデータ８０ａ、８０ｂから、秘密分散モジュール３０に仮想ドライブメタデータを復元させてもよい。
【００７２】
最後に、ステップＳ１０において、新たに生成された仮想ドライブが、ディスプレイ１０３の画面上に表示される。なお、制御モジュール１０は、仮想ドライブ自体（例えば、仮想ドライブのアイコンなど）を表示させる代わりに、仮想ドライブが生成されたことを通知するメッセージを、ディスプレイ１０３の画面上に表示させてもよい。
【００７３】
以上をもって、図５に示した仮想ドライブ生成処理は終了する。
【００７４】
（２）ファイル分散
図６は、ファイルを秘密分散法を用いて分散するためのファイル分散処理の流れの一例を示すフローチャートである。
【００７５】
ステップＳ１１において、制御モジュール１０は、仮想ドライブ内のファイルについてのファイル保存要求を検出する。一例として、仮想ドライブ内のファイルの保存は、仮想ドライブ以外のドライブ（例えば、実体のあるドライブ）により記憶されているファイルの仮想ドライブ内への移動を契機として行われてもよい。他の例として、仮想ドライブ内のファイルの保存は、仮想ドライブ内に既に存在するファイルが更新された後の、仮想ドライブ内での当該ファイルの上書き保存を契機として行われてもよい。ファイル保存要求は、例えば保存されるべきファイルに対応付けられるアプリケーション（例えば、文書ファイルの場合には、文書編集アプリケーション）又はオペレーティングシステムから、ファイルシステム４０を介して検出され得る。
【００７６】
上述したファイル保存要求が検出されると、制御モジュール１０は、ステップＳ１２において、保存されるべきファイルのファイルイメージを、メインメモリ１０２内の仮想ドライブのための記憶領域に記憶させる。ファイルイメージは、例えば、ブロックごとにメインメモリ１０２の対応するメモリアドレスへと書き込まれる。ブロックサイズは、例えば１ブロック当り４０９６byteであってよい。
【００７７】
次に、ステップＳ１３において、制御モジュール１０は、仮想ドライブ内の保存されるべきファイルのファイルイメージを、秘密分散モジュール３０に暗号化させる。ファイルイメージは、例えば、メインメモリ１０２に記憶されているファイルイメージのブロックの各々について、ブロック単位で暗号化される。
【００７８】
次に、ステップＳ１４において、制御モジュール１０は、暗号化されたファイルイメージを、秘密分散モジュール３０に第１及び第２の分散ファイル９１ａ、９１ｂへと分散させる。ここでの暗号化されたファイルイメージの分散もまた、ブロック単位で行われ得る。例えば、ファイルイメージのブロック数が３個である場合、それら３個のブロックの各々が、例えば４byteの第１の分散ファイル９１ａ及び４０９２byteの第２の分散ファイル９１ｂへと分散され得る。
【００７９】
また、制御モジュール１０は、保存されるべきファイルのファイルメタデータをも、秘密分散モジュール３０に暗号化させ、第１及び第２の分散ファイルメタデータ９０ａ、９０ｂへと分散させる。なお、ファイルメタデータの暗号化及び分散もまた、ブロック単位で行われ得る。
【００８０】
次に、制御モジュール１０は、ステップＳ１５において、第１の分散ファイル９１ａ及び第１の分散ファイルメタデータ９０ａを、第１の分散ドライブ７０ａへと書き込む。また、制御モジュール１０は、ステップＳ１６において、第２の分散ファイル９１ｂ及び第２の分散ファイルメタデータ９０ｂを、第２の分散ドライブ７０ｂへと書き込む。第１の分散ファイル９１ａは、第１の分散ドライブ７０ａのファイルデータ領域に、第２の分散ファイル９１ｂは、第２の分散ドライブ７０ｂのファイルデータ領域に書き込まれる。第１の分散ファイルメタデータ９０ａは、第１の分散ドライブ７０ａのメタデータ領域に、第２の分散ファイルメタデータ９０ｂは、第２の分散ドライブ７０ｂのメタデータ領域に書き込まれる。なお、当然ながら、ステップＳ１５は、外部記憶装置４００が接続インタフェース１０６を介して情報処理装置１００へ接続された状態において実行される。
【００８１】
その後、ステップＳ１７において、仮想ドライブのアンマウント要求が検出されると、制御モジュール１０は、ステップＳ１８において、仮想ドライブを無効化する。それにより、例えば画面から仮想ドライブの表示が消失する。さらに、外部記憶装置４００が情報処理装置１００から接続切断され得る。なお、仮想ドライブのアンマウント要求が入力又は検出されることなく、突然に外部記憶装置４００が接続切断された場合（例えば、ＵＳＢメモリが引き抜かれた場合）にも、制御モジュール１０は、接続切断の検出に応じて、仮想ドライブを無効化し、画面から仮想ドライブの表示を消失させてもよい。
【００８２】
以上をもって、図６に示したファイル分散処理は終了する。
【００８３】
（３）仮想ドライブ復元
図７は、仮想ドライブを復元するための仮想ドライブ復元処理の流れの一例を示すフローチャートである。また、図８は、復元された仮想ドライブの概略的なデータ構成の一例を示している。
【００８４】
まず、制御モジュール１０は、ステップＳ２１において、接続インタフェース１０６を介する外部記憶装置４００の情報処理装置１００への接続を検出する。制御モジュール１０は、当該接続の検出に応じて、ステップＳ２２において、外部記憶装置４００により記憶されている基本構成情報７５を読み出し、外部記憶装置４００の第１の分散ドライブ７０ａへアクセスする。また、制御モジュール１０は、ステップＳ２３において、二次記憶装置１０５の第２の分散ドライブ７０ｂへアクセスする。制御モジュール１０は、この時点で、これら分散ドライブ内のデータセットを読み出し、メインメモリ１０２へと展開してもよい。第１の分散ドライブ７０ａのデータセットには第１の分散ドライブ識別子７１ａが、第２の分散ドライブ７０ｂのデータセットには第２の分散ドライブ識別子７１ｂがそれぞれ含まれる。
【００８５】
次に、制御モジュール１０は、ステップＳ２４において、第１及び第２の分散ドライブ７０ａ、７０ｂの間の対応関係を検証する。例えば、制御モジュール１０は、第１の分散ドライブ識別子７１ａ及び第２の分散ドライブ識別子７１ｂが所定の共通的な文字列を含んでおり、かつ期待される枝番を正確に有しているかを判定してもよい。また、制御モジュール１０は、作成日時又は更新日時などのタイムスタンプが一致するかを判定してもよい。
【００８６】
ステップＳ２５において、２つの分散ドライブの間の対応関係が正常であると判定されると、仮想ドライブ復元処理はステップＳ２７へ進む。２つの分散ドライブの間の対応関係が正常ではないと判定されると、仮想ドライブ復元処理は中止され得る。仮想ドライブ復元処理が中止された場合、制御モジュール１０は、ＵＩモジュール４５を介して、仮想ドライブの生成に失敗した旨を通知するエラーメッセージを出力してもよい。その代わりに、制御モジュール１０は、悪意ある第三者から秘密データの存在を隠蔽するために、何らのエラーメッセージも出力しなくてもよい。
【００８７】
ステップＳ２７において、制御モジュール１０は、第１の分散ドライブ７０ａ（又はメインメモリ１０２へ展開済みの場合にはメインメモリ１０２）から、第１の分散メタデータ８０ａを読み出す。また、ステップＳ２８において、制御モジュール１０は、第２の分散ドライブ７０ｂ（又はメインメモリ１０２へ展開済みの場合にはメインメモリ１０２）から、第２の分散メタデータ８０ｂを読み出す。
【００８８】
次に、ステップＳ２９において、制御モジュール１０は、読み出した第１及び第２の分散メタデータ８０ａ、８０ｂを秘密分散モジュール３０に結合させる。また、ステップＳ３０において、制御モジュール１０は、第１及び第２の分散メタデータ８０ａ、８０ｂの結合メタデータから、仮想ドライブメタデータを秘密分散モジュール３０に復号させる。
【００８９】
次に、ステップＳ３１において、制御モジュール１０は、秘密分散法を用いた復号によって復元された仮想ドライブメタデータ８０に基づいて、仮想ドライブ８１を生成する（図８参照）。
【００９０】
最後に、このようにして復元された仮想ドライブ８１が、ステップＳ３２において、ディスプレイ１０３の画面上に表示される。なお、仮想ドライブ（例えば、仮想ドライブのアイコン）を表示させる代わりに、仮想ドライブが復元されたことを通知するメッセージが、画面上に表示されてもよい。
【００９１】
なお、仮想ドライブが復元された後、制御モジュール１０は、第１及び第２の分散ファイルメタデータ９０ａ、９０ｂからファイルメタデータ９０をさらに復元してもよい。また、制御モジュール１０は、ファイルシステム４０を介して仮想ドライブの起動が検出された場合に、第１及び第２の分散ファイルメタデータ９０ａ、９０ｂからファイルメタデータ９０を復元してもよい。仮想ドライブの起動は、例えば、画面上に表示される仮想ドライブのアイコンに対するユーザ入力（例えば、ダブルクリック又はタップなど）を通じて要求され得る。例えば、制御モジュール１０は、第１の分散ドライブ７０ａ（又はメインメモリ１０２）から第１の分散ファイルメタデータ９０ａを、第２の分散ドライブ７０ｂ（又はメインメモリ１０２）から第２の分散ファイルメタデータ９０ｂを読み出す。そして、制御モジュール１０は、読み出した第１及び第２の分散ファイルメタデータ９０ａ、９０ｂから、秘密分散モジュール３０にファイルメタデータ９０を復元させる。
【００９２】
図８には、一例として１つのファイルメタデータ９０のみが示されているが、仮想ドライブ内に複数のファイルが存在する場合には、制御モジュール１０は、それらファイルそれぞれのファイルメタデータ９０を秘密分散モジュール３０に復元させてもよい。例えば、仮想ドライブの階層的なフォルダ構成の中の最上位のフォルダ内のファイルのファイルメタデータのみが復元されてもよい（他のファイルのファイルメタデータは、対応するフォルダがオープンされた後に復元され得る）。また、仮想ドライブの容量に依存して制限された数のファイルのファイルメタデータのみが復元されてもよい。復元されたファイルメタデータ９０は、ファイルシステム４０へと受け渡される。そして、ファイルシステム４０は、仮想ドライブが起動されると、仮想ドライブ内のファイルの各々に関する標識（例えば、ファイル一覧内のアイテム又はアイコンなど）を生成して、生成された標識を画面上へ表示させる。
【００９３】
以上をもって、図７に示した仮想ドライブ復元処理は終了する。
【００９４】
（４）ファイル復元
図９は、ファイルを秘密分散法を用いて復元するためのファイル復元処理の流れの一例を示すフローチャートである。
【００９５】
まず、制御モジュール１０は、仮想ドライブがアクティブな状態において、ステップＳ４１にて、仮想ドライブ内のファイルのファイル起動要求を検出する。ファイルの起動は、例えば、ファイルメタデータ９０に基づいて表示されたファイルに関する標識に対するユーザ入力を通じて要求され得る。
【００９６】
ファイル起動要求の検出に応じて、制御モジュール１０は、ステップＳ４２において、第１の分散ドライブ７０ａから、起動されるべきファイルに対応する第１の分散ファイル９１ａを読み出す。また、制御モジュール１０は、ステップＳ４３において、第２の分散ドライブ７０ｂから、当該ファイルに対応する第２の分散ファイル９１ｂを読み出す。
【００９７】
次に、制御モジュール１０は、ステップＳ４４において、読み出した第１及び第２の分散ファイル９１ａ、９１ｂを、秘密分散モジュール３０に結合させる。また、ステップＳ４５において、制御モジュール１０は、復元すべきファイルのファイルイメージを、第１及び第２の分散ファイル９１ａ、９１ｂの結合ファイルから秘密分散モジュール３０に復号させる。
【００９８】
次に、制御モジュール１０は、ステップＳ４６において、復号の結果として復元されたファイルイメージをファイルシステム４０へ受け渡し、ユーザの所望のファイルを例えば当該ファイルに関連付けられているアプリケーションを通じて起動させる。
【００９９】
以上をもって、図９に示したファイル復元処理は終了する。
【０１００】
＜４．まとめ＞
上述した実施形態によれば、情報処理装置のプロセッサを、秘密分散モジュール及び制御モジュールとして機能させるためのコンピュータプログラムが提供される。当該情報処理装置は、外部記憶装置である第１の記憶装置と接続されるように構成される接続インタフェースと、上記プロセッサと、揮発性メモリとを備える。秘密分散モジュールは、複数の分散データのうちの少なくとも２つの分散データを結合することにより秘密データを復元する、ように構成される。制御モジュールは、複数の分散データの各々の、対応する記憶装置のデータ領域からの読み出し及び／又は当該データ領域への書き込みを制御する、ように構成される。上記秘密データは仮想ドライブ内に保持され、上記仮想ドライブを生成するための仮想ドライブメタデータは少なくとも２つの分散メタデータへと分散される。上記制御モジュールは、上記第１の分散メタデータを上記第１の記憶装置から読み出し、第２の分散メタデータを第２の記憶装置から読み出し、少なくともこれら２つの分散メタデータから上記秘密分散モジュールに上記仮想ドライブメタデータを復元させ、復元された上記仮想ドライブメタデータに基づいて上記仮想ドライブを生成する。
【０１０１】
かかる構成によれば、秘密データをユーザが扱うための場所を提供する仮想ドライブ自体を秘密分散法によって保護することができる。仮想ドライブ内の秘密データもまた秘密分散法によって保護されることから、上述した構成は、秘密データを二重の障壁によって漏洩のリスクから保護する仕組みを提供する。また、仮想ドライブにおいてユーザがデータを作成すれば、その作成の当初から当該データは保護される。
【０１０２】
ある実施例において、上記仮想ドライブ内の上記秘密データは、揮発性メモリ内にのみ記憶されるファイルイメージとして保持され得る。それにより、秘密データが復元された後に情報処理装置がハッキングされたとしても、例えば二次記憶装置のディスクからの秘密データの漏洩は防止される。
【０１０３】
ある実施例において、上記第１の分散メタデータは、上記第１の記憶装置の上記情報処理装置への接続の検出に応じて、上記第１の記憶装置から読み出され得る。それにより、仮想ドライブの生成から消滅までのライフサイクルが、外部記憶装置の接続及び接続切断というユーザにとって直観的に把握可能なアクションに結び付けられる。仮想ドライブ内のデータ又はファイルは、仮想ドライブが情報処理装置上に存在している間にのみ、ユーザによりアクセス可能である。よって、ユーザは、外部記憶装置の接続状態を意識するだけで、データを適切に秘密に管理することができる。データの作成、閲覧及び更新といった作業は、仮想ドライブ内で行われる限り、通常の情報端末上での（保護される必要のない）データについての作業と同様にして行われてよい。
【０１０４】
ある実施例において、上記仮想ドライブのアンマウントのためのアンマウント要求が検出された場合、又は上記第１の記憶装置の接続切断が検出された場合に、上記仮想ドライブは無効化され得る。即ち、ユーザは、例えば作業終了時又は作業中断時の明示的なアンマウント要求によって、仮想ドライブへのアクセスを不能にして秘密データの保護を確実化することができる。また、ユーザは、外部記憶装置の接続切断という直感的なアクションによっても、仮想ドライブへのアクセスを不能にして秘密データの保護を確実化することができる。上記仮想ドライブの無効化は、メモリ上に保持されている仮想ドライブ内のデータの消去を含んでもよい。あるいは、仮想ドライブ内のデータの消去は、上記仮想ドライブの無効化よりも遅い時点まで猶予されてもよい。
【０１０５】
ある実施例において、上記仮想ドライブは、上記情報処理装置のファイルシステムに当該仮想ドライブの設定を登録することにより生成され得る。また、上記ファイルシステムから上記仮想ドライブの上記設定を消去することにより、上記仮想ドライブは無効化され得る。このように、既存のファイルシステムの機能性を活用して仮想ドライブを実現し、アプリケーションと秘密分散技術との間にファイルシステムを介在させることで、既存の及び将来的に開発される多様なアプリケーションにインパクトを与えることなく、システムの円滑な動作を提供することができる。
【０１０６】
ある実施例において、上記制御モジュールは、上記仮想ドライブ内のファイルの起動が要求された場合に、当該ファイルのファイルイメージを上記秘密分散法を用いて分散することにより形成された複数の分散ファイルのうちの少なくとも２つの分散ファイルを対応する記憶装置からそれぞれ読み出し、少なくともそれら２つの分散ファイルから、起動されるべき上記ファイルの上記ファイルイメージを上記秘密分散モジュールに復元させ得る。これは、仮想ドライブ内のファイルの起動が要求されるまで当該ファイルのファイルイメージの復元は実行されず、起動されないファイルのファイルイメージは復元されないことを意味する。かかる構成によれば、一度に大規模なデータセットを復元する必要が無いため、処理の待ち時間が低減される。必要最低限のファイルのファイルイメージしか仮想ドライブ内に保持されないため、ドライブ内の全てのデータをまとめて暗号化（分散）／復号（結合）するような技術と比較して、セキュリティレベルが強化される。
【０１０７】
ある実施例において、上記仮想ドライブ内のファイルのファイルメタデータは、複数の分散ファイルメタデータへと分散され、上記制御モジュールは、少なくとも２つの分散ファイルメタデータを対応する記憶装置からそれぞれ読み出し、少なくともそれら２つの分散ファイルメタデータから上記秘密分散モジュールに上記ファイルメタデータを復元させて、上記仮想ドライブ内の上記ファイルに関する標識の表示を可能にし得る。かかる構成によれば、仮想ドライブ、仮想ドライブ内のファイルへアクセスするために必要とされるファイルメタデータ、及びファイルという３つのレイヤにわたる三重の障壁によって秘密データを保護することができる。例えば、上記仮想ドライブ内のファイルの上記起動が、復元される上記ファイルメタデータに基づいて表示される上記ファイルに関する上記標識に対するユーザ入力によって要求されるような構成が採用されてもよい。この場合、あるファイルを復元するためにはそのファイルのファイルメタデータを復元しなければならず、そのファイルメタデータへアクセスするためには仮想ドライブメタデータを復元しなければならないといった、秘密分散処理のチェーンが構築され、セキュリティレベルは一層強化され得る。これらメタデータ及びファイルの読み出し（メモリへの展開）及び復元は、ユーザ入力に応じて最小の範囲内で実行されてもよく、又はメモリ容量の制約の下で、ユーザ入力に先立って実行されてもよい。後者の場合には、データ読み出しに起因する待ち時間が短縮され、ユーザ入力に対するシステムの応答性が向上し得る。
【０１０８】
ある実施例において、上記制御モジュールは、上記仮想ドライブ内のファイルの保存が要求された場合に、当該ファイルのファイルイメージを上記秘密分散モジュールに上記秘密分散法を用いて少なくとも２つの分散ファイルへと分散させ得る。１つの分散ファイルは上記第１の記憶装置へ書き込まれ、他の１つの分散ファイルは上記第２の記憶装置へ書き込まれ得る。かかる構成によれば、仮想ドライブ内でファイルの保存が要求される都度、当該ファイルのファイルイメージを分散させて、ファイルの保護が確実化される。ファイル保存のための上記要求の検出に応じて、少なくともそれら２つの分散ファイルが即座に上記第１の記憶装置及び上記第２の記憶装置へそれぞれ書き込まれる動作モードにおいては、これら分散ファイルが同一の装置上に存在する時間を最小化して、強固なセキュリティを実現することができる。
【０１０９】
ある実施例において、上記仮想ドライブは、上記情報処理装置のファイルシステムに上記仮想ドライブの設定を登録することにより生成され、上記制御モジュールは、ファイル保存のための上記要求を、上記ファイルシステムを介して検出し得る。かかる構成によれば、様々なイベントを契機としてユーザ又はアプリケーションから発せられるファイル保存要求を受け付けるための共通的なプログラムインタフェースを、複雑なロジックを要することなく低コストで実装することが可能となる。
【０１１０】
なお、本明細書では、仮想ドライブメタデータ、ファイルメタデータ及びファイルイメージの各々について暗号化及び復号が実行される例を主に説明した。しかしながら、かかる例に限定されず、これらの全て又は一部について、暗号化及び復号が省略され、分散及び結合のみが実行されてもよい。例えば、仮想ドライブメタデータについて暗号化及び復号が省略される場合にも、ファイルメタデータ及びファイルという２つのレイヤにわたる二重の保護を提供することができる。暗号化及び復号の省略は、システムの負荷を低減させ得る。また、仮想ドライブメタデータは、分散されることなく暗号化されるだけで、上記外部記憶装置へ書き込まれてもよい。
【０１１１】
また、本明細書では、秘密データを秘密分散法を用いて２つの分散データへと分散する例を主に説明した。しかしながら、上で説明したように、仮想ドライブ内の秘密データは、２つ以上のいかなる数の分散データへと分散されてもよい。また、分散データの書き込み先の装置が複数である限り、複数の分散データのうちのどれがどの記憶装置へと書き込まれてもよい。例えば、図１Ｃに例示したように、ユーザにより携帯され得る端末装置（例えば、企業の社員が携帯するＩＣカード型の社員証）に追加的な分散データを書き込むことにより、そうした端末装置に秘密データへのアクセスのための認証用デバイスとしての役割を与えることができる。記憶容量の小さい装置には、例えば、仮想ドライブメタデータから分散された分散メタデータの一断片のみが書き込まれてもよい。
【０１１２】
＜５．変形例＞
（１）ファイル分散−第１の変形例
図１０は、ファイルを秘密分散法を用いて分散するためのファイル分散処理の流れの第１の変形例を示すフローチャートである。図６に示したファイル分散処理は、上述した第１の動作モード（ダイレクトモード）における処理の一態様であり、一方で図１０に示したファイル分散処理は、上述した第２の動作モード（キャッシュモード）における処理の一態様である。図１０のステップＳ５１〜Ｓ５４は、図６のステップＳ１１〜Ｓ１４と同様に実行され得る。
【０１１３】
ステップＳ５１において、制御モジュール１０は、仮想ドライブ内のファイルについてのファイル保存要求を検出する。ファイル保存要求が検出されると、制御モジュール１０は、ステップＳ５２において、保存されるべきファイルのファイルイメージを、メインメモリ１０２内の仮想ドライブのための記憶領域に記憶させる。次に、ステップＳ５３において、制御モジュール１０は、仮想ドライブ内の保存されるべきファイルのファイルイメージを、秘密分散モジュール３０に暗号化させる。次に、ステップＳ５４において、制御モジュール１０は、暗号化されたファイルイメージを、秘密分散モジュール３０に第１及び第２の分散ファイル９１ａ、９１ｂへと分散させる。また、制御モジュール１０は、保存されるべきファイルのファイルメタデータを、秘密分散モジュール３０に暗号化させ、第１及び第２の分散ファイルメタデータ９０ａ、９０ｂへと分散させる。
【０１１４】
次に、制御モジュール１０は、ステップＳ５５において、第１及び第２の分散ファイル９１ａ、９１ｂ、並びに第１及び第２の分散ファイルメタデータ９０ａ、９０ｂをメインメモリ１０２に記憶させる。この時点では、これら分散ファイル及び分散メタデータの対応する記憶装置への書き込みは行われない。
【０１１５】
その後、ステップＳ５６において、仮想ドライブのアンマウント要求が検出されると、制御モジュール１０は、ステップＳ５７において、仮想ドライブを無効化する。それにより、例えば画面から仮想ドライブの表示が消失する。また、制御モジュール１０は、ステップＳ５８おいて、第１の分散ファイル９１ａ及び第１の分散ファイルメタデータ９０ａを、第１の分散ドライブ７０ａへと書き込む。また、制御モジュール１０は、ステップＳ５９において、第２の分散ファイル９１ｂ及び第２の分散ファイルメタデータ９０ｂを、第２の分散ドライブ７０ｂへと書き込む。なお、当然ながら、ステップＳ５８は、外部記憶装置４００が接続インタフェース１０６を介して情報処理装置１００へ接続された状態において実行される。
【０１１６】
以上をもって、図１０に示したファイル分散処理は終了する。
【０１１７】
（２）ファイル分散−第２の変形例
図１１は、ファイルを秘密分散法を用いて分散するためのファイル分散処理の流れの第２の変形例を示すフローチャートである。図１１に示したファイル分散処理は、上述した第２の動作モード（キャッシュモード）における処理の一態様である。図１１のステップＳ６１〜Ｓ６４は、図１０のステップＳ５１〜Ｓ５４と同様に実行され得る。
【０１１８】
ステップＳ６１において、制御モジュール１０は、仮想ドライブ内のファイルについてのファイル保存要求を検出する。ファイル保存要求が検出されると、制御モジュール１０は、ステップＳ６２において、保存されるべきファイルのファイルイメージを、メインメモリ１０２内の仮想ドライブのための記憶領域に記憶させる。次に、ステップＳ６３において、制御モジュール１０は、仮想ドライブ内の保存されるべきファイルのファイルイメージを、秘密分散モジュール３０に暗号化させる。次に、ステップＳ６４において、制御モジュール１０は、暗号化されたファイルイメージを、秘密分散モジュール３０に第１及び第２の分散ファイル９１ａ、９１ｂへと分散させる。また、制御モジュール１０は、保存されるべきファイルのファイルメタデータを、秘密分散モジュール３０に暗号化させ、第１及び第２の分散ファイルメタデータ９０ａ、９０ｂへと分散させる。
【０１１９】
次に、制御モジュール１０は、ステップＳ６５において、第２の分散ファイル９１ｂ及び第２の分散ファイルメタデータ９０ｂを第２の分散ドライブ７０ｂへと書き込む。また、制御モジュール１０は、ステップＳ６６において、第１の分散ファイル９１ａ及び第１の分散ファイルメタデータ９０ａをメインメモリ１０２に記憶させる。この時点では、第１の分散ファイル９１ａ及び第１の分散ファイルメタデータ９０ａの外部記憶装置４００への書き込みは行われない。
【０１２０】
その後、ステップＳ６７において、仮想ドライブのアンマウント要求が検出されると、制御モジュール１０は、ステップＳ６８において、仮想ドライブを無効化する。それにより、例えば画面から仮想ドライブの表示が消失する。また、制御モジュール１０は、ステップＳ６９おいて、第１の分散ファイル９１ａ及び第１の分散ファイルメタデータ９０ａを、第１の分散ドライブ７０ａへと書き込む。なお、当然ながら、ステップＳ６９は、外部記憶装置４００が接続インタフェース１０６を介して情報処理装置１００へ接続された状態において実行される。
【０１２１】
以上をもって、図１１に示したファイル分散処理は終了する。
【０１２２】
上述した第１の変形例又は第２の変形例によれば、分散ファイル及び分散ファイルメタデータの少なくとも外部記憶装置４００への書き込みが、ファイル保存ではなく仮想ドライブのアンマウントのタイミングで行われる。それにより、外部記憶装置４００へのアクセス回数が低減され、ファイル保存に伴う処理の遅延が低減される。分散ドライブへの書き込み前の分散ファイル及び分散ファイルメタデータは、情報処理装置１００のメインメモリ１０２上で保持される。即ち、ユーザが突然に（例えば、仮想ドライブをアンマウントすることなく）外部記憶装置４００を情報処理装置１００から接続切断したとしても、分散ファイル及び分散ファイルメタデータがメインメモリ１０２上で保全されるため、ユーザの意図に反してファイルの更新内容が失われてしまう事態が防止される。外部記憶装置４００が情報処理装置１００へと再接続されれば、メインメモリ１０２上の最新の分散ファイル及び分散ファイルメタデータの外部記憶装置４００の分散ドライブへの書き込みは再び可能となる。
【０１２３】
第１の変形例及び第２の変形例は、例えば、外部記憶装置４００が無線で情報処理装置１００へ接続されるシナリオにおいて一層有益である。なぜなら、無線接続は、無線チャネルの条件（例えば、信号強度、雑音レベル及び他デバイスからの干渉など）に依存して、比較的頻繁に遮断され得るが、上述した動作モードでは、無線チャネルの条件に影響されることなく分散ファイルの一貫性が確実に保たれるからである。なお、長い時間にわたって１セットの分散ファイル（例えば、第１の分散ファイル９１ａ及び第２の分散ファイル９１ｂ）を同一の装置上に保持しておくことは、セキュリティの観点からは好ましくない。そこで、制御モジュール１０は、例えばタイマで時間を計測し、接続切断からの経過時間が予め定義される時間を上回る場合に、メインメモリ１０２上の分散ファイル及び分散ファイルメタデータを消去してもよい。
【０１２４】
（３）その他の変形例
本開示のまた別の観点によれば、情報処理装置のプロセッサを、秘密分散法を用いて秘密データを分散することにより複数の分散データを形成する、ように構成される秘密分散モジュールと、上記複数の分散データの各々の、対応する記憶装置のデータ領域からの読み出し又は当該データ領域への書き込みを制御する、ように構成される制御モジュールと、として機能させるためのコンピュータプログラムであって、上記制御モジュールは、上記秘密データを仮想ドライブ内に保持するようにさらに構成され、上記制御モジュールは、第１の記憶装置の上記情報処理装置への接続の検出に応じて、上記仮想ドライブを生成するための少なくとも暗号化された仮想ドライブメタデータを上記第１の記憶装置から読み出し、上記仮想ドライブメタデータを復号し、復号された上記仮想ドライブメタデータに基づいて、上記仮想ドライブを生成し、上記第１の記憶装置の上記情報処理装置からの接続切断が検出された場合に、上記仮想ドライブを無効化する、ようにさらに構成され、上記仮想ドライブ内のファイルのファイルイメージは、上記秘密分散モジュールにより少なくとも第１の分散ファイル及び第２の分散ファイルへと分散され、上記第１の分散ファイルは、上記第１の記憶装置へ書き込まれ、上記第２の分散ファイルは、上記第１の記憶装置とは異なる第２の記憶装置へ書き込まれる、コンピュータプログラムが提供されてもよい。また、対応する秘密管理方法、及び情報処理システムが提供されてもよい。
【０１２５】
かかる構成によれば、秘密データをユーザが扱うための場所を提供する仮想ドライブを生成するためのメタデータは、少なくとも暗号化によって保護される。仮想ドライブ内の秘密データは秘密分散法によって保護される。従って、秘密データをやはり二重の障壁によって漏洩のリスクから保護することができる。また、仮想ドライブの生成から消滅までのライフサイクルを、外部記憶装置の接続及び接続切断というユーザにとって直観的に把握可能なアクションに結び付けることもできる。
【０１２６】
本開示のまた別の観点によれば、情報処理装置のプロセッサを、秘密分散法を用いて秘密データを分散することにより複数の分散データを形成する、ように構成される秘密分散モジュールと、上記複数の分散データの各々の、対応する記憶装置のデータ領域への書き込みを制御する、ように構成される制御モジュールと、として機能させるためのコンピュータプログラムであって、上記秘密データは、上記情報処理装置の仮想ドライブ内に保持され、上記制御モジュールは、上記仮想ドライブを生成するための仮想ドライブメタデータを取得し、取得された上記仮想ドライブメタデータに基づいて、上記情報処理装置のファイルシステムに上記仮想ドライブの設定を登録することにより、上記仮想ドライブを生成し、上記ファイルシステムを介して、上記仮想ドライブ内で扱われるファイルの保存についてのファイル保存要求を検出し、上記ファイル保存要求が検出された場合に、保存されるべき上記ファイルのファイルイメージを上記秘密分散モジュールに上記秘密分散法を用いて少なくとも第１の分散ファイル及び第２の分散ファイルへと分散させる、ようにさらに構成され、上記第１の分散ファイルは、外部記憶装置である第１の記憶装置へ書き込まれ、上記第２の分散ファイルは、上記第１の記憶装置とは異なる第２の記憶装置へ書きまれる、コンピュータプログラムが提供されてもよい。また、対応する秘密管理方法、及び情報処理システムが提供されてもよい。
【０１２７】
かかる構成によれば、仮想ドライブ上で扱われる秘密データを秘密分散法を用いて保護する仕組みと、ユーザが直接的に操作するアプリケーションとの間にファイルシステムが介在することになる。それにより、様々なイベントを契機としてユーザ又はアプリケーションから発せられるファイル保存要求を、仮想ドライブが共通的なプログラムインタフェースを通じて受け付けることが可能となり、複雑なロジックを要しない低コストでの秘密分散技術の実装が可能となる。また、アプリケーションに改修のインパクトを与えることなく、システムの円滑な動作を実現することができる。
【０１２８】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【０１２９】
例えば、本明細書においてフローチャートを用いて説明した処理は、必ずしもフローチャートに示された順序で実行されなくてもよい。いくつかの処理ステップは、並列的に実行されてもよい。また、追加的な処理ステップが採用されてもよく、一部の処理ステップが省略されてもよい。
【０１３０】
本明細書において説明したコンピュータプログラムは、情報処理装置の内部又は外部に設けられる非一時的なコンピュータ読取可能な媒体に格納される。そして、それらプログラムの各々は、例えば、実行時にＲＡＭへとロードされ、プロセッサにより実行される。コンピュータ読取可能な媒体は、例えば、ＲＯＭ（Read  Only  Memory）、ＣＤ（Compact  Disk）、ＤＶＤ（Digital  Versatile  Disc）、ＨＤＤ、ＳＳＤ、光磁気ディスク、磁気ディスク、磁気テープ、カセットテープ若しくは半導体メモリ、又はこれらの組合せなどといった、いかなる種類の媒体であってもよい。
【符号の説明】
【０１３１】
１      秘密情報管理システム
１０    制御モジュール
１１    ドライブ設定機能
１２    仮想ドライブメタデータ分散機能
１３    分散ドライブ連携機能
１４    イベント監視機能
１５    仮想ドライブメタデータ復元機能
１６    仮想ドライブ管理機能
１７    ファイル分散機能
１８    ファイル復元機能
３０    秘密分散モジュール
３１    暗号化機能
３２    分散機能
３３    結合機能
３４    復号機能
４０    ファイルシステム
４５    ＵＩモジュール
５０    制御モジュールプログラム
６０    秘密分散モジュールプログラム
７０ａ  第１の分散ドライブ
７０ｂ  第２の分散ドライブ
７１ａ  第１の分散ドライブ識別子
７１ｂ  第２の分散ドライブ識別子
７５    基本構成情報
８０    仮想ドライブメタデータ
８０ａ  第１の分散メタデータ
８０ｂ  第２の分散メタデータ
８１    仮想ドライブ
９０    ファイルメタデータ
９０ａ  第１の分散ファイルメタデータ
９０ｂ  第２の分散ファイルメタデータ
９１    ファイル
９１ａ  第１の分散ファイル
９１ｂ  第２の分散ファイル
１００  情報処理装置
１０１  プロセッサ
１０２  メインメモリ
１０３  ディスプレイ
１０４  入力インタフェース
１０５  二次記憶装置
１０６  接続インタフェース
４００  外部記憶装置
【図１Ａ】
2017126319.tif 000003
【図１Ｂ】
2017126319.tif 000004
【図１Ｃ】
2017126319.tif 000005
【図２】
2017126319.tif 000006
【図３】
2017126319.tif 000007
【図４】
2017126319.tif 000008
【図５】
2017126319.tif 000009
【図６】
2017126319.tif 000010
【図７】
2017126319.tif 000011
【図８】
2017126319.tif 000012
【図９】
2017126319.tif 000013
【図１０】
2017126319.tif 000014
【図１１】
2017126319.tif 000015