УДК 004.891.3
ВЫБОР ПРИМИТИВНЫХ ПОЛИНОМОВ ДЛЯ ГЕНЕРАТОРА ПСЕВДОСЛУЧАЙНЫХ ЧИСЕЛ, ОСНОВАННОГО НА НЕЧЕТКОЙ ЛОГИКЕ
Аникин И.В., канд. техн. наук, доцент Альнаджар Х.Х., аспирант
Казанский национальный исследовательский технический университет им. АН. Туполева-КАИ (КНИТУ-КАИ) Контакты: [email protected]
Данная статья посвящена повышению эффективности генератора псевдослучайных чисел (ГПСЧ), ранее предложенного авторами в работах. Эффективный генератор псевдослучайных чисел должен иметь большую длину периода, хорошие статистические свойства (равномерность распределения), должен быть простым и детерминированным. Для повышения эффективности в работе проведен выбор подходящих примитивных полиномов, используеых линейными регистрами сдвига с обратной связью (LFSR) в предлагаемом ГПСЧ. Статистические свойства формируемых псевдослучайных последовательностей исследовались с помощью наборов статистических тестов NIST и DIEHARD. Использован метод Монте-Карло для сравнения предложенного генератора с ГПСЧRandi, используемым в пакете Matlab.
Ключевые слова: нечеткая логика, генератор псевдослучайных чисел, линейный регистр сдвига с обратной связью.
Введение
В настоящее время качественные генераторы случайных и псевдослучайных чисел становятся важными для многих прикладных областей, включая телекоммуникационные технологии, информационную безопасность, моделирование и т.д. ГПСЧ с хорошими статистическими свойствами применяются для решения та-
38
ких задач, как генерация криптографических ключей, реализация протоколов аутентификации, создание имитационных моделей.
Для формирования качественных последовательностей ГПСЧ должен генерировать так называемый «псевдослучайный шум». Для этого он должен удовлетворять трем основным постулатам Го-ломба, представленным в работах [ 1; 2]. В работах [3; 4] авторами предложен новый генератор псевдослучайных чисел, использующий нечеткую логику и линейные регистры сдвига с обратной связью для получения псевдослучайных последовательностей, которые по статистическим свойствам близки к случайным. В данной работе предлагается способ повышения эффективности работы данного генератора за счет выбора качественных примитивных полиномов, используемых линейными регистрами сдвига с обратной связью.
Генератор псевдослучайных чисел, основанный на нечеткой
логике
Общая структура ГПСЧ, предложенного авторами в работах [3; 4], представлена на рисунке 1.
Рис. 1. Общая структура нового ГПСЧ
Данный генератор состоит из двух LFSR, выходные данные которых поступают в два буфера размером 8 бит. Далее с помощью
39
лингвистических переменных оцениваются статистические свойства информации, находящейся в буферах. Производится оценка:
• количества единиц в буфере (^);
• разности между числом блоков состоящих из двух единиц (0110), и количества пробелов ^2), состоящих из двух нулей (1001) в буфере ^ 1-Г2|. Далее работает совокупность ЕСЛИ-ТО правил для определения того, какой из регистров сдвига имеет лучшие статистические свойства на каждом шаге.
Ранее авторами были использованы следующие примитивные полиномы для реализации ЬБ8Я:
Рг (х) = 1 + х83+ х84+ х86+ х89 р2 (х) = 1 + х91 + х97
Было показано, что период предложенного ГПСЧ является приемлемым для решения практических задач (> 1050). Случайность полученных двоичных последовательностей была оценена с помощью следующего набора из 15 статистических тестов NIST [5]:
1. частотный побитовый тест;
2. частотный блочный тест;
3. тест на последовательность одинаковых битов;
4. тест на самую длинную последовательность единиц в блоке;
5. тест рангов бинарных матриц;
6. спектральный тест;
7. тест на совпадение неперекрывающихся шаблонов;
8. тест на совпадение перекрывающихся шаблонов;
9. универсальный статистический тест Маурера;
10. тест на линейную сложность;
11. тест на периодичность;
12. тест приблизительной энтропии;
13. тест кумулятивных сумм;
14. тест на произвольные отклонения;
40
15. разновидность теста на произвольные отклонения.
С целью повышения эффективности предложенного ГПСЧ в данной работе решается задача выбора полиномов для использования при реализации ЬБ8Я. При этом, выбираемые полиномы должны удовлетворять следующим требованиям:
1. Диффузионная ёмкость. Если небольшой процент битов выходной последовательности изменяется от одного шага к другому, то состояние LFSR может содержать количество нулей больше, чем единиц при большом количестве шагов. В этом случае говорится, что генератор имеет низкую диффузионную ёмкость. Для того, чтобы избежать указанного, полиномов с маленьким весом Хэмминга следует избегать. (под весом Хэмминга понимается число ненулевых коэффициентов полинома) [6].
2. Максимальный период. Известно, что последовательность, генерируемая с помощью LFSR, имеет максимальный период тогда и только тогда, когда его характеристический полином является примитивным над ^(2). В этом случае период последовательности Т = 2п — 1, где п-степень полинома [1].
3. Низкое энергопотребление. Примитивные полиномы с наименьшим количеством логических элементов «Исключающее ИЛИ» (XOR) имеют самое низкое потребление энергии [7].
Далее в работе решаются задачи выбора наиболее важных статистических тестов для тестирования ГПСЧ, а также выбора характеристических полиномов.
Выбор статистических тестов для тестирования ГПСЧ
Для сокращения времени тестирования ГПСЧ был произведен выбор наиболее важных статистических тестов из набора №8Т. Для выбора важных тестов был использован подход, основанный на методе анализа иерархий (МАИ). Построенная иерархия вклю-
41
чает в себя три уровня: 1. Цель - «Выбор лучшего теста», 2. Критерии выбора, 3. Пятнадцать исследуемых статистических тестов.
В качестве критериев выбора статистических тестов использовались следующие:
• независимость (тест не входит в состав других), например, тест № 1 «Частотный побитовый тест» входит в состав теста № 13 «Тест кумулятивных сумм», поэтому он имеет малый вес;
• сложность (вычислительная и временная) - тесты, обладающие меньшей сложностью, будут иметь более высокие веса, например, «Тест на линейную сложность» требует самых больших затрат времени [ 8], поэтому он имеет наименьший вес;
• разделяющая способность, если тест даёт четкие результаты разделения случайных последовательностей (случайная/не случайная), то он будет иметь высокий вес.
С помощью попарных сравнений и МАИ были получены следующие веса критериев (таблица 1).
Таблица 1. Веса критериев выбора
Критерии выбора Вес
независимость 0.1062
сложность 0.2605
отличительные результаты 0.6333
Далее с помощью попарных сравнений и МАИ были определены веса важности статистических тестов, а также порядок их важности в соответствии с данными весами (табл. 2).
42
Таблица 2. Веса статистических тестов
Статистический тест Вес Порядок важности
1. Частотный побитовый тест 0.1051 2
2. Частотный блочный тест 0.0731 5
3. Тест на последовательность одинаковых битов 0.0977 3
4. Тест на самую длинную последовательность единиц в блоке 0.1476 1
5. Тест рангов бинарных матриц 0.0655 6
6. Спектральный тест 0.0552 10
7. Тест на совпадение неперекрывающихся шаблонов 0.0447 11
8. Тест на совпадение перекрывающихся шаблонов 0.0614 7
9. Универсальный статистический тест Маурера 0.0206 15
10. Тест на линейную сложность 0.0409 12
11. Тест на периодичность 0.0571 9
12. Тест приблизительной энтропии 0.0966 4
13. Тест кумулятивных сумм 0.0394 13
14. Тест на произвольные отклонения 0.0592 8
15. Разновидность теста на произвольные отклонения 0.0360 14
Таким образом, можно сделать вывод, что наиболее важными статистическими тестами в соответствии с выбранными критериями являются: "Тест на самую длинную последовательность единиц в блоке", "Частотный побитовый тест", "Тест на последовательность одинаковых битов ", "Тест приблизительной энтропии", "Частотный блочный тест". Данные тесты были использованы в дальнейшем для тестирования ГПСЧ.
43
Выбор примитивных полиномов для ГПСЧ
Для реализации LFSR ранее использовались примитивные полиномы над полем Галуа GF(2) с высокими степенями и небольшим весом Хэмминга (3,5). Они имеют высокую производительность и минимальные затраты на аппаратную реализацию (с точки зрения количества логических элементов XOR, необходимых для построения LFSR). В то же время они имеют определенные недостатки, связанные с провалом некоторых статистических тестов [ 9], и низкой диффузионной ёмкостью. Качественный ГПСЧ должен иметь характеристические полиномы, у которых число ненулевых коэффициентов примерно равно n/2, где n - степень полинома [9]. С другой стороны, выбирая полиномы с большим количеством ненулевых коэффициентов, мы приходим к повышению затрат на аппаратную реализацию (увеличение количества логических элементов XOR). Здесь мы должны искать компромиссное решение.
Достаточно хорошее решение данной проблемы приведено в [7]. Предложенный метод заключается в поиске примитивного полинома следующим образом. Если функция /(х) может быть представлена в виде выражения (1)
/(х) = (1 + хь1 )(1 + хь2) ... (1 + + хп, (1)
то LFSR c минимальным энергопотреблением, реализуемый той же самой функцией, может быть построен с помощью т элементов XOR с двумя входами, где
Ь1 > 1, Ь1 < Ъ2, (Ь1 + Ъ2) < Ь3, (bi + ¿2 + . + bm_1) < Ьт ,(Й1 + ¿2 + . + Ът) < п
Для построения эффективного ГПСЧ нами были выбраны степени полиномов (89, 97), а также значение т = 5. Для поиска зна-
44
чений bi + ¿2 + + bm и построения примитивных полиномов был использован пакет Mathematica, с помощью которого найдены следующие полиномы:
Рг(х) = (1 + х)(1 + х5 )(1 + х10 )(1 + х17 )(1 + х39) + х89 Р2(х) = (1 + х)(1 + X4 )(1 + X7 )(1 + X20 )(1 + X53) + X97
Стоит отметить, что вес Хэмминга каждого из этих полиномов W = 33. Данный вес является достаточно хорошим, а для реализации указанных полиномов требуется только 5 элементов XOR с двумя входами.
Оценка и сравнение построенного генератора с другими ГПСЧ
Для оценки качества построенного ГПСЧ с выбраннами примитивными полиномами использовалось два известных пакета статистических тестов - NIST и DIEHARD. Далее построенный генератор сравнивался с рядом известных ГПСЧ. В заключении использовался численный метод Монте -Карло для вычисления математической константы п с помощью двух генераторов - построенного ГПСЧ и функции Randi пакета Matlab, после чего выполнено сравнение точности формирования данной константы этими генераторами. Для тестирования генератора были выбраны три известных подхода оценки соответствия распределения P-значений равномерному распределению.
Первый подход предполагает получение средних значений и дисперсии P-значений и дальнейшее их сравнение со средним значением (0,5) и дисперсией (1/12) равномерного распределения.
Второй подход предполагает вычисление статистики «хи-квадрат» с девятью степенями свободы основываясь на частоте встречаемости P-значений в блоках, определяемых путем разбиения единичного интервала на десять равномерно распределенных
45
подынтервалов. Вычисленное значение не должно превышать 21.666 для девяти степеней свободы [ 8].
Третий подход предполагает вычисления отношения числа последовательностей успешно прошедших тест к общему числу тестируемых последовательностей. Это отношение сравняется с приемлемой величиной ^accept. Порог приемлемости определяется с помощью доверительного интервала, вычисляемого следующим образом [5]:
р + ^7Р(1 -Р)/П ,где р = 0.99, к = 3, п = 1000 .
Получено, что число неудачных подпоследовательностей должно быть меньше, чем 19.4 на 1000 последовательностей.
Для тестирования эффективности ГПСЧ были проведены численные эксперименты в соответствии с каждым из подходов. Сгенерированная с помощью ГПСЧ последовательность длиной 1024000 бит, разделена на 1000 подпоследовательностей длиной 1024 бита. К ним были применены выбранные ранее 5 наиболее важных статистических теста NIST. 7\ = "Частотный побитовый тест", 72 = "Частотный блочный тест", 73 = "Тест на последовательность одинаковых битов", 74 = "Тест на самую длинную последовательность единиц в блоке", 7^ = "Тест приблизительной энтропии". Все эксперименты реализованы в среде Matlab, версия R2012a (7.14.0.739) [10]. Результаты тестирования ГПСЧ представлены в таблице 3.
46
Таблица 3. Результаты тестирования последовательностей, сгенерированных ГПСЧ
Среднее значение, дисперсия (0.5,0.0833) Хи-квадрат (< 21.667) Число неудачных последовательностей (< 19)
T1 0.5029 0.0818 9.480 6
T2 0.5067 0.0812 11.040 5
T3 0.5028 0.0852 7.960 11
T4 0.4987 0.0818 14.200 5
T5 0.5001 0.0829 3.320 6
Из таблицы можно видеть, что псевдослучайные последовательности, сгенерированные ГПСЧ, успешно прошли все тесты на случайность.
Результаты тестирования сгенерироанных последовательностей с помощью пакетов тестов и DIEHARD [11], представлены в табл. 4. В пакете DIEHARD в дополнение к критерию «Хи-квадрат» использован критерий Колмогорова-Смирнова для оценки соответствия распределения -значений равномерному распределению [9].
Таблица 4. Результаты тестирования ГПСЧ с использованием пакета тестов DIEHARD
Название теста Р - значение Результат
1. Дни рождения 0.4242 успех
2. Пересекающиеся перестановки 0.8351 успех
0.6696
3. Ранги матриц (31 x31 и 32x32) 0.3742 успех
0.3454
4. Ранги матриц (6x8) 0.6937 успех
5. Обезьяньи тесты на 20 бит-слов 0.8979 успех
6. Обезьяньи тесты (OPSO, OQSO, DNA) 0.8054 успех
0.9707
0.7693
7. Подсчёт единиц в потоке байтов 0.8100 успех
0.8255
47
Продолжение таблицы 4
8. Количество единиц в конкретных байтах 0.5269 успех
9. Тест на парковку 0.2447 успех
10. Тест на минимальное расстояние 0.5139 успех
11. Тест случайных сфер 0.3793 успех
12. Тест сжатия 0.6126 успех
13. Тест пересекающихся сумм 0.1176 успех
14. Тест последовательностей (восходящие и нисходящие) 0.3551 успех
0.1513
15. Тест игры в кости (подсчитываются победы, количество бросков в каждой игре) 0.3357 успех
0.9688
Из данной таблицы видим, что ГПСЧ успешно прошел все тесты пакета DIEHARD.
Было произведено сравнение предложенного ГПСЧ с 16 различными генераторами псевдослучайных чисел включенными в пакете DIEHARD. Для сравнения были использованы выбранные ранее тесты NIST T1-T5. В табл. 5 представлены результаты проведенного сравнения.
Таблица 5. Результаты сравнения предложенного ГПСЧ с генераторами DIEHARD
Название генератора хи-квадрат (< 21.667) Число неуданых последовательностей (< 19*5)
НГПСЧ + + (33)
1- Multiply with carry (MWC) + + (47)
2- MWC on pairs of 16bits + - (51)
3- the mother of all RNGs - + (55)
4- Kiss RNG - + (54)
5- Combo RNG + + (55)
6- The lagged Fibonacci-MWC combination ULTRA - + (44)
7- A combination of MWC & subtract with borrow (SWB) - + (50)
48
Продолжение таблицы 5
8- Extended conqruential - + (43)
9-The super Duper generator RNG + + (63)
10- Substract with borrow - + (46)
11- Any specified congruential - + (52)
12- The 31-bit ran2 from Numerical Recipes - + (51)
13- Any specified shift register generator 31 or 32 bits - + (53)
14- The system generator in Microsoft Fortran - + (58)
15- Any lagged-Fibonacci + - (94)
16- An inverse conqruential - + (35)
Знак (+) в таблице означает, что генератор успешно прошел все пять статистических тестов относительно критерия «Хи-квадрат» и «Число неудачных последовательностей». Знак (-) означает, что генератор не прошел полностью или частично соответствующий критерий теста. Согласно табл. 5 предложенный ГПСЧ показал наилучшие результаты по сравнении со всеми ГПСЧ пакета DIEHARD. В заключении использовался численный метод Монте-Карло для вычисления математической константы п с помощью двух генераторов - построенного ГПСЧ и функции ЯапШ пакета МайаЪ [12], после чего выполнено сравнение точности формирования данной константы этими генераторами.
Математическую константу п можно вычислить путем генерирования случайных точек в квадрате и подсчета их части, которые лежат внутри вписанной четверти круга (рис. 3). Вероятность попадания точки в круг = я/4.
м
О1-Г*
Рис. 3. Метод Монте-Карло приближенного вычисления константы л
49
В табл. 6 представлены результаты работы метода Монте-Карло для различных генераторов.
Таблица 6. Результаты применение метода Монте-Карло
Кол-во точек * Кол-во повторений средний (Randi) STD (Randi) средний (ГПСЧ) STD (ГПСЧ)
100*10000 3.1231 0.0185 3.1378 0.0040
1000*1000 3.1255 0.0161 3.1378 0.0065
10000*100 3.1249 0.0167 3.1378 0.0072
100000*10 3.1241 0.0175 3.1378 0.0069
1000000*1 3.1244 0.0172 3.1373 0.0043
Полученные результаты показали, что предложенный ГПСЧ работает лучше функции Randi, используемой в среде Matlab.
Заключение
В данной статье было повышено качество работы НГПСЧ, предложенного в работах [ 3; 4] путем качественного выбора примитивного полинома для LFSR. Показано, что предложенный генератор удовлетворяет статистическим критериям качества, а также формирует более качественные псевдослучайные последовательности по сравнению с 16 генераторами пакета DIEHARD и функцией Randi пакета Matlab.
Данный генератор может быть использован для решения практических задач во многих предметных областях (телекоммуникации, криптография, моделирование и т.д.).
Источники
1. Biham E., Shamir A., Differential Cryptanalysis of the Data Encryption Standard. Spinger Verlag, New York etc., 1993.
2. Rukhin A., Soto J., Nechvatal J., Smid M., Barker E., Leigh S., Levenson M., Vangel M., Banks D., Heckert A., DrayJ. and Vo S. A statistical test suite for random and pseudorandom
50
number generators for cryptographic applications. Revised: April 2010, Lawrence E Bassham III, NIST Special Publication 800-22, Revision 1a.
3. Аникин И.В., Альнаджар Х.Х. Генератор псевдослучайных чисел, построенный на нечеткой логике // Информация и безопасность. 2015. Том 18, № 3. C. 376-379.
4. Anikin I.V., Alnajjar K. Fuzzy stream cipher system, Proceedings of 2015 International Siberian Conference on Control and Communications, SIBCON 2015, Omsk, 2015.
5. Tezuka S., and L'Ecuyer P. Efficient and portable combined Tausworthe random number generators // ACM Transactions on Modeling and Computer Simulation 1(2): 99-112, 1991.
6. Lang-Terng Wang, Nur A. Touba, Richard P. Brent, Hui Xu, and Hui Wang On Designing Transformed Linear Feedback Shift Registers with Minimum Hardawre Cost, UT-CERC-12-03, 2011.
7. Saaty T.L. The Analytic Hierarchy Process. McGraw-Hill, New York, 1980.
8. L'Ecuyer, P., and Panneton F. Fast random number generators based on linear recurrences modulo 2: overview and comparison // Proceedings of the 2005 Winter Simulation Conference.
9. Marsaglia G. DIEHARD Statistical Tests. http://stat.fsu.edu/~geo/ diehard.html.
10. L'Ecuyer P., Hellekalek P. Random Number Generators: Selection Criteria And Testing in Lecture Notes in Statistics, vol 138, pp 223-266, Spring Verlag, 1998.
11. Knuth The Art of Computer Programming. vol. 2. 2nd ed. Reading, MA: Addison-Wesley, 1981.
12. MATLAB® Creating Graphical User Interfaces, The MathWorks, Inc.
SELECTION OF PRIMITIVE POLINOMIALS FOR PSEUDO-RANDOM NUMBER GENERATOR BASED ON FUZZY LOGIC Anikin I.V., Alnajjar K.H
In this paper we are increasing the efficiency of pseudo-random number generator based on fuzzy logic (FRNG). Efficient PRNG must have a long period, must run fast, must be portable, should not waste memory, should have the lowest consumption of power, and must have excellent statistical properties. Selecting of the characteristic polynomials for LFSRs plays the important role for the efficiency of RNGs. So in this paper we pay more attention on selecting the suitable primitive polynomials to fit the required properties. Then the randomness of the output sequences of FRNG has been tested using NIST tests suite and Diehard tests battery. Finally we used Monte-Carlo numerical method of approximation to compare FRNG with Matlab's random number generator Randi.
Keywords: pseudo-random number generator, fuzzy logic, linear feedback shift register.
Дата поступления 18.04.2016.
51