Normal World and Secure World using TrustZone Diagram.

Getting Started

The Arm CryptoCell-300 family of embedded security solutions is aimed at high efficiency systems with emphasis on small footprint and low power consumption. The CryptoCell-300 family offers platform security services as well as a rich set of cryptographic services, targeting multiple threats. These services are needed across various Internet of Things (IoT) domains such as home automation, factory automation, smart energy, industrial IoT and other areas where there is potential usage of an Arm Cortex-M processor. 

The CryptoCell-300 family uses a modular approach which consists of control and scheduling, data interfaces, cryptography and various security resources to enable the right level of security and PPA trade-offs for a particular threat model.

CryptoCell complements TrustZone for Armv8-M and together these solutions form a Trusted Execution Environment (TEE). This helps reduce the attack surface and isolate sensitive assets and processes from potentially malicious application code.


Key Features

The CryptoCell-300 family provides these key features to owners of assets on the platform (chip vendors, device makers and more):

  • Brand-name and IP protection through enforcement of code authentication and code confidentiality – the IP allows an image owner to deliver the code to the target device – in the field or on the manufacturing floor - signed and encrypted. That code owner can be a chip vendor, a device maker, or other entities in the ecosystem. The model allows chip vendors and other entities to rely on different roots of trust, without having to share them.

  • Authenticated debug, allowing authorization of ecosystem partners for specific capabilities – the IP allows cryptographic enforcement of a debug policy that takes into account the state of the device (e.g. manufacturing and deployment status) and the specific grants the entity attempting to debug has received from an authorized entity (e.g. the OEM behind the device). The IP allows fine granularity of debug control, as well as separated authorization path for different owners of assets in the device.

  • Secure provisioning of code and data, allowing different entities to send assets to the device in a manner preserving the integrity and confidentiality over untrusted communication means.

  • Hardware based management of roots-of-trust, enforcing different access control policies based on the state of the device (e.g. manufacturing and deployment status).

  • Efficient implementation of a rich set of cryptographic services such as:
    • Symmetric ciphers like AES and chacha20 (operational in multiple modes).
    • Hashing functions like SHA1, SHA256 and keyed-hash message authentication code (HMAC) based on these hash functions.
    • Asymmetric cryptographic schemes like RSA and various schemes based Elliptic Curve Cryptography.
    • Random number generation based on a true source of entropy.

The support for some of these modes is optional and allows the integrator to trade off area footprint with performance.

CryptoCell-312 is also available with enhancements which help protect against side-channel attacks (CryptoCell-312P)

Want to know more about Security on Arm?

Learn more

Free on-demand training webinar about Arm CryptoCell

Simplifying the design of secure IoT systems

Get support

Arm support

Arm training courses and on-site system-design advisory services enable licensees to realize maximum system performance with lowest risk and fastest time-to-market.

Arm training courses  Open a support case

Community Blogs

Community Forums

Answered Where do I find presentations and photos from SC'18? 2 votes 2143 views 0 replies Started 1 years ago by John Linford Answer this
Suggested answer Static Call Graph Details in Keil IDE 0 votes 227 views 3 replies Latest 8 hours ago by Ronan Synnott Answer this
Not answered making physical memory pages not cacheable (probabaly by modifying page table entry) 0 votes 57 views 0 replies Started 13 hours ago by Gol Answer this
Suggested answer Debug Connection Cause ExecutionTiming Problem on Second Core of Cortex A9 on Zynq 702 MPCore
  • System on Chip (SoC)
  • Cortex-A9
0 votes 1363 views 3 replies Latest 14 hours ago by BurakSeker Answer this
Not answered reading data in http client application 0 votes 42 views 0 replies Started 16 hours ago by giomaca Answer this
Suggested answer Keil uVision Error L6218E: Undefined Symbol APBPrescTable (referred from stm32f4xx_hal_rcc.o)
  • Keil
  • uVision
0 votes 2191 views 9 replies Latest 17 hours ago by Westonsupermare Pier Answer this
Answered Where do I find presentations and photos from SC'18? Started 1 years ago by John Linford 0 replies 2143 views
Suggested answer Static Call Graph Details in Keil IDE Latest 8 hours ago by Ronan Synnott 3 replies 227 views
Not answered making physical memory pages not cacheable (probabaly by modifying page table entry) Started 13 hours ago by Gol 0 replies 57 views
Suggested answer Debug Connection Cause ExecutionTiming Problem on Second Core of Cortex A9 on Zynq 702 MPCore Latest 14 hours ago by BurakSeker 3 replies 1363 views
Not answered reading data in http client application Started 16 hours ago by giomaca 0 replies 42 views
Suggested answer Keil uVision Error L6218E: Undefined Symbol APBPrescTable (referred from stm32f4xx_hal_rcc.o) Latest 17 hours ago by Westonsupermare Pier 9 replies 2191 views