1PRACTRAND-RNG_TEST(1)            User Commands           PRACTRAND-RNG_TEST(1)
2
3
4

NAME

6       practrand-RNG_test - manual page for practrand-RNG_test using PractRand
7       version 0.95
8

DESCRIPTION

10       practrand-RNG_test  using  PractRand   version   0.95   syntax:   prac‐
11       trand-RNG_test  RNG_name [options] or: practrand-RNG_test  (use no com‐
12       mand line options to see brief overview) or: practrand-RNG_test  --help
13       (to see this message) or: practrand-RNG_test --version  (to see version
14       number) A command line tool for testing RNGs  with  the  PractRand  li‐
15       brary.  RNG names:
16
17              To use an external RNG, use stdin as an RNG name and pipe in the
18              random numbers.  stdin8,  stdin16,  stdin32,  and  stdin64  also
19              work,  each  interpretting the input in slightly different ways.
20              Use stdin if you're uncertain how many bits the RNG produces  at
21              a time, or if it's not one of those options.  The lowest quality
22              recommended RNGs are sfc16 and  mt19937.   The  entropy  pooling
23              RNGs  available are arbee and sha2_basd_pool.  Small recommended
24              RNGs include sfc16, sfc32, sfc64, jsf32, jsf64, .
25
26   threshold options:
27              At most one threshold option should be specified.   The  default
28              threshold  setting  is  '-e 0.1', alternatives are '-p 0.001' or
29              '-a'
30
31       -a     no threshold - display all test results.
32
33       -e EXPECTED
34              sets intelligent p-value thesholds to display an expected number
35              of  test results equal to EXPECTED.  If EXPECTED is zero or less
36              then intelligent p-value thresholds will be disabled EXPECTED is
37              a float with default value 0.1
38
39       -p THRESHOLD
40              sets  simple  p-value  thresholds  to  display  any test results
41              within THRESHOLD of an extrema.  If THRESHOLD is  zero  or  less
42              then  simple  p-value thresholds will be disabled THRESHOLD is a
43              float with recommended value 0.001
44
45   test set options:
46              The default test set options are '-tf 1' and '-te 0'
47
48       -tf FOLDING
49              FOLDING may be 0, 1, or 2.  0 means that the base tests are  run
50              on  only the raw test data.  1 means that the base tests are run
51              on the raw test data and also on a simple transform that  empha‐
52              sizes the lowest bits.  2 means that the base tests are run on a
53              wider variety of transforms of the test data.
54
55       -te EXPANDED
56              EXPANDED may be 0 or 1.  0 means that the base  tests  used  are
57              the  normal  ones  for  PractRand, optimized for sensitivity per
58              time.  1 means that the expanded test set is used, optimized for
59              sensitivity  per  bit.  ... and now additional value(s) are sup‐
60              ported.  Setting this to 10 will use an systematically expanding
61              Birthday Spacings Test in place of a normal test set.  This test
62              is separate because it uses too much memory to run  concurrently
63              with other tests
64
65   test target options:
66              At most one test target option should be specified.  The default
67              test target option is '-ttnormal'
68
69       -ttnormal
70              Test target: normal - the testing is done on the RNGs output.
71
72       -ttseed64
73              Test target: RNG seeding from 64 bit integers.  First,  the  RNG
74              is  seeded  with a randomly chosen 64 bit integer.  Then 8 bytes
75              of output are taken from the RNG and given to the  tests.   Then
76              another  seed is chosen at a low hamming distance from the prior
77              seed and another 8 bytes of RNG output are given to  the  tests.
78              This  is  repeated indefinitely, with care taken to minimize the
79              amount of duplicate seeds used.
80
81       -ttep  Test target: Entropy pooling.  This should only be done on  RNGs
82              that  support  entropy pooling.  It is similar to -ttseed64, but
83              the entropy accumulation methods  are  used  instead  of  simple
84              seeding, and the amount of entropy used is much larger.
85
86       -walk_sequence
87              Some test-target modes will search seeds sequentially, each sub‐
88              sequent seed 1 higher than the previous.
89
90       -walk_greycode
91              Some test-target modes will search seeds in a  simple  greycoded
92              sequence,  each  subsequent  seed at Hamming distance 1 from the
93              prior in a strict order.
94
95       -walk_random
96              Some test-target modes will search seeds in a random walk,  each
97              subsequent  seed  chosen at random from unused values at Hamming
98              distance 1 from the prior value.
99
100       -walk_random_l
101              Some test-target modes will search seeds in a random walk,  each
102              subsequent  seed  chosen at random from unused values at Hamming
103              distance 1 from the prior value, but lower bits will be  changed
104              much more often than higher bits.
105
106       -walk_random_h
107              Some  test-target modes will search seeds in a random walk, each
108              subsequent seed chosen at random from unused values  at  Hamming
109              distance 1 from the prior value, but higher bits will be changed
110              much more often than lower bits.
111
112   test length options:
113       -tlmin LENGTH
114              sets the minimum test length to LENGTH.  The tests will  run  on
115              that  much  data  before  it starts printing regular results.  A
116              large minimum will prevent it from  displaying  results  on  any
117              test  lengths  other  than the maximum length (set by tlmax) and
118              lengths that were explicitly requested (by tlshow).   See  notes
119              on  lengths  for  details on how to express the length you want.
120              The default minimum is 1.5 seconds (-tlmin 1.5s).
121
122       -tlmax LENGTH
123              sets the maximum test length to LENGTH.  The tests will stop af‐
124              ter  that much data.  See notes on lengths for details on how to
125              express the length you want.  The default  maximum  is  32  ter‐
126              abytes (-tlmin 32TB).
127
128       -tlshow LENGTH sets an additional point at which to display interim re‐
129              sults.
130
131              You can set multiple such points if desired.  These are in addi‐
132              tion  to  the  normal interim results points, which are at every
133              amount of data that is a power of 2 after the minimum and before
134              the maximum.  See the notes on lengths for details on how to ex‐
135              press the lengths you want.
136
137       -tlfail
138              Halts testing after interim results are displayed if  those  re‐
139              sults include any failures. (default)
140
141       -tlmaxonly
142              The opposite of -tlfail
143
144   other options:
145       -multithreaded
146              enables  multithreaded  testing.  Typically up to 5 cores can be
147              used at once.
148
149       -singlethreaded disables multithreaded testing.
150              (default)
151
152       -seed SEED
153              specifies a 64 bit integer to seed the tested RNG with.   If  no
154              seed  is  specified  then  a  seed will be chosen randomly.  The
155              value should be expressed in hexadecimal.  An '0x' prefix on the
156              seed is acceptable but not necessary.
157
158       -list_recommended_rngs
159              List the names of all recommended PRNGs.
160
161       -list_reference_rngs
162              List  the  names of all PRNGs used Tests_results.txt.  These are
163              (mostly) bad PRNGs used as a reference set for comparing differ‐
164              ent PRNG test suites.
165
166   notes on lengths:
167       Each of the test length options requires a field named LENGTH.
168              These fields
169
170       can accept either an amount of time or an amount of data.
171              In either case,
172
173              several  types  of  units  are  supported.  A time should be ex‐
174              pressed as a number postfixed with either s, m, h, or d, to  ex‐
175              press  a  number  of seconds, minutes, hours, or days.  example:
176              -tlmin 1.4s (sets the minimum test length  to  1.4  seconds)  An
177              amount  of data can be expressed as a number with no postfix, in
178              which case the number will be treated as the log-based-2 of  the
179              amount  of  bytes  to  test  (in  normal  target  mode)  or  the
180              log-baed-2 of the number of seeds or strings to test  in  alter‐
181              nate  test  target  modes.  example: -tlmin 23 (sets the minimum
182              test length to 8 million bytes or 8
183
184              million seeds, depending upon test target mode)
185
186              Alternatively, an amount of data can be expressed  as  a  number
187              followed  by KB, MB, GB, TB, or PB for kilobytes, megabytes, gi‐
188              gabytes, or petabytes.  example: -tlmin 14KB (sets  the  minimum
189              test  length  to 14 kilobytes If the B is omitted on KB, MB, GB,
190              TB, or PB then it treat the metric prefixes as refering to  num‐
191              bers of bytes in normal test target mode, or numbers of seeds in
192              seeding test target mode, or numbers of strings in entropy pool‐
193              ing  test  target  mode.   example: -tlmin 40M (sets the minimum
194              test length to ~40 million bytes or ~40
195
196              million seeds, depending upon test target mode)
197
198              A minor detail: I use the de facto standard (in  which  K  means
199              1024 when dealing with quantities of binary information) not the
200              official standard (in which K means 1000 no matter what is being
201              dealt with unless an 'i' follows the 'K').
202
203       practrand-RNG_test  version  0.95  A command line tool for testing RNGs
204       with the PractRand library.
205

EXAMPLES

207       practrand-RNG_test stdin </dev/urandom
208         Test quality of random numbers produced Linux's kernel urandom RNG
209
210       practrand-RNG_test jsf64 -tlmax 4G
211         Test built-in Bob Jenkins Small Fast (Noncryptographic)  PRNG,  using
212       maximum   set  length  of  4GiB.  See  /usr/share/doc/practrand/RNG_en‐
213       gines.txt for the info about the built-in RNGs.
214
215       practrand-RNG_test jsf64 -tlmax 4G -multithreaded
216         Test built-in jsf64 PRNG, running the tests multithreaded.
217
218       practrand-RNG_output hc256 inf | practrand-RNG_test stdin32  -tlmax  4G
219       practrand-RNG_test hc256 -tlmax 4G
220         Test  first  4 GiB of HC-256 RNG. Compare performance of built-in RNG
221       versus using pipe to pass the data from the external process.
222
223       bash -c "(ime practrand-RNG_output hc256 $(bc <<< 4*2^30)) | (ime prac‐
224       trand-RNG_test stdin32 -tlmax 4G -multithreaded)"
225         Collecting  performance  data  to test first 4GiB bytes of HC-256 RNG
226       using the multithreaded test.
227

SEE ALSO

229       The full documentation for practrand-RNG_test is maintained as  a  Tex‐
230       info  manual.  If the info and practrand-RNG_test programs are properly
231       installed at your site, the command
232
233              info practrand-RNG_test
234
235       should give you access to the complete manual.
236
237
238
239practrand-RNG_test using PractRand vJeurlsyio2n0203.95          PRACTRAND-RNG_TEST(1)
Impressum