(57)【要約】  ファイルサイズを変えることなくファイルを暗号化するための技術は、暗号化の前後でファイルがサイズを拡大することなく、暗号化キーの第１セット及び／又は構成規則の第１セットを用いる第１暗号化モードでファイルの複数のブロックの第１セットを暗号化すること、及び、暗号化キーの第２セット及び／又は構成規則の第２セットを用いる第２暗号化モードで前記ファイルの前記複数のブロックの第２セットを暗号化することを含み得る。そのため、第１及び第２暗号化モードは異なるように選択され、暗号化キー及び／又は構成規則の第１及び第２セットも異なるように選択され、暗号化されているファイルのセキュリティリスクを低減する。
2010517447.tif 000002
【特許請求の範囲】
【請求項１】
複数のブロックから構成されるファイルを有するホストにして、該ホストのファイルシステムに該ファイルが格納されるホストと、
動作中に一つ又は複数の暗号化キー及び／又は一つ又は複数の構成規則をホストに供給する認証エンジンと、
ファイル暗号化エンジンにして、動作中に、
前記一つ又は複数の暗号化キーの第１セット及び／又は前記一つ又は複数の構成規則の第１セットを用いる第１暗号化モードで前記ファイルの前記複数のブロックの第１セットを暗号化すると共に、
前記一つ又は複数の暗号化キーの第２セット及び／又は前記一つ又は複数の構成規則の第２セットを用いる第２暗号化モードで前記ファイルの前記複数のブロックの第２セットを暗号化するファイル暗号化エンジンとを備えるシステム。
【請求項２】
前記一つ又は複数の暗号化キーを管理及び格納するように動作するキーデータベースを更に備える請求項１のシステム。
【請求項３】
前記一つ又は複数の構成規則を管理及び格納するように動作する構成規則データベースを更に備える請求項１のシステム。
【請求項４】
前記ファイルは、該ファイル及び／又は前記第１暗号化モード及び／又は前記第２暗号化モードに関連するメタデータを含む請求項１のシステム。
【請求項５】
前記メタデータは、前記第１暗号化モード及び／又は前記第２暗号化モード下での前記ファイルの暗号化から暗号化オーバーヘッドを保存する請求項４のシステム。
【請求項６】
前記一つ又は複数の暗号化キーの前記第１及び第２セットは同一ではない請求項１のシステム。
【請求項７】
前記一つ又は複数の構成規則の前記第１及び第２セットは同一ではない請求項１のシステム。
【請求項８】
前記複数のブロックの前記第１セットは連鎖暗号テキストブロックである請求項１のシステム。
【請求項９】
前記第１暗号化モードは、前記複数のブロックの前記第１ブロックを暗号ブロック連鎖モードで暗号化する請求項１のシステム。
【請求項１０】
前記複数のブロックの前記第１セットは、前記ファイルの前記複数のブロックの最終ブロックを除くすべてを含む請求項１のシステム。
【請求項１１】
前記第２暗号化モードは、前記複数のブロックの前記第２セットにサイズのパディングを伴わずに該複数のブロックの該第２セットを暗号化する請求項１のシステム。
【請求項１２】
前記複数のブロックの前記第２セットはストリーム暗号テキストブロックである請求項１のシステム。
【請求項１３】
前記第２暗号化モードは、前記複数のブロックの前記第２セットを暗号フィードバックモードで暗号化する請求項１のシステム。
【請求項１４】
前記複数のブロックの第１セットは、前記ファイルの前記複数のブロックの最終ブロックのみを含む請求項１のシステム。
【請求項１５】
前記ファイルの一つ又は複数のブロックの前記最終ブロックは部分的ブロックである請求項１４のシステム。
【請求項１６】
前記ファイル暗号化エンジンは、動作中に、
前記一つ又は複数の暗号化キーの前記第１セット及び／又は前記一つ又は複数の構成規則の前記第１セットを用いる前記第１暗号化モードで前記ファイルの前記複数のブロックの前記第１セットを暗号化すると共に、
前記一つ又は複数の暗号化キーの前記第２セット及び／又は前記一つ又は複数の構成規則の前記第２セットを用いる前記第２暗号化モードで前記ファイルの前記複数のブロックの前記第２セットを暗号化する請求項１のシステム。
【請求項１７】
一つ又は複数の暗号化キーの第１セット及び／又は一つ又は複数の構成規則の第１セットを選択するステップと、
前記一つ又は複数の暗号化キーの前記第１セット及び／又は前記一つ又は複数の構成規則の前記第１セットを用いる第１暗号化モードでファイルの複数のブロックの第１セットを暗号化するステップと、
前記一つ又は複数の暗号化キーの第２セット及び／又は前記一つ又は複数の構成規則の第２セットを選択するステップと、
前記一つ又は複数の暗号化キーの前記第２セット及び／又は前記一つ又は複数の構成規則の前記第２セットを用いる第２暗号化モードで前記ファイルの前記複数のブロックの第２セットを暗号化するステップとを含む方法。
【請求項１８】
前記一つ又は複数の暗号化キーをキーデータベースによって管理及び格納するステップを更に含む請求項１７の方法。
【請求項１９】
前記一つ又は複数の構成規則を構成規則データベースによって管理及び格納するステップを更に含む請求項１７の方法。
【請求項２０】
ファイルの前記複数のブロックの前記第１セット及び第２セットを異なる暗号化モードで暗号化するステップを更に含む請求項１７の方法。
【請求項２１】
暗号化キーの異なるセット及び／又は構成規則の異なるセットによりファイルの前記複数のブロックの前記第１セット及び第２セットを暗号化するステップを更に含む請求項１７の方法。
【請求項２２】
前記複数のブロックの前記第１セット及び第２セットを暗号化するステップにして、該第１セットがファイルの最終ブロックを除くすべてを含み、該２セットが該ファイルの該最終ブロックのみを含む該ステップを更に含む請求項１７の方法。
【請求項２３】
前記第１暗号化モード及び／又は前記第２暗号化モード下での前記ファイルの暗号化から暗号化オーバーヘッドを保存するステップを更に含む請求項１７の方法。
【請求項２４】
一つ又は複数の暗号化キーの第１セット及び／又は一つ又は複数の構成規則の第１セットを選択するための手段と、
前記一つ又は複数の暗号化キーの前記第１セット及び／又は前記一つ又は複数の構成規則の前記第１セットを用いる第１暗号化モードでファイルの複数のブロックの第１セットを暗号化するための手段と、
前記一つ又は複数の暗号化キーの第２セット及び／又は前記一つ又は複数の構成規則の第２セットを選択するための手段と、
前記一つ又は複数の暗号化キーの前記第２セット及び／又は前記一つ又は複数の構成規則の前記第２セットを用いる第２暗号化モードで前記ファイルの前記複数のブロックの第２セットを暗号化するための手段にして、該暗号化キーの該第１セット及び第２セット及び／又は該構成規則の該第１セット及び第２セットが同一ではない該手段とを備えるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルサイズを保ちつつのファイル暗号化に関する。
【背景技術】
【０００２】
ファイルが暗号化される場合、その暗号化はファイルのサイズを変え得る。これは、いくつかの好ましくない影響を及ぼし得る。例えば、オペレーティングシステムは、例えば５１２バイトのブロックサイズで動作し得る。暗号化が特定の５１２バイトのブロックに追加のｎバイトを加える場合、ファイルシステムは、暗号化オーバーヘッドに加えて、上記特定のブロックを得るために二つのブロックを取り込まなければならないであろう。これは、データのブロックをキャッシュするキャッシングシステムに著しく有害な影響を与え得る。別の例として、ファイルユーティリティはファイル内へのシークを許容し得る。もし該シークが１メガバイトをファイル内に加え、かつ暗号化オーバーヘッドからの追加のパディング（埋込み）があると、オペレーティングシステムは、暗号化オーバーヘッドを考慮（アカウント）に入れるため、いくつかの追加の計算をしなければならない。これらは、暗号化によるファイルサイズの変更が何故問題となり得るかのほんの二つの例である。包括的な列記はここでは試みない。
【０００３】
ファイルサイズを変えることなくファイルを暗号化するためにストリーム暗号が使用され得るが、ストリーム暗号は問題がある。例えば、同じストリーム暗号キーがファイルを２度暗号化するために使用されると、セキュリティが危うくされ得る。この理由のため、ストリーム暗号は、毎度ファイルが暗号化されるたびに異なるキーを使用しなければならない。
【０００４】
これらは、ファイル暗号化に関連する問題及び課題のほんのサブセット（部分集合）であり、例証として先行技術の弱さを特徴付けることが企図される。関連技術の上記例及びそれに関連する限定は、例示であって他を除外するものではないことが企図される。関連技術の他の限定は、本明細書の読込み及び図面の検討により当業者には明らかとなる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
以下の実施形態及びその様相が、範囲を制限せず、模範的で例示的であることが企図されるシステム、器具及び方法と共に説明され例示される。種々の実施形態において、上述した問題点の一つ又は複数が低減もしくは取り除かれており、他の実施形態は他の改善に向けられる。
【課題を解決するための手段】
【０００６】
ファイルサイズを変えることなくファイルを暗号化するための技術は、暗号化の前後でファイルがサイズを拡大することなく、暗号化キーの第１セット及び／又は構成規則の第１セットを用いる第１暗号化モードでファイルの複数のブロックの第１セットを暗号化すること、及び、暗号化キーの第２セット及び／又は構成規則の第２セットを用いる第２暗号化モードで前記ファイルの前記複数のブロックの第２セットを暗号化することを含み得る。そのため、第１及び第２暗号化モードは異なるように選択され、暗号化キー及び／又は構成規則の第１及び第２セットも異なるように選択され、暗号化されているファイルのセキュリティリスクを低減する。
【０００７】
提案したシステムは、他の利点の中でもとりわけ、暗号化されていないファイルと同じサイズである暗号化されたファイルを提供することができる。ここに記述した技術のこの利点及び他の利点は、以下の説明の読込み及び図面の検討により当業者には明らかとなる。
【０００８】
本発明の実施形態が図面で示される。しかしながら、該実施形態及び図面は限定的なものではなく例示的なものである。これらは本発明の例を提供する。
【図面の簡単な説明】
【０００９】
【図１】図１は、ファイル暗号化エンジンを含むシステムの例を示す。
【図２】図２は、暗号化されたファイルを示す。
【図３Ａ】図３Ａは、暗号ブロック連鎖（ＣＢＣ）モード暗号化で連鎖暗号テキストブロックをどのように暗号化するかの例を示す。
【図３Ｂ】図３Ｂは、暗号ブロック連鎖（ＣＢＣ）モード暗号化で連鎖暗号テキストブロックをどのように復号化するかの例を示す。
【図４Ａ】図４Ａは、暗号フィードバック（ＣＢＦ）モード暗号化でストリーム暗号テキストブロックをどのように暗号化するかの例を示す。
【図４Ｂ】図４Ｂは、暗号フィードバック（ＣＢＦ）モード暗号化でストリーム暗号テキストブロックをどのように復号化するかの例を示す。
【図５】図５は、ファイルを暗号化するための方法の例のフローチャート５００を示す。
【発明を実施するための形態】
【００１０】
以下の説明において、本発明の実施形態の完全な理解を与えるため、いくつかの具体的な詳細が提示される。しかしながら、当業者は、上記具体的な詳細の一つ又は複数を伴うことなく、又は他の構成要素等と組み合わせて、本発明が実施され得ることを認識するであろう。他の例において、本発明の種々の実施形態の様相を不明瞭にすることを避けるため、周知の実施（実行）又は動作（操作）は詳細には示されず又は記述されない。
【００１１】
図１は、ファイル暗号化をサポートするシステム１００の例を示す。システム１００は、ホスト１０２と、認証エンジン１０４と、キーデータベース１０６と、構成（コンフィギュレーション）規則データベース１０８と、ファイル暗号化エンジン１１０とを含む。
【００１２】
ホスト１０２は、いかなる既知のもしくは都合の良いコンピュータシステムをも含み得る。ホスト１０２は、ファイルサーバとして機能し得、又は、いくつかの他の機能を有し得る。例示の実施形態において、ホスト１０２は、バス１１８に接続されたファイルシステム１１２、フィルタドライバ１１４、及びプロセッサ１１６を含む。ファイルシステム１１２、フィルタドライバ１１４、プロセッサ１１６及びバス１１８の機能は、関連技術分野において良く知られているため、これらの構成要素の詳細な説明は不要であると思われる。別の実施形態において、バスの無いアーキテクチャが使用され得る点に留意が必要であり得る。
【００１３】
概念的に、フィルタドライバ１１４は、ファイルシステム１１２と、ファイルシステム１１２からのファイルを使用するプロセスとの間にオペレーティングシステムの一部として挿入される。フィルタドライバ１１４は、認証エンジン１０４によって構成規則データベース１０８から与えられた構成規則を利用する。該構成規則は、限定ではなく一例として、認証エンジン１０４によりキーデータベース１０６から与えられた第１キーを用いて第１ディレクトリにおけるすべてが暗号化されるという規則を含み得る。（あるいは、第１キーは、局所的に生成され得、又は、キーデータベース１０６以外のある場所から受け取り得る。）別の例として、構成規則は、第１ユーザが、特定のファイルにアクセスする時に暗号化（された）データ（例えば暗号文（暗号テキスト））を受け取るという規則を含み得る。
【００１４】
認証エンジン１０４は、いかなる既知のもしくは都合の良いコンピュータシステムをも含み得る。認証エンジン１０４は、ホスト１０２に接続される器具として実現されてもされなくてもよく、又は、例えばネットワーク接続を通じてホスト１０２に接続される他の装置もしくはコンピュータとして実現されてもされなくてもよい。認証エンジン１０４は、キーデータベース１０６及び構成規則データベース１０８からホスト１０２へとキー及び構成（暗号化）規則をそれぞれ供給する。ここで用いる用語「エンジン」は、一般に、ソフトウェア、ファームウェア、ハードウェア、又は目的を達成するために使用される他の要素のいかなる組合せをも意味する。
【００１５】
認証エンジン１０４は、ホスト１０２を管理する管理者と同じ管理者によって管理され得る。あるいは、ある管理者が認証エンジン１０４を管理する責任を負うと共に、下位レベルの管理者がホスト１０２を管理する責任を負い得る。後者は、比較的大きい企業においてより典型的であろう。（認証エンジン１０４の管理者は、ホスト１０２から与えられたキー及び構成規則に対するアクセス権を有するので）認証エンジン１０４の管理者は、ホスト１０２のセキュリティの少なくともいくつかを破ることができるかもしれない点に留意が必要であり得る。しかし、その逆は必ずしも真ではない。
【００１６】
ファイル暗号化エンジン１１０はホスト１０２に接続される。別の実施形態において、ファイル暗号化エンジン１１０はホスト１０２にあり得る。「ホストに」により、ファイル暗号化エンジン１１０の実行可能コードが、ホスト１０２の二次記憶にもしくはそこから格納され、かつ、プロセッサ１１６等のプロセッサによる実行のために、ホスト１０２の一次（主）記憶内に少なくとも部分的にロードされることを意味することが企図される。
【００１７】
ファイル暗号化エンジン１１０は、コンピュータ可読媒体（例えばメモリ）を含むかもしくは共有するもの、コンピュータ可読媒体に格納された実行可能ソフトウェアコードを含むもの、及び、コンピュータ可読媒体上のコードを実行することができるプロセッサを含むかもしくは共有するものと称され得る。そのようなものとして、ファイル暗号化エンジン１１０はコンピュータ可読媒体に組み込まれたものと称され得る。
【００１８】
図１の例において、動作中、ホスト１０２は、そのファイルシステム１１２におけるファイルを認証エンジン１０４により認証する。認証エンジン１０４は、ホスト１０２に対し、キーデータベース１０６からのキー及び構成規則データベース１０８からの構成規則を供給する。ファイル暗号化エンジン１１０は、一つ又は複数のキー及び一つ又は複数の構成規則を用いて、ファイルシステム１１２におけるあるファイルのブロックのサブセット（部分集合）を第１暗号化モードで暗号化する。ファイル暗号化エンジン１１０は、次いで、前記ファイルのブロックのうちの一つ又は複数を第２暗号化モードで暗号化する。第１暗号化モードは、最終（場合によっては部分的（不完全）な）暗号ブロックを除くすべて（のブロック）に対して連鎖モードでブロック暗号を用いることを含み得る。該最終（場合によっては部分的な）暗号ブロックは、第２暗号化モードで暗号化され得る。第２暗号化モードは、ストリーム暗号モードでブロック暗号を用いることを含み得る。
【００１９】
図２は、暗号化（された）ファイル２００の例を示す。図２の例において、暗号化ファイル２００は、連鎖暗号テキストブロック２０２−１〜２０２−Ｎ（総称して連鎖暗号テキストブロック２０２と呼ばれる）。該連鎖暗号テキストブロック２０２は、暗号化ファイル２００に関連するブロックのサブセットである。該サブセットのサイズはブロックの数に依存し、ブロック数はファイルのサイズに依存する。図２の例において、暗号化ファイル２００は、ストリーム（ストリーム化された）暗号テキストブロック２０４を含む。該ストリーム暗号テキストブロック２０４は、部分的（不完全）ブロックであってもなくてもよい。図２の例において、ストリーム暗号テキストブロック２０４が部分的ブロックであり得ることを例示するため、連鎖暗号テキストブロック２０２よりも小さいものとしてストリーム暗号テキストブロック２０４が例示目的のためだけに表される。例示の実施形態において、あるファイルに対して一つだけのストリーム暗号テキストブロック（最終（最後）ブロック）がある。しかしながら、別の実施形態において、複数暗号テキストブロックがストリーム化され得る。
【００２０】
ファイル２００は、該ファイル及び／又は暗号化に関連する、メタデータと呼ばれる追加データを含み得る。そのため、連鎖暗号テキストブロック２０２が暗号化オーバーヘッドを有する場合、該オーバーヘッドは該ファイルメタデータに格納され得る。これは、ファイル２００のファイルサイズが暗号化の前後で変化しないことを保証し得る。
【００２１】
図３Ａ及び３Ｂは、暗号ブロック連鎖方式（ＣＢＣ）モード暗号化で連鎖暗号テキストブロック２０２をそれぞれどのように暗号化及び復号化するのかの例を示す。ＣＢＣは暗号化モードの単なる一例であることに留意する必要があり得る。その代わりとしてどのような既知のもしくは都合の良い技術も使用され得る。
【００２２】
図４Ａ及び４Ｂは、暗号フィードバック方式（ＣＦＢ）モード暗号化でストリーム暗号テキストブロック２０４をそれぞれどのように暗号化及び復号化するのかの例を示す。ＣＦＢは暗号化モードの単なる一例であることに留意する必要があり得る。ＣＦＢは、ＣＢＣモードに比べて少なくとも二つの利点を有する。該ブロック暗号は、暗号化方向（暗号化指示）にいつも使用されるだけであり、メッセージが多様な暗号ブロックサイズに埋め込まれる必要はない。代わりに、埋込みを伴うことなく最終ブロックを暗号化できるどのような既知のもしくは都合の適用可能な良い技術も使用され得る。
【００２３】
図５は、ファイルを暗号化するための方法の例のフローチャート５００を示す。この方法及び他の方法は、直列（逐次）に配置されたモジュールとして示される。しかしながら、該方法のモジュールは順番が変えられ得、あるいは、必要に応じて並列実行のために配置され得る。
【００２４】
図５の例において、フローチャート５００はモジュール５０２でスタートし、最終暗号ブロックを除くすべて（のブロック）に対し連鎖モードのブロック暗号を用いる。該連鎖モードは、限定ではなく一例としてＣＢＣを実行し得る。
【００２５】
図５の例において、フローチャート５００はモジュール５０４に進んで新規なキーを選択する。一般に、最終ブロックが暗号化される度に最終ブロックに対して新規なキーを選択することが望ましいであろう。これは、最終ブロックが決して同じキーで２度暗号化されないことを保証するであろう。多くのストリーミングモード実行において、これはセキュリティのリスクである。
【００２６】
図５の例において、フローチャート５００はモジュール５０６で終了し、該モジュールでは、最終暗号ブロックを暗号化するため、ストリームモードのブロック暗号を用いる。最終暗号ブロックは部分的ブロックであってもなくてもよいことに留意する必要があり得る。
【００２７】
該詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する操作のアルゴリズム及び記号表現に関して提示される。これらのアルゴリズムの記述及び表現は、データ処理技術分野の当業者が、彼らのワークの実体を他の当業者に最も効果的に伝えるために使用する手段である。アルゴリズムは、ここでは、また一般的に、所望の結果に至る動作（操作）の自己矛盾のないシーケンスであると考えられる。該動作は、物理量の物理的操作（加工）を必要とするものである。通常、必ずではないが、これらの量は、格納、移送、組合せ、比較、及び他の方法による処理が可能な電気的又は磁気的信号の形態をとる。主に共通利用の理由で、これらの信号を、ビット、値、要素、記号、文字、ターム（用語）、番号その他と称することが時には都合が良いことが分かっている。
【００２８】
しかしながら、これらのすべて及び類似の用語は、適切な物理量に関連付けられることとなり、かつこれらの量に適用される単に都合の良いラベルにすぎないことが心に留められるべきである。以下の記述から明らかなものとして特に明記しない限り、該説明全体にわたって、「処理（processing）」又は「計算（computing）」又は「計算（calculating）」又は「決定（determining）」又は「表示（displaying）」等の用語を用いる記述は、コンピュータシステム内のレジスタ及びメモリ内で物理（電子的）量として表されたデータを、コンピュータシステムのメモリ又はレジスタ又は他のそのような情報記憶、送信もしくは表示装置内の物理量として同様に表された他のデータへと処理及び変形するコンピュータシステム又は類似の電子計算装置の動作及びプロセスを意味することが理解される。
【００２９】
ここに記述したアルゴリズム及び技術はまた、該アルゴリズム及び技術を実行するための装置に関連する。この装置は、所要の目的のために特に構成され得、又は、汎用コンピュータにして、該コンピュータに格納されたコンピュータプログラムによって選択的に作動もしくは再構成される汎用コンピュータから成り得る。そのようなコンピュータプログラムは、コンピュータ可読記憶媒体、例えば、読出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気もしくは光カード、フロッピー（登録商標）ディスク、光ディスク、ＣＤ−ＲＯＭ、光磁気ディスクを含む任意のタイプのディスク、又は、電子命令を格納するのに適した任意のタイプの媒体、及び、コンピュータシステムバスに接続された各々等（これらに限定はされない）に格納され得る。
【００３０】
ここで用いられる用語「実施形態」は、限定ではなく一例として示すのに役立つ実施形態を意味する。
【００３１】
上述の例及び実施形態は模範的なものでありかつ本発明の範囲を限定しないことが当業者には理解される。該明細書の読込み及び該図面の検討により当業者には明らかな本発明に対するすべての置換、強化、均等及び改良は、本発明の真の精神及び範囲に含まれることが企図される。そのため、特許請求の範囲が、そのようなすべての変更、置換及び均等を、本発明の真の精神及び範囲に入るものとして含むことが企図される。
【符号の説明】
【００３２】
１００  システム
１０２  ホスト
１０４  認証エンジン
１０６  キーデータベース
１０８  構成規則データベース
１１０  ファイル暗号化エンジン
１１２  ファイルシステム
１１４  フィルタドライバ
１１６  プロセッサ
１１８  バス
【図１】
2010517447.tif 000003
【図２】
2010517447.tif 000004
【図３Ａ】
2010517447.tif 000005
【図３Ｂ】
2010517447.tif 000006
【図４Ａ】
2010517447.tif 000007
【図４Ｂ】
2010517447.tif 000008
【図５】
2010517447.tif 000009
【手続補正書】
【提出日】平成21年9月25日(2009.9.25)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図４Ｂ
【補正方法】変更
【補正の内容】
【図４Ｂ】
2010517447.tif 000010
【国際調査報告】
2010517447.tif 000011