FPGAs have programmable microstructures which can offer a very good infrastructure for basic cryptographic functions. The fact that each cell is independently programmable delivers great diversity for building a large number of functions. The self-reconfiguration capability offers another degree of freedom towards a changeable/evolvable architecture. An interesting recent advancement in FPGA design is the introduction of self-reconfiguration technology Error! Reference source not found. Cryptography can make use of all these capabilities to implement new core functions to complement and enhance the traditional crypto-functions. The growing complexity and flexibility of FPGA technology is promising for efficient modern security applications. In this invention, we make use of the reconfigurable FPGA architecture to generate new secret, unknown and evolving crypto mappings which form hardwired physical one-way functions corresponding to the mathematical one-way functions widely used in crypto-systems. While the basic ideas are inspired from existing FPGA structures and make use of their natural building blocks, their use could be extended to any VLSI architecture with self-reconfiguration capability and on-chip non-volatile memory.
This invention makes use of self-configuration capabilities of modern FPGA devices to generate new mutated and evolvable security functions which are unknown even to the device owner, yet the function is perfectly usable. The first attempt addresses the construction of useable ciphering functions by linking micro-functions representing one CLB or a few adjacent CLBs (Configurable Logic Blocks) in an array architecture to construct a full ciphering function. The two particular properties of the function are: its re-configurability (hence the possibility of having scalable capability and a dynamic size which may change with time) and the possibility of keeping it completely anonymous and secret as it is changing during operation within the device without external influence. Self-reconfiguration gives the cipher novel and special evolutionary properties. These properties could establish a way towards new security functionality offering a living architecture that allows growing and/or shrinking with the progress of time. This additional functionality affecting the physical structure of a security device during its operational lifetime is a novel realizable feature in self-reconfiguring VLSI technology with many applications.
0 is a Basic Xilinx FPGA Programmable Cell and shows a traditional sample CLB (e.g. from Xilinx FPGAs) with its 4 mapping tables (LUTs). Each table has n=4 inputs resulting in a large number of possible mapping functions for each cell.
Error! Reference source not found.Error! Reference source not found. (a) is a sample Secret Function as an Unknown Secret Cipher and shows an internal autonomous TRG embedded in the system as. Error! Reference source not found.Error! Reference source not found. (b) is a Self-Reconfiguration Architecture and shows a special dedicated reconfigurable security area (DRSA).
Error! Reference source not found. is a Half slice micro-involution and shows a possible micro-involution cell implemented as a slice or alternatively in Error! Reference source not found. b is a Single CLB architecture with 4 inputs.
Error! Reference source not found. a shows the proof of operation in an example of a macro-cipher as a one-dimensional array composed of three different random micro-involutions embodying three arbitrary distinct non linear functions f1, f2, f3 with k1, k2, k3 as micro-involution-keys. Error! Reference source not found. b illustrates embodiments in the micro-involutions.
Based on existing programmable FPGA CLBs, a single CLB could be seen as a basic micro-crypto mapping. One well known and highly secure function used in cryptography is the involution function.
It is also noticed that the knowledge of the functions g is not necessary to construct an operational cipher. This particular property is a key idea to construct new ciphering functionality for special security applications which is only possible through new self-reconfigurable physical VLSI units. Unlike conventional crypto-techniques, the FPGA's physical hardware cell structure is deployed to efficiently offer the crypto mappings through its own architecture. The target of this methodology is to reach simple, extendable, and evolvable cipher-functions which are easy to integrate (even dynamically) in eventually free unused areas on an FPGA chip. The fact that the micro structure is simple leads most probably to high utilization of the available FPGA resources and hence a higher usage of the logic resources with minor overheads, if at all. The mapping capacity of a simple FPGA cell is suitable for cryptographic functions. 0 shows a traditional sample CLB (e.g. from Xilinx FPGAs) with its 4 mapping tables (LUTs) Error! Reference source not found. Each table has n=4 inputs resulting in a large number of possible mapping functions for each cell.
# of cell mappings=4·22
The LUT mapping can be seen as a basic building block for hashing or ciphering micro-functions employed in a larger security function. The average utilization of the programmable area in most applications leaves at least 10% unused chip area. However, this area can be used if the interconnection structures are enhanced. Such free areas can be utilized even during chip operation if the technology allows dynamic reconfiguration. If the on-chip reconfiguration controller can take care of addition and deletion of on-chip micro-crypto structures, then new cryptographic functions can be created and deleted in each individual chip. This can take place autonomously by utilizing unused sectors designated as Evolution Sectors (ES) or in special dedicated reconfigurable security area (DRSA) as shown in Error! Reference source not found.Error! Reference source not found. (b).
One possible scenario is to let the evolution controller generate micro mappings and link them together to build accumulatively one or many evolutionary crypto-functions in one or more ES areas. Such evolving crypto-functions can be used to generate identification markers as challenge response pairs to uniquely and securely identify the electronic device as will be shown later in
Error! Reference source not found. a shows a possible micro-involution cell implemented as a slice or alternatively in Error! Reference source not found. b as a single CLB (refer to the involution shown in 0). In general, one CLB or few adjacent cells in other FPGA technologies can construct such micro-involution. The structure of Error! Reference source not found. is derived from the existing cell structure such that a maximum usage of the cell's logical power is achieved. The micro-involution, as one building block is certainly not secure, however cascading many such micro-involutions in a one- or two-dimensional array would produce a highly secure cipher similar to DES, or KASUMI.
The four inputs of each LUT can be used as follows:
1. 1st bit for the input data
2. 2nd bit for the key of the micro cell
3. 3rd bit from a key kr from the cell on the right.
4. 4th bit from a key kl from the cell on the left.
Other utilization arrangements for the LUT inputs are possible if the involution is kept consistent in the sense that it is reproducible for enciphering and deciphering in the correct sequence. The deciphering process requires reversing the sequence of the key bits together with each corresponding g functions (LUT contents). A proof is sketched in
The array architecture of
Error! Reference source not found. a shows the proof of operation in an example of a macro-cipher as a one-dimensional array (for a 2-dimensional array see
Evolving physical hardware architecture can be the key technology for constructing evolving security properties. An internal configuration controller should take care of the autonomous reconfiguration. A true random number generator (TRG) is also required for constructing robust crypto functions. Many TRG architectures in programmable technology environments have been previously proposed as in Error! Reference source not found. and Error! Reference source not found. Notice that the LUT contents need not be equal and even need not be known to the outside world (thus called unknown cipher). If an internal autonomous TRG embedded in the system as shown in Error! Reference source not found.Error! Reference source not found. (a)-(b) is used to generate the contents of the LUTs, the system would then offer a highly secure architecture. Here, the internal TRG is triggered by a mutation event (see
The particular property of such evolving secret cipher, compared with the conventionally built ciphers, is that it is possible to implement a cipher that is operational even if its mappings are practically unknown to anybody (as its structure i.e. the LUT contents and its size are internal and unknown to anybody). This structural aspect is made possible by self-reconfigurable VLSI technology. Many practical applications can make use of such highly secure, unknown but still operational reversible mapping.
Another essential property of the intended architecture is its evolutionary nature. Some security applications do not require keeping the security mappings static. More security can be acquired if the structure is made dynamic such that it evolves unpredictably, driven by a true random source. This could lead to perfect security in the sense of a one-time-pad, which was proved to offer perfect secrecy. Suppose that the FPGA device can generate a structure for a secret mapping/cipher, which is provably reversible. If a device is asked to encipher a challenged secret-value at some initial time point, then only that same device can decipher it at a later time point with perfect security, as nothing is known about its cipher. Now if after each challenge a Secret-Cipher is evolved for the next challenge, the system can offer, in such scenarios, a perfect chain of physical authenticity. One possible application of a self generated secret cipher is to use that cipher to re-identify a certain physical unit if challenged to decrypt a message as a zero-knowledge proof of identity. Such security mechanisms became only possible after the device got the capability to internally modify its configuration. This functionality offers a new security technology due to the novelty of the self-configuring architecture.
The core of this invention is a dynamic cipher integrated in a programmable self-reconfigurable VLSI environment. A self-configuration controller manages the insertion of the micro-involutions in the unused locations inside the reconfigurable hardware (or FPGA). The configuration controller needs additional information about the location and the number of the unused CLBs in order to calculate the evolved ciphering function. CAD design tools (synthesis, mapping and routing) need to add a header to the configuration stream which contains the necessary information. A simple mapping algorithm tries to minimize global routing between the utilized CLBs. Another way is to reserve a fixed unknown area of the FPGA for these macro ciphering functions. The controller selects randomly a subset of such CLBs in each iteration process.
The content of the participating LUTs is generated using a pseudo random generator integrated with the configuration controller.
Physical Unclonable Functions (PUF) has been introduced making use of some inherent/intrinsic physical differences between devices to uniquely identify such electronic devices [9]-[11]. The devices identified by such technique are expected to be perfectly unclonable as the existing large mappings (PUFs) are not practically reproducible even by the same manufacturer. However, the costly sensing and/or the inherent liability of electronic devices to be sensitive to temperature and voltage drifts could make the PUF's technique inadequate for many practical applications.
The main objective of the following construction is to devise practical techniques for creating non-ambiguous constructive differences in electronic devices such that each device would define autonomously a part of its structure in a non-predictable manner. The result should become a hard-wired physical structure which can serve for physical security tasks. The structures are created in such a way that they are kept intentionally secret and non-reproducible, therefore practically hard to clone. This type of functionality becomes first possible through the self-reconfiguration property. As the reconfiguration changes are not limited to the initialization phase of such devices, a dynamic time-dependent evolution can even be considered in both space and time scale. Like all modern practically secure systems, no perfect security is expected. However, there is also no reason to exclude the possibility of attaining practically smart security mechanisms which may incrementally reach high confidence levels approaching those of biological genetic structures.
Some Spartan 3 Xilinx FPGAs were fabricated with a unique secret serial number called a device DNA stored in a tamper resistant area with no cryptographic mechanisms to re-identify the device [5]. The initial designation of that identity as DNA is at least interesting however it is far from being a secured entity.
To inspire from biological systems, the human uniqueness properties and identification methodologies can be considered. The first identity a human being gets is a given name and later an identity card, both endorsed by a trusted authority. As time progresses, new personal properties are accumulatively acquired by human beings. The born DNA identity represent an intrinsic unique identity, which is mostly used to identify individuals in real life when all other identifications do not meet the degree of trust required. On the other hand, acquired identification properties as knowledge/skills, language and other properties of a living individual would differentiate persons even if they were born as twins and even if they were successfully cloned with the same DNA. Including such self created properties to electronic devices could offer more stable and resilient security architectures. For example cloning a device would become practically equivalent to the difficulty of seeking and tracing all relevant device transactions (including possibly secret ones) with the environment. This is in most practical applications nearly impossible to achieve. Even if this could have been possible at some time and an attacker was able to clone a device and its history, the system would detect discrepancy after some time, as both cloned and non-cloned units would exhibit different evolved identity properties for the same claimed unique name or serial number. In that case, the system administration would stabilize its system security by prohibiting both units and running more generic and intensive non-conventional proofs to pick out the illegal units. This is actually the reason why the dynamically growing human community system does not collapse easily and a remedy is rather possible with more or less efforts. Therefore evolving identification architectures in the hash function would be considered.
Self-reconfigurable physical hardware architecture could be deployed as a basic technology for creating (mutating) hardwired secret functions. In section 3 a micro-involution function as a basic building block of a cipher was proposed to be self-generated in an FPGA architecture. The example was based on a Xilinx programmable FPGA cell structure as that shown in
This LUT mapping can be seen as a basic building block for ciphering and hash functions. The average utilization of the programmable area in most applications leaves unused areas on the chip. If the technology allows dynamic reconfiguration using on-chip reconfiguration controller, then unpredictable addition and deletion of free programmable micro-crypto structures can be self fabricated. If this process is kept autonomous, then the resulting functions would stay secret to everybody if the devise is not invasively attacked. Programmable technologies offer also means like some hardware trap functions to prohibit reading the configured structures. Sections 9 and 10 will show possible uses of such secret (even unknown) hash and cipher functions.
Evolving physical hardware architectures are the key technique to be deployed for constructing evolving accumulative properties.
Concept for a Secret Operational Hash Architecture
To demonstrate a sample realization scenario, the CLB structure of
Cascading many such cells possibly by interconnecting single-input single-output cells would result with a cryptographically relevant hash-function. As an example, cascading 25 cells would come up with a 100-bit cascade of non-linear secret mapping.
Arranging and cascading such micro-machines as demonstrated in
To simplify the procedure assume that the change can proceed by increasing or decreasing the array size in an unknown and unpredictable manner (to the outside world). The unpredictable change can be accomplished in its simplest way by configuring and updating the LUT by unpredictable patterns from the true random generator TRG. The other evolution factor can be a true random change of the size of the array in both vertical and horizontal directions or by increasing or decreasing the chain of physically scattered E-spots shown in
Two application scenarios for the resulting secret hash-function and secret cipher are demonstrated below.
The “secret hash functions” are new entities essentially different from the conventional known hash function designs. They can be however used in the same fashion to generate identification markers as challenge-response pairs in order to identify physical devices uniquely. The procedure is sketched in
The same identification technique is used for PUF-based identification [10-11] with the difference that the secret seed key and the physical mapping are unchangeable as they are physically inherent intrinsic mappings. Identification using PUFs is actually the ultimate solution if the inherent properties are consistently reproducible (i.e. device and PUF response are temperature voltage and environment independent).
The proposed approach is generating a consistent unknown function similar to that of the PUF however in a secret, self constructing and cryptologically secure manner.
The secret unknown physical cipher is a new aspect for cryptographic application environments. A cipher was always assumed to be impossible to keep secret; therefore all security protocols are dealing with the open cipher concept as a basic assumption. The ability to generate a secret and even unknown operational cipher delivers new application horizons. Two sample applications primitives are shown:
A variety of other similar dependency scenarios can be constructed out of this primitive dependency scenario in a similar way.
The TA pushes a button to generate a secret cipher (SC) on the device which is defined by a true random number generated by a true random number generator (TRG). The TA also gets the device's Serial Number (SN) from the manufacturer.
Given the device's SN, the TA generates a unique secure device identity (SDI) based on the device's SN using a Master Key (MK) i.e. SDI=FMK(SN) where F is some TA's cipher e.g. AES or KASUMI. The TA sends SDI to the device as part of its birth certificate. The SDI is stored on-chip in a write-only-memory as a key for the secret cipher (SC).
NB. The SC security architecture is thus generated by two contributions: a first by the device itself through a true random number generator that generates the cipher (see pass 1) and second by the TA-generated secure device identity (SDI) as signature.
In addition to the SDI, the TA also generates two random numbers, or DNA markers, x0 and x, and challenges the device with them.
In response to the challenge, the device generates SCSDI(x0,x)=(y0,y) and stores x0 and x on-chip in a write-only-memory. The device confuses y0 and y by EXORing with SDI to generate (y0′,y′)=SDI⊕(y0,y) and send them on to the TA. The TA reconstructs y0,y from y0′,y′ by EXORing with SDI. (x0,x) and (y0,y) are then stored by the TA as a record or birth certificate for device SN.
The device self-introduces itself to the TA by sending its serial number (SN).
The TA generates SDI from SN and challenges the device with a previous challenge response (or DNA marker) y stored in the device's birth certificate.
The device decrypts y to get the corresponding challenge x, and then only accepts the TA identification request if the decrypted challenge x is stored in its write-only memory. Otherwise, the device stalls the communication. If x is found in the write-only memory, the device generates a new challenge-response pair (x*,y*) through the true random number generator and sends (x,x*,y*) to the TA, confused by EXORing with hSDI, where h is a hash function. At the same time, x is replaced by x* in the device's write-only-memory.
Finally, the TA reconstructs (x,x*,y*) by EXORing with hSDI. It then checks the resulting x against the x stored in the device's birth certificate. If these are equal, the device is deemed authentic, and the previous challenge response pair (x,y) in the birth certificate is subsequently replaced by the new pair (x*,y*).