DTHE stands for Data Transform and Hashing Engine. This module is a wrapper on top of the Crypto IP with some additional capability, including CRC and Checksum
Features Supported In Hardware
DTHE provides the following features:
- Symmetric encryption and decryption
- AES: 128, 192, and 256 bit keys
- Cipher modes ECB, CTR, CBC, GCM, CCM, F9, F8, XTS, CFB, ICM, CTR, CBC-MAC, CMAC based on AES
- Asymmetric cryptography
- High performance PKA (public key engine) for large vector math/modulus operation
- RSA2048, RSA3092, RSA4096
- ECC (accelerated using PKA module)
- Hashing
- MD5, SHA-1, SHA-224, SHA-256, SHA-384 and SHA-512
- HMAC-SHA256, HMAC-SHA512 keyed hashing
- Random number generator
- 128 bit True random number generator
- 128 bit Deterministic random bit generator
- This module wraps following IP inside
- EIP29T : PKA accelerator
- EIP57T : SHA/MD5 accelerator
- EIP36T : AES accelerator
- EIP76T : True Random Number Generation
Apart from this the module holds HW accelerator for CRC and Checksum.
The IP supports the following features:
- Supports these CRC functions:
- Bisync, Modbus, USB, ANSI X3.28, many others; also known as CRC-16 and CRC-16-ANSI : (x^16+x^15+x^2+1)
- CRC16- /X.25 with Polynomial 0x1021 : (x^16+x^12+x^5+1)
- CRC32-IEEE/MPEG2/Hamming with Polynomial 0x4C11DB7 : (x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2 + x+1)
- CRC32-G.Hn/CRC32C with Polynomial 0x1EDC6F41: (x^32+x^28+x^27+x^26+x^25+x^23+x^22+x^20+x^19+x^18+x^14+x^13+ x^11+x^10+x^9+x^8+x^6+1)
- Supports TCP CheckSum (CSUM)
Features Supported In Driver
- Note
- True Random Number Generation (TRNG) and PKA (Public Key Accelerator) are not supported from R5F on HS-SE/HS-FS devices as these are secure assets and are locked for HSM.
-
TRNG and PKA are single context engines and hence are secure assets on HS-SE/HS-FS devices.
- SHA
- Secure hash algorithms)
- Hash-based message authentication code
- HMAC SHA-256, HMAC SHA-512
- AES
- Advanced encryption standard
- AES-CBC(128/192/256)(Cipher Block Chaining)
- AES-ECB(128/192/256)(Electronic Code Book)
- AES-CTR(128/192/256)(CounTeR)
- AES-CFB(128/192/256)(Cipher FeedBack)
- AES-CMAC(128/256)(Cipher-based Message Authentication Code)
Block diagram
DTHE block diagram
Functional description
DTHE API's Supported
- DTHE_init(): Initializes the DTHE module.
- DTHE_deinit(): This function de-initializes the DTHE.
- DTHE_open(): Function to open DTHE instance, enable DTHE engine.
- DTHE_close(): Function to close a DTHE module specified by the DTHE handle.
API