(57)【要約】【課題】ファイルの一部を暗号化することにより、ファイルの暗号化および解読を高速化する。【解決手段】一実施例において、本方法は、鍵を用いてデータの１またはそれ以上のセグメントを暗号化することを含む。データは、少なくとも１つの暗号化属性に関係し、複数のセグメントを有する。暗号化属性は、データの暗号化すべき１またはそれ以上のセグメントを識別するための情報を含む。さらに、本方法は、暗号化属性を暗号化し、部分的に暗号化されたデータおよび暗号化された暗号化属性を含むデータを格納することを含む。【選択図】図１
2010063105.tif 000002
【特許請求の範囲】
【請求項１】
暗号化するための方法において、
第１データの１またはそれ以上のセグメントを、第１の鍵を用いて暗号化する段階であって、前記第１データは、少なくとも１つの暗号化属性と関連し、かつ、複数のセグメントを有し、前記暗号化属性は、前記第１データの暗号化すべき前記１またはそれ以上のセグメントを識別するための情報を含む、段階と、
暗号化された暗号化属性を作成するために、前記暗号化属性を、第２の鍵を用いて暗号化する段階と、
部分的に暗号化されたデータおよび暗号化された暗号化属性を含む、第２データの少なくとも一部を格納する段階と、
から構成されることを特徴とする方法。
【請求項２】
前記第１の鍵を、前記第２の鍵を用いて暗号化する段階をさらに含み、前記第２データは、前記第１の鍵の暗号化されたバージョンをさらに含み、前記第１の鍵は対称暗号鍵であり、前記第２の鍵は公開鍵であることを特徴とする請求項１記載の方法。
【請求項３】
前記第１の鍵を、第３の鍵を用いて暗号化する段階をさらに含み、前記第２データは、前記第１の鍵の暗号化されたバージョンをさらに含み、前記第１の鍵および前記第２の鍵は同一の対称鍵であり、前記第３の鍵は公開鍵であることを特徴とする請求項１記載の方法。
【請求項４】
前記第２データを転送する段階をさらに含むことを特徴とする請求項１記載の方法。
【請求項５】
前記１またはそれ以上のセグメントは、前記第１データの最初のＮセグメントを含み、Ｎは正の整数であることを特徴とする請求項１記載の方法。
【請求項６】
前記１またはそれ以上のセグメントは、前記第１データのＮセグメント毎の少なくとも１つのセグメントを含み、Ｎは正の整数であることを特徴とする請求項１記載の方法。
【請求項７】
暗号を解読する方法において、
部分的に暗号化されたデータおよび暗号化属性の暗号化されたバージョンを含む、第１データにアクセスする段階であって、前記部分的に暗号化されたデータは複数のセグメントを含む、段階と、
前記暗号化属性を検索するために、前記暗号化された暗号化属性を、第1の鍵を用いて解読する段階であって、前記暗号化属性は、前記部分的に暗号化されたデータの、暗号化された１またはそれ以上のセグメントを識別するための情報を含む、段階と、
前記部分的に暗号化されたデータの前記１またはそれ以上のセグメントを、第２の鍵を用いて解読する段階と、
から構成されることを特徴とする方法。
【請求項８】
前記第２の鍵の暗号化されたバージョンを、前記第１の鍵を用いて解読する段階をさらに含み、前記第１データは、前記第２の鍵の前記暗号化されたバージョンをさらに含み、前記第２の鍵は対称暗号鍵であり、前記第１の鍵は秘密鍵であることを特徴とする請求項７記載の方法。
【請求項９】
前記第２の鍵の暗号化されたバージョンを、第３の鍵を用いて解読する段階をさらに含み、前記第１データは、前記第２の鍵の前記暗号化されたバージョンをさらに含み、前記第１の鍵および前記第２の鍵は同一の対称暗号鍵であり、前記第３の鍵は秘密鍵であることを特徴とする請求項７記載の方法。
【請求項１０】
前記１またはそれ以上のセグメントは、前記部分的に暗号化されたデータの最初のＮセグメントを含み、Ｎは正の整数であることを特徴とする請求項７記載の方法。
【請求項１１】
暗号化するためのシステムにおいて、
少なくとも１つの暗号化属性に関連する第１データを暗号化するための要求を受取る制御装置であって、前記第１データは複数のセグメントを含み、前記暗号化属性は、前記第１データの暗号化すべき１またはそれ以上のセグメントを識別するための情報を含む、制御装置と、
部分的に暗号化されたデータを生成するために、前記第１データの前記１またはそれ以上のセグメントを、第１の鍵を用いて暗号化するための第１暗号化エンジンと、
前記暗号化属性を、第２の鍵を用いて、暗号化された暗号化属性に暗号化するために動作可能な第２暗号化エンジンと、
第２データの少なくとも一部を格納するための格納装置であって、前記第２データは、前記暗号化された暗号化属性および前記部分的に暗号化されたデータを含む、格納装置と、
から構成されることを特徴とするシステム。
【請求項１２】
前記第１の鍵を、前記第２の鍵を用いて暗号化するための第３暗号化エンジンをさらに含み、前記第２データは、前記第１の鍵の暗号化されたバージョンをさらに含み、前記第１の鍵は対称暗号鍵であり、前記第２の鍵は公開鍵であることを特徴とする請求項１１記載のシステム。
【請求項１３】
前記第１の鍵を、第３の鍵を用いて暗号化するための第３暗号化エンジンをさらに含み、前記第２データは、前記第１の鍵の暗号化されたバージョンをさらに含み、前記第１の鍵および前記第２の鍵は同一の対称鍵であり、前記第３の鍵は公開鍵であることを特徴とする請求項１１記載のシステム。
【請求項１４】
前記制御装置は、前記第１データを複数のセグメントに分割するために動作可能であり、前記第１データの各セグメントは、Ｍビットの長さであり、各セグメントは、Ｍビット暗号化エンジンである前記第１暗号化エンジンによって処理することができることを特徴とする請求項１１記載のシステム。
【請求項１５】
暗号を解読するためのシステムにおいて、
部分的に暗号化されたデータおよび暗号化属性の暗号化されたバージョンを含む、第１データにアクセスするための制御装置であって、前記部分的に暗号化されたデータは、複数のセグメントを含む、制御装置と、
前記暗号化属性を検索するために、前記暗号化された暗号化属性を第１の鍵を用いて解読するための第１解読エンジンであって、前記暗号化属性は、部分的に暗号化されたデータの、暗号化すべき１またはそれ以上のセグメントを識別するための情報を含む、第１解読エンジンと、
前記部分的に暗号化されたデータの１またはそれ以上のセグメントを、前記第２の鍵を用いて解読するための第２解読エンジンと、
から構成されることを特徴とするシステム。
【請求項１６】
前記第２の鍵の暗号化されたバージョンを、前記第１の鍵を用いて解読するための第３の解読エンジンをさらに含み、前記第１データは、前記第２の鍵の前記暗号化されたバージョンをさらに含み、前記第２の鍵は対称暗号鍵であり、前記第１の鍵は秘密鍵であることを特徴とする請求項１５記載のシステム。
【請求項１７】
前記第１解読エンジンおよび前記第２解読エンジンは、同一であることを特徴とする請求項１５記載のシステム。
【請求項１８】
命令をその上に格納する、データを含むコンピュータ読取り可能な格納媒体を含む製造物であって、機械によってアクセスされたとき、前記機械に、
第１データの１またはそれ以上のセグメントを、第１の鍵を用いて暗号化する段階であって、前記第１データは、少なくとも１つの暗号化属性に関連し、かつ、複数のセグメントを有し、前記暗号化属性は、前記第１データの暗号化すべき前記１またはそれ以上のセグメントを識別するための情報を含む、段階と、
暗号化された暗号化属性を作成するために、前記暗号化属性を、第２の鍵を用いて暗号化する段階と、
部分的に暗号化されたデータおよび暗号化された暗号化属性を含む、第２データの少なくとも一部を格納する段階と、
を含む方法を実行させることを特徴とする製造物。
【請求項１９】
前記方法は、前記第１の鍵を、前記第２の鍵を用いて暗号化する段階をさらに含み、前記第２データは、前記第１の鍵の暗号化されたバージョンをさらに含み、前記第１の鍵は対称暗号鍵であり、前記第２の鍵は公開鍵であることを特徴とする請求項１８記載の製造物。
【請求項２０】
命令をその上に格納する、データを含むコンピュータ読取り可能な格納媒体を含む製造物であって、機械によってアクセスされたとき、前記機械に、
部分的に暗号化されたデータおよび暗号化属性の暗号化されたバージョンを含む、第１データにアクセスする段階であって、前記部分的に暗号化されたデータは複数のセグメントを含む、段階と、
前記暗号化属性を検索するために、前記暗号化された暗号化属性を、第1の鍵を用いて解読する段階であって、前記暗号化属性は、前記部分的に暗号化されたデータの、暗号化された１またはそれ以上のセグメントを識別するための情報を含む、段階と、
前記部分的に暗号化されたデータの前記１またはそれ以上のセグメントを、第２の鍵を用いて解読する段階と、
を含む方法を実行させることを特徴とする製造物。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施例は、コンテンツのセキュリティ分野に関し、特に、データの暗号化および解読に関する。
【背景技術】
【０００２】
対称暗号法は、暗号化および解読の両方の動作が、同一の鍵を共有する暗号方法である（あるいは、それほど一般的ではないが、それらの鍵が異なる場合もある。しかし、容易に演算できる方法に関係する）。対称暗号法のアルゴリズム例として、データ暗号規格（ＤＥＳ：Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）およびアドバンスト暗号規格（ＡＥＳ：Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）が含まれる。
【０００３】
他方、公開鍵暗号アルゴリズムは、非対称鍵を暗号化および解読に用いる。非対称鍵は、秘密鍵（その所有者によってのみ保持される）および公開鍵（他の主体も利用可能である）を含む。２つの鍵は別個であるが、機能において相補的である。公開鍵で暗号化された情報は、対応する秘密鍵でのみ解読可能である。２つの鍵を合わせて、鍵のペアあるいは鍵のセットと呼ばれる。ＲＳＡアルゴリズムは、公開鍵暗号化アルゴリズムの一例である。
【０００４】
暗号化ファイル・システム（ＥＦＳ：Ｅｎｃｒｙｐｔｅｄ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）は、暗号化サービスを具備するファイル・システムである。この技術によって、ファイル・システム上でファイルを暗号化し、かつ解読することが可能になり、コンピュータに対して物理的なアクセスを行なう攻撃者から機密データが保護される。ＥＦＳは、正しい鍵がなければファイルを解読することが理論的に不可能であることを保証するために公開鍵暗号法を用いるか、あるいは、クラックするために途方もない時間を要するようになっている。
【０００５】
ＥＦＳは、ファイル暗号化鍵（ＦＥＫ：Ｆｉｌｅ  Ｅｎｃｒｙｐｔｅｄ  Ｋｅｙ）として知られる対称鍵でファイルを暗号化することによって動作する。その後、ＦＥＫは、通常はユーザに関連し、第三者にも利用可能な公開鍵で暗号化される。暗号化されたファイルを解読するために、ＥＦＳは、ユーザによってのみアクセスされる秘密鍵を用いて、暗号化されたＦＥＫを解読する。その後、ＥＦＳは、ＦＥＫを用いて暗号化されたファイルを解読する。一般に、暗号化および解読動作は、オペレーティング・システムよりも下の層で実行されるので、ユーザおよびその上で実行されるアプリケーションはそれに気付かない。
【図面の簡単な説明】
【０００６】
本発明の実施例は、以下の詳細な説明、および本発明の様々な実施例に関する添付図面によって、より完全に理解されるであろう。しかしながら、それらは、本発明を特定の実施例に制限することを目的とするものではなく、例示および理解を容易にすることのみを目的とする。
【図１】本発明の一実施例に従って、データの暗号化を示すデータ・フロー図である。
【図２】本発明の一実施例に従って、データの解読を示すデータ・フロー図である。
【図３】暗号化プロセスの一実施例のフローチャートである。
【図４】解読プロセスの一実施例のフローチャートである。
【図５】本発明の一実施例に従って、暗号化ファイル・システム（ＥＦＳ）内のディレクトリ構造を示す。
【図６】暗号法システムの一実施例のブロック図である。
【図７】本発明の一実施例が使用されているコンピュータ・システムを示す。
【発明を実施するための形態】
【０００７】
暗号化属性を用いて暗号化および解読する方法およびシステムの実施例が示される。暗号化属性は、ファイルの暗号化すべき１またはそれ以上のセグメントを識別するための情報を含む。暗号化プロセスは、１またはそれ以上のセグメントを暗号化し、全ファイルを暗号化する代わりに、部分的に暗号化されたファイルを生成する。すなわち、ファイルは、暗号化されたデータおよび暗号化されないデータを含む。一実施例では、暗号化属性は、部分的に暗号化されたファイルと共に暗号化され、格納される。
【０００８】
一実施例では、解読動作は、暗号化属性内に含まれる情報を用いて、部分的に暗号化されたファイル内で暗号化されるこれらのセグメントを識別する。一実施例では、権限のあるユーザ（例えばファイルの所有者）は、暗号化動作中に暗号化されるべきファイルのセグメントを識別するために、ファイルに関連する暗号化属性を設定する。
【０００９】
以下の記述では、本発明の実施例のより完全な説明を提供するために、多くの特定の詳細事項について述べられる。しかしながら、本実施例は、これらの特定の詳細事項がなくても実行可能であると理解される。例えば、周知の要素、仕様、およびプロトコルは、本発明の実施例を不明瞭にしないために詳細に記述されない。
【００１０】
以下の詳細な説明中のある部分は、コンピュータ・メモリ内のデータ・ビット上の動作アルゴリズムおよび符号表示に特有の表現で示される。これらのアルゴリズムの記述および表示は、他の当業者に最も効果的に伝えるために、データ処理技術分野の当業者によって使用される手段である。ここでは、アルゴリズムは、一般に、所望の結果に導くための自己矛盾のないシーケンスのステップであると考えられる。これらのステップは、物理量の物理的な操作を要求するステップである。通常、これらの量は、格納、転送、結合、比較、または他の操作が可能な、電気的または磁気的信号の形式をとるが、必ずしもその必要はない。主に一般用法上の理由から、これらの信号を、ビット、値、要素、シンボル、文字、用語、数等と称することが時には便利であることがわかっている。
【００１１】
しかしながら、これらおよび類似の用語の全てが、適切な物理量に関係し、これらの量に適用される単に便利なラベルであることは、心に留めておくべきである。以下の記述から明白である以外は、特に記述されない限り、記述全体にわたって、「処理する」、「演算する」または「計算する」または「決定する」または「表示する」等のような用語を用いた議論は、コンピュータ・システムまたは類似の電子計算装置の動作およびプロセスに関するものであると理解され、その電子計算装置は、コンピュータ・システムのメモリまたはレジスタ内の物理（電子）量として表されるデータを、コンピュータ・システムのレジスタおよびメモリまたは他の同種の情報格納装置、送信または表示装置内の物理量として同様に表されるデータに、処理および変換する。
【００１２】
本発明の実施例は、さらに、ここでは、動作を実行するための機器に関する。いくつかの機器は、所望の目的のために特別に構成され、あるいは、コンピュータに格納されたコンピュータ・プログラムによって選択的に活動化され、または再構成される汎用コンピュータを含む。このようなコンピュータ・プログラムは、例えば、フレキシブル・ディスク、光ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、光磁気ディスクを含むあらゆるタイプのディスク、リード・オンリ・メモリ（ＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＮＶＲＡＭ、磁気または光カード、あるいは、電子命令を格納するために適切なあらゆるタイプの媒体、のようなコンピュータにより読取り可能な格納媒体に格納され、そして、それぞれがコンピュータ・システム・バスに結合されるが、これに制限されない。
【００１３】
ここに示されるアルゴリズムおよびディスプレイは、特定のコンピュータまたは他の機器に固有に関連するものではない。様々な汎用システムが、ここに示された教示に従ってプログラムと共に使用され、あるいは、要求される方法のステップを実行するためには、より多くの特殊な機器を構成することが便利であることがわかる。これらの様々なシステムのために必要な構造は、以下の説明から明らかになるであろう。さらに、本発明の実施例は、特別のプログラミング言語に関して記述されるものではない。ここに説明されるような発明に係る教示を実施するために、様々なプログラミング言語が使用可能であることがわかる。
【００１４】
機械読取り可能な媒体は、機械（例えばコンピュータ）によって読取り可能な形式で情報を格納または送信するためのあらゆるメカニズムを含む。例えば、機械読取り可能な媒体は、リード・オンリ・メモリ（ＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、磁気ディスク格納媒体、光格納媒体、フラッシュ・メモリ装置、電気的、光学的、音響的、または他の形式の伝播信号（例えば、搬送波、赤外線信号、デジタル信号等）などを含む。
【００１５】
図１は、本発明の一実施例に従って、データの暗号化を示すデータ・フロー図である。図１を参照して、一実施例では、暗号化プロセスにおける要素は、データ１００、ファイル暗号鍵（ＦＥＫ）１０４、暗号化属性１０５、暗号化エンジン１２１−１２２、公開鍵１１２、および暗号化されたデータ１２０を含む。
【００１６】
一実施例では、データ１００は、例えば、メディア・ファイル、テキスト・ファイル、データベースのデータ・レコード、または任意の形式のデジタル情報コンテンツのような平文テキストである。データ１００を暗号化するために、暗号化エンジン１２１は、暗号鍵としてのＦＥＫ１０４および暗号化属性１０５を受取る。暗号化属性１０５は、データ１００の暗号化すべき１またはそれ以上のセグメントを識別するための情報を含む。暗号化エンジン１２１は、結果として部分的に暗号化されたデータ１０１を生じる。一実施例では、ＦＥＫ１０４および暗号化属性１０５は、ユーザに関連する公開鍵１１２を用いて、暗号化エンジン１２２を使用して暗号化される。暗号化エンジン１２２から、暗号化されたＦＥＫ１０７および暗号化された暗号化属性１１１がそれぞれ出力される。一実施例では、部分的に暗号化されたデータ１０３、暗号化されたＦＥＫ１０８、および暗号化された暗号化属性１１０は、共に、暗号化されたデータ１２０内に格納される。一実施例では、全てのデータ・セグメントが暗号化されるわけではないので、暗号化動作を実行するための時間全体が短縮される。パフォーマンスの向上は、暗号化属性１０５内の情報に基づいて、いくつのデータ・セグメントが暗号化のために識別されるかに依存する。一実施例では、暗号化されたデータ１２０は、ＥＦＳまたはファイル・システム上に格納されるか、あるいは、他のコンピュータ・システム内で格納／使用されるために送信される。
【００１７】
一実施例では、データ１００は、各セグメントの長さが、暗号化エンジン１２１の１つのブロック・サイズと等しくなるように、Ｍビットの長さのセグメントに分割される。一実施例では、暗号化エンジン１２１内のブロック暗号は、１ラウンドの動作中に１２８ビットのセグメントを処理する。暗号化する目的で、データ１００を分割するためのセグメントの長さを決定するにあたっては、暗号化を実行するのに適切な任意のブロック・サイズを使用できることが、当業者には理解できるであろう。
【００１８】
一実施例では、暗号化属性１０５は、カテゴリまたはデータ１００のファイル・タイプに基づいてデフォルト設定に設定される。デフォルト設定は、ユーザ、管理者、またはその両方によって修正可能である。一実施例では、暗号化属性１０５は、例えば、暗号化すべきセグメントのリストに対応する数のリスト、どのセグメントを暗号化すべきかを記述するための規則または規則のセット、これらの規則に対応する識別子、このような規則またはこのような数のリストを格納する位置を示すポインタ、あるいはそれらの任意の組合せ、のような情報を含む。データ１００のどのセグメントが暗号化されるべきかを識別するために、その情報を、異なる方法によって暗号化属性１０５内に表示できることは、当業者であれば理解できるであろう。一実施例では、暗号化属性１０５は、権限のあるユーザおよび指定されたリカバリ・エージェントに関する情報のような追加情報を含む。
【００１９】
一実施例では、データ１００はあるタイプのファイルの事例である。ファイルのヘッダ（または最初のＮセグメント）を暗号化することで、十分にファイルを無権限の使用から保護することができる。例えばヘッダは、ビデオを符号化するアルゴリズムに関連するパラメータ、画像を符号化するアルゴリズムに関連するパラメータ、データ構造のデータ・フィールド、ファイルを保護するために適切なセキュリティ対策のような、ファイル・フォーマットを解釈するための重大な情報を含む。
【００２０】
一実施例では、データ１００の特定のセグメントを暗号化することによって、暗号化されたセグメントが復元されない限り、そのデータは利用価値がない。例えば、患者の氏名および彼／彼女の識別子番号が暗号化されているならば、その患者の病歴記録は利用価値がなく、それによって無権限のアクセスから保護されることになる。病歴記録は、それを特定の患者に関連させることができなければ利用価値はない。
【００２１】
一実施例では、ファイルのようなデータ１００は、ファイルのＮセグメント毎のいくつかのセグメントを暗号化することによって、暗号化される。例えば、このパターンで暗号化されたビデオ・ファイルは、閲覧を禁止するいくつかのビデオ・フレームを有する。暗号化されたファイルの閲覧者は、中断されずにビデオの全編を楽しむことはできない。暗号化されたファイルは不連続であるので、使用可能なものではないとみなされる。ビデオ・ファイルのいくつかのセグメントを暗号化することは、ビデオ・ファイル全体を暗号化することに比べて、コンピュータ使用時間をより多く節約する。暗号化するファイル・システムの性能は、媒体のファイル全体を暗号化および解読する負担が低減されるにつれて向上する。
【００２２】
一実施例では、データ１００はファイルである。暗号化エンジン１２１は、無権限のアクセスからファイルを保護するために、例えば、ファイルのヘッダ、ファイルの重要部分のセグメント、ファイルのＮ個の交互セグメント、またはそれらの任意の組合せのような、ファイルの複数のセグメントを暗号化する。
【００２３】
一実施例では、暗号化属性１０５は暗号化されずに、部分的に暗号化されたデータ１０３に添付される。一実施例では、暗号化属性１０５は、公開鍵１１２の代わりにＦＥＫ１０４を用いて暗号化される。
【００２４】
一実施例では、暗号化された暗号化属性１１１は、部分的に暗号化されたデータ１０３に付加される。一実施例では、暗号化された暗号化属性１１１は、  部分的に暗号化されたデータ１０３の前に付加される。一実施例では、暗号化された暗号化属性１１０は、ファイル・システムの構造に従って、部分的に暗号化されたデータ１０３に関連する位置に格納される。
【００２５】
一実施例では、暗号化エンジン１２１〜１２２は、様々な暗号法アルゴリズム（例えば、ＡＥＳ、ＤＥＳ、ＲＳＡなど）に基づいて、対称暗号法動作、非対称暗号法動作、またはそれらの組合せを実行することができる。暗号法動作は、ブロック暗号、ストリーム暗号、または当該技術分野において既知の他の暗号アーキテクチャ内で実行される。
【００２６】
図２は、データの解読を示すデータ・フロー図である。図２を参照して、一実施例では、解読プロセスにおける要素は、秘密鍵２０４、解読エンジン２２１〜２２２、および暗号化されたデータ２２０を含み、暗号化されたデータ２２０は、さらに、部分的に暗号化されたデータ２０８、暗号化されたＦＥＫ２０９、および暗号化された暗号化属性２１０を含む。一実施例では、秘密鍵２０４はユーザに属し、暗号化されたデータ２２０を読取り／アクセスする権限を有する人にだけ知らされている。
【００２７】
一実施例では、暗号化されたＦＥＫ２０６および暗号化された暗号化属性２０７が、暗号化されたデータ２２０から抽出される。解読エンジン２２１は、暗号化属性２０３を検索するために、秘密鍵２０４を用いて暗号化された暗号化属性２０７を解読する。解読エンジン２２１は、ＦＥＫ２０２を検索するために、秘密鍵２０４を用いて暗号化されたＦＥＫ２０６を解読する。
【００２８】
一実施例では、解読エンジン２２２は、部分的に暗号化されたデータ２０５のどのセグメントが暗号化されているのかを識別するために、暗号化属性２０３を参照することによってＦＥＫ２０２を用いて部分的に暗号化されたデータ２０５を解読する。解読エンジン２２２はデータ２０１を出力するが、それは、テキスト・ファイル、メディア・ファイル、またはデータベースのデータ・レコード、あるいは、任意の形式のデジタル情報コンテンツである。一実施例では、暗号化属性２０３は、コンピュータ格納装置に格納されたとき、データ２０１に添付される。
【００２９】
一実施例では、解読エンジン２２２は、部分的に暗号化されたデータ２０５の全てのセグメントを解読する必要がないので、解読動作を行なうための所要時間全体が短縮される。性能の向上は、暗号化属性２０３中の情報に基づいて解読のために識別される、部分的に暗号化されたデータ２０５のセグメントがどれくらい多いかに依存する。一実施例では、暗号化されたデータ２２０は、ＥＦＳ上またはファイル・システム上に格納され、あるいは他のコンピュータ・システムから受取られる。
【００３０】
一実施例では、部分的に暗号化されたデータ２０５は、各セグメントの長さが、解読エンジン２２２の１つのブロック・サイズと等しくなるように、Ｍビットの長さのセグメントに分割される。一実施例では、解読エンジン２２２内のブロック暗号は、１ラウンドの動作中に１２８ビットのセグメント／ブロックを処理する。暗号化／解読する目的で、部分的に暗号化されたデータ２０５を分割するためのセグメントの長さを決定するにあたっては、解読を実行するのに適切な任意のブロック・サイズを使用できることが、当業者には理解できるであろう。
【００３１】
一実施例では、暗号化属性２０３は、図１の暗号化属性１０５と同一である。暗号化属性２０３内の情報は、部分的に暗号化されたデータ２０５のどのセグメントを解読すべきかを識別するために、異なる方法で表わすことができることは、当業者であれば理解できるであろう。異なるタイプのデータは、図１に関して上述されたように、データの異なる部分のセグメントを暗号化することによって保護することができる。一実施例では、解読エンジン２２２は、無権限のアクセスから保護するために暗号化される、例えば、ファイルのヘッダ、ファイルの重要部分のセグメント、ファイルのＮ個の交互セグメント、またはそれらの任意の組合せのような複数のセグメントを解読する。
【００３２】
一実施例では、暗号化属性２０３は、暗号化されることなく、部分的に暗号化されたデータ２０８に添付される。一実施例では、暗号化属性２０３は、秘密鍵２０４を用いる代わりにＦＥＫ２０２を用いて解読される。
【００３３】
一実施例では、暗号化された暗号化属性２１０は、部分的に暗号化されたデータ２０８に付加される。一実施例では、暗号化された暗号化属性２１０は、  部分的に暗号化されたデータ２０８の前に付加される。一実施例では、暗号化された暗号化属性２１０は、ファイル・システムの構造に従って、部分的に暗号化されたデータ２０８に関連する位置に格納される。
【００３４】
一実施例では、解読エンジン２２１〜２２２は、様々な暗号法アルゴリズム（例えば、ＡＥＳ、ＤＥＳ、ＲＳＡなど）に基づいて、対称暗号法動作、非対称暗号法動作、またはそれらの組合せを実行することができる。暗号法動作は、ブロック暗号、ストリーム暗号、または、当該技術分野において既知の他の暗号アーキテクチャ内で実行される。
【００３５】
図３は、暗号化プロセスの一実施例のフローチャートを示す。そのプロセスは、ハードウェア（回路、専用論理など）、ソフトウェア（汎用コンピュータ・システムまたは専用マシン上で実行されるもの）、あるいは両方の組合せを含む論理を処理することによって実行される。図３を参照して、一実施例において、処理論理は、ファイルを暗号化する要求を受取る（処理ブロック３００）。処理論理は、ファイルに関連する暗号化属性を読取る（処理ブロック３０１）。処理論理は、ファイルの各セグメントの長さが、Ｍビットの暗号化エンジンによって処理するのに適した長さになるように、ファイルを複数のセグメントに分割する（処理ブロック３０２）。
【００３６】
一実施例では、処理論理は、暗号化属性内に含まれる情報に基づいて、ファイルの暗号化すべき１またはそれ以上のセグメントを識別する（処理ブロック３０３）。処理論理は、ファイルのセグメントが暗号化されるべきかどうかを決定する（処理ブロック３１０）。セグメントが暗号化すべきものとして識別された場合、暗号化エンジンは、ＦＥＫ（対称鍵）を用いてセグメントを暗号化する（処理ブロック３０４）。そうでない場合は、暗号化エンジンはセグメントを暗号化しない（処理ブロック３０５）。処理論理は、ファイルのすべてのセグメントに対してこの動作を繰り返す（処理ブロック３１１）。
【００３７】
一実施例では、処理論理は、公開鍵を用いて、ＦＥＫおよび暗号化属性を暗号化する（処理ブロック３０６）。他の実施例では、処理論理は、ＦＥＫを用いて暗号化属性を暗号化し、かつ、公開鍵を用いてＦＥＫを暗号化する。一実施例では、処理論理はＦＥＫのみを暗号化する。一実施例では、処理論理は、ＦＥＫおよび暗号化属性を暗号化するために同じ暗号化エンジンを使用する。一実施例では、異なる暗号化エンジンが、ＦＥＫおよび暗号化属性を暗号化するために使用される。
【００３８】
一実施例では、処理論理は、ファイル内に、部分的に暗号化されたファイル、暗号化された暗号化属性、および暗号化されたＦＥＫを格納する（処理ブロック３０７）。一実施例では、処理論理は、他のコンピュータ・システムで使用するためのファイルを送信する。一実施例では、処理論理は、ファイル・システムの構造に従って、部分的に暗号化されたファイル、暗号化された暗号化属性、および暗号化されたＦＥＫを格納する。
【００３９】
図４は、解読プロセスの一実施例のフローチャートである。このプロセスは、ハードウェア（回路、専用論理など）、ソフトウェア（汎用コンピュータ・システムまたは専用マシン上で実行されるもの）、あるいは両方の組合せを含む論理を処理することによって実行される。図４を参照して、一実施例では、処理論理は、暗号化されたファイルを解読する要求を受取る（処理ブロック４００）。
【００４０】
一実施例では、暗号化されたファイルは、部分的に暗号化されたファイル、部分的に暗号化されたファイルに関連する暗号化された暗号化属性、および暗号化されたＦＥＫを含む。一実施例では、処理論理は、暗号化属性を検索するために暗号化された暗号化属性を解読し、かつ、ＦＥＫを検索するために暗号化されたＦＥＫを解読する（処理ブロック４０１）。処理論理は、各セグメントの長さが、Ｍビットの解読エンジンによって処理するのに適切な長さになるように、部分的に暗号化されたファイルを複数のセグメントに分割する（処理ブロック４０３）。
【００４１】
一実施例では、処理論理は、暗号化属性に含まれる情報に基づいて、部分的に暗号化されたファイルの解読すべき１またはそれ以上のセグメントを識別する（処理ブロック４０４）。処理論理は、そのファイルのセグメントが解読されるべきものかどうかを決定する（処理ブロック４１０）。セグメントが解読すべきものであると識別された場合、解読エンジンはＦＥＫを用いてセグメントを解読する（処理ブロック４０５）。そうでない場合は、解読エンジンはセグメントを解読しない（処理ブロック４０６）。処理論理は、部分的に暗号化されたファイルのすべてのセグメントに対して、この動作を繰り返す（処理ブロック４１１）。処理論理は、解読されたファイルを、コンピュータ格納装置上のファイルに格納する（処理ブロック４０７）。
【００４２】
一実施例では、処理論理は、秘密鍵を用いて、暗号化されたＦＥＫおよび暗号化された暗号化属性を解読する（処理ブロック４０１）。一実施例では、処理論理は、秘密鍵を用いて暗号化されたＦＥＫを解読し、次に、ＦＥＫを用いて暗号化された暗号化属性を解読する。一実施例では、処理論理は、ＦＥＫのみを解読し、暗号化属性は解読されない。一実施例では、処理論理は、暗号化されたＦＥＫおよび暗号化された暗号化属性を解読するために、同じ解読エンジンを使用する。一実施例では、異なる解読エンジンが、暗号化されたＦＥＫおよび暗号化された暗号化属性を解読するために使用される。
【００４３】
一実施例では、処理論理は、部分的に暗号化されたファイル、暗号化された暗号化属性、およびファイル内の暗号化されたＦＥＫを受取る。一実施例では、処理論理は、他のコンピュータ・システムから暗号化されたファイルを受取る。一実施例では、ファイル・システムの構造に従って、部分的に暗号化されたファイル、暗号化された暗号化属性、および暗号化されたＦＥＫが結合的に格納される。
【００４４】
図５は、本発明の一実施例に従って、暗号化ファイル・システム（ＥＦＳ）内のディレクトリ構造を示す。図５を参照して、各ファイルは多くのセグメントを含む。斜線で示されたセグメントが暗号化される。実施例の記述を不明瞭にしないために、暗号化属性およびファイルのＦＥＫは図中に示されない。これらのファイルは、同じ長さである必要はない。
【００４５】
一実施例では、ファイル・システムは、ルート・ディレクトリ５０１または他のサブディレクトリ（例えば、ディレクトリ５０２，５５０）の下にファイルを格納する。サブディレクトリは、さらに、サブディレクトリ５２０のような他のサブディレクトリを含むことができる。一実施例では、同一のディレクトリ（例えば、ルート・ディレクトリ５０１，ディレクトリ５２０）の下にあるファイルは、異なる方法で暗号化することができる。ファイル５１０，ファイル５１１，ファイル５１３の異なるセグメントは、各ファイルに関連する暗号化属性に基づいて暗号化される。例えば、ファイル５１１の２番目のセグメントから始まって、１つおきのセグメントのすべてが暗号化される。ファイル５１３では、３つのセグメント毎に、そのうちの２つのセグメントが暗号化される。一実施例では、ファイル（ファイル５１１，５１３）は、異なるカテゴリのファイル・タイプの下にあり、異なる暗号化属性を用いて割り当てられる。一実施例では、ファイル（ファイル５１１，５１３）は、同じカテゴリのファイル・タイプの下にあり、ユーザによって暗号化属性が修正される。
【００４６】
一実施例では、同一のディレクトリ（ディレクトリ５０２）内のファイル５０３〜５０６は、同一の暗号化属性で暗号化される。一実施例では、ファイル５０３〜５０６は、ファイルが同一のカテゴリのファイル・タイプの下にあるか、または同一ユーザに属しているので、同一の暗号化属性を用いて暗号化される。一実施例では、ディレクトリ５５０内のファイル５５１〜５５４は、所望のセキュリティ・レベルに基づいてユーザによって設定された、異なる暗号化属性を用いて暗号化される。
【００４７】
一実施例では、ファイルは、デフォルト暗号化属性を有しない。例えば、ファイル５２０〜５２２のそれぞれの暗号化属性は、ユーザによって別々に作成される。一実施例では、例えば、クレジットカード番号、患者の氏名などのようなファイル５２１の重要部分のセグメントが暗号化される。一実施例では、ファイル５０４のヘッダからのセグメントが暗号化され、その結果、ファイル５０４は、ヘッダ内の符号化情報に基づいて正確に復号／読取りができなくなる。
【００４８】
図６は、暗号法システムの一実施例のブロック図である。図６を参照して、一実施例では、暗号法システムは、制御装置６００、暗号化属性論理６０１、ファイル分割論理６０３、ＦＥＫを用いる暗号化エンジン６１０、公開鍵を用いる暗号化エンジン６１１、ＦＥＫを用いる解読エンジン６３０、秘密鍵を用いる解読エンジン６３１、およびＦＥＫ鍵生成器６０６を含む。一実施例では、格納ドライブ６２０および不揮発性ディスク６２１は、暗号法システムによって動作されたファイルを格納する。一実施例では、格納ドライブ６２０および不揮発性ディスク６２１は、制御装置６００によって管理される。一実施例では、制御装置６００は、格納ドライブ６２０および不揮発性ディスク６２１を管理するためのサービスを用いてオペレーティング・システムを実行する。
【００４９】
一実施例では、制御装置６００は、暗号化すべきファイルを受取る。暗号化属性論理６０１は、ファイルの暗号化属性にアクセスする。一実施例では、暗号化属性論理６０１は、ファイル・タイプに基づいて、ファイルに暗号化属性を割り当てる。一実施例では、暗号化属性は、ファイルに関連して格納される。暗号化属性論理６０１は、暗号化属性内の情報に基づいて、どのファイルのセグメントを暗号化するのかを決定する。
【００５０】
一実施例では、ファイル分割論理６０３は、ファイルを複数のセグメントに分割する。各セグメントは、ＦＥＫ６１０を使用する暗号化エンジンの１つのブロック・サイズに一致するＭビットの長さである。ＦＥＫ６１０を使用する暗号化エンジンは、ファイル分割論理６０３と共に暗号化属性論理６０１によって識別されたセグメントを暗号化する。一実施例では、ＦＥＫ６１０を使用する暗号化エンジンは、対称暗号法アルゴリズムを実行するＭビットの暗号化エンジンである。一実施例では、公開鍵６１１を使用する暗号化エンジンは、公開鍵を用いて暗号化属性およびＦＥＫを暗号化する。一実施例では、公開鍵６１１を使用する暗号化エンジンは、非対称暗号法アルゴリズムを実行する。
【００５１】
一実施例では、制御装置６００は、格納ドライブ６２０上のファイルに、部分的に暗号化されたデータ、暗号化された暗号化属性、および暗号化されたＦＥＫを格納する。一実施例では、制御装置６００は、ファイル・システムによって互いに関連付けられた（ファイル・システムの）異なる位置に、部分的に暗号化されたデータ、暗号化された暗号化属性、暗号化されたＦＥＫ、またはそれらの組合せを格納する。
【００５２】
一実施例では、制御装置６００は、解読すべきファイルを受取る。ファイルは、部分的に暗号化されたファイル、ファイルに関連する暗号化された暗号化属性、および暗号化されたＦＥＫを含む。一実施例では、秘密鍵６３１を使用する解読エンジンは、秘密鍵を用いて、暗号化された暗号化属性および暗号化されたＦＥＫを解読し、暗号化属性およびＦＥＫをそれぞれ生成する。一実施例では、秘密鍵６３１を使用する解読エンジンは、非対称暗号法アルゴリズムを実行する。
【００５３】
一実施例では、暗号化属性論理６０１は、暗号化属性内の情報に基づいて、部分的に暗号化されたファイルのどのセグメントを解読すべきかを決定する。一実施例では、ファイル分割論理６０３は、部分的に暗号化されたファイルを複数のセグメントに分割する。各セグメントはＭビットの長さであり、ＦＥＫ６３０を使用する解読エンジンの１つのブロック・サイズと一致する。ＦＥＫ６３０を使用する解読エンジンは、ファイル分割論理６０３と共に暗号化属性論理６０１によって識別されたセグメントを解読する。一実施例では、ＦＥＫ６３０を使用する解読エンジンは、対称暗号法アルゴリズムを実行するＭビットの解読エンジンである。
【００５４】
一実施例では、制御装置６００は、格納ドライブ６２０上のファイルに、解読されたファイル、暗号化属性、およびＦＥＫを格納する。一実施例では、制御装置６００は、ファイル・システムによって互いに関連付けられた（ファイル・システムの）異なる位置に、解読されたファイル、暗号化属性、ＦＥＫ、またはそれらの組合せを格納する。
【００５５】
一実施例では、ＦＥＫ鍵生成器６０６は、ＦＥＫ６１０を使用する暗号化エンジン、およびＦＥＫ６３０を使用する解読エンジン内の異なるラウンドの最初のＦＥＫに基づいて、一連の鍵を生成する。
【００５６】
ここでは処理論理について記述したが、各論理ユニット、各暗号化エンジン、および各解読エンジンは、異なる組合せで、独立的、個別的、または外部的に実行することができる。本発明の実施例は、様々な電子装置および論理回路内で実行することができる。さらに、本発明の実施例を含む装置または回路は、様々なコンピュータ・システム内に含まれる。本発明の実施例は、さらに、他のコンピュータ・システムのトポロジおよびアーキテクチャに含まれる。
【００５７】
図７は、本発明の一実施例が使用されるコンピュータ・システムを示す。プロセッサ７０５は、レベル１（Ｌ１）のキャッシュ・メモリ７０６、レベル２（Ｌ２）のキャッシュ・メモリ７１０、およびメイン・メモリ７１５からのデータにアクセスする。本発明の他の実施例では、キャッシュ・メモリ７０６は、コンピュータ・システムのメモリ階層内に、Ｌ２キャッシュのような他のメモリと共にＬ１キャッシュを含むマルチレベルのキャッシュ・メモリであり、また、キャッシュ・メモリ７１０は、Ｌ３キャッシュまたはより多くのマルチレベル・キャッシュのような、後続のより低いレベルのキャッシュ・メモリである。さらに、他の実施例では、コンピュータ・システムは、２以上のプロセッサのため共用キャッシュのようなキャッシュ・メモリ７１０を有する。
【００５８】
プロセッサ７０５は、任意の数のプロセッシング・コアを有する。しかしながら、本発明の他の実施例は、システム内の他の装置内で実行されるか、あるいは、ハードウェア、ソフトウェア、またはそれらのいくつかの組合せ内に、システムの全体にわたって分配されてもよい。
【００５９】
一実施例では、メイン・メモリ７１５は、オペレーティング・システム７５０をロードし、アプリケーション・プログラム・インターフェイス（ＡＰＩ）を経由してファイル・システムを提供する。ファイル・システムは、デバイス・ドライバを通してソリッド・ステート・ディスク７２５、ＨＤＤ７２０、またはその両方と通信するために接続する。一実施例では、メイン・メモリ７１５は、ＡＰＩを通してオペレーティング・システム７５０およびファイル・システムとインターフェイスするアプリケーション・プログラムをロードする。ファイル・システムは、ソリッド・ステート・ディスク７２５またはＨＤＤ７２０と通信するためにデバイス・ドライバを通して接続し、その上でファイルを管理する。一実施例では、ファイル・システムは、（１）ファイルを格納し、参照し、共有し、安全にするため、（２）ファイル・データにアクセスするため、および（３）ファイルの保全性を維持するための方法を含む。それにもかかわらず、ファイル・システムとそれに関連するオペレーティング・システムとの間には、特に、オペレーティング・システム内に含まれるこれらのファイル・システムと関連する場合は、常に明瞭な区別があるとは限らない。
【００６０】
メイン・メモリ７１５は、例えば、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、ハードディスク・ドライブ（ＨＤＤ）７２０、ＮＶＲＡＭ技術に基づいたソリッド・ステート・ディスク７２５のようなメモリ・ソース、あるいは、様々な格納装置および技術を含む、ネットワーク・インターフェイス７３０またはワイヤレス・インターフェイス７４０を経由してコンピュータ・システムから遠隔に位置するメモリ・ソースのような、様々なメモリ・ソース内で実行される。キャッシュ・メモリは、プロセッサ内またはプロセッサのローカル・バス７０７上のようなプロセッサのすぐ近く、のいずれかに位置する。さらに、キャッシュ・メモリは、６つのトランジスタ（６Ｔ）セルのような比較的高速のメモリ・セル、あるいは、これとほぼ同等またはより高速のアクセス速度を有する他のメモリ・セルを含んでいてもよい。
【００６１】
しかしながら、本発明の他の実施例は、図７のシステム内の他の回路、論理ユニット、または装置内に存在してもよい。さらに、本発明の他の実施例は、図７に示されたいくつかの回路、論理ユニット、または全体にわたって配置される。
【００６２】
本発明の多くの変更および修正は、以上の記述を読めば、当業者には疑いなく明白になるであろう。しかしながら、例示のために図示され記述されたあらゆる特定の実施例は、制限することを目的とするものでないことが理解されるであろう。したがって、様々な実施例の詳細事項に対する言及は、請求項の範囲を制限する目的ではなく、それ自体が本発明にとって不可欠なものとして認められる特徴のみが列挙される。
【符号の説明】
【００６３】
１００，２０１  データ
１０１，１０３，２０５，２０８  部分的に暗号化されたデータ
１０４，２０２  ファイル暗号鍵（ＦＥＫ）
１０５，２０３  暗号化属性
１０７，１０８，２０６，２０９  暗号化されたＦＥＫ
１１０，１１１，２０７，２１０  暗号化された暗号化属性
１１２  ユーザの公開鍵
１２０，２２０  暗号化されたデータ
１２１〜１２２  暗号化エンジン
２０４  ユーザの秘密鍵
２２１〜２２２  解読エンジン
５０１  ルート・ディレクトリ
５０２，５２０，５５０  サブディレクトリ
５０３〜５０６，５１０，５１１，５１３，５２１〜５２３，５５１〜５５４  ファイル
６００  制御装置
６０１  暗号化属性論理
６０３  ファイル分割論理
６１０  ＦＥＫを用いる暗号化エンジン
６１１  公開鍵を用いる暗号化エンジン
６３０  ＦＥＫを用いる解読エンジン
６３１  秘密鍵を用いる解読エンジン
６０６  ＦＥＫ鍵生成器
６２０  格納ドライブ
６２１  不揮発性ディスク
【図１】
2010063105.tif 000003
【図２】
2010063105.tif 000004
【図３】
2010063105.tif 000005
【図４】
2010063105.tif 000006
【図５】
2010063105.tif 000007
【図６】
2010063105.tif 000008
【図７】
2010063105.tif 000009
【外国語明細書】
2010063105000001.pdf