...

Zynq-7000 AP SoC における暗号化キーの変更 (XAPP1223)

by user

on
Category: Documents
13

views

Report

Comments

Transcript

Zynq-7000 AP SoC における暗号化キーの変更 (XAPP1223)
ア プ リ ケーシ ョ ン ノ ー ト : Zynq-7000 AP SoC
Zynq-7000 AP SoC における暗号化キーの変更
XAPP1223 (v1.0) 2014 年 11 月 6 日
著者 : Lester Sanders
概要
セキ ュ ア エンベデ ッ ド シ ス テ ムの暗号化キーは、 セキ ュ リ テ ィ レベルを向上 さ せ る ために変更す る 必要があ り ます。 シ
ス テ ム設計者は、 まず最初に暗号化キーを変更すべ き か否かな ど の暗号化要件を定義す る 必要があ り ます。 暗号化要件の
定義には、 情報の重要度、 エンベデ ッ ド シ ス テ ムの使用、 エンベデ ッ ド シ ス テ ムに起 こ り 得 る 脅威を考慮 し ます。 こ のア
プ リ ケーシ ョ ン ノ ー ト では、 エンベデ ッ ド シ ス テ ムの暗号化キー要件について簡単に説明 し ます。 リ フ ァ レ ン ス デザ イ
ン を使用 し て、 Zynq®-7000 All Programmable (AP) SoC デバ イ ス で AES キーを変更す る 方法について解説 し ます。
こ のアプ リ ケーシ ョ ン ノ ー ト の リ フ ァ レ ン ス デザ イ ンは、 ザ イ リ ン ク ス の ウ ェ ブサ イ ト か ら ダ ウ ン ロ ー ド で き ます。デザ
イ ン フ ァ イ ルの詳細は、 12 ページの 「 リ フ ァ レ ン ス デザ イ ン」 を参照 し て く だ さ い。
含まれる シ ス テム
リ フ ァ レ ン ス デザ イ ン (zed_key_change) には、 次の ソ フ ト ウ ェ ア プ ロ ジ ェ ク ト が含まれてい ます。
•
フ ァ ース ト ス テージ ブー ト ロ ーダー (FSBL)
•
BBRAM キー ロ ーダー (BKL)
•
パーテ ィ シ ョ ン ロ ーダー
•
hello_world
bbram_key_loader_src および partition_loader_src デ ィ レ ク ト リ に ソ ース コー ド があ り ます。 completed デ ィ レ
ク ト リ には、 コ ンパ イ ル済みのプ ロ ジ ェ ク ト および zed_key_change.bif、 zed_key_change.mcs、 zed_bbram1.nky、
zed_bbram2.nky フ ァ イ ルが含まれています。
は じ めに
AES (Advanced Encryption Standard) な ど の最新の暗号化方式の場合、 暗号化アルゴ リ ズ ムは公開 さ れてい る ため、 シ ス テ
ムのセキ ュ リ テ ィ は暗号化キーのセキ ュ リ テ ィ に依存 し ます。Zynq-7000 AP SoC デバ イ ス では、AES キーを ワ ン タ イ ム プ
ロ グ ラ マブル (OTP) eFUSE ア レ イ ま たはバ ッ ク ア ッ プ バ ッ テ リ 付 き RAM (BBRAM) のいずれかに格納で き ます。BBRAM
を使用す る 場合は、 暗号化キーを変更で き ます。 キーを変更す る こ と で、 攻撃者がキーを解読す る ために費やす時間が増
大 し 、 ま た キーで保護す る こ と で情報量を削減で き ます。
Zynq-7000 AP SoC デバ イ ス よ り 前のデバ イ ス では、AES 暗号化キーは iMPACT ま たはサー ド パーテ ィ の ソ フ ト ウ ェ ア を使
用 し て FPGA にプ ロ グ ラ ム さ れます (通常、 シ ス テ ムが実際に現場で展開 さ れ る 前)。 そ し て、 デバ イ ス が存続す る 限 り 同
じ 暗号化キーが使用 さ れ ます。 Zynq-7000 AP SoC デバ イ ス の場合は、 Zynq-7000 デバ イ ス CPU で動作す る セキ ュ ア キー
で暗号化キーを変更で き ます。 こ のアプ リ ケーシ ョ ン ノ ー ト では、 異な る パーテ ィ シ ョ ンに対 し て BBRAM キーを変更す
る 方法について説明 し ます。 こ のキーは、 ブー ト 時ま たは ラ ン タ イ ム時に変更で き ます。
「暗号化キーの要件を定義」 で、 一般的なセキ ュ リ テ ィ について説明 し 、 Zynq-7000 AP SoC デバ イ ス でキーを変更す る 理
由を示 し ます。 リ フ ァ レ ン ス デザ イ ンは、 Zed ま たは MicroZed 評価プ ラ ッ ト フ ォーム上で実行 さ れます。 JTAG ピ ンの外
部接続の要件を含むボー ド のセ ッ ト ア ッ プについては、 3 ページの 「評価ボー ド 」 で説明 し ます。 プ ロ ジ ェ ク ト 開発の概
要は、 4 ページの 「 リ フ ァ レ ン ス デザ イ ンの開発」 で説明 し ます。 Bootgen を使用 し た ソ フ ト ウ ェ ア プ ロ ジ ェ ク ト の開発
お よ びそれ ら を統合 し て イ メ ージ を生成す る プ ロ セ ス について説明 し ま す。 Zed 評価ボー ド におけ る キー変更のハー ド
ウ ェ ア検証については、 11 ページの 「シ ス テ ム テ ス ト 」 で説明 し ます。
本資料は表記のバージ ョ ンの英語版を翻訳 し た も ので、内容に相違が生 じ る場合には原文を優先 し ます。 資料に よ っ ては英語版の更新に対応 し ていない も のがあ り ます。 日本
語版は参考用 と し て ご使用の上、 最新情報につ き ま し ては、 必ず最新英語版を ご参照 く だ さ い。
XAPP1223 (v1.0) 2014 年 11 月 6 日
japan.xilinx.com
1
必要なハー ド ウ ェ アおよび ソ フ ト ウ ェ ア
注記 : Zed と は、 Zynq 評価お よ び開発を意味 し ます [参照 1]。
こ のアプ リ ケーシ ョ ンでは、 ザ イ リ ン ク ス の ソ フ ト ウ ェ ア開発キ ッ ト (SDK) に関す る 知識があ る こ と を前提 と し て説明 し
てい ます。セキ ュ ア アプ リ ケーシ ョ ンに SDK を使用す る ための入門ガ イ ド は、『Zynq-7000 All Programmable SoC のセキ ュ
ア ブー ト 』 (XAPP1175) [参照 2] を参照 し て く だ さ い。
必要なハー ド ウ ェ アおよび ソ フ ト ウ ェ ア
Zynq-7000 デバ イ ス で暗号化キーを変更す る 際のハー ド ウ ェ アお よ び ソ フ ト ウ ェ ア要件は次の と お り です。
•
Zed ま たは MicroZed 評価ボー ド
•
AC 電源アダプ タ ー (12VDC)
•
USB Type-A/Micro-B ケーブル
•
ザ イ リ ン ク ス プ ラ ッ ト フ ォーム ケーブル USB II
•
JTAG–MIO ワ イ ヤ コ ネ ク タ (x 4)
•
Vivado® Design Suite 2014.3
•
ザ イ リ ン ク ス ソ フ ト ウ ェ ア開発キ ッ ト (SDK) 2014.3
暗号化キーの要件を定義
エンベデ ッ ド シ ス テ ム設計者は、 シ ス テ ムの暗号化キーの要件を定義する 必要があ り 、 キーの変更が必要か否か を判断 し
ます。 暗号化キーの要件は、 エンベデ ッ ド シ ス テ ムで使用 さ れ る 情報の重要度、 エンベデ ッ ド シ ス テ ムの使用モデル、 お
よ びシ ス テ ムへの脅威に よ っ て決定 さ れます。
エ ンベデ ッ ド シ ス テムで使用 さ れる情報の重要度
Zynq-7000 AP SoC デバ イ ス で使用 さ れ る パーテ ィ シ ョ ンは、 ソ フ ト ウ ェ ア、デー タ 、お よ びハー ド ウ ェ ア (ビ ッ ト ス ト リ ー
ム) の 3 種類あ り ます。 ハー ド ウ ェ アや ソ フ ト ウ ェ アでは、 競合性の高い IP が含まれ る 場合に重要 と 判断 さ れます。 デー
タ パーテ ィ シ ョ ンでは、 患者カルテな ど機密情報 と し て保護する 必要があ る 情報が含まれ る 場合に重要 と 判断 さ れます。
エ ンベデ ッ ド シ ス テムの使用モデル
エ ンベデ ッ ド シ ス テ ム の使用形態に よ っ て、 攻撃の リ ス ク や確率が左右 さ れ ます。 セ キ ュ リ テ ィ ガー ド で保護 さ れたセ
キ ュ リ テ ィ 範囲内でエンベデ ッ ド シ ス テ ムが使用 さ れ る 場合、 内部攻撃の対象 と な り ますが、 盗用や物理的な攻撃に さ ら
さ れ る 可能性が低下 し ます。 デバ イ ス が現場で使用 さ れ、 有線/無線通信を介 し て イ ン タ ーネ ッ ト 接続 さ れ る 場合は、 デバ
イ ス が盗用 さ れた り 、中間者攻撃でデー タ が傍受 さ れ る 可能性があ り ます。 フ ィ ール ド エンベデ ッ ド シ ス テ ムが リ モー ト
ソ フ ト ウ ェ ア ア ッ プデー ト をサポー ト す る 場合は、 通常、 暗号化キーの変更が必要です。
エ ンベデ ッ ド シ ス テムへの脅威
エンベデ ッ ド シ ス テ ムへの脅威の例 と し て、 物理的攻撃 と リ モー ト ハ ッ キ ン グの 2 つを紹介 し ます。 本来、 脅威は情報の
重要度やエンベデ ッ ド シ ス テ ムの使用モデル と 深 く 関係 し ます。 使用モデルを用いて、 サ イ ド チ ャ ネル DPA (差分電力解
析) 攻撃な ど の手元のシ ス テ ム を対象 と し た物理的攻撃、 ま たはサービ ス妨害な ど を引 き 起 こ す イ ン タ ーネ ッ ト 経由の リ
モー ト 攻撃を受け易いか否か を判断で き ます。
情報の重要度は、 必要な保護レベルの判断に役立ち ます。 必要な保護レベルは、 機密情報への不正ア ク セ ス、 IP の盗用、
あ る いはシ ス テ ムの機能障害 (サービ ス妨害) を引き 起 こ す原因な ど に よ っ て異な り ます。
XAPP1223 (v1.0) 2014 年 11 月 6 日
japan.xilinx.com
2
評価ボー ド
モバ イ ル アプ リ ケーシ ョ ンでエンベデ ッ ド シ ス テ ムが使用 さ れ る 場合は、デバ イ ス が盗用 さ れてい る か を所有者が認識で
き る こ と があ り ます。 手頃な価格でデバ イ ス を置 き 換え る こ と がで き 、 暗号化キーをゼ ロ 化すれば、 物理的な攻撃を受け
に く く な り ます。
デバ イ ス の リ モー ト ハ ッ キ ン グに よ る 情報流出が脅威の対象 と な る 場合には、 キーを変更 し て攻撃か ら 保護す る こ と が可
能です。
暗号化キーを変更する理由
暗号化キーを変更す る 理由は次の と お り です。
•
最良のセキ ュ リ テ ィ 対策 - ク ロ ーズ ド シ ス テ ムの場合で も 、 定期的にキーを変更す る 必要があ り ます。
•
オープン シ ス テ ム - エンベデ ッ ド シ ス テ ムの ソ フ ト ウ ェ ア サプ ラ イ ヤーはそれぞれ異な る 暗号化キーを使用す る
必要があ り ます。
•
連結シ ス テ ム - エンベデ ッ ド シ ス テ ムは、有線お よ び無線 イ ーサネ ッ ト を使用 し て連結 さ れます。連結 さ れ る と 、優
れたシ ス テ ムにな り ますが、 リ モー ト ハ ッ カーへア ク セ ス ポ イ ン ト を提供す る こ と にな り ます。
•
複数の非公開の ピ ア間通信 - 複数の リ モー ト エン テ ィ テ ィ へ機密情報を送信す る 場合は、 異な る 暗号化キーを使用
す る 必要があ り ます。
評価ボー ド
リ フ ァ レ ン ス デザ イ ンは、 ザ イ リ ン ク ス と Avnet 社の評価ボー ド を使用 し ます。 ザ イ リ ン ク ス の Zynq-7000 AP SoC デバ
イ ス評価プ ラ ッ ト フ ォームは ZC702 と ZC706 の 2 つで、 Avnet 社の Zynq-7000 デバ イ ス評価プ ラ ッ ト フ ォームは、 Zed と
MicroZed ボー ド の 2 つです。早期に リ リ ース さ れた Zed ボー ド は、セキ ュ リ テ ィ をサポー ト し てい ません。ZC702 と ZC706
ボー ド には、 BBRAM 用のバ ッ テ リ が実装 さ れてい ます。
ボー ド のセ ッ ト ア ッ プ要件は、 GPIO ピ ンか ら JTAG ポー ト へ外部接続を行 う こ と です。 こ の接続は、 最新のボー ド 上で簡
単に定義お よ び実装で き ます。 リ フ ァ レ ン ス デザ イ ンでは、 安価な Avnet 社製ボー ド を使用 し ます。
図 1 に Zed ボー ド のセ ッ ト ア ッ プ を示 し ます。 JTAG ポー ト は J15 コ ネ ク タ へ接続 し ます。 JTAG TMS、 TCK、 TDO、 TDI
ポー ト は、 ボー ド 上に表記 さ れてい ま す。 MIO ポー ト は、 JE1 コ ネ ク タ へ接続 し ま す。 Zed お よ び MicroZed ボー ド 上の
MIO (GPIO) と JTAG の接続は比較的単純です。
XAPP1223 (v1.0) 2014 年 11 月 6 日
japan.xilinx.com
3
リ フ ァ レ ン ス デザイ ンの開発
X-Ref Target - Figure 1
図 1 : Zed ボー ド 上における MIO と JTAG の接続
Zed お よ び MicroZed ボー ド は、 BBRAM 用のバ ッ テ リ を備え てい ません。 プ ロ ト タ イ プのテ ス ト では、 BBRAM のバ ッ テ
リ の代わ り に電源を使用で き ます。 Zed ボー ド では、 電源を J16 の BATT/GND 端子に接続 し ます。 MicroZed ボー ド では、
電源を S12 に接続 し ます。 図 1 は、 リ フ ァ レ ン ス デザ イ ン を使用 し た MicroZed の接続の写真です。
評価ボー ド を使用 し てプ ロ ト タ イ プ化 し た後、ボー ド ト レース を用いて GPIO と JTAG ポー ト を接続 し た カ ス タ ム ボー ド
を開発で き ます。
リ フ ァ レ ン ス デザイ ンの開発
BBRAM キーを変更す る シ ス テ ム開発では、 4 つの ソ フ ト ウ ェ ア プ ロ ジ ェ ク ト (FSBL ( フ ァ ー ス ト ス テージ ブー ト ロ ー
ダー )、 BBRAM キー ロ ーダー (BKL)、 パーテ ィ シ ョ ン ロ ーダー、 hello_world) を使用 し ます。 リ フ ァ レ ン ス デザ イ ン で
は、 FSBL、 BBRAM キー ロ ーダー、 お よ びパーテ ィ シ ョ ン ロ ーダーがオ リ ジナルの暗号化キーを使用 し 、 hello_world パー
テ ィ シ ョ ンが 2 つ目の暗号化キーを使用 し ます。
こ のアプ リ ケーシ ョ ン ノ ー ト では、 hello_world パーテ ィ シ ョ ンの ロ ー ド /復号化の前に暗号化キー ロ ー ド ソ フ ト ウ ェ アが
実行 さ れ る よ う に、 デバ イ ス上で ロ ー ド /実行の順序を変更する 方法について説明 し ます。 こ れは、 BBRAM キー ロ ーダー
と パーテ ィ シ ョ ン ロ ーダーを使用 し て実行 し ます。
キーの変更には、 パーテ ィ シ ョ ン の ロ ー ド /実行の順序を変更す る 必要があ る ため、 パーテ ィ シ ョ ン を ロ ー ド す る 標準フ
ロ ーを変更 し なければな り ません。 変更 さ れない場合は、 FSBL がすべてのパーテ ィ シ ョ ン を ロ ー ド し て、 ロ ー ド さ れた
最後のパーテ ィ シ ョ ンに実行を移 し ます。 すでに述べた よ う に、 hello_world パーテ ィ シ ョ ンは新 し い暗号化キーを使用 し
て暗号化 さ れてい ます。 BBRAM キー ロ ーダーが ロ ー ド さ れて も 実行 さ れなければ、 hello_world パーテ ィ シ ョ ンの復号化
で使用 さ れ る BBRAM キーがア ッ プデー ト さ れません。
XAPP1223 (v1.0) 2014 年 11 月 6 日
japan.xilinx.com
4
リ フ ァ レ ン ス デザイ ンの開発
図 2 に、 エンベデ ッ ド シ ス テ ム を ブー ト する 際の標準フ ロ ーを示 し ます。
X-Ref Target - Figure 2
/RDG''5
2&0&RQILJ
0HP
/RDG463,
([HFXWH
/RDGHG
3URJUDPV
;$33BB
図 2 : シス テム開発の標準フ ロー
図 3 に、 暗号化キーが変更 さ れ る リ フ ァ レ ン ス デザ イ ンのフ ロ ーを示 し ます。 新 し いキーで暗号化 さ れたパーテ ィ シ ョ ン
を復号化で き る よ う にパーテ ィ シ ョ ンの ロ ー ド /実行の順序が変更 さ れてい ます。
X-Ref Target - Figure 3i
/RDG
%%5$0.H\
/RDGHU
([HFXWH
)6%/
([HFXWH
3DUWLWLRQ
/RDGHU
/RDG
3DUWLWLRQ
/RDGHU
/RDG
KHOORBZRUOG
([HFXWH
%%5$0.H\
/RDGHU
([HFXWH
KHOORBZRUOG
yWWϭϮϮϯͺϬϯͺϭϬϭϳϭϰ
図 3 : 暗号化キーを変更する場合のロー ド /実行の順序
リ フ ァ レ ン ス デザ イ ンでは、 次の タ ス ク を使用 し て AES キーを変更 し ます。
•
ブ ロ ッ ク RAM キー ロ ーダーお よ びパーテ ィ シ ョ ン ロ ーダー ソ フ ト ウ ェ ア プ ロ ジ ェ ク ト
•
JTAG ポー ト の有効化/無効化
•
すべての ソ フ ト ウ ェ ア プ ロ ジ ェ ク ト を実行す る ためのハン ド オ フ コ ー ド
•
Bootgen イ メ ージ フ ォーマ ッ ト (BIF) フ ァ イ ルの変更
ア ド レ ス マ ッ プ と 実行ハン ド オ フ
リ フ ァ レ ン ス デザ イ ンでは、 FSBL、 BBRAM キー ロ ーダー、 パーテ ィ シ ョ ン ロ ーダー、 お よ び hello_world が連続 し て実
行 さ れ る 必要があ り ます。標準的な FSBL フ ロ ーでは、最後のパーテ ィ シ ョ ンのみ実行 さ れます。1 つの ソ フ ト ウ ェ ア パー
テ ィ シ ョ ンか ら 次のパーテ ィ シ ョ ンへ実行を移すために、 ソ フ ト ウ ェ ア プ ロ ジ ェ ク ト には HandoffExit 関数が含まれます。
HandoffExit 関数は、 次に実行す る パーテ ィ シ ョ ンの ロ ー ド ア ド レ ス を使用 し ます。 表 1 に、 リ フ ァ レ ン ス デザ イ ンで使
用 さ れ る ソ フ ト ウ ェ ア プ ロ ジ ェ ク ト のア ド レ ス マ ッ プ を示 し ます。
表 1 : ア ド レス マ ッ プ
ソフ ト ウェア
ブ ロ ッ ク RAM キー ロ ーダー
ア ド レス
0xFFFFC000
パーテ ィ シ ョ ン ロ ーダー
0x200000
hello_world
0x300000
XAPP1223 (v1.0) 2014 年 11 月 6 日
japan.xilinx.com
5
リ フ ァ レ ン ス デザイ ンの開発
こ の ア ド レ ス マ ッ プ、 HandoffExit 関数、 お よ び BIF partition_owner 属性 (後で説明) を 使用 し て、 実行順序は FSBL →
BBRAM キー ロ ーダー → パーテ ィ シ ョ ン ロ ーダー → hello_world と な り ます。
FSBL (フ ァ ース ト ステージ ブー ト ローダー ) と Hello_World プロジ ェ ク ト
SDK の新 し いプ ロ ジ ェ ク ト テ ンプ レー ト を使用 し て、 FSBL と hello_world プ ロ ジ ェ ク ト を コ ンパ イ ル し ます。 hello_world
プ ロ ジ ェ ク ト は、 変更な し で コ ンパ イ ル さ れます。 最初の コ ンパ イ ルの後に FSBL プ ロ ジ ェ ク ト にわずかな変更が必要で
す。
こ の リ フ ァ レ ン ス デザ イ ンはセキ ュ ア モー ド で実行 さ れ る ため、 JTAG ポー ト は無効 と な り ます。 BBRAM キー ロ ーダー
で使用 さ れ る セキ ュ ア キー ド ラ イ バーは JTAG ポー ト を使用 し ます。JTAG ポー ト を有効にする 場合、fsbl_src/main.c
コ ー ド を変更 し ます。 DAP/JTAG ポー ト を有効にする には、 main.c 内の コ ー ド に CTRL(23) を書 き 込みます。
標準的な FSBL は、 FSBL の直後に ビ ッ ト ス ト リ ーム がパーテ ィ シ ョ ン と し て ロ ー ド さ れ る よ う に ロ ー ド 順序を強制的に
実行 し ます。 シ ス テ ムに よ っ ては、 FSBL コ ー ド を変更 し て こ の要件を緩和する 必要があ り ます。
1.
コ マ ン ド プ ロ ンプ ト に 「xsdk &」 と 入力 し ます。
2.
[Create Application Project] を ク リ ッ ク し ます。
3.
[New Project Templates] ダ イ ア ロ グ ボ ッ ク ス で [Project Name] に 「fsbl」 と 入力 し て [Hardware Platform] を選択 し て、
[Next] を ク リ ッ ク し ます。
4.
[New Project Templates] で [Zynq FSBL] を選択 し て [Finish] を ク リ ッ ク し ます。リ フ ァ レ ン ス デザ イ ンの fsbl/src で、
main.c を fsbl_src/main.c に置 き 換え ます。
5.
[Project Explorer] ペ イ ンで、[fsbl] を右 ク リ ッ ク し て [C/C++ Build Settings] → [Symbols] → [Defined Symbols +] を ク リ ッ
ク し ます。 テ キ ス ト ボ ッ ク ス に 「FSBL_DEBUG_INFO 」 と 入力 し て、 [OK] を ク リ ッ ク し ます。
6.
こ れ ら の手順を繰 り 返 し て、hello_world ソ フ ト ウ ェ ア プ ロ ジ ェ ク ト を作成 し ます。hello_world ソ フ ト ウ ェ ア プ ロ ジ ェ
ク ト の コ ー ド 変更は不要です。
7.
[Project Explorer] ペ イ ン で、 [hello_world] を ダブル ク リ ッ ク し て [src] → [lscript.ld] を ク リ ッ ク し 、
[ps7_ddr_0_S_AXI_BASEADDR] のベース ア ド レ ス に 「0x00300000」 と 入力 し ます。
BBRAM キー ローダー
BBRAM キー ロ ーダーは、 SDK の lib/sw_services デ ィ レ ク ト リ のセキ ュ ア キー ド ラ イ バー (SKD) ラ イ ブ ラ リ を使
用 し ま す。 こ の SKD を 用 い て、 eFUSE お よ び BBRAM キ ー を プ ロ グ ラ ム で き ま す。 以 前 は、 iMPACT ま た は BPM
Microsystems 社製デバ イ ス プ ロ グ ラ マ を使用 し て暗号化キーを プ ロ グ ラ ム し てい ま し た。
BBRAM キー ロ ーダー ソ フ ト ウ ェ ア プ ロ ジ ェ ク ト を作成する には、まず次の コ マ ン ド を使用 し て、BBRAM キー ロ ーダー
ボー ド サポー ト パ ッ ケージ を作成 し ます。
1.
[File] → [New] → [Board Support Package] を ク リ ッ ク し ます。
2.
[Project Name] に「bbram_key_loader_bsp_0」 と 入力 し ます。[Hardware Platform] で [zed_hw_platform] を選択 し て、[Finish]
を ク リ ッ ク し ます。
3.
[Board Support Package Settings] ウ ィ ン ド ウ で [xilskey] を オンに し て、 [Finish] を ク リ ッ ク し ます。
4.
[File] → [New] → [Application Project] を ク リ ッ ク し ます。
5.
[Project Name] に 「bbram_key_loader」 と 入力 し て、[Hardware Platform] で [zed_hw_platform] を選択 し ます。[Use Existing]
をオンに し て [bbbram_key_loader_bsp_0] BSP を選択 し て、 [Next] を ク リ ッ ク し ます。
6.
[New Project Templates] で [Empty Application] を選択 し ます。
7.
[Project Explorer] ペ イ ンで [bbram_key_loader] を右 ク リ ッ ク し て [src] を ク リ ッ ク し、 [Import] → [General] → [File System]
を ク リ ッ ク し て、 [Next] を ク リ ッ ク し ます。
8.
[Browse] で、 リ フ ァ レ ン ス デザ イ ンの xilskey_v2_0/examples デ ィ レ ク ト リ を選択 し て、 [OK] を ク リ ッ ク し ます。
9.
xilskey_bbram_example.c、 xilskey_input.h、 お よ び handoff.S フ ァ イ ルを選択 し ます。
xilskey ソ ース フ ァ イ ル も SDK の イ ン ス ト ール エ リ ア (lib/sw_services の下) にあ り ます。 xilskey_v2_0/examples
デ ィ レ ク ト リ の リ フ ァ レ ン ス デザ イ ン の コ ピ ーに は、 xilskey_input.h に サ ン プ ル の AES キ ーが追加 さ れ、
XAPP1223 (v1.0) 2014 年 11 月 6 日
japan.xilinx.com
6
リ フ ァ レ ン ス デザイ ンの開発
xilskey_bbram_example.c にハン ド オ フ コ ー ド が追加 さ れてい ます。 ソ ース フ ァ イ ルを追加 し た後、 [Finish] を
ク リ ッ ク し ます。
10. [Project Explorer] ペ イ ン で、 [bbram_key_loader] を ダブル ク リ ッ ク し て [src] → [lscript.ld] を ク リ ッ ク し 、
[ps7_ram_0_S_AXI_BASEADDR] のベース ア ド レ ス に 「0xFFFFC000 」 と 入力 し ます。
表 2 に、 ZC702 お よ び Zed/MicroZed ボー ド で使用 さ れ る 接続を示 し ます。
表 2 : MIO と JTAG の接続
ピ ン名
ZC702 MIO
Zed MIO
MicroZed MIO
TDI
17
13
13
TDO
18
10
10
TCK
19
11
11
TMS
20
12
12
MIO と JTAG の接続は、 xilskey_input.h フ ァ イ ルに定義 さ れてい ます。
セキ ュ ア キー ド ラ イ バーの ド キ ュ メ ン ト は次のデ ィ レ ク ト リ にあ り ます。
$ Xilinx/../SDK/2014.3/data/embeddedsw/lib/sw_services/xilskey_v2_0/doc
パーテ ィ シ ョ ン ローダー
パーテ ィ シ ョ ン ロ ーダーは、 ソ ース ア ド レ ス か ら デス テ ィ ネーシ ョ ン ア ド レ スへシ ン グル パーテ ィ シ ョ ン を コ ピーす る
小 さ な コ ー ド セ ッ ト です。 パーテ ィ シ ョ ン ロ ーダーは、 Zynq-7000 AP SoC 上の 2 つのハー ド ウ ェ ア機能 (デバ イ ス コ ン
フ ィ ギ ュ レーシ ョ ン ダ イ レ ク ト メ モ リ ア ク セ ス コ ン ト ロ ー ラ ー (DevC DMAC) お よ び AES Decryptor) に対 し て簡単にア
ク セ ス で き る よ う に イ ン タ ーフ ェ イ ス を提供 し ます。 devcfg デバ イ ス ド ラ イ バーは、
SDK/../data/embeddedsw/XilinxProcessorIPLib/drivers/devcfg_v3_1 デ ィ レ ク ト リ にあ り ます。 パーテ ィ
シ ョ ン ロ ーダーは、 こ の devcfg デバ イ ス ド ラ イ バーの関数を使用 し て、 DevC DMAC や AES Decryptor を制御 し ます。 コ
ピー さ れ る パーテ ィ シ ョ ン が ソ フ ト ウ ェ ア ま たはデー タ のいずれかの場合は、 PcapDataTransfer 関数が使用 さ れ ま す。 コ
ピー さ れ る パーテ ィ シ ョ ンがハー ド ウ ェ ア (ビ ッ ト ス ト リ ーム) の場合は、 PcapLoadPartition 関数が使用 さ れます。
パーテ ィ シ ョ ン ロ ーダーは、 5 つの引数 ( ソ ース ア ド レ ス、 デス テ ィ ネーシ ョ ン ア ド レ ス、 ソ ース サ イ ズ、 デス テ ィ ネー
シ ョ ン サ イ ズ、 お よ び コ ピー時に復号化機能を介すか否かを指定す る 引数) を使用 し ます。 ソ ース ア ド レ ス は、 パーテ ィ
シ ョ ンの Bootgen で生成 さ れた Quad SPI (Quad Serial Peripheral Interface) フ ラ ッ シ ュ メ モ リ のア ド レ ス です。 こ のア ド レ ス
は、 SDK Flash Writer に よ っ て書 き 込みが行われます。 デス テ ィ ネーシ ョ ン ア ド レ ス は、 Zynq-7000 AP SoC デバ イ ス内の
DDR、 オ ンチ ッ プ メ モ リ (OCM)、 ま たは コ ン フ ィ ギ ュ レ ーシ ョ ン メ モ リ 内のア ド レ ス です。 暗号化が使用 さ れ る 場合、
パーテ ィ シ ョ ンの ソ ース の長 さ はデス テ ィ ネーシ ョ ンの長 さ よ り 長 く な り ます。
パー テ ィ シ ョ ン の ソ ー ス お よ びデ ス テ ィ ネ ー シ ョ ン の ア ド レ ス/サ イ ズ を 決定す る に は次の 2 つの方法が あ り ま す。
[FSBL_DEBUG_INFO] シ ン ボルが コ ンパ イ ルのオプシ ョ ンであ る 場合は、 FSBL デバ ッ グ ロ グ フ ァ イ ルにア ド レ スお よ び
サ イ ズ情報が含まれます。
XAPP1223 (v1.0) 2014 年 11 月 6 日
japan.xilinx.com
7
リ フ ァ レ ン ス デザイ ンの開発
図 4 の FSBL デバ ッ グ ロ グ フ ァ イ ルの最後の部分に、 bbram_key_loader パーテ ィ シ ョ ンの ソ ースお よ びデス テ ィ ネーシ ョ
ン ア ド レ ス と サ イ ズ を示 し てい ます。
X-Ref Target - Figure 4
図 4 : bbram_key_loader パーテ ィ シ ョ ンのソ ースお よびデス テ ィ ネーシ ョ ン ア ド レ ス を示すログ フ ァ イル
パーテ ィ シ ョ ンのア ド レ スお よ びサ イ ズは、 -debug コ マ ン ド オプシ ョ ン を使用 し て Bootgen を実行 し た場合に も 提供 さ
れます。
パーテ ィ シ ョ ン ロ ーダーの実行中に DevC DMAC が停止 し た場合は、 サ イ ズ (SRC LEN、 DEST LEN) が適切であ る か を確
認 し て く だ さ い。 パーテ ィ シ ョ ンのサ イ ズ情報は提供 さ れますが、 ない場合はバ イ ト 数ま たは ワー ド 数 と い う 単位で必ず
必要です。 ワー ド と バ イ ト 間の変換には、 次の python コ ー ド を使用 し ます。
int(“f6d20”,16)
1010976
1010976 * 4
4043904
hex(4043904)
0x3db480
リ フ ァ レ ン ス デザ イ ンでは、パーテ ィ シ ョ ン ロ ーダーが AES 復号化機能を介 し て hello_world ソ フ ト ウ ェ ア を Quad SPI フ
ラ ッ シ ュ メ モ リ か ら DDR へ コ ピー し ます。
次の手順に従っ て、 空のアプ リ ケーシ ョ ン と し てパーテ ィ シ ョ ン ロ ーダー ソ フ ト ウ ェ ア プ ロ ジ ェ ク ト を作成 し ます。
1.
[Project Explore] ペ イ ン で [partition_loader] を右 ク リ ッ ク し て、 [src] → [Import] を ク リ ッ ク し ます。
2.
[Import] ダ イ ア ロ グ ボ ッ ク ス で [General] → [File System] を選択 し て [Next] を ク リ ッ ク し ます。
3.
[Browse] で、リ フ ァ レ ン ス デザ イ ンの partition_loader_src デ ィ レ ク ト リ を選択 し て、[OK] を ク リ ッ ク し ます。
4.
[Select All] を ク リ ッ ク し て、 [Finish] を ク リ ッ ク し ます。
5.
[Project Explore] ペ イ ン で [partition_loader] を ダブル ク リ ッ ク し て、 [src] → [lscript.ld] を ク リ ッ ク し ます。
6.
[ps_ddr_0_S_AXI_BASEADDR] のベース ア ド レ ス と し て 「0x00200000」 と 入力 し ます。
SDK Flash Writer の ロ ー ド の後、 bbram_key_loader パーテ ィ シ ョ ンが暗号化 さ れて Quad SPI フ ラ ッ シ ュ メ モ リ 内に格
納 さ れ ま す。 bbram_key_loader パ ー テ ィ シ ョ ン を DDR へ復号化/ コ ピ ーす る 標準的 な FSBL 動作 は、 暗号化 キ ー が
xilskey_input.h 内 に 含 ま れ て い る た め 使用 で き ま せ ん。 パ ー テ ィ シ ョ ン ロ ー ダ ー は、 復号化機能 を 介 さ ず に
bbram_key_loader パーテ ィ シ ョ ン を DDR へ コ ピー し ます。 BRAM キー ロ ーダーを使用す る 際に、 パーテ ィ シ ョ ンは
復号化 さ れて OCM へ コ ピー さ れます。 パーテ ィ シ ョ ン ロ ーダーは、 OCM か ら 実行 さ れます。
パーテ ィ シ ョ ン ロ ーダーは、 パーテ ィ シ ョ ンの コ ピーや復号化のほかに も 、 暗号化 さ れた暗号化キーを Zynq-7000 デバ イ
ス の OCM 内に格納 し て、 使用直前にキーを復号化す る タ ス ク も サポー ト し てい ます。
XAPP1223 (v1.0) 2014 年 11 月 6 日
japan.xilinx.com
8
リ フ ァ レ ン ス デザイ ンの開発
Bootgen
Bootgen は、パーテ ィ シ ョ ン を統合 し て BIN ま たは MCS フ ォーマ ッ ト で イ メ ージ を生成する SDK ツールです。Bootgen を
使用す る には、 Bootgen GUI ま たはテ キ ス ト エデ ィ タ ーを使用 し て Bootgen イ メ ージ フ ォーマ ッ ト (BIF) フ ァ イ ルを作成
し ま す。 BIF フ ァ イ ルは、 イ メ ージ内に含 ま れ る パーテ ィ シ ョ ン の リ ス ト です。 リ ス ト 内の各パーテ ィ シ ョ ン に対 し て、
BIF フ ァ イ ルはオプ シ ョ ン で ロ ー ド ア ド レ ス、 暗号化、 認証 を指定す る パーテ ィ シ ョ ン属性 を 含め る こ と がで き ま す。
partition_owner 属性は、 FSBL がパーテ ィ シ ョ ン を ロ ー ド する か否か を制御 し ます。 partition_owner 属性は、 U-Boot な ど の
セカ ン ド ロ ーダー ( リ フ ァ レ ン ス デザ イ ンではパーテ ィ シ ョ ン ロ ーダー) がパーテ ィ シ ョ ン を ロ ー ド す る 場合に使用 さ れ
ます。
リ フ ァ レ ン ス デザ イ ン を用いて、 ロ ー ド /実行の順序要件が満た さ れた イ メ ージ を生成す る 方法を示 し ます。
Bootgen イ メ ージ フ ォ ーマ ッ ト フ ァ イル
現在、 Bootgen GUI では複数の暗号化キーを指定す る こ と がで き ません。 リ フ ァ レ ン ス デザ イ ン用の BIF を生成す る には、
Bootgen GUI を使用 し てテ ンプ レー ト BIF を生成 し た後、 テ キ ス ト エデ ィ タ ーを使用 し て BIF 内のキーを定義 し ます。
1.
SDK で [Tools] → [Create Zynq Boot Image] を ク リ ッ ク し ます。
2.
[Use encryption] を オンに し ます。
3.
[Key File] で [zed_bbram1.nky] を参照 ( リ フ ァ レ ン ス デザ イ ンのキー デ ィ レ ク ト リ にあ る ) し て、 [Add] を ク リ ッ ク
し ます。
4.
[File path] で fsbl.elf を参照 し ます。
5.
[Partition type] に [bootloader] を選択 し ます。 [Encryption] に [aes] を選択 し て、 [OK] を ク リ ッ ク し ます。
6.
fsbl.elf に対 し て [Add] の手順を繰 り 返 し て bbbram_key_loader.elf、 partition_loader.elf、 お よ び
hello_world.elf を追加 し ます。
7.
[Partition type] を [datafile] に変更 し ます。
8.
[Browse] を使用 し て、 [Output BIF file path:] に [zed_key_change.bif] を指定 し ます。
9.
[Browse] を使用 し て、 [Output path:] に [zed_key_change.mcs] を指定 し ます。
10. [Create Image] を ク リ ッ ク し ます。
XAPP1223 (v1.0) 2014 年 11 月 6 日
japan.xilinx.com
9
リ フ ァ レ ン ス デザイ ンの開発
図 5 に、 4 つのパーテ ィ シ ョ ンが追加 さ れた Bootgen GUI イ ン タ ーフ ェ イ ス を示 し ます。
X-Ref Target - Figure 5
図 5 : Bootgen GUI を使用 し た BIF 生成
11. テ キ ス ト エデ ィ タ ーを使用 し て、 2 つ目の暗号化キー (zed_bbram2.nky) を Bootgen GUI で生成 し た BIF に追加 し
ま す。 partition_owner 属性を hello_world パーテ ィ シ ョ ン に追加 し ま す。 最終的な BIF は、 completed デ ィ レ ク ト リ の
zed_key_change.bif に配置 さ れます。
12. コ マ ン ド プ ロ ンプ ト で、 次の コ マ ン ド を実行 し て MCS フ ァ イ ルを生成 し ます。
bootgen -image zed_change_key.bif -o zed_change_key.mcs -encrypt bbram -w on
ま たは、 SDK を使用 し て、 手作業で編集 し た zed_change_key.bif を Bootgen GUI に読み込んで、 GUI を使用 し て
MCS フ ァ イ ルを生成す る こ と も 可能です。
XAPP1223 (v1.0) 2014 年 11 月 6 日
japan.xilinx.com
10
シス テム テ ス ト
シ ス テム テ ス ト
暗号化キーの変更を テ ス ト す る には、 SDK Flash Writer を使用 し て Quad SPI フ ラ ッ シ ュ メ モ リ に zed_key_change.mcs
を書 き 込みます。 QSPI へ書 き 込みで き ない場合は、 Zed/MicroZed ボー ド の ス イ ッ チを JTAG プ ロ グ ラ ミ ン グ モー ド に設
定 し て こ の動作を行い ます。 すべてのパーテ ィ シ ョ ンは、 Quad SPI フ ラ ッ シ ュ メ モ リ に ロ ー ド さ れます。
1.
SDK で [Xilinx Tools] → [Program Flash] を ク リ ッ ク し ます。
2.
[Program Flash Memory] ダ イ ア ロ グ ボ ッ ク ス で、 [Browse] を使用 し て イ メ ージ フ ァ イ ル と し て zed_key_change.mcs
を選択し ます。
3.
[Offset] で、 「0x0」 を指定 し ます。
4.
[Program] を ク リ ッ ク し ます。
5.
Zed ボー ド を使用 し 、 バ ッ テ リ が追加 さ れない場合は、 J16 BATT/GND 端子に電源を接続 し ます。 iMPACT を使用 し
て、 最初の zed_bbram1.nky キーを BBRAM にプ ロ グ ラ ム し ます。
impact -batch xapp1223-crypto-key-change/keys/bbram1_key_load.cmd
6.
図 1 お よ び表 2 に定義 さ れてい る と お り に、 Platform Cable USB II を JE1 コ ネ ク タ に置 き 換え ます。
7.
Quad SPI フ ラ ッ シ ュ メ モ リ への ロ ー ド が完了 し た後、 ボー ド の電源を切断 し 、 Mode Select ピ ン を QSPI に切 り 換え て
ボー ド に電源を投入 し ます。 TeraTerm な ど の通信端末を起動 し ます。 ボー ド 上の PS_RST (RST) ボ タ ン を押 し ます。
図 6 に、 予想 さ れ る デバ ッ グ ロ グ出力の最後の部分を示 し ます。
X-Ref Target - Figure 6
図 6 : BBRAM キー変更のログ出力
8.
リ フ ァ レ ン ス デザ イ ンの ロ グ を使用 し て、BBRAM キー ロ ーダーが BBRAM に書 き 込みを行い、パーテ ィ シ ョ ン ロ ー
ダーへ実行を ハ ン ド オ フ す る こ と を検証 し ま す。 パーテ ィ シ ョ ン ロ ーダーが AES 復号化機能を介 し て hello_world
パーテ ィ シ ョ ン を DDR へ コ ピー し た後 hello_world へ実行をハン ド オ フ し 、 通信端末に 「Hello World」 が書 き 込まれ
る こ と を検証 し ます。
イ ン プ リ メ ン テーシ ョ ンの注意事項
こ のアプ リ ケーシ ョ ン ノ ー ト では、 暗号化キーを変更す る 方法について説明 し てい ます。 実際のシ ス テ ムでは、 こ のセ ク
シ ョ ンで言及す る こ と 以外に も 考慮すべ き 事項があ り ます。
XAPP1223 (v1.0) 2014 年 11 月 6 日
japan.xilinx.com
11
ま とめ
Zynq-7000 AP SoC デバ イ ス におけ る 暗号化キーの変更は、 エ ンベデ ッ ド シ ス テ ムへ不正にア ク セ ス し て MIO/EMIO か ら
JTAG ポー ト 間の接続で信号を傍受す る 攻撃者に対 し て、わずかな防御策に過ぎ ません。キーを保護する には、外部の JTAG
接続を保護す る こ と が不可欠です。 改ざん対策については、 『Virtex-6 お よ び 7 シ リ ーズ FPGA での不正操作防止デザ イ ン
の開発』 (XAPP1084) [参照 3] を参照 し て く だ さ い。
Zynq-7000 AP SoC デバ イ ス の場合、 BBRAM の書 き 込み ト ラ ンザ ク シ ョ ンはプ ロ グ ラ マブル ロ ジ ッ ク (FPGA) セ ク シ ョ ン
を消去 し て し ま う ため、 ビ ッ ト ス ト リ ームの再度書 き 込みが必要です。 既に述べた と お り 、 パーテ ィ シ ョ ンの書 き 込みに
はパーテ ィ シ ョ ン ロ ーダーを使用 し ます。
リ フ ァ レ ン ス デザ イ ンでは、 2 つの暗号化キーを使用 し ます。 こ の方法では、 任意のキーの数に拡張可能です。 任意数の
BBRAM キー ロ ーダー /パーテ ィ シ ョ ン ロ ーダーを BIF に含め る こ と がで き ます。
リ フ ァ レ ン ス デザ イ ン では、 ラ ン タ イ ム中にハン ド オ フ が実行 さ れ る ため、 ブー ト プ ロ セ ス と ラ ン タ イ ム プ ロ セ ス の両
方を使用 し ます。
パーテ ィ シ ョ ン ロ ーダーを使用す る 場合、 リ モー ト で リ キー イ ン グで き ます。 こ のアプ リ ケーシ ョ ン ノ ー ト では、 キーの
交換については言及 し てい ません。 リ モー ト のエン テ ィ テ ィ (ピ ア、 ホ ス ト ) へア ク セ スす る には、 暗号化キーを交換す る
必要が あ り 、 それを暗号化、 ま た符号化す る 必要が あ り ま す。 Bootgen はシ ン グル パーテ ィ シ ョ ン の暗号化/符号化を サ
ポー ト し てい ます。 256 ビ ッ ト の暗号化キーはデー タ パーテ ィ シ ョ ン です。 格納 さ れ る キーは、 Zynq-7000 デバ イ ス のセ
キ ュ リ テ ィ 領域内に あ る NVM、 DDR、 ま たはオ ン チ ッ プ メ モ リ 内で暗号化 さ れ、 キーが必要な と き にパーテ ィ シ ョ ン
ロ ーダーが コ ピー /復号化 し ます。
一般にセキ ュ ア キー ド ラ イ バーが xilskey_input.h フ ァ イ ルにハー ド コ ー ド さ れてい る 暗号化キーを BBRAM へ書 き
込みます。 一部のアプ リ ケーシ ョ ンでは、 OCM ま たは AXI ブ ロ ッ ク RAM の メ モ リ ア ド レ ス内にキーが暗号化 さ れて格
納 さ れます。 xilskey_input.h 内のハー ド コ ー ド さ れた キーではな く 、 キー用の メ モ リ ア ド レ ス を使用す る 場合には、
セキ ュ ア キー ド ラ イ バーにわずかな コ ー ド 変更が必要です。
BBRAM キ ー は、 Zynq-7000 デ バ イ ス の セ キ ュ リ テ ィ 領域内 に 格納 さ れ る た め 安全 で す。 キ ー が 不要 な 場合 は、
xilskey_input.h でキーの値に 0 を使用 し て、 セキ ュ リ テ ィ オプシ ョ ン をゼ ロ 化 し ます。 ゼ ロ 化は、 BBRAM キー ロ ー
ダー /パーテ ィ シ ョ ン ロ ーダーのペア を使用 し て実行で き ます。 暗号化キーが ロ ー ド さ れた後、 CTRL(23) の書 き 込みを実
行 し て xilskey_bram_example.c で JTAG ポー ト を無効に し ます。
暗号化キー要件の指定では、 デバ イ ス の ラ イ フ サ イ ク ルを考慮 し て キー要件を定義す る 必要があ り ます。 ブー ト 時に ロ ー
ド さ れ る パーテ ィ シ ョ ンで使用 さ れ る 暗号化キーは、 ブー ト 時に BBRAM 内に存在 し てい る 必要があ り ます。
注記 : BBRAM キー ロ ーダー /パーテ ィ シ ョ ン ロ ーダー操作を実行 し て ラ ン タ イ ム中に暗号化キーを変更 し た後は、 電源
投入時に使用 さ れ る 暗号化キーを リ ロ ー ド す る 必要があ り ます。
ま とめ
こ のアプ リ ケーシ ョ ン ノ ー ト では、 Zynq-7000 All Programmable SoC で BBRAM キーを変更す る 方法について説明 し ま し
た。 リ フ ァ レ ン ス デザ イ ンで使用 さ れ る テ ク ニ ッ ク を利用 し て、 必要に応 じ て複数回キーを変更で き ます。 キーは、 ソ フ
ト ウ ェ ア、 デー タ 、 ま たはハー ド ウ ェ アのパーテ ィ シ ョ ンに対 し て変更で き ます。 BBRAM キー ロ ーダー と パーテ ィ シ ョ
ン ロ ーダーを使用 し て、 それぞれのキー要件に対 し て キーを変更で き ます。
リ フ ァ レ ン ス デザイ ン
こ のアプ リ ケーシ ョ ン ノ ー ト の リ フ ァ レ ン ス デザ イ ンは、 ザ イ リ ン ク ス の ウ ェ ブサ イ ト か ら ダ ウ ン ロ ー ド で き ます。
表 3 に、 リ フ ァ レ ン ス デザ イ ンの詳細を示 し ます。
表 3 : リ フ ァ レ ン ス デザイ ンの詳細
パラ メ ー タ ー
説明
全般
Lester Sanders
開発者
XAPP1223 (v1.0) 2014 年 11 月 6 日
japan.xilinx.com
12
参考資料
表 3 : リ フ ァ レ ン ス デザイ ンの詳細 (続き)
パラ メ ー タ ー
説明
タ ーゲ ッ ト デバ イ ス
Zynq-7000 AP SoC
ソ ース コ ー ド の提供
あり
ソ ース コ ー ド の形式
VHDL、 Verilog
既存のザ イ リ ン ク ス ア プ リ ケーシ ョ ン ノ ー ト / リ フ ァ レ ン ス
デザ イ ン、 サー ド パーテ ィ か ら デザ イ ンへの コ ー ド /IP の使用
なし
シ ミ ュ レーシ ョ ン
論理シ ミ ュ レーシ ョ ンの実施
なし
タ イ ミ ン グ シ ミ ュ レーシ ョ ンの実施
N/A
論理シ ミ ュ レーシ ョ ンお よ び タ イ ミ ン グ シ ミ ュ レーシ ョ ン で
のテ ス ト ベンチの利用
N/A
テ ス ト ベンチの形式
Verilog
使用 し たシ ミ ュ レー タ /バージ ョ ン
Vivado シ ミ ュ レー タ
SPICE/IBIS シ ミ ュ レーシ ョ ンの実施
N/A
イ ン プ リ メ ン テーシ ョ ン
使用 し た合成ツール/バージ ョ ン
Vivado 合成
使用 し た イ ンプ リ メ ン テーシ ョ ン ツール/バージ ョ ン
Vivado イ ンプ リ メ ン テーシ ョ ン
ス タ テ ィ ッ ク タ イ ミ ン グ解析の実施
あり
ハー ド ウ ェ ア検証
ハー ド ウ ェ ア検証の実施
あり
使用 し たハー ド ウ ェ ア プ ラ ッ ト フ ォーム
Zed ボー ド
参考資料
1.
『ZedBoard ス タ ー ト ア ッ プ ガ イ ド 』
2.
『Zynq-7000 All Programmable SoC のセキ ュ ア ブー ト 』 (XAPP1175)
3.
『Virtex-6 お よ び 7 シ リ ーズ FPGA での不正操作防止デザ イ ンの開発』 (XAPP1084)
4.
『ZedBoard Configuration and Booting Guide』 zedboard.org/support/design/1521/11
5.
『ZedBoard Hardware User’s Guide』 zedboard.org/sites/default/files/documentations/ZedBoard_HW_UG_v2_2.pdf
6.
『MicroZed and System on Module Hardware User Guide』
zedboard.org/sites/default/files/documentations/MicroZed_HW_UG_v1_5.pdf
改訂履歴
次の表に、 こ の文書の改訂履歴を示 し ます。
日付
バージ ョ ン
2014 年 11 月 6 日
1.0
XAPP1223 (v1.0) 2014 年 11 月 6 日
内容
初版
japan.xilinx.com
13
法的通知
法的通知
The information disclosed to you hereunder (the “Materials”) is provided solely for the selection and use of Xilinx products.To the maximum extent
permitted by applicable law:(1) Materials are made available "AS IS" and with all faults, Xilinx hereby DISCLAIMS ALL WARRANTIES AND
CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,
NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and (2) Xilinx shall not be liable (whether in contract or tort, including
negligence, or under any other theory of liability) for any loss or damage of any kind or nature related to, arising under, or in connection with, the
Materials (including your use of the Materials), including for any direct, indirect, special, incidental, or consequential loss or damage (including loss of
data, profits, goodwill, or any type of loss or damage suffered as a result of any action brought by a third party) even if such damage or loss was reasonably
foreseeable or Xilinx had been advised of the possibility of the same.Xilinx assumes no obligation to correct any errors contained in the Materials or to
notify you of updates to the Materials or to product specifications.You may not reproduce, modify, distribute, or publicly display the Materials without
prior written consent.Certain products are subject to the terms and conditions of Xilinx’s limited warranty, please refer to Xilinx’s Terms of Sale which
can be viewed at http://www.xilinx.com/legal.htm#tos; IP cores may be subject to warranty and support terms contained in a license issued to you by
Xilinx.Xilinx products are not designed or intended to be fail-safe or for use in any application requiring fail-safe performance; you assume sole risk and
liability for use of Xilinx products in such critical applications, please refer to Xilinx’s Terms of Sale which can be viewed at
http://www.xilinx.com/legal.htm#tos.
Automotive Applications Disclaimer
XILINX PRODUCTS ARE NOT DESIGNED OR INTENDED TO BE FAIL-SAFE, OR FOR USE IN ANY APPLICATION REQUIRING FAIL-SAFE
PERFORMANCE, SUCH AS APPLICATIONS RELATED TO:(I) THE DEPLOYMENT OF AIRBAGS, (II) CONTROL OF A VEHICLE, UNLESS
THERE IS A FAIL-SAFE OR REDUNDANCY FEATURE (WHICH DOES NOT INCLUDE USE OF SOFTWARE IN THE XILINX DEVICE TO
IMPLEMENT THE REDUNDANCY) AND A WARNING SIGNAL UPON FAILURE TO THE OPERATOR, OR (III) USES THAT COULD LEAD
TO DEATH OR PERSONAL INJURY.CUSTOMER ASSUMES THE SOLE RISK AND LIABILITY OF ANY USE OF XILINX PRODUCTS IN
SUCH APPLICATIONS.
© Copyright 2014 Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Vivado, Zynq, and other designated brands included herein are
trademarks of Xilinx in the United States and other countries.All other trademarks are the property of their respective owners.
こ の資料に関す る フ ィ ー ド バ ッ ク お よ び リ ン ク な ど の問題につ き ま し ては、 [email protected] ま で、 ま たは各ページの右下
にあ る [フ ィ ー ド バ ッ ク 送信] ボ タ ン を ク リ ッ ク す る と 表示 さ れ る フ ォームか ら お知 ら せ く だ さ い。フ ィ ー ド バ ッ ク は日本語で入力可能で
す。 いただ き ま し た ご意見を参考に早急に対応 さ せていただ き ます。 なお、 こ の メ ール ア ド レ スへのお問い合わせは受け付けてお り ませ
ん。 あ ら か じ めご了承 く だ さ い。
XAPP1223 (v1.0) 2014 年 11 月 6 日
japan.xilinx.com
14
Fly UP