SWRA667 January 2020 CC1312PSIP , CC1312R , CC1314R10 , CC1352P , CC1352P7 , CC1352R , CC1354P10 , CC1354R10 , CC2642R , CC2642R-Q1 , CC2652P , CC2652R , CC2652R7 , CC2652RB , CC2652RSIP
The public key accelerator (PKA) provides access to large number math operations and several dedicated elliptic curve cryptography (ECC) (see Reference [5]) primitives. It also contains 2k bytes of dedicated SRAM to manage intermediate results and is used as workspace for the PKA itself. The PKA based drivers listed below manage all required PKA RAM accesses themselves.
Unlike the AES and hash crypto accelerator, there are no true fire-and-forget operations when using the PKA engine. Every ECC driver requires multiple PKA operations to perform any driver operation. This is abstracted away from the application by the drivers.
PKA operations vary highly in their duration. A simple 128-bit addition might take a few microseconds while a Short-Weierstrass scalar point multiplication takes 113 ms. The computational cost of ECC driver operations is dominated by scalar point multiplications and point additions as they are the most computationally expensive operations by several orders of magnitude and are executed in every ECC driver call. With such operation durations, the overhead costs are only marginal. Blocking and callback return behaviors perform well with ECC operations compared to polling return behavior. Polling return behavior is implemented for portability between devices within the SimpleLink ecosystem and for completeness.
Driver | Recommended Return Behavior |
---|---|
ECDH | Blocking or Callback |
ECDSA | Blocking or Callback |
ECJPAKE | Blocking or Callback |