(57)【要約】  本発明は、ＦＰＧＡなどの再構成可能なハードウェアコンポーネントを有するハードウェアプラットフォーム上でコンピュータ可読命令を実行することに関する。再構成可能なハードウェアコンポーネントは、再構成セットに従って再構成され、第１アプリケーションは、再構成されたハードウェアコンポーネント上で少なくとも部分的に実行され、これにより、出力が生成される。本発明は、ハードウェアプラットフォーム上で実行されるソフトウェアを難読化及び改ざん防止する方法を提供する。
2009543175.tif 000002
【特許請求の範囲】
【請求項１】
再構成可能なハードウェアコンポーネントを有するハードウェアプラットフォーム上でコンピュータ可読命令を実行する方法であって、
再構成セットに従って前記再構成可能なハードウェアコンポーネントを再構成するステップと、
前記再構成されたハードウェアコンポーネント上で少なくとも部分的に第１アプリケーションを実行し、前記第１アプリケーションから出力を生成するステップと、
を有する方法。
【請求項２】
前記再構成可能なハードウェアコンポーネントは、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）である、請求項１記載の方法。
【請求項３】
前記再構成可能なハードウェアコンポーネントは、ＣＰＵの機能を有する、請求項１記載の方法。
【請求項４】
前記再構成可能なハードウェアコンポーネントは、パラレル処理に適合される、請求項１記載の方法。
【請求項５】
前記再構成可能なハードウェアコンポーネントは、ニューラルネットワークを形成する、請求項１記載の方法。
【請求項６】
アクセスレベルは、前記第１アプリケーションの出力に応じて設定される、請求項１記載の方法。
【請求項７】
前記第１アプリケーションは、自らについてインテグリティテストを実行し、
前記アクセスレベルは、前記インテグリティテストに応じて設定される、請求項６記載の方法。
【請求項８】
前記第１アプリケーションは、前記再構成可能なハードウェアコンポーネントに対してインテグリティテストを実行し、
前記アクセスレベルは、前記インテグリティテストに応じて設定される、請求項６記載の方法。
【請求項９】
前記第１アプリケーションは、前記ハードウェアプラットフォーム上で実行されるソフトウェアアプリケーションに対してインテグリティテストを実行し、
前記アクセスレベルは、前記インテグリティテストに応じて設定される、請求項６記載の方法。
【請求項１０】
前記アクセスレベルはさらに、前記ハードウェアプラットフォーム上で実行されるソフトウェアアプリケーションの実行に依存する、請求項６記載の方法。
【請求項１１】
前記第１アプリケーションは、暗号化されたコンテンツに係る命令の実行を可能にする、請求項１記載の方法。
【請求項１２】
前記再構成セットは、暗号化されたコンテンツを伴い、
前記再構成セットは、前記第１アプリケーションが前記暗号化されたコンテンツに係る命令を実行することを可能にする、請求項１記載の方法。
【請求項１３】
請求項１記載の方法をプロセッサに実行させるよう構成されるコンピュータプログラム。
【請求項１４】
ハードウェアプラットフォームと再構成可能なハードウェアコンポーネントとを有する装置であって、
前記再構成可能なハードウェアコンポーネントは、再構成セットに従って再構成され、
第１アプリケーションは、前記再構成されたハードウェアコンポーネント上で少なくとも部分的に実行され、これにより、前記第１アプリケーションから出力を生成する装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、再構成可能なハードウェアコンポーネントを有するハードウェアプラットフォーム上でコンピュータ可読命令を実行する方法に関する。さらに、本発明は、当該方法を実現するためのコンピュータプログラムプロダクト及び装置に関する。
【背景技術】
【０００２】
オープンプラットフォーム上で実行されるソフトウェアを販売するソフトウェアベンダは、基本的な問題に直面するかもしれない。これは、ソフトウェアがデジタル著作権管理（ＤＲＭ）アプリケーションにおける専用アルゴリズム及び暗号鍵など、隠されたままとされるべき秘密を含む。オープンプラットフォームでは、プログラムコピーを取得した人は、例えば、リバースエンジニアリングなどによりプログラムのコードを調べて分解する完全な権限を有し、これにより、パスワード、キー、証明書の洞察又はそれらへのアクセスを取得し、具体的なアルゴリズムなどを知ることが可能となる。このような人は、しばしば攻撃者と呼ばれる。それはまた、ＩＦステートメントを通過し、鍵を置換し、コードを削除／挿入するなどにより、コードを変更することが可能となるかもしれない。この結果、このような人は、コードを順守事項に従って動作することを止めさせ、ウイルス／ワーム／トロイの木馬などを注入するかもしれない。
【０００３】
ソフトウェアコードの攻撃は、ソフトウェア難読化により防ぐことが可能である。そこでは、コードは理解困難である、このため、洞察やリバースエンジニアリングを困難にする難読化形式に変換される。
【０００４】
Ｚａｍｂｒｅｎｏ，Ｊらによる文献“Ｆｌｅｘｉｂｌｅ  Ｓｏｆｔｗａｒｅ  Ｐｒｏｔｅｃｔｉｏｎ  Ｕｓｉｎｇ  Ｈａｒｄｗａｒｅ／Ｓｏｆｔｗａｒｅ  Ｃｏｄｅｓｉｇｎ  Ｔｅｃｈｎｉｑｕｅｓ”（Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  Ｄｅｓｉｇｎ，Ａｕｔｏｍａｔｉｏｎ  ａｎｄ  Ｔｅｓｔ  ｉｎ  Ｅｕｒｏｐｅ  Ｃｏｎｆｅｒｅｎｃｅ  ａｎｄ  Ｅｘｈｉｂｉｔｉｏｎ（ＤＡＴＥ’０４），ｐｐ．６３６，２００４）において、再構成可能なハードウェアサポートと保護的コンパイラ技術とを結び付ける方法が開示される。当該文献では、プロセッサはＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）ベースのセキュアハードウェアコンポーネントにより補完されることが開示されている。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、ハードウェアプラットフォーム上でコンピュータ命令を実行する改良された方法を提供することであり、ソフトウェアコードに対する改ざん、リバースエンジニアリング及び他の攻撃が阻止され、又は少なくとも複雑化されるように、セキュアな方法によりハードウェアプラットフォーム上でコンピュータ命令を実行する手段を提供することが、本発明の課題としてみなされるかもしれない。上述されたＺａｍｂｒｅｎｏらによる文献では、ＦＰＧＡが、通常の方法により通常のＣＰＵ上で実行される実行可能コードに対して整合性チェックを実行するのに利用される。本発明の発明者は、カスタムメイドコンピュータ命令が実行可能なＦＰＧＡ又は他の再構成可能なハードウェアコンポーネントのいて汎用的な実現形態を利用することによって、ハードウェアプラットフォームを改ざん保護するための改良された効果的な方法が提供されるという洞察を有していた。好ましくは、本発明は、従来技術の１以上の問題点を単独で又は組み合わせにより軽減又は解消する。
【課題を解決するための手段】
【０００６】
本発明の第１の特徴によると、再構成可能なハードウェアコンポーネントを有するハードウェアプラットフォーム上でコンピュータ可読命令を実行する方法であって、再構成セットに従って前記再構成可能なハードウェアコンポーネントを再構成するステップと、前記再構成されたハードウェアコンポーネント上で少なくとも部分的に第１アプリケーションを実行し、前記第１アプリケーションから出力を生成するステップと、を有する方法が提供される。
【０００７】
本発明は、ハードウェアプラットフォーム上で実行されるソフトウェアを難読化及び改ざん防止する方法を提供する。再構成可能なハードウェアコンポーネントの再構成後、攻撃者は実際に新たな各ソフトウェアアプリケーション（又は同一アプリケーションの新たなリリース）を備えた新規かつ未知のハードウェアプラットフォームに遭遇する。この新たなプラットフォーム上で実行されるコード又は命令を分解するのに利用可能なツールは存在しない。再構成可能なハードウェアコンポーネントを再構成する命令は、第１アプリケーションの一部であるかもしれない。あるいは、このための別のアプリケーションが実行される。再構成セットは、第１アプリケーションと一緒に又は別に設けられてもよい。例えば、再構成セットは第１アプリケーションの一部であってもよく、それらは（すなわち、再構成セットと第１アプリケーション）別々のエンティティであるが、記憶装置などに一緒に与えられてもよく、あるいは、それらは第１アプリケーションがネットワーク、記憶装置などを介し再構成セットにアクセスする方法を指示される別々のエンティティであってもよい。
【０００８】
再構成可能なハードウェアコンポーネントは、効果的な実施例では、ＦＰＧＡであるかもしれないが、他のタイプの再構成可能なハードウェアコンポーネントがまた利用されるかもしれない。再構成可能なハードウェアコンポーネントは、標準的なＰＣメモリで継続される活動より実行時の観察が難しい。攻撃者は、典型的には、アプリケーションの精査に関してバス上のトラフィックをモニタするかもしれない。ＦＰＧＡなどの再構成可能なハードウェアコンポーネントについて、バスは存在せず、ＦＰＧＡとの間で送受信されるデータ及びＦＰＧＡの内部で処理されるデータにアクセスすることは困難であるか、又は不可能でさえあるかもしれない。この結果、再構成可能なハードウェアコンポーネントが固定されたハードウェアコンポーネントにより実行時に観察不可な状況が、本発明により提供されるかもしれない。
【０００９】
再構成可能なハードウェアコンポーネントが異なるモードで又はＣＰＵがパラレル処理に適合する若しくはニューラルネットワークを形成するように動作することを含む動作モードの組み合わせとして動作するよう設定される効果的な実施例が開示される。ソフトウェアが攻撃から保護するための多用途でフレキシブルな方法が提供されるため、異なる動作モードを適用可能であることが効果的である。
【００１０】
アクセスレベルが第１アプリケーションの出力に応じて設定される効果的な実施例が開示される。アクセスレベルは、ハードウェアプラットフォームの又はハードウェアにプラットフォームに係る各部分に対するインテグリティテストに応じて設定される。アクセスレベルの設定は、データ、ソフトウェア及びハードウェアアプリケーション、サービス、接続などへの条件付アクセスを提供する効果的な方法である。
【００１１】
効果的な実施例では、第１アプリケーションは、暗号化されたコンテンツに添付されるなど暗号化されたコンテンツに係る解読命令などの命令の実行を可能にし、これにより、暗号化されたコンテンツへのセキュアなアクセスを可能にする。再構成セットは、暗号化されたコンテンツに添付され、例えば、再構成セットは、暗号化されたコンテンツと共に配信されるかもしれない。暗号化されたコンテンツと共に再構成セットを配信することは、構成セットを提供する便利な方法であるかもしれない。
【００１２】
さらなる効果として、本発明は、再構成可能なハードウェアコンポーネントの機能が再構成データの調査から明らかでないような方法により再構成可能なハードウェアコンポーネントの機能を難読化することを可能にする。実際、難読化されたコード又は命令は、難読化されていない再構成可能なハードウェアコンポーネントよりリバースエンジニアにとって困難である。
【００１３】
本発明の他の特徴では、第１の特徴の方法をプロセッサに実行させるよう構成されたコンピュータプログラムと、第１の特徴の方法を実行するよう構成されるハードウェアプラットフォームと再構成可能なハードウェアコンポーネントとを有する装置が提供される。
【００１４】
一般に、本発明の各種特徴は、本発明の範囲内において可能な何れかの方法により合成及び結合されるかもしれない。本発明の上記及び他の側面、特徴及び／又は効果は、後述される実施例を参照して明らかになるであろう。
【発明を実施するための最良の形態】
【００１５】
本発明では、再構成可能なハードウェアが、ある人がアプリケーションを精査する完全な権限を有するプラットフォーム上でソフトウェアを難読化するため利用される。ソフトウェアは、ハードウェアを再構成するための命令と、新たに構成されたハードウェア上で実行されるべきさらなる命令とを有する。新たな設定は、ソフトウェアの難読化を実現するが、依然として攻撃者には知らされない新たなプラットフォームを表す。
【００１６】
一実施例では、ハードウェアプラットフォームのプロセッサは、ソフトマイクロプロセッサが実装されるＦＰＧＡである再構成可能なハードウェアコンポーネントにより補完され、すなわち、再構成セットがマイクロプロセッサを記述子、これにより、汎用ＣＰＵと再構成可能なロジックとが合成される。この方式では、特別なコンピュータ言語コンパイラが、サブルーチンをロジックを構成するためのビットマスクにコンパイルする。プログラムの他の典型的には重要性の低い部分は、ＣＰＵ上でそれらの時間を共有することにより実行可能である。ＦＰＧＡは、ＯＲやＮＡＮＤゲートなどのプログラム可能なロジックコンポーネントを含む半導体装置である。このようなゲートは、より複雑な機能に対してプログラム可能な方法により合成可能であり、ＦＰＧＡ上の自らの命令セットを含むマイクロプロセッサ機能を“プログラム”することさえ可能である。ＦＰＧＡを再プログラムすることによって、新たな機能が取得可能である。ＦＰＧＡの代わりに、ＣＰＬＤ（Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）などの他のタイプのプログラム可能なロジック装置が利用されるかもしれない。ＦＰＧＡの動作は、ＶＨＤＬやＶｅｒｉｌｏｇなどのハードウェア記述言語（ＨＤＬ）を利用して、使用されたＨＤＬに関して再構成セットを規定することにより定義されるかもしれない。
【００１７】
ハードウェアプラットフォームは、異なる具体的な目的のため各種ハードウェアプラットフォームの一部として実現されるかもしれない。典型的な実現形態では、ハードウェアプラットフォームは、汎用コンピュータ又はハードディスクレコーダやＤＶＤ装置などの再生装置に実現されるかもしれない。ハードウェアプラットフォームは、再構成可能なハードウェアコンポーネントの機能をサポートするマザーボード又はその一部などであるかもしれない。
【００１８】
図１において、本発明の実施例が示される。図１は、第１アプリケーション１０とハードウェアプラットフォーム２０との間の関係の概略を示す。図１では、ソフトウェアアプリケーション１０はハードウェアプラットフォーム上で実行される。ハードウェアプラットフォーム２０は、再構成可能なハードウェアコンポーネント２１と固定されたハードウェアコンポーネント２２とを有する。再構成可能なハードウェアコンポーネントはＦＰＧＡであり、固定されたハードウェアコンポーネントはＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であるかもしれない。ソフトウェアアプリケーション１０は、再構成可能なハードウェアコンポーネントがデータ及び／又は命令を処理することが可能となるように、再構成セット２６により再構成可能なハードウェアコンポーネントを再構成するための命令を有する。ソフトウェアアプリケーションはまた、固定されたハードウェアコンポーネントにとって意味のない命令２４又は少なくともその一部を有するが、その代わりに再構成可能なハードウェアコンポーネントにより少なくとも部分的に処理される必要がある。ソフトウェアアプリケーション１０は第１アプリケーションであるかもしれない。第１アプリケーション１０は、ハードウェアプラットフォーム２０上で実行されると、出力２５を生成する。
【００１９】
この出力は、出力が所与の基準を充足する場合にコンテンツへのアクセスを保証するなど、条件付のアクセスを保証するルーチンの一部であるかもしれない。充足されるべき具体的な条件は、特定の実施例に依存するかもしれない。条件付アクセスは、例えば、それが所与の基準を充足する場合など、第１アプリケーションの出力に従うアクセスレベルの設定に関して表されるかもしれない。
【００２０】
図２は、本発明の実施例のフロー図を示す。第１ステップ１００では、ＦＰＧＡ（すなわち、再構成可能なハードウェアコンポーネント）が再構成される。一実施例では、固定されたプラットフォームは、ＦＰＧＡの再構成後にリブートすることを求めるかもしれない（１０１）。あるいは、ハードウェアプラットフォームは、無線により再構成されるかもしれない（１０２）。無線再構成が可能なハードウェアプラットフォームについて、頻繁な再構成はプロセスの中間結果に応じて実行可能である。
【００２１】
ハードウェアコンポーネントの再構成は、いくつかのモードで動作するようハードウェアプラットフォームを設定するかもしれない。非網羅的リストには、再構成可能なハードウェアコンポーネントがＣＰＵの機能により動作するよう構成されることが含まれる（１０３）。再構成されたハードウェアコンポーネントは、パラレル処理に適合するよう構成されるかもしれない（１０４）。パラレルな実行のため記述されたプログラムは、特殊な分解ツールを必要とし、このため、リバースエンジニアリングをさらに困難なものにするかもしれない。再構成されたハードウェアコンポーネントは、ニューラルネットワーク１０５を形成するよう構成されるかもしれない。ニューラルネットワークは、理解困難な方法で動作し、このようなアクションの分解は通常の実行可能なコード又は命令の分解とは異なり、このため、リバースエンジニアに不可能ではないが極めて困難なものとなるかもしれない。
【００２２】
再構成可能なハードウェアコンポーネントに動作モードに従って動作するよう再構成した後、第１アプリケーションは、再構成されたハードウェアコンポーネント上で実行されるべきアプリケーションの部分の実行を継続する（１０７）。第１アプリケーションの処理は、固定されたＣＰＵなどの固定されたハードウェアコンポーネントと再構成されたハードウェアコンポーネントとの間で共有されるかもしれない。アプリケーションは、コードの何れの部分がどこで実行されるべきか、固定されたＣＰＵ又は再構成されたハードウェアコンポーネントに指示するためのコードを含むかもしれない。第１アプリケーションは、さらなるアクションに使用される出力１０８を生成する。
【００２３】
出力１０８は、ユーザにより許可されたアクセスレベルを設定するため、第１アプリケーションにより利用されるかもしれない。アクセスレベルは、例えば、完全なアクセスを付与したり、又はアクセスを全く付与しないなどであるかもしれない。あるいは、アクセスレベルは、第１又は他のアプリケーションの機能セットへのアクセスを付与するかもしれない。あるいは、出力は、第１アプリケーション以外の他のエンティティ、例えば、アプリケーションがチャレンジに正しく応答可能となることを保証するベリファイアなどと通信されるかもしれない。ベリファイアは、ソフトウェアアプリケーション、再構成されたハードウェアコンポーネント上で実行される他のアプリケーション、装置の制御アプリケーション、オンラインサービスプロバイダなどであるかもしれない。
【００２４】
出力は、アプリケーション自体のインテグリティテストの結果であるかもしれない。アプリケーションは、当該アプリケーションが実際にオリジナル形式となっているかチェックするためのチェックサム又は他の計算を実行するかもしれない。インテグリティテストが成功した場合、アクセスレベルはフルアクセスに設定されるか、あるいは、アプリケーションのさらなる使用が阻止されるように設定されるかもしれない。
【００２５】
出力は、あるいは（又は加えて）再構成可能なハードウェアコンポーネントに対するインテグリティテストの結果であるかもしれない。アプリケーションは、実際の機能が意図した機能に合致することを保証するため、再構成可能なハードウェアコンポーネントのテストを実行するかもしれない。
【００２６】
出力は、あるいは（又は加えて）ハードウェアプラットフォーム上で実行されるソフトウェアアプリケーションに関するインテグリティテストの結果（又は合成された結果）であるかもしれず、又は固定されたハードウェアプラットフォーム上で実行されるプログラムなどのハードウェアプラットフォーム上で実行されるソフトウェアアプリケーションの一部であるかもしれない。
【００２７】
アクセスレベルは、ハードウェアプラットフォーム上で実行される第２アプリケーションの実行に依存するかもしれない。第２アプリケーションは、再構成可能なハードウェアコンポーネントのために第１アプリケーションと一緒にダウンロード又はインストールされるソフトウェアアプリケーションであるかもしれない。第２アプリケーションは、再構成されたハードウェアコンポーネント上で実行されるセキュリティアプリケーションであるかもしれない。第２アプリケーションはまた、装置の制御アプリケーションであるかもしれない。
【００２８】
一実施例では、第１アプリケーションは、暗号化されたコンテンツを伴う解読命令の実行を可能にし、これにより、暗号化されたコンテンツへのアクセスを可能にする。これはさらに後述される。
【００２９】
第１アプリケーションの実行に成功すると、さらなる処理１０８が可能とされ、これにより、ユーザは第１アプリケーション又は第１アプリケーションに接続された他のアプリケーションの機能を利用し続けるかもしれない。
【００３０】
本発明による実施例が、保護されたコンテンツへのアクセスに関して説明される。すなわち、デジタル著作権管理（ＤＲＭ）に関して利用される本発明の実施例が説明される。
【００３１】
図３において、再生装置などの装置３００には、処理能力を備え、再構成可能なハードウェアコンポーネント３１１に接続されるか又は含むハードウェアプラットフォームが設けられる。再生装置は、汎用コンピュータ、ビデオなどのイメージデータを表示するスクリーンに一体化又は接続されるハードディスクレコーダなど、及び／又はおそらくネットワークの一部である他のコンピュータ３１０に音楽などの音声を再生するオーディオ装置３１２などであるかもしれない。再生装置にはまた、ＤＶＤドライブ、ＨＤドライブ、Ｂｌｕ−ｒａｙドライブなどのディスクドライブ３０３、ハードディスクなどの記憶ユニット３０４及びイントラネット、インターネット、ホームネットワークなどのネットワーク３０５に装置を接続するためのインタフェースが設けられる。ネットワークはさらに、モバイルユニット３０６、コンピュータ３０７、サーバ３０８、メディアセンター３０９、ハードディスクレコーダなどを含む他のユニットに接続されるかもしれない。
【００３２】
装置３００は、典型的には、本実施例に関して記載されない追加的又は代替的なコンポーネント及び要素を含むかもしれない。
【００３３】
一実施例では、ユーザは、ＤＶＤディスク又は他の記憶装置３１４にあるフィルムやダウンロードされたフィルムなどの保護されたコンテンツにアクセスすることを所望する。フィルムは、暗号化されてもよく、フィルムを閲覧するため解読される必要があるかもしれない。暗号化されたコンテンツは、鍵、解読アルゴリズムに関する命令、埋め込み透かしを何れにあるか、再生可能とするため必要とされる検出するための命令などの解読命令を伴う。第１アプリケーションは、再生装置がこれらのタスクを実行することができるように、再構成可能なハードウェアコンポーネント３１１を構成するかもしれない。また、再構成セットは、ディスク３１４上のデータ、コンテンツと共にダウンロードされたデータなどとしてコンテンツを伴うかもしれない。
【００３４】
一実施例では、コンテンツは標準的なプロセッサに理解できず、再生装置が再構成されたハードウェアコンポーネントにより直接制御されるデータフォーマットによるものとされる。
【００３５】
本発明は、ハードウェア、ソフトウェア、ファームウェア又はこれらの何れかの組み合わせを含む何れか適切な形態により実現可能である。本発明又はその一部の特徴は、１以上のデータプロセッサ及び／又はデジタル信号プロセッサ上で実行されるコンピュータソフトウェアとして実現可能である。本発明の実施例の要素及びコンポーネントは、何れか適切な方法により物理的、機能的及び論理的に実現されるかもしれない。実際、当該機能は、単一のユニット、複数のユニット又は他の機能ユニットの一部として実現されるかもしれない。また、本発明は、単一のユニットにより実現されるか、又は異なるユニット及びプロセッサの間に物理的及び機能的に分散されるかもしれない。
【００３６】
本発明が指定された実施例に関して説明されたが、ここに与えられる特定の形式に限定されるものでない。むしろ、本発明の範囲は、添付した請求項によってのみ限定される。請求項では、“有する”という用語は、他の要素又はステップの存在を排除するものでない。さらに、各特徴が異なる請求項に含まれるかもしれないが、これらはおそらく効果的に組み合わせ可能であり、異なる請求項への包含は、各特徴の組み合わせが実現可能及び／又は効果的でないことを意味するものでない。さらに、単数形の表現は複数を排除するものでない。“ある”、“第１”、“第２”などの表現は複数を排除するものでない。さらに、請求項の参照符号は範囲を制限するものとして解釈されるものでない。
【図面の簡単な説明】
【００３７】
【図１】図１は、第１アプリケーションとハードウェアプラットフォームとの間の関係の概略を示す。
【図２】図２は、本発明の実施例のフロー図を示す。
【図３】図３は、本発明の実施例によるハードウェアプラットフォームに設けられた再生装置を示す。
【図１】
2009543175.tif 000003
【図２】
2009543175.tif 000004
【図３】
2009543175.tif 000005
【手続補正書】
【提出日】平成21年1月7日(2009.1.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
再構成可能なハードウェアコンポーネントを有するハードウェアプラットフォーム上でコンピュータ可読命令を実行する方法であって、
再構成セットに従って前記再構成可能なハードウェアコンポーネントを再構成するステップと、
前記再構成セットに従って前記再構成されたハードウェアコンポーネントを再構成する第１命令を有する少なくとも第１アプリケーションを実行するステップと、
を有し、
前記少なくとも第１アプリケーションは、前記再構成可能なハードウェアコンポーネントにより少なくとも部分的に処理されるさらなる命令を有し、前記ハードウェアプラットフォーム上で実行されることに応答して出力を生成する方法。
【請求項２】
前記再構成可能なハードウェアコンポーネントにより少なくとも部分的に処理される第２命令を有する第２アプリケーションを実行すると、前記ハードウェアコンポーネントが、前記第１アプリケーションと異なる方法により再構成される、請求項１記載の方法。
【請求項３】
前記再構成可能なハードウェアコンポーネントは、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）である、請求項１記載の方法。
【請求項４】
前記再構成可能なハードウェアコンポーネントは、ＣＰＵの機能を有する、請求項１記載の方法。
【請求項５】
前記再構成可能なハードウェアコンポーネントは、パラレル処理に適合される、請求項１記載の方法。
【請求項６】
前記再構成可能なハードウェアコンポーネントは、ニューラルネットワークを形成する、請求項１記載の方法。
【請求項７】
アクセスレベルは、前記第１アプリケーションの出力に応じて設定される、請求項１記載の方法。
【請求項８】
前記第１アプリケーションは、自らについてインテグリティテストを実行し、
前記アクセスレベルは、前記インテグリティテストに応じて設定される、請求項７記載の方法。
【請求項９】
前記第１アプリケーションは、前記再構成可能なハードウェアコンポーネントに対してインテグリティテストを実行し、
前記アクセスレベルは、前記インテグリティテストに応じて設定される、請求項７記載の方法。
【請求項１０】
前記第１アプリケーションは、前記ハードウェアプラットフォーム上で実行されるソフトウェアアプリケーションに対してインテグリティテストを実行し、
前記アクセスレベルは、前記インテグリティテストに応じて設定される、請求項７記載の方法。
【請求項１１】
前記アクセスレベルはさらに、前記ハードウェアプラットフォーム上で実行されるソフトウェアアプリケーションの実行に依存する、請求項７記載の方法。
【請求項１２】
前記第１アプリケーションは、暗号化されたコンテンツに係る命令の実行を可能にする、請求項１記載の方法。
【請求項１３】
前記再構成セットは、暗号化されたコンテンツを伴い、
前記再構成セットは、前記第１アプリケーションが前記暗号化されたコンテンツに係る命令を実行することを可能にする、請求項１記載の方法。
【請求項１４】
請求項１記載の方法をプロセッサに実行させるよう構成されるコンピュータプログラム。
【請求項１５】
ハードウェアプラットフォームと再構成可能なハードウェアコンポーネントとを有する装置であって、
前記再構成可能なハードウェアコンポーネントは、再構成セットに従って再構成され、
少なくとも第１アプリケーションは、前記再構成セットに従って前記再構成可能なハードウェアコンポーネントを再構成する第１命令を有し、
前記少なくとも第１アプリケーションは、前記再構成可能なハードウェアコンポーネントにより少なくとも部分的に処理されるさらなる命令を有し、前記ハードウェアプラットフォーム上で実行されることに応答して出力を生成する装置。
【国際調査報告】
2009543175.tif 000006
2009543175.tif 000007
2009543175.tif 000008