The present invention relates to information security, but more specifically to a method and an apparatus to generate keys to encrypt or decrypt data conveyed by devices in a secure network.
When establishing a secure session over a network, communicating devices typically undergo a series of authentication and encryption protocols to generate and exchange keys prior to transferring information. These protocols require a finite amount of time, which, in a wireless environment, introduce delays and/or interruptions in data flow. Delay become more pronounced and objectionable in a roaming environment when users move between and among wireless access points.
Wireless network devices currently employ data communication protocols such as IEEE 802.15.4/Zigbee, IEEE 802.15.1/Bluetooth, and 802.11 (especially 802.11i “Enhanced Security”) in which the devices rely on exchange of keys typically ranging in length from 64 bits to 256 bits to uniquely configure embedded encryption and/or authentication engines. IEEE 802.11i and other protocols, for example, specify methods for producing a PMK (pairwise master key) or a PTK (pairwise temporal key), which are derived from a root key.
Currently, there is a critical gap in the art to rapidly and dynamically generate encryption keys for use by roaming or other network devices, such as a wireless BSS (basic service set). In a present-day wireless network, key exchange delay as much as 100 milliseconds or more may be encountered when a wireless device roams to a new access point. In order to assist with providing fast, seamless roaming, it is desirable to generate and establish key exchanges substantially instantaneously, e.g., much less than forty milliseconds.
The present invention addresses the aforementioned and other problems by providing a fast key generator (FKG) and method thereof to rapidly or dynamically generate and re-generate encryption or decryption keys, e.g., either 128-bit, 256-bit, or other key length, for use in data security applications.
Techniques employed by a preferred embodiment of the present invention differ from prior systems in using a common network ID or other identifier as a root key that is shared among other devices on the network; along with other safeguarded parameters (e.g., two or more) that form part of a transformation of the root key to produce an encryption key. Key generation/re-generation time is fully deterministic within a bounded time period.
A first embodiment of the invention comprises an encryption/decryption key generator that dynamically generates a key to provide a device with secure access to a wireless network. The key generator comprises a multi-byte identifier shared by devices communicating with the network, a hashing module to transform the multi-byte identifier to a multi-bit digest thereof, a clock register that enables an output of a number of clock cycles determined by the digest, a programmable shift register that responds to the clock cycles to transform at least two safeguarded parameters to an output, and a spreader responsive to the digest and the output of the shift register to produce the encryption/decryption key.
A second embodiment of the invention comprises a key generator that generates a pseudo-random key including an identifier shared by devices communicating over a network, a hashing module to transform the identifier into a digest, a clock register that enables an output of a number of clock cycles determined by the value of the digest, a shift register that responds to the clock cycles to transform values of at least two safeguarded parameters to produce an output, and a spreader responsive to the digest and the output of the shift register to produce said pseudo random key.
A third embodiment of the invention comprises a client device that uses key generator to generate a pseudo-random key that enables communication with a network. The client device utilizes a network identifier or portion thereof, a hashing module that transforms the identifier to a digest, a clock register that produces a clock signal having a number of cycles determined by the digest, a shift register that responds to the clock cycles to transform values of at least two parameters to produce an output, and a spreader responsive to the digest and the output of the shift register to produce said pseudo random key.
In yet another embodiment, the invention comprises a method of producing an encryption/decryption key that enables a network device to securely access a network where the method comprises providing a multi-byte identifier, hashing the identifier to produce a multi-bit digest, generating a number of clock cycles defined by the multi-bit digest, transforming in a shift register at least two parameters to produce a transformed output, and converting the transformed output and control bits of the digest to an encryption/decryption key that provides secure access.
In yet a further embodiment, the invention comprises an encryption key generator comprising a multi-bit identifier, a hashing module to reduce the multi-bit identifier to a multi-bit digest, a clock register to output a number of clock cycles defined by said digest, a programmable shift register that receives at least two parameters and that responds to the clock cycles to logically operate on and shift the contents thereof, and a spreader responsive to the digest and the programmable shift register to produce an encryption/decryption key.
Preferred features include providing an identifier, or portion thereof, that is common to other devices on the network; bytewise exclusive-OR'ing respective byte pairs of the identifier to produce a digest; altering the safeguarded parameters (e.g., initial state of the shift register and/or coefficients of a polynomial) in response to detection of an unauthorized attempt to access the network; providing a plurality of demultiplexers to produce an encryption key in response to the shift register output and unique combinations of digest bits; and/or providing a software implementation one or more of the hardware or firmware elements.
Other aspects and features of the invention will become apparent upon review of the following disclosure taken in connection with the accompanying drawings. The invention, though, is pointed out with particularity by the appended claims.
The fast key generator 10 of
After obtaining the 48-bit NET ID from a network device or other source, HASH module 14 transforms or maps the six-byte, 48-bit identifier to an eight-bit digest or abbreviation thereof. In one embodiment, HASH module 14 comprises a cascaded set of bytewise exclusive-OR primitive or gates 33-37, as shown in
HASH module 14 may comprise other arrangements of primitives or gates to produce a HASH result 38, however, the bytewise exclusive-OR transformation of an identifier was found to be robust, compact, and easy to implement. In the illustrated embodiment, bytewise transformations occur within one or two clock cycles.
Upon initiating the fast key generator, the eight-bit HASH output 38 is loaded into CLK REGISTER 16, shown as down-counter 40 of
Full Programmable Linear Feedback Shift Register (LFSR) 22 is capable of implementing any 32-bit polynomial with any pre-loaded initial value. The polynomial itself may be rapidly changed during roaming, the FKG invoked, and a new key generated within the count contained in CLK REGISTER 16 plus few clock cycles; that is, one clock cycle propagation time through “NET ID” register, two clock cycles of propagation time through HASH module 14″, two clock cycles of propagation time through “SPREADER”, and the number of clock cycles specified by CLK REGISTER 16.
Because HASH module 14 supplies eight bits to CLK REGISTER 16, i.e., 255 cycles, the upper bound of the time to generate a key is about two hundred and sixty clock cycles including a few cycles to load and unload a count value in CLK REGISTER 16. Using an 80-MHz system clock (12.5 ns period), the illustrative fast key generator produces a 128-bit or a 256-bit encryption key within 3.25, microseconds thus providing a substantial improvement in response time over prior systems and methods. Other key lengths and system clock speeds may also be employed.
To further transform the 8-bit digest of HASH register 38, a 32-bit polynomial is loaded into cells P31-P0 of holding register 52. Coefficients of the polynomial that contribute to defining the unique encryption key may be user-defined, selected among a group of unique polynomials, defined in relation to system parameters, or determined by other means that establish uniqueness. An initial state I (for example, all 1's) is loaded into cells Q31-Q0 of shift register 54. As shown in
SPREADER 26 of
Within one or two clock cycles, the demultiplexers generate a randomized 256-bit encryption/decryption key seeded by the NET ID, POLYNOMIAL P, and the initial state I of the LFSR 22. The NET ID is public broadcast knowledge within a BSS or other network device, while the POLYNOMIAL P and the initial state I of LFSR 22 are safeguarded by the user and/or the network.
The illustrated fast key generator generates a random 128-bit or 256-bit key in two hundred and sixty clock cycles or less, or in about 3.25 microseconds using an eighty-megahertz system clock. The demultiplexers may also be expanded to provide 512-bit or higher key lengths.
Instead of exclusive-OR'ing, the HASH module may implement other transformation functions without departing from the scope of the invention. Furthermore, parameters including polynomial P and/or the initial state I of LFSR may be rapidly or dynamically changed, and a new key regenerated within two hundred and sixty clock cycles. Other parameters may also be employed. Even though the NET ID is public broadcast information, parameters of the key generator may easily be changed by altering the polynomial or initial state of the LFSR upon detection of a rogue intruder thereby providing dynamic encryption keys without suffering throughput delays in a wireless or other network. This is particularly useful to provide seamless roaming, VoIP, Isochronous time-critical applications. Last, although the illustrative embodiment describes wireless communication, the invention is applicable to wired or terrestrial communication links requiring seamlessly jumping or switching between or among gateways, access points, or other network control devices within a minimal time period.