uncategorized

New NXP Kinetis K8X LP Trusted Crypto (LTC) support for PKI (RSA/ECC)

#ARMTechCon - NXP has a new LP Trusted Crypto (LTC) core which accelerates RSA/ECC PKI in their Kinetis K8x line.The LTC hardware accelerator improves: * RSA performance by 12-17X * ECC performance by 18-23X * Ed/Curve25519 performance by 2-3X.This adds to the existing MMCAU support which accelerates RNG, AES (CBC, CCM, GCM, CTR), DES/3DES, MD5, SHA, SHA256, SHA384/512 and ChaCha20/Poly1305.The combined LTC/MMCAU hardware acceleration improves performance, reduces power consumption and reduces code size by 40%.Here are the benchmarks on a FRDM-K82F Cortex M4 @ 150MHz:Hardware Accelerated (LTC / MMCAU):RNG      25 kB took 0.026 seconds,    0.939 MB/sAES enc  25 kB took 0.002 seconds,   12.207 MB/sAES dec  25 kB took 0.002 seconds,   12.207 MB/sAES-GCM  25 kB took 0.002 seconds,   12.207 MB/sAES-CTR  25 kB took 0.003 seconds,    8.138 MB/sAES-CCM  25 kB took 0.004 seconds,    6.104 MB/sCHACHA   25 kB took 0.008 seconds,    3.052 MB/sCHA-POLY 25 kB took 0.013 seconds,    1.878 MB/sPOLY1305 25 kB took 0.003 seconds,    8.138 MB/sSHA      25 kB took 0.006 seconds,    4.069 MB/sSHA-256  25 kB took 0.009 seconds,    2.713 MB/sSHA-384  25 kB took 0.032 seconds,    0.763 MB/sSHA-512  25 kB took 0.035 seconds,    0.698 MB/sRSA 2048 public          12.000 milliseconds, avg over 1 iterationsRSA 2048 private         135.000 milliseconds, avg over 1 iterationsECC  256 key generation  17.400 milliseconds, avg over 5 iterationsEC-DHE   key agreement   15.200 milliseconds, avg over 5 iterationsEC-DSA   sign   time     20.200 milliseconds, avg over 5 iterationsEC-DSA   verify time     33.000 milliseconds, avg over 5 iterationsCURVE25519 256 key generation 14.400 milliseconds, avg over 5 iterationsCURVE25519 key agreement      14.400 milliseconds, avg over 5 iterationsED25519  key generation  14.800 milliseconds, avg over 5 iterationsED25519  sign   time     16.800 milliseconds, avg over 5 iterationsED25519  verify time     30.400 milliseconds, avg over 5 iterationsSoftware only:RNG      25 kB took 0.179 seconds,    0.136 MB/sAES enc  25 kB took 0.099 seconds,    0.247 MB/sAES dec  25 kB took 0.102 seconds,    0.239 MB/sAES-GCM  25 kB took 1.486 seconds,    0.016 MB/sAES-CTR  25 kB took 0.099 seconds,    0.247 MB/sAES-CCM  25 kB took 0.201 seconds,    0.121 MB/sCHACHA   25 kB took 0.043 seconds,    0.568 MB/sCHA-POLY 25 kB took 0.055 seconds,    0.444 MB/sPOLY1305 25 kB took 0.010 seconds,    2.441 MB/sSHA      25 kB took 0.029 seconds,    0.842 MB/sSHA-256  25 kB took 0.079 seconds,    0.309 MB/sSHA-384  25 kB took 0.109 seconds,    0.224 MB/sSHA-512  25 kB took 0.113 seconds,    0.216 MB/sRSA 2048 public          147.000 milliseconds, avg over 1 iterationsRSA 2048 private         2363.000 milliseconds, avg over 1 iterationsECC  256 key generation  355.400 milliseconds, avg over 5 iterationsEC-DHE   key agreement   352.400 milliseconds, avg over 5 iterationsEC-DSA   sign   time     362.400 milliseconds, avg over 5 iterationsEC-DSA   verify time     703.400 milliseconds, avg over 5 iterationsCURVE25519 256 key generation 66.200 milliseconds, avg over 5 iterationsCURVE25519 key agreement      65.400 milliseconds, avg over 5 iterationsED25519  key generation  25.000 milliseconds, avg over 5 iterationsED25519  sign   time     30.400 milliseconds, avg over 5 iterationsED25519  verify time     74.400 milliseconds, avg over 5 iterationsThe code to support the LTC is currently in PR #597 here, soon to be rolled into the wolfSSL embedded SSL/TLS library:https://github.com/wolfSSL/wolfssl/pull/597These changes are also included in the KSDK 2.0.See us at ARM TechCon booth #321 (Wednesday 10/26 and Thursday 10/27 - 10:30 AM - 6:30 PM)