(57)【要約】  鍵の改ざんから保護するための装置および方法が開示される。コンピューティングデバイスが、鍵の第1の部分を含む第1のワードを書き込むことと、鍵の一部分をそれぞれが含む複数の後続のワードを書き込むこととを行うように構成された、暗号プロセッサを含み得る。同じワードが2回以上書き込まれる場合、鍵はリセットされ、有効化されない。
2017510184.tif 000002
【特許請求の範囲】
【請求項１】
暗号プロセッサを備えるコンピューティングデバイスであって、
前記暗号プロセッサが、
鍵の第1の部分を含む第1のワードを書き込むことと、
前記鍵の一部分をそれぞれが含む複数の後続のワードを書き込むことと
を行うように構成され、
同じワードが2回以上書き込まれる場合、前記鍵がリセットされる、コンピューティングデバイス。
【請求項２】
ワードが順序違いで書き込まれる場合、前記鍵がリセットされる、請求項1に記載のコンピューティングデバイス。
【請求項３】
すでに有効な鍵に対してワードが書き込まれる場合、前記鍵がリセットされ、関連付けられるメタデータが無効化される、請求項1に記載のコンピューティングデバイス。
【請求項４】
同じワードが2回以上書き込まれず、かつワードが順序違いで書き込まれていない場合、前記暗号プロセッサが鍵有効化プロセスを実施する、請求項2に記載のコンピューティングデバイス。
【請求項５】
前記鍵有効化プロセスにおいて、前記暗号プロセッサが、前記鍵に関連付けられるメタデータがシステム権限を満たすかどうかを判定し、満たす場合、前記鍵が有効化される、請求項4に記載のコンピューティングデバイス。
【請求項６】
前記関連付けられるメタデータが、使用ルールを含む、請求項5に記載のコンピューティングデバイス。
【請求項７】
前記使用ルールが、ハードウェア使用ルールおよびソフトウェア使用ルールを含む、請求項6に記載のコンピューティングデバイス。
【請求項８】
前記鍵が有効化される場合、前記鍵および前記関連付けられるメタデータが、鍵テーブルに書き込まれる、請求項5に記載のコンピューティングデバイス。
【請求項９】
前記暗号プロセッサが、前記複数のワードを書き込むための鍵入力ステートマシンを実装する、請求項1に記載のコンピューティングデバイス。
【請求項１０】
鍵を有効化するための方法であって、
鍵の第1の部分を含む第1のワードを書き込むステップと、
前記鍵の一部分をそれぞれが含む複数の後続のワードを書き込むステップと
を含み、
同じワードが2回以上書き込まれる場合、前記鍵がリセットされる、方法。
【請求項１１】
ワードが順序違いで書き込まれる場合、前記鍵がリセットされる、請求項10に記載の方法。
【請求項１２】
すでに有効な鍵に対してワードが書き込まれる場合、前記鍵がリセットされ、関連付けられるメタデータが無効化される、請求項10に記載の方法。
【請求項１３】
同じワードが2回以上書き込まれず、かつワードが順序違いで書き込まれていない場合、さらに、鍵有効化プロセスを実施するステップを含む、請求項11に記載の方法。
【請求項１４】
前記鍵有効化プロセスがさらに、前記鍵に関連付けられるメタデータがシステム権限を満たすかどうかを判定するステップと、満たす場合、前記鍵を有効化するステップとを含む、請求項13に記載の方法。
【請求項１５】
前記関連付けられるメタデータが、使用ルールを含む、請求項14に記載の方法。
【請求項１６】
前記使用ルールが、ハードウェア使用ルールおよびソフトウェア使用ルールを含む、請求項15に記載の方法。
【請求項１７】
前記鍵が有効化される場合、さらに、前記鍵および前記関連付けられるメタデータを鍵テーブルに書き込むステップを含む、請求項14に記載の方法。
【請求項１８】
暗号プロセッサによって実行されると、前記暗号プロセッサに、
鍵の第1の部分を含む第1のワードを書き込むことと、
前記鍵の一部分をそれぞれが含む複数の後続のワードを書き込むことと
を行わせるコードを含み、
同じワードが2回以上書き込まれる場合、前記鍵がリセットされる、
非一時的なコンピュータ可読媒体。
【請求項１９】
ワードが順序違いで書き込まれる場合、前記鍵がリセットされる、請求項18に記載のコンピュータ可読媒体。
【請求項２０】
同じワードが2回以上書き込まれず、かつワードが順序違いで書き込まれていない場合、鍵有効化プロセスを実施することを行うためのコードをさらに備える、請求項19に記載のコンピュータ可読媒体。
【請求項２１】
前記鍵有効化プロセスがさらに、前記鍵に関連付けられるメタデータがシステム権限を満たすかどうかを判定することと、満たす場合、前記鍵を有効化することとを行うためのコードを備える、請求項20に記載のコンピュータ可読媒体。
【請求項２２】
前記関連付けられるメタデータが、使用ルールを含む、請求項21に記載のコンピュータ可読媒体。
【請求項２３】
前記使用ルールが、ハードウェア使用ルールおよびソフトウェア使用ルールを含む、請求項22に記載のコンピュータ可読媒体。
【請求項２４】
前記鍵が有効化される場合、前記鍵および前記関連付けられるメタデータを鍵テーブルに書き込むことを行うためのコードをさらに備える、請求項21に記載のコンピュータ可読媒体。
【請求項２５】
鍵の第1の部分を含む第1のワードを書き込むための手段と、
前記鍵の一部分をそれぞれが含む複数の後続のワードを書き込むための手段と
を備え、
同じワードが2回以上書き込まれる場合、前記鍵がリセットされる
コンピューティングデバイス。
【請求項２６】
ワードが順序違いで書き込まれる場合、前記鍵がリセットされる、請求項25に記載のコンピューティングデバイス。
【請求項２７】
同じワードが2回以上書き込まれず、かつワードが順序違いで書き込まれていない場合に鍵有効化プロセスを実施するための手段をさらに備える、請求項26に記載のコンピューティングデバイス。
【請求項２８】
前記鍵に関連付けられるメタデータがシステム権限を満たすかどうかを判定し、満たす場合、前記鍵を有効化するための手段をさらに備える、請求項27に記載のコンピューティングデバイス。
【請求項２９】
前記関連付けられるメタデータが、使用ルールを含む、請求項28に記載のコンピューティングデバイス。
【請求項３０】
前記使用ルールが、ハードウェア使用ルールおよびソフトウェア使用ルールを含む、請求項29に記載のコンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、鍵の改ざんから保護するための装置および方法に関する。
【背景技術】
【０００２】
暗号プロセッサは、中央処理ユニット(CPU)の代わりに計算量の多い情報の符号化および復号を拡張言語に基づいて実施するコプロセッサであってもよいし、情報の符号化および復号のために専用ソフトウェアドライバによって実行される別個のハードウェア(たとえばアクセラレータプロセッサ)である暗号エンジンであってもよい。暗号プロセッサは、暗号化および解読用の鍵を記憶するために使用され得る。この情報は、典型的には書込み専用であり、すなわち、どんなもの(たとえばソフトウェアアプリケーション)もそれを読み取ることができず、その情報を書き込んだものでさえも、それを読み取ることはできない。
【０００３】
しかしながら、攻撃者が、鍵についての情報を収集するために鍵の一部を上書きしようと試みる場合がある。それに加えて、攻撃者が、鍵を用いて行えること、鍵を使用することのできる実行環境またはプロセス、および鍵とともに使用することの可能なドメインを定義する、鍵に関連付けられるメタデータを、変更しようと試みる場合もある。
【０００４】
残念なことに、これらのタイプの攻撃は、暗号プロセッサを利用するコンピューティングデバイスにとって極めて有害となるおそれがあり、厳しい罰金、契約の損失、製品ライン全体の廃止、ブランド価値の減少などの問題を引き起こすおそれがある。
【発明の概要】
【課題を解決するための手段】
【０００５】
本発明の態様は、鍵の改ざんから保護するための装置および方法に関し得る。コンピューティングデバイスが、鍵の第1の部分を含む第1のワードを書き込むことと、鍵の一部分をそれぞれが含む複数の後続のワードを書き込むこととを行うように構成された、暗号プロセッサを含み得る。同じワードが2回以上書き込まれる場合、鍵はリセットされ、有効化されない。
【図面の簡単な説明】
【０００６】
【図１】本発明の態様が実践され得るコンピューティングデバイスの図である。
【図２】鍵を有効化し、または有効化しないための暗号プロセッサを含む、コンピューティング環境の一例を示す図である。
【図３Ａ】鍵を有効化し、または有効化しないための方法の一例を示す流れ図である。
【図３Ｂ】別の実施形態による、鍵を有効化し、または有効化しないための方法の一例を示す流れ図である。
【図４】鍵を有効化し、または有効化しないための鍵入力ステートマシンプロセスを示す図である。
【発明を実施するための形態】
【０００７】
「例示的」または「例」という語は、本明細書では、「例、実例、または例示としての役割を果たすこと」を意味するために使用される。「例示的」または「例」として本明細書において説明するどんな態様または実施形態も、他の態様または実施形態に比べて、好ましいまたは有利であると必ずしも解釈すべきではない。
【０００８】
本明細書では、「コンピューティングシステムまたはデバイス」という用語は、限定はしないが、ラップトップおよびデスクトップコンピュータ、タブレット、スマートフォン、テレビ、家庭電化製品、セルラー電話、パーソナルテレビデバイス、携帯情報端末(PDA)、パームトップコンピュータ、ワイヤレス電子メールレシーバ、マルチメディアインターネット対応セルラー電話、グローバルポジショニングシステム(GPS)レシーバ、ワイヤレスゲームコントローラ、車両(たとえば自動車)に内蔵されるレシーバ、インタラクティブゲームデバイス、ノートブック、スマートブック、ネットブック、モバイルテレビデバイス、または任意のデータ処理装置を含む、任意の形態のプログラマブルコンピュータデバイスを指す。
【０００９】
以下に詳細に説明するように本発明の態様が実践され得る、鍵を有効化し、または有効化しないために利用され得るコンピューティングデバイス100の例を、図1に示す。コンピューティングデバイス100は、バス105を介して電気的に結合され得る(または必要に応じて他の方法で連通し得る)ハードウェア要素を備えて、示されている。ハードウェア要素は、限定はしないが、1つまたは複数の汎用プロセッサならびに/もしくは(デジタル信号処理チップ、グラフィックアクセラレーションプロセッサ、暗号プロセッサ、および/もしくは同類のものなどの)1つまたは複数の専用プロセッサを含む、1つまたは複数のプロセッサ110と、1つまたは複数の入力デバイス115(たとえばキーボード、キーパッド、タッチスクリーン、マウスなど)と、少なくともディスプレイデバイス121を含み、さらに、限定はしないが、スピーカ、プリンタ、ならびに/もしくは同類のものを含み得る、1つまたは複数の出力デバイス120とを含み得る。
【００１０】
コンピューティングデバイス100は、1つまたは複数の非一時的な記憶デバイス125をさらに含み得(かつ/またはそれと連通し得)、これは、限定はしないが、ローカルおよび/またはネットワークアクセス可能記憶装置を備え得、かつ/あるいは、限定はしないが、ディスクドライブ、ドライブアレイ、光記憶デバイス、プログラム可能、フラッシュ更新可能なランダムアクセスメモリ(「RAM」)および/もしくはリードオンリーメモリ(「ROM」)などの固体記憶デバイス、ならびに/または同類のものを含み得る。そのような記憶デバイスは、限定はしないが、様々なファイルシステム、データベース構造、および/または同類のものを含む、任意の適切なデータストアを実装するように構成され得る。
【００１１】
コンピューティングデバイス100は、通信サブシステム130も含み得、これは、限定はしないが、モデム、ネットワークカード(ワイヤレスもしくは有線)、赤外線通信デバイス、(ブルートゥース(登録商標)デバイス、802.11デバイス、Wi-Fiデバイス、WiMaxデバイス、セルラー通信デバイスなどの)ワイヤレス通信デバイスおよび/もしくはチップセット、ならびに/または同類のものを含み得る。通信サブシステム130は、データが、ネットワーク、他のコンピュータシステム、および/または本明細書において説明する他の任意のデバイスと交換されることを可能にし得る。多くの実施形態では、コンピューティングデバイス100は、上で説明したRAMまたはROMデバイスを含み得るワーキングメモリ135をさらに備える。さらに、コンピューティングデバイス100は、システムメモリ管理ユニット(SMMU)を含み得、これは、メモリ参照がそれに通されるコンピュータハードウェアユニットであり、アプリケーションを実施するために、仮想メモリアドレスの物理アドレスへの変換をするのに使用され得る。コンピューティングデバイス100は、オペレーティングシステム140、アプリケーション145、デバイスドライバ、実行可能ライブラリ、および/または他のコードを含む、ワーキングメモリ135内に現在位置するように示されているソフトウェア要素も備え得る。
【００１２】
単なる例として、下で論じる方法に関連して説明する1つまたは複数の手順は、コンピューティングデバイス(および/またはコンピューティングデバイス内のプロセッサ)によって実行可能なコードおよび/または命令として実装され得、一態様では、次いで、そのようなコードおよび/または命令が、本発明の実施形態による説明する方法に従って1つまたは複数の動作を実施するように汎用コンピュータ(たとえば、コンピューティングデバイス)を構成し、かつ/または適応させるために、使用され得る。1つの具体的な例として、以下により詳細に説明するように、暗号プロセッサは、鍵を有効化し、または有効化しないための本発明の実施形態を実施し得る。これらの命令および/またはコードのセットは、非一時的なコンピュータ可読記憶媒体に記憶され得る。場合によっては、記憶媒体は、コンピューティングデバイス100などのコンピュータデバイス内に組み込まれ得る。他の実施形態では、記憶媒体は、コンピュータシステムとは別(たとえば、コンパクトディスクなどの取外し可能媒体)とすることができ、かつ/または記憶媒体は、記憶媒体がそれに記憶された命令/コードで汎用コンピュータをプログラムし、構成し、かつ/もしくは適応させるために使用され得るような、インストールパッケージの形で提供され得る。これらの命令は、コンピュータ化されたコンピューティングデバイス100によって実行可能である実行可能コードの形態をとり得、かつ/または(たとえば、多様な一般に入手可能なコンパイラ、インストールプログラム、圧縮/解凍ユーティリティなどのいずれかを使用して)コンピューティングデバイス100上でコンパイルおよび/もしくはインストールすると、次いで実行可能コードの形態をとる、ソースコードおよび/もしくはインストール可能コードの形態をとり得る。
【００１３】
さらに、図1に具体的に示すように、コンピューティングデバイス100は、以下により詳細に説明するように鍵の改ざんから保護すべく鍵を有効化し、または有効化しないために利用され得る、暗号プロセッサ220を含み得る。暗号プロセッサ220は、中央処理ユニット(CPU)(たとえば110)または他のプロセッサの代わりに計算量の多い情報の符号化および復号を拡張言語に基づいて実施するコプロセッサとすることもでき、あるいは情報の符号化および復号のために専用のソフトウェアドライバによって実行される別個のハードウェア(たとえばアクセラレータプロセッサ)である、暗号エンジンとすることもできる。
【００１４】
図2を参照して、本発明の態様が実践され得る、鍵を有効化し、または有効化しないための暗号プロセッサ220を含むコンピューティングデバイス100によって実施可能なコンピューティング環境200の一例について、以下に説明する。暗号プロセッサ220は、CPU(または他のプロセッサ)の代わりに計算量の多い情報の符号化および復号を拡張言語に基づいて実施するコプロセッサとすることもでき、あるいは情報の符号化および復号のために専用ソフトウェアドライバによって実行される別個のハードウェア(たとえばアクセラレータプロセッサ)である、暗号エンジンとすることもできる。この例では、暗号プロセッサ220は暗号エンジンであり、以下に説明する例は、暗号エンジンによる実装の文脈におけるものである。しかしながら、当業者には明らかなはずであるように、これらの実装形態と同じものが、コプロセッサによって同様に実施され得る。この実装形態例では、データを暗号化および解読するための鍵を制御する様々な実行環境鍵オーナ(EE1〜EEN)202、204、206が、様々な実行環境データオーナ(EE1〜EEN)210、212、214と協調して動作する。鍵を利用する実行環境は、コンピューティングデバイスが入力および出力するデータをセキュアに通信し得る。具体的には、データは、暗号プロセッサ220の鍵テーブル224内の鍵225によって暗号化および解読され得る。暗号化されたデータまたは解読されたデータは、SMMU133を介して入力ドメイン240または出力ドメイン250に供給され得る。入力ドメイン240の例としては、オーディオデータ242、ハイレベルオペレーティングシステムデータ(HLOS)244、およびビデオデータ246があり、一方、同様に、出力ドメイン250の例としては、オーディオデータ252、ハイレベルオペレーティングシステムデータ(HLOS)254、およびビデオデータ256がある。これらは、単なるドメインの例であり、多くの異なるタイプのドメイン(たとえばエンタープライズ、モデムなど)が利用され得ることを理解されたい。その上、多くの異なるタイプの実行環境が利用され得、先に説明したものは例にすぎない。
【００１５】
一例として、実行環境1は、ビデオデータ用とすることができ、EE1鍵オーナ202およびEE1データオーナ1 210を含み得る。データオーナ210の入力ビデオデータ246は、出力ドメイン250内に表示され得るように、暗号プロセッサ220によって、鍵テーブル224内のEE1鍵オーナに関連付けられた鍵225を用いて解読される必要がある場合がある。この例では、暗号プロセッサ220は、鍵入力ステートマシン222(以下に説明する)および鍵テーブル224を含み得る。鍵テーブル224は、鍵(0〜N)225および関連付けられる使用ルール(たとえばハードウェア使用ルール227およびソフトウェア使用ルール229)を含み得る。ハードウェア使用ルール227およびソフトウェア使用ルール229は、メタデータ230と呼ばれることがあり、これはまた、利用され得るドメインを定義する。(鍵オーナおよびデータオーナを含む)各実行環境は、鍵テーブル224内に割り当てられたグループを有し得、このグループは、鍵225ならびにハードウェア使用ルール227およびソフトウェア使用ルール229を含み、それらのルールがさらに、実行環境に関連付けられるドメインを定義する。この例の説明を続けると、ビデオ実行環境(たとえば鍵オーナ202およびデータオーナ210)は、暗号化されたビデオデータ246が暗号プロセッサ220によって、鍵テーブル224のビデオ実行環境に対して関連付けられた鍵225を用いて解読されるように要求し得、それにより、ビデオデータ256が、表示できるように出力ドメイン250に出力され得る。これは、(データを暗号化または解読するために使用され得る)暗号プロセッサ220の動作の一例にすぎないこと、および多くの異なるタイプの実行環境、データタイプ、ドメインタイプなどが、暗号プロセッサとともに利用され得ることを理解されたい。
【００１６】
暗号プロセッサ220の鍵テーブル224内の鍵225はしばしば、実行環境によって更新および有効化される必要がある。たとえば、実行環境鍵オーナ202はしばしば、鍵が更新および有効化されるように要求する。鍵225が更新および有効化されるまで、実行環境データオーナ210のデータを暗号化または解読することはできない。しかしながら、攻撃者が鍵についてのデータを取得するのを防止するために、鍵はセキュアに更新および有効化される必要がある。
【００１７】
本発明の一実施形態によれば、暗号プロセッサ220は、鍵の第1の部分を含む第1のワードを書き込むことと、鍵の一部分をそれぞれが含む複数の後続のワードを書き込むこととを行うように構成され得、同じワードが2回以上書き込まれる場合、かつオプションで、ワードが順序違い(out of order)で書き込まれる場合、鍵はリセットされる。また、鍵の一部が書き込まれない場合、鍵を有効化することはできない。その上、すでに有効な鍵に対してワードが書き込まれる場合、鍵はリセットされ、関連付けられるメタデータが無効化される。たとえば、実行環境鍵オーナ202によって、更新鍵または新規鍵が要求され得る。同じワードが2回以上書き込まれず、かつオプションで、ワードが順序違いで書き込まれていない場合、暗号プロセッサ220は、鍵有効化プロセスを実施する。鍵有効化プロセスの一部として、暗号プロセッサ220は、鍵に関連付けられるメタデータ230がシステム権限を満たすかどうかを判定し、満たす場合、鍵は有効化される。先に説明したように、関連付けられるメタデータ230は、ハードウェア使用ルール227やソフトウェア使用ルール229などの使用ルールを含み得る。鍵が有効化される場合、鍵225および関連付けられるメタデータ230が、暗号プロセッサ220の鍵テーブル224に書き込まれる。鍵225は次いで、暗号プロセッサ220によって、データオーナ210からのデータを特定のドメイン内で使用できるように暗号化および解読するために利用され得る。一例として、関連付けられるメタデータ230(ハードウェア使用ルールおよびソフトウェア使用ルール)が、(たとえばビデオ処理に関する)システム権限を満たす場合、鍵225は、有効化され、鍵テーブル224にハードウェア使用ルール227およびソフトウェア使用ルール229とともに書き込まれ、それにより、実行環境データオーナ210が、暗号プロセッサ220を利用してビデオデータを暗号化および解読に用いることができるようになる。一例として、ビデオデータ246は、解読され、ディスプレイ上で見ることができるように出力ドメイン250に出力され得る。
【００１８】
さらに図3Aを参照すると、図3Aは、本発明の一実施形態による、鍵を有効化し、または有効化しないための方法プロセス300の一例を示す流れ図である。ブロック302において、鍵の第1の部分を含む第1のワードが書き込まれる。ブロック304において、鍵の一部分をそれぞれが含む複数の後続のワードが書き込まれる。次に、ブロック306において、プロセス300は、同じワードが2回以上書き込まれたかどうか、またはオプションで、ワードが順序違いで書き込まれたかどうかを判定する。そのように書き込まれた場合、ブロック310において、鍵はリセットされる(すなわち有効化されない)。そのように書き込まれていない場合、プロセス300は、鍵有効化に進む。鍵有効化の間、暗号プロセッサ220は、鍵に関連付けられるメタデータがシステム権限を満たすかどうかを判定し、満たす場合、鍵は有効化される。先に説明したように、関連付けられるメタデータは、ハードウェア使用ルールやソフトウェア使用ルールなどの使用ルールを含み得る。鍵が有効化される場合、鍵225および関連付けられるメタデータ230が、暗号プロセッサ220の鍵テーブル224に書き込まれる。このようにして、鍵225内のあらゆるビット、およびその関連付けられるメタデータ230が、ただ1回だけ書き込まれることが確実になり、ここで、すべてのビットが判断基準を満たさない場合、鍵225を使用することはできない。有効化されるとすると、鍵225は次いで、暗号プロセッサ220によって、データオーナ210からのデータを特定のドメインで使用できるように暗号化および解読するために利用され得る。
【００１９】
さらに図3Bを参照すると、図3Bは、本発明の一実施形態による、鍵を有効化し、または有効化しないための方法プロセス320の別の例を示す流れ図である。ブロック322において、鍵225またはメタデータ230に対して書込みが要求される。判定ブロック324において、プロセス320は、ワードがすでに有効な鍵に対して書き込まれつつあるかどうか、またはワードがすでに書き込まれたかどうかを判定し、書き込まれつつある、またはすでに書き込まれた場合、鍵はリセットされ(ブロック326)、プロセス320が再度開始する(ブロック322)。一方、ワードがすでに有効な鍵に対して書き込まれつつあるのではない、またはワードがまだ書き込まれていないと判定される場合、鍵はリセットされず、ワードが書き込まれる(ブロック328)。次に、判定ブロック330において、プロセス320は、ワードがすべて書き込まれたかどうかを判定し、書き込まれた場合、プロセスは鍵有効化に進む(ブロック332)。ワードがすべて書き込まれたのではない場合、プロセス320は、ブロック322に再び進む。
【００２０】
さらに図4を参照すると、図4は、本発明の一実施形態による、鍵を有効化し、または有効化しないための鍵入力ステートマシンプロセス400を示す。一実施形態では、暗号プロセッサ220によって実装される鍵入力ステートマシン222が、鍵入力ステートマシンプロセス400を実施し得る。一例として、実行環境鍵オーナ202によって、更新鍵要求または新規鍵要求が要求され得る。図4に見ることができるように、鍵入力ステートマシンプロセスは、ステップ402において開始し、ステップ402では、ステートが空であり、ステート値が0に設定される(V=0)。次に、鍵の第1のワード部分が書き込まれ(Wr(addr=1))、プロセス400がステート1 404に移動し、そこで値が1に設定される(V=1)。しかしながら、鍵の第1のワード部分が正しく書き込まれない場合(Wr(addr!=1))、鍵はリセットされ、プロセス400がステップ402に戻る。次に、鍵の第2のワード部分が書き込まれ(Wr(addr=2))、プロセス400がステート2 406に移動し、そこでステート値が2に設定される(V=2)。しかしながら、鍵の第2のワード部分が正しく書き込まれない場合(Wr(addr!=2))、鍵はリセットされ、プロセス400がステップ402に戻る。同様に、次に鍵の第3のワード部分が書き込まれ(Wr(addr=3))、プロセス400がステート3 408に移動し、そこでステート値が3に設定される(V=3)。しかしながら、鍵の第3のワード部分が正しく書き込まれない場合(Wr(addr!=3))、鍵はリセットされ、プロセス400がステップ402に戻る。このプロセスが、ステート10 420まで繰り返され、そこでドメインがチェックされる。
【００２１】
ステート420において、ドメインがチェックされる。先に説明したように、この鍵有効化プロセスの間、暗号プロセッサ220は、鍵に関連付けられるメタデータ(たとえばハードウェア使用ルールおよびソフトウェア使用ルール)がシステム権限およびドメインルールを満たすかどうかを判定する。システム権限が承認される場合、鍵はステップ430において有効化される。システム権限が承認されない場合、鍵はリセットされ、プロセス400がステップ402に戻る(たとえば線431参照)。また、有効な鍵に対して書き込もうとする企てなど、すでに有効な鍵(430)を変更しようとする企てが行われる場合、鍵は無効になり、鍵全体が再び書き込まれる必要がある(たとえば線432参照)。どんなサイズおよびどんなタイプのアルゴリズム(たとえばDES、F8、F9、AES、3DES、HMACなど)の、どんなタイプの鍵も、利用され得ることを理解されたい。
【００２２】
先に説明した鍵入力ステートマシンプロセス400を利用して、鍵およびそのメタデータを有効化することによって、鍵情報全体を正しい順序で書き込むことが確実になる。順序違いの書込みがあれば、または鍵の一部分が2回以上書き込まれると、ステートマシンプロセスが開始ステート402(V=0)に戻ることになる(たとえばリセットおよび無効)。
【００２３】
しかしながら、いくつかの実施形態では、順序違いのタイプの強制が必要ではないことを理解されたい。このタイプの実施形態では、書込みの順序は監視されない。そうではなく、唯一の要件は、ただ1回の書込み動作とすることができる。たとえば、暗号プロセッサ220によって、鍵の第1の部分を含む第1のワードが書き込まれ、鍵の一部分をそれぞれが含む複数の後続のワードが書き込まれる。暗号プロセッサ220は次いで、同じワードが2回以上書き込まれたかどうかを判定し、書き込まれた場合、鍵はリセットされる(すなわち有効化されない)。書き込まれていない場合、鍵有効化が行われる。この例では、書込みの順序は監視されないことを理解されたい。鍵有効化の間、暗号プロセッサ220は、鍵に関連付けられるメタデータがシステム権限を満たすかどうかを判定し、満たす場合、鍵は有効化される。先に説明した、図3A、図3B、および図4のプロセスは、暗号プロセッサ220、ならびに多種多様な類似のまたは異なるプロセスによって実施され得ることを理解されたい。先に説明した方法を利用することによって、攻撃者が鍵データの変更を、鍵データが書き込まれつつあるのと同時に試みようと企てる場合、その結果として、鍵入力ステートマシンプロセス400が鍵をリセットすることになる(ステート402)。さらに、書込みのシーケンスが完了すると、鍵およびメタデータは有効化プロセスにかけられ、そこでドメインがチェックされ(ステップ420)、ドメインが正確である場合、その場合に初めて、鍵が有効化され、鍵225として、関連付けられるメタデータ使用ルール230とともに、暗号プロセッサ220の鍵テーブル224に書き込まれる。その他の場合には、鍵は有効化されず、リセットされる。したがって、有効な鍵情報またはそのメタデータを変更しようとどのように企てても、鍵の無効化という結果になる。
【００２４】
様々なタイプの攻撃が防止され得ることを理解されたい。たとえば、防止され得る、あるタイプの攻撃は、(たとえば、図4の有効化ステップにおいて見られるように)鍵が書き込まれつつあり、かつまだ有効化されていない間に、鍵を変更しようとする企てである。このタイプの攻撃は、暗号プロセッサ220が同じワードが2回以上書き込まれたかどうかを判定し、書き込まれたと判定した場合、鍵がリセットされる(すなわち有効化されない)、というルールを強制することによって防止され得る。防止され得る、別のタイプの攻撃は、すでに有効な鍵を変更しようとする企てである。先に説明したように、暗号プロセッサ220が、すでに有効な鍵を変更しようとする企てが行われたと判定する場合、(たとえば図4のステップ430および線432によって分かるように)鍵は無効になり、リセットされ、再び書き込まれる必要がある。
【００２５】
これらのタイプの強制ルールは、鍵225とそのメタデータ230との間を密に結合させることを理解されたい。このようにして、鍵225およびその関連付けられるメタデータ230がひとまとめに更新されて、一層のセキュリティが得られる。これらのステップは、攻撃者が鍵についての情報を収集することを、極めて困難にしている。それに加えて、これらのステップは、攻撃者が鍵に関連付けられるメタデータを変更することも、極めて困難にしている。
【００２６】
したがって、暗号プロセッサ220が、鍵の一部分が順序正しく書き込まれており、かつ鍵の一部分が2回以上書き込まれないと判定し、かつ暗号プロセッサ220が、鍵に関連付けられるメタデータ(たとえばハードウェア使用ルールおよびソフトウェア使用ルール)がシステム権限を満たすと判定するとき、鍵は有効化される。ただし、先に説明したように、順序違いのタイプの強制はオプションである。さらに、先に説明したように、関連付けられるメタデータ230は、ハードウェア使用ルール227やソフトウェア使用ルール229などの使用ルールを含み得る。鍵が有効化される場合、鍵225および関関連付けられるメタデータ230が、暗号プロセッサ220の鍵テーブル224に書き込まれる。鍵225は次いで、暗号プロセッサ220によって、データオーナ210からのデータを特定のドメイン内で使用できるように暗号化および解読するために利用され得る。一例として、関連付けられるメタデータ230(ハードウェア使用ルールおよびソフトウェア使用ルール)が、(たとえばビデオ処理に関する)システム権限を満たす場合、鍵225は、有効化され、鍵テーブル224にハードウェア使用ルール227およびソフトウェア使用ルール229とともに書き込まれ、それにより、実行環境データオーナ210が、暗号プロセッサ220を利用してビデオデータを暗号化および解読に用いることができるようになる。一例として、ビデオデータ246は、解読され、ディスプレイ上で見ることができるように出力ドメイン250に出力され得る。
【００２７】
先に説明した本発明の態様は、先に説明したように、デバイス(たとえばコンピューティングデバイス100)のプロセッサ(たとえば暗号プロセッサ220)による命令の実行に関連して実施され得ることを理解されたい。具体的には、限定はしないがプロセッサを含む、デバイスの回路が、本発明の実施形態による方法またはプロセス(たとえば、図3〜図4のプロセスおよび機能)を実行するために、プログラム、ルーチンの制御下、または命令の実行下で動作し得る。たとえば、そのようなプログラムは、(たとえば、メモリおよび/または他のロケーションに記憶される)ファームウェアまたはソフトウェアの形で実装され得、デバイスのプロセッサおよび/または他の回路によって実施され得る。さらに、プロセッサ、マイクロプロセッサ、回路、コントローラなどという用語は、論理、コマンド、命令、ソフトウェア、ファームウェア、機能などを実行することの可能な、任意のタイプの論理または回路を指すことを理解されたい。
【００２８】
デバイスがモバイルデバイスまたはワイヤレスデバイスであるとき、それらは、任意の適切なワイヤレス通信技術に基づく、またはその他の方法で任意の適切なワイヤレス通信技術をサポートする1つまたは複数のワイヤレス通信リンクを介し、ワイヤレスネットワークを通じて通信し得ることを理解されたい。たとえば、いくつかの態様では、ワイヤレスデバイスおよび他のデバイスは、ワイヤレスネットワークを含むネットワークと関連し得る。いくつかの態様では、ネットワークは、ボディエリアネットワークまたはパーソナルエリアネットワーク(たとえば超広帯域ネットワーク)を備え得る。いくつかの態様では、ネットワークは、ローカルエリアネットワークまたはワイドエリアネットワークを備え得る。ワイヤレスデバイスは、たとえば3G、LTE、Advanced LTE、4G、CDMA、TDMA、OFDM、OFDMA、WiMAXおよびWiFiなどの、多様なワイヤレス通信技術、プロトコル、または標準規格のうちの1つまたは複数を、サポートしてもよく、その他の方法で使用してもよい。同様に、ワイヤレスデバイスは、多様な対応する変調方式または多重化方式のうちの1つまたは複数を、サポートしてもよく、その他の方法で使用してもよい。したがって、ワイヤレスデバイスは、上記のまたは他のワイヤレス通信技術を使用して、1つまたは複数のワイヤレス通信リンクを確立し、その通信リンクを介して通信するのに適した、構成要素(たとえばエアインターフェース)を含み得る。たとえば、デバイスは、ワイヤレス媒体を経由した通信を容易にする様々な構成要素(たとえば、信号発生器および信号プロセッサ)を含み得る、関連するトランスミッタ構成要素およびレシーバ構成要素(たとえば、トランスミッタおよびレシーバ)を有するワイヤレストランシーバを備え得る。よく知られているように、したがってモバイルワイヤレスデバイスは、他のモバイルデバイス、セル式電話、他の有線コンピュータおよびワイヤレスコンピュータ、インターネットウェブサイトなどと、ワイヤレスで通信し得る。
【００２９】
本明細書における教示は、多様な装置(たとえばデバイス)に組み込まれ(たとえば、それらの装置内に実装され、またはそれらの装置によって実施され)得る。たとえば、本明細書において教示した1つまたは複数の態様は、電話(たとえば、セルラー電話)、携帯情報端末(「PDA」)、タブレット、モバイルコンピュータ、ラップトップコンピュータ、エンターテインメントデバイス(たとえば、音楽デバイスもしくはビデオデバイス)、ヘッドセット(たとえば、ヘッドフォン、イヤピースなど)、医療デバイス(たとえば、生体センサ、心拍数モニタ、歩数計、EKGデバイスなど)、ユーザI/Oデバイス、コンピュータ、有線コンピュータ、固定コンピュータ、デスクトップコンピュータ、サーバ、店頭デバイス、セットトップボックス、または他の任意の適切なデバイスに組み込まれ得る。これらのデバイスは、異なる電力要件およびデータ要件を有する場合がある。
【００３０】
いくつかの態様では、ワイヤレスデバイスは、通信システム用のアクセスデバイス(たとえばWi-Fiアクセスポイント)を備え得る。そのようなアクセスデバイスは、たとえば、有線通信リンクまたはワイヤレス通信リンクを介した、別のネットワーク(たとえば、インターネットやセルラーネットワークなどのワイドエリアネットワーク)への接続性を提供し得る。したがって、アクセスデバイスは、別のデバイス(たとえばWiFiステーション)が他のネットワークまたは何らかの他の機能にアクセスできるようにし得る。
【００３１】
情報および信号は、多様な異なる技術および技法のいずれかを使用して表され得ることを、当業者なら理解されよう。たとえば、上記の説明全体を通して参照される場合があるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表され得る。
【００３２】
本明細書において開示した実施形態に関連して説明した、様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることを、当業者ならさらに理解するであろう。ハードウェアとソフトウェアのこの交換可能性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップについては上で、それらの機能の観点から一般に説明してきた。そのような機能が、ハードウェアとして実装されるか、それともソフトウェアとして実装されるかは、具体的な適用例およびシステム全体に課せられる設計制約によって決まる。当業者なら、説明した機能を、具体的な適用例ごとに様々な形で実装し得るが、そのような実装形態の決定は、本発明の範囲からの逸脱を生じさせるものと解釈すべきではない。
【００３３】
本明細書において開示した実施形態に関連して説明した、様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別のゲート論理回路もしくはトランジスタ論理回路、個別のハードウェア構成要素、または本明細書において説明した機能を実施するように設計されたそれらの任意の組合せを用いて、実装されてもよく、実施されてもよい。汎用プロセッサは、マイクロプロセッサとすることができるが、代替手段として、プロセッサは、任意の従来型のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンとすることもできる。プロセッサはまた、コンピューティングデバイスの組合せ、たとえばDSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、1つまたは複数のマイクロプロセッサとDSPコアとの併用、あるいは他の任意のそのような構成として、実装され得る。
【００３４】
本明細書において開示した実施形態に関連して説明した、方法またはアルゴリズムのステップは、直接ハードウェアの形で、プロセッサによって実行されるソフトウェアモジュールの形で、またはその2つの組合せの形で、具現化され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られる他の任意の形態の記憶媒体内に存在し得る。例示的な記憶媒体がプロセッサに、プロセッサが記憶媒体から情報を読み取り、またそこに情報を書き込み得るように結合される。代替手段として、記憶媒体は、プロセッサと一体をなしてもよい。プロセッサおよび記憶媒体は、ASIC内に存在し得る。ASICは、ユーザ端末内に存在し得る。代替手段として、プロセッサおよび記憶媒体は、ユーザ端末内に個別の構成要素として存在してもよい。
【００３５】
1つまたは複数の例示的な実施形態では、説明した機能が、ハードウェアの形、ソフトウェアの形、ファームウェアの形、またはそれらの任意の組合せの形で実装され得る。機能は、コンピュータプログラムプロダクトとしてのソフトウェアの形で実装される場合、1つまたは複数の命令またはコードとして、コンピュータ可読媒体に記憶されてもよく、コンピュータ可読媒体を経由して送信されてもよい。コンピュータ可読媒体は、コンピュータ記憶媒体と、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の入手可能な媒体とすることができる。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または命令もしくはデータ構造の形態をとる所望のプログラムコードを保持もしくは記憶するために使用され得、かつコンピュータによってアクセスされ得る、他の任意の媒体を備え得る。また、どんな接続も、厳密にはコンピュータ可読媒体と呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、マイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、マイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ディスク(disk)およびディスク(disc)は、本明細書では、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)、およびブルーレイディスク(disc)を含み、ただし、ディスク(disk)は通常、データを磁気的に再生し、一方ディスク(disc)は、レーザを用いてデータを光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【００３６】
開示した実施形態についての先の説明は、どんな当業者でも本発明を作製または使用できるようにするために提供されている。これらの実施形態に対する様々な変更形態が、当業者には容易に明らかとなり、本明細書において規定される一般原理は、本発明の趣旨または範囲から逸脱することなく他の実施形態に適用され得る。したがって、本発明は、本明細書において示した実施形態に限定されるものではなく、本明細書において開示した原理および新規な特徴に一致する最も広い範囲を与えられるべきである。
【符号の説明】
【００３７】
100  コンピューティングデバイス
105  バス
110  プロセッサ
115  入力デバイス
120  出力デバイス
121  ディスプレイデバイス
125  記憶デバイス
130  通信サブシステム
133  SMMU
135  ワーキングメモリ
140  オペレーティングシステム
145  アプリケーション
200  コンピューティング環境
202  実行環境鍵オーナ、EE1鍵オーナ
204  実行環境鍵オーナ
206  実行環境鍵オーナ
210  実行環境データオーナ、EE1データオーナ1
212  実行環境データオーナ
214  実行環境データオーナ
220  暗号プロセッサ
222  鍵入力ステートマシン
224  鍵テーブル
225  鍵(0〜N)
227  ハードウェア使用ルール
229  ソフトウェア使用ルール
230  メタデータ、メタデータ使用ルール
240  入力ドメイン
242  オーディオデータ
244  ハイレベルオペレーティングシステムデータ(HLOS)
246  入力ビデオデータ
250  出力ドメイン
252  オーディオデータ
254  ハイレベルオペレーティングシステムデータ(HLOS)
256  ビデオデータ
300  方法プロセス
320  方法プロセス
400  鍵入力ステートマシンプロセス
【図１】
2017510184.tif 000003
【図２】
2017510184.tif 000004
【図３Ａ】
2017510184.tif 000005
【図３Ｂ】
2017510184.tif 000006
【図４】
2017510184.tif 000007
【手続補正書】
【提出日】平成28年9月21日(2016.9.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
暗号プロセッサを備えるコンピューティングデバイスであって、
前記暗号プロセッサが、
鍵の第1の部分を含む第1のワードを書き込むことと、
前記鍵の一部分をそれぞれが含む複数の後続のワードを書き込むことと
を行うように構成され、
同じワードが2回以上書き込まれる場合、前記鍵がリセットされ、
ワードが順序違いで書き込まれる場合、前記鍵がリセットされる、コンピューティングデバイス。
【請求項２】
すでに有効な鍵に対してワードが書き込まれる場合、前記鍵がリセットされ、関連付けられるメタデータが無効化される、請求項1に記載のコンピューティングデバイス。
【請求項３】
同じワードが2回以上書き込まれず、かつワードが順序違いで書き込まれていない場合、前記暗号プロセッサが鍵有効化プロセスを実施する、請求項1に記載のコンピューティングデバイス。
【請求項４】
前記鍵有効化プロセスにおいて、前記暗号プロセッサが、前記鍵に関連付けられるメタデータがシステム権限を満たすかどうかを判定し、満たす場合、前記鍵が有効化される、請求項3に記載のコンピューティングデバイス。
【請求項５】
前記関連付けられるメタデータが、使用ルールを含む、請求項4に記載のコンピューティングデバイス。
【請求項６】
前記使用ルールが、ハードウェア使用ルールおよびソフトウェア使用ルールを含む、請求項5に記載のコンピューティングデバイス。
【請求項７】
前記鍵が有効化される場合、前記鍵および前記関連付けられるメタデータが、鍵テーブルに書き込まれる、請求項4に記載のコンピューティングデバイス。
【請求項８】
前記暗号プロセッサが、前記複数のワードを書き込むための鍵入力ステートマシンを実装する、請求項1に記載のコンピューティングデバイス。
【請求項９】
鍵を有効化するための方法であって、
鍵の第1の部分を含む第1のワードを書き込むステップと、
前記鍵の一部分をそれぞれが含む複数の後続のワードを書き込むステップと
を含み、
同じワードが2回以上書き込まれる場合、前記鍵がリセットされ、
ワードが順序違いで書き込まれる場合、前記鍵がリセットされる、方法。
【請求項１０】
すでに有効な鍵に対してワードが書き込まれる場合、前記鍵がリセットされ、関連付けられるメタデータが無効化される、請求項9に記載の方法。
【請求項１１】
同じワードが2回以上書き込まれず、かつワードが順序違いで書き込まれていない場合、さらに、鍵有効化プロセスを実施するステップを含む、請求項9に記載の方法。
【請求項１２】
前記鍵有効化プロセスがさらに、前記鍵に関連付けられるメタデータがシステム権限を満たすかどうかを判定するステップと、満たす場合、前記鍵を有効化するステップとを含む、請求項11に記載の方法。
【請求項１３】
前記関連付けられるメタデータが、使用ルールを含む、請求項12に記載の方法。
【請求項１４】
前記使用ルールが、ハードウェア使用ルールおよびソフトウェア使用ルールを含む、請求項13に記載の方法。
【請求項１５】
前記鍵が有効化される場合、さらに、前記鍵および前記関連付けられるメタデータを鍵テーブルに書き込むステップを含む、請求項12に記載の方法。
【請求項１６】
暗号プロセッサによって実行されると、前記暗号プロセッサに、
鍵の第1の部分を含む第1のワードを書き込むことと、
前記鍵の一部分をそれぞれが含む複数の後続のワードを書き込むことと
を行わせるコードを含み、
同じワードが2回以上書き込まれる場合、前記鍵がリセットされ、
ワードが順序違いで書き込まれる場合、前記鍵がリセットされる、非一時的なコンピュータ可読媒体。
【請求項１７】
同じワードが2回以上書き込まれず、かつワードが順序違いで書き込まれていない場合、鍵有効化プロセスを実施することを行うためのコードをさらに備える、請求項16に記載のコンピュータ可読媒体。
【請求項１８】
前記鍵有効化プロセスがさらに、前記鍵に関連付けられるメタデータがシステム権限を満たすかどうかを判定することと、満たす場合、前記鍵を有効化することとを行うためのコードを備える、請求項17に記載のコンピュータ可読媒体。
【請求項１９】
前記関連付けられるメタデータが、使用ルールを含む、請求項18に記載のコンピュータ可読媒体。
【請求項２０】
前記使用ルールが、ハードウェア使用ルールおよびソフトウェア使用ルールを含む、請求項19に記載のコンピュータ可読媒体。
【請求項２１】
前記鍵が有効化される場合、前記鍵および前記関連付けられるメタデータを鍵テーブルに書き込むことを行うためのコードをさらに備える、請求項18に記載のコンピュータ可読媒体。
【請求項２２】
鍵の第1の部分を含む第1のワードを書き込むための手段と、
前記鍵の一部分をそれぞれが含む複数の後続のワードを書き込むための手段と
を備え、
同じワードが2回以上書き込まれる場合、前記鍵がリセットされ、
ワードが順序違いで書き込まれる場合、前記鍵がリセットされる、コンピューティングデバイス。
【請求項２３】
同じワードが2回以上書き込まれず、かつワードが順序違いで書き込まれていない場合に鍵有効化プロセスを実施するための手段をさらに備える、請求項22に記載のコンピューティングデバイス。
【請求項２４】
前記鍵に関連付けられるメタデータがシステム権限を満たすかどうかを判定し、満たす場合、前記鍵を有効化するための手段をさらに備える、請求項23に記載のコンピューティングデバイス。
【請求項２５】
前記関連付けられるメタデータが、使用ルールを含む、請求項24に記載のコンピューティングデバイス。
【請求項２６】
前記使用ルールが、ハードウェア使用ルールおよびソフトウェア使用ルールを含む、請求項25に記載のコンピューティングデバイス。
【国際調査報告】
2017510184.tif 000008