(57)【要約】  仮想ディスクにより書き込みリクエストに含まれるデータに対し暗号化を行い、また仮想ディスクにより読み出しリクエストがリクエストしたデータに対し復号を行うことにより、安全性、信頼性、及び効果性の高いファイル暗号化ファイル暗号化方法及び装置、ファイル復号方法及び装置を実現する。ファイル暗号化方法は、仮想ディスクを作成する工程と、仮想ディスクがファイルシステムからの書き込みリクエストを受信し、書き込みリクエストに含まれるデータに対し暗号化を行い、かつ暗号化されたデータを対応する物理ディスクへ書き込むようにファイルシステムに通知することにより、ファイルシステムが仮想ディスクからの通知を受信した後に暗号化されたデータを対応する物理ディスクへ書き込む工程とを含む。
2014530371.tif 000002
【特許請求の範囲】
【請求項１】
ファイル暗号化方法であって、前記ファイル暗号化方法は、仮想ディスクを作成する工程を含み、さらに、
前記仮想ディスクが、ファイルシステムからの書き込みリクエストを受信し、前記書き込みリクエストに含まれるデータに対し暗号化を行い、かつ暗号化されたデータを対応する物理ディスクへ書き込むようにファイルシステムに通知することにより、前記ファイルシステムが前記仮想ディスクからの通知を受信した後に前記暗号化されたデータを対応する前記物理ディスクへ書き込む工程を含むことを特徴とするファイル暗号化方法。
【請求項２】
前記仮想ディスクは、カーネルステータスで見え、唯一の識別子を有し、
前記仮想ディスクが作成された後、かつ前記仮想ディスクが前記ファイルシステムからの書き込みリクエストを受信する前に、さらに、
前記仮想ディスクをＷｉｎｄｏｗｓ(登録商標）下のディスク管理モジュールへ通知し、及び／又は、
ブロードキャストメッセージにより、前記仮想ディスクを前記Ｗｉｎｄｏｗｓ(登録商標）下のリソース管理モジュールへ通知することにより、前記リソース管理モジュールが前記仮想ディスクを再列挙する工程を含むことを特徴とする請求項１に記載のファイル暗号化方法。
【請求項３】
前記ファイルシステムは、カーネルステータスでユーザステータスからの書き込みリクエストを受信し、前記書き込みリクエストに前記仮想ディスクの識別子が含まれていると判定すると、前記書き込みリクエストを前記仮想ディスクへ送信することを特徴とする請求項２に記載のファイル暗号化方法。
【請求項４】
前記仮想ディスクが前記暗号化されたデータを対応する物理ディスクへ書き込むようにファイルシステムに通知する工程は、
前記仮想ディスク自身が対応する物理ディスクファイルを確認し、確認された前記物理ディスクファイルの識別子で書き込みリクエストに含まれる前記仮想ディスクの識別子を置き換え、その後前記書き込みリクエストを前記ファイルシステムへ送信する工程をさらに含み、
前記ファイルシステムが前記仮想ディスクからの通知を受信した後に前記暗号化されたデータを対応する物理ディスクへ書き込む工程は、
前記ファイルシステムが、前記仮想ディスクからの通知を受信した後に、前記書き込みリクエストに含まれる前記暗号化されたデータを、書き込みリクエストに含まれる前記物理ディスクファイルの識別子が対応する物理ディスクファイルへ書き込む工程をさらに含むことを特徴とする請求項２に記載のファイル暗号化方法。
【請求項５】
前記仮想ディスクを作成する工程は、
前記仮想ディスクが対応する前記物理ディスクファイルに対し初期化を行う工程と、
前記仮想ディスクを作成するとき、ユーザに対し前記物理ディスクファイルを使用するための鍵を提供するように要求し、かつ前記ユーザから提供された鍵を検証し、認証に成功すると、前記仮想ディスクを作成するために必要な初期化を実行し、前記初期化が完成された後、前記仮想ディスクを作成するためのコントローラにより前記仮想ディスクを作成する工程とを含むことを特徴とする請求項１から請求項４のいずれか１項に記載のファイル暗号化方法。
【請求項６】
ファイル復号方法であって、前記ファイル復号方法は仮想ディスクを作成する工程を含み、さらに、
前記仮想ディスクは、ファイルシステムから受信した読み出しリクエストを物理ディスクへリダイレクトすることにより、前記ファイルシステムは前記物理ディスクから前記読み出しリクエストがリクエストしたデータを取得する工程Ａと、
前記仮想ディスクは、前記ファイルシステムが前記物理ディスクから得たデータを受信し、かつ前記受信されたデータに対し復号を行い、前記復号されたデータを前記ファイルシステムへ送信し、前記ファイルシステムにより前記復号されたデータをユーザ側へ提供する工程Ｂとを含むことを特徴とするファイル復号方法。
【請求項７】
前記仮想ディスクは、カーネルステータスで見え、唯一の識別子を有し、
前記仮想ディスクが作成された後、かつ前記工程Ａが実行される前に、さらに、
前記仮想ディスクをＷｉｎｄｏｗｓ(登録商標）下のディスク管理モジュールへ通知し、及び／又は、
ブロードキャストメッセージにより、前記仮想ディスクを前記Ｗｉｎｄｏｗｓ(登録商標）下のリソース管理モジュールへ通知することにより、前記リソース管理モジュールが前記仮想ディスクを再列挙する工程を含むことを特徴とする請求項６に記載のファイル復号方法。
【請求項８】
前記工程Ａにおいて、前記ファイルシステムは、前記カーネルステータスでユーザステータスからの読み出しリクエストを受信し、前記読み出しリクエストに前記仮想ディスクの識別子が含まれていると判定すると、前記読み出しリクエストを前記仮想ディスクへ送信することを特徴とする請求項７に記載のファイル復号方法。
【請求項９】
前記工程Ａは、
前記仮想ディスクが読み出しリクエストを受信した後、前記仮想ディスク自身が対応する物理ディスクファイルを確認し、確認された前記物理ディスクファイルの識別子で読み出しリクエストに含まれる前記仮想ディスクの識別子を置き換え、かつ前記読み出しリクエストをファイルシステムへ送信する工程と、
前記ファイルシステムは、前記仮想ディスクからの読み出しリクエストを受信した後に、前記読み出しリクエストに含まれる前記物理ディスクファイルの識別子が対応する物理ディスクファイルへ前記読み出しリクエストを送信することにより、前記物理ディスクファイルから前記読み出しリクエストがリクエストしたデータを取得する工程とを含むことを特徴とする請求項７に記載のファイル復号方法。
【請求項１０】
前記仮想ディスクを作成する工程は、
前記仮想ディスクが対応する物理ディスクファイルに対し初期化工程を行う工程と、
前記仮想ディスクを作成するとき、ユーザに対し前記物理ディスクファイルを使用するための鍵を提供するように要求し、かつユーザから提供された鍵を検証し、認証に成功すると、前記仮想ディスクを作成するために必要な初期化を実行し、前記初期化が完成された後、前記仮想ディスクを作成するためのコントローラにより前記仮想ディスクを作成する工程とを含むことを特徴とする請求項６から請求項９のいずれか１項に記載のファイル復号方法。
【請求項１１】
仮想ディスク作成ユニットと、仮想ディスクドライバユニットとを含むファイル暗号化装置であって、
前記仮想ディスク作成ユニットは、仮想ディスクを作成し、
前記仮想ディスクドライバユニットは、ファイルシステムからの書き込みリクエストを受信し、前記書き込みリクエストに含まれるデータに対し暗号化を行い、かつ暗号化されたデータを対応する物理ディスクへ書き込む通知を前記ファイルシステムに送ることにより、前記ファイルシステムが前記仮想ディスクからの通知を受信した後に暗号化されたデータを対応する前記物理ディスクへ書き込むことを特徴とするファイル暗号化装置。
【請求項１２】
前記仮想ディスクは、カーネルステータスで見え、唯一の識別子を有し、前記ファイル暗号化装置は、さらに、仮想ディスク通知ユニットを含み、
前記仮想ディスク通知ユニットは、前記仮想ディスク作成ユニットにより前記仮想ディスクが作成された後、かつ前記仮想ディスクドライバユニットが書き込みリクエストを受信する前に、前記仮想ディスクをＷｉｎｄｏｗｓ(登録商標）下のディスク管理モジュールへ通知し、及び／又は、ブロードキャストメッセージにより、前記仮想ディスクを前記Ｗｉｎｄｏｗｓ(登録商標）下のリソース管理モジュールへ通知することにより、前記リソース管理モジュールが前記仮想ディスクを再列挙することを特徴とする請求項１１に記載のファイル暗号化装置。
【請求項１３】
前記仮想ディスクドライバユニットは、受信モジュールと、暗号化モジュールと、リダイレクトモジュールとを含み、
前記受信モジュールは、ファイルシステムからの書き込みリクエストを受信し、
前記暗号化モジュールは、書き込みリクエストに含まれるデータに対し暗号化を行い、
前記リダイレクトモジュールは、前記仮想ディスクが対応する物理ディスクファイルを確認し、確認された物理ディスクファイルの識別子で書き込みリクエストに含まれる前記仮想ディスクの識別子を置き換えた後、前記書き込みリクエストをファイルシステムへ送信することにより、前記ファイルシステムが前記仮想ディスクからの前記書き込みリクエストを受信した後、前記書き込みリクエストに含まれる暗号化されたデータを前記書き込みリクエストに含まれる前記物理ディスクファイルの識別子が対応する物理ディスクファイルへ書き込むことを特徴とする請求項１２に記載のファイル暗号化装置。
【請求項１４】
前記仮想ディスク作成ユニットは、初期化モジュールと、処理モジュールと、仮想ディスク作成モジュールとを含み、
前記初期化モジュールは、前記仮想ディスクが対応する物理ディスクファイルに対し初期化を行い、
前記処理モジュールは、前記仮想ディスク作成モジュールが前記仮想ディスクを作成するようにトリガーするときに、ユーザに対し前記物理ディスクファイルを使用するための鍵を提供するように要求し、かつ前記ユーザから提供された鍵を検証し、認証に成功すると、前記仮想ディスクを作成するために必要な初期化を続けて実行するように前記初期化モジュールをトリガーし、前記初期化モジュールが前記初期化を完成したと検出すると、前記仮想ディスク作成モジュールが前記仮想ディスクを作成するようにトリガーし、
前記仮想ディスク作成モジュールは、前記処理モジュールのトリガーで前記仮想ディスクを作成することを特徴とする請求項１１から請求項１３のいずれか１項に記載のファイル暗号化装置。
【請求項１５】
仮想ディスク作成ユニットと、仮想ディスクドライバユニットとを含むファイル復号装置であって、
前記仮想ディスク作成ユニットは、仮想ディスクを作成し、
前記仮想ディスクドライバユニットは、リダイレクトモジュールと復号モジュールとを含み、
前記リダイレクトモジュールは、ファイルシステムから受信した読み出しリクエストを物理ディスクへリダイレクトすることにより、前記ファイルシステムが前記物理ディスクから前記読み出しリクエストがリクエストしたデータを取得し、
前記復号モジュールは、ファイルシステムが前記物理ディスクから得たデータを受信し、かつ前記受信されたデータに対し復号を行い、前記復号されたデータを前記ファイルシステムへ送信し、前記ファイルシステムにより復号されたデータをユーザ側へ提供することを特徴とするファイル復号装置。
【請求項１６】
前記仮想ディスクは、カーネルステータスで見え、唯一の識別子を有し、前記ファイル復号装置は、さらに仮想ディスク通知ユニットを含み、
前記仮想ディスク通知ユニットは、前記仮想ディスク作成ユニットにより仮想ディスクが作成された後、かつ仮想ディスクドライバユニットが読み出しリクエストを受信する前に、前記仮想ディスクをＷｉｎｄｏｗｓ(登録商標）下のディスク管理モジュールへ通知し、及び／又は、ブロードキャストメッセージにより前記仮想ディスクを前記Ｗｉｎｄｏｗｓ(登録商標）下のリソース管理モジュールへ通知することにより、前記リソース管理モジュールが該仮想ディスクを再列挙することを特徴とする請求項１５に記載のファイル復号装置。
【請求項１７】
前記リダイレクトモジュールは、確認サブモジュールとリダイレクトサブモジュールとを含み、
該確認サブモジュールは、読み出しリクエストを受信した後、自身が対応する物理ディスクファイルを確認し、
前記リダイレクトサブモジュールは、確認された物理ディスクファイルの識別子で読み出しリクエストに含まれる仮想ディスクの識別子を置き換え、かつ前記読み出しリクエストをファイルシステムへ送信することにより、前記ファイルシステムが仮想ディスクからの読み出しリクエストを受信した後、前記読み出しリクエストに含まれる物理ディスクファイルの識別子が対応する物理ディスクファイルへ前記読み出しリクエストを送信することで、前記物理ディスクファイルから、前記読み出しリクエストがリクエストしたデータを取得することを特徴とする請求項１５に記載のファイル復号装置。
【請求項１８】
前記仮想ディスク作成ユニットは、初期化モジュールと、処理モジュールと、仮想ディスク作成モジュールとを含み、
前記初期化モジュールは、前記仮想ディスクが対応する物理ディスクファイルに対し初期化を行い、
前記処理モジュールは、前記仮想ディスク作成モジュールが前記仮想ディスクを作成するようにトリガーするときに、ユーザに対し前記物理ディスクファイルを使用するための鍵を提供するように要求し、かつ前記ユーザから提供された鍵を検証し、認証に成功すると、前記仮想ディスクを作成するために必要な初期化を続けて実行するように前記初期化モジュールをトリガーし、前記初期化モジュールが前記初期化を完成したと検出すると、前記仮想ディスク作成モジュールが前記仮想ディスクを作成するようにトリガーし、
前記仮想ディスク作成モジュールは、前記処理モジュールのトリガーで前記仮想ディスクを作成することを特徴とする請求項１５から請求項１７のいずれか１項に記載のファイル復号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理技術に関し、特にファイル暗号化方法及び暗号化装置、ファイル復号方法及び復号装置に関する。
【背景技術】
【０００２】
現在、比較的によく使われるファイル暗号化技術は、主に直接暗号化、ファイル透過的暗号化、及びオペレーティング・システムによる暗号化がある。これらの暗号化技術は、暗号化することができるものの、以下に述べるようにそれぞれ欠点がある。
【０００３】
直接暗号化は、ディスクの中のファイルに対し直接に暗号化を行う。代表的なソフトウェアとして、ＷｉｎＲａｒがある。しかし、この直接暗号化は、毎回使用前に手動で復号及び使用後に再び手動で暗号化を行わなければならない。そのため、非常に手間がかかり、複雑で面倒であるという欠点がある。
ファイル透過的暗号化は、Ｗｉｎｄｏｗｓ(登録商標）のフィルタドライバによりファイルに対し動的な暗号化及び復号を行うため、直接暗号化のように手動による暗号化及び復号を必要としない。しかし、ファイル透過的暗号化は、以下の欠点がある。すなわち、使用されるＷｉｎｄｏｗｓ(登録商標）のフィルタドライバはＷｉｎｄｏｗｓ(登録商標）ファイルシステムドライバに存在するため、Ｗｉｎｄｏｗｓ(登録商標）フィルタドライバを使用した後にすべてのファイル操作に対し大規模なフィルタ操作を行う必要がある。そのため、システム性能に大いに影響される。以上から分かるように、安全性、信頼性、及び効率性の高いファイル暗号化方法を提供することは、現在早急に解決しなければならない問題である。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の目的は安全性、信頼性、及び効率性の高いファイル暗号化を実現するためにファイル暗号化方法及び装置を提供することにある。
【０００５】
本発明の他の目的は、ファイル暗号化方法及びそれを用いたファイル暗号化装置並びに対応するファイル復号方法及びそれを用いたファイル復号装置を提供することにある。これにより、ファイルの読み出し性能に影響しないように、仮想ディスクによりファイル復号を行うことを実現する。
【課題を解決するための手段】
【０００６】
本発明にかかるファイル暗号化方法は、仮想ディスクを作成する工程を含み、さらに、下記工程を含む。すなわち、前記仮想ディスクが、ファイルシステムからの書き込みリクエストを受信し、書き込みリクエストに含まれているデータに対し暗号化を行い、かつ暗号化されたデータを対応する物理ディスクへ書き込むようにファイルシステムに通知することにより、ファイルシステムが仮想ディスクからの通知を受信した後に暗号化されたデータを対応する物理ディスクへ書き込む工程である。
【０００７】
本発明にかかるファイル復号方法は、仮想ディスクを作成する工程を含み、さらに、下記工程Ａと工程Ｂを含む。工程Ａ：仮想ディスクは、ファイルシステムから受信した読み出しリクエストを物理ディスクへリダイレクトすることにより、ファイルシステムは物理ディスクから読み出しリクエストがリクエストしたデータを得る工程。工程Ｂ：仮想ディスクは、ファイルシステムが物理ディスクから得たデータを受信し、かつ受信されたデータに対し復号を行い、復号されたデータをファイルシステムへ送信し、ファイルシステムにより復号されたデータをユーザ側へ提供する工程。
【０００８】
本発明にかかるファイル暗号化装置は、仮想ディスク作成ユニットと、仮想ディスクドライバユニットとを含み、仮想ディスク作成ユニットは、仮想ディスクを作成し、仮想ディスクドライバユニットは、ファイルシステムからの書き込みリクエストを受信し、書き込みリクエストに含まれるデータに対し暗号化を行い、かつ暗号化されたデータを対応する物理ディスクへ書き込む通知をファイルシステムに送ることにより、ファイルシステムが仮想ディスクからの通知を受信した後に暗号化されたデータを対応する物理ディスクへ書き込む。
【０００９】
本発明にかかるファイル復号装置は仮想ディスク作成ユニットと、仮想ディスクドライバユニットとを含むファイル復号装置であって、仮想ディスク作成ユニットは、仮想ディスクを作成し、仮想ディスクドライバユニットは、リダイレクトモジュールと復号モジュールとを含み、そのうち、リダイレクトモジュールは、ファイルシステムから受信した読み出しリクエストを物理ディスクへリダイレクトすることにより、ファイルシステムが上記物理ディスクから上記読み出しリクエストがリクエストしたデータを取得し、復号モジュールは、ファイルシステムが物理ディスクから取得したデータを受信し、かつ受信したデータに対し復号を行い、復号されたデータをファイルシステムへ送信し、ファイルシステムにより復号されたデータをユーザ側へ提供する。
【発明の効果】
【００１０】
本発明は、仮想ディスクにより書き込みリクエストに含まれるデータに対し暗号化を行い、また仮想ディスクにより読み出しリクエストがリクエストしたデータに対し復号を行うことにより、ファイル暗号化の信頼性、安全性及び効果性を向上した。
【図面の簡単な説明】
【００１１】
【図１】図１は、本発明の実施例に係る仮想ディスクを作成する方法を示すフローチャートである。
【図２】図２は、本発明の実施例１に係るファイル暗号化方法の工程を示すフローチャートである。
【図３】図３は、本発明の実施例１に係るファイル暗号化方法の工程の詳細を示すフローチャートである。
【図４】図４は、本発明の実施例１に係るファイル暗号化装置を示す概略図である。
【図５】図５は、本発明の実施例２に係るファイル復号方法の工程を示すフローチャートである。
【図６】図６は、本発明の実施例２に係るファイル復号方法の工程の詳細を示すフローチャートである。
【図７】図７は、本発明の実施例２に係るファイル復号装置の構造を示す概略図である。
【発明を実施するための形態】
【００１２】
本発明の上記又は他の目的、特徴及び効果を理解してもらうため、図面を参照しながら好適な実施例を挙げ、詳細に説明する。
【００１３】
本発明に係るファイル暗号化方法及びそれを用いたファイル暗号化装置、ファイル復号方法及びそれを用いたファイル復号装置は、例えば、Ｗｉｎｄｏｗｓ(登録商標）仮想ディスクを用いる。いわゆる仮想ディスクは、実質的に既存の物理ディスクに類似し、Ｗｉｎｄｏｗｓ(登録商標）内部のボリューム（Ｖｏｌｕｍｅ）を意味し、また少なくとも１つのデバイスに対応する。
【００１４】
本発明に係るファイル暗号化方法及びファイル暗号化装置、ファイル復号方法及びファイル復号装置について説明する前に、まず仮想ディスクを作成する方法を説明する。
【００１５】
図１は、本発明の実施例に係る仮想ディスクを作成する方法を示すフローチャートである。図１に示すように、仮想ディスクを作成する方法は、下記工程を含む。工程１０１において、作成しようとする仮想ディスクが対応する物理ディスクのファイルに対し初期化を行う。工程１０１において、仮想ディスクが対応する物理ディスクのファイルは、予め手動で設定してもよい。具体的に、上記仮想ディスクへ書き込むデータを保存するためのサフィックス（拡張子）が「*.ｑｂｏｘ」であるファイルであってもよい。
【００１６】
すなわち、仮想ディスクへデータを書き込むとき、データを仮想ディスクが対応する物理ディスクのファイルへリダイレクトする必要がある。データを読み出すために仮想ディスクへ読み出しリクエストを送信するとき、読み出しリクエストを仮想ディスクが対応する物理ディスクのファイルへリダイレクトする必要があり、それにより読み出しリクエストがリクエストしたデータを取得する。
【００１７】
工程１０２は、仮想ディスクを作成するとき、ユーザに対し物理ディスクファイルを使用するための鍵を提供するように要求し、かつユーザから提供された鍵を検証し、認証が成功した場合、工程１０３を実行する。認証に失敗した場合、工程１０２へ戻るか、あるいは現在の工程を終了する。
【００１８】
工程１０３は、仮想ディスクを作成する。工程１０３は、具体的に、下記工程を含むことができる。すなわち、工程１として、カーネルで実行されるドライバを初期化することにより、ドライバをその後の仮想ディスクのドライバとすることで、仮想ディスクに対する読み出しリクエスト及び書き込みリクエストを処理する。ここで、ドライバは、Ｗｉｎｄｏｗｓ(登録商標）実行可能なプログラムファイルの一種であり、サフィックス名は「.ｓｙｓ」であってもよい。
【００１９】
工程２は、カーネル暗号化スレッド及びカーネル復号スレッドを初期化する。ここで、スレッドとは、Ｗｉｎｄｏｗｓ(登録商標）のタスクスケジューリングの基本単位である。また、カーネル暗号化スレッドとは、システムカーネル空間で実行され、暗号化するためのスレッドである。また、カーネル復号スレッドとは、システムカーネル空間で実行され、復号するためのスレッドである。
【００２０】
説明すべきは、工程１及び工程２は、Ｗｉｎｄｏｗｓ(登録商標）下で仮想ディスクを作成するために必要な初期化工程の１つの例として挙げたものである。異なるＷｉｎｄｏｗｓ(登録商標）環境では、仮想ディスクを作成するために必要な初期化工程は異なるため、工程１及び工程２はあくまで一例であって、本発明はそれに限定されない。
【００２１】
工程３は、仮想ディスクを作成するためのコントロールにより仮想ディスクを作成する。工程３において、仮想ディスクを作成するためのコントロールは、具体的に、Ｗｉｎｄｏｗｓ(登録商標）下のＩｏＣｔｅａｔｅＤｅｖｉｃｅコントロールであってよい。また、工程３で作成される仮想ディスクは、唯一の識別子、例えば＼Ｄｅｖｉｃｅ＼ＨａｒｄｄｉｓｋＶｏｌｕｍｅ２を有し、また対応するデバイスの種類を有し、例えばＦＩＬＥ_ＤＥＶＩＣＥ_ＤＩＳＫでディスクデバイスであることを示す。このように、上記工程１から工程３により、仮想ディスクを作成することができる。
【００２２】
好ましくは、本発明において、仮想ディスクがユーザステータスで見えるようにするため、ドライブ文字割り当てコントロール、例えばＷｉｎｄｏｗｓ(登録商標）下のＩｏＣｒｅａｔｅＳｙｍｂｏｌｉｃＬｉｎｋにより、仮想ディスクにドライブ文字を割り当ててもよい。また、本発明は、Ｗｉｎｄｏｗｓ(登録商標）の「マイコンピュータ」で割り当てられたドライブ文字が見えるようにするため、上記デバイスに対し１つのドライブ文字を与えるようにする。
【００２３】
これまで、仮想ディスクを作成するための主な工程は実行済みである。しかし、本発明に係る仮想ディスクのプラグアンドプレイ特性を考慮すると、仮想ディスクをＷｉｎｄｏｗｓ(登録商標）下のディスク管理モジュール（ＭｏｕｎｔＭａｎｇｅｒ）へ通知し、及び／又は、ブロードキャストメッセージにより仮想ディスクをＷｉｎｄｏｗｓ(登録商標）下のリソース管理モジュール（Ｅｘｐｌｏｒｅｒ）へ通知することによりリソース管理モジュールが仮想ディスクを再列挙する必要がある。
【００２４】
このようにした後、ユーザは、通常の物理ディスクに対し読み出しと書き込み動作を行うのと同様に、仮想ディスクに対し読み出しと書き込み動作を実行することができる。しかし、仮想ディスクに対し読み出しと書き込み動作を実行するとき、仮想ディスクは、読み出しと書き込み動作を対応する物理ディスクファイルへリダイレクトする。これは、以下の実施例１及び実施例２で具体的に説明する。
【００２５】
（実施例１）
実施例１では、上述した仮想ディスクに基づいてファイル暗号化方法を説明する。
【００２６】
図２は、本発明の実施例１に係るファイル暗号化方法の工程を示すフローチャートである。図２に示すように、本発明の実施例１に係るファイル暗号化方法は、下記工程を含んでもよい。工程２０１において、仮想ディスクは、ファイルシステムからの書き込みリクエストを受信し、書き込みリクエストに含まれるデータに対し暗号化を行う。
【００２７】
工程２０２において、仮想ディスクは、暗号化されたデータを対応する物理ディスクへ書き込むようにファイルシステムに通知することにより、ファイルシステムが仮想ディスクからの通知を受信した後に暗号化されたデータを対応する物理ディスクへ書き込む。
【００２８】
以下に図３に基づいて図２に示すファイル暗号化方法の工程を詳しく説明する。図３は、本発明の実施例１に係るファイル暗号化方法の工程の詳細を示すフローチャートである。
【００２９】
図３に示すように、上記ファイル暗号化方法の工程は、下記工程を含んでもよい。工程３０１において、ユーザは、例えばＷｒｉｔｅＦｉｌｅなど書き込みリクエストを発行するコントロールによりユーザステータスで書き込みリクエストを発行する。書き込みリクエストには、仮想ディスクの識別子、及び仮想ディスクへ書き込むデータが含まれている。そのうち、ユーザステータスとは、工程３０１で書き込みリクエストはユーザ空間で発行されることを意味する。
【００３０】
工程３０２において、ファイルシステムは、カーネルステータスでユーザステータスからの書き込みリクエストを受信し、書き込みリクエストに仮想ディスクの識別子が含まれていると判定すると、書き込みリクエストを仮想ディスクへ送信する。具体的に、本実施例１では、ファイルシステムは、ファイルシステムドライバ（ＦＳＤ）あるいは他の類似する機能を持つモジュールであってよい。工程３０２において、「カーネルステータスで」とは、ファイルシステムはカーネル空間で書き込みリクエストを受信することを意味する。
【００３１】
工程３０３において、仮想ディスクは、ファイルシステムからの書き込みリクエストを受信し、書き込みリクエストに含まれるデータに対し暗号化を行う。工程３０３は、具体的に、仮想ディスクのドライバにより実行される。また、Ｗｉｎｄｏｗｓ(登録商標）システムでは、ディスクの読み出しと書き込みは、常にクラスタ単位で行われる。１つのクラスタのサイズは、５１２バイトより大きく６４ｋバイトより小さく、かつ２のＮ乗である。Ｗｉｎｄｏｗｓ(登録商標）システムでは、ＮＴＦＳファイルシステムのデフォルトのクラスタサイズは４０９６バイトであり、ＦＡＴ３２ファイルシステムのデフォルトのクラスタサイズは５１２バイトである。このディスクの特性によれば、現在主流の各種アルゴリズムを用いてデータに対し暗号化を行うことは非常に便利である。
【００３２】
現在主流の暗号化アルゴリズムは、主にストリーム暗号化アルゴリズム及びブロック暗号化アルゴリズムに分けられる。ストリーム暗号化アルゴリズムに比べ、ブロック暗号化アルゴリズムは、最小暗号化長さ及び整列要求がある。上記最小暗号化長さは、通常２のＮ乗、例えば８バイト、１６バイト、又は３２バイトである。このように、ディスクの最小読み出しと書き込み単位によれば、境界でちょうど整列されるようになるため、ブロック暗号化を用いて無効データを足す必要はない。透過的暗号化では、通常ブロック暗号化アルゴリズムを用いるため、後ろに無効データを追加して境界整列を実現しなければならない。好ましくは、本発明の実施例は、データの安全性を考慮して、ブロック暗号化アルゴリズムの中で安全性が比較的に高いＡＥＳ暗号化アルゴリズムを用いてデータ暗号化を行う。
【００３３】
工程３０４において、仮想ディスクは、自身が対応する物理ディスクファイルを確認し、確認された物理ディスクファイルの識別子で書き込みリクエストに含まれる仮想ディスクの識別子を置き換えた後、書き込みリクエストをファイルシステムへ送信する。工程３０４で確認された物理ディスクファイルは、上記工程１０１で初期化されたファイルである。また、上記工程３０４は、具体的に、仮想ディスクのドライバにより実行される。書き込みリクエストをファイルシステムへ送信するのに、仮想ディスクドライバは、例えばＺＷＷｒｉｔｅＦｉｌｅなど書き込みリクエストを発行するコントロールを用いて行う。
【００３４】
工程３０５において、ファイルシステムは、仮想ディスクからの書き込みリクエストを受信した後、書き込みリクエストに含まれる暗号化されたデータを書き込みリクエストに含まれる物理ディスクファイルの識別子が対応する物理ディスクファイルへ書き込む。これで、図３に示す流れ工程が終了する。
【００３５】
仮想ディスクはカーネルステータスでのみ見えるため、本実施例１でカーネルステータスの仮想ディスクを用いてデータを暗号化することは、ユーザステータスでのユーザは見えない。このように、ユーザがＷｉｎｄｏｗｓ(登録商標）にログインしたとしても任意に読み出すことができないため、暗号化の信頼性が高いという効果を奏する。
【００３６】
また、上記実施例１において、仮想ディスクのみによりデータを暗号化するため、普通の読み出しと書き込みの性能に影響せず、またシステムの性能にもほとんど影響しない。これまで、実施例１に係る方法について説明した。本実施例１は、上記方法に対応するファイル暗号化装置も提供する。
【００３７】
図４は、本発明の実施例１に係るファイル暗号化装置を示す概略図である。図４に示すように、上記ファイル暗号化装置は仮想ディスク作成ユニットと、仮想ディスクドライバユニットとを含む。
【００３８】
仮想ディスク作成ユニットは、仮想ディスクを作成する。仮想ディスクドライバユニットは、ファイルシステムからの書き込みリクエストを受信し、書き込みリクエストに含まれるデータに対し暗号化を行い、かつ暗号化されたデータを対応する物理ディスクへ書き込むようにファイルシステムへ通知することにより、ファイルシステムが仮想ディスクからの通知を受信した後に暗号化されたデータを対応する物理ディスクへ書き込む。
【００３９】
仮想ディスクは、カーネルステータスで見え、唯一の識別子を有する。また、好ましくは、図４に示すように、ファイル暗号化装置は、さらに仮想ディスク通知ユニットを含む。
【００４０】
仮想ディスク通知ユニットは、仮想ディスク作成ユニットが仮想ディスクを作成した後、かつ仮想ディスクドライバユニットが書き込みリクエストを受信する前に、仮想ディスクをＷｉｎｄｏｗｓ(登録商標）下のディスク管理モジュールへ通知し、及び／又は、ブロードキャストメッセージにより上記仮想ディスクをＷｉｎｄｏｗｓ(登録商標）下のリソース管理モジュールＥｘｐｌｏｒｅｒへ通知することにより、リソース管理モジュールが仮想ディスクを再列挙する。
【００４１】
本実施例１において、仮想ディスクドライバユニットは、受信モジュールと、暗号化モジュールと、リダイレクトモジュールとを含む。受信モジュールは、ファイルシステムからの書き込みリクエストを受信する。暗号化モジュールは、書き込みリクエストに含まれるデータに対し暗号化を行う。
【００４２】
リダイレクトモジュールは、仮想ディスクが対応する物理ディスクファイルを確認し、確認された物理ディスクファイルの識別子で書き込みリクエストに含まれる仮想ディスクの識別子を置き換えた後に、書き込みリクエストをファイルシステムへ送信することにより、ファイルシステムが仮想ディスクからの書き込みリクエストを受信した後、書き込みリクエストに含まれる暗号化されたデータを書き込みリクエストに含まれる物理ディスクファイルの識別子が対応する物理ディスクファイルへ書き込む。
【００４３】
本実施例において、仮想ディスク作成ユニットは、初期化モジュールと、処理モジュールと、仮想ディスク作成モジュールとを含む。初期化モジュールは、仮想ディスクが対応する物理ディスクファイルに対し初期化を行う。処理モジュールは、仮想ディスク作成モジュールが仮想ディスクを作成するようにトリガーするときに、ユーザに対し物理ディスクファイルを使用するための鍵を提供するように要求し、かつユーザから提供された鍵を検証し、認証に成功すると、仮想ディスクを作成するために必要な初期化を続けて実行するように初期化モジュールをトリガーし、初期化モジュールが初期化を完成したと検出すると、仮想ディスク作成モジュールが仮想ディスクを作成するようにトリガーする。
【００４４】
仮想ディスク作成モジュールは、処理モジュールのトリガーで仮想ディスクを作成する。これまで、実施例１に係る装置について説明した。以下に実施例２について説明する。
【００４５】
（実施例２）
実施例２では、上述した仮想ディスクに基づいてファイル復号方法を説明する。図５は、本発明の実施例２に係るファイル復号方法の工程を示すフローチャートである。図５に示すように、本発明のファイル復号方法は下記工程を含んでもよい。
【００４６】
工程５０１において、仮想ディスクは、ファイルシステムから受信した読み出しリクエストを物理ディスクへリダイレクトすることにより、ファイルシステムが物理ディスクから、読み出しリクエストがリクエストしたデータを取得する。工程５０２において、仮想ディスクは、ファイルシステムが物理ディスクから得たデータを受信し、かつ受信されたデータに対し復号を行い、復号されたデータをファイルシステムへ送信し、ファイルシステムにより復号されたデータをユーザ側へ提供する。
【００４７】
以下に図６に基づいて図５に示すファイル復号方法の工程を詳しく説明する。図６は、本発明の実施例２に係るファイル復号方法の詳細を示すフローチャートである。図６に示すように、本発明のファイル復号方法は、下記工程を含んでもうよい。工程６０１において、ユーザは、例えばＲｅａｄＦｉｌｅなど読み出しリクエストを発行するコントローラによりユーザステータスで読み出しリクエストを発行する。読み出しリクエストには仮想ディスクの識別子が含まれている。
【００４８】
工程６０２において、ファイルシステムは、カーネルステータスでユーザステータスからの読み出しリクエストを受信し、読み出しリクエストに仮想ディスクの識別子が含まれていると判定すると、読み出しリクエストを仮想ディスクへ送信する。具体的に、本実施例２のファイルシステムは、ＦＳＤあるいは他の類似機能を持つモジュールであってもよい。
【００４９】
工程６０３において、仮想ディスクは、ファイルシステムからの読み出しリクエストを受信した後、自身が対応する物理ディスクファイルを確認する。工程６０３で確認された物理ディスクファイルは、工程１０１で初期化されたファイルである。また、工程６０３は、具体的に、仮想ディスクのドライバにより実行される。
【００５０】
工程６０４において、仮想ディスクは、確認された物理ディスクファイルの識別子で読み出しリクエストに含まれる仮想ディスクの識別子を置き換え、かつ上記読み出しリクエストをファイルシステムへ送信する。工程６０４の送信工程は、仮想ディスクドライバが例えばＺＷＲｅａｄＦｉｌｅなど読み出しリクエストを発行するコントロールを用いて実現してもよい。
【００５１】
工程６０５において、ファイルシステムが仮想ディスクからの読み出しリクエストを受信した後、読み出しリクエストに含まれる物理ディスクファイルの識別子が対応する物理ディスクファイルへ読み出しリクエストを送信することにより、物理ディスクファイルから、読み出しリクエストがリクエストしたデータを取得する。実施例１で説明した通り、工程６０５では、ファイルシステムが得たデータは、暗号化されたデータである。
【００５２】
工程６０６において、仮想ディスクは、ファイルシステムが物理ディスクから得たデータを受信し、かつ受信されたデータに対し復号を行い、復号されたデータをファイルシステムへ送信する。工程６０６で復号を実現するアルゴリズムは、実施例１の暗号化アルゴリズムに対応し、例えば安全性が比較的に高いＡＥＳ復号アルゴリズムであってよい。
【００５３】
工程６０７において、ファイルシステムは、復号されたデータをユーザ側へ提供する。これで、図６に示すファイル復号方法のフローチャート工程が終了する。
【００５４】
当業者は、上記実施例に係る方法の全部又は一部の工程は、コンピュータープログラムにより関連のハードウェアへ命令することにより実現されることを理解できるであろう。また、上記プログラムは、コンピューター読み出し可能な記憶媒体に保存されてよい。上記プログラムが実行されるとき、上記実施例に係る各方法のフローチャート工程を含むことができる。記憶媒体は、ディスク、光ディスク、読み出し専用メモリ（Ｒｅａｄ-Ｏｎｌｙ Ｍｅｍｏｒｙ、ＲＯＭ）又はランダムアクセスメモリ（Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ、ＲＡＭ）等であってよい。
【００５５】
以下に本実施例２が提供するファイル復号装置の構造について説明する。図７は、本発明の実施例２に係るファイル復号装置の構造を示す概略図である。図７に示すように、ファイル復号装置は、仮想ディスク作成ユニットと、仮想ディスクドライバユニットとを含む。仮想ディスク作成ユニットは、仮想ディスクを作成する。仮想ディスクドライバユニットは、リダイレクトモジュールと復号モジュールとを含む。
【００５６】
リダイレクトモジュールは、ファイルシステムから受信した読み出しリクエストを物理ディスクへリダイレクトすることにより、ファイルシステムが物理ディスクから、読み出しリクエストがリクエストしたデータを取得する。復号モジュールは、ファイルシステムが物理ディスクから取得したデータを受信し、かつ受信されたデータに対し復号を行い、復号されたデータをファイルシステムへ送信し、復号されたデータをファイルシステムによりユーザ側へ提供する。
【００５７】
仮想ディスクは、カーネルステータスで見え、唯一の識別子を有する。また、図７に示すように、ファイル復号装置は、さらに仮想ディスク通知ユニットを含む。仮想ディスク通知ユニットは、仮想ディスク作成ユニットが仮想ディスクを作成した後、かつ仮想ディスクドライバユニットが読み出しリクエストを受信する前、仮想ディスクをＷｉｎｄｏｗｓ(登録商標）下のディスク管理モジュールへ通知し、及び／又は、ブロードキャストメッセージにより上記仮想ディスクをＷｉｎｄｏｗｓ(登録商標）下のリソース管理モジュールへ通知することにより、リソース管理モジュールが上記仮想ディスクを再列挙する。
【００５８】
好ましくは、図７に示すように、リダイレクトモジュールは、確認サブモジュールと、リダイレクトサブモジュールとを含んでもよい。確認サブモジュールは、読み出しリクエストを受信した後、自身が対応する物理ディスクファイルを確認する。リダイレクトサブモジュールは、確認された物理ディスクファイルの識別子で読み出しリクエストに含まれる仮想ディスクの識別子を置き換え、かつ読み出しリクエストをファイルシステムへ送信することにより、ファイルシステムが仮想ディスクからの読み出しリクエストを受信した後、読み出しリクエストに含まれる物理ディスクファイルの識別子が対応する物理ディスクファイルへ読み出しリクエストを送信することで、物理ディスクファイルから、読み出しリクエストがリクエストしたデータを取得する。
【００５９】
本実施例において、仮想ディスク作成ユニットは、初期化モジュールと、処理モジュールと、仮想ディスク作成モジュールとを含む。初期化モジュールは、上記仮想ディスクが対応する物理ディスクファイルに対し初期化を行う。処理モジュールは、仮想ディスク作成モジュールが仮想ディスクを作成するようにトリガーするときに、ユーザに対し物理ディスクファイルを使用するための鍵を提供するように要求し、かつユーザから提供された鍵を検証し、もし認証に成功すると、仮想ディスクを作成するために必要な初期化を続けて実行するように初期化モジュールをトリガーし、初期化モジュールが初期化を完成したと検出すると、仮想ディスク作成モジュールが仮想ディスクを作成するようにトリガーする。
【００６０】
仮想ディスク作成モジュールは、処理モジュールのトリガーで仮想ディスクを作成する。
【００６１】
これまで、実施例２に係る装置について説明した。以上のように実施例により本発明を開示したが、本発明は上記内容に制限されない。当業者が本発明の主旨及び範囲内で容易に想到しえる変更又は置換は、本発明の保護範囲内に含まれる。従って、本発明の保護範囲は、以下に添付の特許請求の範囲により定義される。
【産業上の利用可能性】
【００６２】
以上より、本発明のファイル暗号化方法及び暗号化装置、ファイル復号方法及びファイル復号装置は、仮想ディスクにより書き込みリクエストに含まれるデータに対し暗号化を行い、及び仮想ディスクにより読み出しリクエストがリクエストしたデータに対し復号を行うことにより、ファイル暗号化の信頼性、安全性及び効果性を向上した。
【図１】
2014530371.tif 000003
【図２】
2014530371.tif 000004
【図３】
2014530371.tif 000005
【図４】
2014530371.tif 000006
【図５】
2014530371.tif 000007
【図６】
2014530371.tif 000008
【図７】
2014530371.tif 000009
【国際調査報告】
2014530371.tif 000010
2014530371.tif 000011
2014530371.tif 000012
2014530371.tif 000013