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暗号化のアルゴリズム

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

ブロック図

AES暗号化のブロック図

CPU接続用 I/F をお客様のご要望に合わせてカスタム設計してご提供することにより、外部制御を容易にすることが出来ます。

インタフェース

I/F信号名I/O機能
System I/FAESCLKIAES master clock
RESETNINegative reset
DATA I/FENCMODEIENC/DEC change signal
KEYSEL[1:0]IKey length select signal (0:128, 1:192, 2;256)
GOSETIGO SET(request)
ACTOAES ENGINE active
INDATA[127:0]IInput data
MODE[1:0]IECB/CBC/CTR mode signal (0:ECB,1:CBC,2:CTR)
IVREGW[127:0]Iinitial vector register write
INIFLGSIinitial vector flags
OUTDATA[127:0]OOutput data
IVREGR[127:0]Ovector register read
KEY I/FKEYSETIKey set
KEY[255:0]IKey input data
EXP_ACTOKey expansion active
RAM I/FKEYWTOKey data write for external memory
KEYWA[5:0]OKey data write address for external memory
KEYWD[31:0]OKey write data for external memory
RAD[5:0]OSub key read address for external memory
SUBKEY[31:0]ISub key(data out of external memory)

制御手順(例)

AES暗号の制御手順(例)
  1. キー長の設定および、キーデータ(128bit/192bit/256bit)を書込む
  2. キー拡張処理開始を指示
  3. 割り込み等でキー拡張処理終了を確認する。
  4. 動作モード(暗号化/復号)を設定する。
  5. 動作モードに応じて、イニシャルベクタデータを設定する。
  6. 入力データ(16byte)を入力データレジスタに書き込む。
  7. 暗号化/復号動作開始を指示する。
  8. 割り込み等でAES 暗号化/復号動作終了を確認する。
  9. 出力データ(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形式でのご提供も可能です。

お問い合わせ

この製品に関するお問い合わせはこちら

カタログのダウンロードはこちら