JP2004007603A - グラフィックシステムのコンポーネント認証方法およびシステム - Google Patents

グラフィックシステムのコンポーネント認証方法およびシステム Download PDF

Info

Publication number
JP2004007603A
JP2004007603A JP2003114938A JP2003114938A JP2004007603A JP 2004007603 A JP2004007603 A JP 2004007603A JP 2003114938 A JP2003114938 A JP 2003114938A JP 2003114938 A JP2003114938 A JP 2003114938A JP 2004007603 A JP2004007603 A JP 2004007603A
Authority
JP
Japan
Prior art keywords
graphics card
key
cryptographic processor
graphics
session key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2003114938A
Other languages
English (en)
Other versions
JP4807925B2 (ja
Inventor
Paul England
ポール イングランド
Marcus Peinado
マーカス ペイナード
Nicholas P Wilt
ニコラス ピー.ウィルト
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2004007603A publication Critical patent/JP2004007603A/ja
Application granted granted Critical
Publication of JP4807925B2 publication Critical patent/JP4807925B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)
  • Image Generation (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Collating Specific Patterns (AREA)

Abstract

【課題】信頼されるグラフィックシステムの使用との関連でコンポーネントを認証する方法およびシステムを提供する。
【解決手段】グラフィックスパイプラインを通じて送られる内容を暗号によりセキュアにするシステムとの関連でグラフィックスカードを認証する技術が提供され、アプリケーションまたはデバイスは、そのアプリケーションまたはデバイスが信頼されるグラフィックスプラットフォームの信頼されるユーザであることを信頼されるグラフィックスプラットフォームに示すことができ、またグラフィックスプラットフォームは、そのグラフィックスプラットフォームが信頼されるアプリケーションまたはデバイスによって信頼できることをそのアプリケーションまたはデバイスに伝えることができる。
【選択図】    図3A

Description

【0001】
【発明の属する技術分野】
著作権表示および許可
この特許明細書の開示の一部には、著作権保護の対象となる題材が含まれる可能性がある。著作権所有者は、米国特許商標庁の特許ファイルまたは記録に記載される本特許文書または特許開示のいずれの者による複製には異議を持たないが、その他の点ではすべての著作権を保有する。次の表示をこの文書に適用するものとする。Copyright(C)2001、Microsoft Corp.
本発明は、信頼されるグラフィックシステムの使用との関連でコンポーネントを認証する方法およびシステムに関する。より詳細には、本発明は、グラフィックスパイプラインを通じて送られる内容を暗号によりセキュアにするシステムとの関連でグラフィックスカードを認証する技術に関する。
【0002】
【従来の技術】
現在インターネットおよびその他多数のソースとアプリケーションにより、聴く、見る、処理する、記憶する、およびその他の形でレンダリングするための膨大なストリーミング媒体および固定媒体、あるいはその他のコンテンツが提供されている。しかし現在のところ、コンテンツの処理中かまたはコンテンツのレンダリング中にパイプラインのいずれかの時点で、著作権侵害者がストリームに侵入してコピーを入手する、あるいはコンテンツを変更することができないように、ストリーミング媒体や固定媒体、あるいはコンテンツをコピープロテクトされた方法で取り込む、記録する、あるいはレンダリングする実用的な方法は存在しない。この問題は過去にも例えばテレビ内容のためのVCR、音声信号用のテープレコーダなど他の媒体レンダリング装置や記録装置との関連で存在したが、少なくとも1つの大きな違いがある。デジタル媒体の内容は実質的に信号を損失させることなく記録できるため、著作権所有者にとっては自分の作品が代償なしに自由に配布される(無断使用される)という「リスク」が生じる。VCRやテープレコーダの場合は、装置や伝送媒体によって記録工程で雑音やデータの破損が生じる。ストリーミング媒体または固定デジタル媒体の場合には、少なくとも人間の耳と目の能力の限界までは実質的に損失のない変換と再伝送を行えない理由はなく、また質の低下がないデジタルデータを記憶し、自由に配布できない理由もない。したがって、著作権所有者がある料金で提供できるものと、著作権侵害者がただで提供できるものとの間にほとんど差がないことから、デジタルデータの自由な再配布を防止することが望ましい。さらには、電子商取引など機密性が求められる通信に関しては、対話に関わるユーザにとって無許可の第三者が内密に取引に関与しないことが重要である。このように、現在、信頼されるソースからのコンテンツに関して、無断使用または破損を防止することなくユーザのコンピュータ上でデータを「セキュアに」処理またはレンダリングする実用的な方法はない。
【0003】
詳細には、コンテンツがホストコンピューティングシステム、1つまたは複数のグラフィック処理装置(GPU)、およびレンダリング装置に送り込まれると、著作権侵害者または無許可の第三者が回線または信号に一時的に侵入(camp on)して信号を無断で入手する、あるいは破損させる機会がいくつかある。さらにメッセージングサービスおよびテレビ会議を介してユーザ対話がより高度なものになるのに従い、今後は発信元に関係なくセキュアなコンテンツに信頼されるパイプラインを提供することが一層重要になる。
【0004】
さらに、現在のパーソナルコンピュータ(PC)のように大半の計算力をCPUから得るのと異なり、次世代のオペレーティングシステム、コンピューティングデバイス、およびアプリケーションは、ビジネスアプリケーションのためにGPUの計算力をより多く利用するようになることが明白である。このため、「信頼されるグラフィック」アプリケーションを介してGPUに送られる内容を保証することが将来のコンピューティングデバイスには必須の特性となるが、これは現在のコンピューティングシステムでは十分に対処されていない特性である。
【0005】
信頼されるコンテンツにセキュアなパイプラインを提供するというこの課題は2要素からなると考えることができる。すなわち(1)パイプライン中の何らかの弱い点で信頼されるコンテンツのコピーまたは閲覧を行えないことを保証しなければならず(機密性)、(2)パイプラインがパイプラインにおける無許可のデータの破損を防止することを保証しなければならない(保護性)。システムセキュリティに関しては、システムの安全性を証明することが難しくなるので複雑性は不利になる。空港あるいはその他のセキュリティのシナリオと同様に、システム中の入り口点と出口点が多いほどセキュリティを保証するのが難しくなる。この点で、現在、機密性および保護可能性の両方の点についてGPU機能およびディスプレイドライバの大半を信頼できるようにする手段は存在しない。
【0006】
【発明が解決しようとする課題】
しかし、そのような信頼されるグラフィックスプラットフォームとの関係でコンテンツを送達、処理および/またはレンダリングする前に、現在は、信頼されるグラフィックスプラットフォームと対話する信頼されるアプリケーションまたはデバイスが、対話するグラフィックスプラットフォームが信頼されるものであることを保証する適切な手段を備えないという重大な問題が存在する。さらに、現在は、信頼されるグラフィックスプラットフォームの信頼されるサービスを利用できるように、自身が信頼されるアプリケーションであることを信頼されるアプリケーションがグラフィックスプラットフォームに伝えるためのセキュアで適切な方法がない。したがって、信頼されるグラフィックスプラットフォームの使用に関連する改良された認証技術が必要とされる。
【0007】
【課題を解決するための手段】
前述の内容を鑑みて、本発明は、信頼されるグラフィックシステムの使用との関連でコンポーネントを認証する方法およびシステムを提供する。グラフィックスパイプラインを通じて送られる内容を暗号によりセキュアにするシステムとの関連でグラフィックスカードを認証する技術が提供され、アプリケーションまたはデバイスは、そのアプリケーションまたはデバイスが信頼されるグラフィックスプラットフォームの信頼されるユーザであることを信頼されるグラフィックスプラットフォームに示すことができ、またグラフィックスプラットフォームは、信頼されるアプリケーションまたはデバイスにそのグラフィックスプラットフォームがそのアプリケーションまたはデバイスに信頼されるかもしれないことを伝えることができる。
【0008】
この方法は、グラフィックスカードを備える信頼されるグラフィックスプラットフォームの使用との関連で認証を提供する技術を様々な形で含み、アプリケーションまたはデバイスが、グラフィックスカードにそのグラフィックスカードがセキュアなグラフィックスカードであることを証明するように要求することと、その要求に応答して、グラフィックスカードに通信的にかつ固定して結合された暗号プロセッサによってセッションキーを生成することと、そのセッションキーをアプリケーションまたはデバイスに送信することとを含む。
【0009】
このシステムは、コンピューティングデバイスを様々な形で含み、コンピューティングデバイスは、アプリケーションまたはデバイスと、GPUおよびGPUに通信的にかつ固定して結合された暗号プロセッサを有するグラフィックスカードとを備え、アプリケーションまたはデバイスは、グラフィックスカードにそのグラフィックカードがセキュアなグラフィックスカードであることを証明するように要求し、暗号プロセッサはその要求に応答してセッションキーを生成し、そのセッションキーをアプリケーションまたはデバイスに送信する。
【0010】
本発明のこの他の特徴および実施形態は下記で述べる。
【0011】
本発明による信頼されるグラフィックシステムの使用との関連でコンポーネントを認証する方法およびシステムについて、添付図面を参照してさらに説明する。
【0012】
【発明の実施の形態】
概要
本発明は、改ざん防止性のある機密ダイアログや無許可の複製に対する耐性があるプレミアムコンテンツ再生などの「信頼されるグラフィック」アプリケーションによってコンテンツの処理および/またはレンダリングを行えるように、信頼されるソースからのコンテンツとグラフィックシステムとの間にあるオペレーティングシステム、または他の中間物を認証の目的で増強するシステムおよび技術を提供する。グラフィックスプラットフォームを信頼されるものとみなす1つの方法は、そのプラットフォームが、(1)オーバーレイサーフェスの内容の暗号化、(2)GPUまたは他のコプロセッシングデバイスが、信頼されないパーティによる入手を可能にすることなく暗号化された内容に働きかけることを可能にする、および(3)コマンドバッファの暗号化を可能にする、という3「レベル」のセキュリティを提供することである。本発明は、そのような信頼されるグラフィックスプラットフォームとの関連で使用する認証サービスを提供する。
【0013】
上述のように、システムセキュリティに関してはシステムの安全性を証明するのが難しくなるので複雑性は不利になる。その結果、信頼されるグラフィックスプラットフォームは、GPU機能とディスプレイドライバの大半を信頼できないとみなさなければならないと考える。セキュリティの基準を満たすように実装可能なハードウェアの範囲を制限することにより、信頼されるグラフィックスプラットフォームは機密性と保護可能性の点で正しい実装の可能性を増す。本発明によるいくつかの術語についてはすでに上記で述べた。ただし、説明を簡潔にするために以下にいくつかの用語を特に説明する。用語「機密」とは、第三者であるデバイスまたはソフトウェアなどの信頼されない第三者が信頼される内容情報へのアクセス権を得られないようにすることを意味する。このような機密性の一例には、信頼されない第三者が、グラフィックスパイプラインのいずれかの時点で暗号化されたプレミアムビデオコンテンツの再生へのアクセス権を得られないようにすることが含まれる。用語「保護された」とは、第三者であるデバイスまたはソフトウェアなどの信頼されない第三者が、検出されることなく信頼される内容情報へのアクセス権を得る、あるいは内容情報を変更することができないようにすることを意味する。このような保護性の一例には、電子商取引の処理中に発生する可能性のある、信頼されない第三者によるセキュアダイアログの表示へのアクセス権の入手、あるいはダイアログ表示の変更を防止することが含まれる。
【0014】
この点で、信頼されるグラフィックスプラットフォームは、電子商取引の対話中に存在する可能性がある、例えばプレミアムコンテンツのビデオストリームの上にあるユーザインタフェースのような重なり合ったウィンドウ、ならびに隠蔽不可能なウィンドウを考慮する。ただし、信頼されるグラフィックスプラットフォームの動作が可能になる前に、その信頼されるグラフィックスプラットフォームを使用するアプリケーションおよびデバイスと、信頼されるグラフィックスプラットフォーム自体とが信頼されるシステム全体の真の一部であることを保証する本発明による機構がある。本発明は、このような認証を実装するシステムおよび技術を提供する。その詳細および実施形態について以下に説明する。
【0015】
例示的ネットワーク環境
当技術分野の通常の技術者は、コンピュータまたは他のクライアントまたはサーバ装置は、コンピュータネットワークの一部として、すなわち分散コンピューティング環境に配置できることを認識できよう。この点に関して、本発明は、信頼されるグラフィック体制に用いられる認証技術に関係する可能性のある、任意数のメモリ装置または記憶装置を備え、任意数の記憶装置またはボリュームにわたって行われる任意数のアプリケーションおよびプロセスを備える任意のコンピュータシステムに関係する。本発明は、ネットワーク環境あるいは分散コンピューティング環境に配置されたサーバコンピュータおよびクライアントコンピュータを備え、リモートまたはローカルのストレージを有する環境に適用することができる。本発明はまた、リモートまたはローカルのサービスとの関連で情報を生成、受信、および送信するためのプログラミング言語機能、解釈および実行機能を備えるスタンドアロンのコンピューティングデバイスにも適用することができる。
【0016】
分散コンピューティングは、コンピューティングデバイスとシステム間の直接の交換によりコンピュータ資源とサービスの共有を容易にする。この資源とサービスには、情報の交換、キャッシュ記憶、およびファイルのディスク記憶が含まれる。分散コンピューティングはネットワークの接続性を活用し、クライアントがその集団的な力を活かしてエンタープライズ全体を利することを可能にする。この点について、各種のデバイスは、対話することにより本発明の信頼されるグラフィックスパイプラインのための認証技術に関係する可能性のあるアプリケーション、オブジェクト、または資源を有することができる。
【0017】
図1Aに、例示的なネットワーク環境あるいは分散コンピューティング環境の略図を示す。この分散コンピューティング環境は、コンピューティングオブジェクト10a、10bなどと、コンピューティングオブジェクトまたはデバイス110a、110b、110cなどを備える。これらのオブジェクトは、プログラム、メソッド、データストア、プログラマブルロジックなどを備えることができる。オブジェクトは、PDA、テレビジョン、MP3プレーヤ、テレビジョン、パーソナルコンピュータなど、同一のデバイスまたは異なるデバイスの部分からなることが可能である。各オブジェクトは、通信ネットワーク14により他のオブジェクトと通信することができる。このネットワークはそれ自体で、図1Aのシステムにサービスを提供する他のコンピューティングオブジェクトおよびコンピューティングデバイスを含むことができる。本発明の一態様によれば、各オブジェクト10または110は、本発明の信頼されるグラフィックスパイプラインのための認証技術を要求する可能性のあるアプリケーションを含むことができる。
【0018】
また、110cなどのオブジェクトは別のコンピューティングデバイス10または110でホストしてよいことも理解できる。したがって、図の物理的環境には接続されたデバイスをコンピュータとして示しているが、このような図示は単に例示的なものであり、物理的環境はこれに代えてPDA、テレビジョン、MP3プレーヤなどの各種のデジタルデバイス、およびインタフェース、COMオブジェクトなどのソフトウェアオブジェクトを備えるものと図示する、あるいは述べることもできる。
【0019】
分散コンピューティング環境をサポートする各種のシステム、コンポーネント、およびネットワーク構成がある。例えば、コンピューティングシステムは、配線または無線システムにより、またローカルネットワークまたは広域分散ネットワークによりともに接続することができる。現在ネットワークの多くはインターネットに結合されているが、インターネットは広域分散コンピューティングのインフラストラクチャを提供し、多くの異なるネットワークを包含する。
【0020】
家庭ネットワーキング環境では、電力線、データ(無線および配線両方)、音声(例えば電話)、および娯楽媒体など、各自が固有のプロトコルをサポートできる少なくとも4つの異種のネットワーク伝送媒体がある。照明のスイッチや電気器具など家庭用の制御装置の大半は、接続に電力線を使用することができる。データサービスは、広帯域(例えばDSLやケーブルモデム)として住居に入り、住居内では無線(例えばHomeRFまたは802.11b)または配線(例えばHomePNA、Cat5、あるいは電力線でも)の接続を使用してアクセスすることができる。音声トラフィックは、配線(例えばCat3)または無線(例えば携帯電話)として住居に入り、住居内ではCat3配線を使用して分配することができる。娯楽媒体は、衛星またはケーブルを通じて住居に入ることができ、住居内では通例同軸ケーブルを使用して分配される。IEEE1394およびDVIもメディアデバイス群のデジタル相互接続として台頭しつつある。こうしたネットワーク環境とプロトコル標準として出現する可能性のあるその他の環境をすべて相互接続して、インターネットを介して外部世界に接続できるイントラネットを形成することができる。要は、データの記憶と伝送のために各種の異なるソースが存在し、そのために今後コンピューティングデバイスにはデータ処理のパイプラインのあらゆる部分で内容を保護する方法が必要となる。
【0021】
一般に、インターネットとは、コンピュータネットワーキング技術でよく知られるTCP/IPプロトコルスイートを利用するネットワークおよびゲートウェイの集合を指す。TCP/IPは「Transport Control Protocol/Internet Protocol」の頭字語である。インターネットは、ユーザがネットワークを通じて対話し、情報を共有することを可能にするネットワーキングプロトコルを実行するコンピュータによって相互接続された地理的に分散した遠隔コンピュータネットワークからなるシステムと表現することができる。そのように広域に普及した情報の共有により、これまでのところインターネットなどの遠隔ネットワークは、一般には、開発者が基本的に制約を受けずに特殊化された操作またはサービスを行うソフトウェアアプリケーションを設計することができるオープンシステムに発展してきた。
【0022】
したがって、このネットワークインフラストラクチャにより、クライアント/サーバ、ピアツーピア、あるいはハイブリッドアーキテクチャなど多数のネットワークトポロジが可能になっている。「クライアント」とは、それが関連しない別のクラスまたはグループのサービスを使用するクラスまたはグループのメンバーである。したがって、コンピューティングの際のクライアントは、別のプログラムによって提供されるサービスを要求するプロセス、大まかに言うと命令またはタスクの集合である。クライアントプロセスは、他のプログラムまたはサービス自体については作業の詳細を何ら「知る」必要なしに、要求したサービスを利用する。クライアント/サーバアーキテクチャ、特にネットワークシステムでは、クライアントは、通例、例えばサーバなど別のコンピュータから提供される共有ネットワーク資源にアクセスするコンピュータである。図1Aの例では、コンピュータ110a、110bなどをクライアントと考え、コンピュータ10a、10bなどをサーバと考えることができ、サーバ10a、10bなどがデータを保持し、そのデータがクライアントコンピュータ110a、110bなどで複製される。
【0023】
通例、サーバは、インターネットなどの遠隔ネットワークを通じてアクセスできる遠隔のコンピュータシステムである。第1のコンピュータシステムでクライアントプロセスがアクティブであり、第2のコンピュータシステムでサーバプロセスがアクティブであることができ、通信媒体を通じて相互に通信することにより分散した機能を提供し、複数のクライアントがサーバの情報収集能力を利用することを可能にする。
【0024】
クライアントとサーバは、プロトコル層によって提供される機能を利用して相互と通信する。例えば、ハイパーテキスト転送プロトコル(HTTP)は、ワールドワイドウェブ(WWW)との関連で使用される一般的なプロトコルである。通例はユニバーサルリソースロケータ(URL)またはインターネットプロトコル(IP)アドレスなどのコンピュータネットワークアドレスを使用してサーバコンピュータまたはクライアントコンピュータを相互に識別する。ネットワークアドレスは、ユニバーサルリソースロケータアドレスと呼ぶことがある。例えば、通信は通信媒体を通じて提供することができる。詳細には、高容量通信のためにTCP/IP接続を介してクライアントとサーバを相互に結合することができる。
【0025】
したがって、図1Aは、サーバがネットワーク/バスを介してクライアントコンピュータと通信する例示的なネットワーク環境あるいは分散環境を表しており、このような環境で本発明を用いることができる。より詳細には、複数のサーバ10a、10bなどは、LAN、WAN、イントラネット、インターネットなどの通信ネットワーク/バス14を介して、本発明による携帯型コンピュータ、ハンドヘルドコンピュータ、シンクライアント、ネットワーク対応機器、またはVCR、TV、オーブン、照明、暖房器具などの他の装置といった複数のクライアントデバイスまたは遠隔コンピューティングデバイス110a、110b、110c、110d、110eなどと相互接続されている。このように、本発明は、それとの関係で信頼されるソースからのセキュアな内容を処理、記憶、あるいはレンダリングすることが望ましい任意のコンピューティングデバイスに適用することができる。
【0026】
例えば、通信ネットワーク/バス14がインターネットであるネットワーク環境では、サーバ10は、クライアント110a、110b、110c、110d、110eなどがHTTPなどいくつかの知られるプロトコルを介して通信するウェブサーバであることが可能である。分散コンピューティング環境の特徴であるように、サーバ10はクライアント110としてサービスを提供することも可能である。通信は適宜配線または無線でよい。クライアントデバイス110は、通信ネットワーク/バス14を介して通信してもしなくともよく、独立した通信を関連付けてもよい。例えばTVまたはVCRの場合、その制御にはネットワーク化された面があってもなくともよい。各クライアントコンピュータ110およびサーバコンピュータ10は、各種のアプリケーションプログラムモジュールまたはオブジェクト135と、各種タイプの記憶要素またはオブジェクトへの接続またはアクセスとを備えることができ、記憶要素またはオブジェクトにはファイルを格納することができ、あるいはファイルの一部をダウンロードまたは移動することができる。このように本発明は、コンピュータネットワーク/バス14にアクセスし、それと対話することができるクライアントコンピュータ110a、110bなどと、クライアントコンピュータ110a、110bなどおよび他のデバイス111およびデータベース20と対話できるサーバコンピュータ10a、10bなどとを備えるコンピュータネットワーク環境で利用することができる。
【0027】
例示的コンピューティングデバイス
図1Bと以下の説明では、本発明を実施できる適切なコンピューティング環境の簡単な概略的説明を提供する。ただし、本発明と関連した使用には、ハンドヘルド型、携帯型、および他のコンピューティングデバイスと、あらゆる種類のコンピューティングオブジェクトを企図している。下記では汎用コンピュータについて述べるが、これは一例に過ぎず、本発明は、ネットワーク/バスの相互動作性および対話を備えるシンクライアントで実施することもできる。したがって、本発明は、例えば電気器具内に配置されたオブジェクトなどクライアントデバイスが単にネットワーク/バスとのインタフェースとして機能するネットワーク環境など、関連するクライアントリソースが非常に少ないかあるいは最小限である、ホストされるサービスがネットワーク化された環境で実施することができる。基本的に、データを格納することができる、あるいはデータを取り出すまたはレンダリングできる場所であれば、本発明の認証技術の動作に望ましい、あるいは適した環境となる。
【0028】
必須ではないが、本発明は、オペレーティングシステム、アプリケーションプログラミングインタフェース(API)を介して実施することができ、および/または本発明の認証技術を適用するためにインタフェースをとるアプリケーションソフトウェア中に含めることができる。各種の実施形態では、本発明は、下記のインタフェース技術および暗号化技術に準拠するハードウェアにも適用することができる。ソフトウェアは、クライアントワークステーション、サーバ、または他のデバイスなどの1つまたは複数のコンピュータで実行されるプログラムモジュールなど、コンピュータ実行可能命令の一般的な文脈で説明することができる。一般に、プログラムモジュールには、特定タスクを実行する、または特定の抽象データタイプを実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。通例、各種の実施形態でプログラムモジュールの機能は必要に応じて組み合わせても分散させてもよい。さらに、当業者は、本発明は他のコンピュータシステム構成で実施できることを理解されよう。これらに限定しないが、本発明に使用するのに適する可能性のある他のよく知られるコンピューティングシステム、環境、および/または構成には、パーソナルコンピュータ、現金自動預け払い機、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能な消費者家電製品、ネットワークPC、電気器具、照明、環境制御要素、ミニコンピュータ、メインフレームコンピュータなどが含まれる。本発明は、通信ネットワーク/バスまたは他のデータ伝送媒体を通じてリンクされた遠隔処理装置によってタスクを行う分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、メモリ記憶装置を含むローカルおよび遠隔両方のコンピュータ記憶媒体にプログラムモジュールを置くことができ、クライアントノードはサーバノードとして振舞うことができる。
【0029】
このように図1Bには本発明を実施できる適切なコンピューティングシステム環境100の一例を示すが、上記で明らかにしたようにコンピューティングシステム環境100は適切なコンピューティング環境の一例に過ぎず、本発明の使用または機能性の範囲について何らの制限を示唆するものではない。また、コンピューティング環境100は、例示的動作環境100に示す構成要素のいずれか1つまたは組合せに関連する依存性または必要性を有するものとも解釈すべきでない。
【0030】
図1Bを参照すると、本発明を実施するための例示的システムは、コンピュータ110の形態の汎用コンピューティングデバイスを含む。これらに限定しないが、コンピュータ110の構成要素には、処理装置120、システムメモリ130、およびシステムメモリを含む各種のシステムコンポーネントを処理装置120に結合するシステムバス121が含まれる。システムバス121は、各種のバスアーキテクチャのうち任意のものを使用したメモリバスまたはメモリコントローラ、ペリフェラルバス、およびローカルバスを含む数タイプのバス構造のいずれでもよい。これらに限定しないが、例としてこのようなアーキテクチャには、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、およびPCI(Peripheral Component Interconnect)バス(メザニンバスとも称する)が含まれる。
【0031】
コンピュータ110は通例各種のコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ110によるアクセが可能な任意の利用可能媒体でよく、揮発性および不揮発性の媒体、取り外し可能および取り外し不能媒体の両方を含む。これに限定しないが、例としてコンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶する任意の方法または技術に実装された不揮発性および不揮発性の媒体、取り外し可能および取り外し不能の媒体を含む。コンピュータ記憶媒体には、これらに限定しないが、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気記憶装置、あるいは所望の情報の記憶に用いることができ、コンピュータ110によるアクセスが可能な任意の他の媒体が含まれる。通信媒体は、通例、搬送波または他の搬送機構などの変調データ信号にコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを実施し、任意の情報伝達媒体を含む。用語「変調データ信号」とは、信号中に情報を符号化するような方法でその特性の1つまたは複数を設定または変化させた信号を意味する。例として、通信媒体には、配線ネットワークまたは直接配線接続などの配線媒体と、音響、RF、赤外線、および他の無線媒体などの無線媒体が含まれるが、これらに限定しない。上記の媒体のいずれの組合せもコンピュータ可読媒体の範囲に含めるべきである。
【0032】
システムメモリ130は、読み取り専用メモリ(ROM)131およびランダムアクセスメモリ(RAM)132など、揮発性および/または不揮発性メモリの形態のコンピュータ記憶媒体を含む。起動時などにコンピュータ110内の要素間の情報伝達を助ける基本ルーチンを含む基本入出力システム133(BIOS)は通例ROM131に記憶される。RAM132は通例、処理装置120から即時のアクセスが可能な、および/または現在処理装置120によって操作中のデータおよび/またはプログラムモジュールを含む。これらに限定しないが、例として図1Bにはオペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137を示している。
【0033】
コンピュータ110は、他の取り外し可能/取り外し不能、揮発性/不揮発性のコンピュータ記憶媒体も含むことができる。単なる例として、図1Bには、取り外し不能、不揮発性の磁気媒体の読み取りまたは書き込みを行うハードディスクドライブ141、取り外し可能、不揮発性の磁気ディスク152の読み取りまたは書き込みを行う磁気ディスクドライブ151、およびCD−ROMや他の光媒体などの取り外し可能、不揮発性の光ディスク156の読み取りまたは書き込みを行う光ディスクドライブ155を示す。例示的動作環境で使用できるこの他の取り外し可能/取り外し不能、揮発性/不揮発性のコンピュータ記憶媒体には、これらに限定しないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどが含まれる。ハードディスクドライブ141は、通例インタフェース140などの取り外し不能のメモリインタフェースを通じてシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は、通例インタフェース150など取り外し可能のメモリインタフェースによってシステムバス121に接続される。
【0034】
上記で説明し、図1Bに示すドライブとそれに関連付けられたコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびコンピュータ110のその他のデータの記憶を提供する。例えば、図1Bではハードディスクドライブ141にオペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147が記憶されている。これらのコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137と同じものでも異なるものでもよいことに留意されたい。ここではオペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147には、それらが少なくとも異なるコピーであることを表すために異なる参照符号をつけている。ユーザは、キーボード162、および一般にはマウス、トラックボール、タッチパッドと称されるポインティングデバイス161などの入力装置を通じてコンピュータ110にコマンドと情報を入力することができる。他の入力装置(図示せず)には、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどがある。これらおよび他の入力装置は、システムバス121に結合されたユーザ入力インタフェース160を通じて処理装置120に接続することが多いが、パラレルポート、ゲームポート、あるいはユニバーサルシリアルポート(USB)など他のインタフェースおよびバス構造によって接続することも可能である。ノースブリッジなどのグラフィックインタフェース182もシステムバス121に接続することができる。ノースブリッジは、CPUすなわちホスト処理装置120と通信し、アクセラレイテッドグラフィックポート(AGP)通信の責任を担うチップセットである。1つまたは複数のグラフィック処理装置(GPU)184は、グラフィックインタフェース182と通信することができる。この点で、GPU184は一般に、レジスタストレージなどのオンチップメモリストレージを含み、GPU184はビデオメモリ186と通信する。ただし、GPU184はコプロセッサの一例に過ぎず、したがってコンピュータ110には各種のコプロセッシングデバイスを含めることができる。モニタ191または他タイプの表示装置もビデオインタフェース190などのインタフェースを介してシステムバス121に結合され、ビデオインタフェース190はビデオメモリ186と通信する。一般に脆弱なのはコンピューティングデバイスのこの部分であり、このため本発明は、それに伴って処理またはレンダリングされるデータの保護と機密性を提供する。コンピュータは、モニタ191に加えてスピーカ197やプリンタ196など他の周辺出力装置も含むことができ、それらは出力周辺インタフェース195を通じて接続することができる。
【0035】
コンピュータ110は、リモートコンピュータ180など1つまたは複数のリモートコンピュータへの論理接続を使用するネットワーク環境あるいは分散環境で動作することができる。リモートコンピュータ180はパーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、あるいはその他の一般的なネットワークノードでよく、図1Bにはメモリ記憶装置181しか示していないが、通例はコンピュータ110との関連で上に挙げた要素の多くまたはすべてを含む。図1Bに示す論理接続には構内ネットワーク(LAN)171と広域ネットワーク(WAN)173が含まれるが、他のネットワーク/バスを含むことも可能である。このようなネットワーキング環境は、家庭、オフィス、企業内のコンピュータネットワーク、イントラネット、およびインターネットに一般的に見られる。
【0036】
LANネットワーキング環境で使用する場合、コンピュータ110はネットワークインタフェースまたはアダプタ170を通じてLAN171に接続される。WANネットワーキング環境で使用する場合、コンピュータ110は通例、インターネットなどのWAN173を通じて通信を確立するためのモデム172またはその他の手段を含む。モデム172は内蔵型でも外付け型でもよく、ユーザ入力インタフェース160または他の適切な機構を介してシステムバス121に接続することができる。ネットワーク環境では、コンピュータ110との関連で図示したプログラムモジュールまたはその一部を遠隔のメモリ記憶装置に格納することができる。これに限定しないが、例として図1Bではリモートアプリケーションプログラム185をメモリ装置に常駐させている。図のネットワーク接続は例示的なものであり、コンピュータ間に通信リンクを確立する他の手段を使用できることは理解されよう。
【0037】
例示的な分散コンピューティングフレームワークまたはアーキテクチャ
パーソナルコンピューティングとインターネットの集束(convergence)の観点から、各種の分散コンピューティングフレームワークが過去から現在にわたり開発されている。個人ユーザとビジネスユーザにはともにアプリケーションおよびコンピューティングデバイスのためのシームレスな相互運用が可能でウェブに対応したインタフェースが提供され、コンピューティング活動は次第にウェブブラウザあるいはネットワーク指向になりつつある。
【0038】
例えばMICROSOFT(登録商標)社の.Netプラットフォームは、サーバと、ウェブベースのデータ記憶やダウンロード可能なデバイスソフトウェアなどのビルディングブロックサービスを含む。.Netプラットフォームは一般に次を提供する。(1)あらゆる範囲のコンピューティングデバイスを協働させ、それらのデバイスすべてでユーザ情報を自動的に更新および同期する能力、(2)HTMLではなくXMLをより多く使用することによって可能になるウェブサイトの対話能力の増大、(3)例えば電子メールなど各種のアプリケーションやOffice.Netなどのソフトウェアを管理するための製品およびサービスへのカスタマイズされたアクセスと、中央の開始点からユーザへのその配信を特色とするオンラインサービス、(4)データストレージの集中化。集中化により情報へのアクセスと、ユーザ間およびデバイス間の情報同期の効率と容易さが高まる。(5)電子メール、ファックス、電話など各種の通信媒体を統合する能力、(6)開発者に対しては再使用可能なモジュールを作成し、それにより生産性を高め、プログラミングエラー数を低減する能力。および(7)その他多くのクロスプラットフォームの統合機能。
【0039】
一般的に本明細書の例示的実施形態はコンピューティングデバイスに常駐するソフトウェアによって実装されるメソッドとの関係で説明するが、本発明の1つまたは複数の部分は、オペレーティングシステム、アプリケーションプログラムインタフェース(API)、あるいはコプロセッサと侵害されていないコンテンツの間の「仲介(middle man)」オブジェクトを介して実装することもでき、信頼されるコンテンツサービスは、あらゆる.Netの言語およびサービスと、他の分散コンピューティングフレームワークによって行い、それらにおいてサポートし、あるいはそれらを介してアクセスすることができる。さらに、本発明により記載する技術の1つまたは複数は、この技術に適合させるためのGPUの変更などハードウェアの変更を伴うことが可能であることが認識できる。
【0040】
暗号によるセキュアコンテンツの保護
‘ZZZ出願の信頼されるグラフィックスプラットフォームは、オペレーティングシステムあるいは任意のプラットフォームを増強して、改ざん防止性があり機密性のあるダイアログなどの「信頼されるグラフィック」アプリケーションを可能にし、無許可の複製に対して耐性のある方法でコンテンツの再生を可能にする方法およびシステムを提供する。本発明によって解決される問題を図2に示しており、ここでは暗号化されたプレミアムコンテンツ200が信頼されるソフトウェアアプリケーションTSに渡されるか、あるいはアプリケーションTSによって生成される。信頼されるソフトウェアTSの使用に伴い、コンテンツ200は、レンダリング装置295を介したコンテンツ200のレンダリング(あるいはその他の使用)の前にGPU265の機能に関係する可能性がある。このようなコンテンツ200は、GPU265による処理のためにシステムメモリまたはホストメモリ230からビデオメモリ260に渡される。図2の点線は、セキュリティの問題がある個所を示している。「従来の技術」で述べたように、現在、点線で囲んだ要素を通じた保護された機密性のあるコンテンツの伝達を適切に保証するシステムはない。信頼されるソフトウェアTSから見ると、本発明によって解決される第1の問題は、コンテンツをGPUに渡す前に点線内の構成要素にコンテンツを信頼して委ねられるかどうかということである。信頼されるソフトウェアTSが点線内の構成要素を適切に認証できると仮定すると、信頼されるソフトウェアTSの観点から見た、‘ZZZ特許出願によって対処される第2の問題は、信頼されるソフトウェアTSは、データを点線内に渡した後にデータが変更されないことを適度に(reasonably)確信できなければならないことである。本発明は、下記の各種実施形態で両タイプの問題に対処する。初めに本発明による認証サービスを提供するシステムおよび方法について説明する。次いで、(1)オーバーレイサーフェスの内容を暗号化する、(2)信頼されないアプリケーションまたはパーティによる入手を可能にすることなく、GPUが暗号化された内容に作用することを可能にする、(3)コマンドバッファの内容を暗号化することにより、信頼されるグラフィックスプラットフォームの方法およびシステムを様々な形で実装する。
【0041】
グラフィックスカードの認証
本発明によって対処される信頼されるグラフィックスの処理およびレンダリングの問題の第1の側面は、暗号(cryptographic)(本明細書では「crypto」と称する場合もある)プロセッサの提供と、索引をつけたキーの管理に関連する。
【0042】
この点で、セキュアなグラフィックスカードは自身がセキュアであることを認証できなくてはならない。詳細には、信頼されるソフトウェアは、セキュアなグラフィックスカードと、従来のグラフィックスカード、またはスプーフなどの不正(circumvention)装置を区別することができなくてはならない。また、信頼されるソフトウェアは、暗号鍵をグラフィックスカードに知らせることができなくてはならず、また鍵の受け取り側が実際にセキュアなグラフィックスカードであることを検証できなくてはならない。この目的のためにセキュアなグラフィックスカードは本発明による暗号プロセッサを備え、暗号プロセッサは認証と鍵の移送からなる暗号タスクを行う。
【0043】
ハードウェアに関しては、製造の際に個別設定され保証された暗号プロセッサが本発明により提供される。各暗号プロセッサは、解読用の一意の秘密鍵Kprivを含む。本発明により多くの異なる暗号および解読のアルゴリズムが企図され、暗号技術の当業者に知られるが、文脈上ここに記載するアルゴリズムはRSAであり、鍵長は1024ビットである。いずれも非制限的な設計上の選択であり、応用例と必要とされるセキュリティレベルに応じてよく知られるトレードオフに従って調整することが可能である。
【0044】
これに関して、暗号プロセッサは、既存のチップに追加するか、あるいは別個のチップとしてカードに追加することにより恒久的にグラフィックスカードに取り付ける。暗号プロセッサは、下記でより詳細に説明するように公開鍵の暗号アルゴリズムを実装し、一意の秘密鍵を隠蔽する。これに関して、このような暗号プロセッサは現在のシリコン技術により公開鍵の解読を迅速に行うことができる。ただし、暗号プロセッサは、公開鍵アクセラレータを含むこともでき、また対称暗号(AES)と何らかの制御ロジックを実装することができる。
【0045】
非制限的な例示的実施形態では、暗号プロセッサは次の揮発性レジスタを含む。(1)セッションキー用の256ビットレジスタS。この鍵の寿命は通例信頼されるソフトウェアの実行時間である。(2)複数のインデックスキーの配列。各キーは128ビット長でよいが、他の選択が適切な場合もある。各キーは特定のウィンドウと関連付けられ、グラフィックスカードがそのウィンドウの内容を解読するために使用する。各キーの寿命は、信頼されるソフトウェアの命令によって決まる。
【0046】
上述のように、本発明の暗号プロセッサは恒久的にグラフィックスカードに取り付ける。したがって、その機能を利用するために暗号プロセッサとセキュアにインタフェースをとる手段が必要とされる。暗号プロセッサとのインタフェースに関して本発明は、(a)信頼されるソフトウェアTSとの外部インタフェース、および(b)GPU265とのインタフェース、という少なくとも2つの技術を検討する。前者のインタフェースは、少なくともその暗号に関する面で標準化しなければならない。後者のインタフェースは実装固有にすることができるが、下記の指針すべてに準拠すべきである。
【0047】
外部インタフェースの実装に関して、外部インタフェースは、認証および鍵の移送に秘密鍵(PK)暗号化プロトコルを使用する。このプロトコルでは、信頼されるソフトウェアTSは暗号プロセッサの公開鍵を用いてセッションキーを暗号化する。暗号プロセッサはその結果得られるcryptoblobを受け取り、自身の秘密鍵でそれを解読してセッションキーを得る。この結果、信頼されるソフトウェアと暗号プロセッサは秘密を共有することになる。信頼されるソフトウェアはそのセッションキーを使用して暗号プロセッサに命令を送ることができる。
【0048】
非制限的な一実施形態では、暗号プロセッサにより次の関数を通じて外部インタフェースを公開する。
【0049】
関数SetSessionKey()は、最初の認証ステップと鍵の移送を行う。この関数は、暗号プロセッサの公開鍵機能にアクセスする唯一の関数である。したがって、一実施形態では、本発明はブートごとに1回この関数を呼び出すことを企図する。次の例示的な擬似コードは、SetSessionKey()の非制限的な実装を表す。
Figure 2004007603
この操作が無事完了すると、sessionKeyレジスタは、cryptoblobから得た256ビット鍵などの鍵を含んでいる。この公開鍵アルゴリズムは、例えば1024ビットのRSAである。
【0050】
信頼されるソフトウェアと暗号プロセッサの間に対称のセッションキーKが確立されると、その鍵を使用して以降の暗号プロセッサとの通信をすべてセキュアにすることができる。信頼されるソフトウェアと暗号プロセッサは単純なGetメソッドおよびSetメソッドを用いて通信することができ、これらのメソッドのパラメータは暗号により機密性と保全性が保護される。詳細には、各呼び出しのパラメータブロックBは次の非制限的な方法で処理することができる。
【0051】
AES(M | HMAC(M, K1), K2)
ここでK1はKの最初の半分(ビット0〜127)であり、
K2はKの後半分(ビット128〜255)であり、
AES(M,K)は、CBCモード、AESにより鍵KでメッセージMを暗号化した結果であり、
HMAC(M,K)は、適切なハッシュ関数により鍵KでメッセージMのHMACを計算した結果であり、
A|Bは、AとBを連結した結果である。
【0052】
このフォーマットは、次の関数の入力パラメータと出力パラメータに使用することがで
きる。
【0053】
Set([IN]BOOL needsAck, [IN]BITS128 nonce, [IN]ENUM propertyID, [IN]BYTESEQUENCE propertyParameters,[OUT]BYTESEQUENCE ack)
ここでneedsAckはブール値であり、信頼されるソフトウェアは肯定応答が必要かどうかをこの値で示すことができる。
【0054】
nonceは信頼されるソフトウェアによって選択される128ビット値である。nonceは、肯定応答が必要とされた場合には肯定応答中で使用することができる。
【0055】
propertyIDは、設定されているプロパティを識別する。サポートされるプロパティの例示的なリストを下の表1に示す。
【0056】
prpertyParameterは、各propertyIDに固有のパラメータシーケンスである。
【0057】
そしてAckはこの操作の肯定応答である。暗号プロセッサは、needsAckが設定されている場合に限りackを生成する。Ackは、nonceとその後に続くメッセージからなり、各propertyIDに固有である。
【0058】
【表1】
Figure 2004007603
【0059】
インデックスキーのプロパティIDについて、このメソッドはインデックスで識別されるキーレジスタに新しい鍵と目的タグを書き込む。
【0060】
出力ロックのプロパティIDについて、このメソッドは出力ロックフラグをセットする。このフラグがセットされているときには、画面ジオメトリ(幅、高さ、色の深み、リフレッシュ速度)と、グラフィックスカード出力(VGA、DVI)を変更することができない。詳細には、グラフィックスカードは、出力ロックフラグがセットされている間はこれらの設定を変更する命令を実行しない。
【0061】
L2KeyMgmtプロパティIDについて、このメソッドは、本発明により記載する第2の保護層で鍵の更新頻度を設定する。すなわち、下記でより詳細に述べるように入力と出力を暗号化する。
【0062】
同様にGet関数を次のように提案する。
Get([IN]BITS128 nonce, [IN]ENUM propertyID, [IN]BYTESEQUENCE propertyParameter, [OUT]BYTESEQUENCE response)
ここでnonceは、信頼されるソフトウェアによって選択される128ビット値であり、応答で使用される。
【0063】
propertyIDは設定されているプロパティを識別する。サポートされるプロパティの一覧を下の表2に示す。
【0064】
propertyParameterは、各propertyIDに固有のパラメータシーケンスである。
【0065】
応答にはこの演算の結果が含まれる。応答はnonceと後に続くメッセージからなり、各propertyIDに固有である。
【0066】
【表2】
Figure 2004007603
【0067】
出力ポートについて、このメソッドは例えばVGAやDVIなどグラフィックスカード出力の設定を戻す。
【0068】
認証コードについて、このメソッドは本発明により記載する第1の保護層によるウィンドウ内容のハッシュ、すなわちオーバーレイの暗号化を戻す。
【0069】
DX−SECバージョンについて、このメソッドはグラフィックスカードによってサポートされるDX−SECのバージョンを戻す。
【0070】
セキュアなサーフェス数について、このメソッドはグラフィックスカードによってサポートされるセキュアなサーフェスの数を戻す。
【0071】
重なったサーフェスの数について、このメソッドはグラフィックスカードによってサポートされる重なったセキュアサーフェスの数を戻す。
【0072】
プライマリタイプについて、このメソッドは1を戻し、将来の柔軟性を提供する。
【0073】
ジオメトリについて、このメソッドはプライマリサーフェスの幅、高さ、リフレッシュ速度、および色の深みを戻す。
【0074】
Set関数はさらに、保護される領域オーバーレイの位置またはサイズ、または解読すべき主要(プライマリ)サーフェスの小部分の位置およびサイズを設定するメソッドを含むことができる。
【0075】
したがって上述のSetSessionKey関数、Get関数およびSet関数は、外部インタフェースの非限定的な実施形態に関連する。用語「内部インタフェース」とは、暗号プロセッサとグラフィックスカードの残りの部分とのインタフェースを指す。本発明によるこの種のインタフェースの詳細は各個々のグラフィックスカードの実装に至り、次の制約を課す。(1)暗号プロセッサは恒久的にグラフィックスカードに固定すべきである。(2)暗号プロセッサとグラフィックスカードの残りの部分との接続は公開すべきでない。
【0076】
これに関して、グラフィックスカードからの暗号プロセッサの除去は些細ではない。暗号プロセッサを別個のチップとして実装する場合、それは主に暗号プロセッサをグラフィックスカードに取り付ける機械インタフェースに対する制約になる。通例、暗号プロセッサはグラフィックスカードにはんだ付けすべきである。あるいは、暗号プロセッサはメインのGPUと同じチップ上にあってもよい。例えばスマートカードリーダ、ソケットマウントなど、暗号プロセッサの取り外しが可能な標準化機械インタフェースの使用は認められない。
【0077】
さらに、暗号プロセッサとグラフィックスカードの残りの部分の物理接続はアクセスが可能であってはならず、標準インタフェースを通じて公開してはならない。例えばこのバスにUSBコネクタをとりつけることは本発明では容認できない。
【0078】
キー管理の規則に関して、各インデックスキーはその関連付けられた目的パラメータに従ってのみ使用することができる。一実施形態では、目的パラメータの値は次の意味を持つ。
【0079】
L1STREAM:このキーは、本発明により提供される第1のセキュリティ層、すなわちオーバーレイの暗号化との関連で下記のDX−SECストリーム暗号にのみ使用することができる。
【0080】
L2BLOCK:このキーは、本発明により提供されるECBモードの第2のセキュリティ層、すなわち下記の入力および出力の暗号化で、ブロック暗号にのみ使用することができる。ECBモードのブロック暗号は、信頼されるソフトウェアによって書かれたテクスチャブロックの解読に使用される。
【0081】
これに関して、インデックスに新しい値が入れられた際にはこれらのキーのコピーは保存すべきでない。
【0082】
この代替のキー確立機構は、キーの移送のためにプラットフォームハードウェア中に構築された信頼される経路である。例えば、セキュアなグラフィックスカードの認証を要求するソフトウェアまたはハードウェアが、信頼されるプラットフォームでは例えばアドレス0x12345678への書き込みは常にビデオカードのキーストアにマッピングされることが保証されることを事前に知っている場合には、この「閉じたパス」を代わりに利用できるので、暗号プロセッサがセッションキーをセキュアに送る必要はない。この代替方法では、小規模のセキュアな通信機構を使用して大容量のセキュアチャネルをブートストラップすることができる。このようなセキュアな通信機構は低帯域幅接続などである。
【0083】
さらなる実装は、大容量のデータ移送機構の保護である。例えば下記のセキュアなオーバーレイシステムでは、セキュアなアプリケーションまたはデバイスは保護された経路を使用してビデオデータを直接ビデオカードに送る(ここで行うセキュアなキー交換ステップをa)暗号プロセッサ、またはb)上述のキー交換用のセキュアな経路の使用により回避する)。
【0084】
‘ZZZ特許出願に記載されるような信頼されるグラフィックスプラットフォームについて下記で述べるが、これは暗号化されたオーバーレイ、暗号化された入力および出力、および暗号化されたコマンドバッファを含む。下記でこのような信頼されるグラフィックスプラットフォームについて例示の目的で説明するが、本発明の認証技術は信頼されるグラフィックスプラットフォームの各種の実装に適用できることを理解されたい。
【0085】
第1のセキュリティ層−暗号化されたオーバーレイ
ビデオメモリはCPUで実行される信頼されないソフトウェアによってマッピングし、読み取ることができるので、ビデオメモリは平文形態の情報を含むことができない。この要件が求められるビデオメモリには、ディスプレイのリフレッシュに用いられるビデオメモリが含まれる。この条件を満たすシステムの初期の実装では、オーバーレイサーフェスの内容を暗号化する。そしてオーバーレイは、画像をディスプレイに送る際に、DACハードウェアによってその場で(onthe fly)解読されるか、あるいはDACハードウェアに到達する直前に解読される。
【0086】
図3Aにそのような技術の例示的実装を示す。信頼されるソフトウェアアプリケーション210に付随して発見あるいは生成された場所に関係なく、暗号化されたプレミアムコンテンツ200は信頼されるアプリケーション210によって受け取られる。続いて、暗号を用いるかまたは他の手段で保護された経路を介して、上記の例示的実施形態で述べた認証交換手順、あるいは他のセキュアなキー伝達技術により、暗号プロセッサ220との認証交換が行われる。コンテンツ200はシステムメモリ230から暗号化されたオーバーレイサーフェス240へと進み、オーバーレイサーフェス240はビデオメモリ260のプライマリサーフェス270を重ねる。GPU265の解読部分250は、暗号プロセッサ220と連携して暗号化されたオーバーレイ240から提供された暗号化層を解読し、その内容をデジタルビデオインタフェース(DVI)への出力のためにピクセル選択280に、モニタなどのレンダリング装置への出力のためにDA変換器290に渡す。ただし、オーバーレイが1つしかないので図3Aに示すシステムは上述のすべての基準を満たすわけではない。信頼されるウィンドウなど信頼される環境に必要とされる最小限のbarの機能性を満たすために、代替実施形態では2つのオーバーレイを可能にする。第1の「機密」オーバーレイは基本的に主としてビデオ再生のために現在のプラットフォームに存在するオーバーレイであり、その内容を暗号化できるように強化する。第2のオーバーレイは、特に電子商取引のダイアログなど機密情報を扱うユーザインタフェースの提示に専用のものである。この「保護されたオーバーレイ」は常に一番上にあり、隠蔽が不可能である。すなわちカラーキーイングがなく、第1のオーバーレイよりも優位である。第2のオーバーレイには、コストを最小に抑えるためにある制限を加える場合がある。例えば、第2のオーバーレイは、データがプライマリと同じピクセルフォーマットであり、伸張あるいはマルチバッファリングできないように提供することができる。また、保護されるオーバーレイの内容はハードウェアによって検証することができる。表3に、機密オーバーレイと保護されるオーバーレイの例示的な違いをまとめる。
【0087】
【表3】
Figure 2004007603
【0088】
図3Bに、例えば機密オーバーレイフリッピングチェーン310のオーバーレイ310a、310b、および310cと、保護されるオーバーレイ320の両方を含むシステムを示す。可能な場合には、ブロック暗号よりも実装が速く単純なのでセキュアサーフェスの暗号化にはストリーム暗号を使用する(さらなる詳細を付録Aに示す)。ストリーム暗号では「ストリーム中のバイト位置」に基づいてデータを暗号化する。したがって、第1のセキュリティレベルでは、サーフェスの左上隅でピクセル暗号化キーによりストリーム暗号を初期化する。ストリーム暗号は、そのピクセルが表示されるかどうかに関係なく、オーバーレイサーフェス内に含まれるすべてのピクセルについて進行させる。ここで提案するシステムは、それぞれ機密オーバーレイ用と保護されるオーバーレイ用の2つのストリーム暗号解読コンポーネント300aおよび300bを含む。解読されたピクセル値が入手できる状態になると、ハードウェア280は、保護されるオーバーレイ320、機密オーバーレイ310(プライマリ270が色キーに等しい、および/またはカラーキーイングが可能である場合)、またはプライマリ270のピクセル値を選択し、DVI/DAC290を介してそのピクセル値を表示ハードウェアに送る。
【0089】
攻撃者によって書き込まれるデータも解読されるので、攻撃者が任意数の手段によりオーバーレイへのアクセス権を得、それにより表示画像を不可視にするか、あるいはセキュアコンテンツを雑音のある内容に置き換えることが可能であることに留意されたい。ここで説明中の信頼されるグラフィックスプラットフォームは、こうした攻撃に対して直接防御することはしないが、保全性チェックにより予想されるコンテンツがエンドユーザに提示されたことを保証できるようにする。したがって、出力が入力以外のものである場合には、コンテンツの改ざんがあったことをユーザまたは信頼されるソフトウェア210に警告することができる。
【0090】
オーバーレイとのソフトウェアインタフェースに関して、ソースおよびデスティネーションのバウンディングボックスやデスティネーションカラーキーなど通常のオーバーレイ情報の他に、機密オーバーレイ310は暗号鍵インデックスの指定を求め(maintain)、保護されるオーバーレイ320はさらに、解読されたオーバーレイ内容の巡回冗長コード(CRC)を書き込むべきメモリ位置の指定を求める。
【0091】
機密オーバーレイインタフェースは、オーバーレイバックバッファ310a、すなわちデータをフリップしているバッファの内容の暗号鍵インデックスをフリップメソッドが指定することを除いては既存のオーバーレイと同様である。
【0092】
保護されるオーバーレイのインタフェースはより単純であり、サーフェスが最初に表示された後にそのサーフェスのCRCをあるメモリ位置に転送させる。標準化されたハードウェアインタフェースでオーバーレイの位置を制御し、関係するソフトウェアがポーリング方法でCRCを入手できるようにする。例えばCRCが入手可能であるかどうかをあるレジスタで示し、別のレジスタでCRCの読み出しを可能にすることができる。例えば、保護されるオーバーレイのインタフェースとの関連で次の例示的な擬似コードを利用することができる。
HRESULT UpdateOverlay(LPPOINT ppntUL);
ここでppntULは保護されるオーバーレイの左上隅を指定する。
【0093】
これに関して、ソフトウェア210は保全性に関連する場合には予想されるCRC値を計算する。
【0094】
第2のセキュリティ層−暗号化された入力および出力
GPU265を強化して暗号化された内容を入力として扱い、暗号化した内容を出力として放出させるために、テクスチャマッピングユニット(入力側)とアルファブレンディングユニット(出力側)に暗号化および解読のハードウェアを追加し、ハードウェア設計者はこの機能を実装する際にいくつかの規則に従うように連携する。ストリーム暗号では暗号化データへのランダムアクセスが可能でないので、このシステムではブロック暗号を使用して例えば一度に128ビットずつデータを暗号化する。テクスチャマッピングユニットはキャッシュラインフィルの際に解読を行い、アルファブレンディングユニットはカラーバッファからキャッシュラインを読み出す際に解読を行い、書き込みの前に暗号化を行う。これらの動作で使用する暗号鍵は異なってよい。
【0095】
ビデオ復号など3Dレンダリング以外の計算タスクは、上述のパラダイムを単純に拡張したものである。テクスチャに代えてビデオマクロブロックが暗号化された入力となり、カラーバッファに代えて復号される出力フレームが暗号化された出力となる。コマンドストリームにより帯域内でGPU265に送る際に内容を保護すべき場合に、コマンドバッファもどのように暗号化できるかについて次いで説明する。
【0096】
図4Aに、暗号化および解読コンポーネント440を介して、入力として暗号化されたサーフェス420を受け取り、出力として暗号化されたサーフェスを放出するフロントエンド動作、すなわち暗号化テクスチャとカラーバッファ技術のフロントエンドを行う上述のシステムを表す。さらに暗号化されたテクスチャ400aが提供され、これに対してテクスチャ400bはビデオメモリ260の典型的なテクスチャである。暗号化テクスチャ400aはGPU265の解読コンポーネント450に出力され、解読コンポーネント450は暗号プロセッサ220と協働してテクスチャを解読し、コンポーネント440からの解読済みデータにコンポーネント430aを用いてシェーディングなどのグラフィックアルゴリズムを適用する。
【0097】
合成されたページフリッピングデスクトップの展開を見込んで、DACハードウェアがプライマリ270ならびに上述のオーバーレイサーフェス310および320を解読できるとすると、上記の図4Aのシステムはデスクトップ全体を保護することができる。このような場合、DACハードウェアはストリーム暗号ではなくブロック暗号を使用して解読することに留意されたい。このようなシステムでは任意数の機密サーフェスをデスクトップに加えることができ、セキュリティを犠牲にすることなく任意のZオーダリング、ブレンディング、あるいは3D、あるいは他の効果をそのサーフェスに適用することができる。常に一番上になければならず、その内容が検証可能でなければならない保護されるオーバーレイサーフェス320は、別のサーフェス内に存在する。上述の機密オーバーレイ310は、セキュアなページフリッピングデスクトップまたはプラットフォームによってソフトウェアでエミュレートすることが可能になるまで存続する。
【0098】
一実施形態では、このシステムでは、プライマリ270を解読できることに加えて、GPU265が信頼されるワードプロセッサなど通常のデスクトップアプリケーションによる平文を暗号化できることが必要とされ、そのアプリケーションをデスクトップに加えられるようにする。図4Bにそのようなシナリオを示し、ここではフロント510aおよびバック510aを含むプライマリフリッピングチェーン510を暗号化する。したがってプライマリサーフェスは、それぞれ、デスクトップコンポジタ430による作用を受け、そのサーフェスからの出力/サーフェスへの入力を暗号化/解読コンポーネント440aによって保護することができる。そして解読コンポーネント500は暗号プロセッサ220と通信して、DVI/DAC290に出力するためにフロントサーフェス510bを解読する。これによりシステムがあるタイプの攻撃にさらされるが、それについてはセキュリティの保証との関係で下記で詳細に説明し、その攻撃から防御するためのいくつかの戦略を検討する。
【0099】
図4Cに図4Bの代法を示し、この場合には機密オーバーレイフリッピングチェーン310への転換(transcription)を行っている。したがって、プライマリ270を暗号化する代わりに、ハードウェアは機密オーバーレイハードウェア300aによる消費のためにストリーム暗号による暗号化を可能にすることができ、ハードウェア300aは暗号プロセッサ220と協働してストリーム暗号データを解読することができる。このプレゼンテーション機構はブロック暗号でプライマリを暗号化するのに比べてコストが低い可能性があるが、設計上のトレードオフとしてブロック暗号ほどスケーラブルでない、あるいは柔軟性がない可能性がある。機密オーバーレイ310は暗号化にストリーム暗号を使用するので、この状況をサポートする妥当な操作は、入力サーフェス510aのブロック暗号を使用して解読コンポーネント440bで入力を解読し、オーバーレイのストリーム暗号を使用してコンポーネント440bで再度暗号化する「コピー」操作である。
【0100】
これらの実施形態およびその各種の組合せは、例えば、任意数の平文入力を暗号化された入力と組み合わせて暗号化された出力を生成できるとすると一度に1つの暗号化入力で足りる場合に有用である。
【0101】
持続性のあるセキュリティに関しては実装が可能ないくつかの措置がある。第1に、上述の第2のセキュリティ層は、平文は一旦解読されるとGPU265の外部に漏れることはないという発想に依拠している。例えば、ホストの中央演算処理装置(CPU)がチップから平文を読み出すことを可能にするデバッグレジスタやその他の機構は存在しない。そのような漏洩を防止する入念なハードウェア設計に加えて、GPU265の命令セットは、出力の暗号化も可能にすることなく入力の解読を可能にすることはできない設計になっている。さらに、このハードウェアは、不正な(rogue)ドライバや攻撃コードによる、あるいは偶発的な平文データの漏洩を防止する。
【0102】
さらにハードウェアはキーを漏洩してもいけない。認証交換に関して述べた暗号プロトコルを介してGPU265にキーが伝えられると、キーを入手できるのは暗号化コンポーネントと解読コンポーネントだけになる。
【0103】
上述のように、GPU265がプライマリ270に表示するために平文を暗号化できる場合には、その暗号化機能が、攻撃者が平文とそれに対応する入手可能な暗号文を同時に得られる唯一の上述の機構となるので、その機能はシステムの脆弱性とみなされる。攻撃者は、CPUから見えるようにプライマリサーフェスをマッピングし、暗号化しなければならないウィンドウを作成することにより、知られている平文ブロックに対応する暗号文ブロックのサブセットを構築することができる。こうしたいわゆる「辞書攻撃」は、「関心を引く」ブロックの数が少ない場合にもっともうまくいく。例えば、32bppの表示モードで白黒のダイアログボックスを表示するには、ブロック1つにつき4ピクセルあるので、そのようなダイアログを表示するには16のブロックがあればよい。16個の暗号文ブロックを発見した攻撃者にとって可能な手段の1つは、GPU265による解読後にも有意味の内容を作成することによりエンドユーザに対してダイアログを偽造するものである。この理由から、保護されるオーバーレイは、エンドユーザが予想した内容を見なかった際にアプリケーションがそれを検出することを可能にするので、改ざん防止性のあるダイアログに最も適している。
【0104】
したがって、辞書を作成しようとする攻撃者を失敗させる2つの好適な戦略があることになる。第1に、辞書は所与のキーに対してのみ有効なので、キーを変更し、内容を再度暗号化すると攻撃者は新しい辞書でやり直さざるを得なくなる。さらにプライマリの暗号化のために、ソフトウェアがキーを入手できるようにする必要はない。キーはハードウェアにロールイン(roll in)することができ、ソフトウェアにはキーが変わったことを通知するだけでよい。前のキーはなお入手することができるので、ソフトウェアは前のキーを使用して変更のないプライマリの部分を解読し、再度暗号化することができる。したがって、暗号プロセッサ220は、例えば暗号鍵インデックスのダブルバッファリングなどにより前の鍵をなお入手可能にしておく方法で、また鍵がロールされたことをソフトウェアに通知するような方法で、周期的にプライマリ270の暗号鍵をロールする。
【0105】
別の戦略は、暗号化の前に画像中の位置を符号化するものである。例えば、暗号化する前に画像中の(x,y)ピクセル位置(または画像オフセットなどの何らかの派生値)の排他的論理和(XOR)を取ってピクセルデータにすることができ、解読後にこの操作を解除することができる。この結果異なるサーフェス領域内のピクセルのブロックが別々に暗号化され、平文と暗号文のマッピングは、攻撃者には入手できないサーフェス中の所与の位置についてのみ有意味になる。
【0106】
所定のスウィズルフォーマットも提供される。テクスチャとオフスクリーンサーフェスにはランダムアクセスが必要なので、これらはブロック暗号で符号化しなければならない。例えばキャッシュラインとブロックサイズがともに128ビットである場合には、ブロック暗号の一般的なブロックサイズと、現在の3Dアクセラレータの典型的なキャッシュラインサイズとの間に好適な相乗作用があり、効率的な暗号化と解読をハードウェアで実装することができる。わずかな差がある場合(例えばブロックサイズが128ビットでキャッシュラインサイズが256ビットなど)でも、このハードウェア実装は効率的である可能性が高い。
【0107】
暗号化されたテクスチャデータに伴う問題の1つは、ブロック暗号化方法では隣接するバイトブロックが入手できないとそれを暗号化または解読することができず、キャッシュラインフィルではピクセルデータを「スウィズル」すること、すなわち、キャッシュラインフィルで2Dのピクセル領域が得られるように画像中の(X,Y)位置からアドレスへの変換を形成することが必要とされる点である。現在までのところ、ハードウェアベンダは、アプリケーションには知らせずに表向きは線形のサーフェスフォーマットを公開し、一方画像データはスウィズルしている。しかし信頼されるソフトウェアは暗号化されたテクスチャデータを放出するので、隣接するデータブロックを暗号化し2次元の局所性を保持できるように、スウィズル方法のアプリオリの知識を備えていなければならない。これに従って、アプリケーションが使用するために、YUV4:4:4、4:2:2、および4:2:0、ならびにRGBフォーマットを含むスウィズルした画像フォーマットの辞書が定義される。これらのフォーマットの性能は、画像がハードウェア固有のフォーマットにスウィズルされた場合ほどは高くない可能性があるが、暗号化にはわずかな性能の低下が見られ、すなわち速度と引き換えにセキュリティが低下する。
【0108】
AYUV/ARGB(32bpp、パックト)に関して、この32bppのサーフェスフォーマットは、輝度(Y)およびクロミナンス(UおよびV)サンプルの8ビットのカラーチャンネルに加えてアルファチャンネルを含む。あるいは、両フォーマットとも32bppでパックされているので、このフォーマットは標準的なARGB 32bbpを含むこともできる。以下の説明ではAYUVを想定する。線形の配置は図5Aに示すとおりである。
この画像中のピクセル(X,Y)のオフセットは次である。
オフセット=Y*Pitch+X*4
128ビットの暗号化ブロックサイズおよびキャッシュラインサイズを想定すると、1ブロックに4ピクセルが入る。アドレスを生成する前にXおよびYの最下位ビットをインタリーブすると、キャッシュラインフィルの際の2Dの局所性が改善される。フォーマットに従ってこれらのブロックを線形に配置する。
【0109】
その結果得られる画像配置を図5Bに示す。番号をつけた各長方形はピクセルであり、太線の長方形は暗号化されたブロックである。画像中の(x,y)位置をオフセットに変換するこのフォーマットのスウィズル関数の例示的擬似コードは次である。
【0110】
Figure 2004007603
【0111】YUY2(16bpp、パックト)について、このサーフェスフォーマットは水平方向に「クロミナンス」サンプルUおよびVを2分の1でサブサンプリングする。この結果は、1ピクセルが平均16ビットのパックされた画像フォーマットである。この線形の配置を図6Aに示す。図6Bに示すように、スウィズルフォーマットは4x2ピクセルの暗号化ブロックを割り当てる。図5Aおよび5Bと同様に、128ビットブロックもスウィズルされている。図6Bと、(x,y)座標のペアを画像オフセットに変換する下記の例示的なスウィズルの擬似コードでは、UおよびVが偶数個のX座標を有すると想定することに留意されたい。
【0112】
Figure 2004007603
Figure 2004007603
【0113】
これに関して、図5A、5B、6A、および6Bのスウィズルに伴う擬似コードでは、サーフェスピッチは、128ビットブロックのスキャンライン当たりのバイト数として定義される。
【0114】
パックされたプラナ(12bpp)に関して、このサーフェスフォーマットは水平方向および垂直方向にUおよびVを2分の1でサブサンプリングする。輝度およびクロミナンスのサンプルは、サーフェスの2つの別個の部分に配置される。パックされたプラナ(12bpp)の線形の配置を図7Aに示す。
【0115】
サーフェスピッチは、Y平面の512ビットブロックのスキャンライン当たりのバイト数として定義される。サンプルの数は1/4であるがサンプル当たりのカラー要素の数は2倍なので、VU平面のピッチはY平面のピッチの半分になる。この結果得られるスウィズルした画像フォーマットを図7Bに示す。
【0116】
(x,y)座標をY、U、およびV要素のオフセットに変換するこのフォーマットのスウィズル関数の例示的な擬似コードは次である。
【0117】
Figure 2004007603
Figure 2004007603
【0118】
第3のセキュリティ層−暗号化されたコマンドバッファ
第1および第2のセキュリティ層についての上述の実施形態の機能を増強して、GPU265が作用している画像データに加えて、GPU265に渡されるコマンドバッファを暗号化することができる。この機能は、帯域内でハードウェアに送られるコマンドバッファの内容をアプリケーション210が保護したい場合に望ましい。図9Aに、暗号化されたコマンドバッファ900を使用したビデオの復号を示し、ここでは暗号化されたテクスチャ400aに内容を送り、解読コンポーネント450で解読し、ビデオデコーダ430bでデコードする。コマンドバッファだけを暗号化することが可能であるが、暗号化され、符号化されたフレーム420aによって示すように、コマンドバッファだけでなくビデオメモリでも内容を暗号化する。したがって、コマンドバッファの暗号化は、このようにビデオメモリにマクロブロックがあり、動きベクトルと他のコマンドがコマンドストリームで送信される状況に適している。
【0119】
暗号化されたテクスチャデータの原子性の制約は暗号化されたコマンドバッファデータにも当てはまるが、当該の内容を保護するにはカラーバッファの暗号化は十分でない場合があることに留意しなくてはならない。平文攻撃からシステムを守るために、Zバッファなどの中間バッファも暗号化することができる。図9Bに、暗号化されたコマンドバッファを使用した例示的な3Dレンダリングを示す。図のように、3Dレンダリングコマンド810はビデオデコーダ430cへの途上で暗号化される。テクスチャデータ400aは解読コンポーネント450で解読され、コマンド810に従ってビデオデコーダ430cによって処理される。それに伴い、カラーバッファ820中のデータは暗号化/解読コンポーネント830によって暗号化される。
【0120】
改ざんの検出は、2回のパスを使用してコマンドバッファの消費前に行うか、またはコマンドバッファの消費後に行うことができる。一実施形態では、内容の表示後またはレンダリング後に改ざんの検出を可能にする。
【0121】
さらなる代替実施形態−グラフィックスカード出力の暗号化
上述の各実施形態では図2の点線部分についての機密性および保全性を実証し、説明したが、ビデオ出力については機密性および保全性を実証していない。すなわち理論的にはグラフィックスカードとモニタなどのレンダリング装置とのインタフェース、および/またはレンダリング装置自体が攻撃にさらされている。
【0122】
このため、図9Aなど上述の実施形態では、ビデオメモリ内とグラフィックスカードの処理中にコンテンツが保護されているにもかかわらず、プロセス中のいずれかの時点でデータが平文で(in the clear)DVI/DAC290に送られる。その結果、レンダリング装置へ向かう途中、およびレンダリング装置内部でデータが無断使用または変更される可能性がある。
【0123】
したがって、ここに記載する他の実施形態と任意選択で組み合わせることが可能な代替実施形態によれば、レンダリング装置にシスター(sister)暗号プロセッサ220bを提供して、暗号プロセッサ220aによって行われる機能を補完する。これに関して、暗号プロセッサ220aと通信的に結合された暗号化コンポーネント910aは、DVI/DACコンポーネント290への伝達の前にデータを暗号化し、通信的に暗号プロセッサ220bと結合された解読コンポーネント910bは、行われる表示またはレンダリングの一部としてデータを解読してデータの無断使用を防止する。あるいは、暗号化コンポーネント910aをDVI/DACコンポーネント290と合わせて含めてもよい。要は、同じ暗号化および解読とキー管理の技術を適用すると、コンテンツの暗号的に保護されたセキュアな伝達と処理のためにグラフィックスパイプライン全体を通じてコンテンツを保護することができる。
【0124】
上述のように、本発明の例示的実施形態について各種のコンピューティングデバイス、ハードウェア、ソフトウェア、およびネットワークアーキテクチャとの関連で説明したが、基礎となる概念は、信頼できるソースからのコンテンツを保護することが求められる任意のコンピューティングデバイスまたはシステムに適用することができる。したがって、本発明による信頼されるグラフィックシステムの使用との関連でコンポーネントを認証する技術は、各種のアプリケーションおよびデバイスに適用することができる。例えば本発明の信頼されるグラフィックシステムの使用との関連でコンポーネントを認証する方法の一部は、コンピューティングデバイスのオペレーティングシステムに適用することができ、デバイス上の別個のオブジェクトとして、別のオブジェクトの一部として、サーバからダウンロード可能なオブジェクトとして、分散オブジェクトなどとして提供される。本明細書では様々な選択肢の代表として例示的なプログラミング言語、擬似コード、名前、および例を選択したが、これらの言語、擬似コード、名前、および例は限定的なものではない。
【0125】
ここに記載する各種の技術は、ハードウェアまたはソフトウェア、あるいは適切な場合にはそれらの組合せとの関連で実装することができる。したがって、本発明の方法および装置、またはその態様または一部分は、フロッピー(登録商標)ディスケット、CD−ROM、ハードドライブ、あるいはその他の任意の機械可読記憶媒体など有形の媒体に実施されたプログラムコード(すなわち命令)の形をとることができ、その場合にはプログラムコードがコンピュータなどのマシンにロードされて実行されるとそのマシンは本発明を実施する装置になる。プログラム可能なコンピュータでプログラムコードを実行する場合、コンピューティングデバイスは一般に、プロセッサ、プロセッサ可読の記憶媒体(揮発性および不揮発性のメモリおよび/または記憶素子を含む)、少なくとも1つの入力装置、および少なくとも1つの出力装置を含む。例えばデータ処理API、オペレーティングシステム、信頼されるアプリケーションなどの使用を通じて本発明の技術を利用することができる1つまたは複数のプログラムは、高水準の手続き型またはオブジェクト指向型のプログラミング言語で実装してコンピュータシステムと通信することが好ましい。ただし、必要な場合にはプログラムはアセンブリ言語または機械語で実装することができる。いずれの場合も言語はコンパイルまたは解釈される言語であり、本発明の各種実施形態ではGPU265のハードウェア実装に条件を課す。
【0126】
本発明の方法および装置は、電気配線またはケーブル、光ファイバ、あるいはその他の任意の伝送形態など何らかの伝送媒体で伝送されるプログラムコードの形に実施される通信を介して実施することもでき、その場合は、プログラムコードが受信され、EPROM、ゲートアレイ、プログラマブルロジックデバイス(PLD)、クライアントコンピュータ、ビデオレコーダなど、あるいは上述の例示的実施形態で述べたグラフィックスカードと暗号化機能を有する受信側マシンなどのマシンにロードされ、実行されると、マシンは本発明を実施する装置となる。汎用プロセッサで実装すると、プログラムコードはプロセッサと組み合わさって本発明の機能を呼び出すように動作する固有の装置を提供する。さらに、本発明との関連で用いる任意の記憶技術は、常にハードウェアとソフトウェアの組合せでよい。
【0127】
本発明について各種図面に示す好ましい実施形態との関連で説明したが、本発明から逸脱せずに本発明と同じ機能を行うために、他の同様の実施形態を使用しても、またはここに記載する実施形態に変更または追加を加えてもよいことを理解されたい。例えば、本発明の例示的なネットワーク環境は、ピアツーピアのネットワーク環境などのネットワーク環境に則して説明しているが、当業者は、本発明はそれに限定されず、本明細書に記載する方法は、配線式または無線式のゲームコンソール、ハンドヘルドコンピュータ、携帯型コンピュータなど任意のコンピューティングデバイスまたは環境に適用でき、また通信ネットワークを介して接続され、そのネットワークを介して対話する任意数の上記のようなコンピューティングデバイスに適用できることを認識されよう。特に無線式のネットワーク機器の数が増加し続けていることから、ハンドヘルドデバイスのオペレーティングシステム、およびその他アプリケーション固有のオペレーティングシステムを含む各種のコンピュータプラットフォームを企図していることを強調したい。さらに、本発明は、複数のGPUを備えるデバイスなど複数のコプロセッシングチップまたはデバイス内で、あるいはそれらにわたって実施することができ、それに付随して行われる記憶も同様に複数デバイスにわたって行うことができる。さらに、本発明の認証技術を実装するアプリケーションまたはデバイスは、認証されるグラフィックスプラットフォームを有するコンピューティングデバイスと同じコンピューティングデバイスになくともよい。また、本発明によるグラフィックスカードは、例えばアクセラレイテッドグラフィックポート(AGP)カードなどの取り外し可能なカードであっても、または「内蔵カード」すなわちチップセットに組み込まれたカードであってもよい。したがって、本発明はいずれの単一の実施形態にも限定されず、頭記の特許請求の範囲による範囲内で解釈すべきである。
【0128】
付録A。ストリーム暗号とブロック暗号
この付録では、本文書の内容に関連するストリーム暗号とブロック暗号の違いを詳細に述べる。
【0129】
【表4】
Figure 2004007603
【0130】
概して、ストリーム暗号はブロック暗号に比べて実装が高速かつ単純である。
【0131】
その名が示すようにストリーム暗号はバイトのストリームを暗号化し、解読する。ストリーム中のN番目のバイトを解読する際、ストリーム暗号ではストリームの始めから開始して一度に1バイトずつ所望のオフセットまでストリームを進んでいく。
【0132】
これに対して、電子コードブックモードで実行されるブロック暗号は、データ中の任意のブロックを暗号化または解読することができるが、一度にブロック全体を暗号化/解読しなければならない。典型的なブロックサイズは16バイトである。
【0133】
ストリーム暗号は、同一のデータを2度暗号化することはない、すなわち暗号化および解読に使用する鍵を頻繁に変えなければならないような方法で使用される。例えばプレミアムビデオの再生に用いる場合には、鍵の変更は1フレームにつき1回で十分である。
【0134】
最後の備考として、パブリックドメインで利用できる良質のブロック暗号がある。
【図面の簡単な説明】
【図1A】本発明を実施することが可能な、各種のコンピューティングデバイスを備える例示的ネットワーク環境を表すブロック図である。
【図1B】本発明を実施することが可能な例示的な非限定的コンピューティングデバイスを表すブロック図である。
【図2】本発明により保護されるグラフィックスパイプラインの非保護部分を示す流れ図である。
【図3A】本発明による第1のセキュリティ層の例示的態様を表すブロック図である。
【図3B】本発明による第1のセキュリティ層の例示的態様を表すブロック図である。
【図4A】本発明による第2のセキュリティ層の例示的態様を表すブロック図である。
【図4B】本発明による第2のセキュリティ層の例示的態様を表すブロック図である。
【図4C】本発明による第2のセキュリティ層の例示的態様を表すブロック図である。
【図5A】本発明によるAYUV/ARGBフォーマットの例示的なスウィズルを示す図である。
【図5B】本発明によるAYUV/ARGBフォーマットの例示的なスウィズルを示す図である。
【図6A】本発明によるYUY2フォーマットの例示的スウィズルを示す図である。
【図6B】本発明によるYUY2フォーマットの例示的なスウィズルを示す図である。
【図7A】本発明によるパックされたプラナフォーマットの例示的なスウィズルを示す図である。
【図7B】本発明によるパックされたプラナフォーマットの例示的なスウィズルを示す図である。
【図8A】本発明による第3のセキュリティ層の例示的態様を示すブロック図である。
【図8B】本発明による第3のセキュリティ層の例示的態様を示すブロック図である。
【図9A】本発明によるグラフィックス処理装置の出力に適用できる例示的暗号化技術を示すブロック図である。
【図9B】本発明によるグラフィックス処理装置の出力に適用できる例示的暗号化技術を示すブロック図である。
【符号の説明】
10a、10b、110a、110b、110c オブジェクト(デバイス)
14 ネットワーク(バス)
20 データベース
110、180 コンピュータ
120 処理装置
121 システムバス
130 システムメモリ
131 ROM
132 RAM
134、144 オペレーティングシステム
135、145、185 アプリケーションプログラム、(プログラムモジュール)(オブジェクト)、
136、146 プログラムモジュール
137、147 プログラムデータ
141 ハードディスクドライブ
150 インタフェース
151 磁気ディスクドライブ
152 磁気ディスク
155 光ディスクドライブ
156 光ディスク
160 ユーザ入力インタフェース
161 ポインティングデバイス
162 キーボード
170 アダプタ
171 LAN
172 モデム
173 WAN
181 メモリ記憶装置
182 グラフィックインタフェース
184 GPU
186、260 ビデオメモリ
190 ビデオインタフェース
191 モニタ
195 出力周辺インタフェース
200 コンテンツ
210 アプリケーション
220 暗号プロセッサ
230 システムメモリ
250 解読部分
240、270、420 サーフェス
270 プライマリ
280 ピクセル選択
290 DVI/DAC
295 レンダリング装置
300 解読コンポーネント
300a ハードウェア
310 フリッピングチェーン(機密オーバーレイ)
320 保護されるオーバーレイサーフェス
400 テクスチャ
420 フレーム
430 ビデオデコーダ(解読コンポーネント)
440、830 暗号化および解読コンポーネント
450 解読コンポーネント
510 プライマリフリッピングチェーン
510a フロント
510b バック
810 コマンド
820 カラーバッファ
900 コマンドバッファ
910A 暗号化コンポーネント
920b 解読コンポーネント

Claims (71)

  1. グラフィックスカードを有する信頼されるグラフィックスプラットフォームの使用との関連で認証を提供する方法であって、
    アプリケーションおよびデバイスの1つにより、グラフィックスカードに前記グラフィックスカードがセキュアなグラフィックスカードであることを証明するように要求することと、
    前記要求に応答して、前記グラフィックスカードに通信的にかつ固定して結合された暗号プロセッサによりセッションキーを生成することと、
    前記セッションキーを前記アプリケーションおよびデバイスの1つに送信することと
    を含むことを特徴とする方法。
  2. 前記グラフィックスカードの資源に対する要求との関連で、前記グラフィックスカードに前記セッションキーを知らせること
    をさらに含むことを特徴とする請求項1に記載の方法。
  3. 各暗号プロセッサが製造中に個別設定され、保証されることを特徴とする請求項1に記載の方法。
  4. 各暗号プロセッサは一意の解読用秘密鍵を含むことを特徴とする請求項1に記載の方法。
  5. 前記暗号プロセッサが、(1)前記暗号プロセッサを既存のチップに追加すること、および(2)前記暗号プロセッサを別個のチップとして前記グラフィックスカードに追加すること、のいずれか1つにより恒久的に前記グラフィックスカードに取り付けられ、
    それにより、前記暗号プロセッサと前記グラフィックスカードの残りの部分との物理接続がアクセス不可能となり、公開されないことを特徴とする請求項1に記載の方法。
  6. 前記暗号プロセッサは、(1)前記セッションキー用のマルチビットの揮発性レジスタS、および(2)複数のインデックスキーの配列を含むことを特徴とする請求項1に記載の方法。
  7. 前記セッションキーの寿命は前記アプリケーションおよびデバイスの1つの実行時間であり、前記複数のキーそれぞれの寿命が前記アプリケーションおよびデバイスの1つからの命令によって決定されることを特徴とする請求項6に記載の方法。
  8. 前記複数のインデックスキーそれぞれが、(1)前記アプリケーションおよびデバイスの1つを含むホストシステムの特定ウィンドウと関連付けられ、(2)前記ウィンドウの内容を解読するために前記グラフィックスカードによって使用されることを特徴とする請求項6に記載の方法。
  9. 前記要求は、(1)前記アプリケーションおよびデバイスの1つとの外部インタフェース、および(2)前記グラフィックスカードのグラフィック処理装置(GPU)との内部インタフェース、のいずれか1つを介して前記暗号プロセッサとのインタフェースをとることを含むことを特徴とする請求項1に記載の方法。
  10. 前記外部インタフェースとのインタフェースをとることは、認証および鍵の移送のために秘密鍵暗号化プロトコルを使用することを含み、それにより前記認証および鍵の移送は、
    前記アプリケーションおよびデバイスの1つにより前記暗号プロセッサの公開鍵で前記セッションキーを暗号化し、それによりセッションキーのcryptoblobを生成することと、
    前記暗号プロセッサにより前記セッションキーのcryptoblobを受け取ることと、
    前記暗号プロセッサにより前記暗号プロセッサの秘密鍵で前記セッションキーのcryptoblobを解読し、それにより前記セッションキーを得ることと、
    を含み、
    それにより、前記アプリケーションおよびデバイスの1つと前記暗号プロセッサが秘密を共有し、前記アプリケーションおよびデバイスの1つが前記セッションキーを使用して前記暗号プロセッサに命令を送ることが可能になることを特徴とする請求項9に記載の方法。
  11. 前記外部インタフェースが関数セットを通じて前記暗号プロセッサにより公開され、前記セットは、
    前記暗号化、受け取りおよび解読を呼び出し、それにより前記セッションキーを使用して、以降の前記アプリケーションおよびデバイスの1つと前記暗号プロセッサとのすべての通信をセキュアにするSet Session Key関数と、
    Set関数と、
    Get関数と
    を含み、
    前記アプリケーションおよびデバイスの1つと前記暗号プロセッサは、前記Set関数およびGet関数を用いて通信し、Set関数およびGet関数のパラメータは機密性および保全性を暗号により保護されることを特徴とする請求項10に記載の方法。
  12. 前記Get関数は、(1)前記インデックスによって識別されるキーレジスタに新しいキーと目的タグを書き込むインデックスキープロパティIDメソッド、(2)画面ジオメトリと前記グラフィックスカード出力を固定する出力ロックフラグをセットする出力ロックプロパティIDメソッド、および(3)前記セキュアなグラフィックスカードおよび暗号プロセッサを含む信頼されるグラフィックスプラットフォームによって提供されるビデオメモリ暗号化保護の層のキーの更新頻度をセットするL2KeyMgmtプロパティIDメソッド、の少なくとも1つを含むことを特徴とする請求項11に記載の方法。
  13. 前記Set関数は、(1)前記グラフィックスカードの少なくとも1つの出力の設定を戻す出力ポートメソッド、(2)前記セキュアなグラフィックスカードおよび暗号プロセッサを含む信頼されるグラフィックスプラットフォームの第1の保護層によるウィンドウ内容のハッシュを戻す認証コードメソッド、(3)前記グラフィックスカードによりサポートされるDX−SECのバージョンを戻すDX−SECバージョンメソッド、(4)前記グラフィックスカードによってサポートされるセキュアサーフェスの数を戻すセキュアサーフェス数メソッド、(5)前記グラフィックスカードによってサポートされる重なったセキュアサーフェスの数を戻す重なったサーフェス数メソッド、(6)前記グラフィックスカードの将来の方法論に柔軟性を提供するプライマリタイプメソッド、(7)前記信頼されるグラフィックスプラットフォームのビデオメモリのプライマリサーフェスの幅、高さ、リフレッシュ速度、および色の深みを戻すジオメトリメソッド、(8)保護されるオーバーレイのある領域の位置およびサイズの少なくとも1つを設定するメソッド、(9)解読するプライマリサーフェスの小部分の位置およびサイズの少なくとも1つを設定するメソッド、の少なくとも1つを含むことを特徴とする請求項11に記載の方法。
  14. 前記内部インタフェースとのインタフェースをとることは、前記暗号プロセッサと前記グラフィックスカードとのインタフェースをとることを含み、それにより、前記グラフィックスカードを破壊せずに、(1)前記暗号プロセッサを恒久的に前記グラフィックスカードに固定し、および(2)前記暗号プロセッサと前記グラフィックスカードの残りの部分との接続が公開されない、ことを特徴とする請求項9に記載の方法。
  15. (1)前記暗号プロセッサを前記グラフィックスカードにはんだ付けすること、および(2)前記暗号プロセッサが前記GPUと同じチップ上にあること、のいずれか1つを特徴とする請求項14に記載の方法。
  16. 前記複数のインデックスキーそれぞれが、前記インデックスキーと関連付けられた目的パラメータに従って1回のみ使用され、インデックスキーに新しい値が埋められると前のキーの値が回復不可能な形で破棄されることを特徴とする請求項6に記載の方法。
  17. 目的パラメータの値は、
    オーバーレイサーフェスの暗号化との関連で利用されるDX−SECストリーム暗号に用いられるL1STREAMキーと、
    前記アプリケーションおよびデバイスの1つによって書かれたテクスチャブロックの解読に使用されるブロック暗号に用いられるL2BLOCKキーと
    を含むことを特徴とする請求項16に記載の方法。
  18. 請求項1に記載の方法を行うコンピュータ実行可能命令を担持することを特徴とする変調データ信号。
  19. 請求項1に記載の方法を行う手段を備えることを特徴とするコンピューティングデバイス。
  20. アプリケーションおよびデバイスの1つと、
    少なくとも1つのGPUと、前記少なくとも1つのGPUに通信的にかつ固定して結合された暗号プロセッサとを有するグラフィックスカードと
    を備え、
    前記アプリケーションおよびデバイスの1つは、前記グラフィックスカードがセキュアなグラフィックスカードであることを証明するように前記グラフィックスカードに要求し、前記要求に応答して、前記暗号プロセッサはセッションキーを生成し、前記アプリケーションおよびデバイスの1つに前記セッションキーを送信することを特徴とするコンピューティングデバイス。
  21. 前記セッションキーが、前記グラフィックスカードの資源に対する要求との関連で前記グラフィックスカードに知らされることを特徴とする請求項20に記載のコンピューティングデバイス。
  22. 各暗号プロセッサが製造中に個別設定され保証されることを特徴とする請求項20に記載のコンピューティングデバイス。
  23. 各暗号プロセッサは一意の解読用の秘密鍵を含むことを特徴とする請求項20に記載のコンピューティングデバイス。
  24. 前記暗号プロセッサが、(1)既存のチップに前記暗号プロセッサを追加すること、および(2)前記暗号プロセッサを別個のチップとして前記グラフィックスカードに追加すること、のいずれか1つにより恒久的に前記グラフィックスカードに取り付けられ、
    それにより前記暗号プロセッサと前記グラフィックスカードの残りの部分との物理接続がアクセス不可能になり、公開されないことを特徴とする請求項20に記載のコンピューティングデバイス。
  25. 前記暗号プロセッサは、(1)前記セッションキー用のマルチビットの揮発性レジスタS、および(2)複数のインデックスキーの配列、を含むことを特徴とする請求項20に記載のコンピューティングデバイス。
  26. 前記セッションキーの寿命は前記アプリケーションおよびデバイスの1つの実行時間であり、前記複数のキーそれぞれの寿命は前記アプリケーションおよびデバイスの1つからの命令によって決定されることを特徴とする請求項25に記載のコンピューティングデバイス。
  27. 前記複数のインデックスキーそれぞれが、(1)前記アプリケーションおよびデバイスの1つを含むホストシステムの特定ウィンドウと関連付けられ、(2)前記ウィンドウの内容を解読するために前記グラフィックスカードによって使用されることを特徴とする請求項25に記載のコンピューティングデバイス。
  28. 前記アプリケーションおよびデバイスの1つは、(1)前記アプリケーションおよびデバイスの1つとの外部インタフェース、および(2)前記グラフィックスカード上のグラフィック処理装置(GPU)との内部インタフェース、のいずれか1つを介して前記暗号プロセッサとのインタフェースをとることを特徴とする請求項20に記載のコンピューティングデバイス。
  29. 前記アプリケーションおよびデバイスの1つは、認証および鍵の移送のための秘密鍵暗号化プロトコルを使用して外部インタフェースとのインタフェースをとり、それにより前記認証および鍵の移送は、
    前記アプリケーションおよびデバイスの1つにより前記暗号プロセッサの公開鍵で前記セッションキーを暗号化し、それによりセッションキーのcryptoblobを作成することと、
    前記暗号プロセッサにより前記セッションキーのcryptoblobを受け取ることと、
    前記暗号プロセッサにより前記暗号プロセッサの秘密鍵で前記セッションキーのcryptoblobを解読し、それにより前記セッションキーを得ることと、
    を含み、
    それにより、前記アプリケーションおよびデバイスの1つと前記暗号プロセッサが秘密を共有し、前記アプリケーションおよびデバイスの1つが前記セッションキーを使用して前記暗号プロセッサに命令を送ることが可能になることを特徴とする請求項28に記載のコンピューティングデバイス。
  30. 前記外部インタフェースが関数セットを通じて前記暗号プロセッサにより公開され、前記セットは、
    前記暗号化、受け取りおよび解読を呼び出し、それにより前記セッションキーを使用して、以降の前記アプリケーションおよびデバイスの1つと前記暗号プロセッサとのすべての通信をセキュアにするSet Session Key関数と、
    Set関数と、
    Get関数と
    を含み、
    前記アプリケーションおよびデバイスの1つと前記暗号プロセッサは前記Set関数およびGet関数を使用して通信し、Set関数およびGet関数のパラメータは機密性および保全性を暗号により保護されることを特徴とする請求項29に記載のコンピューティングデバイス。
  31. 前記Get関数は、(1)前記インデックスによって識別されるキーレジスタに新しいキーと目的タグを書き込むインデックスキープロパティIDメソッド、(2)画面ジオメトリと前記グラフィックスカード出力を固定する出力ロックフラグをセットする出力ロックプロパティIDメソッド、および(3)前記セキュアなグラフィックスカードおよび暗号プロセッサを含む信頼されるグラフィックスプラットフォームによって提供されるビデオメモリ暗号化保護の層のキーの更新頻度をセットするL2KeyMgmtプロパティIDメソッド、の少なくとも1つを含むことを特徴とする請求項30に記載のコンピューティングデバイス。
  32. 前記Set関数は、(1)前記グラフィックスカードの少なくとも1つの出力の設定を戻す出力ポートメソッド、(2)前記セキュアなグラフィックスカードおよび暗号プロセッサを含む信頼されるグラフィックスプラットフォームの第1の保護層によるウィンドウ内容のハッシュを戻す認証コードメソッド、(3)前記グラフィックスカードによってサポートされるDX−SECのバージョンを戻すDX−SECバージョンメソッド、(4)前記グラフィックスカードによってサポートされるセキュアサーフェスの数を戻すセキュアサーフェス数メソッド、(5)前記グラフィックスカードによってサポートされる重なったセキュアサーフェスの数を戻す重なったサーフェス数メソッド、(6)前記グラフィックスカードの将来の方法論に柔軟性を提供するプライマリタイプメソッド、(7)前記信頼されるグラフィックスプラットフォームのビデオメモリのプライマリサーフェスの幅、高さ、リフレッシュ速度、および色の深みを戻すジオメトリメソッド、(8)保護されるオーバーレイのある領域の位置およびサイズの少なくとも1つを設定するメソッド、(9)解読するプライマリサーフェスの小部分の位置およびサイズの少なくとも1つを設定するメソッド、の少なくとも1つを含むことを特徴とする請求項30に記載のコンピューティングデバイス。
  33. 前記内部インタフェースは前記暗号プロセッサと前記グラフィックスカードとのインタフェースをとり、それにより前記グラフィックスカードを破壊することなく、(1)前記暗号プロセッサが恒久的に前記グラフィックスカードに固定され、および(2)前記暗号プロセッサと前記グラフィックスカードの残りの部分との接続が公開されない、ことを特徴とする請求項28に記載のコンピューティングデバイス。
  34. (1)前記暗号プロセッサを前記グラフィックスカードにはんだ付けすること、および(2)前記暗号プロセッサが前記GPUと同じチップ上にあること、のいずれか1つを特徴とする請求項33に記載のコンピューティングデバイス。
  35. 前記複数のインデックスキーそれぞれが前記インデックスキーと関連付けられた目的パラメータに従って1回のみ使用され、インデックスキーに新しい値が埋められると前のキーの値が回復不可能な形で破棄されることを特徴とする請求項25に記載のコンピューティングデバイス。
  36. 目的パラメータの値は、
    オーバーレイサーフェスの暗号化との関連で利用されるDX−SECストリーム暗号に用いられるL1STREAMキーと、
    前記アプリケーションおよびデバイスの1つによって書かれたテクスチャブロックの解読に使用されるブロック暗号に用いられるL2BLOCKキーと
    を含むことを特徴とする請求項35に記載のコンピューティングデバイス。
  37. グラフィックスカードを有する信頼されるグラフィックスプラットフォームの使用との関連で認証を提供する方法であって、
    アプリケーションおよびデバイスの1つにより、グラフィックスカードに前記グラフィックスカードがセキュアなグラフィックスカードであることを証明するように要求することと、
    前記要求に応答して、鍵の移送のために前記信頼されるグラフィックスプラットフォームに組み込まれたセキュアな通信機構を介して前記アプリケーションおよびデバイスの1つにセッションキーを送ることと、
    を含み、
    それにより、前記アプリケーションおよびデバイスの1つは、セキュアなグラフィックスカードによる同一のアドレス空間への書き込みは前記グラフィックスカードのキーストアにマッピングされることを事前に知ることを特徴とする方法。
  38. 前記セキュアな通信機構が低帯域幅接続であることを特徴とする請求項37に記載の方法。
  39. グラフィックスカードを有する信頼されるグラフィックスプラットフォームの使用との関連で認証を提供する方法であって、
    保護された経路を介して前記信頼されるグラフィックスプラットフォームに大容量の暗号化データを送ることにより、アプリケーションおよびデバイスの1つがグラフィックスカードに前記グラフィックスカードがセキュアなグラフィックスカードであることを証明するように要求することと、
    前記要求に応答して、暗号処理装置を利用して前記大容量の暗号化データを解読し、それにより前記グラフィックスカードがセキュアなグラフィックスカードであることを証明することと、
    前記グラフィックスカードがセキュアなグラフィックスカードであることを前記アプリケーションおよびデバイスの1つに通知することと
    を含むことを特徴とする方法。
  40. 複数のコンピュータ実行可能命令が格納された少なくとも1つのコンピュータ可読媒体であって、前記複数のコンピュータ実行可能命令は、
    アプリケーションおよびデバイスの1つにより、グラフィックスカードに前記グラフィックスカードがセキュアなグラフィックスカードであることを証明するように要求する手段と、
    前記要求手段による要求に応答して、前記グラフィックスカードに通信的にかつ固定して結合された暗号プロセッサによりセッションキーを生成する手段と、前記セッションキーを前記アプリケーションおよびデバイスの1つに送信する手段と
    を含むことを特徴とするコンピュータ可読媒体。
  41. 前記グラフィックスカードの資源に対する要求との関連で前記セッションキーを前記グラフィックスカードに知らせる手段
    をさらに含むことを特徴とする請求項40に記載の少なくとも1つのコンピュータ可読媒体。
  42. 各暗号プロセッサが、一意の解読用の秘密鍵を含み、製造中に個別設定され保証されることを特徴とする請求項40に記載の少なくとも1つのコンピュータ可読媒体。
  43. 前記暗号プロセッサが、(1)既存のチップに前記暗号プロセッサを追加すること、および(2)前記暗号プロセッサを別個のチップとして前記グラフィックスカードに追加すること、のいずれか1つにより恒久的に前記グラフィックスカードに取り付けられ、
    それにより前記暗号プロセッサと前記グラフィックカードの残りの部分との物理接続がアクセス不可能になり、公開されないことを特徴とする請求項40に記載の少なくとも1つのコンピュータ可読媒体。
  44. 前記暗号プロセッサは、(1)前記セッションキー用のマルチビットの揮発性レジスタS、および(2)複数のインデックスキーの配列、を含むことを特徴とする請求項40に記載の少なくとも1つのコンピュータ可読媒体。
  45. 前記セッションキーの寿命は前記アプリケーションおよびデバイスの1つの実行時間であり、前記複数のキーそれぞれの寿命が前記アプリケーションおよびデバイスの1つからの命令によって決定されることを特徴とする請求項44に記載の少なくとも1つのコンピュータ可読媒体。
  46. 前記複数のインデックスキーそれぞれが、(1)前記アプリケーションおよびデバイスの1つを含むホストシステムの特定ウィンドウと関連付けられ、(2)前記ウィンドウの内容を解読するために前記グラフィックスカードによって使用されることを特徴とする請求項44に記載の少なくとも1つのコンピュータ可読媒体。
  47. 前記要求手段は、(1)前記アプリケーションおよびデバイスの1つとの外部インタフェース、および(2)前記グラフィックスカードのグラフィック処理装置(GPU)との内部インタフェース、のいずれか1つを介して前記暗号プロセッサとインタフェースをとる手段を含むことを特徴とする請求項40に記載の少なくとも1つのコンピュータ可読媒体。
  48. 前記外部インタフェースとのインタフェースをとる手段は、認証および鍵の移送のための秘密鍵暗号化プロトコルを使用することを含み、それにより前記認証および鍵の移送は、
    前記アプリケーションおよびデバイスの1つにより前記暗号プロセッサの公開鍵で前記セッションキーを暗号化し、それによりセッションキーのcryptoblobを生成する手段と、
    前記暗号プロセッサにより前記セッションキーのcryptoblobを受け取る手段と、
    前記暗号プロセッサにより前記暗号プロセッサの秘密鍵で前記セッションキーのcryptoblobを解読し、それにより前記セッションキーを得る手段と
    を含み、
    それにより、前記アプリケーションおよびデバイスの1つと前記暗号プロセッサが秘密を共有し、前記アプリケーションおよびデバイスの1つが前記セッションキーを使用して前記暗号プロセッサに命令を送ることが可能になることを特徴とする請求項47に記載の少なくとも1つのコンピュータ可読媒体。
  49. 前記外部インタフェースが関数セットを通じて前記暗号プロセッサにより公開され、前記セットは、
    前記暗号化手段、受け取り手段、および解読手段を呼び出し、それにより前記セッションキーを使用して、以降の前記アプリケーションおよびデバイスの1つと前記暗号プロセッサとのすべての通信をセキュアにするSet Session Key関数と、
    Set関数と、
    Get関数と
    を含み、
    前記アプリケーションおよびデバイスの1つと前記暗号プロセッサは前記Set関数およびGet関数を使用して通信し、Set関数およびGet関数のパラメータは機密性および保全性を暗号により保護されることを特徴とする請求項48に記載の少なくとも1つのコンピュータ可読媒体。
  50. 前記Get関数は、(1)前記インデックスによって識別されるキーレジスタに新しいキーと目的タグを書き込むインデックスキープロパティIDメソッド、(2)画面ジオメトリと前記グラフィックスカード出力を固定する出力ロックフラグをセットする出力ロックプロパティIDメソッド、および(3)前記セキュアなグラフィックスカードおよび暗号プロセッサを含む信頼されるグラフィックスプラットフォームによって提供されるビデオメモリ暗号化保護の層のキーの更新頻度を設定するL2KeyMgmtプロパティIDメソッド、の少なくとも1つを含むことを特徴とする請求項49に記載の少なくとも1つのコンピュータ可読媒体。
  51. 前記Set関数は、(1)前記グラフィックスカードの少なくとも1つの出力の設定を戻す出力ポートメソッド、(2)前記セキュアなグラフィックスカードおよび暗号プロセッサを含む信頼されるグラフィックスプラットフォームの第1の保護層によるウィンドウ内容のハッシュを戻す認証コードメソッド、(3)前記グラフィックスカードによってサポートされるDX−SECのバージョンを戻すDX−SECバージョンメソッド、(4)前記グラフィックスカードによってサポートされるセキュアサーフェスの数を戻すセキュアサーフェス数メソッド、(5)前記グラフィックスカードによってサポートされる重なったセキュアサーフェスの数を戻す重なったサーフェス数メソッド、(6)前記グラフィックスカードの将来の方法論に柔軟性を提供するプライマリタイプメソッド、(7)前記信頼されるグラフィックスプラットフォームのビデオメモリのプライマリサーフェスの幅、高さ、リフレッシュ速度、および色の深みを戻すジオメトリメソッド、(8)保護されるオーバーレイのある領域の位置およびサイズの少なくとも1つを設定するメソッド、(9)解読するプライマリサーフェスの小部分の位置およびサイズの少なくとも1つを設定するメソッド、の少なくとも1つを含むことを特徴とする請求項49に記載の少なくとも1つのコンピュータ可読媒体。
  52. 前記内部インタフェースとのインタフェースをとることは、前記暗号プロセッサと前記グラフィックスカードとのインタフェースをとることを含み、それにより前記グラフィックスカードを破壊することなく、(1)前記暗号プロセッサが恒久的に前記グラフィックスカードに固定され、および(2)前記暗号プロセッサと前記グラフィックスカードの残りの部分との接続が公開されない、ことを特徴とする請求項47に記載の少なくとも1つのコンピュータ可読媒体。
  53. (1)前記暗号プロセッサを前記グラフィックスカードにはんだ付けすること、および(2)前記暗号プロセッサが前記GPUと同じチップ上にあること、のいずれか1つを特徴とする請求項52に記載の少なくとも1つのコンピュータ可読媒体。
  54. 前記複数のインデックスキーそれぞれが、前記インデックスキーと関連付けられた目的パラメータに従って1回のみ使用され、インデックスキーに新しい値が埋められると前のキーの値が回復不可能な形で破棄されることを特徴とする請求項44に記載の少なくとも1つのコンピュータ可読媒体。
  55. 目的パラメータの値は、
    オーバーレイサーフェスの暗号化との関連で利用されるDX−SECストリーム暗号に用いられるL1STREAMキーと、
    前記アプリケーションおよびデバイスの1つによって書かれたテクスチャブロックの解読に使用されるブロック暗号に用いられるL2BLOCKキーと
    を含むことを特徴とする請求項54に記載の少なくとも1つのコンピュータ可読媒体。
  56. アプリケーションおよびデバイスの1つにより、グラフィックスカードに前記グラフィックスカードがセキュアなグラフィックスカードであることを証明するように要求する手段と、
    前記要求手段による要求に応答して、前記グラフィックスカードに通信的にかつ固定して結合された暗号プロセッサによりセッションキーを生成する手段と、前記セッションキーを前記アプリケーションおよびデバイスの1つに送信する手段と
    を含むことを特徴とするコンピューティングデバイスのオペレーティングシステム。
  57. 前記グラフィックスカードの資源に対する要求との関連で前記セッションキーを前記グラフィックスカードに知らせる手段
    をさらに含むことを特徴とする請求項56に記載のオペレーティングシステム。
  58. 各暗号プロセッサが、一意の解読用の秘密鍵を含み、製造中に個別設定され保証されることを特徴とする請求項56に記載のオペレーティングシステム。
  59. 前記暗号プロセッサが、(1)既存のチップに前記暗号プロセッサを追加すること、および(2)前記暗号プロセッサを別個のチップとして前記グラフィックスカードに追加すること、のいずれか1つにより恒久的に前記グラフィックスカードに取り付けられ、
    それにより前記暗号プロセッサと前記グラフィックスカードの残りの部分との物理接続がアクセス不可能となり、公開されないことを特徴とする請求項56に記載のオペレーティングシステム。
  60. 前記暗号プロセッサは、(1)前記セッションキー用のマルチビットの揮発性レジスタS、および(2)複数のインデックスキーの配列、を含むことを特徴とする請求項56に記載のオペレーティングシステム。
  61. 前記セッションキーの寿命は前記アプリケーションおよびデバイスの1つの実行時間であり、前記複数のキーそれぞれの寿命が前記アプリケーションおよびデバイスの1つからの命令によって決定されることを特徴とする請求項60に記載のオペレーティングシステム。
  62. 前記複数のインデックスキーそれぞれが、(1)前記アプリケーションおよびデバイスの1つを含むホストシステムの特定ウィンドウと関連付けられ、(2)前記ウィンドウの内容を解読するために前記グラフィックスカードによって使用されることを特徴とする請求項60に記載のオペレーティングシステム。
  63. 前記要求手段は、(1)前記アプリケーションおよびデバイスの1つとの外部インタフェース、および(2)前記グラフィックスカードのグラフィック処理装置(GPU)との内部インタフェース、のいずれか1つを介して前記暗号プロセッサとのインタフェースをとる手段を含むことを特徴とする請求項56に記載のオペレーティングシステム。
  64. 前記外部インタフェースとのインタフェースをとる手段は、認証および鍵の移送のために秘密鍵暗号化プロトコルを使用することを含み、それにより前記認証および鍵の移送は、
    前記アプリケーションおよびデバイスの1つにより前記暗号プロセッサの公開鍵で前記セッションキーを暗号化し、それによりセッションキーのcryptoblobを生成する手段と、
    前記暗号プロセッサにより前記セッションキーのcryptoblobを受け取る手段と、
    前記暗号プロセッサにより前記暗号プロセッサの秘密鍵で前記セッションキーのcryptoblobを解読し、それにより前記セッションキーを得る手段と
    を含み、
    それにより、前記アプリケーションおよびデバイスの1つと前記暗号プロセッサが秘密を共有し、前記アプリケーションおよびデバイスの1つが前記セッションキーを使用して前記暗号プロセッサに命令を送ることが可能になることを特徴とする請求項63に記載のオペレーティングシステム。
  65. 前記外部インタフェースが関数のセットを通じて前記暗号プロセッサにより公開され、前記セットは、
    前記暗号化手段、受け取り手段、および解読手段を呼び出し、それにより前記セッションキーを使用して、以降の前記アプリケーションおよびデバイスの1つと前記暗号プロセッサとのすべての通信をセキュアにするSet Session Key関数と、
    Set関数と、
    Get関数と
    を含み、
    前記アプリケーションおよびデバイスの1つと前記暗号プロセッサは前記Set関数およびGet関数を使用して通信し、Set関数およびGet関数のパラメータは機密性および保全性を暗号により保護されることを特徴とする請求項64に記載のオペレーティングシステム。
  66. 前記Get関数は、(1)前記インデックスによって識別されるキーレジスタに新しいキーと目的タグを書き込むインデックスキープロパティIDメソッド、(2)画面ジオメトリと前記グラフィックスカード出力を固定する出力ロックフラグをセットする出力ロックプロパティIDメソッド、および(3)前記セキュアなグラフィックスカードおよび暗号プロセッサを含む信頼されるグラフィックスプラットフォームによって提供されるビデオメモリ暗号化保護の層のキーの更新頻度を設定するL2KeyMgmtプロパティIDメソッド、の少なくとも1つを含むことを特徴とする請求項65に記載のオペレーティングシステム。
  67. 前記Set関数は、(1)前記グラフィックスカードの少なくとも1つの出力の設定を戻す出力ポートメソッド、(2)前記セキュアなグラフィックスカードおよび暗号プロセッサを含む信頼されるグラフィックスプラットフォームの第1の保護層によるウィンドウ内容のハッシュを戻す認証コードメソッド、(3)前記グラフィックスカードによってサポートされるDX−SECのバージョンを戻すDX−SECバージョンメソッド、(4)前記グラフィックスカードによってサポートされるセキュアサーフェスの数を戻すセキュアサーフェス数メソッド、(5)前記グラフィックスカードによってサポートされる重なったセキュアサーフェスの数を戻す重なったサーフェス数メソッド、(6)前記グラフィックスカードの将来の方法論に柔軟性を提供するプライマリタイプメソッド、(7)前記信頼されるグラフィックスプラットフォームのビデオメモリのプライマリサーフェスの幅、高さ、リフレッシュ速度、および色の深みを戻すジオメトリメソッド、(8)保護されるオーバーレイのある領域の位置およびサイズの少なくとも1つを設定するメソッド、および(9)解読するプライマリサーフェスの小部分の位置およびサイズの少なくとも1つを設定するメソッド、の少なくとも1つを含むことを特徴とする請求項65に記載のオペレーティングシステム。
  68. 前記内部インタフェースとのインタフェースをとることは、前記暗号プロセッサと前記グラフィックスカードとのインタフェースをとることを含み、それにより前記グラフィックスカードを破壊することなく、(1)前記暗号プロセッサが恒久的に前記グラフィックスカードに固定され、および(2)前記暗号プロセッサと前記グラフィックスカードの残りの部分との接続が公開されない、ことを特徴とする請求項63に記載のオペレーティングシステム。
  69. (1)前記暗号プロセッサを前記グラフィックスカードにはんだ付けすること、および(2)前記暗号プロセッサが前記GPUと同じチップ上にあること、のいずれか1つを特徴とする請求項68に記載のオペレーティングシステム。
  70. 前記複数のインデックスキーそれぞれが、前記インデックスキーと関連付けられた目的パラメータに従って1回のみ使用され、インデックスキーに新しい値が埋められると前のキーの値が回復不可能な形で破棄されることを特徴とする請求項60に記載のオペレーティングシステム。
  71. 目的パラメータの値は、
    オーバーレイサーフェスの暗号化との関連で利用されるDX−SECストリーム暗号に用いられるL1STREAMキーと、
    前記アプリケーションおよびデバイスの1つによって書かれたテクスチャブロックの解読に使用されるブロック暗号に用いられるL2BLOCKキーと
    を含むことを特徴とする請求項70に記載のオペレーティングシステム。
JP2003114938A 2002-04-18 2003-04-18 グラフィックシステムのコンポーネント認証方法およびシステム Expired - Fee Related JP4807925B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/125,170 2002-04-18
US10/125,170 US7380130B2 (en) 2001-12-04 2002-04-18 Methods and systems for authentication of components in a graphics system

Publications (2)

Publication Number Publication Date
JP2004007603A true JP2004007603A (ja) 2004-01-08
JP4807925B2 JP4807925B2 (ja) 2011-11-02

Family

ID=22418498

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003114938A Expired - Fee Related JP4807925B2 (ja) 2002-04-18 2003-04-18 グラフィックシステムのコンポーネント認証方法およびシステム

Country Status (15)

Country Link
US (1) US7380130B2 (ja)
EP (1) EP1355218A3 (ja)
JP (1) JP4807925B2 (ja)
KR (1) KR101030354B1 (ja)
CN (1) CN1474281A (ja)
AU (1) AU2003203718B2 (ja)
BR (1) BR0300935A (ja)
CA (1) CA2425478A1 (ja)
MX (1) MXPA03003317A (ja)
MY (1) MY144077A (ja)
NO (1) NO327641B1 (ja)
PL (1) PL359753A1 (ja)
RU (1) RU2310227C2 (ja)
TW (1) TWI265418B (ja)
ZA (1) ZA200302657B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102695023A (zh) * 2011-03-23 2012-09-26 宏碁股份有限公司 视频信号处理系统与方法

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7849301B2 (en) * 2001-12-12 2010-12-07 Intel Corporation Providing a user input interface prior to initiation of an operating system
US6908032B1 (en) * 2002-01-22 2005-06-21 Diebold, Incorporated Automated teller machine, software and distribution method
US6779717B1 (en) * 2002-01-22 2004-08-24 Diebold Self-Service Systems A Division Of Diebold, Incorporated Automated teller machine, software and distribution method
US6854645B1 (en) * 2002-01-22 2005-02-15 Diebold, Incorporated Automated teller machine, software and distribution method
US7474312B1 (en) * 2002-11-25 2009-01-06 Nvidia Corporation Memory redirect primitive for a secure graphics processing unit
US8141159B2 (en) 2002-12-31 2012-03-20 Portauthority Technologies Inc. Method and system for protecting confidential information
US8749561B1 (en) * 2003-03-14 2014-06-10 Nvidia Corporation Method and system for coordinated data execution using a primary graphics processor and a secondary graphics processor
JP2006279644A (ja) * 2005-03-30 2006-10-12 Fujitsu Ltd 暗号化システム、暗号化装置、復号化装置、暗号化・復号化方法、暗号化方法および復号化方法
US7562224B2 (en) * 2005-04-04 2009-07-14 Cisco Technology, Inc. System and method for multi-session establishment for a single device
JP4116024B2 (ja) * 2005-07-29 2008-07-09 株式会社ソニー・コンピュータエンタテインメント ペリフェラルの使用管理方法、電子システム及びその構成装置
US20070189520A1 (en) * 2006-01-10 2007-08-16 Utbk, Inc. Systems and Methods to Facilitate Transition from Communication to Commerce
US8775704B2 (en) 2006-04-05 2014-07-08 Nvidia Corporation Method and system for communication between a secondary processor and an auxiliary display subsystem of a notebook
US8261064B2 (en) * 2007-02-27 2012-09-04 L-3 Communications Corporation Integrated secure and non-secure display for a handheld communications device
US8019151B2 (en) * 2007-06-11 2011-09-13 Visualization Sciences Group, Inc. Methods and apparatus for image compression and decompression using graphics processing unit (GPU)
US8564598B2 (en) * 2007-08-15 2013-10-22 Nvidia Corporation Parallelogram unified primitive description for rasterization
US20090067629A1 (en) * 2007-09-06 2009-03-12 Paltronics, Inc. Table-based encryption/decryption techniques for gaming networks, and gaming networks incorporating the same
US7929707B1 (en) * 2007-09-06 2011-04-19 Elcomsoft Co. Ltd. Use of graphics processors as parallel math co-processors for password recovery
IL187043A0 (en) * 2007-10-30 2008-02-09 Sandisk Il Ltd Secure pipeline manager
US20090172331A1 (en) * 2007-12-31 2009-07-02 Balaji Vembu Securing content for playback
US8646052B2 (en) * 2008-03-31 2014-02-04 Intel Corporation Method and apparatus for providing a secure display window inside the primary display
US20090319933A1 (en) * 2008-06-21 2009-12-24 Microsoft Corporation Transacted double buffering for graphical user interface rendering
US8736617B2 (en) * 2008-08-04 2014-05-27 Nvidia Corporation Hybrid graphic display
US20100186095A1 (en) * 2009-01-20 2010-07-22 Microsoft Corporation Method and system for gap based anti-piracy
US9075559B2 (en) * 2009-02-27 2015-07-07 Nvidia Corporation Multiple graphics processing unit system and method
US8521821B2 (en) * 2009-03-17 2013-08-27 Brigham Young University Encrypted email based upon trusted overlays
TW201040678A (en) * 2009-05-13 2010-11-16 Acrosser Technology Co Ltd Multi-point universal encryption transmission interface apparatus
US9135675B2 (en) * 2009-06-15 2015-09-15 Nvidia Corporation Multiple graphics processing unit display synchronization system and method
US8766989B2 (en) * 2009-07-29 2014-07-01 Nvidia Corporation Method and system for dynamically adding and removing display modes coordinated across multiple graphics processing units
US8780122B2 (en) * 2009-09-16 2014-07-15 Nvidia Corporation Techniques for transferring graphics data from system memory to a discrete GPU
US9111325B2 (en) * 2009-12-31 2015-08-18 Nvidia Corporation Shared buffer techniques for heterogeneous hybrid graphics
US20110169844A1 (en) * 2009-09-16 2011-07-14 Nvidia Corporation Content Protection Techniques on Heterogeneous Graphics Processing Units
US20110161675A1 (en) * 2009-12-30 2011-06-30 Nvidia Corporation System and method for gpu based encrypted storage access
US8560453B2 (en) * 2011-06-30 2013-10-15 Intel Corporation Method and apparatus for dynamic, real-time ad insertion based on meta-data within a hardware based root of trust
US20130166922A1 (en) * 2011-12-23 2013-06-27 Ati Technologies Ulc Method and system for frame buffer protection
EP2798567A4 (en) * 2011-12-29 2015-08-12 Intel Corp METHOD FOR RESTRICTING DIGITAL ENTERPRISE INFORMATION WITHIN THE LIMITS OF THE COMPANY
CN103327485A (zh) * 2012-03-23 2013-09-25 辉达公司 无线传输内容的方法及系统
US8910307B2 (en) * 2012-05-10 2014-12-09 Qualcomm Incorporated Hardware enforced output security settings
US20140012704A1 (en) 2012-07-05 2014-01-09 Google Inc. Selecting a preferred payment instrument based on a merchant category
US9092767B1 (en) 2013-03-04 2015-07-28 Google Inc. Selecting a preferred payment instrument
US20160050069A1 (en) * 2013-03-28 2016-02-18 Nick Pelis Method and system for media path security
US9818379B2 (en) 2013-08-08 2017-11-14 Nvidia Corporation Pixel data transmission over multiple pixel interfaces
US9858572B2 (en) 2014-02-06 2018-01-02 Google Llc Dynamic alteration of track data
US9729320B2 (en) * 2014-02-25 2017-08-08 Cavium, Inc. Apparatus and method for software enabled access to protected hardware resources
US9426130B2 (en) 2014-07-21 2016-08-23 Xiaomi Inc. Methods, devices and systems for anti-counterfeiting authentication
CN104158659B (zh) * 2014-07-21 2015-11-11 小米科技有限责任公司 防伪验证方法、装置和系统
US9558373B2 (en) * 2014-12-08 2017-01-31 Nxp Usa, Inc. 3D graphics system using encrypted texture tiles
FR3038420B1 (fr) * 2015-06-30 2017-08-25 Oberthur Technologies Dispositif et procede de traitement cryptographique de donnees
CN105187922A (zh) * 2015-07-27 2015-12-23 天脉聚源(北京)科技有限公司 一种更新互动信息的方法及装置
TWI572219B (zh) * 2015-11-09 2017-02-21 Chaoyang Univ Of Tech Wireless control device with safety encryption protection
US10511578B2 (en) * 2016-03-04 2019-12-17 Intel Corporation Technologies for secure content display with panel self-refresh
CN106789985B (zh) * 2016-12-08 2019-11-12 武汉斗鱼网络科技有限公司 基于gpu算法的客户端验证方法及系统
RU2634179C1 (ru) 2016-12-12 2017-10-24 Акционерное общество "Лаборатория Касперского" Способ и система для доверенного доведения информации до пользователя
TWI648979B (zh) * 2017-08-02 2019-01-21 中華電信股份有限公司 Authentication method and system thereof
US11443072B2 (en) * 2018-06-29 2022-09-13 Microsoft Technology Licensing, Llc Peripheral device with resource isolation
US11126757B2 (en) 2018-10-19 2021-09-21 Microsoft Technology Licensing, Llc Peripheral device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08278750A (ja) * 1995-03-31 1996-10-22 Internatl Business Mach Corp <Ibm> 公開キー暗号法を用いたデータ暗号化の装置及び方法
US5825879A (en) * 1996-09-30 1998-10-20 Intel Corporation System and method for copy-protecting distributed video content
JPH118620A (ja) * 1997-04-18 1999-01-12 Sun Microsyst Inc 通信チャネルの認証を効率的に実施し、不正な変更の検出を容易にするシステムおよび方法
WO2001023980A1 (en) * 1999-09-25 2001-04-05 Hewlett-Packard Company Trusted computing platform for restricting use of data

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5175830A (en) * 1989-06-16 1992-12-29 International Business Machines Corporation Method for executing overlays in an expanded memory data processing system
US5596718A (en) * 1992-07-10 1997-01-21 Secure Computing Corporation Secure computer network using trusted path subsystem which encrypts/decrypts and communicates with user through local workstation user I/O devices without utilizing workstation processor
US6101276A (en) * 1996-06-21 2000-08-08 Compaq Computer Corporation Method and apparatus for performing two pass quality video compression through pipelining and buffer management
US5920861A (en) * 1997-02-25 1999-07-06 Intertrust Technologies Corp. Techniques for defining using and manipulating rights management data structures
US5898779A (en) * 1997-04-14 1999-04-27 Eastman Kodak Company Photograhic system with selected area image authentication
US6167136A (en) * 1997-05-16 2000-12-26 Software Security, Inc. Method for preventing copying of digital video disks
JP4273535B2 (ja) * 1998-05-12 2009-06-03 ソニー株式会社 データ伝送制御方法、データ伝送システム、データ受信装置及びデータ送信装置
JP3380194B2 (ja) 1998-10-16 2003-02-24 松下電器産業株式会社 デジタル著作物保護システム
US6138239A (en) * 1998-11-13 2000-10-24 N★Able Technologies, Inc. Method and system for authenticating and utilizing secure resources in a computer system
US6289459B1 (en) * 1999-01-20 2001-09-11 Intel Corporation Processor unique processor number feature with a user controllable disable capability
US6330624B1 (en) 1999-02-09 2001-12-11 International Business Machines Corporation Access limiting to only a planar by storing a device public key only within the planar and a planar public key only within the device
US6289455B1 (en) * 1999-09-02 2001-09-11 Crypotography Research, Inc. Method and apparatus for preventing piracy of digital content
US6449719B1 (en) * 1999-11-09 2002-09-10 Widevine Technologies, Inc. Process and streaming server for encrypting a data stream
US6704868B1 (en) * 1999-11-12 2004-03-09 International Business Machines Corporation Method for associating a pass phase with a secured public/private key pair
US7007304B1 (en) * 2000-09-20 2006-02-28 Intel Corporation Method and apparatus to improve the protection of information presented by a computer
US20030079222A1 (en) * 2000-10-06 2003-04-24 Boykin Patrick Oscar System and method for distributing perceptually encrypted encoded files of music and movies
US6957340B1 (en) * 2000-11-28 2005-10-18 Xilinx, Inc. Encryption key for multi-key encryption in programmable logic device
US20020150248A1 (en) * 2001-03-06 2002-10-17 Kovacevic Branko D. System for digital stream reception via memory buffer and method thereof
US7055038B2 (en) * 2001-05-07 2006-05-30 Ati International Srl Method and apparatus for maintaining secure and nonsecure data in a shared memory system
GB2377137B (en) * 2001-06-27 2004-10-20 Hewlett Packard Co Network appliances
GB2382419B (en) * 2001-11-22 2005-12-14 Hewlett Packard Co Apparatus and method for creating a trusted environment
US7216369B2 (en) * 2002-06-28 2007-05-08 Intel Corporation Trusted platform apparatus, system, and method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08278750A (ja) * 1995-03-31 1996-10-22 Internatl Business Mach Corp <Ibm> 公開キー暗号法を用いたデータ暗号化の装置及び方法
US5825879A (en) * 1996-09-30 1998-10-20 Intel Corporation System and method for copy-protecting distributed video content
JPH118620A (ja) * 1997-04-18 1999-01-12 Sun Microsyst Inc 通信チャネルの認証を効率的に実施し、不正な変更の検出を容易にするシステムおよび方法
WO2001023980A1 (en) * 1999-09-25 2001-04-05 Hewlett-Packard Company Trusted computing platform for restricting use of data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102695023A (zh) * 2011-03-23 2012-09-26 宏碁股份有限公司 视频信号处理系统与方法

Also Published As

Publication number Publication date
KR20030082930A (ko) 2003-10-23
NO20031581D0 (no) 2003-04-08
RU2310227C2 (ru) 2007-11-10
JP4807925B2 (ja) 2011-11-02
CN1474281A (zh) 2004-02-11
KR101030354B1 (ko) 2011-04-20
US7380130B2 (en) 2008-05-27
ZA200302657B (en) 2003-10-14
TW200404212A (en) 2004-03-16
EP1355218A2 (en) 2003-10-22
AU2003203718A1 (en) 2003-11-06
PL359753A1 (en) 2003-10-20
TWI265418B (en) 2006-11-01
MY144077A (en) 2011-08-15
BR0300935A (pt) 2004-08-17
MXPA03003317A (es) 2004-10-29
EP1355218A3 (en) 2005-01-26
US20030200435A1 (en) 2003-10-23
NO20031581L (no) 2003-10-20
CA2425478A1 (en) 2003-10-18
NO327641B1 (no) 2009-09-07
AU2003203718B2 (en) 2010-01-28

Similar Documents

Publication Publication Date Title
JP4807925B2 (ja) グラフィックシステムのコンポーネント認証方法およびシステム
JP4522645B2 (ja) セキュアコンテンツを暗号的に保護する方法およびシステム
AU2009329836B2 (en) Digital video guard
CA2771080C (en) Secure media path methods, systems, and architecture
EP1582962A2 (en) Methods and systems for protecting media content
US20100053180A1 (en) Method and system for cryptographically securing a graphics system
CN109168085B (zh) 一种设备客户端视频流硬件保护方法
RU2308077C2 (ru) Способы и системы для криптографической защиты охраняемого содержимого

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060413

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091106

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101005

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110125

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110425

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110428

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110722

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110809

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110816

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140826

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees