IP Library Granted Patent US 7,739,733
Granted Patent B2
US 7,739,733 · App. 11/265,539 · Granted Jun 15, 2010

Storing digital secrets in a vault

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 7,739,733
App. No.
11/265,539
Granted
Jun 15, 2010
Kind
B2
Abstract

Methods and systems for storing secret information in a digital vault include obtaining from a user answers to a number of different questions, and identifying which subsets or combinations of the questions for which correct answers later provided by an entity will enable that entity to gain access to the secret information in the vault. The number of questions in each combination is less than the total number of questions, and at least one subset has at least two questions. For each subset, a corresponding string of answers is generated, the string is hashed, and the resulting hash value is combined with the digital secret. This hides the digital secret, which is then stored in the vault. Methods and systems for registering authentication material include storing a hashed string of answers for each combination, generating “multiple authenticators.”

Claims (165)

1. A method for storing secret information in a digital vault on a storage medium, said method comprising:

obtaining from a user, via an input device, an answer to each of m different questions to generate a set of m answers, wherein m is an integer greater than or equal to 3;

identifying, via a microprocessor, subsets S K of the m questions for which acceptable answers later provided by an entity will enable that entity to gain access to the secret information in the digital vault, wherein each subset S K includes a set of n K questions, wherein K is an integer identifying the subset and each n K is an integer that is less than m, wherein at least one subset S K has at least two elements; and

for each subset of questions, S K :

(a) generating, via the microprocessor, a string T K from the obtained answers for that subset of questions S K ;

(b) mathematically combining, via the microprocessor, a value derived from the string, T K , with the secret information to generate a result, F K , that hides the secret information; and

(c) storing F K , in the digital vault on the storage medium, wherein the digital vault comprises all stored F K ;

wherein the string T K is a concatenation consisting of the following elements in this listed order:

K;

immediately followed by a delimiter;

immediately followed by a salt value;

immediately followed by the delimiter;

immediately followed by a pepper value;

immediately followed by the delimiter; and

immediately followed by, for each answer in S K :

a length of that answer;

immediately followed by the delimiter;

immediately followed by that answer; and

immediately followed by:

if that answer is a last answer in S K , no further characters;

otherwise, the delimiter;

wherein the salt value is a value particular to the user that is stored and retrieved without using encryption or decryption processes;

wherein the pepper value is a randomly generated value.

2. The method of claim 1 , wherein acceptable answers correspond to answers to the subset of questions obtained from the user.

3. The method of claim 1 , wherein acceptable answers are derived from answers obtained from the user.

4. The method of claim 1 , wherein the digital vault is stored on a remote server.

5. The method of claim 1 , wherein the m different questions are stored on a remote server and downloaded to a user computer.

6. The method of claim 1 , further comprising generating a result that allows the verification of later decryption of the secret information.

7. The method of claim 1 , wherein (b) comprises mathematically transforming the string, T K , to generate a value, F K′ , and mathematically combining that value, F K′ , with the secret information to generate a result, F K , that hides the secret information.

8. The method of claim 7 , wherein mathematically transforming the string T K comprises hashing T K .

9. The method of claim 7 , wherein mathematically transforming the string T K includes the application of a key derivation function.

10. The method of claim 7 , wherein mathematically combining the value, F K′ , with the secret information comprises using an exclusive-or function.

11. The method of claim 7 , wherein mathematically combining the value, F K′ , with the secret information comprises using an encryption function.

12. The method of claim 1 , further comprising, for each subset of questions, S K :

(d) mathematically transforming the string, T K , to generate a commitment value, G K ; and

(e) storing G K with F K ;

wherein the digital vault comprises all stored F K and G K .

13. The method of claim 10 , wherein the digital vault is stored on a remote server.

14. The method of claim 1 , wherein mathematically combining a value derived from the string T K , and the secret information comprises using an exclusive-or function.

15. The method of claim 1 , wherein mathematically combining a value derived from the string T K , and the secret information comprises using an encryption function.

16. The method of claim 15 , wherein the encryption function comprises integrity protection.

17. The method of claim 1 , further comprising:

(d) generating a confirmation string Z from the secret information which allows the verification of later decryption of the secret information; and

(e) storing Z with F K ; wherein the digital vault comprises Z and all stored F K .

18. The method of claim 1 , wherein the string T K comprises a concatenation of the obtained answers.

19. The method of claim 18 , wherein the string T K further comprises a random number.

20. The method of claim 18 , wherein the string T K further comprises a number specific to the vault.

21. The method of claim 1 , wherein the digital vault further comprises a description of subsets S K .

22. The method of claim 1 , further comprising erasing the obtained answers and the secret information after storing F K .

23. The method of claim 1 , further comprising erasing the intermediate values used in the computation of the vault.

24. The method of claim 1 , wherein the subsets S K comprise all possible subsets of n questions, where n is an integer less than m.

25. A method of gaining access to secret information contained within a digital vault on a storage medium, said method comprising:

obtaining, via an input device, from a user an answer to each of m different questions to generate a set of m answers, wherein m is an integer greater than or equal to 3;

identifying, via a microprocessor, subsets S K of the m questions for which acceptable answers provided by an entity will enable that entity to gain access to the secret information in the digital vault, wherein each subset S K includes a set of n K questions, wherein K is an integer identifying the subset and each n K is an integer that is less than m, wherein at least one subset S K has at least two elements;

selecting, via the microprocessor, a first subset from among the subsets S K of questions and for the selected subset:

(a) generating, via the microprocessor, a string V K from the obtained answers for that subset of questions S K ;

(b) comparing, via the microprocessor, a value derived from the string, V K to a set of stored values to find a match;

(c) if a match is found, giving the user access to the secret information in the digital vault on the storage medium,

repeating (a) through (c) for a next selected subset among the subsets S K until all subsets S K have been selected or until a match is found;

wherein the string V K is a concatenation consisting of the following elements in this listed order:

K;

immediately followed by a delimiter;

immediately followed by a salt value;

immediately followed by the delimiter;

immediately followed by a pepper value;

immediately followed by the delimiter; and

immediately followed by, for each answer in V K :

a length of that answer;

immediately followed by the delimiter;

immediately followed by that answer; and

immediately followed by:

if that answer is a last answer in V K , no further characters;

otherwise, the delimiter;

wherein the salt value is a value particular to the user that is stored and retrieved without using encryption or decryption processes;

wherein the pepper value is a randomly generated value.

26. The method of claim 25 , wherein acceptable answers correspond to answers to the subset of questions obtained from the user.

27. The method of claim 25 , wherein acceptable answers are derived from answers obtained from the user.

28. The method of claim 25 , wherein giving the user access to the secret information comprises using a value derived from the string V K as a decryption key for the secret information contained within the digital vault.

29. The method of claim 25 , wherein giving the user access to the secret information comprises using a value derived from the string V K with an exclusive-or function on the secret information contained within the digital vault.

30. The method of claim 25 , wherein (b) comprises mathematically transforming the string, V K , to generate a value H K ; and comparing a value derived from the value, H K , to a set of stored values to find a match.

31. The method of claim 30 , wherein mathematically transforming the string V K comprises using a one-way hash function.

32. The method of claim 25 , further comprising allowing the user to attempt to access at least a portion of the digital information in the vault only after the user successfully authenticates.

33. The method of claim 25 , wherein the m different questions are stored on a remote server and downloaded to a user computer.

34. The method of claim 25 , wherein the digital vault is stored on a remote server.

35. The method of claim 34 , further comprising authenticating the user to the remote server.

36. The method of claim 34 , further comprising authenticating the user to the remote server by sending a value derived from the string, V K , to the server, and comparing a value derived from the string, V K , to a set of values stored at the server; to find a match; and, if a match is found, sending the user at least a portion of the vault.

37. The method of claim 25 , wherein identifying subsets S K of the m questions comprises obtaining identifying information from the digital vault.

38. A method of gaining access to secret information contained within a digital vault on a storage medium, said method comprising:

obtaining, via an input device, from a user an answer to each of m different questions to generate a set of m answers, wherein m is an integer greater than or equal to 3;

identifying, via a microprocessor, subsets S K of the m questions for which acceptable answers provided by an entity will enable that entity to gain access to the secret information in the digital vault, wherein each subset S K includes a set of n K questions, wherein K is an integer identifying the subset and each n K is an integer that is less than m, wherein at least one subset S K has at least two elements;

selecting, via the microprocessor, a first subset from among the subsets S K of questions and for the selected subset:

(a) generating, via the microprocessor, a string V K from the obtained answers for that subset of questions S K ;

(b) using a value, via the microprocessor, derived from the string, V K , to attempt to access the secret information; and

(c) verifying, via the microprocessor, whether the attempt was successful; and unless the attempt was successful, repeating (a) through (c) for a next selected subset among the subsets S K until all subsets S K have been selected; and

if the attempt is successful, giving the user access to the secret information in the digital vault on the storage medium;

wherein the string V K is a concatenation consisting of the following elements in this listed order:

K;

immediately followed by a delimiter;

immediately followed by a salt value;

immediately followed by the delimiter;

immediately followed by a pepper value;

immediately followed by the delimiter; and

immediately followed by, for each answer in V K :

a length of that answer;

immediately followed by the delimiter;

immediately followed by that answer; and

immediately followed by:

if that answer is a last answer in V K , no further characters;

otherwise, the delimiter;

wherein the salt value is a value particular to the user that is stored and retrieved without using encryption or decryption processes;

wherein the pepper value is a randomly generated value.

39. A method of registering authentication material on a storage medium, said method comprising:

obtaining, via an input device, from a user an answer to each of m different questions to generate a set of m answers, wherein m is an integer greater than or equal to 3;

identifying, via a microprocessor, subsets S K of the m questions for which acceptable answers later provided by an entity will enable that entity to authenticate, wherein each subset S K includes a set of n K questions, wherein K is an integer identifying the subset and each n K is an integer that is less than m, wherein at least one subset S K has at least two elements; and

for each subset of questions, S K :

(a) generating, via the microprocessor, a string T K from the obtained answers for that subset of questions S K ;

(b) mathematically transforming, via the microprocessor, the string, T K , to generate a value G K ;

(c) storing in the digital vault on the storage medium G K , wherein the authentication material comprises all stored G K ;

wherein the string T K is a concatenation consisting of the following elements in this listed order:

K;

immediately followed by a delimiter;

immediately followed by a salt value;

immediately followed by the delimiter;

immediately followed by a pepper value;

immediately followed by the delimiter; and

immediately followed by, for each answer in S K :

a length of that answer;

immediately followed by the delimiter;

immediately followed by that answer; and

immediately followed by:

if that answer is a last answer in S K , no further characters;

otherwise, the delimiter;

wherein the salt value is a value particular to the user that is stored and retrieved without using encryption or decryption processes;

wherein the pepper value is a randomly generated value.

40. A method of authenticating a user, said method comprising:

obtaining, via an input device, from a user an answer to each of m different questions to generate a set of m answers, wherein m is an integer greater than or equal to 3;

identifying, via a microprocessor, subsets S K of the m questions for which acceptable answers later provided by an entity will enable that entity to authenticate, wherein each subset S K includes a set of n K questions, wherein K is an integer identifying the subset and each n K is an integer that is less than m, wherein at least one subset S K has at least two elements; and

for each subset of questions, S K :

(a) generating, via the microprocessor, a string V K from the obtained answers for that subset of questions S K ;

(b) comparing, via the microprocessor, a value derived from the string V K to a set of stored values to find a match; and

(c) if a match is found authenticating the user, repeating (a) through (c) for a next selected subset among the subsets S K until all subsets S K have been selected or until a match is found;

wherein the string V K is a concatenation consisting of the following elements in this listed order:

K;

immediately followed by a delimiter;

immediately followed by a salt value;

immediately followed by the delimiter;

immediately followed by a pepper value;

immediately followed by the delimiter; and

immediately followed by, for each answer in V K :

a length of that answer;

immediately followed by the delimiter;

immediately followed by that answer; and

immediately followed by:

if that answer is a last answer in V K , no further characters;

otherwise, the delimiter;

wherein the salt value is a value particular to the user that is stored and retrieved without using encryption or decryption processes;

wherein the pepper value is a randomly generated value.

41. The method of claim 1 , wherein the pepper value has a number of bits that is inversely proportional to m allowing the computational effort of generating the string T K to be substantially independent of m.

42. The method of claim 25 , wherein the pepper value has a number of bits that is inversely proportional to m allowing the computational effort of generating the string V K to be substantially independent of m.

43. The method of claim 38 , wherein the pepper value has a number of bits that is inversely proportional to m allowing the computational effort of generating the string V K to be substantially independent of m.

44. The method of claim 39 , wherein the pepper value has a number of bits that is inversely proportional to m allowing the computational effort of generating the string T K to be substantially independent of m.

45. The method of claim 40 , wherein the pepper value has a number of bits that is inversely proportional to m allowing the computational effort of generating the string V K to be substantially independent of m.

46. The method of claim 12 :

wherein mathematically combining the value derived from the string, T K , with the secret information to generate the result, F K , includes using a reversible function allowing calculation of the string, T K , from the result, F K ; and

wherein mathematically transforming the string, T K , to generate the commitment value, G k includes using an irreversible function preventing calculation of the string, T K , from the commitment value, G K .

Assignments (20)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
TERMINATION AND RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS RECORDED AT REEL 053666, FRAME 0767 Recorded Apr 29, 2021
From: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
To: RSA SECURITY LLC
Reel/Frame 056095/0574 →
TERMINATION AND RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT REEL 054155, FRAME 0815 Recorded Apr 29, 2021
From: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
To: RSA SECURITY LLC
Reel/Frame 056104/0841 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Apr 29, 2021
From: RSA SECURITY LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 056098/0534 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Apr 29, 2021
From: RSA SECURITY LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 056096/0525 →
PARTIAL RELEASE OF SECURITY INTEREST Recorded Nov 24, 2020
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXRESS, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 054511/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 7, 2020
From: EMC IP HOLDING COMPANY LLC
To: RSA SECURITY LLC
Reel/Frame 053717/0020 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (049452/0223) Recorded Sep 3, 2020
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS AGENT
To: DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 054250/0372 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Sep 3, 2020
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS AGENT
To: DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 054191/0287 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Sep 3, 2020
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS AGENT
To: ASAP SOFTWARE EXPRESS; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 054163/0416 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Sep 1, 2020
From: RSA SECURITY LLC
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 054155/0815 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Sep 1, 2020
From: RSA SECURITY LLC
To: JEFFERIES FINANCE LLC
Reel/Frame 053666/0767 →
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 →
SECURITY AGREEMENT Recorded Mar 21, 2019
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 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
MERGER Recorded Jan 27, 2010
From: RSA SECURITY INC.
To: RSA SECURITY LLC
Reel/Frame 023852/0500 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2010
From: RSA SECURITY LLC
To: RSA SECURITY HOLDING, INC.
Reel/Frame 023824/0721 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2010
From: RSA SECURITY HOLDING, INC.
To: EMC CORPORATION
Reel/Frame 023825/0011 →