Public Key Cryptographic Library

​The Public Key Cryptographic Library (PKCL) provides standardized key computation, encryption, decryption, signature and verification functionalities for all key sizes up to 8192 bits.



​RSA, DSA, DH & El-Gamal
Extended key size range
Secure implementation
Adjustable trade-offs
Efficient computation


RSA cryptosystem as defined in PKCS#1
DSA signature scheme as defined in FIPS 186-3
Diffie-Hellman (DH) key exchange as defined in PKCS#3
El-Gamal cryptosystem
JavaCard API
Encryption, decryption, signature and verification functions
Optional on-board key generation
All key sizes supported up to 8192 bits
Core functions ASM-optimized for the targeted processor
Configurable architecture:

  • adjustable trade-off between performance and RAM footprint
  • dedicated coprocessor available separately (about 10 times faster)

State-of-the-art countermeasures against SPA, DPA[1] and DFA attacks
Typical code size on Cortex-M3 smaller than 15 kbytes
Less than 100 Mcycles to compute a secure 2048-bit RSA signature


C and Assembly source codes
C test vectors
Compilation scripts (makefile)
Documents for certifications (FIPS, CC, EMV, etc.):

  • list of countermeasures with references
  • implementation details

Design specification