This page shows the measured performance results when using the pure software cryptographic library algorithms with an STM32U0 MCU. In addition to performance figures, it also gives the required code footprint and memory.
1. Measurement configuration
1.1. Hardware configuration
STM32 MCU | STM32U083RCTx |
Device ID | 0x489 |
Revision ID | 0x1000 |
Board | NUCLEO-U083RC |
1.2. Firmware configuration
Cryptographic library version | 040000B1[ver. 1] |
- ↑ This value corresponds to the information returned by calling
cmox_getInfos
1.3. System configuration
System core clock frequency | 56 MHz |
Flash latency | 1 wait state |
Voltage scaling | Range 1 |
Instruction cache (ART/ICU) | 1 (0: disabled/1: enabled) |
Prefetch cache (ART) | 1 (0: disabled/1: enabled) |
1.4. Development toolchains and compilers
IAR Embedded Workbench | IAR ANSI C/C++ Compiler V9.20.4.327/W64 for ARM |
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 | 8928 | 159 µs |
AES CBC | 128 bits | 32 bytes | Encryption | Fast | 7694 | 137 µs |
AES CBC | 128 bits | 64 bytes | Encryption | Small | 15 240 | 272 µs |
AES CBC | 128 bits | 64 bytes | Encryption | Fast | 12 758 | 227 µs |
AES CBC | 128 bits | 128 bytes | Encryption | Small | 27 864 | 497 µs |
AES CBC | 128 bits | 128 bytes | Encryption | Fast | 22 886 | 408 µs |
AES CBC | 192 bits | 32 bytes | Encryption | Small | 10 094 | 180 µs |
AES CBC | 192 bits | 32 bytes | Encryption | Fast | 8565 | 152 µs |
AES CBC | 192 bits | 64 bytes | Encryption | Small | 17 545 | 313 µs |
AES CBC | 192 bits | 64 bytes | Encryption | Fast | 14 473 | 258 µs |
AES CBC | 192 bits | 128 bytes | Encryption | Small | 32 449 | 579 µs |
AES CBC | 192 bits | 128 bytes | Encryption | Fast | 26 293 | 469 µs |
AES CBC | 256 bits | 32 bytes | Encryption | Small | 11 614 | 207 µs |
AES CBC | 256 bits | 32 bytes | Encryption | Fast | 9779 | 174 µs |
AES CBC | 256 bits | 64 bytes | Encryption | Small | 20 206 | 360 µs |
AES CBC | 256 bits | 64 bytes | Encryption | Fast | 16 529 | 295 µs |
AES CBC | 256 bits | 128 bytes | Encryption | Small | 37 390 | 667 µs |
AES CBC | 256 bits | 128 bytes | Encryption | Fast | 30 032 | 536 µs |
AES CBC | 128 bits | 32 bytes | Decryption | Small | 12 731 | 227 µs |
AES CBC | 128 bits | 32 bytes | Decryption | Fast | 9620 | 171 µs |
AES CBC | 128 bits | 64 bytes | Decryption | Small | 22 843 | 407 µs |
AES CBC | 128 bits | 64 bytes | Decryption | Fast | 14 804 | 264 µs |
AES CBC | 128 bits | 128 bytes | Decryption | Small | 43 067 | 769 µs |
AES CBC | 128 bits | 128 bytes | Decryption | Fast | 25 172 | 449 µs |
AES CBC | 192 bits | 32 bytes | Decryption | Small | 14 733 | 263 µs |
AES CBC | 192 bits | 32 bytes | Decryption | Fast | 10 891 | 194 µs |
AES CBC | 192 bits | 64 bytes | Decryption | Small | 26 821 | 478 µs |
AES CBC | 192 bits | 64 bytes | Decryption | Fast | 16 925 | 302 µs |
AES CBC | 192 bits | 128 bytes | Decryption | Small | 50 997 | 910 µs |
AES CBC | 192 bits | 128 bytes | Decryption | Fast | 28 990 | 517 µs |
AES CBC | 256 bits | 32 bytes | Decryption | Small | 17 087 | 305 µs |
AES CBC | 256 bits | 32 bytes | Decryption | Fast | 12 523 | 223 µs |
AES CBC | 256 bits | 64 bytes | Decryption | Small | 31 151 | 556 µs |
AES CBC | 256 bits | 64 bytes | Decryption | Fast | 19 434 | 347 µs |
AES CBC | 256 bits | 128 bytes | Decryption | Small | 59 279 | 1058 µs |
AES CBC | 256 bits | 128 bytes | Decryption | Fast | 33 257 | 593 µs |
The table below shows flash memory and RAM usage (in bytes).
Cipher operation | Configuration | Code | Constant data | Global data | Stack usage |
---|---|---|---|---|---|
Encryption | Small | 3028 bytes | 380 bytes | 1 byte | 536 bytes |
Encryption | Fast | 3276 bytes | 1404 bytes | 1 byte | 540 bytes |
Decryption | Small | 3104 bytes | 636 bytes | 1 byte | 584 bytes |
Decryption | Fast | 3696 bytes | 1660 bytes | 1 byte | 560 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 | 1 589 432 | 281 Kbytes/s |
AES CBC | 128 bits | 8000 bytes | 128 bytes | Encryption | Fast | 1 277 632 | 350 Kbytes/s |
AES CBC | 128 bits | 8000 bytes | 512 bytes | Encryption | Small | 1 580 920 | 283 Kbytes/s |
AES CBC | 128 bits | 8000 bytes | 512 bytes | Encryption | Fast | 1 268 896 | 353 Kbytes/s |
AES CBC | 128 bits | 8000 bytes | 1024 bytes | Encryption | Small | 1 579 464 | 283 Kbytes/s |
AES CBC | 128 bits | 8000 bytes | 1024 bytes | Encryption | Fast | 1 267 336 | 353 Kbytes/s |
AES CBC | 128 bits | 8000 bytes | 2048 bytes | Encryption | Small | 1 578 752 | 283 Kbytes/s |
AES CBC | 128 bits | 8000 bytes | 2048 bytes | Encryption | Fast | 1 266 608 | 353 Kbytes/s |
AES CBC | 192 bits | 8000 bytes | 128 bytes | Encryption | Small | 1 874 312 | 239 Kbytes/s |
AES CBC | 192 bits | 8000 bytes | 128 bytes | Encryption | Fast | 1 488 584 | 300 Kbytes/s |
AES CBC | 192 bits | 8000 bytes | 512 bytes | Encryption | Small | 1 865 896 | 240 Kbytes/s |
AES CBC | 192 bits | 8000 bytes | 512 bytes | Encryption | Fast | 1 479 968 | 302 Kbytes/s |
AES CBC | 192 bits | 8000 bytes | 1024 bytes | Encryption | Small | 1 864 464 | 240 Kbytes/s |
AES CBC | 192 bits | 8000 bytes | 1024 bytes | Encryption | Fast | 1 478 512 | 303 Kbytes/s |
AES CBC | 192 bits | 8000 bytes | 2048 bytes | Encryption | Small | 1 863 744 | 240 Kbytes/s |
AES CBC | 192 bits | 8000 bytes | 2048 bytes | Encryption | Fast | 1 477 776 | 303 Kbytes/s |
AES CBC | 256 bits | 8000 bytes | 128 bytes | Encryption | Small | 2 159 248 | 207 Kbytes/s |
AES CBC | 256 bits | 8000 bytes | 128 bytes | Encryption | Fast | 1 699 448 | 263 Kbytes/s |
AES CBC | 256 bits | 8000 bytes | 512 bytes | Encryption | Small | 2 150 880 | 208 Kbytes/s |
AES CBC | 256 bits | 8000 bytes | 512 bytes | Encryption | Fast | 1 690 832 | 264 Kbytes/s |
AES CBC | 256 bits | 8000 bytes | 1024 bytes | Encryption | Small | 2 149 456 | 208 Kbytes/s |
AES CBC | 256 bits | 8000 bytes | 1024 bytes | Encryption | Fast | 1 689 400 | 265 Kbytes/s |
AES CBC | 256 bits | 8000 bytes | 2048 bytes | Encryption | Small | 2 148 752 | 208 Kbytes/s |
AES CBC | 256 bits | 8000 bytes | 2048 bytes | Encryption | Fast | 1 688 688 | 265 Kbytes/s |
AES CBC | 128 bits | 8000 bytes | 128 bytes | Decryption | Small | 2 561 368 | 174 Kbytes/s |
AES CBC | 128 bits | 8000 bytes | 128 bytes | Decryption | Fast | 1 329 928 | 336 Kbytes/s |
AES CBC | 128 bits | 8000 bytes | 512 bytes | Decryption | Small | 2 550 656 | 175 Kbytes/s |
AES CBC | 128 bits | 8000 bytes | 512 bytes | Decryption | Fast | 1 318 008 | 339 Kbytes/s |
AES CBC | 128 bits | 8000 bytes | 1024 bytes | Decryption | Small | 2 547 656 | 175 Kbytes/s |
AES CBC | 128 bits | 8000 bytes | 1024 bytes | Decryption | Fast | 1 314 848 | 340 Kbytes/s |
AES CBC | 128 bits | 8000 bytes | 2048 bytes | Decryption | Small | 2 544 240 | 176 Kbytes/s |
AES CBC | 128 bits | 8000 bytes | 2048 bytes | Decryption | Fast | 1 312 200 | 341 Kbytes/s |
AES CBC | 192 bits | 8000 bytes | 128 bytes | Decryption | Small | 3 055 272 | 146 Kbytes/s |
AES CBC | 192 bits | 8000 bytes | 128 bytes | Decryption | Fast | 1 542 512 | 290 Kbytes/s |
AES CBC | 192 bits | 8000 bytes | 512 bytes | Decryption | Small | 3 044 624 | 147 Kbytes/s |
AES CBC | 192 bits | 8000 bytes | 512 bytes | Decryption | Fast | 1 531 312 | 292 Kbytes/s |
AES CBC | 192 bits | 8000 bytes | 1024 bytes | Decryption | Small | 3 041 640 | 147 Kbytes/s |
AES CBC | 192 bits | 8000 bytes | 1024 bytes | Decryption | Fast | 1 528 416 | 293 Kbytes/s |
AES CBC | 192 bits | 8000 bytes | 2048 bytes | Decryption | Small | 3 038 232 | 147 Kbytes/s |
AES CBC | 192 bits | 8000 bytes | 2048 bytes | Decryption | Fast | 1 525 536 | 293 Kbytes/s |
AES CBC | 256 bits | 8000 bytes | 128 bytes | Decryption | Small | 3 549 592 | 126 Kbytes/s |
AES CBC | 256 bits | 8000 bytes | 128 bytes | Decryption | Fast | 1 761 832 | 254 Kbytes/s |
AES CBC | 256 bits | 8000 bytes | 512 bytes | Decryption | Small | 3 538 704 | 126 Kbytes/s |
AES CBC | 256 bits | 8000 bytes | 512 bytes | Decryption | Fast | 1 750 408 | 255 Kbytes/s |
AES CBC | 256 bits | 8000 bytes | 1024 bytes | Decryption | Small | 3 535 680 | 126 Kbytes/s |
AES CBC | 256 bits | 8000 bytes | 1024 bytes | Decryption | Fast | 1 747 312 | 256 Kbytes/s |
AES CBC | 256 bits | 8000 bytes | 2048 bytes | Decryption | Small | 3 532 248 | 126 Kbytes/s |
AES CBC | 256 bits | 8000 bytes | 2048 bytes | Decryption | Fast | 1 743 880 | 256 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 | 2950 bytes | 372 bytes | 1 byte | 152 bytes |
Encryption | Fast | 3198 bytes | 1396 bytes | 1 byte | 164 bytes |
Decryption | Small | 3022 bytes | 628 bytes | 1 byte | 208 bytes |
Decryption | Fast | 3614 bytes | 1652 bytes | 1 byte | 184 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 | 10 406 | 185 µs |
SHA256 | 64 bytes | 18 339 | 327 µs |
SHA256 | 128 bytes | 26 198 | 467 µs |
SHA384 | 32 bytes | 37 626 | 671 µs |
SHA384 | 64 bytes | 37 640 | 672 µs |
SHA384 | 128 bytes | 71 588 | 1278 µs |
The table below shows flash memory and RAM usage (in bytes).
HASH mode | Code | Constant data | Global data | Stack usage |
---|---|---|---|---|
SHA256 | 1846 | 296 bytes | 1 byte | 580 bytes |
SHA384 | 3158 | 744 bytes | 1 byte | 1132 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 chunkscmox_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 | 997 920 | 448 Kbytes/s |
SHA256 | 8000 bytes | 512 bytes | 986 076 | 454 Kbytes/s |
SHA256 | 8000 bytes | 1024 bytes | 984 060 | 455 Kbytes/s |
SHA256 | 8000 bytes | 2048 bytes | 983 052 | 455 Kbytes/s |
SHA384 | 8000 bytes | 128 bytes | 2 117 500 | 211 Kbytes/s |
SHA384 | 8000 bytes | 512 bytes | 2 103 391 | 212 Kbytes/s |
SHA384 | 8000 bytes | 1024 bytes | 2 100 967 | 213 Kbytes/s |
SHA384 | 8000 bytes | 2048 bytes | 2 099 755 | 213 Kbytes/s |
The table below shows the final tag generation done through the call to cmox_hash_generateTag
.
HASH mode | Cycles | Time |
---|---|---|
SHA256 | 9753 | 174 µs |
SHA384 | 36 922 | 659 µs |
The table below shows flash memory and RAM usage (in bytes).
HASH mode | Code | Constant data | Global data | Stack usage |
---|---|---|---|---|
SHA256 | 1874 bytes | 288 bytes | 1 byte | 380 bytes |
SHA384 | 3186 bytes | 736 bytes | 1 byte | 828 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 | 11 075 896 | 197 ms |
SECP256R1 | Signature | Small | High | 10 749 392 | 191 ms |
SECP256R1 | Signature | SuperFast | Low | 8 433 960 | 150 ms |
SECP256R1 | Signature | SuperFast | High | 8 178 104 | 146 ms |
SECP256R1 | Verification | Small | Low | 26 233 784 | 468 ms |
SECP256R1 | Verification | Small | High | 23 303 112 | 416 ms |
SECP256R1 | Verification | SuperFast | Low | 20 205 624 | 360 ms |
SECP256R1 | Verification | SuperFast | High | 17 913 424 | 319 ms |
SECP384R1 | Signature | Small | Low | 34 925 656 | 623 ms |
SECP384R1 | Signature | Small | High | 33 386 776 | 596 ms |
SECP384R1 | Signature | Fast | Low | 30 190 104 | 539 ms |
SECP384R1 | Signature | Fast | High | 28 783 704 | 513 ms |
SECP384R1 | Verification | Small | Low | 82 503 576 | 1473 ms |
SECP384R1 | Verification | Small | High | 71 798 080 | 1282 ms |
SECP384R1 | Verification | Fast | Low | 71 905 328 | 1284 ms |
SECP384R1 | Verification | Fast | High | 62 344 352 | 1113 ms |
The table below shows ECDSA flash memory 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 900 bytes | 1184 bytes | 1 byte | 320 bytes | 628 bytes |
SECP256R1 | Signature | Small | High | 11 900 bytes | 1568 bytes | 1 byte | 320 bytes | 696 bytes |
SECP256R1 | Signature | SuperFast | Low | 15 240 bytes | 1184 bytes | 1 byte | 368 bytes | 628 bytes |
SECP256R1 | Signature | SuperFast | High | 15 240 bytes | 1568 bytes | 1 byte | 368 bytes | 696 bytes |
SECP256R1 | Verification | Small | Low | 12 370 bytes | 1200 bytes | 1 byte | 408 bytes | 856 bytes |
SECP256R1 | Verification | Small | High | 12 370 bytes | 1584 bytes | 1 byte | 408 bytes | 1648 bytes |
SECP256R1 | Verification | SuperFast | Low | 15 710 bytes | 1200 bytes | 1 byte | 456 bytes | 856 bytes |
SECP256R1 | Verification | SuperFast | High | 15 710 bytes | 1584 bytes | 1 byte | 456 bytes | 1648 bytes |
SECP384R1 | Signature | Small | Low | 11 900 bytes | 1664 bytes | 1 byte | 320 bytes | 884 bytes |
SECP384R1 | Signature | Small | High | 11 900 bytes | 2240 bytes | 1 byte | 320 bytes | 984 bytes |
SECP384R1 | Signature | Fast | Low | 12 738 bytes | 1664 bytes | 1 byte | 312 bytes | 884 bytes |
SECP384R1 | Signature | Fast | High | 12 738 bytes | 2240 bytes | 1 byte | 312 bytes | 984 bytes |
SECP384R1 | Verification | Small | Low | 12 370 bytes | 1680 bytes | 1 byte | 408 bytes | 1192 bytes |
SECP384R1 | Verification | Small | High | 12 370 bytes | 2256 bytes | 1 byte | 408 bytes | 2272 bytes |
SECP384R1 | Verification | Fast | Low | 13 208 bytes | 1680 bytes | 1 byte | 400 bytes | 1192 bytes |
SECP384R1 | Verification | Fast | High | 13 208 bytes | 2256 bytes | 1 byte | 400 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 | 15 768 800 | 281 ms |
Ed25519 | 1023 bytes | Signature | Small | OptHigh | 9 067 432 | 161 ms |
Ed25519 | 1023 bytes | Signature | SuperFast | OptLow | 12 623 392 | 225 ms |
Ed25519 | 1023 bytes | Signature | SuperFast | OptHigh | 7 270 680 | 129 ms |
Ed25519 | 1023 bytes | Verification | Small | OptLow | 24 767 632 | 442 ms |
Ed25519 | 1023 bytes | Verification | Small | OptHigh | 21 653 960 | 386 ms |
Ed25519 | 1023 bytes | Verification | SuperFast | OptLow | 19 404 504 | 346 ms |
Ed25519 | 1023 bytes | Verification | SuperFast | OptHigh | 16 892 176 | 301 ms |
The table below shows EdDSA flash memory 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 550 bytes | 1744 bytes | 1 byte | 1236 bytes | 1388 bytes |
Ed25519 | 1023 bytes | Signature | Small | OptHigh | 14 972 bytes | 2896 bytes | 1 byte | 1236 bytes | 1388 bytes |
Ed25519 | 1023 bytes | Signature | Small | OptLow | 17 890 bytes | 1744 bytes | 1 byte | 1236 bytes | 1388 bytes |
Ed25519 | 1023 bytes | Signature | Small | OptHigh | 18 312 bytes | 2896 bytes | 1 byte | 1236 bytes | 1388 bytes |
Ed25519 | 1023 bytes | Signature | Small | OptLow | 14 608 bytes | 1748 bytes | 1 byte | 1236 bytes | 1152 bytes |
Ed25519 | 1023 bytes | Signature | Small | OptHigh | 15 030 bytes | 2900 bytes | 1 byte | 1236 bytes | 1992 bytes |
Ed25519 | 1023 bytes | Signature | Small | OptLow | 17 948 bytes | 1748 bytes | 1 byte | 1236 bytes | 1152 bytes |
Ed25519 | 1023 bytes | Signature | Small | OptHigh | 18 370 bytes | 2900 bytes | 1 byte | 1236 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 | 1 008 687 664 | 18 012 ms |
v2.2 | CRT | SHA-256 | 3K | Signature | Small | Mid | 758 194 128 | 13 539 ms |
v2.2 | CRT | SHA-256 | 3K | Signature | Small | High | 636 388 760 | 11 364 ms |
v2.2 | CRT | SHA-256 | 3K | Signature | Fast | Low | 854 703 880 | 15 262 ms |
v2.2 | CRT | SHA-256 | 3K | Signature | Fast | Mid | 620 894 400 | 11 087 ms |
v2.2 | CRT | SHA-256 | 3K | Signature | Fast | High | 506 889 648 | 9051 ms |
v2.2 | No CRT | SHA-256 | 3K | Signature | Small | Low | 3 968 112 976 | 70 859 ms |
v2.2 | No CRT | SHA-256 | 3K | Signature | Small | Mid | 2 978 835 136 | 53 193 ms |
v2.2 | No CRT | SHA-256 | 3K | Signature | Small | High | 2 491 131 976 | 44 484 ms |
v2.2 | No CRT | SHA-256 | 3K | Signature | Fast | Low | 3 355 930 880 | 59 927 ms |
v2.2 | No CRT | SHA-256 | 3K | Signature | Fast | Mid | 2 428 359 688 | 43 363 ms |
v2.2 | No CRT | SHA-256 | 3K | Signature | Fast | High | 1 970 423 440 | 35 186 ms |
v2.2 | n/a | SHA-256 | 3K | Verification | Small | n/a | 15 538 464 | 277 ms |
v2.2 | n/a | SHA-256 | 3K | Verification | Fast | n/a | 12 834 568 | 229 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 | 7260 bytes | 372 bytes | 5 bytes | 708 bytes | 3704 bytes |
v2.2 | CRT | SHA-256 | 3K | Signature | Small | Mid | 7538 bytes | 372 bytes | 5 bytes | 708 bytes | 4308 bytes |
v2.2 | CRT | SHA-256 | 3K | Signature | Small | High | 7538 bytes | 372 bytes | 5 bytes | 708 bytes | 6708 bytes |
v2.2 | CRT | SHA-256 | 3K | Signature | Fast | Low | 8098 bytes | 372 bytes | 5 bytes | 708 bytes | 3704 bytes |
v2.2 | CRT | SHA-256 | 3K | Signature | Fast | Mid | 8376 bytes | 372 bytes | 5 bytes | 708 bytes | 4308 bytes |
v2.2 | CRT | SHA-256 | 3K | Signature | Fast | High | 8376 bytes | 372 bytes | 5 bytes | 708 bytes | 6708 bytes |
v2.2 | No CRT | SHA-256 | 3K | Signature | Small | Low | 6274 bytes | 364 bytes | 5 bytes | 708 bytes | 3484 bytes |
v2.2 | No CRT | SHA-256 | 3K | Signature | Small | Mid | 6552 bytes | 364 bytes | 5 bytes | 708 bytes | 4664 bytes |
v2.2 | No CRT | SHA-256 | 3K | Signature | Small | High | 6552 bytes | 364 bytes | 5 bytes | 708 bytes | 9368 bytes |
v2.2 | No CRT | SHA-256 | 3K | Signature | Fast | Low | 7112 bytes | 364 bytes | 5 bytes | 708 bytes | 3484 bytes |
v2.2 | No CRT | SHA-256 | 3K | Signature | Fast | Mid | 7390 bytes | 364 bytes | 5 bytes | 708 bytes | 4664 bytes |
v2.2 | No CRT | SHA-256 | 3K | Signature | Fast | High | 7390 bytes | 364 bytes | 5 bytes | 708 bytes | 9368 bytes |
v2.2 | n/a | SHA-256 | 3K | Verification | Small | n/a | 7054 bytes | 368 bytes | 5 bytes | 724 bytes | 3108 bytes |
v2.2 | n/a | SHA-256 | 3K | Verification | Fast | n/a | 7892 bytes | 368 bytes | 5 bytes | 724 bytes | 3108 bytes |
Usage: