SHA-256 Cryptography

Publisher: Synflow

Status: FPGA Proven


SHA-2 is a set of cryptographic hash functions created to secure data. Cryptographic hash functions are mathematical operations run on digital data. A key aspect of cryptographic hash functions is their collision resistance: nobody should be able to find two different input values that result in the same hash output. SHA-256 is a hash functions computed with 32-bit-bit words. The SHA-2 hash function is implemented in some widely used security applications and protocols, including TLS and SSL, PGP, SSH, S/MIME, and IPsec.


The core provides the following features:


The general architecture of the core consists of four main modules:


CounterT is an elaborate counter. It writes the address to the ROM and send data to computeW so that the computed values arrives at the same time to the main SHA loop.

ComputeW is an elaborate 16x32 shift register that compute W from the message send by CounterT. In comparison with a "standard" implementation, tt uses 4 times fewer registers and almost no mux.

sha computes the hash from the data it receives. The W array is computed on-the-fly by ComputeW, and K is send by the ROM during the right clock cycle.


The core is connected directly to the application. The application must be ready to receive data any time and can send data when the core is ready.


This is an FPGA proven project.