(57)【要約】      （修正有）【課題】スマートカードとの間で信頼鍵に従った暗号化データの転送が可能なデバイス及び方法を提供する。【解決手段】デバイス１は、少なくとも１つの安全な部分Ｓを備え、デバイス１とスマートカードＳＣとの間の暗号化データの転送用の信頼鍵ＣＳＴＫを確定するために、スマートカードＳＣと鍵交換アルゴリズムを遂行するように構成される。さらにデバイス１は、信頼鍵ＣＳＴＫをデバイス１の安全な部分Ｓに追加的な鍵ＣＳＳＫとして保存するように構成される。【選択図】図３
2011172230.tif 000002
【特許請求の範囲】
【請求項１】
信頼鍵に従ったスマートカードとの暗号化データの転送用に構成された電子デバイスであって、
前記デバイスが、少なくとも１つの安全な部分を備え、
前記デバイスが、前記デバイスと前記スマートカードとの間の暗号化データの転送用の信頼鍵を確定するために、スマートカードと鍵交換アルゴリズムを遂行するように構成されると共に、
前記デバイスが、前記信頼鍵を前記デバイスの前記安全な部分に保存するように構成される
ことを特徴とする電子デバイス。
【請求項２】
前記安全な部分が、前記デバイスにおいて、前記鍵交換アルゴリズムの少なくとも一部分を遂行するように構成される
ことを特徴とする請求項１に記載の電子デバイス。
【請求項３】
前記デバイスが、少なくとも１つの安全でない部分を備え、
前記安全でない部分が、前記デバイスにおいて、前記鍵交換アルゴリズムを遂行するように構成され、
前記デバイスが、前記安全でない部分から前記安全な部分に、保護された信頼鍵を転送するように構成されると共に、
前記安全な部分が、前記保護された信頼鍵から、前記安全な部分に保存されるべき前記信頼鍵を抽出するように構成される
ことを特徴とする請求項１に記載の電子デバイス。
【請求項４】
前記安全でない部分が、前記鍵交換アルゴリズムを遂行するために、そしてホワイトボックス暗号作成法を使用して前記信頼鍵を保護するために、前記スマートカードから、前記鍵交換アルゴリズム用の変換された入力を受け取るように構成される
ことを特徴とする請求項３に記載の電子デバイス。
【請求項５】
前記ホワイトボックス暗号作成法が、前記安全でない部分から前記安全な部分に、変換された信頼鍵を含む変換された出力を提供するように取り決められ、
前記デバイスの前記安全でない部分が、前記変換された信頼鍵から、前記安全な部分に保存されるべき前記信頼鍵を抽出することが可能である変換関数を含む
ことを特徴とする請求項３または請求項４のいずれか一項に記載の電子デバイス。
【請求項６】
前記デバイスが、更に、前記スマートカードと追加的な鍵を同意するように構成されると共に、
前記デバイスが、
−前記安全な部分に前記信頼鍵に従って暗号化された前記追加的な鍵を受け取ると共に、前記安全な部分に前記追加的な鍵を抽出するために、前記保存された信頼鍵を使用して前記暗号化された追加的な鍵を復号化すること、及び、
−前記追加的な鍵を生成し、前記保存された信頼鍵を使用して前記追加的な鍵を暗号化すると共に、前記暗号化された追加的な鍵を前記スマートカードに送信すること
の内の少なくとも１つを実行するように構成される
ことを特徴とする請求項１から請求項５のいずれか一項に記載の電子デバイス。
【請求項７】
前記デバイスが、暗号化コンテントを受け取るコンテント受信機を備えると共に、
前記安全な部分が、
−前記安全な部分に保存された前記信頼鍵または請求項６に記載された前記追加的な鍵を使用して前記スマートカードからの前記暗号化データを復号化するように構成された第１の復号化器と、
−前記復号化されたデータを使用して前記暗号化コンテントを復号化するように構成された第２の復号化器とを備える
ことを特徴とする請求項１から請求項６のいずれか一項に記載の電子デバイス。
【請求項８】
デバイスとスマートカードとの間で信頼鍵を確定するための方法であって、
前記デバイスが、安全な部分を備え、
前記方法が、
−前記デバイスと前記スマートカードとにおいて前記信頼鍵を取得するために、前記デバイスと前記スマートカードとの間で鍵交換アルゴリズムを遂行するステップと、
−前記信頼鍵を前記デバイスの前記安全な部分に保存するステップとを含む
ことを特徴とする方法。
【請求項９】
前記デバイスの前記安全な部分において、前記デバイスに関する前記鍵交換アルゴリズムを遂行するステップを更に含む
ことを特徴とする請求項８に記載の方法。
【請求項１０】
前記デバイスが、安全でない部分を備え、
前記方法が、
−前記信頼鍵を取得するために、前記デバイスの前記安全でない部分において、前記デバイスに関する前記鍵交換アルゴリズムを遂行するステップと、
−前記安全でない部分から前記安全な部分に、保護された形式で、前記信頼鍵を転送するステップとを含む
ことを特徴とする請求項８に記載の方法。
【請求項１１】
−前記スマートカードから、前記安全でない部分に、前記鍵交換アルゴリズム用の変換された入力を受け取るステップと、
−ホワイトボックス暗号作成法を使用して前記信頼鍵を保護するステップと
を更に含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
−前記安全でない部分から前記安全な部分に、変換された信頼鍵を含む変換された出力を提供するステップと、
−前記安全な部分に保存されるべき前記信頼鍵を抽出するために、前記デバイスの前記安全な部分において、変換関数を適用するステップと
を更に含むことを特徴とする請求項１０または請求項１１のいずれか一項に記載の方法。
【請求項１３】
−前記信頼鍵に従って暗号化されたデータを前記デバイスの前記安全な部分に転送するステップと、
−前記保存された信頼鍵を使用して前記デバイスの前記安全な部分におけるデータを復号化するステップと
を更に含むことを特徴とする請求項８から請求項１２のいずれか一項に記載の方法。
【請求項１４】
−前記スマートカードまたは前記デバイスにおいて追加的な鍵を生成するステップと、
−前記信頼鍵に従って暗号化された前記追加的な鍵を前記デバイスまたは前記スマートカードに転送するステップと、
−前記追加的な鍵に従って暗号化されたデータを前記スマートカードと前記デバイスとの間で転送するステップと
を更に含むことを特徴とする請求項１３に記載の方法。
【請求項１５】
請求項１から請求項７のいずれか一項に記載された前記電子デバイスと組み合わせて使用するための、あるいは、請求項８から請求項１４のいずれか一項に記載された方法において使用するためのスマートカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイスとスマートカードとの間のデータ転送を保証するための安全な信頼鍵の確定に関係する。更に具体的には、本発明は、鍵交換アルゴリズムを使用した安全なデータ転送のための、デバイス及びスマートカードにおける安全な信頼鍵の確定に関係する。
【背景技術】
【０００２】
デジタルビデオ放送（digital video broadcast：ＤＶＢ）伝送のための限定受信システム(CAS: Conditional Access System)は、良く知られており、そして、有料テレビサービスと共に広く使用される。そのようなシステムは、例えば放送サービスを支援するセットトップボックスまたは携帯端末に含まれるデジタル受信機に対する１つ以上のサービスを含む放送ストリームの安全な伝送を提供する。許可されていない視聴から放送サービスを保護するために、データパケットは、一般的に制御語と言われる暗号化鍵によって送信器側でスクランブル化（暗号化）される。更なる安全性は、制御語を定期的に変更することによって提供されると共に、従って、それらはある期間の間だけ有効である。一般的に、制御語は、いわゆる資格制御メッセージ（entitlement control message：ＥＣＭ）を使用して、受信機に暗号化された形式で送信される。
【０００３】
受信機において、ＥＣＭは、トランスポートストリームからフィルタ処理されて取り出されると共に、安全なコンピュータ環境、例えばスマートカードに送信される。スマートカードは、その後に、その鍵と関連付けられたテレビチャンネルを受信する権限を与えられた全てのスマートカードに共通である更に高水準の鍵を使用して、ＥＣＭを復号化する。制御語は、受信機に返されると共に、受信機は、データをデスクランブル化するために、制御語をデスクランブラに即座に読み込む。
【０００４】
スマートカードから受信機に対する制御語の伝送は、スマートカードと受信機との間のインタフェースにおける制御語の傍受に弱い。制御語の盗用（piracy）は、デジタルビデオ放送（ＤＶＢ）システムにおける有意の問題である。時折、攻撃者は、スマートカードから受信機に送信される制御語ＣＷを傍受することができると共に、ローカルなワイヤレスネットワークを介して、もしくはインターネットを介して、それを再分配することができる。再分配された制御語は、その場合に、スクランブル化されたサービスを正当なスマートカードなしでデスクランブル化するために使用される。制御語の盗用を困難にするために、スマートカード及び受信機が、スマートカードと受信機との間のインタフェースにおける制御語のストリームを暗号化するために、チップセットセッション鍵（chip set session key）ＣＳＳＫを使用することが知られている。
【０００５】
一般に、スマートカードは、固有のシリアル番号及び固有の鍵を事前にセットアップされていると共に、受信機のチップセットは、チップセットシリアル番号（chip set serial number）ＣＳＳＮを同様に事前にセットアップされている。更に、チップセット固有鍵（chip set unique key）ＣＳＵＫは、受信機の安全な部分に保存されると共に、ＣＳＳＮ及びＣＳＵＫは、関連付けられている。ＣＳＳＮ及びＣＳＵＫは、受信機にセットアップされた後で変更されることができない。鍵ＣＳＵＫは、スマートカードに保存されない。
【０００６】
スマートカードと受信機との間のデータ転送のためのセッション鍵ＣＳＳＫの確定は、ある程度問題が多い。顧客がスマートカードと受信機の組み合わせを利用し得る前に、彼または彼女は、団体（party）に連絡し、そして、この団体に、スマートカードのシリアル番号、及びチップセットのシリアル番号に関して、情報を提供しなければならない。この情報は、連絡された団体が、スマートカードの固有鍵に従って暗号化されると共に、鍵ＣＳＳＫ、及びチップセット固有鍵ＣＳＵＫに従って暗号化された鍵ＣＳＳＫを含むメッセージ（一般的に資格管理メッセージＥＭＭ）の伝送を開始することを可能にする。暗号化されたメッセージを受け取るスマートカードは、スマートカードの固有鍵を使用してメッセージを復号化し、従って鍵ＣＳＳＫを所有する。スマートカードは、更に、ＣＳＳＫが同様に受信機で利用可能であるように、受信機の安全な部分にＣＳＵＫに従って暗号化された鍵ＣＳＳＫを読み込み、鍵ＣＳＳＫは、ＣＳＵＫを使用して復号化される。その後に、制御語は、スマートカードから受信機に、インタフェースを介して転送され得ると共に、その場合に、制御語は、スマートカードにおいて暗号化され、受信機の安全な部分において、獲得された鍵ＣＳＳＫに従って復号化される。
【０００７】
国際公開第９７／３８５３０号明細書は、任意の鍵Ｃｉ及び乱数Ａを生成すると共に、第１のデバイスの公開鍵を使用して暗号化された第１のメッセージでＣｉ及びＡを第２のデバイスに転送するデバイスを説明する。第２のデバイスは、Ｃｉ及びＡを獲得するために、対応する秘密鍵によって第１の暗号化されたメッセージを復号化する。第２のデバイスは、第２のメッセージを第１のデバイスに転送すると共に、第２のメッセージは、暗号化鍵として使用される、Ｃｉに従って暗号化されたＡである。第１のデバイスは、生成されたＣｉを使用して第２の暗号化されたメッセージを復号化すると共に、Ａが正しいかどうかを検証する。
【０００８】
国際公開第０３／０７９６８７号明細書は、中央処理装置ＣＰＵ、及びハードウェア部分ＨＷを含む安全なデータ処理システムを説明する。ハードウェア部分ＨＷは、前記専用のハードウェア部分ＨＷが操作するデータ項目が、前記ハードウェア部分ＨＷの外側を循環しないような方法で実施され得る。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】国際公開第９７／３８５３０号明細書
【特許文献２】国際公開第０３／０７９６８７号明細書
【非特許文献】
【００１０】
【非特許文献１】“Bruce Schneier”、“Applied Cryptography, ISBN0-471-12845-7”
【非特許文献２】“Stanley Chow”、“Philip Eisen”、“Harold Johnson”、“Paul C. Van Oorschot”、“White-Box Cryptography and an AES Implementation”、Selected Areas in Cryptography: 9th Annual International Workshop、SAC 2002、St. John's、Newfoundland、Canada、Aug. 15-16, 2002
【非特許文献３】“Stanley Chow”、“Phil Eisen”、“Harold Johnson”、“Paul C. van Oorschot”、“A White-Box DES Implementation for DRM Applications”、Digital Rights Management: ACM CCS-9 Workshop、DRM 2002、Washington, D.C.、USA、Nov. 18, 2002
【発明の概要】
【発明が解決しようとする課題】
【００１１】
従来技術では、あまり複雑でない方法で達成され得る、デバイスとスマートカードとの間の安全なデータ転送に関する必要性がある。既知の鍵交換アルゴリズム（例えば、“Diffie-Hellman”プロトコル）は、信用された団体に頼らずに、２つのデバイスにおける鍵の確定を可能にする。一般的に、電子デバイスまたはスマートカードにおける安全性は、読み取り−書き込み証明書であると共に、不正開封防止装置が付いている（更に、“安全なモジュール（secured module）”、“安全なチップ（secured chip）”、“安全な部分（secured portion）”、“安全なハードウェアデバイス（secure hardware device）”とも呼ばれる）特別なハードウェア集積回路（例えば、シングルチップ）によって提供される。鍵交換アルゴリズムにおいて鍵を保護する１つのオプションは、安全なチップの特徴セットを拡張すると共に、鍵が電子デバイスとスマートカードとの間で安全に転送されることを保証するために、暗号化／復号化の機能性を実装することである。しかしながら、安全なハードウェアデバイスに、追加の暗号化／復号化の機能性、または洗練されたアルゴリズムを提供することは、集積回路に対する有意の修正を必要とする。ハードウェアにそれらの機能性または洗練されたアルゴリズムを与えることは、それがソフトウェアによって容易に更新されることができないので、システムの柔軟性を減少させる。例えば、ハードウェアにおける暗号化／復号化の実装は、大幅に、チップの複雑さ、チップの大きさ、チップの処理負荷、ハードウェア設計／実装コスト、またはチップの市場への遅延時間等を増大させるであろう。ある場合において、安全なハードウェアにおいて追加の安全対策を実行することは、商業的に絶対に実行可能ではないかもしれない。
【課題を解決するための手段】
【００１２】
信頼鍵に従ったスマートカードとの暗号化データの転送用に構成された、セットトップボックスの受信機または携帯機器のような電子デバイスが開示される。電子デバイスは、少なくとも１つの安全な部分を備える。信頼鍵は、少なくとも２つ以上の団体に対する鍵の個別の実現値として確定された鍵のことを指すと共に、少なくとも２つ以上の団体は、鍵の個別のコピーが一致すると仮定する。２つの団体間の鍵の一致の仮定は、２つの団体の間の正しい動作／通信にとって必要である。例えば、信頼鍵は、２つの団体の間で送信される他のコンテント（content：内容）を暗号化して復号化するために、２つの団体の間で共有された秘密として使用され得る。ここで使用されるように、安全な部分は、安全な部分の外側からのデータの読み取り／書き込み操作を用いたアクセスを許可しないと共に、暗号化された形式による、受信機の安全でない部分とのデータ転送だけを許可するハードウェア要素を含むデバイスの専用部分である。安全な部分の例は、安全な暗号化エンジンである。安全な部分に実装された関数は、更に、一般的にハードウェア要素として実施される。
【００１３】
スマートカードは、一般的に、操作の前に受信機に対して手動で挿入される、あるいは挿入され得る個別のカードである。しかしながら、スマートカードは、更に、電子デバイスに統合された部分であり得る。いくらかの実施例において、そのスマートカードは、スマートカードの外側からのデータの読み取り／書き込み操作を用いたアクセスを防止すると共に、暗号化された形式による、受信機の安全でない部分とのデータ転送だけを許可する安全な集積回路またはハードウェア要素を含む。
【００１４】
電子デバイスは、デバイスとスマートカードとの間の暗号化データの転送用の信用鍵を確定するために、スマートカードと鍵交換アルゴリズムを遂行するように構成される。デバイスは、確定された信頼鍵をデバイスの安全な部分に保存するように構成される。
【００１５】
そのような安全な部分を備えるデバイスとスマートカードとの間で信頼鍵を確定するための方法が、同様に開示される。その方法は、デバイスとスマートカードとにおいて信頼鍵を取得するために、デバイスとスマートカードとの間で鍵交換アルゴリズムを遂行するステップと、信頼鍵をデバイスの安全な部分に保存するステップとを含む。データは、それから、スマートカードにおいて信頼鍵に従って暗号化され、デバイスの安全な部分に直接転送され得ると共に、それは、安全な部分に保存された信頼鍵を使用して復号化され得る。
【００１６】
鍵交換アルゴリズムの機能性、例えば電子デバイス及びスマートカードに実装された“Diffie-Hellman”プロトコルは、スマートカードと電子デバイスが、一度スマートカード及び電子デバイスが有効な交信状態になったならば、別の団体に連絡する必要性なく、局所的に信頼鍵について同意することを可能にする。信頼鍵は、信頼鍵に従った暗号化によるスマートカードと受信機との間のデータ（例えば、制御語）の安全な転送のために使用され得る。デバイスの安全な部分に信頼鍵を保存することによって、スマートカードからのデータは、デバイスの安全でない部分に暗号化されない形式で開示されることなく、信頼鍵に従って暗号化されて、スマートカードから電子デバイスの安全な部分に直接転送され得る。デバイスの安全な部分へのアクセスが実質的に不可能であるので、信頼鍵は、デバイスから獲得できないと共に、制御語のようなデータは、信頼鍵に従って、この安全な部分に安全に転送され得る。
【００１７】
鍵交換アルゴリズムは、“Bruce Schneier”による著書、“Applied Cryptography, ISBN0-471-12845-7”において説明される。鍵交換アルゴリズムのステップは、スマートカードと電子デバイスとの間の証明書検証ステップによって先行され得るか、スマートカードと電子デバイスとの間の証明書検証ステップと結合され得る、ということが認識されるべきである。一例として、“Diffie-Helman”の公開鍵は、証明書検証ステップと組み合わせて、スマートカードと安全なデバイスとの間で交換され得る。
【００１８】
本発明の実施例において、デバイスの安全な部分は、鍵交換アルゴリズムの少なくとも一部分を遂行するように構成される。この実施例は、信頼鍵が安全な部分の中に獲得されると、鍵交換アルゴリズムの実行に起因する安全な部分における信頼鍵の保存が、更なる手段なしに実行され得るという利点を有する。鍵交換アルゴリズムの操作は、ハードウェア要素を用いて実施される。
【００１９】
本発明の実施例において、デバイスは、少なくとも１つの安全でない部分を備える。安全でない部分は、例えば、外部の読み取り／書き込み操作を可能にするデバイスのファームウェアを含む。
【００２０】
安全でない部分は、更に、プロセッサにソフトウェアを読み込むことによってオンチップメモリに対する読み取り／書き込み操作を可能にする、オンチップメモリを有するプロセッサを備える。
【００２１】
安全でない部分は、ソフトウェアモジュールにおいてデバイスのための鍵交換アルゴリズム部分を実行するように構成される。この実施例は、安全な部分が鍵交換アルゴリズム操作を実行するための専用のハードウェア要素と共に構成されないという利点を有する。結果として生じる信頼鍵の安全な保存を可能にするために、安全でない部分は、信頼鍵を保護することを可能にするように構成されると共に、安全な部分は、保護された信頼鍵から安全な部分に保存されるべき信頼鍵を抽出する（逆変換する、復号化する）ことを可能にするように構成される。
【００２２】
デバイスの安全でない部分から安全な部分に対する信頼鍵の転送を保証することの例は、ホワイトボックス暗号作成法の使用である。ホワイトボックス暗号作成法は、“Stanley Chow”、“Philip Eisen”、“Harold Johnson”、及び“Paul C. Van Oorschot”による“Selected Areas in Cryptography: 9th Annual International Workshop、SAC 2002、St. John's、Newfoundland、Canada、Aug. 15-16、2002”における“White-Box Cryptography and an AES Implementation”、及び、“Stanley Chow”、“Phil Eisen、“Harold Johnson”、及び“Paul C. van Oorschot”による“Digital Rights Management: ACM CCS-9 Workshop、DRM 2002、Washington, D.C.、USA, Nov. 18、2002”における“A White-Box DES Implementation for DRM Applications”に説明されており、それらは、その全体の参照によって、本願に組み込まれる。ホワイトボックス暗号作成法についての基礎的なアイデアは、ルックアップテーブルＬｎにおいて、鍵またはその一部分を不明瞭にすることによって、鍵またはその一部分を隠すことである。一連の検索操作は、ホワイトボックス実装モジュールの機能を実施する。
【００２３】
実施例において、本願において開示された信頼鍵は、この技術によって保護され得る。ホワイトボックス暗号は、一般的に変換関数、すなわち全単射関数の使用を含む。数学的形式において、復号化関数Ｄは、
【数１】
2011172230.tif 000003
として書かれ得ると共に、ここで、Ｌｎはテーブル索引操作である。これを任意の入力変換関数Ｆ、及び出力変換関数Ｇと結合することによって、関数
【数２】
2011172230.tif 000004
が実装され得る。実施例において、デバイスの安全でない部分に対する入力情報は、スマートカードによって局所的に変換されると共に、それによって、ヘッドエンドから変換された入力情報を受け取る必要性を取り除く。変換された入力は、ホワイトボックス暗号作成法を遂行するために、デバイスの安全でない部分に送信される。これは、安全なハードウェアに対する修正を減少させるために、デバイスの安全でない部分に対するある機能性を除去するのに有利であり得る。
【００２４】
本発明の実施例において、ホワイトボックス暗号操作の出力は、変換された出力であると共に、出力を逆変換するための関数が、デバイスの安全な部分に実装される。すなわち、ホワイトボックス暗号化操作がデバイス及びスマートカードの安全な部分まで拡張されると共に、それによってデバイスの安全でない部分から信頼鍵を抽出することを複雑にする。ハードウェアに実装された最終の変換は、ハードウェアアンカー（hardware anchor：ハードウェアの最強の部分）を構成する。鍵交換アルゴリズム操作が、完全にデバイスの安全でない部分において実行され得る（安全な部分におけるハードウェア要素及び／または修正の量を減少させる）一方、変換された信頼鍵出力のみが、安全な部分に保存されるべき信頼鍵の抽出（逆変換）のための最終の変換関数を含む安全な部分に対して、意味を有している。ホワイトボックス暗号作成法の段階は、異なる最終変換のための逆変換を有する別の受信機においては役に立たない。
【００２５】
スマートカードとデバイスとの間のデータ転送が保護される鍵を、時々交換することが望まれ得る。例えば、デバイス／受信機がリブートされるか、もしくはスマートカードがデバイスから抜き出される場合に、鍵の交換が行使され得る。更に、ヘッドエンドが、鍵を循環させるための命令を提供した可能性がある。制御語のようなデータがスマートカードとデバイスとの間のインタフェースを介して転送される場合に、信頼鍵がデータを保護するために使用され得るが、新しい信頼鍵の確定は、（主としてスマートカードの限られた計算資源が原因で）いくらか時間がかかる鍵交換アルゴリズムを遂行することを必要とする。従って、データが更に速やかに保護される鍵を交換することができるように、請求項５において定義された発明の実施例において、デバイス及びスマートカードは、実際のデータ転送の保護のために、追加的な鍵について同意し得る。本発明の実施例において、追加的な鍵は、スマートカード、またはデバイスの安全な部分のいずれかにおいて生成され、それは、既に確定された信頼鍵に従って暗号化されて、それぞれ、デバイス、またはスマートカードに転送され得る。追加的な鍵は、局所的に、すなわちヘッドエンドの側ではなく、デバイスまたはスマートカードの側で確定されると共に、信頼鍵より更に高い速度で循環させられ得る。
【００２６】
上記で言及されたように、本発明の実施例において、デバイスは、暗号化されたコンテントデータ（content data）を受け取る受信機である。受信機の安全な部分は、暗号化されたコンテントデータを復号化すると共に、復号化されたコンテントデータを、レンダリングデバイスに向けて送信するように構成される。コンテントデータの復号化は、スマートカードから受信機、更に正確に言えば受信機の安全な部分に転送された暗号化されたデータ（上記で言及された信頼鍵、または追加的な鍵に従って暗号化された制御語）の制御下で実行され、ここで、受信機の安全な部分は、暗号化データが復号化される（しかし外部からアクセス可能でない）と共に、コンテントデータの復号化に利用可能である。
【００２７】
固有鍵が安全な部分に保存されるように、電子デバイスは準備され得ると共に、電子デバイスは、固有鍵に従って暗号化された信頼鍵をヘッドエンドに送信するように構成される。デバイスの安全な部分のチップセットは、チップセット固有鍵（chip set unique key）ＣＳＵＫを備える。本発明の実施例において、固有鍵に従って暗号化された信頼鍵をヘッドエンドに送信することによって、コンテントデータがそこから受け取られるヘッドエンドは、スマートカードとデバイスとの間で確定された信頼鍵を通知され得る。背景技術の欄で言及されたように、ヘッドエンドは、一般的に、デバイスの安全な部分に保存された固有鍵にアクセスすることができ、従って信頼鍵を得ることができる。
【００２８】
以下に、本発明の実施例が、更なる詳細において示されることになる。しかしながら、これらの実施例が本発明に関する保護の範囲を制限すると解釈されることはできないということが認識されるべきである。
【図面の簡単な説明】
【００２９】
【図１】本発明の第１の実施例による方法を概略的に例証する図である。
【図２】本発明の第２の実施例による方法を概略的に例証する図である。
【図３】図１において例証された方法を実施するデバイス−スマートカードの組み合わせの略図である。
【図４】暗号化に関して変換関数の適用を例証する図である。
【図５】図２において例証された方法を実施するデバイス−スマートカードの組み合わせの略図である。
【図６】安全なデータ転送を可能にするデバイス−スマートカードの組み合わせの略図である。
【図７Ａ】数学的変換を行う関数のブロック図である。
【図７Ｂ】シードの制御下にある数学的な変換を行う関数のブロック図である。
【図８Ａ】apply原始関数のブロック図である。
【図８Ｂ】remove原始関数のブロック図である。
【図８Ｃ】condition原始関数のブロック図である。
【図８Ｄ】removeおよびapply原始関数の組み合わせのブロック図である。
【図８Ｅ】合成物の安全な相関のブロック図である。
【発明を実施するための形態】
【００３０】
図１は、そういうものとして知られている方法で有効な交信状態になり得る電子デバイス１及びスマートカードＳＣの略図を示す。例えば、電子デバイス１は、セットトップボックスまたは携帯電話のための受信機である。例えば、スマートカードＳＣは、セットトップボックス、または携帯電話のＳＩＭカードに対して挿入するための専用のスマートカードである。
【００３１】
電子デバイスの安全な部分及びスマートカードＳＣは、グレーで表示される。
【００３２】
電子デバイス１は、安全な部分Ｓ、及び安全でない部分ＮＳを備える。安全な部分Ｓは、以下の更なる詳細において示されることになる、信頼鍵ＣＳＴＫ、及びセッション鍵ＣＳＳＫのようなデータの安全な保存のために、メモリ２を備える。安全な部分Ｓは、安全な部分Ｓの外側からのデータの読み取り／書き込み操作を用いたアクセスを許可しないと共に、暗号化された形式による、受信機の安全でない部分ＮＳとのデータ転送だけを許可するハードウェア要素を含むデバイス１の専用部分である。安全な部分の例は、安全な暗号化エンジンである。安全な部分に実装された関数は、更に、一般的にハードウェア要素として実施される。スマートカードＳＣは、完全に保護されている。
【００３３】
電子デバイス１とスマートカードＳＣとが有効な交信状態になった場合、電子デバイス１は、有効な交信を検出すると共に、例えば自動的に、信号ＧＥＮが、鍵交換アルゴリズムＫＥＡを遂行するために、安全でない部分ＮＳから、スマートカードＳＣに対して、及び安全な部分Ｓに対して出力される。鍵交換アルゴリズムは、参照によって本願に組み込まれた、“Bruce Schneier”による著書、“Applied Cryptography, ISBN0-471-12845-7”において説明される。鍵交換アルゴリズムは、“Diffie-Hellman （ＤＨ）”アルゴリズム、楕円曲線（elliptic curve）DHアルゴリズム等を含む。
【００３４】
信号ＧＥＮは、証明書検証手続きと結合され得ると共に、鍵交換アルゴリズムの間の使用のためにパラメータ及び他のデータを読み込み得る。
【００３５】
鍵交換アルゴリズムの一部分は、安全な部分ＳとスマートカードＳＣとの間で信頼鍵ＣＳＴＫを確定するための公開鍵の交換を含み得る。信頼鍵ＣＳＴＫを確定するための公開鍵の交換は、更に公開−秘密鍵暗号化技術を用いて強化され得る。
【００３６】
電子デバイス１及びスマートカードＳＣにおいて実施されたＫＥＡの機能性は、一度スマートカードＳＣ及び電子デバイス１が、別の団体に連絡する必要性なく、有効な交信状態になったならば、スマートカードＳＣ及び電子デバイス１が、局所的に信頼鍵ＣＳＴＫについて、同意することを可能にする。以下の更なる詳細において説明されることになるように、信頼鍵ＣＳＴＫは、信頼鍵ＣＳＴＫに従って暗号化された制御語を安全に提供することのような、スマートカードと受信機との間の安全なデータ転送のために使用され得る。デバイス１の安全な部分Ｓに信頼鍵ＣＳＴＫを保存することによって、スマートカードＳＣからのデータは、デバイス１の安全でない部分ＮＳに暗号化されない形式で開示されることなく、信頼鍵ＣＳＴＫに従って暗号化されて、スマートカードＳＣから電子デバイス１の安全な部分Ｓに直接転送され得る。デバイス１の安全な部分Ｓに対する、及びスマートカードＳＣに対する外部からのアクセスが実質的に不可能であるので、信頼鍵ＣＳＴＫは、デバイス１から獲得できないと共に、制御語のようなデータは、信頼鍵ＣＳＴＫに従って、この安全な部分Ｓに安全に転送され得る。
【００３７】
デバイス１及びスマートカードＳＣが信頼鍵を確定したのだから、スマートカードＳＣは、データの実際の保護のために、追加的な鍵ＣＳＳＫを生成し得る。もしスマートカードＳＣが追加的な鍵ＣＳＳＫを生成するならば、図１において示されたように、信頼鍵ＣＳＴＫは、あらゆる既知の暗号化アルゴリズムＥによって追加的な鍵ＣＳＳＫを暗号化すると共に、この追加的な鍵ＣＳＳＫを、デバイス１の安全な部分Ｓに送信するために使用され得る。安全な部分Ｓにおいて、暗号化されたメッセージは、ＣＳＳＫを得るために、復号化アルゴリズム及び保存された鍵ＣＳＴＫを用いて復号化され得る。この後、データは、ＣＳＴＫと同じ保護のレベルを有する追加的な鍵ＣＳＳＫに従って転送され得る。ＣＳＳＫを確定することは、鍵交換アルゴリズムＫＥＡを使用してＣＳＴＫを確定するより速く、それによって、スマートカードＳＣとデバイス１の安全な部分Ｓとの間のデータ暗号化のための、より速やかなＣＳＳＫ鍵の循環を容易にする。追加的な鍵ＣＳＳＫは、同様に、安全な部分Ｓのメモリ２に保存される。
【００３８】
言うまでもなく、代替実施例において、追加的な鍵ＣＳＳＫは、安全な部分Ｓにおいて生成されると共に、信頼鍵ＣＳＴＫに従って暗号化されて、スマートカードＳＣに転送される。
【００３９】
図２は、鍵交換アルゴリズムがデバイス１の安全でない部分ＮＳを用いて遂行される、本発明の代替実施例の略図を提供する。それがデバイス１の安全な部分Ｓに多くのハードウェア要素を加えるか、及び／または適応させる必要性を回避し得るので、これは、有利であり得る。詳細がここで説明される暗号化／復号化のホワイトボックスの実装（ホワイトボックスの安全性を達成するように、実装は変換によって不明瞭にされる）を一部そのアルゴリズムが使用する場合に、この利点は認識される。図２の実施例において、そのデバイスは、デバイス１の安全でない部分ＮＳにおいて、変換ドメインＴＲＦを利用する。
【００４０】
スマートカードＳＣとデバイス１との間の有効な交信が確立される場合に、変換ドメインＴＲＦは、デバイス１側における鍵交換アルゴリズム部分に入力を提供するために、変換関数Ｔ０を使用してスマートカードＳＣにおいて局所的に生成された変換された入力（例えば、変換された公開鍵）を受け取る。更に、スマートカードＳＣ側で鍵交換アルゴリズムを遂行するために、情報（例えば、公開鍵）が、デバイス１からスマートカードＳＣに提供される（信号ＧＥＮ）。変換ドメインにおいて、変換された信頼鍵ＣＳＴＫ’を生成するために、ホワイトボックス暗号作成法が、変換された入力に対して適用される。変換された信頼鍵ＣＳＴＫ’は、同様に安全な部分Ｓにおいて知られている鍵ｋ’の変換されたバージョンを使用して、保護された、恐らくは暗号化された状態Ｅで、デバイス１の安全な部分Ｓに送信される。安全な部分Ｓにおいて、信頼鍵ＣＳＴＫは、復号化アルゴリズム及び鍵ｋ’の逆変換されたバージョンを使用して、ＣＳＴＫ’から抽出される。
【００４１】
さらにまた、図１の実施例に関しては、追加的な鍵ＣＳＳＫが、スマートカードＳＣとデバイス１との間の実際のデータ交換の保護のために使用され得る。
【００４２】
安全な部分Ｓ及びスマートカードにおける変換の使用は、ホワイトボックス暗号作成法技術の使用を可能にする。上述のように、ホワイトボックス暗号作成法についての基礎的なアイデアは、ルックアップテーブルＬｎにおいて鍵またはその一部分を不明瞭にすることによって、鍵またはその一部分を隠すことである。鍵依存のテーブルにおける一連の検索操作は、ホワイトボックス実装モジュールの機能を実施する。その意図は、個々のステップよりむしろ合成物を表す任意の全単射によってそのテーブルを符号化すること、及び含んでいるアプリケーション（すなわち、安全でない部分）に暗号化境界を押し広げることによって暗号化境界を拡張すること、の組み合わせによって、鍵を隠すことである。
【００４３】
ホワイトボックス暗号は、一般的に変換関数、すなわち全単射関数の使用を含む。変換関数は、１つのルックアップテーブルか、より効率的に、更に小さな全単射（ルックアップテーブル）の連結として実施され得る。いくらかの実施例において、ハードウェアにおける変換モジュールは、ハードウェアによってホワイトボックスで保護されたソフトウェアに提供された不正開封防止装置を拡張するために必要とされる最小の機能性である。
【００４４】
上述のように、数学的形式において、復号化関数Ｄは、
【数３】
2011172230.tif 000005
として書かれ得ると共に、ここで、Ｌｎはテーブル索引操作である。これを任意の入力変換関数Ｆ、及び出力変換関数Ｇと結合することによって、関数
【数４】
2011172230.tif 000006
が、符号化されたルックアップテーブルとして実装され得ると共に、それによって、復号化関数Ｄ（または、あらゆる適当な暗号化−復号化関数）の各ステップは、任意の全単射によって構成される。同じ論理が、暗号化関数に適用され得る。分解され得ると共に、任意の全単射（すなわち、変換）と混合され得る暗号化−復号化関数に関して、結果として生じるデータ変換は、標準のブラックボックス抵抗性アルゴリズム（black-box resistant algorithm）を組み込む（すなわち、そのアルゴリズムは、任意の全単射によって混合されるか、または分かりにくくされる）。標準のアルゴリズムを更に大きなデータ変換の中に組み込むことによって、オリジナルのアルゴリズムのブラックボックスの強さは、ホワイトボックスの攻撃に対する更に大きい抵抗力を提供しながら、保持される。その結果、結果として生じるデータ変換の少なくとも一部分は、安全でない環境に実装され得ると共に、それによって、更に多くの操作（例えば、テーブルの検索）を含んでいるアプリケーションに押し広げ、そして保護されたハードウェアの複雑さを制限する。
【００４５】
ホワイトボックス実装モジュールは、任意の入力変換及び出力変換を検索と混合し、それは、暗号化または復号化のような意図した操作を行う。従って、敵対者は、実際の秘密が発見され得る前に、入力変換及び出力変換のシーケンスを解析して模倣することを最初に必要とする。少なくとも、ホワイトボックスの実装の一部分は、ホワイトボックスの実装の他の部分が一般的な安全でない環境に実装され得る一方、安全な（専用の）ハードウェアに実装され得る。安全なハードウェアに実装された部分、またはいわゆる“ハードウェアアンカー”は、ソフトウェアが異なる実装を有する異なるデバイスに移動されることを阻止する。更に、主な機能性がホワイトボックスが実装されたアルゴリズムまたはプロトコルに実装されるので、ハードウェアアンカーは、専用のハードウェアの削減を可能にする。
【００４６】
図３は、図１の実施例の実装の略図であり、ここで、“Diffie-Hellman （ＤＨ）”プロトコルが、鍵交換アルゴリズムＫＥＡとして適用される。説明において、ＤＨ以外の部分は、明瞭にするために無視される。ＤＨプロトコルは、デバイス１の安全な部分Ｓ及びスマートカードＳＣの中で、すなわち完全に安全なドメインにおいて、完全に遂行される。
【００４７】
デバイス１の側で、ノンス（nonce）ｘは、スマートカードＳＣとデバイス１との間で有効な交信を確立した後で、真の乱数発生器によって、安全な部分Ｓにおいて生成される。更に、“Diffie-Hellman”パラメータｇが、大きな素数として設定されると共に、公開鍵ｇｘが獲得される。公開鍵ｇｘは、恐らくはデバイス１の秘密鍵によって署名されて、スマートカードＳＣに送信される。
【００４８】
スマートカードＳＣの側で、ノンス（nonce）ｙは、デバイス１との間で有効な交信を確立した後で、真の乱数発生器によって生成される。事前に個別化された“Diffie-Helman”パラメータｇが適用されると共に、公開鍵ｇｙは、恐らくはスマートカードＳＣの秘密鍵によって署名されて、デバイス１の安全な部分Ｓに送信される。
【００４９】
そして、両方の側において、値ｇｘｙまたはｇｙｘが計算されると共に、鍵導出関数ＫＤＦが信頼鍵ＣＳＴＫを獲得するために適用される。デバイス１の側で、信頼鍵は、安全な部分Ｓに保存される。スマートカードＳＣとデバイス１との間のデータ転送は、ここから信頼鍵ＣＳＴＫに従って暗号化され得る。
【００５０】
さらにまた、図１を参照して説明されたように、追加的な鍵ＣＳＳＫが、データ交換を保護するために獲得され得る。スマートカードＳＣは、ＣＳＳＫを生成するための鍵生成器３を備える。追加的な鍵ＣＳＳＫは、暗号化アルゴリズムＣ及び信頼鍵ＣＳＴＫを使用してスマートカードにおいて暗号化されたＣＳＳＫを含むメッセージを送信することによって、そして、ＣＳＳＫを獲得するために、メモリ２が提供するＣＳＴＫを使用して、メッセージを復号化することによって、安全な部分Ｓに伝達され得る。
【００５１】
図２を参照して上記で示されたように、安全でない部分ＮＳに変換ドメインを定義することによって、安全でない部分ＮＳにおいて鍵交換アルゴリズムＫＥＡを遂行する一方、信頼鍵ＣＳＴＫは、同様に、デバイス１の安全な部分Ｓにおいて安全に獲得されて保存され得る。
【００５２】
変換されたドメイン、及び変換関数の概念は、図４を参照して例証される。データ及びソフトウェア難読化（ｏｂｆｕｓｃａｔｉｏｎ）技術は、中間結果を分かりにくくするために、変換関数を利用する。変換関数の概念は、暗号化と異なり、それは、概して図４を参照して明瞭にされる。
【００５３】
変換されないデータ空間に複数のデータ要素を備える入力ドメインＩＤが存在すると仮定する。ある鍵を使用する暗号化関数Ｅが定義され、それは、出力ドメインＯＤにおける対応する暗号化されたデータ要素を供給するために、入力ドメインＩＤのデータ要素を入力として受け入れるように構成される。復号化関数Ｄを適用することによって、入力ドメインＩＤのオリジナルのデータ要素は、復号化関数Ｄを出力ドメインＯＤのデータ要素に適用することにより、獲得され得る。
【００５４】
安全でない環境において、敵対者は、実装に埋め込まれた（鍵のような）機密情報を発見するために、入力及び出力データ要素、及び暗号化関数Ｅの実装の操作を制御することができるとみなされる。
【００５５】
追加の安全性は、変換関数を、入力ドメインＩＤ及び出力ドメインＯＤに適用することによって、そのような安全でない環境において獲得され得ると共に、すなわち、変換関数は、入力操作及び出力操作である。変換関数Ｔ１は、入力ドメインＩＤが提供するデータ要素を、変換されたデータ空間の変換された入力ドメインＩＤ’の変換されたデータ要素に割り当てる（map）。同様に、変換関数Ｔ２は、出力ドメインＯＤが提供するデータ要素を、変換された出力ドメインＯＤ’に割り当てる（map）。変換された暗号化関数Ｅ’、及び変換された復号化関数Ｄ’は、ここから、変換された鍵を使用して、ＩＤ’とＯＤ’との間で、定義され得る。Ｔ１及びＴ２は、全単射である。
【００５６】
暗号化技術と共に変換関数Ｔ１、Ｔ２を使用することは、出力ドメインＯＤの暗号化されたデータ要素、ドメインＩＤ’の変換されたデータ要素を獲得するために、入力ドメインＩＤのデータ要素を暗号化関数Ｅに入力する代りに、それらが変換関数Ｔ１を適用することによって変換された暗号化関数Ｅ’に入力されることを意味する。変換された暗号化関数Ｅ’は、鍵のような機密情報を保護するために、暗号化操作において、逆変換関数Ｔ１−１及び／またはＴ２−１を結合する。そして、ドメインＯＤ’の変換された暗号化されたデータ要素が獲得される。安全な部分においてＴ１及び／またはＴ２を実行することによって、変換されたデータ空間の入力データ及び出力データを分析する場合、またはＥ’及び／またはＤ’のホワイトボックスの実装を分析する場合に、暗号化関数Ｅのための鍵、または復号化関数Ｄのための鍵は、どちらも取り出されることができない。
【００５７】
変換関数Ｔ１、Ｔ２の内の１つは、非自明な関数であるべきである。Ｔ１が非自明な関数である場合、入力ドメインＩＤとＩＤ’は、同じドメインである。Ｔ２が非自明な関数である場合、出力ドメインは、同じドメインである。
【００５８】
ホワイトボックス暗号作成法において、変換されたデータ空間における処理は、敵対者の完全な管理下にあると仮定されている。この仮定の下では、敵対者は、ＩＤ’、ＯＤ’におけるデータ要素、及び関数Ｅ’及び／またはＤ’のホワイトボックスの実装に対してアクセスすることができる。ホワイトボックス暗号作成法は、関数Ｅ及びＤのための鍵（の一部分）を保護することによって安全性を提供する。スマートカードとデバイス１の安全な部分Ｓの内の少なくとも１つにおいて変換関数Ｔ１及びＴ２を適用することによって、以前に示されたルックアップテーブルＬｎは、これがＴ１及び／またはＴ２の知識を必要とするので、変換された空間において解決する（resolve）ことができない。
【００５９】
ＤＨ鍵交換アルゴリズムを使用するそのような実施例の実装が、図５において概略的に例証される。
【００６０】
デバイス１において、公開鍵ｇｘは、恐らくはデバイス１の秘密鍵によって署名されて、スマートカードＳＣに提供される。公開鍵ｇｘは、スマートカードＳＣにおいて受け取られる。
【００６１】
スマートカードＳＣにおいて、乱数ｙ及び公開鍵ｇｙが生成される。スマートカードが提供する公開鍵ｇｙは、ｇｘｙを獲得すると共に、鍵導出関数ＫＤＦを適用した後で信頼鍵ＣＳＴＫを得るために、受け取られた公開鍵ｇｘと共に、スマートカードの中で使用され得る。
【００６２】
図３の実施例と対照的に、公開鍵ｇｙは、直接デバイス１に送信されないが、しかし、図４を参照して以前に説明されたように、最初にスマートカードＳＣにおいて、変換関数Ｔ１を使用して変換される。そして、変換されたｇｙ’は、デバイス１に送信されると共に、それは、デバイス１の安全でない部分ＮＳの変換された空間において受け取られる。ＤＨが変換された秘密ｘ’、及び安全な部分の固有鍵ＣＳＵＫの変換されたバージョンＣＳＵＫ’は、デバイス１の安全でない部分ＮＳの変換された空間に組み込まれる。変換された空間において“Diffie-Hellman”アルゴリズムを適用すると、変換された秘密ｘ’を使用して、変換された信頼鍵ＣＳＴＫ’が獲得される。ＣＳＴＫ’は、変換関数Ｔ２、及び変換された鍵ＣＳＵＫを使用するＡＥＳのホワイトボックスの実装の両方を使用して、保護された形式で、デバイス１の安全な部分Ｓに転送される。そこで、ＣＳＴＫは、変換関数Ｔ２、及び安全な部分Ｓの固有鍵ＣＳＵＫの制御下にある復号化処理ＡＥＳによって獲得される。ＣＳＴＫは、安全な部分Ｓのメモリ２に保存され得る。
【００６３】
鍵ＣＳＵＫ’に従うホワイトボックス暗号化が、デバイス１の安全でない部分ＮＳから安全な部分Ｓまでの転送に関する信頼鍵の保護を保証するので、変換関数Ｔ２が必ずしも適用されているとは限らないか、あるいは変換関数Ｔ２が図５の実施例における非自明な関数であり得る、ということに注意が必要である。
【００６４】
言うまでもなく、ホワイトボックス暗号化は、同様に、変換関数Ｔ２の適用を支持して省略され得る。
【００６５】
最終的に、図６は、スマートカードＳＣからデバイス１に転送されるべきデータが、安全でない部分ＮＳに暗号化されない形式で開示されることなく、デバイス１の安全な部分Ｓに直接転送され得る略図を提供する。制御語は、そういうものとして知られている方法でスマートカードＳＣの中で獲得される。信頼鍵ＣＳＴＫが確定されたということ、及び上記で説明されたような方法で追加的な鍵ＣＳＳＫがデバイス１とスマートカードＳＣとの間で同意されたということを仮定すると、制御語ＣＷは、スマートカードＳＣにおいて追加的な鍵ＣＳＳＫに従ってここから暗号化され、デバイス１に暗号化された形式で送信され、暗号化された形式で安全でない部分ＮＳを通過して、そして、第１の復号化器Ｄ１を使用して安全部分Ｓにおいて復号化され得ると共に、それによって制御語ＣＷが獲得される。
【００６６】
制御語ＣＷは、そういうものとして知られている方法で暗号化されたコンテントを復号化するために、制御語ＣＷに従って暗号化されたコンテントを受け取ると共に、復号化されたコンテントをレンダリングデバイスに向けて送信する、第２の復号化器Ｄ２、例えば安全な暗号プロセッサに供給される。
【００６７】
更に変換と暗号化との間の差異を例証するために、代表的な変換関数が、図７Ａ〜７Ｂ及び図８Ａ〜図８Ｅで示される。鍵交換プロトコルにおける暗号化／復号化のような他の操作がデバイスの安全でない部分／環境において実行され得るように、前記代表的な変換関数は、安全な部分Ｓ、及び／またはスマートカードにおけるハードウェアアンカー（hardware anchor）として使用され得る。安全なハードウェアに少なくとも一部分関連付けられた変換の使用は、それが、ホワイトボックス暗号作成法がデータの妥当な安全性をまだ提供する一方で、現存する安全なハードウェアに対する修正の量を減少させるので、有利であり得る。
【００６８】
図７Ａで示された関数Ｆは、ＩＮ及びＯＵＴで識別された２つの異なる変換空間を横断してデータＺを移動させる数学操作である。出力変換空間ＯＵＴの次元は、少なくとも、入力変換空間ＩＮと同じくらい大きいと共に、あらゆるデータＺは、（恐らく一意的でなく）入力変換空間及び出力変換空間の両方において、それぞれＸ及びＹとして表される。関数Ｆは、逆方向に実行することが難しいように設計される。入力変換空間と出力変換空間との間に明白な割り当て（mapping）が存在しないので、そして、変換空間ＩＮ及びＯＵＴの次元が好ましくは著しく大きいので、関数Ｆの作り直しが防止される。更に、関数Ｆは、例えばホワイトボックス暗号作成法、及び／または、他の符号難読化手法を使用してデータＺが関数を通過するので、データＺを抽出することが難しいような方法で実装される。
【００６９】
図７Ａを参照すると、関数Ｆは、例えば“Ｙ＝Ｆ（Ｘ）＝３×Ｘ＋２”と定義される。もし入力変換空間ＩＮがクリアテキスト変換空間（clear text transform space）であるならば、その場合に、“Ｘ＝（Ｚ）ＩＮ＝Ｚ”である。移動（migration）の後で、以下の結果“Ｙ＝（Ｚ）ＯＵＴ＝３×Ｘ＋２”が獲得される。再度Ｚを出力変換空間からクリアテキスト変換空間に移動させるために、“Ｆ−１（Ｙ）＝（３×Ｘ＋２−２）／３＝Ｘ”のとおりにＸを獲得するように、逆関数“Ｆ−１（Ｙ）＝（Ｙ−２）／３”が利用可能でなければならない。この例において、Ｚ、Ｘ、及びＹは、単純な加算数学及び減算数学を用いて変換するために使用され得る数である。そのＺ、Ｘ、及びＹは、２進値、数、文字、単語、及びその他種々の物を含むあらゆるデータフォーマットにおけるデータであり得るということが理解されるべきである。関数Ｆは、更に複合的な関数であり得ると共に、例えば、２進値、数、文字、または単語に適当であり得る。
【００７０】
図７Ｂで示されたように、関数Ｆは、追加のパラメータＳを供給され得る数学操作として定義され得る。関数Ｆが行う移動（migration）は、シードＳによって概して定義される。一般的に、入力空間ＩＮ及び出力空間ＯＵＴに関する情報は、Ｆに組み込まれない。入力データＸまたはシードＳの操作が出力変換空間において予測不可能な結果として生じるデータＹをもたらすように、関数Ｆは選択される。変換空間ＩＮ及びＯＵＴに関する情報が抽出されることができないようにシードＳが設計されるので、シードＳは、保護されるか、あるいは安全な環境に保存される必要がない。
【００７１】
図７Ｂを参照すると、関数Ｆは、例えば“Ｆ（Ｘ、Ｓ）＝Ｘ−７＋Ｓ”として定義される。もし入力変換空間ＩＮがクリアテキスト変換空間であるならば、その場合に、“Ｘ＝（Ｚ）ＩＮ＝Ｚ”である。移動（migration）の後で、以下の結果“Ｙ＝（Ｚ）ＯＵＴ＝Ｘ−７＋Ｓ＝Ｚ−７＋Ｓ”が獲得される。もし、例えば、シードＳが値５を有するデータとして提供されるならば、その場合に、“Ｆ（Ｘ、５）＝Ｘ−７＋５”、及び“Ｙ＝（Ｚ）ＯＵＴ＝Ｘ−７＋５＝Ｚ−２”である。再度Ｚを出力変換空間からクリアテキスト変換空間に移動させるために、“Ｆ−１（Ｙ、Ｓ）＝（Ｘ−７＋５）＋７−Ｓ”のとおりにＸを獲得するように、逆関数“Ｆ−１（Ｙ，Ｓ）＝Ｙ＋７−Ｓ”が利用可能でなければならない。もしシードＳ＝５が知られているならば、その場合に、Ｚが、“Ｆ−１（Ｙ、５）＝（Ｘ−７＋５）＋７−５＝Ｘ＝Ｚ”として、正しく獲得され得る。
【００７２】
もし入力変換空間ＩＮがクリアテキスト変換空間でないならば、その場合に、関数Ｆは、一般的に、最初に、入力変換空間ＩＮにおいて逆関数を実行し、次に、出力変換空間ＯＵＴにおいて変換を実行する。そのような関数Ｆは、例えば、“Ｆ（Ｘ、Ｓ１、Ｓ２）＝Ｆ２（Ｆ１−１（Ｘ、Ｓ１）、Ｓ２）”として定義され、ここで、“Ｆ１−１（Ｘ、Ｓ１）＝Ｘ−２−Ｓ１”及び“Ｆ２（Ｘ、Ｓ２）＝Ｘ−７＋Ｓ２”である。移動（migration）の後で、従って、以下の結果“Ｙ＝（Ｚ）ＯＵＴ＝（Ｘ−２−Ｓ１）−７＋Ｓ２＝Ｘ−９−Ｓ１＋Ｓ２”が獲得されると共に、ここで、“Ｘ＝（Ｚ）ＩＮ”である。
【００７３】
シードＳ１及びＳ２は、最初に“Ｆ１−１（Ｘ、Ｓ１）”を実行し、次に“Ｆ２（Ｘ、Ｓ２）”を実行するために、２つの個別のシードとして提供され得るか、または、より好ましくはシード＜Ｓ１、Ｓ２＞の合成物として提供され得る。一般的に、シードの合成物は、複数のシードの混合物である。複数のシードの混合物から、個別のシードは導き出せない。シードＳ１及びＳ２を混合するためのパラメータ混合関数が“ｆ（Ｓ１、Ｓ２）＝＜Ｓ１、Ｓ２＞”として示される。関数結果“＜Ｓ１、Ｓ２＞”は、シードＳ１及びＳ２の合成物と呼ばれる。上述の例において、もし“Ｓ１＝５”、及び“Ｓ２＝７”であるならば、その場合に、１つの合成物は、“＜Ｓ１、Ｓ２＞＝５−７＝−２”である。
【００７４】
上述の例において、Ｚ、Ｘ、Ｙ、及びＳは、単純な加算数学及び減算数学を用いて変換するために使用され得る数である。そのＺ、Ｘ、Ｙ、及びＳは、２進値、数、文字、単語、及びその他種々の物を含むあらゆるデータフォーマットにおけるデータであり得るということが理解されることになる。関数Ｆは、更に複合的な関数であり得ると共に、例えば、２進値、数、文字、または単語に適当であり得る。
【００７５】
難読化技術は、一般的に、データまたはソフトウェアコードの変換を不明瞭にするために、基本の原始関数、またはそれらの組み合わせを使用する。基本の原始関数の例は、apply原始関数、remove原始関数、condition原始関数である。図８Ａ、図８Ｂ、及び図８Ｃは、それぞれ、apply原始関数Ａ、remove原始関数Ｒ、及びcondition原始関数Ｃのブロック図を示す。
【００７６】
図８Ａにおいて、関数“Ａ（Ｄａｔａ、Ｓ）＝ＡＳ（Ｄａｔａ）＝ＤａｔａＴＳ”は、入力“Ｄａｔａ”を入力シードＳを使用して変換された“ＤａｔａＴＳ”に変換するapply原始関数を定義する。図８Ｂにおいて、関数“Ｒ（ＤａｔａＴＳ、Ｓ）＝ＲＳ（ＤａｔａＴＳ）＝Ｄａｔａ”は、出力“Ｄａｔａ”を獲得するためにシードＳを使用して入力“ＤａｔａＴＳ”の変換を逆転させるremove原始関数を定義する。２つの関数“Ａ（）”及び“Ｒ（）”が相互に逆になるように、シードＳは同じである必要がある。
【００７７】
オリジナルの“Ｄａｔａ”、及びその変換された変異形“ＤａｔａＴＳ”は、一般的に、同じサイズであり、すなわち同じ数のビットで表され、それは、そのサイズに基づいて、“Ｄａｔａが特別な変換空間にあるか否かを判定することを不可能にする。
【００７８】
図８Ｃにおいて、関数“Ｃ（Ｄａｔａ１、Ｄａｔａ２）＝ＣＤａｔａ１（Ｄａｔａ２）＝ＤａｔａＣ”は、出力“ＤａｔａＣ”が２つの入力“Ｄａｔａ１”及び“Ｄａｔａ２”の相関である、条件付の変換を定義する。condition原始関数は、一般的に、入力データ及び出力データのサイズを維持すると共に、それは、“Ｄａｔａ”が相関の結果であるかどうかを判定することを不可能にする。
【００７９】
apply原始関数、remove原始関数、及びcondition原始関数のような原始関数は、結合され得る。その結合は、個々の原始関数が目に見えない新しい操作を生み出す。
【００８０】
図８Ｄは、remove原始関数とapply原始関数の結合の例を示す。変換操作は、入力“ＤａｔａＴＰ”に適用される結合された“remove”及び“apply”操作に対する入力として、合成物＜Ｐ、Ｓ＞を使用する。ＲＰＡＳ関数は、出力“ＤａｔａＴＳ”を獲得するために、入力変換領域Ｐが提供する入力“ＤａｔａＴＰ”を出力変換領域Ｓに割り当てる。結合された“remove”及び“apply”操作の全ての入力及び出力は、変換されるか、または合成物の形式のいずれかである。その操作は、変換されたデータに適用されると共に、変換されたデータを生成する。従って、変換操作は、変換された領域空間において実行されると共に、どのインタフェース上でも、個々のパラメータまたは変換されないデータを明らかにしない。合成物＜Ｐ、Ｓ＞を生成するために使用される関数は、好ましくは、固有であると共に、結合された“remove”及び“apply”操作の実装に連結される。
【００８１】
図８Ｅは、２つの入力合成物＜Ｐ、Ｓ、Ｑ１＞及び＜ＤａｔａＴＰ、Ｑ２＞に対する安全な相関操作の例を示す。ＲＰＣＱＡＳ関数は、remove原始関数、condition原始関数、及びapply原始関数を結合し、それによって出力“ＤａｔａＣＴＳ”を生成する。
【００８２】
本発明の一実施例は、コンピュータシステムによって使用するのためのプログラム製品として実施され得る。プログラム製品の（複数の）プログラムは、（ここで説明した方法を含む）実施例の関数を定義すると共に、様々なコンピュータ読み取り可能な記憶媒体に含まれ得る。実例となるコンピュータ読み取り可能な記憶媒体は、（ｉ）情報が永久に保存される書き込み不可能な記憶媒体（例えば、ＣＤ−ＲＯＭドライブによって読み取り可能なＣＤ−ＲＯＭディスク、ＲＯＭチップまたはあらゆるタイプのソリッドステートの不揮発性半導体メモリのような、コンピュータの中の読み出し専用メモリデバイス）、及び（ｉｉ）変更できる情報が保存される書き込み可能な記憶媒体（例えば、ディスケットドライブ内のフロッピー（登録商標）ディスク、またはハードディスクドライブ、またはあらゆるタイプのソリッドステートのランダムアクセス半導体メモリ、フラッシュメモリ）を含むが、しかしこれらに限定されない。
【符号の説明】
【００８３】
１    電子デバイス
２    メモリ
３    鍵生成器
Ｄ１    第１の復号化器
Ｄ２    第２の復号化器
ＳＣ    スマートカード
ＮＳ    安全でない部分
Ｓ    安全な部分
ＣＳＳＫ    チップセットセッション鍵
ＣＳＳＮ    チップセットシリアル番号
ＣＳＵＫ    チップセット固有鍵
ＣＳＴＫ    信頼鍵
ＣＳＴＫ’    変換された信頼鍵
ＴＲＦ    変換ドメイン
Ａ    apply原始関数
Ｒ    remove原始関数
Ｃ    condition原始関数
Ｄ、Ｄ’、Ｅ’    復号化関数
ＩＤ    入力ドメイン
ＯＤ    出力ドメイン
ＩＤ’    変換された入力ドメイン
ＯＤ’    変換された出力ドメイン
Ｔ１、Ｔ２    変換関数
Ｔ１−１、Ｔ２−１    逆変換関数
【図１】
2011172230.tif 000007
【図２】
2011172230.tif 000008
【図３】
2011172230.tif 000009
【図４】
2011172230.tif 000010
【図５】
2011172230.tif 000011
【図６】
2011172230.tif 000012
【図７Ａ】
2011172230.tif 000013
【図７Ｂ】
2011172230.tif 000014
【図８Ａ】
2011172230.tif 000015
【図８Ｂ】
2011172230.tif 000016
【図８Ｃ】
2011172230.tif 000017
【図８Ｄ】
2011172230.tif 000018
【図８Ｅ】
2011172230.tif 000019
【外国語明細書】
2011172230.tif 000020
2011172230.tif 000021
2011172230.tif 000022
2011172230.tif 000023
2011172230.tif 000024
2011172230.tif 000025
2011172230.tif 000026
2011172230.tif 000027
2011172230.tif 000028
2011172230.tif 000029
2011172230.tif 000030
2011172230.tif 000031
2011172230.tif 000032
2011172230.tif 000033
2011172230.tif 000034
2011172230.tif 000035
2011172230.tif 000036
2011172230.tif 000037
2011172230.tif 000038
2011172230.tif 000039
2011172230.tif 000040
2011172230.tif 000041
2011172230.tif 000042
2011172230.tif 000043
2011172230.tif 000044
2011172230.tif 000045
2011172230.tif 000046
2011172230.tif 000047
2011172230.tif 000048
2011172230.tif 000049
2011172230.tif 000050
2011172230.tif 000051
2011172230.tif 000052