Recent

Author Topic: Universal Virtual Array Random Generator  (Read 1699 times)

Nitorami

  • Sr. Member
  • ****
  • Posts: 481
Universal Virtual Array Random Generator
« on: July 22, 2018, 06:35:27 pm »
For those interested in pseudo random number generation, Jean Debord's dmath package contains an interesting one I had not been aware of by now.

https://sourceforge.net/projects/dmath/

It is the "universal virtual array generator" in unit uranuvag.pas, which is a pascal adaptation of an algorithm proposed 2013 by Alex Hay on github https://github.com/seehuhn/dieharder/blob/master/libdieharder/rng_uvag.c

The author says his genrator "evolved over years of playing around", and "does not yield easily to mathematical analysis unlike well researched prngs like MT and RC4", so it certainly lacks a solid theoretical basis, and might potentially have flaws. I am also sceptical about the claim in uranuvag.pas that it is suitable for cryptographic purposes. But apart from that it is pretty fast, does not require multiplications, is easily scalable to integers of different size, and passes all statistical tests I tried, even with poor seeding. It looks like this has not become widely known, and except for the links above there is hardly a notion on the Internet. I think it is not bad at all, and may deserve a bit more attention.

 


Thaddy

  • Hero Member
  • *****
  • Posts: 14197
  • Probably until I exterminate Putin.
Re: Universal Virtual Array Random Generator
« Reply #1 on: July 23, 2018, 04:24:10 pm »
That one holds quite a bit of state and the state is directly related to the previous one.
Is there any research done? or is it simply ignored? As you know I am an expert and interested.
Because of the state issue alone it is not really suitable for cryptographically secure application.
Specialize a type, not a var.

Nitorami

  • Sr. Member
  • ****
  • Posts: 481
Re: Universal Virtual Array Random Generator
« Reply #2 on: July 23, 2018, 08:43:03 pm »
Hi Thaddy

I thought you might be interested. A solid random generator should probably have a sound theoretical basis, rather than just pass cetain randomness tests.  But unfortunately I don't know any more than what is contained in the links. A google search did not bring up any more information. I ran a few randomness tests, and would certainly have no objections to use it for Monte Carlo simulations.
It also works with smaller states, I tried with array sizes of 128 and 64 bytes, and it performed well, but my tests are limited, and a more thorough test might reveal flaws.

 

TinyPortal © 2005-2018