説明

プログラマブルロジックデバイス

【課題】プログラマブルロジックデバイスのコンフィグレーションプログラムのセキュリティを高める。
【解決手段】プログラマブルロジックデバイス100は、第1の秘密鍵を保存するレジスタ110を有するハードウェア復号プロセッサ104を備える。不揮発性メモリ102は、第1の秘密鍵により暗号化されたコンフィグレーションプログラムを保存する。ハードウェア復号プロセッサ104は、電力が投入されると、暗号化されたコンフィグレーションプログラムを復号し、論理素子のプログラマブルアレイ108を構成する。プログラマブルアレイ108は、第1の秘密鍵を用いてコンフィグレーションプログラムを復号し、第2の秘密鍵を生成し、コンフィグレーションプログラムを適応化する。構成されたプログラマブルアレイ108は、第1の秘密鍵を用いて、適応化されたコンフィグレーションプログラムを再暗号化し、元のプログラムを置換する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンフィグレーションプログラムにより構成されると、コンフィグレーションプログラムによる論理素子のコンフィグレーションに基づく処理を実行する揮発性論理素子のプログラマブルアレイを備えるプログラマブルロジックデバイスに関する。
【背景技術】
【0002】
秘密鍵(secret key)を用いてコンテンツを暗号化した後、公開鍵/秘密鍵(public key/private key)対の公開鍵を用いて秘密鍵(secret key)を暗号化してコンテンツを配信する手法が知られている。コンテンツは、秘密鍵(secret key)を用いて暗号化され、この手法は、暗号化及び復号が相互的な処理の一部として、同様の処理に基づいて実行されるため、対称暗号化と呼ばれる。プライベートな秘密鍵(private secret key)を用いる対称暗号化及び復号は、暗号化又は復号処理を実現するために必要な演算が比較的簡単である。一方、例えば、リベスト−シャミア−エーデルマン(Rivest-Shamir-Adleman:RSA)アルゴリズムを用いた公開鍵/秘密鍵対を用いる非対称暗号方式は、演算がより複雑であるが、安全性が高い。かなりのデータ量を有するコンテンツデータの場合、暗号化に必要な演算量が多くなるため、コンテンツデータについては、非対称暗号方式に基づく公開鍵/秘密鍵対を用いる非対称暗号方式は用いられていない。このため、コンテンツ配信のための周知の装置では、コンテンツデータは、プライベートな秘密鍵で暗号化される。コンテンツを暗号化するために用いられるプライベートな秘密鍵は、コンテンツ鍵と呼ばれる。コンテンツ鍵は、公開鍵/秘密鍵対の公開鍵によって暗号化され、暗号化コンテンツと共に配信される。したがって、公開鍵に対応する秘密鍵(private key)をコンテンツの受信機に提供することによって、受信機は、コンテンツ鍵を復号することができ、このコンテンツ鍵を用いてコンテンツを復号することによって、コンテンツを再生することができる。例えば、このような構成を用いて、テレビジョン番組をセットトップボックスに放送する手法が知られており、この場合、コンテンツ鍵を復号するための公開鍵/秘密鍵対の秘密鍵(private key)をスマートカードに提供する。
【0003】
フィールドプログラマブルゲートアレイ(field programmable gate array:FPGA)は、フィールドプログラマブルゲートアレイを暗号化及び/又は復号プロセッサに構成するコンフィグレーションプログラムを提供することによって暗号化又は復号プロセッサを形成するために用いることができるプログラマブルロジックデバイスの具体例である。安全性のために、FPGAには、暗号化された形式でコンフィグレーションプログラムを提供しなければならない。これは、攻撃者がコンフィグレーションプログラムを再生できたとしたら、暗号化/復号するために暗号化/復号アルゴリズム及び/又は秘密鍵(private keys)を特定することができてしまうためである。更に、暗号鍵も安全に提供する必要がある。このため、ザイリンクス社(Xilinx:www.xilinx.com)(RTM)を始めとするFPGAの幾つかの製造業者は、FPGAの一部として、不揮発性メモリに保存されるコンフィグレーションプログラムを復号するオンチップハードウェア復号プロセッサを有するFPGAを提供する。FPGAに電力が投入されると、コンフィグレーションプログラムは、まず、第1の秘密コンフィグレーション鍵を用いて、ハードウェア復号プロセッサにより復号され、復号ハードウェアのレジスタに保存される。復号ハードウェアは、更に、復号アルゴリズム及び秘密コンフィグレーション鍵を解読する試みを妨げるためのハードウェア保護機能を有する。このようにしてコンフィグレーションプログラムを暗号化でき、これにより、FPGAの機能を提供するコンフィグレーションプログラムに関連する知的所有権を保護できる。
【発明の開示】
【発明が解決しようとする課題】
【0004】
本発明の目的は、コンフィグレーションプログラムが不揮発性メモリからロードされるプログラマブルロジックデバイスのセキュリティを高めることである。更に、本発明の目的は、プログラマブルロジックデバイスのコンフィグレーションプログラムのセキュリティを高めることである。
【課題を解決するための手段】
【0005】
本発明に係るプログラマブルロジックデバイスは、コンフィグレーションプログラムがロードされ、コンフィグレーションプログラムによる論理素子のコンフィグレーションに基づく処理を実行する揮発性論理素子のプログラマブルアレイを備える。更に、プログラマブルロジックデバイスは、第1の秘密コンフィグレーション鍵を保存するレジスタを有するハードウェア復号プロセッサを備える。不揮発性メモリは、第1の秘密コンフィグレーション鍵により暗号化されたコンフィグレーションプログラムを保存する。コンフィグレーションプログラムは、第1の秘密コンフィグレーション鍵を含む。ハードウェア復号プロセッサは、プログラマブルロジックデバイスに電力が投入されると、暗号化されたコンフィグレーションプログラムを読み出し、レジスタに保存された第1の秘密コンフィグレーション鍵を用いて暗号化されたコンフィグレーションプログラムを復号し、コンフィグレーションプログラムにより論理素子のプログラマブルアレイを構成する。プログラマブルアレイは、コンフィグレーションプログラムにより構成されると、不揮発性メモリから暗号化されたコンフィグレーションプログラムを読み出し、コンフィグレーションプログラムによって提供された第1の秘密コンフィグレーション鍵を用いてコンフィグレーションプログラムを復号し、第2の秘密鍵を生成し、第2の秘密鍵をコンフィグレーションプログラムに挿入することによってコンフィグレーションプログラムを適応化する。構成されたプログラマブルアレイは、第1の秘密コンフィグレーション鍵を用いて、適応化されたコンフィグレーションプログラムを再暗号化し、メモリ内のコンフィグレーションプログラムを適応化され暗号化されたコンフィグレーションプログラムに置換する。
【0006】
本発明の実施形態では、コンフィグレーションプログラムをプログラマブルロジックデバイスにロードし、ロジカルデバイスを、暗号化コンテンツを暗号化/復号する暗号化及び/又は復号プロセッサとして構成する。
【0007】
本発明の実施形態では、プログラマブルロジックデバイスの不揮発性メモリに暗号化されたコンフィグレーションプログラムを供給する。コンフィグレーションプログラムは、コンフィグレーションプログラムの一部としてコンフィグレーションプログラムを暗号化する第1の秘密コンフィグレーション鍵を含む。ハードウェア復号プロセッサは、電力が投入されると、ハードウェア復号エンジンのレジスタに保存されている第1の秘密コンフィグレーション鍵を用いて、暗号化されたコンフィグレーションプログラムを復号し、コンフィグレーションプログラムを用いてプログラマブルアレイを構成する。コンフィグレーションプログラムは、プログラマブルアレイを構成して復号エンジンを提供し、復号エンジンは、プログラマブルロジックデバイスの製造業者が提供するハードウェアの復号エンジンと同じ機能を実行し、この復号エンジンは、ハードウェアの復号エンジンが実行する復号処理と同じ復号処理を実行できる。そして、構成されたプログラマブルアレイは、暗号化されたコンフィグレーションプログラムファイルを不揮発性メモリから再び読み出し、コンフィグレーションプログラムのハードウェア復号プロセッサによって復号されたバージョンにより提供される第1の秘密コンフィグレーション鍵を用いて暗号化されたコンフィグレーションプログラムを復号する。構成されたプログラマブルアレイは、自ら秘密鍵(secret key)を生成する。そして、構成されたプログラマブルアレイは、コンフィグレーションプログラムに秘密鍵を挿入し、適応化されたコンフィグレーションプログラムを形成する。そして、構成されたプログラマブルアレイは、暗号化エンジンを形成し、この暗号化エンジンは、第1の秘密コンフィグレーション鍵を用いて適応化されたコンフィグレーションプログラムを暗号化し、不揮発性メモリにおいて、暗号化されたコンフィグレーションプログラムを上書きする。これにより、プログラマブルロジックデバイスは、事実上、そのデバイスだけに既知である秘密鍵を生成する。このように、秘密鍵は、コンフィグレーション鍵を用いて暗号化される前にコンフィグレーションプログラムに加えられる。この結果、秘密鍵は、プログラマブルロジックデバイスの外部にとっては未知となり、また、第1の秘密コンフィグレーション鍵により保護されるので、不揮発性メモリに安全に保存される。
【0008】
一具体例においては、秘密鍵(secret key)は、例えば、RSAアルゴリズム等の非対称暗号方式を用いてデータを暗号化するための公開鍵/秘密鍵(public key/private key)対の秘密鍵(private key)である。他の具体例では、秘密鍵(secret key)は、対称暗号化処理に用いるプライベートな秘密鍵(private key)である。秘密鍵が対称暗号方式におけるプライベートな秘密鍵である場合、この鍵の長さは、通常、非対称暗号方式における秘密鍵(private key)の長さより短い。例えば、非対称暗号方式における秘密鍵(private key)は、2048ビットであり、対称暗号方式におけるプライベートな秘密鍵(private key)は、128ビットである。このように、対称暗号方式におけるプライベートな秘密鍵は(private key)、必要とする記憶容量が小さく、不揮発性メモリに容易に保存できるため、幾つかのアプリケーションでは、対称暗号方式におけるプライベートな秘密鍵(private key)を用いることが有利である場合がある。他の具体例では、秘密鍵(private key)を用いて非対称暗号方式における公開鍵/秘密鍵対を暗号化し、この暗号化された鍵対を第2の不揮発性メモリに保存してもよい。これにより、非対称暗号方式における秘密鍵(private key)は、コンフィグレーションプログラムと同じ不揮発性メモリには保存されず、第1の不揮発性メモリの記憶容量が限られていることに関する問題を回避できる。
【0009】
以上のように、本発明の実施形態は、安全性を向上させ、攻撃者が秘密鍵を発見し、配信側の意図に反してコンテンツを再生する可能性を低減できる、プログラマブルロジックデバイスを用いて構成できる暗号化/復号プロセッサを提供する。
【0010】
本発明の様々な更なる側面及び特徴は、特許請求の範囲で定義されており、この側面には、受信機、送信機、コンフィグレーションプログラム及びプログラマブルロジックデバイスのプログラミング方法が含まれる。
【発明を実施するための最良の形態】
【0011】
図1は、テレビジョン番組を暗号化し、ヘッドエンドからユーザのセットトップボックスに配信し、ユーザが視聴できるように復号する具体的な配信構成例を示している。なお、これは、本発明に基づいて構成される暗号化/復号プロセッサの1つの具体的な適用例に過ぎないことは明らかである。したがって、他の構成として、例えば、オーディオ信号、テキストデータ又は他のあらゆる種類の情報を含む異なる形式のコンテンツを用いることができる。
【0012】
図1に示す構成では、ヘッドエンド2は、ユーザが視聴するためのテレビジョン受信機14に接続されたN個のセットトップボックス6、8、10、12のそれぞれに、暗号化されたビデオコンテンツ4を送信する。
【0013】
既知の構成では、ビデオコンテンツは、まず、各チャンネルU1、U2、U3、U4、UNを介して各ユーザが受信する暗号化されたビデオコンテンツの各バージョンに共通であるコンテンツ鍵と呼ばれる秘密鍵を用いて暗号化される。上述のように、秘密鍵暗号化は、公開鍵暗号化に比べて演算が簡単であるので、対称暗号化処理に使用される。これにより、ビデオコンテンツ4を表現する比較的大量のデータを暗号化するために必要な処理の量は、公開鍵暗号化を実行するために必要な処理の量に比べて、実質的に低減される。なお、各セットトップボックス6、8、10、12は、ビデオコンテンツを復号するためにコンテンツ鍵を受け取らなければならない。通常、コンテンツ鍵Kcontentは、配信システムのセキュリティを維持するために、定期的に変更される。
【0014】
各セットトップボックス6、8、10、12にコンテンツ鍵Kcontentを配信するために、コンテンツ鍵Kcontentは、各ユーザU1、U2、U3、U4、Unに関連付けられた公開鍵/秘密鍵対の公開鍵によって暗号化される。各ユーザには、そのユーザに固有に関連付けられたスマートカードを介して、対応する秘密鍵が提供される。使用時における動作では、コンテンツ鍵Kcontentは、公開鍵のそれぞれによって暗号化され、暗号化されたビデオコンテンツと共にセットトップボックスに送信される。これにより、各セットトップボックスは、公開鍵に対応するそのユーザの秘密鍵を用いて、コンテンツ鍵Kcontentを復号することができる。これにより、ユーザのセットトップボックスは、コンテンツ鍵Kcontentを復号した後、そのコンテンツ鍵Kcontentを用いてビデオコンテンツを復号することにより、ビデオコンテンツを再生することができる。
【0015】
図2に、例えば、図1の具体例に示す暗号化コンテンツを配信するシステムを実現する暗号化プロセッサ及び復号プロセッサを示す。図2に示す具体例では、暗号化プロセッサ20は、暗号化エンジン24により、チャンネル22を介してビデオコンテンツを受け取る。また、暗号化エンジン24は、第2のチャンネル26を介して、秘密コンテンツ鍵Kcontentを受け取る。秘密コンテンツ鍵Kcontentは、別に生成してもよく、又は暗号化プロセッサ20内で生成してもよい。暗号化エンジン24は、対称秘密鍵暗号化処理に基づき、秘密コンテンツ鍵Kcontentを用いてビデオコンテンツを暗号化し、暗号化されたビデオコンテンツをマルチプレクサ28に送る。また、秘密コンテンツ鍵Kcontentは、コンテンツ鍵暗号化エンジン30にも供給される。コンテンツ鍵暗号化エンジン30は、公開鍵暗号化を実行し、入力チャンネル32を介して公開鍵KPUを受け取り、コンテンツ鍵Kcontentを暗号化し、公開鍵暗号化に基づき、公開鍵KPUを用いて暗号化された暗号化コンテンツ鍵E{KPU(Kcontent)}を出力チャンネル34を介して出力する。そして、マルチプレクサ28は、暗号化されたビデオコンテンツと暗号化コンテンツ鍵とを多重化し、暗号化されたビデオコンテンツ及び暗号化コンテンツ鍵を含むビットストリームを暗号化プロセッサの出力チャンネル36から出力する。
【0016】
図3に、例えば、図1に示すシステムのセットトップボックスの一部を構成する復号プロセッサ38の構成を示す。図3に示す具体例では、暗号化されたビデオコンテンツ及び暗号化コンテンツ鍵を含むビットストリームは、入力チャンネル40を介して、デマルチプレクサ42に供給される。デマルチプレクサ42は、暗号化されたビデオコンテンツ及び暗号化コンテンツ鍵を2つのチャンネル44、46に分離する。公開鍵KPUによって暗号化されたコンテンツ鍵Kcontentは、第1のチャンネル44を介して、第1の復号エンジン48に供給される。第1の復号エンジン48は、公開鍵KPU対応する秘密鍵KPRを用いてコンテンツ鍵Kcontentを復号し、出力チャンネル50からコンテンツ鍵Kcontentを出力する。コンテンツ鍵Kcontentは、出力チャンネル50を介して、ビデオコンテンツを復号するための第2の復号エンジン52に供給される。暗号化されたビデオコンテンツは、接続チャンネル46を介して、第2の復号エンジン52に供給され、第2の復号エンジン52は、コンテンツ鍵Kcontentを用いて、暗号化されたビデオを復号し、出力チャンネル54から復号されたビデオストリームを出力する。
【0017】
本発明に基づくプログラマブルロジックデバイスは、暗号化プロセッサ20内及び復号プロセッサ38内のそれぞれに、第1の復号エンジン48及び暗号化エンジン24の一方又は両方を形成するように構成される。暗号化プロセッサ20及び復号プロセッサ38は、潜在的に攻撃の被害を受け易い部分である。悪意あるユーザは、復号プロセッサ38を攻撃し、秘密鍵KPRを解読することを試み、これにより、コンテンツ鍵Kcontentを復号し、この結果、正当な権限及び/又は料金の支払いなしでビデオコンテンツを復号しようとする。後述するように、本発明は、プログラマブルロジックデバイスに、公開鍵/秘密鍵対を生成し、自らを秘密鍵KPRによって適応化させる暗号化されたコンフィグレーションプログラムを提供する。そして、プログラマブルロジックデバイスは、コンフィグレーションプログラムを暗号化し、その後の使用のために不揮発性メモリにこれを保存する。このように、プログラマブルロジックデバイス自体がプライベートな秘密鍵KPRを生成するので、プログラマブルロジックデバイスの製造業者も、実際にはユーザ自身も、プライベートな秘密鍵KPRを知ることはできず、このため、暗号化コンテンツを配信する構成における安全性が実質的に向上する。このようなプログラマブルロジックデバイスの具体的構成例を図4に示す。
【0018】
図4に示すように、フィールドプログラマブルゲートアレイ(FPGA)100は、不揮発性メモリ102及びハードウェア復号プロセッサ104を備える。ハードウェア復号プロセッサ104は、ハードウェア復号エンジン106と、論理素子からなるプログラマブルアレイ108とを備える。また、ハードウェア復号エンジン106は、第1の秘密コンフィグレーション鍵Kconfigが予め保存されているレジスタ110を備える。図4に示すように、不揮発性メモリ102は、第1の秘密コンフィグレーション鍵Kconfigにより暗号化されたコンフィグレーションプログラムを保存する。図4に示すように、一旦、コンフィグレーションプログラムが復号されると、このコンフィグレーションプログラムは、プログラマブルアレイ108にロードされ、プログラマブルアレイ108がある機能を実行するようにプログラマブルアレイ108をプログラミングする。図4の拡大破線によって示す部分にこの機能を示す。本発明に基づくコンフィグレーションプログラムがプログラマブルアレイ108を構成することにより、プログラマブルアレイ108によって実行される機能については、以下の段落で説明する。
【0019】
標準的な動作に基づいてFPGA100に電力が投入されると、ハードウェア復号エンジン106は、不揮発性メモリ102から暗号化されたコンフィグレーションプログラムを読み出し、レジスタ110から入手した第1の秘密コンフィグレーション鍵Kconfigを用いて暗号化されたコンフィグレーションプログラムを復号する。そして、周知の動作により、プログラマブルアレイ108は、復号されたコンフィグレーションプログラムによってプログラミングされる。コンフィグレーションプログラムに基づきプログラマブルアレイ108によって構成される第1の機能的要素は、ハードウェア復号エンジン106の機能を再度実行する機能を実現する復号エンジン120である。コンフィグレーションプログラムによって構成される第2の機能的要素は、公開鍵/秘密鍵発生器122である。第3の機能的要素は制御プロセッサからなるコントローラ124であり、第4の機能的要素は暗号化エンジン126である。
【0020】
復号エンジン120は、不揮発性メモリ102から暗号化されたコンフィグレーションプログラムを再び読み出し、ハードウェア復号エンジン106によって復号されたコンフィグレーションプログラム自体の一部として提供される秘密コンフィグレーション鍵Kconfigを用いてコンフィグレーションプログラムを復号する。すなわち、復号エンジン120は、コンフィグレーションプログラムを再び復号し、コントローラ124の一部を構成するローカルメモリ121内に一時的に保存する。そして、公開鍵/秘密鍵発生器122は、他の全ての機能的要素にとって未知である公開鍵/秘密鍵対KPU_FPGA/KPR_FPGAを生成する。公開鍵KPU_FPGAは、例えば、ビデオコンテンツを配信するために、独立したチャンネル128を介して暗号化プロセッサに供給できる。一方、秘密鍵KPR_FPGAは、コントローラ124が受け取る。そして、コントローラ124は、秘密鍵KPR_FPGAをコンフィグレーションプログラムに挿入し、これにより、コンフィグレーションプログラムは、公開鍵/秘密鍵発生器122が発生した秘密鍵を含むように適応化される。適応化されたコンフィグレーションプログラムは、暗号化エンジン126に渡され、暗号化エンジン126は、第1の秘密コンフィグレーション鍵Kconfigを用いて、コンフィグレーションプログラムを再び暗号化する。そして、コントローラ124は、不揮発性メモリ102内のコンフィグレーションプログラムの旧バージョンを、チャンネル130を介して不揮発性メモリ102に供給される、暗号化され、適応化されたコンフィグレーションプログラムによって上書きし、保存する。
【0021】
初期化フェーズにおけるFPGA100の動作を図5のフローチャートに示し、以下に説明する。
【0022】
S1:FPGA100に電力が投入され、ハードウェア復号プロセッサ104は、不揮発性メモリ102から暗号化されたコンフィグレーションプログラムファイルを読み出す。ハードウェア復号プロセッサ104は、ハードウェア復号エンジン106のレジスタ110に保存された第1の秘密コンフィグレーション鍵を用いてコンフィグレーションプログラムを復号する。
【0023】
S2:FPGA100は、復号されたコンフィグレーションプログラムを用いてプログラマブルアレイ108を構成する。ここまでのFPGA100の動作は、暗号化されたコンフィグレーションビットファイルによって自らを構成する従来の動作に等しく、これに対応する。
【0024】
S4:構成されたプログラマブルアレイ108は、所定の機能を実行する。第1の機能として、構成されたプログラマブルアレイ108が、不揮発性メモリ102から、暗号化されたコンフィグレーションプログラムを再び読み出す。
【0025】
S6:構成されたプログラマブルアレイ108によって形成された復号エンジン120は、コンフィグレーションプログラム内に提供される第1の秘密コンフィグレーション鍵を用いて、不揮発性メモリ102から再び読み出された暗号化されたコンフィグレーションプログラムを復号する。換言すれば、第1の秘密コンフィグレーション鍵は、コンフィグレーションプログラムが最初に復号された際、ハードウェア復号エンジン106によって提供される。
【0026】
S8:構成されたプログラマブルアレイ108は、KPU_FPGA/KPR_FPGAと呼ばれる公開鍵/秘密鍵対を生成する。
【0027】
S10:構成されたプログラマブルアレイ108は、公開鍵KPU_FPGAを用いて暗号化されたコンテンツデータを復号するための秘密鍵KPR_FPGAを含むようにコンフィグレーションプログラムを適応化する。このようにして、FPGA100自体は、FPGA100の外部にとって未知の秘密にされた鍵を生成し、不揮発性メモリ102に保存する。
【0028】
S12:構成されたプログラマブルアレイ108は、秘密にされた秘密鍵KPR_FPGAを含む適応化されたコンフィグレーションプログラムを暗号化し、暗号化されたコンフィグレーションプログラムを不揮発性メモリ102に上書きする。
【0029】
この処理により、秘密鍵KPR_FPGAは、秘密にされた鍵になるが、これを用いて、対応する公開鍵KPU_FPGAにより暗号化されたコンテンツを復号することができる。この結果、初期化処理に続いて、FPGA100は、通常の動作に基づいてコンテンツを復号する準備が整う。図6は、図4に示す、復号エンジン及び/又は暗号化エンジンを構成するプログラマブルアレイ108を有するFPGA100を示している。なお、図6において、図4に示す部分と共通の部分には、同じ符号を付してあり、これらの部分の動作は同じであるため、ここでは重複する説明は行わない。通常の電力投入動作に基づき、ハードウェア復号エンジン106は、暗号化され、適応化されたコンフィグレーションプログラムを受け取り、これを復号し、これを用いてプログラマブルアレイ108をプログラミングする。従来の動作に基づき、プログラマブルアレイ108は、復号エンジン190を形成し、復号エンジン190は、この時点でコンフィグレーションプログラムに含まれている秘密鍵KPR_FPGAに対応する公開鍵KPU_FPGAにより暗号化されたコンテンツを復号する。このように、図1に示す具体例における、公開鍵KPU_FPGAにより暗号化されたコンテンツ鍵Kcontentは、秘密鍵KPR_FPGAを用いて復号でき、コンテンツ鍵Kcontentを出力チャンネル202から出力することができる。
【0030】
例えば、FPGA100が暗号化プロセッサを形成する場合、プログラマブルアレイ108は、暗号化エンジン210を用いてコンテンツ鍵を暗号化することができる。入力チャンネル200を介して受け取ったコンテンツ鍵Kcontentは、公開鍵KPU_FPGAを用いて、構成されたプログラマブルアレイ108によって暗号化される。暗号化エンジン210は、暗号化コンテンツ鍵Kcontentを生成し、暗号化エンジン210の出力チャンネル202から出力する。FPGA100の動作を図7のフローチャートに示し、以下に説明する。
【0031】
S20:FPGA100に電力が投入され、ハードウェア復号エンジン106は、不揮発性メモリ102から暗号化されたコンフィグレーションプログラムを読み出す。ハードウェア復号エンジン106は、ハードウェア復号エンジン106のレジスタ110に保存されている第1の秘密コンフィグレーション鍵Kconfigを用いてコンフィグレーションプログラムを復号する。
【0032】
S22:構成されたプログラマブルアレイ108は、復号されたコンフィグレーションプログラム内で提供された秘密鍵KPR_FPGAを含む復号プロセッサを形成する。そして、秘密鍵KPR_FPGAを用いて、公開鍵/秘密鍵対の公開鍵KPU_FPGAにより暗号化されたコンテンツを復号することができる。
【0033】
S24:これに対応して、他の具体例では、構成されたプログラマブルアレイ108は、公開鍵/秘密鍵対の公開鍵KPU_FPGAを用いてコンテンツデータを暗号化する暗号化プロセッサを形成できる。公開鍵は、通常、システムの送信コンポーネントに発行されるので、この具体例では、他のFPGAプロセッサにより、公開鍵KPUを提供できる。
【0034】
図8は、前初期化処理段(pre-initialisation stage)の間、第1の秘密コンフィグレーション鍵Kconfigを提供する本発明の更なる実施形態を示している。前初期化処理段は、コンテンツを復号するために、FPGA100を受信機内に組み込む際に実行できる。図8では、また、図4及び図6に示したFPGA100も示しているが、共通の部分には、同じ符号を付してあり、これらの部分の動作は同じであるため、ここでは重複する説明は行わない。図8に示すように、FPGA100には、不揮発性メモリ102及びハードウェア復号エンジン106内のレジスタ110にアクセスするための「製造ジグ(manufacturing jig)」と呼ばれる製造コンポーネントが取り付けられる。製造ジグ300は、秘密コンフィグレーション鍵Kconfigを生成する。一旦、秘密コンフィグレーション鍵Kconfigが生成されると、コンフィグレーションプログラム自体をこの秘密コンフィグレーション鍵Kconfigによって暗号化する前に、秘密コンフィグレーション鍵Kconfigをコンフィグレーションプログラムに挿入できる。そして、暗号化されたコンフィグレーションプログラムは、使用の準備のために不揮発性メモリ102にロードできる。そして、製造業者は、必要に応じて、秘密コンフィグレーション鍵Kconfigを破棄(destroy)又は記録できる。一旦、秘密コンフィグレーション鍵KconfigがFPGA100にロードされると、他の如何なるパーティにも、秘密コンフィグレーション鍵Kconfigを知らせる必要はなく、したがってセキュリティを高めるために、秘密コンフィグレーション鍵Kconfigに関する情報を破棄してもよい。
【0035】
更なる具体例では、コンテンツを復号するためにFPGA100が受信機に組み込まれると、コンフィグレーションプログラムを更新する機能を提供する更なる鍵をコンフィグレーションプログラムに提供する。この目的で、製造ジグ300に秘密更新鍵Kupdateを提供し、この秘密更新鍵Kupdateも、上述のように秘密コンフィグレーション鍵Kconfigによって暗号化され、不揮発性メモリ102にロードされる前に、コンフィグレーションプログラムにロードされる。使用時における動作では、図8に示すように、プログラマブルアレイ108は、コンフィグレーションプログラムで構成されると、更新プログラム用の復号エンジン310、制御プロセッサ312及び暗号化エンジン314である更なる機能的要素を含む。
【0036】
使用時における動作では、プログラマブルアレイ108は、入力チャンネル200を介して、更新鍵Kupdateにより暗号化された新たなプログラム要素を受け取る。そして、復号エンジン310は、コンフィグレーションプログラムが提供する秘密更新鍵Kupdateを用いて新たなプログラム要素を復号することができる。そして、新たなプログラム要素は、新たな機能的要素によりコンフィグレーションプログラムを適応化する制御プロセッサ312に渡される。新たな機能的要素は、例えば、既存のコンフィグレーションプログラムに新たな機能を追加するためのものであってもよく、コンフィグレーションプログラムのバグを除去するためのものであってもよい。そして、適応化されたコンフィグレーションプログラムは、暗号化エンジン314に渡され、暗号化エンジン314は、秘密コンフィグレーション鍵Kconfigを用いて、新たに適応化されたコンフィグレーションプログラムを暗号化した後、不揮発性メモリ102のコンフィグレーションプログラムの旧バージョンにこの暗号化されたコンフィグレーションプログラムを上書きする。
【0037】
図8に示す実施形態では、コンフィグレーションプログラムは、新たなプログラム要素に基づいて適応化されると同時に、図5のフローチャートに示すように、それ自体を初期化する際にFPGA100により生成された秘密鍵KPR_FPGAを保存する。これにより、コンフィグレーションプログラムが更新されると共に、対応する公開鍵KPU_FPGAにより暗号化された、コンテンツを復号するための秘密鍵KPR_FPGAが保存される。図8に示す実施形態の動作を図9のフローチャートに示し以下に説明する。
【0038】
S40:コンフィグレーションプログラムにより構成されたプログラマブルアレイ108が追加的な機能及び/又はバグ修正機能を提供する更新プログラムを受け取る。更新プログラムは、秘密更新鍵Kupdateによって暗号化されている。
【0039】
S42:構成されたプログラマブルアレイ108は、製造ジグ300を用いてコンフィグレーションプログラムに提供された秘密更新鍵Kupdateを用いて、更新プログラムを復号する復号エンジン310を形成する。
【0040】
S44:更新プログラムを用いて、コンフィグレーションプログラムが適応化されると共に、公開鍵/秘密鍵対KPU_FPGA/KPR_FPGAは保存される。
【0041】
S46:適応化されたコンフィグレーションプログラムは、第1の秘密コンフィグレーション鍵Kconfigを用いて暗号化され、コンフィグレーションプログラムの旧バージョンを上書きすることにより不揮発性メモリ102に保存される。
【0042】
コンフィグレーションプログラムの更新における安全性を高めるために、幾つかの具体例では、更新プログラムに新たな更新鍵Knew_updateを含ませてもよい。これにより、新たな更新鍵Knew_updateにより暗号化された更新プログラムが後に受け取られると、この更新プログラムを復号することができ、この更新プログラムを再生して、コンフィグレーションプログラムの更新を実行することができる。このように、後続する更新プログラムは、更なる更新プログラムを復号するための更なる更新鍵を提供できる。このため、更新プログラムをFPGA100に送る際は、常に、後続する更新プログラムを復号するための新たな更新鍵を提供する。これには、2つの利点がある。第1に、新たなコンフィグレーションプログラムは、FPGA100と共有される秘密更新鍵によって有効に署名されるので、FPGA100は、更新プログラムの認証を保証される。第2の利点は、更新プログラムが復号され、コンテンツが解読され及びコンフィグレーションプログラムが操作される危険性が低減され、これにより安全性が高められる点である。
【0043】
本発明の更なる実施形態を図10に示す。図10において、図4に示す部分と共通の部分には、同じ符号を付してあり、これらの部分の動作は同じであるため、ここでは重複する説明は行わない。図10に示す具体例が図4に示す具体例と本質的に異なる点は、FPGA100.1が公開鍵/秘密鍵対を暗号化された形式で保存するための第2の不揮発性メモリ400を備える点である。また、公開鍵/秘密鍵対KPU_FPGA/KPR_FPGAを生成するとともに、鍵発生器122.1は、対称暗号方式における秘密にされた秘密鍵Kを生成する。コントローラ124.1は、秘密鍵Kをコンフィグレーションプログラムに挿入することによってコンフィグレーションプログラムを適応化する。上述の具体例と同様、暗号化エンジン126.1は、適応化されたコンフィグレーションプログラムを暗号化し、第1の不揮発性メモリ102にこれを保存する。そして、暗号化エンジン126.2は、公開鍵/秘密鍵対KPU_FPGA/KPR_FPGAを暗号化し、暗号化された鍵対は、接続チャンネル402を介して第2の不揮発性メモリ400に保存される。
【0044】
公開鍵/秘密鍵対KPU_FPGA/KPR_FPGAの秘密鍵は、例えば、2048ビット等、比較的長い場合があり、一方、対称暗号方式におけるプライベートな秘密鍵は、例えば、128ビット程度である。したがって、第1の不揮発性メモリ102に公開鍵/秘密鍵対の秘密鍵を保存することは、秘密鍵を保存するための記憶容量が限られているために、困難な場合がある。そこで、第2の不揮発性メモリ400に公開鍵/秘密鍵対を保存することにより、この記憶容量の不足を解消できる。公開鍵/秘密鍵対の秘密鍵の安全性を高めるために、秘密鍵Kを生成し、これを用いて、第2の不揮発性メモリ400に保存するために公開鍵/秘密鍵対KPU_FPGA/KPR_FPGAを暗号化する。コンフィグレーションプログラムに挿入された秘密鍵Kは、コンフィグレーションプログラムによってプログラマブルアレイ108を構成する際、鍵対KPU_FPGA/KPR_FPGAを復号するために再生することができる。
【0045】
本発明の様々な側面及び特徴は、特許請求の範囲に定義されている。本発明の範囲から逸脱することなく、上述した実施形態を様々に変更することができる。特に、例示的な実施形態として、ビデオコンテンツを配信するブロードキャストシナリオを説明したが、これは、暗号化できるデータの一具体例にすぎず、本発明は、例えば、オーディオデータ、テキストデータ、金融又は財務データ、コンピュータプログラムを始めとする如何なる種類のコンテンツの通信にも適用でき、及び例えば、ブロードキャスト通信、マルチキャスト通信又はユニキャスト通信等、様々なアプリケーションに適用できることは明らかである。フィールドプログラマブルゲートアレイの具体例を説明したが、これはプログラマブルロジックデバイスの一具体例に過ぎないことは明らかである。
【図面の簡単な説明】
【0046】
【図1】セットトップボックスを介してテレビジョン受信機にコンテンツデータを配信する構成のブロック図である。
【図2】配信のためにコンテンツデータを暗号化するよう構成された暗号化プロセッサのブロック図である。
【図3】図2に示す暗号化プロセッサにより暗号化されたコンテンツを復号する復号プロセッサのブロック図である。
【図4】データを暗号化及び/又は復号する処理を実行するプログラマブルロジックデバイスのブロック図及びその処理のフローチャートである。
【図5】図4に示すプログラマブルロジックアレイの初期化フェーズを示すフローチャートである。
【図6】図4のプログラマブルロジックロジックデバイスの暗号化コンテンツデータを復号するための部分のブロック図及びその処理のフローチャートである。
【図7】図6に示すプログラマブルロジックデバイスの動作を説明するフローチャートである。
【図8】プログラマブルロジックデバイスを暗号化されたコンフィグレーションプログラムにより予めプログラミングする部分のブロック図及びその処理のフローチャートである。
【図9】更新されたコンフィグレーションプログラムに基づきプログラマブルロジックデバイスを適応化する処理を説明するフローチャートである。
【図10】更なる具体例に基づき、データを暗号化及び/又は復号する処理を実行するプログラマブルロジックデバイスのブロック図及びその処理のフローチャートである。

【特許請求の範囲】
【請求項1】
コンフィグレーションプログラムがロードされ、該コンフィグレーションプログラムによる論理素子のコンフィグレーションに基づく処理を実行する揮発性論理素子のプログラマブルアレイと、
第1の秘密コンフィグレーション鍵を保存するレジスタを有するハードウェア復号プロセッサと、
上記第1の秘密コンフィグレーション鍵によって暗号化され、該第1の秘密コンフィグレーション鍵を含むコンフィグレーションプログラムを保存する不揮発性メモリとを備え、
上記ハードウェア復号プロセッサは、プログラマブルロジックデバイスに電力が投入されると、
上記暗号化されたコンフィグレーションプログラムを読み出し、
上記レジスタに保存された第1の秘密コンフィグレーション鍵を用いて上記暗号化されたコンフィグレーションプログラムを復号し、
上記コンフィグレーションプログラムにより論理素子のプログラマブルアレイを構成し、
上記プログラマブルアレイは、上記コンフィグレーションプログラムにより構成されると、
上記不揮発性メモリから暗号化されたコンフィグレーションプログラムを読み出し、
上記コンフィグレーションプログラムによって提供された第1の秘密コンフィグレーション鍵を用いて上記コンフィグレーションプログラムを復号し、
第2の秘密鍵を生成し、
上記第2の秘密鍵を上記コンフィグレーションプログラムに挿入することによって該コンフィグレーションプログラムを適応化し、
上記第1の秘密コンフィグレーション鍵を用いて、上記適応化されたコンフィグレーションプログラムを再暗号化し、
上記メモリ内のコンフィグレーションプログラムを上記適応化され暗号化されたコンフィグレーションプログラムに置換することを特徴とするプログラマブルロジックデバイス。
【請求項2】
上記第2の秘密鍵は、プライベートな鍵であり、上記構成されたプログラマブルアレイは、第3の公開鍵を生成し、上記第2の秘密鍵及び第3の公開鍵は、非対称暗号/復号を実行するための公開鍵/秘密鍵対を構成することを特徴とする請求項1記載のプログラマブルロジックデバイス。
【請求項3】
上記第2の秘密鍵は、対称暗号化処理に用いるためのプライベートな鍵であることを特徴とする請求項1記載のプログラマブルロジックデバイス。
【請求項4】
上記第1の秘密コンフィグレーション鍵は、前初期化処理段において生成され、該前初期化処理段において、該第1の秘密コンフィグレーション鍵は、ハードウェア復号プロセッサのレジスタにロードされ、上記第1の秘密コンフィグレーション鍵により暗号化されたコンフィグレーションプログラムは、不揮発性メモリにロードされることを特徴とする請求項1記載のプログラマブルロジックデバイス。
【請求項5】
上記コンフィグレーションプログラムは、第4の更新鍵を有し、上記プログラマブルアレイは、上記コンフィグレーションプログラムにより構成されると、
上記第4の更新鍵により暗号化された更新コンフィグレーションプログラムを受け取り、
上記第4の更新鍵により上記更新コンフィグレーションプログラムを復号し、
上記更新コンフィグレーションプログラムを適応化し、上記第2の秘密鍵を該適応化されたコンフィグレーションプログラムに保存することを特徴とする請求項1記載のプログラマブルロジックデバイス。
【請求項6】
上記プログラマブルアレイは、上記コンフィグレーションプログラムにより構成されると、
上記第1の秘密コンフィグレーション鍵により上記適応化されたコンフィグレーションプログラムを暗号化し、
上記暗号化され、適応化されたコンフィグレーションプログラムを上記不揮発性メモリに保存することを特徴とする請求項5記載のプログラマブルロジックデバイス。
【請求項7】
上記更新コンフィグレーションプログラムは、第5の更新鍵を含み、上記プログラマブルアレイは、上記適応化された更新コンフィグレーションプログラムにより構成されると、
上記第5の更新鍵を用いて、該第5の更新鍵により暗号化された後続する更新プログラムを復号することを特徴とする請求項5記載のプログラマブルロジックデバイス。
【請求項8】
第2の不揮発性メモリを備え、上記プログラマブルアレイは、上記コンフィグレーションプログラムにより構成されると、
非対称暗号方式における公開鍵/秘密鍵対を構成する第6の秘密鍵及び第7の公開鍵を生成し、
対称暗号方式を用いて、第2の秘密鍵により上記第6の秘密鍵及び第7の公開鍵を暗号化し、
上記第6の暗号化された秘密鍵及び第7の公開鍵対を上記第2の不揮発性メモリ保存することを特徴とする請求項3記載のプログラマブルロジックデバイス。
【請求項9】
暗号化コンテンツデータを受け取り、復号する受信機において、当該受信機は、コンテンツ復号エンジン及びコンテンツ鍵復号エンジンを備え、
該コンテンツ鍵復号エンジンは、請求項1記載のプログラマブルロジックデバイスを備え、
上記プログラマブルロジックデバイスは、揮発性論理素子のプログラマブルアレイと、不揮発性メモリに接続されたハードウェア復号プロセッサと、第1の秘密コンフィグレーション鍵を保存するレジスタとを備え、
上記ハードウェア復号プロセッサは、該プログラマブルロジックデバイスに電力が投入されると、
上記レジスタに保存されている第1の秘密コンフィグレーション鍵を用いて上記不揮発性メモリに保存されている暗号化されたコンフィグレーションプログラムを復号し、
上記コンフィグレーションプログラムにより、上記論理素子のプログラマブルアレイを構成し、
上記論理素子のプログラマブルアレイは、上記コンフィグレーションプログラムにより構成されると、
公開鍵/秘密鍵対を形成する第2の秘密鍵及び第3の公開鍵を提供し、
上記暗号化コンテンツが提供する上記第3の公開鍵により暗号化された暗号化コンテンツ鍵を受け取り、
上記コンフィグレーションプログラムにより提供される第2の秘密鍵を用いてコンテンツ鍵を復号し、上記コンテンツ復号エンジンは、コンテンツ鍵を用いて暗号化コンテンツを復号することを特徴とする受信機。
【請求項10】
コンテンツデータを暗号化して送信する送信機において、
コンテンツ鍵によりコンテンツデータを暗号化するコンテンツ暗号化エンジンと、
プログラマブルロジックデバイスにより提供される公開鍵によりコンテンツ鍵を暗号化するコンテンツ鍵暗号化エンジンとを備え、
上記プログラマブルロジックデバイスは、
コンフィグレーションプログラムをロードすると、該コンフィグレーションプログラムによる論理素子のコンフィグレーションに基づく処理を実行する揮発性論理素子のプログラマブルアレイと、
第1の秘密コンフィグレーション鍵を保存するレジスタを有するハードウェア復号プロセッサと、
上記第1の秘密コンフィグレーション鍵により暗号化された、該第1の秘密コンフィグレーション鍵を含むコンフィグレーションプログラムを保存する不揮発性メモリとを備え、
上記ハードウェア復号プロセッサは、上記プログラマブルロジックデバイスに電力が投入されると、
上記暗号化されたコンフィグレーションプログラムを読み出し、
上記レジスタに保存された第1の秘密コンフィグレーション鍵を用いて、上記暗号化されたコンフィグレーションプログラムを復号し、
上記コンフィグレーションプログラムにより上記論理素子のプログラマブルアレイを構成し、
上記プログラマブルアレイは、上記コンフィグレーションプログラムにより構成されて、
上記不揮発性メモリから暗号化されたコンフィグレーションプログラムを読み出し、
上記コンフィグレーションプログラムが提供する第1の秘密コンフィグレーション鍵を用いて該コンフィグレーションプログラムを復号し、
第2の秘密鍵を生成し、
上記コンフィグレーションプログラムに上記第2の秘密鍵を挿入することによって該コンフィグレーションプログラムを適応化し、
上記第1の秘密コンフィグレーション鍵を用いて、上記適応化されたコンフィグレーションプログラムを再暗号化し、
上記不揮発性メモリにおいて、上記適応化及び暗号化されたコンフィグレーションプログラムによりコンフィグレーションプログラムを置換することを特徴とする送信機。
【請求項11】
揮発性論理素子のプログラマブルアレイと、第1の秘密コンフィグレーション鍵を保存するレジスタを有するハードウェア復号プロセッサと、該第1の秘密コンフィグレーション鍵によって暗号化され、該第1の秘密コンフィグレーション鍵を含むコンフィグレーションプログラムを保存する不揮発性メモリとを備えるプログラマブルロジックデバイスをプログラミングするプログラミング方法において、
上記コンフィグレーションプログラムに上記第1の秘密コンフィグレーション鍵を提供するステップと、
上記不揮発性メモリから上記暗号化されたコンフィグレーションプログラムを読み出すステップと、
上記レジスタに保存された第1の秘密コンフィグレーション鍵を用いて上記暗号化されたコンフィグレーションプログラムを復号するステップと、
上記コンフィグレーションプログラムにより上記論理素子のプログラマブルアレイを構成するステップとを有し、
上記論理素子のプログラマブルアレイは、上記コンフィグレーションプログラムにより構成されると、
上記不揮発性メモリから暗号化されたコンフィグレーションプログラムを読み出すステップと、
上記コンフィグレーションプログラムによって提供された第1の秘密コンフィグレーション鍵を用いて上記コンフィグレーションプログラムを復号するステップと、
第2の秘密鍵を生成するステップと、
上記第2の秘密鍵を上記コンフィグレーションプログラムに挿入することによって該コンフィグレーションプログラムを適応化するステップと、
上記第1の秘密コンフィグレーション鍵を用いて、上記適応化されたコンフィグレーションプログラムを再暗号化するステップと、
上記メモリ内のコンフィグレーションプログラムを上記適応化され暗号化されたコンフィグレーションプログラムに置換するステップとを有するプログラミング方法。
【請求項12】
プログラマブルロジックデバイスの論理素子のアレイをプログラミングするコンフィグレーションプログラムにおいて、
上記プログラマブルロジックデバイスは、
当該コンフィグレーションプログラムをロードされると、該コンフィグレーションプログラムによる論理素子のコンフィグレーションに基づく処理を実行する揮発性論理素子のプログラマブルアレイと、
第1の秘密コンフィグレーション鍵を保存するレジスタを有するハードウェア復号プロセッサと、該第1の秘密コンフィグレーション鍵により暗号化された、該第1の秘密コンフィグレーション鍵を含むコンフィグレーションプログラムを保存する不揮発性メモリとを備えることを特徴とするコンフィグレーションプログラム。
【請求項13】
上記プログラマブルロジックデバイスは、当該コンフィグレーションプログラムが保存される不揮発性メモリを含み、
当該コンフィグレーションプログラムは、論理素子のプログラマブルアレイにロードされると、
上記不揮発性メモリから暗号化されたコンフィグレーションプログラムを読み出し、
上記コンフィグレーションプログラムによって提供された第1の秘密コンフィグレーション鍵を用いて上記コンフィグレーションプログラムを復号し、
第2の秘密鍵を生成し、
上記第2の秘密鍵を上記コンフィグレーションプログラムに挿入することによって該コンフィグレーションプログラムを適応化し、
上記第1の秘密コンフィグレーション鍵を用いて、上記適応化されたコンフィグレーションプログラムを再暗号化し、
上記不揮発性メモリ内のコンフィグレーションプログラムを上記適応化され暗号化されたコンフィグレーションプログラムに置換することを特徴とする請求項12記載のコンフィグレーションプログラム。
【請求項14】
請求項12記載のコンフィグレーションプログラムを搬送するデータ担体。
【請求項15】
プログラマブルロジックデバイスと共に用いるよう構成された製造ジグにおいて、
上記プログラマブルロジックデバイスは、
コンフィグレーションプログラムがロードされ、該コンフィグレーションプログラムによる論理素子のコンフィグレーションに基づく処理を実行する揮発性論理素子のプログラマブルアレイと、
第1の秘密コンフィグレーション鍵を保存するレジスタを有するハードウェア復号プロセッサと、該第1の秘密コンフィグレーション鍵によって暗号化され、該第1の秘密コンフィグレーション鍵を含むコンフィグレーションプログラムを保存する不揮発性メモリとを備え、
上記ハードウェア復号プロセッサは、上記プログラマブルロジックデバイスに電力が投入されると、
上記暗号化されたコンフィグレーションプログラムを読み出し、
上記レジスタに保存された第1の秘密コンフィグレーション鍵を用いて上記暗号化されたコンフィグレーションプログラムを復号し、
上記コンフィグレーションプログラムにより論理素子のプログラマブルアレイを構成し、
上記プログラマブルアレイは、上記コンフィグレーションプログラムにより構成されると、
上記不揮発性メモリから暗号化されたコンフィグレーションプログラムを読み出し、
上記コンフィグレーションプログラムによって提供された第1の秘密コンフィグレーション鍵を用いて上記コンフィグレーションプログラムを復号し、
第2の秘密鍵を生成し、
上記第2の秘密鍵を上記コンフィグレーションプログラムに挿入することによって該コンフィグレーションプログラムを適応化し、
上記第1の秘密コンフィグレーション鍵を用いて、上記適応化されたコンフィグレーションプログラムを再暗号化し、
上記不揮発性メモリ内のコンフィグレーションプログラムを上記適応化され暗号化されたコンフィグレーションプログラムに置換し、
当該製造ジグは、使用時に、
第1の秘密コンフィグレーション鍵を生成し、
上記第1の秘密コンフィグレーション鍵によりコンフィグレーションプログラムを暗号化し、
上記プログラマブルロジックデバイスの不揮発性メモリに上記暗号化されたコンフィグレーションプログラムをロードし、
上記プログラマブルロジックデバイスのレジスタに上記第1の秘密コンフィグレーション鍵をロードすることを特徴とする製造ジグ。
【請求項16】
揮発性論理素子のプログラマブルアレイと、第1の秘密コンフィグレーション鍵を保存するレジスタを有するハードウェア復号プロセッサと、該第1の秘密コンフィグレーション鍵によって暗号化され、該第1の秘密コンフィグレーション鍵を含むコンフィグレーションプログラムを保存する不揮発性メモリとを備えるプログラマブルロジックデバイスをプログラミングするプログラミング装置において、
上記コンフィグレーションプログラムに上記第1の秘密コンフィグレーション鍵を提供する提供手段と、
上記不揮発性メモリから上記暗号化されたコンフィグレーションプログラムを読み出す読出手段と、
上記レジスタに保存された第1の秘密コンフィグレーション鍵を用いて上記暗号化されたコンフィグレーションプログラムを復号する復号手段と、
上記コンフィグレーションプログラムにより論理素子のプログラマブルアレイを構成する構成手段とを備え、
上記プログラマブルアレイは、上記コンフィグレーションプログラムにより構成されると、
上記不揮発性メモリから暗号化されたコンフィグレーションプログラムを読み出す読出手段と、
上記コンフィグレーションプログラムによって提供された第1の秘密コンフィグレーション鍵を用いて上記コンフィグレーションプログラムを復号する復号手段と、
第2の秘密鍵を生成する生成手段と、
上記第2の秘密鍵を上記コンフィグレーションプログラムに挿入することによって該コンフィグレーションプログラムを適応化する適応化手段と、
上記第1の秘密コンフィグレーション鍵を用いて、上記適応化されたコンフィグレーションプログラムを再暗号化する再暗号化手段と、
上記メモリ内のコンフィグレーションプログラムを上記適応化され暗号化されたコンフィグレーションプログラムに置換する置換手段とを備えることを特徴とするプログラミング装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2006−295916(P2006−295916A)
【公開日】平成18年10月26日(2006.10.26)
【国際特許分類】
【外国語出願】
【出願番号】特願2006−83001(P2006−83001)
【出願日】平成18年3月24日(2006.3.24)
【出願人】(593081408)ソニー・ユナイテッド・キングダム・リミテッド (93)
【氏名又は名称原語表記】Sony United Kingdom Limited
【Fターム(参考)】