【手続補正書】
【提出日】平成26年10月20日(2014.10.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プログラムコードまたはデータのセキュアな実行環境を提供するための方法であって、
前記コードまたはデータの機密性を認証および維持するために、コードを暗号化フォーマットでホストプロセッサからセキュア資産管理ユニット（ＳＡＭＵ）にオフロードするステップと、
前記コードが、前記ＳＡＭＵの外部消費向けであるか内部消費向けであるかを判定するステップと、
前記コードが前記ＳＡＭＵの外部消費向けである場合に、機密データの高度暗号化標準（ＡＥＳ）を適用するステップと、
前記コードが前記ＳＡＭＵ内の消費向けである場合に、命令キャッシュまたはデータキャッシュ内へのメモリ読み出し動作において、変調したＡＥＳ復号化を実行し、前記命令キャッシュまたは前記データキャッシュのラインがフラッシュしているときのメモリ書き込み動作において、変調したＡＥＳ暗号化を実行するステップであって、前記変調したＡＥＳ暗号化および前記変調したＡＥＳ復号化は、標準ＡＥＳ動作の前後においてハードウェア内の専用スクランブリングを用いて変調されているステップと、
を含む、方法。
【請求項２】
前記オフロードするステップは、前記ＳＡＭＵによって用いられる署名ツールにおいて生成されたランダム鍵によって、暗号化２値ブートイメージを生成するステップを含む、請求項１に記載の方法。
【請求項３】
前記暗号化２値ブートイメージは、前記ＳＡＭＵのために暗号化され、前記ＳＡＭＵ用のセキュアなカーネルおよびセキュアなアプリケーションとして提供される、請求項２に記載の方法。
【請求項４】
ユーザは、前記暗号化２値ブートイメージをインストールし、前記暗号化２値ブートイメージをオンデマンドで前記ＳＡＭＵに提供する、請求項３に記載の方法。
【請求項５】
前記暗号化２値ブートイメージをインテグリティについて有効化した後に、前記ＳＡＭＵと共に用いられる復号化鍵を、ブートリードオンリーメモリ（ＲＯＭ）を用いて構成するステップ、
をさらに含む、請求項４に記載の方法。
【請求項６】
前記ＳＡＭＵと共に用いられる復号化鍵を、前記ブートＲＯＭによって生成するステップと、
肯定的な有効化に応じて、前記暗号化２値ブートイメージに制御を送るステップと、
をさらに含む、請求項５に記載の方法。
【請求項７】
有効化が否定的な場合に応じてＳＡＭＵサービスがさらされず、前記アプリケーションはソフトウェアベースの保護スキームに戻る、請求項５に記載の方法。
【請求項８】
プログラムコードまたはデータのためのセキュアな実行環境を提供するためのシステムであって、
コードを含む少なくとも１つのアプリケーションをホストプロセッサ上で実行するように構成されたコンピュータと、
プログラムコードを実行するように構成されたセキュアな資産管理ユニット（ＳＡＭＵ）であって、前記ＳＡＭＵは、前記コンピュータに接続されており、コードを、暗号化されたフォーマットで前記ホストプロセッサからオフロードして、前記コードの機密性を認証および維持するように構成されている、セキュアな資産管理ユニット（ＳＡＭＵ）と、
を含み、
前記ＳＡＭＵは、
命令キャッシュと、
データキャッシュと、
メモリインターフェースと、
前記メモリインターフェース、前記命令キャッシュおよび前記データキャッシュに接続されたメモリ暗号化コンポーネントであって、前記コードが前記セキュアな実行環境内のみの消費向けである場合に、前記命令キャッシュまたは前記データキャッシュ内へのメモリ読み出し動作において、変調したＡＥＳ復号化を実行し、前記命令キャッシュまたは前記データキャッシュのラインがフラッシュしているときのメモリ書き込み動作において、変調したＡＥＳ暗号化を実行するように構成されたメモリ暗号化コンポーネントと、を備え、
前記変調したＡＥＳ暗号化および前記変調したＡＥＳ復号化は、標準ＡＥＳ動作の前後においてハードウェア内の専用スクランブリングを用いて変調されている、
システム。
【請求項９】
前記ＳＡＭＵは、前記オフロードすることの一部として、ＳＡＭＵによって使用される署名ツールにおいて生成されたランダム鍵によって、暗号化２値ブートイメージを生成するようにさらに構成されている、請求項８に記載のシステム。
【請求項１０】
前記暗号化２値ブートイメージは、前記ＳＡＭＵのために暗号化され、ＳＡＭＵのためのセキュアなカーネルおよびセキュアなアプリケーションとして提供される、請求項９に記載のシステム。
【請求項１１】
ユーザは、前記暗号化２値ブートイメージを前記システム上にインストールし、前記暗号化２値ブートイメージを前記ＳＡＭＵへオンデマンドで提供する、請求項１０に記載のシステム。
【請求項１２】
前記ＳＡＭＵは、前記暗号化２値ブートイメージをインテグリティについて有効化した後、前記ＳＡＭＵと共に用いられる復号化鍵をブートリードオンリーメモリ（ＲＯＭ）を用いて構成するようにさらに構成されている、請求項１１に記載のシステム。
【請求項１３】
前記ブートＲＯＭは、前記ＳＡＭＵと共に用いられる復号化鍵の生成と、肯定的な有効化に応じて前記暗号化２値ブートイメージへの制御送りとを行うようにさらに構成されている、請求項１２に記載のシステム。
【請求項１４】
有効化が否定的な場合に応じてＳＡＭＵサービスはさらされず、前記アプリケーションは認証のためにソフトウェアベースの保護スキームに後退する、請求項１２に記載のシステム。
【請求項１５】
１つ以上のプロセッサによって実行される１組の命令を記憶するコンピュータ可読記憶媒体であって、前記１組の命令は、セキュアな資産管理ユニット（ＳＡＭＵ）の製造を容易にするためのものであり、前記ＳＡＭＵは、
プログラムコードを実行することと、
機密プログラムコードを暗号化フォーマットでプロセッサからオフロードして、前記機密プログラムコードの機密性を認証および維持することと、
前記機密プログラムコードが、前記ＳＡＭＵの外部消費向けであるか内部消費向けであるかを判定し、前記機密プログラムコードがセキュアな実行環境内のみの消費向けである場合に、命令キャッシュまたはデータキャッシュ内へのメモリ読み出し動作において、変調したＡＥＳ復号化を実行し、前記命令キャッシュまたは前記データキャッシュのラインがフラッシュしているときのメモリ書き込み動作において、変調したＡＥＳ暗号化を実行することと、
を行うように構成されており、
前記変調したＡＥＳ暗号化および前記変調したＡＥＳ復号化は、標準ＡＥＳ動作の前後においてハードウェア内の専用スクランブリングを用いて変調されている
コンピュータ可読記憶媒体。
【請求項１６】
前記命令はハードウェア記述言語（ＨＤＬ）命令であり、デバイスの製造に用いられる、請求項１５に記載のコンピュータ可読記憶媒体。
【請求項１７】
メモリ管理ユニットのハードウェアレジスタに記憶され、前記ＳＡＭＵのプロセッサコアにのみアクセス可能な仮想アドレスページテーブルを用いるステップであって、前記セキュアなカーネルの機密プログラムコードがユーザコードまたはデータを保護する暗号鍵と独立した鍵で保護されるように、異なるページ入力が異なる暗号鍵と関連付けられており、読み出しおよび書き込み制御がページごとに定義されている、ステップと、
前記ページへの読み出しまたは書き込みアクセスが許可される前に、コード実行中の最小保護リングを指定するステップと、
をさらに含む、請求項３に記載の方法。
【請求項１８】
前記メモリ暗号化コンポーネントは、暗号化フラグに応じてオン・オフされる、請求項１に記載の方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２０
【補正方法】変更
【補正の内容】
【００２０】
ブートＲＯＭ１１０は、シリコン形態においてブートコードを実行して、デバッグ管理の実行と、所与のカーネルのインテグリティの確認と、メモリＡＥＳの設定とを実行した後、（インテグリティ確認を通過した）カーネルへ制御を送るように構成される。ここで、埋設プロセッサは、リセット状態から起動して、ブートコードを実行するように構成される。上記ブートコードは、ｅフューズ技術に基づいてデバッギング機能を構成または再構成するようにさらに構成される（例えば、全デバッグ機能の生成側へのアクセスを無効にするか、またはｅフューズパターンへのアクセスを無効にする。上記ｅフューズパターンは、製造時においてチップ上へのエッチングまたはハードコーディングコンピュータ論理を用いて注入されるため、チップ製造後は変更不可能となる）。上記ブートコードはまた、ＳＡＭＵ１０４カーネルの初期化を待機するようにさらに構成される。ここで、ＳＡＭＵドライバは、セキュアなカーネル１８５をロード対象として提示する。上記ブートコードはまた、インテグリティ照合器（ＩＶ）ハードウェア１６０を用いて、所与のイメージのインテグリティを有効化するようにさらに構成される。ＩＶハードウェア１６０は、所与のイメージからのハッシュコードを生成し、上記ハッシュコードと、上記イメージに取り付けられたハッシュコードとを比較するように構成され得る。上記生成されたハッシュコードと、上記取り付けられたハッシュコードとが整合した場合、ＩＶハードウェア１６０はＰＡＳＳレポートを提供し、そうではない場合、失敗を報告する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２６
【補正方法】変更
【補正の内容】
【００２６】
さらなるセキュリティを提供するための別の実施形態において、署名ツールによって各コードイメージを暗号化およびハッシュする。署名時において、暗号鍵をランダム生成する（プロセスのこの部分は、ベンダーまたはサードパーティソフトウェアプロバイダにおいて行われる）。セキュアなカーネル１８５のための復号化鍵をブートＲＯＭ１１０中のブートコードによって計算および回復する。さらに、インテグリティ確認を、ＩＶ１６０によって（暗号化バージョンで）適用し、その後実行対象のイメージが受容される。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００４７
【補正方法】変更
【補正の内容】
【００４７】
上記ブートストラップコードは、セキュアな保存部中に暗号化された態様で保存され、最終チップと共に提供される。上記ブートストラップコードは、ブート時間において主に以下の３つのサービスを提供する：チップ製造のためのデバッギングの無効、ＳＡＭＵドライバから提供されたカーネルイメージのインテグリティの確認、および所与のカーネルのために復号化鍵のコンピューティングを行った後、上記カーネルへ制御を送ること。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００４８
【補正方法】変更
【補正の内容】
【００４８】
復号化鍵は、ブートプロセスの一部として計算され、カーネルイメージのインテグリティの照合が成功した後のみに用いられる。上記復号化鍵は、以下の複数の入力の関数である：（例えば、チップ製造後に変更ができないように、チップへのエッチングまたはコンピュータ論理のハードコーディングを含む）製造時において注入されたｅフューズパターン、（署名されたカーネルイメージの一部として保存された）カーネル２値署名において生成されたランダムパターン、およびブート時において上記ＳＡＭＵドライバから提供されたソフトウェアパラメータ。カーネル復号化鍵のコンピューティングにおいては、シリコン（例えば、秘密乗算器、ＤＳＰブロック、プロセッサ、高速ＩＯ論理、および埋設メモリ）に埋設された秘密機能へのアクセスも行われる。