暗号化キーを FPGA のバ ッ ク ア ッ プバ ッ テ リ 付 き RAM に格納 し た場合、 暗号化キーの メ モ リ セ ルは揮発性であ り 、 継続的に電力を供給す る 必要があ り ます。 通常の動作中、 こ れ ら の メ モ リ セル には補助電圧入力 (VCCAUX) か ら 電源が供給 さ れますが、VCCAUXが切断 さ れ る と 、 キーを保持す る ために VCCBATT電源入力か ら 電源が供給 さ れます。VCCBATTにはほ と ん ど電流が流れないため (nA 程度)、 こ の電源には小 さ なボ タ ン電池が適 し てい ます。 バ ッ テ リ の寿命を推定す る には、 各 7 シ リ ーズ FPGA デー タ シー ト お よ びバ ッ テ リ の仕様書に記載 さ れてい る DC 特性お よ び VCCBATT を参照 し て く だ さ い。

VCCBATTには電流が流れ な い た め、VCCAUXか ら 電源 を 供給中に切断で き ま す。VCCBATT は、

VCCAUX切断時に暗号化キーを保持す る 以外の目的には使用で き ません。

ビ ッ ト ス ト リ ーム認証

概要

7 シ リ ー ズ デ バ イ ス は、 オ ン チ ッ プ の ビ ッ ト ス ト リ ー ム HMAC (keyed-Hash Message Authentication Code) を ハー ド ウ ェ ア に イ ン プ リ メ ン ト し てお り 、AES 復号化に加え、 多重のセ キ ュ リ テ ィ を実現 し てい ます。AES と HMAC のキーが入手 さ れない限 り 、 ビ ッ ト ス ト リ ームの読 み込み、 改変、 不正入手、 複製が行われ る こ と はあ り ません。AES は、 デザ イ ン を複製や リ バース エン ジニア リ ン グか ら 保護す る ための基本的なセキ ュ リ テ ィ を提供 し ます。一方 HMAC は、FPGA の コ ン フ ィ ギ ュ レーシ ョ ン用に提供 さ れた ビ ッ ト ス ト リ ームが改変 さ れてお ら ず、 その ま ま読み込 んで問題ない こ と を保証 し ます。 シ ン グルビ ッ ト の反転を含め、 ビ ッ ト ス ト リ ームに対す る あ ら ゆ る 改ざん を検出で き ます。

HMAC アルゴ リ ズ ムで使用す る キーを、 ザ イ リ ン ク ス ツールで指定 し ます。 ま たは、 ツールで ラ ン ダ ムキーを自動生成す る こ と も で き ます。HMAC キー と AES キーは別の も のです。 ザ イ リ ン ク ス ツ ー ル は、HAMC キ ー と SHA ア ル ゴ リ ズ ム を 使 用 し て 256 ビ ッ ト の MAC (Message Authentication Code) を生成 し ます。MAC AES 暗号化 さ れた ビ ッ ト ス ト リ ームの一部 と し て送 信 さ れ、 ビ ッ ト ス ト リ ームのデー タ が本物で改ざん さ れていない こ と を検証 し ます。 こ の認証機能 は、 あ ら ゆ る 種類の制御ビ ッ ト と デー タ ビ ッ ト を含む、 ビ ッ ト ス ト リ ーム全体に適用 さ れます。7 シ リ ーズ FPGA でセキ ュ リ テ ィ ソ リ ュ ーシ ョ ン を使用す る 場合は、 必ず HMAC と AES の両方を 用い る こ と にな り ます。 同様の機能は、Vivado ラ ボツールに も あ り ます。

イ ン プ リ メ ン テーシ ョ ン

7 シ リ ーズ FPGA の HMAC 認証シ ス テ ムは、 ザ イ リ ン ク ス ツールに含まれ る HMAC コ ン ポーネ ン ト と 、 すべての 7 シ リ ーズ FPGA に内蔵 さ れてい る ハー ド ウ ェ ア コ ン ポーネ ン ト で構成 さ れま す。 こ れ ら 2 つの コ ン ポーネ ン ト が、 キー と SHA 256 (Secure Hash Algorithm) に基づい て 256 ビ ッ ト の MAC コ ー ド を生成 し ます。 ビ ッ ト ス ト リ ームの生成で、AES 暗号化ビ ッ ト ス ト リ ーム内 に組み込まれ る MAC が生成 さ れます。コ ン フ ィ ギ ュ レーシ ョ ン時に、FPGA 内の HMAC/SHA256 エ ン ジ ン が、 ハー ド ウ ェ ア AES で復号化 し たデー タ か ら MAC を計算 し 、 暗号化ビ ッ ト ス ト リ ー ム内の MAC と 比較 し ます。 こ の 2 つの MAC が一致す る 場合、 コ ン フ ィ ギ ュ レーシ ョ ンは ス タ ー ト ア ッ プサ イ ク ルま で終え て完了 し ます。 一致 し ない場合、 フ ォールバ ッ ク が有効であれば、 デバ イ ス 全体の コ ン フ ィ ギ ュ レ ーシ ョ ン を ク リ ア し た後で フ ォ ールバ ッ ク ビ ッ ト ス ト リ ーム が読み込 まれます。 フ ォールバ ッ ク が無効の場合は、 コ ン フ ィ ギ ュ レーシ ョ ン ロ ジ ッ ク が コ ン フ ィ ギ ュ レー シ ョ ン イ ン タ ー フ ェ イ ス を 無効 に し 、FPGA へ の ア ク セ ス を 完全 に 遮断 し ま す。 こ の 場合、

PROGRAM_B 信号ま たは POR (パ ワーオン リ セ ッ ト) 信号をパルス し て、 コ ン フ ィ ギ ュ レーシ ョ ン イ ン タ ーフ ェ イ ス を リ セ ッ ト す る 必要があ り ます。

HMAC のキー格納場所がオ ン チ ッ プには不要

7 シ リ ーズ FPGA の認証シ ス テ ムは、標準技術局 (NIST) が公開 し てい る SHA256 FIPS PUB-182-2 (http://csrc.nist.gov/publications/fips/fips180-2/fips180-2withchangenotice.pdf) お よ び HMAC FIPS PUB-198 (http://csrc.nist.gov/publications/fips/fips198-1/FIPS-198-1_final.pdf) アルゴ リ ズ ム を使用 し ます。 ビ ッ ト 長の異な る ほかの SHA アルゴ リ ズ ムは イ ンプ リ メ ン ト さ れてい ません。

AES 暗号化 さ れた認証済みビ ッ ト ス ト リ ームは、x16 お よ び x32 バス幅の ス レーブ SelectMAP を 除 き 、 すべての外部標準 コ ン フ ィ ギ ュ レーシ ョ ン イ ン タ ーフ ェ イ ス で読み込む こ と がで き ます。 デ バ イ ス を暗号化 ビ ッ ト ス ト リ ーム で コ ン フ ィ ギ ュ レ ーシ ョ ン し た後に、 暗号化 さ れていない別の ビ ッ ト ス ト リ ーム を読み込む こ と がで き る のは、PROGRAM_B ピ ン がアサー ト さ れた後、JTAG JPROGRAM コ マ ン ド の後、 ま たは POR が発生 し た後に限 ら れます。 こ れ ら の状況では、 現在の コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ がすべて消去 さ れ る ため、次の コ ン フ ィ ギ ュ レーシ ョ ン を読み込み 可能な状態にな り ます。

認証 さ れた ビ ッ ト ス ト リ ームの作成

HMAC と AES はそれぞれ異な る キーを使用す る ため、 ザ イ リ ン ク ス ツールでは 2 つのキーを指 定す る 必要があ り ます。HMAC 機能は、SHA256 を使用 し て暗号化 さ れていない ビ ッ ト ス ト リ ー ム全体を対象に実行 さ れます。 次に、HMAC キーを含むビ ッ ト ス ト リ ームが AES で暗号化 さ れま す。 こ の結果、 ビ ッ ト ス ト リ ームの暗号化 さ れた部分 よ り も 前には、 同期ワ ー ド 、FPGA に対 し て 暗号化機能の使用を指示す る コ マ ン ド 、 お よ び復号化 さ れた ビ ッ ト ス ト リ ームの ワー ド 数の情報の みが来ます。

ザ イ リ ン ク ス の ビ ッ ト ス ト リ ー ム 機 能 (AES と HMAC を 常 に 併 用) を 使 用 す る に は、

Encrypt:yes オ プ シ ョ ン を 指定 し ま す (詳細は、 『 コ マ ン ド ラ イ ン ツ ールユーザー ガ イ ド 』 (UG628)、 ま たは 『Vivado Design Suite ユーザーガ イ ド : プ ロ グ ラ ムお よ びデバ ッ グ』 (UG908) 参 照)。HMAC キーはユーザーが NKY フ ァ イ ルで指定す る か、 ま たは ツ ールで自動的に ラ ン ダ ム キーを生成 し ます。

NKY フ ァ イ ルの フ ォーマ ッ ト は次の と お り です。

KEY HMAC <hex string> (256 bit HMAC key) 例 :

Key HMAC 505daf31dea6930375003b9286bb183752457a90a79ace727b516f0009995a9e;

その他のセキ ュ リ テ ィ 保護機能の使用に関す る 詳細は、 『Virtex-6 お よ び 7 シ リ ーズ FPGA での不 正操作防止デザ イ ンの開発』 (XAPP1084) を参照 し て く だ さ い。

eFUSE

eFUSE は、 コ ン フ ィ ギ ュ レーシ ョ ン設定に使用す る 不揮発性の ワ ン タ イ ム プ ロ グ ラ マブル技術で す。 ヒ ュ ーズ リ ン ク は、 一定期間に大量の電流を流す こ と でプ ロ グ ラ ム (バーン、 ブ ロ ー と も 呼ぶ) し ます。ユーザープ ロ グ ラ ム可能な eFUSE のプ ロ グ ラ ムにはザ イ リ ン ク ス コ ン フ ィ ギ ュ レーシ ョ ン ツールが使用で き ます。eFUSE のプ ロ グ ラ ム中はデバ イ ス を コ ン フ ィ ギ ュ レーシ ョ ン し ないで く だ さ い。

通常、プ ロ グ ラ ム し た ヒ ュ ーズ リ ン ク はプ ロ グ ラ ム し ていない状態 よ り も 抵抗値が数桁大 き く な り ます。プ ロ グ ラ ム し た ヒ ュ ーズの論理値は 1 で、プ ロ グ ラ ム し ていない ヒ ュ ーズの論理値は 0 です。

eFUSE レ ジ ス タ

7 シ リ ーズには、 全部で 4 つの eFUSE レ ジ ス タ があ り ま す。表5-15 に、7 シ リ ーズ デバ イ ス の eFUSE レ ジ ス タ と それぞれのサ イ ズお よ び用途を示 し ます。

eFUSE ビ ッ ト は OTP (ワ ン タ イ ムプ ロ グ ラ マブル) です。FPGA ロ ジ ッ ク がア ク セ ス で き る のは、

FUSE_USER レ ジ ス タ 値 と FUSE_DNA レ ジ ス タ 値の う ち Device DNA と な る 57 ビ ッ ト のみで す。 それ以外の eFUSE ビ ッ ト には FPGA ロ ジ ッ ク か ら はア ク セ ス で き ません。

eFUSE 制御レ ジ ス タ (FUSE_CNTL)

こ の レ ジ ス タ には、 ユーザープ ロ グ ラ マブルビ ッ ト が含 ま れてい ま す (5-16 参照)。 こ れ ら の ビ ッ ト を使用 し て、AES キーの使用法や eFUSE レ ジ ス タ の読み出 し/書 き 込み保護を設定 し ます。

ビ ッ ト 0 が最初にシ フ ト イ ン/シ フ ト ア ウ ト さ れます。

eFUSE ビ ッ ト は OTP (ワ ン タ イ ムプ ロ グ ラ マブル) です。一度プ ロ グ ラ ムす る と 再プ ロ グ ラ ムはで き ません。 た と えばレ ジ ス タ へのア ク セ ス を無効に し た場合、後か ら 有効にす る こ と はで き ません。

表 5-15 : eFUSE レ ジス タ レ ジス タ 名 サイ ズ

(ビ ッ ト) 内容 説明

FUSE_KEY 256 ビ ッ ト ス ト リ ーム暗号化キー

[0:255]

(ビ ッ ト 255 が最初にシ フ ト)

AES ビ ッ ト ス ト リ ーム の復号化で使用す る キーを格納 し ます。 バ ッ ク ア ッ プバ ッ テ リ 付 き の SRAM にキーを格納 す る 代わ り に、eFUSE にキーを格納 し て使用で き ます。

7 シ リ ーズ FPGA の復号化エン ジ ンは、 こ の AES キーを 使用 し て暗号化 ビ ッ ト ス ト リ ー ム を 読み込み ま す。AES キーは、FUSE_CNTL レ ジ ス タ の読み出 し/書 き 込みア ク セ ス ビ ッ ト の設定に基づ き 、JTAG ポー ト を介 し て読み出 し ま たはプ ロ グ ラ ムが可能です。

FUSE_USER 32 ユーザー定義

[31:0]

(ビ ッ ト 0 が最初に シ フ ト)

32 ビ ッ ト のユーザー定義 コ ー ド を格納 し ま す。 こ の レ ジ ス タ は、EFUSE_USR プ リ ミ テ ィ ブ を使用 し て FPGA ロ ジ ッ ク か ら 読み出 し 可能です。EFUSE_USR プ リ ミ テ ィ ブの詳細は、 『7 シ リ ーズ ラ イ ブ ラ リ ガ イ ド 』 を参照 し て

く だ さ い。

こ の コ ー ド は、FUSE_CNTL レ ジ ス タ の読み出 し/書 き 込 みア ク セ ス ビ ッ ト の設定に基づ き 、JTAG ポー ト を介 し て 読み出 し ま たはプ ロ グ ラ ムが可能です。

FUSE_DNA 64 ザ イ リ ン ク ス が プ ロ グ ラ ム す る デバ イ ス ID

[0:63]

(ビ ッ ト 63 が最初にシ フ ト)

デバ イ ス ID ビ ッ ト [0:63] です。[7:63] は、Device DNA と し て 知 ら れ る 57 ビ ッ ト の 読 み 出 し 専 用 XSC_DNA JTAGレ ジ ス タ お よ び DNA_PORT プ リ ミ テ ィ ブ値に対応 し ます。127ページの 「デバ イ ス ID お よ び Device DNA」 を参照 し て く だ さ い。

FUSE_CNTL 14 制御ビ ッ ト

CNTL [13:0]

(ビ ッ ト 0 が最初に シ フ ト)

キーの使用や eFUSE レ ジ ス タ への読み出 し/書 き 込みア ク セ ス を制御 し ます。 こ の レ ジ ス タ は、JTAG ポー ト を介 し て読み出 し ま たはプ ロ グ ラ ムが可能です。

FUSE_CNTL[0] をプ ロ グ ラ ム し ない場合

• 暗号化は、 ビ ッ ト ス ト リ ームオプシ ョ ンで無効/有効にで き る

• eFUSE に格納 さ れてい る AES キーを使用す る か、 バ ッ ク ア ッ プバ ッ テ リ 付 き の SRAM に格 納 さ れてい る AES キーを使用す る か を ビ ッ ト ス ト リ ームオプシ ョ ンで選択で き る

注意 : FUSE_CNTL[0] を プ ロ グ ラ ム し た場合、eFUSE に格納 さ れた キーで暗号化 し た ビ ッ ト ス ト リ ー ム のみ を 外部 コ ン フ ィ ギ ュ レ ーシ ョ ン ポー ト を 用い た FPGA の コ ン フ ィ ギ ュ レ ー シ ョ ンに使用で き ます。 こ れに よ り 、 ザ イ リ ン ク ス のテ ス ト ビ ッ ト ス ト リ ームや構築済みビ ッ ト ス ト リ ー ム を 使用 し た デバ イ ス コ ン フ ィ ギ ュ レ ー シ ョ ン が で き な く な り ま す。 つ ま り 、 FUSE_CNTL[0] ビ ッ ト がプ ロ グ ラ ム さ れてい る デバ イ ス に対す る RMA 要求ま たは iMPACT に よ る SPI/BPI フ ラ ッ シ ュ の間接プ ロ グ ラ ムがサポー ト さ れません。

FUSE_CNTL[1] がプ ロ グ ラ ム さ れ る と 、外部 コ ン フ ィ ギ ュ レーシ ョ ンポー ト は、初期 コ ン フ ィ ギ ュ レーシ ョ ン後に コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ へのア ク セ ス がブ ロ ッ ク さ れます。デバ イ ス を再 コ ン フ ィ ギ ュ レ ー シ ョ ン す る には、 電源の再投入、JPROGRAM ま た は IPROG コ マ ン ド の発行、

PROGRAM_B ピ ンのパルス のいずれかが必要にな り ます。

表 5-16 : eFUSE 制御レ ジス タ (FUSE_CNTL)

ビ ッ ト 位置 名前 説明

0 CFG_AES_Only

eFUSE に格納 さ れた AES キーの使用を強制 し ます。 こ の ビ ッ ト を プ ロ グ ラ ミ ン グす る 前であれば、暗号化 さ れていないビ ッ ト ス ト リ ーム、 ま たはバ ッ ク ア ッ プバ ッ テ リ 付 き RAM にキーの値を格納 し た暗号化ビ ッ ト ス ト リ ーム を使用 し て FPGA を コ ン フ ィ ギ ュ レーシ ョ ンで き ます。

注意 : こ の ビ ッ ト がプ ロ グ ラ ム さ れ る と 、AES キーが確認 さ れない限 り デ バ イ ス は使用で き ま せん。 ま た、RMA (Return Material Authorization) に

よ る 返却は受け付け ら れません。

1 AES_Exclusive

外部 コ ン フ ィ ギ ュ レ ーシ ョ ン イ ン タ ー フ ェ イ ス か ら のパーシ ャ ル リ コ ン フ ィ ギ ュ レ ーシ ョ ン を無効に し ま す。 ただ し 、ICAPE2 を使用す る こ と でパーシ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンが可能にな り ます。

注 意 : こ の ビ ッ ト が プ ロ グ ラ ム さ れ る と 、RMA (Return Material Authorization) に よ る 返却は、デバ イ ス解析お よ びデバ ッ グの面で制限があ り ま す。 リ ー ド バ ッ ク お よ び コ ン フ ィ ギ ュ レ ーシ ョ ン を回避す る 代替手段 は、 セキ ュ リ テ ィ レベル 2 です。

2 W_EN_B_Key_User AES キー と FUSE_USER のプ ロ グ ラ ミ ン グ を無効に し ます。

3 R_EN_B_Key

AES キーの読み出 し 、 お よ び AES キー と ユーザーコ ー ド のプ ロ グ ラ ミ ン グ を 無効に し ます。JTAG ポー ト を介 し たユーザー コ ー ド の読み出 し は無効にな り ますが、EFUSE_USR コ ン ポーネ ン ト を使用す る ユーザーコ ー ド の読み出 し は 無効にな り ません。

4 R_EN_B_User ユーザー コ ー ド の読み出 し 、 お よ び AES キー と ユーザー コ ー ド のプ ロ グ ラ ミ ン グ を無効に し ます。

5 W_EN_B_Cntl 制御ビ ッ ト のプ ロ グ ラ ミ ン グ を無効に し ます。

6 – 13 予約 予約

ドキュメント内 7 シリーズ FPGA コンフィギュレーション ユーザー ガイド (UG470) (Page 102-127)