I am looking at the SDK and example code for the usage of PUF.
The code at `NXP/MIMXRT6855_SDK/boards/evkmimxrt685/driver_examples/puf/puf.c` starts with the following:
/* Initialize random number generator used to generate key mask for HW key */
/* In real application, the seed shall be obtained from a hardware random number generator. */
srand(0xbabadeda);
PRINTF("PUF Peripheral Driver Example\r\n\r\n");
What is the "key mask for HW key" mentioned in the comment?
I would like to understand what is the consequence of using this fixed seed (`0xbabadeda`) and if this is a security risk for the PUF implementation.
Thank you
Hi @hxp123,
Please help me looking into the "RT6xx User Manual" in the i.MX RT600 page. In chapter 45.11.6.22 you can see information for the key mask registers:
"This registers is additional protection against Side Channel analysis. It obscures the
secret key value stored in key hold registers. A random value can be loaded into this
register."
As for the fixed seed, random number generator generates random instead of unique numbers. It means that you can get two the same numbers in case of one random number sequence (with one seed). You can refer to this post for more information: Non repetitive Random Number generator - NXP Community.
Here is also an application note about the usage of the PUF in the LPC55sxx, which may be useful: LPC55Sxx Usage of the Physically Unclonable Function and Hash.
Best regards,
Julián