JP2006295916A - プログラマブルロジックデバイス - Google Patents
プログラマブルロジックデバイス Download PDFInfo
- Publication number
- JP2006295916A JP2006295916A JP2006083001A JP2006083001A JP2006295916A JP 2006295916 A JP2006295916 A JP 2006295916A JP 2006083001 A JP2006083001 A JP 2006083001A JP 2006083001 A JP2006083001 A JP 2006083001A JP 2006295916 A JP2006295916 A JP 2006295916A
- Authority
- JP
- Japan
- Prior art keywords
- key
- configuration
- configuration program
- secret
- encrypted
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/76—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/60—Digital content management, e.g. content distribution
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Logic Circuits (AREA)
Abstract
【課題】プログラマブルロジックデバイスのコンフィグレーションプログラムのセキュリティを高める。
【解決手段】プログラマブルロジックデバイス100は、第1の秘密鍵を保存するレジスタ110を有するハードウェア復号プロセッサ104を備える。不揮発性メモリ102は、第1の秘密鍵により暗号化されたコンフィグレーションプログラムを保存する。ハードウェア復号プロセッサ104は、電力が投入されると、暗号化されたコンフィグレーションプログラムを復号し、論理素子のプログラマブルアレイ108を構成する。プログラマブルアレイ108は、第1の秘密鍵を用いてコンフィグレーションプログラムを復号し、第2の秘密鍵を生成し、コンフィグレーションプログラムを適応化する。構成されたプログラマブルアレイ108は、第1の秘密鍵を用いて、適応化されたコンフィグレーションプログラムを再暗号化し、元のプログラムを置換する。
【選択図】図4
【解決手段】プログラマブルロジックデバイス100は、第1の秘密鍵を保存するレジスタ110を有するハードウェア復号プロセッサ104を備える。不揮発性メモリ102は、第1の秘密鍵により暗号化されたコンフィグレーションプログラムを保存する。ハードウェア復号プロセッサ104は、電力が投入されると、暗号化されたコンフィグレーションプログラムを復号し、論理素子のプログラマブルアレイ108を構成する。プログラマブルアレイ108は、第1の秘密鍵を用いてコンフィグレーションプログラムを復号し、第2の秘密鍵を生成し、コンフィグレーションプログラムを適応化する。構成されたプログラマブルアレイ108は、第1の秘密鍵を用いて、適応化されたコンフィグレーションプログラムを再暗号化し、元のプログラムを置換する。
【選択図】図4
Description
本発明は、コンフィグレーションプログラムにより構成されると、コンフィグレーションプログラムによる論理素子のコンフィグレーションに基づく処理を実行する揮発性論理素子のプログラマブルアレイを備えるプログラマブルロジックデバイスに関する。
秘密鍵(secret key)を用いてコンテンツを暗号化した後、公開鍵/秘密鍵(public key/private key)対の公開鍵を用いて秘密鍵(secret key)を暗号化してコンテンツを配信する手法が知られている。コンテンツは、秘密鍵(secret key)を用いて暗号化され、この手法は、暗号化及び復号が相互的な処理の一部として、同様の処理に基づいて実行されるため、対称暗号化と呼ばれる。プライベートな秘密鍵(private secret key)を用いる対称暗号化及び復号は、暗号化又は復号処理を実現するために必要な演算が比較的簡単である。一方、例えば、リベスト−シャミア−エーデルマン(Rivest-Shamir-Adleman:RSA)アルゴリズムを用いた公開鍵/秘密鍵対を用いる非対称暗号方式は、演算がより複雑であるが、安全性が高い。かなりのデータ量を有するコンテンツデータの場合、暗号化に必要な演算量が多くなるため、コンテンツデータについては、非対称暗号方式に基づく公開鍵/秘密鍵対を用いる非対称暗号方式は用いられていない。このため、コンテンツ配信のための周知の装置では、コンテンツデータは、プライベートな秘密鍵で暗号化される。コンテンツを暗号化するために用いられるプライベートな秘密鍵は、コンテンツ鍵と呼ばれる。コンテンツ鍵は、公開鍵/秘密鍵対の公開鍵によって暗号化され、暗号化コンテンツと共に配信される。したがって、公開鍵に対応する秘密鍵(private key)をコンテンツの受信機に提供することによって、受信機は、コンテンツ鍵を復号することができ、このコンテンツ鍵を用いてコンテンツを復号することによって、コンテンツを再生することができる。例えば、このような構成を用いて、テレビジョン番組をセットトップボックスに放送する手法が知られており、この場合、コンテンツ鍵を復号するための公開鍵/秘密鍵対の秘密鍵(private key)をスマートカードに提供する。
フィールドプログラマブルゲートアレイ(field programmable gate array:FPGA)は、フィールドプログラマブルゲートアレイを暗号化及び/又は復号プロセッサに構成するコンフィグレーションプログラムを提供することによって暗号化又は復号プロセッサを形成するために用いることができるプログラマブルロジックデバイスの具体例である。安全性のために、FPGAには、暗号化された形式でコンフィグレーションプログラムを提供しなければならない。これは、攻撃者がコンフィグレーションプログラムを再生できたとしたら、暗号化/復号するために暗号化/復号アルゴリズム及び/又は秘密鍵(private keys)を特定することができてしまうためである。更に、暗号鍵も安全に提供する必要がある。このため、ザイリンクス社(Xilinx:www.xilinx.com)(RTM)を始めとするFPGAの幾つかの製造業者は、FPGAの一部として、不揮発性メモリに保存されるコンフィグレーションプログラムを復号するオンチップハードウェア復号プロセッサを有するFPGAを提供する。FPGAに電力が投入されると、コンフィグレーションプログラムは、まず、第1の秘密コンフィグレーション鍵を用いて、ハードウェア復号プロセッサにより復号され、復号ハードウェアのレジスタに保存される。復号ハードウェアは、更に、復号アルゴリズム及び秘密コンフィグレーション鍵を解読する試みを妨げるためのハードウェア保護機能を有する。このようにしてコンフィグレーションプログラムを暗号化でき、これにより、FPGAの機能を提供するコンフィグレーションプログラムに関連する知的所有権を保護できる。
本発明の目的は、コンフィグレーションプログラムが不揮発性メモリからロードされるプログラマブルロジックデバイスのセキュリティを高めることである。更に、本発明の目的は、プログラマブルロジックデバイスのコンフィグレーションプログラムのセキュリティを高めることである。
本発明に係るプログラマブルロジックデバイスは、コンフィグレーションプログラムがロードされ、コンフィグレーションプログラムによる論理素子のコンフィグレーションに基づく処理を実行する揮発性論理素子のプログラマブルアレイを備える。更に、プログラマブルロジックデバイスは、第1の秘密コンフィグレーション鍵を保存するレジスタを有するハードウェア復号プロセッサを備える。不揮発性メモリは、第1の秘密コンフィグレーション鍵により暗号化されたコンフィグレーションプログラムを保存する。コンフィグレーションプログラムは、第1の秘密コンフィグレーション鍵を含む。ハードウェア復号プロセッサは、プログラマブルロジックデバイスに電力が投入されると、暗号化されたコンフィグレーションプログラムを読み出し、レジスタに保存された第1の秘密コンフィグレーション鍵を用いて暗号化されたコンフィグレーションプログラムを復号し、コンフィグレーションプログラムにより論理素子のプログラマブルアレイを構成する。プログラマブルアレイは、コンフィグレーションプログラムにより構成されると、不揮発性メモリから暗号化されたコンフィグレーションプログラムを読み出し、コンフィグレーションプログラムによって提供された第1の秘密コンフィグレーション鍵を用いてコンフィグレーションプログラムを復号し、第2の秘密鍵を生成し、第2の秘密鍵をコンフィグレーションプログラムに挿入することによってコンフィグレーションプログラムを適応化する。構成されたプログラマブルアレイは、第1の秘密コンフィグレーション鍵を用いて、適応化されたコンフィグレーションプログラムを再暗号化し、メモリ内のコンフィグレーションプログラムを適応化され暗号化されたコンフィグレーションプログラムに置換する。
本発明の実施形態では、コンフィグレーションプログラムをプログラマブルロジックデバイスにロードし、ロジカルデバイスを、暗号化コンテンツを暗号化/復号する暗号化及び/又は復号プロセッサとして構成する。
本発明の実施形態では、プログラマブルロジックデバイスの不揮発性メモリに暗号化されたコンフィグレーションプログラムを供給する。コンフィグレーションプログラムは、コンフィグレーションプログラムの一部としてコンフィグレーションプログラムを暗号化する第1の秘密コンフィグレーション鍵を含む。ハードウェア復号プロセッサは、電力が投入されると、ハードウェア復号エンジンのレジスタに保存されている第1の秘密コンフィグレーション鍵を用いて、暗号化されたコンフィグレーションプログラムを復号し、コンフィグレーションプログラムを用いてプログラマブルアレイを構成する。コンフィグレーションプログラムは、プログラマブルアレイを構成して復号エンジンを提供し、復号エンジンは、プログラマブルロジックデバイスの製造業者が提供するハードウェアの復号エンジンと同じ機能を実行し、この復号エンジンは、ハードウェアの復号エンジンが実行する復号処理と同じ復号処理を実行できる。そして、構成されたプログラマブルアレイは、暗号化されたコンフィグレーションプログラムファイルを不揮発性メモリから再び読み出し、コンフィグレーションプログラムのハードウェア復号プロセッサによって復号されたバージョンにより提供される第1の秘密コンフィグレーション鍵を用いて暗号化されたコンフィグレーションプログラムを復号する。構成されたプログラマブルアレイは、自ら秘密鍵(secret key)を生成する。そして、構成されたプログラマブルアレイは、コンフィグレーションプログラムに秘密鍵を挿入し、適応化されたコンフィグレーションプログラムを形成する。そして、構成されたプログラマブルアレイは、暗号化エンジンを形成し、この暗号化エンジンは、第1の秘密コンフィグレーション鍵を用いて適応化されたコンフィグレーションプログラムを暗号化し、不揮発性メモリにおいて、暗号化されたコンフィグレーションプログラムを上書きする。これにより、プログラマブルロジックデバイスは、事実上、そのデバイスだけに既知である秘密鍵を生成する。このように、秘密鍵は、コンフィグレーション鍵を用いて暗号化される前にコンフィグレーションプログラムに加えられる。この結果、秘密鍵は、プログラマブルロジックデバイスの外部にとっては未知となり、また、第1の秘密コンフィグレーション鍵により保護されるので、不揮発性メモリに安全に保存される。
一具体例においては、秘密鍵(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の不揮発性メモリの記憶容量が限られていることに関する問題を回避できる。
以上のように、本発明の実施形態は、安全性を向上させ、攻撃者が秘密鍵を発見し、配信側の意図に反してコンテンツを再生する可能性を低減できる、プログラマブルロジックデバイスを用いて構成できる暗号化/復号プロセッサを提供する。
本発明の様々な更なる側面及び特徴は、特許請求の範囲で定義されており、この側面には、受信機、送信機、コンフィグレーションプログラム及びプログラマブルロジックデバイスのプログラミング方法が含まれる。
図1は、テレビジョン番組を暗号化し、ヘッドエンドからユーザのセットトップボックスに配信し、ユーザが視聴できるように復号する具体的な配信構成例を示している。なお、これは、本発明に基づいて構成される暗号化/復号プロセッサの1つの具体的な適用例に過ぎないことは明らかである。したがって、他の構成として、例えば、オーディオ信号、テキストデータ又は他のあらゆる種類の情報を含む異なる形式のコンテンツを用いることができる。
図1に示す構成では、ヘッドエンド2は、ユーザが視聴するためのテレビジョン受信機14に接続されたN個のセットトップボックス6、8、10、12のそれぞれに、暗号化されたビデオコンテンツ4を送信する。
既知の構成では、ビデオコンテンツは、まず、各チャンネルU1、U2、U3、U4、UNを介して各ユーザが受信する暗号化されたビデオコンテンツの各バージョンに共通であるコンテンツ鍵と呼ばれる秘密鍵を用いて暗号化される。上述のように、秘密鍵暗号化は、公開鍵暗号化に比べて演算が簡単であるので、対称暗号化処理に使用される。これにより、ビデオコンテンツ4を表現する比較的大量のデータを暗号化するために必要な処理の量は、公開鍵暗号化を実行するために必要な処理の量に比べて、実質的に低減される。なお、各セットトップボックス6、8、10、12は、ビデオコンテンツを復号するためにコンテンツ鍵を受け取らなければならない。通常、コンテンツ鍵Kcontentは、配信システムのセキュリティを維持するために、定期的に変更される。
各セットトップボックス6、8、10、12にコンテンツ鍵Kcontentを配信するために、コンテンツ鍵Kcontentは、各ユーザU1、U2、U3、U4、Unに関連付けられた公開鍵/秘密鍵対の公開鍵によって暗号化される。各ユーザには、そのユーザに固有に関連付けられたスマートカードを介して、対応する秘密鍵が提供される。使用時における動作では、コンテンツ鍵Kcontentは、公開鍵のそれぞれによって暗号化され、暗号化されたビデオコンテンツと共にセットトップボックスに送信される。これにより、各セットトップボックスは、公開鍵に対応するそのユーザの秘密鍵を用いて、コンテンツ鍵Kcontentを復号することができる。これにより、ユーザのセットトップボックスは、コンテンツ鍵Kcontentを復号した後、そのコンテンツ鍵Kcontentを用いてビデオコンテンツを復号することにより、ビデオコンテンツを再生することができる。
図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から出力する。
図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から復号されたビデオストリームを出力する。
本発明に基づくプログラマブルロジックデバイスは、暗号化プロセッサ20内及び復号プロセッサ38内のそれぞれに、第1の復号エンジン48及び暗号化エンジン24の一方又は両方を形成するように構成される。暗号化プロセッサ20及び復号プロセッサ38は、潜在的に攻撃の被害を受け易い部分である。悪意あるユーザは、復号プロセッサ38を攻撃し、秘密鍵KPRを解読することを試み、これにより、コンテンツ鍵Kcontentを復号し、この結果、正当な権限及び/又は料金の支払いなしでビデオコンテンツを復号しようとする。後述するように、本発明は、プログラマブルロジックデバイスに、公開鍵/秘密鍵対を生成し、自らを秘密鍵KPRによって適応化させる暗号化されたコンフィグレーションプログラムを提供する。そして、プログラマブルロジックデバイスは、コンフィグレーションプログラムを暗号化し、その後の使用のために不揮発性メモリにこれを保存する。このように、プログラマブルロジックデバイス自体がプライベートな秘密鍵KPRを生成するので、プログラマブルロジックデバイスの製造業者も、実際にはユーザ自身も、プライベートな秘密鍵KPRを知ることはできず、このため、暗号化コンテンツを配信する構成における安全性が実質的に向上する。このようなプログラマブルロジックデバイスの具体的構成例を図4に示す。
図4に示すように、フィールドプログラマブルゲートアレイ(FPGA)100は、不揮発性メモリ102及びハードウェア復号プロセッサ104を備える。ハードウェア復号プロセッサ104は、ハードウェア復号エンジン106と、論理素子からなるプログラマブルアレイ108とを備える。また、ハードウェア復号エンジン106は、第1の秘密コンフィグレーション鍵Kconfigが予め保存されているレジスタ110を備える。図4に示すように、不揮発性メモリ102は、第1の秘密コンフィグレーション鍵Kconfigにより暗号化されたコンフィグレーションプログラムを保存する。図4に示すように、一旦、コンフィグレーションプログラムが復号されると、このコンフィグレーションプログラムは、プログラマブルアレイ108にロードされ、プログラマブルアレイ108がある機能を実行するようにプログラマブルアレイ108をプログラミングする。図4の拡大破線によって示す部分にこの機能を示す。本発明に基づくコンフィグレーションプログラムがプログラマブルアレイ108を構成することにより、プログラマブルアレイ108によって実行される機能については、以下の段落で説明する。
標準的な動作に基づいてFPGA100に電力が投入されると、ハードウェア復号エンジン106は、不揮発性メモリ102から暗号化されたコンフィグレーションプログラムを読み出し、レジスタ110から入手した第1の秘密コンフィグレーション鍵Kconfigを用いて暗号化されたコンフィグレーションプログラムを復号する。そして、周知の動作により、プログラマブルアレイ108は、復号されたコンフィグレーションプログラムによってプログラミングされる。コンフィグレーションプログラムに基づきプログラマブルアレイ108によって構成される第1の機能的要素は、ハードウェア復号エンジン106の機能を再度実行する機能を実現する復号エンジン120である。コンフィグレーションプログラムによって構成される第2の機能的要素は、公開鍵/秘密鍵発生器122である。第3の機能的要素は制御プロセッサからなるコントローラ124であり、第4の機能的要素は暗号化エンジン126である。
復号エンジン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に供給される、暗号化され、適応化されたコンフィグレーションプログラムによって上書きし、保存する。
初期化フェーズにおけるFPGA100の動作を図5のフローチャートに示し、以下に説明する。
S1:FPGA100に電力が投入され、ハードウェア復号プロセッサ104は、不揮発性メモリ102から暗号化されたコンフィグレーションプログラムファイルを読み出す。ハードウェア復号プロセッサ104は、ハードウェア復号エンジン106のレジスタ110に保存された第1の秘密コンフィグレーション鍵を用いてコンフィグレーションプログラムを復号する。
S2:FPGA100は、復号されたコンフィグレーションプログラムを用いてプログラマブルアレイ108を構成する。ここまでのFPGA100の動作は、暗号化されたコンフィグレーションビットファイルによって自らを構成する従来の動作に等しく、これに対応する。
S4:構成されたプログラマブルアレイ108は、所定の機能を実行する。第1の機能として、構成されたプログラマブルアレイ108が、不揮発性メモリ102から、暗号化されたコンフィグレーションプログラムを再び読み出す。
S6:構成されたプログラマブルアレイ108によって形成された復号エンジン120は、コンフィグレーションプログラム内に提供される第1の秘密コンフィグレーション鍵を用いて、不揮発性メモリ102から再び読み出された暗号化されたコンフィグレーションプログラムを復号する。換言すれば、第1の秘密コンフィグレーション鍵は、コンフィグレーションプログラムが最初に復号された際、ハードウェア復号エンジン106によって提供される。
S8:構成されたプログラマブルアレイ108は、KPU_FPGA/KPR_FPGAと呼ばれる公開鍵/秘密鍵対を生成する。
S10:構成されたプログラマブルアレイ108は、公開鍵KPU_FPGAを用いて暗号化されたコンテンツデータを復号するための秘密鍵KPR_FPGAを含むようにコンフィグレーションプログラムを適応化する。このようにして、FPGA100自体は、FPGA100の外部にとって未知の秘密にされた鍵を生成し、不揮発性メモリ102に保存する。
S12:構成されたプログラマブルアレイ108は、秘密にされた秘密鍵KPR_FPGAを含む適応化されたコンフィグレーションプログラムを暗号化し、暗号化されたコンフィグレーションプログラムを不揮発性メモリ102に上書きする。
この処理により、秘密鍵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から出力することができる。
例えば、FPGA100が暗号化プロセッサを形成する場合、プログラマブルアレイ108は、暗号化エンジン210を用いてコンテンツ鍵を暗号化することができる。入力チャンネル200を介して受け取ったコンテンツ鍵Kcontentは、公開鍵KPU_FPGAを用いて、構成されたプログラマブルアレイ108によって暗号化される。暗号化エンジン210は、暗号化コンテンツ鍵Kcontentを生成し、暗号化エンジン210の出力チャンネル202から出力する。FPGA100の動作を図7のフローチャートに示し、以下に説明する。
S20:FPGA100に電力が投入され、ハードウェア復号エンジン106は、不揮発性メモリ102から暗号化されたコンフィグレーションプログラムを読み出す。ハードウェア復号エンジン106は、ハードウェア復号エンジン106のレジスタ110に保存されている第1の秘密コンフィグレーション鍵Kconfigを用いてコンフィグレーションプログラムを復号する。
S22:構成されたプログラマブルアレイ108は、復号されたコンフィグレーションプログラム内で提供された秘密鍵KPR_FPGAを含む復号プロセッサを形成する。そして、秘密鍵KPR_FPGAを用いて、公開鍵/秘密鍵対の公開鍵KPU_FPGAにより暗号化されたコンテンツを復号することができる。
S24:これに対応して、他の具体例では、構成されたプログラマブルアレイ108は、公開鍵/秘密鍵対の公開鍵KPU_FPGAを用いてコンテンツデータを暗号化する暗号化プロセッサを形成できる。公開鍵は、通常、システムの送信コンポーネントに発行されるので、この具体例では、他のFPGAプロセッサにより、公開鍵KPUを提供できる。
図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に関する情報を破棄してもよい。
更なる具体例では、コンテンツを復号するためにFPGA100が受信機に組み込まれると、コンフィグレーションプログラムを更新する機能を提供する更なる鍵をコンフィグレーションプログラムに提供する。この目的で、製造ジグ300に秘密更新鍵Kupdateを提供し、この秘密更新鍵Kupdateも、上述のように秘密コンフィグレーション鍵Kconfigによって暗号化され、不揮発性メモリ102にロードされる前に、コンフィグレーションプログラムにロードされる。使用時における動作では、図8に示すように、プログラマブルアレイ108は、コンフィグレーションプログラムで構成されると、更新プログラム用の復号エンジン310、制御プロセッサ312及び暗号化エンジン314である更なる機能的要素を含む。
使用時における動作では、プログラマブルアレイ108は、入力チャンネル200を介して、更新鍵Kupdateにより暗号化された新たなプログラム要素を受け取る。そして、復号エンジン310は、コンフィグレーションプログラムが提供する秘密更新鍵Kupdateを用いて新たなプログラム要素を復号することができる。そして、新たなプログラム要素は、新たな機能的要素によりコンフィグレーションプログラムを適応化する制御プロセッサ312に渡される。新たな機能的要素は、例えば、既存のコンフィグレーションプログラムに新たな機能を追加するためのものであってもよく、コンフィグレーションプログラムのバグを除去するためのものであってもよい。そして、適応化されたコンフィグレーションプログラムは、暗号化エンジン314に渡され、暗号化エンジン314は、秘密コンフィグレーション鍵Kconfigを用いて、新たに適応化されたコンフィグレーションプログラムを暗号化した後、不揮発性メモリ102のコンフィグレーションプログラムの旧バージョンにこの暗号化されたコンフィグレーションプログラムを上書きする。
図8に示す実施形態では、コンフィグレーションプログラムは、新たなプログラム要素に基づいて適応化されると同時に、図5のフローチャートに示すように、それ自体を初期化する際にFPGA100により生成された秘密鍵KPR_FPGAを保存する。これにより、コンフィグレーションプログラムが更新されると共に、対応する公開鍵KPU_FPGAにより暗号化された、コンテンツを復号するための秘密鍵KPR_FPGAが保存される。図8に示す実施形態の動作を図9のフローチャートに示し以下に説明する。
S40:コンフィグレーションプログラムにより構成されたプログラマブルアレイ108が追加的な機能及び/又はバグ修正機能を提供する更新プログラムを受け取る。更新プログラムは、秘密更新鍵Kupdateによって暗号化されている。
S42:構成されたプログラマブルアレイ108は、製造ジグ300を用いてコンフィグレーションプログラムに提供された秘密更新鍵Kupdateを用いて、更新プログラムを復号する復号エンジン310を形成する。
S44:更新プログラムを用いて、コンフィグレーションプログラムが適応化されると共に、公開鍵/秘密鍵対KPU_FPGA/KPR_FPGAは保存される。
S46:適応化されたコンフィグレーションプログラムは、第1の秘密コンフィグレーション鍵Kconfigを用いて暗号化され、コンフィグレーションプログラムの旧バージョンを上書きすることにより不揮発性メモリ102に保存される。
コンフィグレーションプログラムの更新における安全性を高めるために、幾つかの具体例では、更新プログラムに新たな更新鍵Knew_updateを含ませてもよい。これにより、新たな更新鍵Knew_updateにより暗号化された更新プログラムが後に受け取られると、この更新プログラムを復号することができ、この更新プログラムを再生して、コンフィグレーションプログラムの更新を実行することができる。このように、後続する更新プログラムは、更なる更新プログラムを復号するための更なる更新鍵を提供できる。このため、更新プログラムをFPGA100に送る際は、常に、後続する更新プログラムを復号するための新たな更新鍵を提供する。これには、2つの利点がある。第1に、新たなコンフィグレーションプログラムは、FPGA100と共有される秘密更新鍵によって有効に署名されるので、FPGA100は、更新プログラムの認証を保証される。第2の利点は、更新プログラムが復号され、コンテンツが解読され及びコンフィグレーションプログラムが操作される危険性が低減され、これにより安全性が高められる点である。
本発明の更なる実施形態を図10に示す。図10において、図4に示す部分と共通の部分には、同じ符号を付してあり、これらの部分の動作は同じであるため、ここでは重複する説明は行わない。図10に示す具体例が図4に示す具体例と本質的に異なる点は、FPGA100.1が公開鍵/秘密鍵対を暗号化された形式で保存するための第2の不揮発性メモリ400を備える点である。また、公開鍵/秘密鍵対KPU_FPGA/KPR_FPGAを生成するとともに、鍵発生器122.1は、対称暗号方式における秘密にされた秘密鍵Ksを生成する。コントローラ124.1は、秘密鍵Ksをコンフィグレーションプログラムに挿入することによってコンフィグレーションプログラムを適応化する。上述の具体例と同様、暗号化エンジン126.1は、適応化されたコンフィグレーションプログラムを暗号化し、第1の不揮発性メモリ102にこれを保存する。そして、暗号化エンジン126.2は、公開鍵/秘密鍵対KPU_FPGA/KPR_FPGAを暗号化し、暗号化された鍵対は、接続チャンネル402を介して第2の不揮発性メモリ400に保存される。
公開鍵/秘密鍵対KPU_FPGA/KPR_FPGAの秘密鍵は、例えば、2048ビット等、比較的長い場合があり、一方、対称暗号方式におけるプライベートな秘密鍵は、例えば、128ビット程度である。したがって、第1の不揮発性メモリ102に公開鍵/秘密鍵対の秘密鍵を保存することは、秘密鍵を保存するための記憶容量が限られているために、困難な場合がある。そこで、第2の不揮発性メモリ400に公開鍵/秘密鍵対を保存することにより、この記憶容量の不足を解消できる。公開鍵/秘密鍵対の秘密鍵の安全性を高めるために、秘密鍵Ksを生成し、これを用いて、第2の不揮発性メモリ400に保存するために公開鍵/秘密鍵対KPU_FPGA/KPR_FPGAを暗号化する。コンフィグレーションプログラムに挿入された秘密鍵Ksは、コンフィグレーションプログラムによってプログラマブルアレイ108を構成する際、鍵対KPU_FPGA/KPR_FPGAを復号するために再生することができる。
本発明の様々な側面及び特徴は、特許請求の範囲に定義されている。本発明の範囲から逸脱することなく、上述した実施形態を様々に変更することができる。特に、例示的な実施形態として、ビデオコンテンツを配信するブロードキャストシナリオを説明したが、これは、暗号化できるデータの一具体例にすぎず、本発明は、例えば、オーディオデータ、テキストデータ、金融又は財務データ、コンピュータプログラムを始めとする如何なる種類のコンテンツの通信にも適用でき、及び例えば、ブロードキャスト通信、マルチキャスト通信又はユニキャスト通信等、様々なアプリケーションに適用できることは明らかである。フィールドプログラマブルゲートアレイの具体例を説明したが、これはプログラマブルロジックデバイスの一具体例に過ぎないことは明らかである。
Claims (16)
- コンフィグレーションプログラムがロードされ、該コンフィグレーションプログラムによる論理素子のコンフィグレーションに基づく処理を実行する揮発性論理素子のプログラマブルアレイと、
第1の秘密コンフィグレーション鍵を保存するレジスタを有するハードウェア復号プロセッサと、
上記第1の秘密コンフィグレーション鍵によって暗号化され、該第1の秘密コンフィグレーション鍵を含むコンフィグレーションプログラムを保存する不揮発性メモリとを備え、
上記ハードウェア復号プロセッサは、プログラマブルロジックデバイスに電力が投入されると、
上記暗号化されたコンフィグレーションプログラムを読み出し、
上記レジスタに保存された第1の秘密コンフィグレーション鍵を用いて上記暗号化されたコンフィグレーションプログラムを復号し、
上記コンフィグレーションプログラムにより論理素子のプログラマブルアレイを構成し、
上記プログラマブルアレイは、上記コンフィグレーションプログラムにより構成されると、
上記不揮発性メモリから暗号化されたコンフィグレーションプログラムを読み出し、
上記コンフィグレーションプログラムによって提供された第1の秘密コンフィグレーション鍵を用いて上記コンフィグレーションプログラムを復号し、
第2の秘密鍵を生成し、
上記第2の秘密鍵を上記コンフィグレーションプログラムに挿入することによって該コンフィグレーションプログラムを適応化し、
上記第1の秘密コンフィグレーション鍵を用いて、上記適応化されたコンフィグレーションプログラムを再暗号化し、
上記メモリ内のコンフィグレーションプログラムを上記適応化され暗号化されたコンフィグレーションプログラムに置換することを特徴とするプログラマブルロジックデバイス。 - 上記第2の秘密鍵は、プライベートな鍵であり、上記構成されたプログラマブルアレイは、第3の公開鍵を生成し、上記第2の秘密鍵及び第3の公開鍵は、非対称暗号/復号を実行するための公開鍵/秘密鍵対を構成することを特徴とする請求項1記載のプログラマブルロジックデバイス。
- 上記第2の秘密鍵は、対称暗号化処理に用いるためのプライベートな鍵であることを特徴とする請求項1記載のプログラマブルロジックデバイス。
- 上記第1の秘密コンフィグレーション鍵は、前初期化処理段において生成され、該前初期化処理段において、該第1の秘密コンフィグレーション鍵は、ハードウェア復号プロセッサのレジスタにロードされ、上記第1の秘密コンフィグレーション鍵により暗号化されたコンフィグレーションプログラムは、不揮発性メモリにロードされることを特徴とする請求項1記載のプログラマブルロジックデバイス。
- 上記コンフィグレーションプログラムは、第4の更新鍵を有し、上記プログラマブルアレイは、上記コンフィグレーションプログラムにより構成されると、
上記第4の更新鍵により暗号化された更新コンフィグレーションプログラムを受け取り、
上記第4の更新鍵により上記更新コンフィグレーションプログラムを復号し、
上記更新コンフィグレーションプログラムを適応化し、上記第2の秘密鍵を該適応化されたコンフィグレーションプログラムに保存することを特徴とする請求項1記載のプログラマブルロジックデバイス。 - 上記プログラマブルアレイは、上記コンフィグレーションプログラムにより構成されると、
上記第1の秘密コンフィグレーション鍵により上記適応化されたコンフィグレーションプログラムを暗号化し、
上記暗号化され、適応化されたコンフィグレーションプログラムを上記不揮発性メモリに保存することを特徴とする請求項5記載のプログラマブルロジックデバイス。 - 上記更新コンフィグレーションプログラムは、第5の更新鍵を含み、上記プログラマブルアレイは、上記適応化された更新コンフィグレーションプログラムにより構成されると、
上記第5の更新鍵を用いて、該第5の更新鍵により暗号化された後続する更新プログラムを復号することを特徴とする請求項5記載のプログラマブルロジックデバイス。 - 第2の不揮発性メモリを備え、上記プログラマブルアレイは、上記コンフィグレーションプログラムにより構成されると、
非対称暗号方式における公開鍵/秘密鍵対を構成する第6の秘密鍵及び第7の公開鍵を生成し、
対称暗号方式を用いて、第2の秘密鍵により上記第6の秘密鍵及び第7の公開鍵を暗号化し、
上記第6の暗号化された秘密鍵及び第7の公開鍵対を上記第2の不揮発性メモリ保存することを特徴とする請求項3記載のプログラマブルロジックデバイス。 - 暗号化コンテンツデータを受け取り、復号する受信機において、当該受信機は、コンテンツ復号エンジン及びコンテンツ鍵復号エンジンを備え、
該コンテンツ鍵復号エンジンは、請求項1記載のプログラマブルロジックデバイスを備え、
上記プログラマブルロジックデバイスは、揮発性論理素子のプログラマブルアレイと、不揮発性メモリに接続されたハードウェア復号プロセッサと、第1の秘密コンフィグレーション鍵を保存するレジスタとを備え、
上記ハードウェア復号プロセッサは、該プログラマブルロジックデバイスに電力が投入されると、
上記レジスタに保存されている第1の秘密コンフィグレーション鍵を用いて上記不揮発性メモリに保存されている暗号化されたコンフィグレーションプログラムを復号し、
上記コンフィグレーションプログラムにより、上記論理素子のプログラマブルアレイを構成し、
上記論理素子のプログラマブルアレイは、上記コンフィグレーションプログラムにより構成されると、
公開鍵/秘密鍵対を形成する第2の秘密鍵及び第3の公開鍵を提供し、
上記暗号化コンテンツが提供する上記第3の公開鍵により暗号化された暗号化コンテンツ鍵を受け取り、
上記コンフィグレーションプログラムにより提供される第2の秘密鍵を用いてコンテンツ鍵を復号し、上記コンテンツ復号エンジンは、コンテンツ鍵を用いて暗号化コンテンツを復号することを特徴とする受信機。 - コンテンツデータを暗号化して送信する送信機において、
コンテンツ鍵によりコンテンツデータを暗号化するコンテンツ暗号化エンジンと、
プログラマブルロジックデバイスにより提供される公開鍵によりコンテンツ鍵を暗号化するコンテンツ鍵暗号化エンジンとを備え、
上記プログラマブルロジックデバイスは、
コンフィグレーションプログラムをロードすると、該コンフィグレーションプログラムによる論理素子のコンフィグレーションに基づく処理を実行する揮発性論理素子のプログラマブルアレイと、
第1の秘密コンフィグレーション鍵を保存するレジスタを有するハードウェア復号プロセッサと、
上記第1の秘密コンフィグレーション鍵により暗号化された、該第1の秘密コンフィグレーション鍵を含むコンフィグレーションプログラムを保存する不揮発性メモリとを備え、
上記ハードウェア復号プロセッサは、上記プログラマブルロジックデバイスに電力が投入されると、
上記暗号化されたコンフィグレーションプログラムを読み出し、
上記レジスタに保存された第1の秘密コンフィグレーション鍵を用いて、上記暗号化されたコンフィグレーションプログラムを復号し、
上記コンフィグレーションプログラムにより上記論理素子のプログラマブルアレイを構成し、
上記プログラマブルアレイは、上記コンフィグレーションプログラムにより構成されて、
上記不揮発性メモリから暗号化されたコンフィグレーションプログラムを読み出し、
上記コンフィグレーションプログラムが提供する第1の秘密コンフィグレーション鍵を用いて該コンフィグレーションプログラムを復号し、
第2の秘密鍵を生成し、
上記コンフィグレーションプログラムに上記第2の秘密鍵を挿入することによって該コンフィグレーションプログラムを適応化し、
上記第1の秘密コンフィグレーション鍵を用いて、上記適応化されたコンフィグレーションプログラムを再暗号化し、
上記不揮発性メモリにおいて、上記適応化及び暗号化されたコンフィグレーションプログラムによりコンフィグレーションプログラムを置換することを特徴とする送信機。 - 揮発性論理素子のプログラマブルアレイと、第1の秘密コンフィグレーション鍵を保存するレジスタを有するハードウェア復号プロセッサと、該第1の秘密コンフィグレーション鍵によって暗号化され、該第1の秘密コンフィグレーション鍵を含むコンフィグレーションプログラムを保存する不揮発性メモリとを備えるプログラマブルロジックデバイスをプログラミングするプログラミング方法において、
上記コンフィグレーションプログラムに上記第1の秘密コンフィグレーション鍵を提供するステップと、
上記不揮発性メモリから上記暗号化されたコンフィグレーションプログラムを読み出すステップと、
上記レジスタに保存された第1の秘密コンフィグレーション鍵を用いて上記暗号化されたコンフィグレーションプログラムを復号するステップと、
上記コンフィグレーションプログラムにより上記論理素子のプログラマブルアレイを構成するステップとを有し、
上記論理素子のプログラマブルアレイは、上記コンフィグレーションプログラムにより構成されると、
上記不揮発性メモリから暗号化されたコンフィグレーションプログラムを読み出すステップと、
上記コンフィグレーションプログラムによって提供された第1の秘密コンフィグレーション鍵を用いて上記コンフィグレーションプログラムを復号するステップと、
第2の秘密鍵を生成するステップと、
上記第2の秘密鍵を上記コンフィグレーションプログラムに挿入することによって該コンフィグレーションプログラムを適応化するステップと、
上記第1の秘密コンフィグレーション鍵を用いて、上記適応化されたコンフィグレーションプログラムを再暗号化するステップと、
上記メモリ内のコンフィグレーションプログラムを上記適応化され暗号化されたコンフィグレーションプログラムに置換するステップとを有するプログラミング方法。 - プログラマブルロジックデバイスの論理素子のアレイをプログラミングするコンフィグレーションプログラムにおいて、
上記プログラマブルロジックデバイスは、
当該コンフィグレーションプログラムをロードされると、該コンフィグレーションプログラムによる論理素子のコンフィグレーションに基づく処理を実行する揮発性論理素子のプログラマブルアレイと、
第1の秘密コンフィグレーション鍵を保存するレジスタを有するハードウェア復号プロセッサと、該第1の秘密コンフィグレーション鍵により暗号化された、該第1の秘密コンフィグレーション鍵を含むコンフィグレーションプログラムを保存する不揮発性メモリとを備えることを特徴とするコンフィグレーションプログラム。 - 上記プログラマブルロジックデバイスは、当該コンフィグレーションプログラムが保存される不揮発性メモリを含み、
当該コンフィグレーションプログラムは、論理素子のプログラマブルアレイにロードされると、
上記不揮発性メモリから暗号化されたコンフィグレーションプログラムを読み出し、
上記コンフィグレーションプログラムによって提供された第1の秘密コンフィグレーション鍵を用いて上記コンフィグレーションプログラムを復号し、
第2の秘密鍵を生成し、
上記第2の秘密鍵を上記コンフィグレーションプログラムに挿入することによって該コンフィグレーションプログラムを適応化し、
上記第1の秘密コンフィグレーション鍵を用いて、上記適応化されたコンフィグレーションプログラムを再暗号化し、
上記不揮発性メモリ内のコンフィグレーションプログラムを上記適応化され暗号化されたコンフィグレーションプログラムに置換することを特徴とする請求項12記載のコンフィグレーションプログラム。 - 請求項12記載のコンフィグレーションプログラムを搬送するデータ担体。
- プログラマブルロジックデバイスと共に用いるよう構成された製造ジグにおいて、
上記プログラマブルロジックデバイスは、
コンフィグレーションプログラムがロードされ、該コンフィグレーションプログラムによる論理素子のコンフィグレーションに基づく処理を実行する揮発性論理素子のプログラマブルアレイと、
第1の秘密コンフィグレーション鍵を保存するレジスタを有するハードウェア復号プロセッサと、該第1の秘密コンフィグレーション鍵によって暗号化され、該第1の秘密コンフィグレーション鍵を含むコンフィグレーションプログラムを保存する不揮発性メモリとを備え、
上記ハードウェア復号プロセッサは、上記プログラマブルロジックデバイスに電力が投入されると、
上記暗号化されたコンフィグレーションプログラムを読み出し、
上記レジスタに保存された第1の秘密コンフィグレーション鍵を用いて上記暗号化されたコンフィグレーションプログラムを復号し、
上記コンフィグレーションプログラムにより論理素子のプログラマブルアレイを構成し、
上記プログラマブルアレイは、上記コンフィグレーションプログラムにより構成されると、
上記不揮発性メモリから暗号化されたコンフィグレーションプログラムを読み出し、
上記コンフィグレーションプログラムによって提供された第1の秘密コンフィグレーション鍵を用いて上記コンフィグレーションプログラムを復号し、
第2の秘密鍵を生成し、
上記第2の秘密鍵を上記コンフィグレーションプログラムに挿入することによって該コンフィグレーションプログラムを適応化し、
上記第1の秘密コンフィグレーション鍵を用いて、上記適応化されたコンフィグレーションプログラムを再暗号化し、
上記不揮発性メモリ内のコンフィグレーションプログラムを上記適応化され暗号化されたコンフィグレーションプログラムに置換し、
当該製造ジグは、使用時に、
第1の秘密コンフィグレーション鍵を生成し、
上記第1の秘密コンフィグレーション鍵によりコンフィグレーションプログラムを暗号化し、
上記プログラマブルロジックデバイスの不揮発性メモリに上記暗号化されたコンフィグレーションプログラムをロードし、
上記プログラマブルロジックデバイスのレジスタに上記第1の秘密コンフィグレーション鍵をロードすることを特徴とする製造ジグ。 - 揮発性論理素子のプログラマブルアレイと、第1の秘密コンフィグレーション鍵を保存するレジスタを有するハードウェア復号プロセッサと、該第1の秘密コンフィグレーション鍵によって暗号化され、該第1の秘密コンフィグレーション鍵を含むコンフィグレーションプログラムを保存する不揮発性メモリとを備えるプログラマブルロジックデバイスをプログラミングするプログラミング装置において、
上記コンフィグレーションプログラムに上記第1の秘密コンフィグレーション鍵を提供する提供手段と、
上記不揮発性メモリから上記暗号化されたコンフィグレーションプログラムを読み出す読出手段と、
上記レジスタに保存された第1の秘密コンフィグレーション鍵を用いて上記暗号化されたコンフィグレーションプログラムを復号する復号手段と、
上記コンフィグレーションプログラムにより論理素子のプログラマブルアレイを構成する構成手段とを備え、
上記プログラマブルアレイは、上記コンフィグレーションプログラムにより構成されると、
上記不揮発性メモリから暗号化されたコンフィグレーションプログラムを読み出す読出手段と、
上記コンフィグレーションプログラムによって提供された第1の秘密コンフィグレーション鍵を用いて上記コンフィグレーションプログラムを復号する復号手段と、
第2の秘密鍵を生成する生成手段と、
上記第2の秘密鍵を上記コンフィグレーションプログラムに挿入することによって該コンフィグレーションプログラムを適応化する適応化手段と、
上記第1の秘密コンフィグレーション鍵を用いて、上記適応化されたコンフィグレーションプログラムを再暗号化する再暗号化手段と、
上記メモリ内のコンフィグレーションプログラムを上記適応化され暗号化されたコンフィグレーションプログラムに置換する置換手段とを備えることを特徴とするプログラミング装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0506117A GB2424557A (en) | 2005-03-24 | 2005-03-24 | FPGA with hardware decryptor for configuration programme which adds second key to itself before re-encrypting and overwriting itself in memory when run |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006295916A true JP2006295916A (ja) | 2006-10-26 |
Family
ID=34566471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006083001A Pending JP2006295916A (ja) | 2005-03-24 | 2006-03-24 | プログラマブルロジックデバイス |
Country Status (3)
Country | Link |
---|---|
US (1) | US7783897B2 (ja) |
JP (1) | JP2006295916A (ja) |
GB (1) | GB2424557A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014508343A (ja) * | 2011-01-05 | 2014-04-03 | インテル・コーポレーション | オープンなコンピューティングプラットフォーム内でハードウェアのルート・オブ・トラストを構築し、保護されたコンテンツ処理を提供する方法および装置 |
JP2020521341A (ja) * | 2019-03-29 | 2020-07-16 | アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited | 識別情報に基づく暗号鍵の管理 |
US11023620B2 (en) | 2019-03-29 | 2021-06-01 | Advanced New Technologies Co., Ltd. | Cryptography chip with identity verification |
US11063749B2 (en) | 2019-03-29 | 2021-07-13 | Advanced New Technologies Co., Ltd. | Cryptographic key management based on identity information |
JP2021190081A (ja) * | 2020-06-04 | 2021-12-13 | ▲しゃーん▼碼科技股▲ふん▼有限公司 | 機密データを保護することが可能な電子機器 |
US11251950B2 (en) | 2019-03-29 | 2022-02-15 | Advanced New Technologies Co., Ltd. | Securely performing cryptographic operations |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7162644B1 (en) | 2002-03-29 | 2007-01-09 | Xilinx, Inc. | Methods and circuits for protecting proprietary configuration data for programmable logic devices |
US20080294560A1 (en) * | 2007-05-22 | 2008-11-27 | Nokia Corporation | Method of storing content |
US8908870B2 (en) | 2007-11-01 | 2014-12-09 | Infineon Technologies Ag | Method and system for transferring information to a device |
US8627079B2 (en) | 2007-11-01 | 2014-01-07 | Infineon Technologies Ag | Method and system for controlling a device |
US20090119503A1 (en) * | 2007-11-06 | 2009-05-07 | L3 Communications Corporation | Secure programmable hardware component |
US20090240951A1 (en) * | 2008-02-05 | 2009-09-24 | Viasat, Inc. | System security manager |
US8218772B2 (en) * | 2008-06-30 | 2012-07-10 | Samsung Electronics Co., Ltd. | Secure multicast content delivery |
US8095800B2 (en) * | 2008-11-20 | 2012-01-10 | General Dynamics C4 System, Inc. | Secure configuration of programmable logic device |
US8022724B1 (en) * | 2009-11-25 | 2011-09-20 | Xilinx, Inc. | Method and integrated circuit for secure reconfiguration of programmable logic |
US9483416B1 (en) * | 2010-10-21 | 2016-11-01 | Xilinx, Inc. | Secure processor operation using integrated circuit configuration circuitry |
CN102231665A (zh) * | 2011-06-28 | 2011-11-02 | 中国人民解放军国防科学技术大学 | 基于容错的rc5加密阵列fpga设计方法 |
DE112011105688T5 (de) * | 2011-09-29 | 2014-07-17 | Hewlett Packard Development Company, L.P. | Ent- und Verschlüsselung von Anwendungsdaten |
JP5646125B1 (ja) * | 2011-12-02 | 2014-12-24 | エンパイア テクノロジー ディベロップメント エルエルシー | サービスとしての集積回路 |
US9755781B2 (en) | 2012-11-28 | 2017-09-05 | Sony Corporation | Broadcast system and method for error correction using redundant data |
US9692630B2 (en) * | 2012-11-28 | 2017-06-27 | Sony Corporation | Receiver for receiving data in a broadcast system |
US9838157B2 (en) * | 2012-11-28 | 2017-12-05 | Sony Corporation | Receiver for receiving data in a broadcast system using redundancy data |
US8874898B2 (en) * | 2012-12-14 | 2014-10-28 | Intel Corporation | Power line based theft protection of electronic devices |
US9705501B2 (en) * | 2014-10-01 | 2017-07-11 | Maxim Integrated Products, Inc. | Systems and methods for enhancing confidentiality via logic gate encryption |
CN104700044B (zh) * | 2015-03-03 | 2017-10-24 | 清华大学 | 寄存器输入输出互换的抗故障注入攻击方法和装置 |
US9847980B2 (en) | 2015-06-17 | 2017-12-19 | Microsoft Technology Licensing, Llc | Protecting communications with hardware accelerators for increased workflow security |
CN110716728B (zh) * | 2019-09-25 | 2020-11-10 | 支付宝(杭州)信息技术有限公司 | Fpga逻辑的可信更新方法及装置 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5970142A (en) * | 1996-08-26 | 1999-10-19 | Xilinx, Inc. | Configuration stream encryption |
US6356637B1 (en) * | 1998-09-18 | 2002-03-12 | Sun Microsystems, Inc. | Field programmable gate arrays |
US6457125B1 (en) * | 1998-12-14 | 2002-09-24 | Compaq Computer Corporation | Encrypted download of SRAM-based FPGAs |
US6654889B1 (en) * | 1999-02-19 | 2003-11-25 | Xilinx, Inc. | Method and apparatus for protecting proprietary configuration data for programmable logic devices |
US6351814B1 (en) * | 1999-07-21 | 2002-02-26 | Credence Systems Corporation | Field programmable gate array with program encryption |
GB9930145D0 (en) * | 1999-12-22 | 2000-02-09 | Kean Thomas A | Method and apparatus for secure configuration of a field programmable gate array |
US7240218B2 (en) * | 2000-02-08 | 2007-07-03 | Algotronix, Ltd. | Method of using a mask programmed key to securely configure a field programmable gate array |
US6965675B1 (en) * | 2000-11-28 | 2005-11-15 | Xilinx, Inc. | Structure and method for loading encryption keys through a test access port |
US6981153B1 (en) * | 2000-11-28 | 2005-12-27 | Xilinx, Inc. | Programmable logic device with method of preventing readback |
US6931543B1 (en) * | 2000-11-28 | 2005-08-16 | Xilinx, Inc. | Programmable logic device with decryption algorithm and decryption key |
US7058177B1 (en) * | 2000-11-28 | 2006-06-06 | Xilinx, Inc. | Partially encrypted bitstream method |
US6957340B1 (en) * | 2000-11-28 | 2005-10-18 | Xilinx, Inc. | Encryption key for multi-key encryption in programmable logic device |
US7117372B1 (en) * | 2000-11-28 | 2006-10-03 | Xilinx, Inc. | Programmable logic device with decryption and structure for preventing design relocation |
US7039814B2 (en) * | 2001-03-07 | 2006-05-02 | Sony Corporation | Method for securing software via late stage processor instruction decryption |
GB0114317D0 (en) * | 2001-06-13 | 2001-08-01 | Kean Thomas A | Method of protecting intellectual property cores on field programmable gate array |
JP2004007472A (ja) * | 2002-03-22 | 2004-01-08 | Toshiba Corp | 半導体集積回路、データ転送システム、及びデータ転送方法 |
US7162644B1 (en) * | 2002-03-29 | 2007-01-09 | Xilinx, Inc. | Methods and circuits for protecting proprietary configuration data for programmable logic devices |
US7197647B1 (en) * | 2002-09-30 | 2007-03-27 | Carnegie Mellon University | Method of securing programmable logic configuration data |
JPWO2006109738A1 (ja) * | 2005-04-07 | 2008-11-20 | 松下電器産業株式会社 | 回路構築装置 |
-
2005
- 2005-03-24 GB GB0506117A patent/GB2424557A/en not_active Withdrawn
-
2006
- 2006-03-07 US US11/368,594 patent/US7783897B2/en not_active Expired - Fee Related
- 2006-03-24 JP JP2006083001A patent/JP2006295916A/ja active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014508343A (ja) * | 2011-01-05 | 2014-04-03 | インテル・コーポレーション | オープンなコンピューティングプラットフォーム内でハードウェアのルート・オブ・トラストを構築し、保護されたコンテンツ処理を提供する方法および装置 |
JP2020521341A (ja) * | 2019-03-29 | 2020-07-16 | アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited | 識別情報に基づく暗号鍵の管理 |
US11023620B2 (en) | 2019-03-29 | 2021-06-01 | Advanced New Technologies Co., Ltd. | Cryptography chip with identity verification |
US11063749B2 (en) | 2019-03-29 | 2021-07-13 | Advanced New Technologies Co., Ltd. | Cryptographic key management based on identity information |
US11088831B2 (en) | 2019-03-29 | 2021-08-10 | Advanced New Technologies Co., Ltd. | Cryptographic key management based on identity information |
US11251941B2 (en) | 2019-03-29 | 2022-02-15 | Advanced New Technologies Co., Ltd. | Managing cryptographic keys based on identity information |
US11251950B2 (en) | 2019-03-29 | 2022-02-15 | Advanced New Technologies Co., Ltd. | Securely performing cryptographic operations |
US11258591B2 (en) | 2019-03-29 | 2022-02-22 | Advanced New Technologies Co., Ltd. | Cryptographic key management based on identity information |
JP2021190081A (ja) * | 2020-06-04 | 2021-12-13 | ▲しゃーん▼碼科技股▲ふん▼有限公司 | 機密データを保護することが可能な電子機器 |
JP7170999B2 (ja) | 2020-06-04 | 2022-11-15 | ▲しゃーん▼碼科技股▲ふん▼有限公司 | 機密データを保護することが可能な電子機器 |
US11502832B2 (en) | 2020-06-04 | 2022-11-15 | PUFsecurity Corporation | Electronic device capable of protecting confidential data |
Also Published As
Publication number | Publication date |
---|---|
US20060265603A1 (en) | 2006-11-23 |
GB0506117D0 (en) | 2005-05-04 |
US7783897B2 (en) | 2010-08-24 |
GB2424557A (en) | 2006-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2006295916A (ja) | プログラマブルロジックデバイス | |
US8819409B2 (en) | Distribution system and method for distributing digital information | |
CN102160325B (zh) | 利用散列密钥的simulcrypt密钥共享 | |
US8958558B2 (en) | Conditional entitlement processing for obtaining a control word | |
US7039816B2 (en) | Using smartcards or other cryptographic modules for enabling connected devices to access encrypted audio and visual content | |
US9094699B2 (en) | System and method for security key transmission with strong pairing to destination client | |
CN100435581C (zh) | 条件访问终端设备和方法 | |
US20130262869A1 (en) | Control word protection | |
MXPA01010347A (es) | Metodo de y aparato para proporcionar la comunicacion segura de datos digitales entre dispositivos. | |
JP5933705B2 (ja) | 受信機ソフトウェアの保護 | |
JP2007257119A (ja) | 情報処理装置 | |
US20090022318A1 (en) | Content data distribution terminal and content data distribution system | |
RU2534925C2 (ru) | Способ защиты, способ расшифрования, носитель информации и терминал для способа защиты | |
KR20200089683A (ko) | 컨텐츠 소비 장치의 능력 철회 | |
WO2016088273A1 (ja) | セキュリティ装置および制御方法 | |
KR101270086B1 (ko) | 수신 장치에서 실행될 동작의 내용을 포함하는 메시지의전송 방법 | |
EP1978467A1 (en) | Integrated circuit and method for secure execution of software | |
KR20100071852A (ko) | 방송 프로그램 보호 방법 및 시스템 | |
KR20080016298A (ko) | 데이터 송신방법 및 수신방법, 데이터 전송시스템과 데이터재생장치 | |
TW201141196A (en) | Method for updating a security processor, corresponding computer program and processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20080418 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20080422 |