Encrypted data transmission system employing means for randomly altering the encryption keys5412730Abstract A modem suitable for transmitting encrypted data over voice-grade telephone line. The modem is implemented by the combination of integrated circuit components including a microprocessor, a serial communications controller which communicates with connected data terminal equipment, and a modulator/demodulator for translating between voice band tone signals and digital data. Pseudo random number generators are employed at both the transmitting and receiving stations to supply identical sequences of encryption keys to a transmitting encoder and a receiving decoder. An initial random number seed value is made available to both stations. The random number generators are advanced at times determined by predetermined characteristics of the data being transmitted so that, after transmission has taken place, the common encryption key can be known only to the transmitting and receiving stations. Claims What is claimed is: Description A computer program listing is submitted herewith as a microfiche appendix having 119 frames on 2 microfiche.
TABLE 1
______________________________________
Drawing
Device
Ref. Ref.
Char. Desig. Type Manufacturer
______________________________________
101 U1 80188 Motorola, Inc.
103a U2 27C256 Intel Corporation
103b U3 27C256 Intel Corporation
103c U4 JEDEC Intel Corporation
103d U5 JEDEC Intel Corporation
119 U6 74ALS373 Texas Instruments, Inc.
123 U8 74HC163 Texas Instruments, Inc.
124 U9 74HC163 Texas Instruments, Inc.
125 U10 74HC163 Texas Instruments, Inc.
127 U11 24AS00 Texas Instruments, Inc.
129 U12 74AS04 Texas Instruments, Inc.
131 U13 74AS04 Texas Instruments, Inc.
133 U14 DS1232 Dallas Semiconductor
135 U15 74AS00 Texas Instruments, Inc.
137 U16 74AS00 Texas Instruments, Inc.
111 U17 82530 Intel Corporation
115 U18 R9696-DP Rockwell International Corp.
117 U19 CH1828 Cermetek Microelectronics, Inc.
139 U20 74HC126 Motorola, Inc.
141 U21 DS14C88 Motorola, Inc.
143 U22 74HC374 Texas Instruments, Inc.
145 U23 74HC540 Texas Instruments, Inc.
147 U24 Motorola, Inc.
149 U25 26LS31 Motorola, Inc.
151 U26 26LS32 Motorola, Inc.
153 B CMB06 Star Micronics
155 SW2
157 Y1
______________________________________
The manufacturer specification sheets, commonly known as "Data Sheets", for the device model or type indicated above are hereby incorporated by reference. As mentioned above, the memory subsystem 103 includes memory devices 103a-d. The memory subsystem 103 may be implemented using RAM, ROM and/or PROM type memory devices. TABLE 1 indicates the memory devices 103a and 103b are type 27C256, ultra violet erasable programmable read only memories (UV PROMs) manufactured by Intel Corporation. When either of memory devices 103a or 103b is a PROM type device, then both 103a and 103b should be implemented using PROM type devices. Memory devices 103a and 103b may also be type HM62256LP-SL series or HM62256LFP-SL series CMOS static RAM manufactured by Hitachi America, Ltd. Further, memory devices 103c and 103d may also be type HM62256LP-SL series or HM62256LFP-SL series CMOS static RAM. It will be appreciated by one skilled in the art that a JEDEC type RAM, memory devices 103c and 103d, is a RAM that conforms to the industry standards regarding the integrated circuit packaging. The type HM62256LP-SL series or HM62256LFP-SL series CMOS static RAM devices meet JEDEC standards. The storage capacity of the memory subsystem 103 may be increased or decreased in relation to modem hardware and/or modem software requirements. For example, memory subsystem 103 may be configured using 128K type, 256K type, and/or 512K type RAMs/ROMs/PROMs. The "jumper points" facilitate implementing various memory device types and memory configurations of the memory subsystem 103. The manufacturer, by way of a memory device's data sheet, provides configuration instructions. These instructions dictate "jumper point" usage. The power and ground pins for the integrated circuits, the buzzer 153, and the micro-switch bank 155 of the modem hardware are not depicted in FIGS. 3A, 3B and 3C. TABLE 2, below, provides power and ground pin connections for the devices used to implement the modem hardware illustrated in FIGS. 3A, 3B and 3C. In particular, TABLE 2 indicates the pin connections to +5V, digital ground, analog ground, and +/-12V. TABLE 2 references the devices by the "Drawing Reference Characters" and "Device Reference Designations" consistent with their usage in FIGS. 3A, 3B, and 3C.
TABLE 2
__________________________________________________________________________
Drawing Device Digital Analog
Reference Character
Reference Designation
+5 V Pin(s)
Ground Pin(s)
Ground Pin(s)
+12 V
-12 V
__________________________________________________________________________
101 U1 9, 21, 43
26, 46, 47, 50, 60
103a U2 28 14
103b U3 28 14
103c U4 28 14
103d U5 28 14
119 U6 20 1, 10
123 U8 1, 4, 5, 7, 10, 16
3, 6, 8
124 U9 6, 10, 16
3, 4, 5, 8
125 U10 1, 4, 10, 13, 14
7
127 U11 14 7
129 U12 14 7
131 U13 14 7
133 U14 8 3, 4
135 U15 14 7
137 U16 14 7
111 U17 7, 8, 9 31
115 U18 1, 45, 61
29, 37, 53
30, 31 32 36
117 U19 3, 4 1 10
139 U20 14 7, 12, 13
141 U21 7 14 1
143 U22 20 1, 10
145 U23 20 10
147 U24 14 7
149 U25 16 8, 12, 15
151 U26 16 8, 12
153 B Power Ground
155 SW2 16 9
__________________________________________________________________________
The bypass capacitors are not illustrated in FIGS. 3A, 3B and 3C. It will be appreciated by those skilled in the art that these capacitors have a first terminal connected to the power pin of the integrated circuit and a second terminal to ground. These type capacitors may have a capacitance value of about 0.01 microfarad. FIG. 4--Enhancements The principles of the invention may be advantageously employed to encipher and decipher data which is also compressed for enhanced transmission efficiency and combined with error detection/correction coding. Moreover, the invention may utilize a key storage system to store unique keys for different called and calling parties, and may employ means for varying the interval number in a random fashion so that the time durations during which particular encryption keys are active varies in unpredictable ways. These further enhancements to the system are depicted in FIG. 4 of the drawings which illustrates the preferred embodiment of the invention. If the data signals are to be "compressed" for increased transmission efficiency (e.g., by Huffman encoding or the like), the compression processing of the data should precede encryption, because the encryption process inherently randomizes the data, eliminating the redundancy upon which efficient compression depends. On the other hand, error control processing (such as adding cyclic redundancy check (CRC) block checking codes) is best done after encryption in accordance with the invention, because successful synchronization of the advance signals from the block counters 21 and 29 requires substantially error-free data transmission (which the error-checking protocols insure). As contemplated by the present invention, data compression, data encryption, and error control functions may all be performed by a single control processor. Thus, when a modem of the class shown in FIG. 2 of the drawings is employed, the microprocessor 101 operates on the outgoing data stream by first performing data compression, then performing the encryption step, and finally performing the error detection/protection processing before forwarding the data on to the modem module 113 for trellis coding and digital-to-analog conversion for transmission over the telephone network. The signal processing functions used in this enhanced arrangement are shown in FIG. 4 of the drawings. In FIG. 4, the functional units employed in the basic system shown in FIG. 1 are designated by the same numerals used in FIG. 1, and the description of those units need not be repeated. A data compressor 34 is shown connected between the data source 15 and the encryptor 17. In the hardware as seen in FIG. 2, data compression may be conveniently performed by the microprocessor 101 on the data from the DTE obtained via the SCC 111. At the receiving station 12 as seen in FIG. 4, a data decompressor 35 is connected between the decryptor 31 and the data utilization device 33. Note also that, as depicted in FIG. 4, the data is monitored by the block counter 21 prior to compression, rather than afterwards. Correspondingly, at the receiving station 12, the block counter 29 monitors the data flow after it is decompressed. In this way, both counters monitor the same data stream. Both could be reconnected to monitor the compressed data stream if desired, however. Error control processing is done by the error control coder 36 which, for example, might add cyclic redundancy check data to the data being transmitted to permit data correction in the error detector/corrector 37 at the receiving end, or to initiate a retransmission under the active error correction protocol. This error correction processing (at both ends) may be advantageously performed by the same microprocessor that performs the data compression and encryption functions. To further enhance the security of the transmission, the duration of the interval during which each given key is active may be changed in a pseudo-random fashion. For this purpose, a pseudo-random number generator 38 is used at the transmitting station 11 to supply the interval numbers to the block counter 21. The generator 38 is advanced to a new number each time an advance signal is received from the output of block counter 21 over line 39 (so that a new interval number is supplied to the block counter 21 each time it advances the encryption key generator 23). Block counter 21 may simply load the interval number from generator 38 into an accumulator which is then decremented toward zero when it emits the advance signal to generator 23, at which time it is loaded with a new and different interval number from generator 38. At the receiving station 12, a pseudo-random generator 40 (which performs the same pseudo-random number generating process as the generator 38 at the transmitting station 11) supplies a sequence of interval numbers to counter 29. Generator 40 is advanced by the advance signals from counter 29 which also advance the encryption key generator 27. The random number generators 23 and 38 at the transmitting station obtain their seed values from a key memory 50. Key memory 50 stores the random number keys indexed by destination (along with telephone dial-up numbers for automatic dialing). Similarly, at the receiving station, the seed values for the remote terminals from which the receiving station is authorized to receive information are stored in a key memory 60 connected to supply seed values to the generators 27 and 40. The key memories eliminates the need for authorized users to remember and enter keys before each transmission or reception. In addition, the use of key memories allows the stations to be operated as terminals in a secure network under the control of a central station which, in separate transmissions over different secure links, enters (and erases) the keys needed by authorized sending and receiving stations connected to the network. In this way, the central station permits one network user to transmit to a single other user, or to "broadcast" to selected, authorized users on the network only, while enabling all terminals to use the network for unsecured transmissions. The key memory within each station modem unit includes a lookup table comprising a plurality of entries, each of which stores control information concerning another station in the network. Advantageously, each table entry specifies: (1) the serial number which identifies a remote hardware unit (and which corresponds to a serial number stored in the non-volatile memory of that remote unit); (2) the current encryption key value (e.g. an 8 digit DES encryption key) to be used for communications to and from that remote station; and (3) an optional dial-up telephone number (or comparable routing information used by the network switching system). A switch operated by a physical key is also advantageously included in each station unit and has "security enabled" and "security disabled" positions. The key memory can only be loaded with values identifying one or more remote units with whom communications are authorized when the switch is in the "security disabled" position (typically when the unit is being set up by an authorized operator who has the physical key needed to disable the security switch). At that time, the table can be loaded either from a remote (host) station or by a local command which takes the form of an extension to the standard modem AT command set. That load command take the form: AT JSN KDESKEY PHONENUM where AT is the AT command prefix, JSN is the letter "J" immediately followed by the serial number of the remote station with which communications is authorized, KDESKEY is the letter "K" immediately followed by an 8 character DES encryption key, and PHONENUM is the standard routing code (e.g. dial-up phone number string). In the preferred embodiment, up to 1000 serial numbers and keys, and up to 100 optional dial-up phone number strings (each with up to 39 digits) may stored in the key memory lookup table. To make a secured transmission, the calling station uses PHONENUM to establish the connection, normal modem handshaking procedures are executed to establish a working data connection, including standard parameter negotiations (e.g. the V.42 parameters if that protocol is being used). If the security key is enabled, and a secure transmission is being requested by the caller, the answering modem will not send its parameter message (the V.42 XID frame) until it receives one from the originator, this initial message including the (unencrypted) originator's serial number. The answering modem uses the received serial number to select the locally stored encryption key corresponding to that serial number, and encrypts its responsive XID frame using the fetched key. Thereafter, all transmissions between the originating and answering modems are encrypted and the encryption keys at each end of the secure ling are thereafter altered in accordance with the encryption algorithm as heretofore described. In accordance with an important feature of this arrangement, the host system may initially authorize communication between two connected units by supplying the appropriate serial numbers and initial key values (unique to an authorized link), but as soon as transmission begins between the two units over the authorized link, the encryption keys are changed in ways that are unknowable to the host. As a consequence, knowledge of the initial seed values supplied by the host are of no further value and cannot be used to monitor ongoing communications over the authorized link. Programming The encryption and decryption operations may be performed by special purpose devices, such as those widely sold to implement the DES standard encryption method. As noted, however, the encryption function can be less expensively added by suitable programming of the microprocessor 101 to perform this function as well as the control, compression, and error handling functions. Working computer programs for use with an 80188 microprocessor appear in the computer program listing in the microfiche appendix. These computer programs perform the encryption, decryption, control, compression, and error handling functions. The computer program listing appearing in the microfiche appendix includes 14 modules, arranged alphabetically therein, named: (1) "COMM.C"; (2) "COMMAND.C"; (3) "DISPLAY.ASM"; (4) "DISPLAY.H"; (5) "ENCRYPT.ASM"; (6) "EQUS. INC"; (7) "KEY.sub.-- SCHD. ASM"; (8) "MAIN. C"; (9) "MODEM. ASM"; (10) "MODEM.H"; (11) "SCC.ASM"; (12) "START.ASM"; (13)"TEST.C"; and (14) "UTIL. C". In the microfiche appendix, each computer program module includes a comment section followed by a computer program listing. Comments are also interspersed within the program listing. Each program is briefly described below. The "COMM.C" is a "C" computer language program that performs communication routines. The "COMMAND.C" is also a "C" computer language program that performs command processing routines. The "DISPLAY.ASM" is an assembly language program that performs display initialization and display interface. The "DISPLAY.H" is a "C" computer language program whose function is to output LCD display strings. The "ENCRYPT.ASM" is an assembly language program having the function "KEY.sub.-- SCHD ASM" which calculates a sequence of 16 key-related values required in the DES algorithm. This sequence is pre-calculated when the DES key is changed to increase the speed of encryption and/or decryption. The "EQUS.INC" is an assembly language listing that defines assembly language names used in the system. The "MAIN.C" is a "C" computer language program that performs modem supervisory control. The "MODEM.ASM" is an assembly language program that facilitates interfacing with the modem unit 115. The "MODEM.H" is a "C" computer language program that provides definitions and parameters for the firmware of the modem unit 115. The "SCC.ASM" is an assembly language program that facilitates interfacing with the SCC 111. The "STARTUP.ASM" is an assembly language program that performs initial setup and POST routines. The "TEST.C" is a "C" computer language routine that performs self-test and power-on self-check. The "UTIL.C" is a "C" computer language routine that performs utility routines for the modem unit 115. The computer program modules written in the "C" computer language are specifically designed for "MICROSOFT C 5.1". It should be noted that computer languages other than "C" may be employed to perform the function for which the "C" computer language modules were so designed. Various preferred embodiments of the present invention have been described. It is understood, however, that changes and modifications can be made without departing from the true scope and spirit of the present invention as defined by the following claims, which are to be interpreted in view of the foregoing.
|
Same subclass Same class Consider this |
||||||||||
