Implementation on FPGA - 2023.2 English

Vitis Libraries

Release Date
2023.2 English

We support CBC-DES, CBC-AES128, CBC-AES192, and CBC-AES256 modes in this implementation.


The bit-width of the interfaces we provide is shown as follows:

  plaintext ciphertext cipherkey IV
CBC-DES 64 64 64 64
CBC-AES128 128 128 128 128
CBC-AES192 128 128 192 128
CBC-AES256 128 128 256 128

The algorithm flow chart is shown as follow:

algorithm flow chart of CBC

As we can see from the chart, the encryption part of CBC mode has loop-carried dependency which is enforced by the algorithm, then the input block of each iteration (except for iteration 0) needs a feedback data from its last iteration. Thus, the initiation interval (II) of CBC encryption cannot achieve an II = 1. However, the decryption part of CBC mode has no dependencies, so that it can achieve an II = 1.