...

AN 556: アルテラFPGAにおけるデザイン・セキュリティ機能の使用

by user

on
Category: Documents
11

views

Report

Comments

Transcript

AN 556: アルテラFPGAにおけるデザイン・セキュリティ機能の使用
アルテラ FPGA におけるデザイン・
セキュリティ機能の使用
この資料は英語版を翻訳したもので、内容に相違が生じる場合には原文を優先します。こちらの日本語版は参考用としてご利用ください。設計の際
には、最新の英語版で内容をご確認ください。
アプリケーション・ノート
AN-556-2.1
このアプリケーション・ノートでは、コンフィギュレーション・ファイルによる複
製、リーバス・エンジニアリングおよび改ざんからデザインを保護するために
Altera® 40 nm および 28 nm でのデザイン・セキュリティを使用する方法について説明
します。このアプリケーション・ノートでは、40 nm および 28 nm の FPGA デザイ
ン・セキュリティ機能のハードウェア要件およびソフトウェア要件を提供します。
また、安全なコンフィギュレーション・フローの実装手順も提供します。
1
このアプリケーション・ノートでは、「40 nm」または「28 nm」の FPGA を使用しま
す。表 1 に、サポートされる FPGA とその適用されるデバイスを示します。
表 1. サポートされる FPGA
FPGA
デバイス
40 nm
Arria®
28 nm
Stratix V、Arria V、および
Cyclone® V
II および Stratix® IV
このアプリケーション・ノートでは、以下について説明します。
■
2 ページの「デザイン・セキュリティ機能の概要」
■
5 ページの「ハードウェアおよびソフトウェア要件」
■
6 ページの「安全なコンフィギュレーション・フローの実装手順」
■
26 ページの「サポートされているコンフィギュレーション手法」
■
28 ページの「セキュリティ・モードの検証」
■
30 ページの「暗号化機能がイネーブルしたシリアル・フラッシュ・ローダのサ
ポート」
■
33 ページの「28 nm FPGA の JTAG セキュリティ保護モード」
■
33 ページの「米国の輸出コントロール」
競争の激しい一般用および軍用環境では、デザイン・セキュリティは、デジタル設
計者にとって重要な考慮事項です。FPGA は、より大規模かつ条件の厳しいシステ
ム・コンポーネントで、その役割を果たし始めており、複製、リバース・エンジニ
アリング、および改ざんからデザインを保護することがますます重要になっていま
す。FPGA は、これらの問題に対処しており、業界標準の暗号化アルゴリズムの 256
ビットの高度暗号化標準(Advanced Encryption Standard、略称:AES)アルゴリズムを
使用してコンフィギュレーション・ビットストリームを暗号化する機能を備えてい
ます。
101 Innovation Drive
San Jose, CA 95134
www.altera.com
6 月 2012 年
© 2012 年 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS,
QUARTUS and STRATIX words and logos are trademarks of Altera Corporation and registered in the U.S. Patent and Trademark
Office and in other countries. All other words and logos identified as trademarks or service marks are the property of their
respective holders as described at www.altera.com/common/legal.html. Altera warrants performance of its semiconductor
products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any
products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use
of any information, product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are
advised to obtain the latest version of device specifications before relying on any published information and before placing orders
for products or services.
ISO
9001:2008
Registered
Altera Corporation
Feedback Subscribe
デザイン・セキュリティ機能の概要
2
デバイスの動作中、FPGA は SRAM セルにコンフィギュレーション・データを格納し
ます。SRAM メモリは揮発性のため、デバイスに電源を投入するたびにコンフィギュ
レーション・データを SRAM セルにロードする必要があります。コンフィギュレー
ション・データは、通常、外部メモリ・ソース(フラッシュ・メモリまたはコン
フィギュレーション・デバイスなど)から FPGA に転送されます。コンフィギュレー
ション・データがメモリ・ソースから FPGA に転送されているときに、それを傍受す
ることができます。傍受されたコンフィギュレーション・データは、別のデバイス
をコンフィギュレーションするのに使用できます。
FPGA は、揮発性と不揮発性の両方のキー・ストレージを提供します。デザイン・セ
キュリティ機能を使用しているとき、キーは FPGA に格納されます。セキュリティ・
モードに応じて、FPGA をコンフィギュレーションするには、同じセキュリティ・
キーで暗号化されたコンフィギュレーション・ファイルを使用するか、またはボー
ド・テストのために一般のコンフィギュレーション・ファイルを使用することがで
きます。
デザイン・セキュリティ機能は、外部ホスト(MAX® II または MAX V デバイスやマイ
クロプロセッサ)でファースト・パッシブ・パラレル(FPP)コンフィギュレーショ
ン・モードを使用して FPGA をコンフィギュレーションするとき、あるいはアクティ
ブ・シリアル(AS)またはパッシブ・シリアル (PS) コンフィギュレーション手法を
使用するときに使用できます。
f 詳細は、該当するデバイス・ハンドブックの「Configuration, Design Security, and
Remote System Upgrades」の章を参照してください。
デザイン・セキュリティ機能の概要
FPGA のデザイン・セキュリティ機能は、複製、リバース・エンジニアリング、およ
び改ざんから保護します。
表 2 に、ソリューションの安全性を高めるためのデザイン手法を示します。
表 2. FPGA のデザイン・セキュリティ手法 ( その1 )
デザイン手法
40 nm FPGA
28 nm FPGA
不揮発性キー
不揮発性キーは、他のポリヒューズ間の金属の層の下にポリヒューズに格納
されているため、簡単な目視検査で特定のヒューズの機能を決定することは
難しいです。また、さらなるセキュリティを提供するため、追加のフィジカ
ル・セキュリティをポリヒューズの周りにデザインされます。
コンフィギュレーション・
ファイルのリードバック・
サポート
FPGAs は、コンフィギュレーション・ファイルのリードバックをサポートし
ません。これにより、コンフィギュレーション・ファイルが復号化された後
で、それをリードバックしようとする試みは阻止されます。
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
2012 年 6 月
Altera Corporation
デザイン・セキュリティ機能の概要
3
表 2. FPGA のデザイン・セキュリティ手法 ( その2 )
デザイン手法
40 nm FPGA
28 nm FPGA
256 ビットのシーケンス要件
256 ビット・キーを生成するために、
およびそのキーを 40 nm FPGA にプロ
グラムするには、2 つの 256 ビット・
シーケンスが必要です。FPGA デザイ
ンは、256 ビット・キーを別の FPGA
にプログラムし、それを暗号化され
たコンフィギュレーション・ファイ
ルでコンフィギュレーションしても
複製できません。キーから 256 ビッ
ト・シーケンスを生成することは実
質的に不可能です。
2 つの 256 ビット・シーケンスの代わ
りに 1 つの 256 ビット・キーが生成
され、プログラムされます。もう 1
つの 256 ビットは、28 nm FPGA 内に
ハードコードされます。
改ざん保護ビットがセット
された不揮発性キー
改ざん保護ビットがセットされた不揮発性キーの場合、キーを格納するため
に使用されるポリ・ヒューズは不揮発性キーであり、ワンタイム・プログラ
マブルです。電池は必要ありません。FPGA はキーを使用してプログラムされ
た後、同じキーで暗号化されたコンフィギュレーション・ファイルでデバイ
スをコンフィギュレーションすることができます。暗号化されていないコン
フィギュレーション・ファイルや間違ったキーで暗号化されたコンフィギュ
レーション・ファイルでデバイスをコンフィギュレーションしようとしても、
コンフィギュレーションは失敗します。したがって、デザイン・ファイルの
改ざんを検出することができます。
セキュリティ暗号化アルゴリズム
FPGA は、AES アルゴリズムを使用してユーザー定義 256 ビット・キーによってコン
フィギュレーション・データの復号化を行う、AES 復号化ブロックを備えます。暗
号化されたデータを受信する前に、ユーザー定義 256 ビット・キーをデバイスに書
き込む必要があります。
AES アルゴリズムは、データの暗号化と復号化を 256 ビットのブロック単位で行う
共通ブロック暗号です。暗号化されたデータに対して、バイト置換、データ・ミキ
シング、データ・シフティング、およびキー追加を含む一連の変換が行われます。
FPGA デバイスをコンフィギュレーションする前に、コンフィギュレーション・デー
タの復号化のための AES アルゴリズムを使用する AES 復号ブロックが含まれていま
す。セキュリティ機能が使用されていない場合、AES 復号はバイパスされます。
FPGA の AES 実装は、連邦情報処理標準規格 FIPS-197 規格に準拠していることが確認
されます。
f AES アルゴリズムについて詳しくは、
「http://csrc.nist.gov」で「Federal Information
Processing Standards Publication FIPS-197」または「AES Algorithm (Rijndael) Information」
を参照してください。
f FPGA の AES 検証について詳しくは、「http://csrc.nist.gov」で NIST(標準技術局)によ
る「Advanced Encryption Standard Algorithm Validation List」を参照してください。
不揮発性および揮発性のキー・ストレージ
FPGA は、揮発性と不揮発性の両方のキー・ストレージを提供します。揮発性キー・
ストレージはキーの更新を可能にするバッテリ・バックアップを必要とします。不
揮発性キー・ストレージは 1 つだけのキーがプログラムすることができますが、
バッテリーを必要としません。
6 月 2012 年
Altera Corporation
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
デザイン・セキュリティ機能の概要
4
1
一例として、BR1220(–30°C ~ +80°C)や BR2477A (–40°C ~ +125°C)などの、揮発性
キー・ストレージに使用されるリチウム・コイン電池タイプのバッテリがあります。
表 3 に、揮発性および不揮発性キー・ストレージの比較を示します。
表 3. 揮発性および不揮発性キーの比較
オプション
揮発性キー
不揮発性キー
鍵長
256 ビット
256 ビット
キーのプログラマビリティ
再プログラム可能かつ
消去可能のキー
ワンタイム・プログラマブ
ル・キー
外部バッテリ
必須
不要
オンボード
オンボードおよびオフボード
キーのプログラミング手法
(1)
デザインの保護
複製、リバース・エンジニアリング、および不正改ざ
んから保護 (3)
表 3 の注:
(1) キーのプログラミングは JTAG インタフェースを介して実行されます。
(2) 改ざん保護の揮発性キーは、Arria II GX、Stratix V、Arria V、および Cyclone V デバイスでのみ使用で
きます。
(3) 改ざんは、揮発性キーの改ざん保護ビットが設定されている時にのみ防止され、したがって、暗号
化されないプログラマ・オブジェクト・ファイル(.pof)のコンフィギュレーションを防止します。
c 改ざん保護ビットをイネーブルにすると、FPGA デバイスにテスト・モードをディ
セーブルします。テスト・モードをディセーブルにすると、それを撤回できないし、
アルテラは故障解析を行うことを防止します。改ざん保護ビットをイネーブルする
ために、アルテラ・テクニカル・サポートにお問い合わせください。
f 40 nm および 28 nm FPGA で利用可能なセキュリティ・モードについて詳しくは、該当
するデバイス・ハンドブックの「Configuration, Design Security, and Remote System
Upgrades」の章を参照してください。
キー・プログラミング
表 4 に、キー・プログラミングの 4 つの異なる方法を示します。
表 4. キー・プログラミング方法
プログラミング手法
オン・ボード
(1)
方法
プログラミング・ツール
プロトタイプ作成
EthernetBlaster、JTAG
Technologies、ByteBlaster™ II、
USB-Blaster™ (2)
量産
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
JTAG Technologies
2012 年 6 月
Altera Corporation
ハードウェアおよびソフトウェア要件
5
表 4. キー・プログラミング方法
(1)
プログラミング手法
方法
オフ・ボード
プログラミング・ツール
プロトタイプ作成
System General
(3)
量産
System General
(3)
表 4 の注:
(1) プログラミングのサポートについて詳しくは、アルテラ・テクニカル・サポートにお問い合わせく
ださい。
(2) ByteBlaster II および USB-Blaster は、揮発性キー・プログラミングのみサポートします。
EthernetBlaster および JTAG Technologies は、揮発性および不揮発性のキー・プログラミングをサポー
トします。不揮発性のキー・プログラミングの場合、適切なポリヒューズ用の JTAG TCK パルス幅
(周期)を調節する必要があります。
(3) 28 nm FPGA の場合、System General ツールでのデザイン・セキュリティのキー・プログラミング・サ
ポートは、まだ可用性を保留しますが、40 nm FPGA に使用できます。
キー・プログラミングは、以下の定義を使用します。
■
オン・ボード:デバイスがボード上でプログラムされている手法
■
オフ・ボード:デバイスが別のプログラミング・システム上でプログラムされて
いる手法
■
プロトタイプ作成:初期に、特定の方法が正しく動作するかどうかを検証するた
めに使用される方法
■
量産:量産に使用される方法
ハードウェアおよびソフトウェア要件
この項では、FPGA デザイン・セキュリティ機能のハードウェア要件およびソフト
ウェア要件について説明します。この機能を使用するとき、揮発性または不揮発性
キーは FPGA に格納されます。キーは、FPGA がコンフィギュレーションの前にプロ
グラムされ、ユーザー・モードに入ります。
ハードウェア要件
表 5 に、キー・プログラミングを成功させるために、従う必要がある電圧仕様を示
します。
表 5. デザイン・セキュリティ機能の電圧仕様
パラメータ
TCK 周期
(1)
キー・プログラミング・モード
10 µs ± 1 µs
周囲温度
25°C ± 5°C
電圧(VCCBAT)(2)
—
表 5 の注:
(1) この仕様は、不揮発性キー・プログラミングにのみ適用されます。揮発性キー・プログラミング
TCK 周期仕様については、該当するデバイス・データシートの JTAG Specification の項を参照してく
ださい。
(2) VCCBAT は揮発性キー・ストレージ専用の電源で、VCCIO や VCC など、その他のオンチップ電源とは
共有されません。VCCBAT はオン・チップ電源の状況に関係なく、揮発性レジスタに電源を供給し続
けます。揮発性キーを使用しない場合は、VCCBAT を GND または 3.0 V 電源のいずれかに接続する
ことができます。電圧仕様について詳しくは、該当する 「DC およびスイッチング特性」の章また
は 「デバイス・データシート」を参照してください。
6 月 2012 年
Altera Corporation
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
安全なコンフィギュレーション・フローの実装手順
6
1
電源投入後、VCCBAT が確実にフル・レール電圧で安定するように、キーのプログラ
ミングを開始する前に、デバイスは POR を終了するまでに待機する必要があります。
VCCBAT ピンが GND に接続する場合、揮発性の暗号化キー・プログラミング(.ekp)
ファイルをプログラムする時に検証エラーが発生する可能性があります。VCCBAT
ピンが正常に動作させるために推奨 VCCBAT 電圧に接続する必要があります。
f FPGA の POR 仕様について詳しくは、該当するデバイス・ハンドブックの
「Configuration, Design Security, and Remote System Upgrades」の章の「POR 仕様」の項を
参照してください。
ソフトウェア要件
40 nm FPGA のデザイン・セキュリティ機能をイネーブルするには、Quartus® II ソフ
トウェアのバージョン 9.0 以降を使用する必要があります。28 nm FPGA のデザイン・
セキュリティ機能をイネーブルするには、Quartus II ソフトウェアのバージョン 11.0
以降を使用する必要があります。デザイン・セキュリティ機能をイネーブルするに
は、「アルテラ・テクニカル・サポート」からライセンス・ファイルを入手します。
安全なコンフィギュレーション・フローの実装手順
安全なコンフィギュレーション・フローを実装するには、図 1 に示すように、これ
らのステップに従います。
1. 暗号化キー・プログラミング(.ekp)ファイルを生成して、コンフィギュレー
ション・データの暗号化を行います。
Quartus II コンフィギュレーション・ソフトウェアは、キー・プログラミング・
ファイルと暗号化されたコンフィギュレーション・ファイルを生成するために、
常にユーザー定義 256 ビット・キーを使用します。暗号化されたコンフィギュ
レーション・ファイルは、フラッシュ・メモリやコンフィギュレーション・デバ
イスやなどの外部メモリ内に格納されます。詳細は、7 ページの「ステップ 1:
.ekp ファイルの生成およびコンフィギュレーション・ファイルの暗号化」を参照
してください。
2. ユーザー定義 256 ビット・キーを FPGA にプログラムします。
詳細は、19 ページの「ステップ 2a:揮発性キーを FPGA 内にプログラム」と 20
ページの「ステップ 2b:不揮発性キーを FPGA 内にプログラム」を参照してくだ
さい。
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
2012 年 6 月
Altera Corporation
安全なコンフィギュレーション・フローの実装手順
7
3. 40 nm または 28 nm FPGA デバイスをコンフィギュレーションします。
パワーアップ時に、外部メモリ・ソースは暗号化されたコンフィギュレーショ
ン・ファイルを FPGA に送られます。デバイスは格納されたキーを使用してファ
イルの復号化を実行し、自身のコンフィギュレーションに使用されます。暗号化
されたコンフィギュレーション・データによる FPGA をコンフィギュレーション
する方法について詳しくは、26 ページの「ステップ 3: 暗号化されたコンフィ
ギュレーション・データによって 40 nm または 28 nm FPGA をコンフィギュレー
ション」を参照してください。
図 1. 安全なコンフィギュレーション・フロー
Step 1. Generate the Encryption Key Programming File
Encrypt Configuration Data and Store in External Memory
Quartus II
Configuration
Data
AES
Encryptor
Encrypted
Configuration
Data
Encryption Key
Programming File
Step 3. Configure the Devices Using
Encrypted Configuration Data
Memory
Storage
Encrypted
Configuration
Data
Encrypted
Configuration
Data
FPGA
AES
Decryptor
Volatile and
Non-Volatile
Key Storage
AES KEY
AES KEY
Step 2. Program Key into Devices
ステップ 1:.ekp ファイルの生成およびコンフィギュレーション・
ファイルの暗号化
FPGA のデザイン・セキュリティ機能を使用するには、.ekp ファイルを生成し、
Quartus II ソフトウェアを使用してコンフィギュレーション・ファイルを暗号化する
必要があります。Quartus II ソフトウェアについては、40 nm の FPGA の場合、両方に
同じ 2 つの 256 ビットのシーケンスを使用することを確認します。28 nm の FPGA の
場合、キーの 1 つだけの 256 ビットのシーケンスを使用します。キーは、任意の
Quartus II で生成されたコンフィギュレーション・ファイルに保存されていないで、
実際の 256 ビット・キーはビット・シーケンスから生成されます。したがって、別
の 40 nm または 28 nm の FPGA にキーをコピーすることは不可能です。
f デザイン・セキュリティ機能をイネーブルにするには、ライセンス・ファイルを取
得する必要があります。支援については、アルテラ・テクニカル・サポートにお問い
合わせください。
.ekp ファイルのフォーマットは、プログラミングに使用されるハードウェアおよび
システムによって異なります。Quartus II ソフトウェアでサポートされる 3 種類の
ファイルのフォーマットがあります。
6 月 2012 年
■
JAM Byte Code (.jbc)ファイル
■
Jam™ Standard Test and Programming Language (STAPL) Format (.jam)ファイル
■
Serial Vector Format (.svf)ファイル
Altera Corporation
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
安全なコンフィギュレーション・フローの実装手順
8
1
.ekp ファイルは、Quartus II ソフトウェアによって自動的に生成されます。これらの
ファイルは、キー・プログミングで必要とされる場合、Quartus II ソフトウェアを使
用して .jam および .svf ファイルを作成する必要があります。Quartus II ソフトウェア
は、同じプロジェクト・ディレクトリ内に .ekp ファイルの JBC フォーマットを生成
します。
1
アルテラは、.ekp ファイルの機密性を保持することを推奨します。
EthernetBlaster 通信ケーブルまたは USB-Blaster ダウンロード・ケーブルおよび
Quartus II ソフトウェアと共に .ekp ファイルを使用します。EthernetBlaster 通信ケーブ
ルは、揮発性および不揮発性の両方のキー・プログラミングをサポートすることが
できます。USB-Blaster ダウンロード・ケーブルは、揮発性キー・プログラミングで
のみ使用されます。.jam ファイルのフォーマットは、一般的にサード・パーティの
プログラミング・ベンダおよび JTAG プログラマ・ベンダで使用されます。.svf ファ
イルのフォーマットは、JTAG プログラマ・ベンダで使用されます。
Quartus II ソフトウェアによるシングル・デバイス .ekp キー・ファイ
ルの生成およびコンフィギュレーション・ファイルの暗号化
シングル・デバイス .ekp ファイルを生成し、コンフィギュレーション・ファイルを
暗号化するには、次の手順に従います。
1. アルテラ・テクニカル・サポートからデザイン・セキュリティ機能をイネーブル
するためのライセンス・ファイルを入手します。
2. Quartus II ソフトウェアを起動します。
3. Tools メニューで、License Setup をクリックします。Options ダイアログ・ボック
スで、License Setup オプションが表示されます。
4. License file 欄で、ライセンス・ファイルの位置およびファイル名を入力するか、
あるいはライセンス・ファイルの位置に移動して、そのライセンス・ファイルを
選択します。
5. OK をクリックします。
6. 下記のオプションのいずれかを用いてデザインをコンパイルします。
a. Processing メニューの Start Compilation をクリックします。
b. Processing メニューの Start をポイントして Start Assembler をクリックします。
暗号化されていない SRAM Object File (.sof)が生成されます。
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
2012 年 6 月
Altera Corporation
安全なコンフィギュレーション・フローの実装手順
9
7. File メニューの Convert Programming Files をクリックします。Convert Programming
Files ダイアログ・ボックスが表示されます (図 2)。
図 2. Convert Programming Files ダイアログ・ボックス
Select the appropriate
programming file type
Select the
appropriate mode
The file name for
the encrypted
configuration file
If applicable, select the
appropriate
configuration device
Add the unencrypted
SOF file for file conversion
Click to open
The SOF Files Properties:
Bitstream Encryption
dialog box
6 月 2012 年
Altera Corporation
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
安全なコンフィギュレーション・フローの実装手順
10
a. Convert Programming Files ダイアログ・ボックスで、Programming file type リス
トから プログラミング・ファイル・タイプを選択します。
b. 該当する場合は、Configuration device リストから適切なコンフィギュレーショ
ン・デバイスを選択します。
c. Mode リストからモードを選択します。
d. File name 欄にファイル名を入力するか、あるいはそのファイルを参照して選
択します。
e. Input files to convert セクションの下で、SOF Data をクリックします。
f. Add File をクリックし、Select Input File ダイアログ・ボックスを開きます。
g. 暗号化されていない SOF ファイルに移動し、Open をクリックします。
h. Input files to convert セクションの下で、SOF ファイル名をクリックします。こ
の欄がハイライトされます。
i.
Properties をクリックします。SOF Files Properties: Bitstream Encryption ダイア
ログ・ボックスが表示されます (図 3)
。
j.
SOF Files Properties: Bitstream Encryption ダイアログ・ボックスで、Generate
encrypted bitstream をオンにします。
k. Generate key programming file をオンにして、そして .ekp ファイルのパスおよ
びファイル名を入力するか、あるいは <filename>.ekp を参照して選択します。
l.
.key ファイルまたは Add ボタンを使用して、プルダウン・リストにキーを追
加します。Add および Edit ボタンにより、Key Entry ダイアログ・ボックスが
表示されます。Delete ボタンは、現在選択されているキーをプルダウン・リ
ストから削除するのに使用されます(図 3)。
図 3. SOF File Properties: Bitstream Encryption ダイアログ・ボックス
List the path and
file name for
the.ekp file
Agree and
acknowledge the
disclaimer
1
28 nmのFPGAデバイスの場合、
2つの256ビットのシーケンスの代わりに1つだけの256
ビット・キーが生成やプログラムされます。256 ビット・キーには、唯一つのキー・
ファイルが必要になります。40 nm FPGA デバイスとは異なり、他の 256 ビットは、
28 nm FPGA 内にハードコードされます。
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
2012 年 6 月
Altera Corporation
安全なコンフィギュレーション・フローの実装手順
11
.key ファイルのオプションを使用すると、対応するドロップダウン・ボックスで、1
つまたは 2 つのキー・ファイルを指定することができます。Key 1 と Key 2 の欄に別
のファイルを使用するか、またはその両方の場合には、1 つの .key ファイルを使用
することができます(図 4)。
図 4. Use Key File オプション
.key ファイルでは、ラインが「#」で始められない限り、各ラインは 1 つのキーを表
します。「#」記号は、コメントを示すために使用されます。
6 月 2012 年
Altera Corporation
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
安全なコンフィギュレーション・フローの実装手順
12
有効なキー・ラインは、次のフォーマットをしています(図 5)。
<key identity><white space><256-bit hexadecimal key>
図 5. .Key ファイルの例
このキー ID は、これらのキーを識別するための英数字です(キー・ファイルのエン
トリと同様)。また、キーは Show entered keys ボタンがオフになるときに、表示され
るテキストです(図 6)。Show entered keys がオンになるときに、それはフル・キー
と一緒に表示されます(図 7)。
図 6. Key Identity
図 7. Key Identity および Full Key Entry
プルダウン・リストにおけるキーは .key として保存できます。キーを保存して、標
準の File ダイアログ・ボックスを表示させるには、対応する Save ボタンをクリック
する必要があります。プルダウン・リストにおけるすべてのキーは選択された .key
ファイル、あるいは作成された .key ファイルに保存されます(図 4)。
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
2012 年 6 月
Altera Corporation
安全なコンフィギュレーション・フローの実装手順
13
オン・スクリーン・キーパッドまたはキーボードのいずれかで暗号化キーを入力す
るには、Key Entry Method を選択します(図 8)。
図 8. Key Entry Method
On-screen Keypad は、図 9 に示すキーパッドを使用してキーを入力することができま
す。キーを選択し、値を入力する On-screen Keypad をクリックします。入力される
キーが表示できるようにするオプションがあります;このオプションが使用される
場合、キーを確認する必要はありません。
図 9. On-Screen Keypad
Enter the
encryption key from
the on-screen keypad
1
On-screen Keypad が使用される際、キーボードでキーを入力すると、ポップアップが
表示され、入力したキーは無視されます。あるいは、キーボードから暗号化キーを
入力することができます(図 10)。
図 10. キーボード
Enter the
encryption key from
the keyboard
6 月 2012 年
Altera Corporation
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
安全なコンフィギュレーション・フローの実装手順
14
a. デザイン・セキュリティ機能に関する免責条項を読んでください。デザイン・
セキュリティ機能の免責事項に同意する場合、acknowledgement ボックスをオ
ンにしてください(図 11)。
b. OK をクリックします。
図 11. ユーザー・インタフェースの例
8. Convert Programming Files ダイアログ・ボックスで、OK をクリックします。
<filename>.ekp および暗号化されたコンフィギュレーション・ファイルは同じプ
ロジェクト・ディレクトリに作成されます。
9. Tools メニューの Programmer をクリックします。Programmer ダイアログ・ボック
スが表示されます(図 12)。
図 12. Programmer ダイアログ・ボックス
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
2012 年 6 月
Altera Corporation
安全なコンフィギュレーション・フローの実装手順
15
10. Mode リストで、JTAG をプログラミング・モードとして選択します。
11. Hardware Setup をクリックします。Hardware Setup ダイアログ・ボックスが表示
されます。
a. 現在選択されているハードウェア・リストから、EthernetBlaster をプログラミ
ング・ハードウェアとして選択します。
b. Done をクリックします。
12. Add File をクリックします。Select Programmer File ダイアログ・ボックスが表示さ
れます。
a. File name 欄に <filename>.ekp を入力します。
b. Open をクリックします。
13. 追加した .ekp ファイルをハイライトして、Program/Configure をクリックします。
14. File メニューの Create/Update をポイントし、Create JAM, SVF, or ISC File をクリッ
クします。Create JAM, SVF or ISC File ダイアログ・ボックスが表示されます
(図 13)。
図 13. シングル・デバイスの .ekp ファイルによる .jam ファイルの作成
List the file
name for the
.jam file
Select the
.jam file format
15. File format 欄から、.ekp ファイルに必要なファイル・フォーマット(JEDEC STAPL
Format [.jam])を選択します。
16. File name 欄にファイル名を入力するか、あるいはそのファイルを参照して選択
します。
17. OK をクリックして、.jam ファイルを生成します。
6 月 2012 年
Altera Corporation
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
安全なコンフィギュレーション・フローの実装手順
16
18. Tools メニューの Programmer Options をクリックします。Programmer Options ダイ
アログ・ボックスが表示されます(図 14)。
図 14. Programmer Options ダイアログ・ボックス
Option for volatile or
non-volatile
key programming
1
不揮発性の安全なデザイン機能の場合、.ekp ファイルの svf ファイルを生成するには、
Configure volatile design security key オプションをオフにする必要があります(図 14)。
19. OK をクリックします。
20. .ekp ファイルの svf ファイルを生成するには、15 ~ 17 の手順を繰り返します。
.ekp ファイルの svf ファイルを生成する際に、Create JAM, SVF, or ISC File ダイア
ログ・ボックスのデフォルト設定を使用します(図 15)。
図 15. シングル・デバイスの .ekp ファイルによる .svf ファイルの作成
List the
file name
for the .svf file
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
Select the
.svf file format
2012 年 6 月
Altera Corporation
安全なコンフィギュレーション・フローの実装手順
17
Quartus II ソフトウェアのコマンドライン・インタフェースによるシ
ングル・デバイス .ekp ファイルの生成およびコンフィギュレーショ
ン・ファイルの暗号化
シングル・デバイスの .ekp ファイルの生成およびロウ・バイナリ・ファイル(.rbf)
の暗号化が可能なコマンドライン・インタフェースがあります。このコマンドライ
ン・インタフェースは Quartus II ソフトウェアのコマンドライン実行コマンド
quartus_cpf を使用し、以下の構文またはオプションが必要です。
■
--key/-k <path to key file>:<key identity>
■
.sof ファイル(ユーザー・デザイン)
■
.ekp ファイル(必要とされる暗号化キー・プログラミング・ファイル名)
compression=on の文字列を含むオプション・ファイルを持つ次のコマンドを使用
して、コンフィギュレーション用の圧縮と圧縮されていない .rbf を作成することが
できます。
quartus_cpf -c --option=<option file> --key <keyfile>:<keyid1>:<keyid2>
<input_sof_file> <output_rbf_file>
オプション・ファイルについて詳しくは、Quartus II ソフトウェアのコマンドライ
ン・ヘルプを参照してください。使用可能なオプションについては、quartus_cpf -help=option を実行してください。
例 1 に、2 つの異なるキー・ファイルに格納されるキーの 2 セットを示します:key1
は、key1.key に格納され、key2 は key2.key に格納されます。
例 1.
quartus_cpf --key D:\SIV_DS\key1.key:key1 --key
D:\SIV_DS\key2.key:key2 D:\SIV_DS\test.sof D:\SIV_DS\test.ekp
例 2 に、同じキー・ファイルに格納されるキーの 2 セットを示します:key1 および
key2 は key12.key に格納されます。
例 2.
quartus_cpf --key
D:\SIV_DS\key12.key:key1:key2 D:\SIV_DS\test.sof D:\SIV_DS\test.ekp
Quartus II ソフトウェアによるマルチ・デバイス .ekp ファイルの生成
およびコンフィギュレーション・ファイルの暗号化
マルチ・デバイス .ekp ファイルを生成し、コンフィギュレーション・ファイルを暗
号化するには、次の手順を実行します。
1. Quartus II ソフトウェアを起動します。
2. 8 ページの「Quartus II ソフトウェアによるシングル・デバイス .ekp キー・ファイ
ルの生成およびコンフィギュレーション・ファイルの暗号化」の 9 ~ 11 の手順
を繰り返します。
3. Add File をクリックします。Select Programmer File ダイアログ・ボックスが表示
されます。
a. シングル・デバイス .ekp ファイルを選択し、そして File name 欄に
<single_ekp>.ekp を入力します。
b. Open をクリックします。
6 月 2012 年
Altera Corporation
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
安全なコンフィギュレーション・フローの実装手順
18
1
同じ JTAG チェイン内におけるデバイスの正しい順序を保証するためには、
Quartus II プログラマの Auto-Detect オプションを使用することができます。
FPGA のいずれかがキー・プログラムされる必要がない場合、Quartus II プ
ログラマで そのデバイスを <single_ekp>.ekp ファイルに置き換える必要は
あります。
4. 同じチェイン内の各デバイスに対してステップ 3 を繰り返します。プログラマ・
ウィンドウに .ekp ファイルを追加する際、デバイスの順序だ正しいことを確認し
てください。
5. 追加したすべての .ekp ファイルをハイライトし、Program/Configure をクリックし
ます。
6. File メニューの Create/Update をポイントし、Create JAM, SVF, or ISC File をクリッ
クします。Create JAM, SVF, or ISC File ダイアログ・ボックスが表示されます
(図 16)。
図 16. マルチ・デバイス・キーのプログラミング:.jam ファイルの生成
Example of two
Stratix IV devices
in one JTAG
chain
Select the
.jam file format
7. すべての .ekp ファイルに対して、File format 欄で必要とされるファイル・フォー
マット(.jam )を選択します。
8. File name 欄にファイル名を入力するか、あるいはそのファイルを参照して選択
します。
9. OK をクリックして、.jam ファイルを生成します。
10. Tools メニューの Programmer Options をクリックします。Programmer Options ダイ
アログ・ボックスが表示されます。
1
.ekp ファイルの不揮発性 .svf ファイルを生成するには、Configure volatile
design security key をオフにする必要があります。
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
2012 年 6 月
Altera Corporation
安全なコンフィギュレーション・フローの実装手順
19
11. OK をクリックします。
12. すべての .ekp ファイルの .svf ファイルを生成するために、7 ~ 9 の手順を繰り返
します。.ekp ファイルの .svf ファイルを生成する際に、Create JAM, SVF, or ISC
File ダイアログ・ボックスのデフォルト設定を使用します(図 17)。
図 17. マルチ・デバイス・キーのプログラミング:.svf ファイルの生成
ステップ 2a:揮発性キーを FPGA 内にプログラム
揮発性キーを FPGA にプログラムする前に、FPGA が暗号化されていないコンフィ
ギュレーション・ファイルで正しくコンフィギュレーションできることを確認して
ください。揮発性キーは再プログラム可能かつ消去可能なキーです。揮発性キーで
FPGA をプログラムする前に、揮発性キーを保持するための外部電源が必要です。揮
発性キーのプログラムが成功した FPGA は、暗号化されたコンフィギュレーション・
ビットストリームおよび暗号化されていないコンフィギュレーション・ビットスト
リームの両方を受け入れることができます。これで、暗号化されていないコンフィ
ギュレーション・ビットストリームをボード・レベルのテストに使用することが可
能になります。
間違ったキーで暗号化されたコンフィギュレーション・ファイルで FPGA をコンフィ
ギュレーションしようとしても、コンフィギュレーションは失敗します。これが発
生した場合は、FPGA からの nSTATUS 信号は Low になって、自身をリセットし続け
ます。
ページ 4 の表 4 に記載されたオン・ボード・プロトタイプを使用して FPGA に揮発
性キーをプログラムすることができます。
6 月 2012 年
Altera Corporation
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
安全なコンフィギュレーション・フローの実装手順
20
ステップ 2b:不揮発性キーを FPGA 内にプログラム
不揮発性キーをデバイスにプログラムする前に、FPGA が暗号化されていないコン
フィギュレーション・ファイルで正しくコンフィギュレーションできることを確認
してください。不揮発性キーは JTAG を介してワンタイム・プログラマブルです。不
揮発性キーは、外部バッテリなしでデバイスにプログラムすることができます。揮
発性キーが正しくプログラムしたデバイスは、暗号化されたコンフィギュレーショ
ン・ビットストリームおよび暗号化されていないコンフィギュレーション・ビット
ストリームの両方を受け入れることができます。しかし、改ざん保護ビットが設定
されていない限り、暗号化されたコンフィギュレーション・ビットストリームのみ
受け入れます。これで、暗号化されていないコンフィギュレーション・ビットスト
リームをボード・レベルのテストに使用することが可能になります。
間違ったキーで暗号化されたコンフィギュレーション・ファイルで不揮発性キーを
含むデバイスをコンフィギュレーションしようとしても、コンフィギュレーション
は失敗します。これが発生した場合は、FPGA からの nSTATUS 信号は Low になって、
自身をリセットし続けます。
ページ 4 の表 4 に記載されたオン・ボード・プロトタイプ、量産、およびオフ・
ボード・プロトタイプと生産のソリューションを使用してデバイスに不揮発性キー
をプログラムすることができます。
EthernetBlaster と Quartus II ソフトウェアによる揮発性および不揮発
性キーのプログラミング
図 18 に示すように、EthernetBlaster 通信ケーブルを EthernetBlaster ヘッダに接続しま
す。
「EthernetBlaster Communications
f EthernetBlaster 通信ケーブルの接続について詳しくは、
Cable User Guide」を参照してください。
図 18. EthernetBlaster ヘッダ (1),
(2)
EthernetBlaster Header
10 KΩ
10 KΩ
1 KΩ
J28
TCK
1
2
JTAG_CONN_TDO
3
4
JTAG_TMS
5
6
JTAG_CONN_TDI
7
8
9
10
VCC (3)
図 18 の注:
(1) 1 KΩ プルダウン抵抗は、TCK に追加されます。10 KΩ プルアップ抵抗は、キー・プログラミング
に対する TMS および TDI 信号に追加されます。
(2) キー・プログラミングにとって、EthernetBlaster ヘッダおよび USB-Blaster ヘッダは同じです。
(3) JTAG ダウンロード・ケーブルを使用して必要な特定の電圧について詳しくは、該当するデバイス・
ハンドブックの「Device Configuration, Secure Design and Remote System Upgrades」の章を参照してくだ
さい。
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
2012 年 6 月
Altera Corporation
安全なコンフィギュレーション・フローの実装手順
21
Quartus II ソフトウェアによるシングル・デバイスの揮発性および不
揮発性キーのプログラミングの実行
EthernetBlaster で Quartus II ソフトウェアによるシングル・デバイスの揮発性および不
揮発性キーのプログラミングを実行するには、次の手順を実行してください。
1. EthernetBlaster のファームウェアのバージョンをチェックします。JTAG ファーム
ウェアのビルド番号が 101 以上であることを確認します。バージョンがビルド番
号 101 の前である場合、ファームウェアの更新を実行してください。
1
EthernetBlaster ユニットに ファームウェアの更新(EBFW100101.tar.gz)を適
用します。これによって、JTAG ファームウェアを Build 101 に更新します。
ファームウェアの更新の手順は、「EthernetBlaster Communications Cable User
Guide」を参照してください。
2. Quartus II ソフトウェアを起動します。
3. Tools メニューの Programmer をクリックします。Programmer ダイアログ・ボック
スが表示されます(図 19)。
図 19. EthernetBlaster および Quartus II ソフトウェアによるキー・プログラミング
EthernetBlaster as
the programming
hardware
JTAG as the
programming mode
Add the <filename>.ekp file
4. Mode リストで、JTAG をプログラミング・モードとして選択します(図 19)。
6 月 2012 年
Altera Corporation
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
安全なコンフィギュレーション・フローの実装手順
22
5. Hardware Setup をクリックします。Hardware Setup ダイアログ・ボックスが表示さ
れます。
a. Currently selected hardware リストで、EthernetBlaster をプログラミング・ハー
ドウェアとして選択します。
b. Done をクリックします。
6. Add File をクリックします。Select Programmer File ダイアログ・ボックスが表示さ
れます。
a. File name 欄に <filename>.ekp を入力します。
b. Open をクリックします。
7. 追加した .ekp ファイルをハイライトして、Program/Configure をクリックします
(図 20)。
図 20. キーのプログラム
Click Start to
program the key
Highlight the file and click
Program/Configure
8. Tools メニューの Options をクリックします。Options ダイアログ・ボックスが表
示されます(図 21)。
9. Category リストの Programmer をクリックします。揮発性または不揮発性のキー・
プログラミングを実行するために、Configure volatile design security key オプショ
ンをオンにするか、またはオフにするかを選択できます。
10. OK をクロックして、Options ダイアログ・ボックスを閉じます。
11. Start をクリックしてキーをプログラムします。
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
2012 年 6 月
Altera Corporation
安全なコンフィギュレーション・フローの実装手順
23
12. Quartus II ソフトウェアのメッセージ・ウィンドウでは、キー・プログラミング動
作の成功または失敗が表示されます。
図 21. Programming Options ウィンドウ
Option for volatile or
non-volatile key programming
Quartus II ソフトウェアのコマンドライン・インタフェースによるシング
ル・デバイスの揮発性または不揮発性キーのプログラミングの実行
EthernetBlaster を介して Quartus II ソフトウェアのコマンドライン・インタフェースを
使用してシングル・デバイスの揮発性または不揮発性キーのプログラミングを実行
するには、次の手順を実行してください。
1. 21 ページの「Quartus II ソフトウェアによるシングル・デバイスの揮発性および
不揮発性キーのプログラミングの実行」のステップ 1 を実行します。
2. JTAG サーバーに接続された EthernetBlaster ケーブルのポート番号を確認するには、
コマンドライン・プロンプトで quartus_jli -n を入力します。
3. 7 ページの「ステップ 1:.ekp ファイルの生成およびコンフィギュレーション・
ファイルの暗号化」で生成した single_ekp.jam ファイルによって、下記のコマン
ドラインを使用して、シングル FPGA に対して、揮発性または不揮発性キーのプ
ログラミングを実行します。
■
揮発性キーのプログラミング:
quartus_jli -c<n> single_ekp.jam -aKEY_CONFIGURE
■
不揮発性キーのプログラミング:
quartus_jli -c<n> single_ekp.jam -aKEY_PROGRAM
<n> は、-n オプションによって返されたポート番号です。
1
Quartus II ソフトウェア・コマンドライン実行コマンドは、キー・プログラミング動
作の成功または失敗について情報を提供します。
f quartus_jli について詳しくは、「AN425: デバイス・プログラミング用のコマンド・
ライン Jam STAPL ソリューションの使用」の「Quartus II ソフトウェアにおけるコマ
ンドライン実行コマンドの使用」の項を参照してください。
6 月 2012 年
Altera Corporation
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
安全なコンフィギュレーション・フローの実装手順
24
Quartus II ソフトウェアによるマルチ・デバイスの揮発性または不揮
発性キーのプログラミングの実行
EthernetBlaster を介して Quartus II ソフトウェアを使用してマルチ・デバイスの揮発性
または不揮発性キーのプログラミングを実行するには、次の手順に従ってください。
1. 21 ページの「Quartus II ソフトウェアによるシングル・デバイスの揮発性および
不揮発性キーのプログラミングの実行」の 1 ~ 5 の手順を繰り返します。
2. Add File をクリックします。Select Programmer File ダイアログ・ボックスが表示
されます(図 19)。
a. シングル・デバイス .ekp ファイルを使用するプログラミング:
i. File name 欄に <single_device>.ekp を入力します。
ii. Open をクリックします。
iii. 同じチェイン内のデバイスに i ~ ii の手順を繰り返します。
iv. 追加した .ekp ファイルをハイライトして、Program/Configure をクリックし
ます(図 22)。
1
同じ JTAG チェイン内におけるデバイスの正しい順序を保証するためには、
Quartus II プログラマの Auto-Detect オプションを使用することができます。
図 22. .ekp ファイルによるマルチ・デバイス・キーのプログラミング
Ensure the right
device sequence is used
Example of two
Stratix IV devices
in one JTAG chain
selected for key
programming
b. マルチ・デバイス .jam ファイルを使用するプログラミング:
i. File name 欄に <multi_device>.jam を入力します。
ii. Open をクリックします。
iii. 追加した .jam ファイルをハイライトして、Program/Configure をクリックし
ます(図 23)。
3. 揮発性または不揮発性のキー・プログラミングを行うために、21 ページの
「Quartus II ソフトウェアによるシングル・デバイスの揮発性および不揮発性キー
のプログラミングの実行」の 8 ~ 10 の手順を繰り返します。
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
2012 年 6 月
Altera Corporation
安全なコンフィギュレーション・フローの実装手順
25
4. Start をクリックしてキーをプログラムします(図 23)
。
1
Quartus II ソフトウェアのメッセージ・ウィンドウでは、キー・プログラミ
ング動作の成功または失敗が表示されます。
図 23. .jam ファイルによるマルチ・デバイス・キーのプログラミング
Click Start to
program the key
Highlight the file and click
Program/Configure
Quartus II ソフトウェアのコマンドライン・インタフェースによるマル
チ・デバイスの揮発性または不揮発性キーのプログラミングの実行
EthernetBlaster を介して Quartus II ソフトウェアのコマンドライン・インタフェースを
使用してマルチ・デバイスの揮発性または不揮発性キーのプログラミングを実行す
るには、次の手順を実行してください。
1. 21 ページの「Quartus II ソフトウェアによるシングル・デバイスの揮発性および
不揮発性キーのプログラミングの実行」のステップ 1 を実行します。
2. JTAG サーバーに接続された EthernetBlaster ケーブルのポート番号を確認するには、
コマンドライン・プロンプトで quartus_jli -n を入力します。
3. 7 ページの「ステップ 1:.ekp ファイルの生成およびコンフィギュレーション・
ファイルの暗号化」で生成した multi_ekp.jam ファイルによって、下記のコマン
ドラインを使用して、複数の FPGA に対して、揮発性または不揮発性キーのプロ
グラミングを実行します。
■
揮発性キーのプログラミング:
quartus_jli -c<n> multi_ekp.jam -aKEY_CONFIGURE
■
不揮発性キーのプログラミング:
quartus_jli -c<n> multi_ekp.jam -aKEY_PROGRAM
<n> は、-n オプションによって返されたポート番号です。
1
6 月 2012 年
Altera Corporation
Quartus II ソフトウェア・コマンドラインインタフェースは、キー・プログ
ラミング動作の成功または失敗について情報を提供します。
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
サポートされているコンフィギュレーション手法
26
JTAG Technologies によるキーのプログラミング
.svf ファイル(.svf フォーマットでの .ekp ファイル)および JT 37xx バウンダリ・ス
キャン・コントローラを JT 2147 QuadPod システムと共に使用することで、デザイン
にセキュリティ・プログラミングが実行されます。
f JTAG プログラミングの手順は、JTAG Technologies ウエブサイトの「www.jtag.com」か
ら入手できます。
マルチ・デバイス・プログラミングをサポートする .svf ファイルの作成については、
17 ページの「Quartus II ソフトウェアによるマルチ・デバイス .ekp ファイルの生成お
よびコンフィギュレーション・ファイルの暗号化」で説明されます。
ステップ 3: 暗号化されたコンフィギュレーション・データによって
40 nm または 28 nm FPGA をコンフィギュレーション
最後のステップは、暗号化されたコンフィギュレーション・ファイルを使用して保
護された 40 nm または 28 nm FPGA をコンフィギュレーションすることです。
コンフィギュレーション時に、暗号化されたコンフィギュレーション・データが
40 nm または 28 nm FPGA に送信されます。そして、FPGA は以前に格納したキーを用
いてコンフィギュレーション・データを復号化し、暗号化されていないデータに
よって自身をコンフィギュレーションします。正しいキーによって暗号化されたコ
ンフィギュレーション・ファイルのみが FPGA に受け入れられ、コンフィギュレー
ションを成功させます。正しいキーがなければ、暗号化されたファイルが盗まれて
も意味はありません。
サポートされているコンフィギュレーション手法
デザイン・セキュリティ機能は、JTAG ベースのコンフィギュレーション方法を除
く、すべてのコンフィギュレーション方法で使用できます。したがって、デザイン・
セキュリティ機能は、FPP モード(MAX II または MAX V デバイスまたはマイクロプ
ロセッサおよび Flash メモリのような外部コントローラを使用する場合)
、または AS
および PS コンフィギュレーション手法で使用できます。
f デザイン・セキュリティをサポートするコンフィギュレーション手法について詳し
くは、該当するデバイス・ハンドブックの「Configuration, Design Security, and Remote
System Upgrades」の章を参照してください。
表 6 に、デザイン・セキュリティ機能をサポートするコンフィギュレーション手法
を示します。
表 6. セキュリティ・コンフィギュレーション手法の可用性 ( その1 )
コンフィギュレーション手
コンフィギュレーション方法
FPP
MAX II/MAX V デバイスまたは
マイクロプロセッサ、および
フラッシュ・メモリ
AS
シリアル・コンフィギュレー
ション・デバイス
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
デザイン・セキュリティ
v
(1)
v
2012 年 6 月
Altera Corporation
サポートされているコンフィギュレーション手法
27
表 6. セキュリティ・コンフィギュレーション手法の可用性 ( その2 )
コンフィギュレーション手
コンフィギュレーション方法
デザイン・セキュリティ
PS
MAX II/MAX V デバイスまたは
マイクロプロセッサ、および
フラッシュ・メモリ
v
JTAG
ダウンロード・ケーブル
v
(2)
ダウンロード・ケーブル
—
(3)
表 6 の注:
(1) このモードでは、ホスト・システムは 4 倍のデータ・レートの DCLK 信号を送信する必要がありま
す。
(2) MicroBlaster™ ツールは、ByteBlaster II または ByteBlasterMV™ ダウンロード・ケーブル経由で .rbf を使
用して暗号化された PS コンフィギュレーションを実行するのに必要になります。コンフィギュ
レーションの詳細は、「コンフィギュレーション・センター」を参照してください。
(3) 揮発性キーのプログラミングのみ。
1
MAX II または MAX V デバイス、およびフラッシュ・メモリのコンフィギュレーション
方法について詳しくは、「MAX Series Configuration Controller Using Flash Memory White
Paper」を参照してください。
さらに、システムにコモン・フラッシュ・インタフェース(CFI)フラッシュ・メモ
リがある場合は、FPGA コンフィギュレーションとしても使用できます。MAX II およ
び MAX V パラレル・フラッシュ・ローダ(PFL)機能は、JTAG インタフェースを介
して CFI フラッシュ・メモリをプログラムする効率的な方法を提供します。
f PFL について詳しくは、「AN 386: Quartus II ソフトウェアでのパラレル・フラッシュ・
ローダの使用」を参照してください。
デザイン・セキュリティ機能を、圧縮およびリモート・システム・アップグレード
機能などのその他のコンフィギュレーション機能と一緒に使用することができます。
デザイン・セキュリティ機能と一緒に圧縮を使用する場合、コンフィギュレーショ
ン・ファイルが最初に圧縮され、次に QuartusII ソフトウェアを使用して暗号化され
ます。コンフィギュレーションの間、FPGA は、最初にコンフィギュレーション・
ファイルを復号化し、次にそれを復元します。
バウンダリ・スキャン・テスト(BST)を実行するか、または SignalTap II ロジック・
アナライザを用いて FPGA 内の機能データを解析することができます。しかし、改ざ
ん保護ビットを設定されるキーが 40 nm または 28 nm の FPGA にプログラムされた
後、JTAG コンフィギュレーションを使用することはできません。
SignalTap II ロジック・アナライザを使用する際、最初に PS、FPP、または AS コン
フィギュレーション・モードを用いて、デザインを暗号化されたコンフィギュレー
ション・ファイルでコンフィギュレーションする必要があります。デザインは、
SignalTap II ロジック・アナライザのインスタンスが少なくとも 1 つ含める必要があ
ります。FPGA はデザインに SignalTap II ロジック・アナライザのインスタンスでコン
フィギュレーションされた後、そして Quartus II ソフトウェアで SignalTap II ロジッ
ク・アナライザのウィンドウが開かれた後、デバイス・チェインを簡単にスキャン
して、SignalTap II ロジック・アナライザで JTAG インタフェースを介してデータを取
得できるようになります。
6 月 2012 年
Altera Corporation
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
セキュリティ・モードの検証
28
セキュリティ・モードの検証
FPGA は KEY_VERIFY JTAG 命令をサポートし、デバイスにおける既存のセキュリ
ティ・モードを検証することができます。揮発性キーが正しくプログラムされたか
どうかをチェックするために、.jam ファイルを使用してセキュリティ・モードの検
証を自動化します。
f FPGA で利用可能なセキュリティ・モードについて詳しくは、該当するデバイス・ハ
ンドブックの「Configuration, Design Security, and Remote System Upgrades」の章の「セ
キュリティ・デザイン」の項を参照してください。
表 7 に、KEY_VERIFY JTAG 命令を示します。
表 7. KEY_VERIFY JTAG 命令
JTAG 命令
命令コード
説明
TDI および TDO 間のキー検証
スキャン・レジスタを接続
します。
00 0001 0011
KEY_VERIFY
KEY_VERIFY JTAG 命令では、チップ上でイネーブルされたセキュリティ機能に関する
情報を読み出すことができます。この命令は、関連されたビットの値をスキャンし
ます。
表 8 および表 9 に、セキュリティ・モードおよび関連されたビットの値を示します。
表 8. 40 nm FPGA のセキュリティ・モードの検証
サポートされる
デバイス
セキュリティ・モード
Arria II GX
キーなし
■
Arria II GZ
■
Stratix IV
Arria II GX
揮発性キー
■
Arria II GZ
■
Stratix IV
Arria II GX
改ざん保護を備えた揮発性キー
■
Arria II GZ
■
Stratix IV
Arria II GX
不揮発性キー
■
Arria II GZ
■
Stratix IV
Arria II GX
改ざん保護ビットを備えた不揮発
性キー
■
Arria II GZ
■
Stratix IV
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
ビット ビット ビット ビット ビット ビット
0
1
2
3
4
5
0
0
0
0
0
0
0
0
0
0
NA
NA
1
0
0
0
0
0
1
0
0
0
NA
NA
1
0
0
0
1
0
NA
NA
NA
NA
NA
NA
0
1
0
1
0
0
0
1
0
1
NA
NA
0
1
1
1
0
0
0
1
1
1
NA
NA
2012 年 6 月
Altera Corporation
セキュリティ・モードの検証
29
表 9. 28 nm FPGA のセキュリティ・モードの検証
ビット ビット
0
1
セキュリティ・モード
ビット
2
ビット ビット ビット
3
4
5
ビット
6
ビット ビット
7
8
キーなし
0
0
0
0
0
0
0
0
0
揮発性キー
1
0
0
0
1
1
0
0
1
改ざん保護を備えた揮発性
キー
1
0
0
0
1
1
1
0
1
不揮発性キー
0
1
1
1
0
1
0
0
0
改ざん保護ビットを備えた
不揮発性キー
0
1
1
1
0
1
0
0
0
例 3、例 4、および例 5 に、FPGA セキュリティ・モードを検証するための .jam ファ
イルを示します。
例 3. 40 nm FPGA の JAM ファイル(Arria II GX デバイス)
STATE RESET;
STATE IDLE;
'Security Mode Identification
BOOLEAN verify_reg[6];
IRSCAN 10, $013;
WAIT 100 USEC;
DRSCAN 6, $0, CAPTURE verify_reg[5..0];
例 4. 40 nm FPGA40 nm FPGA の JAM ファイル(Arria II GX(Arria II GX および
Stratix IV デバイス)
STATE RESET;
STATE IDLE;
'Key Verification
BOOLEAN verify_reg[4];
IRSCAN 10, $013;
WAIT 100 USEC;
DRSCAN 4, $0, CAPTURE verify_reg[3..0];
例 5. 28 nm FPGA の JAM ファイル
STATE RESET;
STATE IDLE;
'Key Verification in JAM format
BOOLEAN verify_reg[9];
IRSCAN 10, $013;
WAIT 100 USEC;
DRSCAN 9, $0, CAPTURE verify_reg[8..0];
6 月 2012 年
Altera Corporation
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
暗号化機能がイネーブルしたシリアル・フラッシュ・ローダのサポート
30
暗号化機能がイネーブルしたシリアル・フラッシュ・ローダのサ
ポート
アルテラは、シリアル・コンフィギュレーション・デバイス用のイン・システム・
プログラミング・ソリューションであるシリアル・フラッシュ・ローダ(SFL)を提
供します。SFL メガファンクションは、Quartus II ソフトウェア v6.0 SP1 以降でサ
ポートされています。AS インタフェースを介してコンフィギュレーション・デバイ
スを再プログラミングせずにデザインに SFL ブロックをインスタンス化することが
可能になり、シリアル・コンフィギュレーション・デバイスに格納されたデザイン
を更新する柔軟性が得られます。
FPGA の JTAG インタフェースがアクセスできる限り、アプリケーションに SFL ソ
リューションを使用することができます。デザイン・セキュリティ機能が改ざん保
護ビットで設定される場合、SFL ソリューションは動作しません。JTAG プログラミ
ングは改ざん保護ビットが設定されているときにサポートされていませんが、デザ
インで SFL メガファンクションをインスタンス化し、FPGA に設定される改ざん保護
ビットによる不揮発性キー・プログラミングを行う前に SFL プログラミングを実行
することがでます。
1 つの FPGA デバイス・チェインに対して、暗号化機能がイネーブルされた SFL メガ
ファンクションを使用するには、次の手順に従います。
1. Quartus II ソフトウェアを起動します。
2. FPGA のトップ・レベル・デザインに SFL メガファンクションをインスタンス化
します。
f SFL メガファンクションのインスタンス化について詳しくは、
「AN 370: Using the Serial FlashLoader With the Quartus II Software」の
「Instantiating SFL Megafunction in the Quartus II Software」の項を参照してくだ
さい。
3. 下記のオプションのいずれかを用いてデザインをコンパイルします。暗号化され
ていない .sof ファイルが生成されます。
a. Processing メニューで、Start Compilation をクリックします。
または
b. Processing メニューの Start をポイントして、Start Assembler をクリックしま
す。
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
2012 年 6 月
Altera Corporation
暗号化機能がイネーブルしたシリアル・フラッシュ・ローダのサポート
31
4. 次の手順に従って、.sof ファイルを .jic ファイルに変換します。
a. File メニューの Convert Programming Files を選択します。
b. Convert Programming Files ダイアログ・ボックスで、Programming file type 欄か
ら JTAG Indirect Configuration File (.jic) をスクロールします。
c. Configuration device 欄に、シリアル・コンフィギュレーション・デバイスを指
定します。
d. File name 欄に、ターゲット・ディレクトリに移動して、その出力ファイル名
を指定します。
e. Input files to convert セクションの .sof データをハイライトします(図 24)。
図 24. .jic ファイルの生成
f. Add File をクリックします。
g. .jic ファイルに二変換する .sof ファイルを選択します。
h. OK をクリックします。
i.
6 月 2012 年
.sof ファイル名をクリックして、.sof ファイルを暗号化します。
Altera Corporation
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
暗号化機能がイネーブルしたシリアル・フラッシュ・ローダのサポート
32
.sof ファイルを暗号化するには、8 ページの「Quartus II ソフトウェアによるシン
グル・デバイス .ekp キー・ファイルの生成およびコンフィギュレーション・
ファイルの暗号化」のステップ 7 を参照してください。
j.
FlashLoader をハイライトして、Add Device をクリックします(図 25)
。
図 25. FlashLoader
Add the FlashLoader
bridge of the required
FPGA
k. OK をクリックします。Select Devices ページが表示されます。
l.
シリアル・コンフィギュレーション・デバイスをプログラムするのに使用さ
れるターゲット FPGA を選択します。
m. OK をクリックします。
5. 暗号化された .jic ファイルによってシリアル・コンフィギュレーション・デバイ
スをプログラムします。
f シリアル・コンフィギュレーション・デバイスまたは作成した .jic ファイ
ルを持つデバイスのプログラミングについて詳しくは、「AN 370: Using the
Serial FlashLoader With the Quartus II Software」の「Programming Serial
Configuration Devices Using the Quartus II Programmer and JIC Files」の項の手順
を参照してください。
6. キーを FPGA デバイス内にプログラムします。
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
2012 年 6 月
Altera Corporation
28 nm FPGA の JTAG セキュリティ保護モード
1
33
1 つのFPGA デバイスにキーをプログラムするには、21 ページの「Quartus II ソ
フトウェアによるシングル・デバイスの揮発性および不揮発性キーのプロ
グラミングの実行」の手順に従います。
7. 暗号化された FPGA は、プログラムされたシリアル・コンフィギュレーション・
デバイスによってコンフィギュレーションされます。
1
.jam ファイルを使用してキーをプログラムするには、.jic ファイルを .jam
ファイルに変換する必要があります。
f .jam ファイルに .jic を変換する方法について詳しくは、「AN 370: Using the
Serial FlashLoader With the Quartus II Software」の「Converting JIC Files to JAM
Files in the Quartus II Software」の項を参照してください。
f FPGA でイネーブルされたデザイン・セキュリティ機能を備えた PS および FPP コン
フィギュレーション手法のタイミング・パラメータについて詳しくは、該当するデ
バイス・ハンドブックの「Configuration, Design Security, and Remote System Upgrades」
の章を参照してください。
28 nm FPGA の JTAG セキュリティ保護モード
改ざん保護ビットをイネーブルにする時に、28 nm の FPGA は、電源投入後 JTAG セ
キュリティ保護モードになります。JTAG セキュリティ保護モード時には、多くの
JTAG 命令はディセーブルになります。
28 nm の FPGA は、必須の JTAG 1149.1 と 1149.6 の命令を行使することしかできませ
ん。これらの命令は、SAMPLE/PRELOAD、BYPASS、EXTEST、IDCODE と
SHIFT_EDERROR_REG などのオプションの手順です。
USERCODE、HIGHZ、CLAMP、PULSE_NCONFIG、および CONFIG_IO などの他の JTAG 命令へ
のアクセスをイネーブルにするには、UNLOCK 命令を発行して JTAG セキュリティ保護
モードをディセーブルにする必要があります。JTAG セキュリティ保護モードにデバ
イスを配置するために LOCK 命令を発行することができます。ユーザー・モード中に
のみ、LOCK と UNLOCK 命令の両方を発行することができます。
f LOCK および UNLOCK 命令に関する JTAG バイナリ命令コードについて詳しくは、該当す
るデバイス・ハンドブックの「JTAG Boundary-Scan Testing」の章を参照してください。
米国の輸出コントロール
一般に、FPGA の米国における輸出コントロールは、米国の (ECCN) 3A001.a.7 または
3A991.d に分類されています。FPGA が復号化を実行しますが、その復号化機能はコ
ンフィギュレーション・ビットストリームの保護にのみ使用されるため、デバイス
輸出コントロールの分類は変更しません。コンフィギュレーション・ビットスト
リームを暗号化するアルテラの Quartus II ソフトウェア開発ツール(V 9.0 以降 )は、
正式に US ECCN 5D002 c.1 に分類され、許可例外 ENC により「製品版」商品として大
部分の国にエクスポートされます。エクスポートに関する質問については、
[email protected] にお問い合わせください。
6 月 2012 年
Altera Corporation
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
改訂履歴
34
改訂履歴
表 10 に、このアプリケーション・ノートの改訂履歴を示します。
表 10. 改訂履歴
日付
2012 年 6 月
バー
ジョン
2.1
変更内容
■
表 1 および表 3 を更新。
■
.ekp ファイル検証エラーの情報を更新。
■ 「ハードウェア要件」の項を更新。
■
Quartus II ソフトウェア v 11.0 リリースの更新。
■
特定のデバイス名を 40 nm または 28 nm の FPGA に変更。
■ 「セキュリティ・モードの検証」および「28
nm FPGA の JTAG セキュリティ保護
モード」の項を追加。
2011 年 6 月
2009 年 6 月
2009 年 3 月
2.0
1.1
1.0
■
表 1 を追加。
■
表 5 を更新。
■
例 3、例 4、および例 5 を追加。
■
図 1 を更新。
■
テキストのマイナーな編集。
■
1 ページの「はじめに」を更新。
■
2 ページの「デザイン・セキュリティ機能の概要」を更新。
■
2 ページの「セキュリティ暗号化アルゴリズム」を更新。
■
3 ページの「不揮発性および揮発性キー・ストレージ」を更新。
■
4 ページの表 2 の注 3 を更新。
■
4 ページの「ハードウェア要件およびソフトウェア要件」を更新。
■
5 ページの表 3 の注 1 を更新。
■
5 ページの「安全なコンフィギュレーション・フローの実装手順」を更新。
■
17 ページの
「ステップ 2a:揮発性キーを Arria II GX または Stratix IV デバイス内に
プログラム」を更新。
■
18 ページの「ステップ 2b:不揮発性キーを Arria II GX または Stratix IV デバイス内
にプログラム」を更新。
■
24 ページの「ステップ 3:暗号化されたコンフィギュレーション・データによ
る Arria II GX または Stratix IV デバイスをコンフィギュレーション」を更新。.
■
28 ページの表 3 を追加。
■
6 ページの図 1 および 29 ページの図 26 を更新。
初版。
アルテラ FPGA におけるデザイン・セキュリティ機能の使用
2012 年 6 月
Altera Corporation
Fly UP