CN117579286A - Digital signature generation method, system, storage medium and electronic equipment - Google Patents
Digital signature generation method, system, storage medium and electronic equipment Download PDFInfo
- Publication number
- CN117579286A CN117579286A CN202410056676.6A CN202410056676A CN117579286A CN 117579286 A CN117579286 A CN 117579286A CN 202410056676 A CN202410056676 A CN 202410056676A CN 117579286 A CN117579286 A CN 117579286A
- Authority
- CN
- China
- Prior art keywords
- exponential function
- bit
- grouping
- value
- digital signature
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000004364 calculation method Methods 0.000 claims abstract description 140
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 33
- 230000006870 function Effects 0.000 claims description 203
- 230000008569 process Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 241001334134 Rugopharynx epsilon Species 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing 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)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Complex Calculations (AREA)
Abstract
The application provides a digital signature generation method, a digital signature generation system, a storage medium and electronic equipment. The method comprises the following steps: acquiring G based on SM9 algorithm T Determining the grouping number and grouping length according to the index function corresponding to the group and the cache of the computer at present; splitting the exponential function according to the grouping number and the grouping length to obtain a plurality of exponential function blocks; splitting each exponential function block into bit strings, matching each bit string to correspond to a calculated value in a preset calculation table, wherein the bit weight of each bit string corresponds to a row index of the preset calculation table, and the value of each bit weight corresponds to a column index of the preset calculation table; and multiplying the calculated values to obtain a calculation result of the exponential function, and generating a digital signature according to the calculation result. By adopting the method and the device, the generation efficiency of the digital signature can be improved.
Description
Technical Field
The present invention relates to the field of digital signature algorithms, and in particular, to a method, a system, a storage medium, and an electronic device for generating a digital signature.
Background
With the development of network technology, digital signatures are becoming more and more widely used, and have become one of the important means for realizing information security. The digital signature can be used for verifying the integrity and authentication of information, and is widely applied to the fields of electronic government affairs, electronic commerce and the like. In the digital signature technology, identity-based cryptography has the advantages of simple management, high efficiency and the like compared with the traditional digital certificate technology. Shamir scientists in 1984 first proposed identity-based cryptography concepts. The signature algorithm based on the identity does not depend on complex public key infrastructure any more, and the public key is derived through the user identification information, so that certificate management is simplified. The SM9 independently researched and developed in China is a cryptographic algorithm based on identity.
The SM9 algorithm is an identity-based digital signature algorithm developed by the national bureau of China, is written into a commercial password recommendation directory of the national password administration, and is regulated to be popularized and applied in important fields such as e-government affairs. In the implementation process of the SM9 algorithm, the most core and most time-consuming calculation step is exponential operation, especially in the bilinear pair G T The exponentiation in the group severely restricts the operation efficiency of SM 9.
To improve the SM9 algorithm efficiency, various methods for optimizing the exponent operation have been proposed by the scholars. Such as algorithms that use additive chain structures to improve the efficiency of the exponential operation, use pre-calculations to store intermediate results, etc. However, the above-mentioned exponential operation calculation methods have the problem of excessively long operation time, resulting in lower generation efficiency of digital signatures.
Disclosure of Invention
The application provides a digital signature generation method, a digital signature generation system, a storage medium and electronic equipment, which can improve the generation efficiency of digital signatures.
In a first aspect of the present application, the present application provides a method for generating a digital signature, applied to a computer, including:
acquiring G based on SM9 algorithm T Determining the grouping number and the index function corresponding to the group according to the cache of the computer at presentA packet length;
splitting the exponential function according to the grouping number and the grouping length to obtain a plurality of exponential function blocks;
splitting each exponential function block into bit strings, matching each bit string to correspond to a calculated value in a preset calculation table, wherein the bit weight of each bit string corresponds to a row index of the preset calculation table, and the value of each bit weight corresponds to a column index of the preset calculation table;
And multiplying the calculated values to obtain a calculation result of the exponential function, and generating a digital signature according to the calculation result.
By adopting the technical scheme, the bilinear pair GT group constructed by the SM9 algorithm is utilized to acquire the exponential function defined on the GT group, and the exponential operation is mapped to the GT group for carrying out, so that the computational complexity can be reduced; according to the cache condition of a computer, the grouping number and the grouping length of the exponential function are reasonably determined, and the exponential function is split into a plurality of short exponential blocks, so that the calculated amount of each block can be reduced; the index blocks are further expressed as equal-length bit strings, a preset calculation table is constructed, calculation results corresponding to different bit strings are stored, calculation values can be obtained by fast table lookup, and a large number of repeated calculations are avoided; the final result of the original exponential function can be obtained by multiplying the calculated value obtained by table lookup, so that the time complexity of exponential operation is greatly reduced; and taking the modulus of the final calculation result as a signature, simplifying the expression of a signature value, and finally binding the signature value with data to be output as a digital signature. The technical scheme fully considers the characteristics of the algorithm and hardware, and adopts the calculation thought of grouping table lookup, so that the generation of the digital signature based on the SM9 algorithm can be effectively accelerated. Compared with the direct calculation of the exponential function, the technical scheme can reduce the time complexity of the exponential operation from O (n) to O (n/a), and improve the calculation speed by several times, thereby greatly improving the efficiency of digital signature generation.
Optionally, the determining the number of packets and the packet length according to the cache of the computer currently includes:
determining a threshold range corresponding to the current cache, and determining the grouping number for grouping the exponential function according to the threshold range;
the quotient of the bit length of the exponential function and the number of packets is determined as the packet length.
By adopting the technical scheme, the reasonable grouping quantity corresponding to each threshold range is preset according to the different threshold ranges of the cache size of the computer, and the grouping quantity suitable for the current computer can be rapidly determined by simply judging the range of the cache, so that repeated calculation and test are avoided, and the grouping quantity determination efficiency is improved; the integral quotient of the bit length of the exponential function and the preset grouping number is adopted as the grouping length, so that the exponential function can be divided into groupings with basically equal size, the calculated amount of each grouping is reasonably balanced, and the increase of the calculated times caused by the excessively short grouping length is avoided; the method for determining the number and the length of the packets is optimized and designed, so that the packet scheme can be adapted to the cache conditions of different computers to the greatest extent, and the optimal packet mode is intelligently determined.
Optionally, the splitting the exponential function according to the grouping number and the grouping length to obtain a plurality of exponential function blocks includes:
binary expansion is carried out on the index function to obtain an index sequence;
grouping the exponential sequences according to the grouping number to obtain the grouping number of the exponential function blocks;
and if the length of the last exponential function block is smaller than the grouping length, performing high-order 0 complementation on the last exponential function so that the length of the last exponential function is equal to the grouping length.
By adopting the technical scheme, the exponential function is subjected to binary expansion and is expressed as an exponential bit sequence. This facilitates subsequent uniform grouping by a predetermined number of groupings. According to the predetermined grouping number, the binary exponent sequence is divided into a plurality of exponent function blocks with equal length, and each block contains a fixed number of bits. Thus, the uniform blocking of the exponential function can be realized as much as possible. And (3) carrying out high-order 0 supplementing operation on the condition that the bit number of the last exponent block after grouping is insufficient, so that the length of the last exponent block is consistent with that of other blocks. This ensures that each exponential function block in the grouping result is the same in length, facilitating the subsequent use of a unified preset calculation table.
Optionally, splitting each of the exponent function blocks into bit strings, where each bit string includes a bit weight, and the value of the bit weight includes:
converting each exponential function block into a preset bit string;
determining a bit weight value of each bit in each preset bit string and the value of each bit weight value to obtain each bit string, wherein the value of each bit weight value is 0 or 1.
By adopting the technical scheme, the exponential function block is converted into the equal-length bit string to be expressed, and the weight of each bit is defined, so that a foundation is laid for the subsequent fast table look-up operation; the length of the preset bit string is equal to the grouping length, and the preset bit string can be matched with a grouping scheme to enable the table lookup to be efficient; the bit weight and the value of each bit are defined, and the bit weight and the value can be directly corresponding to the row and column index of a preset calculation table to perform quick table lookup. The bit string representation also facilitates the bit manipulation and storage of hardware, improving the speed of operation.
Optionally, after splitting the exponential function according to the number of packets and the packet length to obtain a plurality of exponential function blocks, the method further includes:
calculation ofWherein->Radix representing the ith of said exponential function block,/->A bit weight value representing the ith exponential function block, h is the grouping number, and a is the grouping length;
According to the describedMeter (D)Calculate->Wherein->Representing the value of the last block of exponential function block,/->Representing the value of the bit weight of the first block exponential function block, wherein the value of the bit weight is 0 or 1,/or->Representing that the value of the bit weight of each exponential function block is stored in each column of a preset calculation table;
according to the describedGenerating the preset calculation table->The preset calculation table->The bit weight of each of the exponential function blocks is stored in each row of the block.
By adopting the technical scheme, the base number and the bit weight of each index block are defined, and the table pre-calculation with the unified format can be performed. The first column of the preset table stores the calculation of the bit weight combination, and can be directly searched through the column index. All contents of the preset table are obtained through calculation, and a calculation result corresponding to the bit weight is stored. The bit weight can be directly utilized to fast look up a table to obtain the calculated value of the exponent operation, thereby accelerating the whole exponent operation process. The preset calculation table generation method is matched with grouping table look-up operation, so that the operation speed of a mathematical algorithm can be greatly improved.
Optionally, the generating a digital signature according to the calculation result includes:
and taking a module of the calculation result, and binding the module of the calculation result with a signature to obtain the digital signature.
By adopting the technical scheme, the calculation result of the exponential operation is subjected to modular operation, and the calculation result can be simplified into a smaller modular value. And secondly, the modular operation enables the signature value to be more compact, and network transmission and storage are facilitated. And binding the modulo value with the original data to be signed as signature information to form a final digital signature. The conversion from the calculation result to the signature value is realized, the length of the signature value is compressed through the modulo operation, and the correctness of the result is ensured.
Optionally, the acquiring is based on an SM9 algorithm to obtain G T An exponential function for a group, comprising:
matching the G from the cache of the computer T An exponential function corresponding to the group;
if the cache does not include the G T Calculating the G according to the exponential function corresponding to the group T An exponential function corresponding to the group.
By adopting the technical scheme, the required exponential function is preferentially searched in the computer cache, so that the acquisition efficiency is improved, and repeated calculation is avoided. Second, when the cache misses, the scheme calls an algorithm to calculate the required GT group-based exponential function. Again, this alternative scheme achieves efficient acquisition of the exponential function, fully utilizes the cache resources, and avoids repeated computation.
In a second aspect of the present application, there is provided a system for generating digital signatures, the system comprising:
an exponential function acquisition module for acquiring G based on SM9 algorithm T Determining the grouping number and grouping length according to the index function corresponding to the group and the cache of the computer at present;
the exponential function block splitting module is used for splitting the exponential function according to the grouping number and the grouping length to obtain a plurality of exponential function blocks;
the exponential function block calculation module is used for splitting each exponential function block into bit strings, matching each bit string to correspond to a calculated value in a preset calculation table, wherein the bit weight of each bit string corresponds to a row index of the preset calculation table, and the value of each bit weight corresponds to a column index of the preset calculation table;
and the digital signature generation module is used for multiplying the calculated values to obtain a calculation result of the exponential function, and generating a digital signature according to the calculation result.
In a third aspect the present application provides a computer storage medium storing a plurality of instructions adapted to be loaded by a processor and to perform the above-described method steps.
In a fourth aspect of the present application, there is provided an electronic device comprising: a processor, a memory; wherein the memory stores a computer program adapted to be loaded by the processor and to perform the above-mentioned method steps.
In summary, one or more technical solutions provided in the embodiments of the present application at least have the following technical effects or advantages:
by adopting the technical scheme, the bilinear pair GT group constructed by the SM9 algorithm is utilized to acquire the exponential function defined on the GT group, and the exponential operation is mapped to the GT group for carrying out, so that the computational complexity can be reduced; according to the cache condition of a computer, the grouping number and the grouping length of the exponential function are reasonably determined, and the exponential function is split into a plurality of short exponential blocks, so that the calculated amount of each block can be reduced; the index blocks are further expressed as equal-length bit strings, a preset calculation table is constructed, calculation results corresponding to different bit strings are stored, calculation values can be obtained by fast table lookup, and a large number of repeated calculations are avoided; the final result of the original exponential function can be obtained by multiplying the calculated value obtained by table lookup, so that the time complexity of exponential operation is greatly reduced; and taking the modulus of the final calculation result as a signature, simplifying the expression of a signature value, and finally binding the signature value with data to be output as a digital signature. The technical scheme fully considers the characteristics of the algorithm and hardware, and adopts the calculation thought of grouping table lookup, so that the generation of the digital signature based on the SM9 algorithm can be effectively accelerated. Compared with the direct calculation of the exponential function, the technical scheme can reduce the time complexity of the exponential operation from O (n) to O (n/a), and improve the calculation speed by several times, thereby greatly improving the efficiency of digital signature generation.
Drawings
Fig. 1 is a flow chart of a method for generating a digital signature according to an embodiment of the present application;
fig. 2 is a schematic structural diagram of a digital signature generation system according to an embodiment of the present application;
fig. 3 is a schematic structural diagram of an electronic device according to the disclosure in an embodiment of the present application.
Reference numerals illustrate: 300. an electronic device; 301. a processor; 302. a communication bus; 303. a user interface; 304. a network interface; 305. a memory.
Detailed Description
In order to make those skilled in the art better understand the technical solutions in the present specification, the technical solutions in the embodiments of the present specification will be clearly and completely described below with reference to the drawings in the embodiments of the present specification, and it is obvious that the described embodiments are only some embodiments of the present application, but not all embodiments.
In the description of embodiments of the present application, words such as "for example" or "for example" are used to indicate examples, illustrations or descriptions. Any embodiment or design described herein as "such as" or "for example" should not be construed as preferred or advantageous over other embodiments or designs. Rather, the use of words such as "or" for example "is intended to present related concepts in a concrete fashion.
In the description of the embodiments of the present application, the term "plurality" means two or more. For example, a plurality of systems means two or more systems, and a plurality of screen terminals means two or more screen terminals. Furthermore, the terms "first," "second," and the like, are used for descriptive purposes only and are not to be construed as indicating or implying relative importance or implicitly indicating an indicated technical feature. Thus, a feature defining "a first" or "a second" may explicitly or implicitly include one or more such feature. The terms "comprising," "including," "having," and variations thereof mean "including but not limited to," unless expressly specified otherwise.
The embodiment of the application provides a digital signature generation method. In one embodiment, please refer to fig. 1, fig. 1 is a flow chart of a digital signature generation method provided in the embodiment of the present application, where the method may be implemented by a computer program, may be implemented by a single chip microcomputer, or may be run on a digital signature generation method system based on von neumann system. The computer program may be integrated in the application or may run as a stand-alone tool class application. Specifically, the method may include the steps of:
Step 101: acquiring G based on SM9 algorithm T And determining the grouping number and the grouping length according to the exponential function corresponding to the group and the cache of the current computer.
Wherein G is T The group refers to a bilinear map group GT constructed based on the SM9 algorithm for storing and calculating elements used in the signature algorithm. Specifically, the GT group is a two-cycle group G by selecting a bilinear pair 1 And G 2 Then based on the random generator P 1 ∈G 1 ,P 2 ∈G 2 Calculating a mapping relation e: g 1 xG 2 ->GT. In the SM9 signature algorithm, the signature element w=g needs to be calculated r Wherein r is a random number, r.epsilon.1, N-1],g=e(P 1 ,P pub )∈G T . Where G is the number defined in G T Exponential function over the population. By G T Group calculation and mapping characteristics, G can be calculated 1 And G 2 The operations of the group map to G T Group to make use of G T The group performs an exponential operation.
Further, when G is obtained T After the exponential function corresponding to the group, the computer cache can be retrieved to obtain the available memory size information. And judging the range of the memory threshold value according to the memory size, and selecting the grouping quantity h. Let the exponential function w=g r Dividing the bit length of (a) by the number of packets h to obtain the packet length a. Finally obtain G constructed based on SM9 algorithm T Exponential function g on a group r And according to the cache condition Determined pair g r The number of packets h and the packet length a of the packet are performed.
By the method, the optimal grouping scheme of the exponential function can be dynamically determined according to different computer cache conditions, so that the calculation complexity of subsequent exponential operation is reduced, and the aim of improving the efficiency of an SM9 signature algorithm is fulfilled.
On the basis of the above embodiment, as an alternative embodiment, in step 101: the step of determining the number of packets and the length of the packets according to the cache of the current computer may specifically further include the steps of:
step 201: and determining a threshold range corresponding to the current cache, and determining the grouping number for grouping the exponential function according to the threshold range.
On the basis of the determination of the number of packets h, the packet length a may be further determined. After retrieving the computer cache, a memory threshold range corresponding to the cache size may be first determined, for example, the memory size is divided into four ranges: (0.14M, 0.4M ], (0.4M, 3M ], (3M, 768M), and (768M, +_A), each range corresponds to a preset number of packets h.
For example, for a range (0.14 m,0.4 m), h=2 is preset, and for a range (3 m,768 m), h=8 is preset, so that the memory threshold range to which the memory threshold value belongs can be determined according to a specific memory size, then the preset packet number h is directly obtained according to the memory threshold range, and then the bit length (for example, 256 bits) of the exponential function is divided by the packet number h, so as to obtain the packet length a.
The method can directly determine the grouping number h matched with the memory size through the preset memory threshold range, simplifies the parameter selection process, ensures that the value of h is reasonable, and calculates the proper grouping length a.
Step 202: the quotient of the bit length of the exponential function and the number of packets is determined as the packet length.
After the grouping number h is determined, the grouping length a is also needed to be calculated to complete the grouping scheme of the exponential operation. The packet length a directly affects the length of each subsequent block of exponential function. To calculate a reasonable value of a, the total bit length of the exponential function (assuming n bits) can be divided by the number of bins h by an integer division, the quotient of which is the value of the bin length a.
The purpose is to divide the whole n-bit exponential function uniformly into h blocks, each block having a length a. The integer division operation ensures that the packet length a is an integer and that the exponential function is split to the greatest extent into equal length packets, which can be calculated in n/h.
The packet length a can thus be quickly calculated from the determined exponential function bit length n and the packet number h. The integer division also ensures that the packet length a is not too small, the size advantage of a preset calculation table can be fully utilized, and the subsequent table look-up time is saved. The reasonable a can lead the whole exponential function to be divided and averaged into each block, and improves the subsequent table lookup calculation efficiency.
On the basis of the above embodiment, as an alternative embodiment, in step 101: acquiring G based on SM9 algorithm T The exponential function for the group may further include the steps of:
matching G from a cache of a computer T An exponential function corresponding to the group; if the cache does not include G T Calculating G by the exponential function corresponding to the group T An exponential function corresponding to the group.
Specifically, to accelerate the process of obtaining the exponential function, it is considered to first match the cache of the computer, first search the cache space of the computer to see if there is a corresponding G T An exponential function of the group. This can avoid repeated calculations and improve efficiency. If no matched exponential function is found in the cache, generating a corresponding G-based algorithm by adopting bilinear mapping calculation according to SM9 algorithm T An exponential function of the group.
The cache is preferentially searched, repeated calculation can be avoided, and the efficiency of obtaining the exponential function is improved. If the cache is not hit, the calculation is performed again, so that the required exponential function can be obtained finally. The whole process fully utilizes the cache resource and optimizes the acquisition of the exponential function.
Step 102: splitting the exponential function according to the grouping number and the grouping length to obtain a plurality of exponential function blocks.
After the exponential function is obtained and the number of groupings h and the grouping length a are determined, the entire exponential function needs to be further split into multiple exponential function blocks for the purpose of subsequent calculation of the acceleration exponent operation. By splitting a large exponential function into a plurality of exponential function blocks, each block has the same length, and subsequent operation by using a preset calculation table is facilitated. Meanwhile, the number h of the packets is not too large or too small, and needs to be predetermined in combination with the cache condition of the computer to ensure the efficiency. The packet length a also needs to be reasonably fixed in length and should not be too long or too short. In general, this step achieves grouping and blockwise expression of the exponential functions.
Based on the above embodiment, as an alternative embodiment, in step 102: splitting the exponential function according to the number of packets and the packet length to obtain a plurality of exponential function blocks, wherein the step specifically further comprises the following steps:
step 301: and binary expansion is carried out on the exponential function, so that an exponential sequence is obtained.
Step 302: grouping the exponential sequences according to the grouping number to obtain a grouping number of exponential function blocks.
Step 303: if the length of the last exponential function block is smaller than the grouping length, the last exponential function is subjected to high-order 0 complementation so that the length of the last exponential function is equal to the grouping length.
After obtaining the exponential function g r After the grouping parameters are determined, the exponential function g is needed to be used for accelerating operation by using a preset calculation table r Split into a plurality of exponential function blocks of equal length.
Specifically, first, an exponential function g r In binary form, a bit exponent sequence { b } of length n is obtained n-1 ,b n-2 ,...,b 1 ,b 0 }. This is to facilitate subsequent grouping of the index sequences.
Then, the above-mentioned exponential sequence is divided into h exponential function blocks according to a predetermined grouping number h. The number of bits each block contains corresponds to the packet length a. So as to ensure that each block has the same length and facilitate the generation of a unified preset calculation table.
Finally, when the number of bits of the last exponential function block is smaller than a in the grouping result, 0-complement is needed to be performed on the high order bits of the function block, and the function block is extended to a bit block with a length of a. To ensure that the length of all packet results is equal to a.
Through the mode, the exponential function can be split into a plurality of exponential function blocks with the same length of a, and the requirement of the subsequent acceleration operation by using the preset calculation table is met. The accuracy of operation is ensured through binary expansion and grouping, and the lookup efficiency is improved through unified block length.
Step 103: splitting each exponential function block into bit strings, matching each bit string to correspond to a calculated value in a preset calculation table, wherein the bit weight of each bit string corresponds to a row index of the preset calculation table, and the value of each bit weight corresponds to a column index of the preset calculation table.
After obtaining a plurality of exponential function blocks, in order to facilitate the acceleration operation by using a preset calculation table, each exponential function block needs to be further split into a bit string format.
Specifically, for each exponential function block of length a, it is converted into a bit string of a bits. I.e. each exponent block may be represented as { b } a-1 ,b a-2 ,...,b 1 ,b 0 }. Wherein each bit b i All representing a bit weight of 0 or 1.
Then, searching a calculated value corresponding to each bit string in a preset calculation table. The row index of the preset calculation table corresponds to the bit weight of each bit string; the column index corresponds to each bit weight b i Is 0/1 of the value of (2). The table entry calculation value corresponding to each bit string can be matched through the row-column index.
Through the mode, conversion from the exponent block to the bit string is realized, and the exponent block is mapped into a preset calculation table. This lays a foundation for the subsequent fast exponential operation based on table look-up. The row and column index is mapped to the bit weight and the value, so that the correctness of the table lookup is ensured. Splitting in a bit string format also facilitates bit manipulation and storage of hardware.
On the basis of the above embodiment, as an alternative embodiment, in step 103: the step of splitting each exponential function block into bit strings may specifically further include the steps of:
converting each exponential function block into a preset bit string, and determining the bit weight of each bit in each preset bit string and the value of each bit weight to obtain each bit string, wherein the value of each bit weight is 0 or 1.
To facilitate fast table look-up, each block needs to be converted into a bit string format after it has been obtained with an exponential function block of equal length a. Specifically, for each exponential function block, it is first converted into a predetermined a-bit string, i.e., { b a-1 ,b a-2 ,...,b 1 ,b 0 }. Then sequentially determining the bit weight of each bit from left to right of the bit string, wherein the bit weight of the ith bit is 2 (a-i) . And then determining the value of each bit, b i 0 or 1. Finally, a bit string with a length of a is obtained.
The exponential function block is expressed as a format of an equal-length bit string, and the bit weight information of each bit is defined, and the value of each bit is 0/1. The method lays a foundation for directly searching a preset calculation table to perform quick exponent operation according to the bit weight and the value.
On the basis of the above embodiment, as an optional embodiment, after splitting the exponential function according to the number of packets and the packet length to obtain a plurality of exponential function blocks, a preset calculation table may be further generated, which specifically may include the following steps:
Step 401: calculation ofWherein->Radix representing the ith exponential function block, +.>Bit weight representing the ith exponential function block, h being the number of packets, a beingPacket length.
To generate the preset calculation table, the cardinality of each exponent block needs to be calculated first. Specifically, for the ith exponential function block, a radix of g is defined i . The bit weight of each exponent block is set to 2 according to the packet length a a . The base g of the i-th exponent block. It can be calculated as:wherein 0.ltoreq.i<h。
Where g is the base of the original exponential function, h is the number of packets, and a is the packet length. From g can be calculated according to the above formula 0 To g h-1 Is a base of all of the cardinality of (c). The effect of the operation is thus: the base g corresponding to each exponent block is obtained i . This radix and unified bit weight 2 a The setting of the rule lays a foundation for the subsequent generation of a preset calculation table with a uniform format. The cardinality and bit weights of each block are specified so that precomputations can be performed correctly and efficiently to speed up subsequent exponent operations.
Step 402: according toCalculate->Wherein->Representing the value of the last block of exponential function block,/->Representing the value of the bit weight of the first block of exponential function, the value of the bit weight being 0 or 1,/for the first block of exponential function >The values representing the bit weights of the exponent function blocks are stored in the columns of a preset calculation table.
In calculating the base g of each block of exponential function i Then, the first column G0 of the preset calculation table is calculated][i]To store bits of respective exponent blocksWeight combination.
Specifically, for G0][i]It is necessary to calculate the slave g h-1 To g 0 And combining all bit weights corresponding to all the cardinalities. Wherein,bit weight combination representing the last block of exponents, < >>Bit weight combinations representing the first block of exponents. Each bit weight index takes a value of 0 or 1. There is->Calculating and storing each bit weight combination condition in a first column G0 of a preset calculation table][i]Is a kind of medium.
By calculating G0 i, the combination of all bit weights of the index blocks can be stored in advance, so that the subsequent fast table lookup calculation is facilitated. The combination of the bit weights corresponds to the column index of the preset calculation table, and the calculation result under the corresponding bit weight can be directly found, so that the whole exponential operation process is accelerated.
Step 403: according toGenerating a preset calculation table->Presetting a calculation table->The bit weights of the exponential function blocks are stored in each row of the block.
In calculating G0][i]Later, in order to build a complete preset calculation table for quick lookup, G0-based is needed ][i]Generating the whole content of the preset calculation table. Specifically, G0 is known][i]The bit weight combination condition of each index block is stored and used as the first column of a preset calculation table. Then for each G0][i]Calculation ofWherein 0.ltoreq.j<a, a is a componentGroup length. Thereby sequentially calculating each row G [ j ] of the preset calculation table][i]And store the rows.
Through iterative computation, each row G [ j ] [ i ] of the preset computation table stores the computation result under the corresponding bit weight (row index j). Therefore, the calculated value corresponding to the exponent operation can be obtained directly according to the bit weight lookup table entry, and the final exponent operation result can be rapidly calculated.
Step 104: and accumulating the calculated values to obtain a calculation result of the exponential function, and generating a digital signature according to the calculation result.
After the preset calculation table is obtained, the final exponent operation result needs to be quickly calculated by using the table, and a digital signature is generated.
Specifically, the original exponential function is split into a plurality of exponent blocks according to a pre-calculation scheme and converted into a smaller bit string. And searching a calculated value corresponding to each bit string in a preset calculation table. And accumulating and multiplying the multiple calculated values obtained by searching to obtain a final exponential operation result. And finally, taking a module of the calculation result, and outputting the module value as a digital signature together with the data to be signed as signature information.
By looking up the table and performing cumulative multiplication calculation, the time complexity of exponential operation is greatly reduced, and the signature generation process is accelerated. Meanwhile, the accuracy of the calculation result is guaranteed. And taking the calculated modulus value as a signature, and carrying out subsequent signature verification to complete the whole signature process.
Based on the above embodiment, as an alternative embodiment, in step 104: the step of generating the digital signature according to the calculation result may specifically further include the steps of:
and taking a module of the calculation result, and binding the module of the calculation result with the signature to obtain the digital signature.
After the final result of the exponential operation is obtained by calculation, in order to generate a digital signature, the calculation result of the exponential operation needs to be modulo to obtain a calculation result modulus value m. The modulo operation can simplify the calculation result into a smaller modulus value m, and is convenient for output and transmission. And taking the modulus value m and the original data to be signed as signature information, and binding and outputting. Binding the calculated modulus value m with the data to be signed to form a final digital signature.
By taking the modulus of the calculation result, the expression of the signature value can be simplified, and the correctness of the signature is ensured. And binding the modulus value with the original data to be used as signature output, and completing the digital signature generation process based on the exponential operation.
Referring to fig. 2, the present application further provides a system for generating a digital signature, the system including:
an exponential function acquisition module for acquiring G based on SM9 algorithm T Determining the grouping number and grouping length according to the index function corresponding to the group and the cache of the computer at present;
the exponential function block splitting module is used for splitting the exponential function according to the grouping number and the grouping length to obtain a plurality of exponential function blocks;
the exponential function block calculation module is used for splitting each exponential function block into bit strings, matching each bit string to correspond to a calculated value in a preset calculation table, wherein the bit weight of each bit string corresponds to a row index of the preset calculation table, and the value of each bit weight corresponds to a column index of the preset calculation table;
and the digital signature generation module is used for multiplying the calculated values to obtain a calculation result of the exponential function, and generating a digital signature according to the calculation result.
On the basis of the foregoing embodiment, as an optional embodiment, the digital signature generating system further includes: a preset calculation table generation module for calculatingWherein->Radix representing the ith of said exponential function block,/- >A bit weight value representing the ith exponential function block, h is the grouping number, and a is the grouping length;according to said->Calculate->Wherein->Representing the value of the last block of exponential function block,/->Representing the value of the bit weight of the first block exponential function block, wherein the value of the bit weight is 0 or 1,/or->Representing that the value of the bit weight of each exponential function block is stored in each column of a preset calculation table; according to said->Generating the preset calculation table->The preset calculation table->The bit weight of each of the exponential function blocks is stored in each row of the block.
On the basis of the above embodiment, as an optional embodiment, the exponential function obtaining module is further configured to determine a threshold range corresponding to the current cache, and determine a grouping number for grouping the exponential function according to the threshold range; the quotient of the bit length of the exponential function and the number of packets is determined as the packet length.
On the basis of the above embodiment, as an optional embodiment, the exponent function block splitting module is further configured to binary expand the exponent function to obtain an exponent sequence; grouping the exponential sequences according to the grouping number to obtain the grouping number of the exponential function blocks; and if the length of the last exponential function block is smaller than the grouping length, performing high-order 0 complementation on the last exponential function so that the length of the last exponential function is equal to the grouping length.
On the basis of the foregoing embodiment, as an optional embodiment, the exponential function block calculation module is further configured to convert each exponential function block into a preset bit string; determining a bit weight value of each bit in each preset bit string and the value of each bit weight value to obtain each bit string, wherein the value of each bit weight value is 0 or 1.
On the basis of the foregoing embodiment, as an optional embodiment, the digital signature generating module is further configured to take a modulus of the calculation result, bind the modulus of the calculation result with a signature, and obtain the digital signature.
On the basis of the above embodiment, as an optional embodiment, the exponential function obtaining module is further configured to match the G from a cache of the computer T An exponential function corresponding to the group; if the cache does not include the G T Calculating the G according to the exponential function corresponding to the group T An exponential function corresponding to the group.
It should be noted that: in the device provided in the above embodiment, when implementing the functions thereof, only the division of the above functional modules is used as an example, in practical application, the above functional allocation may be implemented by different functional modules according to needs, that is, the internal structure of the device is divided into different functional modules, so as to implement all or part of the functions described above. In addition, the embodiments of the apparatus and the method provided in the foregoing embodiments belong to the same concept, and specific implementation processes of the embodiments of the method are detailed in the method embodiments, which are not described herein again.
The embodiment of the present application further provides a computer storage medium, where the computer storage medium may store a plurality of instructions, where the instructions are adapted to be loaded by a processor and executed by the processor, where the specific execution process may refer to the specific description of the illustrated embodiment, and details are not repeated herein.
The application also discloses electronic equipment. Referring to fig. 3, fig. 3 is a schematic structural diagram of an electronic device according to the disclosure in an embodiment of the present application. The electronic device 300 may include: at least one processor 301, at least one network interface 304, a user interface 303, a memory 305, at least one communication bus 302.
Wherein the communication bus 302 is used to enable connected communication between these components.
The user interface 303 may include a Display screen (Display) interface and a Camera (Camera) interface, and the optional user interface 303 may further include a standard wired interface and a standard wireless interface.
The network interface 304 may optionally include a standard wired interface, a wireless interface (e.g., WI-FI interface), among others.
Wherein the processor 301 may include one or more processing cores. The processor 301 utilizes various interfaces and lines to connect various portions of the overall server, perform various functions of the server and process data by executing or executing instructions, programs, code sets, or instruction sets stored in the memory 305, and invoking data stored in the memory 305. Alternatively, the processor 301 may be implemented in hardware in at least one of digital signal processing (Digital Signal Processing, DSP), field programmable gate array (Field-Programmable Gate Array, FPGA), programmable logic array (Programmable Logic Array, PLA). The processor 301 may integrate one or a combination of several of a central processing unit (Central Processing Unit, CPU), an image processor (Graphics Processing Unit, GPU), and a modem etc. The CPU mainly processes an operating system, a user interface diagram, an application program and the like; the GPU is used for rendering and drawing the content required to be displayed by the display screen; the modem is used to handle wireless communications. It will be appreciated that the modem may not be integrated into the processor 301 and may be implemented by a single chip.
The Memory 305 may include a random access Memory (Random Access Memory, RAM) or a Read-Only Memory (Read-Only Memory). Optionally, the memory 305 includes a non-transitory computer readable medium (non-transitory computer-readable storage medium). Memory 305 may be used to store instructions, programs, code, sets of codes, or sets of instructions. The memory 305 may include a stored program area and a stored data area, wherein the stored program area may store instructions for implementing an operating system, instructions for at least one function (such as a touch function, a sound playing function, an image playing function, etc.), instructions for implementing the above-described respective method embodiments, etc.; the storage data area may store data or the like involved in the above respective method embodiments. Memory 305 may also optionally be at least one storage device located remotely from the aforementioned processor 301. Referring to fig. 3, an operating system, a network communication module, a user interface module, and an application program of a digital signature generation method may be included in the memory 305 as a computer storage medium.
In the electronic device 300 shown in fig. 3, the user interface 303 is mainly used for providing an input interface for a user, and acquiring data input by the user; and processor 301 may be used to invoke an application in memory 305 that stores a digital signature generation method that, when executed by one or more processors 301, causes electronic device 300 to perform the method as described in one or more of the embodiments above. It should be noted that, for simplicity of description, the foregoing method embodiments are all expressed as a series of action combinations, but it should be understood by those skilled in the art that the present application is not limited by the order of actions described, as some steps may be performed in other order or simultaneously in accordance with the present application. Further, those skilled in the art will also appreciate that the embodiments described in the specification are all preferred embodiments, and that the acts and modules referred to are not necessarily required in the present application.
In the foregoing embodiments, the descriptions of the embodiments are emphasized, and for parts of one embodiment that are not described in detail, reference may be made to related descriptions of other embodiments.
In the several embodiments provided herein, it should be understood that the disclosed apparatus may be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative, such as a division of units, merely a division of logic functions, and there may be additional divisions in actual implementation, such as multiple units or components may be combined or integrated into another system, or some features may be omitted, or not performed. Alternatively, the coupling or direct coupling or communication connection shown or discussed with each other may be through some service interface, device or unit indirect coupling or communication connection, electrical or otherwise.
The units described as separate units may or may not be physically separate, and units shown as units may or may not be physical units, may be located in one place, or may be distributed over a plurality of network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
In addition, each functional unit in each embodiment of the present application may be integrated in one processing unit, or each unit may exist alone physically, or two or more units may be integrated in one unit. The integrated units may be implemented in hardware or in software functional units.
The integrated units, if implemented in the form of software functional units and sold or used as stand-alone products, may be stored in a computer readable memory. Based on this understanding, the technical solution of the present application may be essentially or a part contributing to the prior art or all or part of the technical solution may be embodied in the form of a software product stored in a memory, comprising several instructions for causing a computer device (which may be a personal computer, a server or a network device, etc.) to perform all or part of the steps of the methods of the embodiments of the present application. And the aforementioned memory includes: various media capable of storing program codes, such as a U disk, a mobile hard disk, a magnetic disk or an optical disk.
The foregoing is merely exemplary embodiments of the present disclosure and is not intended to limit the scope of the present disclosure. That is, equivalent changes and modifications are contemplated by the teachings of this disclosure, which fall within the scope of the present disclosure. Other embodiments of the disclosure will be apparent to those skilled in the art from consideration of the specification and practice of the disclosure.
This application is intended to cover any adaptations, uses, or adaptations of the disclosure following, in general, the principles of the disclosure and including such departures from the present disclosure as come within known or customary practice within the art to which the disclosure pertains. It is intended that the specification and examples be considered as exemplary only, with a scope and spirit of the disclosure being indicated by the claims.
Claims (10)
1. A method for generating a digital signature, applied to a computer, comprising:
acquiring G based on SM9 algorithm T Determining the grouping number and grouping length according to the index function corresponding to the group and the cache of the computer at present;
splitting the exponential function according to the grouping number and the grouping length to obtain a plurality of exponential function blocks;
splitting each exponential function block into bit strings, matching each bit string to correspond to a calculated value in a preset calculation table, wherein the bit weight of each bit string corresponds to a row index of the preset calculation table, and the value of each bit weight corresponds to a column index of the preset calculation table;
and multiplying the calculated values to obtain a calculation result of the exponential function, and generating a digital signature according to the calculation result.
2. The method for generating a digital signature as recited in claim 1, wherein said determining the number of packets and the packet length from the cache of the computer at present comprises:
determining a threshold range corresponding to the current cache, and determining the grouping number for grouping the exponential function according to the threshold range;
the quotient of the bit length of the exponential function and the number of packets is determined as the packet length.
3. The method of generating a digital signature as set forth in claim 1, wherein the splitting the exponential function according to the number of packets and the packet length to obtain a plurality of exponential function blocks includes:
binary expansion is carried out on the index function to obtain an index sequence;
grouping the exponential sequences according to the grouping number to obtain the grouping number of the exponential function blocks;
and if the length of the last exponential function block is smaller than the grouping length, performing high-order 0 complementation on the last exponential function so that the length of the last exponential function is equal to the grouping length.
4. The method according to claim 1, wherein splitting each of the exponential function blocks into bit strings, each of the bit strings including a bit weight, and the value of the bit weight, comprises:
Converting each exponential function block into a preset bit string;
determining a bit weight value of each bit in each preset bit string and the value of each bit weight value to obtain each bit string, wherein the value of each bit weight value is 0 or 1.
5. The method according to claim 1, wherein after splitting the exponential function according to the number of packets and the packet length to obtain a plurality of exponential function blocks, further comprising:
calculation ofWherein->Radix representing the ith of said exponential function block,/->A bit weight value representing the ith exponential function block, h is the grouping number, and a is the grouping length;
according to the describedCalculate->Wherein->Representing the value of the last block of exponential function block,/->Representing the value of the bit weight of the first block exponential function block, wherein the value of the bit weight is 0 or 1,/or->Representing that the value of the bit weight of each exponential function block is stored in each column of a preset calculation table;
according to the describedGenerating the preset calculation table->The preset calculation table->The bit weight of each of the exponential function blocks is stored in each row of the block.
6. The method for generating a digital signature as recited in claim 1, wherein generating a digital signature from the calculation result includes:
And taking a module of the calculation result, and binding the module of the calculation result with a signature to obtain the digital signature.
7. The method according to claim 1, wherein the acquiring obtains G based on SM9 algorithm T An exponential function for a group, comprising:
matching the G from the cache of the computer T An exponential function corresponding to the group;
if the cache does not include the G T Calculating the G according to the exponential function corresponding to the group T An exponential function corresponding to the group.
8. A system for generating a digital signature, the system comprising:
an exponential function acquisition module for acquiring G based on SM9 algorithm T Determining the grouping number and grouping length according to the index function corresponding to the group and the cache of the current computer;
the exponential function block splitting module is used for splitting the exponential function according to the grouping number and the grouping length to obtain a plurality of exponential function blocks;
the exponential function block calculation module is used for splitting each exponential function block into bit strings, matching each bit string to correspond to a calculated value in a preset calculation table, wherein the bit weight of each bit string corresponds to a row index of the preset calculation table, and the value of each bit weight corresponds to a column index of the preset calculation table;
And the digital signature generation module is used for multiplying the calculated values to obtain a calculation result of the exponential function, and generating a digital signature according to the calculation result.
9. An electronic device comprising a processor, a memory, a user interface, and a network interface, the memory for storing instructions, the user interface and the network interface for communicating to other devices, the processor for executing the instructions stored in the memory to cause the electronic device to perform the method of generating a digital signature as claimed in any one of claims 1-7.
10. A computer storage medium storing instructions which, when executed, perform the method of generating a digital signature as claimed in any one of claims 1 to 7.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410056676.6A CN117579286B (en) | 2024-01-16 | 2024-01-16 | Digital signature generation method, system, storage medium and electronic equipment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410056676.6A CN117579286B (en) | 2024-01-16 | 2024-01-16 | Digital signature generation method, system, storage medium and electronic equipment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117579286A true CN117579286A (en) | 2024-02-20 |
CN117579286B CN117579286B (en) | 2024-03-19 |
Family
ID=89862706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410056676.6A Active CN117579286B (en) | 2024-01-16 | 2024-01-16 | Digital signature generation method, system, storage medium and electronic equipment |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117579286B (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109039656A (en) * | 2018-09-19 | 2018-12-18 | 深圳奥联信息安全技术有限公司 | SM9 Combination with Digital endorsement method, device and computer equipment |
JP2021193503A (en) * | 2020-06-08 | 2021-12-23 | 富士通株式会社 | Division program, division method, and information processing apparatus |
CN114117547A (en) * | 2021-11-15 | 2022-03-01 | 武汉大学 | SM9 digital signature accelerated generation method and digital signature accelerated verification method based on pre-calculation table |
-
2024
- 2024-01-16 CN CN202410056676.6A patent/CN117579286B/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109039656A (en) * | 2018-09-19 | 2018-12-18 | 深圳奥联信息安全技术有限公司 | SM9 Combination with Digital endorsement method, device and computer equipment |
JP2021193503A (en) * | 2020-06-08 | 2021-12-23 | 富士通株式会社 | Division program, division method, and information processing apparatus |
CN114117547A (en) * | 2021-11-15 | 2022-03-01 | 武汉大学 | SM9 digital signature accelerated generation method and digital signature accelerated verification method based on pre-calculation table |
Non-Patent Citations (1)
Title |
---|
殷明;: "基于标识的密码算法SM9研究综述", 信息技术与信息化, no. 05, 28 May 2020 (2020-05-28) * |
Also Published As
Publication number | Publication date |
---|---|
CN117579286B (en) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113628094B (en) | High-throughput SM2 digital signature computing system and method based on GPU | |
CN112152786A (en) | Fast XMSS signature verification and nonce sampling process without signature extension | |
CN111611621A (en) | Block chain based distributed data encryption storage method and electronic equipment | |
WO2018027706A1 (en) | Fft processor and algorithm | |
US12047514B2 (en) | Digital signature verification engine for reconfigurable circuit devices | |
KR20230141045A (en) | Crypto-processor Device and Data Processing Apparatus Employing the Same | |
Cao et al. | An efficient full hardware implementation of extended Merkle signature scheme | |
WO2023107776A1 (en) | Efficient hybridization of classical and post-quantum signatures | |
CN117118637B (en) | Data processing method, device, equipment and computer readable storage medium | |
CN117579286B (en) | Digital signature generation method, system, storage medium and electronic equipment | |
CN116436709B (en) | Encryption and decryption method, device, equipment and medium for data | |
Fournaris et al. | Running Longer To Slim Down: Post-Quantum Cryptography on Memory-Constrained Devices | |
CN111931204A (en) | Encryption and de-duplication storage method and terminal equipment for distributed system | |
CN114584284B (en) | Homomorphic encryption operation method and device and electronic equipment | |
Lin et al. | Efficient parallel RSA decryption algorithm for manycore GPUs with CUDA | |
CN111950031A (en) | Block chain-based distributed data management method, terminal device and storage medium | |
TWI736065B (en) | Method and system for outsourcing exponentiation in a private group | |
CN110100409B (en) | Method and apparatus for generating secure hash values | |
US9842086B2 (en) | Calculation device, calculation method, and program | |
CN115391269A (en) | Workload certification calculation chip, data processing method and electronic equipment | |
CN113505383A (en) | ECDSA algorithm execution system and method | |
Emmart | A study of high performance multiple precision arithmetic on graphics processing units | |
Wu et al. | An Efficient Hardware Implementation of Crystal-Dilithium on FPGA | |
CN118611886A (en) | Data processing method, device, equipment and computer readable storage medium | |
CN118233081B (en) | NEON instruction set-based national cipher SM2 bottom modular multiplication optimization method |
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 |