ザイリンクス 7 シリーズ FPGA は、内蔵型で PL ベースの HMAC (Hash-based Message Authentication Code)、および Cipher Block Chaining (CBC) モードの Advanced Encryption Standard (AES) モジュールを使用します。UltraScale 以降のデバイスでは、AES-256/Galois Counter Mode (GCM) が使用され、HMAC は不要です。
暗号化の例
暗号化されたビットストリームを作成するには、aeskeyfile 属性を使用して BIF で AES キー ファイルを指定します。encryption=aes
属性は、BIF ファイルにリストされている暗号化の必要なビットストリームに対して指定する必要があります。
bootgen -arch fpga -image secure.bif -w -o securetop.bit
BIF ファイルは次のようになります。
the_ROM_image:
{
[aeskeyfile] encrypt.nky
[encryption=aes] top.bit
}
認証の例
次に、FPGA ビットストリームを認証するための Bootgen コマンドを示します。
bootgen -arch fpga -image all.bif -o rsa.bit -w on -log error
BIF ファイルは次のとおりです。
the_ROM_image:
{
[sskfile] rsaPrivKeyInfo.pem
[authentication=rsa] plain.bit
}
ファミリ キー/難読化キー
難読化キーの暗号化を使用するには、ザイリンクス サポートに登録し、ターゲット デバイス ファミリのファミリ キー ファイルをリクエストする必要があります。このファイルが格納されている場所へのパスは、難読化キーの暗号化を実行する前に bif オプションとして渡しておく必要があります。ファミリ キーを入手するには、secure.solutions@xilinx.com までお問い合わせください。
image:
{
[aeskeyfile] key_file.nky
[familykey] familyKey.cfg
[encryption=aes] top.bit
}
次の図に、サンプルの aeskey ファイルを示します。
図 1. AES キーのサンプル