37.1 Overview

The Public Key Cryptography Controller (PUKCC) processes public key cryptography algorithm calculus in both GF(p) and GF(2n) fields.

The Public Key Cryptography Library (PUKCL) is stored in ROM inside the device. The library can be used in applications to access features of PUKCC, and includes the complete implementation of the following public key cryptography algorithms:

  • RSA (Rivest-Shamir-Adleman public key cryptosystem), DSA (Digital Signature Algorithm):
    • Modular Exponentiation with CRT up to 7168 bits
    • Modular Exponentiation without CRT up to 5376 bits
    • Prime generation
    • Utilities: GCD/modular Inverse, Divide, Modular reduction, Multiply, ...
  • Elliptic Curves:
    • ECDSA GF(p) up to 521 bits for common curves (up to 1120 bits for future use)
    • ECDSA GF(2n) up to 571 bits for common curves (up to 1440 bits for future use)
    • Choice of the curve parameters for compatibility with NIST Curves or other curves in Weierstrass equation
    • Point Multiply
    • Point Add/Doubling
    • Other high level elliptic curve algorithms (ECDH, ...) can be implemented by user using library functions
  • Deterministic Random Number Generation (DRNG ANSI X9.31) for DSA