ꌗꉓꃅ꒒ꍟꀎ𝔻ꍟℜ𝕊𝕋𝕌ℝℤ

South African, living in Germany, left-leaning, deeply aligned with the opening lines of the Grundgesetz that declare all people to have inherent worth. Nerdy of nature and short of stature, I bend code and words to my purposes yet revel in my sports and thrive in the hills and high places.

  • 1 Post
  • 1 Comment
Joined 1 month ago
cake
Cake day: December 2nd, 2024

help-circle

  • I’m fairly certain that the original authors recommended using another generator – like split-mix-64 – to extrapolate low-entropy seeds to the required state width. Using high-resolution time as a seed is common practice throughout software development and I think they were envisioning split-mix-64 to be adequate to get decent seed entropy from a linearly increasing timestamp. I’m certain it would be adequate to widen 32-bit seeds to the required width.

    If my memory is correct, the reasoning was that split-mix-64 – although not as robust a PRNG as the XO*SHIRO family – is trivial to compute and reaches a reasonable level of entropy without needing many iterations.

    It looks like[1] the state width is 256-bits, anyway – not 64 bits.


    1. I’ve lost my references and don’t have time to go digging through archives right at the moment but I pulled up my Rust library that implements my PRNGs (which is a port of a C++ re-implementation that exploited learnings from implementing a C# library to replace Microsoft’s original, slow .NET PRNG, which was based on the research paper’s reference implementation, and ran in production for years and years…) ↩︎