SWRA667 January   2020 CC1312PSIP , CC1312R , CC1314R10 , CC1352P , CC1352P7 , CC1352R , CC1354P10 , CC1354R10 , CC2642R , CC2642R-Q1 , CC2652P , CC2652R , CC2652R7 , CC2652RB , CC2652RSIP

 

  1.   Cryptographic Performance and Energy Efficiency on SimpleLink™ CC13x2/CC26x2 Wireless MCUs
    1.     Trademarks
    2. 1 Abbreviations and Acronyms
    3. 2 Introduction
    4. 3 Benefits of Cryptographic Acceleration in Embedded Security Solutions
    5. 4 TI Drivers for SimpleLink MCUs
      1. 4.1 Power Management Overview
      2. 4.2 Return Behavior
        1. 4.2.1 Runtime Overhead
      3. 4.3 Efficient Power Management
    6. 5 CC13x2/CC26x2 Crypto Peripherals
      1. 5.1 AES and Hash Crypto Accelerator
      2. 5.2 Public Key Accelerator
        1. 5.2.1 ECDH Power Management Driver Example
      3. 5.3 TRNG
    7. 6 Benchmarks
      1. 6.1 AES and Hash Crypto Accelerator Based Drivers
        1. 6.1.1 AES CBC
        2. 6.1.2 AES CCM
        3. 6.1.3 AES GCM
        4. 6.1.4 AES CTR DRBG
        5. 6.1.5 SHA-224
        6. 6.1.6 SHA-256
        7. 6.1.7 SHA-384
        8. 6.1.8 SHA-512
      2. 6.2 PKA Engine Based Drivers
        1. 6.2.1 ECDH
        2. 6.2.2 ECDSA
        3. 6.2.3 ECJPAKE
      3. 6.3 TRNG Based Drivers
        1. 6.3.1 TRNG
    8. 7 Conclusion
    9. 8 References
    10.     Appendix: Plots of Blocking vs Polling Performance

ECDH Power Management Driver Example

When combined, the peripheral driver and power driver opportunistically put the device into the lowest power state it can be in at any point during an operation. Figure 1 shows a simplified example of how the ECDH and power driver interact when generating a public key. The device starts in active mode after booting and no peripherals are turned on yet.

simplified-power-transition-diagram-for-ecc-public-key-generation.pngFigure 1. Simplified Power Transition Diagram for ECC Public Key Generation
  1. The application opens an ECDH driver instance configured with blocking return behavior by calling ECDH_open(). The driver turns on the PKA peripheral.
  2. The application calls ECDH_genPublicKey(). The driver sets up the PKA and appends an internal semaphore.
  3. The power driver puts the device into the idle power mode because the CPU is not currently busy but the PKA is active.
  4. The PKA triggers an interrupt that wakes up the CPU, and the power driver brings the device into active power mode. The semaphore the thread is pending on is posted, and ECDH_genPublicKey() returns.
  5. The application calls ECDH_close(). The ECDH driver turns off the PKA peripheral.
  6. The device has nothing else to do, and the power driver transitions the device into standby.

The concepts in Figure 1 also transfer to the other SimpleLink crypto drivers.