Таблица 2
Среднее время поиска файлов по содержимому
Алгоритм Время работы, мс
1 < 1 < 10 11 < 1 < 100
Наивный 1471,39 1395,8
Бойера — Мура 464,81 453,5
Кнута — Морриса — Пратта 422,2 679,97
Рабина — Карпа 2463,11 62336,02
Таким образом, для поиска файлов по небольшим заданным данным и параметрам (например, поиск по имени, по расширению) можно вполне использовать наивный поиск, для средних и больших данных и параметров (например, поиск по содержимому) при малых образцах лучше использовать алгоритм Кнута — Морриса — Пратта, при больших — Бойера — Мура,
В программе предусмотрено также сканирование заданной директории на вредоносные объекты. Параметры для поиска вредоносных объектов хранятся в базе данных, которая представляет собой текстовый файл, основная база для которого взята из открытого источника антивируса ClamAV [5] и переделана под формат программы, её можно дополнять. Основное время работы этой части программы — это работа с антивирусной базой, которая содержит 4 млн строк, поэтому среднее время работы составляет от нескольких десятков до нескольких сотен секунд,
ЛИТЕРАТУРА
1. Гасфилд Д. Строки, деревья и последовательности в алгоритмах: Информатика и вычислительная биология. СПб.: Невский диалект, БХВ-Петербург, 2003.
2. Кормен Т., Лейзерсон Ч., Pueepcm М. Алгоритмы: построение и анализ. М.: Изд-во «Вильяме», 2005.
3. Макконнелл Дж. Основы современных алгоритмов. М.: Техносфера, 2004.
4. ГОСТ Р 51188-98. Защита информации. Испытания программных средств на наличие компьютерных вирусов. Типовое руководство. М.: ИПК Издательство стандартов, 2003.
5. http: //www. clamav. net/downloads — ClamAV Download. 2017.
УДК 519.688 DOI 10.17223/2226308Х/16/33
ОБ ОДНОМ ПРЕДСТАВЛЕНИИ ЭЛЕМЕНТОВ КОНЕЧНЫХ 2-ГРУПП
В ВИДЕ БУЛЕВЫХ ВЕКТОРОВ
А, А, Кузнецов, А, С, Кузнецова
Предложен способ представления конечных 2-групп в виде булевых векторов. Пусть G— конечная (бернсайдова) 2-группа, порядок которой равен 2k. Каждый элемент группы представим уникальным булевым вектором размерности k. Для вычисления произведения двух элементов используются аналоги полиномов Холла, только теперь в них вместо умножения и сложения над полем Z2 используются эквивалентные булевы (побитовые) операции «и» и «исключающее или». В задачах, требующих вычисления большого количества произведений элементов группы, описанный метод позволяет кардинально уменьшить время работы компьютерных программ.
Ключевые слова: 2-группа, булев вектор, побитовые операции, полипомы Холла.
130
Прикладная дискретная математика. Приложение
В последние десятилетия наблюдается рост исследований, связанных с разработкой новых криптосистем и протоколов обмена ключами, основанных на различных некоммутативных алгебраических системах, В частности, в работах [1-3] в качестве криптографических примитивов предложено использовать бернсайдовы группы периода n = 3, Для n > 3 вопрос пока не рассматривался, В связи с этим становится актуальной задача разработки ресурсоэффективных алгоритмов для работы с берн-сайдовыми группами больших периодов.
Пусть G = (ai, a2,..., am) — некоторая конечная (бернсайдова) 2-группа периода 2n, где a ^ ..., am — порождающие элементы группы и |G| = 2y, Для G можно получить рс-представление элементов группы (Power Commutator presentation [4]), В этом случае
Уд G G (д = aX1 ...aXk), x G Z2.
Пусть aX1 ... axkk и a^1 ... aykk — два произвольных элемента группы G, записанные в ре-формате, и пусть их произведение равно ai1... akk,
Вычисление степеней Zj традиционно осуществляется на основе собирательного процесса Холла [4]. Однако существует более эффективный способ умножения элементов, основанный на полиномах Холла [4]:
Zj = Xj + y + Pi(Xi, . . . , Xj-i, yi, . . . , yi-i), Xj, yj, Zj G Z2.
Заметим, что операции умножения и сложения в поле Z2 тождественны булевым операциям «и» и «исключающее или» соответственно. Это позволяет естественным образом представлять элементы группы в виде булевых векторов размерности k,
В качестве примера рассмотрим максимальную двупорождённую конечную группу G = (ai, a2) периода 22 = 4, которую обычно обозначают B(2,4) или B2(4), Поря-
2i2 G
ре-предетавление вида ak1 ... ak12, где xj G Z2, i = 1, 2,..., 12. Здесь al и a2 — порождающие элементы ..., ai2 вычисляются рекурсивно через al и a2.
Получим в системе компьютерной алгебры GAP рс-представление данной группы. Для краткости тривиальные коммутаторные соотношения не приводятся (например, [a4, ai] = 1 и др.):
2 _ 2 _ 2 _ 2_Л2_л2_ 2 _
ai — a4, a2 — a5, a3 — asagaioaiiai2, a4 — 1, ag — 1, ag — aii, a^ — aiiai2, a2 = 1 (8 ^ i ^ 12), [a3,ai] = ag, [a3,a2] = a7, [a4,a2] = aga8agai0ai2, [a4,a3] = asaii, [a5, ai] = a7a8agaio, [a5,a3] = aioaiiai2, [a5,a4] = agan, [ag,ai] = a8, [ag,a2] = ag, [ag,a3] = aii, [ag,a4]= aii, [ag,a5] = aii, [a7,ai] = agai2, [a7,a2] = ai0, [a7,a3] = aiiai2, [a7,a4] = aiiai2, [a7,a5] = aiiai2, [a8,ai]= aii, [a8,a2] = ai2, [ag,ai] = aiiai2, [ag, a2] = aii, [aio, ai] = ai2, [aio, a2] = aiiai2.
Вычислим полиномы Холла группы G для порождающих элементов ai и a2 на основе алгоритма из [5]:
1 п пУ 1 ny12 — nZ 1 nZ 12
ij ai ■ ai ... ai2 — ai ... ai2 ,
где Zi = yi + 1, Z2 = У2, Z3 = Уз, Z4 = yi + У4, Z5 = У5, Zg = yg + yiy2, Z7 = У7,
z8 = У8 + yiy2 + У^ Zg = yg + yiУ2, Zio = yio + УlУ2, Zii = yii + У1Уз + У1У2Уз + yiy2y4 + yiy2y5 + УlУ2Уg, Zi2 = yi2 + yiy2;
г, пШ пУ12 — r,Z 1 r,Z 12
Z) U2 ' ... Ui2 — a ... U12 j
где Zi — yi, Z2 — У2 + 1, Z3 — yi + Уз, Z4 — У4, Z5 — У2 + У5, Ze — Уб, z7 — У7 + У^ z8 — У8 + У^ z9 — У9 + У1У3 + У2 У4, z10 — У10 + У1У2 + У1У3 + У2У3, zii — У11 + У1У2 + У1У3 + У2У3 + У2У4 + У1У2У3 + У1У2У4 + У1У2У5 + У1У2У7, z12 — У12 + У1У2 + У1У3 + У2У3 + У1У2У3 + У1У2У4 + У1У2У5 + У1У2 У7.
Каждый элемент группы представляет собой битовую строку (z1, z2,..., z12). Таким образом, для кодирования одного элемента в B(2, 4) требуется 12 бит, В общем случае, если порядок группы равен 2k, то для хранения одного элемента потребуетея k бит.
На компьютере операции над битами выполняются значительно быстрее, чем над целочисленными или строковыми типами данных, В задачах, требующих вычисления большого количества произведений элементов группы, описанный метод позволит кардинально уменьшить время работы компьютерных программ. Одной из таких проблем является задача поиска кратчайших маршрутов на графах Кэли, которые часто применяются при проектировании топологий для сетей межпроцессорного соединения в суперкомпьютерах, а также дата-центрах.
Кроме того, предложенное представление элементов группы в форме булевых векторов позволяет применять их даже на самых примитивных микроконтроллерах,
ЛИТЕРАТУРА
1. Baumslag G., Fazio N., Nicolosi A. R., et al. Generalized learning problems and applications to non-commutative cryptography 11 LNCS. 2011. V.6980. P. 324-339.
2. Fazio N., Iga K., Nicolosi A. R., et al. Hardness of learning problems over Burnside groups of exponent 3 // Des. Codes Crvptogr. 2015. V. 75(1). P. 59-70.
3. Kahrobaei D. and Noce M. Algorithmic problems in Engel groups and cryptographic applications // Int. J. Group Theory. 2020. V.9(4). P. 231-250.
4. Sims C. Computation with Finitely Presented Groups. Cambridge: Cambridge University Press, 1994. 628 p.
5. Кузнецов А. А. Кузнецова, А. С. Быстрое умножение элементов в конечных двупорож-денных группах периода пять // Прикладная дискретная математика. 2013. №1(19). С.110-116.