This invention relates generally to the processing of digital data. More particularly, this invention relates to the cryptographic protection of data in directories and files.
Without strong data protection, sensitive data is at risk of corporate espionage, accidental loss, or casual theft. Sensitive data landing in the wrong hands can result in significant financial loss, legal ramifications, and brand damage.
Thus, it would be desirable to provide an easily invoked and executed data protection scheme.
The invention includes a computer readable storage medium with executable instructions to encrypt a file with a file encryption key to produce an encrypted file. The file encryption key is encrypted with a directory encryption key to produce an encrypted file encryption key. The directory encryption key is encrypted with a public key of a user within a group to produce an encrypted directory encryption key.
A symmetrical decryption operation may then be performed. The encrypted directory encryption key is decrypted with a private key of the user within the group to produce the directory encryption key. The encrypted file encryption key is decrypted with the directory encryption key to produce the file encryption key. The encrypted file is decrypted with the file encryption key to produce the file.
The invention also includes a computer readable storage medium with executable instructions to generate a directory encryption key, generate file encryption keys for each file in a directory, select a file encryption key for each file in the directory, and encrypt each file in the directory with a file encryption key. Each file encryption key is encrypted with the directory encryption key. The directory encryption key is encrypted with a public key.
The invention is more fully appreciated in connection with the following detailed description taken in conjunction with the accompanying drawings, in which:
Like reference numerals refer to corresponding parts throughout the several views of the drawings.
A memory 120 is also connected to the bus 114. The memory 120 includes at least one directory with a set of files 124. The directory and files are cryptographically protected in accordance with an embodiment of the invention. In particular, an encryption/decryption engine 126 includes executable instructions to implement cryptographic protection operations disclosed herein. The processing performed by the encryption/decryption engine 126 results in encrypted content 128.
The next processing operation of
The next processing operation of
The next operation of
The next operation of
The next operation of
To access the encrypted file, a private key of a user is invoked to decrypt the DEK, as shown with arrow 912. This produces a DEK, as shown with arrow 914. The DEK is then used to process the encrypted FEK, as shown with arrow 916, which produces the FEK, as shown with arrow 918. The FEK is then applied to the encrypted file, as shown with arrow 920. This produces the original, unencrypted file, as shown with arrow 922.
An embodiment of the present invention relates to a computer storage product with a computer-readable medium having computer code thereon for performing various computer-implemented operations. The media and computer code may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well known and available to those having skill in the computer software arts. Examples of computer-readable media include, but are not limited to: magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROMs, DVDs and holographic devices; magneto-optical media; and hardware devices that are specially configured to store and execute program code, such as application-specific integrated circuits (“ASICs”), programmable logic devices (“PLDs”) and ROM and RAM devices. Examples of computer code include machine code, such as produced by a compiler, and files containing higher-level code that are executed by a computer using an interpreter. For example, an embodiment of the invention may be implemented using Java, C++, or other object-oriented programming language and development tools. Another embodiment of the invention may be implemented in hardwired circuitry in place of, or in combination with, machine-executable software instructions.
The foregoing description, for purposes of explanation, used specific nomenclature to provide a thorough understanding of the invention. However, it will be apparent to one skilled in the art that specific details are not required in order to practice the invention. Thus, the foregoing descriptions of specific embodiments of the invention are presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed; obviously, many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, they thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the following claims and their equivalents define the scope of the invention.
Number | Date | Country | |
---|---|---|---|
60827412 | Sep 2006 | US |