IP Library Granted Patent US 11,122,033
Granted Patent B2
US 11,122,033 · App. 15/847,869 · Granted Sep 14, 2021

Multi factor authentication

Inventors: Yi-Chun Chen (Taipei, TW); Wen-Ping Chi (New Taipei, TW); Chao Yuan Huang (Taipei, TW); Ting-Yi Wang (Taipei, TW)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
H04L63/083G06F21/40H04L9/0844H04L9/3228H04L9/3271H04L63/18G06F2221/2103H04L63/168H04L2463/082
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 11,122,033
App. No.
15/847,869
Granted
Sep 14, 2021
Kind
B2
Abstract

A method and system of authenticating a user are provided. A request for a resource is received by a server, from a user device. A predefined number is received from the user device. A first number and a second number are created. The first number is sent to the user device. A first discrete logarithm is determined based on a challenge code and the first number and sent to the user device. A first pass code is calculated via a second discrete logarithm based on the first discrete logarithm, the predefined number, and the first number. A second pass code based on the second discrete logarithm, is received from the user device. The first pass code is compared to the second pass code. Upon determining that the first pass code is identical to the second pass code, the user device is allowed access a resource associated with the computing device.

Claims (82)

1. A computing device comprising:

a processor;

a network interface coupled to the processor to enable communication over a network;

a storage device coupled to the processor;

a security agent software stored in the storage device, wherein an execution of the software by the processor configures the computing device to perform acts comprising:

receiving a request for a resource, from a user device;

receiving a predefined number (s) from the user device;

creating a first number (p);

sending the first number (p) to the user device;

creating a challenge code (c);

determining a first discrete logarithm having a base (g), based on the challenge code (c) and the first number (p);

sending the first discrete logarithm to the user device;

calculating a first pass code (R 1 ) via a second discrete logarithm based on the first discrete logarithm, the predefined number (s), and the first number (p);

receiving a second pass code (R 2 ) based on the second discrete logarithm, from the user device;

comparing the first pass code (R 1 ) to the second pass code (R 2 ); and

upon determining that the first pass code (R 1 ) is identical to the second pass code (R 2 ), allowing the user device to access the resource and generating a new challenge code (c), wherein:

the user device does not know the base (g) and the challenge code (c); and

the first pass code (R 1 ) is not transmitted over the network to the user device.

2. The computing device of claim 1 , wherein the predefined number (s) is an identification (ID) number of the user device.

3. The computing device of claim 1 , wherein the predefined number (s) is received over a Hypertext Transfer Protocol Secure (HTTPS) channel.

4. The computing device of claim 1 , wherein:

the first number (p) is a prime number;

the first number (p) is larger than the second number (g);

the base (g) is 2 or 5.

5. The computing device of claim 1 , wherein sending the first number (p) to the user device is via a public switched telephone network (PSTN) channel.

6. The computing device of claim 1 , wherein the receipt of the predefined number (s) by the computing device is over a channel that is different from that of sending the first number (p) to the user device.

7. The computing device of claim 1 , wherein the first discrete logarithm is based on (g c mod p).

8. The computing device of claim 7 , wherein the second discrete logarithm is based on ((g c mod p) s mod p).

9. The computing device of claim 1 , wherein execution of the security agent by the processor further configures the computing device to perform acts, comprising:

upon determining that the first pass code (R 1 ) is not identical to the second pass code (R 2 ), sending an alert to an account of a user associated with the requested resource.

10. The computing device of claim 1 , wherein execution of the security agent by the processor further configures the computing device to perform acts, comprising:

upon determining that the first pass code (R 1 ) is identical to the second pass code (R 2 ), changing the challenge code.

11. A non-transitory computer readable storage medium tangibly embodying a computer readable program code having computer readable instructions that, when executed, causes a computer device to carry out a method of authenticating a user, the method comprising:

receiving a request for a resource, from a user device;

receiving a predefined number (s) from the user device;

creating a first number (p);

sending the first number (p) to the user device;

creating a challenge code (c);

determining a first discrete logarithm having a base (g), based on the challenge code (c) and the first number (p);

sending the first discrete logarithm to the user device;

calculating a first pass code (R 1 ) via a second discrete logarithm based on the first discrete logarithm, the predefined number (s), and the first number (p);

receiving a second pass code (R 2 ) based on the second discrete logarithm, from the user device;

comparing the first pass code (R 1 ) to the second pass code (R 2 ); and

upon determining that the first pass code (R 1 ) is identical to the second pass code (R 2 ), allowing the user device to access the resource and generating a new challenge code (c), wherein:

the user device does not know the base (g) and the challenge code (c); and

the first pass code (R 1 ) is not transmitted over the network to the user device.

12. The non-transitory computer readable storage medium of claim 11 , wherein the predefined number (s) is an identification (ID) number of the user device.

13. The non-transitory computer readable storage medium of claim 11 , wherein the predefined number (s) is received over a Hypertext Transfer Protocol Secure (HTTPS) channel.

14. The non-transitory computer readable storage medium of claim 11 , wherein:

the first number (p) is a prime number; and

the first number (p) is larger than the base number (g).

15. The non-transitory computer readable storage medium of claim 11 , wherein sending the first number (p) to the user device is via a public switched telephone network (PSTN) channel.

16. The non-transitory computer readable storage medium of claim 11 , wherein the receipt of the predefined number (s) by the computing device is over a channel that is different from that of sending the first number (p) to the user device.

17. The non-transitory computer readable storage medium of claim 11 , wherein:

the first discrete logarithm is based on (g c mod p); and

the second discrete logarithm is based on ((g c mod p) s mod p).

18. The non-transitory computer readable storage medium of claim 11 , further comprising:

upon determining that the first pass code (R 1 ) is not identical to the second pass code (R 2 ), sending an alert to an account of a user associated with the requested resource.

19. The non-transitory computer readable storage medium of claim 11 , further comprising:

upon determining that the first pass code (R 1 ) is identical to the second pass code (R 2 ), changing the challenge code.

20. A computing device comprising:

a processor;

a network interface coupled to the processor to enable communication over a network;

a storage device coupled to the processor;

a security application stored in the storage device, wherein an execution of the software by the processor configures the computing device to perform acts comprising:

sending a request for a resource, from the computing device to a server;

sending a predefined number (s) to the server;

receiving a first number (p) from the server;

receiving a first discrete logarithm based on a challenge code (c) and the first number (p) and a second number (g), from the server, wherein the second number (g) and the challenge code (c) remains unknown to the computing device;

calculating a second pass code (R 2 ) based on a second discrete logarithm based on the first discrete logarithm, the predefined number (s), and the first number (p);

sending the second pass code (R 2 ) to the server for comparison with a first pass code (R 1 );

receiving access to the resource upon the second pass code (R 2 ) matching the first pass code (R 1 );

and generating a new challenge code (c).

21. The computing device of claim 20 , wherein the predefined number (s) is an identification (ID) number of the user device.

22. The computing device of claim 20 , wherein:

the predefined number (s) is sent over a Hypertext Transfer Protocol Secure (HTTPS) channel;

the first number (p) is a prime number; and

the first number (p) is larger than the second number (g).

23. The computing device of claim 20 , wherein sending the predefined number (s) by the computing device is over a channel that is different from that of receiving the first number (p) from the server.

24. The computing device of claim 20 , wherein:

the first discrete logarithm is based on (g c mod p); and

the second discrete logarithm is based on ((g c mod p) s mod p).

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2017
From: CHEN, YI-CHUN; CHI, WEN-PING; HUANG, CHAO YUAN; WANG, TING-YI
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044442/0158 →
Continuity (1)
Related Publication 20190190903A1 · Jun 20, 2019
Cited By (1)
US 12,457,211