CN117349904A - Method for realizing software encryption processing based on FPGA - Google Patents
Method for realizing software encryption processing based on FPGA Download PDFInfo
- Publication number
- CN117349904A CN117349904A CN202311640873.4A CN202311640873A CN117349904A CN 117349904 A CN117349904 A CN 117349904A CN 202311640873 A CN202311640873 A CN 202311640873A CN 117349904 A CN117349904 A CN 117349904A
- Authority
- CN
- China
- Prior art keywords
- fpga
- dna
- bit
- bit width
- dna number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000012545 processing Methods 0.000 title claims abstract description 45
- 238000013475 authorization Methods 0.000 claims abstract description 16
- 230000008569 process Effects 0.000 claims description 11
- 238000003672 processing method Methods 0.000 claims description 5
- 238000006467 substitution reaction Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 238000009825 accumulation Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 12
- 238000013461 design Methods 0.000 description 8
- 238000005429 filling process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241000894006 Bacteria Species 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Storage Device Security (AREA)
Abstract
The invention relates to a method for realizing software encryption processing based on an FPGA, wherein the method comprises the following steps: the method comprises the steps of (1) powering up an FPGA to obtain local information; (2) Judging the DNA type of the current FPGA, if the DNA type is a first DNA number, entering the step (3), and if the DNA type is a second DNA number, entering the step (4); (3) Filling the first DNA number according to a first preset rule; (4) Filling the second DNA number according to a second preset rule; (5) Encrypting the data after the filling processing according to the DES encryption principle to obtain a software authorization code; (6) And matching the obtained software authorization code with the local authorization code, if the matching is consistent, the FPGA works normally, otherwise, the FPGA stops working.
Description
Technical Field
The invention relates to the technical field of FPGA (field programmable gate array), in particular to the technical field of FPGA encryption processing, and specifically relates to a method for realizing software encryption processing based on FPGA.
Background
In the process of cooperation of two or more companies required for project development, exchange of engineering source codes among the companies often occurs, but some engineering source codes have soft core part with high commercial value. At present, the code encryption mechanism such as ngc, edif, dcp and other netlist type packages are difficult to achieve the effect of protecting the prokaryotes. Although the internal structure of the soft core cannot be known, the operation usage of the soft core can be known by referring to the logic in the external interface and the source code, and the software can be copied and applied to other products of own companies.
The DNA bit width of the Xilinx FPGA is inconsistent, the DNA bit width is 57bits before 7series and 7series, but 96bits under the Ultrascale architecture. The current DNA encryption authorization function can only aim at one of the DNA encryption authorization functions, cannot be compatible with two bit widths, and has certain limitation.
Disclosure of Invention
The invention aims to overcome the defects of the prior art and provides a method, a device, a processor and a computer readable storage medium for realizing software encryption processing based on an FPGA.
In order to achieve the above object, the method, the device, the processor and the computer readable storage medium thereof for implementing software encryption processing based on FPGA according to the present invention are as follows:
the method for realizing software encryption processing based on the FPGA is mainly characterized by comprising the following steps:
(1) The FPGA is powered on to acquire local information;
(2) Judging the DNA type of the current FPGA, if the DNA type is the first DNA number, entering the step (3), and if the DNA type is the second DNA number, entering the step (4);
(3) Filling the first DNA number according to a first preset rule, and entering a step (5) after finishing;
(4) Filling the second DNA number according to a second preset rule, and entering a step (5) after finishing;
(5) Encrypting the data after the filling processing according to the DES encryption principle to obtain a software authorization code;
(6) And matching the obtained software authorization code with the local authorization code, if the matching is consistent, the FPGA works normally, otherwise, the FPGA stops working.
Preferably, the method further comprises, before step (1):
(0) The following information is provided locally:
xilinx DNA type: 1bit wide 1:57bit 0:96bit;
software authorization code type: 64 bits; and
the FPGA DNA number is provided using a directional encryptor.
Preferably, the step (2) specifically includes:
when the DNA type of the FPGA is the first DNA number, the bit width of the current DNA number is 57 bits;
when the DNA type of the FPGA is the second DNA number, the bit width of the current DNA number is 96bits.
More preferably, when the bit width of the DNA number is 57bits, it is bit width-stuffed: 57bit+57bit=14bit, because the total bit width is less than 128bits, then intercept low order bit width 128 bits-114 bit=14bit and fill again first DNA number, specifically:
so that the bit width of the first DNA number as described in the present is filled with 128 bits.
More preferably, when the bit width of the DNA number is 96bits, it is bit width-stuffed: 96bit+96bit=192 bit, because the total bit width is higher than 128bit, then intercept the 128 bit-96 bit=32 bit of low order bit width and pack again the second DNA number, specifically:
so that the bit width of the presently described second DNA number is filled with 128 bits.
Preferably, the step (5) specifically includes the following steps:
(5.1) grouping the data subjected to the filling processing according to 64 bits to obtain two plaintext groups;
(5.2) encrypting the plaintext block in a bit-wise substitution or exchange manner by using a 64-bit key, wherein the processing rule is as follows:
performing bit-wise exchange according to the sequence to obtain two groups of processed data;
(5.3) carrying out exclusive or processing on the data obtained in the steps and the secret key to obtain two groups of ciphertext;
and (5.4) performing accumulation processing on the two groups of ciphertext to obtain a final group of ciphertext, wherein the ciphertext is the software authorization code, so that the DES encryption processing is completed.
The device for realizing the FPGA-based software encryption processing method is mainly characterized by comprising the following components:
a processor configured to execute computer-executable instructions;
and a memory storing one or more computer executable instructions which, when executed by the processor, implement the steps of the method for implementing software encryption processing based on FPGA described above.
The processor for realizing the FPGA-based software encryption processing method is mainly characterized in that the processor is configured to execute computer executable instructions, and when the computer executable instructions are executed by the processor, the steps of the FPGA-based software encryption processing method are realized.
The computer readable storage medium is mainly characterized in that the computer program is stored thereon, and the computer program can be executed by a processor to realize the steps of the method for realizing the software encryption processing based on the FPGA.
The method, the device, the processor and the computer readable storage medium for realizing the software encryption processing based on the FPGA are adopted, and a layer of DNA encryption authorization function module is packaged in a soft core or dcp module with high commercial value, the function of the module is to detect the FPGA DNA number and compare the FPGA DNA number with the authorized DNA number, and an authorization sign signal is generated after the FPGA DNA number and the authorized DNA number are consistent with each other, so that the logic can utilize the sign signal to realize the situation that the code can only work normally when authorized. Because the DNA number of each FPGA has uniqueness and can not be modified, the outside of the module is not provided with a modified interface after being packaged, and even if a user takes the functional source code, the inner core can not be copied to other FPGAs to operate, so that the function of effectively protecting the intellectual property of the FPGA is achieved.
Drawings
Fig. 1 is a flow chart of a method of the present invention for implementing software encryption processing based on FPGAs.
FIG. 2 is a schematic diagram of a software interface for performing encryption processing in an embodiment of the present invention.
Detailed Description
In order to more clearly describe the technical contents of the present invention, a further description will be made below in connection with specific embodiments.
Before describing in detail embodiments that are in accordance with the present invention, it should be observed that the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus.
Before formally starting the software encryption processing for the FPGA, the following information needs to be provided locally:
1) Xilinx DNA type: 1bit wide 1:57bit 0:96bit;
2) Software authorization code: 64bit
The software authorization code is mainly obtained by:
1) The user (company) provides the FPGA DNA number to the encryptor (company);
2) The encryptor generates a software authorization code from the DNA number and provides it to the user.
Referring to fig. 1, the method for implementing software encryption processing based on the FPGA includes the following steps:
(1) The FPGA is powered on to acquire local information;
(2) Judging the DNA type of the current FPGA, if the DNA type is the first DNA number, entering the step (3), and if the DNA type is the second DNA number, entering the step (4);
(3) Filling the first DNA number according to a first preset rule, and entering a step (5) after finishing;
(4) Filling the second DNA number according to a second preset rule, and entering a step (5) after finishing;
(5) Encrypting the data after the filling processing according to the DES encryption principle to obtain a software authorization code;
(6) And matching the obtained software authorization code with the local authorization code, if the matching is consistent, the FPGA works normally, otherwise, the FPGA stops working.
As a preferred embodiment of the present invention, the method further comprises, before step (1):
(0) The following information is provided locally:
xilinx DNA type: 1bit wide 1:57bit 0:96bit;
software authorization code type: 64 bits; and
the FPGA DNA number is provided using a directional encryptor.
As a preferred embodiment of the present invention, the step (2) specifically includes:
when the DNA type of the FPGA is the first DNA number, the bit width of the current DNA number is 57 bits;
when the DNA type of the FPGA is the second DNA number, the bit width of the current DNA number is 96bits.
As a preferred embodiment of the present invention, when the bit width of the DNA number is 57bits, the step (3) is specifically to perform the filling process on the first DNA number in the following manner:
so that the bit width of the first DNA number as described in the present is filled with 128 bits.
As a preferred embodiment of the present invention, when the bit width of the DNA number is 96bits, the step (4) is specifically to perform the filling process on the second DNA number in the following manner:
so that the bit width of the presently described second DNA number is filled with 128 bits.
As a preferred embodiment of the present invention, the step (5) specifically includes the steps of:
(5.1) grouping the data subjected to the filling processing according to 64 bits to obtain a plaintext group;
(5.2) encrypting the plaintext group by adopting a 64bit key in a bit substitution or exchange mode to obtain two groups of ciphertext;
and (5.3) performing accumulation processing on the two groups of ciphertext to obtain a final group of ciphertext, wherein the ciphertext is the software authorization code, so that the DES encryption processing is completed.
Therefore, the technical scheme adopted by the method for realizing the software encryption processing based on the FPGA in the technical scheme is as follows:
1) After the FPGA is electrified, local information is acquired;
2) Reading the DNA number of the FPGA by using the primitives through the DNA type, and filling according to a certain rule, wherein the bit width is 128bits after filling;
3) Performing DES encryption on the filled 128bits to obtain an authorization code;
comparing the authorization code obtained in the step 3) with a local authorization code, if the authorization code is consistent, the FPGA is successfully matched, and the FPGA can work normally, otherwise, the FPGA stops working.
In practical application, the filling rule in the technical scheme is specifically as follows:
the filling rule is based on the principle that the high and low bit of the DNA number are reversed and sequentially supplemented, for example, 4bit data are decimal expressed as 5, binary expressed as 4'b0101, and after the high and low bit reversal filling is carried out according to the filling rule, the decimal becomes 10, and the binary becomes 4' b1010. Because the DNA number has two kinds of 57bit and 96bit, the filling mode has two kinds as follows:
1) And after the order is reversed and the total bit width is not up to 128bits, refilling in a low-bit interception mode. When the DNA is 57bits wide, after the supplement, the bit width is 57+57=114 bits, which is lower than 128bits, and the lower bit width is cut off to 128-114=14 bits for refilling, as shown below;
for example, the DNA code is 57'h002000001557426 and the data after filling is 128' h642d90baaa0000010002000001557426.
2) And after the order is reversed and the total bit width reaches 128bits, refilling in a low-bit interception mode. When the DNA is 96bits wide, after supplementing, the bit width is 96+96=192 bits, and is higher than 128bits, and the lower bit width is cut to 128-96=32 bits for filling, as shown below;
for example, the DNA code is 96'h40020000015574264C2163C5, and the data after filling is 128' h 3C6843240020000015574264C2163C5.
The DES encryption principle is that filled data are grouped according to 64 bits to obtain a plaintext group, the plaintext group is encrypted by adopting a 64bit key in a bit substitution or exchange mode to obtain two groups of ciphertext, and then the two groups of ciphertext are accumulated to finally obtain a group of ciphertext, namely the software authorization code.
The encryption principle adopts simplified DES encryption, and the main steps are as follows:
1) Grouping the filled data according to the high and low 64 bits to obtain two plaintext groups;
2) Processing the two plaintext groups in the step 1) according to a replacement rule to obtain two groups of processed data;
3) Performing exclusive or processing on the data obtained in the step 2) and the secret key to obtain two groups of ciphertext;
4) Accumulating the two groups of ciphertext in the step 3) to obtain a group of ciphertext, namely the software authorization code.
The substitution rule is to follow 64 bits
The order of (2) is bit-wise exchanged, i.e., the 1 st bit of the input 64-bit plaintext is replaced with 40 th bit, the 2 nd bit is replaced with 8 th bit, and the 3 rd bit is replaced with 48 th bit. Similarly, the last bit is the original 7 th bit.
For example, the data after filling is 128' ha3c6843240020000015574264c2163c5, the data can be divided into 64' ha3c6843240020000 and 64' h015574264c2163c5 according to the high-low 64bit group, and the two groups of plain texts are subjected to permutation treatment, and the two groups of plain texts are 64' hd40090e080601048 and 64' h12083601c779606b after permutation. Assuming that the 64bit key is 64' h5AA5_A5A5_A5A_AA55, the two sets of permuted data are exclusive-or processed with the key to obtain two sets of ciphertext, namely 64' h8ea 535da3aba1d and 64' h 48ade93a49d 233e. And finally, accumulating the two groups of ciphertext to obtain a final ciphertext, namely an authorization code, which is 64' hd752c8ea775e 84fb.
In one embodiment of the present invention, the encryption process is implemented as follows:
the user needs to provide the encryption party with FPGA DNA numbers, and the encryption party finally provides the user with the following files:
5) A dcp file;
6) The Black box port declares the file;
7) An authorization code.
After the user receives the data, two situations generally exist, namely, the function of the encryption party is added into self engineering design, the user does not have self engineering design, only the function provided by the encryption party is used, and the two situations are specifically realized as follows:
1) If the second condition is the second condition, a new project is required to be established, and a top-level file is generated according to the black box port declaration file. In the first case, starting from 2);
2) According to the black box port declaration file, carrying out modular instantiation in engineering design;
3) Importing a black box file and a dcp file into engineering design;
4) Integrating engineering design and laying out and wiring;
5) Generating bit and BSP files for subsequent debugging and use;
6) In the debugging process, when the FPGA DNA number is consistent with that provided by a user to an encryption party, the FPGA works normally, otherwise, the FPGA stops working, and the property of FPGA software is effectively protected.
There are currently two methods for importing black box files and dcp files into engineering designs: one is directly by adding the v file, i.e., the black box file and the dcp file are added to the engineering design by passing the add sources; one is to prepare a tcl file in which the reading position of the dcp file is formulated, import the black box file and tcl file into the engineering design by adding v file, and then associate the imported tcl file in tcl. Pre in opt_Deing in Implement Setting, as shown by the marked box in FIG. 2.
The device for realizing the FPGA-based software encryption processing method comprises the following steps:
a processor configured to execute computer-executable instructions;
and a memory storing one or more computer executable instructions which, when executed by the processor, implement the steps of the method for implementing software encryption processing based on FPGA described above.
The processor is configured to execute computer executable instructions, and when the computer executable instructions are executed by the processor, the steps of the method for implementing software encryption processing based on the FPGA are implemented.
The computer readable storage medium having stored thereon a computer program executable by a processor to perform the steps of the method for implementing a software encryption process based on FPGA described above.
Any process or method descriptions in flow charts or otherwise described herein may be understood as representing modules, segments, or portions of code which include one or more executable instructions for implementing specific logical functions or steps of the process, and further implementations are included within the scope of the preferred embodiment of the present invention in which functions may be executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved, as would be understood by those reasonably skilled in the art of the present invention.
It is to be understood that portions of the present invention may be implemented in hardware, software, firmware, or a combination thereof. In the above embodiments, the various steps or methods may be implemented in software or firmware stored in a memory and executed by a suitable instruction execution device.
Those of ordinary skill in the art will appreciate that all or a portion of the steps carried out in the method of the above-described embodiments may be implemented by a program to instruct related hardware, and the program may be stored in a computer readable storage medium, where the program when executed includes one or a combination of the steps of the method embodiments.
The above-mentioned storage medium may be a read-only memory, a magnetic disk or an optical disk, or the like.
In the description of the present specification, reference to the terms "one embodiment," "some embodiments," "examples," "specific examples," or "embodiments," etc., means that a particular feature, structure, material, or characteristic described in connection with the embodiment or example is included in at least one embodiment or example of the invention. In this specification, schematic representations of the above terms do not necessarily refer to the same embodiments or examples. Furthermore, the particular features, structures, materials, or characteristics described may be combined in any suitable manner in any one or more embodiments or examples.
While embodiments of the present invention have been shown and described above, it will be understood that the above embodiments are illustrative and not to be construed as limiting the invention, and that variations, modifications, alternatives and variations may be made to the above embodiments by one of ordinary skill in the art within the scope of the invention.
The method, the device, the processor and the computer readable storage medium for realizing the software encryption processing based on the FPGA are adopted, and a layer of DNA encryption authorization function module is packaged in a soft core or dcp module with high commercial value, the function of the module is to detect the FPGA DNA number and compare the FPGA DNA number with the authorized DNA number, and an authorization sign signal is generated after the FPGA DNA number and the authorized DNA number are consistent with each other, so that the logic can utilize the sign signal to realize the situation that the code can only work normally when authorized. Because the DNA number of each FPGA has uniqueness and can not be modified, the outside of the module is not provided with a modified interface after being packaged, and even if a user takes the functional source code, the inner core can not be copied to other FPGAs to operate, so that the function of effectively protecting the intellectual property of the FPGA is achieved.
In this specification, the invention has been described with reference to specific embodiments thereof. It will be apparent, however, that various modifications and changes may be made without departing from the spirit and scope of the invention. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
Claims (9)
1. The method for realizing the software encryption processing based on the FPGA is characterized by comprising the following steps:
(1) The FPGA is powered on to acquire local information;
(2) Judging the DNA type of the current FPGA, if the DNA type is the first DNA number, entering the step (3), and if the DNA type is the second DNA number, entering the step (4);
(3) Filling the first DNA number according to a first preset rule, and entering a step (5) after finishing;
(4) Filling the second DNA number according to a second preset rule, and entering a step (5) after finishing;
(5) Encrypting the data after the filling processing according to the DES encryption principle to obtain a software authorization code;
(6) And matching the obtained software authorization code with the local authorization code, if the matching is consistent, the FPGA works normally, otherwise, the FPGA stops working.
2. The method for implementing software encryption processing based on FPGA of claim 1, further comprising, before step (1):
(0) The following information is provided locally:
xilinx DNA type: 1bit wide 1:57bit 0:96bit;
software authorization code type: 64 bits; and
the FPGA DNA number is provided using a directional encryptor.
3. The method for implementing software encryption processing based on FPGA of claim 1, wherein the step (2) specifically includes:
when the DNA type of the FPGA is the first DNA number, the bit width of the current DNA number is 57 bits;
when the DNA type of the FPGA is the second DNA number, the bit width of the current DNA number is 96bits.
4. The method for implementing software encryption processing based on FPGA of claim 3, wherein when the bit width of the DNA number is 57bits, it is bit width-stuffed: 57bit+57bit=14bit, because the total bit width is less than 128bits, then intercept low order bit width 128 bits-114 bit=14bit and fill again first DNA number, specifically:
so that the bit width of the first DNA number as described in the present is filled with 128 bits.
5. The method for implementing software encryption processing based on FPGA of claim 3, wherein when the bit width of the DNA number is 96bits, it is bit width filled: 96bit+96bit=192 bit, because the total bit width is higher than 128bit, then intercept the 128 bit-96 bit=32 bit of low order bit width and pack again the second DNA number, specifically:
so that the bit width of the presently described second DNA number is filled with 128 bits.
6. The method for implementing software encryption processing based on FPGA according to claim 4 or 5, wherein said step (5) specifically comprises the steps of:
(5.1) grouping the data subjected to the filling processing according to 64 bits to obtain two plaintext groups;
(5.2) encrypting the plaintext block in a bit-wise substitution or exchange manner by using a 64-bit key, wherein the processing rule is as follows:
;
performing bit-wise exchange according to the sequence to obtain two groups of processed data;
(5.3) carrying out exclusive or processing on the data obtained in the steps and the secret key to obtain two groups of ciphertext;
and (5.4) performing accumulation processing on the two groups of ciphertext to obtain a final group of ciphertext, wherein the ciphertext is the software authorization code, so that the DES encryption processing is completed.
7. An apparatus for implementing an FPGA-based software encryption processing method, wherein the apparatus includes:
a processor configured to execute computer-executable instructions;
a memory storing one or more computer-executable instructions which, when executed by the processor, perform the steps of the method of implementing software encryption processing based on FPGA of any one of claims 1 to 6.
8. A processor for implementing a method for implementing a software encryption process based on FPGA, said processor being configured to execute computer executable instructions which, when executed by said processor, implement the steps of the method for implementing a software encryption process based on FPGA according to any one of claims 1 to 6.
9. A computer-readable storage medium, having stored thereon a computer program executable by a processor to perform the steps of the method of implementing a software encryption process based on an FPGA of any one of claims 1 to 6.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311640873.4A CN117349904B (en) | 2023-12-04 | 2023-12-04 | Method for realizing software encryption processing based on FPGA |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311640873.4A CN117349904B (en) | 2023-12-04 | 2023-12-04 | Method for realizing software encryption processing based on FPGA |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117349904A true CN117349904A (en) | 2024-01-05 |
CN117349904B CN117349904B (en) | 2024-02-09 |
Family
ID=89371368
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311640873.4A Active CN117349904B (en) | 2023-12-04 | 2023-12-04 | Method for realizing software encryption processing based on FPGA |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117349904B (en) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150100793A1 (en) * | 2013-10-07 | 2015-04-09 | Microsemi SoC Corporation | Method of Improving FPGA Security Using Authorization Codes |
CN105446922A (en) * | 2014-08-11 | 2016-03-30 | 炬力集成电路设计有限公司 | PCB board and device compatible with DDRs of different bit widths |
US20180034793A1 (en) * | 2016-08-01 | 2018-02-01 | The Aerospace Corporation | High assurance configuration security processor (hacsp) for computing devices |
US20180196951A1 (en) * | 2017-01-12 | 2018-07-12 | Microsoft Technology Licensing, Llc | Field-Programmable Gate Array Virtualization |
CN109711183A (en) * | 2018-12-28 | 2019-05-03 | 陕西烽火电子股份有限公司 | A kind of program encryption method based on chip DNA |
CN110704869A (en) * | 2019-09-12 | 2020-01-17 | 苏州浪潮智能科技有限公司 | Encryption method and system |
US20200082074A1 (en) * | 2018-09-06 | 2020-03-12 | International Business Machines Corporation | Proactive ransomware defense |
CN111259416A (en) * | 2020-01-13 | 2020-06-09 | 湖北大学 | Multi-algorithm security encryption authentication system and method based on FPGA |
CN113239370A (en) * | 2021-04-29 | 2021-08-10 | 江苏无线电厂有限公司 | Embedded software encryption design method based on SOC hardware identification code |
CN113656845A (en) * | 2021-08-18 | 2021-11-16 | 福州锐迪优通讯科技有限公司 | FPGA program volume production batch encryption method |
CN114036586A (en) * | 2021-11-14 | 2022-02-11 | 中国电子科技集团公司第五十四研究所 | FPGA software authorization method |
CN116756707A (en) * | 2023-06-25 | 2023-09-15 | 中国电子科技集团公司第五十四研究所 | Multichannel software radio platform FPGA code intellectual property protection method |
-
2023
- 2023-12-04 CN CN202311640873.4A patent/CN117349904B/en active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150100793A1 (en) * | 2013-10-07 | 2015-04-09 | Microsemi SoC Corporation | Method of Improving FPGA Security Using Authorization Codes |
CN105446922A (en) * | 2014-08-11 | 2016-03-30 | 炬力集成电路设计有限公司 | PCB board and device compatible with DDRs of different bit widths |
US20180034793A1 (en) * | 2016-08-01 | 2018-02-01 | The Aerospace Corporation | High assurance configuration security processor (hacsp) for computing devices |
US20180196951A1 (en) * | 2017-01-12 | 2018-07-12 | Microsoft Technology Licensing, Llc | Field-Programmable Gate Array Virtualization |
US20200082074A1 (en) * | 2018-09-06 | 2020-03-12 | International Business Machines Corporation | Proactive ransomware defense |
CN109711183A (en) * | 2018-12-28 | 2019-05-03 | 陕西烽火电子股份有限公司 | A kind of program encryption method based on chip DNA |
CN110704869A (en) * | 2019-09-12 | 2020-01-17 | 苏州浪潮智能科技有限公司 | Encryption method and system |
CN111259416A (en) * | 2020-01-13 | 2020-06-09 | 湖北大学 | Multi-algorithm security encryption authentication system and method based on FPGA |
CN113239370A (en) * | 2021-04-29 | 2021-08-10 | 江苏无线电厂有限公司 | Embedded software encryption design method based on SOC hardware identification code |
CN113656845A (en) * | 2021-08-18 | 2021-11-16 | 福州锐迪优通讯科技有限公司 | FPGA program volume production batch encryption method |
CN114036586A (en) * | 2021-11-14 | 2022-02-11 | 中国电子科技集团公司第五十四研究所 | FPGA software authorization method |
CN116756707A (en) * | 2023-06-25 | 2023-09-15 | 中国电子科技集团公司第五十四研究所 | Multichannel software radio platform FPGA code intellectual property protection method |
Non-Patent Citations (7)
Title |
---|
卢明欣;陈原;秦磊;肖国镇;: "一种基于DNA技术的加密方法", 西安电子科技大学学报, no. 06, 25 December 2006 (2006-12-25) * |
唐子贤;: "基于Device DNA的FPGA安全设计", 九江学院学报(自然科学版), no. 03, pages 115 * |
李岳: "《胚胎型仿生自修复技术》", 31 August 2014, 国防工业出版社, pages: 129 - 136 * |
王沁;孙富明;李磊;李笑盈;张晓彤;: "FPGA设计安全性综述", 小型微型计算机系统, no. 07 * |
苗三立;左金印;宋宇飞;: "基于FPGA的RC4加密算法设计及实现", 计算机测量与控制, no. 02 * |
蒲恺;徐文杰;李大鹏;李玉发;: "基于FPGA的知识产权保护方法研究及实现", 电子技术, no. 04 * |
陈容;陈岚;WAHLA ARFAN HAIDER;: "基于公式递推法的可变计算位宽的循环冗余校验设计与实现", 电子与信息学报, no. 05 * |
Also Published As
Publication number | Publication date |
---|---|
CN117349904B (en) | 2024-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI469609B (en) | Key recovery mechanism for cryptographic systems | |
CN101401105B (en) | Encryption apparatus and method for providing an encrypted file system | |
CN114258660A (en) | Cryptographic architecture for cryptographic permutations | |
CN102163268B (en) | The term of execution verifying software code the method and apparatus of integrality | |
US6691921B2 (en) | Information processing device | |
US10176121B2 (en) | Apparatus and method for memory address encryption | |
EP3499788B1 (en) | Dynamic masking | |
US20070266067A1 (en) | Pseudo Random Number Generator | |
US10210776B2 (en) | DPA protection of a rijndael algorithm | |
CN111866018B (en) | Data information encryption transmission method and device, computer equipment and storage medium | |
US20200097256A1 (en) | A calculation device for encoded addition | |
US20170063524A1 (en) | Protection of a rijndael algorithm | |
CN107534549B (en) | Readable storage medium, method and system for encrypting data stream block | |
US11380379B2 (en) | PUF applications in memories | |
US11520708B2 (en) | Memory system with an incremental hashing operation and method | |
CN117349904B (en) | Method for realizing software encryption processing based on FPGA | |
US20070005991A1 (en) | Method for checking the data integrity of software in control appliances | |
EP3891925A1 (en) | A computation device using shared shares | |
US20210240861A1 (en) | Data processing device and method for processing secret data | |
CN113475034B (en) | Circuit compiling apparatus and circuit evaluating apparatus | |
US20140105402A1 (en) | Data protection using key translation | |
CN112311529A (en) | Data encryption method, data decryption method and data processing method of database | |
CN100359494C (en) | Electronic file characters internal code transformation encryption method | |
US11354428B2 (en) | Data values encryption method | |
CN113381854B (en) | Data transmission method, device, equipment and storage medium |
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 |