Skip to content

MarkEbrahim/AES128-Basys3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

Implements AES128 on a Basys3 FPGA with Xilinx Vivado 2021.1.

Usage

This is how to encrypt data with the Basys3:

  1. Upload the bitstream to the Basys3.
  2. Press the reset button (U18).
  3. Press the start button (T18).
  4. The Basys3 is ready to accept a block. Send the 128-bit block to the Basys3 through a serial terminal like PuTTY.
  5. The Basys3 should echo the 128-bit block after it receives all 128 bits of the block.
  6. The Basys3 is ready to accept a key. Send the 128-bit key to the Basys3 through a serial terminal like PuTTY.
  7. The Basys3 should echo the 128-bit block after it receives all 128 bits of the key.
  8. The Basys3 should send out the ciphertext one line under the key that it just echoed.
  9. To encrypt again, go back to (2).

Architecture

AES.v is the top-level module. AES.v is a finite state machine with states for receiving the block, receiving the key, encrypting the block, and transmitting the ciphertext. The module that receives the block and key is uart_receiver128.v; the module encrypts the block is AES_Core.v; and, the module that transmits the ciphertext is uart_transmitter.v.

Credit

These three modules are from FPGADude's (David J. Marion) project:

  1. uart_transmitter
  2. uart_receiver
  3. baud_rate_generator

About

Implements AES128 on a Basys3 FPGA with Xilinx Vivado

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •