Multi-level file digests
First Claim
1. A method for generating an encrypted electronic file, said method comprising:
- identifying, using a processing device, an electronic file to be encrypted;
obtaining, using the processing device, a first block of data from the identified electronic file;
determining, using the processing device, a first block digest for the first block of data;
encrypting, using the processing device, the first block of data;
storing, using the processing device, the encrypted first block of data and the first block digest to an encrypted electronic file;
repeating said obtaining, said determining, said encrypting and said storing for each block of data from the identified electronic file until additional block digests have been determined for the each block of data from the identified electronic file;
determining, using the processing device, a super digest for the identified electronic file from the first block digest and the additional block digests; and
storing, using the processing device, the super digests to the encrypted electronic file.
4 Assignments
0 Petitions
Accused Products
Abstract
Multi-level file digests for electronic files are disclosed. A top level digest represents a single digest for the associated electronic file. Lower level digests represent digests for portions of the associated electronic file. The top level digest is derived from the lower level digests. The top level digest is useful for facilitating rapid comparison to determine whether electronic files are the same. In one embodiment, electronic files are encrypted with a block encryption scheme, and digests are efficiently calculated and stored on a block-by-block basis. Advantageously, when modifications to an encrypted electronic file occurs, only those modified blocks need to be processed to undergo decryption and re-encryption to determine the appropriate digest.
494 Citations
21 Claims
-
1. A method for generating an encrypted electronic file, said method comprising:
-
identifying, using a processing device, an electronic file to be encrypted; obtaining, using the processing device, a first block of data from the identified electronic file; determining, using the processing device, a first block digest for the first block of data; encrypting, using the processing device, the first block of data; storing, using the processing device, the encrypted first block of data and the first block digest to an encrypted electronic file; repeating said obtaining, said determining, said encrypting and said storing for each block of data from the identified electronic file until additional block digests have been determined for the each block of data from the identified electronic file; determining, using the processing device, a super digest for the identified electronic file from the first block digest and the additional block digests; and storing, using the processing device, the super digests to the encrypted electronic file. - View Dependent Claims (2, 3, 4, 16)
-
-
5. A method for determining a super digest for an encrypted electronic file that has been modified, comprising:
-
determining, using a processing device, a first block digest for an unencrypted modified block of data; encrypting, using the processing device, the modified block of data; storing, using the processing device, the encrypted modified block of data and the first block digest to the encrypted electronic file; determining, using the processing device, the super digest for the electronic file from the first block digest and additional block digests; and storing, using the processing device, the super digest to the encrypted file. - View Dependent Claims (6, 7, 18, 19, 20)
-
-
8. A method for comparing electronic files, said method comprising:
-
obtaining, using a processing device, a first super digest for a first file, the first super digest being previously determined from a first plurality of digests determined from each block of data from the first file; obtaining, using the processing device, a second super digest for a second file, the second super digest being previously determined from a second plurality of digests determined from each block of data from the second file; comparing, using the processing device, the first super digest with the second super digest; and concluding, using the processing device, that the first file is the same as the second file if said comparing indicates that the first super digest is the same as the second super digest. - View Dependent Claims (9, 10, 11, 12, 13, 17)
-
-
14. A tangible computer-readable medium having stored thereon computer-executable instructions that, in response to execution by a computing device, cause the computing device to perform a method of encrypting an electronic file, the method comprising:
-
identifying, using a processing device, an electronic file to be encrypted; obtaining, using the processing device, a first block of data from the identified electronic file; determining, using the processing device, a first block digest for the first block of data; encrypting, using the processing device, the first block of data; storing, using the processing device, the encrypted first block of data and the first block digest to an encrypted electronic file; repeating said obtaining, said determining, said encrypting, and said storing for each block of data from the identified electronic file until additional block digests have been determined for the each block of data; determining, using the processing device, a super digest for the identified electronic file from the first block digest and the additional block digests; and storing, using the processing device, the super digest to the encrypted electronic file. - View Dependent Claims (15)
-
-
21. A computer program product comprising a computer useable medium having computer program logic recorded thereon, the computer program logic comprising:
-
first computer code means for identifying an electronic file to be encrypted; second computer code means for obtaining a first block of data from the identified electronic file; third computer code means for determining a first block digest for the first block of data; fourth computer code means for encrypting the first block of data; fifth computer code means for storing the encrypted first block and the first block digest to an encrypted electronic file; sixth computer code means for repeating said obtaining, said determining, said encrypting and said storing for each block of data from the identified electronic file until additional block digests have been determined for the each block of data; seventh computer code means for determining a super digest for the identified electronic file from the first block digest and the additional block digests; and eighth computer code means for storing the super digest to the encrypted data file.
-
Specification