IP Library Granted Patent US 9,547,657
Granted Patent B2
US 9,547,657 · App. 14/182,711 · Granted Jan 17, 2017

Methods and systems for efficient comparison of file sets

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 9,547,657
App. No.
14/182,711
Granted
Jan 17, 2017
Kind
B2
Abstract

Aspects and implementations of the present disclosure are directed to methods and systems for comparing sets of files using signatures. In general, in some implementations, an audit system compares a first plurality of signatures representing element information for a first file hierarchy to a second plurality of signatures representing element information for a second file hierarchy. The audit system determines, based on the comparison of the first plurality of signatures to the second plurality of signatures, whether the first file hierarchy is likely to be a modified copy of the second file hierarchy. In some implementations, the audit system compares signatures of a first signature type, selects a second signature type based on the comparison using the first signature type, and compares signatures of the second signature type. In some implementations, the second plurality of signatures is stored in a catalog of signatures representing various file hierarchies.

Claims (48)

1. A method for comparing a first file hierarchy to a second file hierarchy, the method comprising:

comparing, by an audit system comprising at least one computing processor, a first plurality of signatures representing element information for a first file hierarchy to a second plurality of signatures representing element information for a second file hierarchy, the comparison of the first plurality of signatures to the second plurality of signatures including a first comparison of signatures of a first type and a second comparison of signatures of a second type;

determining, by the audit system, based on the comparison of the first plurality of signatures to the second plurality of signatures, whether the first file hierarchy is likely to be a modified copy of the second file hierarchy; and

determining, by the audit system, based on the first comparison of signatures of the first type and the second comparison of signatures of the second type,

that the first file hierarchy and the second file hierarchy are related and

that at least one difference between the first file hierarchy and the second file hierarchy is one of:

a file present in one of the first file hierarchy and the second file hierarchy is not present in the other of the first file hierarchy and the second file hierarchy, or

a file is present in the first file hierarchy with a first file size and present in the second file hierarchy with a second file size different from the first file size.

2. The method of claim 1 , the method comprising:

comparing, by the audit system, a first signature of the first signature type from the first plurality of signatures to a second signature of the first signature type from the second plurality of signatures;

selecting, by the audit system, the second signature type based on the comparison of the first signature of the first signature type to the second signatures of the first signature type; and

comparing, by the audit system, a first signature of the second signature type from the first plurality of signatures to a second signature of the second signature type from the second plurality of signatures.

3. The method of claim 2 , wherein the first signature type is for signatures representing a first set of element attributes and the second signature type is for signatures representing a second set of element attributes, the first set of element attributes comprising at least one attribute not present in the second set of element attributes.

4. The method of claim 1 , the method comprising comparing, by the audit system, a first signature from the first plurality of signatures to a second signature from the second plurality of signatures, wherein the first signature and the second signature each comprise a representation of element descriptors created according to a first set of string descriptor formatting rules and a first set of element selection criteria.

5. The method of claim 4 , wherein the representation is a fixed-length digest of a string descriptor comprising a deterministic aggregation of the element descriptors.

6. The method of claim 5 , comprising calculating the fixed-length digest using one of: a cyclic redundancy check, a message digest, an MD5 hash function, a cryptographic hash, and a non-cryptographic hash function.

7. The method of claim 1 , the method comprising identifying, by the audit system, a first difference between the first file hierarchy and the second file hierarchy.

8. The method of claim 1 , the method comprising:

comparing, by the audit system, a first signature from the first plurality of signatures to a second signature from the second plurality of signatures, wherein the first signature and the second signature are of a first signature type representative of multiple directory levels; and

comparing, by the audit system, a third signature from the first plurality of signatures to a fourth signature from the second plurality of signatures, wherein the third signature and the fourth signature are of a second signature type representative of a single directory level.

9. The method of claim 1 , the method comprising:

determining, by the audit system, based on the comparison of the first plurality of signatures to the second plurality of signatures, that the first file hierarchy is not likely to be a modified copy of the second file hierarchy;

comparing, by the audit system, a third plurality of signatures representing element information for the first file hierarchy to a fourth plurality of signatures representing element information for a third file hierarchy;

determining, by the audit system, based on the comparison of the third plurality of signatures to the fourth plurality of signatures, whether the first file hierarchy is likely to be a modified copy of the third file hierarchy.

10. A system for comparing a first file hierarchy to a second file hierarchy, the system comprising one or more computing processors configured to perform the operations of:

comparing a first plurality of signatures representing element information for a first file hierarchy to a second plurality of signatures representing element information for a second file hierarchy, the comparison of the first plurality of signatures to the second plurality of signatures including a first comparison of signatures of a first type and a second comparison of signatures of a second type;

determining based on the comparison of the first plurality of signatures to the second plurality of signatures, whether the first file hierarchy is likely to be a modified copy of the second file hierarchy; and

determining, by the audit system, based on the first comparison of signatures of the first type and the second comparison of signatures of the second type,

that the first file hierarchy and the second file hierarchy are related and

that at least one difference between the first file hierarchy and the second file hierarchy is one of:

a file present in one of the first file hierarchy and the second file hierarchy is not present in the other of the first file hierarchy and the second file hierarchy, or

a file is present in the first file hierarchy with a first file size and present in the second file hierarchy with a second file size different from the first file size.

11. The system of claim 10 , the one or more computing processors configured to perform the operations of:

comparing a first signature of the first signature type from the first plurality of signatures to a second signature of the first signature type from the second plurality of signatures;

selecting the second signature type based on the comparison of the first signature of the first signature type to the second signatures of the first signature type; and

comparing a first signature of the second signature type from the first plurality of signatures to a second signature of the second signature type from the second plurality of signatures.

12. The system of claim 11 , wherein the first signature type is for signatures representing a first set of element attributes and the second signature type is for signatures representing a second set of element attributes, the first set of element attributes comprising at least one attribute not present in the second set of element attributes.

13. The system of claim 10 , the one or more computing processors configured to perform the operation of comparing a first signature from the first plurality of signatures to a second signature from the second plurality of signatures, wherein the first signature and the second signature each comprise a representation of element descriptors created according to a first set of string descriptor formatting rules and a first set of element selection criteria.

14. The system of claim 13 , wherein the representation is a fixed-length digest of a string descriptor comprising a deterministic aggregation of the element descriptors.

15. The system of claim 14 , the one or more computing processors configured to perform the operation of calculating the fixed-length digest using one of: a cyclic redundancy check, a message digest, an MD5 hash function, a cryptographic hash, and a non-cryptographic hash function.

16. The system of claim 10 , the one or more computing processors configured to perform the operation of identifying a first difference between the first file hierarchy and the second file hierarchy.

17. The system of claim 10 , the one or more computing processors configured to perform the operations of:

comparing a first signature from the first plurality of signatures to a second signature from the second plurality of signatures, wherein the first signature and the second signature are of a first signature type representative of multiple directory levels; and

comparing a third signature from the first plurality of signatures to a fourth signature from the second plurality of signatures, wherein the third signature and the fourth signature are of a second signature type representative of a single directory level.

18. The system of claim 10 , the one or more computing processors configured to perform the operations of:

determining based on the comparison of the first plurality of signatures to the second plurality of signatures, that the first file hierarchy is not likely to be a modified copy of the second file hierarchy;

comparing a third plurality of signatures representing element information for the first file hierarchy to a fourth plurality of signatures representing element information for a third file hierarchy;

determining, based on the comparison of the third plurality of signatures to the fourth plurality of signatures, whether the first file hierarchy is likely to be a modified copy of the third file hierarchy.

Assignments (5)
SECURITY INTEREST Recorded Sep 30, 2024
From: BLACK DUCK SOFTWARE, INC.
To: ARES CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 069083/0149 →
CHANGE OF NAME Recorded Jul 30, 2024
From: SOFTWARE INTEGRITY GROUP, INC.
To: BLACK DUCK SOFTWARE, INC.
Reel/Frame 068191/0490 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2024
From: SYNOPSYS, INC.
To: SOFTWARE INTEGRITY GROUP, INC.
Reel/Frame 066664/0821 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 2, 2018
From: BLACK DUCK SOFTWARE, INC.
To: SYNOPSYS, INC.
Reel/Frame 045411/0114 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 18, 2014
From: WEINSTEIN, DAMON ALEXANDER; KILMON, RANDOLPH BYRD, JR.
To: BLACK DUCK SOFTWARE, INC.
Reel/Frame 032235/0817 →