Cryptographically secure pseudorandom number generation

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Does anyone have any experience or thoughts on implementing cryptographically secure pseudo-random or true-random number generation using WICED Smart SDK? I am looking for a way to generate nonces ( number only used once) for a crypto algorithm. pseudorandom number generators such as rand() function is not desirable for this application. The best approach would require tapping into a source of true randomness such as sampling high frequency clock (with high phase jitter) with low frequency clock. Other less secure ways would involve using time ( ss:mm:hh:dd) as seed to a an LFSR or something.

0 Likes
1 Solution
JacobT_81
Employee
Employee
250 replies posted 100 replies posted 50 replies posted

The API ulp_rand() draws on a hw RNG.

It requires warmup time. Users have experienced issues when they call this API immediately upon boot. If it's not warmed up, we'll draw on a pseudo-random list with a non-unique seed.

See this post for more details: Re: Document or specification of HW random number generator

Jacob

View solution in original post

3 Replies
JacobT_81
Employee
Employee
250 replies posted 100 replies posted 50 replies posted

The API ulp_rand() draws on a hw RNG.

It requires warmup time. Users have experienced issues when they call this API immediately upon boot. If it's not warmed up, we'll draw on a pseudo-random list with a non-unique seed.

See this post for more details: Re: Document or specification of HW random number generator

Jacob

Anonymous
Not applicable

Cool! I am using BCM20732S. Is this available with this chip? ( since I guess this is talking to special hardware?)

I guess the work around against warm up time is to cache (queue in memory) a bunch of random numbers and fill up the queue as number get used.

0 Likes

It looks like this feature is only available through SDKs 2.0 and above. As discussed in the following post, you may need to explore SW methods of producing random numbers.

Re: how to get a random number with the sdk?

Jacob

0 Likes