1PRACTRAND-RNG_TEST(1) User Commands PRACTRAND-RNG_TEST(1)
2
3
4
6 practrand-RNG_test - manual page for practrand-RNG_test using PractRand
7 version 0.95
8
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
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
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)