FPGAコンフィグデータの暗号化

 SX-USB4搭載のFPGA(Startix4GX)では、コンフィグデータの暗号化機能が利用できます。
(USBコンフィグの場合)

 

ここでは、USBコンフィグするときの、FPGAコンフィグデータの暗号化、ボード設定、制御アプリ設定を紹介します。

【FPGAコンフィグデータの作成方法】

Quartus2プロジェクトをコンパイルすると、xxx.sofができます。このsofから暗号化したxxx.rbfを生成します。
Quartus2 ツールバー File→Convert Programming Files...を開きます。

SOFからRBFを生成

①Programming file typeで Raw Binary File (.rbf) を選択します。
②File nameに、任意の名前を付けます。

③Add File...をクリックして、コンパイル後に生成されたxxx.sofを選択します。
④Input files to convert欄に表示されたsofファイルを選択し、Propertiesボタンをクリックしてください。

以下の画面が表示されます。
 

AESキーの生成

Sof File Properties画面で、□Compression (圧縮オプション)、□Genertae encrypted bitstream、□Generate key programming fileをすべてチェックしてください。
□Generate key programming fileにチェックを入れると、暗号化キーファイルの名称を入力できます。実際に生成されるのは、このファイル名に拡張子.ekpがつきます。

次に、Key entry欄で、Key1、Key2それぞれ「Add」ボタンをクリックし、SOF File Properties:画面で暗号キーデータを入力してください。

入力が完了したら、OKボタンをクリックし、最終的に、SOF File Properties画面の「Genertae」ボタンをクリックすると、設定した暗号鍵に基づいたrbfファイルが生成されます。

生成した暗号化データとして、USBコンフィグ時に使用するxxx.rbfが生成され、FPGAにあらかじめ書き込んでおくための鍵ファイルxxx.ekpが生成されます。

【ボード側の設定】

SX-USB2ボードのディップスイッチSW1 ビット2をONにします。
USB Blasterを利用し、xxx.ekpファイルをJTAGによりFPGAに書き込んでおきます。xxx.sofをFPGAに書き込むのと同じ方法です。 このとき、揮発性のメモリに鍵データ(epk)を書くので、ボードが電源を失えば、書き込んだepkデータも消えます。 これを防ぐためには、ボード上のバッテリバックアップ用端子にボタン電池(1.2V~3.3V)を接続してください。

バッテリー搭載位置

【制御ソフトウエアの設定】

RefApp7.exeは、ver1.0.10以上を利用してください。
SX-USB4のUSBコンフィグ画面では、□Sigma mode?? と□Encrypt??の両方にチェックを入れて、「Configure...」ボタンをクリックしてFPGAコンフィグができます。

RefApp7 AES設定

 


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