Embedded and IoT

What is a secure element?

A secure element is a tamper-resistant chip, typically a secure microcontroller, that stores secret keys and performs cryptographic operations with them, so the main processor can use a key without holding it. GlobalPlatform describes it as a platform capable of securely hosting applications and their confidential and cryptographic data under rules set by trusted authorities. It comes as an embedded or integrated chip, a SIM, a smart microSD card or a smart card.

Learning objectives

After reading this article you will be able to:

  • Explain how a secure element lets a processor use a key without holding it
  • Distinguish a secure element from a TEE and an integrated secure enclave
  • Recognise what FIPS 140-3 and PSA Certified mean and what a secure element cannot stop

What a secure element does

GlobalPlatform, a non-profit industry association that standardises application management on secure elements, defines a secure element as “a tamper-resistant platform (typically a one chip secure microcontroller) capable of securely hosting applications and their confidential and cryptographic data (for example cryptographic keys)”. It describes secure elements as an evolution of the chip in a smart card, adapted for phones, wearables, cars and IoT devices.

The idea is separation. The device’s main processor runs the application, the network stack and everything an attacker might compromise. The secure element holds the private keys and performs operations such as signing, key agreement and decryption when asked. The key itself does not need to leave the chip. GlobalPlatform’s example is a digital car key: the phone’s secure element stores the key, and the app, after authentication, directs the secure element to use it to open the car.

GlobalPlatform lists the form factors as embedded and integrated secure elements, SIM or UICC cards, smart microSD cards and smart cards.

Secure element, TEE and secure enclave

These terms describe different levels of isolation. Android’s keystore documentation makes the distinction for phones. Its StrongBox KeyMint is “implementations in embedded SEs or integrated Secure Enclaves (iSE), providing stronger isolation and tamper resistance compared to the TEE”, the trusted execution environment. Android lists what a StrongBox implementation must contain:

  • Its own CPU
  • Secure storage
  • A true random-number generator
  • Mechanisms to resist package tampering and unauthorised sideloading of apps
  • A secure timer
  • A reboot notification pin or equivalent

The same page is direct about the cost. StrongBox is slower, more resource-constrained and supports fewer concurrent operations, and Android says most apps do not need it. Its supported algorithms are a subset: RSA 2048, AES 128 and 256, ECDSA and ECDH on P-256, HMAC-SHA256 and Triple DES.

On a microcontroller board

In embedded products a secure element can be a separate small chip next to the microcontroller. NXP’s EdgeLock SE050 is one example. Its product page says the available features depend on the configuration chosen, and lists:

  • A connection to the host microcontroller over I²C, with bus encryption and host binding using GlobalPlatform’s SCP03 secure channel, so the traffic between the two chips is protected.
  • Support for a range of elliptic curves, listed as NIST, Brainpool, Twisted Edwards and Montgomery, alongside RSA and AES.
  • A true random number generator compliant with NIST SP 800-90B.
  • Common Criteria EAL 6+ certification, with FIPS 140-2 certification on the SE050F configuration.
  • Middleware for different microcontrollers, including a minimal package optimised for constrained devices with Zephyr integration.

The algorithm lists in this section and the previous one show why checking matters. A protocol built on particular curves needs a secure element that supports them, or it falls back to software for some operations.

What certifications mean

A secure element’s value rests on claims that are hard to check yourself, so independent certification carries weight. Three schemes appear on embedded parts:

  • FIPS 140-3, from NIST, sets security requirements for cryptographic modules at four increasing, qualitative levels. Its areas include physical security, non-invasive security, sensitive security parameter management and self-tests.
  • PSA Certified, a framework for connected devices, offers levels from 1 to 4 for silicon vendors. Its “Level 2 + Secure Element” and “Level 3 + Secure Element” certifications recognise extra protection for key storage and cryptographic operations, and “Level 4 iSE/SE” covers a high level of protection from physical and software attacks for secret keys and crypto functions.
  • GlobalPlatform functional certification checks that a secure element behaves as GlobalPlatform’s specifications require, with the stated aim of market interoperability.

A certificate applies to a specific product and configuration. Check that it covers the part, firmware and mode you will ship.

What it does not protect

A secure element is designed to stop a key from being copied, but it cannot judge whether a request from the host is legitimate. If the host firmware is compromised, an attacker may be able to ask the chip to sign or decrypt without ever extracting the key. Host binding, access policies on stored objects and verified firmware updates narrow that gap.

It also does not replace the rest of key management. Keys still need to be provisioned, rotated and revoked, and a device key stored in hardware is lost with the hardware unless the system plans for recovery.

Frequently asked questions

Do phones have secure elements?

Some do. Android devices running Android 9 (API level 28) or higher can include StrongBox KeyMint, backed by an embedded secure element or an integrated secure enclave, and apps can check for it with `FEATURE_STRONGBOX_KEYSTORE` before asking to store a key there.

Do I need a secure element to do encryption on a microcontroller?

No. A microcontroller can run cryptography in software. A secure element adds protection for keys against someone who can physically open the device, at the cost of another part, a bus to protect and a fixed set of algorithms.

Build it with Offline Protocol

The Offline Protocol security docs explain that identity and session secrets and persisted protocol state use separate storage roles, that both need protecting, and that a custom storage implementation must honour atomicity and durability.

Read the security docs