IP Library Granted Patent US 8,156,336
Granted Patent B2
US 8,156,336 · App. 12/685,475 · Granted Apr 10, 2012

Device authentication

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,156,336
App. No.
12/685,475
Granted
Apr 10, 2012
Kind
B2
Abstract

Authentication of two devices in communication with a third device is achieved where the first and second devices each possess a shared secret value. The authentication includes communication of authentication values from the first device to the second device using the third device. Similarly, there is communication of values from the second device to the first device using the third device. The third device retains the communicated values. The values are calculated to permit the third device to authenticate the first and second devices without the third device receiving the shared secret value. The authentication may be used to establish a communications channel between the first and the second devices.

Claims (92)

1. A method for determining whether a first device and a second device both possess a value h, the method comprising:

receiving and storing a product R D from the first device, wherein R D is a product of a random value r D and a public key value P;

receiving and storing a product R B and a challenge value e D from the second device, wherein R B is a product of a random value r B and the public key value P;

transmitting the challenge value e D to the first device;

receiving and storing a value y D and a challenge value e B from the first device, wherein a first expression involving the value y D , the random value r D and the challenge value e D has a value equivalent to a product hP of the value h and the public key value P;

transmitting the challenge value e B to the second device;

receiving and storing a value y B from the second device, wherein a second expression involving the value y B , the challenge value e B and the random value r B has a value equivalent to the product hP; and

determining that the first device and the second device are both in possession of the value h when a condition y B P+e B R B =y D P+e D R D is satisfied.

2. The method of claim 1 , further comprising establishing a communications channel between the first device and the second device once having determined that the first device and the second device are both in possession of the value h.

3. The method of claim 2 , further comprising:

receiving a product R C from the second device, wherein R C is a product of a random value r c and the public key value P, and further wherein R C is constrained to have a different value than both the product R B and the product R D ;

obtaining a challenge value e C that is constrained to have a different value than both the challenge value e B and the challenge value e D , and communicating the challenge value e C to the second device;

receiving a value y C from the second device, wherein a third expression involving the value y C , the random value r C , and the challenge value e C has a value equivalent to the product hP; and

closing the communications channel when a condition y C P+e C R C =y D P+e D R D is satisfied.

4. The method of claim 2 , wherein the communications channel is a direct communications channel between the first device and the second device.

5. The method of claim 2 , wherein all communications over the communications channel are routed through a third device.

6. The method of claim 1 , wherein the public key value P generates a prime subgroup of the group E(F q ) of order p, wherein F q is a finite field of prime order q, wherein the random values r D and r B are between the number 1 and the number (p−1), and wherein the challenge values e D and e B are between the number 1 and the number (p−1).

7. The method of claim 1 , wherein the value h is derived from a secret value s, the method further comprising:

determining that the first device and the second device are both in possession of the secret value s when the condition y B P+e B R B =y D P+e D R D is satisfied.

8. The method of claim 7 , wherein the value h is a hash of the secret value s.

9. The method of claim 1 , further comprising:

transmitting the product R B to the first device and transmitting the value y B to the first device, thus enabling the first device to determine whether the second device is in possession of the value h by the first device checking whether a condition y B P+e B R B =hP is satisfied.

10. The method of claim 1 , further comprising:

transmitting the product R D to the second device and transmitting the value y D to the second device, thus enabling the second device to determine whether the first device is in possession of the value h by the second device checking whether a condition y D P+e D R D =hP is satisfied.

11. A method, comprising:

determining, at a third device, that a condition y B P+e B R B =y D P+e D R D is satisfied; and

establishing, by the third device, a communications channel between a first device and a second device upon determining that said condition is satisfied, wherein:

R D is defined at the first device as a product of a random value r D and P, wherein 1<r D <p−1, and further wherein R D is provided to the second device via the third device;

e B is defined at the first device, wherein 1<e B <p−1, and further wherein e B is provided to the second device via the third device;

R B is defined at the second device as a product of a random value r B and P, wherein 1<r B <p−1, and further wherein R B is provided to the first device via the third device;

e D is defined at the second device, wherein 1<e D <p−1, and further wherein e D is provided to the first device via the third device;

y D is defined at the first device by a first expression using r D and e D , the first expression having a value equivalent to a product hP, wherein h is a shared value stored at both the first device and the second device, and further wherein y D is provided to the second device via the third device; and

y B is defined at the second device by a second expression using e B and r B , the second expression having a value equivalent to the product hP,

wherein P is a point in an elliptic curve E(F q ), and p is defined as an order of a prime subgroup of E(F q ) generated by the point P in E(F q ).

12. The method of claim 11 , further comprising:

determining, at the third device, that a further condition y C P+e C R C =y D P +e D R D is satisfied; and

closing, by the third device, the communications channel between the second device and the third device upon determining that said further condition is satisfied, wherein:

R C is defined at the second device as a product of a random value r C and P wherein 1<r C <p−1, and further wherein R C is constrained to have a different value than both the product R B and the product R D ;

e C is defined at the third device such that 1<e C <p−1 and further wherein e C is communicated to the second device; and

y C is defined at the second device such that y C =h−e C r C mod p.

13. The method of claim 12 , wherein e C is a random value.

14. The method of claim 11 , wherein e D and e B are random values.

15. A program product comprising a computer readable non-transitory storage medium having executable program code stored in said medium, the executable program code being operative, when executed, to cause a communications device to:

receive and store a product R D from a first device, wherein R D is a product of a random value r D and a public key value P;

receive and store a product R B and a challenge value e D from a second device, wherein R B is a product of a random value r B and the public key value P;

transmit the challenge value e D to the first device;

receive and store a value y D and a challenge value e B from the first device, wherein a first expression involving the value y D , the random value r D and the challenge value e D has a value equivalent to a product hP of the value h and the public key value P;

transmit the challenge value e B to the second device;

receive and store the value y B from the second device, wherein a second expression involving the value y B , the challenge value e B and the random value r B has a value equivalent to the product hP; and

determine that the first device and the second device are both in possession of the value h when a condition y B P+e B R B =y D P+e D R D is satisfied.

16. The program product of claim 15 , the executable program code further being operative, when executed, to cause a communications device to establish a communications channel between the first device and the second device once having determined that the first device and the second device are both in possession of the value h.

17. The program product of claim 15 , further comprising:

receiving a product R C from the second device, wherein R C is a product of a random value r C and the public key value P, and further wherein R C is constrained to have a different value than both the product R B and the product R D ;

obtaining a challenge value e C that is constrained to have a different value than both the challenge value e B and the challenge value e D , and communicating the challenge value e C to the second device;

receiving a value y C from the second device, wherein a third expression involving the value y C , the random value r C , and the challenge value e C has a value equivalent to the product hP; and

closing the communications channel when a condition y C P+e C R C =y D P+e D R D is satisfied.

18. The program product of claim 15 , the executable further being operative, when executed, to cause a communications device to:

transmit the product R B to the first device and transmit the value y B to the first device, thus enabling the first device to determine whether the second device is in possession of the value h by the first device checking whether a condition y B P+e B R B =hP is satisfied.

19. The program product of claim 15 , the executable further being operative, when executed, to cause a communications device to:

transmit the product R D to the second device and transmit the value y D to the second device, thus enabling the second device to determine whether the first device is in possession of the value h by the second device checking whether a condition y D P+e D R D =hP is satisfied.

20. A communications device adapted to:

receive and store a product R D from a first device, wherein R D is a product of a random value r D and a public key value P;

receive and store a product R B and a challenge value e D from a second device, wherein R B is a product of a random value r B and the public key value P;

transmit the challenge value e D to the first device;

receive and store a value y D and a challenge value e B from the first device, wherein a first expression involving the value y D , the random value r D and the challenge value e D has a value equivalent to a product hP of the value h and the public key value P;

transmit the challenge value e B to the second device;

receive and store the value y B from the second device, wherein a second expression involving the value y B , the challenge value e B and the random value r B has a value equivalent to the product hP; and

determine that the first device and the second device are both in possession of the value h when a condition y B P+e B R B =y D P+e D R D is satisfied.

21. The communications device of claim 20 , wherein the communications device comprises a router.

22. The communications device of claim 20 , further adapted to establish a communications channel between the first device and the second device.

23. The communications device of claim 22 , further adapted to:

receive a product R C from the second device, wherein R C is a product of a random value r C and the public key value P, and further wherein R C is constrained to have a different value than both the product R B and the product R D ;

obtain a challenge value e C that is constrained to have a different value than both the challenge value e B and the challenge value e D , and communicating the challenge value e C to the second device;

receive a value y C from the second device, wherein a third expression involving the value y C , the random value r C , and the challenge value e C has a value equivalent to the product hP; and

close the communications channel when a condition y C P+e C R C =y D P+e D R D is satisfied.

24. The communications device of claim 20 , further adapted to:

transmit the product R B to the first device and transmit the value y B to the first device, thus enabling the first device to determine whether the second device is in possession of the value h by the first device checking whether a condition y B P+e B R B =hP is satisfied.

25. The communications device of claim 20 , further adapted to:

transmit the product R D to the second device and transmit the value y D to the second device, thus enabling the second device to determine whether the first device is in possession of the value h by the second device checking whether a condition y D P+e D R D =hP is satisfied.

26. A system comprising:

a first device;

a second device; and

a communications device adapted to:

receive and store a product R D from the first device, wherein R D is a product of a random value r D and a public key value P;

receive and store a product R B and a challenge value e D from the second device, wherein R B is a product of a random value r B and the public key value P;

transmit the challenge value e D to the first device;

receive and store a value y D and a challenge value e B from the first device, wherein a first expression involving the value y D , the random value r D and the challenge value e D has a value equivalent to a product hP of the value h and the public key value P;

transmit the challenge value e B to the second device;

receive and store the value y B from the second device, wherein a second expression involving the value y B , the challenge value e B and the random value r B has a value equivalent to the product hP; and

determine that the first device and the second device are both in possession of the value h when a condition y B P+e B R B =y D P+e D R D is satisfied.

27. The system of claim 26 , wherein the first device comprises a wireless handheld device.

28. The system of claim 26 , wherein the second device comprises an enterprise server.

Assignments (4)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064269/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
CHANGE OF NAME Recorded Nov 4, 2014
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 034161/0056 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 11, 2010
From: BROWN, MICHAEL KENNETH; LITTLE, HERBERT ANTHONY; DAVIS, DINAH LEA MARIE
To: RESEARCH IN MOTION LIMITED
Reel/Frame 023762/0309 →