US10482290B1 - Virtual polymorphic hardware engine - Google Patents
Virtual polymorphic hardware engine Download PDFInfo
- Publication number
- US10482290B1 US10482290B1 US16/193,424 US201816193424A US10482290B1 US 10482290 B1 US10482290 B1 US 10482290B1 US 201816193424 A US201816193424 A US 201816193424A US 10482290 B1 US10482290 B1 US 10482290B1
- Authority
- US
- United States
- Prior art keywords
- memory
- chip
- field programmable
- gate array
- programmable gate
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/75—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 by inhibiting the analysis of circuitry or operation
-
- 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/002—Countermeasures against attacks on cryptographic mechanisms
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2125—Just-in-time application of countermeasures, e.g., on-the-fly decryption, just-in-time obfuscation or de-obfuscation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Definitions
- the present invention presents successful, single defensive countermeasure that can address all of these attributes—polymorphism, or “mutating”, which is the ability to change (perhaps an encryption to another method of encryption or key or maybe even hardware functionality) on the fly.
- Polymorphism has two components which when combined make up what the inventors herein call CipherLoc®. The two components are
- the polymorphic cipher engine and the polymorphic hardware engine platforms are designed to work together but are mutually exclusive of each other and can be used separately in a multitude of divergent ways.
- the present invention is directed to the second component—the polymorphic hardware engine.
- the present invention literally changes the operational characteristics of the hardware upon which the polymorphic cipher engine runs.
- the concept is specifically applied to hardware, specifically computers themselves and in particular some of the chips that comprise the motherboard and peripheral support infrastructure.
- FPGA field programmable gate arrays
- VFPGA FPGA
- NFPGA non-FPGA chip/set
- Firmware is a type of software that provides control, monitoring and data manipulation of engineered products and systems. Firmware is usually held in non-volatile memory devices such as read only memory (ROM), erasable programmable read only memory (EPROM), or flash memory. An FPGA can be emulated by use of firmware on random access memory utilized (RAM) as the ROM or EPROM.
- RAM random access memory utilized
- Virtual field programmable gate array duplicates and/or emulates a field programmable gate array through the use of base hardware and firmware that uses RAM as ROM or EPROM and provides control and monitoring and manipulation through the use of elementary and basic device functionality commands (machine code primitives) to accommodate the needs of polymorphic cipher engine software so that the software achieves the same results as though it had access to programmable logic arrays, gate and logic blocks found in field programmable gate array chips.
- VFPGA Virtual field programmable gate array
- FIG. 1 is a diagram of configurable memory as composed of individual streams.
- FIG. 2 is a graphic depiction of a finite state machine.
- FIG. 3 is a graphic depiction of Linear Reconfiguration.
- FIG. 4 is a graphic depiction of a single stream cipher with changing code key.
- FIG. 5 is a graphic depiction of multiple stream ciphers with changing code keys.
- FIG. 6 is a diagram of several chips connected together in a circuit through a crossbar.
- FIG. 7 is a graphic depiction of the use of multiple seeds or keys to alter the states of a circuit.
- VFPGA Virtual field programmable gate array function
- NFPGA non-field programmable gate array
- the VFPGA achieves all FPGA functionality necessary to support the CPCE by way of a transfer function.
- the transfer function is created by partitioning and loading memory as if it were a Temporally Constrained State Based Machine, as described by Eleftherakis, Hinchey and Holcombe in their 2012 research publication “Software Engineering and Formal Methods” (presented at the 10 th International Conference, SEFM 2012, Thessaloniki, Greece, October 2012 Proceedings), so that in conjunction with one or more microprocessors having one or more cores and one or more memories and either internal or external memory it produces the same effect as an FPGA.
- the shared memory created is useful for inter-process communications (IPC) in the form of a Lookup table (LUT).
- IPC inter-process communications
- LUT Lookup table
- any message can be decomposed into a set of wave forms representing the information in that message.
- any analog wave form that contains information or even response to external stimuli can be represented in the same manner, for example AM and FM radio transmissions.
- Nyquist teaches us via the Nyquist criteria, Bell Laboratories 1932, that any analog signal can be represented by a discrete signal such that the frequency of the discrete signal f d ⁇ 2 f a in which f d is the frequency of the digital equivalent signal and f a is the highest frequency of the analog signal.
- Nyquist instructs us that the equivalence will be more exact for a higher sampling rate. His recommendation was a sampling rate of 10f a , but, the representation of the signal will be more accurate as the multiplier increases towards the limit of infinity ( ⁇ ). Therefore, it is possible to represent either signal in either digital or analog form.
- Messages can be viewed as a sequence of sub-messages further composed of individual blocks and/or symbols. Each symbol is represented by some digital encoding such as ASCII or Unicode.
- the progression of each similar block comprises a sequence of digital signals that can be represented/implemented by a Finite State Machine (FSM) as illustrated in FIG. 2 .
- FSM Finite State Machine
- the Finite State Machine representing the sub-message, consists of independent sequences that can be applied serially from a base state via an IPC in the form of a LUT in the FSM.
- the input to the FSM is the plain text symbol or block and the output is the encrypted cipher text for transmission.
- the FSM represents only a sub-message (portion) of the message
- the FSM is valid for only a portion of the message cycle. It must be replaced with a new FSM for the next sequential sub-message portion of the message.
- Each FSM is non-persistent because it is regularly replaced with a new FSM representing the next sub-message in the message stream.
- the operation of the FSM can be represented by RAM acting as ROM or a circuit. Each state is encoded at a separate address, sequentially/non-sequentially stored in memory, and serially accessed by some addressing scheme. In this manner, memory acts as if it were a hardware implementation of a circuit by encoding the results of that circuit's transfer function.
- the VFPGA can support the concept known as Linear Reconfiguration (LR) as illustrated in FIG. 3 , in a Finite State Machine, which is the practice of changing the configuration of something each time period as is described in U.S. Pat. No. 9,178,514 which is herein incorporated by reference.
- LR Linear Reconfiguration
- PKPA Polymorphic Key Progression Algorithm
- next cipher/key combination would be synchronizing with the data stream while the present cipher/key combination is active. At the end of that period the encryption would immediately change to the next cipher/key data stream as illustrated in FIG. 4 .
- Each of the cipher changes takes place when one of the others is stable. Assuming that the ciphers are applied until the change of ciphers takes place on that stream, the output then changes to the next cipher/key pair in the next stream. The changes take place by the address with each block of memory sequentially selected. Changes can take place in less than a single character so there is no latency seen at the output and overhead takes place when a stream is not active.
- each cipher/key stream could be implemented in one reconfigurable sector. This has the same effect as shown for LR streams with no overhead and latency.
- Each sector is configured and in its turn is used as the stream for data, and then reconfigured when done in order to resynchronize for its next time slot of service.
- one (1) or more processors with one (1) or more cores and configurable/dual-port memory can be used to achieve a mutating cipher.
- VFPGA on a NFPGA chip/set also supports the concept of Dynamic Pin Reassignment (DPR), a Finite State Machine, as is described in U.S. Pat. No. 9,178,514 B1 and is incorporated by reference, which is the dynamic assignment of input and output signals to buses that lead to central signal distribution points: as illustrated in FIG. 6 .
- DPR Dynamic Pin Reassignment
- Finite State Machine a Finite State Machine
- each chip routes its input and output) I/O to the crossbar.
- Data about the source or destination of signals is kept at the crossbar, based on knowledge of the key that is shared between the crossbar and the chips.
- the I/O count for each chip, i is denoted by IO i . Therefore, the total number of wires in the bus to each chip, b i , must be b i ⁇ IO i and, for the entire board, there must be at least B wires on the board, where
- B ⁇ ⁇ i n ⁇ ( bi + 3 ) and the additional wires are for communications with the chip and the randomizing data to the chip.
- Any additional bus connections on the board are used as cryptonulls, routing random, meaningless, data to a chip in order to complicate reconstructing the circuit.
- the assignments, or mappings comprise the state of the circuit connection at any time. The period that a state is valid is determined by applying a reseeding function to a portion of a randomized stream that calculates the next state and the duration of validity.
- DPR has two main applications: speeding development of a circuit, and circuit security.
- Any circuit can be quickly prototyped and produced by implementing the circuit in programmable chips that have the DPR circuitry installed, subject to having enough pins available for the I/O requirements of each individual chip. Any chips that are unused can be depopulated on the board for minimizing the cost of implementation. Having a small set of standard boards that can be mass produced and kept in inventory greatly reduces overhead costs for the first implementation of circuitry. If a product proves successful enough to warrant customized boards, then a second design round can be followed as needed.
- the second application is securing a circuit.
- LR is particularly useful where the hardware does not maintain the same connections and configuration, it is much more difficult to reconstruct the circuit.
- DPR increases the number of connections (c) for each chip (n) to
- a brute force attack requires an average of 1 ⁇ 2 a guesses, a very large number as S increases.
- a brute force attack requires an average of 1 ⁇ 2 a guesses, a very large number as s increases.
- an attacker must know the results from every input/output pair in order to be able to reconstruct the circuit. Missing data from even a single time period renders circuit reconstruction impossible. Such a large number of possibilities make it difficult, if not impossible, to reverse engineer the circuit.
- the virtualization aspect of a VFPGA adds another dimension to the problem making even more complex.
- PCB design is only partially automated, with each layout manually customized for the circuitry of the board, thus, incurring a non-recoverable engineering (NRE) charge for each circuit.
- NRE non-recoverable engineering
- Each change to the circuit result in a new PCB layout and each incurs an additional NRE.
- Developing boards is costly and time intensive, a significant portion of the development budget and time line.
- CipherLoc's Virtual FPGA Polymorphic Hardware Engine on an NFPGA chip/set uses LR and DPR to implement its polymorphic hardware solution and is as secure as a polymorphic key progression algorithm (PKPA) on an FPGA chip.
- PKPA polymorphic key progression algorithm
- DPR provides even better security against circuit re-engineering because:
- the circuit layout is dynamic
- Chip functionality is not readily identified by markings, I/O number, or other physical identifiers,
- System configuration does not depend on data provided by a user. No password or key is known by a human and cannot be compromised,
- Custom testing boards are no longer necessary, eliminating waste on the bench, the storage of old designs, and the security risk of reverse engineering from lab waste.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
Description
f d≥2f a
in which fd is the frequency of the digital equivalent signal and fa is the highest frequency of the analog signal.
Note:
b i ≥IO i
and, for the entire board, there must be at least B wires on the board, where
and the additional wires are for communications with the chip and the randomizing data to the chip. Any additional bus connections on the board are used as cryptonulls, routing random, meaningless, data to a chip in order to complicate reconstructing the circuit.
where wi are the number of wires to/from the chip (i), and IOi are the required number of I/O signals for the chip (i). Further, with proper randomization, the selection changes for every time slot (s) as an independent random variable (IRV). For the length of operation, the number of possible assignments (a) for the circuit I/O is
which increases multiplicatively. With no pseudo random number generation, the only choice for sorting the possible states by brute force attack. A brute force attack requires an average of ½ a guesses, a very large number as s increases. In addition to the large number of possibilities, an attacker must know the results from every input/output pair in order to be able to reconstruct the circuit. Missing data from even a single time period renders circuit reconstruction impossible. Such a large number of possibilities make it difficult, if not impossible, to reverse engineer the circuit. The virtualization aspect of a VFPGA adds another dimension to the problem making even more complex.
Claims (2)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/193,424 US10482290B1 (en) | 2016-07-11 | 2018-11-16 | Virtual polymorphic hardware engine |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/206,483 US10162985B1 (en) | 2016-07-11 | 2016-07-11 | Virtual polymorphic hardware engine |
| US16/193,424 US10482290B1 (en) | 2016-07-11 | 2018-11-16 | Virtual polymorphic hardware engine |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US15/206,483 Division US10162985B1 (en) | 2016-07-11 | 2016-07-11 | Virtual polymorphic hardware engine |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| US10482290B1 true US10482290B1 (en) | 2019-11-19 |
Family
ID=64692313
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US15/206,483 Active 2037-01-10 US10162985B1 (en) | 2016-07-11 | 2016-07-11 | Virtual polymorphic hardware engine |
| US16/193,424 Expired - Fee Related US10482290B1 (en) | 2016-07-11 | 2018-11-16 | Virtual polymorphic hardware engine |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US15/206,483 Active 2037-01-10 US10162985B1 (en) | 2016-07-11 | 2016-07-11 | Virtual polymorphic hardware engine |
Country Status (1)
| Country | Link |
|---|---|
| US (2) | US10162985B1 (en) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10965710B1 (en) | 2018-01-17 | 2021-03-30 | Cipherloc, Inc | Dynamic pin configurator |
| US11290430B2 (en) | 2018-06-25 | 2022-03-29 | Virtual Software Systems, Inc. | Systems and methods for securing communications |
| US11768963B2 (en) * | 2021-01-22 | 2023-09-26 | Nxp Usa, Inc. | System and method for validating trust provisioning operation on system-on-chip |
| DE102021126509B4 (en) * | 2021-10-13 | 2023-05-17 | Infineon Technologies Ag | Portable chip device and method for performing a software module update in a portable chip device |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20130173970A1 (en) * | 2012-01-01 | 2013-07-04 | Mosys, Inc. | Memory device with background built-in self-testing and background built-in self-repair |
| US20150019803A1 (en) * | 2010-01-29 | 2015-01-15 | Mosys, Inc. | Partitioned memory with shared memory resources and configurable functions |
| US20160011801A1 (en) * | 2014-07-08 | 2016-01-14 | International Business Machines Corporation | Storage region metadata management |
| US20170090935A1 (en) * | 2015-09-30 | 2017-03-30 | Ecole Polytechnique Federale De Lausanne (Epfl) | Unified prefetching into instruction cache and branch target buffer |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6356869B1 (en) * | 1999-04-30 | 2002-03-12 | Nortel Networks Limited | Method and apparatus for discourse management |
| US8686475B2 (en) * | 2001-09-19 | 2014-04-01 | Pact Xpp Technologies Ag | Reconfigurable elements |
| US8117436B2 (en) * | 2006-04-19 | 2012-02-14 | Queen's University At Kingston | Hybrid nanotube/CMOS dynamically reconfigurable architecture and an integrated design optimization method and system therefor |
| US7598766B2 (en) * | 2007-01-09 | 2009-10-06 | University Of Washington | Customized silicon chips produced using dynamically configurable polymorphic network |
| US9178514B1 (en) * | 2014-01-23 | 2015-11-03 | Cloud Medical Doctor Sofware, Inc | Polymorphic hardware engine |
-
2016
- 2016-07-11 US US15/206,483 patent/US10162985B1/en active Active
-
2018
- 2018-11-16 US US16/193,424 patent/US10482290B1/en not_active Expired - Fee Related
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20150019803A1 (en) * | 2010-01-29 | 2015-01-15 | Mosys, Inc. | Partitioned memory with shared memory resources and configurable functions |
| US20130173970A1 (en) * | 2012-01-01 | 2013-07-04 | Mosys, Inc. | Memory device with background built-in self-testing and background built-in self-repair |
| US20160011801A1 (en) * | 2014-07-08 | 2016-01-14 | International Business Machines Corporation | Storage region metadata management |
| US20170090935A1 (en) * | 2015-09-30 | 2017-03-30 | Ecole Polytechnique Federale De Lausanne (Epfl) | Unified prefetching into instruction cache and branch target buffer |
Also Published As
| Publication number | Publication date |
|---|---|
| US10162985B1 (en) | 2018-12-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10482290B1 (en) | Virtual polymorphic hardware engine | |
| JP6616471B2 (en) | Stochastic processing | |
| US6831979B2 (en) | Cryptographic accelerator | |
| CN107819569B (en) | The encryption method and terminal device of log-on message | |
| CN113221152B (en) | Data processing method, device, equipment, storage medium and program | |
| CN110855629B (en) | Matching method of IP address, generating method of matching table and related device | |
| US9178514B1 (en) | Polymorphic hardware engine | |
| CN116861470B (en) | Encryption and decryption method, encryption and decryption device, computer readable storage medium and server | |
| JP2009528559A (en) | Encryption and decryption processing method and system for realizing SMS4 encryption algorithm | |
| Johnson et al. | Remote dynamic partial reconfiguration: A threat to Internet-of-Things and embedded security applications | |
| US10078492B2 (en) | Generating pseudo-random numbers using cellular automata | |
| JPH09179726A (en) | Pseudo random number generator | |
| CN117834174A (en) | Power data encryption transmission method, system, terminal and storage medium | |
| CN104657631A (en) | Processing method and device of channel information of application | |
| KR20060087559A (en) | A method of configuring a multi-port device, machine-readable media, a device and a computer system | |
| EP4365877B1 (en) | Secret equijoin device, secret equijoin method, and program | |
| CN118606120B (en) | A chip bit stream verification method, device, computer equipment and storage medium | |
| US11379125B1 (en) | Trusted field programmable gate array | |
| CN110532129A (en) | A kind of method, apparatus, equipment and the storage medium of file encryption storage | |
| CN111444242B (en) | Method for checking data equivalence, electronic device and computer storage medium | |
| CN120415689A (en) | Batch encryption method, related device, system, equipment, medium and program product | |
| CN115665075A (en) | Data push method, system, electronic device and medium for message queue | |
| CN117369951B (en) | Virtual machine communication method and device, storage medium and electronic equipment | |
| CN114978508B (en) | Data set matching method, device and storage medium | |
| CN114510216A (en) | Method, device and equipment for storing data |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO SMALL (ORIGINAL EVENT CODE: SMAL); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
| LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
| STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
| FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20231119 |