(57)【要約】三次元グラフィックシステムに使用するためのテクスチャリングシステムは、テクスチャ化されるべきオブジェクトに対するオブジェクトデータを受け取るための入力を有する。暗号化されたテクスチャデータは、記憶装置から得られ、暗号解読ユニットにおいて暗号解読される。暗号解読されたテクスチャデータは、フレームバッファのためのテクスチャ像データを発生し、そこから表示のために出力される。又、三次元グラフィックシステムに使用するためのソフトウェアアプリケーションを発生する方法も提供され、上記システムは、ソフトウェアアプリケーションのための命令を生成し、そして命令に関連して使用するためのスタティックテクスチャデータを生成する。このスタティックテクスチャデータは、暗号化され、そして暗号化テクスチャデータとしてソフトウェア命令と共に供給される。配布装置をターゲット装置に接続し、ターゲット装置の識別子データをターゲット装置から配布装置へ転送し、そしてターゲット装置の識別子データを配布装置において使用して、ターゲット装置に特有の暗号化定義データを発生することにより、保護されたソフトウェアアプリケーションを配布装置からターゲット装置へ配布することができる。保護されたソフトウェアアプリケーション及び暗号化定義データは、次いで、ターゲット装置へ転送される。
2005502113.tif 000002
【特許請求の範囲】
【請求項１】
三次元グラフィックシステムに使用するためのテクスチャリングシステムにおいて、
テクスチャ化されるべきオブジェクトを記述するオブジェクトデータを受け取るための入力と、
テクスチャ化されるべきオブジェクトに適用するために暗号化されたテクスチャデータを記憶する記憶装置と、
上記記憶装置に接続され、上記暗号化されたテクスチャデータを暗号解読するための暗号解読ユニットと、
上記入力及び上記暗号解読ユニットに接続され、上記暗号解読されたテクスチャデータをオブジェクトデータに適用して、テクスチャ化された像データを発生するためのフレームバッファと、
上記フレームバッファに接続され、上記テクスチャ化された像データを表示のために出力する出力と、
を備えたテクスチャリングシステム。
【請求項２】
上記入力は、上記テクスチャデータを暗号化するのに使用された暗号キーを識別する暗号キー識別データを受け取るように構成され、上記テクスチャリングシステムは、更に、上記暗号解読ユニット及び上記入力に接続されたキー生成ユニットであって、上記暗号キー識別データから暗号キーを発生するためのキー生成ユニットを備え、これにより、上記暗号解読ユニットは、上記暗号キーを使用して、上記暗号化されたテクスチャデータを暗号解読する請求項１に記載のテクスチャリングシステム。
【請求項３】
上記記憶装置は、上記暗号化されたテクスチャ及びチェック和データを記憶するように構成され、
上記暗号解読ユニットは、上記暗号化されたテクスチャ及びチェック和データを暗号解読しそしてデータをテクスチャデータとチェック和データとに分離するように構成され、そして
上記システムは、更に、上記暗号解読ユニットに接続された保護ユニットであって、上記チェック和データを監視し、そしてそのチェック和データが制御チェック和データに一致しない場合に上記テクスチャリングシステムの出力を適応させる保護ユニットを備えた請求項１又は２に記載のテクスチャリングシステム。
【請求項４】
三次元グラフィックデータにテクスチャ化を適用する方法において、
オブジェクトをテクスチャ化するのに適用するために暗号化されたテクスチャデータを記憶し、
上記記憶されたテクスチャデータを使用してテクスチャ化されるべきオブジェクトを記述するオブジェクトデータを受け取り、
暗号化されたテクスチャデータにアクセスして暗号解読し、
上記暗号解読されたテクスチャデータをオブジェクトデータに適用して、テクスチャ化された像データを発生し、そして
上記テクスチャ化された像データを表示のために出力する、
という段階を備えた方法。
【請求項５】
テクスチャデータを暗号化するのに使用される暗号キーを識別する暗号キー識別データを受け取り、
上記暗号キー識別データから暗号キーを計算し、そして
上記暗号キーを使用して、上記暗号化されたテクスチャデータを暗号解読する、
という段階を更に備えた請求項４に記載の方法。
【請求項６】
三次元グラフィックシステムに使用するためのソフトウェアアプリケーションを生成する方法において、
（ａ）ソフトウェアアプリケーションに対する命令を生成し、
（ｂ）上記ソフトウェアアプリケーションを実行するために上記命令に関連して装置により使用されるべきスタティックなテクスチャデータを生成し、
（ｃ）暗号化アルゴリズムを使用して上記スタティックなテクスチャデータを暗号化し、そして
（ｄ）上記暗号化されたテクスチャデータ及びソフトウェア命令をソフトウェアアプリケーションとして出力する、
という段階を備えた方法。
【請求項７】
上記スタティックなテクスチャデータに対してチェック和データを発生し、
上記チェック和データとスタティックなテクスチャデータとを合成し、そして
その合成されたチェック和及びスタティックなテクスチャデータを暗号化するように上記段階（ｃ）を変更する、
という付加的な段階を備えた請求項６に記載の方法。
【請求項８】
上記チェック和データは、上記テクスチャデータの始めから選択された第１の複数のワードから発生される請求項７に記載の方法。
【請求項９】
保護されたソフトウェアアプリケーションを配布装置からターゲット装置へ配布する方法において、
上記配布装置を上記ターゲット装置へ接続し、
ターゲット装置識別子データを上記ターゲット装置から上記配布装置へ転送し、
上記ターゲット装置識別子データを上記配布装置において使用して、上記ターゲット装置に特有の暗号化定義データを発生し、そして
上記保護されたソフトウェアアプリケーション及び上記暗号化定義データを上記配布装置から上記ターゲット装置へ転送して、上記ターゲット装置によりその後に使用して、上記保護されたソフトウェアアプリケーションを実行できるようにする、
という段階を備えた方法。
【請求項１０】
上記暗号化定義データは、それ自体、セールスキーを形成するように暗号化され、そしてこのセールスキーは、上記保護されたソフトウェアアプリケーションと共に、上記ターゲット装置へ転送される請求項９に記載の方法。
【請求項１１】
命令及び暗号化されたテクスチャデータを含むソフトウェアアプリケーションを実行するための３−ｄグラフィック装置において、
ソフトウェアアプリケーションを実行するためのＣＰＵと、
上記ＣＰＵに接続され、ソフトウェアアプリケーションを記憶するためのメモリと、
ソフトウェアアプリケーションの実行により発生された３−ｄグラフィックを表示するためのディスプレイと、
請求項１ないし３のいずれかに記載のテクスチャリングシステムであって、その入力が上記ＣＰＵに接続されそしてその出力が上記ディスプレイに接続されたテクスチャリングシステムと、
を備えた３−ｄグラフィック装置。
【請求項１２】
上記テクスチャリングシステムは、配布装置により使用するために装置識別子を記憶するように構成された請求項１１に記載の３−ｄグラフィック装置。
【請求項１３】
保護されたソフトウェアアプリケーションをターゲット装置に配布するための配布装置において、
ターゲット装置からターゲット識別子データを受け取るための受信器と、
上記受信器に接続され、上記ターゲット識別子データ及びアプリケーション暗号キーから暗号化定義データを発生するための合成器と、
保護されたソフトウェアアプリケーション及び上記暗号化定義データをターゲット装置へ出力し、このターゲット装置で使用して、上記保護されたソフトウェアアプリケーションを実行できるようにする出力と、
を備えた配布装置。
【請求項１４】
上記合成器及び上記出力に接続されて、上記暗号化定義データを暗号化してセールスキーを形成するための暗号装置を更に備え、上記出力は、上記セールスキー及びソフトウェアアプリケーションをターゲット装置に出力して、上記ターゲット装置で使用して、上記保護されたソフトウェアアプリケーションを実行できるようにする請求項１３に記載の配布装置。
【請求項１５】
実質的に図２ないし７のいずれかを参照して説明した装置。
【請求項１６】
実質的に図２ないし７のいずれかを参照して説明した方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、三次元グラフィックシステムに使用するためのテクスチャリングシステムに係る。更に、本発明は、保護ソフトウェアアプリケーションを配布する方法にも係る。
【背景技術】
【０００２】
コンピュータグラフィックアプリケーション、特に、コンピュータゲームは、開発に多大な費用がかかる。又、不幸にも、それらは、おそらく潜在的ユーザの人数のために、ソフトウェア海賊行為の好適なターゲットでもある。過去に、海賊行為は、通常、例えばＲＯＭカートリッジや「複写が困難」なディスクのような物理的媒体においてアプリケーションを供給するか、又は例えばドングルのような物理的なキーを送付することにより、部分的に制限されてきた。しかしながら、ソフトウェアは、益々電子的に販売されるようになり、例えば、ショップの「ポイント・オブ・セール」ＰＯＳターミナルや、インターネットからダウンロードされることが考えられる。従って、物理的媒体のこのような欠如は、他の手段がとられない限り、潜在的に不法複写を非常に簡単なタスクにしてしまう。
【０００３】
海賊行為からのソフトウェアの保護は、これまで多数の技術に依存してきた。１つのこのような技術は、複写が困難な物理的媒体をソフトウェアアプリケーションの記憶に使用することである。例えば、あるコンピュータゲームコンソールの製造者は、「リードオンリメモリ」（ＲＯＭ）カートリッジを使用するか、又は既製の複写ツールが存在しない高密度ＣＤ−ＲＯＭ等の通常媒体の所有権変形物を使用している。
【０００４】
パーソナルコンピュータにしばしば使用されている別の技術は、フロッピーディスクやＣＤのような標準媒体を使用するが、例えば、レーザを使用して製造中に小さな領域においてそれらに故意に「ダメージ」を与えることである。従って、アプリケーションソフトウェアは、供給された記憶媒体がこれらのエラーを含むことをチェックするための命令を含む。既製のフロッピードライブ又はＣＤ−ＲＯＭ「バーナー」は、媒体におけるエラーを再現することができない。エラーのチェックは、ソフトウェア内にある程度隠すことができるが、充分な時間が与えられれば、決定的なクラッカーは、それらの位置を見つけて、チェックを取り除いたアプリケーションの変更バージョンを作成することができる。この「クラック（改変）」されたソフトウェアは、これを記憶して、既製の媒体を使用して実行することができる。
【０００５】
ソフトウェアのコンテンツを変更から保護する別の方法は、外部メモリへの及びそこからの全ての転送を暗号化できる「保安」ＣＰＵを使用することである。しかしながら、このようなプロセッサは、一般的でなく、コンピュータグラフィック装置の製造者にとって重要なオプションとはなり得ない。更に、これは、それ自身、アプリケーションの複写を防止するものではなく、その変更しか防止しない。
【０００６】
イーサネットアダプタ及びあるコンピュータのような幾つかの装置は、独特の内蔵識別子と共に構成される。この識別子は、ソフトウェアを、それが１つのマシンでしか実行できないようにカスタマイズするのに使用できることが明らかである。この場合も、他のステップがとられない限り、これは、チェックを取り除くソフトウェアの変更により悪用に対してオープンである。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、特に、３Ｄコンピュータグラフィックのレンダリングを実行するシステム及びアプリケーションを取り扱う。
典型的な既知の環境が図１ａに示されている。ここで、ＣＰＵ１は、メモリ２に接続され、該メモリは、アプリケーションコード及びデータ構造体を含む。アプリケーションは、通常、ユーザ入力３に応答する。通常、像又はテクスチャデータのアプリケーションのためのパラメータを伴う三角形で構成された各３Ｄ像の記述がＣＰＵにより発生され、そしてこのオブジェクトデータがレンダリングサブシステム４へ送信される。これは、メモリ５に記憶されたテクスチャデータを使用して、メモリ内のフレームバッファ内に構成される像データを発生する。出来上がった像は、次いで、ディスプレイシステム６へ送信される。あるシステムでは、メモリユニット２及び５は、実際には、同じ物理的メモリである。
【０００８】
図１ｂを参照して、既知の３Ｄレンダリングシステム４を詳細に説明する。このレンダリングシステム４は、多角形データを受信するユニット７を含む。これらの多角形データは、ラスタ化ユニット８へ個々に又はバッチで送信され、このラスタ化ユニットは、最終像のどのピクセルがどの多角形により影響されそしてピクセルにどんな色が指定されるかを決定する。このプロセスの一部分として、テクスチャデータにアクセスしなければならない（９）。これは、多数の要求されたテクスチャ識別子及びピクセル座標位置をカラー値に変換することを含み、そしてメモリ制御システム１０を経て３Ｄレンダリングシステムのメモリへアクセスするのを必要とする。このメモリ制御システムは、ラスタ化ユニット８からのフレームバッファ読み取り及び書き込み要求も取り扱う。最終的に、ディスプレイ制御システム１１は、出来上がった像をメモリからディスプレイ装置へ転送する。
【課題を解決するための手段】
【０００９】
本発明の目的は、既知の配布技術に関連した問題を改善することである。本発明によれば、その第１の特徴において、請求項１に記載のテクスチャリングシステムが提供される。このテクスチャリングシステムの好ましい特徴は、従属請求項２及び３に規定されている。暗号化されたスタティックなテクスチャデータを、オブジェクトデータに適用する前に暗号解読することを必要としたことで、そのテクスチャデータを複写してそれを別の装置で使用して同じアプリケーションを実行するのを困難にすることにより、アプリケーションを保護する手段が提供される。
【００１０】
本発明の第２の特徴によれば、請求項４に基づき三次元グラフィックデータにテクスチャリングを適用する方法が提供される。この方法の好ましい段階は、従属請求項５に規定される。
本発明によれば、その第３の特徴において、請求項６に基づきソフトウェアアプリケーションを形成する方法が提供される。このソフトウェアアプリケーションは、許可された装置しかスタティックテクスチャデータを暗号解読してソフトウェアアプリケーションを実行できないように、スタティックテクスチャデータの暗号化によって保護される。好ましい特徴は、従属請求項７及び８に規定されている。
【００１１】
本発明の第４の特徴によれば、請求項９に基づき、保護されたソフトウェアアプリケーションを配布装置からターゲット装置へ配布する方法が提供される。
本発明の第５の特徴によれば、請求項１０に基づく３−ｄグラフィック装置が提供される。
【００１２】
アプリケーション、特に、ゲームアプリケーションにより使用される多くのテクスチャは、そのアプリケーションが書き込まれるときに作成されることが明らかである。説明上、これらをスタティックテクスチャと称する。アプリケーションの実行中に他のテクスチャが作成され、これらは、ダイナミックテクスチャと称する。
【００１３】
本発明の目的は、グラフィックソフトウェア、特にゲームソフトウェアの広範囲な複写を困難にすることである。これは、ソフトウェアの不明瞭化、保護されたＣＰＵの使用及び／又は所有権のある記憶媒体の使用に依存するのではなく、レンダリングハードウェア内の保護回路とスタティックテクスチャデータの保護との組合せで行われる。本発明は、スタティックテクスチャデータを暗号化し、そしてソフトウェアアプリケーションに関連したテクスチャデータの暗号解読を制御することにより、ソフトウェアを無断使用から保護することを実現することにある。本発明は、このようなアプリケーションの広範囲な複写を禁止するように付加的なソフトウェア作成段階でコンピュータグラフィックハードウェアを適応させる方法に関する。
【００１４】
ここに示すシステムは、コンピュータグラフィックアプリケーション、特に、コンピュータゲームの合理的な割合が、アプリケーションの開発中に準備されるスタティックテクスチャデータであることに依存する。アプリケーションを保護するために、標準的な３Ｄレンダリングハードウェアシステムは、５つの主たる方法で変更される。第１に、各レンダリングチップは、そこに埋設された独特の、又は少なくとも非常に稀に繰り返される識別コードを有する。第２に、１組のシークレットキーがレンダリングチップのシリコンに組み込まれ、実質上アクセスが不可能にされる。あるシークレットキーの知識は、信頼のある当事者にのみ解放される。第３に、ある数の各アプリケーションの外部記憶テクスチャが、開発中に暗号化され、そして３Ｄレンダリングチップ内でレンダリングプロセス中にテクスチャリングシステムによってのみ暗号解読される。第４に、暗号化されたスタティックテクスチャは、保安チェック和でマークされ、無効のテクスチャデータが供給された場合にはレンダリングを終了することができる。最終的に、ソフトウェア配送システムも変更され、アプリケーションを実行すべき特定のターゲット装置のためのソフトウェアを変更し又は「仕立てる」ことができる。
【００１５】
ダイナミックなテクスチャ、即ちアプリケーションの実行中にソフトウェアにより発生されるテクスチャは、暗号化／保護されないことに注意されたい。対称的（即ち、プライベートキーのみ）暗号化が使用された場合には、キーをアプリケーションに記憶することが必要となり、従って、決定されたソフトウェア海賊にそれを曝すことになる。別のやり方は、公開／プライベートキーシステムを使用することであるが、現在、それらは非常に低速であり、従って、テクスチャを暗号化するための時間が、リアルタイムシステムにおいてこの技術を望ましからぬものにする。
【発明を実施するための最良の形態】
【００１６】
以下、添付図面を参照して、本発明の実施形態を詳細に説明する。
好ましい実施形態において、保護システムは、図２ａないし２ｃに示された３つの主たる処理段階で構成される。これらは、ソフトウェアのオーサリング中に行われる生成（又は開発）段階２０と、ソフトウェアが電子的に購入されるときに行われる任意の「ポイント・オブ・セール」段階２１と、ソフトウェアが装置において実行されるときに行われるランタイム／レンダリング段階２２である。
【００１７】
生成段階は、更に、標準的なアプリケーション開発ステップ２３と、２つの新たなステップとを含む。その第１は、ＡＥＫと称されるアプリケーション特有の暗号キーの選択２４であり（好ましくはランダム手段による）、そして第２のステップ２５では、大部分のスタティックテクスチャ、即ちテクスチャメモリに単にロードされてアプリケーションの実行中にアプリケーションソフトウェアにより変更されないテクスチャが、チェック和処理され、そしてＡＥＫにより暗号化される。好ましい実施形態では、暗号システムは、プライベートキーシステムであり、セキュリティの理由で、好ましい実施形態のＡＥＫは、そのサイズが少なくとも６４ビットとなる。
【００１８】
「ポイント・オブ・セール」段階２１は、アプリケーションが電子的に供給される（即ち、大量生産の物理的媒体が使用されない）場合に適用される。第１のステップ２６は、ターゲット装置の独特（又はほぼ独特）の識別子ＤｅｖＩＤを要求することである。次のステップ２７は、ＤｅｖＩＤと、ＡＥＫと、レンダリングチップ内に埋め込まれた多数のシークレットキーの１つとを機密裡に結合して、セールスキーＳＡＫを生成することであり、これは、そのアプリケーションとターゲットレンダリング装置との対形成に特有のものである。最後のステップ２８は、ＡＥＫで暗号化されたテクスチャを含む全アプリケーションデータを、ＳＡＫと、ステップ２７で使用されたシークレットキーに対するインデックスと共に、ターゲット装置へダウンロードすることである。
【００１９】
以下に述べるポイント・オブ・セール段階を使用しない場合、例えば、アプリケーションをダウンロードではなく物理的媒体に与えるべき場合には、２つの選択肢が考えられる。第１に、内蔵「設定」プログラムが、所有者に、例えば、フリー電話番号を経てサポートオペレータにコンタクトするように求め、サポートオペレータは、ユーザに装置のシリアル／識別番号を尋ね、そしてセールスキーを返送する。このキーは、次いで、所有者によって入力され、そしてアプリケーションの将来の実行のためにアプリケーションによりセーブされる（通常、取り外し可能なメモリユニットに）。或いは又、１セットの埋め込まれたシークレットキー識別子の小さなサブセットが、内部装置識別子ＤｅｖＩＤを既知の一定値に「置き換えて」、大量生産された媒体の同一コピーをいかなる装置でも実行できるようにするという副作用をもつこともできる。
【００２０】
ランタイムレンダリング段階２２は、アプリケーションがＳＡＫ及び内部シークレットキーをレンダリングハードウェア２９へ供給することを要求する。レンダリングハードウェアは、内部キーＤｅｖＩＤ及びＳＡＫを使用することによりポイント・オブ・セール段階で適用された結合ステップ２７を逆転し（３０）、ＡＥＫを検索する。レンダリング３１中に、保護されたテクスチャが、ＡＥＫを使用してオンザフライで暗号解読される。ランタイムレンダリング段階２２の好ましい実施形態では、多数の保護されたテクスチャがサンプリングされそしてチェック和が照合される。
【００２１】
図３ａを参照して、セキュリティチェック和を発生しそしてテクスチャデータを暗号化する好ましい方法２５を説明する。各スタティックテクスチャ４０が供給され、そしてテクスチャの最初の「Ｎ」個のワード４１から前テクスチャチェック和が発生される。「Ｎ」の選択は、希望のセキュリティレベルと、テクスチャの有効性をテストするのに要する時間との間で妥協される。好ましい実施形態では、これは、ワードサイズが６４ビットとなるような最初の４ワードであるが、他の組合せを選択することもできる。チェック和関数は、加算、モジュロ２64、又はデータワードの自明なビット方向のＸＯＲ、即ち排他的ＯＲのような単純な演算でよい。
【００２２】
チェック和は、全テクスチャと連結され、その結果が暗号化され（４２）、出力される（４３）。図３ｂを参照して、暗号化ステップ４２について詳細に説明する。ステップ４４では、ブロック暗号化アルゴリズム４５の巾に対応するデータのブロックが暗号化アルゴリズムに対して発生される。適当なブロック暗号化アルゴリズムの例は、現在のＮＩＳＴ「進歩型暗号規格」候補、例えば、「ＴｗｏＦｉｓｈ」、又はそれより初期のトリプルＤＥＳ規格の１つである。
【００２３】
テクスチャは、ＡＥＫ４６を使用して「電子コードブック」即ちＥＣＢモードにおいて効果的に暗号化される。好ましい実施形態ではセキュリティを改善するために、入力値が、ＸＯＲ演算を使用してテクスチャのベースに対するそれらの位置オフセットで「塩漬け(salted)」にされる（４７）。例えば、テクスチャからのデータのＪ番目のブロックは、暗号化の前に数字Ｊの二進表示とＸＯＲされる。これは、テクスチャのコンテンツを不明瞭にする助けをし、そしてコードブックに基づく侵略の困難さを増大する。更に進歩した多くの暗号モード、例えば、暗号ブロックチェーンＣＢＣは、暗号化されたテクスチャ内でのピクセルのランダムなアクセスを許さないので、テクスチャ化には適さないことに注意されたい。
【００２４】
セールスキーの生成２７が図４に示されている。これは、装置ＩＤ即ちＤｅｖＩＤ５０及びＡＥＫ４６を取り出し、そして可逆容易な演算を使用してそれらを合成し（５１）、暗号化定義データを中間結果５２として発生することにより行われる。好ましい実施形態では、この合成演算は、加算又はビット方向の排他的オアであり、そして出力は、少なくとも６４ビットである。この演算は、装置ＩＤ及び中間結果が与えられると、ＡＥＫを導出するのが簡単であるという意味で可逆である。
【００２５】
次いで、暗号化定義データは、シークレットキー５４を使用するブロック暗号で暗号化され（５３）、シークレットキーのコピーは、各レンダリングチップ内に埋め込まれるか又はそこで導出することができる。このシークレットキーは、決して公衆に露呈されず、配布装置又はセールスツールに知らされる。好ましい実施形態では、現在シークレットキーが妥協された場合には複数のシークレットキーが埋め込まれる。或いは又、ＲＳＡ（米国特許第４，４０５，８２９号）のような公開キーシステム、又はディフィ−ヘルマン(Diffie-Helman)（米国特許第４，２００，７７０号）のようなキー交換システムを使用することもできる。公開キーは、セールスツールに使用され、そしてプライベートキーは、レンダリングハードウェアに埋め込まれる。
【００２６】
暗号化された結果５５は、セールスキーＳＡＫとして使用され、これは、アプリケーションのコピーと共にエクスポートされる。
図５は、図１ｂにおいて最初に述べたレンダリングユニット４に対してなされる変更を示す。この変更されたユニットは、キー生成ユニット３０を備え、これは、セールスキーＳＡＫと、内部シークレットキーに対する識別子とを受け入れ、そして図４に示したステップを逆転する。これは、アプリケーションの暗号キー７１の内部コピーを生成する。このキーは、テクスチャ暗号解読ユニット７２へ供給され、該ユニットは、テクスチャアクセスユニット９により必要とされるテクスチャピクセルを暗号解読する。以上に述べたハードウェアでは、無効なキーが供給された場合に、多角形のテクスチャは、ランダムノイズとして現われることに注意されたい。
【００２７】
更に、保護制御入力ユニット７３は、アプリケーションが実行をスタートするときに、ＣＰＵ１で実行されるアプリケーションからコマンドワード（１つ又は複数）を受け取る。アプリケーションの故意の変更により振舞いが妥協されるのを防止するために、これらのコマンドは、内部ＡＥＫ７１で暗号化される。ユニット７３は、コマンドを暗号解読して、テクスチャ有効性チェックユニット７４へ供給する。各シーンがレンダリングされる間に、このユニットは、テクスチャアクセスユニット９を経て、ある数の保護されたテクスチャをサンプリングし、記憶されたチェック和が、テクスチャデータのスタートから計算されたチェック和に一致することをテストする。７３により供給されるコマンドで決定されるアクションは、これらの一致が失敗した場合に行うことができる。これらアクションの選択は、装置のターゲット市場に依存するが、起こりそうなアクションの選択は、レンダリングチップをシャットダウンし、割り込みをＣＰＵへ送信し、そして「テクスチャ」を、デモンストレーションの目的で使用できるフラット陰影モードに置き換えることを包含できる。
【００２８】
好ましい実施形態では、有効性ユニット７４によりアクションがとられる前に、クロックカウンタにより決定される遅延が生じる。これは、時間がかかるために実行不能な低限定性の暗号化コマンドを繰返し推定することに基づいて攻撃を行う。
更に、好ましい実施形態では、メモリコントローラ１０とメモリ５との間にメモリ暗号化／暗号解読ユニット７５が配置されている。このユニットは、アプリケーションを再書き込みすることを伴う攻撃を仮定して、スタティックテクスチャのオリジナルコンテンツの逆方向エンジニアリングをより困難にすることが意図される。
【００２９】
図６を参照して、キー生成ユニット３０の振舞いを以下に説明する。アプリケーションは、結合ステップ２７においてセールスアプリケーションにより使用されたシークレットキーに対する識別子を供給する。これは、シークレットキーテーブル又は機能８１にアクセスし、これは、実際のシークレットキー８２を返送する。好ましい実施形態では、シークレットキーは、対称的な暗号が使用されると仮定すれば、サイズが少なくとも６４ビットである。公開／プライベートキーシステムが使用される場合には、相当に大きなキーが必要となる。次いで、選択されたシークレットキー８２は、暗号解読機能８３を使用して、アプリケーションにより供給されたセールスキー５５を暗号解読するのに使用される。この機能は、暗号化ステップ５３の逆でなければならない。中間結果５２と同じである中間結果８４が、装置ＩＤ８６と共に分離即ち「非結合」オペレーション８５へ供給され、これは、結合オペレーション５１の逆である。その結果は、内部アプリケーション暗号キー７１であり、これは、ステップ２４で選択されてその後に４６で使用されたものと同じである。好ましい実施形態は、多数のシークレットキーの選択肢を有し、ポイント・オブ・セールアプリケーションにおいてセキュリティ侵害が生じた場合に、将来の解放が妥協されないようなフォールバック位置が存在する。
【００３０】
又、システムは、アプリケーションからレンダリングシステムへ発生された命令を、有効なテクスチャのチェックでその振舞いに関して保護しなければならない。これは、保護制御ユニット（７３）内で行われ、図７を参照してそのオペレーションを以下に説明する。アプリケーションは、開発段階中にＡＥＫ２４で暗号化された多数の法的命令の１つを供給し、これは、暗号化制御ワードレジスタ９０に記憶される。低限定性制御ワードのランダムな推定を禁止するために、好ましい実施形態のレジスタは、少なくとも６４ビット巾でなければならない。従って、レジスタのコンテンツは、ＡＥＫ７１の内部コピーを使用して暗号解読される（９１）。暗号解読された結果は、次いで、それらが有効コマンド９２の小さなセットの１つに一致するかどうかチェックされる。無効コマンドでは、非常に限定的なコマンドが有効性チェックモジュール７４へ送信されることになり、これは、好ましい実施形態では、ある遅延の後にレンダリングを停止する。
【００３１】
回路がシリコンで実施されるときには、保護を制御するエリア、及び特に、シークレットキーは、レジスタテスト走査チェーンによりアクセスされてはならないことに注意されたい。更に、シークレットキーは、公衆に解放されないことが重要である。
上記説明に関しては、同等の装置及び方法が当業者に容易に明らかであり、そして添付図面に示して上記で説明した全ての同等の装置及び方法は、本発明により包含されることが明らかである。それ故、上記説明は、本発明の原理を例示するものに過ぎない。更に、多数の変更や修正が当業者に明らかであろうから、本発明は、図示して説明した厳密な構造やオペレーションに限定されるものではなく、従って、全ての変更や修正は、本発明の範囲内に包含されるものとする。
【００３２】
上記説明の種々の点において特定の図面を参照して述べた特徴は、特に説明され又は図示されたもの以外の組合せで使用できることに注意されたい。全てのこのような変更は、特許請求の範囲に規定された本発明の範囲内に包含される。
例えば、テクスチャデータを暗号化するための異なる技術、例えば、公開／プライベートキーシステムを使用することもできる。
【図面の簡単な説明】
【００３３】
【図１ａ】既知の３−ｄグラフィックレンダリングシステムのブロック図である。
【図１ｂ】図１ａのシステムの更なる詳細を示すブロック図である。
【図２ａ】暗号化されたテクスチャデータを使用してソフトウェアアプリケーションを生成するのに含まれる段階を示すフローチャートである。
【図２ｂ】ターゲット装置へ転送するためにソフトウェアアプリケーションを変更するのに含まれる段階を示すフローチャートである。
【図２ｃ】変更されたソフトウェアアプリケーションを実行できるようにするためにターゲット装置によって行われる段階を示すフローチャートである。
【図３ａ】テクスチャデータの保安チェック和の発生及び暗号化を示すフローチャートである。
【図３ｂ】チェック和の発生に含まれる段階を詳細に示すフローチャートである。
【図４】セールスキーの発生を示すフローチャートである。
【図５】本発明の実施形態によるテクスチャリングシステムを示すブロック図である。
【図６】テクスチャリングシステムのキー生成ユニットにより実行される段階を示すフローチャートである。
【図７】生成制御ユニットにより実行される段階を示す図である。
【図１ａ】
2005502113.tif 000003
【図１ｂ】
2005502113.tif 000004
【図２ａ】
2005502113.tif 000005
【図２ｂ】
2005502113.tif 000006
【図２ｃ】
2005502113.tif 000007
【図３ａ】
2005502113.tif 000008
【図３ｂ】
2005502113.tif 000009
【図４】
2005502113.tif 000010
【図５】
2005502113.tif 000011
【図６】
2005502113.tif 000012
【図７】
2005502113.tif 000013
【国際公開パンフレット】
2005502113.tif 000014
2005502113.tif 000015
2005502113.tif 000016
2005502113.tif 000017
2005502113.tif 000018
2005502113.tif 000019
2005502113.tif 000020
2005502113.tif 000021
2005502113.tif 000022
2005502113.tif 000023
2005502113.tif 000024
2005502113.tif 000025
2005502113.tif 000026
2005502113.tif 000027
2005502113.tif 000028
2005502113.tif 000029
2005502113.tif 000030
2005502113.tif 000031
2005502113.tif 000032
2005502113.tif 000033
2005502113.tif 000034
2005502113.tif 000035
2005502113.tif 000036
2005502113.tif 000037
2005502113.tif 000038
2005502113.tif 000039
2005502113.tif 000040
【国際公開パンフレット（コレクトバージョン）】
2005502113.tif 000041
2005502113.tif 000042
【手続補正書】
【提出日】平成15年11月27日(2003.11.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
三次元グラフィックシステムに使用するためのテクスチャリングシステムにおいて、
テクスチャ化されるべきオブジェクトを記述するオブジェクトデータを受け取るための入力と、
テクスチャ化されるべきオブジェクトに適用するために暗号化されたテクスチャデータを記憶する記憶装置と、
上記記憶装置に接続され、上記暗号化されたテクスチャデータを暗号解読するための暗号解読ユニットと、
上記入力及び上記暗号解読ユニットに接続され、上記暗号解読されたテクスチャデータをオブジェクトデータに適用して、テクスチャ化された像データを発生するためのフレームバッファと、
上記フレームバッファに接続され、上記テクスチャ化された像データを表示のために出力する出力と、
を備えたテクスチャリングシステム。
【請求項２】
上記入力は、上記テクスチャデータを暗号化するのに使用された暗号キーを識別する暗号キー識別データを受け取るように構成され、上記テクスチャリングシステムは、更に、上記暗号解読ユニット及び上記入力に接続されたキー生成ユニットであって、上記暗号キー識別データから暗号キーを発生するためのキー生成ユニットを備え、これにより、上記暗号解読ユニットは、上記暗号キーを使用して、上記暗号化されたテクスチャデータを暗号解読する請求項１に記載のテクスチャリングシステム。
【請求項３】
上記記憶装置は、上記暗号化されたテクスチャ及びチェック和データを記憶するように構成され、
上記暗号解読ユニットは、上記暗号化されたテクスチャ及びチェック和データを暗号解読しそしてデータをテクスチャデータとチェック和データとに分離するように構成され、そして
上記システムは、更に、上記暗号解読ユニットに接続された保護ユニットであって、上記チェック和データを監視し、そしてそのチェック和データが制御チェック和データに一致しない場合に上記テクスチャリングシステムの出力を適応させる保護ユニットを備えた請求項１又は２に記載のテクスチャリングシステム。
【請求項４】
三次元グラフィックデータにテクスチャ化を適用する方法において、
オブジェクトをテクスチャ化するのに適用するために暗号化されたテクスチャデータを記憶し、
上記記憶されたテクスチャデータを使用してテクスチャ化されるべきオブジェクトを記述するオブジェクトデータを受け取り、
暗号化されたテクスチャデータにアクセスして暗号解読し、
上記暗号解読されたテクスチャデータをオブジェクトデータに適用して、テクスチャ化された像データを発生し、そして
上記テクスチャ化された像データを表示のために出力する、
という段階を備えた方法。
【請求項５】
テクスチャデータを暗号化するのに使用される暗号キーを識別する暗号キー識別データを受け取り、
上記暗号キー識別データから暗号キーを計算し、そして
上記暗号キーを使用して、上記暗号化されたテクスチャデータを暗号解読する、
という段階を更に備えた請求項４に記載の方法。
【請求項６】
三次元グラフィックシステムに使用するためのソフトウェアアプリケーションを生成する方法において、
（ａ）ソフトウェアアプリケーションに対する命令を生成し、
（ｂ）上記ソフトウェアアプリケーションを実行するために上記命令に関連して装置により使用されるべきスタティックなテクスチャデータを生成し、
（ｃ）暗号化アルゴリズムを使用して上記スタティックなテクスチャデータを暗号化し、そして
（ｄ）上記暗号化されたテクスチャデータ及びソフトウェア命令をソフトウェアアプリケーションとして出力する、
という段階を備えた方法。
【請求項７】
上記スタティックなテクスチャデータに対してチェック和データを発生し、
上記チェック和データとスタティックなテクスチャデータとを合成し、そして
その合成されたチェック和及びスタティックなテクスチャデータを暗号化するように上記段階（ｃ）を変更する、
という付加的な段階を備えた請求項６に記載の方法。
【請求項８】
上記チェック和データは、上記テクスチャデータの始めから選択された第１の複数のワードから発生される請求項７に記載の方法。
【請求項９】
ソフトウェアアプリケーションを出力する上記段階（ｄ）は、
配布装置をターゲット装置へ接続し、
ターゲット装置識別子データを上記ターゲット装置から上記配布装置へ転送し、
上記ターゲット装置識別子データを上記配布装置において使用して、上記ターゲット装置に特有の暗号化定義データを発生し、そして
上記ソフトウェアアプリケーション及び上記暗号化定義データを上記配布装置から上記ターゲット装置へ転送して、上記ターゲット装置によりその後に使用して、上記ソフトウェアアプリケーションを実行できるようにする、
という段階を更に備えた請求項６ないし８のいずれかに記載の方法。
【請求項１０】
上記暗号化定義データは、それ自体、セールスキーを形成するように暗号化され、そしてこのセールスキーは、上記ソフトウェアアプリケーションと共に、上記ターゲット装置へ転送される請求項９に記載の方法。
【請求項１１】
命令及び暗号化されたテクスチャデータを含むソフトウェアアプリケーションを実行するための３−ｄグラフィック装置において、
ソフトウェアアプリケーションを実行するためのＣＰＵと、
上記ＣＰＵに接続され、ソフトウェアアプリケーションを記憶するためのメモリと、
ソフトウェアアプリケーションの実行により発生された３−ｄグラフィックを表示するためのディスプレイと、
請求項１ないし３のいずれかに記載のテクスチャリングシステムであって、その入力が上記ＣＰＵに接続されそしてその出力が上記ディスプレイに接続されたテクスチャリングシステムと、
を備えた３−ｄグラフィック装置。
【請求項１２】
上記テクスチャリングシステムは、配布装置により使用するために装置識別子を記憶するように構成された請求項１１に記載の３−ｄグラフィック装置。
【請求項１３】
保護されたソフトウェアアプリケーションを配布装置からターゲット装置へ配布する方法において、
上記配布装置を上記ターゲット装置へ接続し、
ターゲット装置識別子データを上記ターゲット装置から上記配布装置へ転送し、
上記ターゲット装置識別子データを上記配布装置において使用して、上記ターゲット装置に特有の暗号化定義データを発生し、そして
上記保護されたソフトウェアアプリケーション及び上記暗号化定義データを上記配布装置から上記ターゲット装置へ転送して、上記ターゲット装置によりその後に使用して、上記保護されたソフトウェアアプリケーションを実行できるようにする、
という段階を備えた方法。
【請求項１４】
上記暗号化定義データは、それ自体、セールスキーを形成するように暗号化され、そしてこのセールスキーは、上記保護されたソフトウェアアプリケーションと共に、上記ターゲット装置へ転送される請求項１３に記載の方法。
【請求項１５】
保護されたソフトウェアアプリケーションをターゲット装置に配布するための配布装置において、
ターゲット装置からターゲット識別子データを受け取るための受信器と、
上記受信器に接続され、上記ターゲット識別子データ及びアプリケーション暗号キーから暗号化定義データを発生するための合成器と、
保護されたソフトウェアアプリケーション及び上記暗号化定義データをターゲット装置へ出力し、このターゲット装置で使用して、上記保護されたソフトウェアアプリケーションを実行できるようにする出力と、
を備えた配布装置。
【請求項１６】
上記合成器及び上記出力に接続されて、上記暗号化定義データを暗号化してセールスキーを形成するための暗号装置を更に備え、上記出力は、上記セールスキー及びソフトウェアアプリケーションをターゲット装置に出力して、上記ターゲット装置で使用して、上記保護されたソフトウェアアプリケーションを実行できるようにする請求項１５に記載の配布装置。
【請求項１７】
実質的に図２ないし７のいずれかを参照して説明した装置。
【請求項１８】
実質的に図２ないし７のいずれかを参照して説明した方法。
【国際調査報告】
2005502113.tif 000043
2005502113.tif 000044
2005502113.tif 000045
2005502113.tif 000046
2005502113.tif 000047