Научный руководитель – , д. т.н., профессор
Московский Энергетический Институт
(технический университет)
Автоматизация процесса синтеза схем умножения многочленов над полем Галуа GF(2) на базе метода Карацубы.
В последние годы бурно развивается криптография с от-крытым ключом, ее теория и практические задачи [1]. При реализации криптографических протоколов приходится иметь дело с бинарными многочленами высоких степеней (порядка 102-105). В связи с этим, задача оптимизации операции умножения таких полиномов становится весьма актуальной. Один из подходов к данной задаче – применение метода Карацубы [2]. Этот метод позволяет свести умножение двух 2n-значных чисел к трём умножениям n-значных чисел. Применительно к полям Галуа GF(2), данный метод дает возможность свести операцию умножения двух полиномов степени 2n к трем умножениям полиномов степени n. Вполне естественно применять данный метод и к получаемым сомножителям до тех пор, пока степень сомножителей не станет такой, для которой умножение можно выполнить более эффективно [3]. Многочлены такой степени назовем элементарными. (Например, для многочленов степени не выше 7 удобно выполнять умножение по заранее вычисляемой таблице). Однако, оптимизацию данного алгоритма можно продолжить, раскрывая рекурсию и создавая прямые схемы умножения. Примеры подобных схем приведены в работе [3].
В данной работе предлагается метод автоматиза-ции построения таких схем при заданных степенях много-членов базисных преобразований и порядках степеней со-множителей. При раскрытии рекурсии фактически получа-ется набор сумм произведений элементарных многочленов, задающий искомое произведение. При этом, выделяются повторяющиеся суммы для предотвращения дублирования их вычислений. Таким образом, сокращается количество операций сложения многочленов по сравнению с рекурсив-ным алгоритмом. Используя свойства поля Галуа GF(2), можно также избавиться и от избыточных сложений одина-ковых многочленов. Важно заметить, что получаемая схема умножения не зависит от степени элементарных многочленов.
Была разработана программа синтеза прямых схем умножения как символьных конструкций и транслятор, переводящий символьные конструкции в код на языке С.
Сравнительный анализ скорости работы алгорит-мов приведен в таблице.
Степень операндов | Классический алгоритм умножения | Рекурсивный алгоритм Карацубы | Синтезированные прямые схемы умножения |
127 | 0.35 | 0.083 | 0.05 |
191 | 0.76 | 0.277 | 0.15 |
255 | 1.28 | 0.286 | 0.19 |
511 | 4.56 | 1.015 | 0.69 |
1023 | 17.18 | 3.141 | 2.32 |
Время работы указано в секундах, эксперименты проводи-лись на компьютере с процессором INTEL Pentium III - 450.
Литература:
риптография с открытым ключом М.: Мир 1996 г. , Умножение многозначных чисел на автоматах // ДАН СССР. 1962. 145 №2. с.293-294. , , Программные и схемные методы умножения многочленов для эллиптической криптографии // Известия Академии Наук. Теория и системы управления. 2000г., № 5, с. 57-66.


