STARTUPE2 プ リ ミ テ ィ ブの USRCCLKO 入力に よ っ て、 コ ン フ ィ ギ ュ レーシ ョ ン後にユーザー ロ ジ ッ ク が CCLK ピ ン を駆動で き る よ う にな り ます。USRCCLKO は POST_CRC リ ー ド バ ッ ク ロ ジ ッ ク に も ク ロ ッ ク を供給で き ます (両方が使用 さ れ る 場合) (表8-1 参照)。内部 USRCCLKO か ら CCLK ピ ン ま で の遅延は、 デー タ シ ー ト で TUSRCCLKO と し て 定義 さ れ て い ま す。End of Startup 後の USRCCLKO の最初の 3 ク ロ ッ ク サ イ ク ルは、ク ロ ッ ク ソ ース を切 り 替え る ために使 用 さ れ、 外部 CCLK ピ ンへ出力 さ れ る こ と はあ り ません。 こ れに よ り 、 内部オシ レー タ ーか ら ユー ザーク ロ ッ ク への移行時に発生す る CCLK グ リ ッ チが回避 さ れます。ただ し 、外部マ ス タ ー CCLK ピ ン の EMCCLK が コ ン フ ィ ギ ュ レーシ ョ ン に使用 さ れ る 場合、USRCCLKO の 3 ク ロ ッ ク サ イ ク ルで新 し いユーザーク ロ ッ ク へ切 り 替わ る ま で、CCLK にグ リ ッ チが発生 し 続け る 可能性があ り ます。

ビ ッ ト ス ト リ ームのセキ ュ リ テ ィ

こ こ では、FPGA ビ ッ ト ス ト リ ームのセキ ュ リ テ ィ 機能 と し て、 ビ ッ ト ス ト リ ーム暗号化 と ビ ッ ト ス ト リ ーム認証について説明 し ます。

リ ー ド バ ッ ク を回避す る こ と がセキ ュ リ テ ィ の基本です。 ビ ッ ト ス ト リ ームのセキ ュ リ テ ィ はレベ ル 1 (リ ー ド バ ッ ク 無効) ま たは レベル 2 (リ ー ド バ ッ ク と リ コ ン フ ィ ギ ュ レーシ ョ ン を共に無効) に 設定で き ます。

ビ ッ ト ス ト リ ーム暗号化

7 シ リ ーズデバ イ ス にはオンチ ッ プ AES (Advanced Encryption Standard) 復号化 ロ ジ ッ ク があ り 、 デザ イ ン の高い安全性を実現 し てい ま す。 外部の者が ビ ッ ト ス ト リ ーム を不正入手 し た と し て も 、 暗号化キーを知 ら なければ、 ビ ッ ト ス ト リ ームが解読 さ れ る こ と も デザ イ ンが複製 さ れ る こ と も あ

り ません。 し たがっ て、 暗号化 し た 7 シ リ ーズ FPGA デザ イ ンの コ ピーや リ バース エン ジニア リ ン グは不可能です。

7 シ リ ーズ FPGA AES シ ス テ ムは、 ソ フ ト ウ ェ アベース のビ ッ ト ス ト リ ーム暗号化機能 と 、 オ ンチ ッ プのビ ッ ト ス ト リ ーム復号化機能、お よ び暗号化キーを格納す る 専用 メ モ リ で構成 さ れます。

ザ イ リ ン ク ス ツールを使用 し て、 暗号化キー と 暗号化 し た ビ ッ ト ス ト リ ーム を生成 し ま す。7 リ ーズデバ イ ス では、 こ の暗号化キーをデバ イ ス内部の専用 RAM (外部の小型バ ッ ク ア ッ プバ ッ テ リ に接続) ま たは eFUSE のいずれかに格納で き ます。 暗号化キーは、JTAG ポー ト を介 し てのみ デバ イ ス にプ ロ グ ラ ムで き ます。

CFGCLK 出力 コ ン フ ィ ギ ュ レーシ ョ ン ロ ジ ッ ク の主要 ク ロ ッ ク の出力です。FPGA ロ ジ ッ ク への出力 です。 ビ ッ ト ス ト リ ームオプシ ョ ン ConfigRate で定義 さ れ る 標準周波数の ク ロ ッ ク 信号 を専用の内部 リ ン グオシ レー タ ーか ら 出力 し ます。

CFGMCLK 出力 コ ン フ ィ ギ ュ レーシ ョ ンの内部オシ レー タ ーの ク ロ ッ ク 出力です。FPGA ロ ジ ッ ク への 出力です。 専用の内部 リ ン グオシ レー タ ーか ら 標準周波数 65MHz の ク ロ ッ ク 信号を出 力 し ます。

EOS 出力 End of Startup (ス タ ー ト ア ッ プ終了) です。 ア ク テ ィ ブ High 出力で、EOS フ ラ グ を FPGA ロ ジ ッ ク に伝搬 し ます。FPGA が動作準備完了 し てい る こ と 示す リ セ ッ ト 信号 と し て使用で き ます。

表 5-13 : STARTUPE2 のピ ン (続き)

ピ ン名 タ イ プ 説明

コ ン フ ィ ギ ュ レーシ ョ ン実行中、7 シ リ ーズデバ イ ス では反対の処理、 つま り 取 り 込んでい る ビ ッ ト ス ト リ ームの復号化が行われます。7 シ リ ーズ FPGA の AES 暗号化 ロ ジ ッ ク は、256 ビ ッ ト の 暗号化キーを使用 し ます。

オンチ ッ プの AES 復号化 ロ ジ ッ ク は、 ビ ッ ト ス ト リ ームの復号化以外の目的には使用で き ません。

つま り 、 ユーザーデザ イ ン で AES 復号化 ロ ジ ッ ク を使用 し 、 コ ン フ ィ ギ ュ レーシ ョ ン ビ ッ ト ス ト リ ーム以外のデー タ を復号化す る こ と はで き ません。

AES について

7 シ リ ーズ FPGA の暗号化シ ス テ ムは、AES (Advanced Encryption Standard) 暗号化アルゴ リ ズ ム を使用 し ます。AES は、NIST (National Institute of Standards and Technology) お よ び米国商務省 が認証す る 公式規格です (http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf)。

7 シ リ ーズ FPGA の AES 暗号化シ ス テ ムは 256 ビ ッ ト の暗号化キーを使用 し (NIST が定め る 128 ビ ッ ト お よ び 192 ビ ッ ト の暗号化キーは イ ン プ リ メ ン ト し ない)、 一度に 128 ビ ッ ト のデー タ ブ ロ ッ ク を暗号化ま たは復号化 し ます。NIST に よ る と 、256 ビ ッ ト キーの場合、 キーの組み合わせ は 1.1x1077 と お り 考え ら れます。

AES の よ う な対称暗号化アルゴ リ ズ ムでは、 暗号化 と 復号化に同 じ キーが使用 さ れます。 し たがっ て、 デー タ の安全性はキーの安全性に依存 し てい ます。

暗号化 し た ビ ッ ト ス ト リ ームの作成

ザ イ リ ン ク ス ISE で提供 さ れてい る BitGen では、 暗号化 し た ビ ッ ト ス ト リ ーム と 暗号化 し ていな い ビ ッ ト ス ト リ ームの ど ち ら も 作成で き ます。 ビ ッ ト ス ト リ ーム を AES 暗号化す る には、Encrypt オプシ ョ ン を選択 し 、Keyfile オプシ ョ ン を使用 し て BitGen の入力 と し て 256 ビ ッ ト のキーを指定 し ます。 こ れに よ り 、BitGen で暗号化ビ ッ ト ス ト リ ーム フ ァ イ ル (BIT) お よ び暗号化キーフ ァ イ ル (NKY) が生成 さ れます。

BitGen コ マ ン ド お よ び構文の詳細は、 『 コ マ ン ド ラ イ ンツールユーザーガ イ ド 』 (UG628) を参照 し て く だ さ い。

WRITE_BITSTREAM の Tcl コ マ ン ド は Vivado 開発シ ス テ ムで同 じ 機能を提供 し ます ( 『Vivado Design Suite ユーザーガ イ ド : プ ロ グ ラ ムお よ びデバ ッ グ』 (UG908) 参照)

暗号化キーの読み込み

暗号化キーは、JTAG イ ン タ ーフ ェ イ ス を介 し てのみ 7 シ リ ーズデバ イ ス に読み込む こ と がで き ま す。iMPACT ツールま たは Vivado デバ イ ス プ ロ グ ラ マで NKY フ ァ イ ルを入力 と し 、 サポー ト さ れてい る ザ イ リ ン ク ス のプ ロ グ ラ ミ ン グ ケーブルを使用 し て JTAG 経由でデバ イ ス に暗号化キー をプ ロ グ ラ ムで き ます。

暗号化キーを プ ロ グ ラ ムす る 際、ISC_PROGRAM_KEY 命令を実行す る と デバ イ ス が特別な キー ア ク セ スモー ド にな り ます。 こ のモー ド では、暗号化キー専用 RAM と コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ を含むすべての FPGA メ モ リ が ク リ ア さ れ ます。 暗号化キーがプ ロ グ ラ ム さ れ、 キーア ク セ ス モー ド が終了す る と 、 いかな る 方法で も デバ イ ス か ら 暗号化キーを読み出す こ と はで き ず、 キー を再プ ロ グ ラ ムす る にはデバ イ ス全体を初期化す る 必要があ り ます。通常、 こ のキーア ク セ スモー ド をユーザーが意識す る こ と はあ り ません。

eFUSE ビ ッ ト に暗号化キーを格納 し た場合、ユーザーは検証目的で こ のキーを リ ー ド バ ッ ク で き ま す。 検証後は、FUSE_CNTL レ ジ ス タ の read_en_b_key を プ ロ グ ラ ム し て AES キーの読み出 し と 書 き 込みを禁止にす る 必要があ り ます。 詳細は、103ページの 「eFUSE」 を参照 し て く だ さ い。

暗号化ビ ッ ト ス ト リ ームの読み込み

デバ イ ス に適切な キーをプ ロ グ ラ ムす る と 、暗号化ビ ッ ト ス ト リ ーム を使用 し たデバ イ ス コ ン フ ィ ギ ュ レーシ ョ ンが可能にな り ます。 暗号化ビ ッ ト ス ト リ ーム で コ ン フ ィ ギ ュ レーシ ョ ン を行っ た後 は、 ビ ッ ト ス ト リ ームのセキ ュ リ テ ィ 設定にかかわ ら ず、JTAG ま たは SelectMAP リ ー ド バ ッ ク に よ っ て コ ン フ ィ ギ ュ レーシ ョ ン メ モ リ を読み出す こ と はで き ません。

デバ イ ス に暗号化キーが読み込まれた状態の と き に、 暗号化 し ていないビ ッ ト ス ト リ ーム でデバ イ ス を コ ン フ ィ ギ ュ レーシ ョ ンす る には、 まず POR ま たは PROGRAM_B を アサー ト し て コ ン フ ィ ギ ュ レ ーシ ョ ン メ モ リ を ク リ アす る 必要があ り ま す。 こ の場合、 暗号化キーは無視 さ れ ま す。 ま た、 暗号化 し ていないビ ッ ト ス ト リ ームで コ ン フ ィ ギ ュ レーシ ョ ン を行っ た後は、 リ ー ド バ ッ ク が 可能です (BitGen のセキ ュ リ テ ィ 設定で許可 さ れてい る 場合のみ)。 こ の場合で も 、 デバ イ ス か ら 暗 号化キーを読み出す こ と はで き ないため、 「 ト ロ イ の木馬」 ビ ッ ト ス ト リ ーム を使用 し て 7 シ リ ー ズ FPGA の暗号化シ ス テ ム を無効にす る こ と はで き ません。

暗号化を使用 し て も 、 コ ン フ ィ ギ ュ レーシ ョ ンの方法にはほ と ん ど影響はあ り ません。7 シ リ ーズ FPGA では、 圧縮 さ れた ビ ッ ト ス ト リ ーム と 暗号化 さ れた ビ ッ ト ス ト リ ーム の両方が作成で き ま す。 暗号化ビ ッ ト ス ト リ ームは、JTAG、 シ リ アル、SPI (x1、x2、 お よ び x4 モー ド を含む)、BPI、 SelectMAP、ICAPE2 すべての コ ン フ ィ ギ ュ ーシ ョ ン イ ン タ ーフ ェ イ ス で使用で き ま す。 ただ し 、 コ ン フ ィ ギ ュ レーシ ョ ン方法に よ っ ては暗号化ビ ッ ト ス ト リ ームに若干の制約が生 じ た り 、 タ イ ミ ン グが変わ る こ と があ り ます。 ス レーブ SelectMAP と ICAPE2 イ ン タ ーフ ェ イ ス では、x8 バ ス で し か暗号化 ビ ッ ト ス ト リ ー ム を 使用で き ま せん。 マ ス タ ー SelectMAP と マ ス タ ー BPI イ ン タ ー フ ェ イ ス では x8 お よ び x16 デー タ バ ス の ど ち ら も 暗号化ビ ッ ト ス ト リ ーム を サポー ト し ますが、

x16 バ ス幅の場合、 マ ス タ ー CCLK 周波数がConfigRateで設定 し た値の半分に低下す る か、 ま た は ExtMasterCCLK_en が 使 用 さ れ て い る と き は EMCCLK レ ー ト の 半 分 に 低 下 し ま す。

ConfigRate 周波数 ま た は外部 EMCCLK 周波数に基づい て CCLK が ア ッ プデー ト さ れ る 前に、

DEC (AES 暗号化機能が有効) ビ ッ ト が読み出 さ れ る と 、 ビ ッ ト ス ト リ ー ム の冒頭は よ り 低速な CCLK で開始 し ます。

暗号化ビ ッ ト ス ト リ ーム を使用 し た場合、外部 コ ン フ ィ ギ ュ レーシ ョ ン イ ン タ ーフ ェ イ ス か ら パー シ ャ ル リ コ ン フ ィ ギ ュ レーシ ョ ンはで き ないため、デバ イ ス全体を コ ン フ ィ ギ ュ レーシ ョ ンす る 必 要があ り ます。 コ ン フ ィ ギ ュ レーシ ョ ン後に リ コ ン フ ィ ギ ュ レーシ ョ ンす る には、PROGRAM_B ピ ン を ト グルす る 、 電源を再投入す る 、 あ る いは JPROGRAM 命令を与え る 必要があ り ます。 暗号 化 を オ ン にす る と 、7 シ リ ー ズ FPGA で は フ ォ ールバ ッ ク リ コ ン フ ィ ギ ュ レ ー シ ョ ン お よ び IPROG リ コ ン フ ィ ギ ュ レーシ ョ ンが有効 と な り ます。 ま た、ICAPE2 プ リ ミ テ ィ ブ を使用 し た リ ー ド バ ッ ク が可能です ( 「ビ ッ ト ス ト リ ーム の暗号化お よ び内部 コ ン フ ィ ギ ュ レ ーシ ョ ン ア ク セ ス ポー ト (ICAPE2)」 参照)。VCCBATT ま たは VCCAUXが維持 さ れてい る 限 り 、 こ れ ら の イ ベン ト に よ っ て キーが リ セ ッ ト さ れ る こ と はあ り ません。

暗号化 ビ ッ ト ス ト リ ーム内の キー と デバ イ ス に格納 さ れた キーが一致 し ない と コ ン フ ィ ギ ュ レ ー シ ョ ン がエ ラ ー と な り 、INIT_B ピ ンが Low にな っ て (フ ォールバ ッ ク が有効の場合は High に戻 る)、DONE ピ ンは Low の ま ま にな り ます。

ビ ッ ト ス ト リ ームの暗号化および内部 コ ン フ ィ ギ ュ レーシ ョ ン ア ク セス ポー ト (ICAPE2)

内部 コ ン フ ィ ギ ュ レーシ ョ ンア ク セ ス ポー ト (ICAPE2) プ リ ミ テ ィ ブ を使用す る と 、 ユーザー ロ ジ ッ ク か ら 7 シ リ ーズ FPGA の コ ン フ ィ ギ ュ レ ーシ ョ ン イ ン タ ーフ ェ イ ス にア ク セ ス で き ま す。

ICAPE2 プ リ ミ テ ィ ブ の詳細は、 『Vivado Design Suite 7 シ リ ー ズ FPGA お よ び Zynq-7000 All Programmable SoC ラ イ ブ ラ リ ガ イ ド 』 (UG953) を参照 し て く だ さ い。ICAPE2 イ ン タ ーフ ェ イ ス は、 ビ ッ ト ス ワ ッ プ を含めて SelectMAP イ ン タ ーフ ェ イ ス と ほぼ同 じ です (85ページの 「パ ラ レ ル バ ス の ビ ッ ト 順」 参照)。 タ イ ミ ン グ は SelectMAP イ ン タ ー フ ェ イ ス と 同様で、 最大周波数 FICAPCKは 7 シ リ ーズデー タ シー ト に記載 さ れてい ます。SelectMAP イ ン タ ーフ ェ イ ス の リ ー ド

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