JP4504623B2 - セキュア・ビデオ・カード方法およびシステム - Google Patents

セキュア・ビデオ・カード方法およびシステム Download PDF

Info

Publication number
JP4504623B2
JP4504623B2 JP2003006414A JP2003006414A JP4504623B2 JP 4504623 B2 JP4504623 B2 JP 4504623B2 JP 2003006414 A JP2003006414 A JP 2003006414A JP 2003006414 A JP2003006414 A JP 2003006414A JP 4504623 B2 JP4504623 B2 JP 4504623B2
Authority
JP
Japan
Prior art keywords
video card
memory
data
protected
video
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.)
Expired - Fee Related
Application number
JP2003006414A
Other languages
English (en)
Other versions
JP2003289500A (ja
Inventor
エフ.エバンス グレン
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 JP2003289500A publication Critical patent/JP2003289500A/ja
Application granted granted Critical
Publication of JP4504623B2 publication Critical patent/JP4504623B2/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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/84Protecting input, output or interconnection devices output devices, e.g. displays or monitors

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Signal Processing For Recording (AREA)
  • Heat Treatment Of Steel (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ビデオ・カードを使用してビデオ・データを処理するための方法およびシステムに関し、より詳細にはセキュア(正常なビデオ・データの取出し防止機能付き)ビデオ・カード方法およびシステムに関する。
【0002】
【従来の技術】
一般に、映画スタジオなどのコンテンツ作者またはWeb上にコンテンツを発表するユーザは、どのようなユーザがそれを見ることができるかについて制限を有するビデオ・コンテンツを発表することになる。このコンテンツは一般に、パーソナル・コンピュータなどのコンピュータ上で表示またはレンダリングすることができる。こうしたビデオ・コンテンツを盗み、または他の方法で不当に取得しようとする不道徳な個人または組織によって、毎年莫大な時間、努力、および金額が費やされている。
【0003】
攻撃するそのポイントの1つが、こうしたビデオ・コンテンツが表示されたり、またはレンダリングされたりするコンピュータである。すなわち、不正なプログラムまたはデバイス(rogue programs or devices)は、ビデオ・コンテンツがパーソナル・コンピュータなどのコンピュータ上でいったん受け取られた後で、これを不当に取得することが可能であり、しばしばそれを試行する。コンピュータ構成要素の中でもとりわけ、ビデオ・コンテンツを処理するビデオ・カード、および/またはビデオ・カードとの間でビデオ・コンテンツを移送するバスに対して、この攻撃が行われる傾向がある。
【0004】
図1は、典型的なコンピュータ上のポートに挿入するバス・コネクタ102を含むビデオ(またはグラフィック)カード100の一例を示す図である。ビデオ・カード100はまた、モニタに接続するケーブルを受け入れるモニタ・コネクタ104(たとえば15ピンプラグ)を含む。ビデオ・カード100は、ビデオ画像をLCDおよびフラット・パネル・モニタなどに送信するために使用可能なデジタル・ビデオ出力ソケット106を含むことができる。
【0005】
現代のビデオ・カードは、グラフィック処理ユニット(GPU)108、ビデオ・メモリ110、ランダム・アクセス・メモリ・デジタル/アナログ変換器(RAMDAC)112、およびビデオBIOS114に格納できるドライバ・ソフトウェアという、4つの主構成要素からなる。
【0006】
GPU108は、解像度、色の濃さ、およびモニタ・スクリーン上への画像のレンダリングに関連付けられたすべての要素、のすべての面を制御する専用のグラフィック処理チップである。コンピュータの中央処理ユニットすなわちCPU(図示せず)は描画命令およびデータのセットを送信し、これらがグラフィック・カードが専有するドライバ(graphics card's proprietary driver)によって解釈(interpret)され、カードのGPU108によって実行される。GPU108は、ビットマップの転送およびペインティング、ウィンドウのサイズ変更および再位置決め、描線(line drawing)、フォントの拡大縮小(font scaling)、ならびに多角形描画(polygon drawing)などのオペレーションを実行する。GPU108は、システムのCPUでのソフトウェアの実行よりもはるかに速い速度でこれらのタスクをハードウェア上で処理するように設計されている。次にGPUは、フレーム・データをフレーム・バッファ(またはオンボード・ビデオ・メモリ110)に書き込む。GPUは、システムのCPUの作業負荷を大幅に削減する。
【0007】
ビデオ画像を保持するメモリはフレーム・バッファとも呼ばれ、通常はビデオ・カードそれ自体に実装される。この例では、フレーム・バッファはビデオ・カード上にメモリ110の形で実装される。初期のシステムは、ビデオ・メモリを標準DRAMで実装していた。しかしこれは、データが失われることがないようにデータを絶え間なくリフレッシュし続けることを必要とし、このリフレッシュ・プロセス中は変更することができない。その結果、特に現代のグラフィック・カードが要求する超高速のクロック・スピードでは、性能が著しく低下することになる。
【0008】
ビデオ・カードそれ自体の上にビデオ・メモリを実装することの利点は、それ特有のタスク向けにカスタマイズできることであり、実際、これによって次のような新しいメモリ技術が普及する結果となった。
−ビデオRAM(VRAM):特殊タイプのデュアル・ポートDRAMであり、読取りと書込みを同時に実行できる。必要とするリフレッシュ頻度は、通常のDRAMに比べてはるかに少なく、その結果、かなりの性能を発揮する。
−Windows(登録商標)RAM(WRAM):Matrox Millenniumカードとして使用されるように、これもデュアル・ポートであり、従来のVRAMよりもわずかに早く実行することができる。
−EDO DRAM:DRAMよりも高い帯域幅を提供し、通常のDRAMよりも高くクロックすることが可能であり、読取り/書込みサイクルをより効率良く管理することができる。
−SDRAM:データのラッチに使用される共通クロックでメモリおよびグラフィック・チップが動作し、SDRAMを正規のEDO RAMよりも高速に動作できるようにすることを除いて、EDO RAMと同様である。
−SGRAM:SDRAMと同様であるが、ブロック書込みおよびビットごと書込みもサポートしており、これがこれらの拡張機能をサポートするグラフィック・チップの性能を向上させる。
−DRDRAM:ダイレクトRDRAMは、従来のDRAMの20倍の性能向上を約束する、まったく新しい汎用メモリ・アーキテクチャである。
【0009】
設計によっては、グラフィック回路をマザー・ボードそれ自体中に集積し、フレーム・バッファ用にシステムのRAMの一部を使用するものがある。これは「UMA(unified memory architecture)」と呼ばれ、コスト削減のためだけに使用され、グラフィックス性能を低下させる可能性がある。
【0010】
ビデオ・メモリ・フレーム・バッファ内の情報は、デジタル・ビットマップとして格納された、スクリーン上に表示される画像(image)である。しかし、ビデオ・メモリがデジタル情報を含むのに対して、その出力媒体であるモニタはアナログ信号を使用することがある。アナログ信号は、モニタ前面を横断し下方に走査されるように電子銃を発射しなければならない場所、時点、および強度を決定するのに使用されるので、アナログ信号は単なる「オン」信号または「オフ」信号以上のものを必要とする。そこで、RAMDAC112が以下のように動作を開始する。RAMDACはLCDモニタなどのデジタル・ディスプレイ用のデジタル・ビデオ・インターフェース(DVI)出力もサポートする。こうした構成では、RAMDACは内部デジタル表現をデジタル・ディスプレイが理解可能な形式に変換する。
【0011】
RAMDACは、内部デジタル・データをディスプレイが理解する形式に変換するため、「ディスプレイ変換器」の役割を果たす。
【0012】
特定解像度にはビデオ・カードにインストールされたビデオ・メモリ量のすべてを必要とはしない場合もあるが、GPU108に向けられた情報をキャッシュするために余分なメモリが使用されることが多い。たとえば、テキスト・フォントおよびアイコンまたは画像などの通常使用されるグラフィカル・アイテムをキャッシュすることによって、新しい文字が書き込まれる、またはアイコンが移動するたびにグラフィック・サブ・システムがこれらをロードする必要がなくなり、それにより性能が向上する。キャッシュされた画像はGPUによって提示されるべき画像のシーケンスを待ち行列に入れるのに使用することが可能であり、それによって他のタスクを実行するためにCPUが解放される。
【0013】
RAMDAC112は、1秒間に何回もビデオ・メモリのコンテンツを読み取り、これを信号に変換してビデオ・ケーブルを介してモニタに送信する。アナログ・ディスプレイの場合、典型的には、完全な色のスペクトルを作成するためにCRTが使用する3原色のそれぞれについて1つのデジタル−アナログ変換器(DAC)がある。デジタル・ディスプレイの場合、RAMDACは、出力デバイスによって解釈および表示される単一のRGBデータストリームを出力する。意図された結果は、1つのピクセルの色を作成するために必要な正しい混合である。RAMDAC112が情報を変換できる速度およびGPU108それ自体の設計が、グラフィック・カードがサポート可能なリフレッシュ速度の範囲を指示する。RAMDAC112は、内部アーキテクチャに応じて所与の解像度で使用可能な色の数も指示する。
【0014】
バス・コネクタ102は、ビデオ・カードとの接続に使用される1つまたは複数のバスをサポートすることができる。たとえば、AGP(Accelerated Graphics Port)バスは、ビデオ・カードがシステム・メモリにダイレクトにアクセスできるようにするものである。ダイレクト・メモリ・アクセスは、ピーク帯域幅をPCI(Peripheral Component Interconnect)バスの何倍も高くするのに役立つ。これによって、ビデオ・カードのGPUがシステム・メモリにアクセスする間に、システムのCPUは他のタスクを実行できるようになる。
【0015】
オペレーション時には、オンボード・ビデオ・メモリに格納されたデータをコンピュータのシステム・メモリに提供し、システムのメモリの一部であるかのように管理することができる。これには、コンピュータのメモリ管理が使用する仮想メモリの管理技法などが含まれる。さらに、システムのメモリに格納されたデータがビデオ・カードでのグラフィック・オペレーションに必要な場合、データはバス(PCIまたはAGPバスなどの)を介してビデオ・カードに送信し、オンボード・ビデオ・メモリ110に格納することができる。そこで、前述のようにGPU108を介してデータにアクセスし操作することができる。
【0016】
システム・メモリからビデオ・カード上のビデオ・メモリにデータが転送される場合、およびその逆の場合、PCIバスに接続されたPCIデバイスは転送時のデータを「聞き取る(listen)」ことができる。さらにPCIバスは、ビデオ・メモリがあたかもシステム・メモリ同様に存在しているかのように、残りのシステムに対して「見える」ようにする。その結果、PCIデバイスはPCIバスを獲得し、ビデオ・メモリのコンテンツを他のデバイスに完全にコピーすることができる。PCIデバイスが着信ビデオと同期されている場合は、潜在的にはすべてのコンテンツを取り込むことができる。
【0017】
コンテンツがビデオ・カードのビデオ・メモリ内にいったん入ると、コンテンツを保護する以前のオプションは2つある。
【0018】
第1に、ビデオ・メモリはアクセス可能のままとすることができるが、コンテンツは保護された暗号化形式で格納されるため、不正デバイスおよびアプリケーションが解釈ことはできない。これによってデータの読取りは防止されるが、データを暗号化形式で継続的に維持することも必要である。ビデオ・カード(すなわちGPU)がデータを処理しようとする場合、読取り時に自動的に復号、処理し、ビデオ・メモリに再書込みするたびに再暗号化しなければならない。ビデオ・データでは、圧縮解除されたデータは表示するだけで毎秒300mb(メガビット)以上を必要とする可能性がある。したがって、暗号器/復号器はこれらの高いデータ・レートで動作する必要がある。典型的には、いくつかのビデオ・ストリームが単一の出力ストリームに処理されることになる。たとえば、ピクチャ・イン・ピクチャ(PIP)またはマルチ・チャネル・ディスプレイは、8つのチャネルを単一のディスプレイに混合する。これには、毎秒300mb(合計毎秒約2.4ギガ・バイト)で動作する8つの同時復号器および1つの暗号器が必要となる。したがって、この方法(approach)は計算要件が高度なことからあまり望ましくない。
【0019】
第2に、ビデオ・メモリのコンテンツまたはデータを単にアクセス不能にすることができる。これは典型的には、ビデオ・メモリが物理メモリにマッピングされている(すなわち正規のシステム・メモリであるかのように見える)ため、PCIおよびAGPバスの設計により不可能である。したがって、ビデオ・メモリは任意のPCIデバイスにアクセス可能であり、その後これがPCIバスを取得してCPUが知ることなくデータ転送を実行することができる。したがって、メモリ制御装置(またはGPU)が、そのメモリにアクセスしているものを確実には特定できないことから、この方法(approach)はあまり望ましくない。
【0020】
したがって、正常なビデオ(あるいはグラフィック)データの取出し防止機能のあるビデオ処理システムおよび方法(secure video processing systems and methods)の提供に関連付けられた問題から本発明が生まれた。
【0021】
【発明が解決しようとする課題】
本発明は、このような問題に鑑みてなされたもので、その目的とするところはビデオまたはグラフィック・カード上で使用するように意図されたデータ、およびビデオまたはグラフィック・カード上で処理されたデータ、を保護するための方法およびシステム、すなわち、正常なビデオ(あるいはグラフィック)データの取出し防止機能のあるビデオ処理システムおよび方法(secure video processing systems and methods)を提供することにある。
【0022】
【課題を解決するための手段】
様々な実施形態で、ビデオ・カードとコンピュータ・システムとの間のバス(たとえばPCIまたはAGPバス)にデータが提供されるときには常に、そのデータが暗号化されるように、ビデオ・カードによって使用されるように意図されたデータは選択的に暗号化されることが可能である。たとえば、データがビデオ・カード上のメモリからシステムのメモリに移動される場合(たとえばシステム物理メモリにマッピングされる場合)およびその逆の場合には、データは、暗号化形式であり、要するに保護される。
【0023】
ビデオ・カード上でグラフィック処理ユニット(GPU)によって処理するために、暗号化データがシステムのメモリからビデオ・カードに転送される場合、暗号化データは復号されてビデオ・カードの保護メモリ内に配置されることができる。
【0024】
一実施形態では、ビデオ・カードは保護された複数のメモリ部分を有する。暗号/復号鍵ペアが保護されたそれぞれのメモリ部分に関連付けられている。暗号化データがビデオ・カード上で受け取られると、そのデータは、復号されたデータが書き込まれる保護されたメモリ部分に関連付けられた復号鍵を使用して自動的に復号される。その後GPUは、復号されたデータに基づいて自由に動作できる。データが、保護されていないメモリ部分または物理的にビデオ・カード上にないメモリに移動される場合、データは関連付けられた暗号鍵を使用して暗号化され、その後に移動することができる。データは、それが転送されるときに暗号化することができるため、暗号化された画像全体を送信するまでキャッシュしておく必要はない。
【0025】
他の実施形態では、暗号化されたデータはビデオ・カード上に受け取られ、保護されていないメモリ部分に配置される。その後データは、ビデオ・カード上のメモリの保護されている部分に復号されることができる。その後復号されたデータは、GPUによって動作可能となる。ビデオ・カードのメモリの保護されていない部分、またはたとえばシステム・メモリ内のビデオ・カードから離れたところにデータが移動される場合、データを再暗号化することができる。
【0026】
したがって、データが攻撃の対象となる可能性のあるバス(たとえば、PCIバスまたはAGPバス)上に配置されるときには常にデータが暗号化され、その結果、データが保護されることを確実にすることにより、様々な実施形態がデータを保護することができる。
【0027】
【発明の実施の形態】
コンピュータ・システムの例
図2は、以下に記載したシステムおよび関連する方法が実施可能な好適なコンピューティング環境200の一例を示す図である。
【0028】
コンピューティング環境200は、好適なコンピューティング環境の一例に過ぎず、メディア処理システム(media processing system)の使用範囲または機能に関して、どんな制限をも示唆するように意図されてはいない。さらにコンピューティング環境200は、例示的なコンピューティング環境200に示された任意の一構成要素またはその組合せに関するどんな依存性または要件をも有するものとしても解釈されるべきではない。
【0029】
記載された様々な実施形態は、他の多数の汎用または特定用途向けコンピューティング・システム環境または構成で動作可能である。メディア処理システムで使用するのに好適な可能性のあるよく知られたコンピューティング・システム、環境、および/または構成の例には、パーソナル・コンピュータ、サーバ・コンピュータ、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチ・プロセッサ・システム、マイクロ・プロセッサ・ベース・システム、セットトップボックス、プログラム可能大衆消費電子製品、ネットワークPC、ミニ・コンピュータ、メイン・フレーム・コンピュータ、上記システムまたはデバイスのうちいずれかを含む分散コンピューティング環境などが含まれるが、これらに限定されるものではない。
【0030】
一定の実施態様では、システムおよび関連方法を、コンピュータによって実施されるプログラム・モジュールなどのコンピュータ実行可能命令の一般的なコンテキストで首尾良く記載することができる。一般に、プログラム・モジュールには、特定のタスクを実行するかまたは特定の抽象データ・タイプを実施するルーチン、プログラム、オブジェクト、構成要素、データ構造などが含まれる。実施形態は、通信ネットワークを介してリンクされるリモート処理デバイスによってタスクが実行される分散コンピューティング環境でも実施可能である。分散コンピューティング環境では、プログラム・モジュールは、メモリ記憶デバイスを含むローカルとリモートの両方のコンピュータ記憶媒体に配置することができる。
【0031】
図2に示された実施形態の例によれば、コンピューティング・システム200は、1つまたは複数の処理装置または処理ユニット202、システム・メモリ204、およびシステム・メモリ204を含む様々なシステム構成要素を処理装置202に結合するバス206を備えるように示される。
【0032】
バス206は、様々なバス・アーキテクチャのうちのいずれかを使用する、メモリバスまたはメモリ制御装置、周辺バス、AGP(Accelerated Graphics Port)、および処理装置バスまたはローカル・バスを含む、任意のいくつかのタイプのバス構造のうちの1つまたは複数を表すように意図されている。たとえば、こうしたアーキテクチャには、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、拡張ISA(EISA)バス、VESA(Video Electronics Standards Association)ローカル・バス、およびメザニン・バスとしても知られるPCI(Peripheral Component Interconnects)バスが含まれるが、これらに限定されるものではない。
【0033】
コンピュータ200は、典型的には様々なコンピュータ読取り可能媒体を含む。こうした媒体は、コンピュータ200によってローカルおよび/またはリモートにアクセス可能な任意の使用可能媒体であってよく、揮発性および不揮発性、取外し可能および取外し不能の、両方の媒体を含む。
【0034】
図2では、システム・メモリ204に、ランダム・アクセス・メモリ(RAM)210などの揮発性メモリ形式、および/または読取り専用メモリ(ROM)208などの不揮発性メモリ形式の、コンピュータ読取り可能媒体が含まれる。起動時などにコンピュータ200の要素間で情報を転送するのに役立つ基本ルーチンを収容する基本入力/出力システム(BIOS)212は、ROM208に格納される。RAM210は典型的には、即時アクセス可能な、かつ/または処理ユニット202によって現在動作中の、データおよび/またはプログラム・モジュールを収容する。
【0035】
コンピュータ200は、他の取外し可能/取外し不能、揮発性/不揮発性のコンピュータ記憶媒体をさらに含むことができる。単なる例として、図2では、取外し不能な不揮発性磁気媒体(図示されておらず、典型的には「ハード・ドライブ」と呼ばれる)からの読取りおよびこれへの書込み用のハード・ディスク・ドライブ228、取外し可能な不揮発性磁気ディスク232(たとえば「フロッピー(登録商標)ディスク」)からの読取りおよびこれへの書き込み用の磁気ディスク・ドライブ230、ならびにCD−ROM、DVD−ROM、または他の光学式媒体などの取外し可能な不揮発性光ディスク236からの読取りおよびこれへの書込み用の光ディスク・ドライブ234が示されている。ハード・ディスク・ドライブ228、磁気ディスク・ドライブ230、および光ディスク・ドライブ234は、それぞれ1つまたは複数のインターフェース226によってバス206に接続される。
【0036】
ドライブおよびそれらの関連付けられたコンピュータ読取り可能媒体は、コンピュータ読取り可能命令、データ構造、プログラム・モジュール、およびコンピュータ200用の他のデータの不揮発性記憶装置を提供する。本明細書に記載された例示的環境ではハード・ディスク228、取外し可能磁気ディスク232、および取外し可能光ディスク236を使用しているが、当分野の技術者であれば、磁気カセット、フラッシュ・メモリ・カード、デジタル・ビデオ・ディスク、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)などの、コンピュータがアクセス可能なデータを格納できる他のタイプのコンピュータ読取り可能媒体が、例示的なオペレーティング環境でも使用可能であることを理解されたい。
【0037】
たとえば、オペレーティング・システム214、1つまたは複数のアプリケーション・プログラム216(たとえばマルチ・メディア・アプリケーシ224)、他のプログラム・モジュール218、およびプログラム・データ220などを含むがこれらに限定されることのない、いくつかのプログラム・モジュールは、ハード・ディスク228、磁気ディスク232、光ディスク236、ROM208、またはRAM210に格納することができる。ユーザは、キーボード238およびポインティング・デバイス240(「マウス」など)などの入力デバイスを介して、コンピュータ200にコマンドおよび情報を入力することができる。他の入力デバイスには、オーディオ/ビデオ入力デバイス253、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星放送用アンテナ、シリアル・ポート、スキャナなど(図示せず)が含まれる。これらおよび他の入力デバイスは、バス206に結合された入力インターフェース242を介して処理ユニット202に接続されるが、パラレル・ポート、ゲーム・ポート、またはユニバーサル・シリアル・バス(USB)などの他のインターフェースおよびバス構造によって接続することもできる。
【0038】
モニタ256または他のタイプのディスプレイ・デバイスも、ビデオ・アダプタまたはビデオ/グラフィック・カード244などのインターフェースを介してバス206に接続される。パーソナル・コンピュータは、モニタに加えて、出力周辺インターフェース246を介して接続可能なスピーカおよびプリンタなどの他の周辺出力デバイス(図示せず)も含む。
【0039】
コンピュータ200は、リモート・コンピュータ250などの1つまたは複数のリモート・コンピュータへの論理接続を使用する、ネットワーク化された環境で動作することができる。リモート・コンピュータ250は、コンピュータに関して本明細書に記載された多くのまたはすべての要素および機能を含むことができる。
【0040】
図2に示されるように、コンピューティング・システム200は、ローカル・エリア・ネットワーク(LAN)251および一般的なワイド・エリア・ネットワーク(WAN)252を介して、リモート・デバイス(たとえばリモート・コンピュータ250)に通信可能なように結合される。こうしたネットワーキング環境は、事務所や会社規模のコンピュータ・ネットワーク、イントラ・ネット、およびインターネットで普及している。
【0041】
LANネットワーキング環境で使用される場合、コンピュータ200は好適なネットワーク・インターフェースまたはアダプタ248を介してLAN251に接続される。WANネットワーキング環境で使用される場合、コンピュータ200は典型的にはモデム254またはWAN252を介して通信を確立するための他の手段を含む。内蔵または外付けが可能なモデム254は、ユーザ入力インターフェース242または他の適切な機構を介してシステム・バス206に接続することができる。
【0042】
ネットワーク化された環境では、パーソナル・コンピュータ200に関して記載されたプログラム・モジュールまたはその一部を、リモート・メモリ記憶デバイスに格納することができる。たとえば図2では、リモート・アプリケーション・プログラム216がリモート・コンピュータ250のメモリ・デバイス上に常駐しているとして示されているが、これに限定されるものではない。図示および記載されたネットワーク接続は例示的であり、コンピュータ間の通信リンクを確立する他の手段も使用可能であることを理解されよう。
【0043】
(概要)
以下に記載する実施形態では、ビデオ・カードによって使用されることが意図されたデータを、データがビデオ・カードとコンピュータ・システムとの間のバス(たとえばPCIまたはAGPバス)上に提供されるときには常に暗号化されるように、暗号化することができる。バスを獲得するスヌーピング・デバイスまたは不正アプリケーション(snooping devises or rogue applications)がその暗号化されていない形式のデータにアクセスできないという理由から、これは有利である。したがって、データがビデオ・カードのビデオ・メモリからシステムのメモリへ移動される場合(たとえば、システムの物理メモリにマッピングされる場合)およびその逆の場合、そのデータは、暗号化形式であり、要するに保護される。
【0044】
グラフィック処理ユニット(GPU)によって処理するために、システムのメモリからビデオ・カードに転送されるときに、暗号化されたデータは復号されてビデオ・カード上の保護されたメモリ内に配置することができる。したがってGPUは、暗号化されていないデータに基づいてオペレーションを実行することが可能であり、これはGPUが実行するのに最も適したものである。
【0045】
以下に記載する実施形態では、ビデオ・カードとコンピュータ・システムとの間のバス上を移動するときには常にデータを暗号化することによって、データを保護することに対処する、2つの特定の実施態様について説明する。具体的に記載された実施形態は単なる例であって、記載された主題の精神および範囲を逸脱することなく特定の実施態様の変形態様が実行可能であることを理解されよう。
【0046】
図3は、一実施形態に従った方法のステップを示す流れ図である。この方法は、任意の好適なハードウェア、ソフトウェア、ファームウェア、またはこれらの組合せで実施することができる。この特定の例では、方法は、データがビデオ・カードからシステムまたはシステム・メモリに移動するときに実行される例示的な処理ステップを示すものである。
【0047】
ステップ300は、ビデオ・カード上で、暗号化されていないデータを提供する。このデータは、典型的には、ビデオ・カードのGPUによって処理されたデータであり、ビデオ・カードのメモリに提供される。ステップ302は、ビデオ・カード上で暗号化されていないデータを暗号化する。このステップは、システムのメモリにデータを転送するようにという要求に応答して実施することができる。たとえば、CPUは、データをビデオ・カードからシステムのメモリに移動させる命令を送信することができる。あるいはGPUは、データをこれ以上必要としないため、システムのメモリへの転送を開始するように決定することができる。データは、任意の好適な暗号化技法を使用して、ビデオ・カード上で暗号化することができる。次にステップ304は、ビデオ・カードとシステムの間のバスを介して暗号化されたデータを送信する。例示的なバスはPCIバスおよびAGPバスであってよい。ステップ306は、暗号化されたデータをシステム・メモリに提供する。
【0048】
上記のプロセスでは、ビデオ・カードからシステムのメモリに移動するデータは暗号化されている、したがって、バスを獲得しデータを盗むかまたはコピーしようとするスヌーピング・デバイスまたは不正アプリケーションは、スヌーピング・デバイスまたは不正アプリケーションにとって復号することが数学的に不可能な暗号化されたデータのみを受け取ることになる。
【0049】
図4は、一実施形態に従った方法のステップを示す流れ図である。この方法は、任意の好適なハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せで実施することができる。この特定の例では、方法は、データがシステムまたはシステム・メモリからビデオ・カードに移動されるときに実行される例示的な処理ステップを示すものである。
【0050】
ステップ400は、システム・メモリ内にデータを提供する。こうしたデータは、典型的にはビデオ・カードによって処理のために使用されるデータである。データは、暗号化されたデータまたは暗号化されていないデータのどちらかとして、システム・メモリに提供することができる。ステップ402は、(システム・メモリ内で暗号化されていない場合に)データを暗号化し、システム・メモリとビデオ・カードの間のバスにデータを送信することができる。このステップは、ビデオ・カード上でデータを処理するという希望に応答して実施することができる。ステップ404は、ビデオ・カード上の暗号化されたデータを受け取る。次にステップ406は、ビデオ・カード上の暗号化されたデータを復号し、ステップ408はGPUによる処理のために復号されたデータをビデオ・メモリに提供する。
【0051】
上記のプロセスでは、システムのメモリからビデオ・カードに移動するデータは暗号化されている、したがって、バスを獲得してデータを盗むかまたはコピーしようとするスヌーピング・デバイスまたは不正アプリケーションは、スヌーピング・デバイスまたは不正アプリケーションにとって復号することが数学的に不可能な暗号化されたデータのみを受け取ることになる。
【0052】
例示的な第1のビデオ・カード実施形態
図5は、一実施形態に従った例示的なビデオ(またはグラフィック)カード500を示す図である。カード500には、典型的なコンピュータ上のポート内に嵌め込むバス・コネクタ502が含まれる。ビデオ・カード500は、モニタに接続するケーブルを受け入れるモニタ・コネクタ504(たとえば15ピンプラグ)も含む。ビデオ・カード500は、ビデオ画像をデジタル・ディスプレイなどに送信するために使用できるデジタル・ビデオ出力(たとえばDVI)ソケット506を含むことができるが、必ずしも必要ではない。
【0053】
図1のビデオ・カードと同様に、ビデオ・カード500はグラフィック処理ユニット(GPU)508、ビデオ・メモリ510、ランダム・アクセス・メモリ・デジタル/アナログ変換器(RAMDAC)512、およびビデオBIOS 514に含めることのできるドライバ・ソフトウェアを備える。
【0054】
GPU508は、解像度、色の濃さ、およびモニタ・スクリーン上での画像のレンダリングに関連付けられたすべての要素、のすべての面を制御する専用のグラフィック処理チップである。メモリ制御装置(GPUに集積される場合がある)は、ビデオ・カード上のメモリを管理する。コンピュータの中央処理ユニットすなわちCPU(図示せず)は描画命令およびデータのセットを送信し、これらがグラフィック・カードが専有するドライバ(graphics card's proprietary driver)によって解釈(interpret)され、カードのGPU508によって実行される。GPU508は、ビットマップの転送およびペインティング、ウィンドウのサイズ変更および再位置決め、描線、フォントの拡大縮小、ならびに多角形描画などのオペレーションを実行する。次にGPUは、フレーム・データをフレーム・バッファ(またはオンボード・ビデオ・メモリ510)に書き込むことができる。
【0055】
ビデオ・メモリ・フレーム・バッファ内の情報は、デジタル・ビットマップとして格納された、画面上に表示される画像である。RAMDAC512は、前述のようにモニタ上でのレンダリング用に使用できる形式へのデジタル・ビットマップの変換に使用される。
【0056】
これらの構成要素に加えて、この実施形態では、ビデオ・カード500は、メモリ制御装置516および鍵マネージャ518を備える。ビデオ・カードは、復号器520も含むことができる。これらの構成要素は任意の好適なハードウェア、ソフトウェア、ファームウェアまたはそれらの組合せで実施することができる。
【0057】
メモリ制御装置516はビデオ・カード上の暗号化されたデータを受け取り、このデータを保護ビデオ・メモリ510の保護された領域または一部に復号する。これで復号されたデータはGPU508によって動作可能な状態になる。メモリ制御装置は、ビデオ・カード上でのデータ転送が、保護された領域または保護についてある程度の互換性保護を有する領域間で実行されることを確実にする責務も負うことができる。すなわち、ビデオ・カード上でのデータ処理中にしばしばGPU508はビデオ・メモリ内のデータに対して(たとえば、混合オペレーション(blending operation)を実行することによって)操作することがあり、その結果生じたデータは異なるビデオ・メモリ位置に書き込まれることになる。この場合、そのビデオ・メモリ位置は、保護されていないかまたは異なるレベルで保護されるビデオ・メモリの領域であるかも知れない。この例においては、メモリ制御装置は、ビデオ・カード内でのデータ転送が暗号化されていないデータの保護を確実にする態様で実施されることを、保証することができる。これが如何に実行されるかについての例が、以下でより詳細に説明される。
【0058】
鍵マネージャ518は、ビデオ・カード上のデータの暗号化および復号に使用される暗号鍵および復号鍵を制御する。一実施態様では、鍵マネージャ518は個別のチップを備える。鍵マネージャ518はメモリ制御装置と通信可能なようにリンクされ、様々な暗号鍵/復号鍵を使用してメモリ制御装置をプログラムすることができる。鍵マネージャ518とメモリ制御装置516との間の通信は、鍵マネージャがメモリ制御装置をプログラムできる唯一のエンティティであることを確実にするように、暗号化された認証済みの通信チャネルを介して、有利に、実行される。
【0059】
ビデオ・カード500は、データを復号するように構成されるかまたは構成可能な復号器520も含むことができる。たとえば、ビデオ・カード上で暗号化されていないデータを、保護されていないメモリ領域に書き込むことができる場合がある。たとえば、こうしたデータは、いわゆる「主表面」またはデスクトップ表面に書き込むことが可能であり、モニタ上での画像のレンダリングをするために、RAMDAC512によって使用されるデータを収容する。この場合、暗号化されていないデータが攻撃の対象とならないように保護されることが望ましい。したがって、データが保護されたメモリ領域から保護されていないメモリ領域に移動される場合、メモリ制御装置516はデータを暗号化することができる。この例では、鍵マネージャ518は、どの鍵が保護されていないメモリ領域内にある暗号化されたデータに関連付けられているかを追跡し、これを識別する。暗号化されたデータがRAMDAC512に提供されることになる場合、次に鍵マネージャは、復号器520に対して、暗号化されたデータを復号するのにどの鍵を使用するかを指示することができる。次いで暗号化されたデータが復号器520に提供されて復号された後、その後の処理のためにRAMDAC512に提供される。
【0060】
あるいは、復号器を除去することが可能であり、RAMDAC512が復号機能を実行するように構成することが可能である。この場合、鍵マネージャ518はRAMDACに対して、復号を実行するのにどの鍵を使用するかを指示することができる。
【0061】
図6は、一実施形態にしたがって、ビデオ・カード500(図5)の選択された構成要素を、600で一般的により詳細に示す図である。ここでは、メモリ制御装置516は、暗号化されたデータをバス(この例ではPCIまたはAGPのいずれか)から受け取り、そのデータをビデオ・メモリ510に復号するように構成された、復号モジュール602を備える。さらに、メモリ保護テーブル604および等価決定テーブル(Equivalent Decision Table)606が提供される。
【0062】
この例では、メモリ保護テーブル604は、暗号/復号鍵ペアをビデオ・メモリ510の個々の部分に関連付けるエントリを格納するテーブル部分604aを含む。たとえば、暗号/復号鍵ペアE/Dはメモリ部分608に関連付けられ、暗号/復号鍵ペアE/Dはメモリ部分610に関連付けられるという具合である。ビデオ・メモリ内の復号されたデータがビデオ・カードから離れたシステム・メモリに書き込まれることになる場合、またはビデオ・カード上のデータがバス(PCIまたはAGPバス)を介して提供されることになるその他のいずれかの場合には、CPUは、テーブル部分604a内の暗号鍵のうち1つを使用してそのデータが暗号化される処理を実行させることができる。その結果、暗号化されたデータがバス上に配置され、たとえばシステム・メモリに提供される。メモリ制御装置516がシステム・メモリからたとえば鍵Eで暗号化されている暗号化されたデータを受け取る場合、復号モジュール602は関連付けられた復号鍵Dの所在位置を突き止めて、その復号鍵Dを使用して、このデータをメモリ部分608に復号することができる。
【0063】
ビデオ・メモリ510の保護部分はいくつか存在することができる。この例では、608−614と指定された4つの保護部分が存在する。これらの保護された部分にある暗号化されていないデータは、GPU508(図5)によって通常の方法で処理することができる。ビデオ・メモリの保護された部分は、アクセス制御リストによって保護することができる。たとえば、メモリ保護テーブル604は、ビデオ・メモリの様々な部分についてアクセス制御リストを定義することができるテーブル部分604bを含む。ビデオ・メモリの各部分は、その関連付けられたアクセス制御リスト内で、どのエンティティがメモリ部分にアクセスできるかを定義しておくことができる。したがって、各メモリ部分のアクセス制御リストに格納された以外のエンティティによってどんなアクセスが試行されても、メモリ制御装置によって許可されることはない。
【0064】
ビデオ・メモリ510は、保護されていない部分を含むことができることにも留意されたい。この例では、部分616−624が保護されていない。したがって、これらのメモリ部分に関連付けられた暗号/復号鍵ペアはない。
【0065】
図7は、一実施形態に従った方法のステップを示す流れ図である。この方法は、任意の好適なハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せの中で実施することができる。図示された例では、この方法は、図6に関連して記載されたようなシステムの少なくとも一部で、実施することができる。
【0066】
ステップ700は1つまたは複数の鍵ペアを提供する。それぞれの鍵ペアは、暗号鍵および関連付けられた復号鍵を備える。ステップ702は鍵ペアをビデオ・メモリの個々の部分に関連付ける。任意の好適な方法を使用して、鍵ペアとビデオ・メモリ部分とを関連付けることができる。図6の例では、複数の異なるエントリを有するメモリ保護テーブルが使用される。個々のテーブル・エントリは特定の鍵ペアに対応しており、各テーブル・エントリはビデオ・メモリの一部に関連付けられる。
【0067】
ステップ704は鍵ペアの暗号鍵を使用して、暗号化されていないデータを暗号化する。たとえば、ビデオ・メモリ内の暗号化されていないデータがシステム・メモリに書き込まれることになる場合、CPUは、データが存在しているビデオ・メモリ部分に関連付けられた暗号鍵を使用してそのデータが暗号化される処理を実行させることができる。その後ステップ706は、暗号化されたデータをバスを介してたとえばシステム・メモリに送信する。
【0068】
ステップ708はステップ702に続くものであり、鍵ペアの復号鍵を使用して、暗号化されたデータを復号する。たとえば、データが暗号鍵を使用して暗号化された後、システムのメモリに提供されると想定する。その暗号化されたデータをGPUが必要とする場合、データはCPUによってビデオ・カードに送信することができる。暗号化されたデータを受け取ると、メモリ制御装置は、データの暗号化に使用された暗号鍵に関連付けられた復号鍵の所在位置を突き止め、その復号鍵を使用してデータを復号することができる。その後ステップ710は、データを、復号鍵に関連付けられた関連するビデオ・メモリ部分に提供することができる。この方法では、データが1つまたは複数のシステム・バスを介して提供されることになる場合には必ず、データは保護されることになる。
【0069】
等価決定テーブル606(図6)は、ビデオ・カードのメモリ510内でのデータ転送がデータの保護を維持する態様で実行されることを確実にするために提供され、メモリ制御装置516によって使用される。
【0070】
一例として、図8について考察する。GPUがビデオ・カード上のデータを処理する場合、データをあるメモリ位置から別の位置へ移動させることが多い。たとえば、GPUが混合オペレーションを実行する場合、ビデオ・カード上の2つの異なるメモリ部分からデータを取り出し、このデータを混合した後に得られる混合済みのデータをビデオ・メモリのすべて合わせて異なる部分に書き込むことができる。これはGPUオペレーション800によって図に示されている。ここでは、GPUが2つの入力と1つの出力を有するオペレーションを実行していると想定する。入力はそれぞれがビデオ・メモリの保護された部分に格納されたデータに対応する。この例では、入力のうち1つが暗号鍵Eに関連付けられたビデオ・メモリの保護された部分に格納されており、他方の入力が暗号鍵Eに関連付けられたビデオ・メモリの保護された部分に格納されている(したがってEおよびE入力)。オペレーションがいったん実行されると、得られた出力データは、暗号鍵Eに関連付けられたビデオ・メモリの保護された部分に格納されることになる。ここで、GPUがこのようなメモリ転送を実行する場合は必ず、メモリ制御装置516は、データがどこから入力し、どこに送付されて格納されるかを識別するのを確実にする。次にメモリ制御装置は、データに与えられている保護のレベルに関して、出力データが格納されることになるビデオ・メモリの部分が、その構成要素であるデータの入力元であるメモリ部分によって与えられる保護との整合性があることを確実にするためにチェックを行う。
【0071】
この例では保護の整合性は、入力データが格納されるメモリ部分に関連付けられた鍵が、出力データを保持することになるメモリ部分に関連付けられた鍵と同じかまたは等価であることを確認することによって実現することができる。この例では、等価性は、メモリ部分に関連付けられた制限(restriction)、すなわちその個々のメモリ部分のいずれもが同じ保護レベルであるか、に基づいて決定することができる。たとえば2つの異なるコンテンツの部分を有する2つの異なるプログラムがある場合は、鍵は、等価でない可能性がある。たとえば、それぞれのコンテンツが異なる鍵で暗号化されていれば、その鍵に関連付けられたプログラムはコンテンツを共用することができない。この例では、暗号鍵は等価ではない。
【0072】
様々なメモリ部分に関連付けられた鍵の等価性を確認する方法の1つが、テーブル606などの等価決定テーブルを使用する方法である。ここでは、テーブルはそれぞれの鍵に関するエントリを収容するマトリックスを定義する。マトリックス・セルの1つにある「X」は、鍵が等価であることを示すものである。たとえば、第1に鍵Eを見ると、この鍵はE、E、およびEと等価である。したがって、図6で最もよく示されているように、データはメモリ部分608、610、および614の間で自由に転送することができる。ただし、鍵Eは鍵Eと等価ではない。したがって、データをメモリ部分608からメモリ部分612に転送することはできない。図8の例では、入力データはメモリ部分608および610から発生し、得られるデータはメモリ部分614に格納されることになるため、等価性は問題ではなくオペレーションは実施可能である。
【0073】
図9は、一実施形態に従った方法のステップを示す流れ図である。この方法は、任意の好適なハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せで実施することができる。図示された例では、方法は、図6に関連して記載されたようなシステムの少なくとも一部で実施することができる。
【0074】
ステップ900は、ビデオ・カード上のビデオ・メモリ部分からデータを読み取る。このステップはGPUによって実施することができる。ステップ902は、データが読み取られたビデオ・メモリ部分に関連付けられた鍵ペアを記録する。このステップは、メモリ制御装置によって実施することができる。ステップ904は、記録された鍵ペアが、GPUのオペレーションから得られた出力データの宛先として供されることになるビデオ・メモリ部分に関連付けられた鍵ペアと等価であるかどうかを確認する。鍵ペアが等価であれば、ステップ906はその出力データをビデオ・メモリの宛先部分に提供する。他方で、鍵ペアが等価でなければ、ステップ908は等価の鍵ペアを有するビデオ・メモリ宛先部分を見つけるか、あるいはおそらくステップ910がブランク・データを指定されたメモリ宛先に出力する。
【0075】
例示的な第2のビデオ・カード実施形態
図10は、他の実施形態に従った例示的なビデオ(またはグラフィック)カード1000を示す図である。ここでは、図の一部が「ビデオ・カード」と指定されており、図の一部が「システム」と指定されている。こうした表記は、ビデオ・カードおよびシステム上にそれぞれ常駐する構成要素を指定することを意図するものである。図の「システム」側にはCPU1002およびシステム・メモリ1004が含まれる。システム・メモリ1004内には、ビデオ・カード1000で使用することが意図されたデータ1006があることにも留意されたい。
【0076】
この実施形態では、システム・メモリ1004に存在するデータ1006は暗号化されていない。CPU1002は、データがバスを介してビデオ・カードに送信されるときには必ずこれを暗号化するように構成される。こうしたことは、典型的には「暗号化メモリ転送」として知られるCPUオペレーションによって達成される。したがって、暗号化されたデータはビデオ・メモリ510の保護されていない部分624に配置されることになる。この例では、データは暗号鍵Eを使用してCPUによって暗号化される可能性がある。
【0077】
GPU508は暗号化されていないデータを処理するように構成されていることを想起されたい。したがって、GPU508がビデオ・メモリ510の保護されていない部分にある暗号化されたデータを処理しようとすると、データを復号する必要がある。この実施形態では、GPU508は、図では復号モジュール602で表される復号機能を収容する。鍵マネージャ518はGPU508と通信可能なようにリンクされ、適切な復号鍵を使用してGPUをプログラムすることができる。もちろん、鍵マネージャとGPUとの間の通信は、認証済みリンクを介して実行することができる。
【0078】
したがって、GPUがビデオ・メモリ内の暗号化されたデータ1006に対して動作しようとする場合、暗号化されたデータにアクセスして、これをビデオ・メモリの保護された部分、すなわちここでは保護された部分614に復号することができる。復号は、「復号メモリ転送」として知られるオペレーションを介して実施することができる。これで、このデータおよび他のデータはビデオ・メモリの保護された部分に入り、GPUは通常の方法でこれに対して自由に動作することができる。
【0079】
この実施形態では、メモリ制御装置516は、アクセス制御リスト(具体的には図示せず)を介してビデオ・メモリの保護された部分へのアクセスを制御することによって、メモリ保護を実施することができる。したがって、GPU508(またはその一部分)などのエンティティが保護されたビデオ・メモリ部分にアクセスしようとする場合は常に、メモリ制御装置516を介したアクセスが得られることになる。アクセス制御リストには、データの有する保護の種類およびこれにアクセスできるエンティティを記載することができる。たとえば、アクセス制御リストは、GPUのどの部分が、保護されたメモリにアクセスできるか、および、保護されたメモリを「所有」し、その結果アクセスを得る1つまたは複数のアプリケーションを定義することができる。
【0080】
次に、ビデオ・メモリの保護された部分にあるデータがビデオ・メモリの保護されていない部分に移動する場合は、これを暗号化することができる。たとえば、メモリ部分614にあるデータが、保護されていないメモリ部分620(この例では、レンダリングのためにRAMDACによって処理されることになるデスクトップ表面に対応する)に移動することになると仮定する。GPU508は、メモリ制御装置516を介して保護されたメモリ部分にアクセスし、暗号化メモリ転送オペレーションを実行して、メモリ部分620にデータを暗号化することができる。暗号化されたデータが処理のためにRAMDACに提供される場合、鍵マネージャ518は復号器520と通信し、メモリ部分620にある暗号化されたデータを復号するために復号器に適切な復号鍵を提供することができる。データを復号した後、復号器520は通常の方法で処理のためにRAMDACにデータを提供することができる。
【0081】
メモリ制御装置516は、等価決定テーブル(具体的には指定せず)を備えることに留意されたい。このテーブルは、概念上は図6および図8に関連して論じたテーブルと同様である。ただし、ここでは、ビデオ・メモリ510のそれぞれのメモリ部分に関連付けられたアクセス制御リストが、データがそれらの間で転送されるときに等価であることを確実にするのに、このテーブルは使用される。たとえば、メモリ部分614にあるデータがメモリ部分620に転送されるものと想定する。したがって、この例では、メモリ部分614に関連付けられたアクセス制御リストとメモリ部分620に関連付けられたアクセス制御リストとが等価であることを確実にするように、メモリ制御装置516は、チェックする。等価であれば、データ転送が実行される。
【0082】
結論
上記で説明してきた様々な実施形態は、ビデオ・カードによって使用されるように意図されているデータは、そのデータがビデオ・カードとコンピュータ・システムとの間のバス(たとえばPCIまたはAGPバス)に提供されるときは常に暗号化されるように、暗号化されることができることを確実にするものである。したがって、バスを獲得するスヌーピング・デバイスまたは不正アプリケーションはデータにアクセスすることができず、その暗号化されていない形でのデータを盗むことができない。したがって、システムのビデオ・カードによって処理されることになるコンテンツに別のレベルの保護を提供することができる。
【0083】
以上、本発明について、構造的特徴および/または方法論的ステップに特有の言語で述べてきたが、特許請求の範囲で定義されている本発明は、必ずしも記載された特有の特徴またはステップに限定されるものでないことを理解されよう。むしろ、特有の特徴およびステップは、記載の発明を実施する好ましい形態として開示されたものである。
【図面の簡単な説明】
【図1】コンピュータ・システム内で使用することが意図された例示的なビデオまたはグラフィック・カードの様々な構成要素を示す構成図である。
【図2】記載された実施形態に従ったビデオ・カードを使用することができる例示的なコンピュータ・システムを示す構成図である。
【図3】一実施形態に従った方法のステップを示す流れ図である。
【図4】一実施形態に従った方法のステップを示す流れ図である。
【図5】一実施形態に従った例示的なビデオまたはグラフィックの様々な構成要素を示す構成図である。
【図6】図5のビデオ・カードの様々な構成要素を示す構成図である。
【図7】一実施形態に従った方法のステップを示す流れ図である。
【図8】記載された実施形態の一定の態様を理解するのに役立つ構成図である。
【図9】一実施形態に従った方法のステップを示す流れ図である。
【図10】一実施形態に従ったビデオ・カードの様々な構成要素を示す構成図である。
【符号の説明】
100、500 ビデオ(またはグラフィック)カード
102、502 バス・コネクタ
104、504 モニタ・コネクタ
106、506 デジタル・ビデオ出力ソケット
108、508 グラフィック処理ユニット(GPU)
110、510 オンボード・ビデオ・メモリ
112、512 RAMDAC
114、514 ビデオBIOS
516 メモリ制御装置
518 鍵マネージャ
520 復号器
602 復号モジュール
604 メモリ保護テーブル
606 等価決定テーブル
1002 システム側CPU
1004 システム・メモリ

Claims (19)

  1. コンピュータのシステム・メモリからビデオ・カードへバスを介してデータを提供する方法であって、該ビデオ・カードは、暗号化されていないデータを格納するための保護された部分と暗号化されたデータを格納するための保護されない部分とを備えたビデオ・カード・メモリを有しており、前記方法は、
    前記コンピュータのシステム・メモリに格納されているデータを暗号化することと、
    暗号化されたデータを前記バスを介して前記ビデオ・カードに転送することと、
    前記暗号化されたデータの処理を必要としている前記ビデオ・カード上のグラフィック処理ユニット(GPU)とは別個に、前記ビデオ・カード上のメモリ制御装置によって、前記ビデオ・カード上の前記暗号化されたデータを復号することと、
    復号されたデータを前記ビデオ・カード・メモリの保護された部分に格納することと
    を備え、
    前記メモリ制御装置は、1つまたは複数のアクセス制御リストを備え、個々のアクセス制御リストは、前記ビデオ・カード・メモリの個々の領域に関連付けられ、どのエンティティが特定のメモリ領域にアクセスできるかを定義し、
    前記ビデオ・カード・メモリの保護された部分は、スヌーピング・デバイスから前記アクセス制御リストを用いることにより保護され、各々が個々の暗号鍵/復号鍵ペアと関連付けられており、
    前記復号することは、暗号化されていないデータが格納されることになるメモリ部分に関連付けられた復号鍵を使用して前記暗号化されたデータを復号することを含み、
    暗号鍵/復号鍵ペアの制御が鍵マネージャによってなされ、
    前記鍵マネージャは、どの鍵が保護されていないメモリ領域内にある暗号化されたデータに関連付けられているかを追跡し、これを識別し得る
    ことを特徴とする方法。
  2. 前記復号する行為(act)は、前記暗号化されたデータが前記ビデオ・カードに転送される毎に自動的に実行されることを特徴とする請求項1に記載の方法。
  3. コンピュータ読取り可能命令を有する1つまたは複数のコンピュータ読取り可能媒体であって、前記コンピュータ読取り可能命令は、前記コンピュータ読取り可能命令が1つまたは複数の処理装置によって実行されると、前記1つまたは複数の処理装置に、
    コンピュータのシステム・メモリに格納されているデータを暗号化させ、
    暗号化されたデータをバスを介して、暗号化されていないデータを格納するための保護された部分と暗号化されたデータを格納するための保護されない部分とを備えたビデオ・カード・メモリを有するビデオ・カードに転送させ、
    前記暗号化されたデータの処理を必要としている前記ビデオ・カード上のグラフィック処理ユニット(GPU)とは別個に、前記ビデオ・カード上のメモリ制御装置によって、前記ビデオ・カード上の前記暗号化されたデータを復号させ、
    復号されたデータを前記ビデオ・カード上のビデオ・カード・メモリの保護された部分に格納させる
    命令であって、
    前記メモリ制御装置は、1つまたは複数のアクセス制御リストを備え、個々のアクセス制御リストは、前記ビデオ・カード・メモリの個々の領域に関連付けられ、どのエンティティが特定のメモリ領域にアクセスできるかを定義し、
    前記ビデオ・カード・メモリの保護された部分は、スヌーピング・デバイスから前記アクセス制御リストを用いることにより保護され、各々が個々の暗号鍵/復号鍵ペアと関連付けられており、
    前記暗号化されたデータは、暗号化されていないデータが格納されることになるメモリ部分に関連付けられた復号鍵を使用して復号され、
    暗号鍵/復号鍵ペアの制御が鍵マネージャによってなされ、
    前記鍵マネージャは、どの鍵が保護されていないメモリ領域内にある暗号化されたデータに関連付けられているかを追跡し、これを識別し得る
    ことを特徴とする1つまたは複数のコンピュータ読取り可能媒体。
  4. 前記命令は、前記1つまたは複数の処理装置に、前記暗号化されたデータが前記ビデオ・カードに転送される毎に自動的に前記暗号化されたデータを復号させることを特徴とする請求項3に記載の1つまたは複数のコンピュータ読取り可能媒体。
  5. ビデオ・カードからコンピュータのシステム・メモリへバスを介してデータを提供する方法であって、該ビデオ・カードは、暗号化されていないデータを格納するための保護された部分と暗号化されたデータを格納するための保護されない部分とを備えたビデオ・カード・メモリを有しており、前記方法は、
    暗号化されていないデータを前記ビデオ・カード・メモリの保護された部分に提供することと、
    前記ビデオ・カード・メモリの前記暗号化されていないデータを暗号化することと、
    暗号化されたデータを前記ビデオ・カードから前記システム・メモリへ前記バスを介して転送することと
    を備え、
    前記ビデオ・カード上のメモリ制御装置によって暗号化がなされ、
    前記メモリ制御装置は、1つまたは複数のアクセス制御リストを備え、個々のアクセス制御リストは、前記ビデオ・カード・メモリの個々の領域に関連付けられ、どのエンティティが特定のメモリ領域にアクセスできるかを定義し、
    前記ビデオ・カード・メモリの保護された部分は、スヌーピング・デバイスから前記アクセス制御リストを用いることにより保護され、各々が個々の暗号鍵/復号鍵ペアと関連付けられており、
    前記暗号化することは、前記暗号化されていないデータが格納されることになるメモリ部分に関連付けられた暗号鍵を使用して前記復号されたデータを暗号化することを含み、
    暗号鍵/復号鍵ペアの制御が鍵マネージャによってなされ、
    前記鍵マネージャは、どの鍵が保護されていないメモリ領域内にある暗号化されたデータに関連付けられているかを追跡し、これを識別し得る
    を特徴とする方法。
  6. 前記暗号化することは、前記暗号化されていないデータが、コンピュータ・システムの一部を構成する前記ビデオ・カードと前記コンピュータ・システムの中央処理ユニットとの間を接続する前記バス上に提供されることになるときには常に実行されることを特徴とする請求項5に記載の方法。
  7. コンピュータ読取り可能命令を有する1つまたは複数のコンピュータ読取り可能媒体であって、前記コンピュータ読取り可能命令は、前記コンピュータ読取り可能命令が1つまたは複数の処理装置によって実行されると、前記1つまたは複数の処理装置に、暗号化されていないデータを格納するための保護された部分と暗号化されたデータを格納するための保護されない部分とを備えたビデオ・カード・メモリを有するビデオ・カードに関する以下のステップ、即ち、
    暗号化されていないデータを前記ビデオ・カード・メモリの保護された部分に提供させ、
    前記暗号化されていないデータがビデオ・カードから離れたコンピュータのシステム・メモリとの間のバスに提供されようとする毎に、前記ビデオ・カード上の前記暗号化されていないデータを暗号化させ、
    暗号化されたデータを前記ビデオ・カードから前記システム・メモリへ前記バスを介して転送させることを実行させる
    命令であって、
    前記ビデオ・カード上のメモリ制御装置によって、前記ビデオ・カード上の前記暗号化されていないデータが暗号化され、
    前記メモリ制御装置は、1つまたは複数のアクセス制御リストを備え、個々のアクセス制御リストは、前記ビデオ・カード・メモリの個々の領域に関連付けられ、どのエンティティが特定のメモリ領域にアクセスできるかを定義し、
    前記ビデオ・カード・メモリの保護された部分は、スヌーピング・デバイスからアクセス制御リストを用いることにより保護され、各々が個々の暗号鍵/復号鍵ペアと関連付けられており、
    前記暗号化されていないデータは、暗号化されていないデータが格納されることになるメモリ部分に関連付けられた暗号鍵を使用して暗号化され、
    暗号鍵/復号鍵ペアの制御が鍵マネージャによってなされ、
    前記鍵マネージャは、どの鍵が保護されていないメモリ領域内にある暗号化されたデータに関連付けられているかを追跡し、これを識別し得る
    ことを特徴とする1つまたは複数のコンピュータ読取り可能媒体。
  8. モニタ上でレンダリングされることになるデータを処理するためのグラフィック処理ユニット(GPU)と、
    前記グラフィック処理ユニットによって処理されるべきまたは処理されたデータを保持するために、動作可能に前記グラフィック処理ユニットに関連付けられたビデオ・カード・メモリであって、暗号化されていないデータを格納するための保護された部分と暗号化されたデータを格納するための保護されない部分とを備えたビデオ・カード・メモリと、
    前記モニタ上で前記データをレンダリングする際に使用する信号に、デジタル・データを変換するためのディスプレイ変換器と、
    暗号化されたデータを受け取り、前記暗号化されたデータを前記ビデオ・カード・メモリの保護された領域内に復号するように構成されたメモリ制御装置と
    を備えるビデオ・カードであって、
    前記メモリ制御装置は、1つまたは複数のアクセス制御リストを備え、個々のアクセス制御リストは、前記ビデオ・カード・メモリの個々の領域に関連付けられ、どのエンティティが特定のメモリ領域にアクセスできるかを定義し、
    前記メモリ制御装置は、1つまたは複数のテーブル・エントリを有するメモリ保護テーブルを備え、個々のテーブル・エントリは少なくとも1つの暗号/復号鍵ペアをビデオ・カード・メモリ領域に関連付けるものであって、前記ビデオ・カード・メモリ領域は、前記ビデオ・カード・メモリ領域に関連付けられた前記暗号/復号鍵ペアを使用して暗号化および復号できるデータを保持するために用いられ、
    前記ビデオ・カード・メモリの保護された領域は、スヌーピング・デバイスから前記アクセス制御リストを用いることにより保護され、前記ビデオ・カード・メモリの保護されていない領域は、スヌーピング・デバイスからアクセス制御リストにより保護されておらず、
    暗号鍵/復号鍵ペアの制御が鍵マネージャによってなされ、
    前記鍵マネージャは、どの鍵が保護されていないメモリ領域内にある暗号化されたデータに関連付けられているかを追跡し、これを識別し得る
    ことを特徴とするビデオ・カード。
  9. 前記ビデオ・カード上のデータをそれぞれ暗号化および復号するのに使用される1つまたは複数の暗号/復号鍵ペアを制御するための鍵マネージャをさらに備えることを特徴とする請求項8に記載のビデオ・カード。
  10. 前記鍵マネージャは、前記メモリ制御装置と通信可能なようにリンクされ、前記メモリ制御装置を前記ビデオ・カード上のデータの暗号化および復号用にプログラムするように構成されていることを特徴とする請求項9に記載のビデオ・カード。
  11. 前記メモリ制御装置は、前記暗号化されたデータが前記ビデオ・カード上の前記ビデオ・カード・メモリの保護されていない領域に移動できるように、前記ビデオ・カード上の前記ビデオ・カード・メモリの保護された領域に格納された暗号化されていないデータを暗号化するように構成されることを特徴とする請求項8に記載のビデオ・カード。
  12. 前記ビデオ・カード上の前記ビデオ・カード・メモリと動作可能に関連付けられた復号器であって、前記ビデオ・カード・メモリから暗号化されたデータを受け取るように構成され、処理するために前記ディスプレイ変換器に復号されたデータを提供できるように前記暗号化されたデータを復号する復号器、をさらに備えることを特徴とする請求項11に記載のビデオ・カード。
  13. 前記ビデオ・カード上のデータをそれぞれ暗号化および復号するのに使用される1つまたは複数の暗号/復号鍵ペアを制御するための鍵マネージャをさらに備え、前記鍵マネージャは、暗号化されたデータを復号するのにどの鍵を使用するかを前記復号器に命令するように構成されていることを特徴とする請求項12に記載のビデオ・カード。
  14. 前記ビデオ・カード上でテーブルが定義され、前記テーブルは個々の鍵ペアと前記メモリの個々の保護された部分とを関連付ける個々のエントリを有することを特徴とする請求項1、2、5または6のうちのいずれかに記載の方法。
  15. 前記テーブルは、前記ビデオ・カード上のメモリ制御装置の一部として定義されることを特徴とする請求項14に記載の方法。
  16. ビデオ・カード上のデータを暗号化および復号するのに十分な暗号化および復号機能を備え、モニタ上にレンダリングされることになるデータを処理するためのグラフィック処理ユニット(GPU)と、
    前記GPUによって処理されるべきまたは処理されたデータを保持するために、動作可能に前記GPUに関連付けられたビデオ・カード・メモリであって、該ビデオ・カード・メモリは、暗号化されていないデータを格納するための保護された部分と暗号化されたデータを格納するための保護されない部分とを備える、ビデオ・カード・メモリと、
    前記モニタ上で前記データをレンダリングするのに使用するアナログ信号に、デジタル・データを変換するためのディスプレイ変換器と、
    前記ビデオ・カード・メモリの前記保護される部分を保護するように構成されたメモリ制御装置と
    を備えるビデオ・カードであって、
    前記メモリ制御装置は、前記メモリの前記保護される部分を保護するために使用される1つまたは複数のアクセス制御リストを備え、
    前記アクセス制御リストは、前記ビデオ・カード・メモリの前記保護される部分にアクセスできるエンティティを定義し、
    前記ビデオ・カード・メモリの前記保護される部分は、前記アクセス制御リストによりスヌーピング・デバイスから保護され、各々が個々の暗号鍵/復号鍵ペアと関連付けられており
    前記ビデオ・カード・メモリの前記保護されていない部分は、前記アクセス制御リストにより前記スヌーピング・デバイスから保護されておらず、
    暗号鍵/復号鍵ペアの制御が鍵マネージャによってなされ、
    前記鍵マネージャは、どの鍵が保護されていないメモリ領域内にある暗号化されたデータに関連付けられているかを追跡し、これを識別し得る
    ことを特徴とするビデオ・カード。
  17. 前記暗号/復号機能を使用して前記GPUをプログラムするように構成された、前記ビデオ・カード上の鍵マネージャをさらに備えることを特徴とする請求項16に記載のビデオ・カード。
  18. 前記GPUは、前記ビデオ・カード・メモリの保護されていない部分にあるデータを前記ビデオ・カード・メモリの保護された部分に復号するように構成されたことを特徴とする請求項16に記載のビデオ・カード。
  19. 前記GPUは、前記ビデオ・カード・メモリの保護された部分にあるデータを前記ビデオ・カード・メモリの保護されていない部分に暗号化するように構成されたことを特徴とする請求項16に記載のビデオ・カード。
JP2003006414A 2002-01-16 2003-01-14 セキュア・ビデオ・カード方法およびシステム Expired - Fee Related JP4504623B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/052,840 US7065651B2 (en) 2002-01-16 2002-01-16 Secure video card methods and systems
US10/052,840 2002-01-16

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2009190334A Division JP4804565B2 (ja) 2002-01-16 2009-08-19 セキュア・ビデオ・カード方法およびシステム

Publications (2)

Publication Number Publication Date
JP2003289500A JP2003289500A (ja) 2003-10-10
JP4504623B2 true JP4504623B2 (ja) 2010-07-14

Family

ID=21980235

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2003006414A Expired - Fee Related JP4504623B2 (ja) 2002-01-16 2003-01-14 セキュア・ビデオ・カード方法およびシステム
JP2009190334A Expired - Fee Related JP4804565B2 (ja) 2002-01-16 2009-08-19 セキュア・ビデオ・カード方法およびシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2009190334A Expired - Fee Related JP4804565B2 (ja) 2002-01-16 2009-08-19 セキュア・ビデオ・カード方法およびシステム

Country Status (8)

Country Link
US (7) US7065651B2 (ja)
EP (1) EP1345435B1 (ja)
JP (2) JP4504623B2 (ja)
CN (2) CN100458739C (ja)
AT (1) ATE438260T1 (ja)
BR (1) BR0300072A (ja)
DE (1) DE60328554D1 (ja)
ES (1) ES2327325T3 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8738929B2 (en) 2002-06-24 2014-05-27 Microsoft Corporation Auxiliary functionality for pixel data

Families Citing this family (143)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020057795A1 (en) * 2000-11-10 2002-05-16 Spurgat Jeffrey Jonathan Content protection through the audio and video decrypting and decoding device
US20040030929A1 (en) * 2001-11-06 2004-02-12 Depeng Bi Digital audio and video distribution transmission and playback
US7065651B2 (en) * 2002-01-16 2006-06-20 Microsoft Corporation Secure video card methods and systems
JP2003271457A (ja) * 2002-03-14 2003-09-26 Sanyo Electric Co Ltd データ記憶装置
US7515173B2 (en) * 2002-05-23 2009-04-07 Microsoft Corporation Head pose tracking system
EP1376492A1 (en) * 2002-06-24 2004-01-02 Canal + Technologies Secure software customisation for smartcard
US6797998B2 (en) * 2002-07-16 2004-09-28 Nvidia Corporation Multi-configuration GPU interface device
US6993132B2 (en) * 2002-12-03 2006-01-31 Matsushita Electric Industrial Co., Ltd. System and method for reducing fraud in a digital cable network
US7293178B2 (en) 2002-12-09 2007-11-06 Microsoft Corporation Methods and systems for maintaining an encrypted video memory subsystem
EP1644788A1 (en) * 2003-07-04 2006-04-12 Koninklijke Philips Electronics N.V. Device for running copy-protected software
US7706777B2 (en) * 2003-09-23 2010-04-27 Broadcom Corporation Secure user interface in a shared resource environment
JP2005165738A (ja) * 2003-12-03 2005-06-23 Fusionsys:Kk 電子コンテンツ管理システム、電子コンテンツ管理方法、及びそのプログラム
US7519274B2 (en) 2003-12-08 2009-04-14 Divx, Inc. File format for multiple track digital data
US8472792B2 (en) 2003-12-08 2013-06-25 Divx, Llc Multimedia distribution system
KR20050075877A (ko) * 2004-01-16 2005-07-25 삼성전자주식회사 데이터 재전송 장치 및 방법
DE102004010203B4 (de) * 2004-03-02 2007-05-10 Siemens Ag Verfahren, Vorrichtung und Computerprogramm zur Erstellung einer Projektierung für ein Bediengerät einer Automatisierungskomponente
US7265759B2 (en) 2004-04-09 2007-09-04 Nvidia Corporation Field changeable rendering system for a computing device
US20050246803A1 (en) * 2004-04-30 2005-11-03 Spencer Andrew M Peripheral device for processing data from a computing device
US20060020785A1 (en) * 2004-06-30 2006-01-26 Grawrock David W Secure distribution of a video card public key
US8359332B1 (en) 2004-08-02 2013-01-22 Nvidia Corporation Secure content enabled drive digital rights management system and method
US8402283B1 (en) * 2004-08-02 2013-03-19 Nvidia Corporation Secure content enabled drive system and method
US7475190B2 (en) * 2004-10-08 2009-01-06 International Business Machines Corporation Direct access of cache lock set data without backing memory
US7593429B2 (en) * 2004-10-14 2009-09-22 Temic Automotive Of North America, Inc. System and method for time synchronizing nodes in an automotive network using input capture
US7623552B2 (en) * 2004-10-14 2009-11-24 Temic Automotive Of North America, Inc. System and method for time synchronizing nodes in an automotive network using input capture
US20060083172A1 (en) * 2004-10-14 2006-04-20 Jordan Patrick D System and method for evaluating the performance of an automotive switch fabric network
US7593344B2 (en) * 2004-10-14 2009-09-22 Temic Automotive Of North America, Inc. System and method for reprogramming nodes in an automotive switch fabric network
US7599377B2 (en) * 2004-10-15 2009-10-06 Temic Automotive Of North America, Inc. System and method for tunneling standard bus protocol messages through an automotive switch fabric network
US7613190B2 (en) * 2004-10-18 2009-11-03 Temic Automotive Of North America, Inc. System and method for streaming sequential data through an automotive switch fabric
US8875309B1 (en) 2004-12-15 2014-10-28 Nvidia Corporation Content server and method of providing content therefrom
US8788425B1 (en) 2004-12-15 2014-07-22 Nvidia Corporation Method and system for accessing content on demand
US8346807B1 (en) 2004-12-15 2013-01-01 Nvidia Corporation Method and system for registering and activating content
US8751825B1 (en) 2004-12-15 2014-06-10 Nvidia Corporation Content server and method of storing content
GB0427973D0 (en) * 2004-12-21 2005-01-26 Falanx Microsystems As Microprocessor systems
US7312801B2 (en) * 2005-02-25 2007-12-25 Microsoft Corporation Hardware accelerated blend modes
US8893299B1 (en) 2005-04-22 2014-11-18 Nvidia Corporation Content keys for authorizing access to content
US7710741B1 (en) * 2005-05-03 2010-05-04 Nvidia Corporation Reconfigurable graphics processing system
JP4743596B2 (ja) * 2005-06-07 2011-08-10 株式会社リコー 画像処理装置、方法、プログラムおよび記録媒体
US7725739B2 (en) * 2005-07-15 2010-05-25 Microsoft Corporation Securing sensitive data in memory
TWI264983B (en) * 2005-07-27 2006-10-21 Asustek Comp Inc Interface card with a control chip
US8219829B2 (en) * 2005-12-08 2012-07-10 Intel Corporation Scheme for securing locally generated data with authenticated write operations
US7340557B2 (en) * 2005-12-15 2008-03-04 Via Technologies, Inc. Switching method and system for multiple GPU support
US8001374B2 (en) * 2005-12-16 2011-08-16 Lsi Corporation Memory encryption for digital video
EP1809085A1 (en) * 2006-01-16 2007-07-18 Lih Duo International Co., Ltd. VGA interface card
US7916864B2 (en) * 2006-02-08 2011-03-29 Nvidia Corporation Graphics processing unit used for cryptographic processing
WO2007106844A2 (en) 2006-03-14 2007-09-20 Divx, Inc. Federated digital rights management scheme including trusted systems
US8648867B2 (en) 2006-09-25 2014-02-11 Neurala Llc Graphic processor based accelerator system and method
US7870336B2 (en) * 2006-11-03 2011-01-11 Microsoft Corporation Operating system protection against side-channel attacks on secrecy
DE112006004173T5 (de) * 2006-12-15 2009-11-12 Agere Systems, Inc. Schutz eines programmierbaren Speichers gegen unberechtigte Veränderung
EP4184341A1 (en) 2007-01-05 2023-05-24 DivX, LLC Video distribution system including progressive playback
US8588421B2 (en) * 2007-01-26 2013-11-19 Microsoft Corporation Cryptographic key containers on a USB token
WO2008110985A1 (en) 2007-03-13 2008-09-18 Nxp B.V. Encryption and decryption of a dataset in at least two dimensions
US8095816B1 (en) 2007-04-05 2012-01-10 Marvell International Ltd. Processor management using a buffer
US8443187B1 (en) 2007-04-12 2013-05-14 Marvell International Ltd. Authentication of computing devices in server based on mapping between port identifier and MAC address that allows actions-per-group instead of just actions-per-single 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)
US8321706B2 (en) * 2007-07-23 2012-11-27 Marvell World Trade Ltd. USB self-idling techniques
KR20100106327A (ko) 2007-11-16 2010-10-01 디브이엑스, 인크. 멀티미디어 파일을 위한 계층적 및 감소된 인덱스 구조
US8171309B1 (en) * 2007-11-16 2012-05-01 Marvell International Ltd. Secure memory controlled access
US7966465B2 (en) * 2008-01-17 2011-06-21 Broadcom Corporation Method and system for secure code encryption for PC-slave devices
US9418220B1 (en) * 2008-01-28 2016-08-16 Hewlett Packard Enterprise Development Lp Controlling access to memory using a controller that performs cryptographic functions
US8826037B2 (en) * 2008-03-13 2014-09-02 Cyberlink Corp. Method for decrypting an encrypted instruction and system thereof
US8646052B2 (en) * 2008-03-31 2014-02-04 Intel Corporation Method and apparatus for providing a secure display window inside the primary display
US20090252323A1 (en) * 2008-04-03 2009-10-08 Simon Cooper Methods, techniques and system for maintaining security on computer systems
US8156565B2 (en) * 2008-04-28 2012-04-10 Microsoft Corporation Hardware-based protection of secure data
US8393008B2 (en) * 2008-05-21 2013-03-05 Microsoft Corporation Hardware-based output protection of multiple video streams
US8373708B2 (en) * 2008-07-30 2013-02-12 Nvidia Corporation Video processing system, method, and computer program product for encrypting communications between a plurality of graphics processors
US8319780B2 (en) * 2008-07-30 2012-11-27 Nvidia Corporation System, method, and computer program product for synchronizing operation of a first graphics processor and a second graphics processor in order to secure communication therebetween
US8510560B1 (en) 2008-08-20 2013-08-13 Marvell International Ltd. Efficient key establishment for wireless networks
US8736626B2 (en) 2008-08-26 2014-05-27 Matrox Graphics Inc. Method and system for cryptographically securing a graphics system
US8782433B2 (en) * 2008-09-10 2014-07-15 Inside Secure Data security
KR101595043B1 (ko) 2008-09-18 2016-02-17 마벨 월드 트레이드 리미티드 적어도 부분적으로 부팅 동안에 어플리케이션들을 메모리에 프리로딩하는 방법
US8571216B2 (en) * 2008-12-01 2013-10-29 Apple Inc. Eliminating plaintext video from external memory
CN102272734B (zh) * 2009-01-05 2014-09-10 马维尔国际贸易有限公司 使用非易失性存储器设备用于休眠或挂起的方法和系统
US8726043B2 (en) * 2009-04-29 2014-05-13 Empire Technology Development Llc Securing backing storage data passed through a network
US8352679B2 (en) * 2009-04-29 2013-01-08 Empire Technology Development Llc Selectively securing data and/or erasing secure data caches responsive to security compromising conditions
US8799671B2 (en) * 2009-05-06 2014-08-05 Empire Technology Development Llc Techniques for detecting encrypted data
US8924743B2 (en) 2009-05-06 2014-12-30 Empire Technology Development Llc Securing data caches through encryption
US9589159B2 (en) * 2009-06-26 2017-03-07 Intel Corporation Creating secure communication channels between processing elements
CA2782825C (en) 2009-12-04 2016-04-26 Divx, Llc Elementary bitstream cryptographic material transport systems and methods
EA023320B1 (ru) * 2010-05-27 2016-05-31 Лэндмарк Графикс Корпорейшн Способ и система для визуализации значений каротажной диаграммы скважины
WO2012025728A1 (en) 2010-08-27 2012-03-01 Fxi Technologies As Electronics Device
US20120079270A1 (en) * 2010-09-29 2012-03-29 Navin Patel Hardware-Assisted Content Protection for Graphics Processor
US8914534B2 (en) 2011-01-05 2014-12-16 Sonic Ip, Inc. Systems and methods for adaptive bitrate streaming of media stored in matroska container files using hypertext transfer protocol
US20120216048A1 (en) * 2011-02-17 2012-08-23 Nikos Kaburlasos System, method and computer program product for application-agnostic audio acceleration
US8516271B2 (en) * 2011-03-11 2013-08-20 Hewlett-Packard Development Company, L. P. Securing non-volatile memory regions
US8812662B2 (en) 2011-06-29 2014-08-19 Sonic Ip, Inc. Systems and methods for estimating available bandwidth and performing initial stream selection when streaming content
US20140149729A1 (en) 2011-07-18 2014-05-29 Ted A. Hadley Reset vectors for boot instructions
US9141394B2 (en) 2011-07-29 2015-09-22 Marvell World Trade Ltd. Switching between processor cache and random-access memory
US9767840B2 (en) * 2011-08-18 2017-09-19 Apple Inc. Securing protected content during video playback
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
CN108989847B (zh) 2011-08-30 2021-03-09 帝威视有限公司 用于编码和流处理视频的系统和方法
US8787570B2 (en) 2011-08-31 2014-07-22 Sonic Ip, Inc. Systems and methods for automatically genenrating top level index files
US8799647B2 (en) 2011-08-31 2014-08-05 Sonic Ip, Inc. Systems and methods for application identification
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
US8964977B2 (en) 2011-09-01 2015-02-24 Sonic Ip, Inc. Systems and methods for saving encoded media streamed using adaptive bitrate streaming
US9159374B2 (en) * 2011-11-02 2015-10-13 Novachips Canada Inc. Flash memory module and memory subsystem
US9436629B2 (en) 2011-11-15 2016-09-06 Marvell World Trade Ltd. Dynamic boot image streaming
TWI453586B (zh) * 2011-12-02 2014-09-21 Giga Byte Tech Co Ltd 顯示卡及其資訊儲存方法
US20130179199A1 (en) 2012-01-06 2013-07-11 Rovi Corp. Systems and methods for granting access to digital content using electronic tickets and ticket tokens
US20140012704A1 (en) 2012-07-05 2014-01-09 Google Inc. Selecting a preferred payment instrument based on a merchant category
US9743017B2 (en) * 2012-07-13 2017-08-22 Lattice Semiconductor Corporation Integrated mobile desktop
US9936267B2 (en) 2012-08-31 2018-04-03 Divx Cf Holdings Llc System and method for decreasing an initial buffering period of an adaptive streaming system
US9313510B2 (en) 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
US9575768B1 (en) 2013-01-08 2017-02-21 Marvell International Ltd. Loading boot code from multiple memories
US8931108B2 (en) 2013-02-18 2015-01-06 Qualcomm Incorporated Hardware enforced content protection for graphics processing units
US9092767B1 (en) 2013-03-04 2015-07-28 Google Inc. Selecting a preferred payment instrument
US9906785B2 (en) 2013-03-15 2018-02-27 Sonic Ip, Inc. Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata
US10397292B2 (en) 2013-03-15 2019-08-27 Divx, Llc Systems, methods, and media for delivery of content
US9736801B1 (en) 2013-05-20 2017-08-15 Marvell International Ltd. Methods and apparatus for synchronizing devices in a wireless data communication system
US9521635B1 (en) 2013-05-21 2016-12-13 Marvell International Ltd. Methods and apparatus for selecting a device to perform shared functionality in a deterministic and fair manner in a wireless data communication system
WO2014190208A2 (en) 2013-05-22 2014-11-27 Neurala, Inc. Methods and apparatus for early sensory integration and robust acquisition of real world knowledge
WO2014204615A2 (en) 2013-05-22 2014-12-24 Neurala, Inc. Methods and apparatus for iterative nonspecific distributed runtime architecture and its application to cloud intelligence
US9094737B2 (en) 2013-05-30 2015-07-28 Sonic Ip, Inc. Network video streaming with trick play based on separate trick play files
US9380099B2 (en) 2013-05-31 2016-06-28 Sonic Ip, Inc. Synchronizing multiple over the top streaming clients
US9100687B2 (en) 2013-05-31 2015-08-04 Sonic Ip, Inc. Playback synchronization across playback devices
WO2015015305A1 (en) 2013-07-31 2015-02-05 Marvell Word Trade Ltd. Parallelizing boot operations
US9223724B2 (en) 2013-09-09 2015-12-29 Kabushiki Kaisha Toshiba Information processing device
US10049048B1 (en) * 2013-10-01 2018-08-14 Facebook, Inc. Method and system for using processor enclaves and cache partitioning to assist a software cryptoprocessor
US9386067B2 (en) 2013-12-30 2016-07-05 Sonic Ip, Inc. Systems and methods for playing adaptive bitrate streaming content by multicast
WO2015102564A1 (en) * 2013-12-30 2015-07-09 Empire Technology Developement LLC Information rendering scheme
US9519758B2 (en) * 2014-02-04 2016-12-13 Pegasus Media Security, Llc System and process for monitoring malicious access of protected content
US9858572B2 (en) 2014-02-06 2018-01-02 Google Llc Dynamic alteration of track data
EP3120300A4 (en) 2014-03-19 2017-11-22 Neurala Inc. Methods and apparatus for autonomous robotic control
US9626566B2 (en) 2014-03-19 2017-04-18 Neurala, Inc. Methods and apparatus for autonomous robotic control
US9866878B2 (en) 2014-04-05 2018-01-09 Sonic Ip, Inc. Systems and methods for encoding and playing back video at different frame rates using enhancement layers
US9158921B1 (en) * 2014-05-12 2015-10-13 Freescale Semiconductor, Inc. Secure boot on deep sleep wake-up
SG11201609457UA (en) 2014-08-07 2016-12-29 Sonic Ip Inc Systems and methods for protecting elementary bitstreams incorporating independently encoded tiles
CN104880330A (zh) * 2014-08-14 2015-09-02 深圳市亚泰光电技术有限公司 一种机械故障监测系统及方法
FR3030827B1 (fr) 2014-12-19 2017-01-27 Stmicroelectronics (Grenoble 2) Sas Procede et dispositif de traitement securise de donnees cryptees
WO2016112112A1 (en) 2015-01-06 2016-07-14 Sonic Ip, Inc. Systems and methods for encoding and sharing content between devices
WO2016138493A1 (en) 2015-02-27 2016-09-01 Sonic Ip, Inc. Systems and methods for frame duplication and frame extension in live video encoding and streaming
US10102391B2 (en) 2015-08-07 2018-10-16 Qualcomm Incorporated Hardware enforced content protection for graphics processing units
US9767320B2 (en) 2015-08-07 2017-09-19 Qualcomm Incorporated Hardware enforced content protection for graphics processing units
CN109075968A (zh) 2016-03-08 2018-12-21 马维尔国际贸易有限公司 用于安全设备认证的方法和装置
US10075292B2 (en) 2016-03-30 2018-09-11 Divx, Llc Systems and methods for quick start-up of playback
US10129574B2 (en) 2016-05-24 2018-11-13 Divx, Llc Systems and methods for providing variable speeds in a trick-play mode
US10231001B2 (en) 2016-05-24 2019-03-12 Divx, Llc Systems and methods for providing audio content during trick-play playback
US10148989B2 (en) 2016-06-15 2018-12-04 Divx, Llc Systems and methods for encoding video content
US10498795B2 (en) 2017-02-17 2019-12-03 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming
CN109117656A (zh) * 2018-08-27 2019-01-01 惠州Tcl移动通信有限公司 一种自动保存信息数据的方法、存储介质及移动终端
EP4398582A3 (en) 2019-03-21 2024-08-07 DivX, LLC Systems and methods for multimedia swarms
US11439010B2 (en) * 2020-02-05 2022-09-06 Nvidia Corporation Via pattern for framebuffer interfaces
US20230094658A1 (en) * 2021-09-24 2023-03-30 Apple Inc. Protected access to rendering information for electronic devices

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60160491A (ja) * 1984-01-31 1985-08-22 Toshiba Corp Icカードとicカード発行装置
US4962533A (en) * 1989-02-17 1990-10-09 Texas Instrument Incorporated Data protection for computer systems
JPH04182885A (ja) * 1990-11-19 1992-06-30 Nippon Telegr & Teleph Corp <Ntt> 機密保護機能付きicカード
JPH09259044A (ja) * 1996-03-21 1997-10-03 Fuji Xerox Co Ltd 機密保護機能付き情報処理装置および機密保護方法
US5825879A (en) * 1996-09-30 1998-10-20 Intel Corporation System and method for copy-protecting distributed video content
JPH10293722A (ja) * 1997-04-17 1998-11-04 Taisei Corp データ保護装置
US6115819A (en) * 1994-05-26 2000-09-05 The Commonwealth Of Australia Secure computer architecture
JP2001103280A (ja) * 1999-09-30 2001-04-13 Canon Inc 情報処理方法とその装置

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1238427A (en) 1984-12-18 1988-06-21 Jonathan Oseas Code protection using cryptography
JPH06501324A (ja) 1990-04-27 1994-02-10 スキャンディック・インターナショナル・プロプライエタリー・リミテッド スマートカード妥当性検証装置および方法
US5297206A (en) * 1992-03-19 1994-03-22 Orton Glenn A Cryptographic method for communication and electronic signatures
US5321749A (en) * 1992-09-21 1994-06-14 Richard Virga Encryption device
US5572235A (en) * 1992-11-02 1996-11-05 The 3Do Company Method and apparatus for processing image data
US5577125A (en) 1993-06-14 1996-11-19 International Business Machines Corporation Graphical manipulation of encryption
US5881287A (en) * 1994-08-12 1999-03-09 Mast; Michael B. Method and apparatus for copy protection of images in a computer system
US5537467A (en) 1994-08-23 1996-07-16 Bell Communications Research, Inc. Method for forwarding a call to a temporarily utilized portable telephone
DE69532434T2 (de) * 1994-10-27 2004-11-11 Mitsubishi Corp. Gerät für Dateiurheberrechte-Verwaltungssystem
ATE496444T1 (de) * 1995-06-29 2011-02-15 Igt Reno Nev Elektronisches casinospielsystem mit verbesserten spielmöglichkeiten, authentifizierung und sicherheit
US5727062A (en) * 1995-07-06 1998-03-10 Ritter; Terry F. Variable size block ciphers
US5859920A (en) 1995-11-30 1999-01-12 Eastman Kodak Company Method for embedding digital information in an image
US5719937A (en) 1995-12-06 1998-02-17 Solana Technology Develpment Corporation Multi-media copy management system
US6055314A (en) * 1996-03-22 2000-04-25 Microsoft Corporation System and method for secure purchase and delivery of video content programs
GB9704638D0 (en) 1997-03-06 1997-04-23 Lsi Logic Corp Digital video broadcasting
US6421733B1 (en) * 1997-03-25 2002-07-16 Intel Corporation System for dynamically transcoding data transmitted between computers
US5898779A (en) 1997-04-14 1999-04-27 Eastman Kodak Company Photograhic system with selected area image authentication
US6047342A (en) * 1998-03-31 2000-04-04 Apple Computer, Inc. PC processing card for decoding operations
KR100296958B1 (ko) * 1998-05-06 2001-09-22 이석우 블록 데이터 암호화 장치
JP4051510B2 (ja) * 1998-07-16 2008-02-27 ソニー株式会社 データ記憶装置およびデータ記憶方法
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
US20020012432A1 (en) * 1999-03-27 2002-01-31 Microsoft Corporation Secure video card in computing device having digital rights management (DRM) system
CN1187756C (zh) 1999-05-28 2005-02-02 松下电器产业株式会社 半导体存储器卡、播放装置、记录装置、播放方法、记录方法、和计算机可读记录介质
US6731756B1 (en) * 1999-06-21 2004-05-04 Elisar Software Corporation, Inc. Method for securing video images
GB9923804D0 (en) 1999-10-08 1999-12-08 Hewlett Packard Co Electronic commerce system
JP3725384B2 (ja) 1999-11-24 2005-12-07 富士通株式会社 認証装置、認証方法及びその装置での処理をコンピュータに行なわせるためのプログラムを格納した記憶媒体
US7007304B1 (en) 2000-09-20 2006-02-28 Intel Corporation Method and apparatus to improve the protection of information presented by a computer
US6859832B1 (en) * 2000-10-16 2005-02-22 Electronics For Imaging, Inc. Methods and systems for the provision of remote printing services over a network
JP4153653B2 (ja) * 2000-10-31 2008-09-24 株式会社東芝 マイクロプロセッサおよびデータ保護方法
JP2002229859A (ja) * 2001-01-31 2002-08-16 Toshiba Corp ディスク記憶装置及び同装置に適用する認証方法
US7184546B2 (en) 2001-02-13 2007-02-27 Arkion S.L. Method based on an algorithm capable of being graphically implemented to be used for the generation of filtering of data sequences and crytographic applications
US6934389B2 (en) 2001-03-02 2005-08-23 Ati International Srl Method and apparatus for providing bus-encrypted copy protection key to an unsecured bus
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
US6848046B2 (en) * 2001-05-11 2005-01-25 Intel Corporation SMM loader and execution mechanism for component software for multiple architectures
US7007025B1 (en) 2001-06-08 2006-02-28 Xsides Corporation Method and system for maintaining secure data input and output
US20030017846A1 (en) * 2001-06-12 2003-01-23 Estevez Leonardo W. Wireless display
US6925180B2 (en) * 2001-09-27 2005-08-02 Sony Corporation PC card recorder
US7594265B2 (en) * 2001-11-14 2009-09-22 Ati Technologies, Inc. System for preventing unauthorized access to sensitive data and a method thereof
US7065651B2 (en) * 2002-01-16 2006-06-20 Microsoft Corporation Secure video card methods and systems
US7206940B2 (en) 2002-06-24 2007-04-17 Microsoft Corporation Methods and systems providing per pixel security and functionality
US7202875B2 (en) 2005-04-22 2007-04-10 Microsoft Corporation Palette-based, multi-tint, named color methods and systems

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60160491A (ja) * 1984-01-31 1985-08-22 Toshiba Corp Icカードとicカード発行装置
US4962533A (en) * 1989-02-17 1990-10-09 Texas Instrument Incorporated Data protection for computer systems
JPH04182885A (ja) * 1990-11-19 1992-06-30 Nippon Telegr & Teleph Corp <Ntt> 機密保護機能付きicカード
US6115819A (en) * 1994-05-26 2000-09-05 The Commonwealth Of Australia Secure computer architecture
JPH09259044A (ja) * 1996-03-21 1997-10-03 Fuji Xerox Co Ltd 機密保護機能付き情報処理装置および機密保護方法
US5825879A (en) * 1996-09-30 1998-10-20 Intel Corporation System and method for copy-protecting distributed video content
JPH10293722A (ja) * 1997-04-17 1998-11-04 Taisei Corp データ保護装置
JP2001103280A (ja) * 1999-09-30 2001-04-13 Canon Inc 情報処理方法とその装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8738929B2 (en) 2002-06-24 2014-05-27 Microsoft Corporation Auxiliary functionality for pixel data

Also Published As

Publication number Publication date
US20050154902A1 (en) 2005-07-14
US7302586B2 (en) 2007-11-27
EP1345435A3 (en) 2005-01-05
US20050166042A1 (en) 2005-07-28
US20030135742A1 (en) 2003-07-17
JP2009283007A (ja) 2009-12-03
CN101441694B (zh) 2011-11-09
CN100458739C (zh) 2009-02-04
DE60328554D1 (de) 2009-09-10
ATE438260T1 (de) 2009-08-15
US7065651B2 (en) 2006-06-20
US20050154903A1 (en) 2005-07-14
US7337328B2 (en) 2008-02-26
CN101441694A (zh) 2009-05-27
US7299365B2 (en) 2007-11-20
US20050152547A1 (en) 2005-07-14
EP1345435A2 (en) 2003-09-17
US7197648B2 (en) 2007-03-27
CN1432923A (zh) 2003-07-30
US7272726B2 (en) 2007-09-18
EP1345435B1 (en) 2009-07-29
US7337329B2 (en) 2008-02-26
US20050160285A1 (en) 2005-07-21
US20050125619A1 (en) 2005-06-09
JP4804565B2 (ja) 2011-11-02
JP2003289500A (ja) 2003-10-10
BR0300072A (pt) 2003-09-02
ES2327325T3 (es) 2009-10-28

Similar Documents

Publication Publication Date Title
JP4504623B2 (ja) セキュア・ビデオ・カード方法およびシステム
US7284135B2 (en) Methods and systems for maintaining an encrypted video memory subsystem
US7206940B2 (en) Methods and systems providing per pixel security and functionality
US8738929B2 (en) Auxiliary functionality for pixel data
JP4793882B2 (ja) 情報の不正な取得を防止するシステムおよびその方法
JP4522645B2 (ja) セキュアコンテンツを暗号的に保護する方法およびシステム
US6845450B1 (en) Display unit storing and using a cryptography key
KR20040000348A (ko) 비디오 카드 출력을 보호하기 위한 시스템 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090519

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090819

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091016

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20091020

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20091028

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100212

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100301

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: 20100413

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: 20100423

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130430

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140430

Year of fee payment: 4

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees