IP Library Granted Patent US 8,819,361
Granted Patent B2
US 8,819,361 · App. 13/230,630 · Granted Aug 26, 2014

Retaining verifiability of extracted data from signed archives

Inventors: Simon Wai Leong Leet (Redmond, WA); Sarjana Bharat Sheth (Redmond, WA); Patrick T. O'Brien, Jr. (Bellevue, WA); Jack R. Davis (Woodinville, WA)
Assignee: Microsoft Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,819,361
App. No.
13/230,630
Granted
Aug 26, 2014
Kind
B2
Abstract

The objects of an archive may be verified with a cryptographic signature stored in the archive. However, when an object is extracted, the authentication involves re-authenticating the entire archive, re-extracting the object, and comparing the extracted object with the current object, which is inefficient or unachievable if the archive is unavailable. Instead, the archive may include a block map signed with the signature and comprising hashcodes for respective blocks of the objects of the archive. When an object is extracted, the signature and block map may also be extracted and stored as objects outside of the archive. The extracted signature and block map may later be verified by authenticating the signature, verifying the block map with the signature, and matching the hashcodes of the block map with those of the blocks of the extracted objects, thus enabling a more efficient and portable verification of extracted object with extracted authentication credentials.

Claims (90)

1. A method of generating an archive comprising at least one block using a device having a processor, a verifier algorithm, and a signing algorithm, the method comprising:

executing on the processor instructions configured to:

for respective blocks, using the verifier algorithm, calculate a block verifier of the block;

generate a block map comprising the block verifiers of respective blocks;

using the verifier algorithm, calculate a block map verifier of the block map;

using the signing algorithm, generate a signature including the block map verifier; and

generate an archive comprising the blocks, the block map, and the signature.

2. The method of claim 1 :

the verifier algorithm comprising a hashing algorithm; and

the verifier of a block comprising a hashcode of the block calculated using the hashing algorithm.

3. The method of claim 1 :

respective blocks of the archive representing a segment of the object set; and

calculating the block verifiers of respective blocks comprising: using the verifier algorithm, calculating a block verifier of segments corresponding to respective blocks.

4. The method of claim 1 :

the device comprising at least two verifier algorithms; and

calculating a verifier of a data set comprising:

using a first verifier algorithm, calculating a first verifier of the data set; and

using a second verifier algorithm, calculating a second verifier of the data set.

5. The method of claim 1 :

the signature comprising a signature protected area; and

generating the signature comprising: generating the signature including the block map verifier in the signature protected area of the signature.

6. The method of claim 1 :

the archive storing an object set comprising at least one object; and

the signature stored in the archive as an object of the object set.

7. The method of claim 1 :

the archive storing an object set comprising at least one object; and

respective blocks comprising portions of an object; and

the block map stored in the archive as an object of the object set.

8. The method of claim 1 :

the instructions configured to, using the verifier algorithm, calculate an object set verifier of the blocks and the block map; and

generating the signature comprising: generating a signature including the block map verifier and the object set verifier.

9. A method of verifying, using a device having a processor, blocks of an archive including a signature and a block map comprising block verifiers of the blocks of the archive, the method comprising:

executing on the processor instructions configured to:

upon receiving a request to extract at least one selected block from the archive:

extract the selected blocks, the block map, and the signature, and

store the selected blocks, the block map, and the signature outside of the archive; and

upon receiving a request to verify at least one extracted block:

identify an extracted signature including an extracted block map verifier and an extracted block map for the extracted blocks;

using the signing algorithm, authenticate the extracted signature;

using the verifier algorithm, verify the extracted block map with the block map verifier; and

using the verifier algorithm, verify the extracted blocks with the block verifier.

10. The method of claim 9 :

the verifier algorithm comprising a hashing algorithm; and

the verifier of a block comprising a hashcode of the block calculated using the hashing algorithm.

11. The method of claim 9 :

the device comprising at least two verifier algorithms;

respective verifiers of a data set comprising:

a first verifier of the data set calculated using a first verifier algorithm; and

a second verifier of the data set calculated using a second verifier algorithm; and

verifying the verifier comprising:

using the first verifier algorithm, verify the data set using the first verifier; and

using the second verifier algorithm, verify the data set using the second verifier.

12. The method of claim 9 , the instructions configured to, upon receiving a request to verify at least one selected block within the archive:

extract the selected blocks, the signature, and the block map;

using the signing algorithm, authenticate the signature;

using the verifier algorithm, verify the extracted block map with the block map verifier; and

using the verifier algorithm, verify the extracted blocks with the block verifier.

13. The method of claim 9 :

the archive storing an object set comprising at least one object;

respective blocks comprising a portion of an object of the object set;

the request to extract at least one selected block comprising a request to extract the blocks of at least one selected object; and

the request to verify at least one extracted block comprising a request to verify the blocks of at least one extracted object.

14. The method of claim 13 , storing the block map and the signature outside of the archive comprising: storing the block map and the signature as extracted objects of the object set.

15. The method of claim 14 :

storing the block map and the signature comprising: associating the extracted block map and the extracted signature with extracted objects of the object set; and

identifying the extracted signature and the extracted block map comprising:

identifying the extracted block map and the extracted signature associated with the extracted object.

16. The method of claim 9 :

the signature comprising an object set verifier of the blocks and the block map; and

verifying an object comprising: using the verifier algorithm, verify the blocks and the block map of the archive with the object set verifier.

17. The method of claim 9 :

the archive accessible to the device over a network; and

the instructions configured to, upon receiving the request to extract the object:

extract a directory, the signature, and the block map; and

after extracting the directory, the signature, and the block map, initiating a data stream of the blocks of the archive; and

the request to verify a selected block of the archive comprising a request to verify a block of the data stream received over the network.

18. The method of claim 9 :

the device storing a first version of a data set;

the archive comprising a second version of the data set including a data set update; and

the request to extract the selected blocks of the archive comprising a request to extract the blocks of the archive comprising the data set update.

19. The method of claim 9 :

the verifying initiated by a user; and

the instructions comprising: upon detecting a failure of a verification, report the failure to the user.

20. A memory device not comprising an electromagnetic signal, the memory device and storing instructions that enable a device having a processor, a verifier algorithm, and a signing algorithm to generate an archive comprising at least one block, by:

upon being executed by the processor, causing the device to:

for respective blocks, using the verifier algorithm, calculate a block verifier of the block;

generate a block map comprising the block verifiers of respective blocks;

using the verifier algorithm, calculate a block map verifier of the block map;

using the signing algorithm, generate a signature including the block map verifier; and

generate an archive comprising the blocks, the block map, and the signature.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2016
From: MICROSOFT TECHNOLOGY LICENSING, LLC
To: ZHIGU HOLDINGS LIMITED
Reel/Frame 040354/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 17, 2011
From: LEET, SIMON WAI LEONG; SHETH, SARJANA BHARAT; O'BRIEN, PATRICK T., JR.; DAVIS, JACK R.
To: MICROSOFT CORPORATION
Reel/Frame 027068/0565 →
Continuity (1)
Related Publication 20130067180A1 · Mar 14, 2013