A data conversion circuit and data conversion implementation method thereof

By designing a data conversion circuit including a data storage module, a computing module and a conversion module to be processed, the hardware cost problem caused by the cumbersome selection of rotation factors in the prior art is solved, and the effect of reducing connection lines and reducing costs is achieved.

CN119051665BActive Publication Date: 2025-03-21BEIJING HONGSI ELECTRONICS TECH
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411545592.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-11-01
Publication Date
2025-03-21
Estimated Expiration
2044-11-01

AI Technical Summary

Technical Problem

In different calculation processes, existing data conversion circuits need to select rotation factors according to different methods, resulting in cumbersome connection lines and increasing hardware costs.

Method used

A data conversion circuit is designed, including a data storage module to be processed, a calculation module, a conversion module, etc., and through preset times and modular multiplication operations, the connection line between the rotation factor storage module and the calculation module is reduced.

Benefits of technology

Reduce some connection lines on the hardware, reduce hardware costs, and improve data conversion efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119051665B_ABST
    Figure CN119051665B_ABST
Patent Text Reader

Abstract

The invention discloses a data conversion circuit and a data conversion implementation method thereof. The circuit comprises: a to-be-processed data storage module is connected with a first storage module, the first storage module is connected with a calculation module, the second storage module is connected with the calculation module, the third storage module is connected with the calculation module, a rotation factor storage module is connected with the calculation module through a connection line, the calculation module is connected with the first storage module, the second storage module, the third storage module, a to-be-processed data result data storage module, and a rotation factor storage module, a conversion module is connected with the first storage module and the third storage module, and the to-be-processed data result data storage module is connected with the first storage module and the second storage module. By adopting the scheme, the connection lines between the calculation module and the rotation factor storage module are reduced in hardware, thereby reducing the hardware cost.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The invention relates to a data conversion circuit and a data conversion implementation method thereof, belonging to the technical field of computers. Background Art

[0002] In cryptography, digital signal processing or related fields, data conversion has important applications in cryptography, especially in some encryption algorithms based on polynomial rings. In the prior art, during the operation of data conversion, it is necessary to select the operation parameters required by the operator, that is, the rotation factors. At present, different operations in the same operation circuit will select the rotation factors according to different methods. In the implementation of the operation circuit, it is also necessary to select the rotation factors for different operation processes and set connection lines respectively, which makes the connection on the operation circuit more complicated, thereby increasing the hardware cost. Summary of the invention

[0003] In order to solve the above technical problems, the present invention provides a data conversion circuit and a data conversion implementation method thereof.

[0004] To this end, according to a first aspect of the present invention, a data conversion circuit is provided, characterized in that the circuit comprises: a data storage module for to-be-processed data, a first storage module, a second storage module, a third storage module, a rotation factor storage module, a calculation module, a conversion module and a data storage module for result of to-be-processed data;

[0005] The to-be-processed data storage module is connected to the first storage module and is used to store the to-be-processed data;

[0006] The first storage module is connected to the calculation module and is used to store the data to be processed and also to store the process data obtained by the calculation module;

[0007] The second storage module is connected to the calculation module and is used to store process data obtained by calculation by the calculation module;

[0008] The third storage module is connected to the calculation module and is used to store the modular multiplication data obtained by the calculation module;

[0009] The rotation factor storage module is connected to the calculation module through a connecting line and is used to store the rotation factors;

[0010] The calculation module is connected to the first storage module, the second storage module, the third storage module, the data result data storage module to be processed, and the rotation factor storage module, and is used to perform a first operation on the data in the first storage module or the second storage module and the rotation factor in the rotation factor storage module, perform a second operation on the data in the first storage module or the second storage module and the rotation factor in the rotation factor storage module, and perform a modular multiplication operation on the data in the data result data storage module to be processed, and store the modular multiplication operation result data in the third storage module;

[0011] The conversion module is connected to the first storage module and the third storage module, and is used to read the data stored in the third storage module, convert the data to obtain conversion result data, and store the conversion result data in the first storage module;

[0012] The to-be-processed data result data storage module is connected to the first storage module and the second storage module, and is used to store the to-be-processed data result data stored in the first storage module and the second storage module.

[0013] According to a second aspect of the present invention, a method for implementing data conversion is provided, the method comprising:

[0014] Step S1: acquiring first data to be processed in the data storage module to be processed, storing the first data to be processed in the first storage module, performing a first operation on the data in the first storage module for a preset number of times by a calculation module, and storing the obtained operation result as the first result data in the data storage module to be processed result data;

[0015] Step S2: acquiring the second data to be processed in the data storage module to be processed, storing the second data to be processed in the first storage module, performing a first operation on the data in the first storage module for a preset number of times by the calculation module, and storing the obtained operation result as the second result data in the data storage module to be processed result data;

[0016] Step S3: performing modular multiplication operation on the first result data and the second result data in the to-be-processed data result data storage module through a calculation module to obtain modular multiplication operation result data and store the result data in a third storage module;

[0017] Step S4: acquiring the modular multiplication operation result data stored in the third storage module through the conversion module, converting the modular multiplication operation result data to obtain conversion result data, and storing the conversion result data in the first storage module;

[0018] Step S5: The calculation module performs a preset number of second operations on the conversion result data in the first storage module to obtain second operation result data.

[0019] According to a third aspect of the present invention, a computer device, a memory, a processor and a computer program stored in the memory are provided, and the processor executes the computer program to implement the method for implementing data conversion described in the second aspect above.

[0020] The beneficial effects brought about by the technical solution provided by the present invention include at least:

[0021] The present invention provides a data conversion circuit and a data conversion implementation method thereof. The data conversion implementation method uses a computing module to perform a first operation for a preset number of times on first data to be processed and a second data to be processed respectively, and performs a modular multiplication operation on the two result data obtained by the operation to obtain modular multiplication operation result data, converts the modular multiplication operation result data through a conversion module to obtain conversion result data and stores it in a first storage module, and uses the computing module to perform a second operation for a preset number of times on the conversion result data in the first storage module to obtain second operation result data. The use of this solution reduces the connection lines between some computing modules and the rotation factor storage module in hardware, thereby reducing the hardware cost. BRIEF DESCRIPTION OF THE DRAWINGS

[0022] For a clearer explanation, the embodiments of the present invention or the prior art are briefly introduced below in conjunction with the accompanying drawings. Obviously, the accompanying drawings described below are only some embodiments of the present invention. For those skilled in the art, other accompanying drawings can be obtained based on these accompanying drawings without creative work.

[0023] Figure 1 This is a schematic diagram of a data conversion circuit structure provided by Embodiment 1 of the present invention;

[0024] Figure 2 is a structural schematic diagram of a first operator module in a data conversion circuit provided in Embodiment 1 of the present invention;

[0025] Figure 3 is a structural schematic diagram of a second operator module in a data conversion circuit provided in Embodiment 1 of the present invention;

[0026] Figure 4 This is a flow chart of a method for implementing data conversion provided by Embodiment 2 of the present invention;

[0027] Figure 5 It is a flow chart of performing a preset number of first operations on data in a first storage module in a method for implementing data conversion provided in Embodiment 2 of the present invention;

[0028] Figure 6 It is a flow chart of performing a second operation for a preset number of times on data in a first storage module in a method for implementing data conversion provided in a second embodiment of the present invention. DETAILED DESCRIPTION

[0029] To make the objectives, technical solutions and advantages of the present invention more clear, embodiments of the present invention will be described in further detail below with reference to the accompanying drawings.

[0030] When the following description refers to the drawings, unless otherwise indicated, the same numbers in different drawings represent the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with the present invention. Instead, they are only examples of devices and methods consistent with some aspects of the present invention as detailed in the attached claims.

[0031] In order to make the objectives, technical solutions and advantages of the present invention more clear, the embodiments of the present invention are further described in detail below with reference to the accompanying drawings.

[0032] Embodiment 1

[0033] An embodiment of the present invention provides a data conversion circuit, such as Figure 1 As shown, the data conversion circuit includes a to-be-processed data storage module 00, a first storage module 10, a second storage module 20, a third storage module 30, a rotation factor storage module 40, a calculation module 50, a conversion module 60 and a to-be-processed data result data storage module 70;

[0034] The data storage module 00 to be processed is connected to the first storage module 10 and is used to store the data to be processed;

[0035] Specifically, the data to be processed includes first data to be processed and second data to be processed, and the amount of data to be processed may be N. Here, N is a positive integer. In practical applications, the value of N may be very large, for example, the order of magnitude of N may be ten thousand, one hundred thousand, one million, ten million, etc. For example, N is 256, and the data to be processed is data of 256 elements.

[0036] The first storage module 10 is connected to the calculation module 50 and is used to store the data to be processed as original data;

[0037] The second storage module 20 is connected to the calculation module 50 and is used to store process data obtained by calculation by the calculation module 50;

[0038] The process data specifically refers to data generated during the first operation of the calculation module 50 , or data generated during the second operation of the calculation module 50 .

[0039] The third storage module 30 is connected to the calculation module 50 and is used to store modular multiplication result data obtained by the calculation module 50;

[0040] The modular multiplication result data is specifically data obtained by the calculation module 50 through the modular multiplication operation by the modular multiplier.

[0041] The twiddle factor storage module 40 is connected to the calculation module 50 via a connection line, and is used to store the generated twiddle factors.

[0042] The calculation module 50 is connected to the first storage module 10, the second storage module 20, the third storage module 30, the to-be-processed data result data storage module 70, and the rotation factor storage module 40, and is used to perform a first operation on the data in the first storage module 10 or the second storage module 20 and the rotation factors in the rotation factor storage module 40, and store the obtained result in the to-be-processed data result data storage module, perform a second operation on the data in the first storage module 10 or the second storage module 20 and the rotation factors in the rotation factor storage module 40, and store the obtained result in the third storage module, and is also used to perform modular multiplication operation on the data in the to-be-processed data result data storage module 70, and store the modular multiplication operation result data in the third storage module 30;

[0043] The computing module 50 has four data connection ports, and all of the four data connection ports are readable and writable;

[0044] Specifically, the four data connection ports include: a first connection port, a second connection port, a third connection port, and a fourth connection port; for example, the first connection port is A, the second connection port is B, the third connection port is C, and the fourth connection port is D.

[0045] The computing module 50 is used to read data from the first storage module 10 and the second storage module 20 by a block method, and is also used to write data into the first storage module 10 and the second storage module 20 by a block method;

[0046] Specifically, the block division method may be a sequential block division method or an even-odd block division method;

[0047] In an practicable manner, during the first operation, the computing module 50 reads data from the first storage module 10 or the second storage module 20 through the first connection port and the second connection port using a block method, and writes the operation result data into the second storage module 20 or the first storage module 10 correspondingly through the third connection port and the fourth connection port using a block method;

[0048] For example, in the first operation, when the computing module 50 reads data from the first storage module 10 or the second storage module 20, the 256 data in the first storage module 10 or the second storage module 20 can be sequentially arranged into 8 blocks according to the sequential block method, such as , each group of 32 elements of data is connected to the first 4 blocks in the sequential arrangement group through the A connection port and reads the data, and is connected to the last 4 blocks in the sequential arrangement group through the B connection port and reads the data. When the operation is completed and the data is written, the calculation module 50 can be divided into 4 blocks according to the odd-even block method, with 128 positions in the even position and the odd position, and each is divided into 32 positions. The even position and the odd position are connected to the 4 blocks belonging to the even position through the C connection port and write the data, and the odd position and the 4 blocks belonging to the odd position are connected to the D connection port and write the data;

[0049] In an practicable manner, during the second operation, the computing module 50 reads data from the first storage module 10 or the second storage module 20 through the third connection port and the fourth connection port by using a block method, and writes the operation result data into the second storage module 20 or the first storage module 10 correspondingly through the first connection port and the second connection port by using a block method;

[0050] For example, during the second operation, when the computing module 50 reads data from the first storage module 10 or the second storage module 20, the 256 data in the first storage module 10 or the second storage module 20 can be arranged according to the even-odd block method according to 128 data in the even position and the odd position, and divided into 32 data blocks, each divided into 4 blocks, a total of 8 blocks, connected to the 4 blocks belonging to the even position through the C connection port and read the data, and connected to the 4 blocks belonging to the odd position through the D connection port and read the data. When the operation is completed and the data is written, the computing module 50 can arrange the data in sequence according to the sequential block method and divide it into 8 blocks, such as Each group has 32 storage locations for elements, which are connected to the first 4 blocks in the sequential arrangement group through the A connection port and written with data, and are connected to the last 4 blocks in the sequential arrangement group through the B connection port and written with data.

[0051] In an practicable manner, the calculation module 50 is connected to the rotation factor storage module 40 for selecting operation parameters, where the operation parameters are the rotation factors;

[0052] The calculation module 50 includes a first operator module 501, a second operator module 502 and a modular multiplier module 503; In this embodiment, there may be multiple first operator modules 501 and second operator modules 502, and the modular multiplier module 503 is specifically a modular multiplier;

[0053] In an practicable manner, the first operator module 501 is connected to the first storage module 10, the second storage module 20, and the rotation factor storage module 40, and is used to perform a first operation on the data in the first storage module 10 or the second storage module 20 and the rotation factor in the rotation factor storage module 40;

[0054] The structure of the first operator module 501 in the circuit of this embodiment is as follows Figure 2 As shown, the first operator module 501 includes a first modular multiplier 5011, a first storage unit 5012, a first modular adder 5013 and a first modular subtractor 5014;

[0055] The first modular multiplier 5011 is connected to the first storage module 10, the second storage module 20, the rotation factor storage module 40 and the first storage unit 5012, and is used to perform a modular multiplication operation on the rotation factor selected from the rotation factor storage module 40 and the data read from the first storage module 10, and store the result data obtained by the modular multiplication operation in the first storage unit 5012, and is also used to perform a modular multiplication operation on the rotation factor selected from the rotation factor storage module 40 and the data read from the second storage module 20, and store the result data obtained by the modular multiplication operation in the first storage unit 5012;

[0056] The first storage unit 5012 is connected to the first modular multiplier 5011, the first modular adder 5013 and the first modular subtractor 5014, and is used to store the result data obtained by the first modular multiplier 5011 performing the modular multiplication operation;

[0057] The first modular adder 5013 is connected to the first storage module 10, the second storage module 20, and the first storage unit 5012, and is used to perform modular addition operation on the data read from the first storage unit 5012 and the data read from the first storage module 10, and store the result data obtained by the modular addition operation in the second storage module 20, and is also used to perform modular addition operation on the data read from the first storage unit 5012 and the data read from the second storage module 20, and store the result data obtained by the modular addition operation in the first storage module 10;

[0058] The first modular subtractor 5014 is connected to the first storage module 10, the second storage module 20, and the first storage unit 5012, and is used to perform a modular subtraction operation on the data read from the first storage unit 5012 and the data read from the first storage module 10, and store the result data obtained by the modular subtraction operation in the second storage module 20, and is also used to perform a modular subtraction operation on the data read from the first storage unit 5012 and the data read from the second storage module 20, and store the result data obtained by the modular subtraction operation in the first storage module 10;

[0059] Further, the first operator module 501 performs a modular multiplication operation on the selected rotation factor and the data read from the first storage module 10 through the second connection port through the first modular multiplier 5011, and stores the result of the modular multiplication operation in the first storage unit 5012, the first operator module 501 performs a modular addition operation on the data stored in the first storage unit 5012 and the data read from the first storage module 10 through the first connection port through the first modular adder 5013 to obtain the result data, and stores it in the second storage module 20 through the third connection port, the first operator module 501 performs a modular subtraction operation on the data stored in the first storage unit 5012 and the data read from the first storage module 10 through the first connection port through the first modular subtractor 5014 to obtain the result data, and stores it in the second storage module 20 through the fourth connection port;

[0060] Furthermore, the first operator module 501 performs a modular multiplication operation on the selected rotation factor and the data read from the second storage module 20 through the second connection port through the first modular multiplier 5011, and stores the result of the modular multiplication operation in the first storage unit 5012. The first operator module 501 performs a modular addition operation on the data stored in the first storage unit 5012 and the data read from the second storage module 20 through the first connection port through the first modular adder 5013 to obtain the result data, which is stored in the first storage module 10 through the third connection port. The first operator module 501 performs a modular subtraction operation on the data stored in the first storage unit 5012 and the data read from the second storage module 20 through the first connection port through the first modular subtractor 5014 to obtain the result data, which is stored in the first storage module 10 through the fourth connection port.

[0061] In an practicable manner, the second operator module 502 is connected to the first storage module 10, the second storage module 20, and the rotation factor storage module 40, and is used to perform a second operation on the data in the first storage module 10 or the second storage module 20 and the rotation factor in the rotation factor storage module 40;

[0062] The structure of the second operator module 502 in the circuit of this embodiment is as follows: Figure 3 As shown, the second operator module 502 includes a second modular multiplier 5021, a second storage unit 5022, a second modular adder 5023 and a second modular subtractor 5024;

[0063] The second modular adder 5023 is connected to the first storage module 10 and the second storage module 20, and is used to perform modular addition operation on the data read from the first storage module 10, and store the obtained result in the second storage module 20, and is also used to perform modular addition operation on the data read from the second storage module 20, and store the obtained result in the first storage module 10;

[0064] The second modular subtractor 5024 is connected to the first storage module 10, the second storage module 20 and the second storage unit 5022, and is used to perform a modular subtraction operation on the data read from the first storage module 10, and store the obtained result in the second storage unit 5022, and is also used to perform a modular subtraction operation on the data read from the second storage module 20, and store the obtained result in the second storage unit;

[0065] The second storage unit 5022 is connected to the second modular subtractor 5024 and the second modular multiplier 5021, and is used to store the result obtained by the modular subtraction operation performed by the second modular subtractor 5024;

[0066] The second modular multiplier 5021 is connected to the second storage unit 5022, the first storage module 10, the second storage module 20 and the rotation factor storage module 40, and is used to perform modular multiplication operation on the rotation factors selected from the rotation factor storage module 40 and the data in the second storage unit 5022, and store the modular multiplication operation result data obtained by the modular multiplication in the first storage module 10, and is also used to perform modular multiplication operation on the rotation factors selected from the rotation factor storage module and the data in the second storage unit, and store the modular multiplication operation result data obtained by the modular multiplication in the second storage module 20;

[0067] Further, the second operator module 502 performs a modular addition operation on the data read from the first storage module 10 through the third connection port and the data read from the first storage module 10 through the fourth connection port through the second modular adder 5023, and stores the obtained result in the second storage module 20 through the first connection port; the second operator module 502 performs a modular subtraction operation on the data read from the first storage module 10 through the third connection port and the data read from the first storage module 10 through the fourth connection port through the second modular subtractor 5024, and stores the obtained result in the second storage unit 5022; the second modular multiplier 5021 performs a modular multiplication operation on the selected rotation factor and the data in the second storage unit 5022 to obtain the final result data, and stores the final result data in the second storage module 20 through the second connection port;

[0068] Furthermore, the second operator module 502 performs a modular addition operation on the data read from the second storage module 20 through the third connection port and the data read from the second storage module 20 through the fourth connection port through the second modular adder 5023, and stores the obtained result in the first storage module 10 through the first connection port. The second operator module 502 performs a modular subtraction operation on the data read from the second storage module 20 through the third connection port and the data read from the second storage module 20 through the fourth connection port through the second modular subtractor 5024, and stores the obtained result in the second storage unit 5022. The second modular multiplier 5021 performs a modular multiplication operation on the selected rotation factor and the data in the second storage unit 5022 to obtain the final result data, and the final result data is stored in the first storage module 10 through the second connection port.

[0069] In an implementable manner, the modular multiplication submodule 503 is connected to the data storage module 70 for the data result to be processed and the third storage module 30, and is used to read the data stored in the data storage module 70 for the data result to be processed, and perform modular multiplication on the read data to obtain modular multiplication result data, and store the modular multiplication result data in the third storage module 30.

[0070] The conversion module 60 is connected to the first storage module 10 and the third storage module 30, and is used to read the modular multiplication result data stored in the third storage module 30, convert the read modular multiplication result data to obtain conversion result data, and store the conversion result data in the first storage module 10.

[0071] The data result data storage module 70 is connected to the first storage module 10 and the second storage module 20 and is used to store the data result data to be processed.

[0072] Embodiment 2

[0073] A second embodiment of the present invention provides a method for implementing data conversion, and the method flow can be executed by an electronic device, or implemented by one or more chips in the electronic device.

[0074] If defined Polynomials over Rings ,Data conversion methods are usually used when calculating polynomial multiplication on a ring; specifically, 256 different interpolation points are obtained ,in satisfy , which will be expressed by the coefficients Convert to interpolation point expression The process of converting the expression of interpolation points into the expression of coefficients is called the second operation.

[0075] like Figure 4 As shown, the data conversion implementation method of this embodiment includes:

[0076] Step S1: acquiring first data to be processed in the data storage module to be processed, storing the first data to be processed in the first storage module, performing a first operation on the data in the first storage module for a preset number of times by a calculation module, and storing the obtained operation result as the first result data in the data storage module to be processed result data;

[0077] Step S2: acquiring the second data to be processed in the data storage module to be processed, storing the second data to be processed in the first storage module, performing a first operation on the data in the first storage module for a preset number of times by the calculation module, and storing the obtained operation result as the second result data in the result data storage module for the data to be processed;

[0078] In this embodiment, the first data to be processed or the second data to be processed is specifically data expressed by coefficients of one item in the polynomial;

[0079] One possible way is to Figure 5 As shown, performing a first operation of a preset number of times on the data in the first storage module by the calculation module specifically includes:

[0080] Step 101: Calculate the data in the first storage module through a calculation module to obtain process data, and store the process data in a second storage module;

[0081] Step 102: Update the number of operations, and determine whether the current number of operations reaches the preset number. If yes, use the process data as the operation result of the first operation. If no, execute step 103;

[0082] Step 103: Calculate the data in the second storage module by the calculation module to obtain process data, and store the process data in the first storage module;

[0083] Step 104: Update the number of operations and determine whether the current number of operations reaches the preset number. If yes, use the process data as the operation result of the first operation. If no, execute step 101.

[0084] Specifically, calculating the data in the first storage module by the calculation module to obtain process data, and storing the process data in the second storage module specifically includes:

[0085] Step 201: The computing module obtains data corresponding to a first preset position and data corresponding to a second preset position in the first storage module through the first connection port and the second connection port respectively;

[0086] To further explain the present solution, a specific example is given below. For example, the first preset position is i, the second preset position is i+128, and i is an integer. 256 data are stored in the first storage module, and the calculation module includes 32 first operation submodules. One first operation submodule needs to obtain 2 of the 256 data each time it calculates. For example, obtaining 2 of the 256 data is to obtain the data corresponding to the first preset position and the data corresponding to the second preset position in the first storage module through the first connection port (A connection port) and the second connection port (B connection port) respectively. The data corresponding to the first preset position obtained by the A connection port is used as a data, and the data corresponding to the second preset position obtained by the B connection port is used as b data. The calculation module takes 32 groups of data each time, and the 256 data need to be taken 4 times. The vth group of data taken the nth time is ,in, As a data, As b-data;

[0087] Step 202: The calculation module obtains the rotation factor through the rotation factor storage module;

[0088] In an practicable manner, the rotation factors stored in the rotation factor storage module are pre-calculated and saved; specifically, the rotation factors are calculated according to a preset formula;

[0089] Specifically, the preset formulas include: ,in , , , is the default value, Set the number of operations to a preset value. is the preset position, ; If the function is , then the function ,in, is an integer, To express The number of bytes, for The expression of the function, for The expression of the function, for Function use The value represented;

[0090] For example, ,but ;

[0091] In this embodiment, each time data is acquired, each first operator module selects a rotation factor from the rotation factor storage module through a connection line;

[0092] For example, the first storage module stores 256 data, and the calculation module includes 32 first operation submodules. Taking one of the first operation submodules as an example, one first operation submodule needs to obtain 2 data out of the 256 data each time it calculates. For example, the 256 data are divided into groups A and B, each group stores 128 data, and one data in each group A and B is obtained through the A and B connection ports during each calculation. Since 32 first operation submodules obtain 256 data, one first operation submodule needs to obtain 2 data out of the 256 data each time it calculates. The operator module needs to obtain data 4 times. A first operator module needs to select a rotation factor each time it obtains data. A first operator module needs to select 32 rotation factors in 8 rounds of first operations. The selected 32 rotation factors are: 128, 128, 128, 128, 64, 64, 64, 64, 32, 32, 32, 32, 16, 16, 16, 16, 8, 8, 8, 4, 4, 4, 2, 6, 2, 6, 1, 5, 3, 7.

[0093] Step 203: The calculation module performs a modular multiplication operation on the acquired data corresponding to the second preset position and the rotation factor through the first operation submodule, performs a modular addition operation on the result data obtained by the modular multiplication operation and the data corresponding to the first preset position, stores the modular addition operation result data in the third preset position in the second storage module through the third connection port, performs a modular subtraction operation on the result data obtained by the modular multiplication operation and the data corresponding to the first preset position, and stores the modular subtraction operation result data in the fourth preset position in the second storage module through the fourth connection port;

[0094] Specifically, the third preset position is 2i, the fourth preset position is 2i+1, and i is an integer;

[0095] In an practicable manner, the calculation module calculates the data in the second storage module to obtain process data, and the process data is stored in the first storage module, specifically comprising:

[0096] Step 301: The computing module obtains data corresponding to a first preset position and data corresponding to a second preset position in the second storage module through the first connection port and the second connection port respectively;

[0097] Step 302: The calculation module obtains the rotation factor through the rotation factor storage module;

[0098] Step 303: The calculation module performs a modular multiplication operation on the data corresponding to the acquired second preset position and the rotation factor through the first operation submodule, performs a modular addition operation on the result data obtained by the modular multiplication operation and the data corresponding to the first preset position, stores the result data of the modular addition operation to the third preset position in the first storage module through the third connection port, performs a modular subtraction operation on the result data obtained by the modular multiplication operation and the data corresponding to the first preset position, and stores the result data of the modular subtraction operation to the fourth preset position in the first storage module through the fourth connection port.

[0099] Step S3: performing modular multiplication operation on the first result data and the second result data in the to-be-processed data result data storage module by the calculation module to obtain modular multiplication operation result data and store the result data in the third storage module;

[0100] In an practicable manner, step S3 is specifically as follows: the calculation module obtains the first result data and the second result data in the to-be-processed data result data storage module through the modular multiplication module, performs modular multiplication operation on the obtained first result data and the second result data to obtain modular multiplication operation result data, and stores the modular multiplication operation result data in the third storage module;

[0101] Specifically, the first result data and the second result data are both 256 data. The modular multiplication module will simultaneously extract data of a preset length from the first result data and the second result data, for example, 32 data each time, and complete the extraction in 4 times. After extracting 32 data each time, modular multiplication calculation is performed on the data at the corresponding position to obtain the modular multiplication result of 32 data, and the modular multiplication results are stored in the corresponding positions of the data in the third storage module in turn, and finally the modular multiplication operation result data of 256 data is obtained.

[0102] Step S4: acquiring the modular multiplication operation result data stored in the third storage module through the conversion module, converting the modular multiplication operation result data to obtain conversion result data, and storing the conversion result data in the first storage module;

[0103] In an practicable manner, converting the modular multiplication operation result data to obtain conversion result data specifically includes: a conversion module converting the modular multiplication operation result data according to a preset formula to obtain conversion result data;

[0104] Specifically, the preset formula is: , in is the result data of modular multiplication operation, To convert the result data, is the corresponding position of the data;

[0105] For example, the result of modular multiplication is ,in , for the array After conversion, the array is obtained .

[0106] Step S5: The calculation module performs a preset number of second operations on the conversion result data in the first storage module to obtain second operation result data.

[0107] One possible way is to Figure 6 As shown, the second operation result data is obtained by performing a preset number of second operations on the conversion result data in the first storage module by the calculation module, specifically including:

[0108] Step 401: Calculate the data in the first storage module through the calculation module to obtain process data, and store the process data in the second storage module;

[0109] Step 402: Update the number of operations, and determine whether the current number of operations reaches the preset number. If yes, use the process data in the second storage module as the second operation result data. If no, execute step 403.

[0110] Step 403: Calculate the data in the second storage module through the calculation module to obtain process data, and store the process data in the first storage module;

[0111] Step 404: Update the number of operations, determine whether the current number of operations reaches the preset number, if yes, use the process data in the first storage module as the second operation result data, if no, return to step 401;

[0112] Specifically, calculating the data in the first storage module by the calculation module to obtain process data, and storing the process data in the second storage module specifically includes:

[0113] Step 501: The computing module obtains data corresponding to the third preset position and data corresponding to the fourth preset position in the first storage module through the third connection port and the fourth connection port respectively;

[0114] To further explain the present solution, a specific example is given below. For example, the third preset position is 2i, the fourth preset position is 2i+1, and i is an integer. 256 data are stored in the first storage module, and the calculation module includes 32 second operation submodules. One second operation submodule needs to obtain 2 of the 256 data for each calculation. For example, obtaining 2 of the 256 data specifically includes obtaining the data corresponding to the third preset position and the data corresponding to the fourth preset position in the first storage module through the C connection port and the D connection port, and using the data corresponding to the third preset position obtained by the C connection port as data c, and using the data corresponding to the fourth preset position obtained by the D connection port as data d. The calculation module takes 32 groups of data each time, and the 256 data need to be taken 4 times. The vth group of data taken the nth time is ,in, As c data, as d data;

[0115] Step 502: The calculation module obtains the rotation factor through the rotation factor storage module;

[0116] In an practicable manner, the rotation factors stored in the rotation factor storage module are pre-calculated and stored; the rotation factors are specifically calculated according to a preset formula;

[0117] Specifically, the preset formulas include: ,in , , , is the default value, Set the number of operations to be performed. is the preset position, ; If the function is , then the function ,in, is an integer, To express The number of bytes, for The expression of the function, for The expression of the function, for Function use The value represented;

[0118] For example, ,but ;

[0119] In this embodiment, each time data is fetched, each second operator module selects a twiddle factor from the twiddle factor storage module through a connection line;

[0120] For example, 256 data are stored in the first storage module, and the calculation module includes 32 second operation submodules. Taking one of the second operation submodules as an example, one second operation submodule needs to obtain 2 of the 256 data for each calculation. For example, the 256 data are divided into groups C and D, each group stores 128 data, and one data in each group C and D is obtained through the C and D connection ports during each calculation. Since 32 second operation submodules obtain 256 data, one second operation submodule needs to obtain data 4 times, and one second operation submodule needs to select a rotation factor each time it obtains data. One second operation submodule needs to select a total of 32 rotation factors in 8 rounds of calculations.

[0121] In the prior art, when the modular multiplication operation result data is not converted by the conversion module, that is, when the second operation is directly performed on the modular multiplication operation result data, the selected 32 rotation factors are specifically: 255, 251, 253, 249, 254, 250, 254, 250, 252, 252, 252, 252, 248, 248, 248, 248, 240, 240, 240, 224, 224, 224, 192, 192, 192, 192, 128, 128, 128;

[0122] After adopting this scheme, that is, after the modular multiplication operation result data is converted by the conversion module to obtain the conversion result data, the 32 rotation factors selected when performing the second operation are specifically: 1, 5, 3, 7, 2, 6, 2, 6, 4, 4, 4, 4, 8, 8, 8, 16, 16, 16, 16, 32, 32, 32, 32, 64, 64, 64, 64, 128, 128, 128, 128;

[0123] It can be seen that in the prior art, taking data of 256 elements as an example, the first operation is performed by the calculation module, and the number of operations required is 8 rounds to obtain the first operation result. The calculation module operates on the data through the first operation submodule, including multiple first operation submodules, for example, including 32 first operation submodules. Taking one first operation submodule as an example, one first operation submodule needs to obtain 2 data out of 256 data each time it calculates. For example, the 256 data are divided into groups A and B, each group stores 128 data, and one data in each group A and B is obtained each time the calculation is performed. The 256 data are calculated by 32 first operation submodules. When 6 data are subjected to the first operation, 1 first operation submodule needs to obtain 4 data, and a rotation factor needs to be selected each time the data is obtained. Therefore, 1 first operation submodule needs to select a total of 32 rotation factors in 8 rounds of the first operation, and at least 12 connection lines for selecting the rotation factors are required to remove the repeated rotation factors in the 8 rounds of the first operation; accordingly, taking the data of 256 elements as an example, the second operation is performed by the second operation submodule, and the number of operations is 8 rounds to obtain the second operation result. Taking a calculation submodule including 32 second operation submodules as an example, a total of 32 rotation factors need to be selected in 8 rounds of the second operation, and at least 11 connection lines for selecting the rotation factors are required to remove the repeated rotation factors in the 8 rounds of the second operation. When the polynomial performs the first operation and the second operation, a total of at least 23 rotation factor connection lines are required to connect to the rotation factor storage module;

[0124] By adopting the scheme provided in this embodiment, if the modular multiplication operation result data is converted by the conversion module to obtain conversion result data, and then the second operation is performed on the conversion result data, one of the calculation submodules in the calculation module selects the same rotation factor when performing each round of the first operation and the second operation. Therefore, one calculation submodule only needs 12 connection lines of the rotation factor to be connected to the rotation factor storage module, and 32 calculation submodules need 384 connection lines of the rotation factor. Compared with the prior art, this reduces the connection lines of the rotation factor and greatly reduces the hardware cost.

[0125] Step 503: the calculation module performs a modular addition operation on the acquired data corresponding to the third preset position and the acquired data corresponding to the fourth preset position through the second operation submodule, and stores the data obtained by the modular addition operation in the first preset position in the second storage module through the first connection port; the second operation submodule performs a modular subtraction operation on the acquired data corresponding to the third preset position and the acquired data corresponding to the fourth preset position, performs a modular multiplication operation on the result data obtained by the modular subtraction operation and the rotation factor, and stores the result data of the modular multiplication operation in the second preset position in the second storage module through the second connection port;

[0126] Among them, the first preset position is i, the second preset position is i+128, and i is an integer.

[0127] In an practicable manner, the calculation module calculates the data in the second storage module to obtain process data, and the process data is stored in the first storage module, specifically comprising:

[0128] Step 601: The computing module obtains data corresponding to the third preset position and data corresponding to the fourth preset position in the second storage module through the third connection port and the fourth connection port respectively;

[0129] Step 602: The calculation module obtains the rotation factor through the rotation factor storage module;

[0130] Step 603: The calculation module performs a modular addition operation on the data corresponding to the third preset position and the data corresponding to the fourth preset position obtained through the second operation submodule, and stores the data obtained by the modular addition operation to the first preset position in the first storage module through the first connection port. The second operation submodule performs a modular subtraction operation on the data corresponding to the third preset position and the data corresponding to the fourth preset position obtained, performs a modular multiplication operation on the result data obtained by the modular subtraction operation and the rotation factor, and stores the result data of the modular multiplication operation to the second preset position in the first storage module through the second connection port.

[0131] The present invention provides a method for implementing data conversion, wherein a calculation module performs a first operation for a preset number of times on first data to be processed and a second data to be processed respectively, and performs a modular multiplication operation on the two result data obtained by the operation to obtain modular multiplication result data, converts the modular multiplication result data through a conversion module to obtain conversion result data and stores it in a first storage module, and performs a second operation for a preset number of times on the conversion result data in the first storage module through a calculation module to obtain second operation result data (final operation result data). The use of this solution reduces the connection lines between the calculation module and the rotation factor storage module in hardware, thereby reducing the hardware cost. In quantum computing applications, post-quantum cryptographic algorithms that resist quantum attacks are used in operations such as generating key pairs, signing, and verifying signatures. These post-quantum cryptographic algorithms usually involve polynomial multiplication operations and data conversion. By using the polynomial data conversion method provided in this embodiment, the work efficiency of generating key pairs, signing, and verifying signatures can be greatly improved.

[0132] The serial numbers of the above embodiments of the present invention are only for description and do not represent the advantages or disadvantages of the embodiments.

[0133] An embodiment of the present invention further provides a computer device, including a memory, a processor, and a computer program stored in the memory, wherein the processor executes the computer program to implement the steps of the method for implementing data conversion in the aforementioned embodiment 2.

[0134] In the present invention, the terms "first", "second", etc. are only used for descriptive purposes and cannot be understood as indicating or implying relative importance or order; the term "plurality" refers to two or more, unless otherwise clearly defined. "And / or" describes the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B can represent: the existence of A alone, the existence of A and B at the same time, and the existence of B alone. The character " / " generally indicates that the objects associated with each other are in an "or" relationship. Terms such as "install", "connect", "connect", and "fix" should be understood in a broad sense. For example, "connection" can be a fixed connection, a detachable connection, or an integral connection; "connection" can be a direct connection or an indirect connection through an intermediate medium. For those of ordinary skill in the art, the specific meanings of the above terms in the present invention can be understood according to specific circumstances.

[0135] In the description of the present invention, it is necessary to understand that the directions or positional relationships indicated by the terms "upper" and "lower" etc. are based on the directions or positional relationships shown in the accompanying drawings, and are only for the convenience of describing the present invention and simplifying the description, rather than indicating or implying that the device or unit referred to must have a specific direction, be constructed and operated in a specific orientation. Therefore, it cannot be understood as a limitation on the present invention.

[0136] The above is only a specific embodiment of the present invention, but the protection scope of the present invention is not limited thereto. Any person skilled in the art can easily think of changes or substitutions within the technical scope disclosed by the present invention, which should be included in the protection scope of the present invention. Therefore, equivalent changes made according to the claims of the present invention are still within the scope covered by the present invention.

Claims

1. A data conversion circuit, characterized in that: The circuit comprises: a data storage module for data to be processed, a first storage module, a second storage module, a third storage module, a rotation factor storage module, a calculation module, a conversion module and a data storage module for result of data to be processed; The to-be-processed data storage module is connected to the first storage module and is used to store the to-be-processed data; The first storage module is connected to the computing module and is used to store the data to be processed as original data; The second storage module is connected to the calculation module and is used to store process data obtained by calculation by the calculation module; The third storage module is connected to the calculation module and is used to store modular multiplication result data obtained by the calculation module; The rotation factor storage module is connected to the calculation module through a connecting line and is used to store the rotation factors; The calculation module is connected to the first storage module, the second storage module, the third storage module, the data result data storage module to be processed, and the rotation factor storage module, and is used to perform a first operation on the data in the first storage module or the second storage module and the rotation factors in the rotation factor storage module, and store the obtained result in the data result data storage module to be processed, perform a second operation on the data in the first storage module or the second storage module and the rotation factors in the rotation factor storage module, and store the obtained result in the third storage module, and is also used to perform a modular multiplication operation on the data in the data result data storage module to be processed, and store the modular multiplication operation result data in the third storage module; The conversion module is connected to the first storage module and the third storage module, and is used to read the modular multiplication operation result data stored in the third storage module, convert the modular multiplication operation result data to obtain conversion result data, and store the conversion result data in the first storage module; The data storage module for the result of the data to be processed is connected to the first storage module and the second storage module, and is used for storing the result of the data to be processed; The calculation module includes a first operator module, a second operator module and a modular multiplier module; The first operator module is connected to the first storage module, the second storage module, and the rotation factor storage module, and is used to perform a first operation on the data in the first storage module or the second storage module and the rotation factor in the rotation factor storage module; The second operator module is connected to the first storage module, the second storage module, and the rotation factor storage module, and is used to perform a second operation on the data in the first storage module or the second storage module and the rotation factor in the rotation factor storage module; The modular multiplication submodule is connected to the data storage module for the result of data to be processed and the third storage module, and is used to read the data stored in the data storage module for the result of data to be processed, perform modular multiplication on the read data to obtain modular multiplication result data, and store the modular multiplication result data in the third storage module.

2. The data conversion circuit according to claim 1, characterized in that: The first operator module includes a first modular multiplier, a first storage unit, a first modular adder and a first modular subtractor; The first modular multiplier is connected to the first storage module, the second storage module, the twiddle factor storage module and the first storage unit, and is used to perform a modular multiplication operation on the twiddle factors selected from the twiddle factor storage module and the data read from the first storage module, and store the result data obtained by the modular multiplication operation in the first storage unit; Also used for performing a modular multiplication operation on the twiddle factor selected from the twiddle factor storage module and the data read from the first storage module, and storing the result data obtained by the modular multiplication operation in the first storage unit; The first storage unit is connected to the first modular multiplier, the first modular adder and the first modular subtractor, and is used to store result data obtained by the first modular multiplier performing modular multiplication operation; The first modular adder is connected to the first storage module, the second storage module, and the first storage unit, and is used to perform modular addition operation on the data read from the first storage unit and the data read from the first storage module, and store the result data obtained by the modular addition operation in the second storage module, and is also used to perform modular addition operation on the data read from the first storage unit and the data read from the second storage module, and store the result data obtained by the modular addition operation in the first storage module; The first modular subtractor is connected to the first storage module, the second storage module, and the first storage unit, and is used to perform a modular subtraction operation on the data read from the first storage unit and the data read from the first storage module, and store the result data obtained by the modular subtraction operation in the second storage module, and is also used to perform a modular subtraction operation on the data read from the first storage unit and the data read from the second storage module, and store the result data obtained by the modular subtraction operation in the first storage module.

3. The data conversion circuit according to claim 1, characterized in that: The second operator module includes a second modular multiplier, a second storage unit, a second modular adder and a second modular subtractor; The second modular adder is connected to the first storage module and the second storage module, and is used to perform modular addition operation on the data read from the first storage module, and store the obtained result in the second storage module, and is also used to perform modular addition operation on the data read from the second storage module, and store the obtained result in the first storage module; The second modular subtractor is connected to the first storage module, the second storage module and the second storage unit, and is used to perform a modular subtraction operation on the data read from the first storage module or the second storage module, and store the obtained result in the second storage unit, and is also used to perform a modular subtraction operation on the data read from the second storage module, and store the obtained result in the second storage unit; The second storage unit is connected to the second modular multiplier and is used to store a result obtained by the modular subtraction operation performed by the second modular subtractor; The second modular multiplier is connected to the first storage module, the second storage module, the rotation factor storage module and the second storage unit, and is used to perform modular multiplication operation on the rotation factor selected from the rotation factor storage module and the data in the second storage unit, and store the modular multiplication result data obtained by modular multiplication in the first storage module, and is also used to perform modular multiplication operation on the rotation factor selected from the rotation factor storage module and the data in the second storage unit, and store the modular multiplication result data obtained by modular multiplication in the second storage module.

4. A data conversion implementation method applied to the data conversion circuit of claim 1, characterized in that: The method comprises: Step S1: acquiring first data to be processed in the data storage module to be processed, storing the first data to be processed in the first storage module, performing a first operation on the data in the first storage module for a preset number of times by a calculation module, and storing the obtained operation result as the first result data in the data storage module to be processed result data; Step S2: acquiring the second data to be processed in the data storage module to be processed, storing the second data to be processed in the first storage module, performing a first operation on the data in the first storage module for a preset number of times by the calculation module, and storing the obtained operation result as the second result data in the data storage module to be processed result data; Step S3: performing modular multiplication operation on the first result data and the second result data in the to-be-processed data result data storage module through a calculation module to obtain modular multiplication operation result data and store the result data in a third storage module; Step S4: acquiring the modular multiplication operation result data stored in the third storage module through the conversion module, converting the modular multiplication operation result data to obtain conversion result data, and storing the conversion result data in the first storage module; Step S5: The calculation module performs a preset number of second operations on the conversion result data in the first storage module to obtain second operation result data.

5. The method for implementing data conversion according to claim 4, characterized in that: The performing of a first operation for a preset number of times on the data in the first storage module by the calculation module specifically includes: Step 101: Calculate the data in the first storage module by the calculation module to obtain process data, and store the process data in the second storage module; Step 102: Update the number of operations, determine whether the current number of operations reaches the preset number, if yes, use the process data as the operation result of the first operation, if no, execute step 103; Step 103: Calculate the data in the second storage module by the calculation module to obtain process data, and store the process data in the first storage module; Step 104: Update the number of operations and determine whether the current number of operations reaches the preset number. If so, use the process data as the operation result of the first operation. If not, execute step 101.

6. The method for implementing data conversion according to claim 5, characterized in that: The obtaining process data by calculating the data in the first storage module through the calculation module and storing the process data in the second storage module specifically includes: Step 201: the computing module obtains data corresponding to a first preset position and data corresponding to a second preset position in the first storage module through a first connection port and a second connection port respectively; Step 202: The calculation module obtains the rotation factor through the rotation factor storage module; Step 203: The calculation module performs a modular multiplication operation on the data corresponding to the second preset position and the rotation factor obtained through the first operation submodule, performs a modular addition operation on the result data obtained by the modular multiplication operation and the data corresponding to the first preset position, stores the result data of the modular addition operation to the third preset position in the second storage module through the third connection port, performs a modular subtraction operation on the result data obtained by the modular multiplication operation and the data corresponding to the first preset position, and stores the result data of the modular subtraction operation to the fourth preset position in the second storage module through the fourth connection port.

7. The method for implementing data conversion according to claim 5, characterized in that: The obtaining process data by calculating the data in the second storage module through the calculation module and storing the process data in the first storage module specifically comprises: Step 301: the computing module obtains data corresponding to a first preset position and data corresponding to a second preset position in the second storage module through the first connection port and the second connection port respectively; Step 302: The calculation module obtains the rotation factor through the rotation factor storage module; Step 303: The calculation module performs a modular multiplication operation on the data corresponding to the second preset position and the rotation factor obtained through the first operation submodule, performs a modular addition operation on the result data obtained by the modular multiplication operation and the data corresponding to the first preset position, stores the result data of the modular addition operation to the third preset position in the first storage module through the third connection port, performs a modular subtraction operation on the result data obtained by the modular multiplication operation and the data corresponding to the first preset position, and stores the result data of the modular subtraction operation to the fourth preset position in the first storage module through the fourth connection port.

8. The method for implementing data conversion according to claim 4, characterized in that: The step S5 specifically includes: Step 401: Calculate the conversion result data in the first storage module by the calculation module to obtain process data, and store the process data in the second storage module; Step 402: Update the number of operations, determine whether the current number of operations reaches the preset number, if yes, use the process data in the second storage module as the operation result data of the second operation, if no, execute step 403; Step 403: Calculate the data in the second storage module by the calculation module to obtain process data, and store the process data in the first storage module; Step 404: Update the number of operations, determine whether the current number of operations reaches the preset number, if yes, use the process data in the first storage module as the operation result data of the second operation, if no, execute step 405; Step 405: The calculation module is used to calculate the data in the first storage module to obtain process data, and the process data is stored in the second storage module, and step 402 is executed.

9. The method for implementing data conversion according to claim 8, characterized in that: The obtaining process data by computing the data in the first storage module through the computing module and storing the process data in the second storage module specifically comprises: Step 501: the computing module obtains data corresponding to the third preset position and data corresponding to the fourth preset position in the first storage module through the third connection port and the fourth connection port respectively; Step 502: the calculation module obtains the rotation factor through the rotation factor storage module; Step 503: The calculation module performs a modular addition operation on the data corresponding to the third preset position and the data corresponding to the fourth preset position obtained through the second operation submodule, and stores the data obtained by the modular addition operation to the first preset position in the second storage module through the first connection port. The second operation submodule performs a modular subtraction operation on the data corresponding to the third preset position and the data corresponding to the fourth preset position obtained, performs a modular multiplication operation on the result data obtained by the modular subtraction operation and the rotation factor, and stores the result data of the modular multiplication operation to the second preset position in the second storage module through the second connection port.

10. The method for implementing data conversion according to claim 8, characterized in that: The obtaining process data by calculating the data in the second storage module through the calculation module and storing the process data in the first storage module specifically comprises: Step 601: the computing module obtains data corresponding to the third preset position and data corresponding to the fourth preset position in the second storage module through the third connection port and the fourth connection port respectively; Step 602: the calculation module obtains the rotation factor through the rotation factor storage module; Step 603: The calculation module performs a modular addition operation on the data corresponding to the third preset position and the data corresponding to the fourth preset position obtained through the second operation submodule, and stores the data obtained by the modular addition operation to the first preset position in the first storage module through the first connection port. The second operation submodule performs a modular subtraction operation on the data corresponding to the third preset position and the data corresponding to the fourth preset position obtained, performs a modular multiplication operation on the result data obtained by the modular subtraction operation and the rotation factor, and stores the result data of the modular multiplication operation to the second preset position in the first storage module through the second connection port.

11. The method for implementing data conversion according to claim 4, characterized in that: The converting the modular multiplication operation result data to obtain conversion result data specifically includes: the conversion module converts the modular multiplication operation result data according to a preset formula to obtain conversion result data.

12. The method for implementing data conversion according to claim 11, characterized in that: The preset formula is: Y[i]=X[255-i], where X is the modular multiplication result data, Y is the conversion result data, and i is the corresponding position of the data.

13. A computer device comprising a memory, a processor and a computer program stored in the memory, characterized in that: The processor executes the computer program to implement the steps of the method according to any one of claims 4 to 12.

Citation Information

Patent Citations

  • High-capacity reconfigurable FFT operation IP core based on FPGA

    CN113157637A

  • Multi-channel assembly line FFT processor based on FPGA

    CN116775552A