IP Library Granted Patent US 8,200,969
Granted Patent B2
US 8,200,969 · App. 12/012,293 · Granted Jun 12, 2012

Data verification by challenge

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,200,969
App. No.
12/012,293
Granted
Jun 12, 2012
Kind
B2
Abstract

An embodiment of the invention provides an apparatus and method for data verification by challenge. The apparatus and method perform acts including: sending a hash value of a data piece in a sender; if the hash value matches a stored hash value in a receiver, then sending a challenge from the receiver to the sender; sending a sample data set from the data piece in the sender, wherein the sample data set is determined by a window that is identified by the challenge; comparing the sample data set with a data set that is overlapped by the window for a stored data piece in the receiver; and performing a response based on the comparison of the sample data set and the stored data set that is overlapped by the window for the stored data piece.

Claims (46)

1. A method for data verification by challenge, the method comprising:

storing a data piece and a hash value of the data piece in a receiver;

receiving, at the receiver, a hash value of a data piece stored in a sender;

if the hash value of the data piece stored in the sender matches the hash value of the data piece stored in the receiver, then sending a challenge packet from the receiver to the sender, the challenge packet to identify via fields a position and a length of a non-fixed window over a subset of the data piece stored in the receiver;

receiving, from the sender, a sample data set that is a subset of the data piece stored in the sender, wherein the sample data set is to be determined by the position and the length of the non-fixed window;

comparing the sample data set with a receiver data set, the receiver data set being the subset of the data piece stored in the receiver corresponding with the non-fixed window; and

performing a response based on the comparison of the sample data set and the receiver data set.

2. The method of claim 1 wherein performing the response comprises:

flagging a hash collision, and sending a request for the data piece stored in the sender, if the comparison of the sample data set and the receiver data set results in a mismatch.

3. The method of claim 1 wherein performing the response comprises:

flagging an exploit attempt, and denying, by the receiver, receipt of a transmission of the data piece stored in the sender, if the comparison of the sample data set and the receiver data set results in a mismatch.

4. The method of claim 1 wherein performing the response comprises:

denying, by the receiver, a transmission of the data piece stored in the sender, if the comparison of the sample data set and the receiver data set results in a mismatch.

5. The method of claim 1 wherein performing the response comprises:

sending a response indicating that the data piece stored in the sender will not be transmitted from the sender to the receiver, if the comparison of the sample data set and the receiver data set results in match.

6. The method of claim 1 further comprising:

if the hash value received from the sender does not match the stored hash value of the data piece stored in the receiver, then requesting a transmission of the data piece stored in the sender from the sender to the receiver.

7. The method of claim 1 , further including, selectively determining, by the receiver, the length of the non-fixed window.

8. The method of claim 1 , wherein the position of the non-fixed window over the subset of the data piece stored in the receiver is not known to the sender before the sender receives the challenge packet.

9. The method of claim 1 , wherein the challenge packet has a frequency of transmission occurrence that is adjustable.

10. The method of claim 1 , wherein the sender and receiver are connected in an in-band network system.

11. The method of claim 1 , wherein each of the sender and receiver comprises a network device.

12. The method of claim 1 , wherein the sender comprises a client computing device and the receiver comprises a server.

13. The method of claim 1 wherein the field in the challenge packet identifying the position of the non-fixed window includes an offset value to identify a start of the position of the non-fixed window on the data piece stored in the receiver relative to the beginning of the data piece stored in the receiver.

14. The method of claim 13 further comprising, sending the challenge packet only the hash value of the data piece stored in the sender matches the hash value of the data piece stored in the receiver.

15. The method of claim 1 wherein comparing the sample data set with a receiver data set includes comparing actual values of the sample data set and receiver data set.

16. The method of claim 1 wherein the data piece stored on the receiver is a file or a chunk of a file, and the data piece stored on the sender is a file or a chunk of a file.

17. An article of manufacture comprising:

a non-transitory computer-readable medium having stored thereon instructions to:

receive a hash value of a data piece stored in a sender;

in response to determining that the hash value received from the sender matches a hash value previously stored in a receiver, send a challenge packet from the receiver to the sender, the challenge packet to identify via fields a position and a length of a variable window that overlaps a subset of a data piece stored in the receiver, both the position and length of the variable window are unknown to the sender before the sender receives the challenge packet;

receive a sample data set that is a subset of the data piece stored in the sender, the sample data set to be determined by the position and the length of the variable window;

compare the sample data set with a reference data set, the reference data being the-subset of the data piece stored in the receiver that is overlapped by the variable window; and

perform a response based on the comparison of the sample data set and the reference data set.

18. A receiver for data verification by challenge, the receiver comprising:

at least one processor to receive a hash value of a data piece stored in a sender, determine if the hash value of the data piece stored in the sender matches a previously stored hash value of a data piece stored in the receiver, and if a match is determined, send a challenge packet from the receiver to the sender, the challenge packet to identify via fields a position and a length of an adjustable window that overlaps a subset of the data piece stored in the receiver, receive a sample data set that is a subset of the data piece stored in the sender, wherein the sample data set is to be determined by the position and length of the adjustable window, compare the sample data set with a reference data set, the reference data set being the subset of the data piece stored in the receiver that the adjustable window overlaps, and perform a response based on the comparison of the sample data set and the reference data set.

19. The receiver of claim 18 wherein the at least one processor is to perform the response by flagging a hash collision and sending a request for the data piece stored in the sender, if the comparison of the sample data set and the reference data set results in a mismatch.

20. The receiver of claim 18 wherein the at least one processor is to perform the response by flagging an exploit attempt and denying a transmission of the data piece stored in the sender, if the comparison of the sample data set and the reference data set results in a mismatch.

21. The receiver of claim 18 wherein the at least one processor is to perform the response by denying a transmission of the data piece stored in the sender, if the comparison of the sample data set and the reference data set results in a mismatch.

22. The receiver of claim 18 wherein the at least one processor is to perform the response by sending a response indicating that the data piece stored in the sender will not be transmitted from the sender to the receiver, if the comparison of the sample data set and the reference data set results in match.

23. The receiver of claim 18 , wherein both the position and the length of the adjustable window are selected at the processor's discretion and are not known to the sender before the sender receives the challenge packet.

24. The receiver of claim 18 , wherein the challenge packet has a frequency of transmission occurrence that is adjustable.

25. The receiver of claim 18 wherein if the hash value of the data piece stored in the sender does not match the hash value previously stored in the receiver, then the at least one processor is to request a transmission of the data piece stored in the sender from the sender to the receiver.

26. The receiver of claim 18 wherein the data piece stored in the sender and the data piece stored in the receiver are separately selected from one of a file or a chunk of a file.

27. The receiver of claim 18 wherein the challenge packet further includes a field for a challenge packet identifier.

28. The receiver of claim 18 wherein the challenge packet further includes a field for an indication that the challenge packet is a response to receiving the hash value of the data piece stored in the sender.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 31, 2008
From: VACHUSKA, THOMAS
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 020519/0073 →