The Secure Hash Algorithm (SHA) is a family of cryptographic hash functions developed and distributed by NIST.
Our SHA Engine is composed of 2 independent cores. The first one is a SHA2 core, consisting in several functions (i.e., SHA2-224, SHA2-256, SHA2-384, SHA2-512), to be employed in widely used security applications and protocols, such as TLS and SSL, PGP, SSH, S/MIME, IPsec. The second is a SHA-3 core, which also implements several functions (i.e., SHA-3-224, SHA-3-256, SHA-3-384, SHA-3-512).
SHA-3 is the most recent member of the SHA family as it has been released in 2015, and it employs features of the Keccak cryptographic primitive family.
Both the SHA2/-3 cores of our SHA Engine are accompanied by a hardware padder module, with the purpose of making the total length of the input message an integer multiple of 512 or 1024 bits (for SHA2), or 1152, 1088, 832 or 576 bits (for SHA-3), depending on the original digest size.
The hardware implementation of this operation allows to reduce the amount of operations which the software should perform, significantly reducing the total execution time of drivers and/or software routines.