VHDL Implementation of Salsa20 Stream Cipher
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
LICENSE
Readme.md
salsa20_compact.vhd
salsa20_core.vhd
salsa20_functions.vhd
salsa20_tests.vhd
salsa20_tests_TB.vhd
salsa_20_tests.vhd
simulate.sh

Readme.md

WORK IN PROGRESS

Behavioral VHDL Implementation of the Salsa20 Stream Cipher

Compilation/Simulation test suite using GHDL can be run:

sh ./simulate.sh

In addition to reporting success/failure, a VCD file is output which can be rendered with tools such as Scansion and GTKWave

Test vectors taken from the official paper and generated with Python Salsa20 NaCl bindings

Complete

From the official paper:

  • quarterround function
  • rowround function
  • columnround function
  • doubleround function
  • Salsa20 Hash Function
  • Salsa20 Expansion Function
  • Salsa20 Encryption Function

TODO

  • Setup logic
  • Count Increment
  • Input/Output
  • Message XOR