Am Fri, May 13, 2022 at 09:43:26AM -0500 schrieb Luke Small:
> I made a couple new versions of a new kind of arc4random_uniform-like
> function and some example functions which use them. Instead of having a
> sufficiently large random number greater than the modulus, I pick a random
> number using arc4random() from a bitfield where the length of the bitfield
> is just below or slightly beyond the value of the modulus and returns the
> bitfield it if it is less than the value of the modulus.

If your main use case is limiting the amount of cryptography when using
small bounds, there is a much simpler approach to be taken here. For
boundaries below 256, use arc4random_buf to extract one byte if bound is
a power of two, otherwise two. This gives most of the performance
benefit without complicating the algorithm. Extracting two bytes ensures
that the propability of success is > 99% and the double extracting
doesn't eat up the benefits.

Joerg

Reply via email to