IP Library Granted Patent US 8,238,552
Granted Patent B2
US 8,238,552 · App. 12/371,370 · Granted Aug 7, 2012

Password key derivation system and method

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,238,552
App. No.
12/371,370
Filed
Feb 13, 2009
Granted
Aug 7, 2012
Kind
B2
Art Unit
2434
USPC
380/44
Abstract

A password-based key derivation function includes a sub-function that gets executed multiple times based on an iteration count. A key derivation module computes the iteration count dynamically with each entered password. The iteration count is computed as a function of the password strength. Specifically, the weaker the password, the higher the iteration count; but the stronger the password, the smaller the interaction count. This helps strengthen weaker passwords without penalizing stronger passwords.

Claims (52)

1. In a computer system, a method for generating and utilizing cryptographic keys comprising:

receiving a password by a key generating system;

measuring by the key generating system strength of the received password and outputting a strength metric in response;

dynamically computing an iteration count I by the key generating system based on the output strength metric, wherein I≧0;

repeating by the key generating system a cryptographic function the computed I number of times;

generating a cryptographic key based on the repeated cryptographic function and the received password; and

transmitting the generated cryptographic key to a key utilizing system for use therewith.

2. The method of claim 1 , wherein the password contains alphanumeric characters.

3. The method of claim 1 , wherein the password contains numeric values.

4. The method of claim 1 , wherein the password is a secret code associated with a user of the key generating system.

5. The method of claim 1 , wherein the measuring of the strength of the received password includes measuring a length of the password, wherein the iteration count decreases as the length of the password increases.

6. The method of claim 1 , wherein the measuring of the strength of the received password includes determining whether the password is a word contained in a dictionary, wherein the iteration count for a particular password contained in the dictionary is higher than the iteration count for another password not contained in the dictionary.

7. The method of claim 1 , wherein the measuring of the strength of the received password includes:

compressing the password by the key generating system; and

measuring efficacy of the compression, wherein the iteration count decreases as the compression efficacy decreases.

8. The method of claim 1 , wherein the measuring of the strength of the received password includes:

determining by the key generating system the strength of each character in the received password;

aggregating by the key generating system the strength of each character; and

generating the strength metric based on the aggregate strength.

9. The method of claim 1 further comprising:

determining that the strength metric is outside a pre-determined strength boundary; and

selecting a pre-defined iteration count as the iteration count I responsive to the determination.

10. The method of claim 1 , wherein the cryptographic function is a sub-function of a key derivation function, wherein the cryptographic key is generated by the key derivation function.

11. The method of claim 1 further comprising:

establishing a secure communication between the key generating system and the key utilizing system based on the generated cryptographic key.

12. A key generating system comprising:

a processor; and

a memory operably coupled to the processor and storing program instructions therein, the processor being operable to execute the program instructions, the program instructions including:

receiving a password;

measuring strength of the received password and outputting a strength metric in response;

dynamically computing an iteration count I based on the output strength metric, wherein I≧0;

repeating a cryptographic function the computed I number of times;

generating a cryptographic key based on the repeated cryptographic function and the received password; and

transmitting the generated cryptographic key to a key utilizing system for use therewith.

13. The system of claim 12 , wherein the password contains alphanumeric characters.

14. The system of claim 12 , wherein the password contains numeric values.

15. The system of claim 12 , wherein the password is a secret code associated with a user of the key generating system.

16. The system of claim 12 , wherein the program instructions for measuring the strength of the received password includes program instructions for measuring a length of the password, wherein the iteration count decreases as the length of the password increases.

17. The system of claim 12 , wherein the program instructions for measuring the strength of the received password includes program instructions for determining whether the password is a word contained in a dictionary, wherein the iteration count for a particular password contained in the dictionary is higher than the iteration count for another password not contained in the dictionary.

18. The system of claim 12 , wherein the program instructions for measuring the strength of the received password includes program instructions for:

compressing the password by the key generating system; and

measuring efficacy of the compression, wherein the iteration count decreases as the compression efficacy decreases.

19. The system of claim 12 , wherein the program instructions for measuring the strength of the received password includes program instructions for:

determining by the key generating system the strength of each character in the received password;

aggregating by the key generating system the strength of each character; and

generating the strength metric based on the aggregate strength.

20. The system of claim 12 , wherein the program instructions further comprise:

determining that the strength metric is outside a pre-determined strength boundary; and

selecting a pre-defined iteration count as the iteration count I responsive to the determination.

21. The system of claim 12 , wherein the cryptographic function is a sub-function of a key derivation function, wherein the cryptographic key is generated by the key derivation function.

22. The system of claim 12 further comprising:

establishing a secure communication between the key generating system and the key utilizing system based on the generated cryptographic key.