Бинарный алгоритм возведения в степень и его прикладное значение

методы в математике: Труды Межд. научной конференции - Бишкек: 2001. Вестник КГНУ: Сер.3, Ест.-техн. науки. - Вып.6. стр. 283-287.

2. Акерова Дж.А. Достаточные условия разрешимости начально-краевой задачи Коши // Наука, техника и образование, (РФ), 1 (19) (2016). - C. 34-39.

3. Иманалиев М.И. Нелинейные интегро-дифференциальные уравнения с частными производными. - Бишкек: Илим, 1992.

4. Иманалиев М.И., Иманалиев Т.М., Какишов К. О задачах Коши для нелинейных дифференциальных уравнений с частными производными шестого порядка // Исслед. по интегро-дифференц. уравнениям. - Бишкек: Илим, 2007. - Вып. 36. - С. 19-28.

5. Иманалиев М.И., Байзаков А.Б. О разрешимости задачи Коши для одного класса нелинейных дифференциальных уравнений в частных производных. // Поиск, сер. ест.-техн. наук, №1, -Алматы, 2009. - С. 209-213. Научное приложение международ. журнала «Высшая школа Казахстана».

6. Kenenbaeva G.M., Kasymova T.D. Computer Modeling of Phenomena in Dynamical Systems //Наука, техника и образование, (РФ), 12(18), (2015). - С. 7-10.

7. Кененбаева Г.М. Эффекты и явления в теории интегральных уравнений // Вестник науки и образования, (РФ), №1 (13), (2016) - С. 9-13.

Бинарный алгоритм возведения в степень и его прикладное значение Приньков А. С.

Приньков Алексей Сергеевич /Prinkov Alexey Sergeevich - студент, кафедра прикладной математики, факультет автоматизации и информатики, Липецкий государственный технический университет, г. Липецк

Аннотация: в статье анализируется эффективность бинарного алгоритма возведения в степень, и необходимость его применения на практике для экономии ресурсов и стабильной работы криптосистем. Выявлена обобщенность алгоритма и возможность его применения для различных алгебраических структур. Ключевые слова: бинарный алгоритм в схеме Эль-Гамаля, эффективность алгоритма, возведение в степень, математика криптографии.

Возведение в степень - бинарная операция, определенная как результат многократного выполнения операции над аргументом: аь = а. . а, где • -

V

ь

некоторая операция. Это определение справедливо для объектов и операций различной природы. Для удобства интерпретации и программной реализации, рассмотрим полную мультипликативную группу кольца вычетов.

Прежде всего, необходимо установить критерии эффективности алгоритма. Мы будем рассматривать быстродействие как меру эффективности [1].

? = С X к, где t - общее время работы, c - число операций, k - потребность во времени на одну операцию.

I = ^ с Х г - формула для операций с разной потребностью времени.

^^^ I I

I

Сравним два алгоритма: по определению и бинарный. Если х = (хихи_г..х0) , то

для вычисления хь потребуется пь операций (умножение цифр каждой на каждую) [2]. Данный подход, очевидно является неэффективным. Сравнение по модулю следует производить по мере возведения, а именно Ь - раз.

45

Далее разберем бинарный алгоритм. Пусть нужно найти хк, где х, к е 2 • Для

р

этого найдем двоичное представление k = (mm , m„) , тогда

\ n n—\'~' 0/2

xk = x((-((mn +mn—l )x2+mn—2 )x2+-. .)x2+mi)x2+mo = (( ((xm )2 x xmk—l )2 )2 x xm0

Этот способ, требует ^ln(n) операций [3]. Сравнение по модулю, после каждого

возведения в квадрат поможет cэкономить память для хранения промежуточного результата. Иначе можно сравнить конечный результат.

За счет двоичности компьютеров, бинарный метод нашел обширное применение в криптосистемах с открытым ключом[4].

k

Обобщенный бинарный алгоритм, t = x :

1. Найти двоичное представление степени k

2. Положить объекты q = x, t = x

3. От i = 0 до k — 1 включительно выполнить

4. Если m = 1, то t = tmultiply(z) и z = z.multiply(z);

иначе z = z.multiply(z);

//где multiply - операция умножения

Для эмпирической оценки преимущества алгоритма сравним скорость работы двух вышеописанных подходов в схеме Эль-Гамаля, при поточном шифровании данных.

Таблица 1. Технические характеристики ЭВМ

Процессор CPU CryptoHash CPU Fibonacci CPU Blowfish

4 x intel Core i5-4210U 2.7 GHz 287 1.82 4.71

Сравнение (не менее 400 запусков для каждого параметра, с различными значениями):

Основание 7L , значащих цифр Бинарный алгоритм, секунды Алгоритм по определению, секунды

10 0.1 - 0.15 0.14 - 0.22

100 0.120 - 0.190 0.92 - 1.4

1000 0.3 - 0.6 12 - 35

10000 6 - 15 >60

Никакой алгоритм нельзя назвать, окончательно, самым эффективным [1]. Поскольку в роли платформы для шифрования может выступать не только кольцо вычетов, а структура любой природы, отвечающая требованиям криптосистемы, то появляется потребность в алгоритме, который будет работать с разными структурами, не теряя своей эффективности. Бинарный алгоритм сочетает эффективность и абстрактность, поэтому является полезным и стабильным решением для криптографии.

Литература

1. Разборов А. А. О сложности вычислений // Математическое просвещение. 1999. № 3. С. 127-141.

2. Панкратова И. А. Теоретико-числовые методы криптографии. Томск: Томский государственный университет. 2009. 120 с.

3. Шнайер Б. Алгоритмы с открытыми ключами // Прикладная криптография. М. Триумф. 2002. 610 c.

4. Коутинхо С. Введение в теорию чисел. Алгоритм RSA. М.: Постмаркет. 2001. 328 с.

Практическое сравнение алгоритма А* с алгоритмом волновой трассировки (алгоритмом Ли) по быстродействию Михайлов И. Е.

Михайлов Илья Евгеньевич /Mikhailov 11уа Yevgenyevich - студент, кафедра компьютерных технологий и систем, факультет прикладной математики - процессов управления, Санкт-Петербургский государственный университет, г. Санкт-Петербург

Аннотация: в данной работе рассматриваются алгоритм А* и алгоритм волновой трассировки. Проводится сравнение эффективности этих алгоритмов по быстродействию на практике.

Ключевые слова: алгоритм А*, алгоритм волновой трассировки, алгоритм Ли, эффективность алгоритма, сравнение алгоритмов по быстродействию.

Существуют различные способы нахождения кратчайшего пути на графах. Среди них рассмотрим алгоритм А* и алгоритм волновой трассировки (алгоритм Ли).

Алгоритм А* - алгоритм поиска по первом наилучшему совпадению на графе, использующий эвристическую функцию, оценивающую длину кратчайшего пути из любой вершины графа в целевую вершину [1, с. 238]. Для построения этой функции была использована метрика Манхэттена [2, с. 276].

Алгоритм волновой трассировки, в отличие от алгоритма А*, является не информированным алгоритмом поиска, поскольку он не использует никакой информации о целевой вершине графа (алгоритм А* в качестве источника такой информации использует эвристическую функцию), за исключением того, что этот алгоритм способен определить, является ли рассматриваемая на очередном шаге вершина целевой. Алгоритм использует метод поиска в ширину [3, с. 631].

Алгоритмы были реализованы на языке программирования С++. Все эксперименты проводились на графе в виде равномерной сетки размером 90 на 90.

Результат первого эксперимента изображен на рис. 1. Оба алгоритма успешно справились с задачей нахождения кратчайшего пути между двумя заданными вершинами графа. Время работы алгоритма А* - 4 мс. Время работы алгоритма волновой трассировки - 3 мс.