AN APPARATUS AND METHOD FOR CRYPTOGRAPHIC COMPANION IMPRINTING

Abstract: A mechanism to conditionally activate an electronic device implemented within electronic computing equipment such as a computer. Such activation may be based on user authentication and/or confirmation that the electronic device is operating in conjunction with its companion cryptographic device (130).

Description: AN APPARATUS AND METHOD FOR CRYPTOGRAPHIC COMPANION IMPRINTING BACKGROUND OF THE INVENTION Field of the Invention The present invention relates to the field of cryptography. More particularly, the present invention relates to a method and apparatus for altering an operational state of an electronic device of a node such as by electronically imprinting that electronic device and its "companion" electronic device with a shared secret so that each electronic device will operate only in conjunction with its "companion". Description of Art Related to the Invention In recent years, it is becoming increasingly desirable to transmit digital information between at least two nodes, defined as any electronic computing equipment such as computer or any peripheral, in a manner which is clear and unambiguous to authorized operators of these nodes, but otherwise incomprehensible to any unauthorized recipients. This can be accomplished by both nodes performing cryptographic operations, such as encryption and decryption, on the digital information. Often, these cryptographic operations are performed by software applications executing algorithms of well- known cryptographic techniques including, but not limited to symmetric key cryptography, asymmetric (or public) key cryptography or any combination of these cryptographic techniques. These cryptographic techniques are disclosed in a previously filed patent application entitled "KEY CACHE SECURITY SYSTEM" by Derek L. Davis filed December 29, 1994 (Application No. 08/365,347) which was assigned to Assignee of the present Application. The advantages of using a hardware-based cryptographic coprocessor in the node as presented in a prior pending patent Application entitled "Apparatus and Method for Providing Secured Communications" (Application Number 08/251,486) filed May 31, 1994 is recognized both for its superior performance over a software implementation of cryptographic operations and for the higher security of "key material" used in those cryptographic operations. Unrelated to these technological developments is the social problem of electronic hardware theft, particularly theft of laptop computers. Such thefts are motivated by both the high value of laptop computers and by the potential value of the information contained within these laptops, such as business plans, marketing information, pricing information etc. Use of a hardware-based cryptographic coprocessor clearly would help prevent the loss of such confidential information, but does little to deter the theft since the laptop computer itself is of significant value. Therefore, it would be advantageous to implement a mechanism which would reduce the value of such a laptop computer in the event of its theft or loss and thus, in effect, would deter such theft and encourage its return in the event of loss. Specifically, it would be desirable to be able to cause a source device (e.g., a system processor) to become non-functional for all but the authorized user(s) of the laptop computer and/or if two electronic devices are separated. BRIEF SUMMARY OF THE INVENTION Based on the foregoing, it would be desirable to develop and implement an electronic mechanism within a node like a laptop computer such that a source device and its companion cryptographic device are "bound" together and neither will operate in the absence of the other. The electronic keying mechanism provides a trusted communication path between the cryptographic device and its source device, namely an empowerment unit which can function even when the source device is in a non-functional state. This trusted communication path is used for mutual authentication of these two devices. Electronic keying requires that both the source device and the cryptographic device are embedded with a node-specific shared secret. BRIEF DESCRIPTION OF THE DRAWINGS The features and advantages of the present invention will become apparent from the following detailed description of the present invention in which: Figure 1 is a block diagram of an illustrative embodiment of a node incorporating a cryptographic device which performs security- sensitive operation(s) to insure that a source device of the node is non-functional unless a user of the node is authenticated and the source device of the node is operating in combination with its companion cryptographic device. Figure 2 is an illustrative flowchart of the operations of the node of Figure 1 in an attempt to authenticate the user and guarantee that both devices are operational. Figure 3 is a block diagram of an alternative embodiment of a node incorporating a system processor having an internal cryptographic processing unit dedicated to cryptographic operations to guarantee that its processor core is non-functional if the user is not authenticated. Figure 4 is an illustrative flowchart of the operations of the node of Figure 3 in an attempt to authenticate the user. DESCRIPTION OF THE PREFERRED EMBODIMENT The preferred embodiment of the present invention relates to a source device and its companion cryptographic device implemented within a node wherein each device is electronically keyed together (i.e., imprinted) with a node-specific shared secret. For the scope of this application, a "shared secret" (or otherwise referred to as a "device identification") is an unique bit representation, preferably unknown by any entity or shared with any device other than the source device and its companion cryptographic device. In the following description, numerous details are set forth including certain components of the source device and /or cryptographic device and illustrative steps of a method by which the shared secret is electronically keyed within the source and cryptographic devices. It will be obvious, however, to one skilled in the art that these details are not required to practice the present invention. In other instances, well known circuits, elements and system configurations are not set forth in detail in order to avoid unnecessarily obscuring the present invention. Terminology used to describe certain cryptography-related functions is defined herein. A "key" is an encoding and/or decoding parameter used by conventional cryptographic algorithms such as Rivest, Shamir and Adleman ("RSA"), Data Encryption Algorithm ("DES") and the like. More specifically, the key is a sequential distribution of binary data of an arbitrary length (i.e., data string). A "message" is generally defined as information (e.g., data, address, keys or any other information) being transferred in one or more bus cycles. Two common types of messages are an authorization message (i.e., a "challenge") and a return message (i.e., a "response"). As shown in Figures 1 and 2, "imprinting" both the source device and the cryptographic device together, which are shown as a system processor and a cryptographic coprocessor respectively, allows the cryptographic coprocessor to be used as the user-authenticator for the node. Since the cryptographic coprocessor executes "trusted" firmware that is difficult to tamper with, it can perform the required user authentication functions without significant risk of being "tricked". This approach is preferable over using the system processor itself to perform such authentications because the system processor runs software that can be easily tampered with by someone skilled in computer hardware and software manipulation. Once such authentication is completed, an encrypted message is passed from the cryptographic coprocessor to the system processor, giving it "authorization" to operate. Preferably, this message would be encrypted under a temporary session key to prevent "replay" of such previous messages although the use of the temporary encryption key is not necessary. Referring now to Figure 1, an illustrative embodiment of a node 100 comprising a system bus 110 coupling together a plurality of bus agents, including, but not limited to a source device 120, a cryptographic device 130, a memory subsystem 140 and an input/output ("I/O") subsystem 150 is shown. The source device 120 (e.g., a system processor) is electronically keyed to the cryptographic device 130 (e.g., a cryptographic coprocessor) in order to provide secured bi-directional communications between the system processor 120 and the cryptographic coprocessor 130. It is contemplated, however, that other "source" devices besides the system processor (e.g., hard disk controller, video display controller and the like) may alternatively be electronically keyed to the cryptographic coprocessor 130. As shown, the system processor 120 includes at least one internal processing unit 121 (e.g., a processor core for an 'X86 Intel® Microprocessor Architecture), a bus interface 122, non- volatile memory 125 and an empowerment unit 127. The internal processing unit 121 is coupled to the bus interface 122 and the non-volatile memory 125 through bi-directional information buses 123 and 124, respectively. A first information bus 123 enables the internal processing unit 121 of the system processor 120 to receive information from and transmit information to various bus agents. A second information bus 124 enables information from the non- volatile memory 125 to be fetched by the internal processing unit 121 for execution with various cryptographic algorithms. Both the information buses 123 and 124 have arbitrary bit widths. The empowerment unit 127 is coupled to the bus interface 122 and the non- volatile memory 125 through bi-directional information buses 128 and 129, respectively. The empowerment unit 127 is an "encryption /decryption engine" such as a processor having a fixed functionality as described below. The empowerment unit 127 enables the system processor 120 to exchange messages with the cryptographic coprocessor 130 without evoking any operations by the internal processing unit 121 so that it can remain in its non-functional state after power-up. It is contemplated that the empowerment unit 127 may further include a random number generator to produce a temporary session key described below. The non-volatile memory 125 of the system processor 120 stores at least a "shared secret" (or "device identification") 126 which is a predetermined, unique bit representation used by the empowerment unit 127 as a permanent cryptographic key for encrypting and decrypting messages exchanged with the cryptographic coprocessor 130. The non-volatile memory 125 is preferably flash memory but may include any type of erasable programmable read-only memory ("EPROM") like EPROM, flash EPROM, EEPROM, etc. The cryptographic coprocessor 130, a bus interface 131, at least one internal, dedicated processing unit 132 and non- volatile memory 134. The dedicated processing unit 132 is coupled to the bus interface 131 and the non-volatile memory 134 through bi-directional information buses 133 and 134, respectively. The non-volatile memory 134 of the cryptographic coprocessor 130 contains at least the same "shared secret" 126. The system bus 110 enables the system processor 120 and cryptographic processor 130 to communicate as well as provides access to the memory subsystem 140 and the input/output ("I/O") subsystem 150. The memory subsystem 140 includes a memory controller 145 coupled to the system bus 0 to provide an interface for controlling access to at least one memory element 146 such as dynamic random access memory ("DRAM"), read only memory ("ROM"), video random access memory ("VRAM") and the like. The memory element 146 stores information and instructions for use by the internal processing unit 121. The I/O subsystem 150 includes an I/O controller 151 which operates as an interface between the system bus 1 0 and a conventional I/O bus 160. This provides a communication path (i.e., gateway) to allow devices on the system bus 110 and the I/O bus 160 to exchange information. The I/O bus 160 allows information to propagate to at least one peripheral device in the node 100 including, but not limited to a display device 161 (e.g., cathode ray tube, liquid crystal display and /or flat panel display and its corresponding controller) for displaying images; an alphanumeric input device 162 (e.g., an alphanumeric keyboard, etc.) for communicating information and command selections to the internal processing unit 121; a cursor control device 163 (e.g., a mouse, trackball, joy stick, touch pad, etc.) for controlling cursor movement; a mass storage device 164 (e.g., magnetic tapes, hard disk drive and /or floppy disk drive and its corresponding controller) for storing information and instructions; an information transceiver device 165 (fax machine, modem, scanner, etc.) for transmitting information from the node 100 to an external system or device and for receiving information from an external source via a communication link 170; and a hard copy device 166 (e.g., plotter, printer, etc.) for providing a tangible, visual representation of the information. It is contemplated that the node 100 shown in Figure 1 may employ some or all of these components or different components than those illustrated. Referring now to Figure 2, a flowchart illustrating one technique for enabling the system processor of Figure 1 after user verification (or authentication) and companion confirmation is shown. It is contemplated that the user verification and companion confirmation operations may be mutually exclusive. At Step 205, the presumably authorized user supplies power to the node such as, for example, a laptop computer. At this point, the empowerment unit of the system processor actively disables the internal processing unit (i.e., places the system processor in a non-functional state) by performing one of many possible disabling operations (Step 210). For example, the disabling operation may involve preventing power and/or clocking signals from being supplied to the internal processing unit, providing a constant RESET signal to the internal processing unit, providing a continuous series of "NO-OP" instructions for execution by the internal processing unit and the like. At Steps 215-220, the cryptographic coprocessor attempts to verify that an authorized user is present. This can be accomplished through a number of ways, including checking a Personal Identification Number ("PEN") or a password, interrogating a user supplied authentication token such as a smart card or PCMCIA card, or using biometric measurements (such as retinal scan, fingerprint, iris scan, hand geometry, etc.). The system processor is not involved in this user verification process since it executes externally supplied software that is easily modified. If the user verification operation is not successful, the system processor and thus the laptop computer itself remains non-functional (Step 225). However, if the user verification operation is successful, the companion confirmation operation is performed. In this embodiment, the cryptographic device uses its internally stored "shared secret" to encrypt a challenge and transmits the encrypted challenge to the empowerment unit of the source device (Steps 230- 235). The challenge is a random bit string which is unique to each attempt to turn-on the laptop computer. In Step 240, this challenge is decrypted by the empowerment unit to determine the contents of the challenge. The contents of the challenge are then combined with another random bit string, which is newly generated for each challenge received, in order to form a resultant message (Step 245). Thereafter, the resultant message is re- encrypted under the "shared secret" contained in memory accessible to the empowerment unit to create a response which is sent back to the cryptographic device (Step 250). In Step 255, the cryptographic device decrypts the response with the "shared secret" to verify that the response was processed by the empowerment unit. If the response was not produced by the empowerment unit but instead by another processor or by an external source, the laptop computer remains disabled (Step 225); otherwise, the random bit string received from the empowerment unit is used as a temporary session key by the cryptographic processor to encrypt an "authorization message" and that message is sent to the source device's empowerment unit (Step 250). In Steps 265-270, the empowerment unit decrypts the authorization message and compares this to a standard, predetermined authorization message (a message indicating that user verification and companion confirmation was successful). If these messages do not compare, the system processor as well as the laptop computer remains non-functional (Step 225); otherwise, the empowerment unit enables the internal processing unit of the system processor and the laptop computer now becomes completely functional (Steps 275-280). Referring now to Figure 3, an alternative embodiment of a node 200 employing a system processor 220 as well as memory and I/O subsystems 240 and 250 coupled to a system bus 210 is shown. In this embodiment, no imprinting is required since a cryptographic processing unit 225 is employed in the same silicon as the system processor rather than as an independent component or a separate die in the same semiconductor package. Instead, the cryptographic processing unit 225 is used to maintain the system processor 220 in a non-functional state until its user is authenticated. As shown, the dedicated cryptographic processing unit 225 is employed within the system processor 220 to preclude the system processor from functioning absent user authentication. The cryptographic processing unit 225 is coupled to (i) a bus interface unit 230 which receives information from the system bus 210, (ii) non- volatile memory 235 which contains needed cryptographic information and (iii) an internal processing unit 236 which executes instructions. The cryptographic processing unit 225 is coupled to the internal processing unit 236 via control signal line(s) 237 to control the operational state of the system processor 220. For example, the internal processing unit 236 may be non-functional until the cryptographic processing unit 225 asserts the control signal Hne(s) 237. Referring to Figure 4, the operational state of the node of Figure 3 is controlled as shown. At Step 305, the presumably authorized user supplies power to the laptop computer. At this point, in Step 310, the cryptographic processing unit employed within the system processor actively disables the internal processing unit by performing one of many possible disabling operations as discussed in Step 210 of Figure 2. Next, in Steps 315-320 the cryptographic processing unit attempts to verify that an authorized user is present through such techniques as checking a PEN or a password, interrogating a user supplied authentication token (e.g., a smart card or PCMCIA card), or using biometric measurements (e.g., scan). If the verification is not successful, the node remains non¬ functional (Step 325). However, if the verification step is successful, the cryptographic processing unit enables the system processor by asserting its control signal line (Step 330). This allows the internal processing unit to execute instructions so that the node is functional (Step 335). The present invention described herein may be designed in many different methods and using many different configurations. While the present invention has been described in terms of various embodiments, other embodiments may come to mind to those skilled in the art without departing from the spirit and scope of the present invention. The invention should, therefore, be measured in terms of the claims which follows.

Claims: CIΛIMS What is claimed is: 1. A cryptographic device adapted to alter an operating state of a source device essential to the functionality of a node implementing the source device, the cryptographic device comprising: a memory element which contains a device identification, a copy of said device identification is further contained within the source device; and a processing unit coupled to said memory element, said processing unit utilizes the device identification as an cryptographic key in order to verify that the cryptographic device is communicating with the source device before transmitting a message to the source device to alter a state of the source device from a non-functional state to a functional state. 2. The cryptographic device according to claim 1, wherein said memory element is non-volatile memory. 3. The cryptographic device according to claim 2, wherein said device identification is permanently stored in said memory element. 4. The cryptographic device according to claim 3 further comprising a bus interface unit enabling the cryptographic device to receive and transfer information through a bus. 5. The cryptographic device according to claim 4, wherein said processing unit verifies that it is communicating with the source device by encrypting an authentication message with said device identification, transmitting said encrypted authentication message to the source device coupled to said bus, receiving a return message from the source device and decrypting said return message with said device identification. 6. A cryptographic device adapted to alter an operating state of a source device that is essential to the functionality of a node implementing the source device, the cryptographic device comprising: memory means for storing a device identification in which a copy of said device identification is also stored in the source device; and processing means for performing cryptographic security operations including (i) verifying that the cryptographic device is communicating with the source device through use of said device identification as a cryptographic key, and upon verification, (ii) altering a state of the source device from its non-functional state to a functional state, said processing means is coupled to said memory means. 7. A node requiring authentication of its user and confirmation that its architecture has not been altered before being fully functional, the node comprising: a bus; a source device coupled to said bus, said source device is initially placed in a non-functional state after power-up of the node includes a first bus interface unit coupled to said bus, a first memory element which contains a device identification, and an empowerment unit coupled to said first memory element and said first bus interface unit, said empowerment unit places said source device into a functional state upon receiving an authorization message from a cryptographic device; and a cryptographic device coupled to said bus, said cryptographic device includes a second bus interface unit coupled to said bus, a second memory element which contains a copy of said device identification, and a cryptographic processing unit coupled to said second bus interface unit and second memory element, said cryptographic processing unit attempts to authenticate the user of the node, and if the user is authenticated, utilizes said copy of said device identification as an cryptographic key in order to confirm that said cryptographic device is communicating with said source device. 8. The node according to claim 7, wherein said cryptographic processing unit of said cryptographic device transmits said authorization message to the source device in order to place said source device in said functional state, provided confirmation that said cryptographic device is communicating with said source device. 9. The node according to claim 8, wherein said source device is one o f a group consisting of a microprocessor, a video display controller and a hard disk controller. 10. The node according to claim 9, wherein said cryptographic device is a coprocessor. 11. The node according to claim 8, wherein said first memory element of said source device is non-volatile memory. 12. The node according to claim 11, wherein said second memory element is non-volatile memory. 13. The node according to claim 12, wherein said device identification is permanently and exclusively stored in said first and second memory elements. 14. The node according to claim 8, wherein said empowerment unit of said source device is operational when said source device is in the non-functional state, said empowerment unit has access to said device identification stored in said first memory element and performs decryption operations on a message transmitted to said source device and encryption operations on a message transmitted from said source device. 15. The node according to claim 14, wherein said empowerment unit includes a random number generator to generate a temporary session key to be used between the cryptographic device and said source device after verification that said cryptographic device is communicating with said empowerment unit of said source device. 16. The node according to claim 8, wherein said cryptographic processing unit confirms that it is communicating with said source device by encrypting an authentication message with said copy of said device identification, transmitting said encrypted authentication message to said source device, receiving a return message from said source device and decrypting said return message with said copy of said device identification. 17. A node requiring authentication of its user and confirmation that its architecture has not been altered, the node comprising: bus means for propagating information; -16- source means for performing operations requested of the node, said source means includes first storage means for storing at least a device identification, processor means for executing program instructions, said processor means being coupled to said first storage means, and empowerment means for activating said processing unit upon receiving an authorization message from a cryptographic means, said empowerment means being coupled to said first storage means; and cryptographic means for authenticating the user of the node and for confirming that it is communicating with said source means, said cryptographic means includes second storage means for storing at least a copy of said device identification, and cryptographic processor means, coupled to said second storage means, for attempting to authenticate the user of the node, for verifying that said cryptographic means is communicating with said source means by utilizing said copy of said device identification as an cryptographic key if the user is authenticated, and for transmitting said authorization message to the source means in order to place said source means in said functional state if said cryptographic means is confirmed to be communicating with said source means. 18. The node according to claim 17, wherein said first and second storage means are non- volatile memory. 19. The node according to claim 18, wherein said device identification is permanently and exclusively stored in said first and second storage means. 20. The node according to claim 17, wherein said empowerment means of said source means is operational when said source means is in the non-functional state, said empowerment means has access to said device identification stored in said first storage means and performs decryption operations on a message transmitted to said source means and encryption operations on a message transmitted from said source means. 21. The node according to claim 17, wherein said empowerment means includes a random number generator to generate a temporary session key to be used between the cryptographic means and said source means after confirmation that said cryptographic means is communicating with said empowerment means of said source means. 22. The node according to claim 17, wherein said cryptographic processor means confirms that it is communicating with said source means by encrypting an authentication message with said copy of said device identification, transmitting said encrypted authentication message to said source means, receiving a return message from said source means and decrypting said return message with said copy of said device identification. 23. A node requiring authentication of its user to be functional, the node comprising: a bus; and a source device coupled to said bus, said source device includes a bus interface unit coupled to said bus, a memory element, a processing unit coupled to said bus interface unit and said memory element, said processing unit is initially placed in a non-functional state after power-up of the node, and a cryptographic processing unit coupled to at least said processing unit to place said processing unit in a functional state. 24. A method for conditionally activating an electronic device permanently containing a device identification implemented along with a companion electronic device permanently containing the device identification in a node, the method comprising the steps of: verifying that a user of the node is authorized to use the node; confirming that the electronic device is operating in conjunction with the companion electronic device; and activating the electronic device if the user is verified and the electronic device is operating in conjunction with the companion electronic device. 25. The method according to claim 24, wherein said confirming step includes the steps of encrypting a challenge using the device identification contained in the companion electronic device; transmitting said encrypted challenge to the electronic device; receiving said encrypted challenge by the electronic device; decrypting said encrypted challenge with the device identification contained in the electronic device; encrypting a response to said challenge using the device identification contained in the electronic device; transmitting said encrypted response from the electronic device to the companion electronic device; and decrypting said response thereby determining that the electronic device and the companion electronic device are operating in conjunction. 26. The method according to claim 25, wherein said response produced by the electronic device includes contents of said challenge produced by the companion electronic device and a random bit string. 27. The method according to claim 26, wherein said activating step includes the step of encrypting a message with said random bit string provided by the electronic device; transmitting said encrypted message from the companion electronic device to the electronic device; receiving said encrypted message by the electronic device; decrypting said encrypted message using said random bit string previously calculated by the electronic device; and altering an operational state of the electronic device if the message received from the companion electronic device is as expected.

Inventors: DAVIS DEREK L, DAVIS, DEREK, L.
Applicants: DAVIS DEREK L, INTEL CORP, DAVIS, DEREK, L., INTEL CORPORATION
Application year: 1996
Main classification: H04K1
IPC codes: G06F1, G06F21