IP Library Granted Patent US 9,251,325
Granted Patent B2
US 9,251,325 · App. 14/083,852 · Granted Feb 2, 2016

Verifying passwords on a mobile device

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,251,325
App. No.
14/083,852
Granted
Feb 2, 2016
Kind
B2
Abstract

Methods, systems, and computer programs for verifying a password are disclosed. For example, the password can be verified on a mobile device to control user access to the mobile device. In some implementations, a mobile device includes a user interface, a main processor, and a co-processor. The user interface receives a submitted password value from a user. The main processor calls the co-processor to provide a hash chain input value based on the submitted password value. The main processor evaluates a hash chain based on the hash chain input value provided by the co-processor. Evaluating the hash chain generates a submitted password verification value. The submitted password verification value is compared to a stored password verification value stored on the mobile device. Access to mobile device functionality may be permitted or denied based on a result of the comparison.

Claims (56)

1. A mobile device comprising:

a user interface operable to receive a submitted password value based on a user interaction;

a co-processor operable to evaluate a co-processor function;

a main processor communicably coupled to the co-processor, wherein both the main processor and the co-processor are located in the mobile device; and

a computer-readable medium storing instructions that are executable by the main processor to perform operations comprising:

calling the co-processor of the mobile device to provide a hash chain input value based on the submitted password value;

evaluating, at the mobile device, a hash chain based on the hash chain input value provided by the co-processor, wherein evaluating the hash chain comprises generating a submitted password verification value that is different than the submitted password value; and

comparing, at the mobile device, the submitted password verification value to a stored password verification value stored on the mobile device, wherein the stored password verification value was stored on the mobile device prior to receiving the submitted password value.

2. The mobile device of claim 1 , wherein the co-processor comprises a first co-processor operable to evaluate a first co-processor function, the hash chain input value comprises a first hash chain input value, the mobile device further comprises a second co-processor operable to evaluate a second co-processor function, and the main processor is communicably coupled to the second processor, wherein the operations further include:

calling the second co-processor to provide a second hash chain input value based on the submitted password value,

wherein evaluating the hash chain by the main processor comprises evaluating the hash chain based on the first hash chain input value and the second hash chain input value.

3. The mobile device of claim 2 , wherein the first co-processor comprises a multi-media co-processor and the second co-processor comprises a cryptographic co-processor.

4. The mobile device of claim 2 , further comprising a communication bus that provides communication between the main processor and the first co-processor, and between the main processor and the second co-processor.

5. The mobile device of claim 1 , wherein evaluating the hash chain includes:

evaluating a first iteration of a cryptographic hashing function H based on the hash chain input value provided by the co-processor; and

evaluating subsequent iterations of the cryptographic hashing function H based on an output of one or more prior iterations of the cryptographic hashing function H.

6. The mobile device of claim 1 , wherein calling the co-processor comprises calling the co-processor to provide the hash chain input value based on the submitted password value, a salt value, and a counter value.

7. A method for verifying a password on a mobile device having a main processor and a co-processor, the method comprising:

receiving a submitted password value on a mobile device that includes a main processor and a co-processor;

calling the co-processor of the mobile device to provide a hash chain input value based on the submitted password value;

evaluating, at the mobile device, a hash chain by the main processor based on the hash chain input value provided by the co-processor, wherein evaluating the hash chain comprises generating a submitted password verification value that is different than the submitted password value; and

comparing, at the mobile device, the submitted password verification value to a stored password verification value stored on the mobile device, wherein the stored password verification value was stored on the mobile device prior to receiving the submitted password value.

8. The method of claim 7 , wherein evaluating the hash chain by the main processor includes:

evaluating a first iteration of a cryptographic hashing function H based on the hash chain input value provided by the co-processor; and

evaluating subsequent iterations of the cryptographic hashing function H based on an output of one or more prior iterations of the cryptographic hashing function H.

9. The method of claim 8 , wherein each iteration of the cryptographic hashing function H is evaluated based additionally on a salt value and a counter value for the iteration.

10. The method of claim 8 , wherein the hash chain input value comprises a first hash chain input value, the method further comprising calling the co-processor to provide subsequent hash chain input values, wherein a subset of the subsequent iterations of the cryptographic hashing function H are evaluated based the subsequent hash chain input values provided by the co-processor.

11. The method of claim 10 , further comprising:

accessing a vector stored on the mobile device; and

identifying the subset of the subsequent iterations based on the vector.

12. The method of claim 10 , wherein the subset are selected based on relative computing times for evaluating a co-processor function at the co-processor and evaluating the cryptographic hashing function at a main processor.

13. The method of claim 10 , wherein calling the co-processor to provide the first hash chain input value comprises:

providing a first co-processor input value from the main processor to the co-processor, wherein the first co-processor input value is based on the submitted password value; and

receiving the first hash chain input value at the main processor in response to providing the first co-processor input value to the co-processor.

14. The method of claim 13 , wherein calling the co-processor to provide the subsequent hash chain input values comprises:

providing subsequent co-processor input values from the main processor to the co-processor, wherein each of the subsequent co-processor input values is based on an output of one or more iterations of the cryptographic hashing function H; and

receiving the subsequent hash chain input value at the main processor in response to providing the subsequent co-processor input values to the co-processor.

15. The method of claim 7 , wherein the co-processor comprises a first co-processor of the mobile device and the hash chain input value comprises a first hash chain input value, the method further comprising:

calling a second co-processor of the mobile device to provide a second hash chain input value based on the submitted password value,

wherein evaluating the hash chain by the main processor comprises evaluating the hash chain based on the first hash chain input value and the second hash chain input value.

16. The method of claim 15 , wherein the first co-processor provides the first hash chain input value by evaluating a discrete cosine transform function, and the second co-processor provides the second hash chain input value by evaluating at least one of an AES encryption function or AES decryption function.

17. The method of claim 7 , further comprising granting access to functionality of the mobile device based on identifying that the submitted password verification value matches the stored password verification value.

18. The method of claim 7 , further comprising denying access to functionality of the mobile device based on identifying that the submitted password verification value does not match the stored password verification value.

19. A non-transitory computer-readable medium storing instructions that are operable when executed by data processing apparatus to perform operations for verifying a submitted password, the operations comprising:

receiving a submitted password value on a mobile device that includes a main processor and a co-processor;

calling the co-processor of the mobile device to provide a hash chain input value based on the submitted password value;

evaluating, at the mobile device, a hash chain by the main processor based on the hash chain input value provided by the co-processor, wherein evaluating the hash chain comprises generating a submitted password verification value that is different than the submitted password value; and

comparing, at the mobile device, the submitted password verification value to a stored password verification value stored on the mobile device, wherein the stored password verification value was stored on the mobile device prior to receiving the submitted password value.

20. The computer-readable medium of claim 19 , wherein the co-processor comprises a first co-processor of the mobile device and the hash chain input value comprises a first hash chain input value, the operations further comprising:

calling a second co-processor of the mobile device to provide a second hash chain input value based on the submitted password value,

wherein evaluating the hash chain by the main processor comprises evaluating the hash chain based on the first hash chain input value and the second hash chain input value.

21. The computer-readable medium of claim 19 , wherein evaluating the hash chain by the main processor includes:

evaluating a first iteration of a cryptographic hashing function H based on the hash chain input value provided by the co-processor; and

evaluating subsequent iterations of the cryptographic hashing function H based on an output of one or more prior iterations of the cryptographic hashing function H.

22. The computer-readable medium of claim 19 , wherein evaluating the hash chain comprises evaluating iterations of a cryptographic hashing function H, wherein a subset of the iterations utilize hash chain input values provided by the co-processor.

23. The computer-readable medium of claim 22 , wherein the subset of iterations is designated based on particular data processing hardware components of the mobile device.

Assignments (11)
CORRECTIVE ASSIGNMENT TO CORRECT THE ADDED PATENT NUMBER TO REMOVE PATENT NO. 8,873,407 AT PREVIOUSLY RECORDED ON REEL 64066 FRAME 1. ASSIGNOR(S) HEREBY CONFIRMS THE NUNC PRO TUNC ASSIGNMENT EFFECTIVE DATE MARCH 20, 2023. Recorded Feb 2, 2026
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 074921/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT 12817157 APPLICATION NUMBER PREVIOUSLY RECORDED AT REEL: 064015 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 5, 2023
From: OT PATENT ESCROW, LLC
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064807/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE COVER SHEET AT PAGE 50 TO REMOVE 12817157 PREVIOUSLY RECORDED ON REEL 063471 FRAME 0474. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 5, 2023
From: BLACKBERRY LIMITED
To: OT PATENT ESCROW, LLC
Reel/Frame 064806/0669 →
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064066/0001 →
NUNC PRO TUNC ASSIGNMENT Recorded Jun 16, 2023
From: OT PATENT ESCROW, LLC
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064015/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2023
From: BLACKBERRY LIMITED
To: OT PATENT ESCROW, LLC
Reel/Frame 063471/0474 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 2, 2019
From: CERTICOM CORP.
To: BLACKBERRY LIMITED
Reel/Frame 050610/0937 →
EMPLOYMENT AGREEMENT Recorded Dec 8, 2015
From: LAMB, BRIAN
To: RESEARCH IN MOTION LIMITED
Reel/Frame 037244/0240 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2015
From: WOOD, ROBERT HENDERSON
To: RESEARCH IN MOTION LIMITED
Reel/Frame 037238/0843 →
CHANGE OF NAME Recorded Nov 3, 2015
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 037033/0643 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2014
From: LAMBERT, ROBERT JOHN
To: CERTICOM CORP.
Reel/Frame 033448/0833 →