IP Library Granted Patent US 7,219,368
Granted Patent B2
US 7,219,368 · App. 09/815,560 · Granted May 15, 2007

Robust visual passwords

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 7,219,368
App. No.
09/815,560
Granted
May 15, 2007
Kind
B2
Abstract

Enrollment and authentication of a user based on a sequence of discrete graphical choices is described. A graphical interface presents various images and memory cues that a user may associate with their original graphical choices. Enrollment may require the input to have a security parameter value that meets or exceeds a threshold. An acceptable sequence of graphical choices is converted to a sequence of values and mapped to a sequence of codewords. Both a hash of the sequence of codewords and a sequence of offsets are stored for use in authenticating the user. An offset is the difference between a value and its corresponding codeword. Authentication requires the user to enter another sequence of discrete graphical choices that is approximately the same as original. The offsets are summed with the corresponding values before mapping to codewords. Authentication requires the sequence of codewords, or a hash thereof, to match.

Claims (83)

1. A method for establishing a secret to authenticate a user comprising the steps of receiving a secret pattern on a graphical interface, wherein the secret pattern comprises a sequence of discrete graphical choices;

converting each discrete graphical choice in the sequence of discrete graphical choices into a value to produce a sequence of values, wherein the sequence of values corresponds to the sequence of discrete graphical choices;

for the sequence of values selecting codewords from a plurality of codewords to generate a sequence of codewords, the plurality of codewords defining an error-correcting code;

calculating an offset between each value in the sequence of values and the corresponding codeword in the sequence of codewords to generate a sequence of offsets; and

hashing the sequence of codewords to produce a hash of the sequence of codewords.

2. The method of claim 1 wherein a discrete graphical choice in the sequence of discrete graphical choices comprises a selected point on the graphical interface.

3. The method of claim 2 further comprising displaying an image on the graphical interface after receiving the selected point on the graphical interface, wherein each discrete graphical choice in the sequence of discrete graphical choices is associated with one of a plurality of images.

4. The method of claim 3 further comprising prompting a user by displaying one of the plurality of images on the graphical interface; and receiving a match pattern on the graphical interface for comparison with the secret pattern, wherein the match pattern comprises a sequence of match points.

5. The method of claim 4 further comprising, during or after receiving the match pattern on the graphical interface, displaying the selected point associated with the image on the graphical interface.

6. The method of claim 5 further comprising, during or after receiving the match pattern on the graphical interface, displaying a line from a match point to the selected point associated with the image on the graphical interface.

7. The method of claim 2 further comprising providing at least one memory cue by presenting the at least one memory cue in response to a point on the image on the graphical interface being highlighted.

8. The method of claim 7 further comprising associating a first icon from a plurality of icons with a first point on the image on the graphical interface by displaying the first icon in response to the first point being highlighted; and associating a second icon from the plurality of icons with a second point on the image on the graphical interface by displaying the second icon in response to the second point being highlighted.

9. The method of claim 2 further comprising highlighting, for each discrete graphical choice in the sequence of discrete graphical choices, a plurality of points on the graphical interface as alternative graphical choices.

10. The method of claim 1 further comprising storing the sequence of offsets for use in authenticating a user.

11. The method of claim 1 further comprising storing the hash of the sequence of codewords for use in authenticating a user.

12. The method of claim 1 wherein selecting codewords from the plurality of codewords involves for each value in the sequence of values selecting a corresponding codeword from the plurality of codewords to generate the sequence of codewords.

13. A method for authenticating a user comprising the steps of

receiving an input pattern on a graphical interface, wherein the input pattern comprises a sequence of discrete graphical choices;

converting each discrete graphical choice in the sequence of discrete graphical choices into an input value to produce a sequence of input values, wherein the sequence of input values corresponds to the sequence of discrete graphical choices;

retrieving a sequence of offsets;

summing each input value from the sequence of input values with the corresponding offset from the sequence of offsets to generate a sequence of intermediate values;

for the sequence of intermediate values selecting codewords from a plurality of codewords to generate a sequence of codewords, the plurality of codewords defining an error-correcting code;

hashing the sequence of codewords to produce a hash of the sequence of codewords; and

authenticating a user if the hash matches a stored hash.

14. The method of claim 13 further comprising, prior to authenticating, retrieving a stored hash.

15. The method of claim 13 further comprising, prior to authenticating, transmitting the hash to an authentication device.

16. The method of claim 13 wherein each input value in the sequence of input values is a binary value of fixed length.

17. The method of claim 13 wherein a discrete graphical choice in the sequence of discrete graphical choices comprises a selected region on the graphical interface.

18. The method of claim 13 wherein a discrete graphical choice in the sequence of discrete graphical choices comprises a selected point on the graphical interface.

19. The method of claim 18 further comprising displaying an image on the graphical interface after receiving the selected point on the graphical interface, wherein each discrete graphical choice in the sequence of discrete graphical choices is associated with one of a plurality of images.

20. The method of claim 18 further comprising associating an icon from a plurality of icons with a point on the graphical interface by displaying the icon when the point is highlighted.

21. The method of claim 13 wherein the graphical interface displays a fractal image.

22. The method of claim 13 wherein a discrete graphical choice in the sequence of discrete graphical choices comprises a selected icon from a plurality of icons on the graphical interface.

23. The method of claim 22 wherein the icon on the graphical interface represents a face.

24. The method of claim 13 further comprising allowing access to a resource in response to authenticating the user.

25. The method of claim 24 wherein allowing access to the resource comprises allowing access to at least one of a hardware device, a computer system, a portable computer, a software application, a database, and a physical location.

26. The method of claim 13 wherein selecting codewords form the plurality of codewords involves for each value in the sequence of intermediate values selecting a corresponding codeword from the plurality of codewords to generate the sequence of codewords.

27. An apparatus for establishing a secret to authenticate a user, the apparatus comprising:

a graphical interface capable of receiving graphical input, the graphical interface receiving a secret pattern as graphical input, the secret pattern comprising a sequence of discrete graphical choices;

a converter in signal communication with the graphical interface, the converter converting each discrete graphical choice in the sequence of discrete graphical choices into a value to produce a sequence of values, wherein the sequence of values corresponds to the sequence of discrete graphical choices;

a codeword generator in signal communication with the converter, the codeword generator producing a sequence of codewords by applying a decoding function of an error correcting code to the sequence of values;

an offset calculator in signal communication with the codeword generator, the offset calculator calculating an offset between each value in the sequence of values and the corresponding codeword in the sequence of codewords to generate a sequence of offsets; and

a hasher in signal communication with the codeword generator, the hasher applying a hash function to the sequence of codewords to produce a hash of the sequence of codewords.

28. The apparatus of claim 27 wherein a discrete graphical choice in the sequence of discrete graphical choices comprises a selected point on the graphical interface.

29. The apparatus of claim 28 further comprising a point generator in signal communication with the graphical interface, the point generator highlighting a plurality of points on the graphical interface as alternative graphical choices for each discrete graphical choice in the sequence of discrete graphical choices.

30. The apparatus of claim 29 further comprising a memory element in signal communication with the graphical interface, the memory element containing a plurality of images and a sequence of images, wherein receiving a discrete graphical choice in the sequence of discrete graphical choices triggers the graphical interface to display the next image in the sequence of images from the plurality of images contained in the memory element.

31. The apparatus of claim 30 further comprising:

a training logic element in signal communication with the graphical interface, the training logic element prompting a user to enter a match pattern upon receiving the secret pattern by causing the graphical interface to display the first image in the sequence of images, wherein the match pattern is a sequence of match points; and

a comparator in signal communication with the graphical interface, the comparator comparing the match pattern to the secret pattern.

32. The apparatus of claim 31 wherein the training logic element, during or after receiving a match point in the sequence of match points on the graphical interface, causes the graphical interface to highlight the selected point associated with the image on the graphical interface.

33. The apparatus of claim 31 wherein the training logic element, during or after receiving a match point in the sequence of match points on the graphical interface, causes the graphical interface to display a line from the match point to the selected point associated with the image on the graphical interface.

34. The apparatus of claim 27 further comprising a memory element in signal communication with the offset calculator, the memory element storing the sequence of offsets from the offset calculator for use in authenticating a user.

35. The apparatus of claim 27 wherein the memory element is in signal communication with the hasher, the memory element storing the hash of the sequence of codewords from the hasher for use in authenticating a user.

36. The apparatus of claim 27 wherein the codeword generator is adapted to produce the sequence of codewords by applying the decoding function to each value in the sequence of values.

37. An apparatus for authenticating a user, the apparatus comprising:

a graphical interface capable of receiving graphical input, the graphical interface receiving an input pattern as graphical input, the input pattern comprising a sequence of discrete graphical choices;

a converter in signal communication with the graphical interface, the converter converting each discrete graphical choice in the sequence of discrete graphical choices into an input value to produce a sequence of input values, wherein the sequence of input values corresponds to the sequence of discrete graphical choices;

a memory element in signal communication with a summer, the memory element containing a sequence of offsets;

the summer in signal communication with the converter and the memory element, the summer summing each input value from the sequence of input values with the corresponding offset from the sequence of offsets to generate a sequence of intermediate values;

a codeword generator in signal communication with the summer, the codeword generator producing a sequence of codewords by applying a decoding function of an error correcting code to the sequence of intermediate values; and

a hasher in signal communication with the codeword generator, the hasher applying a hash function to the sequence of codewords to produce a hash of the sequence of codewords for use in authenticating a user.

38. The apparatus of claim 37 further comprising a comparator in signal communication with the hasher, the comparator comparing the hash of the sequence of codewords to a stored hash and producing an authentication signal if the hash of the sequence of codewords matches the stored hash.

39. The apparatus of claim 38 wherein the authentication signal enables access to a resource.

40. The apparatus of claim 39 wherein the authentication signal enables access to at least one of a hardware device, a computer system, a portable computer, a software application, a database, and a physical location.

41. The apparatus of claim 37 further comprising a communication system in signal communication with the hasher, the communication system transmitting the hash of the sequence of codewords to an authentication device and receiving an authentication signal from the authentication device if the hash of the sequence of codewords matches the stored hash.

42. The apparatus of claim 37 wherein a discrete graphical choice in the sequence of discrete graphical choices comprises a selected region on the graphical interface.

43. The apparatus of claim 37 wherein a discrete graphical choice in the sequence of discrete graphical choices comprises a selected point on the graphical interface.

44. The apparatus of claim 37 further comprising a logic element in signal communication with the graphical interface, the logic element causing the graphical interface to display a new image in response to the graphical interface receiving a discrete graphical choice from the sequence of discrete graphical choices, wherein the sequence of discrete graphical choices corresponds to a sequence of images.

45. The apparatus of claim 37 further comprising a logic element in signal communication with the graphical interface, the logic element causing the graphical interface to display at least one memory cue in response to a point on the graphical interface being highlighted.

46. The apparatus of claim 45 wherein the logic element causes a first icon from a plurality of icons to be displayed on the graphical interface in response to a first point on the image on the graphical interface being highlighted; and wherein the logic element causes a second icon from the plurality of icons to be displayed on the graphical interface in response to a second point on the image on the graphical interface being highlighted.

47. The apparatus of claim 37 wherein a discrete graphical choice in the sequence of discrete graphical choices comprises a selected icon from a plurality of icons displayed on the graphical interface.

48. The apparatus of claim 37 wherein the codeword generator is adapted to produce the sequence of codewords by applying the decoding function to each intermediate value in the sequence of intermediate values.

49. A method for generating a cryptographic secret from a visual password, the method comprising the steps of:

receiving a secret pattern on a graphical interface, wherein the secret pattern comprises a sequence of discrete graphical choices;

converting each discrete graphical choice in the sequence of discrete graphical choices into a value to produce a sequence of values, wherein the sequence of values corresponds to the sequence of discrete graphical choices;

for the sequence of values, selecting codewords from a plurality of codewords to generate a sequence of codewords, the plurality of codewords defining an error-correcting code;

manipulating the sequence of codewords to produce a cryptographic secret; and

calculating an offset between each value in the sequence of values and the corresponding codeword in the sequence of codewords to generate a sequence of offsets for use in regenerating the secret.

50. The method of claim 49 wherein selecting comprises applying a decoding function of an error-correcting code to the sequence of values to generate a sequence of codewords.

51. The method of claim 49 wherein manipulating comprises applying a hash function to the sequence of codewords.

52. The method of claim 49 further comprising using the cryptographic secret as an encryption key.

53. The method of claim 49 further comprising using the cryptographic secret in a digital signature algorithm or an identification algorithm.

54. The method of claim 49 wherein selecting codewords from the plurality of codewords involves for each value in the sequence of values selecting a corresponding codeword from the plurality of codewords to generate the sequence of codewords.

Assignments (24)
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 56096/0525 Recorded Mar 5, 2026
From: JPMORGAN CHASE BANK, N.A.
To: RSA SECURITY LLC; RSA SECURITY USA LLC
Reel/Frame 075030/0744 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 56098/0534 Recorded Mar 5, 2026
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: RSA SECURITY LLC
Reel/Frame 075041/0175 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
TERMINATION AND RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS RECORDED AT REEL 053666, FRAME 0767 Recorded Apr 29, 2021
From: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
To: RSA SECURITY LLC
Reel/Frame 056095/0574 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Apr 29, 2021
From: RSA SECURITY LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 056098/0534 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Apr 29, 2021
From: RSA SECURITY LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 056096/0525 →
TERMINATION AND RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT REEL 054155, FRAME 0815 Recorded Apr 29, 2021
From: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
To: RSA SECURITY LLC
Reel/Frame 056104/0841 →
PARTIAL RELEASE OF SECURITY INTEREST Recorded Nov 24, 2020
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXRESS, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 054511/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 7, 2020
From: EMC IP HOLDING COMPANY LLC
To: RSA SECURITY LLC
Reel/Frame 053717/0020 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Sep 3, 2020
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS AGENT
To: ASAP SOFTWARE EXPRESS; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 054163/0416 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Sep 3, 2020
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS AGENT
To: DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 054191/0287 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (049452/0223) Recorded Sep 3, 2020
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS AGENT
To: DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 054250/0372 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Sep 1, 2020
From: RSA SECURITY LLC
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 054155/0815 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Sep 1, 2020
From: RSA SECURITY LLC
To: JEFFERIES FINANCE LLC
Reel/Frame 053666/0767 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2010
From: RSA SECURITY LLC
To: RSA SECURITY HOLDING, INC.
Reel/Frame 023975/0453 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2010
From: RSA SECURITY HOLDING, INC.
To: EMC CORPORATION
Reel/Frame 023975/0151 →
MERGER Recorded Jan 27, 2010
From: RSA SECURITY INC.
To: RSA SECURITY LLC
Reel/Frame 023852/0500 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2010
From: RSA SECURITY HOLDING, INC.
To: EMC CORPORATION
Reel/Frame 023825/0011 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2010
From: RSA SECURITY LLC
To: RSA SECURITY HOLDING, INC.
Reel/Frame 023824/0721 →