6 Cryptographic Algorithm Specifications

The following describes the controlling documents for the cryptographic algorithms implemented within the TA100 device.

The following describes the controlling documents for the cryptographic algorithms implemented within the TA100 device.

The TA100 device calculates cryptographic digests using SHA-256:
HMAC calculations are performed with key sizes varying from 16 to 64 bytes. The underlying algorithm is always SHA-256.
Authorization session establishment uses the HMAC/SHA-256 - counter key derivation function specified in the following document. This KDF is also supported by the KDF command for general purpose use:
Symmetric encryption implemented in the devices uses AES-128 per:

The AES-CMAC algorithm is implemented according to:
AES encryption/decryption for authorization sessions uses the GCM AEAD mode per:
RSA signatures are generated and/or verified using the RSASSA-PKCS1-V1_5 scheme according to the PKCS#1 procedures documented in the following. The exponent is fixed at 0x10001, except for 3072-bit verify, which optionally supports e = 3:
The TA100 device can also calculate and verify RSA signatures using the RSASSA-PSS schemes according to the PKCS#1 procedures documented in:
RSA (RSAES-OAEP) encryption and decryption with an exponent of 0x10001 is supported for 1024-bit and 2048-bit key lengths using the RSAES_OAEP PKCS#1 V2.2 scheme documented in:
Elliptic Curve ECDSA signatures using the NIST curves P224, P256 and P384 are generated/verified according to the following specification. Keys for all three curves can be generated using the RNG.
The TA100 device executes the ECDH key agreement according to NIST Special Publication 800-56A r3 recommendations. All ECDH public and private keys are treated as ephemeral keys with the corresponding key validation. P224, P256 and P384 curves are supported.
Elliptic Curve computations for the 256-bit Brainpool curve are supported according to the following document. Sign, verify, key generation and ECDH are all supported. The TA100 device does not support Brainpool curves for X.509 certificate parsing.
ECDSA sign and verify operations are supported for the SECP256K1 curve, often used in block chain applications. ECDH is not supported for this curve. It is specified in:
The TA100 device supports the TLS 1.2 KDF (PRF), as specified in:
The TA100 device supports the TLS 1.3 KDF, aka HKDF, as specified in:
The TA100 device can execute the Burmester-Desmedt protocol variation of ECDH described at Eurocrypt ’94. Contact Microchip for more technical details. A version of that paper is available here:
The TA100 device is designed to support the cryptographic protocols, as specified in:
Microchip uses various evaluation methods to determine the security of the storage within the device. In this document, the protection level of the private/secret keys uses the vulnerability analysis in the following JIL document:

Contact Microchip for CAVP certification status of the appropriate cryptographic algorithms.