Skip to content

Commit 2e75f1b

Browse files
greg-ferrlubos
authored andcommitted
docs: security: add IronSide to overview
Added information about IronSide SE to Security overview pages. Added a section about CRACEN HW peripheral to the nRF54H20 arch. NCSDK-33901. Signed-off-by: Grzegorz Ferenc <[email protected]>
1 parent 9f01f91 commit 2e75f1b

File tree

9 files changed

+320
-29
lines changed

9 files changed

+320
-29
lines changed

doc/nrf/app_dev/device_guides/nrf54h/ug_nrf54h20_architecture_cpu.rst

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ The CPU cores in the nRF54H20 are based on two types of CPU architectures:
2727
The VPR (pronounced “Viper”) is a small, efficient CPU developed by Nordic Semiconductor.
2828
It is compatible with the RISC-V instruction set.
2929

30+
.. _ug_nrf54h20_architecture_cpu_appcore:
31+
3032
Application core
3133
****************
3234

@@ -142,6 +144,24 @@ Since the nRF54H platform supports global resource sharing, where memory partiti
142144

143145
The Secure Domain Firmware (SDFW) exposes security-related services to the Cores in the system located in local domains (like Application and Radio).
144146

147+
.. _ug_nrf54h20_secure_domain_cracen:
148+
149+
CRACEN hardware peripheral
150+
==========================
151+
152+
The CRACEN hardware peripheral is a hardware accelerator for cryptographic operations.
153+
154+
On nRF54H20, the CRACEN hardware peripheral is tightly integrated with the Secure Domain.
155+
This means that only the CPU in the Secure Domain can access the CRACEN hardware peripheral and there is no RNG peripheral available to other Cores.
156+
157+
The :ref:`CRACEN cryptographic driver <crypto_drivers_cracen>` uses the hardware peripheral to perform cryptographic operations.
158+
The driver implements the PSA Crypto driver API and then relies on :ref:`Oberon PSA Crypto <ug_crypto_architecture_implementation_standards_oberon>` to implement the :ref:`PSA Crypto API <ug_psa_certified_api_overview_crypto>`.
159+
The IronSide Secure Element firmware relies on the CRACEN driver.
160+
161+
The seed for CRACEN's Isolated Key Generator (IKG) is generated by a Physically Unclonable Function (PUF).
162+
The PUF seed is controlled by the Secure Domain ROM and neither firmware nor applications can read or modify it.
163+
Keys derived by this mechanism are never exposed outside the Secure Domain.
164+
145165
.. _ug_nrf54h20_sys_ctrl:
146166

147167
System Controller

doc/nrf/links.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,7 @@
255255
.. _`PSA Cryptography API 1.0.1`: https://armmbed.github.io/mbed-crypto/1.0.1/html/index.html
256256
.. _`PSA Certified Crypto API 1.0.0`: https://arm-software.github.io/psa-api/crypto/1.0/IHI0086-PSA_Cryptography_API-1.0.0.pdf
257257
.. _`PSA Certified Crypto API 1.2.1`: https://arm-software.github.io/psa-api/crypto/1.2/
258+
.. _`PSA Certified Crypto API 1.3.1`: https://arm-software.github.io/psa-api/crypto/1.3/
258259
.. _`PSA functions for key management`: https://arm-software.github.io/psa-api/crypto/1.1/api/keys/management.html
259260

260261
.. _`PSA Certified Secure Storage API`: https://arm-software.github.io/psa-api/storage/
@@ -786,6 +787,7 @@
786787
.. _`nRF54L15 Key management unit`: https://docs.nordicsemi.com/bundle/ps_nrf54L15/page/kmu.html
787788
.. _`nRF54L15 RRAMC`: https://docs.nordicsemi.com/bundle/ps_nrf54L15/page/rramc.html
788789
.. _`nRF54L15 REGION.CONFIG`: https://docs.nordicsemi.com/bundle/ps_nrf54L15/page/rramc.html#ariaid-title35
790+
.. _`nRF54L15 DK CRACEN`: https://docs.nordicsemi.com/bundle/ps_nrf54L15/page/cracen.html
789791

790792
.. _`nRF53 Series`: https://docs.nordicsemi.com/category/nrf-53-series
791793

doc/nrf/releases_and_maturity/software_maturity.rst

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2646,6 +2646,14 @@ For more information about the PSA Crypto implementations in the |NCS|, see :ref
26462646
- --
26472647
- --
26482648
- --
2649+
* - :ref:`IronSide Secure Element <ug_crypto_architecture_implementation_standards_ironside>`
2650+
- :ref:`CRACEN <crypto_drivers>`
2651+
- --
2652+
- --
2653+
- --
2654+
- --
2655+
- --
2656+
- --
26492657

26502658
.. tab:: nRF53 Series
26512659

@@ -2668,6 +2676,9 @@ For more information about the PSA Crypto implementations in the |NCS|, see :ref
26682676
* - :ref:`TF-M Crypto Service <ug_crypto_architecture_implementation_standards_tfm>`
26692677
- :ref:`Oberon PSA Crypto drivers <crypto_drivers>`
26702678
- Supported
2679+
* - :ref:`IronSide Secure Element <ug_crypto_architecture_implementation_standards_ironside>`
2680+
- :ref:`CRACEN <crypto_drivers>`
2681+
- --
26712682

26722683
.. tab:: nRF54 Series
26732684

@@ -2705,6 +2716,12 @@ For more information about the PSA Crypto implementations in the |NCS|, see :ref
27052716
- --
27062717
- Experimental
27072718
- Experimental
2719+
* - :ref:`IronSide Secure Element <ug_crypto_architecture_implementation_standards_ironside>`
2720+
- :ref:`CRACEN <crypto_drivers>`
2721+
- Supported
2722+
- --
2723+
- --
2724+
- --
27082725

27092726
.. tab:: nRF91 Series
27102727

@@ -2742,6 +2759,12 @@ For more information about the PSA Crypto implementations in the |NCS|, see :ref
27422759
- Supported
27432760
- Supported
27442761
- Supported
2762+
* - :ref:`IronSide Secure Element <ug_crypto_architecture_implementation_standards_ironside>`
2763+
- :ref:`CRACEN <crypto_drivers>`
2764+
- --
2765+
- --
2766+
- --
2767+
- --
27452768

27462769
.. crypto_support_table_end
27472770

doc/nrf/security/crypto/crypto_architecture.rst

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,10 @@ Implementations in the |NCS|
5656

5757
The |NCS| follows the PSA Crypto standard through two major API implementations: Oberon PSA Crypto and TF-M Crypto Service.
5858
They are designed for use without and with Trusted Firmware-M (TF-M), respectively, and have different security requirements.
59-
Both are based on the `sdk-oberon-psa-crypto`_ library, which offers a lightweight PSA Crypto API implementation optimized for resource-constrained microcontrollers.
59+
Additionally, the |NCS| includes the nRF54H20-specific IronSide Secure Element implementation.
60+
61+
All implementations are based on the `sdk-oberon-psa-crypto`_ library, which offers a lightweight PSA Crypto API implementation optimized for resource-constrained microcontrollers.
62+
6063

6164
.. figure:: ../images/psa_crypto_api_overview.svg
6265
:alt: PSA Crypto API implementations in the |NCS|
@@ -160,3 +163,28 @@ When using the TF-M Crypto Service implementation, keys from the PSA Crypto API
160163
* Protected Storage (PS) - One of :ref:`ug_tfm_architecture_rot_services_application` that provides secure storage within the Trusted Firmware-M environment.
161164

162165
For more information about the storage integration for the TF-M Crypto Service implementation, see :ref:`ug_psa_certified_api_overview_secstorage` and :ref:`ug_tfm_services`.
166+
167+
.. _ug_crypto_architecture_implementation_standards_ironside:
168+
169+
IronSide Secure Element implementation
170+
======================================
171+
172+
The IronSide Secure Element (IronSide SE) implementation provides a PSA Crypto API interface for applications running on nRF54H20.
173+
174+
.. figure:: ../images/psa_crypto_api_ironside.svg
175+
:alt: IronSide SE implementation
176+
:align: center
177+
178+
IronSide SE implementation
179+
180+
This implementation provides IronSide SE firmware for the :ref:`CRACEN hardware peripheral in the Secure Domain <ug_nrf54h20_secure_domain_cracen>`.
181+
It is designed to provide a robust Root of Trust (RoT) and offload cryptographic operations, key handling, and secure storage.
182+
The firmware implements the cryptographic operations using the existing Oberon PSA Core and the CRACEN driver.
183+
184+
The firmware is provided by Nordic Semiconductor independently from the |NCS| release cycle.
185+
186+
Driver selection in the IronSide SE implementation
187+
--------------------------------------------------
188+
189+
The IronSide SE implementation works only with the :ref:`CRACEN driver <crypto_drivers_cracen>`.
190+
It does not support the :ref:`software fallback <crypto_drivers_software_fallback>` mechanism to :ref:`nrf_oberon <crypto_drivers_oberon>`.

doc/nrf/security/crypto/driver_config.rst

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ To use the PSA Crypto API in your application, enable the following Kconfig opti
2828
* For the :ref:`Oberon PSA Crypto implementation <ug_crypto_architecture_implementation_standards_oberon>`, enable the :kconfig:option:`CONFIG_NRF_SECURITY` Kconfig option.
2929
* For the :ref:`TF-M Crypto Service implementation <ug_crypto_architecture_implementation_standards_tfm>`, enable the :kconfig:option:`CONFIG_NRF_SECURITY` Kconfig option together with the :kconfig:option:`CONFIG_BUILD_WITH_TFM` Kconfig option.
3030
For more information, see :ref:`ug_tfm_building_secure_services`.
31+
* For the :ref:`IronSide Secure Element implementation <ug_crypto_architecture_implementation_standards_ironside>`, enable the :kconfig:option:`CONFIG_NRF_SECURITY` Kconfig option on the nRF54H20's :ref:`ug_nrf54h20_architecture_cpu_appcore`.
3132

3233
.. _psa_crypto_support_single_driver:
3334

@@ -58,8 +59,10 @@ To enable the :ref:`nrf_security_drivers_cracen`, set the :kconfig:option:`CONFI
5859
The nrf_oberon driver may then be disabled by using the Kconfig option :kconfig:option:`CONFIG_PSA_CRYPTO_DRIVER_OBERON` (``CONFIG_PSA_CRYPTO_DRIVER_OBERON=n``).
5960

6061
.. note::
61-
On nRF54L Series devices, CRACEN is the only source of entropy.
62-
Therefore, it is not possible to disable the :kconfig:option:`CONFIG_PSA_CRYPTO_DRIVER_CRACEN` Kconfig option when the Zephyr entropy driver is enabled.
62+
- On nRF54L Series devices, CRACEN is the only source of entropy.
63+
Therefore, it is not possible to disable the :kconfig:option:`CONFIG_PSA_CRYPTO_DRIVER_CRACEN` Kconfig option when the Zephyr entropy driver is enabled.
64+
- On nRF54H20, the IronSide Secure Element firmware relies on the CRACEN driver.
65+
However, you do not need to enable the :kconfig:option:`CONFIG_PSA_CRYPTO_DRIVER_CRACEN` Kconfig option when the program the firmware bundle onto the Secure Domain.
6366

6467
.. _psa_crypto_support_enable_nrf_oberon:
6568

doc/nrf/security/crypto/drivers.rst

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ Hardware drivers take precedence over software drivers, which provide fallback o
5757
- Drivers for the `CryptoCell 310 <nRF9160 CRYPTOCELL - Arm TrustZone CryptoCell 310_>`_ and `CryptoCell 312 <nRF5340 CRYPTOCELL - Arm TrustZone CryptoCell 312_>`_ hardware accelerators.
5858
* - :ref:`CRACEN <crypto_drivers_cracen>`
5959
- Hardware
60-
- nRF54L Series devices
61-
- Security subsystem providing hardware acceleration for cryptographic operations. For more information, see :ref:`ug_nrf54l_crypto_kmu_cracen_peripherals` on the :ref:`ug_nrf54l_cryptography` page.
60+
- nRF54L Series devices, nRF54H20
61+
- Security subsystem providing hardware acceleration for cryptographic operations through the CRACEN hardware peripheral. For more information, see the :ref:`ug_nrf54l_cryptography` page.
6262
* - :ref:`nrf_oberon <crypto_drivers_oberon>`
6363
- Software
6464
- nRF devices with Arm Cortex®-M0, -M4, or -M33 processors
@@ -344,10 +344,16 @@ CRACEN driver
344344
* - :ref:`CRACEN <ug_nrf54l_cryptography>`
345345
- Hardware
346346
- Open-source
347-
- nRF54L Series devices
347+
- nRF54L Series devices, nRF54H20
348348

349349
The CRACEN driver provides entropy and hardware-accelerated cryptography using the Crypto Accelerator Engine (CRACEN) hardware peripheral.
350-
For more information about both the driver and the hardware peripheral, see :ref:`ug_nrf54l_crypto_kmu_cracen_peripherals` on the :ref:`ug_nrf54l_cryptography` page.
350+
The driver implements the PSA Crypto driver API (``cracen_aead_set_nonce``) and then relies on :ref:`Oberon PSA Crypto <ug_crypto_architecture_implementation_standards>` to implement the PSA API (``psa_aead_set_set_nonce``).
351+
352+
The hardware peripheral is available on the following devices:
353+
354+
* nRF54L15 Series devices - For more information about both the hardware peripheral and the driver, see the `CRACEN hardware peripheral <nRF54L15 DK CRACEN_>`_ page in the datasheet and the :ref:`ug_nrf54l_cryptography` page in the |NCS| documentation.
355+
* nRF54H20 - On this platform, the IronSide Secure Element relies on the CRACEN driver.
356+
For more information, see the :ref:`ug_nrf54h20_secure_domain_cracen`.
351357

352358
CRACEN driver configuration
353359
---------------------------

0 commit comments

Comments
 (0)