Method for encryption and transmission of digital keying data
This disclosure of the present invention includes a microfiche appendix which is on file with the U.S. Patent and Trademark Office pursuant to the provisions of 37 CFR 1.96. The microfiche appendix includes a listing of a computer program which controls the apparatus of the invention and which implements the method of the invention. 
     BACKGROUND OF THE INVENTION 
     The invention described herein is generally related to methods and apparatus for the encryption and transmission of digital data. More particularly, this invention is related to data encryption and transmission systems which utilize the Data Encryption Standard promulgated by the United States Bureau of Standards. This invention is the result of a contract with the Department of Energy (Contract No. W-7405-ENG-36). 
     The widespread electronic transmission of digital data has created a need for increasingly efficient systems for the encryption and decryption of sensitive data. Previously known systems typically employ cryptoalgorithms which operate to encrypt digital data into an unintelligible form for transmission over non-secure communications channels, such as commercial telephone lines. In 1977 the U.S. National Bureau of Standards published a completely defined encryption algorithm, or cryptoalgorithm, which is known as the Data Encryption Standard (DES). This cryptoalgorithm is the U.S. standard for the encryption of sensitive unclassified data. The cryptoalgorithm is used by federal agencies for the transmission of sensitive unclassified data, and by private companies in applications such as electronic funds transfer. The DES is published in Federal Information Processing Standards Publication 46 (FIPS PUB 46) of the National Technical Information Service (1977), and in U.S. Pat. Nos. 3,796,830 to Smith and 3,798,359 to Feistel, which are hereby incorporated by reference. 
     The DES method of encryption utilizes a data encryption key which consists of a 64-bit binary word. The key is used as a variable element in a publicly known mathematical algorithm which convers digital data, typically in ASCII form, into an apparently random sequence of bits. Virtually any 64-bit binary word may be used as the data encryption key. However, the key must also be known to the receiver of the encrypted data, as it is required to decrypt the encrypted data by the standard DES decryption procedure. Thus, the same key must be known to both the sender and the receiver. Since both the encryption and decryption procedures are publicly known, the security of the key is crucial to the effective use of the DES. Effective key management is thus an important aspect of the use of the DES. Key management involves the secure generation, distribution, storage and destruction of cryptographic keys. In this regard, one source of randomly generated DES keys is the U.S. National Security Agency, which generates secure keys and distributes them to various federal agencies and U.S. government contractors which have a need for the encryption and transmission of sensitive unclassified data. However, keys may also be generated by private parties by any method considered suitably secure under the circumstances. 
     DES users typically change keys at frequent intervals. For example, federal agencies using the keys provided by the National Security Agency typically change keys on a daily basis. Keys have been stored in written form and kept secured in accordance with standard security procedures. 
     There are now available commercial devices which implement the DES encryption/decryption procedure. Such devices are in the form of integrated circuits which accept as a first input the data to be encrypted and as a second input a 64-bit key. Additionally, the commercially available DES devices typically have a capability for receiving the encrypted data as a third input in a feedback mode. This is known as cipher feedback, and operates to prevent the transmission of repetitive sequences of encrypted data when the data being encrypted contains repetitive sequences of identical characters. Cipher feedback encryption of data is generally regarded as superior to what is called &#34;plain code book&#34; encryption of data, in which text characters are converted on a one-to-one basis to code characters in accordance with a translation table. It will be recognized that, in plain code book encryption, repeating sequences of text characters are converted directly into repeating sequences of coded characters, thereby diminishing somewhat the integrity of the encrypted data. 
     One disadvantage of prior art systems is that the key must be manually loaded into the data encryption and decryption units. If the key is changed frequently, there is significant opportunity for error in the entry of the key. 
     SUMMARY OF THE INVENTION 
     Accordingly, it is the object and purpose of the present invention to provide a method for cryptographic communication of digital data. 
     More particularly, it is an object of the invention to provide a method for cryptographic communication of digital keying data, so as to enable subsequent transmission of data in encrypted form. 
     It is also an object and purpose of the invention to provide a method for enabling cryptographic communication between a master unit and a remote unit, wherein a data encryption key may be generated at the master unit and downloaded to the remote unit in encrypted form for subsequent use by both units. 
     In accordance with the present invention, there is provided a method for the encryption, transmission and decryption of digital keying data between a master unit and a remote unit. The method comprises the steps of storing in both the master unit and the remote unit a plurality of key encryption keys, with the key encryption keys in each unit being indexed by a common indexing system; selecting a master key encryption key from among the key encryption keys stored in the master unit; generating a data encryption key in the master unit; encrypting the data encryption key using the master key encryption key; downloading to the remote unit the encrypted data encryption key together with an index designator identifying the master key encryption key; and decrypting the encrypted data encryption key at the remote unit to thereby enable subsequent transmission of data between the remote and master units using the data encryption key to encrypt and decrypt the transmitted data. 
     In accordance with other aspects of the method described further below, the data encryption key is encrypted by a particular sequence of encryption processes, using the master key encryption key and selected other key encryption keys. 
     The method of the invention may be conducted with an apparatus which may serve as either the master unit or the remote unit. The apparatus includes memory means for storing a plurality of key encryption keys, and means for indexing the key encryption keys in the apparatus by means of a common indexing system; means for selecting a master key encryption key from among the key encryption keys stored in the apparatus; means for generating a data encryption key and encrypting the data encryption key using the master key encryption key; means for downloading from the master unit to the remote unit the encrypted data encryption key together with an index designator identifying the master key encryption key; and means for decrypting the encrypted data encryption key at the remote unit to thereby enable subsequent transmission of data between the remote and master units using the data encryption key to encrypt and decrypt and transmitted data. 
     These and other aspects of the invention will be more apparent upon consideration of the following detailed description and accompanying drawings of a preferred embodiment in the invention. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The accompanying drawings, which are incorporated in and form part of the specification, illustrate an apparatus suitable for practicing the present invention and, together with the following description, serve to explain the principles of the invention. In the drawings: 
     FIG. 1 is a simplified schematic drawing of an apparatus for implementing the present invention, as it may be installed to enable cryptographic communication between a computer facility and a remote terminal over non-secure commercial communication channels; and 
     FIG. 2 is a schematic illustration of a circuit diagram of the apparatus, which may be either the master or the remote unit. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     The overall operation of the present invention is illustrated in simplified schematic form in FIG. 1. Briefly, the method of the invention, when implemented by the apparatus described below, enables cryptographic communication between a computer 10 and a remote terminal 12. The computer 10 is connected to a master encryption/decryption unit 14, which is in turn connected to a conventional modem 16. The terminal 12 is similarly connected to a remote encryption/decryption unit 18, which is connected to a modem 20. Communication between the modems 16 and 20 may be over ordinary non-secure commercial communications lines 22. 
     As will be discussed further below, the master and remote encryption/decryption units 14 and 18 may be substantially identical, with their function under program control as either a master unit or a remote unit being selectable by means of a switch. 
     FIG. 2 illustrates in greater detail the encryption/decryption unit, which may be either the remote unit 18 or the master unit 14 of FIG. 1. The unit includes a central controller 24, which in the preferred embodiment is an Intel 80C31 central processing unit (CPU), which is commercially available from Intel Corp. Operation of the controller 24 is under control of a computer program which is stored in a programmable read-only memory (PROM) 26, which in the preferred embodiment is an Intel 27C64 8-kilobyte erasable PROM (EPROM). The program is written in the computer language known as PL/M-51, which is a high level language particularly adapted for use with the Intel 80C31 CPU. A complete listing of the program is set forth in the above-referenced microfiche appendix. 
     The unit further includes a 16-kilobyte system random access memory (RAM) 28 and a separate 2-kilobyte RAM 30 which is employed for the storage of approximately 200 key encryption keys (KEK&#39;s). As discussed below, key encryption keys are 64-bit binary words which are used in the apparatus and method of the invention. The KEK&#39;s must be secured at the level of security with which the data to be transmitted must be protected. The KEK&#39;s are normally stored in an erasable PROM 32 that is in the form of an insertable cartridge which may be inserted in the unit to load the KEK&#39;s into the KEK RAM 30. The KEK PROM 32 is ordinarily kept secured, and is only used to load the KEK&#39;s when the unit is to be activated for data transmission. When the unit is intentionally disabled or otherwise deactivated, for example, as a consequence of anti-tamper security switches which are included in the apparatus, the KEK&#39;s are erased from the KEK RAM 30. However, the apparatus includes a battery backup 34 which enables the apparatus to retain the KEK&#39;s stored in the volatile memory 30 in the event of a power failure. 
     A KEK pointer 36 connected to the controller 24 allows for manual designation of any particular KEK stored in the KEK RAM 30. The pointer is used in the encryption process discussed further below. 
     The apparatus further includes two DES encryption chips 38 and 40. In the preferred embodiment these are each commercially available AMZ8068 DES integrated circuits. One chip (38) is used for encryption of data to be transmitted by the unit, and the other chip (40) is used for decryption of encrypted data received by the unit. 
     The controller 24 is connected to the computer 10 (or the terminal 12 as the case may be) by means of a serial communications interface 42, which in the preferred embodiment is an Intel 82C51 serial interface. The controller 24 is connected to the modem associated with the unit by means of a second serial interface 44. 
     The apparatus further includes a circular 8-bit counter 46 which operates continuously and which is read by the controller 24 whenever the system is called on to generate a new data encryption key, as discussed further below. 
     In ordinary operation, all data transmitted between the computer 10 (or terminal 12) and the controller 24 is transmitted as clear (unencrypted) text, and all data transmitted between the controller 24 and the modem 16 (or 20) is transmitted in encrypted form, or as cipher text. 
     The method of the present invention uses two keys; a data encryption key (DEK) and a key encryption key (KEK). A DEK is generated, in the manner described below, for each data transmission session. 
     The KEK EPROM 32 ordinarily contains approximately 200 KEK&#39;s. The KEK&#39;s are generated by any suitable pseudorandom method, and must be stored and distributed in accordance with the appropriate key management system. Since the key PROM card is essentially a permanent record of the KEK&#39;s which will be used over a period of time, it must be secured and protected at the level of sensitivity of the data. 
     When the key PROM card is inserted into the unit, the KEK&#39;s are loaded into the RAM 30 of the unit. A particular KEK is selected by means of the KEK pointer 36, which consists of a three-digit thumbwheel which selectively identifies an address in the RAM. The KEK at an address identified by the thumbwheel will be referred to herein as the master KEK. As discussed below, at the beginning of each data transmission session the master KEK is used to generate a DEK, which is used for subsequent data transmission during the same session. The KEK&#39;s are not used to encrypt data during ordinary communication. 
     Communication is ordinarily initiated at the remote unit. At the beginning of a data transmission session, a command is transmitted from the remote unit to the master unit. As described further below, this command essentially triggers the master unit to generate a DEK and download it to the remote unit for use in subsequent transmission of data. In the preferred embodiment, this command, called a crypto-sync command, consists of a BREAK character followed by an arbitrary preselected 8-bit synchronization character. The synchronization character activates the master unit to generate a DEK, encrypt the DEK so generated, and download the encrypted DEK to the remote unit so that both units are provided with the DEK. The manner in which this is done is described below. 
     In the following discussions, the following variables and cryptographic operations will be referred to: 
     T=the integer value of the thumbwheel pointer setting 
     X=T+3 
     E=DES encryption using the KEK indexed by X 
     E&#39;=DES encryption using the KEK indexed by X-1 
     E&#34;=DES encryption using the KEK indexed by X-2 
     E&#34;&#39;=DES encryption using the KEK indexed by X-3 
     In the foregoing equations, T and X are integers. For example, in one preferred embodiment the value of T is from 0 to 199; and X is thus from 3 to 202. E through E&#34;&#39; represent the DES encryption operation, using the various designated KEK&#39;s as the encryption keys. For example, the operator E&#34;&#39; represents the DES encryption operation using the KEK located at the address in the RAM which is pointed to when the value of the thumbwheel pointer is X-3, or T. Similarly, E&#34; represents DES encryption using the KEK located at the address pointed to by the value T of the thumbwheel pointer incremented by one, or T+1. In each of these encryption operations, simple code book encryption is conducted; that is, without any cipher feedback. 
     Upon receipt of the crypto-sync command, the master unit generates an initialization vector (IV) and a data encryption key (DEK), each of which are 64-bit binary words. The purpose and function of these parameters are discussed further below in the discussion of the subsequent encryption and transmission of data. The manner in which the IV and DEK are generated depends on whether or not the crypto-sync command is the first crypto-sync command the master unit has received since the master unit was last powered up. If the crypto-sync command is the first such command to be received since the power-up of the master unit, the master unit first generates an initialization vector (IV) and then generates a data encryption key (DEK). In the generation of the initialization vector, the master unit first reads the value of a circular 8-bit counter eight times to generate a pseudorandom 64-bit word. The eight bit counter is ordinarily actuated and initialized each time the master unit is powered up. The 64-bit word so generated is encrypted, using the DES, and using as the encryption key for this purpose the KEK located at the RAM memory location pointed to by the thumbwheel, i.e., using the encryption operation E&#34;&#39;. The encrypted value of the pseudorandom 64-bit word is the initialization vector (IV). The generation of the IV is represented by the following equation: 
     
         IV=E&#34;&#39;(Counter(1)). 
    
     where E&#34;&#39; represents DES encryption of the counter value, as described above. 
     The DEK is then generated by an operation represented by the following equation: 
     
         DEK=E&#39;[E&#34;(Counter(2)+IV)], 
    
     where Counter(2) is a 64-bit word obtained by reading the 8-bit counter eight times; and where E&#39; and E&#34; represent the encryption operations defined above. In the above equation, it will be noted that the plus (+) operation means the EXCLUSIVE OR operation by which binary words may be combined. In this regard, the IV generated in the previous step and the 64-bit word generated from the counter are combined by means of the EXCLUSIVE OR operation to generate a 64-bit word which is encrypted first by means of the E&#34; operation and subsequently by means of the E&#39; operation. 
     If the master unit receives a crypto-sync command which is not the first such command to be received since the master unit was last powered up, the DEK is generated in a slightly different manner from that described above. In such case, the initialization vector (IV) is generated by the operation defined by the equation: 
     
         IV=E&#34;&#39;(Cipher), 
    
     where Cipher is the 64-bit word created by stringing together the eight most recently generated 8-bit cipher text bytes. The DEK is then generated by the operation defined by the equation: 
     
         DEK=E&#39;[E&#34;(Counter(3)+IV)]; 
    
     where Counter(3) represents the 64-bit word obtained by reading the 8-bit counter eight times, and where IV is defined above. 
     Once the IV and DEK have been generated, by either one of the two procedures described above, the DEK is encrypted with the KEK indexed by X, i.e., the encrypted DEK is produced by the operation E(DEK). The master unit then transmits to the remote unit the encrypted DEK; the initialization vector (IV); and the value of X. In this regard, the values of IV and X are transmitted in plain text, or in non-encrypted form. 
     The foregoing description of a preferred embodiment of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and obviously many modifications and variations are possible in light of the above teaching. The embodiment was chosen and described in order to best explain the principles of the invention and its practical application to thereby enable others skilled in the art to best utilize the invention in various embodiments and with various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the claims appended hereto.