Научная статья на тему 'Использование метода Монтгомери в алгоритме быстрого возведения в степень'

Использование метода Монтгомери в алгоритме быстрого возведения в степень Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
0
0
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
криптография / информационная безопасность / алгоритм Монтгомери / модульная арифметика / умножение по модулю / алгоритм быстрого возведения в степень по модулю / cryptography / information security / Montgomery algorithm / modular arithmetic / multiplication modulo / algorithm of rapid exponentiation modulo

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Яковлев Виктор Алексеевич, Шемякин Сергей Николаевич, Таров Евгений Викторович

Введение: стойкость современных криптографических систем напрямую зависит от размерности оперируемых чисел. Однако, увеличение значений данных чисел подразумевает не только большую стойкость, но и ведет к повышению вычислительных затрат для расчетов значений криптографических функций. Это объясняется необходимостью учета межразрядных переносов при реализации различных операций в полях классов вычетов. При этом наиболее распространенные операции в криптографических системах на основе полей являются умножение и возведение в степень. Причем довольно часто применяется алгоритм быстрого возведения в степень для сокращения вычислительных ресурсов. Этот алгоритм используется в таких криптосистемах, как например RSA, Диффи-Хеллмана, Эль-Гамаля. Однако вычисление значений криптографических функций в этих системах является достаточно громоздким процессом, даже с учетом вычислительной эффективности используемого в них алгоритма быстрого возведения в степень. Потому для уменьшения вычислительных ресурсов возможно применение алгоритма Монтгомери, который является одним из наиболее быстрым для реализации модульных вычислений. Общие вычислительные затраты при его использовании существенно уменьшаются из-за отсутствия необходимости в учете межразрядных переносов. Цель работы: в данной работе предлагается способ модернизации алгоритма быстрого возведения в степень в кольце классов вычетов по большому модулю с использованием идей Монтгомери в интересах уменьшения вычислительных затрат алгоритма. Результаты: предложен способ модернизации алгоритма быстрого возведения в степень. Проведено сравнение временных затрат при использовании стандартного алгоритма и при использовании методов Монтгомери. Оказалось, что скорость модульного возведения в степень с использованием предложенного алгоритма существенно выше, чем при использовании стандартных средств.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Яковлев Виктор Алексеевич, Шемякин Сергей Николаевич, Таров Евгений Викторович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

USING THE MONTGOMERY METHOD IN A FAST EXPONENTIATION ALGORITHM

Introduction: the durability of modern cryptographic systems directly depends on the dimension of the numbers being operated. However, an increase in the values of these numbers implies not only greater durability, but also leads to an increase in computational costs for calculating the values of cryptographic functions. This is explained by the need to take into account inter-bit transfers when implementing various operations in the fields of deduction classes. At the same time, the most common operations in field-based cryptographic systems are multiplication and exponentiation. Moreover, a fast exponentiation algorithm is often used to reduce computing resources. This algorithm is used in such cryptosystems as, for example, RSA, Diffie-Hellman, El Gamal. However, calculating the values of cryptographic functions in these systems is a rather cumbersome process, even taking into account the computational efficiency of the fast exponentiation algorithm used in them. Therefore, to reduce computing resources, it is possible to use the Montgomeri algorithm, which is one of the fastest for implementing modular computing. The total computational costs when using it are significantly reduced due to the lack of need to account for inter-bit transfers. Problem statement: in this paper, we propose a way to modernize the algorithm for rapid exponentiation in the ring of residue classes by a large modulus using Montgomery's ideas in order to reduce the computational costs of the algorithm. Results: a method for upgrading the algorithm of rapid exponentiation is proposed. A comparison of the time spent using the standard algorithm and using Montgomery methods is carried out. It turned out that the speed of modular exponentiation using the proposed algorithm is significantly higher than when using standard tools.

Текст научной работы на тему «Использование метода Монтгомери в алгоритме быстрого возведения в степень»

Использование метода Монтгомери в алгоритме быстрого возведения в степень

Яковлев Виктор Алексеевич

доктор технических наук, доцент кафедры защищенных систем связи Санкт-Петербургского государственного университета телекоммуникаций им. проф. М.А. Бонч-Бруевича, г. Санкт-Петербург, Россия, viyak@bk.ru

Шемякин Сергей Николаевич

кандидат технических наук, доцент кафедры защищенных систем связи Санкт-Петербургского государственного университета телекоммуникаций им. проф. М.А.Бонч-Бруевича, г. Санкт-Петербург, Россия, s4421764@ya.ru

Таров Евгений Викторович

студент Санкт-Петербургского государственного университета телекоммуникаций им. проф. М.А. Бонч-Бруевича, г. Санкт-Петербург, Россия, tarov25@mail.ru

АННОТАЦИЯ_

Введение: стойкость современных криптографических систем напрямую зависит от размерности оперируемых чисел. Однако, увеличение значений данных чисел подразумевает не только большую стойкость, но и ведет к повышению вычислительных затрат для расчетов значений криптографических функций. Это объясняется необходимостью учета межразрядных переносов при реализации различных операций в полях классов вычетов. При этом наиболее распространенные операции в криптографических системах на основе полей являются умножение и возведение в степень. Причем довольно часто применяется алгоритм быстрого возведения в степень для сокращения вычислительных ресурсов. Этот алгоритм используется в таких криптосистемах, как например RSA, Диффи-Хеллмана, Эль-Гамаля. Однако вычисление значений криптографических функций в этих системах является достаточно громоздким процессом, даже с учетом вычислительной эффективности используемого в них алгоритма быстрого возведения в степень. Потому для уменьшения вычислительных ресурсов возможно применение алгоритма Монтгомери, который является одним из наиболее быстрым для реализации модульных вычислений. Общие вычислительные затраты при его использовании существенно уменьшаются из-за отсутствия необходимости в учете межразрядных переносов. Цель работы: в данной работе предлагается способ модернизации алгоритма быстрого возведения в степень в кольце классов вычетов по большому модулю с использованием идей Монтгомери в интересах уменьшения вычислительных затрат алгоритма. Результаты: предложен способ модернизации алгоритма быстрого возведения в степень. Проведено сравнение временных затрат при использовании стандартного алгоритма и при использовании методов Монтгомери. Оказалось, что скорость модульного возведения в степень с использованием предложенного алгоритма существенно выше, чем при использовании стандартных средств.

КЛЮЧЕВЫЕ СЛОВА: криптография; информационная безопасность; алгоритм Монтгомери; модульная арифметика; умножение по модулю; алгоритм быстрого возведения в степень по модулю.

Введение

В настоящее время стойкость значительной части криптосистем с общедоступным ключом основывается на использовании операций умножения и (или) возведения в степень. Они реализуются в поле классов вычетов по большому простому модулю, в поле Галуа или на точках некоторой эллиптической кривой. При этом подразумевается использование алгоритма быстрого возведения в степень [1, 2].

Данный алгоритм используется, например, в известной криптосистеме RSA. В ней сообщение m делится на части mt, каждая из которых используется для формирования соответствующей криптограммы c по следующему правилу

ci = me mod N, где N и e - части открытого ключа A (см. [2, 3]).

Необходимость в этом алгоритме возникает также и при использовании криптосистемы Диффи-Хеллмана для вычисления общего ключа K по формуле:

K = а^ mod N,

где а - элемент с большим показателем в кольцах классов вычетов по модулю N (или же примитивный элемент поля, если N простое число); y и x - числа, которые формируют пользователи криптосистемы (см. [2, 3]).

Аналогично, в системе Эль-Гамаля используется алгоритм быстрого возведения в степень для вычисления части открытого ключа A по следующему правилу

Ai =аа mod N,

где а - случайное целое положительное число, не превосходящее значения N - 2, а а - примитивный элемент (см. [2, 3]).

И для формирования криптограммы C некоторой части сообщения M

у = ак mod N, 5 = Mtаак mod N,

здесь у и S - части криптограммы C; Mi - некоторая часть изначального сообщения; к - случайное целое число, не превосходящее значения N - 2 (см. [2, 3]).

Необходимо отметить, что стойкость криптосистем зависит от размерности модуля N. Например, в системе Эль-Гамаля величина модуля должна составлять порядка 1024 бит для обеспечения достаточной стойкости. А в RSA более 2048 бит для высокой стойкости. Что касается систем на эллиптических кривых, в настоящее время принято, что достаточно стойкими являются системы с рекомендуемой размерностью модуля более 256 бит [4-9].

Вместе с тем необходимо указать, что вычисление значений криптографических функций в этих системах является достаточно громоздким процессом, даже с учетом вычисли-

тельной эффективности используемого в них алгоритма быстрого возведения в степень. И поэтому задача уменьшения вычислительных затрат при реализации операций в кольцах классов вычетов по большому модулю является актуальной.

Для ее решения возможно использование алгоритма Монтгомери. В соответствии с [1016] данный алгоритм является одним из лучших для модульных вычислений. Это объясняется тем, что данный алгоритм заменяет стандартную операцию приведения по модулю на некоторую другую, очень просто реализуемую. Общие вычислительные затраты при этом существенно уменьшаются из-за отсутствия необходимости в учете межразрядных переносов.

В данной работе предлагается способ модернизации алгоритма быстрого возведения в степень в кольце классов вычетов по большому модулю с использованием идей Монтгомери для уменьшения вычислительных затрат.

Принцип работы алгоритма Монтгомери

Алгоритм Монтгомери представляет собой эффективный метод для выполнения операций с большими числами. Он применяется для ускорения умножения и возведения в степень в некотором кольце классов вычетов. Принцип работы заключается в замене умножения и деления операциями сдвига бит и сложения, что позволяет значительно повысить скорость модулярных вычислений. Это реализуется посредством замены вычислений по изначальному модулю N, который образует исходное кольцо классов вычетов ZN, на работу с более удобным модулем R. Число R выбирается в соответствии со следующими условиями: R > N и НОД^, N) = 1, где НОД - наибольший общий делитель [17-19].

При этом данный модуль образует свое кольцо классов вычетов, которое называют кольцом Монтгомери. Обозначим его следующим образом: ZR . R обычно выбирают как число, являющееся результатом возведения двойки в степень для возможности программной реализации сдвигов бит. Это позволяет упростить вычисления и сделать их более эффективными, обеспечивая оптимальную скорость выполнения модулярных операций.

Перед началом работы алгоритмов производят следующие предварительные вычисления [17-19]:

1. определяют модуль R;

2. при помощи расширенного алгоритма Евклида находят линейное разложение:

Rr - Nn = 1, (1)

где r = R- mod N, n = (-N)-1 mod R ;

3. вычисляют значение R2 mod N или R3 mod N .

После чего производят отображение стартовых параметров из исходного кольца в кольцо Монтгомери (в дальнейшем контексте просто отображение) при помощи специальных методов. Обозначим их через следующие функции:

9r (x) = xr mod N; (2)

9r (x, y) = xyr mod N . (3)

Представим это в виде таблицы для лучшего понимания данного процесса - таблица 1.

Таб. 1. Сопоставление исходных параметров и их отображений

Параметры Исходное кольцо Кольцо Монтгомери

x x mod N xr mod N

xy xy mod N xyr mod N

Как видно из таблицы 1 - на выходе обеих функций к входным параметрам добавляется число r, получаемое в результате применения формулы (1). Это как раз и является свидетельством отображения.

Для того, чтобы вернуться в исходное кольцо (т.е. избавится от лишнего множителя r), образованное классом вычетов по модулю N, нужно применить функцию (3) следующим образом:

фд (фд (x), R2) = ФR (x)R2r mod N = xR2r2 mod N = x mod N ;

фд (фд (x, y), R2) = фд (x, y)R2r mod N = xyR2r2 mod N = xy mod N.

Рассмотрим подробнее, как устроены функции (2) и (3) «изнутри». Для этого обратимся к первой из них: фд (x). Процесс отображения числа x при помощи данной функции может быть описан следующим алгоритмом [17-19]:

Алгоритм 1. Отображение фд (x) одного числа x.

Пусть дано целое положительное число x £ ZN . Необходимо вычислить фд (x). Для этого нужно провести следующие вычисления: 1. вычислить значение m = xn mod R;

x + mN

2. вычислить целое число t = -

3. положить, что фя (x) = <

R

t, t < N [t — N, t > N .

Для случая, когда нужно отобразить произведения двух чисел, применяют функцию (3). Данный процесс можно описать при помощи следующего алгоритма [17-19]: Алгоритм 2. Отображение фR (x, у) произведения двух чисел x и у.

Пусть даны целые положительные числа x, у £ ZN . Необходимо вычислить фR(x,у). Алгоритм состоит в построении последовательности чисел z0, z1 ..., zm , где m = |~logß N(ß - система счисления, в которой производятся вычисления). Здесь z0 = 0, и по найденному zt следующее число zt+1 вычисляется последовательно следующим образом:

1. вычислить значение u = zt + x:y mod ß ;

2. вычислить значение v = un mod ß;

3. вычислить очередное значение последовательности

Z: + x: у + vN z = _j__•

Zi+1 = ß ;

f z , z < N

4. после того, как было вычислено значение zm положить, что фR (x, у) = ^ m m .

z — N z > N

\ " vn x 1 1 ** VH - x 1

Анализ алгоритма быстрого возведения в степень

Алгоритм быстрого модульного возведения в степень предназначен для эффективного вычисления значения xk mod N, где x, к и N - целые числа.

Основная идея заключается в использовании бинарного разложения показателя степени к. Алгоритм выполняет последовательные возведения в квадрат числа x и на каждом шаге проверяет биты показателя степени. Если бит равен 1, то текущий результат умножается на x и берется остаток от деления на N [20-21].

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

Однако даже в нем есть некоторые неоптимальные вычисления. Они связаны с нахождением остатка от деления, так как в стандартном алгоритме предполагается использование метода деления в столбик, что достаточно ресурсоемко при работе с большими числами (порядка 4000 бит). Потому для оптимизации этих вычислений необходимо применить метод Монтгомери. Для этого рассмотрим принцип работы алгоритма быстрого возведения в степень [20-21].

Алгоритм 3. Алгоритм быстрого возведения в степень по модулю.

Пусть дан целый положительный модуль N и два целых положительных числа x, к £ ZN и требуется найти xk mod N . Для этого необходимо выполнить следующие вычисления:

1. показатель степени представить в двоичном виде:

p-1

к =Е ki 2i .

i=0

(4)

где р - число бит, которое занимает двоичная запись К; в результате (4) будет получено следующее множество бит: (К0, к1,..., Кр-1);

2. пройтись по битам показателя степени от младшего разряда К0 к старшему кр-1 при этом сформировать либо одно целое число ^ (здесь \ = 1, 2, ...,р-1), если данный бит равен нулю К = 0, либо два - ^ и di, при условии, что К = 1.

Здесь число d изначально равно 1 (d0 = 1) и варьируется в соответствии с битом К определяя свое значение согласно следующей формуле:

di -1, ki = 0

& = ,

-1 mod ^, К = 1

Число ^ изначально равно основанию степени (^ = х) и в дальнейшем меняет свое значение независимо от множества (К0,К1,...,Кр-1). Параметр ^ возводится в квадрат по модулю N и

полученное значение присваивается уже как новое по следующей формуле:

ti = ti-l mod N;

3. После того как все биты показателя степени были задействованы в предыдущем шаге, то положить, что результат модульного возведения в степень равен последнему значению параметра di:

dm-1 = xk mod N .

Реализация быстрого возведения в степень с применением идей Монтгомери

На основании рассмотренного алгоритма быстрого возведения в степень можно сделать следующие выводы: во втором шаге алгоритма 3 для нахождения каждого di и ti производятся умножения и возведения в степень по модулю N соответственно для каждой из величин. Наибольшее число операций для di будет равно p - 1 при условии, что k = 2' -1, а минимальное - единице в том случае, если k = 21, где I - натуральное число. В свою очередь количество операций возведения в степень по модулю для чисел ti всегда будет равно p - 1 вне зависимости от значения показателя степени. Из этого следует, что при в процессе приведенных вычислений необходимо провести достаточно большое количество операций модульного умножения.

Потому алгоритм 3 можно эффективно оптимизировать при помощи методов Монтгомери следующим образом.

Алгоритм 4. Оптимизированный алгоритм быстрого возведения в степень с применением методов Монтгомери.

Пусть дан целый положительный модуль N и два целых положительных числа x, k £ ZN

и требуется вычислить xk mod N . Для этого необходимо выполнить следующие вычисления:

1. отобразить число x при помощи функции (3) и обозначить результат следующим образом:

zR = фд (x, R2 mod N) = xR mod N;

2. получить множество бит показателя степени: (k0,kx,...,kp-1);

3. пройтись по множеству бит из 2 шага и сформировать числа ti и di по следующим формулам:

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

t = ФR (ti-1, ti -1 ) = ti -11-1R mod N , d =J ^ ki = 0

ФR ^г-^ ti-Д ki = 1

где фR (di-1, ti-x) = di-lti-lr mod N = di-xx2(i X)Rr mod N = di-xx2(i X)mod N . При этом d0 = 1, t0 = zR, г = 1, 2, ..., p-1;

4. положить, что результат модульного возведения в степень равен последнему значению dm-1 :

dm-1 = xk mod N .

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

Упомянутые алгоритмы (стандартный - алгоритм 3 с использованием деления в столбик и модернизированный - алгоритм 4) были реализованные на языке программирования высокого уровня Python версии 3.10. Сравнительный анализ был проведен на процессоре Intel(R) Core(TM) i3-8130U CPU @ 2.20GHz и на операционной системе Windows 11. Результат сравнения алгоритмов представлен на рисунке.

4000 5000 6000 7000 8000 9000 10000

Количество бит модуля N Рис. График времени работы алгоритмов

На рисунке представлен график времени работы алгоритмов. В соответствии с данными, представленными на нем, построим таблицу результатов - таблица 2.

Таблица 2. Результаты измерения

Количество бит модуля N Время работы стандартного алгоритма, мс Время работы оптимизированного алгоритма, мс Процентное улучшение времени работы модернизированного алгоритма по сравнению с обычным

4096 0.101 0.097 4%

5120 0.156 0.141 11%

6144 0.223 0.173 29%

7168 0.306 0.221 38%

8192 0.436 0.292 49%

9216 0.579 0.332 74%

10240 0.811 0.407 99%

В соответствии с данными, представленными на рисунке и в таблице 2 можно пронаблюдать, что модернизация алгоритма быстрого возведения в степень по модулю при помощи методов Монтгомери позволила получить выигрыш во времени работы на 4% при числе разрядов 4096, а для 10240 бит данный выигрыш составил почти 100%, т.е. скорость выполнения оптимизированного алгоритма была в два раза быстрее в сравнении со скоростью вычислений стандартного. При всем этом данный выигрыш будет увеличиваться по мере роста разрядности оперируемых чисел.

Заключение

В данной работе рассмотрен принцип работы умножения и возведения в степень в поле классов вычетов по большому простому модулю с использованием идей Монтгомери. Описан модернизированный алгоритм быстрого возведения в степень по модулю с использованием данных идей. Проведен сравнительный анализ модернизированного и обычного алгоритма при помощи языка программирования Python, который показал, что применение идей Монтгомери позволило получить выигрыш во времени работы на 4% при числе разрядов 4096, а для 10240 бит - 99%. В дальнейшем необходимо провести исследования на основе данной работы и оценить выигрыш при использовании модернизированного алгоритма быстрого возведения в степень в криптосистемах RSA, Диффи-Хеллмана и Эль-Гамаля при работе с большими числами.

Литература

1. КнутД.Э. Искусство программирования. Том 1. Основные алгоритмы. М.: Мир, 1976. 735 с.

2. Menezes A., Oorshot P., Vanstone S. Handbook of applied cryptography. CRC, 1997. 815 с.

3. Schneier B. Applied Cryptography. W and S, 1994. 662 с.

4. Тимофеева О.П., Лимаренко А.А., Усанова А.В., Фарафонова Н.А. Применение системы RSA в задачах криптографии и исследование ее криптостойкости // Информационные системы и технологии ист-2021 : Сборник материалов XXVII Международной научно-технической конференции Нижегородский государственный технический университет им. Р.Е. Алексеева, Нижний Новгород, 23-24 апреля 2021 года / Нижегородский государственный технический университет им. Р.Е. Алексеева. Нижний Новгород: Нижегородский государственный технический университет им. Р.Е. Алексеева, 2021. С. 532-538.

5. Березина Е.О., Яковлев В.А. Анализ атаки факторизации модуля в криптосистеме рша на основе моделирования алгоритма Шора с использованием квантовых // Актуальные проблемы инфотеле-коммуникаций в науке и образовании (АПИНО 2019) : сборник научных статей VIII Международной научно-технической и научно-методической конференцияи : в 4 т., Санкт-Петербург, 27-28 февраля 2019 года. Том 1. Санкт-Петербург: Санкт-Петербургский государственный университет телекоммуникаций им. проф. М.А. Бонч-Бруевича, 2019. С. 143-148.

6. Гаврилов К.С., Коржик В.И. Реализация алгоритмов некоторых побочных атак на криптосистему рша // Актуальные проблемы инфотелекоммуникаций в науке и образовании : III Международная научно-техническая и научно-методическая конференция: сборник научных статей, Санкт-Петербург, 25-26 февраля 2014 года. Санкт-Петербург: Санкт-Петербургский государственный университет телекоммуникаций им. проф. М.А. Бонч-Бруевича, 2014. С. 235-241.

7. Goyal R., Khurana M. Cryptographic Security using Various Encryption and Decryption Method // International Journal of Mathematical Sciences and Computing. 017. Vol. 3. No 3. P. 1-11. DOI 10.5815/ijmsc.2017.03.01.

8. Ахмеров А.С., Резяпов И.Н. Сравнительный анализ алгоритмов асимметричного шифрования RSA и ECC // Мавлютовские чтения : материалы XV Всероссийской молодежной научной конференции: в 7 тома, Уфа, 26-28 октября 2021 года. Том 4. Уфа: Уфимский государственный авиационный технический университет, 2021. С. 326-330.

9. Balasubramanian K., Rajakani M. Problems in cryptography and cryptanalysis // Algorithmic Strategies for Solving Complex Problems in Cryptography, 2017. P. 23-38. DOI 10.4018/978-1-5225-2915-6.ch002.

10. Ha J.C., Moon S.J. A common-multiplicand method to the Montgomery algorithm for speeding up exponentiation // Information Processing Letters. 1998. Vol. 66. No 2. P. 105-107.

11. Hong S.M., Oh S. Ye., Yoon H. New Modular Multiplication Algorithms for Fast Modular Exponentiation // Lecture Notes in Computer Science. 1996. Vol. 1070. P. 0166.

12. Каленик А.Н., Коляда А.А., Коляда Н.А., Чернявский А.Ф., Шабинская Е.В. Умножение и возведение в степень по большим модулям с использованием минимально избыточной модулярной арифметики // Информационные технологии. 2012. № 4. С. 37-44.

13. TiountchikA.A. Systolic modular exponentiation via Montgomery algorithm // Electronics Letters. 1998. Vol. 34. No 9. P. 874-875. DOI 10.1049/el:19980624.

14. Trichina E., Tiountchik A. Scalable algorithm for montgomery multiplication and its implementation on the coarse-grain reconfigurable chip // Lecture Notes in Computer Science. 2001. Vol. 2020. P. 235249. DOI 10.1007/3-540-45353-9_18.

15. Montgomery P.L. Modular multiplication without trial division. // Mathematics of computation. 1985. Vol. 44, No. 170. P. 519-521.

16. Василенко О.Н. Теоретико-числовые алгоритмы в криптографии / О. Н. Василенко. 2-е изд. М. : МЦНМО, 2007. 336 с.

17. Лобес М.В., Червяков Н.И. Повышение скорости выполнения операции модульного возведения в степень многоразрядных чисел // Инфокоммуникационные технологии. 2009. № 7. С. 8-12.

18. Чернявский А.Ф., Коляда А.А., Коляда Н.А., Шабинская Е.В. Умножение по большим модулям методом Монтгомери с применением минимально избыточной модулярной арифметики // Нейрокомпьютеры: разработка, применение. 2010. № 9. С. 3-8.

19. Груздев С.В., Шилова Я.В., Ермаков К.Д. Применение метода Монтгомери для инженерных приложений физико-математических наук // Информационные системы и технологии ист-2021 : сборник материалов XXVII Международной научно-технической конференции Нижегородский государственный технический университет им. Р.Е. Алексеева, Нижний Новгород, 23-24 апреля 2021 года / Нижегородский государственный технический университет им. Р.Е. Алексеева. Нижний Новгород: Нижегородский государственный технический университет им. Р.Е. Алексеева, 2021. С. 513-520.

20. Тюпко, И.Г. Об одном методе возведения в степень в кольце классов вычетов по модулю n // Обучение фрактальной геометрии и информатике в вузе и школе в свете идей академика А. Н. Колмогорова : Материалы XVI Колмогоровских чтений: 3-й Международной научно-методической конференции, Кострома, 07-09 декабря 2021 года. Кострома: Костромской государственный университет, 2021. С. 218-222.

21. Авдошин С. М., Набебин А.А. Дискретная математика. Модулярная алгебра, криптография, кодирование. М.: ДМК Пресс, 2017. 352 с.

USING THE MONTGOMERY METHOD IN A FAST EXPONENTIATION ALGORITHM

VIKTOR A. YAKOVLEV

PhD, Associate Professor at the Department of secure communication systems St. Petersburg, Russia, viyak@bk.ru

SERGEY N. SHEMYAKIN

PhD, Associate Professor at the Department of

secure communication systems

St. Petersburg, Russia, s4421764@ya.ru

EVGENIY V. TAROV

St. Petersburg, Russia, tarov25@mail.ru

ABSTRACT

Introduction: the durability of modern cryptographic systems directly depends on the dimension of the numbers being operated. However, an increase in the values of these numbers implies not only greater durability, but also leads to an increase in computational costs for calculating the values of cryptographic functions. This is explained by the need to take into account inter-bit transfers when implementing various operations in the fields of deduction classes. At the same time, the most common operations in field-based cryptographic systems are multiplication and exponentiation. Moreover, a fast exponentiation algorithm is often used to reduce computing resources. This algorithm is used in such cryptosystems as, for example, RSA, Diffie-Hellman, El Gamal. However, calculating the values of cryptographic functions in these systems is a rather cumbersome process, even taking into account the computational efficiency of the fast exponentiation algorithm used in them. Therefore, to reduce computing resources, it is possible to use the Mont-gomeri algorithm, which is one of the fastest for implementing modular computing. The total computational costs when using it are significantly reduced due to the lack of need to account for inter-bit transfers. Problem statement: in this paper, we propose a way to modernize the algorithm for rapid exponentiation in the ring of residue classes by a large modulus using Montgomery's ideas in order to reduce the computational costs of the algorithm. Results: a method for upgrading the algorithm of rapid exponentiation is proposed. A comparison of the time spent using the standard algorithm and using Montgomery methods is carried out. It turned out that the speed of modular exponentiation using the proposed algorithm is significantly higher than when using standard tools.

Keywords: cryptography; information security; Montgomery algorithm; modular arithmetic; multiplication modulo; algorithm of rapid exponentiation modulo.

REFERENCES

1. Knut D.E. The art of programming. Volume 1. Basic algorithms Moscow: Mir, 1976. 735 p.

2. Menezes A., Oorshot P., Vanstone S. Handbook of applied cryptography. CRC, 1997. 815 p/

3. Schneier B. Applied Cryptography. W and S, 1994. 662 p.

4. Timofeeva O.P., Limarenko A.A., Usanova A.V., Farafonova N.A. Application of the RSA system in cryptography tasks and

research of its cryptographic strength. Information systems and technologies ist-2021 : collection of materials of the XXVII International Scientific and Technical Conference Nizhny Novgorod State Technical University named after R.E. Alekseev, Nizhny Novgorod, April 23-24, 2021. Nizhny Novgorod State Technical University named after R.E. Alekseev. Nizhny Novgorod: Nizhny Novgorod State Technical University named after R.E. Alekseev, 2021. Pp. 532-538.

5. Berezina E.O., Yakovlev V.A. Analysis of the module factorization attack in the RSHA cryptosystem based on modeling of the

Shore algorithm using quantum. Actual problems of infotelecommunications in science and education (APINO 2019) : collection of scientific articles of the VIII International Scientific-Technical and Scientific-methodological Conference : in 4 volumes, St. Petersburg, February 27-28, 2019. Volume 1. St. Petersburg: St. Petersburg State University of Telecommunications named after Prof. M.A. Bonch-Bruevich, 2019. Pp. 143-148.

6. Gavrilov K.S., Korzhik V.I. Implementation of algorithms of some side attacks on the rsha cryptosystem. Actual problems of

infotelecommunications in science and education : III International scientific-technical and scientific-methodical conference: collection of scientific articles, St. Petersburg, February 25-26, 2014. St. Petersburg: St. Petersburg State University of Telecommunications named after Prof. M.A. Bonch-Bruevich, 2014. Pp. 235-241.

7. Goyal R., Khurana M. Cryptographic Security using Various Encryption and Decryption Method. International Journal of Math-

ematical Sciences and Computing. 2017. Vol. 3. No 3. Pp. 1-11. DOI 10.5815/ijmsc.2017.03.01.

8. Akhmerov A.S., Rezyapov I.N. Comparative analysis of RSA and ECC asymmetric encryption algorithms. Mavlyutov readings:

Proceedings of the XV All-Russian Youth Scientific Conference: in Volume 7, Ufa, October 26-28, 2021. Volume 4. Ufa: Ufa State Aviation Technical University, 2021. Pp. 326-330.

9. Balasubramanian K., Rajakani M. Problems in cryptography and cryptanalysis. Algorithmic Strategies for Solving Complex

Problems in Cryptography, 2017. Pp. 23-38. DOI 10.4018/978-1 -5225-2915-6.ch002.

10. Ha J.C., Moon S.J. A common-multiplicand method to the Montgomery algorithm for speeding up exponentiation. Information Processing Letters. 1998. Vol. 66. No 2. Pp. 105-107.

11. Hong S.M., Oh S.Ye., Yoon H. New Modular Multiplication Algorithms for Fast Modular Exponentiation. Lecture Notes in Computer Science. 1996. Vol. 1070. P. 0166.

12. Kalenik A.N., Kolyada A.A., Kolyada N.A., Chernyavsky A.F., Shabinskaya E.V. Multiplication and exponentiation by large modules using minimally redundant modular arithmetic. Information technologies. 2012. No. 4. Pp. 37-44.

13. Tiountchik A.A. Systolic modular exponentiation via Montgomery algorithm. Electronics Letters. 1998. Vol. 34. No 9. Pp. 874875. DOI 10.1049/el: 19980624.

14. Trichina E., Tiountchik A. Scalable algorithm for montgomery multiplication and its implementation on the coarse-grain reconfigurable chip. Lecture Notes in Computer Science. 2001. Vol. 2020. Pp. 235-249. DOI 10.1007/3-540-45353-9_18.

15. Montgomery P.L. Modular multiplication without trial division. Mathematics of computation. 1985. Vol. 44, No. 170. Pp. 519521.

16. Vasilenko O.N. Number-theoretic algorithms in cryptography. 2nd ed. M. : ICNMO, 2007. 336 p.

17. Lobes M.V., Chervyakov N.I. Increasing the speed of performing the operation of modular exponentiation of multi—digit numbers. Infocommunication technologies. 2009. No. 7. Pp. 8-12.

18. Chernyavsky A.F., Kolyada A.A., Kolyada N.A., Shabinskaya E.V. Multiplication by large modules by the Montgomery method using minimally redundant modular arithmetic. Neurocomputers: development, application. 2010. No. 9. Pp. 3-8.

19. Gruzdev S.V., Shilova Ya.V., Ermakov K.D. Application of the Montgomery method for engineering applications of physical and mathematical sciences. Information systems and technologies ist-2021 : collection of materials of the XXVII International Scientific and Technical Conference Nizhny Novgorod State Technical University named after R.E. Alekseev, Nizhny Novgorod, April 23-24, 2021. Nizhny Novgorod State Technical University named after R.E. Alekseev. Nizhny Novgorod: Nizhny Novgorod State Technical University named after R.E. Alekseev, 2021. Pp. 513-520.

20. Tyupko, I.G. On one method of exponentiation in the ring of residue classes modulo. Teaching fractal geometry and computer science at university and school in the light of the ideas of Academician A. N. Kolmogorov : materials of the XVI Kolmogorov readings: 3rd International Scientific and Methodological Conference, Kostroma, 07-09 December 2021. Kostroma: Kostroma State University, 2021. Pp. 218-222.

21. Avdoshin S. M., Nabebin A.A. Discrete mathematics. Modular algebra, cryptography, coding. M.: DMK Press, 2017. 352 p.

i Надоели баннеры? Вы всегда можете отключить рекламу.