"信頼鍵に従ったスマートカードとの暗号化データの転送用に構成された電子デバイスであって、前記デバイスが、少なくとも1つの安全な部分を備え、前記デバイスが、前記デバイスと前記スマートカードとの間の暗号化データの転送用の信頼鍵を確定するために、スマートカードと鍵交換アルゴリズムを遂行するように構成されると共に、前記デバイスが、前記信頼鍵を前記デバイスの前記安全な部分に保存するように構成されることを特徴とする電子デバイス。前記安全な部分が、前記デバイスにおいて、前記鍵交換アルゴリズムの少なくとも一部分を遂行するように構成されることを特徴とする請求項1に記載の電子デバイス。前記デバイスが、少なくとも1つの安全でない部分を備え、前記安全でない部分が、前記デバイスにおいて、前記鍵交換アルゴリズムを遂行するように構成され、前記デバイスが、前記安全でない部分から前記安全な部分に、保護された信頼鍵を転送するように構成されると共に、前記安全な部分が、前記保護された信頼鍵から、前記安全な部分に保存されるべき前記信頼鍵を抽出するように構成されることを特徴とする請求項1に記載の電子デバイス。前記安全でない部分が、前記鍵交換アルゴリズムを遂行するために、そしてホワイトボックス暗号作成法を使用して前記信頼鍵を保護するために、前記スマートカードから、前記鍵交換アルゴリズム用の変換された入力を受け取るように構成されることを特徴とする請求項3に記載の電子デバイス。前記ホワイトボックス暗号作成法が、前記安全でない部分から前記安全な部分に、変換された信頼鍵を含む変換された出力を提供するように取り決められ、前記デバイスの前記安全でない部分が、前記変換された信頼鍵から、前記安全な部分に保存されるべき前記信頼鍵を抽出することが可能である変換関数を含むことを特徴とする請求項3または請求項4のいずれか一項に記載の電子デバイス。前記デバイスが、更に、前記スマートカードと追加的な鍵を同意するように構成されると共に、前記デバイスが、-前記安全な部分に前記信頼鍵に従って暗号化された前記追加的な鍵を受け取ると共に、前記安全な部分に前記追加的な鍵を抽出するために、前記保存された信頼鍵を使用して前記暗号化された追加的な鍵を復号化すること、及び、-前記追加的な鍵を生成し、前記保存された信頼鍵を使用して前記追加的な鍵を暗号化すると共に、前記暗号化された追加的な鍵を前記スマートカードに送信することの内の少なくとも1つを実行するように構成されることを特徴とする請求項1から請求項5のいずれか一項に記載の電子デバイス。前記デバイスが、暗号化コンテントを受け取るコンテント受信機を備えると共に、前記安全な部分が、-前記安全な部分に保存された前記信頼鍵または請求項6に記載された前記追加的な鍵を使用して前記スマートカードからの前記暗号化データを復号化するように構成された第1の復号化器と、-前記復号化されたデータを使用して前記暗号化コンテントを復号化するように構成された第2の復号化器とを備えることを特徴とする請求項1から請求項6のいずれか一項に記載の電子デバイス。デバイスとスマートカードとの間で信頼鍵を確定するための方法であって、前記デバイスが、安全な部分を備え、前記方法が、-前記デバイスと前記スマートカードとにおいて前記信頼鍵を取得するために、前記デバイスと前記スマートカードとの間で鍵交換アルゴリズムを遂行するステップと、-前記信頼鍵を前記デバイスの前記安全な部分に保存するステップとを含むことを特徴とする方法。前記デバイスの前記安全な部分において、前記デバイスに関する前記鍵交換アルゴリズムを遂行するステップを更に含むことを特徴とする請求項8に記載の方法。前記デバイスが、安全でない部分を備え、前記方法が、-前記信頼鍵を取得するために、前記デバイスの前記安全でない部分において、前記デバイスに関する前記鍵交換アルゴリズムを遂行するステップと、-前記安全でない部分から前記安全な部分に、保護された形式で、前記信頼鍵を転送するステップとを含むことを特徴とする請求項8に記載の方法。-前記スマートカードから、前記安全でない部分に、前記鍵交換アルゴリズム用の変換された入力を受け取るステップと、-ホワイトボックス暗号作成法を使用して前記信頼鍵を保護するステップとを更に含むことを特徴とする請求項10に記載の方法。-前記安全でない部分から前記安全な部分に、変換された信頼鍵を含む変換された出力を提供するステップと、-前記安全な部分に保存されるべき前記信頼鍵を抽出するために、前記デバイスの前記安全な部分において、変換関数を適用するステップとを更に含むことを特徴とする請求項10または請求項11のいずれか一項に記載の方法。-前記信頼鍵に従って暗号化されたデータを前記デバイスの前記安全な部分に転送するステップと、-前記保存された信頼鍵を使用して前記デバイスの前記安全な部分におけるデータを復号化するステップとを更に含むことを特徴とする請求項8から請求項12のいずれか一項に記載の方法。-前記スマートカードまたは前記デバイスにおいて追加的な鍵を生成するステップと、-前記信頼鍵に従って暗号化された前記追加的な鍵を前記デバイスまたは前記スマートカードに転送するステップと、-前記追加的な鍵に従って暗号化されたデータを前記スマートカードと前記デバイスとの間で転送するステップとを更に含むことを特徴とする請求項13に記載の方法。請求項1から請求項7のいずれか一項に記載された前記電子デバイスと組み合わせて使用するための、あるいは、請求項8から請求項14のいずれか一項に記載された方法において使用するためのスマートカード。従来技術では、あまり複雑でない方法で達成され得る、デバイスとスマートカードとの間の安全なデータ転送に関する必要性がある。既知の鍵交換アルゴリズム例えば、DiffieHellmanプロトコルは、信用された団体に頼らずに、2つのデバイスにおける鍵の確定を可能にする。一般的に、電子デバイスまたはスマートカードにおける安全性は、読み取り-書き込み証明書であると共に、不正開封防止装置が付いている更に、安全なモジュールsecuredmodule、安全なチップsecuredchip、安全な部分securedportion、安全なハードウェアデバイスsecurehardwaredeviceとも呼ばれる特別なハードウェア集積回路例えば、シングルチップによって提供される。鍵交換アルゴリズムにおいて鍵を保護する1つのオプションは、安全なチップの特徴セットを拡張すると共に、鍵が電子デバイスとスマートカードとの間で安全に転送されることを保証するために、暗号化/復号化の機能性を実装することである。しかしながら、安全なハードウェアデバイスに、追加の暗号化/復号化の機能性、または洗練されたアルゴリズムを提供することは、集積回路に対する有意の修正を必要とする。ハードウェアにそれらの機能性または洗練されたアルゴリズムを与えることは、それがソフトウェアによって容易に更新されることができないので、システムの柔軟性を減少させる。例えば、ハードウェアにおける暗号化/復号化の実装は、大幅に、チップの複雑さ、チップの大きさ、チップの処理負荷、ハードウェア設計/実装コスト、またはチップの市場への遅延時間等を増大させるであろう。ある場合において、安全なハードウェアにおいて追加の安全対策を実行することは、商業的に絶対に実行可能ではないかもしれない。信頼鍵に従ったスマートカードとの暗号化データの転送用に構成された、セットトップボックスの受信機または携帯機器のような電子デバイスが開示される。電子デバイスは、少なくとも1つの安全な部分を備える。信頼鍵は、少なくとも2つ以上の団体に対する鍵の個別の実現値として確定された鍵のことを指すと共に、少なくとも2つ以上の団体は、鍵の個別のコピーが一致すると仮定する。2つの団体間の鍵の一致の仮定は、2つの団体の間の正しい動作/通信にとって必要である。例えば、信頼鍵は、2つの団体の間で送信される他のコンテントcontent:内容を暗号化して復号化するために、2つの団体の間で共有された秘密として使用され得る。ここで使用されるように、安全な部分は、安全な部分の外側からのデータの読み取り/書き込み操作を用いたアクセスを許可しないと共に、暗号化された形式による、受信機の安全でない部分とのデータ転送だけを許可するハードウェア要素を含むデバイスの専用部分である。安全な部分の例は、安全な暗号化エンジンである。安全な部分に実装された関数は、更に、一般的にハードウェア要素として実施される。スマートカードは、一般的に、操作の前に受信機に対して手動で挿入される、あるいは挿入され得る個別のカードである。しかしながら、スマートカードは、更に、電子デバイスに統合された部分であり得る。いくらかの実施例において、そのスマートカードは、スマートカードの外側からのデータの読み取り/書き込み操作を用いたアクセスを防止すると共に、暗号化された形式による、受信機の安全でない部分とのデータ転送だけを許可する安全な集積回路またはハードウェア要素を含む。電子デバイスは、デバイスとスマートカードとの間の暗号化データの転送用の信用鍵を確定するために、スマートカードと鍵交換アルゴリズムを遂行するように構成される。デバイスは、確定された信頼鍵をデバイスの安全な部分に保存するように構成される。そのような安全な部分を備えるデバイスとスマートカードとの間で信頼鍵を確定するための方法が、同様に開示される。その方法は、デバイスとスマートカードとにおいて信頼鍵を取得するために、デバイスとスマートカードとの間で鍵交換アルゴリズムを遂行するステップと、信頼鍵をデバイスの安全な部分に保存するステップとを含む。データは、それから、スマートカードにおいて信頼鍵に従って暗号化され、デバイスの安全な部分に直接転送され得ると共に、それは、安全な部分に保存された信頼鍵を使用して復号化され得る。鍵交換アルゴリズムの機能性、例えば電子デバイス及びスマートカードに実装されたDiffieHellmanプロトコルは、スマートカードと電子デバイスが、一度スマートカード及び電子デバイスが有効な交信状態になったならば、別の団体に連絡する必要性なく、局所的に信頼鍵について同意することを可能にする。信頼鍵は、信頼鍵に従った暗号化によるスマートカードと受信機との間のデータ例えば、制御語の安全な転送のために使用され得る。デバイスの安全な部分に信頼鍵を保存することによって、スマートカードからのデータは、デバイスの安全でない部分に暗号化されない形式で開示されることなく、信頼鍵に従って暗号化されて、スマートカードから電子デバイスの安全な部分に直接転送され得る。デバイスの安全な部分へのアクセスが実質的に不可能であるので、信頼鍵は、デバイスから獲得できないと共に、制御語のようなデータは、信頼鍵に従って、この安全な部分に安全に転送され得る。鍵交換アルゴリズムは、BruceSchneierによる著書、AppliedCryptographyISBN0471128457において説明される。鍵交換アルゴリズムのステップは、スマートカードと電子デバイスとの間の証明書検証ステップによって先行され得るか、スマートカードと電子デバイスとの間の証明書検証ステップと結合され得る、ということが認識されるべきである。一例として、DiffieHelmanの公開鍵は、証明書検証ステップと組み合わせて、スマートカードと安全なデバイスとの間で交換され得る。本発明の実施例において、デバイスの安全な部分は、鍵交換アルゴリズムの少なくとも一部分を遂行するように構成される。この実施例は、信頼鍵が安全な部分の中に獲得されると、鍵交換アルゴリズムの実行に起因する安全な部分における信頼鍵の保存が、更なる手段なしに実行され得るという利点を有する。鍵交換アルゴリズムの操作は、ハードウェア要素を用いて実施される。本発明の実施例において、デバイスは、少なくとも1つの安全でない部分を備える。安全でない部分は、例えば、外部の読み取り/書き込み操作を可能にするデバイスのファームウェアを含む。安全でない部分は、更に、プロセッサにソフトウェアを読み込むことによってオンチップメモリに対する読み取り/書き込み操作を可能にする、オンチップメモリを有するプロセッサを備える。安全でない部分は、ソフトウェアモジュールにおいてデバイスのための鍵交換アルゴリズム部分を実行するように構成される。この実施例は、安全な部分が鍵交換アルゴリズム操作を実行するための専用のハードウェア要素と共に構成されないという利点を有する。結果として生じる信頼鍵の安全な保存を可能にするために、安全でない部分は、信頼鍵を保護することを可能にするように構成されると共に、安全な部分は、保護された信頼鍵から安全な部分に保存されるべき信頼鍵を抽出する逆変換する、復号化することを可能にするように構成される。デバイスの安全でない部分から安全な部分に対する信頼鍵の転送を保証することの例は、ホワイトボックス暗号作成法の使用である。ホワイトボックス暗号作成法は、StanleyChow、PhilipEisen、HaroldJohnson、及びPaulCVanOorschotによるSelectedAreasinCryptography9thAnnualInternationalWorkshop、SAC2002、StJohns、Newfoundland、Canada、Aug1516、2002におけるWhiteBoxCryptographyandanAESImplementation、及び、StanleyChow、PhilEisen、HaroldJohnson、及びPaulCvanOorschotによるDigitalRightsManagementACMCCS9Workshop、DRM2002、WashingtonDC、USANov18、2002におけるAWhiteBoxDESImplementationforDRMApplicationsに説明されており、それらは、その全体の参照によって、本願に組み込まれる。ホワイトボックス暗号作成法についての基礎的なアイデアは、ルックアップテーブルLnにおいて、鍵またはその一部分を不明瞭にすることによって、鍵またはその一部分を隠すことである。一連の検索操作は、ホワイトボックス実装モジュールの機能を実施する。実施例において、本願において開示された信頼鍵は、この技術によって保護され得る。ホワイトボックス暗号は、一般的に変換関数、すなわち全単射関数の使用を含む。数学的形式において、復号化関数Dは、として書かれ得ると共に、ここで、Lnはテーブル索引操作である。これを任意の入力変換関数F、及び出力変換関数Gと結合することによって、関数が実装され得る。実施例において、デバイスの安全でない部分に対する入力情報は、スマートカードによって局所的に変換されると共に、それによって、ヘッドエンドから変換された入力情報を受け取る必要性を取り除く。変換された入力は、ホワイトボックス暗号作成法を遂行するために、デバイスの安全でない部分に送信される。これは、安全なハードウェアに対する修正を減少させるために、デバイスの安全でない部分に対するある機能性を除去するのに有利であり得る。本発明の実施例において、ホワイトボックス暗号操作の出力は、変換された出力であると共に、出力を逆変換するための関数が、デバイスの安全な部分に実装される。すなわち、ホワイトボックス暗号化操作がデバイス及びスマートカードの安全な部分まで拡張されると共に、それによってデバイスの安全でない部分から信頼鍵を抽出することを複雑にする。ハードウェアに実装された最終の変換は、ハードウェアアンカーhardwareanchor:ハードウェアの最強の部分を構成する。鍵交換アルゴリズム操作が、完全にデバイスの安全でない部分において実行され得る安全な部分におけるハードウェア要素及び/または修正の量を減少させる一方、変換された信頼鍵出力のみが、安全な部分に保存されるべき信頼鍵の抽出逆変換のための最終の変換関数を含む安全な部分に対して、意味を有している。ホワイトボックス暗号作成法の段階は、異なる最終変換のための逆変換を有する別の受信機においては役に立たない。スマートカードとデバイスとの間のデータ転送が保護される鍵を、時々交換することが望まれ得る。例えば、デバイス/受信機がリブートされるか、もしくはスマートカードがデバイスから抜き出される場合に、鍵の交換が行使され得る。更に、ヘッドエンドが、鍵を循環させるための命令を提供した可能性がある。制御語のようなデータがスマートカードとデバイスとの間のインタフェースを介して転送される場合に、信頼鍵がデータを保護するために使用され得るが、新しい信頼鍵の確定は、主としてスマートカードの限られた計算資源が原因でいくらか時間がかかる鍵交換アルゴリズムを遂行することを必要とする。従って、データが更に速やかに保護される鍵を交換することができるように、請求項5において定義された発明の実施例において、デバイス及びスマートカードは、実際のデータ転送の保護のために、追加的な鍵について同意し得る。本発明の実施例において、追加的な鍵は、スマートカード、またはデバイスの安全な部分のいずれかにおいて生成され、それは、既に確定された信頼鍵に従って暗号化されて、それぞれ、デバイス、またはスマートカードに転送され得る。追加的な鍵は、局所的に、すなわちヘッドエンドの側ではなく、デバイスまたはスマートカードの側で確定されると共に、信頼鍵より更に高い速度で循環させられ得る。上記で言及されたように、本発明の実施例において、デバイスは、暗号化されたコンテントデータcontentdataを受け取る受信機である。受信機の安全な部分は、暗号化されたコンテントデータを復号化すると共に、復号化されたコンテントデータを、レンダリングデバイスに向けて送信するように構成される。コンテントデータの復号化は、スマートカードから受信機、更に正確に言えば受信機の安全な部分に転送された暗号化されたデータ上記で言及された信頼鍵、または追加的な鍵に従って暗号化された制御語の制御下で実行され、ここで、受信機の安全な部分は、暗号化データが復号化されるしかし外部からアクセス可能でないと共に、コンテントデータの復号化に利用可能である。固有鍵が安全な部分に保存されるように、電子デバイスは準備され得ると共に、電子デバイスは、固有鍵に従って暗号化された信頼鍵をヘッドエンドに送信するように構成される。デバイスの安全な部分のチップセットは、チップセット固有鍵chipsetuniquekeyCSUKを備える。本発明の実施例において、固有鍵に従って暗号化された信頼鍵をヘッドエンドに送信することによって、コンテントデータがそこから受け取られるヘッドエンドは、スマートカードとデバイスとの間で確定された信頼鍵を通知され得る。背景技術の欄で言及されたように、ヘッドエンドは、一般的に、デバイスの安全な部分に保存された固有鍵にアクセスすることができ、従って信頼鍵を得ることができる。以下に、本発明の実施例が、更なる詳細において示されることになる。しかしながら、これらの実施例が本発明に関する保護の範囲を制限すると解釈されることはできないということが認識されるべきである。図1は、そういうものとして知られている方法で有効な交信状態になり得る電子デバイス1及びスマートカードSCの略図を示す。例えば、電子デバイス1は、セットトップボックスまたは携帯電話のための受信機である。例えば、スマートカードSCは、セットトップボックス、または携帯電話のSIMカードに対して挿入するための専用のスマートカードである。電子デバイスの安全な部分及びスマートカードSCは、グレーで表示される。電子デバイス1は、安全な部分S、及び安全でない部分NSを備える。安全な部分Sは、以下の更なる詳細において示されることになる、信頼鍵CSTK、及びセッション鍵CSSKのようなデータの安全な保存のために、メモリ2を備える。安全な部分Sは、安全な部分Sの外側からのデータの読み取り/書き込み操作を用いたアクセスを許可しないと共に、暗号化された形式による、受信機の安全でない部分NSとのデータ転送だけを許可するハードウェア要素を含むデバイス1の専用部分である。安全な部分の例は、安全な暗号化エンジンである。安全な部分に実装された関数は、更に、一般的にハードウェア要素として実施される。スマートカードSCは、完全に保護されている。電子デバイス1とスマートカードSCとが有効な交信状態になった場合、電子デバイス1は、有効な交信を検出すると共に、例えば自動的に、信号GENが、鍵交換アルゴリズムKEAを遂行するために、安全でない部分NSから、スマートカードSCに対して、及び安全な部分Sに対して出力される。鍵交換アルゴリズムは、参照によって本願に組み込まれた、BruceSchneierによる著書、AppliedCryptographyISBN0471128457において説明される。鍵交換アルゴリズムは、DiffieHellmanDHアルゴリズム、楕円曲線ellipticcurveDHアルゴリズム等を含む。信号GENは、証明書検証手続きと結合され得ると共に、鍵交換アルゴリズムの間の使用のためにパラメータ及び他のデータを読み込み得る。鍵交換アルゴリズムの一部分は、安全な部分SとスマートカードSCとの間で信頼鍵CSTKを確定するための公開鍵の交換を含み得る。信頼鍵CSTKを確定するための公開鍵の交換は、更に公開-秘密鍵暗号化技術を用いて強化され得る。電子デバイス1及びスマートカードSCにおいて実施されたKEAの機能性は、一度スマートカードSC及び電子デバイス1が、別の団体に連絡する必要性なく、有効な交信状態になったならば、スマートカードSC及び電子デバイス1が、局所的に信頼鍵CSTKについて、同意することを可能にする。以下の更なる詳細において説明されることになるように、信頼鍵CSTKは、信頼鍵CSTKに従って暗号化された制御語を安全に提供することのような、スマートカードと受信機との間の安全なデータ転送のために使用され得る。デバイス1の安全な部分Sに信頼鍵CSTKを保存することによって、スマートカードSCからのデータは、デバイス1の安全でない部分NSに暗号化されない形式で開示されることなく、信頼鍵CSTKに従って暗号化されて、スマートカードSCから電子デバイス1の安全な部分Sに直接転送され得る。デバイス1の安全な部分Sに対する、及びスマートカードSCに対する外部からのアクセスが実質的に不可能であるので、信頼鍵CSTKは、デバイス1から獲得できないと共に、制御語のようなデータは、信頼鍵CSTKに従って、この安全な部分Sに安全に転送され得る。デバイス1及びスマートカードSCが信頼鍵を確定したのだから、スマートカードSCは、データの実際の保護のために、追加的な鍵CSSKを生成し得る。もしスマートカードSCが追加的な鍵CSSKを生成するならば、図1において示されたように、信頼鍵CSTKは、あらゆる既知の暗号化アルゴリズムEによって追加的な鍵CSSKを暗号化すると共に、この追加的な鍵CSSKを、デバイス1の安全な部分Sに送信するために使用され得る。安全な部分Sにおいて、暗号化されたメッセージは、CSSKを得るために、復号化アルゴリズム及び保存された鍵CSTKを用いて復号化され得る。この後、データは、CSTKと同じ保護のレベルを有する追加的な鍵CSSKに従って転送され得る。CSSKを確定することは、鍵交換アルゴリズムKEAを使用してCSTKを確定するより速く、それによって、スマートカードSCとデバイス1の安全な部分Sとの間のデータ暗号化のための、より速やかなCSSK鍵の循環を容易にする。追加的な鍵CSSKは、同様に、安全な部分Sのメモリ2に保存される。言うまでもなく、代替実施例において、追加的な鍵CSSKは、安全な部分Sにおいて生成されると共に、信頼鍵CSTKに従って暗号化されて、スマートカードSCに転送される。図2は、鍵交換アルゴリズムがデバイス1の安全でない部分NSを用いて遂行される、本発明の代替実施例の略図を提供する。それがデバイス1の安全な部分Sに多くのハードウェア要素を加えるか、及び/または適応させる必要性を回避し得るので、これは、有利であり得る。詳細がここで説明される暗号化/復号化のホワイトボックスの実装ホワイトボックスの安全性を達成するように、実装は変換によって不明瞭にされるを一部そのアルゴリズムが使用する場合に、この利点は認識される。図2の実施例において、そのデバイスは、デバイス1の安全でない部分NSにおいて、変換ドメインTRFを利用する。スマートカードSCとデバイス1との間の有効な交信が確立される場合に、変換ドメインTRFは、デバイス1側における鍵交換アルゴリズム部分に入力を提供するために、変換関数T0を使用してスマートカードSCにおいて局所的に生成された変換された入力例えば、変換された公開鍵を受け取る。更に、スマートカードSC側で鍵交換アルゴリズムを遂行するために、情報例えば、公開鍵が、デバイス1からスマートカードSCに提供される信号GEN。変換ドメインにおいて、変換された信頼鍵CSTK’を生成するために、ホワイトボックス暗号作成法が、変換された入力に対して適用される。変換された信頼鍵CSTK’は、同様に安全な部分Sにおいて知られている鍵k’の変換されたバージョンを使用して、保護された、恐らくは暗号化された状態Eで、デバイス1の安全な部分Sに送信される。安全な部分Sにおいて、信頼鍵CSTKは、復号化アルゴリズム及び鍵k’の逆変換されたバージョンを使用して、CSTK’から抽出される。さらにまた、図1の実施例に関しては、追加的な鍵CSSKが、スマートカードSCとデバイス1との間の実際のデータ交換の保護のために使用され得る。安全な部分S及びスマートカードにおける変換の使用は、ホワイトボックス暗号作成法技術の使用を可能にする。上述のように、ホワイトボックス暗号作成法についての基礎的なアイデアは、ルックアップテーブルLnにおいて鍵またはその一部分を不明瞭にすることによって、鍵またはその一部分を隠すことである。鍵依存のテーブルにおける一連の検索操作は、ホワイトボックス実装モジュールの機能を実施する。その意図は、個々のステップよりむしろ合成物を表す任意の全単射によってそのテーブルを符号化すること、及び含んでいるアプリケーションすなわち、安全でない部分に暗号化境界を押し広げることによって暗号化境界を拡張すること、の組み合わせによって、鍵を隠すことである。ホワイトボックス暗号は、一般的に変換関数、すなわち全単射関数の使用を含む。変換関数は、1つのルックアップテーブルか、より効率的に、更に小さな全単射ルックアップテーブルの連結として実施され得る。いくらかの実施例において、ハードウェアにおける変換モジュールは、ハードウェアによってホワイトボックスで保護されたソフトウェアに提供された不正開封防止装置を拡張するために必要とされる最小の機能性である。上述のように、数学的形式において、復号化関数Dは、として書かれ得ると共に、ここで、Lnはテーブル索引操作である。これを任意の入力変換関数F、及び出力変換関数Gと結合することによって、関数が、符号化されたルックアップテーブルとして実装され得ると共に、それによって、復号化関数Dまたは、あらゆる適当な暗号化-復号化関数の各ステップは、任意の全単射によって構成される。同じ論理が、暗号化関数に適用され得る。分解され得ると共に、任意の全単射すなわち、変換と混合され得る暗号化-復号化関数に関して、結果として生じるデータ変換は、標準のブラックボックス抵抗性アルゴリズムblackboxresistantalgorithmを組み込むすなわち、そのアルゴリズムは、任意の全単射によって混合されるか、または分かりにくくされる。標準のアルゴリズムを更に大きなデータ変換の中に組み込むことによって、オリジナルのアルゴリズムのブラックボックスの強さは、ホワイトボックスの攻撃に対する更に大きい抵抗力を提供しながら、保持される。その結果、結果として生じるデータ変換の少なくとも一部分は、安全でない環境に実装され得ると共に、それによって、更に多くの操作例えば、テーブルの検索を含んでいるアプリケーションに押し広げ、そして保護されたハードウェアの複雑さを制限する。ホワイトボックス実装モジュールは、任意の入力変換及び出力変換を検索と混合し、それは、暗号化または復号化のような意図した操作を行う。従って、敵対者は、実際の秘密が発見され得る前に、入力変換及び出力変換のシーケンスを解析して模倣することを最初に必要とする。少なくとも、ホワイトボックスの実装の一部分は、ホワイトボックスの実装の他の部分が一般的な安全でない環境に実装され得る一方、安全な専用のハードウェアに実装され得る。安全なハードウェアに実装された部分、またはいわゆるハードウェアアンカーは、ソフトウェアが異なる実装を有する異なるデバイスに移動されることを阻止する。更に、主な機能性がホワイトボックスが実装されたアルゴリズムまたはプロトコルに実装されるので、ハードウェアアンカーは、専用のハードウェアの削減を可能にする。図3は、図1の実施例の実装の略図であり、ここで、DiffieHellmanDHプロトコルが、鍵交換アルゴリズムKEAとして適用される。説明において、DH以外の部分は、明瞭にするために無視される。DHプロトコルは、デバイス1の安全な部分S及びスマートカードSCの中で、すなわち完全に安全なドメインにおいて、完全に遂行される。デバイス1の側で、ノンスnoncexは、スマートカードSCとデバイス1との間で有効な交信を確立した後で、真の乱数発生器によって、安全な部分Sにおいて生成される。更に、DiffieHellmanパラメータgが、大きな素数として設定されると共に、公開鍵gxが獲得される。公開鍵gxは、恐らくはデバイス1の秘密鍵によって署名されて、スマートカードSCに送信される。スマートカードSCの側で、ノンスnonceyは、デバイス1との間で有効な交信を確立した後で、真の乱数発生器によって生成される。事前に個別化されたDiffieHelmanパラメータgが適用されると共に、公開鍵gyは、恐らくはスマートカードSCの秘密鍵によって署名されて、デバイス1の安全な部分Sに送信される。そして、両方の側において、値gxyまたはgyxが計算されると共に、鍵導出関数KDFが信頼鍵CSTKを獲得するために適用される。デバイス1の側で、信頼鍵は、安全な部分Sに保存される。スマートカードSCとデバイス1との間のデータ転送は、ここから信頼鍵CSTKに従って暗号化され得る。さらにまた、図1を参照して説明されたように、追加的な鍵CSSKが、データ交換を保護するために獲得され得る。スマートカードSCは、CSSKを生成するための鍵生成器3を備える。追加的な鍵CSSKは、暗号化アルゴリズムC及び信頼鍵CSTKを使用してスマートカードにおいて暗号化されたCSSKを含むメッセージを送信することによって、そして、CSSKを獲得するために、メモリ2が提供するCSTKを使用して、メッセージを復号化することによって、安全な部分Sに伝達され得る。図2を参照して上記で示されたように、安全でない部分NSに変換ドメインを定義することによって、安全でない部分NSにおいて鍵交換アルゴリズムKEAを遂行する一方、信頼鍵CSTKは、同様に、デバイス1の安全な部分Sにおいて安全に獲得されて保存され得る。変換されたドメイン、及び変換関数の概念は、図4を参照して例証される。データ及びソフトウェア難読化obfuscation技術は、中間結果を分かりにくくするために、変換関数を利用する。変換関数の概念は、暗号化と異なり、それは、概して図4を参照して明瞭にされる。変換されないデータ空間に複数のデータ要素を備える入力ドメインIDが存在すると仮定する。ある鍵を使用する暗号化関数Eが定義され、それは、出力ドメインODにおける対応する暗号化されたデータ要素を供給するために、入力ドメインIDのデータ要素を入力として受け入れるように構成される。復号化関数Dを適用することによって、入力ドメインIDのオリジナルのデータ要素は、復号化関数Dを出力ドメインODのデータ要素に適用することにより、獲得され得る。安全でない環境において、敵対者は、実装に埋め込まれた鍵のような機密情報を発見するために、入力及び出力データ要素、及び暗号化関数Eの実装の操作を制御することができるとみなされる。追加の安全性は、変換関数を、入力ドメインID及び出力ドメインODに適用することによって、そのような安全でない環境において獲得され得ると共に、すなわち、変換関数は、入力操作及び出力操作である。変換関数T1は、入力ドメインIDが提供するデータ要素を、変換されたデータ空間の変換された入力ドメインID’の変換されたデータ要素に割り当てるmap。同様に、変換関数T2は、出力ドメインODが提供するデータ要素を、変換された出力ドメインOD’に割り当てるmap。変換された暗号化関数E’、及び変換された復号化関数D’は、ここから、変換された鍵を使用して、ID’とOD’との間で、定義され得る。T1及びT2は、全単射である。暗号化技術と共に変換関数T1、T2を使用することは、出力ドメインODの暗号化されたデータ要素、ドメインID’の変換されたデータ要素を獲得するために、入力ドメインIDのデータ要素を暗号化関数Eに入力する代りに、それらが変換関数T1を適用することによって変換された暗号化関数E’に入力されることを意味する。変換された暗号化関数E’は、鍵のような機密情報を保護するために、暗号化操作において、逆変換関数T1-1及び/またはT2-1を結合する。そして、ドメインOD’の変換された暗号化されたデータ要素が獲得される。安全な部分においてT1及び/またはT2を実行することによって、変換されたデータ空間の入力データ及び出力データを分析する場合、またはE’及び/またはD’のホワイトボックスの実装を分析する場合に、暗号化関数Eのための鍵、または復号化関数Dのための鍵は、どちらも取り出されることができない。変換関数T1、T2の内の1つは、非自明な関数であるべきである。T1が非自明な関数である場合、入力ドメインIDとID’は、同じドメインである。T2が非自明な関数である場合、出力ドメインは、同じドメインである。ホワイトボックス暗号作成法において、変換されたデータ空間における処理は、敵対者の完全な管理下にあると仮定されている。この仮定の下では、敵対者は、ID’、OD’におけるデータ要素、及び関数E’及び/またはD’のホワイトボックスの実装に対してアクセスすることができる。ホワイトボックス暗号作成法は、関数E及びDのための鍵の一部分を保護することによって安全性を提供する。スマートカードとデバイス1の安全な部分Sの内の少なくとも1つにおいて変換関数T1及びT2を適用することによって、以前に示されたルックアップテーブルLnは、これがT1及び/またはT2の知識を必要とするので、変換された空間において解決するresolveことができない。DH鍵交換アルゴリズムを使用するそのような実施例の実装が、図5において概略的に例証される。デバイス1において、公開鍵gxは、恐らくはデバイス1の秘密鍵によって署名されて、スマートカードSCに提供される。公開鍵gxは、スマートカードSCにおいて受け取られる。スマートカードSCにおいて、乱数y及び公開鍵gyが生成される。スマートカードが提供する公開鍵gyは、gxyを獲得すると共に、鍵導出関数KDFを適用した後で信頼鍵CSTKを得るために、受け取られた公開鍵gxと共に、スマートカードの中で使用され得る。図3の実施例と対照的に、公開鍵gyは、直接デバイス1に送信されないが、しかし、図4を参照して以前に説明されたように、最初にスマートカードSCにおいて、変換関数T1を使用して変換される。そして、変換されたgy’は、デバイス1に送信されると共に、それは、デバイス1の安全でない部分NSの変換された空間において受け取られる。DHが変換された秘密x’、及び安全な部分の固有鍵CSUKの変換されたバージョンCSUK’は、デバイス1の安全でない部分NSの変換された空間に組み込まれる。変換された空間においてDiffieHellmanアルゴリズムを適用すると、変換された秘密x’を使用して、変換された信頼鍵CSTK’が獲得される。CSTK’は、変換関数T2、及び変換された鍵CSUKを使用するAESのホワイトボックスの実装の両方を使用して、保護された形式で、デバイス1の安全な部分Sに転送される。そこで、CSTKは、変換関数T2、及び安全な部分Sの固有鍵CSUKの制御下にある復号化処理AESによって獲得される。CSTKは、安全な部分Sのメモリ2に保存され得る。鍵CSUK’に従うホワイトボックス暗号化が、デバイス1の安全でない部分NSから安全な部分Sまでの転送に関する信頼鍵の保護を保証するので、変換関数T2が必ずしも適用されているとは限らないか、あるいは変換関数T2が図5の実施例における非自明な関数であり得る、ということに注意が必要である。言うまでもなく、ホワイトボックス暗号化は、同様に、変換関数T2の適用を支持して省略され得る。最終的に、図6は、スマートカードSCからデバイス1に転送されるべきデータが、安全でない部分NSに暗号化されない形式で開示されることなく、デバイス1の安全な部分Sに直接転送され得る略図を提供する。制御語は、そういうものとして知られている方法でスマートカードSCの中で獲得される。信頼鍵CSTKが確定されたということ、及び上記で説明されたような方法で追加的な鍵CSSKがデバイス1とスマートカードSCとの間で同意されたということを仮定すると、制御語CWは、スマートカードSCにおいて追加的な鍵CSSKに従ってここから暗号化され、デバイス1に暗号化された形式で送信され、暗号化された形式で安全でない部分NSを通過して、そして、第1の復号化器D1を使用して安全部分Sにおいて復号化され得ると共に、それによって制御語CWが獲得される。制御語CWは、そういうものとして知られている方法で暗号化されたコンテントを復号化するために、制御語CWに従って暗号化されたコンテントを受け取ると共に、復号化されたコンテントをレンダリングデバイスに向けて送信する、第2の復号化器D2、例えば安全な暗号プロセッサに供給される。更に変換と暗号化との間の差異を例証するために、代表的な変換関数が、図7A~7B及び図8A~図8Eで示される。鍵交換プロトコルにおける暗号化/復号化のような他の操作がデバイスの安全でない部分/環境において実行され得るように、前記代表的な変換関数は、安全な部分S、及び/またはスマートカードにおけるハードウェアアンカーhardwareanchorとして使用され得る。安全なハードウェアに少なくとも一部分関連付けられた変換の使用は、それが、ホワイトボックス暗号作成法がデータの妥当な安全性をまだ提供する一方で、現存する安全なハードウェアに対する修正の量を減少させるので、有利であり得る。図7Aで示された関数Fは、IN及びOUTで識別された2つの異なる変換空間を横断してデータZを移動させる数学操作である。出力変換空間OUTの次元は、少なくとも、入力変換空間INと同じくらい大きいと共に、あらゆるデータZは、恐らく一意的でなく入力変換空間及び出力変換空間の両方において、それぞれX及びYとして表される。関数Fは、逆方向に実行することが難しいように設計される。入力変換空間と出力変換空間との間に明白な割り当てmappingが存在しないので、そして、変換空間IN及びOUTの次元が好ましくは著しく大きいので、関数Fの作り直しが防止される。更に、関数Fは、例えばホワイトボックス暗号作成法、及び/または、他の符号難読化手法を使用してデータZが関数を通過するので、データZを抽出することが難しいような方法で実装される。図7Aを参照すると、関数Fは、例えばY=FX=3×X2と定義される。もし入力変換空間INがクリアテキスト変換空間cleartexttransformspaceであるならば、その場合に、X=ZIN=Zである。移動migrationの後で、以下の結果Y=ZOUT=3×X2が獲得される。再度Zを出力変換空間からクリアテキスト変換空間に移動させるために、F-1Y=3×X2-2/3=XのとおりにXを獲得するように、逆関数F-1Y=Y-2/3が利用可能でなければならない。この例において、Z、X、及びYは、単純な加算数学及び減算数学を用いて変換するために使用され得る数である。そのZ、X、及びYは、2進値、数、文字、単語、及びその他種々の物を含むあらゆるデータフォーマットにおけるデータであり得るということが理解されるべきである。関数Fは、更に複合的な関数であり得ると共に、例えば、2進値、数、文字、または単語に適当であり得る。図7Bで示されたように、関数Fは、追加のパラメータSを供給され得る数学操作として定義され得る。関数Fが行う移動migrationは、シードSによって概して定義される。一般的に、入力空間IN及び出力空間OUTに関する情報は、Fに組み込まれない。入力データXまたはシードSの操作が出力変換空間において予測不可能な結果として生じるデータYをもたらすように、関数Fは選択される。変換空間IN及びOUTに関する情報が抽出されることができないようにシードSが設計されるので、シードSは、保護されるか、あるいは安全な環境に保存される必要がない。図7Bを参照すると、関数Fは、例えばFX、S=X-7Sとして定義される。もし入力変換空間INがクリアテキスト変換空間であるならば、その場合に、X=ZIN=Zである。移動migrationの後で、以下の結果Y=ZOUT=X-7S=Z-7Sが獲得される。もし、例えば、シードSが値5を有するデータとして提供されるならば、その場合に、FX、5=X-75、及びY=ZOUT=X-75=Z-2である。再度Zを出力変換空間からクリアテキスト変換空間に移動させるために、F-1Y、S=X-757-SのとおりにXを獲得するように、逆関数F-1Y,S=Y7-Sが利用可能でなければならない。もしシードS=5が知られているならば、その場合に、Zが、F-1Y、5=X-757-5=X=Zとして、正しく獲得され得る。もし入力変換空間INがクリアテキスト変換空間でないならば、その場合に、関数Fは、一般的に、最初に、入力変換空間INにおいて逆関数を実行し、次に、出力変換空間OUTにおいて変換を実行する。そのような関数Fは、例えば、FX、S1、S2=F2F1-1X、S1、S2として定義され、ここで、F1-1X、S1=X-2-S1及びF2X、S2=X-7S2である。移動migrationの後で、従って、以下の結果Y=ZOUT=X-2-S1-7S2=X-9-S1S2が獲得されると共に、ここで、X=ZINである。シードS1及びS2は、最初にF1-1X、S1を実行し、次にF2X、S2を実行するために、2つの個別のシードとして提供され得るか、または、より好ましくはシード<S1、S2>の合成物として提供され得る。一般的に、シードの合成物は、複数のシードの混合物である。複数のシードの混合物から、個別のシードは導き出せない。シードS1及びS2を混合するためのパラメータ混合関数がfS1、S2=<S1、S2>として示される。関数結果<S1、S2>は、シードS1及びS2の合成物と呼ばれる。上述の例において、もしS1=5、及びS2=7であるならば、その場合に、1つの合成物は、<S1、S2>=5-7=-2である。上述の例において、Z、X、Y、及びSは、単純な加算数学及び減算数学を用いて変換するために使用され得る数である。そのZ、X、Y、及びSは、2進値、数、文字、単語、及びその他種々の物を含むあらゆるデータフォーマットにおけるデータであり得るということが理解されることになる。関数Fは、更に複合的な関数であり得ると共に、例えば、2進値、数、文字、または単語に適当であり得る。難読化技術は、一般的に、データまたはソフトウェアコードの変換を不明瞭にするために、基本の原始関数、またはそれらの組み合わせを使用する。基本の原始関数の例は、apply原始関数、remove原始関数、condition原始関数である。図8A、図8B、及び図8Cは、それぞれ、apply原始関数A、remove原始関数R、及びcondition原始関数Cのブロック図を示す。図8Aにおいて、関数AData、S=ASData=DataTSは、入力Dataを入力シードSを使用して変換されたDataTSに変換するapply原始関数を定義する。図8Bにおいて、関数RDataTS、S=RSDataTS=Dataは、出力Dataを獲得するためにシードSを使用して入力DataTSの変換を逆転させるremove原始関数を定義する。2つの関数A及びRが相互に逆になるように、シードSは同じである必要がある。オリジナルのData、及びその変換された変異形DataTSは、一般的に、同じサイズであり、すなわち同じ数のビットで表され、それは、そのサイズに基づいて、Dataが特別な変換空間にあるか否かを判定することを不可能にする。図8Cにおいて、関数CData1、Data2=CData1Data2=DataCは、出力DataCが2つの入力Data1及びData2の相関である、条件付の変換を定義する。condition原始関数は、一般的に、入力データ及び出力データのサイズを維持すると共に、それは、Dataが相関の結果であるかどうかを判定することを不可能にする。apply原始関数、remove原始関数、及びcondition原始関数のような原始関数は、結合され得る。その結合は、個々の原始関数が目に見えない新しい操作を生み出す。図8Dは、remove原始関数とapply原始関数の結合の例を示す。変換操作は、入力DataTPに適用される結合されたremove及びapply操作に対する入力として、合成物<P、S>を使用する。RPAS関数は、出力DataTSを獲得するために、入力変換領域Pが提供する入力DataTPを出力変換領域Sに割り当てる。結合されたremove及びapply操作の全ての入力及び出力は、変換されるか、または合成物の形式のいずれかである。その操作は、変換されたデータに適用されると共に、変換されたデータを生成する。従って、変換操作は、変換された領域空間において実行されると共に、どのインタフェース上でも、個々のパラメータまたは変換されないデータを明らかにしない。合成物<P、S>を生成するために使用される関数は、好ましくは、固有であると共に、結合されたremove及びapply操作の実装に連結される。図8Eは、2つの入力合成物<P、S、Q1>及び<DataTP、Q2>に対する安全な相関操作の例を示す。RPCQAS関数は、remove原始関数、condition原始関数、及びapply原始関数を結合し、それによって出力DataCTSを生成する。本発明の一実施例は、コンピュータシステムによって使用するのためのプログラム製品として実施され得る。プログラム製品の複数のプログラムは、ここで説明した方法を含む実施例の関数を定義すると共に、様々なコンピュータ読み取り可能な記憶媒体に含まれ得る。実例となるコンピュータ読み取り可能な記憶媒体は、i情報が永久に保存される書き込み不可能な記憶媒体例えば、CD-ROMドライブによって読み取り可能なCD-ROMディスク、ROMチップまたはあらゆるタイプのソリッドステートの不揮発性半導体メモリのような、コンピュータの中の読み出し専用メモリデバイス、及びii変更できる情報が保存される書き込み可能な記憶媒体例えば、ディスケットドライブ内のフロッピー登録商標ディスク、またはハードディスクドライブ、またはあらゆるタイプのソリッドステートのランダムアクセス半導体メモリ、フラッシュメモリを含むが、しかしこれらに限定されない。"