# AIS31 Software and Documentation

I have learned that there are two main test suitcase for randomness (reference):

1. AIS 31 - German Federal Office for Information Security (BSI)
2. SP 800-90B - U.S. National Institute for Standards and Technology (NIST)

I was able to run NIST tests on my data. I was wondering if there is any software (and documentation) available for AIS31. I was only able to find general information about it.

See the page below

https://www.bsi.bund.de/DE/Themen/Kryptografie_Kryptotechnologie/Kryptografie/Zufallszahlengeneratoren/zufallszahlengeneratoren_node.html

I looked at it with the Google translator.

There are quite a few useful links there. If you want full blown code for tests, you'd probably need to write your own.

Related question:

https://security.stackexchange.com/questions/89020/what-comprises-the-ais-31-standard-for-trngs

• so there is no software, right? I looked at the website (it has English format too), I found some guidelines, not software. I am looking for a AIS31 setup similar to what NIST has. – Shabnam Jul 16 '19 at 21:30
• yes, you need to write the code yourself, as far as I know – kodlu Jul 17 '19 at 6:33

An important point of AIS31 is §2.4.5, Additional Statistical Tests. They subsume all other randomness tests, specifically mentioning SP 800-90B. So you would have to implement the theoretical tests AIS31 mentions yourself. Although §2.4.5 implies that you can simply run with other standardised tests. For that reason I wouldn't bother with an implementation. But if you do bother, you can test your code against /dev/urandom output, or binary expansions of the irrational numbers like $$\pi, e, \phi, \sqrt{2}$$ etc.

It's worth mentioning that these are not really the two main test suites. Diehard and Dieharder are also very common, depending on the size of the sample you can generate. With hindsight, you find that AIS31 is very uncommon in the wild for not having been implemented in a standardised code base.

The direct link for an English version is here.