Key management for encryption/decryption systems4281216Abstract In a data encryption/decryption system providing for security of data communications channels, a sub-system for generating, transporting encryption/decryption keys and for introducing those keys into the system while at the same time providing a high level of security for the keys and, hence, the encryption/decryption system. Claims What is claimed is: Description FIELD OF THE INVENTION
______________________________________
Prompt Description
______________________________________
0. Operation:
1. 1st Half of Key:
2. 2nd Half of Key:
5. Edit:
8. Unload Counter
A. Access Code:
C. Channel:
D. Device:
E. Error:
F. Function:
______________________________________
The prompts are displayed on keyboard panel 40 of key generator 32 (see FIG. 2) prior to each required keyboard input. A detailed description of the data entry and error correction input procedures required for each of the prompts .phi.-F is given below. Prompt .phi. Description: Up to 16 operation codes may be input following a .phi. prompt. These codes identify the operation to be performed by the key generator. Valid Data: Any of the following two digit codes can be used.
______________________________________
OPERATION NO.
DESCRIPTION
______________________________________
"IMMEDIATE" OPERATIONS
00 Test Key Generator Memory
(Destroys Contents)
01 Delete All Keys
02 Clear Key Generator Memory
03 Generate Random Keys For All
Blocks
04 Test Keyloader Memory
05 Use Typewriter Terminal For I/O
06 Use Keypad & LED Display For I/O
07 Print all Stored Keys to Type-
writer Terminal
08 Print System Description (No Keys)
to Terminal
"PROMPT SEQUENCE" OPERATIONS
11 Delete Specified Keys From Storage
12 Delete Specified Blocks from
Storage
13 Generate Random Keys For Specified
Blocks
14 Enter Key Manually
15 Display Keyloader Unload Counter
(One at a Time)
16 Load Keyloader With Specified Keys
17 Print Specified Blocks to Type-
writer Terminal
______________________________________
All other values are invalid. The following operations may be "AND"ed together: 03, 05, 13, 17. Valid Functions: AND, ENTER, SCAN, FWD, REV Input Procedure: When the system is started up, two LEDs LIP 46 and KLP 48 on the front panel will go on for a short period of time. When they go out, the user presses the "CLR" key and the ".phi." prompt will appear. The user may then enter a two digit operation code followed by pressing the "AND" or "ENTER" key. The "AND" key is valid for only the operations 03, 05, 13 and 17. For a string of data "AND"ed together, the last input is followed by an ENTER. This indicates the end of the string. If no errors occur, the program will proceed to the next prompt. Error Conditions: An error occurs when an invalid operation code is input. This prompt is 04. Error Recovery: The only recovery from an 04 error comprises pressing the CLR key twice. This clears all data currently input and allows the user to start inputting data again. PROMPT 1 (2): (The words in parenthesis, below, refer to prompt (2).) Description: The first (second) half, 8 digits, of the hand-loaded key is input following a 1(2) prompt. Valid Data: Any combination of 8 hexadecimal digits is valid for this prompt. Valid Functions: ENTER, REV, SCAN, FWD Input Procedure: The user inputs the 8 digit key value following a 1(2) prompt. The data is entered when the user presses the "ENTER" key. If the user wishes to change the data, he/she must press the scan key so that the data reappears. The display is cleared by pressing the "CLR" key; then new data is entered by pressing the "ENTER" key. Error Conditions: None PROMPT 5: Description: The "5" prompt is the last prompt to appear on keypad 40. Data for all other necessary prompts has been entered and the program is awaiting a go-ahead command from the user. The user may backstep to check that data has been entered. Once the user is sure that the data which has been input is correct, he/she may press the "ENTER" key to begin execution of instructions. When the key generator has completed executing the instructions, the "0" prompt will reappear. The key generator is then ready for new instructions. Valid Data: None Valid Functions: ENTER, REV Input Procedure: The user can press either "ENTER" or "REV" when the "5" prompt appears. All other keys are ignored. The "REV" key allows scanning of preceding data and any necessary editing. All data which has been input will be processed when the "ENTER" key is pressed. Error Conditions: After "ENT" has been pressed, several error conditions may occur: E:01: Memory exceeded--the system created by the user's command is too large to be contained in the key generator memory. E:08: Keyloader memory test failure. E:09: Duplicate key entered. E:10: "ALL" invalid for OP15. E:0A: Memory self-test failure. E:0B: DSD self-test failure. PROMPT 8: Description: At prompt "8", the user inputs the one digit unload counter. This indicates the maximum number of times that information can be transferred from hand held key loader 34 to network security modules such as 22 or 24. Valid Data: Any digit 1-"F" can be used. An input of .phi.(zero) will be ignored. Valid Functions: ENTER, FWD, REV, SCAN Input Procedure: The user types in one digit following the "8" prompt and then presses the "ENTER" key. The user can change this value when scanning by pressing "CLR", the new data value, and then ENTER. Error Conditions: None PROMPT A: Description: Prompt "A" allows the user to input the access code or the user may scan all stored access codes. Valid Data: Any two digits may be used except .phi..phi. (zero). An input of zero will be ignored. Valid Functions: ENTER, FWD, REV, SCAN Input Procedure: If the user wishes to scan all stored access codes, the "SCAN" key may be pressed when the "A" prompt appears. To enter data, the user types in two digits following the "A" prompts, then presses the "ENTER" key. Entered data may be changed when the user is scanning by pressing "CLR", the new data value, and then "ENTER". Error Conditions: None PROMPT C: Description: At prompt "C" the user may input up to ten, one digit channel numbers. These are stored for later processing. While scanning data to check for errors, the user may delete or replace data. Valid Data: Any one-digit input is accepted as valid data (.phi.-F). Valid Functions: AND, THRU, ALL, ENTER, FWD, REV, SCAN Input Procedure: The user keys in a one-digit channel number and follows it with an "AND", a "THRU", or an "ENTER". An "AND" allows additional entries to follow. A "THRU" requires a second entry so that a range of channel numbers is described (e.g., 7 "THRU" 9 means 7, 8 and 9). "ENTER" following a sequence and "AND" and "THRU" entries, terminates the sequence and brings up the next prompt. The user may, instead of the above press the "ALL" key followed by "ENTER". Immediately after "ALL" is pressed, the display will show "C.O F" representing zero thru "F" (all possible values). After "ENTER" is pressed, the next prompt will appear in the display. The "ALL" entry is only valid if the system currently described in key generator 32 memory 50 (FIG. 3) contains one or more blocks with the same access code as that entered under prompt "A". "ALL" has precedence over all other function keys, so if a sequence of data, "AND" and "THRU" keys has been keyed in, then "ALL" and "ENT" are keyed in, the original sequence will be replaced by the "ALL" condition. Error Condition: An E.03 is displayed when the final value is smaller than the initial value for a "THRU" entry; e.g.; 7 through An E.02 is displayed if the "ALL" key was pressed but no block with the required access code currently resides in the key generator's memory. Error Recovery: Press "REV" to return to the "C". Prompt, then "SCAN" and correct or delete the erroneous data. Prompt D: Description: At this prompt, the user inputs the two digit identification number(s) of some device(s) that is to be the destination of the keys generated. Data input may be a range of values, a single value, or "ALL". Valid Data: Any two digit code (00-"FF") is valid input. For a range of values, the first value must be smaller than the final value. Valid Functions: THRU, ALL, ENTER, FWD, REV, SCAN, THRU Input Procedure: To input a single value, the user presses two digits then "ENTER". A range of values is input by entering two digits, "THRU", two more digits, and "ENTER". When the "ALL" key is pressed the display will be d.00-FF. This is used to indicate that all currently defined devices will be used. The user must then press "ENTER" to get this data input. Error Conditions: An "E.03" is displayed when the final value is smaller than or the same as the initial value in inputting a range of codes. An "E.02" is displayed if the "ALL" key was pressed but no block with the required access code currently resides in the key generator memory. Error Recovery: The user must press "REV" to get back to the "D" prompt and then he must input valid data. Prompt E: Description: Prompt "E" is actually an error indicator. The "E" will appear followed by a two digit error code. To recover from most errors, the user must press the "REV" key to back step to the prompt in which the error occurred and then correct the mistake. If an error occurs during prompt "0", the user must strike the "CLEAR" key twice to recover.
______________________________________
Error Code Explanation
______________________________________
E.01 Key Generator Memory Exceeded
E.02 System Undefined
E.03 Invalid Range
E.04 Invalid "Operation"
E.05 Invalid "And"
E.06 Too Many Data Entries
E.07 Parity Error
E.08 Keyloader Memory Fault
E.09 Faulty Key Creation
E.0A Key Generator Memory Fault
E.0B Key Generator DSD Fault
E.0C Program Error Trap
E.0D Invalid Data
E.0E No Such Block In Key Generator
E.0F No Such Block In Key Loader
E.10 "All" Key Invalid In Operation No. 15
E.11 Keyloader Memory Exceeded
______________________________________
Valid Data: None Valid Functions: REV Input Procedure: None Error Conditions: None Prompt F: Description: At prompt "F" the user can input up to 10 two-digit function codes. These codes are stored in a queue for later processing. While scanning data to check for errors, the user may clear or replace data. Valid Data: Any two digit input (00-"FF") is accepted as valid data. Valid Functions: AND, ENTER, FWD, REV, SCAN Input Procedure: The user types in two digits and follows them with either an "AND" or an "ENTER". An "AND" links together a series of inputs. The "ENTER" indicates that this is all the data the user whishes to enter. Editing is allowed during scans. Error Conditions: None The program residing in key generator 32 memory is described by the flow charts of FIGS. 6, 7 and 8. FIG. 6A and 6B depict the overall structure of the program while IFGS. 7A through 7NN show all of the details. FIG. 8 shows the general data entry/edit scheme. The following notes apply to the flow charts of FIG. 8: (1) X represents entry of proper number of digits (1 or 2). (2) This diagram includes all function keys and represents a prompt such as "C". Data entry and edit schemes for other prompts are subsets of this one. (3) Except for the one case in edit, "CLR" is processed prior to entry into this syntax diagram. (4) "All"-"ENT" supercedes all prior entries under the current prompt, i.e., it cancels all previous entries under the current prompt and replaces them with "ALL". (5) In edit: (a) "AND" and "THRU" are only allowed after a multiple entry ("THRU") is cleared. In such a case: (1) only 1 "THRU" is allowed for replacing entries; or, (2) only 2 "AND"s (i.e., up to 3 data entries) are allowed, and (3) "THRU"s and "AND"s can not be mixed. (b) After the last entry is displayed (via "SCAN") and the display is blanked (except for the prompt) data can be appended using "AND" and/or "THRU". It is important to understand that keys generated by key generator 32 are generated as a function of the time at which 8 bit PN generator 52 (FIG. 3) is unloaded. This is determined by the time at which the operator presses certain of the input keys on keyboard 54. Since the clock frequency feeding 8 bit generator 52 is 4 Mhz, this means that the time interval for each 8 bit dump is 0.25 microsecond, too short for a human to resolve. Under these circumstances, it is not possible for the operator to bias the random nature of his input because of his inability to resolve the very short intervals. The further processing of each of these 8 bit inputs by means of key generator 32 circuits further ensures that there can be no human knowledge of the generated keys. Key generator 12 (FIG. 1) may be constructed so that opening of the case by means of removal of the front panel will destroy the contents of the internal memory. If an attempt is made to gain access by destructive means, security personnel will be able to note the attempt by observation and the keys would then be changed to counter the security breach. The keys are therefore "known" only to the encryption/decryption system, the generator and the keyloader. Even in those applications requiring a hard copy printout by means of printer 38 (FIG. 1), locks 42 and 44 must be operated, possibly with two different lock tumbler patterns involved and other provisions may be made to alert security personnel to every printout, if such is desirable in a given application. Where extreme security measures are warranted, no printout is provided under any condition. KEY LOADER Key loader 34, FIG. 1 serves as a transport medium for the keys developed by key generator 32. Dotted line 36 indicates transportation and a local interface between key loader 34 and key generator 32 and between key loader 34 and security module 22 or 24. In the preferred embodiment of the invention, interface 36 is an optical interface. That is, key loader 34 of FIG. 9 contains light source 80 and light sensor 82 which may be mated to their opposites in either key generator 32 or security modules 22, 24 (FIG. 1). In this way, key data may be fed to or from key loader 34 with complete electrical isolation from the mating devices. The physical appearance of key loader 34 is as shown in FIG. 9. Key loader 34 may, for example, contain 256 key words which are loaded from key generator 32. Loading may take place at a 31,500 bit per second rate. Loading of 256 keys therefore occurs in 2.4 seconds. An additional 15 seconds is required for keyloader 34 self test and key generator 32 search time for a total of 17.4 seconds to load 256 keys. Key loader 34 is capable of self-test functions upon command and response is by means of go/no-go LED signal 84 (FIG. 9). Key loader 34 is an intelligent microprocessor-based unit. Keys are stored in a non-volatile manner in CMOS RAMs maintained by internal battery 86 (FIG. 9). Power is maintained to the memory as long as the case remains intact. If either the front or rear panels are removed, tamper switches (not shown) are deactivated, cutting off power and destroying all memory. If the case integrity of key loader 34 is violated, the damage is apparent to those responsible for security and new keys may be loaded to avoid compromise of key word security. The data blocks loaded in key loader 34 take the form shown in the table of FIG. 10. The first eight bit byte, (0), shown in the table is an access code. This code must match that of one of the security modules into which the key word will ultimately be loaded. The second byte, (1), corresponds to a device number assigned to a security module to be loaded. The next two bytes, (2) and (3), identify the system communication channel number. The fifth byte, (4), identifies a function code, for example, the function code identifies the type of key word present in bytes 6-13 which may be primary, secondary, encrypted secondary, and secondary or encrypted secondary to be down line loaded. The sixth thru thirteenth bytes (5, 6, 7, 8, 9, A, B, C) contain a 64 bit key word as generated by key generator 32 (FIG. 1) and as described above. The fourteenth byte (D) contains a controller address, the fifteenth byte (E) contains a terminal address and the sixteenth byte (F) contains a four bit code N, that determines the number of times that the key word may be loaded into a given security module and a four bit code, M, that is created by keyloader 34 by incrementation each time the key word(s) are loaded into a given security module. In operation, key loader 34 is filled from key generator 32 and is then transported sequentially to the desired security module(s) 22, 24 in the system. Key loading operations require access to the front panel optical interface of the security module which is revealed after the two mechanical keylocks are opened. (The details are very similar to those of key generator 32, FIG. 2 and thus are not shown separately.) The LED/phototransistor optical interface 80, 82 on the keyloader corresponds to a complementary pair located behind the pull-down front panel of key generator 32 and security module 22, 24, accessible with two key locks 42, 44. The keyloader can store up to 256 keys for approximately 3,000 hours in the unit power down condition. This is made possible by the use of CMOS components. Data is transferred to and from the keyloader at 31,250 bits per second, or one key transfer across the interface point every nine milliseconds. All 256 keys can be transferred in 2.4 seconds plus 15 seconds for key generator and key loader search and self test operations for a total of 17.4 seconds. The CMOS CPU and other components present only a 200 milliamp load to the battery during operation, allowing 31/2 to 4 hours of active keyloading with the supplied battery which is rechargeable. In order to extract keys from keyloader 34, an access code must be selected via code switches that are located on a Key Distribution Interface (not shown) which is located directly behind the front panel of the security module, 22 or 24. Two hexadecimal switches allow eight bits of access code to be presented to the keyloader during transfer of keys. The access code is read by a processor behind the back panel and presented to the keyloader before the keys may be withdrawn. The access code must be selected before operation commences. The keyloader is aligned for operation by two guide pins 88, 90 located in the security module optical interface cavity. Key transfer operation commences by pressing pushbutton 92 located on the side of keyloader 34, at which time the keyloader will send a wake-up message to the Key Distribution Interface creating an interrupt to the Key Distribution Interface controlling processor. The Key Distribution Interface processor reads the access code and presents it to keyloader 34 in a response message. If keyloader 34 determines that the access code is not identical to the access code previously loaded by key generator 32, the firmware program located inside keyloader 34 eliminates all keys by zeroizing the CMOS memory. If the access code is identical then "key load in progress" lamp 94 lights. Only one key will be transferred at any one time across the interface until acknowledged. The Key Distribution Interface will stay locked on to the available network security module until all of the keys intended for that security module are loaded. It then retrieves from its log the next available channel determined during the scanning operation, lock onto that channel, and begin transfer as previously described. The Key Distribution Interface will continue until all of the security module channels have been serviced. At that time, it will send a Load Complete signal to the keyloader and operation will cease causing the "keyload in process" indicator on the front panel to extinguish. It should be noted that each key transferred across the interface will normally be cleared from keyloader 34 memory; no keys will remain after they have been loaded. A control feature set at keyloading from key generator 32 to keyloader 34 allows each key to be given an "unload count" which is the number of times that specific key can be used. Each time that key is unloaded the count is decremented. When the count reaches zero, that key is cleared from key loader 34 and is no longer available. While the above is addressed to the generation, transportation and use of major cipher keys, the system may also be used for secondary keys. These are cipher keys which would be entered into one of security modules 22, 24 and transported via the communications network to the other. (See FIG. 1.) Communication of a secondary key via the data network 26, for example, is followed by a verification signal in the reverse direction. Upon verification, the new secondary key replaces the old without the necessity of actually transporting key loader module 34 to both sites. The secondary key may be encrypted or not encrypted according to system and security requirements. Of course, the verification procedure may be and would be expected to be used after input of major or primary keys, as well. Flow charts of FIGS. 6, 7 and 8 and the chart of FIG. 10 are illustrative of the details for accomplishing input and verification of both primary and secondary keys in a preferred embodiment of the invention. While the invention has been particularly shown and described with reference to a preferred embodiment thereof, it will be understood by those skilled in the art that various other modifications and changes may be made to the present invention from the principles of the invention described without departing from the spirit and scope thereof, as encompassed in the accompanying claims. Therefore, it is intended in the appended claims to cover all such equivalent variations as come within the scope of the invention as described.
|
Same subclass Same class Consider this |
||||||||||
