SPRADO0 November   2024 F29H850TU , F29H859TU-Q1

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
  5. 2The Need for a Comprehensive Security Approach
  6. 3Cryptographic Functions
    1. 3.1 Encryption and Decryption
    2. 3.2 Hashing, Digital Signing, and Authentication
    3. 3.3 Random Number Generators (RNGs)
  7. 4Establishing a Root of Trust
    1. 4.1 Secure Storage of Secrets
    2. 4.2 Preserving Key and Code Security
    3. 4.3 Secure Boot
  8. 5Secure Execution Environment
  9. 6Security Countermeasures
  10. 7Debug Security
  11. 8Conclusion

Random Number Generators (RNGs)

Random number generation is an important element of many cryptographic services. Random numbers are used to initialize cryptographic sequences, generate keys, create authentication challenges, and more. However, if the random number comes from a source that is predictable or lacks sufficient entropy, this could become a weakness that can be exploited to break the encryption and expose secrets. For computational efficiency, many modern systems feature a Pseudorandom Number Generator (PRNG), sometimes also called a Deterministic Random Bit Generator (DRBG). A pseudorandom number generator generates a deterministic sequence of numbers using a mathematical algorithm, but is dependent on an initial random seed. A true random number generator (TRNG) uses physical sources of randomness such as noise or quantum phenomena to generate bits that are truly random and independent, but is typically much slower than a PRNG. A common practice is to use a TRNG to provide a high-entropy random seed to initialize the PRNG, which is then used to generate the random numbers for the cryptographic application.