Cryptographic performance on STM32H7 series V5.x

This page shows the measured performance results when using the pure software cryptographic library algorithms with an STM32H7 MCU. In addition to performance figures, the required code footprint and memory are also given.


STM32H753

This section reports the performance using the STM32H753 MCU. Measurements are done while executing the code from the internal flash memory.


1. Measurement configuration

1.1. Hardware configuration

STM32 MCU STM32H753ZI
Device ID 0x450
Revision ID 0x2003
Board STM32H753ZI-Nucleo

1.2. Firmware configuration

Cryptographic library version 050000B2[ver. 1]
  1. This value corresponds to the information returned by a call to cmox_getInfos

1.3. System configuration

System core clock frequency 400 MHz
Flash latency 4 wait states
Voltage scaling Range 3
Instruction cache (ART/ICU) 1 (0: disabled / 1: enabled)
Data cache (ART/DCU) 1 (0: disabled / 1: enabled)

1.4. Development toolchains and compilers

IAR Embedded Workbench IAR ANSI C/C++ Compiler V9.40.1.364/W64 for ARM
Information
The measurements are done using a project built with the High Speed optimization setting enabled.


2. Performance values

2.1. AES symmetric key encryption and decryption

This section provides the performance results for AES-CBC using different operation modes:

  • Sole buffer: one sole buffer is encrypted or decrypted. The performance time is given in µs.
  • Data flow: a big message is encrypted or decrypted in chunks. The bit rate is given in kilobytes per second.

2.1.1. Sole buffer mode

In this mode, the entire encryption or decryption process, for the full message size, is managed through a single API call provided by the CMOX library.

The table below shows the number of clock cycles and time (in µs) needed to perform the described operation in small and fast configurations.

AES mode Key size Buffer size Cipher operation Configuration Cycles Time
AES CBC 128 bits 32 bytes Encryption Small 2546 6 µs
AES CBC 128 bits 32 bytes Encryption Fast 2106 5 µs
AES CBC 128 bits 64 bytes Encryption Small 4235 10 µs
AES CBC 128 bits 64 bytes Encryption Fast 3296 8 µs
AES CBC 128 bits 128 bytes Encryption Small 7599 18 µs
AES CBC 128 bits 128 bytes Encryption Fast 5775 14 µs
AES CBC 192 bits 32 bytes Encryption Small 2759 6 µs
AES CBC 192 bits 32 bytes Encryption Fast 2200 5 µs
AES CBC 192 bits 64 bytes Encryption Small 4708 11 µs
AES CBC 192 bits 64 bytes Encryption Fast 3612 9 µs
AES CBC 192 bits 128 bytes Encryption Small 8598 21 µs
AES CBC 192 bits 128 bytes Encryption Fast 6385 15 µs
AES CBC 256 bits 32 bytes Encryption Small 3121 7 µs
AES CBC 256 bits 32 bytes Encryption Fast 2469 6 µs
AES CBC 256 bits 64 bytes Encryption Small 5264 13 µs
AES CBC 256 bits 64 bytes Encryption Fast 3987 9 µs
AES CBC 256 bits 128 bytes Encryption Small 9730 24 µs
AES CBC 256 bits 128 bytes Encryption Fast 7112 17 µs
AES CBC 128 bits 32 bytes Decryption Small 3068 7 µs
AES CBC 128 bits 32 bytes Decryption Fast 2767 6 µs
AES CBC 128 bits 64 bytes Decryption Small 5282 13 µs
AES CBC 128 bits 64 bytes Decryption Fast 3897 9 µs
AES CBC 128 bits 128 bytes Decryption Small 9743 24 µs
AES CBC 128 bits 128 bytes Decryption Fast 6331 15 µs
AES CBC 192 bits 32 bytes Decryption Small 3428 8 µs
AES CBC 192 bits 32 bytes Decryption Fast 2958 7 µs
AES CBC 192 bits 64 bytes Decryption Small 6071 15 µs
AES CBC 192 bits 64 bytes Decryption Fast 4254 10 µs
AES CBC 192 bits 128 bytes Decryption Small 11 322 28 µs
AES CBC 192 bits 128 bytes Decryption Fast 7081 17 µs
AES CBC 256 bits 32 bytes Decryption Small 3895 9 µs
AES CBC 256 bits 32 bytes Decryption Fast 3358 8 µs
AES CBC 256 bits 64 bytes Decryption Small 6923 17 µs
AES CBC 256 bits 64 bytes Decryption Fast 4798 11 µs
AES CBC 256 bits 128 bytes Decryption Small 12 920 32 µs
AES CBC 256 bits 128 bytes Decryption Fast 7926 19 µs


The table below shows flash memory and RAM usage (in bytes).

Cipher operation Configuration Code Constant data Global data Stack usage
Encryption Small 2298 bytes 324 bytes 0 bytes 552 bytes
Encryption Fast 2242 bytes 1092 bytes 0 bytes 552 bytes
Decryption Small 2650 bytes 580 bytes 0 bytes 568 bytes
Decryption Fast 2600 bytes 2372 bytes 0 bytes 568 bytes


2.1.2. Data flow mode

In this mode, the operation is performed in several calls to the CMOX library APIs, as shown below:

  • cmox_cipher_init
  • cmox_cipher_setKey
  • cmox_cipher_setIV
  • cmox_cipher_append: called several times to encrypt or decrypt the whole message in fixed-size chunks

The table below shows the number of clock cycles and the bit rate (in kilobytes per second) needed to perform the described operation in small and fast configuration.

AES mode Key size Message size Chunk size Cipher operation Configuration Cycles Bit rate
AES CBC 128 bits 8000 bytes 128 bytes Encryption Small 429 808 7445 Kbytes/s
AES CBC 128 bits 8000 bytes 128 bytes Encryption Fast 318 104 10 059 Kbytes/s
AES CBC 128 bits 8000 bytes 512 bytes Encryption Small 422 720 7570 Kbytes/s
AES CBC 128 bits 8000 bytes 512 bytes Encryption Fast 310 768 10 297 Kbytes/s
AES CBC 128 bits 8000 bytes 1024 bytes Encryption Small 422 152 7580 Kbytes/s
AES CBC 128 bits 8000 bytes 1024 bytes Encryption Fast 308 512 10 372 Kbytes/s
AES CBC 128 bits 8000 bytes 2048 bytes Encryption Small 421 664 7588 Kbytes/s
AES CBC 128 bits 8000 bytes 2048 bytes Encryption Fast 308 360 10 377 Kbytes/s
AES CBC 192 bits 8000 bytes 128 bytes Encryption Small 494 600 6469 Kbytes/s
AES CBC 192 bits 8000 bytes 128 bytes Encryption Fast 359 728 8895 Kbytes/s
AES CBC 192 bits 8000 bytes 512 bytes Encryption Small 488 472 6551 Kbytes/s
AES CBC 192 bits 8000 bytes 512 bytes Encryption Fast 353 744 9046 Kbytes/s
AES CBC 192 bits 8000 bytes 1024 bytes Encryption Small 488 280 6553 Kbytes/s
AES CBC 192 bits 8000 bytes 1024 bytes Encryption Fast 350 536 9128 Kbytes/s
AES CBC 192 bits 8000 bytes 2048 bytes Encryption Small 487 800 6560 Kbytes/s
AES CBC 192 bits 8000 bytes 2048 bytes Encryption Fast 350 320 9134 Kbytes/s
AES CBC 256 bits 8000 bytes 128 bytes Encryption Small 561 920 5694 Kbytes/s
AES CBC 256 bits 8000 bytes 128 bytes Encryption Fast 401 488 7970 Kbytes/s
AES CBC 256 bits 8000 bytes 512 bytes Encryption Small 555 992 5755 Kbytes/s
AES CBC 256 bits 8000 bytes 512 bytes Encryption Fast 392 080 8161 Kbytes/s
AES CBC 256 bits 8000 bytes 1024 bytes Encryption Small 553 800 5778 Kbytes/s
AES CBC 256 bits 8000 bytes 1024 bytes Encryption Fast 393 624 8129 Kbytes/s
AES CBC 256 bits 8000 bytes 2048 bytes Encryption Small 553 200 5784 Kbytes/s
AES CBC 256 bits 8000 bytes 2048 bytes Encryption Fast 391 160 8180 Kbytes/s
AES CBC 128 bits 8000 bytes 128 bytes Decryption Small 575 440 5560 Kbytes/s
AES CBC 128 bits 8000 bytes 128 bytes Decryption Fast 324 904 9849 Kbytes/s
AES CBC 128 bits 8000 bytes 512 bytes Decryption Small 570 520 5608 Kbytes/s
AES CBC 128 bits 8000 bytes 512 bytes Decryption Fast 320 608 9981 Kbytes/s
AES CBC 128 bits 8000 bytes 1024 bytes Decryption Small 569 776 5616 Kbytes/s
AES CBC 128 bits 8000 bytes 1024 bytes Decryption Fast 319 080 10 028 Kbytes/s
AES CBC 128 bits 8000 bytes 2048 bytes Decryption Small 568 016 5633 Kbytes/s
AES CBC 128 bits 8000 bytes 2048 bytes Decryption Fast 317 552 10 077 Kbytes/s
AES CBC 192 bits 8000 bytes 128 bytes Decryption Small 672 280 4759 Kbytes/s
AES CBC 192 bits 8000 bytes 128 bytes Decryption Fast 365 344 8758 Kbytes/s
AES CBC 192 bits 8000 bytes 512 bytes Decryption Small 667 816 4791 Kbytes/s
AES CBC 192 bits 8000 bytes 512 bytes Decryption Fast 361 400 8854 Kbytes/s
AES CBC 192 bits 8000 bytes 1024 bytes Decryption Small 666 160 4803 Kbytes/s
AES CBC 192 bits 8000 bytes 1024 bytes Decryption Fast 359 864 8892 Kbytes/s
AES CBC 192 bits 8000 bytes 2048 bytes Decryption Small 664 528 4815 Kbytes/s
AES CBC 192 bits 8000 bytes 2048 bytes Decryption Fast 358 072 8936 Kbytes/s
AES CBC 256 bits 8000 bytes 128 bytes Decryption Small 769 432 4158 Kbytes/s
AES CBC 256 bits 8000 bytes 128 bytes Decryption Fast 407 168 7859 Kbytes/s
AES CBC 256 bits 8000 bytes 512 bytes Decryption Small 764 328 4186 Kbytes/s
AES CBC 256 bits 8000 bytes 512 bytes Decryption Fast 402 712 7946 Kbytes/s
AES CBC 256 bits 8000 bytes 1024 bytes Decryption Small 762 976 4194 Kbytes/s
AES CBC 256 bits 8000 bytes 1024 bytes Decryption Fast 402 128 7957 Kbytes/s
AES CBC 256 bits 8000 bytes 2048 bytes Decryption Small 761 360 4203 Kbytes/s
AES CBC 256 bits 8000 bytes 2048 bytes Decryption Fast 400 728 7985 Kbytes/s


The table below shows flash memory and RAM usage (in bytes).

Cipher operation Configuration Code Constant data Global data Stack usage
Encryption Small 2218 bytes 316 bytes 0 bytes 176 bytes
Encryption Fast 2162 bytes 1084 bytes 0 bytes 176 bytes
Decryption Small 2570 bytes 572 bytes 0 bytes 192 bytes
Decryption Fast 2520 bytes 2364 bytes 0 bytes 192 bytes


2.2. HASH digest

In this section we provide the performance results for HASH, using different modes of operation:

  • Sole buffer: one sole buffer is hashed. The performance time is given in us.
  • Data flow: a big message is hashed in chunks. The bit rate is given in bytes per second.

2.2.1. Sole buffer mode

In this mode, the entire message hashing process is managed through a single API call provided by the CMOX library.

The table below shows the number of clock cycles and time (in µs) needed to perform the described operation.

HASH mode Buffer size Cycles Time
SHA256 32 bytes 2646 6 µs
SHA256 64 bytes 4460 11 µs
SHA256 128 bytes 6050 15 µs
SHA384 32 bytes 9161 22 µs
SHA384 64 bytes 9227 23 µs
SHA384 128 bytes 17 302 43 µs


The table below shows flash memory and RAM usage (in bytes).

HASH mode Code Constant data Global data Stack usage
SHA256 1358 280 bytes 0 bytes 532 bytes
SHA384 2550 728 bytes 0 bytes 1076 bytes


2.2.2. Data flow mode

In this mode, the operation is performed in several calls to the CMOX library APIs, as shown below:

  • cmox_hash_init
  • cmox_hash_append: called several times to hash the whole message in fixed-size chunks
  • cmox_hash_generateTag

The table below shows the number of clock cycles and the bit rate (in kilobytes per second) needed to perform the described operation.

HASH mode Message size Chunk size Cycles Bit rate
SHA256 8000 bytes 128 bytes 225 512 14 189 Kbytes/s
SHA256 8000 bytes 512 bytes 208 765 15 328 Kbytes/s
SHA256 8000 bytes 1024 bytes 206 342 15 508 Kbytes/s
SHA256 8000 bytes 2048 bytes 205 220 15 593 Kbytes/s
SHA384 8000 bytes 128 bytes 517 880 6179 Kbytes/s
SHA384 8000 bytes 512 bytes 493 690 6481 Kbytes/s
SHA384 8000 bytes 1024 bytes 489 210 6541 Kbytes/s
SHA384 8000 bytes 2048 bytes 487 171 6568 Kbytes/s


The table below shows the final tag generation done through the call to cmox_hash_generateTag.

HASH mode Cycles Time
SHA256 2058 5 µs
SHA384 8493 21 µs

The table below shows flash memory and RAM usage (in bytes).

HASH mode Code Constant data Global data Stack usage
SHA256 1358 bytes 272 bytes 0 bytes 340 bytes
SHA384 2550 bytes 720 bytes 0 bytes 780 bytes


2.3. ECDSA signature and verification

This section provides the performance results for ECDSA signature and verification.

The table below shows the number of clock cycles and time (in ms) needed to perform the described operation in different configurations.

Curve Operation ECC mathematics configuration Curve definition Cycles Time
SECP256R1 Signature Small Low 2 174 680 5 ms
SECP256R1 Signature Small High 2 083 888 5 ms
SECP256R1 Signature SuperFast Low 1 363 808 3 ms
SECP256R1 Signature SuperFast High 1 261 904 3 ms
SECP256R1 Verification Small Low 5 190 656 12 ms
SECP256R1 Verification Small High 4 577 320 11 ms
SECP256R1 Verification SuperFast Low 3 254 432 8 ms
SECP256R1 Verification SuperFast High 2 790 480 6 ms
SECP384R1 Signature Small Low 6 118 312 15 ms
SECP384R1 Signature Small High 5 789 608 14 ms
SECP384R1 Signature Fast Low 5 017 784 12 ms
SECP384R1 Signature Fast High 4 708 896 11 ms
SECP384R1 Verification Small Low 14 569 504 36 ms
SECP384R1 Verification Small High 12 567 032 31 ms
SECP384R1 Verification Fast Low 11 930 384 29 ms
SECP384R1 Verification Fast High 10 227 400 25 ms


The table below shows ECDSA flash memory and RAM usage (in bytes).

Note
The footpring is measured using the general-purpose CMOX_ECC_XXX_HIGHMEM or CMOX_ECC_XXX_LOWMEM configuration, which shows the footprint increase compared with the V4.x.x. To reduce the footprint, the optimized confinguration CMOX_ECC_XXX_YYY_SIGN or CMOX_ECC_XXX_YYY_VERIFY is recommended.
Curve Operation ECC mathematics configuration Curve definition Code Constant data Global data Stack usage Working buffer
SECP256R1 Signature Small Low 13 440 bytes 1212 bytes 0 bytes 440 bytes 628 bytes
SECP256R1 Signature Small High 13 440 bytes 1596 bytes 0 bytes 440 bytes 696 bytes
SECP256R1 Signature SuperFast Low 14 750 bytes 1212 bytes 0 bytes 444 bytes 628 bytes
SECP256R1 Signature SuperFast High 14 750 bytes 1596 bytes 0 bytes 444 bytes 696 bytes
SECP256R1 Verification Small Low 13 428 bytes 1212 bytes 0 bytes 488 bytes 856 bytes
SECP256R1 Verification Small High 13 428 bytes 1596 bytes 0 bytes 488 bytes 1648 bytes
SECP256R1 Verification SuperFast Low 14 738 bytes 1212 bytes 0 bytes 492 bytes 856 bytes
SECP256R1 Verification SuperFast High 14 738 bytes 1596 bytes 0 bytes 492 bytes 1648 bytes
SECP384R1 Signature Small Low 13 440 bytes 1692 bytes 0 bytes 440 bytes 884 bytes
SECP384R1 Signature Small High 13 440 bytes 2268 bytes 0 bytes 440 bytes 984 bytes
SECP384R1 Signature Fast Low 13 810 bytes 1692 bytes 0 bytes 456 bytes 884 bytes
SECP384R1 Signature Fast High 13 810 bytes 2268 bytes 0 bytes 456 bytes 984 bytes
SECP384R1 Verification Small Low 13 428 bytes 1692 bytes 0 bytes 488 bytes 1192 bytes
SECP384R1 Verification Small High 13 428 bytes 2268 bytes 0 bytes 488 bytes 2272 bytes
SECP384R1 Verification Fast Low 13 798 bytes 1692 bytes 0 bytes 504 bytes 1192 bytes
SECP384R1 Verification Fast High 13 798 bytes 2268 bytes 0 bytes 504 bytes 2272 bytes


2.4. EdDSA signature and verification

This section provides the performance results for EdDSA signature and verification.

The table below shows the number of clock cycles and time (in ms) needed to perform the described operation in different configurations.

Curve Message size Operation ECC mathematics configuration Curve definition Cycles Time
Ed25519 1023 bytes Signature Small OptLow 3 275 368 8 ms
Ed25519 1023 bytes Signature Small OptHigh 1 877 520 4 ms
Ed25519 1023 bytes Signature SuperFast OptLow 2 162 680 5 ms
Ed25519 1023 bytes Signature SuperFast OptHigh 1 300 624 3 ms
Ed25519 1023 bytes Verification Small OptLow 4 992 840 12 ms
Ed25519 1023 bytes Verification Small OptHigh 4 319 624 10 ms
Ed25519 1023 bytes Verification SuperFast OptLow 3 140 912 7 ms
Ed25519 1023 bytes Verification SuperFast OptHigh 2 837 744 7 ms


The table below shows EdDSA flash memory and RAM usage (in bytes).

Note
The footpring is measured using the general-purpose CMOX_ECC_XXX_HIGHMEM or CMOX_ECC_XXX_LOWMEM configuration, which shows the footprint increase compared with the V4.x.x. To reduce the footprint, the optimized confinguration CMOX_ECC_XXX_YYY_SIGN or CMOX_ECC_XXX_YYY_VERIFY is recommended.
Curve Message size Operation ECC mathematics configuration Curve definition Code Constant data Global data Stack usage Working buffer
Ed25519 1023 bytes Signature Small OptLow 14 820 bytes 1748 bytes 0 bytes 1172 bytes 1672 bytes
Ed25519 1023 bytes Signature Small OptHigh 15 238 bytes 2900 bytes 0 bytes 1172 bytes 1672 bytes
Ed25519 1023 bytes Signature SuperFast OptLow 16 130 bytes 1748 bytes 0 bytes 1172 bytes 1672 bytes
Ed25519 1023 bytes Signature SuperFast OptHigh 16 548 bytes 2900 bytes 0 bytes 1172 bytes 1672 bytes
Ed25519 1023 bytes Verification Small OptLow 14 816 bytes 1748 bytes 0 bytes 1172 bytes 984 bytes
Ed25519 1023 bytes Verification Small OptHigh 15 234 bytes 2900 bytes 0 bytes 1172 bytes 1992 bytes
Ed25519 1023 bytes Verification SuperFast OptLow 16 126 bytes 1748 bytes 0 bytes 1172 bytes 984 bytes
Ed25519 1023 bytes Verification SuperFast OptHigh 16 544 bytes 2900 bytes 0 bytes 1172 bytes 1992 bytes


2.5. RSA signature and verification

This section provides the performance results for RSA signature and verification.

The table below shows the number of clock cycles and time (in ms) needed to perform the described operation in different configurations.

PKCS#1 Priv. key mod. exp. method Hash method Modulus size Operation RSA mathematics configuration Priv. key mod. exp. implementation Cycles Time
v2.2 CRT SHA-256 3K Signature Small Low 150 764 608 376 ms
v2.2 CRT SHA-256 3K Signature Small Mid 113 332 408 283 ms
v2.2 CRT SHA-256 3K Signature Small High 95 403 392 238 ms
v2.2 CRT SHA-256 3K Signature Fast Low 101 069 544 252 ms
v2.2 CRT SHA-256 3K Signature Fast Mid 76 095 400 190 ms
v2.2 CRT SHA-256 3K Signature Fast High 63 923 240 159 ms
v2.2 No CRT SHA-256 3K Signature Small Low 583 504 952 1458 ms
v2.2 No CRT SHA-256 3K Signature Small Mid 437 891 496 1094 ms
v2.2 No CRT SHA-256 3K Signature Small High 366 741 864 916 ms
v2.2 No CRT SHA-256 3K Signature Fast Low 377 414 704 943 ms
v2.2 No CRT SHA-256 3K Signature Fast Mid 283 480 408 708 ms
v2.2 No CRT SHA-256 3K Signature Fast High 237 153 368 592 ms
v2.2 n/a SHA-256 3K Verification Small n/a 2 640 240 6 ms
v2.2 n/a SHA-256 3K Verification Fast n/a 1 977 488 4 ms


The table below shows RSA flash memory and RAM usage (in bytes).

PKCS#1 Priv. key mod. exp. method Hash method Modulus size Operation RSA mathematics configuration Priv. key mod. exp. implementation Code Constant data Global data Stack usage Working buffer
v2.2 CRT SHA-256 3K Signature Small Low 6850 bytes 372 bytes 0 bytes 668 bytes 3704 bytes
v2.2 CRT SHA-256 3K Signature Small Mid 7088 bytes 372 bytes 0 bytes 668 bytes 4308 bytes
v2.2 CRT SHA-256 3K Signature Small High 7088 bytes 372 bytes 0 bytes 668 bytes 6708 bytes
v2.2 CRT SHA-256 3K Signature Fast Low 7220 bytes 372 bytes 0 bytes 668 bytes 3704 bytes
v2.2 CRT SHA-256 3K Signature Fast Mid 7458 bytes 372 bytes 0 bytes 668 bytes 4308 bytes
v2.2 CRT SHA-256 3K Signature Fast High 7458 bytes 372 bytes 0 bytes 668 bytes 6708 bytes
v2.2 No CRT SHA-256 3K Signature Small Low 5918 bytes 364 bytes 0 bytes 668 bytes 3484 bytes
v2.2 No CRT SHA-256 3K Signature Small Mid 6156 bytes 364 bytes 0 bytes 668 bytes 4664 bytes
v2.2 No CRT SHA-256 3K Signature Small High 6156 bytes 364 bytes 0 bytes 668 bytes 9368 bytes
v2.2 No CRT SHA-256 3K Signature Fast Low 6288 bytes 364 bytes 0 bytes 668 bytes 3484 bytes
v2.2 No CRT SHA-256 3K Signature Fast Mid 6526 bytes 364 bytes 0 bytes 668 bytes 4664 bytes
v2.2 No CRT SHA-256 3K Signature Fast High 6526 bytes 364 bytes 0 bytes 668 bytes 9368 bytes
v2.2 n/a SHA-256 3K Verification Small n/a 6102 bytes 368 bytes 0 bytes 684 bytes 3108 bytes
v2.2 n/a SHA-256 3K Verification Fast n/a 6472 bytes 368 bytes 0 bytes 684 bytes 3108 bytes


2.6. Post-Quantum Cryptography ML-DSA key pair generation, Signature and verification

This section provides the performance results for ML-DSA key Generation, signature and verification.

The table below shows the number of clock cycles and time (in ms) needed to perform the described function in different suites and functions configurations. Note: For signature generation, the number of clock cycles is not bounded in time. The measurement was taken using one predefined private key and one 32-byte message, and the reported value corresponds to the minimum observed time.

Suite Function Cycles Time (in ms) Stack usage Working buffer
ML-DSA-44 keyGen 1 196 384 2 476 7116
ML-DSA-65 keyGen 2 074 640 5 476 8140
ML-DSA-87 keyGen 3 475 096 8 476 10 188
ML-DSA-44 Signature 2 089 192 5 772 30 796
ML-DSA-44 Signature Low RAM 2 263 024 5 756 11 340
ML-DSA-65 Signature 3 198 648 7 772 43 084
ML-DSA-65 Signature Low RAM 3 425 152 8 756 15 436
ML-DSA-87 Signature 5 027 000 12 772 57 420
ML-DSA-87 Signature Low RAM 5 341 992 13 756 19 532
ML-DSA-44 Verification 1 333 896 3 700 8908
ML-DSA-44 Verification Low RAM 1 815 680 4 700 4812
ML-DSA-65 Verification 2 182 496 5 700 9948
ML-DSA-65 Verification Low RAM 3 151 512 7 700 4828
ML-DSA-87 Verification 3 634 256 9 700 12 268
ML-DSA-87 Verification Low RAM 5 443 960 13 700 5100

2.7. Post-Quantum Cryptography ML-KEM key pair generation, encapsulation, decapsulation

This section provides the performance results for ML-KEM key pair generation, encapsulation and decapsulation.

The table below shows the number of clock cycles and time (in ms) needed to perform the described function in different functions and suites.

Function Suites Cycles Time (in ms) Stack usage
Key-pair-Generation ML-KEM-512 410 816 1 3 060
Key-pair-Generation ML-KEM-768 676 320 2 3 572
Key-pair-Generation ML-KEM-1024 1 064 896 3 4 084
Key-Encapsulation ML-KEM-512 1 410 832 4 4 588
Key-Encapsulation ML-KEM-768 2 027 568 5 5 100
Key-Encapsulation ML-KEM-1024 2 748 104 7 5 612
Key-Decapsulation ML-KEM-512 1 580 552 4 4 684
Key-Decapsulation ML-KEM-768 2 257 552 6 5 516
Key-Decapsulation ML-KEM-1024 3 041 824 8 6 508

2.8. Post-Quantum Cryptography HBS-LMS signature verification

This section provides the performance results for ML-LMS signature verification.

The table below shows the number of clock cycles minimum, average and maximum and average time (in ms) needed to perform the described function in different functions and suite. Note: Clock cycles were measured for 10 different generated key and message pairs, and the reported Cycles avg values are averages over these measurements.

Function Suite Cycles min Cycles avg Time avg (in ms) Cycles max Stack usage
LMS-Verify LMS_N32_H10_W1_SHA256 656 992 685 506 2 715 952 1 668
LMS-Verify LMS_N32_H10_W2_SHA256 659 688 703 725 2 765 096 1 668
LMS-Verify LMS_N32_H10_W4_SHA256 1 113 288 1 289 884 3 1 494 672 1 668
LMS-Verify LMS_N32_H10_W8_SHA256 9 721 008 11 162 355 28 12 725 840 1 668


3. STM32H7S3

This section reports the performance with the STM32H7S3 MCU. Measurements are done while executing the code from the external flash memory in execute-in-place mode (XIP).

3.1. Measurement configuration

3.1.1. Hardware configuration

STM32 MCU STM32H7S3L8Hx
Device ID 0x485
Revision ID 0x2000
Board NUCLEO-H7S3L8

3.1.2. Firmware configuration

Cryptographic library version 050000B2[ver. 1]
  1. This value corresponds to the information returned by a call to cmox_getInfos

3.1.3. System configuration

System core clock frequency 600 MHz
Flash latency 55 wait states
Voltage scaling Range 1
Instruction cache (ART/ICU) 1 (0: disabled / 1: enabled)
Data cache (ART/DCU) 1 (0: disabled / 1: enabled)

3.1.4. Development toolchains and compilers

IAR Embedded Workbench IAR ANSI C/C++ Compiler V9.40.1.364/W64 for ARM
Information
The measurements are done using a project built with the High Speed optimization setting enabled.


3.2. Performance values

3.2.1. AES symmetric key encryption and decryption

This section provides the performance results for AES-CBC using different operation modes:

  • Sole buffer: one sole buffer is encrypted or decrypted. The performance time is given in µs.
  • Data flow: a big message is encrypted or decrypted in chunks. The bit rate is given in kilobytes per second.

3.2.1.1. Sole buffer mode

In this mode, the entire encryption or decryption process, for the full message size, is managed through a single API call provided by the CMOX library.

The table below shows the number of clock cycles and time (in µs) needed to perform the described operation in small and fast configurations.

AES mode Key size Buffer size Cipher operation Configuration Cycles Time
AES CBC 128 bits 32 bytes Encryption Small 20 944 34 µs
AES CBC 128 bits 32 bytes Encryption Fast 30 544 50 µs
AES CBC 128 bits 64 bytes Encryption Small 22 624 37 µs
AES CBC 128 bits 64 bytes Encryption Fast 31 736 52 µs
AES CBC 128 bits 128 bytes Encryption Small 25 920 43 µs
AES CBC 128 bits 128 bytes Encryption Fast 34 136 56 µs
AES CBC 192 bits 32 bytes Encryption Small 21 584 35 µs
AES CBC 192 bits 32 bytes Encryption Fast 28 752 47 µs
AES CBC 192 bits 64 bytes Encryption Small 23 632 39 µs
AES CBC 192 bits 64 bytes Encryption Fast 30 248 50 µs
AES CBC 192 bits 128 bytes Encryption Small 27 496 45 µs
AES CBC 192 bits 128 bytes Encryption Fast 32 920 54 µs
AES CBC 256 bits 32 bytes Encryption Small 21 152 35 µs
AES CBC 256 bits 32 bytes Encryption Fast 29 112 48 µs
AES CBC 256 bits 64 bytes Encryption Small 23 344 38 µs
AES CBC 256 bits 64 bytes Encryption Fast 30 648 51 µs
AES CBC 256 bits 128 bytes Encryption Small 27 672 46 µs
AES CBC 256 bits 128 bytes Encryption Fast 33 672 56 µs
AES CBC 128 bits 32 bytes Decryption Small 25 968 43 µs
AES CBC 128 bits 32 bytes Decryption Fast 44 488 74 µs
AES CBC 128 bits 64 bytes Decryption Small 28 200 47 µs
AES CBC 128 bits 64 bytes Decryption Fast 45 936 76 µs
AES CBC 128 bits 128 bytes Decryption Small 32 608 54 µs
AES CBC 128 bits 128 bytes Decryption Fast 48 560 80 µs
AES CBC 192 bits 32 bytes Decryption Small 25 048 41 µs
AES CBC 192 bits 32 bytes Decryption Fast 45 808 76 µs
AES CBC 192 bits 64 bytes Decryption Small 27 816 46 µs
AES CBC 192 bits 64 bytes Decryption Fast 47 280 78 µs
AES CBC 192 bits 128 bytes Decryption Small 32 968 54 µs
AES CBC 192 bits 128 bytes Decryption Fast 50 056 83 µs
AES CBC 256 bits 32 bytes Decryption Small 25 624 42 µs
AES CBC 256 bits 32 bytes Decryption Fast 43 824 73 µs
AES CBC 256 bits 64 bytes Decryption Small 28 616 47 µs
AES CBC 256 bits 64 bytes Decryption Fast 45 472 75 µs
AES CBC 256 bits 128 bytes Decryption Small 34 576 57 µs
AES CBC 256 bits 128 bytes Decryption Fast 48 624 81 µs


The table below shows flash memory and RAM usage (in bytes).

Cipher operation Configuration Code Constant data Global data Stack usage
Encryption Small 2298 bytes 324 bytes 0 bytes 552 bytes
Encryption Fast 2242 bytes 1092 bytes 0 bytes 552 bytes
Decryption Small 2650 bytes 580 bytes 0 bytes 568 bytes
Decryption Fast 2600 bytes 2372 bytes 0 bytes 568 bytes


3.2.1.2. Data flow mode

In this mode, the operation is performed in several calls to the CMOX library APIs, as shown below:

  • cmox_cipher_init
  • cmox_cipher_setKey
  • cmox_cipher_setIV
  • cmox_cipher_append: called several times to encrypt or decrypt the whole message in fixed-size chunks

The table below shows the number of clock cycles and the bit rate (in kilobytes per second) needed to perform the described operation in small and fast configuration.

AES mode Key size Message size Chunk size Cipher operation Configuration Cycles Bit rate
AES CBC 128 bits 8000 bytes 128 bytes Encryption Small 420 720 11 409 Kbytes/s
AES CBC 128 bits 8000 bytes 128 bytes Encryption Fast 317 768 15 105 Kbytes/s
AES CBC 128 bits 8000 bytes 512 bytes Encryption Small 417 152 11 506 Kbytes/s
AES CBC 128 bits 8000 bytes 512 bytes Encryption Fast 313 640 15 304 Kbytes/s
AES CBC 128 bits 8000 bytes 1024 bytes Encryption Small 416 552 11 523 Kbytes/s
AES CBC 128 bits 8000 bytes 1024 bytes Encryption Fast 312 968 15 337 Kbytes/s
AES CBC 128 bits 8000 bytes 2048 bytes Encryption Small 416 136 11 534 Kbytes/s
AES CBC 128 bits 8000 bytes 2048 bytes Encryption Fast 312 456 15 362 Kbytes/s
AES CBC 192 bits 8000 bytes 128 bytes Encryption Small 488 600 9823 Kbytes/s
AES CBC 192 bits 8000 bytes 128 bytes Encryption Fast 359 224 13 362 Kbytes/s
AES CBC 192 bits 8000 bytes 512 bytes Encryption Small 485 008 9896 Kbytes/s
AES CBC 192 bits 8000 bytes 512 bytes Encryption Fast 355 080 13 518 Kbytes/s
AES CBC 192 bits 8000 bytes 1024 bytes Encryption Small 484 392 9909 Kbytes/s
AES CBC 192 bits 8000 bytes 1024 bytes Encryption Fast 354 240 13 550 Kbytes/s
AES CBC 192 bits 8000 bytes 2048 bytes Encryption Small 484 016 9917 Kbytes/s
AES CBC 192 bits 8000 bytes 2048 bytes Encryption Fast 353 776 13 567 Kbytes/s
AES CBC 256 bits 8000 bytes 128 bytes Encryption Small 551 184 8708 Kbytes/s
AES CBC 256 bits 8000 bytes 128 bytes Encryption Fast 398 904 12 032 Kbytes/s
AES CBC 256 bits 8000 bytes 512 bytes Encryption Small 547 640 8764 Kbytes/s
AES CBC 256 bits 8000 bytes 512 bytes Encryption Fast 394 824 12 157 Kbytes/s
AES CBC 256 bits 8000 bytes 1024 bytes Encryption Small 547 040 8774 Kbytes/s
AES CBC 256 bits 8000 bytes 1024 bytes Encryption Fast 393 848 12 187 Kbytes/s
AES CBC 256 bits 8000 bytes 2048 bytes Encryption Small 546 664 8780 Kbytes/s
AES CBC 256 bits 8000 bytes 2048 bytes Encryption Fast 393 880 12 186 Kbytes/s
AES CBC 128 bits 8000 bytes 128 bytes Decryption Small 600 112 7998 Kbytes/s
AES CBC 128 bits 8000 bytes 128 bytes Decryption Fast 354 552 13 538 Kbytes/s
AES CBC 128 bits 8000 bytes 512 bytes Decryption Small 583 712 8223 Kbytes/s
AES CBC 128 bits 8000 bytes 512 bytes Decryption Fast 337 624 14 216 Kbytes/s
AES CBC 128 bits 8000 bytes 1024 bytes Decryption Small 580 232 8272 Kbytes/s
AES CBC 128 bits 8000 bytes 1024 bytes Decryption Fast 333 976 14 372 Kbytes/s
AES CBC 128 bits 8000 bytes 2048 bytes Decryption Small 577 392 8313 Kbytes/s
AES CBC 128 bits 8000 bytes 2048 bytes Decryption Fast 330 760 14 512 Kbytes/s
AES CBC 192 bits 8000 bytes 128 bytes Decryption Small 696 344 6893 Kbytes/s
AES CBC 192 bits 8000 bytes 128 bytes Decryption Fast 397 576 12 073 Kbytes/s
AES CBC 192 bits 8000 bytes 512 bytes Decryption Small 679 816 7060 Kbytes/s
AES CBC 192 bits 8000 bytes 512 bytes Decryption Fast 380 576 12 612 Kbytes/s
AES CBC 192 bits 8000 bytes 1024 bytes Decryption Small 676 240 7098 Kbytes/s
AES CBC 192 bits 8000 bytes 1024 bytes Decryption Fast 376 768 12 739 Kbytes/s
AES CBC 192 bits 8000 bytes 2048 bytes Decryption Small 673 784 7123 Kbytes/s
AES CBC 192 bits 8000 bytes 2048 bytes Decryption Fast 373 848 12 839 Kbytes/s
AES CBC 256 bits 8000 bytes 128 bytes Decryption Small 792 080 6059 Kbytes/s
AES CBC 256 bits 8000 bytes 128 bytes Decryption Fast 441 184 10 879 Kbytes/s
AES CBC 256 bits 8000 bytes 512 bytes Decryption Small 775 624 6188 Kbytes/s
AES CBC 256 bits 8000 bytes 512 bytes Decryption Fast 424 032 11 319 Kbytes/s
AES CBC 256 bits 8000 bytes 1024 bytes Decryption Small 772 160 6216 Kbytes/s
AES CBC 256 bits 8000 bytes 1024 bytes Decryption Fast 420 312 11 420 Kbytes/s
AES CBC 256 bits 8000 bytes 2048 bytes Decryption Small 769 544 6237 Kbytes/s
AES CBC 256 bits 8000 bytes 2048 bytes Decryption Fast 417 560 11 495 Kbytes/s


The table below shows flash memory and RAM usage (in bytes).

Cipher operation Configuration Code Constant data Global data Stack usage
Encryption Small 2218 bytes 316 bytes 0 bytes 176 bytes
Encryption Fast 2162 bytes 1084 bytes 0 bytes 176 bytes
Decryption Small 2570 bytes 572 bytes 0 bytes 192 bytes
Decryption Fast 2520 bytes 2364 bytes 0 bytes 192 bytes


3.2.2. HASH digest

In this section we provide the performance results for HASH, using different modes of operation:

  • Sole buffer: one sole buffer is hashed. The performance time is given in us.
  • Data flow: a big message is hashed in chunks. The bit rate is given in bytes per second.

3.2.2.1. Sole buffer mode

In this mode, the entire message hashing process is managed through a single API call provided by the CMOX library.

The table below shows the number of clock cycles and time (in µs) needed to perform the described operation.

HASH mode Buffer size Cycles Time
SHA256 32 bytes 18 280 30 µs
SHA256 64 bytes 20 040 33 µs
SHA256 128 bytes 21 880 36 µs
SHA384 32 bytes 27 928 46 µs
SHA384 64 bytes 28 000 46 µs
SHA384 128 bytes 36 472 60 µs


The table below shows flash memory and RAM usage (in bytes).

HASH mode Code Constant data Global data Stack usage
SHA256 1358 280 bytes 0 bytes 532 bytes
SHA384 2550 728 bytes 0 bytes 1076 bytes


3.2.2.2. Data flow mode

In this mode, the operation is performed in several calls to the CMOX library APIs, as shown below:

  • cmox_hash_init
  • cmox_hash_append: called several times to hash the whole message in fixed-size chunks
  • cmox_hash_generateTag

The table below shows the number of clock cycles and the bit rate (in kilobytes per second) needed to perform the described operation.

HASH mode Message size Chunk size Cycles Bit rate
SHA256 8000 bytes 128 bytes 233 208 20 582 Kbytes/s
SHA256 8000 bytes 512 bytes 221 512 21 669 Kbytes/s
SHA256 8000 bytes 1024 bytes 219 248 21 893 Kbytes/s
SHA256 8000 bytes 2048 bytes 217 528 22 066 Kbytes/s
SHA384 8000 bytes 128 bytes 527 664 9096 Kbytes/s
SHA384 8000 bytes 512 bytes 509 888 9413 Kbytes/s
SHA384 8000 bytes 1024 bytes 506 432 9478 Kbytes/s
SHA384 8000 bytes 2048 bytes 504 080 9522 Kbytes/s


The table below shows the final tag generation done through the call to cmox_hash_generateTag.

HASH mode Cycles Time
SHA256 6016 10 µs
SHA384 13 384 22 µs

The table below shows flash memory and RAM usage (in bytes).

HASH mode Code Constant data Global data Stack usage
SHA256 1358 bytes 272 bytes 0 bytes 340 bytes
SHA384 2550 bytes 720 bytes 0 bytes 780 bytes


3.2.3. ECDSA signature and verification

This section provides the performance results for ECDSA signature and verification.

The table below shows the number of clock cycles and time (in ms) needed to perform the described operation in different configurations.

Curve Operation ECC mathematics configuration Curve definition Cycles Time
SECP256R1 Signature Small Low 2 181 536 3 ms
SECP256R1 Signature Small High 2 121 200 3 ms
SECP256R1 Signature SuperFast Low 1 633 224 2 ms
SECP256R1 Signature SuperFast High 1 261 656 2 ms
SECP256R1 Verification Small Low 5 178 360 8 ms
SECP256R1 Verification Small High 4 604 304 7 ms
SECP256R1 Verification SuperFast Low 3 395 264 5 ms
SECP256R1 Verification SuperFast High 2 754 632 4 ms
SECP384R1 Signature Small Low 6 081 528 10 ms
SECP384R1 Signature Small High 5 805 672 9 ms
SECP384R1 Signature Fast Low 4 963 816 8 ms
SECP384R1 Signature Fast High 4 684 664 7 ms
SECP384R1 Verification Small Low 14 419 120 24 ms
SECP384R1 Verification Small High 12 535 952 20 ms
SECP384R1 Verification Fast Low 11 846 128 19 ms
SECP384R1 Verification Fast High 10 127 568 16 ms


The table below shows ECDSA flash memory and RAM usage (in bytes).

Note
The footpring is measured using the general-purpose CMOX_ECC_XXX_HIGHMEM or CMOX_ECC_XXX_LOWMEM configuration, which shows the footprint increase compared with the V4.x.x. To reduce the footprint, the optimized confinguration CMOX_ECC_XXX_YYY_SIGN or CMOX_ECC_XXX_YYY_VERIFY is recommended.
Curve Operation ECC mathematics configuration Curve definition Code Constant data Global data Stack usage Working buffer
SECP256R1 Signature Small Low 13 440 bytes 1212 bytes 0 bytes 440 bytes 628 bytes
SECP256R1 Signature Small High 13 440 bytes 1596 bytes 0 bytes 440 bytes 696 bytes
SECP256R1 Signature SuperFast Low 14 750 bytes 1212 bytes 0 bytes 444 bytes 628 bytes
SECP256R1 Signature SuperFast High 14 750 bytes 1596 bytes 0 bytes 444 bytes 696 bytes
SECP256R1 Verification Small Low 13 428 bytes 1212 bytes 0 bytes 488 bytes 856 bytes
SECP256R1 Verification Small High 13 428 bytes 1596 bytes 0 bytes 488 bytes 1648 bytes
SECP256R1 Verification SuperFast Low 14 738 bytes 1212 bytes 0 bytes 492 bytes 856 bytes
SECP256R1 Verification SuperFast High 14 738 bytes 1596 bytes 0 bytes 492 bytes 1648 bytes
SECP384R1 Signature Small Low 13 440 bytes 1692 bytes 0 bytes 440 bytes 884 bytes
SECP384R1 Signature Small High 13 440 bytes 2268 bytes 0 bytes 440 bytes 984 bytes
SECP384R1 Signature Fast Low 13 810 bytes 1692 bytes 0 bytes 456 bytes 884 bytes
SECP384R1 Signature Fast High 13 810 bytes 2268 bytes 0 bytes 456 bytes 984 bytes
SECP384R1 Verification Small Low 13 428 bytes 1692 bytes 0 bytes 488 bytes 1192 bytes
SECP384R1 Verification Small High 13 428 bytes 2268 bytes 0 bytes 488 bytes 2272 bytes
SECP384R1 Verification Fast Low 13 798 bytes 1692 bytes 0 bytes 504 bytes 1192 bytes
SECP384R1 Verification Fast High 13 798 bytes 2268 bytes 0 bytes 504 bytes 2272 bytes


3.2.4. EdDSA signature and verification

This section provides the performance results for EdDSA signature and verification.

The table below shows the number of clock cycles and time (in ms) needed to perform the described operation in different configurations.

Curve Message size Operation ECC mathematics configuration Curve definition Cycles Time
Ed25519 1023 bytes Signature Small OptLow 3 261 840 5 ms
Ed25519 1023 bytes Signature Small OptHigh 1 917 888 3 ms
Ed25519 1023 bytes Signature SuperFast OptLow 2 157 008 3 ms
Ed25519 1023 bytes Signature SuperFast OptHigh 1 291 760 2 ms
Ed25519 1023 bytes Verification Small OptLow 4 938 800 8 ms
Ed25519 1023 bytes Verification Small OptHigh 4 337 760 7 ms
Ed25519 1023 bytes Verification SuperFast OptLow 3 102 840 5 ms
Ed25519 1023 bytes Verification SuperFast OptHigh 2 726 560 4 ms


The table below shows EdDSA flash memory and RAM usage (in bytes).

Note
The footpring is measured using the general-purpose CMOX_ECC_XXX_HIGHMEM or CMOX_ECC_XXX_LOWMEM configuration, which shows the footprint increase compared with the V4.x.x. To reduce the footprint, the optimized confinguration CMOX_ECC_XXX_YYY_SIGN or CMOX_ECC_XXX_YYY_VERIFY is recommended.
Curve Message size Operation ECC mathematics configuration Curve definition Code Constant data Global data Stack usage Working buffer
Ed25519 1023 bytes Signature Small OptLow 14 820 bytes 1748 bytes 0 bytes 1172 bytes 1672 bytes
Ed25519 1023 bytes Signature Small OptHigh 15 238 bytes 2900 bytes 0 bytes 1172 bytes 1672 bytes
Ed25519 1023 bytes Signature SuperFast OptLow 16 130 bytes 1748 bytes 0 bytes 1172 bytes 1672 bytes
Ed25519 1023 bytes Signature SuperFast OptHigh 16 548 bytes 2900 bytes 0 bytes 1172 bytes 1672 bytes
Ed25519 1023 bytes Verification Small OptLow 14 816 bytes 1748 bytes 0 bytes 1172 bytes 984 bytes
Ed25519 1023 bytes Verification Small OptHigh 15 234 bytes 2900 bytes 0 bytes 1172 bytes 1992 bytes
Ed25519 1023 bytes Verification SuperFast OptLow 16 126 bytes 1748 bytes 0 bytes 1172 bytes 984 bytes
Ed25519 1023 bytes Verification SuperFast OptHigh 16 544 bytes 2900 bytes 0 bytes 1172 bytes 1992 bytes


3.2.5. RSA signature and verification

This section provides the performance results for RSA signature and verification.

The table below shows the number of clock cycles and time (in ms) needed to perform the described operation in different configurations.

PKCS#1 Priv. key mod. exp. method Hash method Modulus size Operation RSA mathematics configuration Priv. key mod. exp. implementation Cycles Time
v2.2 CRT SHA-256 3K Signature Small Low 150 953 240 251 ms
v2.2 CRT SHA-256 3K Signature Small Mid 113 794 952 189 ms
v2.2 CRT SHA-256 3K Signature Small High 95 281 944 158 ms
v2.2 CRT SHA-256 3K Signature Fast Low 101 256 032 168 ms
v2.2 CRT SHA-256 3K Signature Fast Mid 76 469 216 127 ms
v2.2 CRT SHA-256 3K Signature Fast High 64 230 224 107 ms
v2.2 No CRT SHA-256 3K Signature Small Low 583 836 592 973 ms
v2.2 No CRT SHA-256 3K Signature Small Mid 438 791 448 731 ms
v2.2 No CRT SHA-256 3K Signature Small High 366 440 064 610 ms
v2.2 No CRT SHA-256 3K Signature Fast Low 377 746 720 629 ms
v2.2 No CRT SHA-256 3K Signature Fast Mid 284 184 456 473 ms
v2.2 No CRT SHA-256 3K Signature Fast High 237 732 920 396 ms
v2.2 n/a SHA-256 3K Verification Small n/a 2 687 336 4 ms
v2.2 n/a SHA-256 3K Verification Fast n/a 2 013 544 3 ms


The table below shows RSA flash memory and RAM usage (in bytes).

PKCS#1 Priv. key mod. exp. method Hash method Modulus size Operation RSA mathematics configuration Priv. key mod. exp. implementation Code Constant data Global data Stack usage Working buffer
v2.2 CRT SHA-256 3K Signature Small Low 6850 bytes 372 bytes 0 bytes 668 bytes 3704 bytes
v2.2 CRT SHA-256 3K Signature Small Mid 7088 bytes 372 bytes 0 bytes 668 bytes 4308 bytes
v2.2 CRT SHA-256 3K Signature Small High 7088 bytes 372 bytes 0 bytes 668 bytes 6708 bytes
v2.2 CRT SHA-256 3K Signature Fast Low 7220 bytes 372 bytes 0 bytes 668 bytes 3704 bytes
v2.2 CRT SHA-256 3K Signature Fast Mid 7458 bytes 372 bytes 0 bytes 668 bytes 4308 bytes
v2.2 CRT SHA-256 3K Signature Fast High 7458 bytes 372 bytes 0 bytes 668 bytes 6708 bytes
v2.2 No CRT SHA-256 3K Signature Small Low 5918 bytes 364 bytes 0 bytes 668 bytes 3484 bytes
v2.2 No CRT SHA-256 3K Signature Small Mid 6156 bytes 364 bytes 0 bytes 668 bytes 4664 bytes
v2.2 No CRT SHA-256 3K Signature Small High 6156 bytes 364 bytes 0 bytes 668 bytes 9368 bytes
v2.2 No CRT SHA-256 3K Signature Fast Low 6288 bytes 364 bytes 0 bytes 668 bytes 3484 bytes
v2.2 No CRT SHA-256 3K Signature Fast Mid 6526 bytes 364 bytes 0 bytes 668 bytes 4664 bytes
v2.2 No CRT SHA-256 3K Signature Fast High 6526 bytes 364 bytes 0 bytes 668 bytes 9368 bytes
v2.2 n/a SHA-256 3K Verification Small n/a 6102 bytes 368 bytes 0 bytes 684 bytes 3108 bytes
v2.2 n/a SHA-256 3K Verification Fast n/a 6472 bytes 368 bytes 0 bytes 684 bytes 3108 bytes