Before keys can be generated, KMU must push the key generation seed used by the IKG to the SEED register and marked as valid.
To create and derive a seed the following sequence of operations are needed.
Create device unique seed
- Create three 128-bit random numbers using CRACEN RNG.
- Provision the random numbers to KMU slots 0, 1, and 2 (128 bits in each slot).
- SRC.DEST=CRACEN.SEED[n], where n=0, 4, and 8
- SRC.VALUE=random[i], where i=0,1, and 2 (random number results from CRACEN.RND operation in step 1)
- Push the KMU slots where the seed is stored (KMU slots 0, 1, and 2).
- Once all SEED registers have been pushed, CRACEN locks the SEED register and validates the seed for the IKG.
Note:
Any IKG key generations without valid seed (CRACEN.SEEDVALID) will fail.