(57)【要約】【課題】  統合システムのためのアクセス制御機能を提供する。  【解決手段】  システム内の要求元マスタのマスタＩＤおよびデータのアドレスに基づいてデータ・アクセスを決定する。アクセス制御機能は、例えば、バス制御論理と１つ以上のスレーブとの間のデータ転送経路内に挿入することができる。データに対するアクセスを許可するか否かを決定することに加えて、アクセス制御機能は、データの要求を開始する特定の機能マスタのデータ認証レベルに依存して、データの暗号化および復号を選択的に実施することによって、更にアクセスを限定することができる。
2005523519.tif 000002
【特許請求の範囲】
【請求項１】
複数のマスタＩＤを有する複数の機能マスタを有する統合システムのためのデータ・アクセス方法であって、
前記複数の機能マスタの要求元マスタからデータの要求を受信するステップと、
前記要求に応答して、前記要求元マスタのマスタＩＤおよび前記データのアドレスに基づいて、前記データに対するアクセスを許可するか、拒否するか、または限定するかを決定するステップと、
を備える、方法。
【請求項２】
前記要求は、前記統合システムのバス制御論理から受信した許可されたマスタ要求を含み、前記方法は、前記統合システムのバス制御論理と少なくとも１つのスレーブとの間のデータ・フローにおいて実施される、請求項１に記載の方法。
【請求項３】
前記複数の機能マスタに異なるレベルのデータ・アクセスを提供するステップを更に備える、請求項１に記載の方法。
【請求項４】
前記決定するステップは、前記要求元マスタについてのデータ・アクセス・レベルを決定するステップと、前記データに対するアクセスを許可するか、拒否するか、または限定するかを決定する際に、前記データ・アクセス・レベルを用いるステップと、を更に備える、請求項３に記載の方法。
【請求項５】
前記決定するステップは、前記要求が読み取り要求か書き込み要求かを決定し、読み取り要求の場合、データに対するアクセスを拒否するか、データを普通文で渡すか、またはデータを復号するかを決定し、書き込み要求の場合、データの転送を拒否するか、データを普通文で渡すか、またはデータを暗号化するかを決定するステップを更に備える、請求項４に記載の方法。
【請求項６】
前記決定するステップは、前記要求が読み取り要求か書き込み要求かを決定し、アクセスが許可される場合、読み取り要求の場合はデータを復号するか否か、書き込み要求の場合はデータを暗号化するか否かを決定するステップを更に備え、前記決定は部分的に前記要求元マスタのマスタＩＤに基づく、請求項１に記載の方法。
【請求項７】
前記決定するステップは、要求元バス・マスタのマスタＩＤおよびデータのアドレスに基づいてデータに対するアクセスを許可するか否かを決定する際にデータ・アクセス・テーブルを用いるステップを備え、前記データ・アクセス・テーブルは前記要求元バス・マスタについてのアクセス・レベルを含む、請求項６に記載の方法。
【請求項８】
データを復号または暗号化する際に用いるアクセス・テーブル・パラメータを決定するステップを更に備え、前記アクセス・テーブル・パラメータは、キー集合ポインタ、バージョン・ナンバー、およびホワイトニング・アドレスを含む、請求項７に記載の方法。
【請求項９】
前記キー集合ポインタはキー集合を指し示し、前記キー集合は、キー値、暗号化／復号パラメータ、およびホワイトニング変数を含み、前記キー値および前記ホワイトニング変数は、前記キー集合に関連した全てのデータに用いられる機密ナンバーである、請求項８に記載の方法。
【請求項１０】
要求が書き込み要求である場合、データに対して暗号化プロセスを選択的に実行するステップを更に備え、前記暗号化プロセスは、普通文の書き込みデータにホワイトニングを実行するステップと、ホワイトニングの結果を暗号化するステップと、暗号化した結果を更にホワイトニングするステップとを備え、更に、前記要求が読み取り要求である場合、暗号化読み取りデータに対して復号プロセスを選択的に実行するステップを備え、前記復号プロセスは、前記暗号化読み取りデータのホワイトニングを解除するステップと、ホワイトニング解除の結果を復号するステップと、復号した結果を更にホワイトニング解除して、要求元マスタに転送するための普通文データを得るステップとを含む、請求項８に記載の方法。
【請求項１１】
前記ホワイトニングおよびホワイトニング解除のステップは、ホワイトニング値を得るステップを備え、前記ホワイトニング値を得るステップは、前記アクセス・テーブル・パラメータのホワイトニング・アドレス、バージョン・ナンバー、およびホワイトニング変数を結合してホワイトニング値を得るステップを備える、請求項１０に記載の方法。
【請求項１２】
前記結合するステップは、ホワイトニング値のサイズをデータのブロック・サイズに一致させるステップを備える、請求項１１に記載の方法。
【請求項１３】
前記統合システムのバス間ブリッジ内で前記方法を実施するステップを更に備え、前記要求元マスタは、前記統合システムの第１のバスに結合され、前記バス間ブリッジを介して少なくとも１つのスレーブと通信を行い、前記少なくとも１つのスレーブは第２のバスを介して前記バス間ブリッジに結合されている、請求項１に記載の方法。
【請求項１４】
前記統合システムのメモリ・サブシステム内で前記方法を実施するステップを更に備え、前記データは、オープンな揮発性メモリ、機密揮発性メモリ、オープンな不揮発性メモリ、または機密不揮発性メモリの少なくとも１つに存在する、請求項１に記載の方法。
【請求項１５】
複数のマスタＩＤを有する複数の機能マスタを有する統合システムのためのデータ・アクセス・システムであって、
前記複数の機能マスタの要求元マスタからデータの要求を受信するための手段と、
前記受信するための手段による前記要求の受信に応答して、前記要求元マスタのマスタＩＤおよび前記データのアドレスに基づいて、前記データに対するアクセスを許可するか、拒否するか、または限定するかを決定するための手段と、
を備える、システム。
【請求項１６】
前記要求は、前記統合システムのバス制御論理から受信した許可されたマスタ要求を備え、前記システムは、前記統合システムのバス制御論理と少なくとも１つのスレーブとの間のデータ・フローにおいて実施される、請求項１５に記載のシステム。
【請求項１７】
前記複数の機能マスタに異なるレベルのデータ・アクセスを提供するための手段を更に備える、請求項１５に記載のシステム。
【請求項１８】
前記決定するための手段は、前記要求元マスタについてのデータ・アクセス・レベルを決定するための手段と、データに対するアクセスを許可するか、拒否するか、または限定するかを決定する際に、前記データ・アクセス・レベルを用いるための手段と、を更に備える、請求項１７に記載のシステム。
【請求項１９】
前記用いるための手段は、要求が読み取り要求か書き込み要求かを決定し、読み取り要求の場合、データに対するアクセスを拒否するか、データを普通文で渡すか、またはデータを復号するかを決定し、書き込み要求の場合、データの転送を拒否するか、データを普通文で渡すか、またはデータを暗号化するかを決定するための手段を更に備える、請求項１８に記載のシステム。
【請求項２０】
前記決定するための手段は、要求が読み取り要求か書き込み要求かを決定し、アクセスが許可される場合、読み取り要求の場合はデータを復号するか否か、書き込み要求の場合はデータを暗号化するか否かを決定するための手段を更に備え、前記決定は部分的に前記要求元マスタのマスタＩＤに基づく、請求項１５に記載のシステム。
【請求項２１】
前記決定するための手段は、前記要求元バス・マスタのマスタＩＤおよびデータのアドレスに基づいて前記データに対するアクセスを許可するか否かを決定する際にデータ・アクセス・テーブルを用いるための手段を備え、前記データ・アクセス・テーブルは前記要求元バス・マスタについてのアクセス・レベルを含む、請求項２０に記載のシステム。
【請求項２２】
データを復号または暗号化する際に用いるアクセス・テーブル・パラメータを決定するための手段を更に備え、前記アクセス・テーブル・パラメータは、キー集合ポインタ、バージョン・ナンバー、およびホワイトニング・アドレスを含む、請求項２１に記載のシステム。
【請求項２３】
前記キー集合ポインタはキー集合を指し示し、前記キー集合は、キー値、暗号化／復号パラメータ、およびホワイトニング変数を備え、前記キー値および前記ホワイトニング変数は、前記キー集合に関連した全てのデータに用いられる機密ナンバーである、請求項２２に記載のシステム。
【請求項２４】
要求が書き込み要求である場合、データに対して暗号化プロセスを選択的に実行するための手段を更に備え、前記暗号化プロセスは、普通文の書き込みデータにホワイトニングを実行するステップと、前記ホワイトニングの結果を暗号化するステップと、暗号化した結果を更にホワイトニングするステップとを備え、更に、要求が読み取り要求である場合、暗号化読み取りデータに対して復号プロセスを選択的に実行するための手段を備え、前記復号プロセスは、前記暗号化読み取りデータのホワイトニングを解除するステップと、ホワイトニング解除の結果を復号するステップと、復号した結果を更にホワイトニング解除して、前記要求元マスタに転送するための普通文データを得るステップとを含む、請求項２２に記載のシステム。
【請求項２５】
ホワイトニング値を得るための手段を更に備え、前記ホワイトニング値を得るための手段は、前記アクセス・テーブル・パラメータのホワイトニング・アドレス、バージョン・ナンバー、およびホワイトニング変数を結合してホワイトニング値を得るための手段を備える、請求項２４に記載のシステム。
【請求項２６】
前記結合するための手段は、ホワイトニング値のサイズをデータのブロック・サイズに一致させるための手段を備える、請求項２５に記載のシステム。
【請求項２７】
前記システムは前記統合システムのバス間ブリッジ内で実施され、前記要求元マスタは、前記統合システムの第１のバスに結合され、前記バス間ブリッジを介して少なくとも１つのスレーブと通信を行い、前記少なくとも１つのスレーブは第２のバスを介して前記バス間ブリッジに結合されている、請求項１５に記載のシステム。
【請求項２８】
前記システムは前記統合システムのメモリ・サブシステム内で実施され、データは、オープンな揮発性メモリ、機密揮発性メモリ、オープンな不揮発性メモリ、または機密不揮発性メモリの少なくとも１つに存在する、請求項１５に記載のシステム。
【請求項２９】
機械によって読み取り可能で、前記機械によって実行可能な命令の少なくとも１つのプログラムを明確に具現化して、複数のマスタＩＤを有する複数の機能マスタを有する統合システムのためのデータ・アクセス方法を実行する少なくとも１つのプログラム・ストレージ・デバイスであって、前記方法は、
前記複数の機能マスタの要求元マスタからデータの要求を受信するステップと、
前記要求に応答して、前記要求元マスタのマスタＩＤおよび前記データのアドレスに基づいて、前記データに対するアクセスを許可するか、拒否するか、または限定するかを決定するステップと、
を備える、プログラム・ストレージ・デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、統合システム内でのデータ要求処理およびデータ転送に関し、更に具体的には、統合システム内で要求元マスタのマスタＩＤおよびデータのアドレスに基づいて、データ・アクセスを許可、拒否、または限定する、統合システムのためのアクセス制御機能に関する。
【背景技術】
【０００２】
今日、一般的に、複数の機能が単一のシステム・チップ上に統合されている。複数の個別のコンポーネントを単一のチップ上に統合するためのアーキテクチャを最初に規定する場合、メモリを含む外部デバイスに対するアクセスが問題となり得る。例えば、ＭＰＥＧビデオ・デコーダ・システムは、多くの場合、様々なデータ・エリアのための外部メモリ、またはフレーム・バッファなどのバッファを用いる。この外部メモリは、従来、ＤＲＡＭまたはＳＤＲＡＭ技術のいずれかを用いて実施されている。
【０００３】
当技術分野において、オフ・チップ・デバイスにアクセスするために、２つの手法が通常用いられている。第１の手法では、各オン・チップ機能ユニットは、この特定のユニットに専用のデータ・バスを介して、必要な外部デバイスに対してアクセスする。この手法は、局所的には外部デバイスを効率的にアクセスするが、統合システム内でグローバルに最適とは言えない。例えば、各機能はそれ自身の外部メモリ・エリアに完全なアクセスを有するが、統合システムの機能間ではアクセスを共有しない。このため、多くの場合、システムのあるメモリ・エリアから別のメモリ・エリアへのデータ転送が必要である。これは、明らかに、データ転送の数を増し、共有メモリ・システムに比べてシステム全体の性能を低下させる場合がある。
【０００４】
別の手法は、統合システム内で単一の共通バスを用い、これによってシステムの１つ以上の機能ユニットは単一のポートを介して外部デバイスと通信を行うことができる。メモリ等のリソースの共有は可能であるが、この手法に伴う１つの欠点は、統合システムにおけるコンテンツまたは他の機密データに対するアクセスの制御に関する。例えば、統合設計において大きな共通メモリ・プールを用いる場合、転送デマルチプレクサによってセット・トップ・ボックスのデコーダに供給される圧縮データ等、保護されたメモリ空間に対する不正アクセスを防ぐことが難しくなる。これは、特に、プログラミング・インタフェースがオープンであり、外部開発が推奨されるシステムに当てはまる。機能マスタの各々はメモリ空間にアクセスすることが可能でなければならず、アクセスが信頼性のあるマスタからであるか、または外部要求、例えば信頼できないまたはオープン・マスタを介して来たものかを区別することができない。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述のことに鑑み、当技術分野において、統合システムのための改善したアクセス制御手法に対する要望がある。更に具体的には、機能マスタおよびスレーブ・デバイス間に存在し、アクセスを更に限定する（例えばデータ暗号化およびデータ復号を導入する）ことができる、または場合によっては防止することができるアクセス制御機能に対する要望がある。
【課題を解決するための手段】
【０００６】
複数の機能マスタを有する統合システムのためのデータ・アクセス方法を提供することによって、従来技術の欠点は克服され、追加の利点が提供される。この複数の機能マスタは、複数のマスタＩＤを有する。この方法は、複数の機能マスタのうち要求元マスタからのデータの要求を受信するステップと、この要求に応答して、要求元マスタのマスタＩＤおよびデータのアドレスに基づいて、データに対するアクセスを許可、拒否、または限定するか否かを決定するステップと、を含む。
【０００７】
改善した態様では、この方法は、複数の機能マスタに異なるレベルのデータ・アクセスを提供するステップと、要求が読み取り要求か書き込み要求かを決定するステップとを含む。要求が読み取り要求である場合、この方法は、データに対するアクセスを拒否するか、データを普通文で渡すか、またはデータを復号するかを決定するステップを含むことができる。要求が書き込み要求である場合、この方法は、データの転送を拒否するか、データを普通文で渡すか、またはデータを暗号化するかを決定するステップを含むことができる。一実施形態では、要求は、統合システムのバス制御論理から受信した許可されたマスタ要求であり、この方法は、統合システムのバス制御論理と少なくとも１つのスレーブとの間のデータ・フローにおいて実施される。更に具体的には、この方法は、統合システムのバス間ブリッジ内または統合システムの機密メモリ・サブシステム内等で実施することができる。
【０００８】
また、本明細書中で、上述の方法に対応するシステムおよびコンピュータ・プログラム・プロダクトについて説明し、特許を請求する。
【０００９】
好都合なことに、ここで提供されるのは、統合システム内でデータ・アクセスを限定するためのアクセス制御機能である。制御機能は、特にシステムが機能マスタとスレーブ・デバイスとの間の共通バス構造を用いる場合、統合システムの機能マスタとスレーブ・デバイスとの間のデータ・フロー内に存在することができる。制御機能は、例えば、要求元マスタのマスタＩＤおよび要求されたデータのアドレスに基づいて、アクセスを許可するか、拒否するか、または更に限定することができる。この制御手法は、機能に基づいてメモリをオープン・スペースおよび機密スペースに分離する１つの方法として、データに対する（例えば異なるメモリ領域に対する）異なる機能アクセスを選択的に可能とする能力を提供する。更に、制御機能は、データをメモリに送信する際に、データ・ブロックを暗号化するための技法を提供する。これによって、単にデータのブロックを他のメモリ位置または他のデバイスに再配置することによって、システムのセキュリティが損なわれることを防ぐ。
【００１０】
本発明の技法によって、更に別の機能および利点が実現される。本発明の他の実施形態および態様は、本明細書で詳細に説明され、特許請求される本発明の一部と見なされる。
【００１１】
本発明として見なされる主題は、具体的に、特許請求の範囲に示され、明確に特許請求される。本発明の前述およびその他の目的、機能、および利点は、添付図面に関連付けた以下の詳細な説明から明らかになる。
【発明を実施するための最良の形態】
【００１２】
図１は、複数の内部機能マスタ１１０1、１１０2、１１０3、・・・１１０nを有する従来の統合デバイスを、全体的に１００で示す。マスタ１１０1は、プロセッサとして図示し、プロセッサ・コア１１２およびメモリ管理ユニット１１４を有する。内部マスタ１１０1、１１０2、１１０3、・・・１１０nは、この例では、共有バスのバス制御論理１３０を含むメモリ・サブシステム１２０に接続する。バス制御１３０は、メモリ・サブシステム内に図示するが、代替的にサブシステム１２０の外側に存在することも可能であることは、当業者には理解されるであろう。
【００１３】
バス制御ユニット１３０は、統合デバイスにおいてスレーブに対する要求を調整し整理する。例えば、第１のスレーブは、外部バス・コントローラ１４０でもよく、これは、オープン・メモリ部１５５を有するフラッシュ・メモリ等の外部不揮発性メモリ１５０に接続されている。第２のスレーブであるメモリ・コントローラ１６０は、ＳＤＲＡＭまたはＤＲＡＭ等の外部揮発性メモリ１７０に接続する。メモリ１７０は、オープン・メモリ部１７５を含む。一般に、メモリ・コストを最小限に抑えるため、更に機能間のデータ転送を容易にするために、機能は、この統合設計において共通のメモリ・プールを共有する。このため、全ての内部マスタは、不揮発性メモリおよび揮発性メモリの双方に対して等しいアクセスを有し、双方のストレージ空間はオープンと示され、これはデータ・アクセスに制限が加えられないことを意味する。
【００１４】
通常、不揮発性メモリは永続的なストレージのために用いられ、電源を切ってもデータは保持されなければならない。このメモリは、ブート・コード、オペレーティング・システムおよびドライバ等のオペレーティング・コード、ならびに任意の永続データ構造を含み得る。揮発性メモリは、セッション指向ストレージのために用いられ、一般に、アプリケーション・データおよび他のマスタのデータ構造を含む。揮発性メモリは不揮発性メモリよりも高速であるので、統合デバイスが動作している場合、オペレーティング・コードを揮発性メモリに移動させ、そこから命令を実行するのが一般的である。
【００１５】
図２は、図１のバス制御ユニット１３０によって用いられるようなバス制御アーキテクチャを示す。このアーキテクチャによって、複数の機能マスタ１１０1、・・・１１０nは、共通の共有バスを介して、複数のスレーブ２００1、・・・２００nと通信を行うことができる。このバス・アーキテクチャの一例は、ニューヨーク州アーモンクのInternationalBusiness Machines Corporationによって販売されるCoreConnectアーキテクチャのプロセッサ・ローカル・バス（ＰＬＢ）である。
【００１６】
アーキテクチャ内のマスタは、各々、一意のマスタＩＤを有し、これは、バス制御機能２１０のアービタ２２０に送信される要求信号の一部を構成する。複数の要求を提示する場合、アービタ２２０は、適切なマスタを（バス優先度に基づいて）選択し、そのマスタに承認を送り返す。また、アービタ２２０は、許可された要求を、追加の必要情報すなわちデータ・アドレス情報および制御情報と共に、スレーブに伝搬する。一例として、制御情報は、データがマスタからスレーブに書き込まれるか、またはスレーブからマスタに読み取られるかを示す読み取り／書き込み制御信号を含み得る。データ・アドレス信号はマルチプレクサ２３０を通過し、一方、制御信号はマルチプレクサ２４０を通過するが、その双方はバス制御ユニット２１０内に図示されている。同様に、書き込まれるデータは、マスタからスレーブに、マルチプレクサ２５０を介して渡され、スレーブを介して読み取られるデータは、バス制御２１０内のマルチプレクサ２６０を介して、マスタに戻される。更に、マルチプレクサ２７０は、マスタに戻すスレーブからの制御信号を多重化する。これらの制御信号は、例えば、ステータスまたは承認信号を含み得る。アドレスに基づいて許可されたマスタ要求の宛先とされるスレーブは、従来のように、適切な情報でマスタに応答する。
【００１７】
更なる背景として、図３は、図１に示すマスタ１１０1等のプロセッサ・マスタのためのメモリ管理ユニット１１４の一例を示す。ユニット１１４は、プロセッサ・マスタのプロセッサ・コアからバーチャル・アドレス要求を受信する。プロセッサは、一般に、所与の時点で、別個のコード・スレッドとしていくつかのプロセスを実行することができ、バーチャル・アドレスを用いることによって外部要求を分離し、それにより各プロセスをそれ自身の隔離されたメモリ空間において実行することができる。しかしながら、実際には、全てのプログラムは共通のアドレス空間を用いるので、要求をバス制御ユニットに提示する前にアドレスをリマップしなければならない。このリマップは、メモリ管理ユニット１１４によって実行される。
【００１８】
図３に示すように、バーチャル・アドレス要求の上位アドレス・ビットは、最初に、オペレーティング・システムによって構成されたテーブルに対して比較される。このテーブルには、可能な上位アドレス・ビットの組み合わせまたはタグ値、次いで、上位アドレス・ビットを置換するために用いられる置換アドレスがリストされている。各エントリごとに、ページ・サイズまたはリマップ領域のサイズ、および規定のプロセスについて可能であるアクセスのタイプも示す。また、これは、要求をキャッシュに格納可能か等、他の属性もリストすることができる。これらのパラメータは、制御情報として、バス制御ユニットに対する要求と共に送信される。
【００１９】
図１ないし３に提示したような典型的なシステムでは、いくつかのセキュリティのリスクがあることに留意すべきである。すなわち、
・プロセッサの挙動は、オペレーティング・コードまたはデータ構造を変更することによって制御される可能性があり、内部データまたは動作が悪影響を受ける場合がある。
・場合によっては、通信コントローラ等、内部マスタは、外部ソースによって制御される可能性があり、メモリを共有しているので、これを用いて内部コードまたはデータに悪影響を与える場合がある。
・ソフトウエア開発において用いられるデバッグおよび開発ツールを用いて、プロセッサの挙動を変更または監視することができる。
・メモリを共有しているので、所与のマスタは、別の内部マスタの動作を意図せずに損なうかまたは悪影響を及ぼす場合がある。
【００２０】
ここで提示する上述のセキュリティ・リスクに対する解決策は、バス制御とスレーブ・デバイスとの間のデータ経路内に配置したアクセス制御機能を提供することを伴う。このアクセス制御機能は、（一実施形態では）機能マスタをスレーブ・デバイスに接続する内部バスの特性を用いて、安全な制御情報集合に基づいて、アクセスのための各要求を更に限定することができ、所望の場合には防止することができる。好都合なことに、このアクセス制御機能は、マスタがデータ要求を行い、データを格納するアクセスを区別する能力を提供し、次いで、それに従ってアクセスを許可もしくは制限し、またはアクセスを限定する。
【００２１】
図４は、本発明の態様に従った、アクセス制御機能４４０を含むシステムの一実施形態を全体として４００で示す。システム４００は、この場合も、複数の機能マスタ４１０1、・・・４１０nを含み、これらは、バス制御４３０を介して、１つ以上のスレーブ４２０1・・・４２０nと通信を行う。しかしながら、この場合、アクセス制御機能４４０は、バス制御４３０とスレーブ４２０1・・・４２０nとの間のデータ経路に介在する。また、図２からのバス制御アーキテクチャの信号の簡略化図も示す。
【００２２】
バス制御ユニットにより制御を許可されたマスタからの要求は、要求されたアドレスおよび関連する制御（読み取りまたは書き込み等）とともに、アクセス制御機能４４０に送信される。ユニット４４０は、アクセス・テーブル４５０を用いて、要求されたアドレス、マスタＩＤ、読み取りまたは書き込みインジケータを、そのマスタに許可されたアクセス機能の定義と比較する。所与の要求は、ブロックされる（終了される）か、普通文で許可されるか、または暗号化／復号によって許可されるかのいずれかとすることができる。要求された転送が許可可能である場合、バス信号をスレーブに伝搬し、アクセス・テーブルに基づいて要求に関連したアクセス・パラメータ４６０を、暗号化／復号エンジン４７０に送信する。すなわち、暗号化／復号が適用可能である場合である。暗号化／復号エンジンを用いて、データを所与のスレーブに転送する際に書き込みデータを暗号化し、または、以下で更に説明するように、関連アクセス・パラメータを用いて所与のスレーブからデータを戻す際に、読み取りデータを復号することができる。
【００２３】
図５は、図４のアクセス制御機能４４０によって使用可能なアクセス・テーブル４５０の１つの詳細な例を示す。図２のメモリ管理ユニットと同様であるが、目的は異なり、バス制御ユニットからの許可された要求について実アドレスの上位アドレス・ビットを、許可可能なエントリまたはタグのリストと比較する。各タグごとに、可能な置換アドレス、置換アドレスに対するリマッピングが可能であるか否か、タグに関連するセグメントのサイズ、および全エントリを有効と見なせるか否か等、追加の情報または属性がリストされている。更に、所与のテーブル・エントリは、読み取りまたは書き込み権限をマスタＩＤ番号でリストする別のルックアップ・テーブルを指し示す。この機構を用いて、バス制御ユニットからの所与の要求を、規定の上位アドレス、マスタＩＤ、および読み取りまたは書き込みインジケータにと比較することにより、その要求のアクセス・レベルに達する。更に、テーブル比較の結果に基づいて、その要求を、アクセス・パラメータ集合に関連付けることができる。
【００２４】
図６は、アクセス制御ユニットによって規定することができるこれらのアクセス・パラメータ４６０の一例を示す。所与の要求について、以下のパラメータを暗号化／復号ユニット４７０（図４）に渡すことができる。
・任意の暗号動作のために用いられるキー集合のインデクス・ナンバーを含むキー集合ポインタ４６１。キー集合の数は、一般に、テーブル・エントリの数よりもはるかに少ないので、いくつかのエントリは所与のキー集合を共有する場合があることに留意すべきである。
・任意に規定した値であって、同じメモリを用いて暗号化コードまたはデータの所与のブロックを以前のものから区別するために用いられるバージョン・ナンバー４６２。バージョン・ナンバーは、暗号プロセスの一部として用いられる（以下で更に説明するように）ので、新しいバージョン・ナンバーに変更すると、以前のナンバーに基づいた領域の古いコンテンツの復号はうまくいかない。これを用いて、データ・ブロックを保護または使用不可能とすることができる。
・暗号ホワイトニング（以下で説明する）におけるパラメータとして用いられるホワイトニング・アドレス４６３。このアドレスは、スレーブに提示される外部アドレスと異なるものであっても、同じものであってもよい。状況によっては、所与のアドレスにデータ・ブロックを送信できると好都合であるが、データ・ブロックは別個のアドレスに暗号的に結合されるので、後にこれを読み取る場合、規定の別個のアドレスに再配置することができる。
【００２５】
アクセス・パラメータのキー集合ポインタ４６１は、図６に示すような所与のキー集合を示し、この構造は以下のように規定することができる。
・暗号プロセスで用いるキー（複数でもよい）４６５。これらは、セッションを通して用いられる永続キーまたは所与のセッションについてのみ用いられる動的キーとすることができる。
・暗号アルゴリズムがどのように動作するかを規定するアルゴリズム・パラメータ４６６。これらのパラメータの例には、アルゴリズムの強度、更には特定のアルゴリズム選択が挙げられる。
・所与のデバイスのために特に規定されるシークレット・ナンバーであるホワイトニング変数４６７。これは、他のデバイスへのコードおよびデータの再配置、ならびに、外部アドレス空間内での全体的な再配置の複雑化を防ぐ。
【００２６】
ホワイトニングは、パターン依存性を除去する手段として暗号化されるデータに変数を追加する方法であり、例えば、Ｃ．Ｊｕｔｒａによる、「Encryption Modes With Almost Free Message Integrity」と題する論文、Proc. Eurocrypt2001、５２９〜５４４ページ、ＬＮＣＳ２０４５に記載されている。図７は、暗号化／復号プロセス４７０（図４）において、ホワイトニングのために用いる変数をどのように発生可能であるかの一例を示す。この例では、３つのパラメータを数学的に組み合わせて、好ましくは処理中のデータ・ブロック・サイズと同じビット長である最終的な値を生成する。これらのパラメータは、アクセス・パラメータ（図６）に規定されるようなホワイトニング・アドレス４６３およびバージョン・ナンバー４６２、ならびに、キー集合（図６）に規定されるようなホワイトニング変数４６７である。結果として得られるホワイトニング値はアドレス依存型であり、これは、バージョン・ナンバーによる、時間依存型のカスタム化を提供する。
【００２７】
図８は、本発明の一態様に従った、アクセス制御機能の暗号化／復号ユニット４７０の動作の一例を示す。図示のように、アクセス・パラメータによって３つのパラメータがユニット４７０に渡される。これらのパラメータは、例えば図７のプロセスによって規定されたホワイトニング値、キー集合からのキー（複数でもよい）４６５（図６）、およびアルゴリズム・パラメータ４６６（図６）を含む。これらのパラメータをまとめて用いて、暗号化または復号機能の動作を制御する。
【００２８】
書き込み動作では、バス・マスタからの普通文の書き込みデータが暗号化／復号ユニットに入り、最初に、第１の動作（４７１）においてホワイトニング値と結合され、次いで暗号化され（４７２）、そして最後に再びホワイトニング値と２回目の結合をされる（４７３）。次いで、暗号化された書き込みデータは、バス・スレーブに提示される。データと混合するためホワイトニング値を用いる暗号プロセスは、当業者によって容易に実施することができる。
【００２９】
読み取り動作では、読み取りデータがバス・スレーブから暗号化／復号ユニットに入り、書き込みデータとは逆の方法で処理される。すなわち、書き込みおよび読み取りプロセスは対称的である。更に具体的には、最初にホワイトニング値を用いて、暗号化読み取りデータを混合解除し（４７４）、その後、復号を行い（４７５）、その復号に続いて（４７６）、復号プロセスの間、暗号化の層は単に逆にされる。
【００３０】
図９および１０は、ここで開示するようなアクセス制御機能を用いた例示的なシステムを示す。最初に図９を参照すると、機密ブリッジ９３０内に、統合デバイス９００の内部バス制御９２０と内部バス制御９５０との間に、アクセス制御ユニット９４０が示されている。図示のように、第１のバス９２５に対する複数のマスタ９１０1、９１０2、９１０3、・・・９１０nは、共通バス制御９２０によって結合される要求を有する。次いで、調整された要求はスレーブに渡される。その１つは通常のスレーブ・ユニット９１５nであり、他のものは、アクセス制御ユニット９４０を含む機密ブリッジ９３０のスレーブ・インタフェースである。アクセス制御ユニットは、要求が許可可能であるか否かを決定し、許可可能である場合、バス２  ９５５上のそのマスタ・インタフェースを用いて、マスタとして要求を再生成する。機密ブリッジに加えて、バス２上の別個のマスタ９６５nも図示している。バス２  ９５５のバス制御ユニット９５０は、２つのマスタ間を調整し、図示のように、許可された要求を、スレーブ９６０1、９６０2、９６０3、・・・９６０nに選択的に転送する。
【００３１】
この実施において、マスタ９１０1、９１０2、９１０3、・・・９１０nは、アクセス制御ユニットを呼び出すことなく、バス１  ９２５上のスレーブ９１５nに要求を送信可能であることに留意すべきである。同じことは、バス２  ９５５上のマスタ９６５nおよびスレーブ９６０1、９６０2、９６０3、・・・９６０nにも当てはまる。しかしながら、２つのバス間のいかなる要求も、機密ブリッジ９３０のアクセス制御ユニット９４０によって支配される。
【００３２】
図１０は、本発明の原理に従ったアクセス制御機能を用いた統合デバイス１０００の代替的な例を示す。この実施では、アクセス制御機能１０４０は、バス制御ユニット１０３０とスレーブ・デバイス１０５０および１０７０との間に挿入され、それらは全て、機密メモリ・サブシステム１０２０内に示されている。代替的な実施形態として、バス制御ユニット１０３０は、機密メモリ・サブシステム・ユニットの外部にあることができる。スレーブが、外部バス・コントローラ１０５０およびメモリ・コントローラ１０７０として明示的に図示されている点で、この図は図４の実施形態を拡張したものである。この状況において、バス制御ユニット、アクセス制御ユニット、および外部コントローラの組み合わせが、機密メモリ・サブシステム１０２０を形成する。この結果、不揮発性メモリ１０６０および揮発性メモリ１０８０として規定される外部アドレス空間は、オープン・エリア１０６２および機密エリア１０６４、ならびにオープン・エリア１０８２および機密エリア１０８４にそれぞれ更に分割することができる。この使用において、「機密（セキュア）」というのは、マスタ１０１０1、１０１０2、１０２０3、・・・１０１０nが、アクセス制御ユニット１０４０において規定されるような空間にのみアクセス可能であることを意味する。
【００３３】
更に別の変形として、先に論じた暗号化および復号機能を、セット・トップ・ボックス設計等に一般的に統合されるもののようなＤＭＡコントローラに含ませることができる。そうすると、各転送によって遅延が加わるようなアクセス制御クロス・バーから暗号化および復号論理が除去される。ＤＭＡコントローラは、あるロケーションから別のロケーションにデータ・ブロックを移動するようにホスト・プロセッサによってプログラムされ得る。これは、メモリ間転送を含む。統合システムはメモリを保護するように規定され、マスタ１は読み取り保護メモリにのみアクセスし、マスタ２は書き込み保護メモリにアクセスすると仮定する。また、この例では、マスタ２がアクセスする必要がある普通文データが保護されたメモリにあるが、そのデータは暗号化しなければならない（すなわち、マスタ２はスクランブルされたデータのみを見ることができる）と仮定する。ＤＭＡコントローラは、保護されたメモリからオープン・メモリにデータを移動し、次いで所与のブロック例えば６４バイトの転送を開始するようにプログラムすることができる。このブロックはバーストで読み取られ、内部でバッファされ、次いでバーストで書き込まれる。設計においてセットアップされた内部バス構造コーディングに従って保護メモリを読み取ることは許されているが、この場合、ＤＭＡコントローラ内に暗号化エンジンが含まれる。ＤＭＡコントローラは、各ブロックをバーストでオープン・メモリに書き込む前に、宛先アドレス・パラメータに基づいて、各ブロックを自動的に暗号化する。このように、あるロケーションから別のロケーションへと転送しながら、全ての暗号化および復号をＤＭＡコントローラにバッファされたデータ上で実行可能であるが、読み取りおよび書き込みは別個のバス動作であるので、作業が実行されている間バスは機能停止されない。この手法は、上述のように、普通文データの可視性を選択したマスタに制限する機能を維持する。
【００３４】
当業者は、上述の考察から、ここで提示する制御技法は、機能マスタがメモリ要求を行っているアクセスを区別し、次いで機密制御情報集合に基づいてアクセスを許可または制限する機能を提供することを認識するであろう。提供される制御機能は、どの機能マスタがアクセスを要求しているかを区別し、データ・アクセス・テーブルに含まれる情報に基づいてそのアクセスを限定する。制御機能は、機能マスタを例えばメモリ・コントローラまたは他のスレーブ・デバイスに接続する共有内部バスの特徴を用いて、各アクセスを更に限定し、場合によっては防止することができる。
【００３５】
本発明は、例えばコンピュータ可用媒体を有する製造物（例えば１つ以上のコンピュータ・プログラム・プロダクト）に含ませることができる。この媒体は、例えば、本発明の機能を提供し容易にするコンピュータ可読プログラム・コード手段を具現化している。製造物は、コンピュータ・システムの一部として含ませるか、または別個に販売することができる。
【００３６】
更に、機械によって読み取り可能で、機械によって実行可能な命令の少なくとも１つのプログラムを明確に具現化して本発明の機能を実行する少なくとも１つのプログラム・ストレージ・デバイスを提供することができる。
【００３７】
ここで示したフロー図は、単なる例である。本発明の精神から逸脱することなく、ここに記載したこれらの図またはステップ（または動作）に多くの変更を行うことができる。例えば、ステップを異なる順序で実行可能であり、または、ステップを、追加、削除、もしくは変更することができる。これらの変形は全て、特許請求する本発明の一部として見なされる。
【００３８】
好適な実施形態について本明細書で詳細に図示し記載したが、本発明の精神から逸脱することなく、様々な変更、追加、置換等を実行可能であり、従って、これらは、特許請求の範囲に規定される本発明の範囲内にあると見なされることは、当業者には明らかであろう。
【図面の簡単な説明】
【００３９】
【図１】メモリ・サブシステムを介した共通メモリ・アクセスを用いた典型的な統合デバイスの一例を示す。
【図２】統合システム内でマスタＩＤを用いる一例を示し、マスタＩＤはバス制御アービタによって用いられてバス・アクセスを許可または拒否する。
【図３】例えば図１の統合デバイス例においてマスタ＃１によって用いられる典型的なメモリ管理ユニット機能の一例を示す。
【図４】本発明の一態様による、データ・アクセス制御機能を用いた統合デバイスの一例を示す。
【図５】本発明の一態様による、図４のデータ・アクセス制御機能が用いるアクセス・テーブルの一例を示す。
【図６】本発明の一態様による、例えば図４のデータ・アクセス制御機能の暗号化／復号サブ機能が用いる図５のアクセス・テーブルから得たアクセス・パラメータの一例を示す。
【図７】本発明の一態様による、ホワイトニング値を導出するための手法の一例を示す。
【図８】本発明の一態様による、転送データを選択的に暗号化および復号する際のアクセス・パラメータおよびホワイトニング値の使用の一例を示す。
【図９】本発明の一態様による、統合デバイスのバス間ブリッジ内で実施されるアクセス制御機能の一実施形態を示す。
【図１０】本発明の一態様による、統合デバイスの機密メモリ・サブシステム内で実施されるアクセス制御機能の別の実施形態を示す。
【図１】
2005523519.tif 000003
【図２】
2005523519.tif 000004
【図３】
2005523519.tif 000005
【図４】
2005523519.tif 000006
【図５】
2005523519.tif 000007
【図６】
2005523519.tif 000008
【図７】
2005523519.tif 000009
【図８】
2005523519.tif 000010
【図９】
2005523519.tif 000011
【図１０】
2005523519.tif 000012
【国際調査報告】
2005523519.tif 000013
2005523519.tif 000014