RU2457535C2 - Method of generating and verifying electronic digital signature based on elliptic or hyperelliptic curve - Google Patents

Method of generating and verifying electronic digital signature based on elliptic or hyperelliptic curve Download PDF

Info

Publication number
RU2457535C2
RU2457535C2 RU2010121292/08A RU2010121292A RU2457535C2 RU 2457535 C2 RU2457535 C2 RU 2457535C2 RU 2010121292/08 A RU2010121292/08 A RU 2010121292/08A RU 2010121292 A RU2010121292 A RU 2010121292A RU 2457535 C2 RU2457535 C2 RU 2457535C2
Authority
RU
Russia
Prior art keywords
point
mod
stage
chains
coefficients
Prior art date
Application number
RU2010121292/08A
Other languages
Russian (ru)
Other versions
RU2010121292A (en
Inventor
Александр Григорьевич Ростовцев (RU)
Александр Григорьевич Ростовцев
Original Assignee
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Санкт-Петербургский государственный политехнический университет" (ФГБОУ ВПО "СПбГПУ")
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Санкт-Петербургский государственный политехнический университет" (ФГБОУ ВПО "СПбГПУ") filed Critical Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Санкт-Петербургский государственный политехнический университет" (ФГБОУ ВПО "СПбГПУ")
Priority to RU2010121292/08A priority Critical patent/RU2457535C2/en
Publication of RU2010121292A publication Critical patent/RU2010121292A/en
Application granted granted Critical
Publication of RU2457535C2 publication Critical patent/RU2457535C2/en

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

FIELD: information technology.
SUBSTANCE: method involves transformation of bit strings and performing operations with bit stings, in which during generation or verification of a signature, at least one predetermined point (corresponding reduced divisor) P of the simple order q on the elliptic (corresponding hyperelliptic) curve is multiplied by an integer k via summation and doubling; when generating the signature, random selection of the number k is allowed, wherein the first step involves selecting a number w=-2 for q=1, 3 (mod 8) or w=2 for q=1, 7 (mod 8), the value t=√w (mod q) is calculated; and at the second step, the number k is transformed to a number system with base t: k=K0+K1t+…+K2ht2h+K2h+1t2h+I, where all coefficients K0,…, K2h+1 assume values 0, 1 or -1, and a number 2h close to log2q, and during recursive transition to the previous chain of coefficients, n/2 doublings of the point (reduced divisor) R are carried out.
EFFECT: high speed of generating and verifying an electronic digital signature using elliptic or hyperelliptic curves.
4 cl, 1 app

Description

Изобретение относится к электросвязи и вычислительной технике, в частности к области криптографической защиты электронных данных, передаваемых по телекоммуникационным сетям и сетям ЭВМ, с использованием эллиптических и гиперэллиптических кривых, и может быть использовано в системах передачи данных. Используемые в данном описании специфические термины поясняются в Приложении 1.The invention relates to telecommunications and computer engineering, in particular to the field of cryptographic protection of electronic data transmitted over telecommunication networks and computer networks using elliptical and hyperelliptic curves, and can be used in data transmission systems. The specific terms used in this description are explained in Appendix 1.

Известны системы электронной цифровой подписи (ЭЦП) электронного документа на основе эллиптических кривых [ГОСТ Р 34.10-2001. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи. Госстандарт России, М., 2001]; [ANSI X9.62. Public Key Cryptography for the Financial Services Industry, The Elliptic Curve Digital Signature Algorithm (ECDSA), 2005, http://www.comms.scitech.susx.ac.uk/fft/crypto/ecdsa.pdf], предусматривающие процессы формирования и проверки ЭЦП. Указанные стандарты ЭЦП по сути являются вариантами схем ЭЦП Эль-Гамаля [ElGamal T. A public-key cryptosystem and a signature scheme based on discrete logarithms // IEEE Transactions on Information Theory. 1985. Vol.IT-31. P.469-472.] и Шнорра [Schnorr C.P. Efficient identification and signatures for smart cards // Advances in Cryptology - CRYPTO '89. Lecture Notes in Computer Science. Springer-Verlag. 1990. Vol.435. P.239-252.].Known electronic digital signature system (EDS) of an electronic document based on elliptic curves [GOST R 34.10-2001. Cryptographic information security. The processes of formation and verification of electronic digital signatures. Gosstandart of Russia, M., 2001]; [ANSI X9.62. Public Key Cryptography for the Financial Services Industry, The Elliptic Curve Digital Signature Algorithm (ECDSA), 2005, http://www.comms.scitech.susx.ac.uk/fft/crypto/ecdsa.pdf], which provide for the formation and EDS checks. These EDS standards are essentially variants of El-Gamal EDS schemes [ElGamal T. A public-key cryptosystem and a signature scheme based on discrete logarithms // IEEE Transactions on Information Theory. 1985. Vol. IT-31. P.469-472.] And Schnorr [Schnorr C.P. Efficient identification and signatures for smart cards // Advances in Cryptology - CRYPTO '89. Lecture Notes in Computer Science. Springer-Verlag. 1990. Vol. 435. P.239-252.].

Предусмотренная известными способами ЭЦП эллиптическая кривая состоит из конечного числа точек P=(x, y), удовлетворяющих уравнению y2+a 1xy=x3+a 2x2+a 4x+a 6, допускающих операции сложения и удвоения, см. также Приложение 1. Вычисление точки P+…+P соответствует умножению (называемому также скалярным умножением) точки P на целое число k, обозначаемое kP; умножение точки на число выполняется с использованием сложений и удвоений точек.The elliptic curve envisaged by the known methods of EDS consists of a finite number of points P = (x, y) satisfying the equation y 2 + a 1 xy = x 3 + a 2 x 2 + a 4 x + a 6 , admitting addition and doubling operations, see also Appendix 1. The calculation of the point P + ... + P corresponds to the multiplication (also called scalar multiplication) of the point P by an integer k, denoted by kP; Multiplication of a point by a number is performed using addition and doubling of points.

Известны способы электронной цифровой подписи на основе гиперэллиптических кривых [FR WO/2004/084485, опубл. 11.03.2004], предусматривающие выполнение действий с битовыми строками (БС), представляющими приведенные дивизоры (см. также Приложение 1).Known methods of electronic digital signature based on hyperelliptic curves [FR WO / 2004/084485, publ. March 11, 2004], providing for the execution of actions with bit strings (BS) representing reduced divisors (see also Appendix 1).

В известных системах ЭЦП обрабатываемые данные представлены битовой строкой или набором битовых строк. Под битовой строкой (БС) понимается электромагнитный сигнал в цифровой двоичной форме, параметром которого является число битов и порядок следования нулевых и единичных значений. Битовые строки допускают операцию конкатенации, логические и арифметические операции. Формирование и проверка ЭЦП заключается в выполнении действий с БС (преобразованиях БС и выполнении операций с БС) и выполняется с помощью вычислительных устройств, например персональных компьютеров или смарт-карт [доступно с http://www.aloaha.com/press_en/elliptic-curves-and-sha-256-support.php].In known EDS systems, the processed data is represented by a bit string or a set of bit strings. A bit string (BS) is understood as an electromagnetic signal in digital binary form, the parameter of which is the number of bits and the order of zero and single values. Bit strings allow concatenation, logical and arithmetic operations. The formation and verification of the digital signature consists in performing actions with the BS (BS transformations and performing operations with the BS) and is performed using computing devices, such as personal computers or smart cards [available from http://www.aloaha.com/press_en/elliptic- curves-and-sha-256-support.php].

В соответствии с Федеральным законом об электронной цифровой подписи юридическая значимость ЭЦП на территории РФ обеспечивается только при реализации ее в соответствии с ГОСТ Р 34.10-2001. Поэтому практически наиболее интересны способы ЭЦП, реализованные в соответствии с действующими стандартами.In accordance with the Federal Law on Electronic Digital Signatures, the legal significance of digital signatures in the Russian Federation is ensured only if it is implemented in accordance with GOST R 34.10-2001. Therefore, the most interesting methods of EDS implemented in accordance with current standards.

Стандарты подписи России [ГОСТ Р 34.10-2001. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи. Госстандарт России, М., 2001], США [ANSI X9.62. Public Key Cryptography for the Financial Services Industry, The Elliptic Curve Digital Signature Algorithm (ECDSA), 2005, доступно с http://www.comms.scitech.susx.ac.uk/fft/crypto/ecdsa.pdf], Германии [Federal Network Agency for Electricity, Gas, Telecommunications, Post and Railway. Notifications in Accordance with the Electronic Signature Act and the Electronic Signature Ordunance (Overview of suitable algorithms) // Federal Gazette, No 19, pp.376, February 5, 2008 (in German)] аналогичны и различаются размером задачи - порядком точки P эллиптической кривой (длиной цикла {P, 2P, 3P, …}), который должен быть большим простым числом q, длина q в ГОСТ Р 34.10-2001 не менее 254 бит, а в ECDSA и стандарте подписи Германии не менее 160 бит.Signature standards of Russia [GOST R 34.10-2001. Cryptographic information security. The processes of formation and verification of electronic digital signatures. Gosstandart of Russia, M., 2001], USA [ANSI X9.62. Public Key Cryptography for the Financial Services Industry, The Elliptic Curve Digital Signature Algorithm (ECDSA), 2005, available from http://www.comms.scitech.susx.ac.uk/fft/crypto/ecdsa.pdf], Germany [ Federal Network Agency for Electricity, Gas, Telecommunications, Post and Railway. Notifications in Accordance with the Electronic Signature Act and the Electronic Signature Ordunance (Overview of suitable algorithms) // Federal Gazette, No 19, pp.376, February 5, 2008 (in German)] are similar and differ in the size of the problem - the order of the point P of the elliptic curve (the cycle length {P, 2P, 3P, ...}), which should be a large prime q, the length q in GOST R 34.10-2001 is at least 254 bits, and in ECDSA and the German signature standard, at least 160 bits.

Стандарты ЭЦП, использующие эллиптические кривые, могут быть легко адаптированы для гиперэллиптических кривых, при этом точка эллиптической кривой заменяется на приведенный дивизор (ПД) гиперэллиптической кривой, сложение точек эллиптической кривой заменяется сложением ПД, а число точек эллиптической кривой заменяется числом ПД гиперэллиптической кривой [Scholten J., Vercauteren F. An introduction to elliptic and hyperelliptic curve cryptography and the NTRU cryptosystem, доступно с http://homes.esat.kuleuven.be/~fvercaut/papers/cc03.pdf], [Ростовцев А.Г. Алгебраические основы криптографии. - СПб.: Мир и Семья, Интерлайн, 2000, главы 6, 7], см. также Приложение. Поэтому для изложения сути заявленного способа достаточно рассмотреть только преобразования БС и операции с БС, предусмотренные в ГОСТ Р 34.10-2001.EDS standards using elliptic curves can be easily adapted for hyperelliptic curves, while the point of the elliptic curve is replaced by the reduced divisor (PD) of the hyperelliptic curve, the addition of points of the elliptic curve is replaced by the addition of PD, and the number of points of the elliptic curve is replaced by the number of PD of the hyperelliptic curve [Scholten J., Vercauteren F. An introduction to elliptic and hyperelliptic curve cryptography and the NTRU cryptosystem, available from http://homes.esat.kuleuven.be/~fvercaut/papers/cc03.pdf], [Rostovtsev A.G. Algebraic foundations of cryptography. - St. Petersburg: Peace and Family, Interline, 2000, chapters 6, 7], see also Appendix. Therefore, to state the essence of the claimed method, it is sufficient to consider only BS transformations and BS operations provided for in GOST R 34.10-2001.

Параметрами системы ЭЦП является эллиптическая кривая и точка P простого порядка q>2254 (см. Приложение 1) длиной 254-256 бит. Секретным ключом формирования ЭЦП является натуральное число d, 1≤d≤q-1. Открытым ключом проверки ЭЦП является точка Q=dP, которая задается парой координат длиной по 256 бит каждая. Таким образом, точка эллиптической кривой задается битовой строкой длиной 512 бит.The parameters of the EDS system are an elliptic curve and a point P of simple order q> 2,254 (see Appendix 1) with a length of 254-256 bits. The secret key to forming an EDS is a natural number d, 1≤d≤q-1. The public key for checking the digital signature is the point Q = dP, which is set by a pair of coordinates 256 bits each. Thus, the point of the elliptic curve is defined by a bit string 512 bits long.

Для формирования ЭЦП вырабатывают случайную БС, представляющую целое число k, 0<k<q, вычисляют БС, представляющую точку kP, и вычисляют БС, представляющую собственно подпись для электронного документа. В ходе проверки ЭЦП на основе БС, представляющей подпись, и соответствующего электронного документа вычисляют числа z1, z2, 0<z1, z2, <q, и вычисляют БС, представляющие точки z1P, z2Q, с помощью которых судят о подлинности подписи. При умножении точки на число выполняются преобразования БС и логические и арифметические операции с БС.To generate the digital signature, a random BS representing an integer k, 0 <k <q is generated, a BS representing the point kP is calculated, and a BS representing the signature for the electronic document is calculated. During the digital signature verification, based on the BS representing the signature and the corresponding electronic document, the numbers z 1 , z 2 , 0 <z 1 , z 2 , <q are calculated, and the BS representing the points z 1 P, z 2 Q is calculated using who are judged on the authenticity of the signature. When a point is multiplied by a number, BS transformations and logical and arithmetic operations with the BS are performed.

Скорость формирования и проверки ЭЦП определяется числом выполняемых операций сложения и умножения точек эллиптической кривой. Для повышения скорости процесса формирования и проверки ЭЦП достаточно снизить число операций, выполняемых при умножении фиксированной точки эллиптической кривой на заранее неопределенное число.The speed of formation and verification of the digital signature is determined by the number of operations to add and multiply points of the elliptic curve. To increase the speed of the process of formation and verification of the digital signature, it is sufficient to reduce the number of operations performed when the fixed point of the elliptic curve is multiplied by a predetermined number.

Известно устройство, где числа представлены в системе счисления с нецелым основанием [RU 99103806, МПК G06F 7/49, опубл. 27.01.2001]. Однако оно не может быть использовано в системах ЭЦП.A device is known where the numbers are presented in the number system with a non-integral base [RU 99103806, IPC G06F 7/49, publ. 01/27/2001]. However, it cannot be used in EDS systems.

Известен способ [RU 2232476, МПК H04L 9/30, опубл. 7.10.2004]. Недостатком этого способа является то, что он практически не увеличивает скорость формирования и проверки ЭЦП.The known method [RU 2232476, IPC H04L 9/30, publ. 10/7/2004]. The disadvantage of this method is that it practically does not increase the speed of formation and verification of the digital signature.

Известны способы формирования и проверки ЭЦП [RU 2382505, МПК H04L 9/32, опубл. 20.02.2010], [RU 2380838, МПК H04L 9/32, опубл. 27.01.2010]. Недостатком этих способов является то, что они не совместимы с ГОСТ Р 34.10-2001.Known methods for the formation and verification of EDS [RU 2382505, IPC H04L 9/32, publ. 02.20.2010], [RU 2380838, IPC H04L 9/32, publ. 01/27/2010]. The disadvantage of these methods is that they are not compatible with GOST R 34.10-2001.

Известны способы формирования и проверки ЭЦП на эллиптической кривой [US 6898284, 7590235 МПК H04L 9/30]. Недостатком данных способов является то, что они не применимы к большинству используемых на практике эллиптических кривых.Known methods for the formation and verification of EDS on an elliptical curve [US 6898284, 7590235 IPC H04L 9/30]. The disadvantage of these methods is that they are not applicable to most elliptic curves used in practice.

Известен способ формирования и проверки ЭЦП на эллиптической кривой [US 20030123655, H04K 1/00, опубл. 29.01.2002], предусматривающий два этапа при умножении точки на число. Недостатком способа является то, что он не применим к подавляющему числу эллиптических кривых, которые могут быть использованы для криптографических целей, и не совместим с ГОСТ Р 34.10-2001.A known method of forming and checking the digital signature on an elliptic curve [US 20030123655, H04K 1/00, publ. 01/29/2002], which provides for two stages when multiplying a point by a number. The disadvantage of this method is that it is not applicable to the overwhelming number of elliptic curves that can be used for cryptographic purposes, and is not compatible with GOST R 34.10-2001.

За прототип принят способ умножения фиксированной точки P простого порядка q на число k, представленное в двоичной системе счисления при формировании и проверке ЭЦП, заключающийся в использовании операций сложения и удвоения точек в соответствии с двоичным представлением числа k, предусматривающий разбиение числа k на цепочки небольшой длины n и использование таблицы предвычислений [US 20090214023, H04L 9/30, опубл. 26.02.2008]. Способ предусматривает два этапа. На первом этапе вычисляются вспомогательные БС, зависящие от P и q и представляющие произведения всевозможных значений цепочек на точку P. При этом каждая из указанных вспомогательных БС состоит из идентификатора, соответствующего значению цепочки, и значения точки эллиптической кривой. На втором этапе точку kP вычисляют рекурсивно, начиная со старших разрядов. При этом вектор двоичных коэффициентов числа k разбивают на цепочки n бит, выбирают вспомогательную БС, полученную на первом этапе, идентификатор которой соответствует старшей цепочке, выбирают из указанной БС координаты точки эллиптической кривой и присваивают их значение точке R. Под присвоением значения точке понимается присвоение ее координатам соответствующих значений. Выполняют рекурсивный переход к предыдущей цепочке. Для этого выполняют n удвоений точки R, значение полученной суммы присваивают точке R, выбирают вспомогательную БС, первая часть которой соответствует указанной предыдущей цепочке, складывают точку R с точкой, заданной второй и третьей частями указанной вспомогательной БС, и значение суммы присваивают точке R. Рекурсию повторяют до тех пор, пока не будет использована цепочка младших коэффициентов.The prototype is a method of multiplying a fixed point P of simple order q by the number k represented in the binary number system during the formation and verification of the digital signature, which consists in using the operations of adding and doubling points in accordance with the binary representation of the number k, which involves splitting the number k into chains of short length n and the use of pre-calculation tables [US 20090214023, H04L 9/30, publ. 02/26/2008]. The method involves two steps. At the first stage, auxiliary BSs are calculated that depend on P and q and represent the products of all possible values of the chains by point P. Moreover, each of these auxiliary BSs consists of an identifier corresponding to the value of the chain and the value of the point of the elliptic curve. At the second stage, the point kP is calculated recursively, starting with the most significant bits. In this case, the vector of binary coefficients of the number k is divided into chains of n bits, the auxiliary BS obtained at the first stage is selected, the identifier of which corresponds to the highest chain, the coordinates of the elliptic curve point are selected from the indicated BS, and their value is assigned to the point R. Assigning a value to a point means assigning it to coordinates of the corresponding values. Perform a recursive transition to the previous chain. For this, n doublings of the point R are performed, the value of the resulting sum is assigned to the point R, the auxiliary BS is selected, the first part of which corresponds to the specified previous chain, the point R is added to the point specified by the second and third parts of the indicated auxiliary BS, and the value of the sum is assigned to the point R. Recursion repeated until a chain of lower coefficients is used.

Например, при длине цепочки 4 бита на первом этапе подготавливают вспомогательные БС вида

Figure 00000001
,
Figure 00000002
,
Figure 00000003
, …
Figure 00000004
, где
Figure 00000005
- символ конкатенации битовых строк, левая часть битовой строки - идентификатор, правая часть - координаты точки эллиптической кривой. На втором этапе для
Figure 00000006
(старшие разряды слева) получают k=13∗163+11∗162+2∗16+7. При вычислении точки kP выбирают вспомогательную БС с идентификатором 13, соответствующим старшему коэффициенту числа k, выбирают из этой битовой строки точку 13P, выполняют 4 удвоения этой точки, полученную точку складывают с точкой 11P, которую выбирают как вторую и третью части БС, первая часть которой имеет код 11 второго коэффициента числа k, выполняют 4 удвоения полученной суммы, полученную точку складывают с точкой 2P, которую выбирают как вторую и третью части БС, первая часть которой имеет код 2 третьего коэффициента числа k, выполняют 4 удвоения, полученную точку складывают с точкой 7P, которую выбирают как вторую и третью части БС, первая часть которой имеет код 7 четвертого коэффициента числа k, и получают окончательный результат. Недостатком этого способа является низкая скорость обработки данных, обусловленная тем, что число удвоений точки равно длине БС, представляющей число k.For example, with a chain length of 4 bits, auxiliary BSs of the form are prepared in the first stage
Figure 00000001
,
Figure 00000002
,
Figure 00000003
, ...
Figure 00000004
where
Figure 00000005
- the symbol of concatenation of bit strings, the left part of the bit string is the identifier, the right part is the coordinates of the point of the elliptic curve. In the second stage for
Figure 00000006
(the highest digits on the left) get k = 13 ∗ 16 3 + 11 ∗ 16 2 + 2 ∗ 16 + 7. When calculating the point kP, an auxiliary BS with identifier 13 corresponding to the highest coefficient of the number k is selected, point 13P is selected from this bit string, 4 doubling of this point is performed, the resulting point is added to point 11P, which is selected as the second and third parts of the BS, the first part of which has code 11 of the second coefficient of the number k, 4 doubles of the resulting amount are performed, the resulting point is added to point 2P, which is chosen as the second and third parts of the BS, the first part of which has code 2 of the third coefficient of the number k, 4 Often, the resulting point is added to point 7P, which is selected as the second and third parts of the BS, the first part of which has code 7 of the fourth coefficient of the number k, and the final result is obtained. The disadvantage of this method is the low data processing speed due to the fact that the number of doubling points is equal to the length of the BS representing the number k.

Существенные признаки прототипа:Salient features of the prototype:

1. Способ умножения фиксированной точки P простого порядка q эллиптической кривой на целое число k, причем допускается случайный выбор числа k, который может использоваться при формировании и проверке ЭЦП, обрабатываемые данные представляют собой БС, способ предусматривает преобразование БС и выполнение операций с БС и состоит из двух этапов: на первом этапе подготавливают вспомогательные БС, на втором этапе выполняют умножение P на k путем удвоений и сложений точек эллиптической кривой с помощью вспомогательных БС.1. A method of multiplying a fixed point P of simple order q of an elliptic curve by an integer k, moreover, a random choice of the number k is allowed, which can be used in the formation and verification of the digital signature, the processed data is a BS, the method involves converting the BS and performing operations with the BS and consists of two stages: at the first stage, auxiliary BSs are prepared, at the second stage, P is multiplied by k by doubling and adding points of the elliptic curve using auxiliary BSs.

2. Число k представляют в системе счисления с целым основанием.2. The number k is represented in the number system with a whole base.

3. На первом этапе выбирают длину цепочки n и вычисляют БС, представляющие точки miP, где 1≤mi<2n (для целых чисел mi, представленных всеми возможными ненулевыми значениями цепочек), причем каждая БС содержит идентификатор (число mi) и координаты точки miP.3. At the first stage, choose the length of the chain n and calculate the BS representing the points m i P, where 1≤m i <2 n (for integers m i represented by all possible non-zero values of the chains), and each BS contains an identifier (number m i ) and the coordinates of the point m i P.

4. На втором этапе вектор коэффициентов двоичного числа k разбивают на цепочки размера n. Умножение точки на число выполняют рекурсивно, начиная со старших разрядов. При этом из вспомогательной БС, идентификатор которой соответствует коду старшей цепочки, выбирают точку эллиптической кривой и значение этой точки присваивают точке R. Рекурсивный переход к предыдущей цепочке состоит из n удвоений точки R и присвоения результата точке R, выбора точки эллиптической кривой из БС, идентификатор которой соответствует значению предыдущей цепочки, сложения этой точки с точкой R и присвоения значения суммы точке R.4. At the second stage, the coefficient vector of the binary number k is divided into chains of size n. Multiplication of a point by a number is performed recursively, starting with the most significant bits. At the same time, from the auxiliary BS, the identifier of which corresponds to the code of the highest chain, a point of the elliptic curve is selected and the value of this point is assigned to the point R. The recursive transition to the previous chain consists of n doublings of the point R and assigning the result to the point R, choosing the point of the elliptic curve from the BS, identifier which corresponds to the value of the previous chain, adding this point to the point R and assigning the value of the sum to the point R.

Задачей заявляемого технического решения является увеличение скорости формирования и проверки электронной цифровой подписи с использованием эллиптических или гиперэллиптических кривых.The objective of the proposed technical solution is to increase the speed of formation and verification of electronic digital signatures using elliptical or hyperelliptic curves.

Поставленная цель достигается тем, что число k переводят в систему счисления с основанием

Figure 00000007
так, что длина БС, представляющей число k, практически не меняется, в результате при использовании четного n число удвоений точек сокращается примерно вдвое. Указанный перевод числа k возможен благодаря тому, что для чисел вида
Figure 00000008
, где k0, k1 - целые числа, существует алгоритм Евклида [Lemmermeyer F. The Euclidean algorithm in algebraic number fields, Expo. Math. 13, No.5 (1995), 385-416]. При этом при формировании ЭЦП случайное число k изначально генерируют в виде
Figure 00000009
.The goal is achieved by the fact that the number k is transferred to the number system with the base
Figure 00000007
so that the length of the BS representing the number k practically does not change, as a result, when using even n, the number of doubling points is approximately halved. The indicated translation of the number k is possible due to the fact that for numbers of the form
Figure 00000008
where k 0 , k 1 are integers, there is an Euclidean algorithm [Lemmermeyer F. The Euclidean algorithm in algebraic number fields, Expo. Math. 13, No.5 (1995), 385-416]. In this case, when forming the digital signature, a random number k is initially generated in the form
Figure 00000009
.

Ниже перечислены существенные признаки предлагаемого способа. Поскольку способ применим для формирования и проверки ЭЦП на основе как эллиптических, так и гиперэллиптических кривых, то соответствующие существенные признаки для гиперэллиптических кривых указаны в скобках.The following are the essential features of the proposed method. Since the method is applicable for the formation and verification of digital signatures based on both elliptical and hyperelliptic curves, the corresponding essential features for hyperelliptic curves are indicated in parentheses.

1. Способ формирования и проверки электронной цифровой подписи на основе эллиптической или гиперэллиптической кривой, заключающийся в преобразовании БС и выполнении операций с БС, в котором при формировании или при проверке ЭЦП умножают по крайней мере одну заранее определенную точку (ПД) P простого порядка q эллиптической (гиперэллиптической) кривой на целое число k путем сложений и удвоений, при формировании ЭЦП допускается случайный выбор числа k, причем для указанного умножения используют два этапа: на первом этапе выбирают четную длину цепочки n и подготавливают вспомогательные БС, содержащие произведение точки эллиптической кривой (ПД гиперэллиптической кривой) на целые числа, представленные всеми допустимыми значениями цепочек, причем каждая указанная БС содержит хотя бы один идентификатор, на втором этапе рекурсивно выполняют указанное умножение с использованием указанных вспомогательных БС, при этом вектор коэффициентов числа к разбивают на цепочки длины n, выбирают вспомогательную БС, один из идентификаторов которой соответствует старшей цепочке, и значение этой точки (приведенного дивизора) этой БС присваивают точке эллиптической кривой (ПД гиперэллиптической кривой) R, и выполняют рекурсивный переход к предыдущей цепочке, присваивая точке R значения удвоений R и суммы R с точкой эллиптической кривой (ПД гиперэллиптической кривой) БС, один из идентификаторов которой соответствует предыдущей цепочке.1. A method of generating and verifying an electronic digital signature based on an elliptical or hyperelliptic curve, which consists in transforming the BS and performing operations with the BS, in which, when generating or checking the digital signature, at least one predetermined point (PD) P of simple order q elliptic is multiplied (hyperelliptic) curve by an integer k by addition and doubling; during the formation of the digital signature, a random choice of the number k is allowed, and for this multiplication two stages are used: at the first stage, an even length is chosen at chain n and prepare auxiliary BSs containing the product of a point of an elliptic curve (AP of a hyperelliptic curve) by integers represented by all valid values of the chains, each indicated BS contains at least one identifier, at the second stage, the specified multiplication is performed recursively using the indicated auxiliary BS , while the vector of coefficients of the number k is divided into chains of length n, an auxiliary BS is chosen, one of the identifiers of which corresponds to the highest chain, and the value of that point (of the given divisor) of this BS is assigned to a point of an elliptic curve (PD of a hyperelliptic curve) R, and a recursive transition to the previous chain is performed, assigning to the point R the values of the doubling R and the sum of R with the point of the elliptic curve (PD of a hyperelliptic curve) of the BS, one of the identifiers which corresponds to the previous chain.

2. На первом этапе выбирают число w=-2 при q≡1, 3 (mod 8) или w=2 при q≡1, 7 (mod 8), вычисляют значение

Figure 00000010
(mod q), а на втором этапе число k преобразовывают в систему счисления с основанием t:2. At the first stage, choose the number w = -2 for q≡1, 3 (mod 8) or w = 2 for q≡1, 7 (mod 8), calculate the value
Figure 00000010
(mod q), and at the second stage, the number k is converted into a number system with the base t:

Figure 00000011
,
Figure 00000011
,

где все коэффициенты Ki принимают значения 0, 1 или -1 и 2h≈log2q, а в ходе рекурсивного перехода к предыдущей цепочке коэффициентов выполняют n/2 удвоений точки (приведенного дивизора) R.where all the coefficients K i take the values 0, 1 or -1 and 2h≈log 2 q, and during the recursive transition to the previous chain of coefficients, n / 2 doublings of the point (reduced divisor) R are performed.

3. При формировании подписи случайное число k выбирают в виде пары целых случайных чисел (k0, k1) так, что выполняется условие |k02-wk12|<q, и полагают k=k0+tk1.3. When forming the signature, the random number k is selected as a pair of integer random numbers (k 0 , k 1 ) so that the condition | k 0 2 -wk 1 2 | <q is satisfied, and k = k 0 + tk 1 is assumed.

4. Если n≥4 и w=-2, то каждая вспомогательная битовая строка содержит все эквивалентные идентификаторы, обладающие одинаковым значением по модулю q, либо каждая вспомогательная битовая строка содержит идентификатор, значение которого равно абсолютно наименьшему из эквивалентных идентификаторов, а на втором этапе выполняют преобразование цепочек коэффициентов числа k, при котором цепочки вида (…, 1, z, 1, …) заменяются на цепочки вида (…, -1, z, 0, …), а цепочки вида (…, -1, z, -1, …) заменяются на цепочки вида (…, 1, z, 0, …,) причем z означает любую из цифр 0, 1, -1.4. If n≥4 and w = -2, then each auxiliary bit string contains all equivalent identifiers that have the same value modulo q, or each auxiliary bit string contains an identifier whose value is equal to absolutely the smallest equivalent identifiers, and in the second step perform the conversion of chains of coefficients of the number k, in which chains of the form (..., 1, z, 1, ...) are replaced by chains of the form (..., -1, z, 0, ...), and chains of the form (..., -1, z, -1, ...) are replaced by chains of the form (..., 1, z, 0, ...,) and z means any of the digits 0, 1, -one.

5. На первом этапе дополнительно подготавливают БС, представляющие целые числа A и B, такие, что выполняются условия: eq=A2-wB2, e=±1, и целое число А+Bt делится на q.5. At the first stage, BSs are additionally prepared that represent integers A and B, such that the conditions are satisfied: eq = A 2 -wB 2 , e = ± 1, and the integer A + Bt is divided by q.

6. На втором этапе вычисляют ближайшее к дроби (Ak/(eq)) целое число n1 и ближайшее к дроби (Bk/(eq)) целое число n2, вычисляют числа k0=k-An1+wBn2, k1=-Bn1+An2, преобразовывают их в двоичный вид k0=k00+2k01+…+2hk0h, k1=k10+2k11+…+2hk1h и для i=0, 1, …, 2h+1 полагают K2i=±k0i, K2i+1=±k1i для всех i≥0, где знаки определяют с учетом знака w.6. The second stage is calculated to the nearest fraction (Ak / (eq)) an integer n 1 and is nearest to the fraction (Bk / (eq)) 2 n is an integer, calculate the number of k 0 = k-An + wBn 1 2, k 1 = -Bn 1 + An 2 , convert them to binary form k 0 = k 00 + 2k 01 + ... + 2 h k 0h , k 1 = k 10 + 2k 11 + ... + 2 h k 1h and for i = 0 , 1, ..., 2h + 1 put K 2i = ± k 0i , K 2i + 1 = ± k 1i for all i≥0, where the signs are determined taking into account the sign of w.

В п.1 указаны существенные признаки, общие с прототипом, в п.2 указаны отличительные признаки, общие для данного изобретения. В пп.3-6 указаны признаки для вариантов исполнения.In claim 1, the essential features common with the prototype are indicated; in claim 2, the distinguishing features common to this invention are indicated. In paragraphs 3-6, the signs for the options are indicated.

Способ содержит два этапа. На первом этапе подготавливают вспомогательные битовые строки, зависящие от P, q. Выбирают числа w=-2 при q≡1, 3 (mod 8) или w=2 при q≡±1 (mod 8), вычисляют значение

Figure 00000012
(mod q), выбирают длину цепочки - малое четное число n (на практике обычно n=2 или n=4, так как необходимый объем памяти растет как экспонента от n), и подготавливают следующие вспомогательные БС, зависящие от P и q: вычисляют точки (ПД), представляющие все возможные значения точек (ПД) вида
Figure 00000013
, где ci=0, 1 или -1, при этом для четных i все ci либо неотрицательны либо неположительны и для нечетных i все ci либо неотрицательны либо неположительны. Поскольку по точке (ПД) легко найти противоположную точку (противоположный ПД), достаточно вычислить точки (ПД) вида
Figure 00000014
с точностью до знака суммы
Figure 00000015
, являющейся идентификатором. Для n=2 возможны следующие значения пар (c0, c1): (0, 0) (соответствует нулевому элементу группы, см. Приложение 1), (1, 0) (соответствует заданной точке (ПД) P), (-1, 0) (соответствует точке (ПД) -P), (0, 1), (0, -1) (противоположна к предыдущей точке (предыдущему ПД)), (1, 1), (-1, -1) (противоположна к предыдущей точке (предыдущему ПД)), (1, -1), (-1, 1) (противоположна к предыдущей точке (предыдущему ПД)). Поэтому кроме P вычисляют 3 точки (ПД) {tP, (1+t)P, (1-t)P)}.The method comprises two steps. At the first stage, auxiliary bit strings are prepared depending on P, q. Choose the numbers w = -2 for q≡1, 3 (mod 8) or w = 2 for q≡ ± 1 (mod 8), calculate the value
Figure 00000012
(mod q), choose the chain length - a small even number n (in practice, usually n = 2 or n = 4, since the required memory size grows as an exponential of n), and the following auxiliary BSs are prepared, depending on P and q: calculate points (PD) representing all possible values of points (PD) of the form
Figure 00000013
, where c i = 0, 1 or -1, while for even i all c i are either non-negative or non-positive and for odd i all c i are either non-negative or non-positive. Since it is easy to find the opposite point (opposite PD) from a point (PD), it is enough to calculate points (PD) of the form
Figure 00000014
accurate to the sum sign
Figure 00000015
being an identifier. For n = 2, the following values of pairs (c 0 , c 1 ) are possible: (0, 0) (corresponds to the zero element of the group, see Appendix 1), (1, 0) (corresponds to a given point (AP) P), (- 1, 0) (corresponds to the point (AP) -P), (0, 1), (0, -1) (opposite to the previous point (previous AP)), (1, 1), (-1, -1) (opposite to the previous point (previous AP)), (1, -1), (-1, 1) (opposite to the previous point (previous AP)). Therefore, in addition to P, 3 points (PD) {tP, (1 + t) P, (1-t) P)} are calculated.

Для n=4 и w=2 вычисляют БС, представляющие 23 точки (ПД), здесь множитель элемента P является идентификатором:For n = 4 and w = 2, BSs representing 23 points (PD) are calculated, here the factor of the element P is the identifier:

Figure 00000016
,
Figure 00000017
,
Figure 00000018
Figure 00000019
,
Figure 00000016
,
Figure 00000017
,
Figure 00000018
Figure 00000019
,

Figure 00000020
,
Figure 00000021
,
Figure 00000022
,
Figure 00000020
,
Figure 00000021
,
Figure 00000022
,

Figure 00000023
,
Figure 00000024
,
Figure 00000025
,
Figure 00000023
,
Figure 00000024
,
Figure 00000025
,

Figure 00000026
,
Figure 00000027
,
Figure 00000026
,
Figure 00000027
,

Figure 00000028
,
Figure 00000029
,
Figure 00000030
,
Figure 00000028
,
Figure 00000029
,
Figure 00000030
,

Figure 00000031
,
Figure 00000032
,
Figure 00000031
,
Figure 00000032
,

Figure 00000033
,
Figure 00000034
,
Figure 00000033
,
Figure 00000034
,

Figure 00000035
,
Figure 00000036
.
Figure 00000035
,
Figure 00000036
.

Для n=4 и w=-2 вычисляют БС, представляющие 11 точек (ПД):For n = 4 and w = -2, BSs representing 11 points (PD) are calculated:

2P,

Figure 00000037
,
Figure 00000038
,
Figure 00000039
,
Figure 00000040
,
Figure 00000041
,
Figure 00000042
,2P,
Figure 00000037
,
Figure 00000038
,
Figure 00000039
,
Figure 00000040
,
Figure 00000041
,
Figure 00000042
,

Figure 00000043
,
Figure 00000044
,
Figure 00000045
,
Figure 00000046
,
Figure 00000043
,
Figure 00000044
,
Figure 00000045
,
Figure 00000046
,

поскольку справедливо равенство

Figure 00000047
, задающее эквивалентность некоторых сумм
Figure 00000048
. Например,
Figure 00000049
.since equality is true
Figure 00000047
defining the equivalence of some sums
Figure 00000048
. For example,
Figure 00000049
.

При формировании ЭЦП по ГОСТ Р 34.10-2001, ECDSA, схемам Эль-Гамаля, Шнорра необходимо выбрать случайное число k и умножить на него точку (ПД) P. В этом случае выбирают пару случайных целых чисел k0, k1, суммарная длина которых близка к длине БС, представляющей число q так, что выполняется условие |k02-wk12|<q, полагают k=k0+k1t, при этом перевод числа k в систему счисления с основанием t выполняют следующим образом. Находят представление чисел k0, k1 в системе счисления с основанием 2: k0=k00+2k01+22k02+…2hk0h и k1=k10+2k11+22k12+…+2hk1h. Находят число k в системе счисления с основанием t:

Figure 00000050
, где K2i=±k0i, K2i+1=±k1i, знак определяется с учетом равенства t2=±2. Вектор коэффициентов (K0, …, K2h+1) при необходимости дополняют нулями справа так, чтобы его длина, равная 2h+2, была кратна n. В остальном процесс формирования ЭЦП аналогичен ГОСТ Р 34.10-2001 (ECDSA, схемам Эль-Гамаля, Шнорра). Сформированная ЭЦП для электронного документа представляется битовой строкой.When forming an EDS according to GOST R 34.10-2001, ECDSA, El-Gamal, Schnorr schemes, it is necessary to select a random number k and multiply a point (PD) P by it. In this case, choose a pair of random integers k 0 , k 1 , the total length of which close to the length of the BS representing the number q so that the condition | k 0 2 -wk 1 2 | <q is satisfied, it is assumed that k = k 0 + k 1 t, and the translation of the number k into the number system with base t is performed as follows. Find the representation of numbers k 0 , k 1 in the number system with base 2: k 0 = k 00 + 2k 01 +2 2 k 02 + ... 2 h k 0h and k 1 = k 10 + 2k 11 +2 2 k 12 + ... +2 h k 1h . Find the number k in the number system with the base t:
Figure 00000050
, where K 2i = ± k 0i , K 2i + 1 = ± k 1i , the sign is determined taking into account the equality t 2 = ± 2. The coefficient vector (K 0 , ..., K 2h + 1 ) is optionally supplemented with zeros on the right so that its length equal to 2h + 2 is a multiple of n. In the rest, the process of forming an EDS is similar to GOST R 34.10-2001 (ECDSA, El-Gamal, Schnorr schemes). The generated digital signature for an electronic document is represented by a bit string.

Для проверки ЭЦП по схемам ГОСТ Р 34.10-2001, ECDSA, а также по схемам Эль-Гамаля, Шнорра необходимо умножить точку (ПД) P на целое число k, зависящее от электронного документа или БС, представляющей ЭЦП. В этом случае выполняют перевод k в систему счисления с основанием t. Для этого на первом этапе находят БС, представляющие числа A, B, такие, что выполняются условия eq=A2-wB2, где e=±1, и A+Bt≡0 (mod q). Числа A, B всегда существуют при w=-2 и q≡1, 3 (mod 8) и при w=2 и q≡1, 7 (mod 8). Их можно найти алгоритмом Полларда и Шнорра [Pollard J.M., Schnorr СР. An efficient solution of the congruence x2+ky2=m (mod n) // IEEE Transactions on Information Theory. 1987. Vol.IT-33. №.5. p.702-709], см. также Приложение 1, при w=-2 числа можно найти с использованием пакета MATHEMATICA командой QuadraticRepresentation[2,q] [http://documents.wolfram.com/v5/Add-[onsLinks/StandardPackages/NumberTheory]./NumberTheoryFunctions. html].To check the EDS according to the GOST R 34.10-2001, ECDSA schemes, as well as according to El-Gamal and Schnorr schemes, it is necessary to multiply the point (PD) P by an integer k, depending on the electronic document or BS representing the EDS. In this case, translate k into the number system with the base t. To do this, at the first stage, find BS representing the numbers A, B, such that the conditions eq = A 2 -wB 2 , where e = ± 1, and A + Bt≡0 (mod q) are satisfied. The numbers A, B always exist for w = -2 and q≡1,3 (mod 8) and for w = 2 and q≡1,7 (mod 8). They can be found by the Pollard and Schnorr algorithm [Pollard JM, Schnorr SR. An efficient solution of the congruence x 2 + ky 2 = m (mod n) // IEEE Transactions on Information Theory. 1987. Vol. IT-33. No. 5. p.702-709], see also Appendix 1, for w = -2 numbers can be found using the MATHEMATICA package using the QuadraticRepresentation [2, q] command [http://documents.wolfram.com/v5/Add-[onsLinks/ StandardPackages / NumberTheory] ./ NumberTheoryFunctions. html].

Длина БС, представляющей значение

Figure 00000051
(mod q), не превышает длины строки, представляющей число q, при этом выполняется условие t2-w≡0 (mod q). Для вычисления t можно воспользоваться алгоритмом, описанным в работе [Ростовцев А.Г. Алгебраические основы криптографии. - СПб.: Мир и Семья, Интерлайн, 2000, глава 7], см. также Приложение 1.The length of the BS representing the value
Figure 00000051
(mod q) does not exceed the length of the string representing the number q, while the condition t 2 -w≡0 (mod q) is satisfied. To calculate t, you can use the algorithm described in [Rostovtsev A.G. Algebraic foundations of cryptography. - St. Petersburg: Peace and Family, Interline, 2000, chapter 7], see also Appendix 1.

На втором этапе число k переводят в систему счисления с основанием t с коэффициентами из множества {0, 1, -1}. Для этого находят ближайшее целое число n1 к дроби Ak/(eq) и ближайшее целое число n2 к дроби Bk/(eq), находят целые числа k0=k-An1+wBn2, k1=-Bn1+An2. При этом выполняется условие k≡k0+tk1 (mod q), а длина БС, представляющих числа k0, k1, оказывается минимальной. Число k переводят в систему счисления с основанием t так же, как описано выше:

Figure 00000052
. Вектор коэффициентов (K0, …, K2h+1) при необходимости дополняют нулями справа так, чтобы его длина, равная 2h+2, была кратна n.At the second stage, the number k is transferred to the number system with the base t with coefficients from the set {0, 1, -1}. To do this, find the nearest integer n 1 to the fraction Ak / (eq) and the nearest integer n 2 to the fraction Bk / (eq), find the integers k 0 = k-An 1 + wBn 2 , k 1 = -Bn 1 + An 2 . In this case, the condition k≡k 0 + tk 1 (mod q) is satisfied, and the length of the BS representing the numbers k 0 , k 1 turns out to be minimal. The number k is transferred to the number system with the base t in the same way as described above:
Figure 00000052
. The coefficient vector (K 0 , ..., K 2h + 1 ) is optionally supplemented with zeros on the right so that its length equal to 2h + 2 is a multiple of n.

Для умножения точки (ПД) P на число k вектор коэффициентов (K0, …, K2h+1) разбивают на цепочки из n элементов и вычисляют число k в виде:To multiply the point (PD) P by the number k, the coefficient vector (K 0 , ..., K 2h + 1 ) is divided into chains of n elements and the number k is calculated in the form:

Figure 00000053
Figure 00000053

В соответствии со значением цепочки старших коэффициентов:In accordance with the value of the chain of higher coefficients:

(K2h-n+2+tK2h-n+3+…+tn-1K2h+1)(K 2h-n + 2 + tK 2h-n + 3 + ... + t n-1 K 2h + 1 )

выбирают найденную на первом этапе БС с соответствующим идентификатором, из этой БС выбирают точку (ПД) вида:choose the BS found at the first stage with the corresponding identifier, from this BS select a point (PD) of the form:

R=(K2h-n+2+tK2h-n+3+…+tn-1K2h+1)P.R = (K 2h-n + 2 + tK 2h-n + 3 + ... + t n-1 K 2h + 1 ) P.

Если вспомогательные БС, представляющие точки (ПД), определены до знака, то может потребоваться смена знака выбранной точки (ПД). Выполняют рекурсивный переход к предыдущей цепочке коэффициентов. Для этого выполняют n/2 последовательных удвоений точки (ПД) R, при каждом удвоении заменяя R на 2R, при этом в случае нечетного n и w=-2 до начала удвоений или после их окончания заменяют R на -R, результат, равный wn/2R, складывают с точкой (ПД), представленной вспомогательной БС, идентификатор которой соответствует предыдущей цепочке коэффициентов, при необходимости заменяя эту точку (ПД) противоположной, и значение суммы присваивают точке (ПД) R. Рекурсивный переход выполняется ((2h+2)/n) - 1 раз.If the auxiliary BS representing the points (PD) is defined before the sign, then it may be necessary to change the sign of the selected point (PD). Perform a recursive transition to the previous chain of coefficients. To do this, perform n / 2 consecutive doubles of the point (AP) R, replacing R with 2R at each doubling, and in the case of odd n and w = -2, before the doubling begins or after they are replaced, replace R with -R, the result is w n / 2 R, add to the point (PD) represented by the auxiliary BS, the identifier of which corresponds to the previous chain of coefficients, if necessary, replacing this point (PD) by the opposite one, and assign the value of the sum to the point (PD) R. The recursive transition is performed ((2h + 2) / n) - 1 time.

В случае w=-2 и n≥4 одна точка эллиптической кривой (ПД гиперэллиптической кривой), найденная на первом этапе, может соответствовать нескольким значениям цепочек коэффициентов (Kin+tKin+1+…+tn-1Kin+n-1). Для установления однозначного соответствия между указанными БС и значениями цепочек коэффициентов необходимо либо на втором этапе преобразовать цепочки коэффициентов либо на первом этапе дополнить указанные БС списком соответствующих цепочек коэффициентов.In the case w = -2 and n≥4, one point of the elliptic curve (AP of the hyperelliptic curve) found at the first stage can correspond to several values of the chain of coefficients (K in + tK in + 1 + ... + t n-1 K in + n -1 ). To establish an unambiguous correspondence between the indicated BS and the values of the chains of coefficients, it is necessary either at the second stage to convert the chains of coefficients or at the first stage to supplement the indicated BS with a list of the corresponding chains of coefficients.

В остальном процесс проверки ЭЦП аналогичен ГОСТ Р 34.10-2001 (ECDSA, схемам Эль-Гамаля, Шнорра).Otherwise, the process of checking the digital signature is similar to GOST R 34.10-2001 (ECDSA, El-Gamal, Schnorra schemes).

Заявленный способ позволяет уменьшить число удвоений точек примерно вдвое и за счет этого повысить скорость формирования и проверки электронной цифровой ЭЦП примерно в 1,5 раза.The claimed method allows to reduce the number of doubling points by about half and thereby increase the speed of formation and verification of electronic digital digital signature by about 1.5 times.

Предлагаемый способ может быть применен для формирования и проверки ЭЦП как во вновь проектируемых, так и в существующих системах ЭЦП, использующих эллиптические и гиперэллиптические кривые, в частности в системах ЭЦП, реализованных в соответствии с ГОСТ Р 34.10-2001, ECDSA, стандартом ЭЦП Германии. В одной и той же системе ЭЦП может использоваться указанный выбор случайного числа в виде k=k0+k1t при формировании ЭЦП и перевод целого числа k в систему счисления с основанием t при проверке ЭЦП.The proposed method can be used to generate and verify electronic digital signature both in newly designed and existing electronic digital signature systems using elliptical and hyperelliptic curves, in particular in electronic digital signature systems implemented in accordance with GOST R 34.10-2001, ECDSA, and the German electronic digital signature standard. In the same EDS system, the indicated choice of a random number in the form k = k 0 + k 1 t can be used when forming the EDS and translating the integer k into the number system with the base t when checking the EDS.

Рассмотрим примеры реализации заявленного способа для небольших чисел p, q. Достаточно проиллюстрировать умножение точки эллиптической кривой или ПД гиперэллиптической кривой на заданное целое число.Consider examples of the implementation of the claimed method for small numbers p, q. It is enough to illustrate the multiplication of a point of an elliptic curve or of a hyperelliptic curve by a given integer.

Пример 1. Используется система счисления с основанием

Figure 00000054
, n=2. Исходные данные. Эллиптическая кривая задана уравнением y2≡x3+x+98 (mod 1049), точка P=(1, 10). Число точек на эллиптической кривой равно q=1033. На первом этапе находят следующие числа:
Figure 00000055
(mod q), A=31, B=6, при этом выполняется условие
Figure 00000056
(mod q). Находят вспомогательные БС, содержащие идентификаторы вида {1, t, 1+t, 1-t) и точки P=(1, 10), tP=(441, 731), (1+t)P=(705, 305), (1-t)P=(597, 412), соответствующие этим идентификаторам:
Figure 00000057
,
Figure 00000058
,
Figure 00000059
,
Figure 00000060
.Example 1. The base number system is used.
Figure 00000054
, n = 2. Initial data. The elliptic curve is given by the equation y 2 ≡x 3 + x + 98 (mod 1049), point P = (1, 10). The number of points on the elliptic curve is q = 1033. At the first stage, the following numbers are found:
Figure 00000055
(mod q), A = 31, B = 6, while the condition
Figure 00000056
(mod q). Find auxiliary BSs containing identifiers of the form {1, t, 1 + t, 1-t) and points P = (1, 10), tP = (441, 731), (1 + t) P = (705, 305) , (1-t) P = (597, 412) corresponding to these identifiers:
Figure 00000057
,
Figure 00000058
,
Figure 00000059
,
Figure 00000060
.

На втором этапе для формирования (проверки) подписи требуется умножение точки P на число k=527, это число представляют в системе счисления с основанием

Figure 00000061
, для чего вычисляют следующие числа:
Figure 00000062
,
Figure 00000063
, k0=k-An1-2Bn2=-5, k1=-Bn1+An2=-3, находят представление k≡-1-t+t3-t4 (mod q),At the second stage, to generate (verify) the signature, multiplication of the point P by the number k = 527 is required, this number is represented in the number system with the base
Figure 00000061
, for which the following numbers are calculated:
Figure 00000062
,
Figure 00000063
, k 0 = k-An 1 -2Bn 2 = -5, k 1 = -Bn 1 + An 2 = -3, find the representation k≡-1-t + t 3 -t 4 (mod q),

k≡-(1+t)+(-2)·(0+t)+22(-1+0t) (mod q).k≡- (1 + t) + (- 2) · (0 + t) +2 2 (-1 + 0t) (mod q).

Старшая пара коэффициентов в представлении числа k равна -(1+0·t). Выбирают вспомогательную БС с идентификатором 1 и полагают R=-P=(1, 1039). Выполняют удвоение точки R и вычисляют противоположную точку: -2R=(40, 192) и полагают R=(40, 192). Выбирают следующую пару коэффициентов (0+t), соответствующую идентификатору t. Выбирают из вспомогательных БС точку (0+t)P=(441, 731) и вычисляют точку R=(40, 192)+(441, 731)=(416, 56). Вычисляют точку -2R=(335, 62) и полагают R=(335, 62). Последняя пара коэффициентов равна (-1-t)=-(1+1), ей соответствует идентификатор (1+t). Выбирают точку

Figure 00000064
и находят противоположную к ней точку
Figure 00000065
. Вычисляют точку (335, 62)+(705, 744)=(657, 694). Результат: kP=(657, 694). Потребовалось 2 удвоения точек, тогда как известный способ требует 8 удвоений.The highest pair of coefficients in the representation of k is - (1 + 0 · t). Select an auxiliary BS with identifier 1 and put R = -P = (1, 1039). Double the point R and calculate the opposite point: -2R = (40, 192) and put R = (40, 192). Choose the next pair of coefficients (0 + t) corresponding to the identifier t. From the auxiliary BSs, the point (0 + t) P = (441, 731) is selected and the point R = (40, 192) + (441, 731) = (416, 56) is calculated. The point -2R = (335, 62) is calculated and R = (335, 62) is assumed. The last pair of coefficients is (-1-t) = - (1 + 1), it corresponds to the identifier (1 + t). Choose a point
Figure 00000064
and find the opposite point to it
Figure 00000065
. The point (335, 62) + (705, 744) = (657, 694) is calculated. Result: kP = (657, 694). It took 2 doubling points, while the known method requires 8 doublings.

Пример 2. Использование системы счисления с основанием,

Figure 00000066
, n=2. Исходные данные. Эллиптическая кривая задана уравнением y2≡x3+x+98 (mod 1049), точка P=(1, 10). Число точек на эллиптической кривой равно q=1033. На первом этапе находят следующие числа:
Figure 00000067
(mod q), A=5, B=23, при этом выполняется условие 5+23t≡0 (mod q). Находят точки (1+0t)P=(1, 10), (0+t)P=(945, 771), (1+t)P=(60,8), (1-t)P=(0,457) и составляют БС вида:
Figure 00000068
Figure 00000069
Figure 00000070
Figure 00000071
Example 2. The use of the number system with the base,
Figure 00000066
, n = 2. Initial data. The elliptic curve is given by the equation y 2 ≡x 3 + x + 98 (mod 1049), point P = (1, 10). The number of points on the elliptic curve is q = 1033. At the first stage, the following numbers are found:
Figure 00000067
(mod q), A = 5, B = 23, while the condition 5 + 23t≡0 (mod q) is satisfied. Find the points (1 + 0t) P = (1, 10), (0 + t) P = (945, 771), (1 + t) P = (60.8), (1-t) P = (0.457 ) and comprise a BS of the form:
Figure 00000068
Figure 00000069
Figure 00000070
Figure 00000071

На втором этапе для формирования (проверки) подписи требуется умножение точки P на число k=527, это число представляют в системе счисления с основанием

Figure 00000072
, для чего вычисляют следующие числа:
Figure 00000073
,
Figure 00000074
, k0=k-An1+2Bn2=-10, k1=-Bn1+An2=9, находят представление k0=-t2-t6, k1=1+t6, k≡t-t2-t6+t7 (mod q), k≡(0+t)+2(-1+0t)+4(0+0t)+8(-1+t) (mod q).At the second stage, to generate (verify) the signature, multiplication of the point P by the number k = 527 is required, this number is represented in the number system with the base
Figure 00000072
, for which the following numbers are calculated:
Figure 00000073
,
Figure 00000074
, k 0 = k-An 1 + 2Bn 2 = -10, k 1 = -Bn 1 + An 2 = 9, find the representation k 0 = -t 2 -t 6 , k 1 = 1 + t 6 , k≡tt 2 -t 6 + t 7 (mod q), k≡ (0 + t) +2 (-1 + 0t) +4 (0 + 0t) +8 (-1 + t) (mod q).

Старшая пара коэффициентов числа k соответствует идентификатору (1-t). Полагают R=-(1-t)P=(0, 592). Выполняют удвоение точки R: 2R=(190, 611) и полагают R=(190, 611). Вторая пара коэффициентов нулевая.The highest pair of coefficients of k corresponds to the identifier (1-t). R = - (1-t) P = (0, 592) is assumed. Double the point R: 2R = (190, 611) and put R = (190, 611). The second pair of coefficients is zero.

Для перехода к третьей паре коэффициентов (-1+0t)=-(1+0t) выполняют удвоение точки R: 2R=(427, 945), полагают R=(427, 945), по идентификатору находят точку -P=(1, 1039), вычисляют сумму R+(-P)=(177, 497) и полагают R=(177, 497). Для перехода к последней паре коэффициентов (0+t) выполняют удвоение точки R: 2R=(783, 537), полагают R=(783, 537), выбирают по идентификатору t точку tP=(945, 771) и находят сумму R+tP=(657, 694). Результат: kP=(657, 694). Потребовалось 3 удвоения точек, тогда как известный способ требует 8 удвоений.To go to the third pair of coefficients (-1 + 0t) = - (1 + 0t), the point R is doubled: 2R = (427, 945), put R = (427, 945), find the point -P = (1 by the identifier , 1039), calculate the sum R + (- P) = (177, 497) and put R = (177, 497). To go to the last pair of coefficients (0 + t), the point R is doubled: 2R = (783, 537), R = (783, 537) is set, the point tP = (945, 771) is selected by the identifier t, and the sum R + tP = (657, 694). Result: kP = (657, 694). It took 3 doubling points, while the known method requires 8 doubling.

Пример 3. Гиперэллиптическая кривая задана уравнением y2=x5+2x2+x+3 (mod 31), приведенный дивизор Р=(2+5x+x2, 5+x) имеет простой порядок q=1009. Используется система счисления с основанием

Figure 00000075
, n=2. На первом этапе находят следующие числа:
Figure 00000076
(mod q), A=19, B=18, при этом выполняется условие 19+18t≡0 (mod q). Вычисляют следующие ПД: tP=(20+4x+x2, 11+18x), (1+t)P=(18+22x+x2, 28x), (1-t)P=(18+16x+x2, 14+26x) и составляют соответствующие БС, у которых левые части равенств являются идентификаторами:
Figure 00000077
,
Figure 00000078
,
Figure 00000079
,
Figure 00000080
.Example 3. The hyperelliptic curve is given by the equation y 2 = x 5 + 2x 2 + x + 3 (mod 31), the reduced divisor P = (2 + 5x + x 2 , 5 + x) has a simple order q = 1009. The base number system is used.
Figure 00000075
, n = 2. At the first stage, the following numbers are found:
Figure 00000076
(mod q), A = 19, B = 18, while condition 19 + 18t≡0 (mod q) is satisfied. The following PDs are calculated: tP = (20 + 4x + x 2 , 11 + 18x), (1 + t) P = (18 + 22x + x 2 , 28x), (1-t) P = (18 + 16x + x 2 , 14 + 26x) and make up the corresponding BS, in which the left parts of the equalities are identifiers:
Figure 00000077
,
Figure 00000078
,
Figure 00000079
,
Figure 00000080
.

На втором этапе для формирования (проверки) подписи требуется умножение P на число k=527, это число представляют в системе счисления с основанием t, для чего вычисляют следующие числа:At the second stage, to generate (verify) the signature, multiplication of P by the number k = 527 is required, this number is represented in the number system with the base t, for which the following numbers are calculated:

Figure 00000081
,
Figure 00000082
,
Figure 00000081
,
Figure 00000082
,

k0=k-An1-2Bn2=13, k1=-Bn1+An2=-9, находят представление k≡1-t+t4-t6+t7 (mod q),k 0 = k-An 1 -2Bn 2 = 13, k 1 = -Bn 1 + An 2 = -9, find the representation k≡1-t + t 4 -t 6 + t 7 (mod q),

k≡(1-t)+2(0-0t)+4(1-0t)+8(1-t) (mod q).k≡ (1-t) +2 (0-0t) +4 (1-0t) +8 (1-t) (mod q).

Старшая пара коэффициентов равна (1-t), ей соответствует ПД вида (1-t)P=(18+16x+x2, 14+26x). Это значение присваивают приведенному дивизору R. Выполняют переход ко второй паре коэффициентов (1-0t), соответствующей ПД P, используя одно удвоение: 2R=(9+4x+x2, 12+25x) и присваивают это значение ПД R. Находят сумму ПД: R+P=(8+21x+x2, 15+5x) и присваивают это значение ПД R. Третья пара коэффициентов нулевая, поэтому выполняют два удвоения R:=2R=(27+24x+x2, 21+20x), R:=2R=(17+2x+x2, 19+x). Последняя пара коэффициентов соответствует ПД (1-t)P. Находят сумму R+(1-t)P=(2+18x+x2, 25+3x). Результат: kP=(2+18x+x2, 25+3x). Потребовалось 3 удвоения ПД, тогда как известный способ требует 8 удвоений.The highest pair of coefficients is (1-t), it corresponds to a PD of the form (1-t) P = (18 + 16x + x 2 , 14 + 26x). This value is assigned to the divisor R. Pass to the second pair of coefficients (1-0t) corresponding to PD P using one double: 2R = (9 + 4x + x 2 , 12 + 25x) and assign this value to PD R. Find the sum PD: R + P = (8 + 21x + x 2 , 15 + 5x) and assign this value to PD R. The third pair of coefficients is zero, therefore, two doubles R: = 2R = (27 + 24x + x 2 , 21 + 20x ), R: = 2R = (17 + 2x + x 2 , 19 + x). The last pair of coefficients corresponds to PD (1-t) P. Find the sum R + (1-t) P = (2 + 18x + x 2 , 25 + 3x). Result: kP = (2 + 18x + x 2 , 25 + 3x). It took 3 doubles of PD, while the known method requires 8 doubles.

Пример 4. Гиперэллиптическая кривая задана уравнением y2=x5+2x2+x+3 (mod 31), приведенный дивизор P=(2+5x+x2, 5+x) имеет простой порядок q=1009. Используется система счисления с основанием

Figure 00000083
, n=2. На первом этапе находят следующие числа:
Figure 00000084
(modq), A=7, B=23, при этом выполняется условие A2-2B2=-q, 7+23t≡0 (mod q). Вычисляют вспомогательные БС, содержащие следующие ПД: tP=(28+28x+x2, 5+9x), (1+t)P=(7+28x+x2, 8+28x), (1-t)P=(29+7x+x2, 6+8x). Левые части равенств являются идентификаторами соответствующих БС:
Figure 00000085
,
Figure 00000086
,
Figure 00000087
,
Figure 00000088
.Example 4. The hyperelliptic curve is given by the equation y 2 = x 5 + 2x 2 + x + 3 (mod 31), the reduced divisor P = (2 + 5x + x 2 , 5 + x) has a simple order q = 1009. The base number system is used.
Figure 00000083
, n = 2. At the first stage, the following numbers are found:
Figure 00000084
(modq), A = 7, B = 23, while the condition A 2 -2B 2 = -q, 7 + 23t≡0 (mod q) is fulfilled. Auxiliary BSs are calculated containing the following PDs: tP = (28 + 28x + x 2 , 5 + 9x), (1 + t) P = (7 + 28x + x 2 , 8 + 28x), (1-t) P = (29 + 7x + x 2 , 6 + 8x). The left parts of the equalities are identifiers of the corresponding BS:
Figure 00000085
,
Figure 00000086
,
Figure 00000087
,
Figure 00000088
.

На втором этапе для формирования (проверки) подписи требуется умножение P на число k=135, это число представляют в системе счисления с основанием t, для чего вычисляют числаAt the second stage, to generate (verify) the signature, multiplication of P by the number k = 135 is required, this number is represented in the number system with the base t, for which the numbers are calculated

Figure 00000089
,
Figure 00000090
,
Figure 00000089
,
Figure 00000090
,

k0=k-An1+2Bn2=4, k1=-Bn1+An2=2, находят представление k≡t3+t4 (mod q), k≡(0+0t)+2(0+t)+4(1+0t) (mod q).k 0 = k-An 1 + 2Bn 2 = 4, k 1 = -Bn 1 + An 2 = 2, find the representation k≡t 3 + t 4 (mod q), k≡ (0 + 0t) +2 (0 + t) +4 (1 + 0t) (mod q).

Старшая пара коэффициентов равна (1+0t), ей соответствует ПД: R=P=(2+5x+x2, 5+x). Выполняют переход ко второй паре коэффициентов (0+t), соответствующей ПД tP, используя удвоение: 2R=(16+14x+x2, 2+8x) и присваивают это значение ПД R. Находят сумму ПД: R+tP=(26+5x+x2, 2+22x) и присваивают это значение R. Для перехода к последней паре коэффициентов (0+0t) умножают R на 2 и получают ПД вида (27+8x+x2, 26+5x).Результат: kP=(27+8x+x2, 26+5x). Потребовалось 2 удвоения ПД, тогда как известный способ требует 6 удвоений.The highest pair of coefficients is (1 + 0t), it corresponds to the PD: R = P = (2 + 5x + x 2 , 5 + x). Go to the second pair of coefficients (0 + t) corresponding to the PD tP, using doubling: 2R = (16 + 14x + x 2 , 2 + 8x) and assign this value to the PD R. Find the sum of the PD: R + tP = (26 + 5x + x 2 , 2 + 22x) and assign this value R. To go to the last pair of coefficients (0 + 0t), multiply R by 2 and get a PD of the form (27 + 8x + x 2 , 26 + 5x). Result: kP = (27 + 8x + x 2 , 26 + 5x). It took 2 doubles of PD, while the known method requires 6 doubles.

Приложение 1Annex 1

Объяснение специальных терминов и описание заимствованных вычислительных алгоритмов:Explanation of specific terms and description of borrowed computational algorithms:

Двоичный цифровой электромагнитный сигнал - последовательность битов в виде нулей и единиц.Binary digital electromagnetic signal - a sequence of bits in the form of zeros and ones.

Параметры двоичного цифрового электромагнитного сигнала: разрядность и порядок следования единичных и нулевых битов.Parameters of a binary digital electromagnetic signal: bit depth and order of single and zero bits.

Разрядность двоичного цифрового электромагнитного сигнала - общее число его единичных и нулевых битов, например сигнал 10011 имеет разрядность 5. Разрядность числа называется также его длиной.The bit depth of a binary digital electromagnetic signal is the total number of its single and zero bits, for example, signal 10011 has a capacity of 5. The bit depth of a number is also called its length.

Битовая строка (БС) - двоичный цифровой электромагнитный сигнал конечной разрядности, представляемый в виде конечной последовательности цифр 0 и 1. БС может интерпретироваться как набор независимых нулей и единиц и как целое число. С битовыми строками могут выполняться логические и арифметические операции. Конкатенация БС S=(S1, …, Sn) и T=(T1, …, Tm) представляет собой БС вида

Figure 00000091
.A bit string (BS) is a binary digital electromagnetic signal of finite capacity, represented as a finite sequence of digits 0 and 1. A BS can be interpreted as a set of independent zeros and ones and as an integer. With bit strings, logical and arithmetic operations can be performed. The concatenation of BS S = (S 1 , ..., S n ) and T = (T 1 , ..., T m ) is a BS of the form
Figure 00000091
.

Электронная цифровая подпись (ЭЦП) - двоичный цифровой электромагнитный сигнал, параметры которого зависят от подписанного электронного документа и от секретного ключа. Проверка подлинности ЭЦП осуществляют с помощью открытого ключа, который зависит от секретного ключа.Electronic digital signature (EDS) is a binary digital electromagnetic signal, the parameters of which depend on the signed electronic document and on the secret key. EDS authentication is carried out using a public key, which depends on the secret key.

Запись а≡b (mod р), где a, b, p - целые числа, означает, что a - b делится на p (сравнимость по модулю простого числа). Запись u≡ν (mod f), где u, ν, f - многочлены, означает, что u - ν делится на f (сравнимость по модулю многочлена).The notation a ≡ b (mod p), where a , b, p are integers, means that a - b is divisible by p (comparability modulo a prime number). The notation u≡ν (mod f), where u, ν, f are polynomials, means that u - ν is divisible by f (comparability modulo a polynomial).

Поле из простого числа p элементов - множество {0, 1, …, p-1}. Сложение и умножение выполняются по модулю p и обозначается a+b (mod р), ab (modp) (см. [Глухов М.М., Елизаров В.П., Нечаев А.А. Алгебра. - М.: Гелиос-АРВ, 2003]), например, 3+4≡0 (mod 7), 3·4≡5 (mod 7). Поле из pn элементов представляет собой многочлены вида a 0+a 1W+…a n-1Wn-1, где f(W)=0, и многочлен f не раскладывается на множители по модулю p, сложение и умножение в поле выполняется по модулю p и по модулю f(W).A field of a prime number p of elements is the set {0, 1, ..., p-1}. Addition and multiplication are performed modulo p and denoted by a + b (mod p), a b (modp) (see [Glukhov MM, Elizarov VP, Nechaev AA Algebra. - M.: Helios -ARV, 2003]), for example, 3 + 4≡0 (mod 7), 3 · 4≡5 (mod 7). A field of p n elements represents polynomials of the form a 0 + a 1 W + ... a n-1 W n-1 , where f (W) = 0, and the polynomial f is not factorizable modulo p, addition and multiplication in the field is performed modulo p and modulo f (W).

Абелева группа - непустое множество, на котором определена бинарная операция, называемая сложением, где для всех элементов группы выполняются равенства R+S=S+R, R+(S+T)=(R+S)+Т, в группе существует нулевой элемент 0, такой, что R=0=0+R=R для всех элементов группы R, для каждого элемента группы R существует противоположный элемент -R, такой, что R+(-R)=0. Для каждого элемента R группы существуют кратные: 2R=R+R, 3R=2R+R, …. Конечная абелева группа состоит из конечного числа элементов. Наименьшее натуральное число n такое, что nR=0, называется порядком элемента R.An Abelian group is a nonempty set on which a binary operation called addition is defined, where for all elements of the group the equalities R + S = S + R, R + (S + T) = (R + S) + T are satisfied, there is a zero element in the group 0, such that R = 0 = 0 + R = R for all elements of the group R, for each element of the group R there is an opposite element -R, such that R + (- R) = 0. For each element of the R group, there are multiples: 2R = R + R, 3R = 2R + R, .... A finite abelian group consists of a finite number of elements. The smallest positive integer n such that nR = 0 is called the order of the element R.

Эллиптическая кривая над полем из pn элементов, n≥1, - подмножество точек P=(x,y) плоскости с координатами из конечного поля, удовлетворяющих уравнению y2+a 1xy=x3+a 2x2+a 4x+a 63, дополненное бесконечно удаленной точкой, где ни в одной точке кривой обе частные производные многочлена, задающего кривую, не равны нулю одновременно. Точки эллиптической кривой образуют конечную абелеву группу [Silverman J. The arithmetic of elliptic curves, Springer, 1986]. Нулевым элементом группы является бесконечно удаленная точка. Сложение точек (x1,y1)+(x2,y2)=(x3,y3) задается формулами: x32a 1-a 2-x1-x2, y3=-(λ+a 1)x3-ν,An elliptic curve over a field of p n elements, n≥1, is a subset of points P = (x, y) of a plane with coordinates from a finite field satisfying the equation y 2 + a 1 xy = x 3 + a 2 x 2 + a 4 x + a 6 3 , supplemented by an infinitely distant point, where at no point on the curve both partial derivatives of the polynomial defining the curve are non-zero at the same time. The points of the elliptic curve form a finite Abelian group [Silverman J. The arithmetic of elliptic curves, Springer, 1986]. The zero element of the group is an infinitely distant point. The addition of points (x 1 , y 1 ) + (x 2 , y 2 ) = (x 3 , y 3 ) is given by the formulas: x 3 = λ 2 + λ a 1 - a 2 -x 1 -x 2 , y 3 = - (λ + a 1 ) x 3 -ν,

где

Figure 00000092
,
Figure 00000093
при (x1,y1)≠(x2,y2) иWhere
Figure 00000092
,
Figure 00000093
for (x 1 , y 1 ) ≠ (x 2 , y 2 ) and

Figure 00000094
Figure 00000095
при (x1,y1)=(x2,y2) - случай удвоения точек.
Figure 00000094
Figure 00000095
when (x 1 , y 1 ) = (x 2 , y 2 ) - the case of doubling points.

Битовая строка, представляющая точку эллиптической кривой, содержит две координаты этой точки. Бесконечно удаленная точка имеет знаменатель λ.The bit string representing a point of an elliptic curve contains two coordinates of this point. An infinitely distant point has a denominator of λ.

Гиперэллиптическая кривая над полем из pn элементов, n≥1, - подмножество точек плоскости с координатами из конечного поля, в которых многочлен y2+h(x)y-f(x) обращается в нуль, при этом ни в одной точке кривой обе частные производные многочлена не равны нулю одновременно, степень deg(f) многочлена f(x) равна 2g+1≥5, где g - натуральное число, deg(h)≤g. Пары многочленов (u(x),ν(x)), таких, что u(x) имеет единичный старший коэффициент, f(x)-hν(x)-ν(x)2 делится на u(x), deg(ν)<deg(u)≤g, образуют конечную абелеву группу и называются приведенными дивизорами (ПД) гиперэллиптической кривой. При этом -(u(x),ν(x))=(u(x),-ν(x)). Приведенные дивизоры могут быть представлены битовыми строками, содержащими списки коэффициентов многочленов u(x), ν(x). Сложение приведенных дивизоров (u11)+(u22)=(u3, ν3) выполняется следующим алгоритмом [Scholten J., Vercauteren F. An introduction to elliptic and hyperelliptic curve cryptography and the NTRU cryptosystem, доступно с http://homes. esat. Kuleuven. be/~fvercaut/papers/cc03.pdf].A hyperelliptic curve over a field of p n elements, n≥1, is a subset of plane points with coordinates from a finite field at which the polynomial y 2 + h (x) yf (x) vanishes, while both fractions derivatives of the polynomial are not equal to zero at the same time, the degree deg (f) of the polynomial f (x) is 2g + 1≥5, where g is a natural number, deg (h) ≤g. Pairs of polynomials (u (x), ν (x)) such that u (x) has a unit leading coefficient, f (x) -hν (x) -ν (x) 2 is divided by u (x), deg ( ν) <deg (u) ≤g, form a finite Abelian group and are called reduced divisors (AP) of a hyperelliptic curve. Moreover, - (u (x), ν (x)) = (u (x), - ν (x)). The divisors given can be represented by bit strings containing lists of coefficients of the polynomials u (x), ν (x). The sum of the reduced divisors (u 1 , ν 1 ) + (u 2 , ν 2 ) = (u 3 , ν 3 ) is performed by the following algorithm [Scholten J., Vercauteren F. An introduction to elliptic and hyperelliptic curve cryptography and the NTRU cryptosystem, available from http: // homes. esat. Kuleuven. be / ~ fvercaut / papers / cc03.pdf].

1. Найти расширенным алгоритмом Евклида представление наибольшего общего делителя d1=НОД(u1,u2)=e1u1+e2u2.1. Find the extended common divisor d 1 = GCD (u 1 , u 2 ) = e 1 u 1 + e 2 u 2 using the extended Euclidean algorithm.

2. Найти расширенным алгоритмом Евклида представление наибольшего общего делителя d=НОД(d112+h)=c1d1+c212+h).2. Find the extended common divisor representation d = GCD (d 1 , ν 1 + ν 2 + h) = c 1 d 1 + c 21 + ν 2 + h) using the extended Euclidean algorithm.

3. Вычислить s1=c1e1, s2=c1e2, s3=c2.3. Calculate s 1 = c 1 e 1 , s 2 = c 1 e 2 , s 3 = c 2 .

4. Вычислить u=(u1u2)/d2, ν=(s1u1ν2+s2u2ν1+s31ν2+f)/d(mod u).4. Calculate u = (u 1 u 2 ) / d 2 , ν = (s 1 u 1 ν 2 + s 2 u 2 ν 1 + s 31 ν 2 + f) / d (mod u).

5. Вычислить u'=(f-νh-ν2)/u, ν'=(-h-ν)(mod u').5. Calculate u '= (f-νh-ν 2 ) / u, ν' = (- h-ν) (mod u ').

6. Если deg(u')>g, то u=u', ν=ν' и возврат на шаг 5.6. If deg (u ')> g, then u = u', ν = ν 'and return to step 5.

7. Поделить коэффициенты многочлена u' на старший коэффициент.7. Divide the coefficients of the polynomial u 'by the leading coefficient.

8. Выход: (u', ν').8. Output: (u ', ν').

Квадратный корень

Figure 00000096
(mod q), w=±2, можно вычислить следующим образом: [Ростовцев А.Г. Алгебраические основы криптографии. - СПб.: Мир и Семья, Интерлайн, 2000, глава 7]. Если q≡3 (mod 4), то
Figure 00000097
Если q≡1 (mod 4), то можно воспользоваться следующим алгоритмом.Square root
Figure 00000096
(mod q), w = ± 2, can be calculated as follows: [Rostovtsev A.G. Algebraic foundations of cryptography. - St. Petersburg: Peace and Family, Interline, 2000, chapter 7]. If q≡3 (mod 4), then
Figure 00000097
If q≡1 (mod 4), then we can use the following algorithm.

1. Подбором найти элемент b такой, что

Figure 00000098
(mod q).1. Using a selection, find an element b such that
Figure 00000098
(mod q).

2. Положить f(y)=y2-by+w.2. Put f (y) = y 2 -by + w.

3. Вычислить t=±y(q+1)/2 (mod q, f(y)).3. Calculate t = ± y (q + 1) / 2 (mod q, f (y)).

Для вычисления представления q=А2-wB2 можно воспользоваться следующим алгоритмом:To calculate the representation q = A 2 -wB 2 you can use the following algorithm:

1. Вычислить

Figure 00000099
(mod q).1. Calculate
Figure 00000099
(mod q).

2. Положить i=0, ti=t, mi=q.2. Put i = 0, t i = t, m i = q.

3. Вычислить

Figure 00000100
, ti+1=min{ti(mod mi+1), mi+1-ti (mod mi+1)}.3. Calculate
Figure 00000100
, t i + 1 = min {t i (mod m i + 1 ), m i + 1 -t i (mod m i + 1 )}.

4. Если mi+1=1, то перейти на шаг 5, иначе положить i=i+1 и вернуться на шаг 3.4. If m i + 1 = 1, then go to step 5, otherwise put i = i + 1 and return to step 3.

5. Положить Ai=ti, Bi=1.5. Put A i = t i , B i = 1.

6. Если i=0, то положить A=Ai, B=Bi и перейти на шаг 8. Иначе положить

Figure 00000101
,
Figure 00000102
. Знаки подбираются так, чтобы деление было целочисленным.6. If i = 0, then put A = A i , B = B i and go to step 8. Otherwise, put
Figure 00000101
,
Figure 00000102
. Signs are selected so that the division is integer.

7. Положить i=i-1 и вернуться на шаг 6.7. Put i = i-1 and return to step 6.

8. Результат: A, B.8. Result: A, B.

Для q≡1, 3 (mod 8) представление q=A2+2B2 единственно, а для q≡1, 7 (mod 8) существует бесконечно много представлений ±q=A2-2B2, поэтому существуют числам, В, имеющие минимальную длину.For q≡1, 3 (mod 8), the representation q = A 2 + 2B 2 is unique, and for q≡1, 7 (mod 8) there are infinitely many representations ± q = A 2 -2B 2 , therefore there exist numbers, B, having a minimum length.

Claims (4)

1. Способ формирования и проверки электронной цифровой подписи на основе эллиптической или гиперэллиптической кривой, заключающийся в преобразовании битовых строк и выполнении операций с битовыми строками, в котором при формировании или при проверке подписи умножают по крайней мере одну заранее определенную точку (соответственно приведенный дивизор) Р простого порядка q эллиптической (соответственно гиперэллиптической) кривой на целое число k путем сложений и удвоений, при формировании подписи допускается случайный выбор числа k, причем для указанного умножения используют два этапа: на первом этапе выбирают четную длину n цепочки и подготавливают вспомогательные битовые строки, содержащие произведение точки эллиптической кривой (соответственно приведенного дивизора гиперэллиптической кривой) на целые числа, представленные всеми допустимыми значениями цепочек, получаемые умножением Р на целые числа, соответствующие всем допустимым значениям цепочек, причем каждая указанная битовая строка содержит хотя бы один идентификатор, на втором этапе выполняют указанное умножение с использованием указанных вспомогательных битовых строк, при этом вектор коэффициентов числа k разбивают на цепочки длины n, выбирают вспомогательную битовую строку, один из идентификаторов которой соответствует старшей цепочке, и значение точки (соответственно приведенного дивизора) этой битовой строки присваивают точке (соответственно приведенному дивизору) R, и выполняют рекурсивный переход к предыдущей цепочке, присваивая R значение удвоений R и суммы R с точкой эллиптической кривой (соответственно с приведенным дивизором гиперэллиптической кривой) битовой строки, один из идентификаторов которой соответствует предыдущей цепочке, отличающийся тем, что на первом этапе выбирают число w=-2 при q=1, 3 (mod 8) или w=2 при q=1, 7 (mod 8), вычисляют значение t=√w (mod q), a на втором этапе число k преобразовывают в систему счисления с основанием t: k=K0+K1t+…+K2ht2h+K2h+1t2h+1, где все коэффициенты K0, …, K2h+1 принимают значения 0, 1 или -1, а число 2h близко к log2q, а в ходе рекурсивного перехода к предыдущей цепочке коэффициентов выполняют n/2 удвоений точки (приведенного дивизора) R.1. A method of generating and verifying an electronic digital signature based on an elliptic or hyperelliptic curve, which consists in converting bit strings and performing operations with bit strings, in which at least one predetermined point (respectively, the given divisor) is multiplied when generating or verifying the signature. a simple order q of an elliptic (respectively hyperelliptic) curve by an integer k by addition and doubling, when forming a signature, a random choice of the number k is allowed, m for the specified multiplication, two stages are used: at the first stage, an even length n of the chain is selected and auxiliary bit strings are prepared containing the product of the point of the elliptic curve (respectively, of the reduced divisor of the hyperelliptic curve) by integers represented by all valid values of the chains obtained by multiplying P by integers corresponding to all valid values of the chains, and each specified bit string contains at least one identifier, at the second stage, the specified mind Using the indicated auxiliary bit strings, the vector of coefficients of the number k is divided into chains of length n, an auxiliary bit string is selected, one of the identifiers of which corresponds to the highest chain, and the point value (respectively, of the reduced divisor) of this bit string is assigned to the point (respectively, of the reduced divisor ) R, and perform a recursive transition to the previous chain, assigning R the value of the doublings R and the sum R with the point of the elliptic curve (respectively, with the reduced divisor r perelliptic curve) of a bit string, one of the identifiers of which corresponds to the previous chain, characterized in that at the first stage the number w = -2 is chosen for q = 1, 3 (mod 8) or w = 2 for q = 1, 7 (mod 8 ), calculate the value t = √w (mod q), and in the second stage, the number k is converted to a number system with the base t: k = K 0 + K 1 t + ... + K 2h t 2h + K 2h + 1 t 2h + 1 , where all the coefficients K 0 , ..., K 2h + 1 take the values 0, 1 or -1, and the number 2h is close to log 2 q, and during the recursive transition to the previous chain of coefficients, n / 2 doubles of the point (reduced divisor) are performed R. 2. Способ по п.1, отличающийся тем, что при формировании подписи случайное число k выбирают в виде пары целых случайных чисел (k0, k1) так, что выполняется условие
Figure 00000103
, и полагают k=k0+tk1.
2. The method according to claim 1, characterized in that when forming the signature, a random number k is selected as a pair of integer random numbers (k 0 , k 1 ) so that the condition
Figure 00000103
, and put k = k 0 + tk 1 .
3. Способ по п.1, отличающийся тем, что если w=-2 и n больше или равно 4, то в каждую вспомогательную битовую строку включают все эквивалентные идентификаторы, обладающие одинаковым значением по модулю q, либо каждая вспомогательная битовая строка содержит идентификатор, значение которого равно абсолютно наименьшему из эквивалентных идентификаторов, а на втором этапе выполняют преобразование цепочек коэффициентов числа k, при котором цепочки вида (…, 1, z, 1, …) заменяют на цепочки вида (…, -1, z, 0, …), а цепочки вида (…, -1, z, -1, …), заменяют на цепочки вида (…, 1, z, 0, …), причем z означает любую из цифр 0, 1 или -1.3. The method according to claim 1, characterized in that if w = -2 and n is greater than or equal to 4, then each equivalent bit string includes all equivalent identifiers having the same value modulo q, or each auxiliary bit string contains an identifier, the value of which is absolutely the smallest of the equivalent identifiers, and at the second stage, the chains of coefficients of k are converted, in which chains of the form (..., 1, z, 1, ...) are replaced by chains of the form (..., -1, z, 0, ... ), and chains of the form (..., -1, z, -1, ...) are replaced by chains in yes (..., 1, z, 0, ...), wherein z is any of the numbers 0, 1 or -1. 4. Способ по п.1, отличающийся тем, что в том, что на первом этапе дополнительно подготавливают битовые строки, представляющие целые числа А и В, такие, что выполняются условия: eq=A2-wB2, где е=1 или е=-1, и целое число A+Bt делится на q, а на втором этапе вычисляют ближайшее к дроби (Ak/(eq)) целое число n1 и ближайшее к дроби (Bk/(eq)) целое число n2, вычисляют числа k0=k-An1+wBn2, k1=-Bn1+An2, преобразовывают их в двоичный вид k0=k00+2k01+…+2hk0h, k1=k10+2k11+…+2h*k1h и для i=0, …, 2h+1 присваивают значения K2i=k0i или K2i=-k0i, K2i+1=k1i или K2i+i=-k1i, где знаки определяют с учетом знака w. 4. The method according to claim 1, characterized in that in the first stage, bit strings are additionally prepared representing integers A and B, such that the conditions are satisfied: eq = A 2 -wB 2 , where e = 1 or e = 1, and the integer a + Bt divisible by q, and the second stage is calculated to the nearest fraction (Ak / (eq)) an integer n 1 and is nearest to the fraction (Bk / (eq)) 2 n is an integer, calculate the numbers k 0 = k-An 1 + wBn 2 , k1 = -Bn 1 + An 2 , convert them into binary form k 0 = k 00 + 2k 01 + ... + 2 h k 0h , k 1 = k 10 + 2k 11 + ... + 2 h * k 1h and for i = 0, ..., 2h + 1 they assign the values K 2i = k 0i or K 2i = -k 0i , K 2i + 1 = k 1i or K 2i + i = -k 1i , where the signs are determined taking into account the sign w.
RU2010121292/08A 2010-05-25 2010-05-25 Method of generating and verifying electronic digital signature based on elliptic or hyperelliptic curve RU2457535C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2010121292/08A RU2457535C2 (en) 2010-05-25 2010-05-25 Method of generating and verifying electronic digital signature based on elliptic or hyperelliptic curve

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2010121292/08A RU2457535C2 (en) 2010-05-25 2010-05-25 Method of generating and verifying electronic digital signature based on elliptic or hyperelliptic curve

Publications (2)

Publication Number Publication Date
RU2010121292A RU2010121292A (en) 2011-11-27
RU2457535C2 true RU2457535C2 (en) 2012-07-27

Family

ID=45317854

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2010121292/08A RU2457535C2 (en) 2010-05-25 2010-05-25 Method of generating and verifying electronic digital signature based on elliptic or hyperelliptic curve

Country Status (1)

Country Link
RU (1) RU2457535C2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2308080C2 (en) * 2003-05-02 2007-10-10 Гиритек А/С Method for comprehensive, user-oriented network safety, provided by dynamic commutation of datagrams and authentication and encoding model upon requirement through mobile intellectual information carriers
RU2369974C1 (en) * 2007-12-25 2009-10-10 Николай Андреевич Молдовян Method for generation and authentication of electronic digital signature that certifies electronic document
RU2380838C1 (en) * 2008-07-24 2010-01-27 Николай Андреевич Молдовян Method for creation and authentication of electronic digital signature confirming electronic document

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2308080C2 (en) * 2003-05-02 2007-10-10 Гиритек А/С Method for comprehensive, user-oriented network safety, provided by dynamic commutation of datagrams and authentication and encoding model upon requirement through mobile intellectual information carriers
RU2369974C1 (en) * 2007-12-25 2009-10-10 Николай Андреевич Молдовян Method for generation and authentication of electronic digital signature that certifies electronic document
RU2380838C1 (en) * 2008-07-24 2010-01-27 Николай Андреевич Молдовян Method for creation and authentication of electronic digital signature confirming electronic document

Also Published As

Publication number Publication date
RU2010121292A (en) 2011-11-27

Similar Documents

Publication Publication Date Title
EP0503119B1 (en) Public key cryptographic system using elliptic curves over rings
Lyubashevsky et al. SMILE: set membership from ideal lattices with applications to ring signatures and confidential transactions
Antipa et al. Accelerated verification of ECDSA signatures
KR100723996B1 (en) Computation method, computing device and computer-readable recording medium storing program
Moldovyan A practical digital signature scheme based on the hidden logarithm problem
Cheon et al. Fast batch verification of multiple signatures
Hanser et al. Blank digital signatures
Ruohonen Mathematical cryptology
Petzoldt Efficient key generation for rainbow
Thakur Batching non-membership proofs with bilinear accumulators
CN115514471A (en) Method and system for digital signature using multiplicative half-clusters
CN112887096B (en) Prime order elliptic curve generation method and system for signature and key exchange
Lim et al. A study on the proposed Korean digital signature algorithm
RU2457535C2 (en) Method of generating and verifying electronic digital signature based on elliptic or hyperelliptic curve
Bagherpour et al. Sigma protocol for faster proof of simultaneous homomorphism relations
RU2392736C1 (en) Method for generation and authentication of electronic digital signature that verifies electronic document
RU2380838C1 (en) Method for creation and authentication of electronic digital signature confirming electronic document
Do et al. Digital signature schemes from two hard problems
Shen et al. Unique signature with short output from CDH assumption
RU2409903C2 (en) Method of creating and authenticating electronic digital signature certifying electronic document
RU2325767C1 (en) Method of generation and authenticity check of electronic digital signature, which certifies electronic document
RU2325768C1 (en) Method of generation and authenticity check of electronic digital signature, which certifies electronic document
Zhao et al. CRT‐Based Homomorphic Encryption over the Fraction
SOLDATI An advanced signature scheme: Schnorr algorithm and its benefits to the bitcoin ecosystem
RU2369974C1 (en) Method for generation and authentication of electronic digital signature that certifies electronic document

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20160526