(57)【要約】      （修正有）【課題】ユーザが意識をすることなく、自動的にチェックを行うことで、ファイルの不正共有を防止する。【解決手段】ユーザによって入力されたパスワードのハッシュ値から鍵を生成Ｓ１０１し、鍵と共有フォルダに保存されているファイルのハッシュ値からＭＡＣ関数を用いて、メッセージ認証子を生成Ｓ１０２、鍵と、メッセージ認証子とを記憶装置に格納するＳ１０３。次に、メッセージ認証子を定期的に計算し、読み出したメッセージ認証子と比較して、共有フォルダに保存されているファイルが変更されたかを検証Ｓ１０６する。変更されている場合に、ユーザに再度パスワード入力を求め、パスワードのハッシュ値から鍵を生成、格納されている鍵とを比較Ｓ１０９する。パスワードが正しいときに、共有フォルダに保存され、変更されたファイルのメッセージ認証子を生成Ｓ１１１し、記憶装置に格納しているメッセージ認証子を置き換えるＳ１１２。【選択図】図５
2015127859.tif 000002
【特許請求の範囲】
【請求項１】
ファイル共有ソフトの共有フォルダを監視する監視装置であって、
ユーザによって入力されたパスワードのハッシュ値から鍵を生成する第１の鍵生成手段と、
ＭＡＣ関数を用いて、前記生成された鍵とファイルのハッシュ値から共有フォルダに保存されているファイルのメッセージ認証子を生成する第１のメッセージ認証子生成手段と、
前記生成された鍵と、生成したメッセージ認証子とを記憶装置に格納する格納手段と、
前記メッセージ認証子を定められた時間間隔で、定期的に計算する計算手段と、
該計算されたメッセージ認証子と任意のアクセスパターンの保護方法を用いて読み出した前記格納されているメッセージ認証子と比較するメッセージ認証子比較手段と、
該比較の結果、前記共有フォルダに保存されているファイルが変更されたかを検証するファイル検証手段と、
該検証の結果、前記共有フォルダに保存されているファイルが変更されている場合に、ユーザに再度、パスワード入力を求めるパスワード要求手段と、
該再度入力されたパスワードのハッシュ値から鍵を生成する第２の鍵生成手段と、
該生成された鍵と前記格納されている鍵とを比較する鍵比較手段と、
該比較の結果、パスワードが正しいことを検証するパスワード検証手段と、
該検証の結果、パスワードが正しいと判断されたときに、ＭＡＣ関数を用いて、前記第２の鍵生成手段により生成された鍵とファイルのハッシュ値から前記共有フォルダに保存され、変更されたファイルのメッセージ認証子を生成する第２のメッセージ認証子生成手段と、
前記記憶装置に格納しているメッセージ認証子を任意のアクセスパターンの保護方法を用いて読み出し、前記第２のメッセージ認証子生成手段により生成されたメッセージ認証子に置き換える置き換え手段と、
を備えたことを特徴とする監視装置。
【請求項２】
前記記憶装置が、アクセス領域と非アクセス領域と履歴領域とを有し、前記任意のアクセスパターンの保護方法が、
初期状態において、１度だけ、前記非アクセス領域内のデータをランダムに並び替える第１のステップと、
前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第２のステップと、
１つのデータにアクセスが生じたときに、２つのデータを選択し、前記アクセス領域と非アクセス領域との間でデータ交換を行う際に、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが前記アクセス領域および前記履歴領域に存在せず、前記非アクセス領域に存在し、前記履歴領域に保存されたデータがある場合に、前記アクセスを行うデータと前記履歴領域に保存された任意のデータとを前記２つのデータとして選択して、前記アクセス領域に移動して、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動して保存する第３のステップと、
アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出し、書き出したデータによって保存領域を書き換える第４のステップと、
を備えたことを特徴とする請求項１に記載の監視装置。
【請求項３】
前記記憶装置が、アクセス領域と非アクセス領域と履歴領域とを有し、前記任意のアクセスパターンの保護方法が、
初期状態において、１度だけ、前記非アクセス領域内のデータをランダムに並び替える第１のステップと、
前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第２のステップと、
１つのデータにアクセスが生じたときに、２つのデータを選択し、前記アクセス領域と非アクセス領域との間でデータ交換を行う際に、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが前記履歴領域に保存されている場合に、前記履歴領域に保存されていないデータをランダムに選択し、前記アクセスを行うデータと前記ランダムに選択したデータとを前記２つのデータとし、前記アクセス領域に移動して、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動して保存する第３のステップと、
アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出し、書き出したデータによって保存領域を書き換える第４のステップと、
を備えたことを特徴とする請求項１に記載の監視装置。
【請求項４】
前記記憶装置が、アクセス領域と非アクセス領域と履歴領域とを有し、前記任意のアクセスパターンの保護方法が、
初期状態において、１度だけ、前記非アクセス領域内のデータをランダムに並び替える第１のステップと、
前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第２のステップと、
１つのデータにアクセスが生じたときに、２つのデータを選択し、前記アクセス領域と非アクセス領域との間でデータ交換を行う際に、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが前記アクセス領域に保存されている場合に、前記非アクセス領域と前記履歴領域とからランダムに選択したデータを前記２つのデータとし、前記アクセス領域に移動して、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記非アクセス領域に移動し、これらのデータを前記履歴領域に保存する第３のステップと、
アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出し、書き出したデータによって保存領域を書き換える第４のステップと、
を備えたことを特徴とする請求項１に記載の監視装置。
【請求項５】
ファイル共有ソフトの共有フォルダを監視する監視装置における監視方法であって、
コンピュータが、
ユーザによって入力されたパスワードのハッシュ値から鍵を生成する第１のステップと、
ＭＡＣ関数を用いて、前記生成された鍵とファイルのハッシュ値から共有フォルダに保存されているファイルのメッセージ認証子を生成する第２のステップと、
前記生成された鍵と、生成したメッセージ認証子とを記憶装置に格納する第３のステップと、
前記メッセージ認証子を定められた時間間隔で、定期的に計算する第４のステップと、
該計算されたメッセージ認証子と任意のアクセスパターンの保護方法を用いて読み出した前記格納されているメッセージ認証子と比較する第５のステップと、
該比較の結果、前記共有フォルダに保存されているファイルが変更されたかを検証する第６のステップと、
該検証の結果、前記共有フォルダに保存されているファイルが変更されている場合に、ユーザに再度、パスワード入力を求める第７のステップと、
該再度入力されたパスワードのハッシュ値から鍵を生成する第８のステップと、
該生成された鍵と前記格納されている鍵とを比較する第９のステップと、
該比較の結果、パスワードが正しいことを検証する第１０のステップと、
該検証の結果、パスワードが正しいと判断されたときに、ＭＡＣ関数を用いて、前記第８のステップにより生成された鍵とファイルのハッシュ値から前記共有フォルダに保存され、変更されたファイルのメッセージ認証子を生成する第１１のステップと、
前記記憶装置に格納しているメッセージ認証子を任意のアクセスパターンの保護方法を用いて読み出し、前記第１１のステップにより生成されたメッセージ認証子に置き換える第１２のステップと、
を備えたことを特徴とする監視方法。
【請求項６】
ファイル共有ソフトの共有フォルダを監視する監視装置における監視方法をコンピュータに実行させるためのプログラムであって、
ユーザによって入力されたパスワードのハッシュ値から鍵を生成する第１のステップと、
ＭＡＣ関数を用いて、前記生成された鍵とファイルのハッシュ値から共有フォルダに保存されているファイルのメッセージ認証子を生成する第２のステップと、
前記生成された鍵と、生成したメッセージ認証子とを記憶装置に格納する第３のステップと、
前記メッセージ認証子を定められた時間間隔で、定期的に計算する第４のステップと、
該計算されたメッセージ認証子と任意のアクセスパターンの保護方法を用いて読み出した前記格納されているメッセージ認証子と比較する第５のステップと、
該比較の結果、前記共有フォルダに保存されているファイルが変更されたかを検証する第６のステップと、
該検証の結果、前記共有フォルダに保存されているファイルが変更されている場合に、ユーザに再度、パスワード入力を求める第７のステップと、
該再度入力されたパスワードのハッシュ値から鍵を生成する第８のステップと、
該生成された鍵と前記格納されている鍵とを比較する第９のステップと、
該比較の結果、パスワードが正しいことを検証する第１０のステップと、
該検証の結果、パスワードが正しいと判断されたときに、ＭＡＣ関数を用いて、前記第８のステップにより生成された鍵とファイルのハッシュ値から前記共有フォルダに保存され、変更されたファイルのメッセージ認証子を生成する第１１のステップと、
前記記憶装置に格納しているメッセージ認証子を任意のアクセスパターンの保護方法を用いて読み出し、前記第１１のステップにより生成されたメッセージ認証子に置き換える第１２のステップと、
をコンピュータに実行させるためにプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイル共有ソフトにおけるファイルの不正共有を防止する監視装置、監視方法およびプログラムに関する。
【背景技術】
【０００２】
従来、ファイル共有ソフトにおけるファイルの不正共有を防止については、ユーザが注意してソフトウェアを使うという運用で解決するアプローチがとられていた（例えば、非特許文献１参照。）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Ｃｈｒｉｓ  Ｐａｃｅ  ａｎｄ  Ｂａｒｂａｒａ  Ｈｕｄｓｏｎ,  Ｆｉｘｉｎｇ  Ｙｏｕｒ  Ｄｒｏｐｂｏｘ  Ｐｒｏｂｌｅｍ,  ２０１２年３月，インターネット＜URL : https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&frm=1&source=web&cd=5&ved=0CEkQFjAE&url=https%3A%2F%2Fsecure2.sophos.com%2Fen-us%2Fmedialibrary%2FGated%2520Assets%2Fwhite%2520papers%2Fsophosfixingyourdropboxproblemwpna.pdf&ei=46xXUo-jKciDlQWhgYGYDA&usg=AFQjCNEiguSzzFS22YJUAdK7H0fvlQ1g3Q＞
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の方法では、ファイルの更新が正規の更新なのか、改竄なのかの区別ができないという問題があった。
【０００５】
そこで、本発明は、上述の課題に鑑みてなされたものであり、ユーザが意識をすることなく、自動的にチェックを行うことで、ファイルの不正共有を防止する監視装置、監視方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上記の課題を解決するために、以下の事項を提案している。
【０００７】
（１）本発明は、ファイル共有ソフトの共有フォルダを監視する監視装置であって、ユーザによって入力されたパスワードのハッシュ値から鍵を生成する第１の鍵生成手段と、
ＭＡＣ関数を用いて、前記生成された鍵とファイルのハッシュ値から共有フォルダに保存されているファイルのメッセージ認証子を生成する第１のメッセージ認証子生成手段と、ユーザによって入力されたパスワードから鍵を生成する第１の鍵生成手段と、ハッシュ関数と前記生成された鍵とを用いて共有フォルダに保存されているファイルのメッセージ認証子を生成する第１のメッセージ認証子生成手段と、前記生成された鍵と、生成したメッセージ認証子とを記憶装置に格納する格納手段と、前記メッセージ認証子を定められた時間間隔で、定期的に計算する計算手段と、該計算されたメッセージ認証子と前記格納されているメッセージ認証子と比較するメッセージ認証子比較手段と、該比較の結果、前記共有フォルダに保存されているファイルが変更されたかを検証するファイル検証手段と、該検証の結果、前記共有フォルダに保存されているファイルが変更されている場合に、ユーザに再度、パスワード入力を求めるパスワード要求手段と、該再度入力されたパスワードのハッシュ値から鍵を生成する第２の鍵生成手段と、該生成された鍵と前記格納されている鍵とを比較する鍵比較手段と、該比較の結果、パスワードが正しいことを検証するパスワード検証手段と、該検証の結果、パスワードが正しいと判断されたときに、ＭＡＣ関数を用いて、前記第２の鍵生成手段により生成された鍵とファイルのハッシュ値から前記共有フォルダに保存され、変更されたファイルのメッセージ認証子を生成する第２のメッセージ認証子生成手段と、前記記憶装置に格納しているメッセージ認証子を任意のアクセスパターンの保護方法を用いて読み出し、前記第２のメッセージ認証子生成手段により生成されたメッセージ認証子に置き換える置き換え手段と、を備えたことを特徴とする監視装置を提案している。
【０００８】
（２）本発明は、（１）の監視装置について、前記記憶装置が、アクセス領域と非アクセス領域と履歴領域とを有し、前記任意のアクセスパターンの保護方法が、初期状態において、１度だけ、前記非アクセス領域内のデータをランダムに並び替える第１のステップと、前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第２のステップと、１つのデータにアクセスが生じたときに、２つのデータを選択し、前記アクセス領域と非アクセス領域との間でデータ交換を行う際に、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが前記アクセス領域および前記履歴領域に存在せず、前記非アクセス領域に存在し、前記履歴領域に保存されたデータがある場合に、前記アクセスを行うデータと前記履歴領域に保存された任意のデータとを前記２つのデータとして選択して、前記アクセス領域に移動して、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動して保存する第３のステップと、アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出し、書き出したデータによって保存領域を書き換える第４のステップと、を備えたことを特徴とする監視装置を提案している。
【０００９】
（３）本発明は、（１）の監視装置について、前記記憶装置が、アクセス領域と非アクセス領域と履歴領域とを有し、前記任意のアクセスパターンの保護方法が、初期状態において、１度だけ、前記非アクセス領域内のデータをランダムに並び替える第１のステップと、前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第２のステップと、１つのデータにアクセスが生じたときに、２つのデータを選択し、前記アクセス領域と非アクセス領域との間でデータ交換を行う際に、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが前記履歴領域に保存されている場合に、前記履歴領域に保存されていないデータをランダムに選択し、前記アクセスを行うデータと前記ランダムに選択したデータとを前記２つのデータとし、前記アクセス領域に移動して、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記履歴領域に移動して保存する第３のステップと、アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出し、書き出したデータによって保存領域を書き換える第４のステップと、を備えたことを特徴とする監視装置を提案している。
【００１０】
（４）本発明は、（１）の監視装置について、前記記憶装置が、アクセス領域と非アクセス領域と履歴領域とを有し、前記任意のアクセスパターンの保護方法が、初期状態において、１度だけ、前記非アクセス領域内のデータをランダムに並び替える第１のステップと、前記非アクセス領域内のデータを前記アクセス領域のメモリサイズに応じて選択して、前記アクセス領域に移動させる第２のステップと、１つのデータにアクセスが生じたときに、２つのデータを選択し、前記アクセス領域と非アクセス領域との間でデータ交換を行う際に、前記アクセス領域内の他のデータについてもアクセスを行って、前記アクセス領域と非アクセス領域との間でデータ交換を行うとともに、アクセスを行うデータが前記アクセス領域に保存されている場合に、前記非アクセス領域と前記履歴領域とからランダムに選択したデータを前記２つのデータとし、前記アクセス領域に移動して、移動したデータサイズに応じて、前記アクセス領域にあった任意のデータを前記非アクセス領域に移動し、これらのデータを前記履歴領域に保存する第３のステップと、アクセスすべきデータへのアクセス処理が終了したときに、前記アクセス領域内の必要なデータを書き出し、書き出したデータによって保存領域を書き換える第４のステップと、を備えたことを特徴とする監視装置を提案している。
【００１１】
（５）本発明は、ファイル共有ソフトの共有フォルダを監視する監視装置における監視方法であって、コンピュータが、ユーザによって入力されたパスワードのハッシュ値から鍵を生成する第１のステップと、ＭＡＣ関数を用いて、前記生成された鍵とファイルのハッシュ値から共有フォルダに保存されているファイルのメッセージ認証子を生成する第２のステップと、前記生成された鍵と、生成したメッセージ認証子とを記憶装置に格納する第３のステップと、前記メッセージ認証子を定められた時間間隔で、定期的に計算する第４のステップと、該計算されたメッセージ認証子と任意のアクセスパターンの保護方法を用いて読み出した前記格納されているメッセージ認証子と比較する第５のステップと、該比較の結果、前記共有フォルダに保存されているファイルが変更されたかを検証する第６のステップと、該検証の結果、前記共有フォルダに保存されているファイルが変更されている場合に、ユーザに再度、パスワード入力を求める第７のステップと、該再度入力されたパスワードのハッシュ値から鍵を生成する第８のステップと、該生成された鍵と前記格納されている鍵とを比較する第９のステップと、該比較の結果、パスワードが正しいことを検証する第１０のステップと、該検証の結果、パスワードが正しいと判断されたときに、ＭＡＣ関数を用いて、前記第８のステップにより生成された鍵とファイルのハッシュ値から前記共有フォルダに保存され、変更されたファイルのメッセージ認証子を生成する第１１のステップと、前記記憶装置に格納しているメッセージ認証子を任意のアクセスパターンの保護方法を用いて読み出し、前記第１１のステップにより生成されたメッセージ認証子に置き換える第１２のステップと、を備えたことを特徴とする監視方法を提案している。
【００１２】
（６）本発明は、ファイル共有ソフトの共有フォルダを監視する監視装置における監視方法をコンピュータに実行させるためのプログラムであって、ユーザによって入力されたパスワードのハッシュ値から鍵を生成する第１のステップと、ＭＡＣ関数を用いて、前記生成された鍵とファイルのハッシュ値から共有フォルダに保存されているファイルのメッセージ認証子を生成する第２のステップと、前記生成された鍵と、生成したメッセージ認証子とを記憶装置に格納する第３のステップと、前記メッセージ認証子を定められた時間間隔で、定期的に計算する第４のステップと、該計算されたメッセージ認証子と任意のアクセスパターンの保護方法を用いて読み出した前記格納されているメッセージ認証子と比較する第５のステップと、該比較の結果、前記共有フォルダに保存されているファイルが変更されたかを検証する第６のステップと、該検証の結果、前記共有フォルダに保存されているファイルが変更されている場合に、ユーザに再度、パスワード入力を求める第７のステップと、該再度入力されたパスワードのハッシュ値から鍵を生成する第８のステップと、該生成された鍵と前記格納されている鍵とを比較する第９のステップと、該比較の結果、パスワードが正しいことを検証する第１０のステップと、該検証の結果、パスワードが正しいと判断されたときに、ＭＡＣ関数を用いて、前記第８のステップにより生成された鍵とファイルのハッシュ値から前記共有フォルダに保存され、変更されたファイルのメッセージ認証子を生成する第１１のステップと、前記記憶装置に格納しているメッセージ認証子を任意のアクセスパターンの保護方法を用いて読み出し、前記第１１のステップにより生成されたメッセージ認証子に置き換える第１２のステップと、をコンピュータに実行させるためにプログラムを提案している。
【発明の効果】
【００１３】
本発明によれば、ユーザが意識をすることなく、自動的にチェックを行うことで、ファイルの不正共有を防止することができるという効果がある。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態に係る監視装置の構成を示す図である。
【図２】本発明の実施例に係るアクセス時の記憶装置（ＲＡＭ）内のデータの遷移を示す図である。
【図３】本発明の実施形態に係るアクセス処理を例示した図である。
【図４】本発明の実施形態に係るアクセス処理を例示した図である。
【図５】本発明の実施形態に係る監視装置の処理を示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態について、図面を用いて、詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【００１６】
＜監視装置の構成＞
図１を用いて、本発明の実施形態に係る監視装置の構成について説明する。なお、本発明の監視装置は、例えば、クライアント端末とクラウドサーバとからなるシステムに用いられるものであるが、この監視装置は、クライアント端末側にあってもよく、クラウドサーバ側にあってもよい。
【００１７】
本実施形態に係る監視装置は、図１に示すように、第１の鍵生成部１０１と、第１のメッセージ認証子生成部１０２と、ＯＲＡＭ（Ｏｂｌｉｖｉｏｕｓ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ；記憶装置）１０３と、計算部１０４と、メッセージ認証子比較部１０５と、ファイル検証部１０６と、パスワード要求部１０７と、第２の鍵生成部１０８と、鍵比較部１０９と、パスワード検証部１１０と、第２のメッセージ認証子生成部１１１と、置き換え部１１２とから構成されている。
【００１８】
第１の鍵生成部１０１は、ユーザによって入力されたパスワードから鍵を生成する。例えば、入力されたパスワードＰｗとハッシュ関数Ｈを利用して鍵ｋをｋ＝Ｈ(Ｐｗ)の演算により生成する。第１のメッセージ認証子生成部１０２は、共有フォルダに保存されているファイルのハッシュ値ｈｘと生成された鍵とを用いて共有フォルダに保存されているファイルのメッセージ認証子を生成する。例えば、ＭＡＣ関数を用いて、Ｍ＝ＭＡＣ(ｈｘ, ｋ)を演算することにより、メッセージ認証子Ｍを生成する。なお、メッセージ認証子に代えて、電子署名を用いてもよい。
【００１９】
ＯＲＡＭ１０３は、生成した鍵とメッセージ認証子とを任意のアクセスパターンの保護方法により、格納する。なお、任意のアクセスパターン保護方法については、その具体例を後述する。
【００２０】
計算部１０４は、メッセージ認証子を定められた時間間隔で、定期的に計算する。メッセージ認証子比較部１０５は、計算されたメッセージ認証子とＯＲＡＭ１０３に格納されているメッセージ認証子と比較する。
【００２１】
ファイル検証部１０６は、メッセージ認証子比較部１０５による比較の結果、共有フォルダに保存されているファイルが変更されたか否かを検証する。パスワード要求部１０７は、ファイル検証部１０６による検証の結果、共有フォルダに保存されているファイルが変更されている場合に、ユーザに再度、パスワード入力を求める。なお、パスワードをＯＲＡＭ１０３に格納することにより、ユーザによるパスワードの入力を省略してもよい。
【００２２】
第２の鍵生成部１０８は、再度入力されたパスワードから第１の鍵生成部と同様の手段にて鍵を生成する。鍵比較部１０９は、生成された鍵と格納されている鍵とを比較する。パスワード検証部１１０は、鍵比較部１０９による比較の結果、パスワードが正しいことを検証する。
【００２３】
第２のメッセージ認証子生成部１１１は、パスワード検証部１１０による検証の結果、パスワードが正しいと判断されたときに、ハッシュ関数と第２の鍵生成部１０８により生成された鍵とを用いて、共有フォルダに保存され、変更されたファイルのメッセージ認証子を生成する。さらに、置き換え部１１２は、ＯＲＡＭ１０３に格納しているメッセージ認証子を第２のメッセージ認証子生成部１１１により生成されたメッセージ認証子に置き換える。
＜ＯＲＡＭのアクセス方式＞
【００２４】
ＯＲＡＭ１０３のアクセス方式を図２から図４を用いて説明する。
なお、図２に示すように、監視装置のプログラムがアクセスする領域は図中のＭで示したアクセス領域のみであり、これ以外の領域にはアクセスしない。ＯＲＡＭ１０３は、監視装置のプログラムがアクセスしようとしているデータがアクセス領域にある場合、ランダムに選択したデータをアクセス領域と保存領域（非アクセス領域）で交換する。監視装置のプログラムがアクセスしようとしているデータがアクセス領域にない場合、アクセスしようとしているデータを含むデータをアクセス領域に移動し、アクセス領域にあったデータは保存領域（非アクセス領域）に書き出される。このようなアクセス処理を行い、どのデータにアクセスをしているのかを秘匿化する。
【００２５】
図２は、１、２、・・・、９、Ａ、Ｂ、・・・、Ｆを保存領域（非アクセス領域）に保存されているデータとしたときに、監視装置のプログラムが、５→Ｄ→８→５→Ａの順にデータにアクセスする場合のデータ保存状態の遷移を示したものである。以下、図３、図４を用いて、この処理を例示とし、説明する。なお、図２の例にかかわらず、保存領域（非アクセス領域）をさらに複数に分割してもよい。
【００２６】
まず、初期状態において、１度だけ、ＯＲＡＭ１０３は、保存領域（非アクセス領域）内のデータをランダムに並び替え（ステップＳ１１００）、アクセス領域のメモリサイズに応じて選択した保存領域（非アクセス領域）内のデータをアクセス領域に移動させる（ステップＳ１２００）。
【００２７】
そして、まず、５にアクセスする場合には、５はアクセス領域に含まれないため、５ともう一つランダムに選択されたデータ(図２では、２)を保存領域（非アクセス領域）からアクセス領域に移動し、例えば、これにより、アクセス領域から移動する４とＢとを履歴領域に保存して、５にアクセスする。このとき、アクセス領域内の他のデータ（図２では、２、３、８）に対してもアクセスを行う（ステップＳ１３００）。
【００２８】
次に、Ｄにアクセスする場合には、Ｄはアクセス領域に含まれないため、保存領域（非アクセス領域）からＤをアクセス領域に移動し、もう一つのデータは、履歴領域から選択する（例えば、図２では、Ｂ)。これにより、アクセス領域から移動する５と８とを履歴領域に保存して、Ｄにアクセスする。このとき、アクセス領域内の他のデータ（図２では、３、Ｂ、２）に対してもアクセスを行う（ステップＳ１４００）。
【００２９】
さらに、８にアクセスする場合には、８は履歴領域に含まれているため、もう一つのデータは履歴領域に含まれないデータを保存領域（非アクセス領域）からランダムに選択し(図２では、Ａ)、アクセス領域に移動する。これにより、アクセス領域から移動する３とＢとを履歴領域に保存して、８にアクセスする。このとき、アクセス領域内の他のデータ（図２では、Ａ、Ｄ、２）に対してもアクセスを行う（ステップＳ１５００）。
【００３０】
さらに、５にアクセスする場合、５は履歴領域に含まれているため、もう一つのデータは履歴領域に含まれないデータを保存領域（非アクセス領域）からランダムに選択し(図２では、６)、アクセス領域に移動する。これにより、アクセス領域から移動する２と８とを履歴領域に保存して、５にアクセスする。また、アクセス領域内の他のデータ（図２では、Ａ、Ｄ、６）に対してもアクセスを行う（ステップＳ１６００）。
【００３１】
最後に、Ａにアクセスする場合、Ａはアクセス領域に含まれているため、アクセス領域に含まれない保存領域（非アクセス領域）からランダムに選択したデータと履歴領域に保存されているデータ(図２では、３、Ｆ)とを、アクセス領域に移動する。これにより、アクセス領域から移動する６とＤとが保存領域（非アクセス領域）に書き出され、Ａにアクセスする。また、アクセス領域内の他のデータ（図２では、５、Ｆ、３）に対してもアクセスを行う（ステップＳ１７００）。
【００３２】
そして、すべての処理が完了するとアクセス領域内の必要なデータを書き出して、書き出したデータによって保存領域を書き換えて、終了する（ステップＳ１８００）。
【００３３】
したがって、１つのデータにアクセスが生じたときに、アクセス領域と保存領域（非アクセス領域）との間でデータ交換を行うことから、データのアクセスパターンを保護することができる。さらに、アクセス領域内の他のデータについてもアクセスを行って、アクセス領域と保存領域（非アクセス領域）との間でデータ交換を行うため、さらに、データのアクセスパターンを保護することができる。
【００３４】
また、アクセス領域は数１に示すような数式により難読化を使用して構成される。
【００３５】
【数１】
2015127859.tif 000003
【００３６】
数１は、変数による難読化を例示しており、ここで、ｖ１、ｖ２、ｖ３は、難読化前の変数であり、ｘ１、ｘ２、ｘ３、ｘ４、ｘ５は、難読化後の変数を表す。また、ｄは乱数、ｙ１、ｙ２、ｙ３、ｙ４、ｙ５は、所定の定数である。数１に表されるように、乱数ｄとかけられる行列の列は常に１になっており、これによって難読化前の変数ｖの変更が難読化後の変数全体に及ぶようになっている。難読化を適用することによって、１つの変数を変更すれば、それが５つの変数に影響を及ぼすことになる。
【００３７】
また、上記の例において、アクセス領域に保管されているデータを管理することが重要であり、最新のデータが１つだけ保持されていなければならない。そのため、保存領域（非アクセス領域）からアクセス領域にデータを移動する際に、選択したデータがアクセス領域に保持されていないことを確認する必要がある。シンプルな解決策としてスキャンによるものがある。しかし、スキャンを使用した場合、多くのオーバーヘッドが生じる。そこで、保存領域（非アクセス領域）の全ブロックに１ビットの値を割り当て、ビットの１，０によって各データがアクセス領域に保持されているかどうかを判定する。これによって、アクセス領域のデータの管理を高速に行うことが可能である。
【００３８】
また、上記の例において、各ブロックのサイズは一定である。そのため、大きなサイズのデータブロックに対応するために、各ブロックをＣＰＵのワードサイズに合わせて３２あるいは６４ビットでＯＲＡＭ１０３を構成する必要がある。しかし、プログラムが扱う変数はこれよりも小さい場合が多く、大きなブロックを使用すると必要となるメモリが増加するという問題がある。そこで、１ブロックのサイズを３２あるいは６４ビットとし、１つのブロックに複数の小さいデータを格納する。例えば、ｓｈｏｒｔ ｉｎｔ型変数の場合、１つのデータは２バイト（１６ビット）であるので、６４ビット環境では、１つのブロックに４つのｓｈｏｒｔ ｉｎｔ型変数を格納することが可能となる。これによって、必要なメモリサイズの削減が可能となる。同時に、４つのｓｈｏｒｔ ｉｎｔ型変数を１度に取得することが可能となるので、連続してアクセスするデータが同一のブロックに格納されている場合はアクセス速度の向上も実現できる。
【００３９】
＜データ共有システムの処理＞
図５を用いて、本実施形態に係る監視装置の処理について説明する。
【００４０】
まず、ユーザによって入力されたパスワードから鍵を生成し（ステップＳ１０１）、ハッシュ関数と生成された鍵とを用いて共有フォルダに保存されているファイルのメッセージ認証子を生成して（ステップＳ１０２）、生成された鍵と、生成したメッセージ認証子とを記憶装置に格納する（ステップＳ１０３）。
【００４１】
次に、メッセージ認証子を定められた時間間隔で、定期的に計算し（ステップＳ１０４）、計算されたメッセージ認証子と任意のアクセスパターンの保護方法を用いて読み出した格納されているメッセージ認証子と比較して（ステップＳ１０５）、その結果、共有フォルダに保存されているファイルが変更されたかを検証する（ステップＳ１０６）。
【００４２】
さらに、検証の結果、共有フォルダに保存されているファイルが変更されている場合に、ユーザに再度、パスワード入力を求め（ステップＳ１０７）、再度入力されたパスワードから鍵を生成し（ステップＳ１０８）、生成された鍵と格納されている鍵とを比較する（ステップＳ１０９）。
【００４３】
そして、比較の結果、パスワードが正しいことを検証し（ステップＳ１１０）、検証の結果、パスワードが正しいと判断されたときに、ハッシュ関数とステップＳ１０８により生成された鍵とを用いて共有フォルダに保存され、変更されたファイルのメッセージ認証子を生成し（ステップＳ１１１）、記憶装置に格納しているメッセージ認証子を任意のアクセスパターンの保護方法を用いて読み出し、ステップＳ１１１により生成されたメッセージ認証子に置き換える（ステップＳ１１２）。
【００４４】
以上、説明したように、本実施形態によれば、ユーザが意識をすることなく、自動的にチェックを行うことで、ファイルの不正共有を防止することができる。
【００４５】
なお、監視装置の処理をコンピュータシステムが読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムを監視装置に読み込ませ、実行することによって本発明の監視装置を実現することができる。ここでいうコンピュータシステムとは、ＯＳや周辺装置等のハードウェアを含む。
【００４６】
また、「コンピュータシステム」は、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）システムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
【００４７】
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【００４８】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００４９】
１０１；第１の鍵生成部
１０２；第１のメッセージ認証子生成部
１０３；ＯＲＡＭ
１０４；計算部
１０５；メッセージ認証子比較部
１０６；ファイル検証部
１０７；パスワード要求部
１０８；第２の鍵生成部
１０９；鍵比較部
１１０；パスワード検証部
１１１；第２のメッセージ認証子生成部
１１２；置き換え部
【図１】
2015127859.tif 000004
【図２】
2015127859.tif 000005
【図３】
2015127859.tif 000006
【図４】
2015127859.tif 000007
【図５】
2015127859.tif 000008