This page reports measured performance when using the pure software cryptographic library algorithms with an STM32WB MCU. In addition to performance figures, the required code footprint and memory are also given.
1. Measurement configuration
1.1. Hardware configuration
STM32 MCU | STM32WB55RG |
Device ID | 0x495 |
Revision ID | 0x2001 |
Board | P-NUCLEO-WB55 |
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 | 64 MHz |
Flash latency | 3 wait states |
Voltage scaling | Range 1 |
Instruction Cache (ART/ICU) | 1 (0: disabled / 1: enabled) |
Data Cache (ART/DCU) | 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 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 | 5846 | 91 µs |
AES CBC | 128 bits | 32 bytes | Encryption | Fast | 6251 | 97 µs |
AES CBC | 128 bits | 64 bytes | Encryption | Small | 9287 | 145 µs |
AES CBC | 128 bits | 64 bytes | Encryption | Fast | 10 068 | 157 µs |
AES CBC | 128 bits | 128 bytes | Encryption | Small | 16 142 | 252 µs |
AES CBC | 128 bits | 128 bytes | Encryption | Fast | 17 656 | 275 µs |
AES CBC | 192 bits | 32 bytes | Encryption | Small | 6458 | 100 µs |
AES CBC | 192 bits | 32 bytes | Encryption | Fast | 6854 | 107 µs |
AES CBC | 192 bits | 64 bytes | Encryption | Small | 10 444 | 163 µs |
AES CBC | 192 bits | 64 bytes | Encryption | Fast | 11 258 | 175 µs |
AES CBC | 192 bits | 128 bytes | Encryption | Small | 18 416 | 287 µs |
AES CBC | 192 bits | 128 bytes | Encryption | Fast | 20 036 | 313 µs |
AES CBC | 256 bits | 32 bytes | Encryption | Small | 7344 | 114 µs |
AES CBC | 256 bits | 32 bytes | Encryption | Fast | 7855 | 122 µs |
AES CBC | 256 bits | 64 bytes | Encryption | Small | 11 873 | 185 µs |
AES CBC | 256 bits | 64 bytes | Encryption | Fast | 12 889 | 201 µs |
AES CBC | 256 bits | 128 bytes | Encryption | Small | 20 937 | 327 µs |
AES CBC | 256 bits | 128 bytes | Encryption | Fast | 22 921 | 358 µs |
AES CBC | 128 bits | 32 bytes | Decryption | Small | 9867 | 154 µs |
AES CBC | 128 bits | 32 bytes | Decryption | Fast | 8246 | 128 µs |
AES CBC | 128 bits | 64 bytes | Decryption | Small | 17 226 | 269 µs |
AES CBC | 128 bits | 64 bytes | Decryption | Fast | 12 218 | 190 µs |
AES CBC | 128 bits | 128 bytes | Decryption | Small | 31 942 | 499 µs |
AES CBC | 128 bits | 128 bytes | Decryption | Fast | 20 173 | 315 µs |
AES CBC | 192 bits | 32 bytes | Decryption | Small | 11 280 | 176 µs |
AES CBC | 192 bits | 32 bytes | Decryption | Fast | 9360 | 146 µs |
AES CBC | 192 bits | 64 bytes | Decryption | Small | 20 069 | 313 µs |
AES CBC | 192 bits | 64 bytes | Decryption | Fast | 13 954 | 218 µs |
AES CBC | 192 bits | 128 bytes | Decryption | Small | 37 600 | 587 µs |
AES CBC | 192 bits | 128 bytes | Decryption | Fast | 23 119 | 361 µs |
AES CBC | 256 bits | 32 bytes | Decryption | Small | 13 094 | 204 µs |
AES CBC | 256 bits | 32 bytes | Decryption | Fast | 10 691 | 167 µs |
AES CBC | 256 bits | 64 bytes | Decryption | Small | 23 271 | 363 µs |
AES CBC | 256 bits | 64 bytes | Decryption | Fast | 15 925 | 248 µs |
AES CBC | 256 bits | 128 bytes | Decryption | Small | 43 681 | 682 µs |
AES CBC | 256 bits | 128 bytes | Decryption | Fast | 26 378 | 412 µs |
The table below shows Flash and RAM usage (in bytes).
Cipher operation | Configuration | Code | Constant data | Global data | Stack usage |
---|---|---|---|---|---|
Encryption | Small | 2936 bytes | 380 bytes | 1 bytes | 524 bytes |
Encryption | Fast | 3188 bytes | 1404 bytes | 1 bytes | 548 bytes |
Decryption | Small | 3068 bytes | 636 bytes | 1 bytes | 552 bytes |
Decryption | Fast | 3644 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 | 874 960 | 585 kbyte/s |
AES CBC | 128 bits | 8000 bytes | 128 bytes | Encryption | Fast | 969 024 | 528 kbyte/s |
AES CBC | 128 bits | 8000 bytes | 512 bytes | Encryption | Small | 865 944 | 591 kbyte/s |
AES CBC | 128 bits | 8000 bytes | 512 bytes | Encryption | Fast | 960 056 | 533 kbyte/s |
AES CBC | 128 bits | 8000 bytes | 1024 bytes | Encryption | Small | 864 392 | 592 kbyte/s |
AES CBC | 128 bits | 8000 bytes | 1024 bytes | Encryption | Fast | 958 704 | 534 kbyte/s |
AES CBC | 128 bits | 8000 bytes | 2048 bytes | Encryption | Small | 863 608 | 592 kbyte/s |
AES CBC | 128 bits | 8000 bytes | 2048 bytes | Encryption | Fast | 958 336 | 534 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 128 bytes | Encryption | Small | 1 012 088 | 505 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 128 bytes | Encryption | Fast | 1 122 432 | 456 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 512 bytes | Encryption | Small | 1 003 680 | 510 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 512 bytes | Encryption | Fast | 1 112 856 | 460 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 1024 bytes | Encryption | Small | 1 002 096 | 510 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 1024 bytes | Encryption | Fast | 1 111 088 | 460 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 2048 bytes | Encryption | Small | 1 001 464 | 511 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 2048 bytes | Encryption | Fast | 1 110 280 | 461 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 128 bytes | Encryption | Small | 1 150 336 | 445 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 128 bytes | Encryption | Fast | 1 275 136 | 401 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 512 bytes | Encryption | Small | 1 141 832 | 448 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 512 bytes | Encryption | Fast | 1 266 080 | 404 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 1024 bytes | Encryption | Small | 1 140 464 | 448 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 1024 bytes | Encryption | Fast | 1 264 432 | 404 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 2048 bytes | Encryption | Small | 1 139 680 | 449 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 2048 bytes | Encryption | Fast | 1 264 392 | 404 kbyte/s |
AES CBC | 128 bits | 8000 bytes | 128 bytes | Decryption | Small | 1 880 776 | 272 kbyte/s |
AES CBC | 128 bits | 8000 bytes | 128 bytes | Decryption | Fast | 1 028 896 | 497 kbyte/s |
AES CBC | 128 bits | 8000 bytes | 512 bytes | Decryption | Small | 1 863 960 | 274 kbyte/s |
AES CBC | 128 bits | 8000 bytes | 512 bytes | Decryption | Fast | 1 010 032 | 506 kbyte/s |
AES CBC | 128 bits | 8000 bytes | 1024 bytes | Decryption | Small | 1 859 888 | 275 kbyte/s |
AES CBC | 128 bits | 8000 bytes | 1024 bytes | Decryption | Fast | 1 006 504 | 508 kbyte/s |
AES CBC | 128 bits | 8000 bytes | 2048 bytes | Decryption | Small | 1 856 056 | 275 kbyte/s |
AES CBC | 128 bits | 8000 bytes | 2048 bytes | Decryption | Fast | 1 002 960 | 510 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 128 bytes | Decryption | Small | 2 233 624 | 229 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 128 bytes | Decryption | Fast | 1 187 432 | 431 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 512 bytes | Decryption | Small | 2 217 408 | 230 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 512 bytes | Decryption | Fast | 1 170 632 | 437 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 1024 bytes | Decryption | Small | 2 213 664 | 231 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 1024 bytes | Decryption | Fast | 1 166 576 | 438 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 2048 bytes | Decryption | Small | 2 209 952 | 231 kbyte/s |
AES CBC | 192 bits | 8000 bytes | 2048 bytes | Decryption | Fast | 1 162 576 | 440 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 128 bytes | Decryption | Small | 2 588 088 | 197 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 128 bytes | Decryption | Fast | 1 346 928 | 380 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 512 bytes | Decryption | Small | 2 571 832 | 199 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 512 bytes | Decryption | Fast | 1 327 496 | 385 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 1024 bytes | Decryption | Small | 2 567 816 | 199 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 1024 bytes | Decryption | Fast | 1 323 832 | 386 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 2048 bytes | Decryption | Small | 2 564 048 | 199 kbyte/s |
AES CBC | 256 bits | 8000 bytes | 2048 bytes | Decryption | Fast | 1 320 216 | 387 kbyte/s |
The table below shows Flash and RAM usage (in bytes).
Cipher operation | Configuration | Code | Constant data | Global data | Stack usage |
---|---|---|---|---|---|
Encryption | Small | 2828 bytes | 372 bytes | 1 bytes | 140 bytes |
Encryption | Fast | 3080 bytes | 1396 bytes | 1 bytes | 172 bytes |
Decryption | Small | 2960 bytes | 628 bytes | 1 bytes | 176 bytes |
Decryption | Fast | 3536 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 | 5690 | 88 µs |
SHA256 | 64 bytes | 9037 | 141 µs |
SHA256 | 128 bytes | 12 031 | 187 µs |
SHA384 | 32 bytes | 19 376 | 302 µs |
SHA384 | 64 bytes | 19 582 | 305 µs |
SHA384 | 128 bytes | 36 328 | 567 µs |
The table below shows Flash and RAM usage (in bytes).
HASH mode | Code | Constant data | Global data | Stack usage |
---|---|---|---|---|
SHA256 | 1848 | 296 bytes | 1 bytes | 564 bytes |
SHA384 | 3004 | 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 | 425 786 | 1202 kbyte/s |
SHA256 | 8000 bytes | 512 bytes | 397 319 | 1288 kbyte/s |
SHA256 | 8000 bytes | 1024 bytes | 392 537 | 1304 kbyte/s |
SHA256 | 8000 bytes | 2048 bytes | 390 133 | 1312 kbyte/s |
SHA384 | 8000 bytes | 128 bytes | 1 076 672 | 475 kbyte/s |
SHA384 | 8000 bytes | 512 bytes | 1 028 028 | 498 kbyte/s |
SHA384 | 8000 bytes | 1024 bytes | 1 019 596 | 502 kbyte/s |
SHA384 | 8000 bytes | 2048 bytes | 1 015 380 | 504 kbyte/s |
The table below shows final tag generation done through the call to cmox_hash_generateTag.
HASH mode | Cycles | Time |
---|---|---|
SHA256 | 4623 | 72 µs |
SHA384 | 18 091 | 282 µs |
The table below shows Flash and RAM usage (in bytes).
HASH mode | Code | Constant data | Global data | Stack usage |
---|---|---|---|---|
SHA256 | 1856 bytes | 288 bytes | 1 bytes | 372 bytes |
SHA384 | 3012 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 | 3 075 208 | 48 ms |
SECP256R1 | Signature | Small | High | 2 991 968 | 46 ms |
SECP256R1 | Signature | SuperFast | Low | 2 694 104 | 42 ms |
SECP256R1 | Signature | SuperFast | High | 2 608 416 | 40 ms |
SECP256R1 | Verification | Small | Low | 7 448 632 | 116 ms |
SECP256R1 | Verification | Small | High | 6 621 144 | 103 ms |
SECP256R1 | Verification | SuperFast | Low | 6 549 376 | 102 ms |
SECP256R1 | Verification | SuperFast | High | 5 794 800 | 90 ms |
SECP384R1 | Signature | Small | Low | 8 388 992 | 131 ms |
SECP384R1 | Signature | Small | High | 8 037 800 | 125 ms |
SECP384R1 | Signature | Fast | Low | 8 304 872 | 129 ms |
SECP384R1 | Signature | Fast | High | 7 939 504 | 124 ms |
SECP384R1 | Verification | Small | Low | 20 196 544 | 315 ms |
SECP384R1 | Verification | Small | High | 17 572 728 | 274 ms |
SECP384R1 | Verification | Fast | Low | 19 993 632 | 312 ms |
SECP384R1 | Verification | Fast | High | 17 381 696 | 271 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 732 bytes | 1184 bytes | 1 bytes | 328 bytes | 628 bytes |
SECP256R1 | Signature | Small | High | 11 732 bytes | 1568 bytes | 1 bytes | 328 bytes | 696 bytes |
SECP256R1 | Signature | SuperFast | Low | 13 042 bytes | 1184 bytes | 1 bytes | 332 bytes | 628 bytes |
SECP256R1 | Signature | SuperFast | High | 13 042 bytes | 1568 bytes | 1 bytes | 332 bytes | 696 bytes |
SECP256R1 | Verification | Small | Low | 12 216 bytes | 1200 bytes | 1 bytes | 424 bytes | 856 bytes |
SECP256R1 | Verification | Small | High | 12 216 bytes | 1584 bytes | 1 bytes | 424 bytes | 1648 bytes |
SECP256R1 | Verification | SuperFast | Low | 13 526 bytes | 1200 bytes | 1 bytes | 428 bytes | 856 bytes |
SECP256R1 | Verification | SuperFast | High | 13 526 bytes | 1584 bytes | 1 bytes | 428 bytes | 1648 bytes |
SECP384R1 | Signature | Small | Low | 11 732 bytes | 1664 bytes | 1 bytes | 328 bytes | 884 bytes |
SECP384R1 | Signature | Small | High | 11 732 bytes | 2240 bytes | 1 bytes | 328 bytes | 984 bytes |
SECP384R1 | Signature | Fast | Low | 12 102 bytes | 1664 bytes | 1 bytes | 344 bytes | 884 bytes |
SECP384R1 | Signature | Fast | High | 12 102 bytes | 2240 bytes | 1 bytes | 344 bytes | 984 bytes |
SECP384R1 | Verification | Small | Low | 12 216 bytes | 1680 bytes | 1 bytes | 424 bytes | 1192 bytes |
SECP384R1 | Verification | Small | High | 12 216 bytes | 2256 bytes | 1 bytes | 424 bytes | 2272 bytes |
SECP384R1 | Verification | Fast | Low | 12 586 bytes | 1680 bytes | 1 bytes | 440 bytes | 1192 bytes |
SECP384R1 | Verification | Fast | High | 12 586 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 867 104 | 76 ms |
Ed25519 | 1023 bytes | Signature | Small | OptHigh | 2 848 296 | 44 ms |
Ed25519 | 1023 bytes | Signature | SuperFast | OptLow | 4 374 312 | 68 ms |
Ed25519 | 1023 bytes | Signature | SuperFast | OptHigh | 2 569 768 | 40 ms |
Ed25519 | 1023 bytes | Verification | Small | OptLow | 7 257 320 | 113 ms |
Ed25519 | 1023 bytes | Verification | Small | OptHigh | 6 367 608 | 99 ms |
Ed25519 | 1023 bytes | Verification | SuperFast | OptLow | 6 428 984 | 100 ms |
Ed25519 | 1023 bytes | Verification | SuperFast | OptHigh | 5 639 016 | 88 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 088 bytes | 1744 bytes | 1 bytes | 1236 bytes | 1388 bytes |
Ed25519 | 1023 bytes | Signature | Small | OptHigh | 14 494 bytes | 2896 bytes | 1 bytes | 1236 bytes | 1388 bytes |
Ed25519 | 1023 bytes | Signature | SuperFast | OptLow | 15 398 bytes | 1744 bytes | 1 bytes | 1236 bytes | 1388 bytes |
Ed25519 | 1023 bytes | Signature | SuperFast | OptHigh | 15 804 bytes | 2896 bytes | 1 bytes | 1236 bytes | 1388 bytes |
Ed25519 | 1023 bytes | Verification | Small | OptLow | 14 178 bytes | 1748 bytes | 1 bytes | 1244 bytes | 1152 bytes |
Ed25519 | 1023 bytes | Verification | Small | OptHigh | 14 584 bytes | 2900 bytes | 1 bytes | 1244 bytes | 1992 bytes |
Ed25519 | 1023 bytes | Verification | SuperFast | OptLow | 15 488 bytes | 1748 bytes | 1 bytes | 1244 bytes | 1152 bytes |
Ed25519 | 1023 bytes | Verification | SuperFast | OptHigh | 15 894 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 | 187 730 904 | 2933 ms |
v2.2 | CRT | SHA-256 | 3K | Signature | Small | Mid | 141 318 672 | 2208 ms |
v2.2 | CRT | SHA-256 | 3K | Signature | Small | High | 118 681 608 | 1854 ms |
v2.2 | CRT | SHA-256 | 3K | Signature | Fast | Low | 187 024 936 | 2922 ms |
v2.2 | CRT | SHA-256 | 3K | Signature | Fast | Mid | 140 843 192 | 2200 ms |
v2.2 | CRT | SHA-256 | 3K | Signature | Fast | High | 118 266 136 | 1847 ms |
v2.2 | No CRT | SHA-256 | 3K | Signature | Small | Low | 713 657 520 | 11 150 ms |
v2.2 | No CRT | SHA-256 | 3K | Signature | Small | Mid | 536 044 336 | 8375 ms |
v2.2 | No CRT | SHA-256 | 3K | Signature | Small | High | 448 383 472 | 7005 ms |
v2.2 | No CRT | SHA-256 | 3K | Signature | Fast | Low | 712 427 032 | 11 131 ms |
v2.2 | No CRT | SHA-256 | 3K | Signature | Fast | Mid | 535 159 896 | 8361 ms |
v2.2 | No CRT | SHA-256 | 3K | Signature | Fast | High | 447 635 992 | 6994 ms |
v2.2 | n/a | SHA-256 | 3K | Verification | Small | n/a | 3 822 504 | 59 ms |
v2.2 | n/a | SHA-256 | 3K | Verification | Fast | n/a | 3 772 624 | 58 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 | 7034 bytes | 370 bytes | 5 bytes | 700 bytes | 3704 bytes |
v2.2 | CRT | SHA-256 | 3K | Signature | Small | Mid | 7282 bytes | 370 bytes | 5 bytes | 700 bytes | 4308 bytes |
v2.2 | CRT | SHA-256 | 3K | Signature | Small | High | 7282 bytes | 370 bytes | 5 bytes | 700 bytes | 6708 bytes |
v2.2 | CRT | SHA-256 | 3K | Signature | Fast | Low | 7404 bytes | 370 bytes | 5 bytes | 700 bytes | 3704 bytes |
v2.2 | CRT | SHA-256 | 3K | Signature | Fast | Mid | 7652 bytes | 370 bytes | 5 bytes | 700 bytes | 4308 bytes |
v2.2 | CRT | SHA-256 | 3K | Signature | Fast | High | 7652 bytes | 370 bytes | 5 bytes | 700 bytes | 6708 bytes |
v2.2 | No CRT | SHA-256 | 3K | Signature | Small | Low | 6064 bytes | 362 bytes | 5 bytes | 700 bytes | 3484 bytes |
v2.2 | No CRT | SHA-256 | 3K | Signature | Small | Mid | 6312 bytes | 362 bytes | 5 bytes | 700 bytes | 4664 bytes |
v2.2 | No CRT | SHA-256 | 3K | Signature | Small | High | 6312 bytes | 362 bytes | 5 bytes | 700 bytes | 9368 bytes |
v2.2 | No CRT | SHA-256 | 3K | Signature | Fast | Low | 6434 bytes | 362 bytes | 5 bytes | 700 bytes | 3484 bytes |
v2.2 | No CRT | SHA-256 | 3K | Signature | Fast | Mid | 6682 bytes | 362 bytes | 5 bytes | 700 bytes | 4664 bytes |
v2.2 | No CRT | SHA-256 | 3K | Signature | Fast | High | 6682 bytes | 362 bytes | 5 bytes | 700 bytes | 9368 bytes |
v2.2 | n/a | SHA-256 | 3K | Verification | Small | n/a | 6810 bytes | 366 bytes | 5 bytes | 716 bytes | 3108 bytes |
v2.2 | n/a | SHA-256 | 3K | Verification | Fast | n/a | 7180 bytes | 366 bytes | 5 bytes | 716 bytes | 3108 bytes |