説明

暗号化属性を用いて高速化された暗号法

【課題】ファイルの一部を暗号化することにより、ファイルの暗号化および解読を高速化する。
【解決手段】一実施例において、本方法は、鍵を用いてデータの1またはそれ以上のセグメントを暗号化することを含む。データは、少なくとも1つの暗号化属性に関係し、複数のセグメントを有する。暗号化属性は、データの暗号化すべき1またはそれ以上のセグメントを識別するための情報を含む。さらに、本方法は、暗号化属性を暗号化し、部分的に暗号化されたデータおよび暗号化された暗号化属性を含むデータを格納することを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施例は、コンテンツのセキュリティ分野に関し、特に、データの暗号化および解読に関する。
【背景技術】
【0002】
対称暗号法は、暗号化および解読の両方の動作が、同一の鍵を共有する暗号方法である(あるいは、それほど一般的ではないが、それらの鍵が異なる場合もある。しかし、容易に演算できる方法に関係する)。対称暗号法のアルゴリズム例として、データ暗号規格(DES:Data Encryption Standard)およびアドバンスト暗号規格(AES:Advanced Encryption Standard)が含まれる。
【0003】
他方、公開鍵暗号アルゴリズムは、非対称鍵を暗号化および解読に用いる。非対称鍵は、秘密鍵(その所有者によってのみ保持される)および公開鍵(他の主体も利用可能である)を含む。2つの鍵は別個であるが、機能において相補的である。公開鍵で暗号化された情報は、対応する秘密鍵でのみ解読可能である。2つの鍵を合わせて、鍵のペアあるいは鍵のセットと呼ばれる。RSAアルゴリズムは、公開鍵暗号化アルゴリズムの一例である。
【0004】
暗号化ファイル・システム(EFS:Encrypted File System)は、暗号化サービスを具備するファイル・システムである。この技術によって、ファイル・システム上でファイルを暗号化し、かつ解読することが可能になり、コンピュータに対して物理的なアクセスを行なう攻撃者から機密データが保護される。EFSは、正しい鍵がなければファイルを解読することが理論的に不可能であることを保証するために公開鍵暗号法を用いるか、あるいは、クラックするために途方もない時間を要するようになっている。
【0005】
EFSは、ファイル暗号化鍵(FEK:File Encrypted Key)として知られる対称鍵でファイルを暗号化することによって動作する。その後、FEKは、通常はユーザに関連し、第三者にも利用可能な公開鍵で暗号化される。暗号化されたファイルを解読するために、EFSは、ユーザによってのみアクセスされる秘密鍵を用いて、暗号化されたFEKを解読する。その後、EFSは、FEKを用いて暗号化されたファイルを解読する。一般に、暗号化および解読動作は、オペレーティング・システムよりも下の層で実行されるので、ユーザおよびその上で実行されるアプリケーションはそれに気付かない。
【図面の簡単な説明】
【0006】
本発明の実施例は、以下の詳細な説明、および本発明の様々な実施例に関する添付図面によって、より完全に理解されるであろう。しかしながら、それらは、本発明を特定の実施例に制限することを目的とするものではなく、例示および理解を容易にすることのみを目的とする。
【図1】本発明の一実施例に従って、データの暗号化を示すデータ・フロー図である。
【図2】本発明の一実施例に従って、データの解読を示すデータ・フロー図である。
【図3】暗号化プロセスの一実施例のフローチャートである。
【図4】解読プロセスの一実施例のフローチャートである。
【図5】本発明の一実施例に従って、暗号化ファイル・システム(EFS)内のディレクトリ構造を示す。
【図6】暗号法システムの一実施例のブロック図である。
【図7】本発明の一実施例が使用されているコンピュータ・システムを示す。
【発明を実施するための形態】
【0007】
暗号化属性を用いて暗号化および解読する方法およびシステムの実施例が示される。暗号化属性は、ファイルの暗号化すべき1またはそれ以上のセグメントを識別するための情報を含む。暗号化プロセスは、1またはそれ以上のセグメントを暗号化し、全ファイルを暗号化する代わりに、部分的に暗号化されたファイルを生成する。すなわち、ファイルは、暗号化されたデータおよび暗号化されないデータを含む。一実施例では、暗号化属性は、部分的に暗号化されたファイルと共に暗号化され、格納される。
【0008】
一実施例では、解読動作は、暗号化属性内に含まれる情報を用いて、部分的に暗号化されたファイル内で暗号化されるこれらのセグメントを識別する。一実施例では、権限のあるユーザ(例えばファイルの所有者)は、暗号化動作中に暗号化されるべきファイルのセグメントを識別するために、ファイルに関連する暗号化属性を設定する。
【0009】
以下の記述では、本発明の実施例のより完全な説明を提供するために、多くの特定の詳細事項について述べられる。しかしながら、本実施例は、これらの特定の詳細事項がなくても実行可能であると理解される。例えば、周知の要素、仕様、およびプロトコルは、本発明の実施例を不明瞭にしないために詳細に記述されない。
【0010】
以下の詳細な説明中のある部分は、コンピュータ・メモリ内のデータ・ビット上の動作アルゴリズムおよび符号表示に特有の表現で示される。これらのアルゴリズムの記述および表示は、他の当業者に最も効果的に伝えるために、データ処理技術分野の当業者によって使用される手段である。ここでは、アルゴリズムは、一般に、所望の結果に導くための自己矛盾のないシーケンスのステップであると考えられる。これらのステップは、物理量の物理的な操作を要求するステップである。通常、これらの量は、格納、転送、結合、比較、または他の操作が可能な、電気的または磁気的信号の形式をとるが、必ずしもその必要はない。主に一般用法上の理由から、これらの信号を、ビット、値、要素、シンボル、文字、用語、数等と称することが時には便利であることがわかっている。
【0011】
しかしながら、これらおよび類似の用語の全てが、適切な物理量に関係し、これらの量に適用される単に便利なラベルであることは、心に留めておくべきである。以下の記述から明白である以外は、特に記述されない限り、記述全体にわたって、「処理する」、「演算する」または「計算する」または「決定する」または「表示する」等のような用語を用いた議論は、コンピュータ・システムまたは類似の電子計算装置の動作およびプロセスに関するものであると理解され、その電子計算装置は、コンピュータ・システムのメモリまたはレジスタ内の物理(電子)量として表されるデータを、コンピュータ・システムのレジスタおよびメモリまたは他の同種の情報格納装置、送信または表示装置内の物理量として同様に表されるデータに、処理および変換する。
【0012】
本発明の実施例は、さらに、ここでは、動作を実行するための機器に関する。いくつかの機器は、所望の目的のために特別に構成され、あるいは、コンピュータに格納されたコンピュータ・プログラムによって選択的に活動化され、または再構成される汎用コンピュータを含む。このようなコンピュータ・プログラムは、例えば、フレキシブル・ディスク、光ディスク、CD−ROM、DVD−ROM、光磁気ディスクを含むあらゆるタイプのディスク、リード・オンリ・メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、EPROM、EEPROM、NVRAM、磁気または光カード、あるいは、電子命令を格納するために適切なあらゆるタイプの媒体、のようなコンピュータにより読取り可能な格納媒体に格納され、そして、それぞれがコンピュータ・システム・バスに結合されるが、これに制限されない。
【0013】
ここに示されるアルゴリズムおよびディスプレイは、特定のコンピュータまたは他の機器に固有に関連するものではない。様々な汎用システムが、ここに示された教示に従ってプログラムと共に使用され、あるいは、要求される方法のステップを実行するためには、より多くの特殊な機器を構成することが便利であることがわかる。これらの様々なシステムのために必要な構造は、以下の説明から明らかになるであろう。さらに、本発明の実施例は、特別のプログラミング言語に関して記述されるものではない。ここに説明されるような発明に係る教示を実施するために、様々なプログラミング言語が使用可能であることがわかる。
【0014】
機械読取り可能な媒体は、機械(例えばコンピュータ)によって読取り可能な形式で情報を格納または送信するためのあらゆるメカニズムを含む。例えば、機械読取り可能な媒体は、リード・オンリ・メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、磁気ディスク格納媒体、光格納媒体、フラッシュ・メモリ装置、電気的、光学的、音響的、または他の形式の伝播信号(例えば、搬送波、赤外線信号、デジタル信号等)などを含む。
【0015】
図1は、本発明の一実施例に従って、データの暗号化を示すデータ・フロー図である。図1を参照して、一実施例では、暗号化プロセスにおける要素は、データ100、ファイル暗号鍵(FEK)104、暗号化属性105、暗号化エンジン121−122、公開鍵112、および暗号化されたデータ120を含む。
【0016】
一実施例では、データ100は、例えば、メディア・ファイル、テキスト・ファイル、データベースのデータ・レコード、または任意の形式のデジタル情報コンテンツのような平文テキストである。データ100を暗号化するために、暗号化エンジン121は、暗号鍵としてのFEK104および暗号化属性105を受取る。暗号化属性105は、データ100の暗号化すべき1またはそれ以上のセグメントを識別するための情報を含む。暗号化エンジン121は、結果として部分的に暗号化されたデータ101を生じる。一実施例では、FEK104および暗号化属性105は、ユーザに関連する公開鍵112を用いて、暗号化エンジン122を使用して暗号化される。暗号化エンジン122から、暗号化されたFEK107および暗号化された暗号化属性111がそれぞれ出力される。一実施例では、部分的に暗号化されたデータ103、暗号化されたFEK108、および暗号化された暗号化属性110は、共に、暗号化されたデータ120内に格納される。一実施例では、全てのデータ・セグメントが暗号化されるわけではないので、暗号化動作を実行するための時間全体が短縮される。パフォーマンスの向上は、暗号化属性105内の情報に基づいて、いくつのデータ・セグメントが暗号化のために識別されるかに依存する。一実施例では、暗号化されたデータ120は、EFSまたはファイル・システム上に格納されるか、あるいは、他のコンピュータ・システム内で格納/使用されるために送信される。
【0017】
一実施例では、データ100は、各セグメントの長さが、暗号化エンジン121の1つのブロック・サイズと等しくなるように、Mビットの長さのセグメントに分割される。一実施例では、暗号化エンジン121内のブロック暗号は、1ラウンドの動作中に128ビットのセグメントを処理する。暗号化する目的で、データ100を分割するためのセグメントの長さを決定するにあたっては、暗号化を実行するのに適切な任意のブロック・サイズを使用できることが、当業者には理解できるであろう。
【0018】
一実施例では、暗号化属性105は、カテゴリまたはデータ100のファイル・タイプに基づいてデフォルト設定に設定される。デフォルト設定は、ユーザ、管理者、またはその両方によって修正可能である。一実施例では、暗号化属性105は、例えば、暗号化すべきセグメントのリストに対応する数のリスト、どのセグメントを暗号化すべきかを記述するための規則または規則のセット、これらの規則に対応する識別子、このような規則またはこのような数のリストを格納する位置を示すポインタ、あるいはそれらの任意の組合せ、のような情報を含む。データ100のどのセグメントが暗号化されるべきかを識別するために、その情報を、異なる方法によって暗号化属性105内に表示できることは、当業者であれば理解できるであろう。一実施例では、暗号化属性105は、権限のあるユーザおよび指定されたリカバリ・エージェントに関する情報のような追加情報を含む。
【0019】
一実施例では、データ100はあるタイプのファイルの事例である。ファイルのヘッダ(または最初のNセグメント)を暗号化することで、十分にファイルを無権限の使用から保護することができる。例えばヘッダは、ビデオを符号化するアルゴリズムに関連するパラメータ、画像を符号化するアルゴリズムに関連するパラメータ、データ構造のデータ・フィールド、ファイルを保護するために適切なセキュリティ対策のような、ファイル・フォーマットを解釈するための重大な情報を含む。
【0020】
一実施例では、データ100の特定のセグメントを暗号化することによって、暗号化されたセグメントが復元されない限り、そのデータは利用価値がない。例えば、患者の氏名および彼/彼女の識別子番号が暗号化されているならば、その患者の病歴記録は利用価値がなく、それによって無権限のアクセスから保護されることになる。病歴記録は、それを特定の患者に関連させることができなければ利用価値はない。
【0021】
一実施例では、ファイルのようなデータ100は、ファイルのNセグメント毎のいくつかのセグメントを暗号化することによって、暗号化される。例えば、このパターンで暗号化されたビデオ・ファイルは、閲覧を禁止するいくつかのビデオ・フレームを有する。暗号化されたファイルの閲覧者は、中断されずにビデオの全編を楽しむことはできない。暗号化されたファイルは不連続であるので、使用可能なものではないとみなされる。ビデオ・ファイルのいくつかのセグメントを暗号化することは、ビデオ・ファイル全体を暗号化することに比べて、コンピュータ使用時間をより多く節約する。暗号化するファイル・システムの性能は、媒体のファイル全体を暗号化および解読する負担が低減されるにつれて向上する。
【0022】
一実施例では、データ100はファイルである。暗号化エンジン121は、無権限のアクセスからファイルを保護するために、例えば、ファイルのヘッダ、ファイルの重要部分のセグメント、ファイルのN個の交互セグメント、またはそれらの任意の組合せのような、ファイルの複数のセグメントを暗号化する。
【0023】
一実施例では、暗号化属性105は暗号化されずに、部分的に暗号化されたデータ103に添付される。一実施例では、暗号化属性105は、公開鍵112の代わりにFEK104を用いて暗号化される。
【0024】
一実施例では、暗号化された暗号化属性111は、部分的に暗号化されたデータ103に付加される。一実施例では、暗号化された暗号化属性111は、 部分的に暗号化されたデータ103の前に付加される。一実施例では、暗号化された暗号化属性110は、ファイル・システムの構造に従って、部分的に暗号化されたデータ103に関連する位置に格納される。
【0025】
一実施例では、暗号化エンジン121〜122は、様々な暗号法アルゴリズム(例えば、AES、DES、RSAなど)に基づいて、対称暗号法動作、非対称暗号法動作、またはそれらの組合せを実行することができる。暗号法動作は、ブロック暗号、ストリーム暗号、または当該技術分野において既知の他の暗号アーキテクチャ内で実行される。
【0026】
図2は、データの解読を示すデータ・フロー図である。図2を参照して、一実施例では、解読プロセスにおける要素は、秘密鍵204、解読エンジン221〜222、および暗号化されたデータ220を含み、暗号化されたデータ220は、さらに、部分的に暗号化されたデータ208、暗号化されたFEK209、および暗号化された暗号化属性210を含む。一実施例では、秘密鍵204はユーザに属し、暗号化されたデータ220を読取り/アクセスする権限を有する人にだけ知らされている。
【0027】
一実施例では、暗号化されたFEK206および暗号化された暗号化属性207が、暗号化されたデータ220から抽出される。解読エンジン221は、暗号化属性203を検索するために、秘密鍵204を用いて暗号化された暗号化属性207を解読する。解読エンジン221は、FEK202を検索するために、秘密鍵204を用いて暗号化されたFEK206を解読する。
【0028】
一実施例では、解読エンジン222は、部分的に暗号化されたデータ205のどのセグメントが暗号化されているのかを識別するために、暗号化属性203を参照することによってFEK202を用いて部分的に暗号化されたデータ205を解読する。解読エンジン222はデータ201を出力するが、それは、テキスト・ファイル、メディア・ファイル、またはデータベースのデータ・レコード、あるいは、任意の形式のデジタル情報コンテンツである。一実施例では、暗号化属性203は、コンピュータ格納装置に格納されたとき、データ201に添付される。
【0029】
一実施例では、解読エンジン222は、部分的に暗号化されたデータ205の全てのセグメントを解読する必要がないので、解読動作を行なうための所要時間全体が短縮される。性能の向上は、暗号化属性203中の情報に基づいて解読のために識別される、部分的に暗号化されたデータ205のセグメントがどれくらい多いかに依存する。一実施例では、暗号化されたデータ220は、EFS上またはファイル・システム上に格納され、あるいは他のコンピュータ・システムから受取られる。
【0030】
一実施例では、部分的に暗号化されたデータ205は、各セグメントの長さが、解読エンジン222の1つのブロック・サイズと等しくなるように、Mビットの長さのセグメントに分割される。一実施例では、解読エンジン222内のブロック暗号は、1ラウンドの動作中に128ビットのセグメント/ブロックを処理する。暗号化/解読する目的で、部分的に暗号化されたデータ205を分割するためのセグメントの長さを決定するにあたっては、解読を実行するのに適切な任意のブロック・サイズを使用できることが、当業者には理解できるであろう。
【0031】
一実施例では、暗号化属性203は、図1の暗号化属性105と同一である。暗号化属性203内の情報は、部分的に暗号化されたデータ205のどのセグメントを解読すべきかを識別するために、異なる方法で表わすことができることは、当業者であれば理解できるであろう。異なるタイプのデータは、図1に関して上述されたように、データの異なる部分のセグメントを暗号化することによって保護することができる。一実施例では、解読エンジン222は、無権限のアクセスから保護するために暗号化される、例えば、ファイルのヘッダ、ファイルの重要部分のセグメント、ファイルのN個の交互セグメント、またはそれらの任意の組合せのような複数のセグメントを解読する。
【0032】
一実施例では、暗号化属性203は、暗号化されることなく、部分的に暗号化されたデータ208に添付される。一実施例では、暗号化属性203は、秘密鍵204を用いる代わりにFEK202を用いて解読される。
【0033】
一実施例では、暗号化された暗号化属性210は、部分的に暗号化されたデータ208に付加される。一実施例では、暗号化された暗号化属性210は、 部分的に暗号化されたデータ208の前に付加される。一実施例では、暗号化された暗号化属性210は、ファイル・システムの構造に従って、部分的に暗号化されたデータ208に関連する位置に格納される。
【0034】
一実施例では、解読エンジン221〜222は、様々な暗号法アルゴリズム(例えば、AES、DES、RSAなど)に基づいて、対称暗号法動作、非対称暗号法動作、またはそれらの組合せを実行することができる。暗号法動作は、ブロック暗号、ストリーム暗号、または、当該技術分野において既知の他の暗号アーキテクチャ内で実行される。
【0035】
図3は、暗号化プロセスの一実施例のフローチャートを示す。そのプロセスは、ハードウェア(回路、専用論理など)、ソフトウェア(汎用コンピュータ・システムまたは専用マシン上で実行されるもの)、あるいは両方の組合せを含む論理を処理することによって実行される。図3を参照して、一実施例において、処理論理は、ファイルを暗号化する要求を受取る(処理ブロック300)。処理論理は、ファイルに関連する暗号化属性を読取る(処理ブロック301)。処理論理は、ファイルの各セグメントの長さが、Mビットの暗号化エンジンによって処理するのに適した長さになるように、ファイルを複数のセグメントに分割する(処理ブロック302)。
【0036】
一実施例では、処理論理は、暗号化属性内に含まれる情報に基づいて、ファイルの暗号化すべき1またはそれ以上のセグメントを識別する(処理ブロック303)。処理論理は、ファイルのセグメントが暗号化されるべきかどうかを決定する(処理ブロック310)。セグメントが暗号化すべきものとして識別された場合、暗号化エンジンは、FEK(対称鍵)を用いてセグメントを暗号化する(処理ブロック304)。そうでない場合は、暗号化エンジンはセグメントを暗号化しない(処理ブロック305)。処理論理は、ファイルのすべてのセグメントに対してこの動作を繰り返す(処理ブロック311)。
【0037】
一実施例では、処理論理は、公開鍵を用いて、FEKおよび暗号化属性を暗号化する(処理ブロック306)。他の実施例では、処理論理は、FEKを用いて暗号化属性を暗号化し、かつ、公開鍵を用いてFEKを暗号化する。一実施例では、処理論理はFEKのみを暗号化する。一実施例では、処理論理は、FEKおよび暗号化属性を暗号化するために同じ暗号化エンジンを使用する。一実施例では、異なる暗号化エンジンが、FEKおよび暗号化属性を暗号化するために使用される。
【0038】
一実施例では、処理論理は、ファイル内に、部分的に暗号化されたファイル、暗号化された暗号化属性、および暗号化されたFEKを格納する(処理ブロック307)。一実施例では、処理論理は、他のコンピュータ・システムで使用するためのファイルを送信する。一実施例では、処理論理は、ファイル・システムの構造に従って、部分的に暗号化されたファイル、暗号化された暗号化属性、および暗号化されたFEKを格納する。
【0039】
図4は、解読プロセスの一実施例のフローチャートである。このプロセスは、ハードウェア(回路、専用論理など)、ソフトウェア(汎用コンピュータ・システムまたは専用マシン上で実行されるもの)、あるいは両方の組合せを含む論理を処理することによって実行される。図4を参照して、一実施例では、処理論理は、暗号化されたファイルを解読する要求を受取る(処理ブロック400)。
【0040】
一実施例では、暗号化されたファイルは、部分的に暗号化されたファイル、部分的に暗号化されたファイルに関連する暗号化された暗号化属性、および暗号化されたFEKを含む。一実施例では、処理論理は、暗号化属性を検索するために暗号化された暗号化属性を解読し、かつ、FEKを検索するために暗号化されたFEKを解読する(処理ブロック401)。処理論理は、各セグメントの長さが、Mビットの解読エンジンによって処理するのに適切な長さになるように、部分的に暗号化されたファイルを複数のセグメントに分割する(処理ブロック403)。
【0041】
一実施例では、処理論理は、暗号化属性に含まれる情報に基づいて、部分的に暗号化されたファイルの解読すべき1またはそれ以上のセグメントを識別する(処理ブロック404)。処理論理は、そのファイルのセグメントが解読されるべきものかどうかを決定する(処理ブロック410)。セグメントが解読すべきものであると識別された場合、解読エンジンはFEKを用いてセグメントを解読する(処理ブロック405)。そうでない場合は、解読エンジンはセグメントを解読しない(処理ブロック406)。処理論理は、部分的に暗号化されたファイルのすべてのセグメントに対して、この動作を繰り返す(処理ブロック411)。処理論理は、解読されたファイルを、コンピュータ格納装置上のファイルに格納する(処理ブロック407)。
【0042】
一実施例では、処理論理は、秘密鍵を用いて、暗号化されたFEKおよび暗号化された暗号化属性を解読する(処理ブロック401)。一実施例では、処理論理は、秘密鍵を用いて暗号化されたFEKを解読し、次に、FEKを用いて暗号化された暗号化属性を解読する。一実施例では、処理論理は、FEKのみを解読し、暗号化属性は解読されない。一実施例では、処理論理は、暗号化されたFEKおよび暗号化された暗号化属性を解読するために、同じ解読エンジンを使用する。一実施例では、異なる解読エンジンが、暗号化されたFEKおよび暗号化された暗号化属性を解読するために使用される。
【0043】
一実施例では、処理論理は、部分的に暗号化されたファイル、暗号化された暗号化属性、およびファイル内の暗号化されたFEKを受取る。一実施例では、処理論理は、他のコンピュータ・システムから暗号化されたファイルを受取る。一実施例では、ファイル・システムの構造に従って、部分的に暗号化されたファイル、暗号化された暗号化属性、および暗号化されたFEKが結合的に格納される。
【0044】
図5は、本発明の一実施例に従って、暗号化ファイル・システム(EFS)内のディレクトリ構造を示す。図5を参照して、各ファイルは多くのセグメントを含む。斜線で示されたセグメントが暗号化される。実施例の記述を不明瞭にしないために、暗号化属性およびファイルのFEKは図中に示されない。これらのファイルは、同じ長さである必要はない。
【0045】
一実施例では、ファイル・システムは、ルート・ディレクトリ501または他のサブディレクトリ(例えば、ディレクトリ502,550)の下にファイルを格納する。サブディレクトリは、さらに、サブディレクトリ520のような他のサブディレクトリを含むことができる。一実施例では、同一のディレクトリ(例えば、ルート・ディレクトリ501,ディレクトリ520)の下にあるファイルは、異なる方法で暗号化することができる。ファイル510,ファイル511,ファイル513の異なるセグメントは、各ファイルに関連する暗号化属性に基づいて暗号化される。例えば、ファイル511の2番目のセグメントから始まって、1つおきのセグメントのすべてが暗号化される。ファイル513では、3つのセグメント毎に、そのうちの2つのセグメントが暗号化される。一実施例では、ファイル(ファイル511,513)は、異なるカテゴリのファイル・タイプの下にあり、異なる暗号化属性を用いて割り当てられる。一実施例では、ファイル(ファイル511,513)は、同じカテゴリのファイル・タイプの下にあり、ユーザによって暗号化属性が修正される。
【0046】
一実施例では、同一のディレクトリ(ディレクトリ502)内のファイル503〜506は、同一の暗号化属性で暗号化される。一実施例では、ファイル503〜506は、ファイルが同一のカテゴリのファイル・タイプの下にあるか、または同一ユーザに属しているので、同一の暗号化属性を用いて暗号化される。一実施例では、ディレクトリ550内のファイル551〜554は、所望のセキュリティ・レベルに基づいてユーザによって設定された、異なる暗号化属性を用いて暗号化される。
【0047】
一実施例では、ファイルは、デフォルト暗号化属性を有しない。例えば、ファイル520〜522のそれぞれの暗号化属性は、ユーザによって別々に作成される。一実施例では、例えば、クレジットカード番号、患者の氏名などのようなファイル521の重要部分のセグメントが暗号化される。一実施例では、ファイル504のヘッダからのセグメントが暗号化され、その結果、ファイル504は、ヘッダ内の符号化情報に基づいて正確に復号/読取りができなくなる。
【0048】
図6は、暗号法システムの一実施例のブロック図である。図6を参照して、一実施例では、暗号法システムは、制御装置600、暗号化属性論理601、ファイル分割論理603、FEKを用いる暗号化エンジン610、公開鍵を用いる暗号化エンジン611、FEKを用いる解読エンジン630、秘密鍵を用いる解読エンジン631、およびFEK鍵生成器606を含む。一実施例では、格納ドライブ620および不揮発性ディスク621は、暗号法システムによって動作されたファイルを格納する。一実施例では、格納ドライブ620および不揮発性ディスク621は、制御装置600によって管理される。一実施例では、制御装置600は、格納ドライブ620および不揮発性ディスク621を管理するためのサービスを用いてオペレーティング・システムを実行する。
【0049】
一実施例では、制御装置600は、暗号化すべきファイルを受取る。暗号化属性論理601は、ファイルの暗号化属性にアクセスする。一実施例では、暗号化属性論理601は、ファイル・タイプに基づいて、ファイルに暗号化属性を割り当てる。一実施例では、暗号化属性は、ファイルに関連して格納される。暗号化属性論理601は、暗号化属性内の情報に基づいて、どのファイルのセグメントを暗号化するのかを決定する。
【0050】
一実施例では、ファイル分割論理603は、ファイルを複数のセグメントに分割する。各セグメントは、FEK610を使用する暗号化エンジンの1つのブロック・サイズに一致するMビットの長さである。FEK610を使用する暗号化エンジンは、ファイル分割論理603と共に暗号化属性論理601によって識別されたセグメントを暗号化する。一実施例では、FEK610を使用する暗号化エンジンは、対称暗号法アルゴリズムを実行するMビットの暗号化エンジンである。一実施例では、公開鍵611を使用する暗号化エンジンは、公開鍵を用いて暗号化属性およびFEKを暗号化する。一実施例では、公開鍵611を使用する暗号化エンジンは、非対称暗号法アルゴリズムを実行する。
【0051】
一実施例では、制御装置600は、格納ドライブ620上のファイルに、部分的に暗号化されたデータ、暗号化された暗号化属性、および暗号化されたFEKを格納する。一実施例では、制御装置600は、ファイル・システムによって互いに関連付けられた(ファイル・システムの)異なる位置に、部分的に暗号化されたデータ、暗号化された暗号化属性、暗号化されたFEK、またはそれらの組合せを格納する。
【0052】
一実施例では、制御装置600は、解読すべきファイルを受取る。ファイルは、部分的に暗号化されたファイル、ファイルに関連する暗号化された暗号化属性、および暗号化されたFEKを含む。一実施例では、秘密鍵631を使用する解読エンジンは、秘密鍵を用いて、暗号化された暗号化属性および暗号化されたFEKを解読し、暗号化属性およびFEKをそれぞれ生成する。一実施例では、秘密鍵631を使用する解読エンジンは、非対称暗号法アルゴリズムを実行する。
【0053】
一実施例では、暗号化属性論理601は、暗号化属性内の情報に基づいて、部分的に暗号化されたファイルのどのセグメントを解読すべきかを決定する。一実施例では、ファイル分割論理603は、部分的に暗号化されたファイルを複数のセグメントに分割する。各セグメントはMビットの長さであり、FEK630を使用する解読エンジンの1つのブロック・サイズと一致する。FEK630を使用する解読エンジンは、ファイル分割論理603と共に暗号化属性論理601によって識別されたセグメントを解読する。一実施例では、FEK630を使用する解読エンジンは、対称暗号法アルゴリズムを実行するMビットの解読エンジンである。
【0054】
一実施例では、制御装置600は、格納ドライブ620上のファイルに、解読されたファイル、暗号化属性、およびFEKを格納する。一実施例では、制御装置600は、ファイル・システムによって互いに関連付けられた(ファイル・システムの)異なる位置に、解読されたファイル、暗号化属性、FEK、またはそれらの組合せを格納する。
【0055】
一実施例では、FEK鍵生成器606は、FEK610を使用する暗号化エンジン、およびFEK630を使用する解読エンジン内の異なるラウンドの最初のFEKに基づいて、一連の鍵を生成する。
【0056】
ここでは処理論理について記述したが、各論理ユニット、各暗号化エンジン、および各解読エンジンは、異なる組合せで、独立的、個別的、または外部的に実行することができる。本発明の実施例は、様々な電子装置および論理回路内で実行することができる。さらに、本発明の実施例を含む装置または回路は、様々なコンピュータ・システム内に含まれる。本発明の実施例は、さらに、他のコンピュータ・システムのトポロジおよびアーキテクチャに含まれる。
【0057】
図7は、本発明の一実施例が使用されるコンピュータ・システムを示す。プロセッサ705は、レベル1(L1)のキャッシュ・メモリ706、レベル2(L2)のキャッシュ・メモリ710、およびメイン・メモリ715からのデータにアクセスする。本発明の他の実施例では、キャッシュ・メモリ706は、コンピュータ・システムのメモリ階層内に、L2キャッシュのような他のメモリと共にL1キャッシュを含むマルチレベルのキャッシュ・メモリであり、また、キャッシュ・メモリ710は、L3キャッシュまたはより多くのマルチレベル・キャッシュのような、後続のより低いレベルのキャッシュ・メモリである。さらに、他の実施例では、コンピュータ・システムは、2以上のプロセッサのため共用キャッシュのようなキャッシュ・メモリ710を有する。
【0058】
プロセッサ705は、任意の数のプロセッシング・コアを有する。しかしながら、本発明の他の実施例は、システム内の他の装置内で実行されるか、あるいは、ハードウェア、ソフトウェア、またはそれらのいくつかの組合せ内に、システムの全体にわたって分配されてもよい。
【0059】
一実施例では、メイン・メモリ715は、オペレーティング・システム750をロードし、アプリケーション・プログラム・インターフェイス(API)を経由してファイル・システムを提供する。ファイル・システムは、デバイス・ドライバを通してソリッド・ステート・ディスク725、HDD720、またはその両方と通信するために接続する。一実施例では、メイン・メモリ715は、APIを通してオペレーティング・システム750およびファイル・システムとインターフェイスするアプリケーション・プログラムをロードする。ファイル・システムは、ソリッド・ステート・ディスク725またはHDD720と通信するためにデバイス・ドライバを通して接続し、その上でファイルを管理する。一実施例では、ファイル・システムは、(1)ファイルを格納し、参照し、共有し、安全にするため、(2)ファイル・データにアクセスするため、および(3)ファイルの保全性を維持するための方法を含む。それにもかかわらず、ファイル・システムとそれに関連するオペレーティング・システムとの間には、特に、オペレーティング・システム内に含まれるこれらのファイル・システムと関連する場合は、常に明瞭な区別があるとは限らない。
【0060】
メイン・メモリ715は、例えば、ダイナミック・ランダム・アクセス・メモリ(DRAM)、ハードディスク・ドライブ(HDD)720、NVRAM技術に基づいたソリッド・ステート・ディスク725のようなメモリ・ソース、あるいは、様々な格納装置および技術を含む、ネットワーク・インターフェイス730またはワイヤレス・インターフェイス740を経由してコンピュータ・システムから遠隔に位置するメモリ・ソースのような、様々なメモリ・ソース内で実行される。キャッシュ・メモリは、プロセッサ内またはプロセッサのローカル・バス707上のようなプロセッサのすぐ近く、のいずれかに位置する。さらに、キャッシュ・メモリは、6つのトランジスタ(6T)セルのような比較的高速のメモリ・セル、あるいは、これとほぼ同等またはより高速のアクセス速度を有する他のメモリ・セルを含んでいてもよい。
【0061】
しかしながら、本発明の他の実施例は、図7のシステム内の他の回路、論理ユニット、または装置内に存在してもよい。さらに、本発明の他の実施例は、図7に示されたいくつかの回路、論理ユニット、または全体にわたって配置される。
【0062】
本発明の多くの変更および修正は、以上の記述を読めば、当業者には疑いなく明白になるであろう。しかしながら、例示のために図示され記述されたあらゆる特定の実施例は、制限することを目的とするものでないことが理解されるであろう。したがって、様々な実施例の詳細事項に対する言及は、請求項の範囲を制限する目的ではなく、それ自体が本発明にとって不可欠なものとして認められる特徴のみが列挙される。
【符号の説明】
【0063】
100,201 データ
101,103,205,208 部分的に暗号化されたデータ
104,202 ファイル暗号鍵(FEK)
105,203 暗号化属性
107,108,206,209 暗号化されたFEK
110,111,207,210 暗号化された暗号化属性
112 ユーザの公開鍵
120,220 暗号化されたデータ
121〜122 暗号化エンジン
204 ユーザの秘密鍵
221〜222 解読エンジン
501 ルート・ディレクトリ
502,520,550 サブディレクトリ
503〜506,510,511,513,521〜523,551〜554 ファイル
600 制御装置
601 暗号化属性論理
603 ファイル分割論理
610 FEKを用いる暗号化エンジン
611 公開鍵を用いる暗号化エンジン
630 FEKを用いる解読エンジン
631 秘密鍵を用いる解読エンジン
606 FEK鍵生成器
620 格納ドライブ
621 不揮発性ディスク

【特許請求の範囲】
【請求項1】
暗号化するための方法において、
第1データの1またはそれ以上のセグメントを、第1の鍵を用いて暗号化する段階であって、前記第1データは、少なくとも1つの暗号化属性と関連し、かつ、複数のセグメントを有し、前記暗号化属性は、前記第1データの暗号化すべき前記1またはそれ以上のセグメントを識別するための情報を含む、段階と、
暗号化された暗号化属性を作成するために、前記暗号化属性を、第2の鍵を用いて暗号化する段階と、
部分的に暗号化されたデータおよび暗号化された暗号化属性を含む、第2データの少なくとも一部を格納する段階と、
から構成されることを特徴とする方法。
【請求項2】
前記第1の鍵を、前記第2の鍵を用いて暗号化する段階をさらに含み、前記第2データは、前記第1の鍵の暗号化されたバージョンをさらに含み、前記第1の鍵は対称暗号鍵であり、前記第2の鍵は公開鍵であることを特徴とする請求項1記載の方法。
【請求項3】
前記第1の鍵を、第3の鍵を用いて暗号化する段階をさらに含み、前記第2データは、前記第1の鍵の暗号化されたバージョンをさらに含み、前記第1の鍵および前記第2の鍵は同一の対称鍵であり、前記第3の鍵は公開鍵であることを特徴とする請求項1記載の方法。
【請求項4】
前記第2データを転送する段階をさらに含むことを特徴とする請求項1記載の方法。
【請求項5】
前記1またはそれ以上のセグメントは、前記第1データの最初のNセグメントを含み、Nは正の整数であることを特徴とする請求項1記載の方法。
【請求項6】
前記1またはそれ以上のセグメントは、前記第1データのNセグメント毎の少なくとも1つのセグメントを含み、Nは正の整数であることを特徴とする請求項1記載の方法。
【請求項7】
暗号を解読する方法において、
部分的に暗号化されたデータおよび暗号化属性の暗号化されたバージョンを含む、第1データにアクセスする段階であって、前記部分的に暗号化されたデータは複数のセグメントを含む、段階と、
前記暗号化属性を検索するために、前記暗号化された暗号化属性を、第1の鍵を用いて解読する段階であって、前記暗号化属性は、前記部分的に暗号化されたデータの、暗号化された1またはそれ以上のセグメントを識別するための情報を含む、段階と、
前記部分的に暗号化されたデータの前記1またはそれ以上のセグメントを、第2の鍵を用いて解読する段階と、
から構成されることを特徴とする方法。
【請求項8】
前記第2の鍵の暗号化されたバージョンを、前記第1の鍵を用いて解読する段階をさらに含み、前記第1データは、前記第2の鍵の前記暗号化されたバージョンをさらに含み、前記第2の鍵は対称暗号鍵であり、前記第1の鍵は秘密鍵であることを特徴とする請求項7記載の方法。
【請求項9】
前記第2の鍵の暗号化されたバージョンを、第3の鍵を用いて解読する段階をさらに含み、前記第1データは、前記第2の鍵の前記暗号化されたバージョンをさらに含み、前記第1の鍵および前記第2の鍵は同一の対称暗号鍵であり、前記第3の鍵は秘密鍵であることを特徴とする請求項7記載の方法。
【請求項10】
前記1またはそれ以上のセグメントは、前記部分的に暗号化されたデータの最初のNセグメントを含み、Nは正の整数であることを特徴とする請求項7記載の方法。
【請求項11】
暗号化するためのシステムにおいて、
少なくとも1つの暗号化属性に関連する第1データを暗号化するための要求を受取る制御装置であって、前記第1データは複数のセグメントを含み、前記暗号化属性は、前記第1データの暗号化すべき1またはそれ以上のセグメントを識別するための情報を含む、制御装置と、
部分的に暗号化されたデータを生成するために、前記第1データの前記1またはそれ以上のセグメントを、第1の鍵を用いて暗号化するための第1暗号化エンジンと、
前記暗号化属性を、第2の鍵を用いて、暗号化された暗号化属性に暗号化するために動作可能な第2暗号化エンジンと、
第2データの少なくとも一部を格納するための格納装置であって、前記第2データは、前記暗号化された暗号化属性および前記部分的に暗号化されたデータを含む、格納装置と、
から構成されることを特徴とするシステム。
【請求項12】
前記第1の鍵を、前記第2の鍵を用いて暗号化するための第3暗号化エンジンをさらに含み、前記第2データは、前記第1の鍵の暗号化されたバージョンをさらに含み、前記第1の鍵は対称暗号鍵であり、前記第2の鍵は公開鍵であることを特徴とする請求項11記載のシステム。
【請求項13】
前記第1の鍵を、第3の鍵を用いて暗号化するための第3暗号化エンジンをさらに含み、前記第2データは、前記第1の鍵の暗号化されたバージョンをさらに含み、前記第1の鍵および前記第2の鍵は同一の対称鍵であり、前記第3の鍵は公開鍵であることを特徴とする請求項11記載のシステム。
【請求項14】
前記制御装置は、前記第1データを複数のセグメントに分割するために動作可能であり、前記第1データの各セグメントは、Mビットの長さであり、各セグメントは、Mビット暗号化エンジンである前記第1暗号化エンジンによって処理することができることを特徴とする請求項11記載のシステム。
【請求項15】
暗号を解読するためのシステムにおいて、
部分的に暗号化されたデータおよび暗号化属性の暗号化されたバージョンを含む、第1データにアクセスするための制御装置であって、前記部分的に暗号化されたデータは、複数のセグメントを含む、制御装置と、
前記暗号化属性を検索するために、前記暗号化された暗号化属性を第1の鍵を用いて解読するための第1解読エンジンであって、前記暗号化属性は、部分的に暗号化されたデータの、暗号化すべき1またはそれ以上のセグメントを識別するための情報を含む、第1解読エンジンと、
前記部分的に暗号化されたデータの1またはそれ以上のセグメントを、前記第2の鍵を用いて解読するための第2解読エンジンと、
から構成されることを特徴とするシステム。
【請求項16】
前記第2の鍵の暗号化されたバージョンを、前記第1の鍵を用いて解読するための第3の解読エンジンをさらに含み、前記第1データは、前記第2の鍵の前記暗号化されたバージョンをさらに含み、前記第2の鍵は対称暗号鍵であり、前記第1の鍵は秘密鍵であることを特徴とする請求項15記載のシステム。
【請求項17】
前記第1解読エンジンおよび前記第2解読エンジンは、同一であることを特徴とする請求項15記載のシステム。
【請求項18】
命令をその上に格納する、データを含むコンピュータ読取り可能な格納媒体を含む製造物であって、機械によってアクセスされたとき、前記機械に、
第1データの1またはそれ以上のセグメントを、第1の鍵を用いて暗号化する段階であって、前記第1データは、少なくとも1つの暗号化属性に関連し、かつ、複数のセグメントを有し、前記暗号化属性は、前記第1データの暗号化すべき前記1またはそれ以上のセグメントを識別するための情報を含む、段階と、
暗号化された暗号化属性を作成するために、前記暗号化属性を、第2の鍵を用いて暗号化する段階と、
部分的に暗号化されたデータおよび暗号化された暗号化属性を含む、第2データの少なくとも一部を格納する段階と、
を含む方法を実行させることを特徴とする製造物。
【請求項19】
前記方法は、前記第1の鍵を、前記第2の鍵を用いて暗号化する段階をさらに含み、前記第2データは、前記第1の鍵の暗号化されたバージョンをさらに含み、前記第1の鍵は対称暗号鍵であり、前記第2の鍵は公開鍵であることを特徴とする請求項18記載の製造物。
【請求項20】
命令をその上に格納する、データを含むコンピュータ読取り可能な格納媒体を含む製造物であって、機械によってアクセスされたとき、前記機械に、
部分的に暗号化されたデータおよび暗号化属性の暗号化されたバージョンを含む、第1データにアクセスする段階であって、前記部分的に暗号化されたデータは複数のセグメントを含む、段階と、
前記暗号化属性を検索するために、前記暗号化された暗号化属性を、第1の鍵を用いて解読する段階であって、前記暗号化属性は、前記部分的に暗号化されたデータの、暗号化された1またはそれ以上のセグメントを識別するための情報を含む、段階と、
前記部分的に暗号化されたデータの前記1またはそれ以上のセグメントを、第2の鍵を用いて解読する段階と、
を含む方法を実行させることを特徴とする製造物。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2010−63105(P2010−63105A)
【公開日】平成22年3月18日(2010.3.18)
【国際特許分類】
【外国語出願】
【出願番号】特願2009−204060(P2009−204060)
【出願日】平成21年9月3日(2009.9.3)
【出願人】(591003943)インテル・コーポレーション (1,101)
【Fターム(参考)】