4.3.15 Проверка случайных отклонений (Random-Excursion).
Внимание этого теста сосредоточено на числе циклов, имеющих точно K посещений в совокупной сумме случайного хождения. Совокупная сумма случайного хождения получена из частичных сумм после замены 0 и 1 в исходной последовательности на −1 и +1. Цикл случайного хождения состоит из последовательности шагов длины единицы, которая начинается и заканчивается в одном и том же состоянии. Цель этого теста состоит в том, чтобы определить, отклоняется ли число посещений отдельного состояния в пределах цикла, от того, которого можно было бы ожидать для случайной последовательности.
4.3.16Проверка случайных отклонений (вариант) (Random-Excursion-V).
Внимание этого теста сосредоточено на общем количестве посещений отдельных состояния в совокупной сумме случайного хождения. Цель этого теста состоит в том, чтобы обнаружить отклонения от ожидаемого числа посещений различных состояний в случайном хождении. Данный тест является расширением предыдущего.
4.4Результат тестирования генератора.
Ниже приведено содержимое файла результата тестирования генератора.
--------------------------------------------------------------------------------
C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 P-VALUE PROPORTION STATISTICAL TEST
--------------------------------------------------------------------------------
103 |
87 |
84 |
98 |
100 |
102 |
117 |
103 |
113 |
93 |
0.385543 |
0.9920 |
Frequency |
101 |
95 |
89 |
115 |
93 |
95 |
107 |
102 |
109 |
94 |
0.723804 |
0.9900 |
Block-Frequency |
91 |
99 |
91 |
94 |
96 |
104 |
105 |
95 |
116 |
109 |
0.721777 |
0.9910 |
Cusum |
102 |
90 |
78 |
102 |
102 |
94 |
99 |
120 |
114 |
99 |
0.196920 |
0.9900 |
Cusum |
82 |
99 |
91 |
86 |
112 |
122 |
106 |
112 |
95 |
95 |
0.102526 |
0.9930 |
Runs |
94 |
101 |
97 |
101 |
101 |
92 |
100 |
104 |
108 |
102 |
0.992084 |
0.9980 |
Long-Run |
85 |
103 |
116 |
116 |
112 |
83 |
84 |
108 |
107 |
86 |
0.042255 |
0.9960 |
Rank |
97 |
124 |
101 |
116 |
102 |
104 |
94 |
88 |
80 |
94 |
0.097159 |
0.9970 |
FFT |
98 |
107 |
103 |
92 |
94 |
82 |
98 |
106 |
101 |
119 |
0.448424 |
0.9870 |
Aperiodic-Template |
95 |
89 |
108 |
94 |
106 |
100 |
96 |
104 |
84 |
124 |
0.245490 |
0.9890 |
Aperiodic-Template |
110 |
84 |
94 |
96 |
102 |
104 |
93 |
84 |
120 |
113 |
0.161703 |
0.9890 |
Aperiodic-Template |
112 |
80 |
99 |
92 |
110 |
108 |
94 |
97 |
101 |
107 |
0.467322 |
0.9880 |
Aperiodic-Template |
93 |
125 |
93 |
106 |
107 |
104 |
82 |
105 |
84 |
101 |
0.112047 |
0.9920 |
Aperiodic-Template |
101 |
104 |
106 |
100 |
102 |
103 |
78 |
92 |
108 |
106 |
0.622546 |
0.9870 |
Aperiodic-Template |
102 |
95 |
113 |
106 |
85 |
102 |
99 |
110 |
100 |
88 |
0.628790 |
0.9880 |
Aperiodic-Template |
112 |
91 |
98 |
97 |
85 |
99 |
111 |
99 |
98 |
110 |
0.647530 |
0.9860 |
Aperiodic-Template |
108 |
108 |
102 |
89 |
119 |
97 |
80 |
91 |
104 |
102 |
0.259616 |
0.9850 |
Aperiodic-Template |
119 |
114 |
85 |
96 |
86 |
123 |
89 |
103 |
94 |
91 |
0.038818 |
0.9880 |
Aperiodic-Template |
91 |
96 |
93 |
105 |
113 |
125 |
92 |
93 |
90 |
102 |
0.223648 |
0.9880 |
Aperiodic-Template |
106 |
92 |
92 |
94 |
110 |
93 |
119 |
102 |
100 |
92 |
0.556460 |
0.9920 |
Aperiodic-Template |
125 |
80 |
86 |
107 |
102 |
87 |
107 |
110 |
96 |
100 |
0.065230 |
0.9860 |
Aperiodic-Template |
90 |
80 |
104 |
110 |
124 |
104 |
102 |
82 |
104 |
100 |
0.077607 |
0.9880 |
Aperiodic-Template |
118 |
94 |
103 |
90 |
122 |
107 |
89 |
92 |
101 |
84 |
0.107512 |
0.9840 |
Aperiodic-Template |
107 |
103 |
86 |
98 |
106 |
110 |
98 |
98 |
114 |
80 |
0.352107 |
0.9890 |
Aperiodic-Template |
89 |
113 |
98 |
100 |
108 |
106 |
87 |
95 |
107 |
97 |
0.693142 |
0.9950 |
Aperiodic-Template |
102 |
99 |
91 |
95 |
111 |
99 |
94 |
102 |
104 |
103 |
0.965083 |
0.9910 |
Aperiodic-Template |
102 |
117 |
89 |
112 |
94 |
102 |
95 |
91 |
102 |
96 |
0.612147 |
0.9870 |
Aperiodic-Template |
83 |
117 |
87 |
93 |
124 |
97 |
100 |
87 |
112 |
100 |
0.049664 |
0.9910 |
Aperiodic-Template |
100 |
97 |
116 |
94 |
93 |
98 |
90 |
104 |
113 |
95 |
0.674543 |
0.9880 |
Aperiodic-Template |
110 |
114 |
101 |
112 |
96 |
86 |
96 |
109 |
91 |
85 |
0.307077 |
0.9850 |
Aperiodic-Template |
96 |
97 |
91 |
98 |
108 |
106 |
91 |
95 |
111 |
107 |
0.846338 |
0.9940 |
Aperiodic-Template |
104 |
105 |
106 |
92 |
104 |
89 |
96 |
92 |
109 |
103 |
0.877083 |
0.9890 |
Aperiodic-Template |
107 |
121 |
98 |
84 |
98 |
104 |
89 |
96 |
96 |
107 |
0.373625 |
0.9940 |
Aperiodic-Template |
98 |
110 |
102 |
81 |
121 |
99 |
122 |
92 |
89 |
86 |
0.038062 |
0.9920 |
Aperiodic-Template |
101 |
101 |
115 |
102 |
101 |
97 |
97 |
96 |
106 |
84 |
0.781106 |
0.9930 |
Aperiodic-Template |
30
115 |
111 |
98 |
74 |
108 |
88 |
100 |
112 |
98 |
96 |
0.123038 |
0.9940 |
Aperiodic-Template |
96 |
94 |
105 |
112 |
109 |
88 |
97 |
88 |
111 |
100 |
0.616305 |
0.9930 |
Aperiodic-Template |
92 |
120 |
107 |
102 |
77 |
99 |
116 |
86 |
103 |
98 |
0.087692 |
0.9890 |
Aperiodic-Template |
104 |
92 |
106 |
98 |
89 |
92 |
117 |
104 |
85 |
113 |
0.347257 |
0.9900 |
Aperiodic-Template |
86 |
107 |
112 |
88 |
93 |
88 |
101 |
111 |
94 |
120 |
0.169981 |
0.9880 |
Aperiodic-Template |
104 |
99 |
90 |
114 |
102 |
93 |
108 |
113 |
79 |
98 |
0.316052 |
0.9880 |
Aperiodic-Template |
107 |
104 |
110 |
89 |
95 |
98 |
95 |
104 |
99 |
99 |
0.936823 |
0.9850 |
Aperiodic-Template |
98 |
113 |
105 |
105 |
96 |
85 |
102 |
116 |
91 |
89 |
0.413628 |
0.9900 |
Aperiodic-Template |
83 |
95 |
100 |
116 |
88 |
115 |
94 |
116 |
102 |
91 |
0.155499 |
0.9930 |
Aperiodic-Template |
97 |
101 |
101 |
102 |
116 |
86 |
102 |
102 |
98 |
95 |
0.830808 |
0.9930 |
Aperiodic-Template |
109 |
93 |
101 |
103 |
113 |
96 |
103 |
87 |
115 |
80 |
0.257004 |
0.9880 |
Aperiodic-Template |
88 |
114 |
93 |
117 |
104 |
89 |
99 |
95 |
110 |
91 |
0.332970 |
0.9920 |
Aperiodic-Template |
97 |
129 |
99 |
78 |
93 |
96 |
115 |
101 |
108 |
84 |
0.021554 |
0.9870 |
Aperiodic-Template |
92 |
103 |
97 |
93 |
114 |
114 |
100 |
95 |
90 |
102 |
0.686955 |
0.9950 |
Aperiodic-Template |
104 |
105 |
89 |
102 |
85 |
110 |
93 |
87 |
117 |
108 |
0.302657 |
0.9930 |
Aperiodic-Template |
96 |
87 |
122 |
97 |
99 |
90 |
123 |
101 |
89 |
96 |
0.106877 |
0.9860 |
Aperiodic-Template |
96 |
109 |
105 |
102 |
102 |
101 |
83 |
106 |
105 |
91 |
0.777265 |
0.9880 |
Aperiodic-Template |
113 |
96 |
119 |
78 |
115 |
102 |
103 |
93 |
81 |
100 |
0.052275 |
0.9930 |
Aperiodic-Template |
89 |
98 |
112 |
90 |
97 |
105 |
90 |
111 |
106 |
102 |
0.674543 |
0.9900 |
Aperiodic-Template |
101 |
102 |
96 |
96 |
100 |
93 |
107 |
96 |
87 |
122 |
0.530120 |
0.9920 |
Aperiodic-Template |
102 |
97 |
100 |
96 |
86 |
102 |
113 |
96 |
111 |
97 |
0.794391 |
0.9900 |
Aperiodic-Template |
101 |
104 |
102 |
101 |
95 |
94 |
102 |
113 |
96 |
92 |
0.948298 |
0.9910 |
Aperiodic-Template |
103 |
102 |
91 |
91 |
105 |
94 |
100 |
116 |
102 |
96 |
0.823725 |
0.9870 |
Aperiodic-Template |
100 |
105 |
86 |
102 |
103 |
103 |
101 |
85 |
91 |
124 |
0.258307 |
0.9880 |
Aperiodic-Template |
88 |
86 |
93 |
96 |
111 |
105 |
103 |
97 |
124 |
97 |
0.240501 |
0.9830 |
Aperiodic-Template |
81 |
112 |
98 |
96 |
113 |
87 |
95 |
118 |
94 |
106 |
0.169981 |
0.9900 |
Aperiodic-Template |
104 |
98 |
96 |
104 |
108 |
103 |
100 |
86 |
113 |
88 |
0.705466 |
0.9920 |
Aperiodic-Template |
82 |
93 |
101 |
103 |
104 |
122 |
91 |
85 |
107 |
112 |
0.128874 |
0.9900 |
Aperiodic-Template |
105 |
106 |
97 |
85 |
98 |
98 |
91 |
116 |
118 |
86 |
0.236810 |
0.9870 |
Aperiodic-Template |
108 |
108 |
94 |
104 |
114 |
86 |
90 |
88 |
102 |
106 |
0.478839 |
0.9900 |
Aperiodic-Template |
106 |
89 |
100 |
107 |
102 |
105 |
93 |
101 |
111 |
86 |
0.737915 |
0.9890 |
Aperiodic-Template |
114 |
92 |
105 |
107 |
98 |
91 |
103 |
96 |
94 |
100 |
0.851383 |
0.9900 |
Aperiodic-Template |
88 |
75 |
91 |
115 |
108 |
90 |
110 |
124 |
91 |
108 |
0.014550 |
0.9920 |
Aperiodic-Template |
123 |
97 |
77 |
89 |
95 |
104 |
91 |
109 |
112 |
103 |
0.079538 |
0.9900 |
Aperiodic-Template |
91 |
100 |
99 |
104 |
89 |
108 |
109 |
92 |
107 |
101 |
0.853049 |
0.9910 |
Aperiodic-Template |
99 |
104 |
105 |
123 |
100 |
84 |
102 |
104 |
91 |
88 |
0.295391 |
0.9930 |
Aperiodic-Template |
90 |
108 |
94 |
102 |
96 |
106 |
96 |
102 |
118 |
88 |
0.591409 |
0.9870 |
Aperiodic-Template |
103 |
93 |
100 |
103 |
89 |
98 |
92 |
112 |
105 |
105 |
0.875539 |
0.9930 |
Aperiodic-Template |
102 |
108 |
95 |
89 |
104 |
84 |
106 |
96 |
115 |
101 |
0.570792 |
0.9880 |
Aperiodic-Template |
103 |
106 |
76 |
98 |
122 |
98 |
110 |
94 |
102 |
91 |
0.147815 |
0.9920 |
Aperiodic-Template |
105 |
105 |
109 |
82 |
89 |
97 |
119 |
89 |
98 |
107 |
0.262249 |
0.9940 |
Aperiodic-Template |
108 |
120 |
89 |
83 |
99 |
113 |
93 |
106 |
87 |
102 |
0.161703 |
0.9880 |
Aperiodic-Template |
102 |
94 |
105 |
104 |
102 |
104 |
116 |
97 |
101 |
75 |
0.357000 |
0.9880 |
Aperiodic-Template |
83 |
98 |
104 |
91 |
111 |
109 |
99 |
83 |
100 |
122 |
0.134944 |
0.9960 |
Aperiodic-Template |
91 |
90 |
113 |
96 |
107 |
96 |
88 |
110 |
109 |
100 |
0.579021 |
0.9890 |
Aperiodic-Template |
104 |
75 |
114 |
103 |
102 |
107 |
96 |
103 |
99 |
97 |
0.406499 |
0.9860 |
Aperiodic-Template |
100 |
79 |
122 |
118 |
88 |
91 |
103 |
104 |
101 |
94 |
0.081510 |
0.9930 |
Aperiodic-Template |
97 |
108 |
103 |
94 |
92 |
82 |
99 |
106 |
100 |
119 |
0.433590 |
0.9870 |
Aperiodic-Template |
100 |
102 |
94 |
100 |
113 |
111 |
94 |
99 |
98 |
89 |
0.841226 |
0.9940 |
Aperiodic-Template |
103 |
106 |
88 |
108 |
87 |
99 |
114 |
98 |
96 |
101 |
0.699313 |
0.9900 |
Aperiodic-Template |
105 |
92 |
109 |
89 |
92 |
100 |
107 |
98 |
104 |
104 |
0.883171 |
0.9840 |
Aperiodic-Template |
89 |
77 |
104 |
111 |
99 |
102 |
98 |
95 |
117 |
108 |
0.228367 |
0.9920 |
Aperiodic-Template |
82 |
89 |
112 |
96 |
104 |
128 |
100 |
104 |
94 |
91 |
0.081013 |
0.9910 |
Aperiodic-Template |
120 |
87 |
79 |
101 |
115 |
96 |
103 |
108 |
93 |
98 |
0.130369 |
0.9870 |
Aperiodic-Template |
89 |
100 |
109 |
99 |
101 |
104 |
106 |
97 |
99 |
96 |
0.971006 |
0.9900 |
Aperiodic-Template |
91 |
113 |
93 |
100 |
120 |
109 |
88 |
92 |
92 |
102 |
0.307077 |
0.9920 |
Aperiodic-Template |
100 |
95 |
118 |
88 |
92 |
101 |
96 |
101 |
104 |
105 |
0.723804 |
0.9840 |
Aperiodic-Template |
90 |
105 |
94 |
109 |
98 |
93 |
107 |
108 |
87 |
109 |
0.680755 |
0.9890 |
Aperiodic-Template |
105 |
121 |
86 |
95 |
114 |
97 |
95 |
96 |
94 |
97 |
0.368587 |
0.9830 |
Aperiodic-Template |
106 |
107 |
105 |
88 |
85 |
108 |
100 |
108 |
89 |
104 |
0.591409 |
0.9920 |
Aperiodic-Template |
94 |
113 |
83 |
105 |
118 |
86 |
107 |
105 |
98 |
91 |
0.214439 |
0.9900 |
Aperiodic-Template |
101 |
95 |
90 |
92 |
105 |
95 |
96 |
115 |
109 |
102 |
0.773405 |
0.9930 |
Aperiodic-Template |
85 |
90 |
102 |
107 |
111 |
115 |
90 |
88 |
111 |
101 |
0.282626 |
0.9930 |
Aperiodic-Template |
102 |
89 |
96 |
104 |
111 |
110 |
103 |
105 |
87 |
93 |
0.709558 |
0.9930 |
Aperiodic-Template |
103 |
96 |
89 |
112 |
93 |
104 |
101 |
106 |
95 |
101 |
0.899171 |
0.9880 |
Aperiodic-Template |
115 |
106 |
96 |
106 |
85 |
90 |
102 |
92 |
101 |
107 |
0.579021 |
0.9880 |
Aperiodic-Template |
92 |
100 |
89 |
93 |
108 |
110 |
94 |
93 |
120 |
101 |
0.452173 |
0.9920 |
Aperiodic-Template |
95 |
95 |
107 |
90 |
109 |
93 |
114 |
104 |
94 |
99 |
0.761719 |
0.9900 |
Aperiodic-Template |
96 |
102 |
104 |
97 |
86 |
102 |
86 |
114 |
107 |
106 |
0.614226 |
0.9920 |
Aperiodic-Template |
101 |
93 |
90 |
101 |
114 |
106 |
95 |
102 |
99 |
99 |
0.901959 |
0.9940 |
Aperiodic-Template |
98 |
100 |
97 |
110 |
121 |
109 |
98 |
87 |
97 |
83 |
0.271619 |
0.9940 |
Aperiodic-Template |
98 |
93 |
101 |
93 |
102 |
105 |
112 |
97 |
101 |
98 |
0.968128 |
0.9890 |
Aperiodic-Template |
108 |
95 |
98 |
96 |
108 |
100 |
98 |
105 |
108 |
84 |
0.814724 |
0.9870 |
Aperiodic-Template |
101 |
102 |
108 |
94 |
111 |
91 |
110 |
97 |
96 |
90 |
0.805569 |
0.9870 |
Aperiodic-Template |
31
98 |
109 |
104 |
113 |
92 |
94 |
103 |
104 |
95 |
88 |
0.775337 |
0.9950 |
Aperiodic-Template |
102 |
107 |
105 |
90 |
76 |
107 |
107 |
91 |
105 |
110 |
0.305599 |
0.9860 |
Aperiodic-Template |
90 |
78 |
102 |
109 |
105 |
93 |
98 |
117 |
101 |
107 |
0.285427 |
0.9900 |
Aperiodic-Template |
88 |
97 |
108 |
95 |
104 |
107 |
95 |
100 |
99 |
107 |
0.922855 |
0.9900 |
Aperiodic-Template |
98 |
121 |
91 |
108 |
98 |
92 |
106 |
92 |
87 |
107 |
0.370262 |
0.9940 |
Aperiodic-Template |
95 |
97 |
100 |
91 |
106 |
108 |
96 |
106 |
100 |
101 |
0.975644 |
0.9910 |
Aperiodic-Template |
93 |
102 |
111 |
112 |
106 |
105 |
85 |
89 |
90 |
107 |
0.461612 |
0.9880 |
Aperiodic-Template |
96 |
85 |
100 |
106 |
99 |
101 |
107 |
95 |
111 |
100 |
0.856359 |
0.9920 |
Aperiodic-Template |
112 |
97 |
107 |
94 |
86 |
91 |
116 |
107 |
90 |
100 |
0.419021 |
0.9920 |
Aperiodic-Template |
90 |
105 |
103 |
109 |
103 |
122 |
99 |
89 |
82 |
98 |
0.238035 |
0.9900 |
Aperiodic-Template |
117 |
102 |
92 |
98 |
96 |
98 |
112 |
109 |
91 |
85 |
0.426272 |
0.9850 |
Aperiodic-Template |
87 |
108 |
98 |
94 |
107 |
100 |
104 |
102 |
103 |
97 |
0.935716 |
0.9940 |
Aperiodic-Template |
106 |
112 |
95 |
118 |
87 |
86 |
84 |
100 |
104 |
108 |
0.196920 |
0.9860 |
Aperiodic-Template |
116 |
95 |
95 |
98 |
107 |
81 |
97 |
113 |
101 |
97 |
0.429923 |
0.9900 |
Aperiodic-Template |
105 |
106 |
98 |
87 |
116 |
98 |
100 |
105 |
97 |
88 |
0.666245 |
0.9880 |
Aperiodic-Template |
110 |
81 |
87 |
111 |
106 |
93 |
101 |
94 |
100 |
117 |
0.235589 |
0.9850 |
Aperiodic-Template |
97 |
88 |
115 |
116 |
91 |
106 |
99 |
103 |
91 |
94 |
0.457825 |
0.9880 |
Aperiodic-Template |
91 |
107 |
90 |
99 |
81 |
95 |
110 |
96 |
109 |
122 |
0.163513 |
0.9930 |
Aperiodic-Template |
90 |
94 |
98 |
88 |
109 |
100 |
95 |
101 |
117 |
108 |
0.591409 |
0.9940 |
Aperiodic-Template |
102 |
104 |
104 |
107 |
113 |
97 |
95 |
90 |
88 |
100 |
0.805569 |
0.9920 |
Aperiodic-Template |
83 |
106 |
112 |
111 |
96 |
93 |
105 |
106 |
87 |
101 |
0.450297 |
0.9930 |
Aperiodic-Template |
84 |
105 |
98 |
105 |
94 |
98 |
119 |
121 |
104 |
72 |
0.021117 |
0.9880 |
Aperiodic-Template |
97 |
103 |
94 |
105 |
93 |
107 |
89 |
86 |
94 |
132 |
0.077131 |
0.9870 |
Aperiodic-Template |
84 |
100 |
92 |
89 |
106 |
119 |
87 |
116 |
111 |
96 |
0.122325 |
0.9880 |
Aperiodic-Template |
82 |
102 |
108 |
95 |
106 |
110 |
96 |
108 |
102 |
91 |
0.618385 |
0.9910 |
Aperiodic-Template |
85 |
93 |
97 |
108 |
102 |
101 |
108 |
102 |
97 |
107 |
0.853049 |
0.9910 |
Aperiodic-Template |
96 |
96 |
95 |
76 |
119 |
111 |
105 |
93 |
107 |
102 |
0.190654 |
0.9960 |
Aperiodic-Template |
126 |
89 |
107 |
103 |
96 |
85 |
89 |
119 |
95 |
91 |
0.051281 |
0.9820 |
Aperiodic-Template |
85 |
104 |
111 |
97 |
92 |
102 |
95 |
105 |
98 |
111 |
0.725829 |
0.9870 |
Aperiodic-Template |
105 |
94 |
93 |
119 |
92 |
95 |
107 |
84 |
111 |
100 |
0.361938 |
0.9860 |
Aperiodic-Template |
102 |
96 |
96 |
116 |
107 |
94 |
101 |
108 |
103 |
77 |
0.366918 |
0.9890 |
Aperiodic-Template |
114 |
100 |
97 |
97 |
92 |
108 |
93 |
94 |
106 |
99 |
0.864494 |
0.9890 |
Aperiodic-Template |
107 |
120 |
103 |
102 |
94 |
103 |
88 |
95 |
86 |
102 |
0.459717 |
0.9910 |
Aperiodic-Template |
96 |
94 |
92 |
103 |
97 |
113 |
99 |
92 |
112 |
102 |
0.820143 |
0.9900 |
Aperiodic-Template |
107 |
83 |
95 |
96 |
113 |
109 |
103 |
83 |
107 |
104 |
0.357000 |
0.9860 |
Aperiodic-Template |
87 |
114 |
104 |
107 |
97 |
97 |
94 |
95 |
115 |
90 |
0.500279 |
0.9920 |
Aperiodic-Template |
89 |
94 |
101 |
85 |
106 |
102 |
100 |
104 |
108 |
111 |
0.715679 |
0.9880 |
Aperiodic-Template |
95 |
87 |
116 |
114 |
82 |
91 |
119 |
112 |
94 |
90 |
0.049984 |
0.9900 |
Aperiodic-Template |
94 |
89 |
113 |
124 |
96 |
110 |
89 |
91 |
96 |
98 |
0.191687 |
0.9890 |
Aperiodic-Template |
123 |
90 |
104 |
87 |
96 |
88 |
108 |
110 |
96 |
98 |
0.238035 |
0.9860 |
Aperiodic-Template |
115 |
85 |
90 |
89 |
106 |
92 |
107 |
113 |
98 |
105 |
0.336111 |
0.9910 |
Aperiodic-Template |
112 |
111 |
99 |
91 |
105 |
93 |
100 |
94 |
87 |
108 |
0.647530 |
0.9850 |
Aperiodic-Template |
118 |
107 |
109 |
100 |
91 |
86 |
80 |
100 |
97 |
112 |
0.169981 |
0.9880 |
Aperiodic-Template |
107 |
98 |
86 |
88 |
119 |
98 |
99 |
117 |
92 |
96 |
0.257004 |
0.9920 |
Aperiodic-Template |
100 |
100 |
102 |
96 |
101 |
106 |
103 |
104 |
84 |
104 |
0.939005 |
0.9890 |
Aperiodic-Template |
96 |
115 |
92 |
95 |
99 |
105 |
112 |
95 |
90 |
101 |
0.713641 |
0.9880 |
Aperiodic-Template |
100 |
79 |
122 |
118 |
88 |
91 |
102 |
106 |
101 |
93 |
0.074791 |
0.9930 |
Aperiodic-Template |
128 |
91 |
89 |
105 |
105 |
104 |
101 |
89 |
93 |
95 |
0.187581 |
0.9910 |
Periodic-Template |
105 |
116 |
110 |
90 |
99 |
108 |
82 |
105 |
88 |
97 |
0.313041 |
0.9870 |
Universal |
87 |
92 |
115 |
114 |
105 |
90 |
99 |
83 |
112 |
103 |
0.201189 |
0.9950 |
Apen |
61 |
57 |
47 |
76 |
67 |
56 |
68 |
43 |
64 |
87 |
0.003270 |
0.9904 |
Random-Excursion |
61 |
48 |
64 |
71 |
68 |
51 |
71 |
61 |
72 |
59 |
0.337586 |
0.9856 |
Random-Excursion |
60 |
50 |
68 |
67 |
52 |
69 |
48 |
77 |
65 |
70 |
0.131806 |
0.9872 |
Random-Excursion |
62 |
77 |
58 |
66 |
79 |
61 |
62 |
45 |
59 |
57 |
0.121182 |
0.9856 |
Random-Excursion |
51 |
72 |
69 |
67 |
73 |
65 |
56 |
64 |
58 |
51 |
0.374496 |
0.9904 |
Random-Excursion |
72 |
63 |
57 |
60 |
58 |
63 |
53 |
72 |
60 |
68 |
0.746358 |
0.9872 |
Random-Excursion |
55 |
62 |
69 |
62 |
57 |
52 |
75 |
55 |
69 |
70 |
0.443251 |
0.9952 |
Random-Excursion |
59 |
72 |
65 |
59 |
63 |
66 |
68 |
53 |
58 |
63 |
0.876785 |
0.9808 |
Random-Excursion |
68 |
62 |
63 |
63 |
53 |
58 |
72 |
63 |
61 |
63 |
0.921704 |
0.9872 |
Random-Excursion-V |
60 |
68 |
70 |
50 |
56 |
68 |
48 |
73 |
83 |
50 |
0.019791 |
0.9872 |
Random-Excursion-V |
57 |
74 |
55 |
61 |
82 |
56 |
58 |
62 |
57 |
64 |
0.256333 |
0.9888 |
Random-Excursion-V |
60 |
60 |
65 |
72 |
68 |
67 |
59 |
61 |
58 |
56 |
0.919698 |
0.9888 |
Random-Excursion-V |
47 |
70 |
58 |
78 |
72 |
67 |
64 |
60 |
61 |
49 |
0.124639 |
0.9920 |
Random-Excursion-V |
42 |
55 |
76 |
55 |
73 |
76 |
61 |
70 |
54 |
64 |
0.030281 |
0.9936 |
Random-Excursion-V |
36 |
64 |
66 |
60 |
55 |
61 |
63 |
63 |
84 |
74 |
0.008096 |
0.9904 |
Random-Excursion-V |
42 |
55 |
68 |
64 |
70 |
62 |
70 |
62 |
69 |
64 |
0.289209 |
0.9984 |
Random-Excursion-V |
47 |
74 |
63 |
64 |
69 |
55 |
63 |
79 |
60 |
52 |
0.123477 |
0.9920 |
Random-Excursion-V |
69 |
56 |
55 |
61 |
70 |
52 |
65 |
58 |
59 |
81 |
0.262675 |
0.9936 |
Random-Excursion-V |
64 |
57 |
71 |
50 |
68 |
69 |
60 |
77 |
57 |
53 |
0.284657 |
0.9936 |
Random-Excursion-V |
62 |
65 |
63 |
71 |
57 |
66 |
64 |
52 |
67 |
59 |
0.886546 |
0.9952 |
Random-Excursion-V |
63 |
57 |
64 |
68 |
60 |
79 |
69 |
68 |
52 |
46 |
0.167034 |
0.9952 |
Random-Excursion-V |
63 |
64 |
64 |
59 |
69 |
80 |
58 |
66 |
52 |
51 |
0.320066 |
0.9952 |
Random-Excursion-V |
67 |
70 |
62 |
51 |
66 |
71 |
52 |
66 |
63 |
58 |
0.627044 |
0.9904 |
Random-Excursion-V |
69 |
65 |
66 |
52 |
55 |
68 |
70 |
54 |
65 |
62 |
0.700637 |
0.9888 |
Random-Excursion-V |
32
65 |
55 |
60 |
74 |
66 |
61 |
51 |
75 |
66 |
53 |
0.363700 |
0.9824 |
Random-Excursion-V |
61 |
58 |
65 |
76 |
59 |
54 |
71 |
61 |
67 |
54 |
0.583544 |
0.9856 |
Random-Excursion-V |
83 |
91 |
124 |
94 |
94 |
105 |
89 |
101 |
114 |
105 |
0.127393 |
0.9880 |
Serial |
83 |
101 |
98 |
105 |
105 |
101 |
100 |
91 |
101 |
115 |
0.686955 |
0.9940 |
Serial |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1000 0.000000 |
* 1.0000 |
Lempel-Ziv |
|
108 |
90 |
92 |
114 |
111 |
106 |
106 |
89 |
99 |
85 |
0.380407 |
0.9870 |
Linear-Complexity |
--------------------------------------------------------------------------------
Большое количество проведенных тестов объясняется тем, что некоторые тесты были пройдены несколько раз, но с разными внутренними параметрами. Например, тест Aperiodic-Template был пройден 148 раз для каждого отличного шаблона длины m = 9.
Существует два варианта оценки прохождения s последовательностями i-го теста.
1.Анализ числа появлений значений P-value.
Множество значений P-value [0; 1] разбивается на 10 категорий с вероятностями, равными 1/10 в каждой категории, после чего подсчи-
тывается νi, i = 1, k, — число последовательностей, значения P-value которых принадлежат i-ой категории (столбцы с 1 по 10).
Вычисляется статистика:
P10 (νi − s/10)2
χ2 = |
i=1 |
|
, |
|
|
s/10 |
по которой вычисляется значение P-valueT (11 столбец)
P-valueT = 1 − P (x, a), где P (x, a) =
Если для теста верно неравенство P-valueT считать пройденным.
2. Анализ значений P-value.
|
x |
|
1 |
Z0 |
e−tta−1 dt. |
(a) |
> 0.0001, то тест можно
Подсчитывается доля последовательностей, прошедших данный тест (то есть доля последовательностей, для которых P-value> α) (12 столбец). Значение этой доли должно лежать в интервале
"1 − α − 3r |
|
|
; 1 − α + 3r |
|
|
# . |
α(1 s |
|
s |
||||
|
|
− α) |
|
|
α(1 − α) |
|
В нашем случае интервал равен для всех тестов (кроме Random-Excursion(-V))
[0.980561; 0.999439],
а для теста Random-Excursion(-V) равен
[0.978070; 1].
Откуда видим, что по двум вариантам оценки генератор не прошел только один тест Lempel-Ziv. Все остальные тесты можно считать пройденными.
33
5Вывод.
В данной работе была построена криптосистема на основе Rijndael. Она была довольно сильно ослаблена, что не могло не сказаться на ее криптографической стойкости.
Были освоены и применены два универсальных метода криптоанализа: дифференциальный и линейный. Они выявили слабость нашей криптосистемы. Полученный результат не позволяет использовать ее в качестве реальной системы для шифрования данных. Но, собственно, она и была спроектирована для учебных целей, о чем говорит длина ключа в 32 бит.
Так же был рассмотрен альтернативный режим работы криптосистемы, а именно как генератор псевдослучайных последовательностей. Для оценки качества его работы был изучен и применен один из известных пакетов оценочных тестов — Руководство НИСТ. Данный набор тестов не выявил каких-либо статистических закономерностей. Поэтому можно использовать нашу криптосистему в качестве генератора псевдослучайных последовательностей.
34
Приложение 1
const int Nk = 2; const int Nb = 2; const int Nr = 3;
const unsigned char SB[256] = {
0x99, 0x9b, 0x98, 0x9e, 0x9a, 0x9c, 0x96, 0x94, 0x9d, 0x9f, 0x91, 0x93, 0x95, 0x97, 0x92, 0x90, 0xb9, 0xbb, 0xb8, 0xbe, 0xba, 0xbc, 0xb6, 0xb4, 0xbd, 0xbf, 0xb1, 0xb3, 0xb5, 0xb7, 0xb2, 0xb0, 0x89, 0x8b, 0x88, 0x8e, 0x8a, 0x8c, 0x86, 0x84, 0x8d, 0x8f, 0x81, 0x83, 0x85, 0x87, 0x82, 0x80, 0xe9, 0xeb, 0xe8, 0xee, 0xea, 0xec, 0xe6, 0xe4, 0xed, 0xef, 0xe1, 0xe3, 0xe5, 0xe7, 0xe2, 0xe0, 0xa9, 0xab, 0xa8, 0xae, 0xaa, 0xac, 0xa6, 0xa4, 0xad, 0xaf, 0xa1, 0xa3, 0xa5, 0xa7, 0xa2, 0xa0, 0xc9, 0xcb, 0xc8, 0xce, 0xca, 0xcc, 0xc6, 0xc4, 0xcd, 0xcf, 0xc1, 0xc3, 0xc5, 0xc7, 0xc2, 0xc0, 0x69, 0x6b, 0x68, 0x6e, 0x6a, 0x6c, 0x66, 0x64, 0x6d, 0x6f, 0x61, 0x63, 0x65, 0x67, 0x62, 0x60, 0x49, 0x4b, 0x48, 0x4e, 0x4a, 0x4c, 0x46, 0x44, 0x4d, 0x4f, 0x41, 0x43, 0x45, 0x47, 0x42, 0x40, 0xd9, 0xdb, 0xd8, 0xde, 0xda, 0xdc, 0xd6, 0xd4, 0xdd, 0xdf, 0xd1, 0xd3, 0xd5, 0xd7, 0xd2, 0xd0, 0xf9, 0xfb, 0xf8, 0xfe, 0xfa, 0xfc, 0xf6, 0xf4, 0xfd, 0xff, 0xf1, 0xf3, 0xf5, 0xf7, 0xf2, 0xf0, 0x19, 0x1b, 0x18, 0x1e, 0x1a, 0x1c, 0x16, 0x14, 0x1d, 0x1f, 0x11, 0x13, 0x15, 0x17, 0x12, 0x10, 0x39, 0x3b, 0x38, 0x3e, 0x3a, 0x3c, 0x36, 0x34, 0x3d, 0x3f, 0x31, 0x33, 0x35, 0x37, 0x32, 0x30, 0x59, 0x5b, 0x58, 0x5e, 0x5a, 0x5c, 0x56, 0x54, 0x5d, 0x5f, 0x51, 0x53, 0x55, 0x57, 0x52, 0x50, 0x79, 0x7b, 0x78, 0x7e, 0x7a, 0x7c, 0x76, 0x74, 0x7d, 0x7f, 0x71, 0x73, 0x75, 0x77, 0x72, 0x70, 0x29, 0x2b, 0x28, 0x2e, 0x2a, 0x2c, 0x26, 0x24, 0x2d, 0x2f, 0x21, 0x23, 0x25, 0x27, 0x22, 0x20, 0x09, 0x0b, 0x08, 0x0e, 0x0a, 0x0c, 0x06, 0x04, 0x0d, 0x0f, 0x01, 0x03, 0x05, 0x07, 0x02, 0x00
};
const unsigned char |
ISB[256] = { |
0xff, 0xfa, 0xfe, |
0xfb, 0xf7, 0xfc, 0xf6, 0xfd, |
0xf2, 0xf0, 0xf4, |
0xf1, 0xf5, 0xf8, 0xf3, 0xf9, |
0xaf, 0xaa, 0xae, |
0xab, 0xa7, 0xac, 0xa6, 0xad, |
0xa2, 0xa0, 0xa4, |
0xa1, 0xa5, 0xa8, 0xa3, 0xa9, |
0xef, 0xea, 0xee, |
0xeb, 0xe7, 0xec, 0xe6, 0xed, |
0xe2, 0xe0, 0xe4, |
0xe1, 0xe5, 0xe8, 0xe3, 0xe9, |
0xbf, 0xba, 0xbe, |
0xbb, 0xb7, 0xbc, 0xb6, 0xbd, |
0xb2, 0xb0, 0xb4, |
0xb1, 0xb5, 0xb8, 0xb3, 0xb9, |
0x7f, 0x7a, 0x7e, |
0x7b, 0x77, 0x7c, 0x76, 0x7d, |
0x72, 0x70, 0x74, |
0x71, 0x75, 0x78, 0x73, 0x79, |
0xcf, 0xca, 0xce, |
0xcb, 0xc7, 0xcc, 0xc6, 0xcd, |
0xc2, 0xc0, 0xc4, |
0xc1, 0xc5, 0xc8, 0xc3, 0xc9, |
35
0x6f, 0x6a, 0x6e, 0x6b, 0x67, 0x6c, 0x66, 0x6d, 0x62, 0x60, 0x64, 0x61, 0x65, 0x68, 0x63, 0x69, 0xdf, 0xda, 0xde, 0xdb, 0xd7, 0xdc, 0xd6, 0xdd, 0xd2, 0xd0, 0xd4, 0xd1, 0xd5, 0xd8, 0xd3, 0xd9, 0x2f, 0x2a, 0x2e, 0x2b, 0x27, 0x2c, 0x26, 0x2d, 0x22, 0x20, 0x24, 0x21, 0x25, 0x28, 0x23, 0x29, 0x0f, 0x0a, 0x0e, 0x0b, 0x07, 0x0c, 0x06, 0x0d, 0x02, 0x00, 0x04, 0x01, 0x05, 0x08, 0x03, 0x09, 0x4f, 0x4a, 0x4e, 0x4b, 0x47, 0x4c, 0x46, 0x4d, 0x42, 0x40, 0x44, 0x41, 0x45, 0x48, 0x43, 0x49, 0x1f, 0x1a, 0x1e, 0x1b, 0x17, 0x1c, 0x16, 0x1d, 0x12, 0x10, 0x14, 0x11, 0x15, 0x18, 0x13, 0x19, 0x5f, 0x5a, 0x5e, 0x5b, 0x57, 0x5c, 0x56, 0x5d, 0x52, 0x50, 0x54, 0x51, 0x55, 0x58, 0x53, 0x59, 0x8f, 0x8a, 0x8e, 0x8b, 0x87, 0x8c, 0x86, 0x8d, 0x82, 0x80, 0x84, 0x81, 0x85, 0x88, 0x83, 0x89, 0x3f, 0x3a, 0x3e, 0x3b, 0x37, 0x3c, 0x36, 0x3d, 0x32, 0x30, 0x34, 0x31, 0x35, 0x38, 0x33, 0x39, 0x9f, 0x9a, 0x9e, 0x9b, 0x97, 0x9c, 0x96, 0x9d, 0x92, 0x90, 0x94, 0x91, 0x95, 0x98, 0x93, 0x99
};
const unsigned short Rcon[11] = { 0x0000,
0x0001, 0x0002, 0x0004, 0x0008, 0x0010, 0x0020, 0x0040, 0x0080, 0x001b, 0x0036
};
unsigned char xtime(unsigned char x) { int t = x << 1;
if (t & 0x00000100) t ^= 0x0000011b; return ((unsigned char)t);
}
void ShiftRow(unsigned char s[2 * Nb], int r, int n) { while (n--) {
unsigned char t = s[r];
for (int i = 0; i < Nb; i++)
s[2 * i + r] = s[2 * ((i + 1) % Nb) + r]; s[2 * (Nb - 1) + r] = t;
}
}
unsigned short RotWord(unsigned short w) { return ((w << 8) | (w >> 8));
}
unsigned short SubWord(unsigned short w) { unsigned char *t = (unsigned char *)&w; return ((SB[t[1]] << 8) | SB[t[0]]);
}
36
void KeyExpansion(unsigned char Key[2 * Nk], unsigned short W[Nb * (Nr + 1)]) {
for (int i = 0; i < Nk; i++)
W[i] = ((Key[2*i+1] << 8) | Key[2*i]); for (int i = Nk; i < Nb * (Nr + 1); i++) {
unsigned short temp = W[i - 1]; if ((i % Nk) == 0)
temp = SubWord(RotWord(temp)) ^ Rcon[i / Nk]; W[i] = W[i - Nk] ^ temp;
}
}
void SubBytes(unsigned char s[2 * Nb]) { for (int i = 0; i < 2 * Nb; i++)
s[i] = SB[s[i]];
}
void ShiftRows(unsigned char s[2 * Nb]) { ShiftRow(s, 1, 1);
}
void MixColumns(unsigned char s[2 * Nb]) { for (int i = 0; i < Nb; i++) {
unsigned char *cs = &s[2 * i]; unsigned char t[2];
t[0] = xtime(cs[0]) ^ xtime(cs[1]) ^ cs[1]; t[1] = xtime(cs[0]) ^ cs[0] ^ xtime(cs[1]); for (int j = 0; j < 2; j++) cs[j] = t[j];
}
}
void InvSubBytes(unsigned char s[2 * Nb]) { for (int i = 0; i < 2 * Nb; i++)
s[i] = ISB[s[i]];
}
void AddRoundKey(unsigned char s[2 * Nb], unsigned short W[Nb]) {
for (int i = 0; i < Nb; i++) for (int j = 0; j < 2; j++)
s[(i << 1) + j] ^= (W[i] >> (j * 8)) & 0x00FF;
}
void Cipher(unsigned char in[2 * Nb], unsigned char out[2 * Nb], unsigned char Key[2 * Nk]) {
unsigned short W[Nb * (1 + Nr)]; KeyExpansion(Key, W);
for (int i = 0; i < 2 * Nb; i++) out[i] = in[i];
unsigned char *state = out; AddRoundKey(state, &W[0]);
for (int round = 1; round < Nr; round++) { SubBytes(state);
37
ShiftRows(state);
MixColumns(state); AddRoundKey(state, &W[round * Nb]);
}
SubBytes(state);
ShiftRows(state); AddRoundKey(state, &W[Nr * Nb]);
}
void InvCipher(unsigned char in[2 * Nb], unsigned char out[2 * Nb], unsigned char Key[2 * Nk]) {
unsigned short W[Nb * (1 + Nr)]; KeyExpansion(Key, W);
for (int i = 0; i < 2 * Nb; i++) out[i] = in[i];
unsigned char *state = out; AddRoundKey(state, &W[Nr * Nb]);
for (int round = Nr - 1; round > 0; round--) { ShiftRows(state);
InvSubBytes(state); AddRoundKey(state, &W[round * Nb]); MixColumns(state);
}
ShiftRows(state);
InvSubBytes(state); AddRoundKey(state, &W[0]);
}
38
Приложение 2
void DifferentialCryptanalysis() {
unsigned char Key[4] = {0x2b, 0x7e, 0x15, 0x16},
x1[4], x2[4], y1[4], y2[4], yl1[4], yl2[4]; srand((unsigned)time(NULL));
int cn[256];
for (int k = 0; k < 256; k++) { cn[k] = 0;
KeyT[0] = 0x00;
KeyT[1] = (k / 16) << 4; KeyT[2] = (k % 16) << 4; KeyT[3] = 0x00;
for (int n = 0; n < (1 << 14); n++) {
x1[0] = rand() % 256; x2[0] = x1[0] ^ 0x40; x1[1] = rand() % 256; x2[1] = x1[1] ^ 0x40; x1[2] = rand() % 256; x2[2] = x1[2] ^ 0x10; x1[3] = rand() % 256; x2[3] = x1[3] ^ 0x10; Cipher(x1, y1, Key);
Cipher(x2, y2, Key); InvCipherLast(y1, yl1, KeyT); InvCipherLast(y2, yl2, KeyT);
if ((((int *)yl1)[0] ^ ((int *)yl2)[0]) == 0x20200000) cn[k]++;
}
}
for (int i = 0; i < 256; i++)
printf("%02X\t%.5f\n", i, double(abs(cn[i])) / (1 << 14));
}
39