コンフィグデータの暗号化(FPGA側設定)

SX-Card6に搭載のSpartan6 FPGAには、コンフィグデータを暗号化する機能があります。

SX-Card6を客先にデモ用として貸す場合や、最終製品に搭載する場合など、FPGA回路を悪意のあるリバースエンジニアリングから守るために、FPGAコンフィグデータをAES ビットストリーム暗号化することができます。

基本機能は、あらかじめAES暗号キーをFPGAに書き込み、その暗号キーを元にコンフィグデータを生成します。

 SX-Card6 暗号化

上図のように、FPGA内に埋め込まれた鍵に一致するFPGAコンフィグデータだけ、FPGAにプログラム(コンフィグ)することができます。

Spartan6 FPGA内に埋め込むことのできる鍵には、2種類あります。

  1. eFuseレジスタ(One Time ROM)への恒久的な鍵データ書き込み 
    一度書き込んでしまうと、後から暗号化 鍵データを変更することができません。
    鍵データを紛失すると、FPGAコンフィグデータの生成ができなくなるので使用時には注意をしてください。
  2. BBRAMレジスタへの一時的な鍵データ書き込み
    外部バッテリーによりバックアップされたFPGAのSRAM領域に鍵データを書き込みます。バッテリーバックアップされている限り、FPGAにプログラムしたAES鍵データは保持します。バッテリーバックアップを停止しボードの電源もOFFにすると、鍵データが消失しますので、暗号化鍵の再度設定が必要になります。

バッテリーバックアップの接続ポイント(1)
(VBAT と GND 表示のスルーホールに、外部電源(3.3V)を接続します)

SX-Card6にバッテリーバックアップした例
(3.3Vのボタン電池 CR-1220 を装着した例です)

 


Smart-USB Plus / Sigma 技術サポート
https://www.smartusb.info/article.php/sxcard6_aes1