CN116527274B - Elliptic curve signature verification method and system based on multi-scalar multiplication rapid calculation - Google Patents

Elliptic curve signature verification method and system based on multi-scalar multiplication rapid calculation Download PDF

Info

Publication number
CN116527274B
CN116527274B CN202310534559.1A CN202310534559A CN116527274B CN 116527274 B CN116527274 B CN 116527274B CN 202310534559 A CN202310534559 A CN 202310534559A CN 116527274 B CN116527274 B CN 116527274B
Authority
CN
China
Prior art keywords
pix
elliptic curve
array
coordinate
point
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN202310534559.1A
Other languages
Chinese (zh)
Other versions
CN116527274A (en
Inventor
付勇
陈鑫泽
王坤
高绍锋
陈丽娟
杨光
王继志
赵大伟
吴晓明
杨美红
王英龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qilu University of Technology
Shandong Computer Science Center National Super Computing Center in Jinan
Original Assignee
Qilu University of Technology
Shandong Computer Science Center National Super Computing Center in Jinan
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 Qilu University of Technology, Shandong Computer Science Center National Super Computing Center in Jinan filed Critical Qilu University of Technology
Priority to CN202310534559.1A priority Critical patent/CN116527274B/en
Publication of CN116527274A publication Critical patent/CN116527274A/en
Application granted granted Critical
Publication of CN116527274B publication Critical patent/CN116527274B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3252Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)

Abstract

The invention relates to the technical field of digital signatures, and discloses an elliptic curve signature verification method and system based on multi-scalar multiplication rapid calculation; the method comprises the following steps: an elliptic curve digital signature step and an elliptic curve signature verification step; the multi-scalar multiplication calculation process in the elliptic curve digital signature step and the elliptic curve signature verification step comprises the following steps: obtaining a base point P, a point Q and a triple point affine coordinate 3P of the base point P on an elliptic curve, and pre-calculating the obtained data to obtain a parameter table; processing the scalar coefficient K and the scalar coefficient L to obtain a coefficient table; and carrying out bit-by-bit calculation on the parameter table and the coefficient table, and carrying out coordinate reduction processing on a bit-by-bit calculation result to obtain a multi-scalar multiplication result. By optimizing the multi-scalar multiplication operation encountered in the digital signature algorithm, the time complexity of the digital signature and the digital signature verification process is greatly reduced, the operation speed of the digital signature is improved, the overall performance of the system is improved, and the user experience is improved.

Description

Elliptic curve signature verification method and system based on multi-scalar multiplication rapid calculation
Technical Field
The invention relates to the technical field of digital signatures, in particular to an elliptic curve signature verification method and system based on multi-scalar multiplication rapid calculation.
Background
The statements in this section merely relate to the background of the present disclosure and may not necessarily constitute prior art.
Elliptic Curve Cryptography (ECC), which is a public key cryptography algorithm, is a rapidly developing cryptographic branch in recent years, and is based on elliptic curve theory in number theory, capable of constructing elliptic curve cryptography systems over a smaller finite field than cryptography systems based on discrete logarithm problems, such as ElGamal cryptography systems or DSA, RSA cryptography systems. The key length required for ECC is much smaller than for cryptosystems based on discrete logarithm problems, while maintaining the same security strength. Thus, ECC can greatly reduce the overhead in terms of required computation, storage space, and data traffic, as compared to other cryptographic systems. Elliptic curve arithmetic is the core basic arithmetic of identity authentication, key agreement, blockchain and so on.
In recent years, optimizing scalar multiplication operations in ECC is one of the important directions of many scholars' research. There are many mainstream algorithms such as the multiple point-to-point plus binary method, non-contiguous representations, windowed non-contiguous representations, etc. The core idea of these algorithms is to reduce the extra operations in ECC by reducing the average hamming density of the single scalar. For multi-scalar multiplication, the joint sparse form JSF has lower Hamming density, and the pre-calculated amount is smaller than that of non-adjacent format NAF, for example, the Hamming weight of JSF-3 is about 0.54, and the Hamming weight of JSF-5 is about 0.4, but because the NAF method can adopt larger window width, the total calculated amount is further reduced, and the overall efficiency is superior to that of the JSF method.
The improvement of the calculation speed of the public key cryptographic algorithm is a research hot spot of the public key cryptographic algorithm, and the multi-scalar multiplication operation of the elliptic curve is a basic component of the elliptic curve cryptographic signature verification protocol and is also the most time-consuming part. The digital signature algorithm has low efficiency in the process of realizing digital signature and signature verification, a large amount of computing resources in a computer are wasted, the computing mode of the existing digital signature algorithm improves the complexity of time, and when the digital signature algorithm runs on a chip, the digital signature algorithm has higher power consumption on the chip and has low speed in the digital signature process, so that the use experience of a user is influenced.
Disclosure of Invention
In order to solve the defects in the prior art, the invention provides an elliptic curve signing method and a elliptic curve signing system based on multi-scalar multiplication calculation; by optimizing the multi-scalar multiplication operation encountered in the digital signature algorithm, the time complexity of the digital signature and the digital signature verification process is greatly reduced, the power consumption is low when the digital signature algorithm runs on a chip, the operation speed of the digital signature is improved, the overall performance of the system is improved, and the user experience is improved.
In a first aspect, the invention provides an elliptic curve signing method based on multi-scalar multiplication calculation;
an elliptic curve label-checking method based on multi-scalar multiplication calculation comprises the following steps: an elliptic curve digital signature step and an elliptic curve signature verification step; the multi-scalar multiplication calculation process in the elliptic curve digital signature step and the elliptic curve signature verification step comprises the following steps:
obtaining a base point P, a point Q and a triple point affine coordinate 3P of the base point P on an elliptic curve, and carrying out pre-calculation processing on the obtained data to obtain a parameter table;
acquiring a scalar coefficient K and a scalar coefficient L; processing the scalar coefficient K and the scalar coefficient L to obtain a coefficient table;
and carrying out bit-by-bit calculation on the parameter table and the coefficient table, and carrying out coordinate reduction processing on a bit-by-bit calculation result to obtain a multi-scalar multiplication result.
In a second aspect, the invention provides an elliptic curve signing verification system based on multi-scalar multiplication calculation;
elliptic curve label-checking system based on multi-scalar multiplication calculation, comprising: an elliptic curve digital signature module and an elliptic curve signature verification module; the multi-scalar multiplication calculation process in the elliptic curve digital signature module and the elliptic curve signature verification module comprises the following steps:
a pre-calculation unit configured to: obtaining a base point P, a point Q and a triple point affine coordinate 3P of the base point P on an elliptic curve, and carrying out pre-calculation processing on the obtained data to obtain a parameter table;
a processing unit configured to: acquiring a scalar coefficient K and a scalar coefficient L; processing the scalar coefficient K and the scalar coefficient L to obtain a coefficient table;
a bitwise calculation unit configured to: and carrying out bit-by-bit calculation on the parameter table and the coefficient table, and carrying out coordinate reduction processing on a bit-by-bit calculation result to obtain a multi-scalar multiplication result.
Compared with the prior art, the invention has the beneficial effects that:
by optimizing the multi-scalar multiplication operation encountered in the digital signature algorithm, the time complexity of the digital signature and the digital signature verification process is greatly reduced, the power consumption is low when the digital signature algorithm runs on a chip, the operation speed of the digital signature is improved, the overall performance of the system is improved, and the user experience is improved.
The invention provides a method for pre-computing and realizing multi-scalar multiplication coordinates based on JSF and modular inversion, which has the advantages that in recent years, elliptic curve modular inversion algorithm is developed rapidly, algorithm realization speed is reduced to thousands of clock cycles, therefore, the characteristics of less pre-computing amount and lower hamming weight of five-membered joint sparse representation JSF-5 algorithm can be utilized, and the computing amount of adding ADD in the multi-scalar multiplication execution process is greatly reduced by converting pre-computing curve point coordinates from a Jacobian accentuation coordinate system (x, y, z) to an affine coordinate system (x, y), and the computing amount of adding ADD is reduced to 8 modular multiplications M, 3 modular multiplications S and 7 simple modular operations A by 12 modular multiplications S, 4 modular multiplications S and 7 simple modular operations A. In addition, the method is combined with the DOUBLE-point operation DOUBLE, so that the calculation complexity is further reduced, and compared with the prior art, the method has the advantages of high speed, small memory and storage occupation and the like.
Drawings
The accompanying drawings, which are included to provide a further understanding of the invention and are incorporated in and constitute a part of this specification, illustrate embodiments of the invention and together with the description serve to explain the invention.
Fig. 1 is a flow chart of a method according to a first embodiment.
Detailed Description
It should be noted that the following detailed description is exemplary and is intended to provide further explanation of the invention. Unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs.
Example 1
The embodiment provides an elliptic curve label checking method based on multi-scalar multiplication calculation;
as shown in fig. 1, the elliptic curve signing method based on multi-scalar multiplication calculation includes: an elliptic curve digital signature step and an elliptic curve signature verification step; the multi-scalar multiplication calculation process in the elliptic curve digital signature step and the elliptic curve signature verification step comprises the following steps:
s101: obtaining a base point P, a point Q and a triple point affine coordinate 3P of the base point P on an elliptic curve, and carrying out pre-calculation processing on the obtained data to obtain a parameter table;
s102: acquiring a scalar coefficient K and a scalar coefficient L; processing the scalar coefficient K and the scalar coefficient L to obtain a coefficient table;
s103: and carrying out bit-by-bit calculation on the parameter table and the coefficient table, and carrying out coordinate reduction processing on a bit-by-bit calculation result to obtain a multi-scalar multiplication result.
Further, the step S101: obtaining a base point P, a point Q and a triple point affine coordinate 3P of the base point P on an elliptic curve, and pre-calculating the obtained data to obtain a parameter table, wherein the method specifically comprises the following steps:
s101-1: setting a coordinate index;
s101-2: calculating the multiple points and the point plus coordinates of the base point P and the point Q based on the coordinate index;
s101-3: performing modular inversion operation based on the multiple points and the point addition coordinates of the base points P and the points Q;
s101-4: and recovering the coordinates of each point to an affine coordinate system based on the modular inverse operation result.
Further, the S101-1: setting a coordinate index, namely setting a plurality of unrepeated constants for positioning and auxiliary operation according to a five-membered joint sparse representation algorithm JSF-5;
a number of non-repeating constants, comprising: the P coordinate index_p_ P, Q coordinate index_p_q, the 3P coordinate index_p_3p, the 3Q coordinate index_p_ Q, Q +p coordinate index_p_qap, the Q-P coordinate index_p_qmp, the q+3p coordinate index_p_qa3p, the Q-3P coordinate index_p_qm3p, the 3q+p coordinate index_p_ QaP, the 3Q-P coordinate index_p_ QmP, the 3q+3p coordinate index_p_3qa3p, and the 3Q-3P coordinate index_p_3qm3p.
3Q represents a triple point of Q, Q+P represents a point addition of Q and P, Q-P represents a point decrease of Q and P, Q+3P represents a point addition of Q and 3P, Q-3P represents a point decrease of Q and 3P, 3Q+P represents a point addition of 3Q and P, 3Q-P represents a point decrease of 3Q and P, 3Q+3P represents a point addition of 3Q and 3P, and 3Q-3P represents a point decrease of 3Q and 3P.
Further, the S101-2: calculating the multiple points and the point plus coordinates of the base point P and the point Q based on the coordinate index, including:
copying 512 bits in the P coordinate to a position Pix_p_P where_p_P is located in the Pix array;
saving the Q coordinate to 8 64-bit unsigned integer numbers beginning with pix_p_Q, wherein pix_p_Q represents the position corresponding to p_Q in the Pix array;
saving the 3P coordinates to 8 64-bit unsigned integer numbers starting from Pix_p3P, wherein Pix_p3P represents the position corresponding to p_3P in the Pix array;
calculating 3Q to obtain a Jacobian accentuated projection coordinate system coordinate ((3Q) x, (3Q) y, (3Q) Z) by a Co-Z coordinate Co-Z algorithm;
synchronously calculating Q+P and Q-P by using a Co-Z coordinate Co-Z algorithm to obtain 2 Jacobian accentuation coordinates ((Q+P) x, (Q+P) y, (Q+P) Z) and ((Q-P) x, (Q-P) y, (Q-P) Z), saving (Q+P) x, (Q+P) y to 8 64-bit unsigned integer numbers starting from a position pix_p_ QaP corresponding to_p_ QaP in the Pix array, saving (Q-P) x, (Q-P) y to 8 64-bit unsigned integer numbers starting from a position pix_p_ QmP corresponding to_p_ QaP in the Pix array, and saving (Q+P) Z to Z1; wherein, (Q+P) x represents the abscissa of the Q+P point, (Q+P) y represents the ordinate of the Q+P point, (Q+P) z represents the ordinate of the Q+P point, (Q-P) x represents the abscissa of the Q-P point, and (Q-P) y represents the ordinate of the Q-P point; z1 is used for storing a 64-bit unsigned integer array of intermediate data, and the array length is 8;
synchronously calculating Q+3P and Q-3P by using a Co-Z method to obtain 2 Jacobian accentuation coordinates ((Q+3P) x, (Q+3P) y, (Q+3P) Z) and ((Q-3P) x, (Q-3P) y, (Q-3P) Z), saving (Q+3P) x, (Q+3P) y to 8 64-bit unsigned integer numbers starting from pix_p_Qa3P ], saving (Q-3P) y, (Q-3P) y to 8 64-bit unsigned integer numbers starting from pix_p_Qm3P), and saving (Q+3P) Z to Z2; z2 is used for storing a 64-bit unsigned integer array of intermediate data, and the array length is 8; wherein, (Q+3P) x represents the abscissa of the Q+3P point, (Q+3P) y represents the ordinate of the Q+3P point, (Q+3P) z represents the ordinate of the Q+3P point, (Q-3P) x represents the abscissa of the Q-3P point, and (Q-3P) y represents the ordinate of the Q-3P point;
using Co-Z method to calculate 3Q+P and 3Q-P synchronously to obtain 2 Jacobian accentuation coordinate system coordinates ((3Q+P) x, (3Q+P) y, (3Q+P) Z) and ((3Q-P) x, (3Q-P) y, (3Q-P) Z), storing (3Q+P) x, (3Q+P) y to 8 64 bit unsigned integer numbers starting from position pix_p_3 QaP corresponding to_p_ QaP in the Pix array, storing (3Q-P) x, (3Q-P) y to 8 64 bit unsigned integer numbers starting from position pix_p_3 QmP corresponding to_p_3_ 3QmP in the Pix array, and storing (3Q+P) Z to Z3; z3 is used for storing a 64-bit unsigned integer array of intermediate data, and the array length is 8; wherein (3Q+P) x represents the abscissa of 3Q+P points, (3Q+P) y represents the ordinate of 3Q+P points, (3Q+P) z represents the ordinate of 3Q+P points, (3Q-P) x represents the abscissa of 3Q-P points, and (3Q-P) y represents the ordinate of 3Q-P points;
using Co-Z method to calculate 3Q+3P and 3Q-3P synchronously to obtain 2 Jacobian accentuation coordinate system coordinates ((3Q+3P) x, (3Q+3P) y, 3Q+3P) Z) and ((3Q-3P) x, (3Q-3P) y, (3Q-3P) Z), storing (3Q+3P) x, (3Q+3P) y to 4 64 bit unsigned integer numbers starting from position pix_p3Qa3P corresponding to_p3Qa3P in the Pix array, storing (3Q-3P) x, (3Q-3P) y to 4 bit unsigned integer numbers starting from position pix_p3Qm3P corresponding to_pP in the Pix array, and storing (3Q+3P) Z to Z4; z4 is used for storing a 64-bit unsigned integer array of intermediate data, and the array length is 8; wherein, (3q+3p) x represents the abscissa of 3q+3p points, (3q+3p) y represents the ordinate of 3q+3p points, (3q+3p) z represents the ordinate of 3q+3p points, (3Q-3P) x represents the abscissa of 3Q-3P points, and (3Q-3P) y represents the ordinate of 3Q-3P points.
It should be appreciated that the pre-calculation method yields 12 times the points and point plus combination coordinates of P and Q in the affine coordinate system.
Further, the S101-3: based on the multiple points and the point plus coordinates of the base point P and the point Q, carrying out modular inversion operation, and specifically comprising:
setting 6 256-bit numbers T, T0, T1, T2, T3, and T4 for storing intermediate variables;
T0=Z2.Z1;
T1=Z3.Z4;
T2=T0.T1;
wherein "" denotes a modular multiplication of 2 256-bit numbers on the elliptic curve domain, resulting in 256-bit numbers;
using the fast modulo inversion algorithm safegcd, the T2 modulo inversion is calculated:
InvZ=ModInv(T2);
where InvZ represents the modulo inverse of T2, modInv represents the modulo inverse.
Further, the S101-4: based on the modulo inverse operation result, recovering the coordinates of each point to an affine coordinate system, comprising:
T1=T2.T1;T4=T1.Z2;T3=T1.Z1;T0=T2.T0;
T1=Z4.T0;T2=Z3.T0;Z1=T4.T4;Z2=Z1.T4;
wherein "" denotes a modular multiplication of 2 256-bit numbers on the elliptic curve domain, resulting in 256-bit numbers;
copying 4 64-bit unsigned integer numbers beginning at a position pix_p_ QaP corresponding to_p_ QaP in the Pix array to T, wherein t=tz1, and storing T to 4 64-bit unsigned integer numbers beginning at pix_p_ QaP;
copying 4 64-bit unsigned integer numbers beginning at a position pix_p_ QaP +4 corresponding to_p_ QaP +4 in the Pix array to T, wherein t=tz2, and storing T to 4 64-bit unsigned integer numbers beginning at pix_p_ QaP +4;
copying 4 64-bit unsigned integer numbers beginning at a position pix_p_ QmP corresponding to_p_ QmP in the Pix array to T, wherein t=tz1, and storing T to 4 64-bit unsigned integer numbers beginning at pix_p_ QmP;
copying 4 64-bit unsigned integer numbers starting from a position pix_p_ QmP +4 corresponding to_p_ QmP +4 in the Pix array to T, wherein t=t.z2, and storing T into 4 64-bit unsigned integer numbers starting from a position pix_p_ QmP +4 corresponding to_p_ QmP +4 in the Pix array;
Z1=T3.T3;Z2=Z1.T3;
copying 4 64-bit unsigned integer numbers starting from a position pix_p_qa3p corresponding to_pQa3p in the Pix array to T, wherein T=T.Z1, and saving T to 4 64-bit unsigned integer numbers starting from pix_p_Qa3p;
copying 4 64-bit unsigned integer numbers starting from a position pix_p_qa3p+4 corresponding to the position pix_p_qa3p+4 in the Pix array to T, wherein t=tz2, and saving T to 4 64-bit unsigned integer numbers starting from the position pix_p_qa3p+4;
copying 4 64-bit unsigned integer numbers starting from a position pix_p_qm3p corresponding to_pqm3p in the Pix array to T, wherein t=tz1, and storing T to 4 64-bit unsigned integer numbers starting from pix_p_qm3p;
copying 4 64-bit unsigned integer numbers beginning at a position pix_p_qm3p+4 corresponding to_p_qm3p+4 in the Pix array to T, wherein t=tz2, and storing T to 4 64-bit unsigned integer numbers beginning at the position pix_p_qm3p+4;
Z1=T1.T1;Z2=Z1.T1;
copying 4 64-bit unsigned integer numbers beginning at a position pix_p_3 QaP corresponding to_p_3 QaP in the Pix array to T, wherein t=tz1, and storing T to 4 64-bit unsigned integer numbers beginning at pix_p_3 QaP;
copying 4 64-bit unsigned integer numbers beginning at a position pix_p_3qap+4 corresponding to the position pix_p_3qap+4 in the Pix array to T, wherein t=tz2, and storing T to 4 64-bit unsigned integer numbers beginning at the position pix_p_3qap+4;
copying 4 64-bit unsigned integer numbers beginning at a position pix_p_3 QmP corresponding to_p_3 QmP in the Pix array to T, wherein t=tz1, and storing T to 4 64-bit unsigned integer numbers beginning at pix_p_3 QmP;
copying 4 64-bit unsigned integer numbers beginning at a position pix_p_3qmp+4 corresponding to the position pix_p_3qmp+4 in the Pix array to T, wherein t=tz2, and storing T to 4 64-bit unsigned integer numbers beginning at the position pix_p_3qmp+4;
Z1=T2.T2;Z2=Z1.T2;
copying 4 64-bit unsigned integer numbers starting from a position pix_p_3qa3p corresponding to the position pix_p_3qa3p in the Pix array to T, wherein t=tz1, and saving T to 4 64-bit unsigned integer numbers starting from the position pix_p_3qa3p;
copying 4 64-bit unsigned integer numbers starting from a position pix_p_3qa3p+4 corresponding to the position pix_p_3qa3p+4 in the Pix array to T, wherein t=t.z2, and saving T to 4 64-bit unsigned integer numbers starting from the position pix_p_3qa3p+4;
copying 4 64-bit unsigned integer numbers starting from a position pix_p3qm3p corresponding to_p3qm3p in the Pix array to T, wherein t=tz1, and storing T to 4 64-bit unsigned integer numbers starting from pix_p3qm3p;
copying 4 64-bit unsigned integer numbers starting from a position pix_p_3qm3p+4 corresponding to the position pix_p_3qm3p+4 in the Pix array to T, wherein t=tz2, and saving T to 4 64-bit unsigned integer numbers starting from the position pix_p_3qm3p+4;
t= (3Q) x.z1, save T to 4 64-bit unsigned integer numbers starting at position pix_p3q corresponding to_p_3q in Pix array; (3Q) x represents the abscissa of the point 3Q;
t= (3Q) y.z2, save T to 4 64-bit unsigned integer numbers starting at position Pix [ _p_3q+4] corresponding to_p_3q in Pix array; (3Q) y represents the ordinate of the point 3Q;
storing the result stored in the Pix array into a parameter table Pix [104]; the data type of the parameter table Pix [104] is a 64-bit unsigned integer.
Each point coordinate, including: 3Q point, P+Q point, P-Q point, 3P+3Q point, 3P-3Q point, P+3Q point, P-3Q point, 3P+Q point, and 3P-Q point.
It should be understood that, in S101-4, the modulus inverse of the Z coordinate of each point is calculated, then the power and the third power of the Z coordinate modulus inverse are calculated, the affine coordinate X is obtained by multiplying the power of the X coordinate and the Z coordinate modulus inverse, the affine coordinate Y is obtained by multiplying the Y coordinate and the third power of the modulus inverse, and the affine coordinate system recovery is completed.
Further, the step S102: acquiring a scalar coefficient K and a scalar coefficient L; the scalar coefficient K and the scalar coefficient L are processed to obtain a coefficient table, which specifically comprises:
and processing the scalar coefficient K and the scalar coefficient L by adopting a joint sparse representation algorithm JSF to obtain a coefficient table.
The JSF method simultaneously examines values on the same bits of the coefficients K, L and encodes such that at least one of the adjacent three bits of the encoded coefficient table is 0.
Specifically, a JSF-5 encoding function is called to generate a joint sparse form of scalar coefficient K and scalar coefficient L, the length of the generated sparse form is saved by j, and the sparse form is saved into nafa [257 ].
If the JSF-5 encoding function generates 2 sets of coefficients, the 2 sets of coefficients are converted into 1 set of coefficients, and the generated coefficients have no repetition.
Illustratively, if K is encoded and stored in u [257], L is encoded and stored in v [257], the i-th group of coefficients are u [ i ] and v [ i ], and the values of u [ i ], v [ i ] are in the range of { -3, -1,0,1,3},0 is less than or equal to i < j, then generating a new code: o [ i ] =u [ i ] +v [ i ].
It should be appreciated that the joint representation sparse algorithm JSF may result in lower hamming weight.
Further, the step S103: the method comprises the steps of carrying out bit-by-bit calculation on a parameter table and a coefficient table, and carrying out coordinate reduction processing on a bit-by-bit calculation result to obtain a multi-scalar multiplication result, wherein the method specifically comprises the following steps of:
s103-1: calculating KP+LQ;
s103-2: and converting the calculation result into an affine coordinate system by using the Jacobian accentuation coordinate system.
Further, the S103-1: calculating kp+lq, comprising:
an array Q12, the data type is 64 bit unsigned integer;
let the 8 th member of array Q [12] be 1: q [8] =1;
let the 9 th, 10 th and 11 th members of array Q [12] be 0: q [9] =0; q [10] =0; q [11] =0;
saving Pix [ nafa [ j-1] x 8] to 8 64-bit unsigned integer numbers starting from the position Q [0] corresponding to the 0 th member of the array Q [12 ]; pix [ nafa [ j-1] x 8] represents the position corresponding to the value obtained by multiplying the value in the nafa [ j-1] in the Pix array by 8;
let i traverse from the j-2 th array element of the nafa array nafa [257] to the 0 th member of the nafa array nafa [0], operating on Q [12] according to the different values read out:
if the element in the ith member nafa [ i ] of the current nafa array is 0, executing elliptic curve DOUBLE point operation DOUBLE (Q) operation on Q, and storing the obtained result to 12 64-bit unsigned numbers from Q [0 ]; the x, y and z coordinates of the point Q on the elliptic curve are stored in the Q; q0 is used for storing coordinates of points on the elliptic curve in the calculation process;
if the element in the ith member nafa [ i ] of the current nafa array is greater than 0, executing elliptic curve multiple point and point addition combined operation DOUBLEAD (Q, pix+nafa [ i ]. 8), and storing the obtained result to 12 64-bit unsigned numbers from Q [0 ];
if the element in the ith member nafa [ i ] of the current nafa array is smaller than 0, taking the absolute value nafv of nafa [ i ], then executing elliptic curve multiple point and point subtraction combined operation DOUBLEIDE (Q, pix+nafv) 8), and saving the obtained result to 12 64-bit unsigned numbers from Q [0 ].
It should be appreciated that the elliptic curve multiplication result DOUBLE is an elliptic curve multiplication result for realizing the 2Q calculation.
It should be understood that, the DOUBLEAD is an elliptic curve multiple point and point plus joint operation, Q=2Q+P, and the implementation principle is as follows: firstly, Q+P is calculated, Q point coordinates are updated to be Q ', and then a Co-Z coordinate Co-Z calculation method is executed, (Q+P) +Q'.
The DOUBLEAD calculation method has the following complexity: 13 modular multiplications M, 5 modular exponentiations S and 14 simple modular operations a. Whereas the standard DOULE+ADD computation complexity is: the overall complexity is reduced by 12 modular multiplications M, 7 modular exponentiations S and 17 simple modular operations a.
It should be understood that, the DOUBLEIB is an elliptic curve point-to-point subtraction combined operation, Q=2Q-P, and the implementation principle is as follows: firstly, Q-P is calculated, Q point coordinates are updated to be Q ', and then a Co-Z coordinate Co-Z calculation method is executed, (Q-P) +Q'.
The DOUBLEIB calculation method has the complexity of 13 modular multiplications M, 5 modular exponentiations S and 14 simple modular operations A, and the standard DOULE+ADD calculation complexity is 12 modular multiplications M, 7 modular exponentiations S and 17 simple modular operations A, so that the overall complexity is reduced.
Further, the step S103-2: converting the calculation result from the Jacobian accentuation coordinate system into an affine coordinate system, comprising:
calculating the modulo inverse Qz of Qz -1 =ModInv(Qz);
Calculating Qz -1 Is the power (Qz) -1 ) 2= Qz -1 .Qz -1
Calculating Qz -1 To the third power (Qz) -1 ) 3 =(Qz -1 ) 2 .Qz -1
Ox=Qx.(Qz -1 ) 2
Oy=Qy.(Qz -1 ) 3
Wherein Ox represents the abscissa, qz, of the affine coordinate system -1 The z coordinate mode of the Q point is represented by inverse, and Oy represents the ordinate of the affine coordinate system;
saving the obtained result Ox and Oy to 8 64 bit unsigned numbers starting from O0;
thereby realizing the conversion of the Jacobian accentuation coordinate system coordinate Q (Qx, qy, qz) into an affine coordinate system O (Ox, oy).
The affine coordinate system coordinate characteristics are utilized to combine the double point operation with the point addition and the point subtraction operation, so that the calculation complexity of the multi-scalar operation is greatly reduced.
Further, the elliptic curve digital signature step includes: the sending end processes the electronic file by adopting a first hash algorithm to obtain a first digital abstract; the sending end encrypts the first digital abstract by adopting a private key to obtain a digital signature; the transmitting end transmits the electronic file, the digital signature and the public key to the receiving end together.
Further, the elliptic curve signature verification step includes: the receiving end decrypts the digital signature by using the public key to obtain a first digital abstract; the receiving end processes the electronic file by adopting a first hash algorithm to obtain a second digital digest, compares the first digital digest with the second digital digest, and if the first digital digest and the second digital digest are matched, the electronic file with the digital signature is successfully transmitted.
Example two
The embodiment provides an elliptic curve label-checking system based on multi-scalar multiplication calculation;
elliptic curve label-checking system based on multi-scalar multiplication calculation, comprising: an elliptic curve digital signature module and an elliptic curve signature verification module; the multi-scalar multiplication calculation process in the elliptic curve digital signature module and the elliptic curve signature verification module comprises the following steps:
a pre-calculation unit configured to: obtaining a base point P, a point Q and a triple point affine coordinate 3P of the base point P on an elliptic curve, and carrying out pre-calculation processing on the obtained data to obtain a parameter table;
a processing unit configured to: acquiring a scalar coefficient K and a scalar coefficient L; processing the scalar coefficient K and the scalar coefficient L to obtain a coefficient table;
a bitwise calculation unit configured to: and carrying out bit-by-bit calculation on the parameter table and the coefficient table, and carrying out coordinate reduction processing on a bit-by-bit calculation result to obtain a multi-scalar multiplication result.
The above description is only of the preferred embodiments of the present invention and is not intended to limit the present invention, but various modifications and variations can be made to the present invention by those skilled in the art. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present invention should be included in the protection scope of the present invention.

Claims (9)

1. The elliptic curve label checking method based on multi-scalar multiplication calculation is characterized by comprising the following steps of: an elliptic curve digital signature step and an elliptic curve signature verification step; the multi-scalar multiplication calculation process in the elliptic curve digital signature step and the elliptic curve signature verification step comprises the following steps:
obtaining a base point P, a point Q and a triple point affine coordinate 3P of the base point P on an elliptic curve, and performing pre-calculation processing on the obtained data to obtain a parameter table, wherein the method comprises the following steps:
setting a coordinate index;
calculating the multiple points and the point plus coordinates of the base point P and the point Q based on the coordinate index;
the calculating the multiple points and the point plus coordinates of the base point P and the point Q based on the coordinate index comprises the following steps:
copying 512 bits in the P coordinate to a position Pix_p_P where_p_P is located in the Pix array;
saving the Q coordinate to 8 64-bit unsigned integer numbers beginning with pix_p_Q, wherein pix_p_Q represents the position corresponding to p_Q in the Pix array;
saving the 3P coordinates to 8 64-bit unsigned integer numbers starting from Pix_p3P, wherein Pix_p3P represents the position corresponding to p_3P in the Pix array;
calculating 3Q to obtain a Jacobian accentuated projection coordinate system coordinate ((3Q) x, (3Q) y, (3Q) Z) by a Co-Z coordinate Co-Z algorithm;
synchronously calculating Q+P and Q-P by using a Co-Z coordinate Co-Z algorithm to obtain 2 Jacobian accentuated projection coordinates ((Q+P) x, (Q+P) y, (Q+P) Z) and ((Q-P) x, (Q-P) y, (Q-P) Z);
synchronously calculating Q+3P and Q-3P by using a Co-Z coordinate Co-Z algorithm to obtain 2 Jacobian accentuated projective coordinates ((Q+3P) x, (Q+3P) y, (Q+3P) Z) and ((Q-3P) x, (Q-3P) y, (Q-3P) Z);
synchronously calculating 3Q+P and 3Q-P by using a Co-Z coordinate Co-Z algorithm to obtain 2 Jacobian accentuation coordinate system coordinates ((3Q+P) x, (3Q+P) y, (3Q+P) Z) and ((3Q-P) x, (3Q-P) y, (3Q-P) Z);
synchronously calculating 3Q+3P and 3Q-3P by using a Co-Z coordinate Co-Z algorithm to obtain 2 Jacobian accentuation coordinate system coordinates ((3Q+3P) x, (3Q+3P) y, 3Q+3P) Z) and ((3Q-3P) x, (3Q-3P) y, (3Q-3P) Z);
acquiring a scalar coefficient K and a scalar coefficient L; processing the scalar coefficient K and the scalar coefficient L to obtain a coefficient table;
and carrying out bit-by-bit calculation on the parameter table and the coefficient table, and carrying out coordinate reduction processing on a bit-by-bit calculation result to obtain a multi-scalar multiplication result.
2. The elliptic curve signing method based on multi-scalar multiplication calculation as claimed in claim 1, wherein the method comprises the steps of obtaining base points P, points Q and three-time point affine coordinates 3P of the base points P on the elliptic curve, and performing pre-calculation processing on the obtained data to obtain a parameter table, and specifically comprises the following steps:
performing modular inversion operation based on the multiple points and the point addition coordinates of the base points P and the points Q;
and recovering the coordinates of each point to an affine coordinate system based on the modular inverse operation result.
3. The elliptic curve label-checking method based on multi-scalar multiplication calculation according to claim 2, wherein the setting of the coordinate index is to set a plurality of non-repeated constants for positioning and auxiliary operation according to five-membered joint sparse representation algorithm JSF-5;
a number of non-repeating constants, comprising: the P coordinate index_p_ P, Q coordinate index_p_q, the 3P coordinate index_p_3p, the 3Q coordinate index_p_ Q, Q +p coordinate index_p_qap, the Q-P coordinate index_p_qmp, the q+3p coordinate index_p_qa3p, the Q-3P coordinate index_p_qm3p, the 3q+p coordinate index_p_ QaP, the 3Q-P coordinate index_p_ QmP, the 3q+3p coordinate index_p_3qa3p, and the 3Q-3P coordinate index_p_3qm3p.
4. The elliptic curve label-checking method based on multi-scalar multiplication according to claim 2, wherein the modular inversion operation is performed based on the double points and the point plus coordinates of the base point P and the point Q, and specifically comprises: setting 6 256-bit numbers T, T0, T1, T2, T3, and T4 for storing intermediate variables;
T0=Z2.Z1;T1=Z3.Z4;T2=T0.T1;
wherein "" denotes a modular multiplication of 2 256-bit numbers on the elliptic curve domain, resulting in 256-bit numbers; using the fast modulo inversion algorithm safegcd, the T2 modulo inversion is calculated:
InvZ=ModInv(T2);
wherein InvZ represents the modulo inverse of T2, modInv represents the modulo inverse;
wherein (Q+P) Z is saved to Z1; z1 is used for storing a 64-bit unsigned integer array of intermediate data, and the array length is 8;
wherein (q+3p) Z is saved to Z2; z2 is used for storing a 64-bit unsigned integer array of intermediate data, and the array length is 8;
wherein (3Q+P) Z is saved to Z3; z3 is used for storing a 64-bit unsigned integer array of intermediate data, and the array length is 8;
wherein (3Q+3P) Z is saved to Z4; z4 is used to store a 64-bit unsigned integer array of intermediate data, the array length being 8.
5. The elliptic curve signing method based on multi-scalar multiplication calculation of claim 4, wherein restoring the coordinates of each point to the affine coordinate system based on the modulo inversion operation result comprises:
T1=T2.T1;T4=T1.Z2;T3=T1.Z1;T0=T2.T0;
T1=Z4.T0;T2=Z3.T0;Z1=T4.T4;Z2=Z1.T4;
copying 4 64-bit unsigned integer numbers beginning at a position pix_p_ QaP corresponding to_p_ QaP in the Pix array to T, wherein t=tz1, and storing T to 4 64-bit unsigned integer numbers beginning at pix_p_ QaP;
copying 4 64-bit unsigned integer numbers beginning at a position pix_p_ QaP +4 corresponding to_p_ QaP +4 in the Pix array to T, wherein t=tz2, and storing T to 4 64-bit unsigned integer numbers beginning at pix_p_ QaP +4;
copying 4 64-bit unsigned integer numbers beginning at a position pix_p_ QmP corresponding to_p_ QmP in the Pix array to T, wherein t=tz1, and storing T to 4 64-bit unsigned integer numbers beginning at pix_p_ QmP;
the 4 64-bit unsigned integer numbers starting from the position pix_p_ QmP +4 corresponding to_p_ QmP +4 in the Pix array are copied to T, t=tz2, and T is saved to the 4 64-bit unsigned integer numbers starting from the position pix_p_ QmP +4 corresponding to_p_ QmP +4 in the Pix array.
6. The elliptic curve signing method based on multi-scalar multiplication calculation of claim 5, wherein z1=t3.t3; z2=z1.t3;
copying 4 64-bit unsigned integer numbers starting from a position pix_p_qa3p corresponding to_pQa3p in the Pix array to T, wherein T=T.Z1, and saving T to 4 64-bit unsigned integer numbers starting from pix_p_Qa3p;
copying 4 64-bit unsigned integer numbers starting from a position pix_p_qa3p+4 corresponding to the position pix_p_qa3p+4 in the Pix array to T, wherein t=tz2, and saving T to 4 64-bit unsigned integer numbers starting from the position pix_p_qa3p+4;
copying 4 64-bit unsigned integer numbers starting from a position pix_p_qm3p corresponding to_pqm3p in the Pix array to T, wherein t=tz1, and storing T to 4 64-bit unsigned integer numbers starting from pix_p_qm3p;
and 4 64-bit unsigned integer numbers starting from the position pix_p_qm3p+4 corresponding to the position p_qm3p+4 in the Pix array are copied to T, T=T.Z2, and T is saved to 4 64-bit unsigned integer numbers starting from the position pix_p_qm3p+4.
7. The elliptic curve label-checking method based on multi-scalar multiplication according to claim 4, wherein the calculating the parameter table and the coefficient table bit by bit and the coordinate reduction processing of the calculated result bit by bit to obtain the multi-scalar multiplication result comprises:
calculating KP+LQ;
converting the calculation result from the Jacobian accentuation coordinate system into an affine coordinate system;
the calculating kp+lq includes:
an array Q12, the data type is 64 bit unsigned integer;
let the 8 th member of array Q [12] be 1: q [8] =1;
let the 9 th, 10 th and 11 th members of array Q [12] be 0: q [9] =0; q [10] =0; q [11] =0;
saving Pix [ nafa [ j-1] x 8] to 8 64-bit unsigned integer numbers starting from the position Q [0] corresponding to the 0 th member of the array Q [12 ]; pix [ nafa [ j-1] x 8] represents the position corresponding to the value obtained by multiplying the value in the nafa [ j-1] in the Pix array by 8;
let i traverse from the j-2 th array element of the nafa array nafa [257] to the 0 th member of the nafa array nafa [0], operating on Q [12] according to the different values read out:
invoking a JSF-5 coding function to generate a joint sparse form of a scalar coefficient K and a scalar coefficient L, storing the length of the generated sparse form by j, and storing the sparse form into the nafa [257 ];
if the element in the ith member nafa [ i ] of the current nafa array is 0, executing elliptic curve DOUBLE point operation DOUBLE (Q) operation on Q, and storing the obtained result to 12 64-bit unsigned numbers from Q [0 ]; the x, y and z coordinates of the point Q on the elliptic curve are stored in the Q; q0 is used for storing coordinates of points on the elliptic curve in the calculation process;
if the element in the ith member nafa [ i ] of the current nafa array is greater than 0, executing elliptic curve multiple point and point addition combined operation DOUBLEAD (Q, pix+nafa [ i ]. 8), and storing the obtained result to 12 64-bit unsigned numbers from Q [0 ];
if the element in the ith member nafa [ i ] of the current nafa array is smaller than 0, taking the absolute value nafv of nafa [ i ], then executing elliptic curve multiple point and point subtraction combined operation DOUBLEIDE (Q, pix+nafv) 8), and saving the obtained result to 12 64-bit unsigned numbers from Q [0 ].
8. The elliptic curve signing method based on the multi-scalar multiplication calculation of claim 7, wherein the converting the calculation result from the Jacobian accentuated projective coordinate system into the affine coordinate system comprises:
calculating the modulo inverse Qz of Qz -1 =ModInv(Qz);
Calculating Qz -1 Is the power (Qz) -1 ) 2= Qz -1 .Qz -1
Calculating Qz -1 To the third power (Qz) -1 ) 3 =(Qz -1 ) 2 .Qz -1
Ox=Qx.(Qz -1 ) 2
Oy=Qy.(Qz -1 ) 3
Wherein Ox represents affine coordinate system transverseCoordinates, qz -1 The z coordinate mode of the Q point is represented by inverse, and Oy represents the ordinate of the affine coordinate system;
saving the obtained result Ox and Oy to 8 64 bit unsigned numbers starting from O0;
thereby realizing the conversion of the Jacobian accentuation coordinate system coordinate Q (Qx, qy, qz) into an affine coordinate system O (Ox, oy).
9. Elliptic curve signing verification system based on multi-scalar multiplication calculation, which is used for realizing the elliptic curve signing verification method based on multi-scalar multiplication calculation as set forth in any one of claims 1 to 8, and is characterized by comprising: an elliptic curve digital signature module and an elliptic curve signature verification module; the multi-scalar multiplication calculation process in the elliptic curve digital signature module and the elliptic curve signature verification module comprises the following steps:
a pre-calculation unit configured to: obtaining a base point P, a point Q and a triple point affine coordinate 3P of the base point P on an elliptic curve, and carrying out pre-calculation processing on the obtained data to obtain a parameter table;
a processing unit configured to: acquiring a scalar coefficient K and a scalar coefficient L; processing the scalar coefficient K and the scalar coefficient L to obtain a coefficient table;
a bitwise calculation unit configured to: and carrying out bit-by-bit calculation on the parameter table and the coefficient table, and carrying out coordinate reduction processing on a bit-by-bit calculation result to obtain a multi-scalar multiplication result.
CN202310534559.1A 2023-05-10 2023-05-10 Elliptic curve signature verification method and system based on multi-scalar multiplication rapid calculation Active CN116527274B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310534559.1A CN116527274B (en) 2023-05-10 2023-05-10 Elliptic curve signature verification method and system based on multi-scalar multiplication rapid calculation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310534559.1A CN116527274B (en) 2023-05-10 2023-05-10 Elliptic curve signature verification method and system based on multi-scalar multiplication rapid calculation

Publications (2)

Publication Number Publication Date
CN116527274A CN116527274A (en) 2023-08-01
CN116527274B true CN116527274B (en) 2024-02-06

Family

ID=87397471

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310534559.1A Active CN116527274B (en) 2023-05-10 2023-05-10 Elliptic curve signature verification method and system based on multi-scalar multiplication rapid calculation

Country Status (1)

Country Link
CN (1) CN116527274B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117972761A (en) * 2024-04-01 2024-05-03 杭州金智塔科技有限公司 Data processing method and device based on SM2 cryptographic algorithm

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102387015A (en) * 2011-09-14 2012-03-21 中国矿业大学 Method for improving elliptic curve scalar multiplication efficiency
CN106712949A (en) * 2015-11-12 2017-05-24 中国科学院声学研究所 Montgomery-based piecewise scalar multiplication calculation method
CN107547201A (en) * 2017-09-28 2018-01-05 哈尔滨工程大学 A kind of method of scalar multiplication computational efficiency in raising elliptic curve cryptosystem
CN109582284A (en) * 2018-11-16 2019-04-05 大唐微电子技术有限公司 Scalar multiplication implementation method and device, computer readable storage medium in a kind of chip

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102387015A (en) * 2011-09-14 2012-03-21 中国矿业大学 Method for improving elliptic curve scalar multiplication efficiency
CN106712949A (en) * 2015-11-12 2017-05-24 中国科学院声学研究所 Montgomery-based piecewise scalar multiplication calculation method
CN107547201A (en) * 2017-09-28 2018-01-05 哈尔滨工程大学 A kind of method of scalar multiplication computational efficiency in raising elliptic curve cryptosystem
CN109582284A (en) * 2018-11-16 2019-04-05 大唐微电子技术有限公司 Scalar multiplication implementation method and device, computer readable storage medium in a kind of chip

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
面向多椭圆曲线的高速标量乘法器设计与实现;于斌 等;《通信学报》;第41卷(第12期);正文第103页 *

Also Published As

Publication number Publication date
CN116527274A (en) 2023-08-01

Similar Documents

Publication Publication Date Title
EP1842128B1 (en) Accelerated verification of digital signatures and public keys
Knezevic et al. Faster interleaved modular multiplication based on Barrett and Montgomery reduction methods
US7904498B2 (en) Modular multiplication processing apparatus
US8411855B1 (en) Size optimization for large elliptic curve cryptography scalar multiplication acceleration tables
US8862651B2 (en) Method and apparatus for modulus reduction
WO2015164996A1 (en) Elliptic domain curve operational method and elliptic domain curve operational unit
JP2002533787A (en) How to speed up cryptographic operations on elliptic curves
CN116527274B (en) Elliptic curve signature verification method and system based on multi-scalar multiplication rapid calculation
Zhang et al. Efficient prime-field arithmetic for elliptic curve cryptography on wireless sensor nodes
Koppermann et al. 18 seconds to key exchange: Limitations of supersingular isogeny Diffie-Hellman on embedded devices
US9590805B1 (en) Ladder-based cryptographic techniques using pre-computed points
Moon et al. Fast VLSI arithmetic algorithms for high-security elliptic curve cryptographic applications
KR101223498B1 (en) Method for generating public key in elliptic curve cryptography and system for executing the method
US8666076B2 (en) Method of elliptic curve cryptography using EW-MOF on scalar multiplication
CN114650135B (en) Software and hardware cooperated SM2 elliptic curve cryptography algorithm implementation method
Arazi et al. On calculating multiplicative inverses modulo $2^{m} $
Seo et al. MoTE-ECC based encryption on MSP430
KR100377185B1 (en) Method for improving operation speed in cryptography
Janani et al. A secured key management scheme for mobile ad hoc networks with modified montgomery modular arithmetic
Kamboj et al. Study of Efficient Scalar Multiplication over Elliptic Curve
JP3966714B2 (en) Cryptographic processing method, program thereof, and recording medium thereof
CN116846557A (en) Data encryption method, device, computer equipment and storage medium
Vollala et al. Bit Forwarding 3-Bits Technique for Efficient Modular Exponentiation
Futa et al. Efficient scalar multiplication on Montgomery-form elliptic curves
JP2018146766A (en) Scalar multiple arithmetic device, scalar multiple arithmetic method and program

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant