IP Library Granted Patent US 11,907,379
Granted Patent B2
US 11,907,379 · App. 16/356,707 · Granted Feb 20, 2024

Creating a secure searchable path by hashing each component of the path

Inventors: David Craig Lawson (Richardson, TX); Michael A Phillips (McKinney, TX)
Assignee: Dell Products L.P.
G06F21/602G06F3/0604G06F3/067G06F3/0635G06F16/9014G06F16/9017H04L9/0643
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 11,907,379
App. No.
16/356,707
Filed
Mar 18, 2019
Granted
Feb 20, 2024
Kind
B2
Examiner
HO, VY H
Art Unit
2497
USPC
713/189
Abstract

In some examples, a computing device creates an event log when an event occurs. If the event log includes a path comprising one or more components, the computing device may determine a hash, using a hash function and a salt, for each of the components and substitute each component in the path with an index to the hash stored in a dictionary. In this way, the computing device replaces each component of the path with an index to a hash in the dictionary to create a modified path. The resulting modified path can be traversed and searched. For example, a search term may be hashed using the hash function and salt, and the dictionary associated with the logs searched for a match. In this way, a particular file name or a particular folder name can be identified in the modified path.

Claims (110)

1. A method comprising:

determining, by one or more processors, that a file includes an original path including multiple components;

selecting, by the one or more processors, a first component of the original path;

generating, by the one or more processors, a first hash value corresponding to the first component;

determining, by the one or more processors, that the first hash value is included in a dictionary that includes multiple index-hash pairs, each consisting of a hash value of a component in the original path and an index value corresponding to the hash value, wherein each index value in the multiple index-hash pairs is different than its corresponding hash value;

retrieving, by the one or more processors, a first index corresponding to the first hash value from the dictionary;

then replacing, by the one or more processors, the first component of the original path with the first index retrieved from the dictionary to create a modified path;

sending, by the one or more processors, a modified file comprising the modified path, the dictionary, a salt comprising a randomly generated number, and a hash function to generate the first hash value based on the first component and the salt across a network to a server; and

determining usage patterns in multiple computing devices by searching the first index of other paths.

2. The method of claim 1 , further comprising:

selecting a second component of the original path;

generating a second hash value corresponding to the second component;

determining that the second hash value is not included in the dictionary;

creating a second index that is not included in the dictionary;

associating the created second index with the second hash value;

adding an index-hash pair including the created second index and the generated second hash value to the dictionary; and

replacing the second component of the original path with the created second index to create the modified path.

3. The method of claim 1 , wherein generating the first hash value corresponding to the first component comprises:

generating the first hash value using a hash function and a salt comprising a randomly generated number.

4. The method of claim 3 , wherein the modified file further comprises:

the dictionary;

the hash function; and

the salt.

5. The method of claim 1 , wherein the first component comprises one of:

a drive name;

a drive letter;

a volume name;

a device name; or

a folder name.

6. The method of claim 1 , wherein:

the first component of the original path has the corresponding first index in the modified path; and

the corresponding first index accesses the first hash value stored in the dictionary.

7. The method of claim 1 , wherein the modified path comprises an array of indexes.

8. The method of claim 1 , wherein the first component comprises a device name.

9. The method of claim 1 , where the dictionary is a table that links each index of an index-hash pair to its corresponding hash value, wherein each hash value included within the multiple index-hash pairs corresponds to a different one of the multiple components of the original path.

10. The method of claim 1 , further comprising:

selecting, by the one or more processors, each of the multiple components of the original path;

using random data to generate, by the one or more processors, a hash value corresponding to each of the selected components of the original path;

using each generated hash value to select, by the one or more processors, a respective index from the dictionary that corresponds to the generated hash value and its corresponding component of the original path; and

replacing, by the one or more processors, each component of the original path with the selected respective index that corresponds to the generated hash value that corresponds to the component of the original path to create the modified path.

11. The method of claim 10 , where each of the selected respective indexes is a different integer number, and where the modified path is an array of the different integer numbers of the selected respective indexes.

12. The method of claim 1 , further comprising receiving the modified file in the server, the modified file including the dictionary; and performing, by one or more processors in the server, the following:

selecting a component name for which to perform a search;

then retrieving the dictionary from the modified file received in the server;

then generating, on the server, a hash value of the component name;

then determining if the retrieved dictionary on the server includes an entry that includes the hash value of the component name;

wherein when the retrieved dictionary on the server is determined to include an entry that includes the hash value of the component name, then:

searching other data of the modified file to locate other occurrence/s of the hash value in the other data of the modified file, and

performing an analysis of the other data of the modified file based on the located other occurrence/s of the hash value in the other data of the modified file; and

wherein when the retrieved dictionary on the server is determined not to include an entry that includes the hash value of the component name, then not searching other data of the modified file to locate other occurrence/s of the hash value in the other data of the modified file.

13. The method of claim 12 , where the received modified file comprises received first telemetry data sent by a first computing device to the server, the first computing device being one of the multiple computing devices; and where the method further comprises performing, by the one or more processors in the server, an analysis of the received first telemetry data sent by the first computing device together with an analysis of the additional telemetry data received by the server from other of the multiple computing devices to determine the usage patterns of the multiple computing devices.

14. The method of claim 13 , further comprising performing, by the one or more processors in the server, the following:

storing the received first telemetry data and the received additional telemetry data; and

then performing the search and the analysis of each of the previously-stored first telemetry data and the previously-stored additional telemetry data to determine the usage patterns of the multiple computing devices.

15. A computing device comprising:

one or more processors; and

one or more non-transitory computer readable media storing instructions executable by the one or more processors to perform operations comprising:

determining that a file includes an original path including multiple components;

selecting a first component of the original path;

generating a first hash value corresponding to the first component;

determining that the first hash value is included in a dictionary that includes multiple index-hash pairs, each consisting of a hash value of a component in the original path and an index value corresponding to the hash value, wherein each index value in the multiple index-hash pairs is different than its corresponding hash value;

retrieving a first index corresponding to the first hash value from the dictionary;

then replacing the first component of the original path with the first index retrieved from the dictionary to create a modified path;

sending, across a network to a server, a modified file comprising the modified path, the dictionary, a salt comprising a randomly generated number, and a hash function to generate the first hash value based on the first component and the salt; and

determining usage patterns in multiple computing devices by searching the first index of other paths.

16. The computing device of claim 15 , further comprising:

selecting a second component of the original path;

generating a second hash value corresponding to the second component;

determining that the second hash value is not included in the dictionary;

creating a second index that is not included in the dictionary;

associating the created second index with the second hash value;

adding an index-hash pair including the created second index and the generated second hash value to the dictionary; and

replacing the second component of the original path with the created second index to create the modified path.

17. The computing device of claim 15 , wherein:

the file comprises an event log generated based on determining that a particular event occurred on the computing device.

18. The computing device of claim 15 , wherein the modified file further comprises:

unmodified information outside the modified path to identify the computing device, the unmodified information comprising at least one of a system name, a system identifier, a serial number, a service tag, or an internet protocol (IP) address.

19. The computing device of claim 15 , wherein the first component comprises one of:

a drive name;

a drive letter;

a volume name;

a device name; or

a folder name.

20. The computing device of claim 15 , wherein:

the first component of the original path has the corresponding first index in the modified path; and

the corresponding first index accesses the first hash value stored in the dictionary.

21. One or more non-transitory computer readable media storing instructions executable by one or more processors to perform operations comprising:

determining that a file includes an original path including multiple components;

selecting a first component of the original path;

generating a first hash value corresponding to the first component;

determining that the first hash value is included in a dictionary that includes multiple index-hash pairs, each consisting of a hash value of a component in the original path and an index value corresponding to the hash value, wherein each index value in the multiple index-hash pairs is different than its corresponding hash value;

retrieving a first index corresponding to the first hash value from the dictionary;

then replacing the first component of the original path with the first index retrieved from the dictionary to create a modified path;

sending, across a network to a server, a modified file comprising the modified path, the dictionary, a salt comprising a randomly generated number, and a hash function to generate the hash based on the component and the salt; and

determining usage patterns in multiple computing devices by searching the first index of other paths.

22. The one or more non-transitory computer readable media of claim 21 , wherein:

the file comprises an event log generated based on determining that a particular event occurred on the computing device.

23. The one or more non-transitory computer readable media of claim 21 , wherein the operations further comprise:

determining the first hash value based at least in part on the first component;

determining that the first hash value is included in the dictionary associated with the modified file; and

determining that the first component is included in the modified file.

24. The one or more non-transitory computer readable media of claim 21 , wherein the first component comprises one of:

a drive name;

a drive letter;

a volume name;

a device name; or

a folder name.

25. The one or more non-transitory computer readable media of claim 21 , wherein:

the first component of the original path has the corresponding first index in the modified path; and

the corresponding first index accesses the first hash value stored in the dictionary.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0466) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0486 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST AT REEL 050405 FRAME 0534 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058001/0001 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0466 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050405/0534 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2019
From: LAWSON, DAVID CRAIG; PHILLIPS, MICHAEL A.
To: DELL PRODUCTS L. P.
Reel/Frame 048634/0871 →
Continuity (1)
Related Publication 20200302065A1 · Sep 24, 2020