wolfSSL announces wolfBoot / wolfCrypt support for hardware crypto acceleration in the NXP LPC55S69, available now in the following PR’s:
This includes TRNG, SHA1, SHA-256, AES-CBC, AES-ECB, AES-OFB, AES-CFB, and AES-CTR. AES supports key sizes of 128, 192, and 256.
About the NXP LPC55S69
The LPC55S69 is a general-purpose edge computing device with dual ARM Cortex-M33 cores running up to 150 MHz, 640/320 KB internal flash/ram, TrustZone-M, a DSP accelerator, and extensive cryptographic acceleration. The LPC55S69 strikes a good balance between high performance and low power operation.
wolfBoot on the NXP LPC55S69
wolfBoot provides three sample configurations for quick start of development:
lpc55s69.config
- Non-secure wolfBoot and application, smallest footprint
lpc55s69-benchmark.config
- Same as lpc55s69.config, but with test and benchmarking turned on, in a larger footprint
lpc55s69-tz.config
- wolfBoot in the Secure World, application in the Non-Secure World
- wolfBoot provides a PKCS #11 cryptographic API to the non-secure world
- wolfBoot footprint: 200 KB partition, 80 KB keyvault, 114 KB ram
In all three config files, hardware acceleration is turned off by default. Use PKA=1 in each config file, to turn on the hardware acceleration.
LPC55S69 Benchmark
The following table captures the throughput improvement of various crypto algorithms with hardware acceleration on the LPC55S69, per use of lpc55s69-benchmark.config. All measurements were taken with the core CPU running at 96 MHz on the LPCXpresso55S69 board (LPC55S69-EVK).
| Algorithm | PKA=0 | PKA=1 | x Increase |
|---|---|---|---|
| RNG SHA-256 DRBG | 311.3 KiB/s | 642.3 KiB/s | 2.1 |
| AES-128-CBC-enc | 333.0 KiB/s | 23.7 MiB/s | 71.0 |
| AES-128-CBC-dec | 331.1 KiB/s | 22.1 MiB/s | 66.7 |
| AES-192-CBC-enc | 289.9 KiB/s | 23.5 MiB/s | 81.1 |
| AES-192-CBC-dec | 288.5 KiB/s | 19.5 MiB/s | 67.7 |
| AES-256-CBC-enc | 258.5 KiB/s | 21.6 MiB/s | 83.5 |
| AES-256-CBC-dec | 258.7 KiB/s | 17.5 MiB/s | 67.7 |
| AES-128-GCM-enc | 265.2 KiB/s | 928.6 KiB/s | 3.5 |
| AES-128-GCM-dec | 265.4 KiB/s | 929.5 KiB/s | 3.5 |
| AES-192-GCM-enc | 236.5 KiB/s | 922.2 KiB/s | 3.9 |
| AES-192-GCM-dec | 236.7 KiB/s | 923.2 KiB/s | 3.9 |
| AES-256-GCM-enc | 214.9 KiB/s | 914.0 KiB/s | 4.3 |
| AES-256-GCM-dec | 215.1 KiB/s | 914.9 KiB/s | 4.3 |
| AES-128-GCM-enc-no_AAD | 266.0 KiB/s | 939.7 KiB/s | 3.5 |
| AES-128-GCM-dec-no_AAD | 266.2 KiB/s | 940.6 KiB/s | 3.5 |
| AES-192-GCM-enc-no_AAD | 237.2 KiB/s | 934.1 KiB/s | 3.9 |
| AES-192-GCM-dec-no_AAD | 237.4 KiB/s | 936.0 KiB/s | 3.9 |
| AES-256-GCM-enc-no_AAD | 215.5 KiB/s | 925.0 KiB/s | 4.3 |
| AES-256-GCM-dec-no_AAD | 215.7 KiB/s | 925.9 KiB/s | 4.3 |
| GMAC Table | 1208.0 KiB/s | 1.2 MiB/s | — |
| AES-128-ECB-enc | 364.2 KiB/s | 24.5 MiB/s | 67.3 |
| AES-128-ECB-dec | 374.9 KiB/s | 24.0 MiB/s | 64.0 |
| AES-192-ECB-enc | 311.2 KiB/s | 24.3 MiB/s | 78.2 |
| AES-192-ECB-dec | 323.8 KiB/s | 21.0 MiB/s | 64.8 |
| AES-256-ECB-enc | 276.1 KiB/s | 22.3 MiB/s | 80.7 |
| AES-256-ECB-dec | 284.0 KiB/s | 18.7 MiB/s | 65.7 |
| AES-128-CFB-enc | 328.9 KiB/s | 3.1 MiB/s | 9.5 |
| AES-128-CFB-dec | 331.1 KiB/s | 3.1 MiB/s | 9.5 |
| AES-192-CFB-enc | 286.5 KiB/s | 3.1 MiB/s | 10.8 |
| AES-192-CFB-dec | 288.5 KiB/s | 3.1 MiB/s | 10.7 |
| AES-256-CFB-enc | 256.1 KiB/s | 3.0 MiB/s | 11.8 |
| AES-256-CFB-dec | 257.5 KiB/s | 3.0 MiB/s | 11.7 |
| AES-128-OFB-enc | 343.1 KiB/s | 3.0 MiB/s | 8.8 |
| AES-128-OFB-dec | 343.1 KiB/s | 3.0 MiB/s | 8.8 |
| AES-192-OFB-enc | 297.3 KiB/s | 3.0 MiB/s | 10.0 |
| AES-192-OFB-dec | 297.3 KiB/s | 3.0 MiB/s | 10.0 |
| AES-256-OFB-enc | 264.7 KiB/s | 2.9 MiB/s | 11.1 |
| AES-256-OFB-dec | 264.4 KiB/s | 2.9 MiB/s | 11.1 |
| AES-128-CTR | 346.2 KiB/s | 17.7 MiB/s | 51.1 |
| AES-192-CTR | 299.1 KiB/s | 17.6 MiB/s | 59.0 |
| AES-256-CTR | 266.0 KiB/s | 16.5 MiB/s | 62.1 |
| SHA-256 | 1000.0 KiB/s | 57.4 MiB/s | 57.4 |
| SHA-384 | 400.6 KiB/s | 400.0 KiB/s | — |
| SHA-512 | 400.6 KiB/s | 400.0 KiB/s | — |
| SHA-512/224 | 400.2 KiB/s | 400.0 KiB/s | — |
| SHA-512/256 | 400.6 KiB/s | 400.0KiB/s | — |
| HMAC-SHA256 | 991.1 KiB/s | 48.8 MiB/s | 49.2 |
| HMAC-SHA384 | 394.1 KiB/s | 393.7 KiB/s | — |
| HMAC-SHA512 | 394.1 KiB/s | 393.7 KiB/s | — |
If you have questions about any of the above, please contact us at facts@wolfssl.com or call us at +1 425 245 8247.
Download wolfSSL Now

