This page reports measured performance when using the pure software cryptographic library algorithms with an STM32L5 MCU. In addition to performance figures, the required code footprint and memory are also given.
1. Measurement configuration
1.1. Hardware configuration
STM32 MCU | STM32L552ZET6Q |
Device ID | 0x472 |
Revision ID | 0x2000 |
Board | NUCLEO-L552ZE-Q |
1.2. Firmware configuration
Cryptographic Library version | 040000B1[ver. 1] |
- ↑ This value corresponds to the information returned by a call to cmox_getInfos
1.3. System configuration
System Core Clock Frequency | 110 MHz |
Flash latency | 5 wait states |
Voltage scaling | Range 0 |
Dual bank | 0 (0: Single / 1: Dual) |
ICACHE peripheral | 1 (0: disabled / 1: enabled) |
1.4. Development toolchains and compilers
IAR Embedded Workbench | IAR ANSI C/C++ Compiler V8.50.4.261/W32 for ARM |
2. Performance values
2.1. AES symmetric key encryption & decryption
This section provides the performance results for AES-CBC using different modes of operation:
- Sole buffer: one sole buffer is encrypted or decrypted. Time to perform is given in µs.
- Data flow: a big message is encrypted or decrypted by chunk. 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 whole 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 | 5299 | 48 µs |
AES CBC | 128 bits | 32 bytes | Encryption | Fast | 4870 | 44 µs |
AES CBC | 128 bits | 64 bytes | Encryption | Small | 8692 | 79 µs |
AES CBC | 128 bits | 64 bytes | Encryption | Fast | 7466 | 67 µs |
AES CBC | 128 bits | 128 bytes | Encryption | Small | 15 483 | 140 µs |
AES CBC | 128 bits | 128 bytes | Encryption | Fast | 12 725 | 115 µs |
AES CBC | 192 bits | 32 bytes | Encryption | Small | 5922 | 53 µs |
AES CBC | 192 bits | 32 bytes | Encryption | Fast | 5221 | 47 µs |
AES CBC | 192 bits | 64 bytes | Encryption | Small | 9887 | 89 µs |
AES CBC | 192 bits | 64 bytes | Encryption | Fast | 8218 | 74 µs |
AES CBC | 192 bits | 128 bytes | Encryption | Small | 17 820 | 162 µs |
AES CBC | 192 bits | 128 bytes | Encryption | Fast | 14 277 | 129 µs |
AES CBC | 256 bits | 32 bytes | Encryption | Small | 6751 | 61 µs |
AES CBC | 256 bits | 32 bytes | Encryption | Fast | 6164 | 56 µs |
AES CBC | 256 bits | 64 bytes | Encryption | Small | 11 308 | 102 µs |
AES CBC | 256 bits | 64 bytes | Encryption | Fast | 9629 | 87 µs |
AES CBC | 256 bits | 128 bytes | Encryption | Small | 20 400 | 185 µs |
AES CBC | 256 bits | 128 bytes | Encryption | Fast | 16 467 | 149 µs |
AES CBC | 128 bits | 32 bytes | Decryption | Small | 8968 | 81 µs |
AES CBC | 128 bits | 32 bytes | Decryption | Fast | 6198 | 56 µs |
AES CBC | 128 bits | 64 bytes | Decryption | Small | 15 907 | 144 µs |
AES CBC | 128 bits | 64 bytes | Decryption | Fast | 8827 | 80 µs |
AES CBC | 128 bits | 128 bytes | Decryption | Small | 29 785 | 270 µs |
AES CBC | 128 bits | 128 bytes | Decryption | Fast | 14 122 | 128 µs |
AES CBC | 192 bits | 32 bytes | Decryption | Small | 10 428 | 94 µs |
AES CBC | 192 bits | 32 bytes | Decryption | Fast | 6919 | 62 µs |
AES CBC | 192 bits | 64 bytes | Decryption | Small | 18 739 | 170 µs |
AES CBC | 192 bits | 64 bytes | Decryption | Fast | 9986 | 90 µs |
AES CBC | 192 bits | 128 bytes | Decryption | Small | 35 345 | 321 µs |
AES CBC | 192 bits | 128 bytes | Decryption | Fast | 16 093 | 146 µs |
AES CBC | 256 bits | 32 bytes | Decryption | Small | 12 165 | 110 µs |
AES CBC | 256 bits | 32 bytes | Decryption | Fast | 7648 | 69 µs |
AES CBC | 256 bits | 64 bytes | Decryption | Small | 21 838 | 198 µs |
AES CBC | 256 bits | 64 bytes | Decryption | Fast | 11 082 | 100 µs |
AES CBC | 256 bits | 128 bytes | Decryption | Small | 41 185 | 374 µs |
AES CBC | 256 bits | 128 bytes | Decryption | Fast | 18 073 | 164 µs |
The table below shows Flash and RAM usage (in bytes).
Cipher operation | Configuration | Code | Constant data | Global data | Stack usage |
---|---|---|---|---|---|
Encryption | Small | 2960 bytes | 380 bytes | 1 bytes | 524 bytes |
Encryption | Fast | 3292 bytes | 1404 bytes | 1 bytes | 548 bytes |
Decryption | Small | 3056 bytes | 636 bytes | 1 bytes | 552 bytes |
Decryption | Fast | 3716 bytes | 1660 bytes | 1 bytes | 556 bytes |
2.1.2. Data flow mode
In this mode, operation is performed in several calls to the CMOX library APIs, as below:
- cmox_cipher_init
- cmox_cipher_setKey
- cmox_cipher_setIV
- cmox_cipher_append: called several times to encrypt or decrypt the whole message by chunk of fixed size
The table below shows the number of clock cycles and bit rate (in kilobytes per second) needed to perform described operation in small and in 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 | 859 280 | 1024 kbyte/s |
AES CBC | 128 bits | 8000 bytes | 128 bytes | Encryption | Fast | 669 184 | 1315 kbyte/s |
AES CBC | 128 bits | 8000 bytes | 512 bytes | Encryption | Small | 852 768 | 1031 kbyte/s |
AES CBC | 128 bits | 8000 bytes | 512 bytes | Encryption | Fast | 663 696 | 1325 kbyte/s |
AES CBC | 128 bits | 8000 bytes | 1024 bytes | Encryption | Small | 851 624 | 1033 kbyte/s |
AES CBC | 128 bits | 8000 bytes | 1024 bytes | Encryption | Fast | 662 616 | 1328 kbyte/s |
AES CBC | 128 bits | 8000 bytes | 2048 bytes | Encryption | Small | 851 056 | 1034 kbyte/s |
AES CBC | 128 bits | 8000 bytes | 2048 bytes | Encryption | Fast | 662 112 | 1329 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 128 bytes | Encryption | Small | 1 004 288 | 876 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 128 bytes | Encryption | Fast | 769 432 | 1143 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 512 bytes | Encryption | Small | 997 784 | 881 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 512 bytes | Encryption | Fast | 764 032 | 1151 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 1024 bytes | Encryption | Small | 996 632 | 882 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 1024 bytes | Encryption | Fast | 763 008 | 1153 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 2048 bytes | Encryption | Small | 996 064 | 883 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 2048 bytes | Encryption | Fast | 762 504 | 1154 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 128 bytes | Encryption | Small | 1 149 240 | 765 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 128 bytes | Encryption | Fast | 869 920 | 1011 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 512 bytes | Encryption | Small | 1 142 736 | 770 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 512 bytes | Encryption | Fast | 864 416 | 1018 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 1024 bytes | Encryption | Small | 1 141 592 | 770 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 1024 bytes | Encryption | Fast | 863 400 | 1019 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 2048 bytes | Encryption | Small | 1 141 008 | 771 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 2048 bytes | Encryption | Fast | 862 904 | 1019 kbyte/s |
AES CBC | 128 bits | 8000 bytes | 128 bytes | Decryption | Small | 1 765 960 | 498 kbyte/s |
AES CBC | 128 bits | 8000 bytes | 128 bytes | Decryption | Fast | 703 032 | 1251 kbyte/s |
AES CBC | 128 bits | 8000 bytes | 512 bytes | Decryption | Small | 1 758 240 | 500 kbyte/s |
AES CBC | 128 bits | 8000 bytes | 512 bytes | Decryption | Fast | 689 304 | 1276 kbyte/s |
AES CBC | 128 bits | 8000 bytes | 1024 bytes | Decryption | Small | 1 755 760 | 501 kbyte/s |
AES CBC | 128 bits | 8000 bytes | 1024 bytes | Decryption | Fast | 685 704 | 1283 kbyte/s |
AES CBC | 128 bits | 8000 bytes | 2048 bytes | Decryption | Small | 1 752 592 | 502 kbyte/s |
AES CBC | 128 bits | 8000 bytes | 2048 bytes | Decryption | Fast | 681 856 | 1290 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 128 bytes | Decryption | Small | 2 107 136 | 417 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 128 bytes | Decryption | Fast | 804 624 | 1093 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 512 bytes | Decryption | Small | 2 099 456 | 419 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 512 bytes | Decryption | Fast | 790 792 | 1112 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 1024 bytes | Decryption | Small | 2 096 880 | 419 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 1024 bytes | Decryption | Fast | 787 216 | 1117 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 2048 bytes | Decryption | Small | 2 093 720 | 420 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 2048 bytes | Decryption | Fast | 783 304 | 1123 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 128 bytes | Decryption | Small | 2 447 976 | 359 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 128 bytes | Decryption | Fast | 907 496 | 969 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 512 bytes | Decryption | Small | 2 440 272 | 360 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 512 bytes | Decryption | Fast | 892 664 | 985 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 1024 bytes | Decryption | Small | 2 437 816 | 360 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 1024 bytes | Decryption | Fast | 888 864 | 990 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 2048 bytes | Decryption | Small | 2 434 672 | 361 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 2048 bytes | Decryption | Fast | 884 960 | 994 kbyte/s |
The table below shows Flash and RAM usage (in bytes).
Cipher operation | Configuration | Code | Constant data | Global data | Stack usage |
---|---|---|---|---|---|
Encryption | Small | 2852 bytes | 372 bytes | 1 bytes | 140 bytes |
Encryption | Fast | 3184 bytes | 1396 bytes | 1 bytes | 172 bytes |
Decryption | Small | 2948 bytes | 628 bytes | 1 bytes | 176 bytes |
Decryption | Fast | 3608 bytes | 1652 bytes | 1 bytes | 180 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. Time to perform is given in us.
- Data flow: a big message is hashed by chunk. Bit rate is given in bytes per s.
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 described operation.
HASH mode | Buffer size | Cycles | Time |
---|---|---|---|
SHA256 | 32 bytes | 5337 | 48 µs |
SHA256 | 64 bytes | 8507 | 77 µs |
SHA256 | 128 bytes | 11 413 | 103 µs |
SHA384 | 32 bytes | 16 969 | 154 µs |
SHA384 | 64 bytes | 17 165 | 156 µs |
SHA384 | 128 bytes | 30 803 | 280 µs |
The table below shows Flash and RAM usage (in bytes).
HASH mode | Code | Constant data | Global data | Stack usage |
---|---|---|---|---|
SHA256 | 1780 | 296 bytes | 1 bytes | 564 bytes |
SHA384 | 3012 | 744 bytes | 1 bytes | 1124 bytes |
2.2.2. Data flow mode
In this mode, operation is performed in several calls to the CMOX library APIs, as below:
- cmox_hash_init
- cmox_hash_append: called several times to hash the whole message by chunk of fixed size
- cmox_hash_generateTag
The table below shows the number of clock cycles and bit rate (in kilobytes per second) needed to perform described operation.
HASH mode | Message size | Chunk size | Cycles | Bit rate |
---|---|---|---|---|
SHA256 | 8000 bytes | 128 bytes | 402 655 | 2185 kbyte/s |
SHA256 | 8000 bytes | 512 bytes | 378 001 | 2328 kbyte/s |
SHA256 | 8000 bytes | 1024 bytes | 373 926 | 2353 kbyte/s |
SHA256 | 8000 bytes | 2048 bytes | 371 867 | 2366 kbyte/s |
SHA384 | 8000 bytes | 128 bytes | 881 240 | 998 kbyte/s |
SHA384 | 8000 bytes | 512 bytes | 840 224 | 1047 kbyte/s |
SHA384 | 8000 bytes | 1024 bytes | 833 191 | 1056 kbyte/s |
SHA384 | 8000 bytes | 2048 bytes | 829 645 | 1060 kbyte/s |
The table below shows final tag generation done through the call to cmox_hash_generateTag.
HASH mode | Cycles | Time |
---|---|---|
SHA256 | 4370 | 39 µs |
SHA384 | 15 552 | 141 µs |
The table below shows Flash and RAM usage (in bytes).
HASH mode | Code | Constant data | Global data | Stack usage |
---|---|---|---|---|
SHA256 | 1788 bytes | 288 bytes | 1 bytes | 372 bytes |
SHA384 | 3020 bytes | 736 bytes | 1 bytes | 828 bytes |
2.3. ECDSA signature & verification
In this section we provide the performance results for ECDSA signature & verification.
The table below shows the number of clock cycles and time (in ms) needed to perform described operation in different configurations.
Curve | Operation | ECC mathematics configuration | Curve definition | Cycles | Time |
---|---|---|---|---|---|
SECP256R1 | Signature | Small | Low | 2 924 624 | 26 ms |
SECP256R1 | Signature | Small | High | 2 833 152 | 25 ms |
SECP256R1 | Signature | SuperFast | Low | 1 914 056 | 17 ms |
SECP256R1 | Signature | SuperFast | High | 1 856 016 | 16 ms |
SECP256R1 | Verification | Small | Low | 7 008 992 | 63 ms |
SECP256R1 | Verification | Small | High | 6 237 136 | 56 ms |
SECP256R1 | Verification | SuperFast | Low | 4 680 328 | 42 ms |
SECP256R1 | Verification | SuperFast | High | 4 119 384 | 37 ms |
SECP384R1 | Signature | Small | Low | 8 249 576 | 74 ms |
SECP384R1 | Signature | Small | High | 7 884 680 | 71 ms |
SECP384R1 | Signature | Fast | Low | 7 034 360 | 63 ms |
SECP384R1 | Signature | Fast | High | 6 713 312 | 61 ms |
SECP384R1 | Verification | Small | Low | 19 730 496 | 179 ms |
SECP384R1 | Verification | Small | High | 17 141 648 | 155 ms |
SECP384R1 | Verification | Fast | Low | 17 015 888 | 154 ms |
SECP384R1 | Verification | Fast | High | 14 637 488 | 133 ms |
The table below shows ECDSA Flash and RAM usage (in bytes).
Curve | Operation | ECC mathematics configuration | Curve definition | Code | Constant data | Global data | Stack usage | Working buffer |
---|---|---|---|---|---|---|---|---|
SECP256R1 | Signature | Small | Low | 11 636 bytes | 1184 bytes | 1 bytes | 328 bytes | 628 bytes |
SECP256R1 | Signature | Small | High | 11 636 bytes | 1568 bytes | 1 bytes | 328 bytes | 696 bytes |
SECP256R1 | Signature | SuperFast | Low | 12 946 bytes | 1184 bytes | 1 bytes | 332 bytes | 628 bytes |
SECP256R1 | Signature | SuperFast | High | 12 946 bytes | 1568 bytes | 1 bytes | 332 bytes | 696 bytes |
SECP256R1 | Verification | Small | Low | 12 158 bytes | 1200 bytes | 1 bytes | 424 bytes | 856 bytes |
SECP256R1 | Verification | Small | High | 12 158 bytes | 1584 bytes | 1 bytes | 424 bytes | 1648 bytes |
SECP256R1 | Verification | SuperFast | Low | 13 468 bytes | 1200 bytes | 1 bytes | 428 bytes | 856 bytes |
SECP256R1 | Verification | SuperFast | High | 13 468 bytes | 1584 bytes | 1 bytes | 428 bytes | 1648 bytes |
SECP384R1 | Signature | Small | Low | 11 636 bytes | 1664 bytes | 1 bytes | 328 bytes | 884 bytes |
SECP384R1 | Signature | Small | High | 11 636 bytes | 2240 bytes | 1 bytes | 328 bytes | 984 bytes |
SECP384R1 | Signature | Fast | Low | 12 006 bytes | 1664 bytes | 1 bytes | 344 bytes | 884 bytes |
SECP384R1 | Signature | Fast | High | 12 006 bytes | 2240 bytes | 1 bytes | 344 bytes | 984 bytes |
SECP384R1 | Verification | Small | Low | 12 158 bytes | 1680 bytes | 1 bytes | 424 bytes | 1192 bytes |
SECP384R1 | Verification | Small | High | 12 158 bytes | 2256 bytes | 1 bytes | 424 bytes | 2272 bytes |
SECP384R1 | Verification | Fast | Low | 12 528 bytes | 1680 bytes | 1 bytes | 440 bytes | 1192 bytes |
SECP384R1 | Verification | Fast | High | 12 528 bytes | 2256 bytes | 1 bytes | 440 bytes | 2272 bytes |
2.4. EdDSA signature & verification
In this section we provide the performance results for EdDSA signature & verification.
The table below shows the number of clock cycles and time (in ms) needed to perform described operation in different configurations.
Curve | Message size | Operation | ECC mathematics configuration | Curve definition | Cycles | Time |
---|---|---|---|---|---|---|
Ed25519 | 1023 bytes | Signature | Small | OptLow | 4 511 896 | 41 ms |
Ed25519 | 1023 bytes | Signature | Small | OptHigh | 2 632 648 | 23 ms |
Ed25519 | 1023 bytes | Signature | SuperFast | OptLow | 3 242 920 | 29 ms |
Ed25519 | 1023 bytes | Signature | SuperFast | OptHigh | 1 919 992 | 17 ms |
Ed25519 | 1023 bytes | Verification | Small | OptLow | 6 792 304 | 61 ms |
Ed25519 | 1023 bytes | Verification | Small | OptHigh | 5 958 792 | 54 ms |
Ed25519 | 1023 bytes | Verification | SuperFast | OptLow | 4 654 664 | 42 ms |
Ed25519 | 1023 bytes | Verification | SuperFast | OptHigh | 4 072 960 | 37 ms |
The table below shows EdDSA Flash and RAM usage (in bytes).
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 100 bytes | 1744 bytes | 1 bytes | 1236 bytes | 1388 bytes |
Ed25519 | 1023 bytes | Signature | Small | OptHigh | 14 506 bytes | 2896 bytes | 1 bytes | 1236 bytes | 1388 bytes |
Ed25519 | 1023 bytes | Signature | SuperFast | OptLow | 15 410 bytes | 1744 bytes | 1 bytes | 1236 bytes | 1388 bytes |
Ed25519 | 1023 bytes | Signature | SuperFast | OptHigh | 15 816 bytes | 2896 bytes | 1 bytes | 1236 bytes | 1388 bytes |
Ed25519 | 1023 bytes | Verification | Small | OptLow | 14 186 bytes | 1748 bytes | 1 bytes | 1244 bytes | 1152 bytes |
Ed25519 | 1023 bytes | Verification | Small | OptHigh | 14 592 bytes | 2900 bytes | 1 bytes | 1244 bytes | 1992 bytes |
Ed25519 | 1023 bytes | Verification | SuperFast | OptLow | 15 496 bytes | 1748 bytes | 1 bytes | 1244 bytes | 1152 bytes |
Ed25519 | 1023 bytes | Verification | SuperFast | OptHigh | 15 902 bytes | 2900 bytes | 1 bytes | 1244 bytes | 1992 bytes |
2.5. RSA signature & verification
In this section we provide the performance results for RSA signature & verification.
The table below shows the number of clock cycles and time (in ms) needed to perform 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 | 198 353 328 | 1803 ms |
v2.2 | CRT | SHA-256 | 3K | Signature | Small | Mid | 149 293 056 | 1357 ms |
v2.2 | CRT | SHA-256 | 3K | Signature | Small | High | 125 370 232 | 1139 ms |
v2.2 | CRT | SHA-256 | 3K | Signature | Fast | Low | 158 894 368 | 1444 ms |
v2.2 | CRT | SHA-256 | 3K | Signature | Fast | Mid | 119 683 376 | 1088 ms |
v2.2 | CRT | SHA-256 | 3K | Signature | Fast | High | 100 074 160 | 909 ms |
v2.2 | No CRT | SHA-256 | 3K | Signature | Small | Low | 763 443 336 | 6940 ms |
v2.2 | No CRT | SHA-256 | 3K | Signature | Small | Mid | 573 386 688 | 5212 ms |
v2.2 | No CRT | SHA-256 | 3K | Signature | Small | High | 479 617 744 | 4360 ms |
v2.2 | No CRT | SHA-256 | 3K | Signature | Fast | Low | 606 866 800 | 5516 ms |
v2.2 | No CRT | SHA-256 | 3K | Signature | Fast | Mid | 455 903 856 | 4144 ms |
v2.2 | No CRT | SHA-256 | 3K | Signature | Fast | High | 380 471 192 | 3458 ms |
v2.2 | n/a | SHA-256 | 3K | Verification | Small | n/a | 3 813 464 | 34 ms |
v2.2 | n/a | SHA-256 | 3K | Verification | Fast | n/a | 3 286 840 | 29 ms |
The table below shows RSA Flash 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 | 6986 bytes | 371 bytes | 5 bytes | 700 bytes | 3704 bytes |
v2.2 | CRT | SHA-256 | 3K | Signature | Small | Mid | 7234 bytes | 371 bytes | 5 bytes | 700 bytes | 4308 bytes |
v2.2 | CRT | SHA-256 | 3K | Signature | Small | High | 7234 bytes | 371 bytes | 5 bytes | 700 bytes | 6708 bytes |
v2.2 | CRT | SHA-256 | 3K | Signature | Fast | Low | 7356 bytes | 371 bytes | 5 bytes | 700 bytes | 3704 bytes |
v2.2 | CRT | SHA-256 | 3K | Signature | Fast | Mid | 7604 bytes | 371 bytes | 5 bytes | 700 bytes | 4308 bytes |
v2.2 | CRT | SHA-256 | 3K | Signature | Fast | High | 7604 bytes | 371 bytes | 5 bytes | 700 bytes | 6708 bytes |
v2.2 | No CRT | SHA-256 | 3K | Signature | Small | Low | 6016 bytes | 363 bytes | 5 bytes | 700 bytes | 3484 bytes |
v2.2 | No CRT | SHA-256 | 3K | Signature | Small | Mid | 6264 bytes | 363 bytes | 5 bytes | 700 bytes | 4664 bytes |
v2.2 | No CRT | SHA-256 | 3K | Signature | Small | High | 6264 bytes | 363 bytes | 5 bytes | 700 bytes | 9368 bytes |
v2.2 | No CRT | SHA-256 | 3K | Signature | Fast | Low | 6386 bytes | 363 bytes | 5 bytes | 700 bytes | 3484 bytes |
v2.2 | No CRT | SHA-256 | 3K | Signature | Fast | Mid | 6634 bytes | 363 bytes | 5 bytes | 700 bytes | 4664 bytes |
v2.2 | No CRT | SHA-256 | 3K | Signature | Fast | High | 6634 bytes | 363 bytes | 5 bytes | 700 bytes | 9368 bytes |
v2.2 | n/a | SHA-256 | 3K | Verification | Small | n/a | 6762 bytes | 367 bytes | 5 bytes | 716 bytes | 3108 bytes |
v2.2 | n/a | SHA-256 | 3K | Verification | Fast | n/a | 7132 bytes | 367 bytes | 5 bytes | 716 bytes | 3108 bytes |