テクスチャリングシステム
【課題】ゲームソフトウェアの広範囲な複写を困難にする。
【解決手段】3DCGシステムのテクスチャリングシステムはテクスチャ化されるオブジェクトのデータを受取る。暗号化テクスチャデータは、記憶装置から得られ暗号解読ユニットで暗号解読されフレームバッファのテクスチャ像データを発生し表示のため出力される。3DCGシステムはソフトウェアアプリケーションの命令を生成し命令に関連するスタティックテクスチャデータを生成し暗号化し暗号化テクスチャデータとしてソフトウェア命令と共に供給する。配布装置をターゲット装置に接続し識別子データをターゲット装置から配布装置へ転送して配布装置で使用し、ターゲット装置に特有の暗号化定義データを発生することにより、保護されたソフトウェアアプリケーションを配布装置からターゲット装置へ配布できる。保護されたソフトウェアアプリケーション及び暗号化定義データはターゲット装置へ転送される。
【解決手段】3DCGシステムのテクスチャリングシステムはテクスチャ化されるオブジェクトのデータを受取る。暗号化テクスチャデータは、記憶装置から得られ暗号解読ユニットで暗号解読されフレームバッファのテクスチャ像データを発生し表示のため出力される。3DCGシステムはソフトウェアアプリケーションの命令を生成し命令に関連するスタティックテクスチャデータを生成し暗号化し暗号化テクスチャデータとしてソフトウェア命令と共に供給する。配布装置をターゲット装置に接続し識別子データをターゲット装置から配布装置へ転送して配布装置で使用し、ターゲット装置に特有の暗号化定義データを発生することにより、保護されたソフトウェアアプリケーションを配布装置からターゲット装置へ配布できる。保護されたソフトウェアアプリケーション及び暗号化定義データはターゲット装置へ転送される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、三次元グラフィックシステムに使用するためのテクスチャリングシステムに係る。更に、本発明は、保護ソフトウェアアプリケーションを配布する方法にも係る。
【背景技術】
【0002】
コンピュータグラフィックアプリケーション、特に、コンピュータゲームは、開発に多大な費用がかかる。又、不幸にも、それらは、おそらく潜在的ユーザの人数のために、ソフトウェア海賊行為の好適なターゲットでもある。過去に、海賊行為は、通常、例えばROMカートリッジや「複写が困難」なディスクのような物理的媒体においてアプリケーションを供給するか、又は例えばドングルのような物理的なキーを送付することにより、部分的に制限されてきた。しかしながら、ソフトウェアは、益々電子的に販売されるようになり、例えば、ショップの「ポイント・オブ・セール」POSターミナルや、インターネットからダウンロードされることが考えられる。従って、物理的媒体のこのような欠如は、他の手段がとられない限り、潜在的に不法複写を非常に簡単なタスクにしてしまう。
【0003】
海賊行為からのソフトウェアの保護は、これまで多数の技術に依存してきた。1つのこのような技術は、複写が困難な物理的媒体をソフトウェアアプリケーションの記憶に使用することである。例えば、あるコンピュータゲームコンソールの製造者は、「リードオンリメモリ」(ROM)カートリッジを使用するか、又は既製の複写ツールが存在しない高密度CD−ROM等の通常媒体の所有権変形物を使用している。
【0004】
パーソナルコンピュータにしばしば使用されている別の技術は、フロッピー(登録商標)ディスクやCDのような標準媒体を使用するが、例えば、レーザを使用して製造中に小さな領域においてそれらに故意に「ダメージ」を与えることである。従って、アプリケーションソフトウェアは、供給された記憶媒体がこれらのエラーを含むことをチェックするための命令を含む。既製のフロッピー(登録商標)ドライブ又はCD−ROM「バーナー」は、媒体におけるエラーを再現することができない。エラーのチェックは、ソフトウェア内にある程度隠すことができるが、充分な時間が与えられれば、決定的なクラッカーは、それらの位置を見つけて、チェックを取り除いたアプリケーションの変更バージョンを作成することができる。この「クラック(改変)」されたソフトウェアは、これを記憶して、既製の媒体を使用して実行することができる。
【0005】
ソフトウェアのコンテンツを変更から保護する別の方法は、外部メモリへの及びそこからの全ての転送を暗号化できる「保安」CPUを使用することである。しかしながら、このようなプロセッサは、一般的でなく、コンピュータグラフィック装置の製造者にとって重要なオプションとはなり得ない。更に、これは、それ自身、アプリケーションの複写を防止するものではなく、その変更しか防止しない。
【0006】
イーサネット(登録商標)アダプタ及びあるコンピュータのような幾つかの装置は、独特の内蔵識別子と共に構成される。この識別子は、ソフトウェアを、それが1つのマシンでしか実行できないようにカスタマイズするのに使用できることが明らかである。この場合も、他のステップがとられない限り、これは、チェックを取り除くソフトウェアの変更により悪用に対してオープンである。
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明は、特に、3Dコンピュータグラフィックのレンダリングを実行するシステム及びアプリケーションを取り扱う。
典型的な既知の環境が図1aに示されている。ここで、CPU1は、メモリ2に接続され、該メモリは、アプリケーションコード及びデータ構造体を含む。アプリケーションは、通常、ユーザ入力3に応答する。通常、像又はテクスチャデータのアプリケーションのためのパラメータを伴う三角形で構成された各3D像の記述がCPUにより発生され、そしてこのオブジェクトデータがレンダリングサブシステム4へ送信される。これは、メモリ5に記憶されたテクスチャデータを使用して、メモリ内のフレームバッファ内に構成される像データを発生する。出来上がった像は、次いで、ディスプレイシステム6へ送信される。あるシステムでは、メモリユニット2及び5は、実際には、同じ物理的メモリである。
【0008】
図1bを参照して、既知の3Dレンダリングシステム4を詳細に説明する。このレンダリングシステム4は、多角形データを受信するユニット7を含む。これらの多角形データは、ラスタ化ユニット8へ個々に又はバッチで送信され、このラスタ化ユニットは、最終像のどのピクセルがどの多角形により影響されそしてピクセルにどんな色が指定されるかを決定する。このプロセスの一部分として、テクスチャデータにアクセスしなければならない(9)。これは、多数の要求されたテクスチャ識別子及びピクセル座標位置をカラー値に変換することを含み、そしてメモリ制御システム10を経て3Dレンダリングシステムのメモリへアクセスするのを必要とする。このメモリ制御システムは、ラスタ化ユニット8からのフレームバッファ読み取り及び書き込み要求も取り扱う。最終的に、ディスプレイ制御システム11は、出来上がった像をメモリからディスプレイ装置へ転送する。
【課題を解決するための手段】
【0009】
本発明の目的は、既知の配布技術に関連した問題を改善することである。本発明によれば、その第1の特徴において、請求項1に記載のテクスチャリングシステムが提供される。このテクスチャリングシステムの好ましい特徴は、従属請求項2及び3に規定されている。暗号化されたスタティックなテクスチャデータを、オブジェクトデータに適用する前に暗号解読することを必要としたことで、そのテクスチャデータを複写してそれを別の装置で使用して同じアプリケーションを実行するのを困難にすることにより、アプリケーションを保護する手段が提供される。
【0010】
本発明の第2の特徴によれば、請求項4に基づき三次元グラフィックデータにテクスチャリングを適用する方法が提供される。この方法の好ましい段階は、従属請求項5に規定される。
本発明によれば、その第3の特徴において、請求項6に基づきソフトウェアアプリケーションを形成する方法が提供される。このソフトウェアアプリケーションは、許可された装置しかスタティックテクスチャデータを暗号解読してソフトウェアアプリケーションを実行できないように、スタティックテクスチャデータの暗号化によって保護される。好ましい特徴は、従属請求項7及び8に規定されている。
【0011】
本発明の第4の特徴によれば、請求項9に基づき、保護されたソフトウェアアプリケーションを配布装置からターゲット装置へ配布する方法が提供される。
本発明の第5の特徴によれば、請求項10に基づく3−dグラフィック装置が提供される。
【0012】
アプリケーション、特に、ゲームアプリケーションにより使用される多くのテクスチャは、そのアプリケーションが書き込まれるときに作成されることが明らかである。説明上、これらをスタティックテクスチャと称する。アプリケーションの実行中に他のテクスチャが作成され、これらは、ダイナミックテクスチャと称する。
【0013】
本発明の目的は、グラフィックソフトウェア、特にゲームソフトウェアの広範囲な複写を困難にすることである。これは、ソフトウェアの不明瞭化、保護されたCPUの使用及び/又は所有権のある記憶媒体の使用に依存するのではなく、レンダリングハードウェア内の保護回路とスタティックテクスチャデータの保護との組合せで行われる。本発明は、スタティックテクスチャデータを暗号化し、そしてソフトウェアアプリケーションに関連したテクスチャデータの暗号解読を制御することにより、ソフトウェアを無断使用から保護することを実現することにある。本発明は、このようなアプリケーションの広範囲な複写を禁止するように付加的なソフトウェア作成段階でコンピュータグラフィックハードウェアを適応させる方法に関する。
【0014】
ここに示すシステムは、コンピュータグラフィックアプリケーション、特に、コンピュータゲームの合理的な割合が、アプリケーションの開発中に準備されるスタティックテクスチャデータであることに依存する。アプリケーションを保護するために、標準的な3Dレンダリングハードウェアシステムは、5つの主たる方法で変更される。第1に、各レンダリングチップは、そこに埋設された独特の、又は少なくとも非常に稀に繰り返される識別コードを有する。第2に、1組のシークレットキーがレンダリングチップのシリコンに組み込まれ、実質上アクセスが不可能にされる。あるシークレットキーの知識は、信頼のある当事者にのみ解放される。第3に、ある数の各アプリケーションの外部記憶テクスチャが、開発中に暗号化され、そして3Dレンダリングチップ内でレンダリングプロセス中にテクスチャリングシステムによってのみ暗号解読される。第4に、暗号化されたスタティックテクスチャは、保安チェック和でマークされ、無効のテクスチャデータが供給された場合にはレンダリングを終了することができる。最終的に、ソフトウェア配送システムも変更され、アプリケーションを実行すべき特定のターゲット装置のためのソフトウェアを変更し又は「仕立てる」ことができる。
【0015】
ダイナミックなテクスチャ、即ちアプリケーションの実行中にソフトウェアにより発生されるテクスチャは、暗号化/保護されないことに注意されたい。対称的(即ち、プライベートキーのみ)暗号化が使用された場合には、キーをアプリケーションに記憶することが必要となり、従って、決定されたソフトウェア海賊にそれを曝すことになる。別のやり方は、公開/プライベートキーシステムを使用することであるが、現在、それらは非常に低速であり、従って、テクスチャを暗号化するための時間が、リアルタイムシステムにおいてこの技術を望ましからぬものにする。
以下、添付図面を参照して、本発明の実施形態を詳細に説明する。
【図面の簡単な説明】
【0016】
【図1a】既知の3−dグラフィックレンダリングシステムのブロック図である。
【図1b】図1aのシステムの更なる詳細を示すブロック図である。
【図2a】暗号化されたテクスチャデータを使用してソフトウェアアプリケーションを生成するのに含まれる段階を示すフローチャートである。
【図2b】ターゲット装置へ転送するためにソフトウェアアプリケーションを変更するのに含まれる段階を示すフローチャートである。
【図2c】変更されたソフトウェアアプリケーションを実行できるようにするためにターゲット装置によって行われる段階を示すフローチャートである。
【図3a】テクスチャデータの保安チェック和の発生及び暗号化を示すフローチャートである。
【図3b】チェック和の発生に含まれる段階を詳細に示すフローチャートである。
【図4】セールスキーの発生を示すフローチャートである。
【図5】本発明の実施形態によるテクスチャリングシステムを示すブロック図である。
【図6】テクスチャリングシステムのキー生成ユニットにより実行される段階を示すフローチャートである。
【図7】生成制御ユニットにより実行される段階を示す図である。
【発明を実施するための形態】
【0017】
好ましい実施形態において、保護システムは、図2aないし2cに示された3つの主たる処理段階で構成される。これらは、ソフトウェアのオーサリング中に行われる生成(又は開発)段階20と、ソフトウェアが電子的に購入されるときに行われる任意の「ポイント・オブ・セール」段階21と、ソフトウェアが装置において実行されるときに行われるランタイム/レンダリング段階22である。
【0018】
生成段階は、更に、標準的なアプリケーション開発ステップ23と、2つの新たなステップとを含む。その第1は、AEKと称されるアプリケーション特有の暗号キーの選択24であり(好ましくはランダム手段による)、そして第2のステップ25では、大部分のスタティックテクスチャ、即ちテクスチャメモリに単にロードされてアプリケーションの実行中にアプリケーションソフトウェアにより変更されないテクスチャが、チェック和処理され、そしてAEKにより暗号化される。好ましい実施形態では、暗号システムは、プライベートキーシステムであり、セキュリティの理由で、好ましい実施形態のAEKは、そのサイズが少なくとも64ビットとなる。
【0019】
「ポイント・オブ・セール」段階21は、アプリケーションが電子的に供給される(即ち、大量生産の物理的媒体が使用されない)場合に適用される。第1のステップ26は、ターゲット装置の独特(又はほぼ独特)の識別子DevIDを要求することである。次のステップ27は、DevIDと、AEKと、レンダリングチップ内に埋め込まれた多数のシークレットキーの1つとを機密裡に結合して、セールスキーSAKを生成することであり、これは、そのアプリケーションとターゲットレンダリング装置との対形成に特有のものである。最後のステップ28は、AEKで暗号化されたテクスチャを含む全アプリケーションデータを、SAKと、ステップ27で使用されたシークレットキーに対するインデックスと共に、ターゲット装置へダウンロードすることである。
【0020】
以下に述べるポイント・オブ・セール段階を使用しない場合、例えば、アプリケーションをダウンロードではなく物理的媒体に与えるべき場合には、2つの選択肢が考えられる。第1に、内蔵「設定」プログラムが、所有者に、例えば、フリー電話番号を経てサポートオペレータにコンタクトするように求め、サポートオペレータは、ユーザに装置のシリアル/識別番号を尋ね、そしてセールスキーを返送する。このキーは、次いで、所有者によって入力され、そしてアプリケーションの将来の実行のためにアプリケーションによりセーブされる(通常、取り外し可能なメモリユニットに)。或いは又、1セットの埋め込まれたシークレットキー識別子の小さなサブセットが、内部装置識別子DevIDを既知の一定値に「置き換えて」、大量生産された媒体の同一コピーをいかなる装置でも実行できるようにするという副作用をもつこともできる。
【0021】
ランタイムレンダリング段階22は、アプリケーションがSAK及び内部シークレットキーをレンダリングハードウェア29へ供給することを要求する。レンダリングハードウェアは、内部キーDevID及びSAKを使用することによりポイント・オブ・セール段階で適用された結合ステップ27を逆転し(30)、AEKを検索する。レンダリング31中に、保護されたテクスチャが、AEKを使用してオンザフライで暗号解読される。ランタイムレンダリング段階22の好ましい実施形態では、多数の保護されたテクスチャがサンプリングされそしてチェック和が照合される。
【0022】
図3aを参照して、セキュリティチェック和を発生しそしてテクスチャデータを暗号化する好ましい方法25を説明する。各スタティックテクスチャ40が供給され、そしてテクスチャの最初の「N」個のワード41から前テクスチャチェック和が発生される。「N」の選択は、希望のセキュリティレベルと、テクスチャの有効性をテストするのに要する時間との間で妥協される。好ましい実施形態では、これは、ワードサイズが64ビットとなるような最初の4ワードであるが、他の組合せを選択することもできる。チェック和関数は、加算、モジュロ264、又はデータワードの自明なビット方向のXOR、即ち排他的ORのような単純な演算でよい。
【0023】
チェック和は、全テクスチャと連結され、その結果が暗号化され(42)、出力される(43)。図3bを参照して、暗号化ステップ42について詳細に説明する。ステップ44では、ブロック暗号化アルゴリズム45の巾に対応するデータのブロックが暗号化アルゴリズムに対して発生される。適当なブロック暗号化アルゴリズムの例は、現在のNIST「進歩型暗号規格」候補、例えば、「TwoFish」、又はそれより初期のトリプルDES規格の1つである。
【0024】
テクスチャは、AEK46を使用して「電子コードブック」即ちECBモードにおいて効果的に暗号化される。好ましい実施形態ではセキュリティを改善するために、入力値が、XOR演算を使用してテクスチャのベースに対するそれらの位置オフセットで「塩漬け(salted)」にされる(47)。例えば、テクスチャからのデータのJ番目のブロックは、暗号化の前に数字Jの二進表示とXORされる。これは、テクスチャのコンテンツを不明瞭にする助けをし、そしてコードブックに基づく侵略の困難さを増大する。更に進歩した多くの暗号モード、例えば、暗号ブロックチェーンCBCは、暗号化されたテクスチャ内でのピクセルのランダムなアクセスを許さないので、テクスチャ化には適さないことに注意されたい。
【0025】
セールスキーの生成27が図4に示されている。これは、装置ID即ちDevID50及びAEK46を取り出し、そして可逆容易な演算を使用してそれらを合成し(51)、暗号化定義データを中間結果52として発生することにより行われる。好ましい実施形態では、この合成演算は、加算又はビット方向の排他的オアであり、そして出力は、少なくとも64ビットである。この演算は、装置ID及び中間結果が与えられると、AEKを導出するのが簡単であるという意味で可逆である。
【0026】
次いで、暗号化定義データは、シークレットキー54を使用するブロック暗号で暗号化され(53)、シークレットキーのコピーは、各レンダリングチップ内に埋め込まれるか又はそこで導出することができる。このシークレットキーは、決して公衆に露呈されず、配布装置又はセールスツールに知らされる。好ましい実施形態では、現在シークレットキーが妥協された場合には複数のシークレットキーが埋め込まれる。或いは又、RSA(米国特許第4,405,829号)のような公開キーシステム、又はディフィ−ヘルマン(Diffie-Helman)(米国特許第4,200,770号)のようなキー交換システムを使用することもできる。公開キーは、セールスツールに使用され、そしてプライベートキーは、レンダリングハードウェアに埋め込まれる。
【0027】
暗号化された結果55は、セールスキーSAKとして使用され、これは、アプリケーションのコピーと共にエクスポートされる。
図5は、図1bにおいて最初に述べたレンダリングユニット4に対してなされる変更を示す。この変更されたユニットは、キー生成ユニット30を備え、これは、セールスキーSAKと、内部シークレットキーに対する識別子とを受け入れ、そして図4に示したステップを逆転する。これは、アプリケーションの暗号キー71の内部コピーを生成する。このキーは、テクスチャ暗号解読ユニット72へ供給され、該ユニットは、テクスチャアクセスユニット9により必要とされるテクスチャピクセルを暗号解読する。以上に述べたハードウェアでは、無効なキーが供給された場合に、多角形のテクスチャは、ランダムノイズとして現われることに注意されたい。
【0028】
更に、保護制御入力ユニット73は、アプリケーションが実行をスタートするときに、CPU1で実行されるアプリケーションからコマンドワード(1つ又は複数)を受け取る。アプリケーションの故意の変更により振舞いが妥協されるのを防止するために、これらのコマンドは、内部AEK71で暗号化される。ユニット73は、コマンドを暗号解読して、テクスチャ有効性チェックユニット74へ供給する。各シーンがレンダリングされる間に、このユニットは、テクスチャアクセスユニット9を経て、ある数の保護されたテクスチャをサンプリングし、記憶されたチェック和が、テクスチャデータのスタートから計算されたチェック和に一致することをテストする。73により供給されるコマンドで決定されるアクションは、これらの一致が失敗した場合に行うことができる。これらアクションの選択は、装置のターゲット市場に依存するが、起こりそうなアクションの選択は、レンダリングチップをシャットダウンし、割り込みをCPUへ送信し、そして「テクスチャ」を、デモンストレーションの目的で使用できるフラット陰影モードに置き換えることを包含できる。
【0029】
好ましい実施形態では、有効性ユニット74によりアクションがとられる前に、クロックカウンタにより決定される遅延が生じる。これは、時間がかかるために実行不能な低限定性の暗号化コマンドを繰返し推定することに基づいて攻撃を行う。
更に、好ましい実施形態では、メモリコントローラ10とメモリ5との間にメモリ暗号化/暗号解読ユニット75が配置されている。このユニットは、アプリケーションを再書き込みすることを伴う攻撃を仮定して、スタティックテクスチャのオリジナルコンテンツの逆方向エンジニアリングをより困難にすることが意図される。
【0030】
図6を参照して、キー生成ユニット30の振舞いを以下に説明する。アプリケーションは、結合ステップ27においてセールスアプリケーションにより使用されたシークレットキーに対する識別子を供給する。これは、シークレットキーテーブル又は機能81にアクセスし、これは、実際のシークレットキー82を返送する。好ましい実施形態では、シークレットキーは、対称的な暗号が使用されると仮定すれば、サイズが少なくとも64ビットである。公開/プライベートキーシステムが使用される場合には、相当に大きなキーが必要となる。次いで、選択されたシークレットキー82は、暗号解読機能83を使用して、アプリケーションにより供給されたセールスキー55を暗号解読するのに使用される。この機能は、暗号化ステップ53の逆でなければならない。中間結果52と同じである中間結果84が、装置ID86と共に分離即ち「非結合」オペレーション85へ供給され、これは、結合オペレーション51の逆である。その結果は、内部アプリケーション暗号キー71であり、これは、ステップ24で選択されてその後に46で使用されたものと同じである。好ましい実施形態は、多数のシークレットキーの選択肢を有し、ポイント・オブ・セールアプリケーションにおいてセキュリティ侵害が生じた場合に、将来の解放が妥協されないようなフォールバック位置が存在する。
【0031】
又、システムは、アプリケーションからレンダリングシステムへ発生された命令を、有効なテクスチャのチェックでその振舞いに関して保護しなければならない。これは、保護制御ユニット(73)内で行われ、図7を参照してそのオペレーションを以下に説明する。アプリケーションは、開発段階中にAEK24で暗号化された多数の法的命令の1つを供給し、これは、暗号化制御ワードレジスタ90に記憶される。低限定性制御ワードのランダムな推定を禁止するために、好ましい実施形態のレジスタは、少なくとも64ビット巾でなければならない。従って、レジスタのコンテンツは、AEK71の内部コピーを使用して暗号解読される(91)。暗号解読された結果は、次いで、それらが有効コマンド92の小さなセットの1つに一致するかどうかチェックされる。無効コマンドでは、非常に限定的なコマンドが有効性チェックモジュール74へ送信されることになり、これは、好ましい実施形態では、ある遅延の後にレンダリングを停止する。
【0032】
回路がシリコンで実施されるときには、保護を制御するエリア、及び特に、シークレットキーは、レジスタテスト走査チェーンによりアクセスされてはならないことに注意されたい。更に、シークレットキーは、公衆に解放されないことが重要である。
上記説明に関しては、同等の装置及び方法が当業者に容易に明らかであり、そして添付図面に示して上記で説明した全ての同等の装置及び方法は、本発明により包含されることが明らかである。それ故、上記説明は、本発明の原理を例示するものに過ぎない。更に、多数の変更や修正が当業者に明らかであろうから、本発明は、図示して説明した厳密な構造やオペレーションに限定されるものではなく、従って、全ての変更や修正は、本発明の範囲内に包含されるものとする。
【0033】
上記説明の種々の点において特定の図面を参照して述べた特徴は、特に説明され又は図示されたもの以外の組合せで使用できることに注意されたい。全てのこのような変更は、特許請求の範囲に規定された本発明の範囲内に包含される。
例えば、テクスチャデータを暗号化するための異なる技術、例えば、公開/プライベートキーシステムを使用することもできる。
【符号の説明】
【0034】
1 CPU
2、5 メモリユニット
3 ユーザ入力
4 3Dレンダリングシステム
6 ディスプレイシステム
7 多角形データ入力ユニット
8 ラスタ化ユニット
9 テクスチャアクセスユニット
10 メモリ制御システム
11 ディスプレイ制御システム
30 キー生成ユニット
71 暗号キー
72 テクスチャ暗号解読ユニット
73 保護制御入力ユニット
74 テクスチャ有効性チェックユニット
75 メモリ暗号化/暗号解読ユニット
【技術分野】
【0001】
本発明は、三次元グラフィックシステムに使用するためのテクスチャリングシステムに係る。更に、本発明は、保護ソフトウェアアプリケーションを配布する方法にも係る。
【背景技術】
【0002】
コンピュータグラフィックアプリケーション、特に、コンピュータゲームは、開発に多大な費用がかかる。又、不幸にも、それらは、おそらく潜在的ユーザの人数のために、ソフトウェア海賊行為の好適なターゲットでもある。過去に、海賊行為は、通常、例えばROMカートリッジや「複写が困難」なディスクのような物理的媒体においてアプリケーションを供給するか、又は例えばドングルのような物理的なキーを送付することにより、部分的に制限されてきた。しかしながら、ソフトウェアは、益々電子的に販売されるようになり、例えば、ショップの「ポイント・オブ・セール」POSターミナルや、インターネットからダウンロードされることが考えられる。従って、物理的媒体のこのような欠如は、他の手段がとられない限り、潜在的に不法複写を非常に簡単なタスクにしてしまう。
【0003】
海賊行為からのソフトウェアの保護は、これまで多数の技術に依存してきた。1つのこのような技術は、複写が困難な物理的媒体をソフトウェアアプリケーションの記憶に使用することである。例えば、あるコンピュータゲームコンソールの製造者は、「リードオンリメモリ」(ROM)カートリッジを使用するか、又は既製の複写ツールが存在しない高密度CD−ROM等の通常媒体の所有権変形物を使用している。
【0004】
パーソナルコンピュータにしばしば使用されている別の技術は、フロッピー(登録商標)ディスクやCDのような標準媒体を使用するが、例えば、レーザを使用して製造中に小さな領域においてそれらに故意に「ダメージ」を与えることである。従って、アプリケーションソフトウェアは、供給された記憶媒体がこれらのエラーを含むことをチェックするための命令を含む。既製のフロッピー(登録商標)ドライブ又はCD−ROM「バーナー」は、媒体におけるエラーを再現することができない。エラーのチェックは、ソフトウェア内にある程度隠すことができるが、充分な時間が与えられれば、決定的なクラッカーは、それらの位置を見つけて、チェックを取り除いたアプリケーションの変更バージョンを作成することができる。この「クラック(改変)」されたソフトウェアは、これを記憶して、既製の媒体を使用して実行することができる。
【0005】
ソフトウェアのコンテンツを変更から保護する別の方法は、外部メモリへの及びそこからの全ての転送を暗号化できる「保安」CPUを使用することである。しかしながら、このようなプロセッサは、一般的でなく、コンピュータグラフィック装置の製造者にとって重要なオプションとはなり得ない。更に、これは、それ自身、アプリケーションの複写を防止するものではなく、その変更しか防止しない。
【0006】
イーサネット(登録商標)アダプタ及びあるコンピュータのような幾つかの装置は、独特の内蔵識別子と共に構成される。この識別子は、ソフトウェアを、それが1つのマシンでしか実行できないようにカスタマイズするのに使用できることが明らかである。この場合も、他のステップがとられない限り、これは、チェックを取り除くソフトウェアの変更により悪用に対してオープンである。
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明は、特に、3Dコンピュータグラフィックのレンダリングを実行するシステム及びアプリケーションを取り扱う。
典型的な既知の環境が図1aに示されている。ここで、CPU1は、メモリ2に接続され、該メモリは、アプリケーションコード及びデータ構造体を含む。アプリケーションは、通常、ユーザ入力3に応答する。通常、像又はテクスチャデータのアプリケーションのためのパラメータを伴う三角形で構成された各3D像の記述がCPUにより発生され、そしてこのオブジェクトデータがレンダリングサブシステム4へ送信される。これは、メモリ5に記憶されたテクスチャデータを使用して、メモリ内のフレームバッファ内に構成される像データを発生する。出来上がった像は、次いで、ディスプレイシステム6へ送信される。あるシステムでは、メモリユニット2及び5は、実際には、同じ物理的メモリである。
【0008】
図1bを参照して、既知の3Dレンダリングシステム4を詳細に説明する。このレンダリングシステム4は、多角形データを受信するユニット7を含む。これらの多角形データは、ラスタ化ユニット8へ個々に又はバッチで送信され、このラスタ化ユニットは、最終像のどのピクセルがどの多角形により影響されそしてピクセルにどんな色が指定されるかを決定する。このプロセスの一部分として、テクスチャデータにアクセスしなければならない(9)。これは、多数の要求されたテクスチャ識別子及びピクセル座標位置をカラー値に変換することを含み、そしてメモリ制御システム10を経て3Dレンダリングシステムのメモリへアクセスするのを必要とする。このメモリ制御システムは、ラスタ化ユニット8からのフレームバッファ読み取り及び書き込み要求も取り扱う。最終的に、ディスプレイ制御システム11は、出来上がった像をメモリからディスプレイ装置へ転送する。
【課題を解決するための手段】
【0009】
本発明の目的は、既知の配布技術に関連した問題を改善することである。本発明によれば、その第1の特徴において、請求項1に記載のテクスチャリングシステムが提供される。このテクスチャリングシステムの好ましい特徴は、従属請求項2及び3に規定されている。暗号化されたスタティックなテクスチャデータを、オブジェクトデータに適用する前に暗号解読することを必要としたことで、そのテクスチャデータを複写してそれを別の装置で使用して同じアプリケーションを実行するのを困難にすることにより、アプリケーションを保護する手段が提供される。
【0010】
本発明の第2の特徴によれば、請求項4に基づき三次元グラフィックデータにテクスチャリングを適用する方法が提供される。この方法の好ましい段階は、従属請求項5に規定される。
本発明によれば、その第3の特徴において、請求項6に基づきソフトウェアアプリケーションを形成する方法が提供される。このソフトウェアアプリケーションは、許可された装置しかスタティックテクスチャデータを暗号解読してソフトウェアアプリケーションを実行できないように、スタティックテクスチャデータの暗号化によって保護される。好ましい特徴は、従属請求項7及び8に規定されている。
【0011】
本発明の第4の特徴によれば、請求項9に基づき、保護されたソフトウェアアプリケーションを配布装置からターゲット装置へ配布する方法が提供される。
本発明の第5の特徴によれば、請求項10に基づく3−dグラフィック装置が提供される。
【0012】
アプリケーション、特に、ゲームアプリケーションにより使用される多くのテクスチャは、そのアプリケーションが書き込まれるときに作成されることが明らかである。説明上、これらをスタティックテクスチャと称する。アプリケーションの実行中に他のテクスチャが作成され、これらは、ダイナミックテクスチャと称する。
【0013】
本発明の目的は、グラフィックソフトウェア、特にゲームソフトウェアの広範囲な複写を困難にすることである。これは、ソフトウェアの不明瞭化、保護されたCPUの使用及び/又は所有権のある記憶媒体の使用に依存するのではなく、レンダリングハードウェア内の保護回路とスタティックテクスチャデータの保護との組合せで行われる。本発明は、スタティックテクスチャデータを暗号化し、そしてソフトウェアアプリケーションに関連したテクスチャデータの暗号解読を制御することにより、ソフトウェアを無断使用から保護することを実現することにある。本発明は、このようなアプリケーションの広範囲な複写を禁止するように付加的なソフトウェア作成段階でコンピュータグラフィックハードウェアを適応させる方法に関する。
【0014】
ここに示すシステムは、コンピュータグラフィックアプリケーション、特に、コンピュータゲームの合理的な割合が、アプリケーションの開発中に準備されるスタティックテクスチャデータであることに依存する。アプリケーションを保護するために、標準的な3Dレンダリングハードウェアシステムは、5つの主たる方法で変更される。第1に、各レンダリングチップは、そこに埋設された独特の、又は少なくとも非常に稀に繰り返される識別コードを有する。第2に、1組のシークレットキーがレンダリングチップのシリコンに組み込まれ、実質上アクセスが不可能にされる。あるシークレットキーの知識は、信頼のある当事者にのみ解放される。第3に、ある数の各アプリケーションの外部記憶テクスチャが、開発中に暗号化され、そして3Dレンダリングチップ内でレンダリングプロセス中にテクスチャリングシステムによってのみ暗号解読される。第4に、暗号化されたスタティックテクスチャは、保安チェック和でマークされ、無効のテクスチャデータが供給された場合にはレンダリングを終了することができる。最終的に、ソフトウェア配送システムも変更され、アプリケーションを実行すべき特定のターゲット装置のためのソフトウェアを変更し又は「仕立てる」ことができる。
【0015】
ダイナミックなテクスチャ、即ちアプリケーションの実行中にソフトウェアにより発生されるテクスチャは、暗号化/保護されないことに注意されたい。対称的(即ち、プライベートキーのみ)暗号化が使用された場合には、キーをアプリケーションに記憶することが必要となり、従って、決定されたソフトウェア海賊にそれを曝すことになる。別のやり方は、公開/プライベートキーシステムを使用することであるが、現在、それらは非常に低速であり、従って、テクスチャを暗号化するための時間が、リアルタイムシステムにおいてこの技術を望ましからぬものにする。
以下、添付図面を参照して、本発明の実施形態を詳細に説明する。
【図面の簡単な説明】
【0016】
【図1a】既知の3−dグラフィックレンダリングシステムのブロック図である。
【図1b】図1aのシステムの更なる詳細を示すブロック図である。
【図2a】暗号化されたテクスチャデータを使用してソフトウェアアプリケーションを生成するのに含まれる段階を示すフローチャートである。
【図2b】ターゲット装置へ転送するためにソフトウェアアプリケーションを変更するのに含まれる段階を示すフローチャートである。
【図2c】変更されたソフトウェアアプリケーションを実行できるようにするためにターゲット装置によって行われる段階を示すフローチャートである。
【図3a】テクスチャデータの保安チェック和の発生及び暗号化を示すフローチャートである。
【図3b】チェック和の発生に含まれる段階を詳細に示すフローチャートである。
【図4】セールスキーの発生を示すフローチャートである。
【図5】本発明の実施形態によるテクスチャリングシステムを示すブロック図である。
【図6】テクスチャリングシステムのキー生成ユニットにより実行される段階を示すフローチャートである。
【図7】生成制御ユニットにより実行される段階を示す図である。
【発明を実施するための形態】
【0017】
好ましい実施形態において、保護システムは、図2aないし2cに示された3つの主たる処理段階で構成される。これらは、ソフトウェアのオーサリング中に行われる生成(又は開発)段階20と、ソフトウェアが電子的に購入されるときに行われる任意の「ポイント・オブ・セール」段階21と、ソフトウェアが装置において実行されるときに行われるランタイム/レンダリング段階22である。
【0018】
生成段階は、更に、標準的なアプリケーション開発ステップ23と、2つの新たなステップとを含む。その第1は、AEKと称されるアプリケーション特有の暗号キーの選択24であり(好ましくはランダム手段による)、そして第2のステップ25では、大部分のスタティックテクスチャ、即ちテクスチャメモリに単にロードされてアプリケーションの実行中にアプリケーションソフトウェアにより変更されないテクスチャが、チェック和処理され、そしてAEKにより暗号化される。好ましい実施形態では、暗号システムは、プライベートキーシステムであり、セキュリティの理由で、好ましい実施形態のAEKは、そのサイズが少なくとも64ビットとなる。
【0019】
「ポイント・オブ・セール」段階21は、アプリケーションが電子的に供給される(即ち、大量生産の物理的媒体が使用されない)場合に適用される。第1のステップ26は、ターゲット装置の独特(又はほぼ独特)の識別子DevIDを要求することである。次のステップ27は、DevIDと、AEKと、レンダリングチップ内に埋め込まれた多数のシークレットキーの1つとを機密裡に結合して、セールスキーSAKを生成することであり、これは、そのアプリケーションとターゲットレンダリング装置との対形成に特有のものである。最後のステップ28は、AEKで暗号化されたテクスチャを含む全アプリケーションデータを、SAKと、ステップ27で使用されたシークレットキーに対するインデックスと共に、ターゲット装置へダウンロードすることである。
【0020】
以下に述べるポイント・オブ・セール段階を使用しない場合、例えば、アプリケーションをダウンロードではなく物理的媒体に与えるべき場合には、2つの選択肢が考えられる。第1に、内蔵「設定」プログラムが、所有者に、例えば、フリー電話番号を経てサポートオペレータにコンタクトするように求め、サポートオペレータは、ユーザに装置のシリアル/識別番号を尋ね、そしてセールスキーを返送する。このキーは、次いで、所有者によって入力され、そしてアプリケーションの将来の実行のためにアプリケーションによりセーブされる(通常、取り外し可能なメモリユニットに)。或いは又、1セットの埋め込まれたシークレットキー識別子の小さなサブセットが、内部装置識別子DevIDを既知の一定値に「置き換えて」、大量生産された媒体の同一コピーをいかなる装置でも実行できるようにするという副作用をもつこともできる。
【0021】
ランタイムレンダリング段階22は、アプリケーションがSAK及び内部シークレットキーをレンダリングハードウェア29へ供給することを要求する。レンダリングハードウェアは、内部キーDevID及びSAKを使用することによりポイント・オブ・セール段階で適用された結合ステップ27を逆転し(30)、AEKを検索する。レンダリング31中に、保護されたテクスチャが、AEKを使用してオンザフライで暗号解読される。ランタイムレンダリング段階22の好ましい実施形態では、多数の保護されたテクスチャがサンプリングされそしてチェック和が照合される。
【0022】
図3aを参照して、セキュリティチェック和を発生しそしてテクスチャデータを暗号化する好ましい方法25を説明する。各スタティックテクスチャ40が供給され、そしてテクスチャの最初の「N」個のワード41から前テクスチャチェック和が発生される。「N」の選択は、希望のセキュリティレベルと、テクスチャの有効性をテストするのに要する時間との間で妥協される。好ましい実施形態では、これは、ワードサイズが64ビットとなるような最初の4ワードであるが、他の組合せを選択することもできる。チェック和関数は、加算、モジュロ264、又はデータワードの自明なビット方向のXOR、即ち排他的ORのような単純な演算でよい。
【0023】
チェック和は、全テクスチャと連結され、その結果が暗号化され(42)、出力される(43)。図3bを参照して、暗号化ステップ42について詳細に説明する。ステップ44では、ブロック暗号化アルゴリズム45の巾に対応するデータのブロックが暗号化アルゴリズムに対して発生される。適当なブロック暗号化アルゴリズムの例は、現在のNIST「進歩型暗号規格」候補、例えば、「TwoFish」、又はそれより初期のトリプルDES規格の1つである。
【0024】
テクスチャは、AEK46を使用して「電子コードブック」即ちECBモードにおいて効果的に暗号化される。好ましい実施形態ではセキュリティを改善するために、入力値が、XOR演算を使用してテクスチャのベースに対するそれらの位置オフセットで「塩漬け(salted)」にされる(47)。例えば、テクスチャからのデータのJ番目のブロックは、暗号化の前に数字Jの二進表示とXORされる。これは、テクスチャのコンテンツを不明瞭にする助けをし、そしてコードブックに基づく侵略の困難さを増大する。更に進歩した多くの暗号モード、例えば、暗号ブロックチェーンCBCは、暗号化されたテクスチャ内でのピクセルのランダムなアクセスを許さないので、テクスチャ化には適さないことに注意されたい。
【0025】
セールスキーの生成27が図4に示されている。これは、装置ID即ちDevID50及びAEK46を取り出し、そして可逆容易な演算を使用してそれらを合成し(51)、暗号化定義データを中間結果52として発生することにより行われる。好ましい実施形態では、この合成演算は、加算又はビット方向の排他的オアであり、そして出力は、少なくとも64ビットである。この演算は、装置ID及び中間結果が与えられると、AEKを導出するのが簡単であるという意味で可逆である。
【0026】
次いで、暗号化定義データは、シークレットキー54を使用するブロック暗号で暗号化され(53)、シークレットキーのコピーは、各レンダリングチップ内に埋め込まれるか又はそこで導出することができる。このシークレットキーは、決して公衆に露呈されず、配布装置又はセールスツールに知らされる。好ましい実施形態では、現在シークレットキーが妥協された場合には複数のシークレットキーが埋め込まれる。或いは又、RSA(米国特許第4,405,829号)のような公開キーシステム、又はディフィ−ヘルマン(Diffie-Helman)(米国特許第4,200,770号)のようなキー交換システムを使用することもできる。公開キーは、セールスツールに使用され、そしてプライベートキーは、レンダリングハードウェアに埋め込まれる。
【0027】
暗号化された結果55は、セールスキーSAKとして使用され、これは、アプリケーションのコピーと共にエクスポートされる。
図5は、図1bにおいて最初に述べたレンダリングユニット4に対してなされる変更を示す。この変更されたユニットは、キー生成ユニット30を備え、これは、セールスキーSAKと、内部シークレットキーに対する識別子とを受け入れ、そして図4に示したステップを逆転する。これは、アプリケーションの暗号キー71の内部コピーを生成する。このキーは、テクスチャ暗号解読ユニット72へ供給され、該ユニットは、テクスチャアクセスユニット9により必要とされるテクスチャピクセルを暗号解読する。以上に述べたハードウェアでは、無効なキーが供給された場合に、多角形のテクスチャは、ランダムノイズとして現われることに注意されたい。
【0028】
更に、保護制御入力ユニット73は、アプリケーションが実行をスタートするときに、CPU1で実行されるアプリケーションからコマンドワード(1つ又は複数)を受け取る。アプリケーションの故意の変更により振舞いが妥協されるのを防止するために、これらのコマンドは、内部AEK71で暗号化される。ユニット73は、コマンドを暗号解読して、テクスチャ有効性チェックユニット74へ供給する。各シーンがレンダリングされる間に、このユニットは、テクスチャアクセスユニット9を経て、ある数の保護されたテクスチャをサンプリングし、記憶されたチェック和が、テクスチャデータのスタートから計算されたチェック和に一致することをテストする。73により供給されるコマンドで決定されるアクションは、これらの一致が失敗した場合に行うことができる。これらアクションの選択は、装置のターゲット市場に依存するが、起こりそうなアクションの選択は、レンダリングチップをシャットダウンし、割り込みをCPUへ送信し、そして「テクスチャ」を、デモンストレーションの目的で使用できるフラット陰影モードに置き換えることを包含できる。
【0029】
好ましい実施形態では、有効性ユニット74によりアクションがとられる前に、クロックカウンタにより決定される遅延が生じる。これは、時間がかかるために実行不能な低限定性の暗号化コマンドを繰返し推定することに基づいて攻撃を行う。
更に、好ましい実施形態では、メモリコントローラ10とメモリ5との間にメモリ暗号化/暗号解読ユニット75が配置されている。このユニットは、アプリケーションを再書き込みすることを伴う攻撃を仮定して、スタティックテクスチャのオリジナルコンテンツの逆方向エンジニアリングをより困難にすることが意図される。
【0030】
図6を参照して、キー生成ユニット30の振舞いを以下に説明する。アプリケーションは、結合ステップ27においてセールスアプリケーションにより使用されたシークレットキーに対する識別子を供給する。これは、シークレットキーテーブル又は機能81にアクセスし、これは、実際のシークレットキー82を返送する。好ましい実施形態では、シークレットキーは、対称的な暗号が使用されると仮定すれば、サイズが少なくとも64ビットである。公開/プライベートキーシステムが使用される場合には、相当に大きなキーが必要となる。次いで、選択されたシークレットキー82は、暗号解読機能83を使用して、アプリケーションにより供給されたセールスキー55を暗号解読するのに使用される。この機能は、暗号化ステップ53の逆でなければならない。中間結果52と同じである中間結果84が、装置ID86と共に分離即ち「非結合」オペレーション85へ供給され、これは、結合オペレーション51の逆である。その結果は、内部アプリケーション暗号キー71であり、これは、ステップ24で選択されてその後に46で使用されたものと同じである。好ましい実施形態は、多数のシークレットキーの選択肢を有し、ポイント・オブ・セールアプリケーションにおいてセキュリティ侵害が生じた場合に、将来の解放が妥協されないようなフォールバック位置が存在する。
【0031】
又、システムは、アプリケーションからレンダリングシステムへ発生された命令を、有効なテクスチャのチェックでその振舞いに関して保護しなければならない。これは、保護制御ユニット(73)内で行われ、図7を参照してそのオペレーションを以下に説明する。アプリケーションは、開発段階中にAEK24で暗号化された多数の法的命令の1つを供給し、これは、暗号化制御ワードレジスタ90に記憶される。低限定性制御ワードのランダムな推定を禁止するために、好ましい実施形態のレジスタは、少なくとも64ビット巾でなければならない。従って、レジスタのコンテンツは、AEK71の内部コピーを使用して暗号解読される(91)。暗号解読された結果は、次いで、それらが有効コマンド92の小さなセットの1つに一致するかどうかチェックされる。無効コマンドでは、非常に限定的なコマンドが有効性チェックモジュール74へ送信されることになり、これは、好ましい実施形態では、ある遅延の後にレンダリングを停止する。
【0032】
回路がシリコンで実施されるときには、保護を制御するエリア、及び特に、シークレットキーは、レジスタテスト走査チェーンによりアクセスされてはならないことに注意されたい。更に、シークレットキーは、公衆に解放されないことが重要である。
上記説明に関しては、同等の装置及び方法が当業者に容易に明らかであり、そして添付図面に示して上記で説明した全ての同等の装置及び方法は、本発明により包含されることが明らかである。それ故、上記説明は、本発明の原理を例示するものに過ぎない。更に、多数の変更や修正が当業者に明らかであろうから、本発明は、図示して説明した厳密な構造やオペレーションに限定されるものではなく、従って、全ての変更や修正は、本発明の範囲内に包含されるものとする。
【0033】
上記説明の種々の点において特定の図面を参照して述べた特徴は、特に説明され又は図示されたもの以外の組合せで使用できることに注意されたい。全てのこのような変更は、特許請求の範囲に規定された本発明の範囲内に包含される。
例えば、テクスチャデータを暗号化するための異なる技術、例えば、公開/プライベートキーシステムを使用することもできる。
【符号の説明】
【0034】
1 CPU
2、5 メモリユニット
3 ユーザ入力
4 3Dレンダリングシステム
6 ディスプレイシステム
7 多角形データ入力ユニット
8 ラスタ化ユニット
9 テクスチャアクセスユニット
10 メモリ制御システム
11 ディスプレイ制御システム
30 キー生成ユニット
71 暗号キー
72 テクスチャ暗号解読ユニット
73 保護制御入力ユニット
74 テクスチャ有効性チェックユニット
75 メモリ暗号化/暗号解読ユニット
【特許請求の範囲】
【請求項1】
三次元グラフィックシステムに使用するためのテクスチャリングシステムにおいて、
テクスチャ化されるべきオブジェクトを記述するオブジェクトデータを受け取るための入力を備え、
暗号化されたテクスチャデータ及びチェック和データを記憶する記憶装置を備え、上記暗号化されたテクスチャデータはテクスチャ化されるべきオブジェクトに適用されるものであり、
上記記憶装置に接続され、上記暗号化されたテクスチャデータ及びチェック和データを暗号解読してそしてデータをテクスチャデータとチェック和データとに分離するための暗号解読ユニットを備え、
上記入力及び上記暗号解読ユニットに接続され、上記暗号解読されたテクスチャデータをオブジェクトデータに適用して、テクスチャ化された像データを発生するためのフレームバッファを備え、
上記フレームバッファに接続され、上記テクスチャ化された像データを表示のために出力する出力を備え、
上記暗号解読ユニットに接続され、上記チェック和データを監視し、そしてそのチェック和データが制御チェック和データに一致しない場合に上記テクスチャリングシステムの出力を無効化するための保護ユニットを備えた、
テクスチャリングシステム。
【請求項2】
請求項1に記載のテクスチャリングシステムにおいて、
上記入力は、上記テクスチャリングシステムで使用されるソフトウェアアプリケーションによって供給された暗号キー識別データを受け取るように構成され、上記暗号キー識別データは、テクスチャデータを暗号化するのに使用された上記ソフトウェアアプリケーションに特有の暗号キーを識別するためのものであり、
上記テクスチャリングシステムは、更に、上記暗号解読ユニット及び上記入力に接続されたキー生成ユニットを備え、上記キー生成ユニットは、上記暗号キー識別データから上記ソフトウェアアプリケーションに特有の暗号キーを発生し、これにより、上記暗号解読ユニットは、上記暗号キーを使用して、上記暗号化されたテクスチャデータを暗号解読することを特徴とするテクスチャリングシステム。
【請求項3】
入力と、記憶装置と、暗号解読ユニットと、フレームバッファと、出力と、保護ユニットを備えたテクスチャリングシステムにおいて三次元グラフィックデータにテクスチャ化を適用する方法であって、
上記記憶主装置が暗号化されたテクスチャデータ及びチェック和データを記憶する段階を備え、上記暗号化されたテクスチャデータはテクスチャ化されるべきオブジェクトに適用されるものであり、
上記入力が上記記憶されたテクスチャデータを使用してテクスチャ化されるべきオブジェクトを記述するオブジェクトデータを受け取る段階を備え、
上記暗号解読ユニットが上記暗号化されたテクスチャデータ及びチェック和データを暗号解読してそしてデータをテクスチャデータとチェック和データとに分離する段階を備え、
上記フレームバッファが上記暗号解読されたテクスチャデータをオブジェクトデータに適用して、テクスチャ化された像データを発生する段階を備え、
上記出力が上記テクスチャ化された像データを表示のために出力する段階を備え、
上記保護ユニットが上記チェック和データを監視し、そしてそのチェック和データが制御チェック和データに一致しない場合に上記テクスチャリングシステムの出力を無効化する段階を備えた、
方法。
【請求項4】
上記テクスチャリングシステムが、更に上記暗号解読ユニット及び上記入力に接続されたキー生成ユニットを備えた上記請求項3に記載の方法において、
上記入力が上記テクスチャリングシステムで使用されるソフトウェアアプリケーションから供給された暗号キー識別データを受け取る段階を備え、上記暗号キー識別データは、テクスチャデータを暗号化するのに使用されたソフトウェアアプリケーション特有の暗号キーを識別するためのものであり、
上記キー生成ユニットが上記暗号キー識別データから上記ソフトウェアアプリケーション特有の暗号キーを計算する段階を備え、そして
上記暗号解読ユニットが上記暗号キーを使用して、上記暗号化されたテクスチャデータを暗号解読する段階を備えた、
ことを特徴とする方法。
【請求項1】
三次元グラフィックシステムに使用するためのテクスチャリングシステムにおいて、
テクスチャ化されるべきオブジェクトを記述するオブジェクトデータを受け取るための入力を備え、
暗号化されたテクスチャデータ及びチェック和データを記憶する記憶装置を備え、上記暗号化されたテクスチャデータはテクスチャ化されるべきオブジェクトに適用されるものであり、
上記記憶装置に接続され、上記暗号化されたテクスチャデータ及びチェック和データを暗号解読してそしてデータをテクスチャデータとチェック和データとに分離するための暗号解読ユニットを備え、
上記入力及び上記暗号解読ユニットに接続され、上記暗号解読されたテクスチャデータをオブジェクトデータに適用して、テクスチャ化された像データを発生するためのフレームバッファを備え、
上記フレームバッファに接続され、上記テクスチャ化された像データを表示のために出力する出力を備え、
上記暗号解読ユニットに接続され、上記チェック和データを監視し、そしてそのチェック和データが制御チェック和データに一致しない場合に上記テクスチャリングシステムの出力を無効化するための保護ユニットを備えた、
テクスチャリングシステム。
【請求項2】
請求項1に記載のテクスチャリングシステムにおいて、
上記入力は、上記テクスチャリングシステムで使用されるソフトウェアアプリケーションによって供給された暗号キー識別データを受け取るように構成され、上記暗号キー識別データは、テクスチャデータを暗号化するのに使用された上記ソフトウェアアプリケーションに特有の暗号キーを識別するためのものであり、
上記テクスチャリングシステムは、更に、上記暗号解読ユニット及び上記入力に接続されたキー生成ユニットを備え、上記キー生成ユニットは、上記暗号キー識別データから上記ソフトウェアアプリケーションに特有の暗号キーを発生し、これにより、上記暗号解読ユニットは、上記暗号キーを使用して、上記暗号化されたテクスチャデータを暗号解読することを特徴とするテクスチャリングシステム。
【請求項3】
入力と、記憶装置と、暗号解読ユニットと、フレームバッファと、出力と、保護ユニットを備えたテクスチャリングシステムにおいて三次元グラフィックデータにテクスチャ化を適用する方法であって、
上記記憶主装置が暗号化されたテクスチャデータ及びチェック和データを記憶する段階を備え、上記暗号化されたテクスチャデータはテクスチャ化されるべきオブジェクトに適用されるものであり、
上記入力が上記記憶されたテクスチャデータを使用してテクスチャ化されるべきオブジェクトを記述するオブジェクトデータを受け取る段階を備え、
上記暗号解読ユニットが上記暗号化されたテクスチャデータ及びチェック和データを暗号解読してそしてデータをテクスチャデータとチェック和データとに分離する段階を備え、
上記フレームバッファが上記暗号解読されたテクスチャデータをオブジェクトデータに適用して、テクスチャ化された像データを発生する段階を備え、
上記出力が上記テクスチャ化された像データを表示のために出力する段階を備え、
上記保護ユニットが上記チェック和データを監視し、そしてそのチェック和データが制御チェック和データに一致しない場合に上記テクスチャリングシステムの出力を無効化する段階を備えた、
方法。
【請求項4】
上記テクスチャリングシステムが、更に上記暗号解読ユニット及び上記入力に接続されたキー生成ユニットを備えた上記請求項3に記載の方法において、
上記入力が上記テクスチャリングシステムで使用されるソフトウェアアプリケーションから供給された暗号キー識別データを受け取る段階を備え、上記暗号キー識別データは、テクスチャデータを暗号化するのに使用されたソフトウェアアプリケーション特有の暗号キーを識別するためのものであり、
上記キー生成ユニットが上記暗号キー識別データから上記ソフトウェアアプリケーション特有の暗号キーを計算する段階を備え、そして
上記暗号解読ユニットが上記暗号キーを使用して、上記暗号化されたテクスチャデータを暗号解読する段階を備えた、
ことを特徴とする方法。
【図1a】
【図1b】
【図2a】
【図2b】
【図2c】
【図3a】
【図3b】
【図4】
【図5】
【図6】
【図7】
【図1b】
【図2a】
【図2b】
【図2c】
【図3a】
【図3b】
【図4】
【図5】
【図6】
【図7】
【公開番号】特開2009−140516(P2009−140516A)
【公開日】平成21年6月25日(2009.6.25)
【国際特許分類】
【出願番号】特願2009−24135(P2009−24135)
【出願日】平成21年2月4日(2009.2.4)
【分割の表示】特願2003−525424(P2003−525424)の分割
【原出願日】平成14年9月3日(2002.9.3)
【出願人】(501176037)イマジネイション テクノロジーズ リミテッド (59)
【Fターム(参考)】
【公開日】平成21年6月25日(2009.6.25)
【国際特許分類】
【出願日】平成21年2月4日(2009.2.4)
【分割の表示】特願2003−525424(P2003−525424)の分割
【原出願日】平成14年9月3日(2002.9.3)
【出願人】(501176037)イマジネイション テクノロジーズ リミテッド (59)
【Fターム(参考)】
[ Back to top ]