Abstract:
A secure cryptographic logic arrangement immediately halts the processing of its internal processors upon detection of a single fault. The cryptographic logic arrangement has an arithmetic logic unit, permuter, and a non-linear combiner. A total self-checking controller monitors each of the arithmetic logic unit, permuter, and non-linear combiner to determine whether a fault has occurred in any one of its internal processors. The total self-checking controller employs a scheme of transmitting a pseudorandom signal to each of the internal processors and compares a phase of the pseudorandom signal received back from each of the internal processors to determine whether a fault exists.

Description:
BACKGROUND OF THE INVENTION 
     The present invention pertains to secure telecommunications and more particularly to a cryptographic logic arrangement for providing terminal-to-terminal encryption/decryption security for a cryptographic engine or processor. 
     Conventional wireline or wireless telecommunications are susceptible to interception and theft of the data being transmitted. In order to prevent the theft of information in both wireless and wireline configurations, information is encrypted before it is transmitted from one terminal and decrypted when it is received at another terminal. Encryption/decryption of transmitted information provides additional security in a telecommunication such that if the information is intercepted by an unauthorized person, it is not readily understandable by that person. Decryption of stolen data may be very difficult or impossible with certain complex encryption algorithms. 
     Due to the sophisticated encryption algorithms that may be used, the performance of the cryptographic encryption/decryption units is adversely affected. In addition, present day cryptographic units may suffer failure and transmit unencrypted data which may seriously compromise the integrity of the secure telecommunication system. 
     Further, these cryptographic engines or processors typically have several different kinds of processors to perform various functions during the encryption or decryption. Detecting faults in this myriad of processors is difficult at best. Often times these processors are specifically allocated to perform specific functions in the encryption/decryption process. 
     It would be highly desirable to have a cryptographic logic unit with many flexibly driven processors and a fault detection arrangement for rapid detection of faults throughout a number of processors of a cryptographic logic arrangement and preventing the transmission of any unencrypted information. 
     SUMMARY OF THE INVENTION 
     In accordance with the present invention, a novel secure cryptographic logic arrangement is shown. The secure cryptographic logic arrangement has a crypto processor for transmitting and receiving plain text data and cipher text data. The crypto processor converts the cipher text data to plain data and the plain text data to cipher text data. The crypto processor has two input buses and an output bus. The crypto processor also has a number of processors, among them an arithmetic logic unit, a permuter, and a non-linear combiner. The arithmetic logic unit is coupled to the two input buses and to the output bus. The permuter is coupled in parallel with the arithmetic logic unit to the two input buses and to the output bus. The non-linear combiner is coupled in parallel with the arithmetic logic unit and with the permuter to the two input buses and to the output bus. The crypto processor also has a total self-checking controller which is coupled to the arithmetic logic unit, to the permuter, and to the non-linear combiner. The total self-checking controller halts the processing of the arithmetic logic unit, permuter, and non-linear combiner in response to a detection of a fault in the crypto processor. 
    
    
     BRIEF DESCRIPTION OF THE DRAWING 
     FIG. 1 is a block diagram of processors communicating in accordance with the present invention. 
     FIG. 2 is a block diagram of an encryptor/decryptor in accordance with the present invention. 
     FIG. 3 is a block diagram of the cryptographic logic unit of FIG. 2. 
     FIG. 4 is a block diagram of a total self-checking arrangement in accordance with the present invention. 
     FIG. 5 is a block diagram of a total self-checking circuit in accordance with the present invention. 
     FIG. 6 is a logic diagram of the true unit and complement unit of FIG. 5. 
     FIG. 7 is a block diagram of a total self-checking circuit in accordance with the present invention. 
     FIG. 8 is a block diagram of a comparator cell of FIG. 7. 
     FIG. 9 is a block diagram of a series coupled permuter arrangement in accordance with the present invention. 
     FIG. 10 is a block diagram of another series coupled permuter arrangement in accordance with the present invention. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     FIG. 1 depicts a typical environment for a cryptographic logic unit in accordance with the present invention. A computer 10 is shown coupled to a terminal 15. This coupling occurs from a connection of computer 10 to link encryptor 11 and from link encryptor 11 to modem 12. Modem 12 is coupled through a transmission line to modem 13. Modem 13 is connected to link encryptor 14 which in turn is connected to terminal 15. The cryptographic logic unit is included in each of the link encryptors 11 and 14. Each of the link encryptors 11 and 14 has a black portion which handles cipher text data and a red portion which handles plain text data. 
     Plain text data is data which is directly readable by an observer and is not encoded in any way. Cipher text data is data which is encoded and if read in the encoded state would not provide any information. Computer 10 manipulates plain text data. When computer 10 wishes to transmit information to terminal 15, computer 10 sends a message to link encryptor 11 in plain text. Link encryptor 11 converts the plain text to cipher text and transmits the cipher text message to modem 11. Modem 12 via transmission line transmits the cipher text information to modem 13. Modem 13 transmits the cipher text message to link encryptor 14. Link encryptor 14 decrypts the message and produces a plain text message. Link encryptor 14 transmits this plain text message to terminal 15 for its use. The process would be reversed if terminal 15 were transmitting a message to computer 10. 
     FIG. 2 is a block diagram of the link encryptors 11 and 14 of FIG. 1 shown in detail. Each of the link encryptors 11 and 14 include a red processor 20, a crypto processor 30, and black processor 40. 
     Red processor 20 includes processor 21 coupled to ROM 22, RAM 23, and input/output (I/O). I/O 24 couples either to terminal 15 or computer 10 as the case may be. In addition, processor 21 is coupled to instruction processor 33 of the crypto processor 30. Instruction processor 33 may be programmed to implement various encryption/decryption algorithms, such as, Data Encryption System (DES) or other algorithms, even classified ones. 
     Black processor 40 includes processor 41 coupled to ROM 42, RAM 43, and to input/output (I/O) 44. Input/output 44 is coupled to modem 12 or 13 as the case may be. In addition, processor 41 is coupled to instruction processor 33 of crypto processor 30 for the transmission and reception of various commands. 
     Crypto processor 30 includes register file 31 which is coupled from cryptographic logic unit (CLU) 32 and coupled to CLU 32 via multiplexers 38 and 39. 
     Crypto processor 30 further includes microprocessor 33 which is coupled to ROM 34, RAM 35, and to CLU 32. The plain text output of CLU 32 is coupled through output buffer 28 to microprocessor 21, ROM 22, RAM 23, and I/O 24 of red processor 20. The cipher text output of CLU 32 is transmitted through output buffer 29 to microprocessor 41, ROM 42, RAM 43, and I/O 44 of black processor 40. 
     Plain text from red processor 20 is transmitted through input buffer 36, through multiplexer 38 to CLU 32. Similarly, cipher text data is transmitted from black processor 40 through input buffer 37, through multiplexer 39, to CLU 32. Multiplexer 38 selects data from red processor 20 or register file 31 for transmission to CLU 32. Similarly, multiplexer 39 selects cipher text data from processor 40 through input buffer 37 and multiplexer 39 to CLU 32 or data from register file 31 for transmission to CLU 32. Register file 31 stores the intermediate results of a particular encryption/decryption algorithm, such as DES. 
     The cryptographic conversion from plain to red text data is performed within crypto processor 30. CLU 32 cyclically receives instructions to control the execution of the encryption algorithm from microprocessor 33. 
     Referring to FIG. 3, a block diagram of CLU 32 of FIG. 2 is shown. As inputs CLU 32 has the A bus, B bus and the C bus is the output. Also CLU 32 receives instructions on the instruction bus. 
     CLU 32 includes arithmetic logic unit 50, permuter 60, and non-linear combiner 70. The arithmetic logic unit 50, permuter 60, and non-linear combiner 70 are each coupled in parallel to the A bus and to the B bus respectively. Arithmetic logic unit 50, permuter 60, and non-linear combiner 70 are coupled through multiplex 55 to the C bus. The C bus is the output of the crypto processor 30 and also couples CLU 32 to register file 31. 
     In addition, total self-checking (TSC) controller 80 is coupled to a TSC circuit in each of the arithmetic logic unit 50, permuter 60, and non-linear combiner 70. Instruction bus couples microprocessor 33 to arithmetic logic unit 50, permuter 60, non-linear combiner 70, and multiplexer 55. 
     Arithmetic logic unit (ALU) supports both Boolean and arithmetic operations. ALU 50 performs bit-wise Boolean functions of the A and B bus inputs (e.g. logical AND, logical OR, and logical INVERT). ALU 50 also performs arithmetic functions of the A and B bus inputs (e.g. add, add with carry, subtract, and subtract with carry). 
     Permuter 60 performs permutations on data based on the contents of pre-configured permuter controlled RAM (not shown) internal to permuter 60. Multiple permutations may be pre-configured into the permuters control RAM at initialization time prior to algorithm execution by the CLU 32. The instruction bus provides input selection for performing the permutation operations by permuter 60. Each instruction on the instruction bus enables permuter 60 to perform one of the pre-configured permutations. 
     Non-linear combiner (NLC) 70 enhances the performance of CLU 32 by performing multiple non-linear combination operations simultaneously. Non-linear combinations are performed by a table lookup scheme. The lookup tables are included in a RAM (not shown) internal to non-linear combiner 70. The lookup tables are pre-configured into the RAM at initialization time prior to algorithm execution. 
     CLU 32 utilizes a distributed total self-checking logic scheme to insure fail-safe operation. This scheme provides an on-line checking mechanism that will detect any single failure in the CLU 32 functional units, ALU 50, permuter 60, and NLC 70. Upon a failure detection by the TSC controller 80, TSC controller disables the outputs of CLU 32 on the C bus. Failures may arise in any of the functional units, ALU 50, permuter 60, or NLC 70. Disabling the outputs of the C bus prevents unsecured CLU 32 operation. Distributed total self-checking logic scheme provides continuous on-line real time failure monitoring which eliminates an on-line window of vulnerability of traditional secure telecommunication systems which utilize off-line alarm check procedures. Each of the CLU 32 functional units include a separate total self-checking circuit. The distributed total self-checking logic technique minimizes the gate delay of each of the components of TSC controller 80. This allows the CLU 32 to operate at higher speeds than traditional non-distributed checking architectures. 
     Referring for FIG. 4, a block diagram of the distributed total self-checking logic scheme is shown. This scheme provides a high level of confidence in the ability to detect any single failure in any of the functioning units, ALU 50, permuter 60, and NLC 70, as well as a failure in the total self-checking logic itself. The total self--checking logic scheme monitors the output of redundant logic functions during normal operation. This scheme generates an error indication within one clock cycle if the outputs of the functional units are not complementary. Each functional unit 50-70 includes total self-checking circuitry 81 which provides exclusive on-line error checking for that particular functional unit. Each total self-checking circuit 81 is configured to generate a unique phase of an input sequence. The input sequence is generated by master generator 85 of total self-checking controller 80 and transmitted to each of the TSC circuits via the PN lead. Master generator 85 also includes redundant linear sequence generators that internally generate all phases PN1-PN3 of the master sequence PN. Master generator 85 transmits all phases of the basic PN signal on the PN1-PN3 leads to alarm evaluator 86. Each total self-checking circuit 81 of each functional unit 50-70 also generates a unique phase of the master sequence transmitted on the PN lead. This occurs from examining the complement logic 51 and true logic 52 outputs of ALU 50, the complement logic 61, and true logic 62 outputs of permuter 60; and the complement 71 and true logic 72 outputs of NLC 70. 
     Each TSC 81 of functional units 50-70 produces its own unique phase. That is, TSC 81 of ALU 50 produces PN3; TSC 81 of permuter 60 produces PN2; and TSC 81 of NLC 70 produces PN1. These signals are transmitted via the corresponding leads PN1-PN3 to alarm evaluator 86 of TSC controller 80. Alarm evaluator 86 continually compares the internally generated sequences P1-P3 of master generator 85 with the sequences generated by each TSC 81 of functional units 50-70. If any miscomparison occurs in any of the functional units 50-70 or in the TSC controller 80, one or more of the sequences will not correctly compare. This condition is detected by alarm evaluator 86. As a result, alarm evaluator 86 outputs the alarm signal which disables the C bus from producing any output signals. 
     FIG. 5 depicts a block diagram of a typical functional unit 50-70 including its corresponding total self-checking circuit 81. The control outputs and data outputs of each functional unit are transmitted to true unit 91 and complement unit 92 as control input and data input. During normal failure-free operation of each functional unit 50-70, the outputs of the true unit 91 and complement unit 92 will always be complementary. The outputs of true unit 91 and complement unit 92 are coupled into TSC circuit 81. The true unit 91 and complement unit 92 must provide true and complement outputs for each signal that is monitored by TSC circuit 81. The input sequence PN is input to TSC 81 via the PN lead from TSC controller 80. The outputs of the true unit 91 and complement unit 92 must change state periodically and in synchronism according to the particular phase of the master sequence PN. The resultant phase is output on the P3 lead and transmitted to TSC controller 80. The output of the circuit may be taken either from the output of the true unit 91 or complement unit 92 depending on which sense of the signal is appropriate. The elements of the TSC circuit are totally self-checking as long as the inputs to the circuit 81 change state periodically. The true unit 91 and complement unit 92 must provide true and complement outputs for each signal that is to be monitored by the TSC circuit 81. The true and complement inputs from the true unit 91 and complement unit 92 respectively which are transmitted to TSC circuit 81 must be generated by separate units in order to achieve true error checking capability. 
     FIG. 6 depicts the preferred embodiment of a true unit 91 and complement unit 92 of one of the functional units 50-70. True unit 91 includes AND gate 94 coupled to the A and B leads, NOR gate 95 coupled to the A and B leads, and OR gate coupled to the outputs of AND gate and NOR gate 95 and producing the F output on the corresponding lead. 
     Complement unit 92 includes inverters 88 and 89 coupled to the A and B leads. Inverters 88 and 89 invert the signals on the A and B leads to be the inverted signals on leads A and B. Complement unit 92 further includes OR gate 97 coupled to inverters 88 and 89. In addition, complement unit 92 includes NAND gate 98 connected to inverters 88 and 89. OR gate 97 produces the C signal on the corresponding lead and NAND gate 98 produces the D signal on the corresponding lead. AND gate 99 is connected to OR gate 97 and NAND gate 98 via the C and D leads. AND gate 99 produces the F signal on the corresponding lead. Thus, as can be seen from Tables 1 and 2, any combinations of signals on the A and B leads will produce the F output from OR gate 96 of true unit 91 and the complement signal F from the AND gate 99 of complement unit 92. By the TSC circuit 88 comparing these two leads and tracking a pseudorandom PN sequence, it can determine whether there has been an error in the circuitry of each functional unit. 
     
                       TABLE 1______________________________________A          B     C            D   F______________________________________0          0     0            1   10          1     0            0   01          1     1            0   11          0     0            0   0______________________________________ 
    
     
                       TABLE 2______________________________________.sup.-- A  .sup.-- B            .sup.-- C    .sup.-- D                             .sup.-- F______________________________________0          0     0            1   10          1     0            0   01          1     1            0   11          0     0            0   0______________________________________ 
    
     FIG. 7 depicts a block diagram of a typical TSC circuit 81. TSC circuit 81 includes sequence generator 101, parity checker 102, and parallel comparator 103. Sequence generator 101 includes offset generator 104 and generators 105-107. Each of the generators is connected in parallel to the TSC controller 80 via the PN lead. Sequence generator 101 produces a number of input combinations for transmission to parallel comparator 103 to produce the totally self-checking feature of TSC 81. Sequence generator 101 has a set of linear sequence generators 105-107 that are configured to produce a particular phase of the input sequence on the PN lead. Redundant sequence generators 105&#39;-107&#39; are used to produce along with the generators 105-107 the true and complementary signals for each output sequence derived from the PN sequence. In a failure occurs within any of the functional units, the output of the corresponding generator will not be the correct phase of the input sequence. As a result, the PN output signal of TSC 81 will be incorrect. This error will be detected by TSC controller 80 and the system will be shut down. Parity checker 102 has a set of comparator cells 110-112 which are coupled to the outputs of the functional unit via the W, X, Y, and Z leads. W and X leads are coupled to comparator cell 111, the Y and Z leads are coupled to comparator cell 110. The outputs of comparator cells 110 and 111 are coupled to comparator cell 112. If the outputs of the functional unit are complementary, the output of the parity checker will also be complementary. That is, if the signals on leads W and X are complementary and Y and Z are complementary, the output of comparator cell 112 will be a complementary signal. 
     Parallel comparator 103 includes a parallel/series set of comparator cells 121-129. Generator 105 and the Z lead are coupled to comparator cell 102. Generator 106 and the Y lead are coupled to comparator 122. Generator 105 and the X lead are coupled to comparator cell 123. Generator 107 and the W lead are coupled to comparator cell 124. The output of comparator cells 121 and 122 are coupled to comparator cell 125. Similarly, the output of comparator cells 123 and 124 are coupled to comparator cell 126. The output of comparator cells 125 and 126 are coupled to comparator cell 127. The output of comparator cells 112 and 127 are coupled to comparator cell 128. The output of comparator cells 128 and offset generator 104 are coupled to comparator cell 129 which produces the PN out signal on the corresponding lead. 
     During error-free operation of the functional unit 5070, the PN out of parallel comparator 103 will be identical to one of the input sequences of generators 105-107. Each comparator cell 120-129 of parallel comparator 103 verifies that input signal pairs from the redundant functional unit are complementary. If any of the input signal pairs are not complementary, the PN out of parallel comparator 103 will be forced to an error condition. The output of parity checker 102 from comparator cell 112 is compared to the parity check of comparator cell 127 by comparator cell 128. If the result of this parity check by comparator cell 128 is that these signals are equal, the parity of the input data will cancel out and the output of parallel comparator 103 will match one of the original input sequences. The particular PN sequence which is produced by PN out will depend on the configuration of the generators 105-107 as inputs to parallel comparator 103. 
     Referring to FIG. 8, the comparator cell is shown in detail. The comparator of FIG. 8 is suitable for implementing the comparator cells 110-112 and 121-129 of FIG. 7. 
     As inputs to each comparator cell, there are two inputs A and B and their inverted form A and B. The outputs of the comparator cell are C and C. The signals A and A, B and B, and C and C are complementary signals. The function of the comparator cell is defined by the following equations: 
     
         C=(A AND B) OR (A AND B) equation 1 
    
     
         C=(A AND B) OR (A AND B) equation 2 
    
     where AND is a Boolean AND operation and OR is a Boolean OR operation. 
     An alternate configuration of the CLU 32 is shown in FIG. 9. This configuration includes two permuters 130 and 131. Permuter 130 is in series with the A bus input and NLC 132 and ALU 133. Permuter 131 is in series with the B bus input and NLC 132 and ALU 133. MUX 134 selects the output of NLC 132 or ALU 133 to be placed on the C bus output. Placing the permuters 130 and 131 in series with the A and B bus inputs enhances the performance of CLU 32 by allowing a permutation and either an ALU operation or a non-linear operation to be performed in a single instruction. 
     Another alternate configuration of CLU 32 is shown in FIG. 10. This configuration illustrates more than two input buses and more than one output bus. Permuters 141, 142, 143 and 144 are coupled between four input buses A-D and linear combiner 145, NLC 146 and ALU 147. The E output bus is selected by MUX 148 to be either the output of linear combiner 145 or of NLC 146. The F output bus is coupled to the output of ALU 147. This configuration enhances the performance of the CLU 32 by allowing linear and non-linear operations on more than two inputs. Also, an ALU operation can be performed in parallel with either a linear or nonlinear operation. 
     The cryptographic logic unit described herein is a programmable, high performance, secure cryptographic engine. The cryptographic unit has the advantage of providing a programmable cryptographic algorithm implementation. High performance of the cryptographic logic unit is made possible by direct support of common cryptographic functions, such as permutations and non-linear combinations. Security which is an important part of any cryptographic engine is enhanced by the incorporation of total self-checking logic. This logic rapidly determines errors and prevents any output of the cryptographic engine should a fault be detected. The permuter and non-linear combiner of the cryptographic logic unit are configurable for flexibility in implementing different algorithms. As can be seen from the above, a programmable, highly flexible and secure cryptographic engine results from the cryptographic logic unit shown herein. 
     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.