IP Library Granted Patent US 12,079,326
Granted Patent B2
US 12,079,326 · App. 17/339,577 · Granted Sep 3, 2024

Password discovery system using a generative adversarial network

Inventors: Samuel Gross (Manassas, VA); Kaushik Datta (Arlington, VA)
Assignee: NOBLIS, INC.
G06F21/46G06N3/045G06N3/08
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 12,079,326
App. No.
17/339,577
Granted
Sep 3, 2024
Kind
B2
Abstract

Systems and methods for password discovery are provided. A system receives a first password data set comprising known passwords and applies a rule-set to the first data set to generate a second password data set comprising passwords that are believed to be likely to be human-generated. The system trains a generative adversarial network, for generating predicted passwords, using the second data set, for example by incentivizing the GAN to favor passwords in the second data set. The system applies the generative adversarial network to generate a third password data set comprising predicted passwords. The system compares the third password data set to a data corpus to identify a string in the data corpus determined to match one of the predicted passwords in the first plurality of predicted passwords. The identified string may thus be identified as a previously undiscovered password, which may be applied to unlock password-protected systems and/or to further improve password discovery systems.

Claims (81)

1. A system for identifying passwords in a data corpus, the system comprising memory storing instructions and one or more processors configured to execute the instructions to cause the system to:

receive a first password data set comprising a plurality of known passwords;

apply a rule-set to the first password data set to generate a second password data set;

train a generative adversarial network, for generating predicted passwords, using the second data set, wherein training the generative adversarial network comprises:

generating, by a generator of the generative adversarial network, a predicted password;

determining whether the generated predicted password is included in the second password data set; and

in response to determining that the generated predicted password is included in the second password data set, modifying a loss function of the generative adversarial network;

apply the generative adversarial network to generate a third password data set comprising a first plurality of predicted passwords; and

compare the third password data set to a data corpus to identify a string in the data corpus determined to match one of the predicted passwords in the first plurality of predicted passwords.

2. The system of claim 1 , wherein applying the rule-set to the first password data set to generate the second password data set comprises filtering the first password data set to select a subset of the plurality of known passwords for inclusion in the second password data set.

3. The system of claim 1 , wherein applying the rule-set to the first password data set to generate the second password data set comprises generating a second plurality of predicted passwords generated based on one or more of the plurality of known passwords.

4. The system of claim 1 , wherein the one or more processors are further configured to augment the second password data set based on the identified string in the data corpus.

5. The system of claim 4 , wherein augmenting the second password data set based on the identified string in the data corpus comprises:

applying an extrapolation algorithm to the identified string to generate an extrapolated string; and

adding the extrapolated string to the second password data set.

6. The system of claim 4 , wherein augmenting the second password data set based on the identified string in the data corpus comprises:

applying an extrapolation algorithm to a subset of the third password data set associated with the identified string to generate one or more extrapolated strings; and

adding the one or more extrapolated strings to the second password data set.

7. The system of claim 1 , wherein modifying the loss function of the generative adversarial network comprises reducing a loss function of the generator.

8. The system of claim 1 , wherein modifying the loss function of the generative adversarial network comprises reducing a loss function of a discriminator of the generative adversarial network.

9. The system of claim 1 , wherein modifying the loss function of the generative adversarial network comprises modifying the loss function by an amount, wherein the amount is determined in accordance with a rule in the rule-set that is associated with the generated predicted password that is included in the second password data set.

10. The system of claim 1 , wherein comparing the third password data set to the data corpus to identify the string in the data corpus comprises applying a matching algorithm to identify the string in the data corpus.

11. The system of claim 10 , wherein the matching algorithm comprises one or both of: a deterministic matching algorithm, and a probabilistic matching algorithm.

12. The system of claim 1 , wherein comparing the third password data set to the data corpus to identify the string in the data corpus comprises:

dividing the third password data set into a plurality of subsets;

selecting, based on comparison of each of the plurality of subsets to the data corpus, one of the plurality of subsets, wherein the identified string is included in the selected subset.

13. The system of claim 12 , wherein selecting one of the plurality of subsets comprises: generating, based on the plurality of subsets, a plurality of respective probabilistic data structures; and

querying, using the data corpus, each of the plurality of probabilistic data structures to determine whether each respective probabilistic data structure indicates (a) a probable match between the data corpus and one or more of the predicted passwords in the corresponding data set, or (b) a definite non-match between the data corpus and any of the predicted passwords in the corresponding data set.

14. The system of claim 1 , wherein the one or more processors are further configured to apply the identified string to unlock a password-protected device, system, or file.

15. A non-transitory computer-readable storage medium storing instructions for identifying passwords in a data corpus, the instructions configured to be executed by one or more processors of a system to cause the system to:

receive a first password data set comprising a plurality of known passwords;

apply a rule-set to the first password data set to generate a second password data set;

train a generative adversarial network, for generating predicted passwords, using the second data set, wherein training the generative adversarial network comprises:

generating, by a generator of the generative adversarial network, a predicted password;

determining whether the generated predicted password is included in the second password data set; and

in response to determining that the generated predicted password is included in the second password data set, modifying a loss function of the generative adversarial network;

apply the generative adversarial network to generate a third password data set comprising a first plurality of predicted passwords; and

compare the third password data set to a data corpus to identify a string in the data corpus determined to match one of the predicted passwords in the first plurality of predicted passwords.

16. A method for identifying passwords in a data corpus, the method performed by a system comprising one or more processors, the method comprising:

receiving a first password data set comprising a plurality of known passwords;

applying a rule-set to the first password data set to generate a second password data set;

training a generative adversarial network, for generating predicted passwords, using the second data set, wherein training the generative adversarial network comprises:

generating, by a generator of the generative adversarial network, a predicted password;

determining that the generated predicted password is included in the second password data set; and

in response to determining that the generated predicted password is included in the second password data set, modifying a loss function of the generative adversarial network;

applying the generative adversarial network to generate a third password data set comprising a first plurality of predicted passwords; and

comparing the third password data set to a data corpus to identify a string in the data corpus determined to match one of the predicted passwords in the first plurality of predicted passwords.

17. A system for identifying passwords in a data corpus, the system comprising memory storing instructions and one or more processors configured to execute the instructions to cause the system to:

receive a first password data set comprising a plurality of known passwords;

apply a rule-set to the first password data set to generate a second password data set;

train a generative adversarial network, for generating predicted passwords, using the second data set;

apply the generative adversarial network to generate a third password data set comprising a first plurality of predicted passwords;

compare the third password data set to a data corpus to identify a string in the data corpus determined to match one of the predicted passwords in the first plurality of predicted passwords; and

augment the second password data set based on the identified string in the data corpus, wherein augmenting the second password data set comprises an option of the following set of options:

applying an extrapolation algorithm to the identified string to generate an extrapolated string, and adding the extrapolated string to the second password data set; and

applying an extrapolation algorithm to a subset of the third password data set associated with the identified string to generate one or more extrapolated strings, and adding the one or more extrapolated strings to the second password data set.

18. The system of claim 17 , wherein applying the generative adversarial network comprises training the generative adversarial network by:

generating, by a generator of the generative adversarial network, a predicted password;

determining whether the generated predicted password is included in the second password data set; and

in response to determining that the generated predicted password is included in the second password data set, modifying a loss function of the generative adversarial network.

19. The system of claim 17 , wherein applying the rule-set to the first password data set to generate the second password data set comprises filtering the first password data set to select a subset of the plurality of known passwords for inclusion in the second password data set.

20. The system of claim 17 , wherein applying the rule-set to the first password data set to generate the second password data set comprises generating a second plurality of predicted passwords generated based on one or more of the plurality of known passwords.

21. The system of claim 17 , wherein the one or more processors are further configured to apply the identified string to unlock a password-protected device, system, or file.

22. A non-transitory computer-readable storage medium storing instructions for identifying passwords in a data corpus, the instructions configured to be executed by one or more processors of a system to cause the system to:

receive a first password data set comprising a plurality of known passwords;

apply a rule-set to the first password data set to generate a second password data set;

train a generative adversarial network, for generating predicted passwords, using the second data set;

apply the generative adversarial network to generate a third password data set comprising a first plurality of predicted passwords;

compare the third password data set to a data corpus to identify a string in the data corpus determined to match one of the predicted passwords in the first plurality of predicted passwords; and

augment the second password data set based on the identified string in the data corpus, wherein augmenting the second password data set comprises an option of the following set of options:

applying an extrapolation algorithm to the identified string to generate an extrapolated string, and adding the extrapolated string to the second password data set; and

applying an extrapolation algorithm to a subset of the third password data set associated with the identified string to generate one or more extrapolated strings, and adding the one or more extrapolated strings to the second password data set.

23. A method for identifying passwords in a data corpus, the method performed by a system comprising one or more processors, the method comprising:

receiving a first password data set comprising a plurality of known passwords;

applying a rule-set to the first password data set to generate a second password data set;

training a generative adversarial network, for generating predicted passwords, using the second data set;

applying the generative adversarial network to generate a third password data set comprising a first plurality of predicted passwords;

comparing the third password data set to a data corpus to identify a string in the data corpus determined to match one of the predicted passwords in the first plurality of predicted passwords; and

augmenting the second password data set based on the identified string in the data corpus, wherein augmenting the second password data set comprises an option of the following set of options:

applying an extrapolation algorithm to the identified string to generate an extrapolated string, and adding the extrapolated string to the second password data set; and

applying an extrapolation algorithm to a subset of the third password data set associated with the identified string to generate one or more extrapolated strings, and adding the one or more extrapolated strings to the second password data set.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 5, 2021
From: GROSS, SAMUEL; DATTA, KAUSHIK
To: NOBLIS, INC.
Reel/Frame 058028/0349 →
Continuity (1)
Related Publication 20220391491A1 · Dec 8, 2022