Multi-level file digests
First Claim
1. A method comprising:
- determining, by at least one processing device, block digests for blocks of data of an electronic file;
encrypting, by the at least one processing device, the blocks of data of the electronic file;
determining, by the at least one processing device, a super digest for the electronic file from the block digests;
storing, by the at least one processing device, the encrypted blocks of data of the electronic file in a body of an encrypted electronic file; and
storing, by the at least one processing device, the super digest in an encrypted portion of a header of the encrypted electronic file.
3 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.
-
Citations
30 Claims
-
1. A method comprising:
-
determining, by at least one processing device, block digests for blocks of data of an electronic file; encrypting, by the at least one processing device, the blocks of data of the electronic file; determining, by the at least one processing device, a super digest for the electronic file from the block digests; storing, by the at least one processing device, the encrypted blocks of data of the electronic file in a body of an encrypted electronic file; and storing, by the at least one processing device, the super digest in an encrypted portion of a header of the encrypted electronic file. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer-readable device having computer-executable instructions stored thereon, execution of which, by a computing device, causes the computing device to perform operations comprising:
-
determining block digests for blocks of data of an electronic file; encrypting the blocks of data of the electronic file; determining a super digest for the electronic file from the block digests; storing the encrypted blocks of data of the electronic file in a body of an encrypted electronic file; and storing the super digest in an encrypted portion of a header of the encrypted electronic file. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A system comprising:
-
a computer-readable device configured to store; a determining module configured to determine block digests for blocks of data of an electronic file, an encrypting module configured to encrypt the blocks of data of the electronic file, a determining module configured to determine a super digest for the electronic file from the block digests, a storing module configured to store the encrypted blocks of data of the electronic file in a body of an encrypted electronic file, and a storing module configured to store the super digest in an encrypted portion of a header of the encrypted electronic file; and one or more processors configured to process the modules.
-
-
20. A method comprising:
-
receiving, by at least one processing device, a block-encrypted file having corresponding block digests and a super digest; comparing, by the at least one processing device, the super digest to a known valid super digest value to determine whether any errors exist within the block-encrypted file; comparing, by the at least one processing device, one or more of the block digests to known valid block digest values to determine whether any errors exist within corresponding blocks of the block-encrypted file, based on a determination that errors exist within the block encrypted file; and identifying, by the at least one processing device, one or more of the corresponding blocks having errors. - View Dependent Claims (21, 22, 23, 24)
-
-
25. A computer-readable device having computer-executable instructions stored thereon, execution of which, by a computing device, causes the computing device to perform operations comprising:
-
receiving a block-encrypted file having corresponding block digests and a super digest; comparing the super digest to a known valid super digest value to determine whether any errors exist within the block-encrypted file; comparing one or more of the block digests to known valid block digest values to determine whether any errors exist within corresponding blocks of the block-encrypted file, based on a determination that errors exist within the block encrypted file; and identifying one or more of the corresponding blocks having errors. - View Dependent Claims (26, 27, 28, 29)
-
-
30. A system comprising:
-
a computer-readable device configured to store; a receiving module configured to receive a block-encrypted file having corresponding block digests and a super digest, a comparing module configured to compare the super digest to a known valid super digest value to determine whether any errors exist within the block-encrypted file, a comparing module configured to compare one or more of the block digests to known valid block digest values to determine whether any errors exist within corresponding blocks of the block-encrypted file, based on a determination that errors exist within the block encrypted file, and an identifying module configured to identify one or more of the corresponding blocks having errors; and one or more processors configured to process the modules.
-
Specification