AES(暗号化/復号)
本製品は、標準的な共通鍵暗号AES暗号化/復号エンジンのFPGA用IPコアです。
3種類の暗号鍵長(AES-128/AES-192/AES-256)をサポートしています。
特長
- NIST FIPS-197 準拠
- 暗号化/復号を1パッケージで実現
- ECB/CBC/CTR の動作モードをサポート(※1)
- 128bit/192bit/256bit の鍵拡張機能を標準搭載(※2)
- 最大処理速度 約110Mbpsを実現し、ネットワークセキュリティ機器への応用が可能(※3)
- カスタマイズによりOFB、CFB モードにも対応可能です。
- 拡張鍵を外部から書込むようにカスタマイズすることで規模の縮小が可能です。
- ALTERA Cyclone3 デバイスにおいて、AES-128、動作クロック40MHzとした場合のAES処理速度です。転送速度(スループット)については、AES 処理速度に加え、本AES ENGINE IPに対するデータ書込み/読出し時間を考慮する必要があります。
AES暗号化のアルゴリズム

AES (Rijndael) はDESより高い安全性で、Triple-DESより高速な特長を持つ、128bitを処理単位とした、共通鍵ブロック暗号です。アルゴリズムは米国連邦情報処理標準規格(NIST FIPS-197)に準拠しています。
ブロック図

CPU接続用 I/F をお客様のご要望に合わせてカスタム設計してご提供することにより、外部制御を容易にすることが出来ます。
インタフェース
I/F | 信号名 | I/O | 機能 |
---|---|---|---|
System I/F | AESCLK | I | AES master clock |
RESETN | I | Negative reset | |
DATA I/F | ENCMODE | I | ENC/DEC change signal |
KEYSEL[1:0] | I | Key length select signal (0:128, 1:192, 2;256) | |
GOSET | I | GO SET(request) | |
ACT | O | AES ENGINE active | |
INDATA[127:0] | I | Input data | |
MODE[1:0] | I | ECB/CBC/CTR mode signal (0:ECB,1:CBC,2:CTR) | |
IVREGW[127:0] | I | initial vector register write | |
INIFLGS | I | initial vector flags | |
OUTDATA[127:0] | O | Output data | |
IVREGR[127:0] | O | vector register read | |
KEY I/F | KEYSET | I | Key set |
KEY[255:0] | I | Key input data | |
EXP_ACT | O | Key expansion active | |
RAM I/F | KEYWT | O | Key data write for external memory |
KEYWA[5:0] | O | Key data write address for external memory | |
KEYWD[31:0] | O | Key write data for external memory | |
RAD[5:0] | O | Sub key read address for external memory | |
SUBKEY[31:0] | I | Sub key(data out of external memory) |
制御手順(例)

- キー長の設定および、キーデータ(128bit/192bit/256bit)を書込む
- キー拡張処理開始を指示
- 割り込み等でキー拡張処理終了を確認する。
- 動作モード(暗号化/復号)を設定する。
- 動作モードに応じて、イニシャルベクタデータを設定する。
- 入力データ(16byte)を入力データレジスタに書き込む。
- 暗号化/復号動作開始を指示する。
- 割り込み等でAES 暗号化/復号動作終了を確認する。
- 出力データ(16byte)を読み出す。
※16byteを越えるデータを暗号化/復号するとき
- 上記の6~9を繰り返し、16byte毎に暗号化/復号を実行する。
- 新たにキーを設定し、暗号化/復号をするときは、上記1~5を再度実行した後、6~9を実行する。
規模(参考)
FPGAデバイス | ALTERA製CycloneIII |
---|---|
LE使用数 | 約3,000LEs AES_ENG部:約1700LEs / INOUTIV部:約700LEs / KEY_EXP部:約600LEs |
必要Memory空間 | 2kbit |
最大動作速度 | 40MHz |
※ALTERA 製CycloneIIIにおけるAES_ENGINE IP 単体の参考規模と動作速度になります。 ※使用ツール:QuartusII version9.0 Build 132 02/25/2009 SJ Full Version |
ソフトウェアにてキー拡張処理を行うことで規模縮小が可能です。
※その場合、IPの規模は約2,400LEsになります。
記述言語
- Verilog-HDL
※ VHDLでの対応も可能です。詳細はお問い合わせください。
ご提供方法
- ご要望により本IPコアのカスタマイズおよび機能を追加してのご提供も可能です。
- 外部制御回路等の周辺回路のカスタム設計も承りますので、ご相談ください。
- HDL言語で設計していますので、様々なFPGAやASICデバイスへ対応出来ます。
- ネットリストによるご提供やROM形式でのご提供も可能です。