FILE ENCRYPTION SCHEME

Abstract: A computer data storage system that includes a data storage device, and a processor for encrypting file data to produce encrypted file data and writing the encrypted file data to a computer file on the data storage device, wherein the computer file includes a file information header that contains information indicating that the computer file contains encrypted file data.

Description: FILE ENCRYPTION SCHEME BACKGROUND OF THE INVENTION The disclosed invention is generally directed to computer security systems, and more particularly to a computer system that wherein files stored on a data storage device are individually encrypted. There is a recognized need for computer security such that confidential information stored in a computer system can be accessed only by authorized users. A commonly utilized element of computer security is encryption whereby information is encrypted in accordance with a predetermined "key" and decryption requires knowledge of the key. For example, a computer disk drive can be encrypted to make access to the information contained on the drive more difficult. Similarly, data communicated between computer systems can be encrypted so that the communication would be more difficult to understand if intercepted. A consideration with known techniques of encryption at the level of a data storage device such as a disk drive, however, is the need to decrypt the entire contents of the data storage device, for example, as part of a startup process, so as to enable access to the contents of the data storage device, which would be time consuming and moreover would leave all of the contents of the data storage device unprotected. Also, the entire contents of the data storage device would have to be encrypted as part of a shutdown process, which would also be time consuming. Moreover, encryption of a data storage device is typically done with a single key, and thus the entire contents of a data storage device would be vulnerable if the encryption key became known to unauthorized users. A consideration with known techniques of encryption at the communication level includes degraded performance due to the need for encryption of the information to be trans¬ mitted. Further, to the extent that the received informa- tion is to be stored on an encrypted data storage device, all of the information stored on the device including the received information would have to be encrypted, after the contents of the data storage device and the received information are initially decrypted. SUMMARY OF THE INVENTION It would therefore be an advantage to provide a secure computer system that allows for encryption and decryption of less than the entire contents of a data storage device. Another advantage would be to provide a secure comput¬ er system that does not require a separate encryption process to transfer encrypted information to another computer system. The foregoing and other advantages are provided by the invention in a computer data storage system that includes a data storage device, and a processor for encrypting file data to produce encrypted file data and writing the en¬ crypted file data to a computer file on the data storage device, wherein the computer file includes a file informa¬ tion header that contains information indicating that the computer file contains encrypted file data. The processor further reads and decrypts the encrypted file data. BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the disclosed invention will readily be appreciated by persons skilled in the art from the following detailed description when read in conjunction with the drawing wherein: FIG. 1 is a schematic block diagram of a computer system in which file encryption in accordance with the invention can be implemented. FIG. 2 is a schematic depiction of the logical organi¬ zation of an encrypted computer file in accordance with the invention. FIG. 3 is a simplified flow diagram that schematically depicts the logic flow of an illustrative example of file encryption in accordance with the invention. DETAILED DESCRIPTION OF THE DISCLOSURE In the following detailed description and in the several figures of the drawing, like elements are identi¬ fied with like reference numerals. Referring now to FIG. 1, schematically depicted therein by way of illustrative example is an overall block diagram of a computer hardware system in which file encryp- tion in the invention can be implemented. The system ■ includes a central processor unit 11 which performs general digital operations for the computer system and a primary storage memory 13 which stores data and programs including processes which when executed by the central processor unit 11 implement file encryption in accordance with the inven¬ tion. By way of illustrative example, the primary storage memory 13 can include in accordance with conventional techniques random access memory as well as read only memory. The computer system further includes peripheral devices 15 such as a display 15a, a keyboard 15b, a data storage device 15c, a printer 15d, and a modem 15e. A data bus 17 provides for communication between the processor, the primary storage memory, and the peripheral devices. In accordance with the invention, a computer file is stored on the data storage device 15c in encrypted form wherein encryption is performed at the file level such that encryption and decryption are performed on a file by file basis. As schematically illustrated in FIG. 2, an encrypt¬ ed computer file is stored in a logical form of encrypted file data 51 (e.g., programs and user data) and a non- encrypted file header 53. By way of illustrative example, the file header 53 includes file control information such as operating system type 55 and a pointer 57 that points to the encryption key for the encrypted file data or one or more other pointers to the encryption key for the encrypted file data. The file data 51 contains user information such as a program or data, and can also contain further control information such as security access control labels. Referring now to FIG. 3, set forth therein is a schematic flow diagram of the logic flow of an illustrative example of a file encryption procedure in accordance with the invention. The procedure of FIG. 3 is implemented by execution of one or more appropriately configured programs by the central processor unit 11 of FIG. 1. At 111 an application program makes a file operation call to the operating system utilized in the computer system of FIG. 1, and at 113 the file operation call is intercepted. A file operation call is typically a call to an operating system routine that performs a conventional file operation such as create, open, read, write, and close. Techniques for interception of operating system calls are well known in the art, and the particular nature of the intercept mecha¬ nism will depend on the particular operating system with which the invention is implemented, and can involve, for example, redirecting file operation calls to routines of the invention. At 115 a determination is made as to whether the intercepted file operation call is a create file call. If yes, at 117 a computer file is created conventionally, for example, by calling or invoking the normal create file routine that performs the operations involved in creating a file such as allocating data blocks, updating the operating system file control information, and inserting records into an appropriate directory or catalog that is conventionally utilized in operating systems to identify files stored on a data storage device and the data blocks allocated to the files. At 119, a file information header for the file is written on the data storage device in the data blocks allocated for the file, and at 121 control returns to the calling application program. As used herein the term "normal" in the context of a file operation routine refers to a standard or built-in routine contained in a computer operating system for performing operations associated with or requested by a file operation call. If the determination at 115 is no, at 123 a determina¬ tion is made as to whether the application program making the intercepted file operation call is exempt from the need to decrypt the file that is the subject of the intercepted file operation call. For example, a file copy program or a file transfer program can operate on files without decryption. Further examples of exempt applications would include electronic mail applications, back-up applications, and an application that implements the subject invention. If the determination at 123 is yes, at 125 a call is made to the normal file operation routine that would have been called if the intercepted file operation call had not been intercepted. If the determination at 123 is no, at 127 the file information header for the file that is the subject of the intercepted file operation call is read. At 129 a determi- nation is made as to whether the intercepted file operation call is a write to file. If yes, at 131 the file data to be stored is encrypted to form encrypted file data, and the encrypted file data is written to the data storage device. As described earlier, such file data can include file control labels as well as user data such as a program or data. The encryption and write operations are performed, for example, by encrypting the file data one portion at a time, buffering each encrypted file data portion in a file buffer, which can be contained in the memory 13 of FIG. 1, and calling the normal write to file routine to write the buffered encrypted file data portion to the data storage device. If the determination at 129 is no, at 133 a deter ina- tion is made as to whether the intercepted file operation call is a read. If yes, at 129 the file that is the subject of the intercepted file operation call is read and decrypted. The reading and decryption of the file can be achieved, for example, by calling the normal read file routine to read the encrypted file data into a file buffer, which can be contained in the memory 13 of FIG. 1, and then decrypting the buffered encrypted file data to produce decrypted file data. In accordance with conventional techniques, the encrypted file data is read into the file buffer one portion at a time, wherein the portion read is of a fixed size. The buffered encrypted data is then decrypted and copied to a destination location in the memory 13, and the next portion of the encrypted file data is read into the file buffer. After all of the encrypted file data has been read and decrypted, at 121 control returns to the application program that made the intercept¬ ed file operation call. If the determination at 133 is no, control is trans¬ ferred to the normal file operation routine that would have been called had the intercepted file operation call not been intercepted. The foregoing procedure essentially intercepts each file operation call and determines whether operations related to encryption and decryption of a file that is the subject of the file operation call are required. If not, the normal file operation routine that would have been invoked by the intercepted file operation call is invoked. If operations related to encryption and decryption are required, the procedure of the invention performs such operations which include encrypting file to be written to the data storage device, invoking the normal file operation routine to write encrypted file data to the data storage device, invoking the normal file routine to read the encrypted file data from the data storage device, and decrypting the encrypted file data read from the data storage device. While the foregoing illustrative example of the invention is based on encrypting all files stored on an operating system, it should be appreciated that encrypted and non-encrypted files can be mixed, in which case the procedure of FIG. 3 would be modified to include checking for whether a file to be created is to be encrypted. If not, the normal create file routine is called, and a file information header is not written for the file. Also, as to file operations involving an existing file, a determina¬ tion is made as to whether the existing file is encrypted, which can be determined, for example, from a catalog or directory record if a provision is made to include encryp- tion status in the catalog or directory record, or alterna¬ tively, the file can be read to determine whether it includes a file information header as described above relative to FIG. 1. If the existing file is not encrypted, the normal file operation is invoked by a call to the file operation routine that would have been called had the intercepted file operation call not been intercepted. Effectively, all file operation requests are inter¬ cepted, and procedures necessary to achieve file encryption and decryption are inserted between the file operations calls and the file operation routines that would normally be called by the intercepted file operation calls. Such inserted procedures, for example, generate the data re¬ quired for the file information header and then call to the normal write to file routine to write the file information header on the data storage device. Further, the inserted procedures generate the encrypted file data that is to be written on the data storage device, and then invoke the normal write to file routine to write the encrypted file data on the data storage device. For read purposes the inserted procedures invoke the normal read file routine to read the encrypted file data from the data storage device, and then decrypt the encrypted file data that has been read. The encryption and decryption procedures are trans- parent to the calling application program since the appli¬ cation program makes normal file operation calls and receives normal responses thereto. The foregoing has been a disclosure of a computer file encryption scheme that encrypts files on a file by file basis, which advantageously allows files to be individually encrypted and decrypted without the need to encrypt and decrypt the entire contents of a data storage device, and without intervention by the user. The encryption scheme of the invention allows different files on the same storage device to have different encryption keys, which provides for increased security and reduces the amount of informa¬ tion that becomes vulnerable should an encryption key become inappropriately known. Also, only selected computer files are decrypted at any given time, which maintains the security of the remaining files. Although the foregoing has been a description and illustration of specific embodiments of the invention, various modifications and changes thereto can be made by persons skilled in the art without departing from the scope and spirit of the invention as defined by the following claims.

Claims: CLAIMS What is claimed is: 1. A computer data storage system comprising: a data storage device; means for encrypting file data to produce en¬ crypted file data; means for writing said encrypted file data to a computer file on said data storage device, wherein said computer file includes a file information header that contains information indicating that the computer file contains encrypted file data; and means for reading and decrypting said encrypted file data. 2. A method for storing data on a computer data storage device, comprising the steps of: writing to the computer data storage device a file information header for a computer file on the computer data storage device, wherein the file infor¬ mation header contains (a) information indicating that computer file includes encrypted file data and (b) information that refers to an encryption key; encrypting file data to be stored in the computer file to produce encrypted file data; writing the encrypted file data to the computer file; reading the file information header and obtaining the encryption key; reading the encrypted file data of the computer file; and decrypting the encrypted file data read from the computer file.

Inventors: GEORGIADES DIANE E, TAYLOR NEAL E, GEORGIADES, DIANE, E., TAYLOR, NEAL, E.
Applicants: HUGHES AIRCRAFT CO, HUGHES AIRCRAFT COMPANY
Application year: 1995
Main classification: G06F12
IPC codes: G06F1, G06F12, G06F21