概要

FPGA 内に実装されたデザインおよび IP(Intellectual Property)を、複製、リバース・エンジニアリング、および改ざんから保護するためにデザイン・セキュリティ機能を提供しています。
デザイン・セキュリティの仕組み
コンフィギュレーション・データを AES(Advanced Encryption Standard)キーで暗号化することで、コンフィギュレーション・データを傍受されても解読できないようにします。
FPGA の起動は、暗号化されたコンフィギュレーション・データを FPGA 内にある AESキーで復元してから起動します。
このように、暗号化と復号化で同じキーを使う方式を、“共通鍵暗号方式”と言います。
この仕組みでは AESキーが一番重要となりますので、FPGA から AESキーの取り出し/消去/変更はできないようになっています。
暗号化の作業と起動フロー

1. 書き込みファイルの生成
Quartus® Prime にデザイン・データと任意の AESキーを入力すると、“AES書き込みファイル(.ekp)”と“暗号化されたプログラミング・データ”が生成されます。
2.AESキーを FPGA に書き込み
1.で生成した“AES書き込みファイル”を FPGA に書き込みます。これが、“暗号化したコンフィギュレーション・データ”を復号化するための鍵となります。
3.プログラミング
1.で生成した“暗号化したプログラミング・データ”を外部のコンフィギュレーションROMやフラッシュ・メモリなどに書き込みます。書き込み方法は、通常のプログラミング・データの書き込みと同じです。
4.コンフィギュレーション
AESキーを書き込んだ FPGA を起動すると、外部のROMから“暗号化したコンフィギュレーション・データ”を読み込みます。
5.復元と起動
FPGA 内部にある AESキー(AES書き込みファイル)と復元化回路で、“暗号化されたコンフィギュレーション・データ”を元のコンフィギュレーション・データに自動で復元してから起動します。
AESキーが同じであれば、暗号化した別のプログラミング・データも同じ FPFA で使用できます。
用語説明
用途に応じてデータの名称が変わりますので、混乱を避けるために説明します。
デザイン・データ | : RTL などの回路設計データ |
プログラミング・データ | : コンフィギュレーション用ROM に書き込むためのデータ |
コンフィギュレーション・データ | : FPGA に書き込むためのデータ |
2種類の AESキー
AESキーには揮発性と不揮発性の2種類のキーがあります。
どちらも、複製・リバースエンジニアリング・不正改ざんを強力に防止します。
FPGA で扱えるAESキー
FPGA は揮発性 または不揮発性のAESキーを使用できます。
・揮発性キー
揮発性キーは、FPGA に内蔵している揮発性(電源が無いとデータが消える)の SRAMメモリ に AESキーを保存します。
AESキーの変更や消去は可能ですが、常に外部電源でデータをバックアップしておかないと AESキーが消滅します。
揮発性AESキーは、試作時のコンフィギュレーション・データを保護するのに便利です。
・不揮発性キー
不揮発性キーは、FPGA に内蔵されたヒューズを使った不揮発性キーに AESキーを保存します。
AESキーの書き込みはヒューズを物理的に切断するので、外部電源のバックアップは不要で、一度書き込むと AESキーの変更や消去はできません。
メーカーであっても FPGA の不具合解析はできなくなり、JTAG は 1149.1/1149.6 (JTAG Boundary scan test )以外の命令を受け付けなくなります。
不揮発性キーは、安全性が高く、“量産時のコンフィギュレーション・データ”を保護するのに役立ちます。
キーの種類 | キー長 | 変更や消去 | 外部電源 | キー書き込み方法 | お勧め |
揮発性キー | 256bit | 可能 | 必要 | オン・ボード | 試作 |
不揮発性キー | 256bit | 不可能 | 不要 | オン・ボード/オフ・ボード | 量産 |
CPLD (MAX® 10) で使えるAESキー
MAX® 10 に内蔵している不揮発性のフラッシュROMに AESキーを保存できます。フラッシュROMなので、変更や消去が可能で、データを保存するための外部電源も不要です。
MAX® 10 は ヒューズを使った不揮発性キーは内蔵していません。
キーの種類 | キー長 | 変更や消去 | 外部電源 | キー書き込み方法 | お勧め |
不揮発性キー | 128bit | 可能 | 不要 | オン・ボード/オフ・ボード | 試作&量産 |
AESキーの書き込み方法
AESキーの書き込みには、オン・ボードとオフ・ボードによる書き込み方法があります。
オン・ボード
オン・ボードは、基板に実装済の FPGA デバイスにケーブルなどを介して AESキーを書き込む方法です。
基板上にケーブルを接続する端子が必要ですが、ご自身で書き込むことができます。
オフ・ボード
オフ・ボードは、実装前の FPGA に直に AESキーを書き込む込む方法です。
専用のプログラマーを使うので、書き込みの信頼度が高く、書き込み速度が早いのが特徴です。
ただし、書き込み用のプログラマーと FPGAを接続するためのソケット(アダプタ)が必要なので費用が掛かります。
マクニカのプログラミング・センターは AESキーを書き込めるプログラマーを複数台保有しており、書き込み実績が豊富です。
マクニカにてAESキー書き込みをご希望の方はお気軽にお問い合わせください。
書き込み方法 | 書き込みツール | 最適な書き込み数量 |
オン・ボード | JTAG/Ethernet Blaster/USB- Blasterなど | 少数~中量 |
オフ・ボード | 書き込み専用のプログラマー | 中量~大量 |
MAX® 10 の場合は、AESキーと暗号化したコンフィギュレーション・データを一緒、または別々にデバイスに書き込むことができます。
オン・ボード、オフ・ボードでも、暗号化していない通常のコンフィギュレーションと同じオペレーションで MAX® 10 に AESキーを書き込めます。
不揮発性キーを FPGA の外に置く方法
FPGA にワンタイムの不揮発性キーを書き込むのが心配な方には、FPGA の外に不揮発性の AESキーを 置く方法があります。
デザイン・ゲートウェイ社の 「IP Lock」は、基板上に AES専用の“暗号処理チップ”を実装し、FPGA 内の“復元回路”でコンフィギュレーション・データを復号化するソリューションです。
この“暗号処理チップ”は変更や消去ができないワンタイムのキーですが、“小さく”て“安価”なのが特徴です。
AESキーの書き込みに失敗したり、キーを変更するには、“安価”な暗号処理チップを取り換えればいいので、FPGA を取り換えるよりもリスクを小さくできます。 ハイエンドで高価な FPGA の暗号化には「IP Lock」をお勧めします。

<基板に実装した暗号処理チップ(赤丸部分)>

<IP Lockライター>
IP Lock のメリット
・128bitの AESキー+32bitのプロダクトID で保護!
・プロダクトIDとして、暗号処理チップと IP Lockライター も認証!
・1秒間に約5回の周期で認証データを変更・暗号化!
・小さく安価な専用の暗号処理チップ!
・量産用に安価で信頼性の高い専用の書き込み機「IP Lockライター」をご用意!
・FPGA の種類毎に、大きな ソケット(アダプター)を購入する必要なし!
・信頼ある国内業者の製品。日本語による手厚いサポート有!
IP Lock の制約
IP Lock は AESキーを FPGA 外部に配置するので、若干制約があります。
・暗号処理チップの AESキー書き込みは1回のみ、変更や書き込みに失敗すると暗号処理チップの取り換えが必要
・暗号処理チップに AESキーの書き込み作業が必要(請負可能)
・基板上にあらかじめ 暗号処理チップ(SOIC-8)を配置する領域と配線(2本)が必要
・ユーザーロジックに AES復元回路(1.3K LE + 25K bit mem)が必要
ラボラトリーズパック

お試し用に、あらかじめ AESキーを埋め込んだ暗号処理チップを10個、AESキー毎の復元回路、日本語マニュアルをパッケージにした「ラバトリーパック」をご用意しています。
AESキーと復元回路は対になっており、各パック毎にAESキーは異なります。