IP Library › Granted Patent US 8,175,266
Granted Patent B2
US 8,175,266 · App. 12/116,819 · Granted May 8, 2012

System and method of performing authentication

Assignee: Apple Inc.
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,175,266
App. No.
12/116,819
Granted
May 8, 2012
Kind
B2
Abstract

Disclosed herein are systems, method and computer readable medium for providing authentication of an entity B by an entity A. In the method, entity A selects a value p, a range [a, b] and a granularity epsilon. Entity A sends p, [a, b], and epsilon to entity B. Entity B initializes a value y B =0 and for each x in {a, a+epsilon, . . . , b−epsilon, b} and computes z=E(x)*x. The function E(x) is an encryption scheme and the multiplication is carried out mod p. Entity B updates y B =y B +z. After processing each x, entity B sends y B to entity A. Entity A performs the same calculation and generates a y A value and compares y A with y B . If y B =y A , Entity A authenticate entity B. In one aspect, a light HMAC scheme splits an input x into n blocks with key expansion.

Claims (41)

1. A method comprising:

communicating, from an authenticating device to a client device, a mod value p and a range [α,β], wherein the range [α,β] comprises a series of values with a start value of α and an ending value of β, each value in the range having a size defined by a granularity ε, wherein α is greater than 0, wherein β is greater than 0, and wherein the granularity ε is greater than 1;

receiving a check value y B , where y B is defined by steps comprising:

initializing y B =0;

for each value in the range [α,β], beginning with a current value x B equal to α and increasing by ε:

calculating an intermediate check value z B , where z B for each x B in the range [α,β] equals the current value x B multiplied by an encrypted current value x B , shown as: z B =E(x B )*x B , wherein the encrypted current value x B is encrypted according to at least one of AES, DES and HMAC;

performing a mod function on z B using the mod value p, shown as: z B =z B mod p; and

updating the check value y B by adding the intermediate check value to a previous value of the check value, shown as: y B =y B +z B ;

comparing the check value y B to an authentication value y A ; and

upon the authenticating device determining that y B =y A , accepting the client device as authentic.

2. The method of claim 1 , wherein y A is defined by steps comprising:

initializing y A =0; and

for each value in the range [α,β], beginning with the current value x A equal to α and increasing by ε:

calculating an intermediate authentication value z A , where z A for each x A in the range [α,β] equals the current value x A multiplied by an encrypted current value x A , shown as: z A =E(x A )*x A ;

performing a mod function on z A using mod value p, shown as: z A =z A mod p; and

updating the authentication value y A by adding the intermediate authentication value to a previous value of the check value, shown as: y A =y A +z A .

3. The method of claim 1 , wherein p is a power of 2.

4. A method comprising:

receiving, at a client device, a mod value p and a range [α,β] from an authenticating device, wherein the range [α,β] comprises a series of values with a start value of α and an ending value of β, and each value in the range having a size defined by a granularity ε, wherein α is greater than 0, wherein β is greater than 0, and wherein the granularity ε is greater than 1;

generating a check value y B , where y B is defined by steps comprising:

initializing y B =0;

for each value in the range [α,β], beginning with a current value x B equal to α and increasing by ε:

calculating an intermediate check value z B , where z B for each x B in the range [α,β] equals the current value x B multiplied by an encrypted current value x B , shown as: z B =E(x B )*x B , wherein the encrypted current value x B is encrypted according to at least one of AES, DES and HMAC;

performing a mod function on z B using the mod value p, shown as: z B =z B mod p; and

updating the check value y B by adding the intermediate check value to a previous value of the check value, shown as: y B =y B +z B ; and

transmitting the check value y B , in response to receiving the mod value p and the range [α,β], to the authenticating device that authenticates the client device based on the check value y B .

5. The method of claim 4 , wherein p is a power of 2.

6. A method comprising:

communicating, from an authenticating device to a client device, a mod value p, a set of numbers {a i }, and a range [α,β], wherein the range [α,β] comprises a series of values with a start value of α and an ending value of β, each value in the range having a size defined by a granularity ε, and the set of numbers {a i } comprises individual numbers equal to or greater than the range [α,β] in terms of quantity, wherein α is greater than 0, wherein β is greater than 0, and wherein the granularity ε is greater than 1;

receiving, from the client device, a check value y B , where y B is generated by steps comprising:

initializing y B to 0;

for each value in the range [α,β], beginning with a current value x B equal to α and increasing by ε:

calculating an intermediate check value z B , where z B for each x B in the range [α,β] equals the current value x B multiplied by an encrypted current value x B and a respective one of the set of numbers {a i }, shown as: z B =E(x B )*x B *a x , where a x equals a number in the set {a i } corresponding to the current value x B , wherein the encrypted current value x B is encrypted according to at least one of AES, DES and HMAC;

performing a mod function on z B using the mod value p, shown as: z B =z B mod p; and

updating the check value y B by adding the intermediate check value to a previous value of the check value, shown as: y B =y B +z B ; and

upon the authenticating device determining that y B is equal to an authentication value y A , accepting the client device as authentic.

7. The method of claim 6 , wherein the set of numbers {a i } corresponds to coefficients of a polynomial.

8. The method of claim 6 , wherein p is a power of 2.

9. The method of claim 1 , wherein the series of values corresponds to coefficients of a polynomial.

10. The method of claim 4 , wherein the series of values corresponds to coefficients of a polynomial.

11. The method of claim 4 , wherein the granularity ε is generated locally at the client device.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE DOC DATE PREVIOUSLY RECORDED ON REEL 020915 FRAME 0198 Recorded Sep 10, 2008
From: CIET, MATHIEU; FARRUGIA, AUGUSTIN; RIENDEAU, JEAN-FRANCOIS; SULLIVAN, NICHOLAS T.
To: APPLE INC.
Reel/Frame 021539/0078 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2008
From: CIET, MATHIEU; FARRUGIA, AUGUSTIN; RIENDEAU, JEAN-FRANCOIS; SULLIVAN, NICHOLAS T.
To: APPLE INC.
Reel/Frame 020915/0198 →
Continuity (1)
Related Publication 20090279696A1 · Nov 12, 2009