2022-11-09 09:17 AM
This is a general question on the Cortex M33 product with hardware encryption. I would like to use my own random number generator rather that the one that is embedded with the core in order to generate my AES key(s). Is that possible or am I restricted to using your RNG. If I can use my own, to which register do I write the key?
2022-11-09 11:02 AM
What do you mean by your own random number generator, and why will it be better than one that uses the built-in hardware random number generator?
An important point is that the hardware random number generator is truly random. Any mathematical function, even a well-respected one such as by Knuth or from Numerical Recipes, is deterministic and not random, even if it looks to be. And anything that isn’t random when it should be is a potential entry-point for an attacker.
If you still reckon there’s a good reason to use your own rng then look at the Reference Manual for your stm32 and the source code for the API.
Sorry I’m not more helpful,
Danish
2022-11-09 11:38 AM
Thanks for your answer. The RNG that we will use is not deterministic in nature. There are some advantages to using it particularly for synching symmetric keys between remote users. Cannot divulge much more at this point. Again, thanks for the help.
2022-11-10 05:15 PM
The questions doesn't make sense.
> am I restricted to using your RNG
How can someone restrict what software you use?
> If I can use my own, to which register do I write the key?
If you use your own software algorithm, then what register are you talking about?