CN109672524B - SM3 algorithm round iteration system and iteration method based on coarse-grained reconfigurable architecture - Google Patents
SM3 algorithm round iteration system and iteration method based on coarse-grained reconfigurable architecture Download PDFInfo
- Publication number
- CN109672524B CN109672524B CN201811514910.6A CN201811514910A CN109672524B CN 109672524 B CN109672524 B CN 109672524B CN 201811514910 A CN201811514910 A CN 201811514910A CN 109672524 B CN109672524 B CN 109672524B
- Authority
- CN
- China
- Prior art keywords
- data
- row
- configuration
- unit
- reconfigurable
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 230000006870 function Effects 0.000 claims description 30
- 238000010586 diagram Methods 0.000 claims description 22
- 238000004458 analytical method Methods 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 claims description 7
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 claims description 2
- 238000004519 manufacturing process Methods 0.000 abstract description 2
- 230000005540 biological transmission Effects 0.000 abstract 1
- 238000013500 data storage Methods 0.000 abstract 1
- 230000006835 compression Effects 0.000 description 8
- 238000007906 compression Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Images
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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Logic Circuits (AREA)
- Advance Control (AREA)
Abstract
The invention discloses an SM3 algorithm round iteration system and an iteration method based on a coarse-grained reconfigurable architecture, wherein the iteration system comprises a system bus, a reconfigurable processor and a microprocessor, the reconfigurable processor comprises a configuration unit, an input first-in first-out register group, an output first-in first-out register group, a general register file and 4 reconfigurable array blocks, an inlet of the configuration unit is connected with the microprocessor through the system bus, and an outlet is connected with each reconfigurable array block; the input first-in first-out register group is connected with the microprocessor through a system bus; the 4 reconfigurable array blocks are respectively connected with an input/output first-in first-out register bank and a general register file; data storage, reading and transmission are carried out among the 4 reconfigurable array blocks through the general register file; the output FIFO register set is connected to the microprocessor through the system bus. The technical scheme supports certain flexibility, and meanwhile, the high-efficiency operation of the SM3 algorithm is realized by improving the parallelism of the DES algorithm, optimizing a production line and the like.
Description
Technical Field
The invention belongs to the field of embedded reconfigurable systems, and particularly relates to a large-scale coarse-grained embedded reconfigurable system and a processing method thereof, which are applied to the fields of communication, encryption and the like.
Background
General purpose processors and Application Specific Integrated Circuits (ASICs) are two of the dominant methods in the field of conventional computer system architecture. However, as the demand of the application field for indexes such as performance, energy consumption, time to market and the like of the system is continuously increased, the disadvantages of the two traditional computing modes are exposed.
The general processor method has a wide application range, but has low computational efficiency, and although the application-specific integrated circuit can improve the computational speed and computational efficiency and meet the performance requirements, the flexibility of the ASIC device is poor.
Reconfigurable computing (reconfigurable computing) technology arises in order to achieve a good tradeoff between flexibility and computational efficiency. Reconfigurable computing is one of the current trends in the field of computer system architecture, and its architecture is between general-purpose processors and ASICs, and combines the strengths of both. The reconfigurable equipment is configured, so that a general computing platform can be converted into a special hardware system to complete specific computing tasks, which are equivalent to the fact that the computing tasks are simultaneously expanded in time and space, and the flexibility of application and high computing performance are displayed. In addition, the reconfigurable computing technology has the advantages of low system energy consumption, high reliability, short time to market and the like. The advantages enable the reconfigurable computing technology to have wide application prospects in various application fields, particularly the embedded application field. Many mainstream applications in the embedded field, such as multimedia applications, encryption/decryption applications, and communication applications, are well suited for implementation using reconfigurable computing techniques. The current reconfigurable computing technology is mainly used for computing platforms in the advanced technical field, but as the cost of reconfigurable logic devices is gradually reduced and the reconfigurable computing technology is continuously perfected during operation, it is reasonable to believe that various advantages of the reconfigurable computing technology can make the reconfigurable computing technology have great significance in more fields.
At present, multiple reconfigurable systems such as ReMAP, AsAP, DRP and the like are researched at home and abroad. However, the interconnection of these arrays is simple, and a large number of bit shifts and a large number of rounds are required in the round iteration operation of the SM3 algorithm, so that the efficiency and speed of the operation are low. The traditional reconfigurable computing system has great problems in the operation efficiency and operation period of the SM 3.
Disclosure of Invention
The invention aims to provide an SM3 algorithm round iteration system and an iteration method based on a coarse-grained reconfigurable architecture, which utilize the advantages of parallelism processing, independent configurable operation modules and the like of a reconfigurable technology to support certain flexibility and realize efficient operation of an SM3 algorithm by improving the parallelism of a DES algorithm, optimizing a production line and the like.
In order to achieve the above purpose, the solution of the invention is:
an SM3 algorithm round iteration system based on a coarse-grained reconfigurable architecture comprises a system bus, a reconfigurable processor and a microprocessor, wherein the reconfigurable processor comprises a configuration unit, an input first-in first-out register set, an output first-in first-out register set, a general register file and 4 reconfigurable array blocks, an inlet of the configuration unit is connected with the microprocessor through the system bus, and outlets of the configuration unit are respectively connected with the reconfigurable array blocks; the input first-in first-out register group is connected with the microprocessor through a system bus; the 4 reconfigurable array blocks are respectively connected with an input first-in first-out register set and an output first-in first-out register set, and the 4 reconfigurable array blocks are all connected with a general register file; the 4 reconfigurable array blocks mutually store, read and transmit data through a general register file; the output first-in first-out register group is connected with the microprocessor through a system bus;
the SM3 algorithm round iteration system comprises 5M +1 configuration flow charts, the microprocessor determines the operation flow of round iteration by analyzing the characteristics of SM3, and expands the configuration flow charts of multi-round iteration operation into a data flow chart which is mapped to the reconfigurable processor to form configuration information which is sent to the configuration unit; the microprocessor sends plaintext data to the reconfigurable processor through a system bus, the plaintext data are stored in an input first-in first-out register set, and initial data, generated keys and calculated intermediate data are stored in a general register file for next round iteration of a graph; the configuration unit is used for storing configuration information and sending the configuration information to each reconfigurable array block.
An iteration method of an SM3 algorithm iteration system based on a coarse-grained reconfigurable architecture comprises the following steps;
step 1, summarizing a data flow diagram of SM3 method iteration;
step 5, the microprocessor starts the reconfigurable processor and sends the configuration information and the data to be processed to the reconfigurable processor;
After the scheme is adopted, aiming at SM3 algorithm iteration, the 4 reconfigurable array blocks comprise a plurality of operation units, the operation parallelism of the SM3 algorithm is improved by means of the general register file, multiple rounds of iteration are optimized and accelerated in a parallel shift replacement mode in the reconfigurable processor, the operation efficiency of the SM3 method is improved while certain flexibility is achieved, and the operation period is reduced as much as possible.
Drawings
FIG. 1 is a block diagram of a large-scale coarse-grained embedded reconfigurable system processor based on the present invention;
fig. 2 to 7 are flowcharts of iterative configuration of the SM3 algorithm according to the present invention;
FIG. 8 is a schematic diagram of a message extension rule;
FIG. 9 is a schematic diagram of a compression function rule;
fig. 10 is an overall flow diagram of SM3 algorithm round iterations.
Detailed Description
The technical solution and the advantages of the present invention will be described in detail with reference to the accompanying drawings.
As shown in fig. 1, the present invention provides an SM3 algorithm round iterative system based on a coarse-grained reconfigurable architecture, which includes a system bus, a reconfigurable processor and a microprocessor, which are respectively described below.
The reconfigurable processor comprises a configuration unit, an input first-in first-out register set, an output first-in first-out register set, a general register file, 4 reconfigurable array blocks and a lookup table, wherein an incoming line port of the configuration unit is connected with the microprocessor through a system bus, and an outgoing line port of the configuration unit is respectively connected with each reconfigurable array block; the input first-in first-out register group is connected with the microprocessor through a system bus; the 4 reconfigurable array blocks are respectively a 1 st reconfigurable array block, a 2 nd reconfigurable array block, a 3 rd reconfigurable array block and a 4 th reconfigurable array block; each reconfigurable array block is connected with an input first-in first-out register set and an output first-in first-out register set, and the 4 reconfigurable array blocks are connected with a general register file; the 4 reconfigurable array blocks mutually store, read and transmit data through a general register file; the output first-in first-out register group is connected with the microprocessor through a system bus; the SM3 algorithm round iteration system comprises 5M +1 configuration flow charts, wherein:
the microprocessor determines the operation flow of the wheel iteration by analyzing the characteristics of the SM3, expands the configuration flow chart of the wheel iteration operation of multiple wheels into a data flow chart which is mapped to the reconfigurable processor to form configuration information and sends the configuration information to the configuration unit. The microprocessor sends the plaintext data to the reconfigurable processor through the system bus, and the plaintext data is stored in the input first-in first-out register set. The microprocessor also stores the initial data, the generated key and the calculated intermediate data in a general register file for the next round of iteration of the graph.
The configuration unit is used for storing configuration information and sending the configuration information to each reconfigurable array block.
For the 5p-4 configuration flow chart, p is more than or equal to 1 and less than or equal to M; the (5p-4) th configuration flow chart is used for acquiring message data input into the FIFO register set and reading configuration information of a configuration unit corresponding to the message data; the (5p-4) th configuration flow chart stores the read initial message data into a general register file according to the configuration information; loading initial message data into the next configuration flow chart according to the configuration information for the operation of the next configuration flow chart;
for the 5p-3 configuration flow charts, p is more than or equal to 1 and less than or equal to M; the (5p-3) th configuration flow chart is used for acquiring initial message data stored in the general register file of the (5p-4) th configuration flow chart, reading configuration information of a corresponding configuration unit, and finishing message expansion iteration; reading message extension word data in a general register file through a 1 st read port operation row selector; the (5p-3) th configuration flow chart completes the first stage of message expansion iteration in the SM3 algorithm according to the configuration information;
for the 5p-2 configuration flow chart, p is more than or equal to 1 and less than or equal to M; the (5p-2) th configuration flow chart is used for acquiring initial message data stored in the general register file of the (5p-3) th configuration flow chart, reading configuration information of a corresponding configuration unit, and finishing message expansion iteration; reading message extension word data in a general register file through a 1 st read port operation row selector; the (5p-2) th configuration flow chart completes the second stage iteration of message expansion in the SM3 algorithm according to the configuration information;
for the 5p-1 configuration flow chart, p is more than or equal to 1 and less than or equal to M; for the 5p-1 configuration flow diagram block, the configuration flow diagram block is used for acquiring the message extension word generated by the (5p-2) configuration flow diagram, reading the hash value stored in the general register file and the configuration information of the corresponding configuration unit; reading a hash value stored in a general register file through a 1 st read port operation row selector; performing compression function iterations from 0 th to 15 th on the message expansion word and the initial hash value of the (5p-2) th reconfigurable array block by the 5p-1 th configuration flow chart according to the configuration information to obtain intermediate information of the current block iteration;
for the 5p configuration flow chart, p is more than or equal to 1 and less than or equal to M; for the 5 p-th configuration flow diagram block, the configuration flow block is used for acquiring the message extension word generated by the (5p-1) -th configuration flow diagram, reading the hash value stored in the general register file and the configuration information of the corresponding configuration unit; reading a hash value stored in a general register file through a 1 st read port operation row selector; performing 16 th to 63 th iterations of a compression function on the message expansion word and the initial hash value of the (5p-2) th reconfigurable array block according to the configuration information by the 5 p-th configuration flow chart to obtain intermediate information of the current block iteration;
acquiring intermediate information of a 5M configuration flow chart and reading configuration information of a corresponding configuration unit for a (5M +1) th reconfigurable array block; and the (5M +1) th configuration flow chart obtains a hash value by performing XOR on the intermediate information of the 5M th reconfigurable array block and the initial hash value according to the configuration information.
Preferably, the configuration unit comprises a configuration and control interface, a configuration memory and a configuration analysis module which are connected together in sequence, and the configuration and control interface is connected with the system bus; the microprocessor sends the required configuration information to the configuration memory sequentially through the system bus and the configuration and control interface, the configuration memory stores the sent configuration information, the configuration analysis module is used for analyzing the configuration information of the configuration memory and sending the analyzed configuration information to the reconfigurable array block, and configuration, starting and switching operation of the reconfigurable array block are achieved.
Preferably, the reconfigurable array block comprises a read port operation row selector, a write port operation row selector and N reconfigurable array operation rows, and the N reconfigurable array operation rows share the read port operation row selector and the write port operation row selector; the read port operation row selector in the mth configuration flow chart is marked as the mth read port operation row selector, the write port operation row selector in the mth configuration flow chart is marked as the mth write port operation row selector, and the nth reconfigurable array operation row in the mth configuration flow chart is marked as the mthThe reconfigurable array operation rows are arranged, M is 1, …,5M +1, N is 1, …, N, 5M +1 are the number of the configuration flow charts, N is the row number of the reconfigurable array operation rows included by the reconfigurable array block, and M and N are integers; the configuration flow charts are sequentially connected, and the reconfigurable array operation rows in each reconfigurable array block are sequentially connected;
configuring intermediate data obtained by flow chart operation in round iteration to be stored in a general register file through a write port operation row selector, and configuring intermediate data required to be obtained by the flow chart operation in round iteration to be read information stored in the general register file through a read port operation row selector;
first, theThe row reconfigurable array operation row is connected with input first-in first-out register set, and the first timeThe row reconfigurable array operation row is connected with the output first-in first-out register group, the reconfigurable array operation row can read various buffer data and various temporary message digests through the general register file, and simultaneously can write initial hash values into the general register file, and the hash values are used for subsequent compression function calculation;
in the (5p-4) th configuration flow chart, p is more than or equal to 1 and less than or equal to M; first, theThe method comprises the steps that information data in a first-in first-out register set are input into a row reconfigurable array operation row, and configuration information of a configuration unit is read through a 1 st read port operation row selector; first, theThe row reconfigurable array operation row carries out straight-through on the message data according to the configuration information to obtain intermediate data of the next reconfigurable array block round iteration; writing the intermediate data into a general register file through a 1 st write port operation row selector;
for the (5p-3) th configuration flow chart, p is more than or equal to 1 and less than or equal to M; the (5p-3) th configuration flowchartThe row reconfigurable array operation row loads the intermediate data of the (5p-4) th configuration flow chart from the general register file; simultaneously writing an initial hash value in the general register file through a 1 st write port operation row selector; reading the configuration information of the configuration unit through a read port operation row selector; the (5p-3) th configuration flow chart performs message extension on the intermediate data of the (5p-4) th configuration flow chart according to the configuration informationIterative operation is carried out, intermediate data of the (5p-4) th configuration flow chart are obtained, the first stage of message expansion is completed, the intermediate data are written into a general register file through the 4 th write port operation row selector and are used for iterative calculation of the next reconfigurable array block wheel;
for the (5p-2) th configuration flow chart, p is more than or equal to 1 and less than or equal to M; the (5p-2) th configuration flowchartThe row reconfigurable array operation row loads the intermediate data of the (5p-3) th configuration flow chart from the general register file; simultaneously writing an initial hash value in the general register file through a 1 st write port operation row selector; reading the configuration information of the configuration unit through a read port operation row selector; performing message expansion iterative operation on the intermediate data of the (5p-3) th configuration flow diagram according to the configuration information by the (5p-2) th configuration flow diagram to obtain the intermediate data of the (5p-3) th configuration flow diagram, completing the second stage of message expansion, and writing the intermediate data into a general register file through a 2 nd write port operation row selector for the next reconfigurable array block round iterative calculation;
for the (5p-1) th configuration flow chart, p is more than or equal to 1 and less than or equal to M; the (5p-1) th configuration flowchartThe row reconfigurable array operation row loads the intermediate data of the (5p-2) th configuration flow chart from the general register file; reading the configuration information of the configuration unit through a read port operation row selector; performing compression function iterative operation on the intermediate data of the (5p-2) th configuration flow diagram according to the configuration information by the (5p-1) th configuration flow diagram to obtain the intermediate data of the (5p-1) th configuration flow diagram, completing the 0 th to 15 th iterations of the compression function, and writing the intermediate data into a general register file through a 3 rd write port operation row selector for the next reconfigurable array block round iterative operation;
for the 5p configuration flow chart, p is more than or equal to 1 and less than or equal to M; the 5p th configuration flowchartThe row reconfigurable array operation row loads the intermediate data of the 5 p-th configuration flow chart from the general register file; reading the configuration information of the configuration unit through a read port operation row selector; performing compression function iterative operation on the intermediate data of the (5p-1) th configuration flow diagram according to the configuration information by the 5 p-th configuration flow diagram to obtain the intermediate data of the 5 p-th configuration flow diagram, completing the 16 th to 63 th iterations of the compression function, and writing the intermediate data into a general register file through a 3 rd write port operation selector for the calculation of the next configuration flow diagram;
for the 5M +1 configuration flow chart, the 5M +1 configuration flow chartThe row reconfigurable array operation row loads the intermediate data of the 5M configuration flow chart from the general register file; and the 5M +1 th reconfigurable array block obtains the hash value by carrying out XOR on the intermediate information of the 5M th configuration flow chart and the hash value according to the configuration information.
Preferably, each reconfigurable array operation row comprises X1 data loading units, X2 data output units and X3 32-bit operation units; each arithmetic unit uses a corresponding read port arithmetic row selector to select any three outputs of other arithmetic units in the uplink or the current row as the inputs of the arithmetic units; the k1 th data loading unit of the n row reconfigurable array operation row of the m configuration flow chart is recorded as the thThe data loading units, the k2 data output units of the n row reconfigurable array operation row of the m configuration flow chart are marked as the thThe k3 arithmetic units of the n-th row reconfigurable array arithmetic row of the m configuration flow chart are marked as the thOne fortuneAn arithmetic unit ofThe output of each arithmetic unit is expressed asX, the arithmetic number k1 being 11,k2=1...X2,k3=1...X3,k4=1...X4X1, X2, X3 and X4 are integers; the operation unit is used for selecting the middle data to flow into by the m-th read port operation row selector and receiving the configuration information of the analysis configuration analysis module;
first, theAndthe data loading unit loads data input into the FIFO register set and analyzes the configuration information of the configuration analysis module; reading the information stored in the general register file by the 1 st read port operation row selector and selecting a corresponding replacement network into which data flows according to the analyzed configuration information, wherein the replacement network is the 1 st read port operation row selectorAndan arithmetic unit; first, theAndeach data output unit temporarily stores the corresponding data Andthe result of the arithmetic logic unit reads the configuration information to determine to output the data to an output first-in first-out register group, a next line of reconfigurable array operation line or a general register file;
first, theThe data loading unit analyzes the configuration information of the configuration analysis module, reads the running data information of the 5m configuration flow chart stored in the general register file through the 2 nd and 3 rd read port operation row selector, and selects the corresponding operation of data inflow according to the analyzed configuration information, and the second data loading unit analyzes the configuration information of the configuration analysis module, and the second data loading unit selects the corresponding operation of data inflow according to the analyzed configuration informationThe operation unit performs operation and temporarily stores the output data in the corresponding firstAnd the output unit outputs data to an output first-in first-out register group, a next row of reconfigurable array operation row or a general register file.
Preferably, the arithmetic unit comprises modulo addition operation, exclusive or operation, and operation, nand operation, shift operation, and pass-through output operation; and each arithmetic unit has at most 3 inputs and at most 2 outputs, wherein the arithmetic unit supports an optional one of the inputs as an output while performing the above arithmetic operation.
Preferably, the number of the reconfigurable array blocks is 4, the reconfigurable array blocks are sequentially connected together end to end, the number of the general register files is 1, the number of the input first-in first-out register groups is 4, and the number of the output first-in first-out register groups is 4.
Preferably, each reconfigurable array block comprises 4 rows of reconfigurable array operation rows, 4 read port operation row selectors and 4 write port operation row selectors; each row of reconfigurable array operation row comprises 4 data loading units, 4 data input units and 8 32-bit arithmetic operation units.
Preferably, M is the number of blocks of the message data partitioned by 512 bits.
The invention also provides an iteration method of the SM3 algorithm iteration system based on the coarse-grained reconfigurable architecture, which comprises the following steps;
step 1, analyzing iterative calculation characteristics of an SM3 method, and inducing a data flow graph;
step 5, the microprocessor starts the reconfigurable processor and sends the configuration information and the data to be processed to the reconfigurable processor;
Preferably, the specific process of the reconfigurable processor performing data processing according to the configuration information and the data to be processed in step 6 is as follows:
step 61: first, theThe data loading unit loads initial 512-bit message data in sequence from the input FIFO register group by 128 bits each time; reading the configuration information of the configuration unit through a 1 st read port operation row selector; according to the configuration information throughAn arithmetic logic unit selects pass-throughMode passes 512bit message data throughThe data output units are stored to the general register files denoted as W0, W1, …, W16.
Step 62: for the (5p-3) th configuration flow chart, p is more than or equal to 1 and less than or equal to M; reading the configuration information of the configuration unit through the (5p-3) th read port operation row selector, reading the information data Wj-3, Wj-5, Wj-6, Wj-8, Wj-9, Wj-11, Wj-12, Wj-13, Wj-16, j is more than or equal to 0 and less than 68 in the general register file and is an even number in the (5p-3) th configuration flow chart, and reading the information data Wj-3, Wj-5, Wj-6, Wj-8, Wj-9, Wj-11, Wj-12, Wj-13, Wj-16, j is more than or equal to 0 and is an even numberRow of row reconfigurable array operationA data load unit loads Wj-3, Wj-9, Wj-12, Wj-13, thThe individual arithmetic unit inputs Wj-3, Wj-9 perform shift and XOR operations,obtain an outputFirst, theA unit of operation inputThe Wj-16 performs an exclusive or operation,obtain an outputFirst, theA unit of operation inputThe permutation function P1 is completed and,obtain an outputFirst, theThe individual arithmetic unit inputs Wj-16 perform a shift operation,to obtain an output (Wj-16)<<<7) (ii) a First, theA unit of operation inputAndthe exclusive or operation is completed and the operation is performed,obtain an output First, theA unit of operation inputAndthe exclusive or operation is completed and the operation is performed,obtain an outputFirst, theRow of row reconfigurable array operationA data load unit loads Wj-6, the firstA unit of operation inputAndthe exclusive or operation is completed and the operation is performed,obtain an output And pass throughThe data output unit is stored in the general register file.
First, theRow of row reconfigurable array operationA data load unit loads Wj-2, Wj-8, Wj-11, Wj-12, thThe individual arithmetic unit inputs Wj-2, Wj-8 perform shift and XOR operations,obtain an outputFirst, theA unit of operation inputThe Wj-15 performs an exclusive or operation,obtain an outputFirst, theA unit of operation inputThe permutation function P1 is completed and,obtain an outputFirst, theThe individual arithmetic unit inputs Wj-12 perform a shift operation,to obtain an output (Wj-12)<<<7) (ii) a First, theA unit of operation inputAndthe exclusive or operation is completed and the operation is performed,to obtain an output P1First, theRow of row reconfigurable array operationA unit of operation inputAndthe exclusive or operation is completed and the operation is performed,obtain an output First, theA data load unit loads Wj-5, the firstA unit of operation inputAndthe exclusive or operation is completed and the operation is performed,obtain an outputAnd pass throughThe data output unit is stored in the general register file; step 62 is repeated until j 67.
And step 63: for the (5p-2) th configuration flow chart, p is more than or equal to 1 and less than or equal to M; and reading the configuration information of the configuration unit through the (5p-2) th read port operation row selector, and reading the information data Wk-12, Wk-11, Wk-15 and Wk-16 in the general register file by the (5p-3) th reconfigurable array block, wherein k is more than or equal to 0 and less than 64, and k is an even number. First, theRow of row reconfigurable array operationA data load unit loads Wk-16 and Wk-12The input Wk-16 and Wk-12 of each operation unit complete the XOR operation,obtain an outputFirst, theAndthe operation units are straight-through units,output ofAnd pass throughThe data output unit is stored in the general register file.
First, theRow of row reconfigurable array operationA data load unit loads Wk-15 and Wk-11, the firstThe inputs Wk-15 and Wk-11 of the operation units complete the XOR operation,obtain an outputFirst, theThe operation units are straight-through units,output ofAnd pass throughThe data output unit is stored in the general register file; repeat step 63 until k is 63
Step 64: for the (5p-1) th configuration flow chart, p is more than or equal to 1 and less than or equal to M; the (5p-3) th and (5p-2) th reconfigurable array blocks are written into the extended word block of the message in the general register file; the second of the (5p-1) th reconfigurable array blockRow of row reconfigurable array operationThe data loading unit loads the hash value ADE and a constant Tj in the general register file, wherein j is more than or equal to 0 and less than 16; first, theThe operation units complete SS1 ← ((A)<<<12)+E+((Tj<<<j))<<<7,And SS2+ D operation.
First, theRow of row reconfigurable array operationThe data load unit derives the hash value BC and the message extension words Wj and W from the general register filej', j is more than or equal to 0 and less than 16; first, theThe arithmetic units complete the Boolean function FFj (A, B, C), TT1 ← FFj (A, B, C) + D + SS2+ Wj′,B<<<9, SS1+ Wj operation, thAn output unit sequentially outputs D '═ C and C' ═ B<<<9, B 'a and a' TT1 are written into the general register file at the hash value of the block.
First, theRow of row reconfigurable array operationThe data loading unit loads the hash value EFGH in the general register file; first, theThe arithmetic units complete the operations of Boolean functions GGj (E, F, G), TT2 ← GGj (E, F, G) + H + SS1+ Wj, and direct E, F and G in turn.
First, theRow of row reconfigurable array operationThe arithmetic units complete the Boolean function replacement function E ← P0(TT2), F<<<19 operation, the firstAn output unit successively converts outputs E ' ═ E ← P0(TT2), F ' ═ E, G ' ═ F ← F ═ F-<<<19 and H' G are written to the general register file at the hash value of the block; repeat steps 64 to j 15.
Step 65: for the 5p configuration flow chart, p is more than or equal to 1 and less than or equal to M; the (5p-3) th and (5p-2) th reconfigurable array blocks are written into the extended word block of the message in the general register file; the second of the 5 p-th reconfigurable array blocksRow of row reconfigurable array operationSlave connection of data loading unitUsing hash value ADE in register file and constant Tj, j is more than or equal to 16 and less than 64; first, theThe operation units complete SS1 ← ((A)<<<12)+E+((Tj<<<j))<<<7,And SS2+ D operation.
First, theRow of row reconfigurable array operationThe data load unit derives the hash value BC and the message extension words Wj and W from the general register filej', 16 is less than or equal to j and less than 64; first, theThe arithmetic units complete the Boolean function FFj (A, B, C), TT1 ← FFj (A, B, C) + D + SS2+ Wj′,B<<<9, SS1+ Wj operation, thAn output unit sequentially outputs D '═ C and C' ═ B<<<9, B 'a and a' TT1 are written into the general register file at the hash value of the block.
First, theRow of row reconfigurable array operationThe data loading unit loads the hash value EFGH in the general register file; first, theThe arithmetic units complete the operations of Boolean function GGi (E, F, G), TT2 ← GGj (E, F, G) + H + SS1+ Wj, direct E, F, G。
First, theRow of row reconfigurable array operationThe arithmetic units complete the Boolean function replacement function E ← P0(TT2), F<<<19 operation, the firstAn output unit successively converts outputs E ' ═ E ← P0(TT2), F ' ═ E, G ' ═ F ← F ═ F-<<<19 and H' G are written to the general register file at the hash value of the block; step 65 is repeated until j is 63.
And step 66: for the 5M +1 configuration flow chart, the 5M +1 configuration flow chart reads the 5M configuration flow chart and the 5M-5 configuration flow chart writes to the 5M +1 reconfigurable array block of hash values in the general register fileRow of row reconfigurable array operationThe data load unit writes the hash value ABCD from the 5M configuration flow chart into the general register fileThe arithmetic units are configured in a direct-through mode;
first, theRow of row reconfigurable array operationThe data loading unit reads the hash values A ', B', C 'and D' from the 5M-5 th reconfigurable array block general register fileThe operation units complete in sequenceFirst, theThe data output unit sends the hash value into an output first-in first-out register array and writes the hash value into a general register file at the same time; repeating the steps 66 to EFGH to complete the same operation.
Preferably, the rules of P0 and P1 permutation in the steps 62, 63, 64 and 65 are as follows:
P0(X)=X⊕(X<<<9)⊕(X<<<17)
p1(X) · X · (X < <15) · (X < <23) · where X is a word.
The boolean functions FFi and GGi in steps 62, 63, 64 and 65 are as follows:
where XYZ is a word.
The constants in step 64 are as follows:
The above embodiments are only for illustrating the technical idea of the present invention, and the protection scope of the present invention is not limited thereby, and any modifications made on the basis of the technical scheme according to the technical idea of the present invention fall within the protection scope of the present invention.
Claims (7)
1. An SM3 algorithm round iteration system based on a coarse-grained reconfigurable architecture is characterized in that: the reconfigurable array comprises a system bus, a reconfigurable processor and a microprocessor, wherein the reconfigurable processor comprises a configuration unit, an input first-in first-out register group, an output first-in first-out register group, a general register stack and 4 reconfigurable array blocks, an input port of the configuration unit is connected with the microprocessor through the system bus, and an output port of the configuration unit is respectively connected with each reconfigurable array block; the input first-in first-out register group is connected with the microprocessor through a system bus; the 4 reconfigurable array blocks are respectively connected with an input first-in first-out register set and an output first-in first-out register set, and the 4 reconfigurable array blocks are all connected with a general register file; the 4 reconfigurable array blocks mutually store, read and transmit data through a general register file; the output first-in first-out register group is connected with the microprocessor through a system bus;
the SM3 algorithm round iteration system comprises 5M +1 configuration flow charts, the microprocessor determines the operation flow of round iteration by analyzing the characteristics of SM3, and expands the configuration flow charts of multi-round iteration operation into a data flow chart which is mapped to the reconfigurable processor to form configuration information which is sent to the configuration unit; the microprocessor sends plaintext data to the reconfigurable processor through a system bus, the plaintext data are stored in an input first-in first-out register set, and initial data, generated keys and calculated intermediate data are stored in a general register file for next round iteration of a graph; the configuration unit is used for storing configuration information and sending the configuration information to each reconfigurable array block;
the reconfigurable array block comprises a read port operation row selector, a write port operation row selector and N reconfigurable array operation rows, wherein the N reconfigurable array operation rows share the read port operation row selector and the write port operation row selector; wherein, the read port in the mth configuration flow chart is operatedThe calculation row selector is marked as the mth read port operation row selector, the write port operation row selector in the mth configuration flow chart is marked as the mth write port operation row selector, and the nth reconfigurable array operation row in the mth configuration flow chart is marked as the mthThe reconfigurable array operation rows are arranged, M is 1, …,5M +1, N is 1, …, N, 5M +1 are the number of the configuration flow charts, N is the row number of the reconfigurable array operation rows included by the reconfigurable array block, and M and N are integers; the configuration flow charts are sequentially connected, and the reconfigurable array operation rows in each reconfigurable array block are sequentially connected; configuring intermediate data obtained by flow chart operation in round iteration to be stored in a general register file through a write port operation row selector, and configuring intermediate data required to be obtained by the flow chart operation in round iteration to be read information stored in the general register file through a read port operation row selector;
each reconfigurable array operation row comprises X1 data loading units, X2 data output units and X3 32-bit operation units, and each operation unit uses a corresponding read port operation row selector to select the output of any three uplink or other operation units in the row as the input of the operation unit; the k1 th data loading unit of the n row reconfigurable array operation row of the m configuration flow chart is recorded as the thThe data loading units, the k2 data output units of the n row reconfigurable array operation row of the m configuration flow chart are marked as the thThe k3 arithmetic units of the n-th row reconfigurable array arithmetic row of the m configuration flow chart are marked as the thAn arithmetic unit ofThe output of each arithmetic unit is expressed asX, the arithmetic number k1 being 11,k2=1...X2,k3=1...X3,k4=1...X4X1, X2, X3 and X4 are integers; the operation unit is used for selecting the middle data to flow into by the m-th read port operation row selector and receiving the configuration information of the analysis configuration analysis module;
first, theAndthe data loading unit loads data input into the FIFO register set and analyzes the configuration information of the configuration analysis module; reading the information stored in the general register file by the 1 st read port operation row selector and selecting a corresponding replacement network into which data flows according to the analyzed configuration information, wherein the replacement network is the 1 st read port operation row selectorAndan arithmetic unit; first, theAndeach data output unit temporarily stores the corresponding data Andthe result of the arithmetic logic unit reads the configuration information to determine to output the data to an output first-in first-out register group, a next line of reconfigurable array operation line or a general register file;
first, theThe data loading unit analyzes the configuration information of the configuration analysis module, reads the running data information of the 5m configuration flow chart stored in the general register file through the 2 nd and 3 rd read port operation row selector, and selects the corresponding operation of data inflow according to the analyzed configuration information, and the second data loading unit analyzes the configuration information of the configuration analysis module, and the second data loading unit selects the corresponding operation of data inflow according to the analyzed configuration informationThe operation unit performs operation and temporarily stores the output data in the corresponding firstAnd the output unit outputs data to an output first-in first-out register group, a next row of reconfigurable array operation row or a general register file.
2. The coarse-grained reconfigurable architecture-based SM3 algorithm round iterative system of claim 1, wherein: the configuration unit comprises a configuration and control interface, a configuration memory and a configuration analysis module which are sequentially connected together, and the configuration and control interface is connected with a system bus; the microprocessor sends the required configuration information to the configuration memory sequentially through the system bus and the configuration and control interface, the configuration memory stores the sent configuration information, and the configuration analysis module is used for analyzing the configuration information of the configuration memory and sending the analyzed configuration information to the reconfigurable array block.
3. The coarse-grained reconfigurable architecture-based SM3 algorithm round iterative system of claim 1, wherein: each reconfigurable array block comprises 4 rows of reconfigurable array operation rows, 4 read port operation row selectors and 4 write port operation row selectors, and each row of reconfigurable array operation rows comprises 4 data loading units, 4 data input units and 8 32-bit operation units.
4. An iteration method of an SM3 algorithm iteration system based on a coarse-grained reconfigurable architecture is characterized by comprising the following steps;
step 1, summarizing a data flow diagram of SM3 method iteration;
step 2, formulating a data input mode of SM 3;
step 3, configuring the reconfigurable processor according to the data input mode determined in the step 2 and the data flow graph determined in the step 1, and generating configuration information;
step 4, storing the configuration information and the initial data of the reconfigurable processor into a corresponding memory through the microprocessor;
step 5, the microprocessor starts the reconfigurable processor and sends the configuration information and the data to be processed to the reconfigurable processor;
step 6, the reconfigurable processor processes data according to the configuration information and the data to be processed, and sends an interrupt signal after the reconfigurable processor completes the current task; and sending the processed data to a microprocessor through a system bus;
in step 6, the specific process of the reconfigurable processor performing data processing according to the configuration information and the data to be processed is as follows:
step 61: first, theThe data loading unit loads initial 512-bit message data in sequence from the input FIFO register group by 128 bits each time; reading the configuration information of the configuration unit through a 1 st read port operation row selector; according to the configuration information throughThe arithmetic logic unit selects a pass-through mode to pass 512bit message dataThe data output units are stored in a general register file, and are marked as W0, W1, … and W16;
step 62: for the (5p-3) th configuration flow chart, p is more than or equal to 1 and less than or equal to M; reading the configuration information of the configuration unit through the (5p-3) th read port operation row selector, and reading the information data Wj-3, Wj-5, Wj-6, Wj-8, Wj-9, Wj-11, Wj-12, Wj-13, Wj-16, 0-j in the general register file through the (5p-3) th configuration flow chart<68 and j is an even number, thRow of row reconfigurable array operationA data load unit loads Wj-3, Wj-9, Wj-12, Wj-13, thThe individual arithmetic unit inputs Wj-3, Wj-9 perform shift and XOR operations,obtain an outputFirst, theA unit of operation inputThe Wj-16 performs an exclusive or operation,obtain an outputFirst, theA unit of operation inputThe permutation function P1 is completed and,obtain an outputFirst, theThe individual arithmetic unit inputs Wj-16 perform a shift operation,to obtain an output (Wj-16)<<<7) (ii) a First, theA unit of operation inputAndthe exclusive or operation is completed and the operation is performed,obtain an output First, theA unit of operation inputAndthe exclusive or operation is completed and the operation is performed,obtain an outputFirst, theRow of row reconfigurable array operationA data load unit loads Wj-6, the firstA unit of operation inputAndthe exclusive or operation is completed and the operation is performed,obtain an output And pass throughThe data output unit is stored in the general register file;
first, theRow of row reconfigurable array operationA data load unit loads Wj-2, Wj-8, Wj-11, Wj-12, thThe individual arithmetic unit inputs Wj-2, Wj-8 perform shift and XOR operations,obtain an outputFirst, theA unit of operation inputThe Wj-15 performs an exclusive or operation,obtain an outputFirst, theA unit of operation inputThe permutation function P1 is completed and,obtain an outputFirst, theThe individual arithmetic unit inputs Wj-12 perform a shift operation,to obtain an output (Wj-12)<<<7) (ii) a First, theA unit of operation inputAndthe exclusive or operation is completed and the operation is performed,obtain an output First, theRow reconfigurable array operation rowFirst, theA unit of operation inputAndthe exclusive or operation is completed and the operation is performed,obtain an output First, theA data load unit loads Wj-5, the firstA unit of operation inputAndthe exclusive or operation is completed and the operation is performed,obtain an outputAnd pass throughThe data output unit is stored in the general register file; repeat step 62 until j 67;
and step 63: for the (5p-2) th configuration flow chart, p is more than or equal to 1 and less than or equal to M; reading the configuration information of the configuration unit through the (5p-2) th read port operation row selector, and reading the information data Wk-12, Wk-11, Wk-15 and Wk-16 in the general register file by the (5p-3) th reconfigurable array block<64 and k is an even number; first, theRow of row reconfigurable array operationA data load unit loads Wk-16 and Wk-12The input Wk-16 and Wk-12 of each operation unit complete the XOR operation,obtain an outputFirst, theAndthe operation units are straight-through units,output ofAnd pass throughData ofThe output unit is stored in the general register file;
first, theRow of row reconfigurable array operationA data load unit loads Wk-15 and Wk-11, the firstThe inputs Wk-15 and Wk-11 of the operation units complete the XOR operation,obtain an outputFirst, theThe operation units are straight-through units,output ofAnd pass throughThe data output unit is stored in the general register file; repeating step 63 until k is 63;
step 64: for the (5p-1) th configuration flow chart, p is more than or equal to 1 and less than or equal to M; the (5p-3) th and (5p-2) th reconfigurable array blocks are written into the extended word block of the message in the general register file; the second of the (5p-1) th reconfigurable array blockRow reconfigurable arrayThe first in the operation lineThe hash value ADE of the data loading unit in the general register file and a constant Tj, j is more than or equal to 0<16; first, theThe operation units complete SS1 ← ((A)<<<12)+E+((Tj<<<j))<<<7,And SS2+ D operation;
first, theRow of row reconfigurable array operationThe data load unit derives the hash value BC and the message extension words Wj and W 'from the general register file'j,0≤j<16; first, theThe arithmetic units complete the Boolean function FFj (A, B, C), TT1 ← FFj (A, B, C) + D + SS2+ W'j,B<<<9, SS1+ Wj operation, thAn output unit sequentially outputs D '═ C and C' ═ B<<<9, B 'a and a' TT1 are written into the general register file at the hash value of the block;
first, theRow of row reconfigurable array operationThe data loading unit loads the hash value EFGH in the general register file; first, theThe arithmetic units complete the operations of Boolean functions GGj (E, F and G), TT2 ← GGj (E, F and G) + H + SS1+ Wj, straight-through E, F and G in turn;
first, theRow of row reconfigurable array operationThe arithmetic units complete the Boolean function replacement function E ← P0(TT2), F<<<19 operation, the firstAn output unit successively converts outputs E ' ═ E ← P0(TT2), F ' ═ E, G ' ═ F ← F ═ F-<<<19 and H' G are written to the general register file at the hash value of the block; repeating steps 64 to j 15;
step 65: for the 5p configuration flow chart, p is more than or equal to 1 and less than or equal to M; the (5p-3) th and (5p-2) th reconfigurable array blocks are written into the extended word block of the message in the general register file; the second of the 5 p-th reconfigurable array blocksRow of row reconfigurable array operationThe hash value ADE of the slave general register file of the data loading unit and a constant Tj, j is more than or equal to 16<64; first, theThe operation units complete SS1 ← ((A)<<<12)+E+((Tj<<<j))<<<7,And SS2+ D operation;
first, theRow of row reconfigurable array operationThe data load unit derives the hash value BC and the message extension words Wj and W 'from the general register file'j,16≤j<64; first, theThe arithmetic units complete the Boolean function FFj (A, B, C), TT1 ← FFj (A, B, C) + D + SS2+ W'j,B<<<9, SS1+ Wj operation, thAn output unit sequentially outputs D '═ C and C' ═ B<<<9, B 'a and a' TT1 are written into the general register file at the hash value of the block;
first, theRow of row reconfigurable array operationThe data loading unit loads the hash value EFGH in the general register file; first, theThe arithmetic units complete operations of Boolean functions GGi (E, F, G), TT2 ← GGj (E, F, G) + H + SS1+ Wj, direct E, F and G in turn;
first, theRow of row reconfigurable array operationThe arithmetic units complete the Boolean function replacement function E ← P0(TT2), F<<<19 operation, the firstAn output unit successively converts outputs E ' ═ E ← P0(TT2), F ' ═ E, G ' ═ F ← F ═ F-<<<19 and H' G are written to the general register file at the hash value of the block; repeating step 65 until j is 63;
and step 66: for the 5M +1 configuration flow chart, the 5M +1 configuration flow chart reads the 5M configuration flow chart and the 5M-5 configuration flow chart writes to the 5M +1 reconfigurable array block of hash values in the general register fileRow of row reconfigurable array operationThe data load unit writes the hash value ABCD from the 5M configuration flow chart into the general register fileThe arithmetic units are configured in a direct-through mode;
first, theRow of row reconfigurable array operationThe data loading unit reads the hash values A ', B', C 'and D' from the 5M-5 th reconfigurable array block general register fileThe operation units complete in sequenceFirst, theThe data output unit sends the hash value into an output first-in first-out register array and writes the hash value into a general register file at the same time; repeating the steps 66 to EFGH to complete the same operation.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811514910.6A CN109672524B (en) | 2018-12-12 | 2018-12-12 | SM3 algorithm round iteration system and iteration method based on coarse-grained reconfigurable architecture |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811514910.6A CN109672524B (en) | 2018-12-12 | 2018-12-12 | SM3 algorithm round iteration system and iteration method based on coarse-grained reconfigurable architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109672524A CN109672524A (en) | 2019-04-23 |
CN109672524B true CN109672524B (en) | 2021-08-20 |
Family
ID=66143706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811514910.6A Active CN109672524B (en) | 2018-12-12 | 2018-12-12 | SM3 algorithm round iteration system and iteration method based on coarse-grained reconfigurable architecture |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109672524B (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110059493B (en) * | 2019-04-10 | 2023-04-07 | 无锡沐创集成电路设计有限公司 | SKINNY-128-128 encryption algorithm implementation method and system based on coarse-grained reconfigurable computing unit |
CN111008133B (en) * | 2019-11-29 | 2021-04-27 | 中国科学院计算技术研究所 | Debugging method and device for coarse-grained data flow architecture execution array |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508816A (en) * | 2011-11-15 | 2012-06-20 | 东南大学 | Configuration method applied to coarse-grained reconfigurable array |
CN103984560A (en) * | 2014-05-30 | 2014-08-13 | 东南大学 | Embedded reconfigurable system based on large-scale coarseness and processing method thereof |
CN105487838A (en) * | 2015-11-23 | 2016-04-13 | 上海交通大学 | Task-level parallel scheduling method and system for dynamically reconfigurable processor |
CN105867994A (en) * | 2016-04-20 | 2016-08-17 | 上海交通大学 | Instruction scheduling optimization method for coarse-grained reconfigurable architecture complier |
CN106155979A (en) * | 2016-05-19 | 2016-11-23 | 东南大学—无锡集成电路技术研究所 | A kind of DES algorithm secret key based on coarseness reconstruction structure extension system and extended method |
CN108616348A (en) * | 2018-04-19 | 2018-10-02 | 清华大学无锡应用技术研究院 | The method and system of security algorithm, decipherment algorithm are realized using reconfigurable processor |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008005020A (en) * | 2006-06-20 | 2008-01-10 | Matsushita Electric Ind Co Ltd | Programmable logic circuit |
CN102073481B (en) * | 2011-01-14 | 2013-07-03 | 上海交通大学 | Multi-kernel DSP reconfigurable special integrated circuit system |
CN102156666B (en) * | 2011-04-20 | 2012-11-28 | 上海交通大学 | Temperature optimizing method for resource scheduling of coarse reconfigurable array processor |
CN102567279B (en) * | 2011-12-22 | 2015-03-04 | 清华大学 | Generation method of time sequence configuration information of dynamically reconfigurable array |
JP6587188B2 (en) * | 2015-06-18 | 2019-10-09 | パナソニックIpマネジメント株式会社 | Random number processing apparatus, integrated circuit card, and random number processing method |
CN105975251B (en) * | 2016-05-19 | 2018-10-02 | 东南大学—无锡集成电路技术研究所 | A kind of DES algorithm wheel iteration systems and alternative manner based on coarseness reconstruction structure |
-
2018
- 2018-12-12 CN CN201811514910.6A patent/CN109672524B/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508816A (en) * | 2011-11-15 | 2012-06-20 | 东南大学 | Configuration method applied to coarse-grained reconfigurable array |
CN103984560A (en) * | 2014-05-30 | 2014-08-13 | 东南大学 | Embedded reconfigurable system based on large-scale coarseness and processing method thereof |
CN105487838A (en) * | 2015-11-23 | 2016-04-13 | 上海交通大学 | Task-level parallel scheduling method and system for dynamically reconfigurable processor |
CN105867994A (en) * | 2016-04-20 | 2016-08-17 | 上海交通大学 | Instruction scheduling optimization method for coarse-grained reconfigurable architecture complier |
CN106155979A (en) * | 2016-05-19 | 2016-11-23 | 东南大学—无锡集成电路技术研究所 | A kind of DES algorithm secret key based on coarseness reconstruction structure extension system and extended method |
CN108616348A (en) * | 2018-04-19 | 2018-10-02 | 清华大学无锡应用技术研究院 | The method and system of security algorithm, decipherment algorithm are realized using reconfigurable processor |
Also Published As
Publication number | Publication date |
---|---|
CN109672524A (en) | 2019-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10534839B2 (en) | Method for matrix by vector multiplication for use in artificial neural network | |
CN110321162B (en) | Present encryption algorithm implementation method and system based on coarse-granularity reconfigurable computing unit | |
CN105335331B (en) | A kind of SHA256 realization method and systems based on extensive coarseness reconfigurable processor | |
US7856102B2 (en) | Methods and apparatus for providing a message authentication code using a pipeline | |
CN105912501B (en) | A kind of SM4-128 Encryption Algorithm realization method and systems based on extensive coarseness reconfigurable processor | |
CN110059493B (en) | SKINNY-128-128 encryption algorithm implementation method and system based on coarse-grained reconfigurable computing unit | |
CN105975251B (en) | A kind of DES algorithm wheel iteration systems and alternative manner based on coarseness reconstruction structure | |
CN103218348B (en) | Fast Fourier Transform (FFT) disposal route and system | |
CN109672524B (en) | SM3 algorithm round iteration system and iteration method based on coarse-grained reconfigurable architecture | |
CN110784307B (en) | Lightweight cryptographic algorithm SCENERY implementation method, device and storage medium | |
CN112464296B (en) | Large integer multiplier hardware circuit for homomorphic encryption technology | |
CN108959168B (en) | SHA512 full-flow water circuit based on-chip memory and implementation method thereof | |
CN111563281B (en) | Processor supporting multiple encryption and decryption algorithms and implementation method thereof | |
CN103761068A (en) | Optimized Montgomery modular multiplication method, optimized modular square method and optimized modular multiplication hardware | |
KR102075848B1 (en) | Method, Apparatus and Recording Medium Of Polynomial Operation Optimization Processing | |
KR20230141045A (en) | Crypto-processor Device and Data Processing Apparatus Employing the Same | |
CN117407640A (en) | Matrix calculation method and device | |
CN106021171A (en) | An SM4-128 secret key extension realization method and system based on a large-scale coarseness reconfigurable processor | |
JP2015503785A (en) | FFT / DFT reverse sorting system, method, and operation system thereof | |
CN106155979B (en) | A kind of DES algorithm secret key expansion system and extended method based on coarseness reconstruction structure | |
CN112003688A (en) | CUDA-based data encryption and decryption processing method and system | |
RU120303U1 (en) | DEVICE FOR TRANSFORMING DATA BLOCKS DURING ENCRYPTION | |
CN112134691B (en) | NLCS block cipher realization method, device and medium with repeatable components | |
CN111368250B (en) | Data processing system, method and equipment based on Fourier transformation/inverse transformation | |
Järvinen et al. | Efficient byte permutation realizations for compact AES implementations |
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 |