Abstract:
A method allows computer systems to handle different classes of data that are not allowed to intermingle. The method ensures that elements of the computer system not associated with a given class of data could not read from or write to the system bus while data of a different class is being transported across the system bus (10). At the same time, the method ensures that the elements of the computer system that are associated with the given class of data being transported across the bus 10 are given access to the bus (10) and the data. This is accomplished by using a single bus (10), controlling system element access to the bus with transceivers (21-31). The transceivers (21-31) are turned on or off by signals derived from system knowledge of the class of data allowed to be read or written by each system element and hence the class of data on the bus (10).

Description:
BACKGROUND OF THE INVENTION 
     The present invention pertains to communications and more particularly to data security in communication systems. 
     Computer systems often handle classes of data (such as security levels) that must not be permitted to intermingle due to the criticality of their data content such as in banking or safety applications. An isolated path must be established for transmitting a given class of data between elements of the computer system with assurance that the data has been transmitted from the proper source, has been received by an authorized recipient and that unauthorized elements of the system have not intercepted or altered the data. 
     Separate buses (one for each class of data) can be established between elements of the computer system but this arrangement makes the system overly complex as the number of security levels increases. Separate buses dictate custom hardware composition for the computer system elements as they must have the ability to interface to the various buses for each class of data and must incorporate logic that permits their association with certain classes of data and prohibits their association with other security levels. Separate buses also make the system less flexible if the rules governing which elements of the computer system are associated with which classes of data should change. 
     It would be advantageous to have a means by which a single computer bus may be used to convey the various classes of data in a manner that ensures that the different classes of data remain physically isolated. That is, each of the computer elements connected to the bus at any given time must all be authorized to transmit and receive a common class of data. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram of the hardware showing how the flow of information is controlled in accordance with the present invention. 
     FIG. 2 is a block diagram that shows details of the control function in accordance with the present invention. 
     FIG. 3 is a block diagram that shows a segment of the secure bus arbiter circuitry function in accordance with the present invention. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     This invention fills the need to associate classes of data with computer subsystem elements and to isolate computer subsystem elements from inappropriate data in accordance with a static or dynamic set of rules of association in a multi-processor subsystem employing commercially available computer devices. It uses ordinary bus transceivers (such as Integrated Device Technology part number FCT 162245) to accomplish the isolation of computer system elements from interaction with the transfer of an inappropriate class of data. These bus transceivers are controlled either by a hardware or software based system bus arbiter. 
     The hardware system bus arbiter employs logic circuitry for enabling bus transceivers to connect the bus to a given device based on the bus arbiter&#39;s register contents that are programmed by a trusted computer system element. The software based system bus arbiter employs a trusted computer or microprocessor system having sufficient discrete I/O to control the isolation transceivers along with software for implementing the data processing unit/data class associations either statically or dynamically. The soft-warebased system bus arbiter may be incorporated as a part of the trusted system element. 
     In a standard computer system, a subsystem element must obtain use of the bus for transferring data to another subsystem element without the interference of other subsystem elements during the process. Various schemes are employed by the different computer architectures in allocating the bus to its various subsystem elements but all provide setting protocols for any subsystem element to access the bus. Examples of these protocols are round robin (where each subsystem element is granted access in turn) and granting by priority (where high priority subsystem elements are granted more frequent bus access than others). The present invention provides an overlay of the priority scheme of any given bus with rules associating subsystem elements with classes of data for controlling the bus transceivers in the interfaces to all subsystem elements. These rules can allow each subsystem element to receive or transmit only the data at the subsystem element&#39;s own data class or to receive all data from a subset of the total data class set of subsystem elements as well as transmit its own. In this way, the invention permits computer bus operations using the given architecture&#39;s standard arbitration protocols for all permitted bus interactions while isolating subsystem elements from inappropriate data classes. Because all computer buses have data lines that can be blocked with ordinary bus transceivers and because all computer buses employ bus arbitration schemes that can be intercepted and overlaid with data class/processor device associations, this invention is applicable to any standard bus including PCI, PCMCIA and VME bus structures. The present invention to provides data separation in a wide variety of commercial architectures. 
     FIG. 1 is a block diagram that shows an example of the use of this invention in a computer system used primarily for communications. The system is comprised of the following processor devices: computer (not shown) that, for example, might be the primary computer-human interface; I/O units (I/O Unit 1 through I/O Unit n) for interfacing to digital systems such as ethernet; a router 16 for packetized data protocols; multi-media units (MMU 1 through MMU n) for voice or video coding; cryptoprocessors (CPU 1 through CPU n) for data encryption; modems (1 through n) for connection to wireless receiver/transmitters; and a Trusted System Controller 14 for key management and critical control functions. 
     All communication is via a standard bus 10. In this example, data is being input via data channel 1 to the I/O Unit 1. The data transmitted is passed securely over the bus 10 to the Router 16 where it is packetized and then delivered to cryptoprocessor CPU 1 for encryption and delivery to modem 1 for modulation to allow subsequent tranmission by modem 1. Each data transfer over this data path requires a separate usage of the bus 10, yet this invention provides isolation of the data over the bus 10 from all other elements coupled to the bus 10 and not associated with this security level. 
     The invention physically isolates the single computer bus to a single class of data for a given data transfer insulating it from devices associated with other classes of data (according to the rules of association). Bus transceivers, 21 through 31, are placed between bus 10 and each processor device in the data lines (and optionally in the address lines). The bus transceivers, 21 through 31, are each processor device&#39;s bus interface and also act as switches, closing along a permitted path and opening to prevent eavesdropping or injection of false data by devices not associated with the permitted path. Control of the bus transceiver switches 21 through 31 is accomplished by a hardware or software based secure bus arbiter 12. Secure bus arbiter 12 control circuitry may be embedded into the bus 10 backbone as illustrated in FIG. 1 or may be incorporated into a standard computer system element. However, in either case, each bus transceiver&#39;s controls are accessible only to the secure bus arbiter 12. The secure bus arbiter 12 is configured to act in accordance with rules of association between the processor devices and classes of data by a trusted system element. In the example of FIG. 1, the Trusted System Controller 14 is the trusted system element and configures the secure bus arbiter 12 to follow the rules of association. 
     Classes of data and their rules of association with processor devices are identified by the computer system&#39;s control function (not shown), transmitted to the Trusted System Controller 14 and programmed into the secure bus arbiter 12. This programming may be static, taking place only upon initialization of the computer system, or it may be dynamic under the control of software executed by the Trusted System Controller 14. These associations between security levels and processor devices are combined by the secure bus arbiter 12 with other bus management processes such as bus access priorities set by the computer system&#39;s control function (not shown) or by other non-trusted system elements (not shown). Data originating in a processor device identified as being associated with a given class of data is assumed to be at that processor device&#39;s security level. Other processor devices can receive that data only if they have the appropriate data class assignment as defined by the rules of association. The normal operation of bus 10 directs the data to the target processor device. That target processor device will receive the data only if it has the correct data class association. For example, assume that I/O Unit 1 resides in a data security system and has been identified by the Trusted System Controller 14 as being able to process secret data. In that case I/O Unit 1 is now associated with a security level of &#34;secret&#34;. Any request for use of the bus by I/O Unit 1 and subsequent grant of the bus 10 will cause the secure bus arbiter 12 to close each of the bus transceivers 21 through 31 that interface with those processor devices that are also qualified to process &#34;secret&#34; data. All other transceivers 21 through 31 interfacing with processor devices that are not associated with secret data will be opened. The data transmitted by I/O Unit 1 can thus be received only by those processor devices associated with the security level of &#34;secret&#34;. 
     FIG. 2 illustrates the data transfer process for a PCI bus data transfer. By means of its unique bus request line 46, an initiating agent unit 40 calls for use of the bus 10 for transfer of data to a target agent unit 44. The secure bus arbiter 12 has previously received the class of data of data, associated with the initiating agent unit 40, from the Trusted System Controller 14. The Trusted System Controller 14 has also informed the secure bus arbiter 12 of the data class of the target agent unit 44. If the transfer is permitted, and, assuming the initiating agent unit 40 has the highest current priority to use bus 10, the secure bus arbiter 12 grants bus access to the initiating agent unit 40 by sending bus grant on lead 2. Simultaneously with or prior to granting bus access to the initiating agent unit 40, the secure bus arbiter 12 sends a signal on lead 50 to the bus transceiver 41 of the initiating agent unit 40 that closes the transceiver connecting the initiating agent unit 40 to the bus 10. The secure bus arbiter 12 also sends a signal on lead 52 to the bus transceiver 45 of the target agent unit 44 that closes the transceiver along the permitted path. The secure bus arbiter 12 also sends signal 51 that opens the bus transceiver 43 of any other agent unit 42 on the bus 10 not associated with the class of data of the permitted path. The &#34;secret&#34; data transfers then take place between initiating agent unit 40 to target agent unit 44. 
     The secure bus arbiter 12 shown is the hardware implementation and accomplishes this process during the same time that the normal hardware bus arbitration would require. Once the transfer is complete, the invention&#39;s secure bus arbiter 12 immediately grants the bus 10 to the next priority user and isolates the bus 10 in accordance with the new class of data being transferred. 
     The implementation shown in FIG. 1 and detailed in FIG. 2 can be accomplished by a custom mother board including all of the circuitry and required card slots. The implementation can also be by means of a supplementary board including the bus transceivers and the required standard card slots that is plugged into a standard mother board. 
     FIG. 3 is a block diagram that shows an example of a segment of secure bus arbiter 12 circuitry used for a PCI bus data transfer in a data security system illustrating the simplicity of the logic involved. An addressable latch 60, within the secure bus arbiter 12, is previously programmed by the Trusted System controller 14 with the security level assigned to the processor device requesting the bus 10. When a processor device requests access to bus 10, the processor device&#39;s request is made via its bus request line 84. Using the output of the addressable latch 60, the security decoder 62 provides signals on lines 86, 88, 90 and 92 indicating the security level of the processor device requesting access to the bus. If the priority logic 81 sends a bus grant signal on lead 82 to the requesting processor device, the requesting processor device&#39;s security signal lines 86, 88, 90 and 92 are made to drive the security level bus 80 by the security bus driver 72. All other segments (not shown) of the secure bus arbiter 12 are also represented by the circuitry shown in FIG. 3. For any given segment, its comparator 78 compares the security level of the security bus 80 with that of the segment&#39;s own security decoder 62 output. If they agree, the comparator 78 enables the transceiver of that segment transceiver Thereby, bus access is granted to the requesting processor device and to other processor devices associated with the data security level of the requesting processor device. Overall security is provided by verifier 74 that ensures that only one signal line 86, 88, 90 and 92 is energized at one time and verifier 76 that ensures that only one line of the security level bus 80 is energized at one time. Communication thus takes place while the bus request is active or until a timer in the priority logic 81 limits the duration of the communication and ends the bus grant. 
     This invention ensures that processor devices not associated with a given class of data cannot read the data or write to the bus to insert data of a different class or corrupt the given data as it is being transported across the bus. While one class of data is being transmitted on the computer bus, only devices permitted to handle the given class of data are enabled to receive this data while devices not associated with the current class of data are prevented from accessing this data. The result is a time-division multiplexing of the computer bus among elements associated with various classes of data. 
     Although the preferred embodiment of the invention has been illustrated, and that form described in detail, it will be readily apparent to those skilled in the art that various modifications may be made therein without departing from the spirit of the invention or from the scope of the appended claims.