Skip to content

marph91/yaaes

Folders and files

NameName
Last commit message
Last commit date
Jul 24, 2021
Jul 19, 2021
Jul 25, 2021
Jul 24, 2021
Jul 24, 2021
Jul 24, 2021
Sep 2, 2019
Jun 30, 2019
Jul 25, 2021
Jul 19, 2021
Jul 19, 2021

Repository files navigation

YAAES

testsuite codecov vhdl_style synthesis

VHDL implementation of the symmetric block cipher AES, as specified in the NIST FIPS 197, respectively NIST SP 800-38A.

Features:

  • Interface width of 8, 32 and 128 bit.
  • Key width of 128 and 256 bit, i. e. AES-128 and AES-256.
  • The following modes:
Mode Encryption Decryption
ECB ✔️
CBC ✔️
CFB ✔️ ✔️
OFB ✔️ ✔️
CTR

Development status:

  • VHDL design
  • Functional simulation
  • Implementation
  • Test on FPGA (it was reported that the design was successfully ran on an Altera Max 10 Board at 50 MHz)

Usage

The core expects key, iv (optional) and plaintext/ciphertext (depending if encrypting or decrypting) through islv_data. A new set of key and iv should be signalised by assigning isl_new_key_iv for one cycle. Valid inputs should be marked by assigning the isl_valid signal. Accordingly, the output oslv_data is valid when the signal osl_valid is assigned. New input data can be transmitted only when the output is fully done.

Example for AES-256 encryption in CFB mode with an interface bitwidth of 32 bit:

AES toplevel waveform

Resource usage

The following results are obtained from a local synthesis for Lattice ECP5, using the open source toolchain (ghdl, yosys and nextpnr). For more details, see the synthesis workflow.

  • Device: ULX3S
  • Configuration: as in the example above
  • Results:
    • Resources:
      • TRELLIS_SLICE: 3109/41820 7%
      • DCCA: 1/ 56 1%
    • Target frequency: 100 MHz
    • Maximum frequency: 121 MHz

Performance

From the testsuite runs, the following metrics can be derived (configuration as above):

  • Latency: 37 cycles (after initial key and iv transmission)
  • Throughput: One input of 128 bit each 42 cycles → 3 bit per clock cycle → 300 Mbps at 100 MHz

About

Yet Another AES implementation in hardware.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published