C++ C SystemVerilog Verilog Makefile Python Other
Clone or download
nacl and heeran-xilinx Fix AES implementation; code cleanup
The original implementation of the AES cipher assumed that the state matrix is
in row-major order, as C arrays are.  It is actually in column-major order, see:

  https://en.wikipedia.org/wiki/Advanced_Encryption_Standard#Description_of_the_cipher

Thus, all operations must operate on a transposed matrix: all steps that operate
on rows (i.e. ShiftRows) will need to operate on columns, and vice versa.  This
is implemented in both the encryption and decryption application.

Code cleanup was also done on the AES implementation, mostly in the form of the
addition of whitespace.  All C++ compilation warnings are resolved when using
the compilers provided with SDx.  The decrypt kernel code was modified slightly
in the Inverse MixColumns step to reduce the amount of code.  As it is written,
it should still have the same properties as the original implementation.

This was tested in the SDx software emulator on CentOS, and all tests passed.
Data rates when deployed KCU1500 card were approximately 3.25 GB/s.
Latest commit 252a88c Jul 2, 2018

README.md

SDAccel Example Repository

Welcome to the SDAccel example repository. This repository contains the latest examples to get you started with application optimization targeting Xilinx PCIe FPGA acceleration boards. All examples are ready to be compiled and executed on SDAccel supported boards and accelerated cloud service partners. The repository is organized as follows:

  1. GETTINGS STARTED
  2. ACCELERATION
  3. SECURITY
  4. VISION
  5. LIBS
  6. UTILITY
  7. OTHER INFORMATION
  8. SUPPORT

1. GETTING STARTED

Collection of examples geared at teaching the user best practices in how to use different features of SDAccel and start on their own application.

2. ACCELERATION

Collection of examples in processor offloading to FPGA based compute units.

3. SECURITY

Collection of examples in encryption and data security.

4. VISION

Collection of examples in image and video processing.

5. LIBS

Collection of common libraries used across all examples to assist in the quick development of application host code.

6. UTILITY

Collection of utility functions used as part of the Makefiles in all of the examples. This set includes Makefile rules and scripts to launch SDAccel compiled applications onto boards hosted by Nimbix directly from the developers terminal shell.

7. OTHER INFORMATION

For more information check here: SDAccel User Guides

8. SUPPORT

For questions and to get help on this project or your own projects, visit the SDAccel Forums.