IP Library Granted Patent US 9,450,953
Granted Patent B2
US 9,450,953 · App. 14/073,274 · Granted Sep 20, 2016

Blacklisting of frequently used gesture 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 9,450,953
App. No.
14/073,274
Granted
Sep 20, 2016
Kind
B2
Abstract

A method of maintaining a blacklist for gesture-based passwords is provided. A data store of vectors corresponding to gestures is maintained on a blacklist server. Upon receiving a new gesture based password, an electronic device converts the password to a vector and forwards that vector to the blacklist server. The blacklist server assigns the vector to one of a cluster of vectors each having low distance from one another. If the increase in the occurrences of the number of vectors in the cluster results in a blacklist threshold being exceeded, the cluster of vectors is inputted to the blacklist. A notification can be sent back to the electronic device if the forwarded vector is on the blacklist or is inputted to the blacklist.

Claims (460)

1. A method implemented on a server for blacklisting gesture passwords, the method comprising:

receiving a vector from an electronic device, the vector representing a gesture password, wherein the gesture password comprises a set of one or more strokes, each stroke comprising a set of one or more points, the vector being a similarity-preserving vector generated by encrypting the set of one or more strokes using a set of slowly varying functions;

associating the received vector with a cluster of vectors each representing the same or similar gesture password based on a low distance from the received vector to the vectors in the cluster of vectors;

determining whether the association of the received vector with the cluster of vectors causes a number of vectors in the cluster to exceed a threshold value for a number of incidences of the same or similar vectors representing the same or similar gesture password;

when the number of vectors in the cluster exceeds the threshold value,

updating a blacklist stored on the server to include the vectors within the cluster; and

sending to the electronic device a notification that the gesture password has been blacklisted.

2. The method of claim 1 , wherein the vector is a non-invertible representation of the gesture password.

3. The method of claim 1 , wherein associating the received vector comprises using a density-based clustering algorithm to determine to which of the plurality of clusters of vectors the received vector belongs.

4. The method of claim 3 , wherein the density-based clustering algorithm is DBSCAN.

5. The method of claim 4 , wherein a parameter £ of the DBSCAN algorithm is equal to 0.3, and a parameter A of the DBSCAN algorithm is equal to 3.

6. The method of claim 1 , further comprising:

receiving a plurality of vectors from an input interface;

arranging the plurality of vectors into a plurality of clusters, in which each vector in each cluster has a low distance from each other vector in the same cluster.

7. The method of claim 6 , wherein the arranging of the plurality of vectors into clusters comprises using a density-based clustering algorithm to place each of the plurality of vectors into one of the plurality of clusters.

8. The method of claim 7 , wherein the clustering algorithm is DBSCAN.

9. The method of claim 8 , wherein a parameter £ of the DBSCAN algorithm is equal to 0.3, and a parameter Λ of the DBSCAN algorithm is equal to 3.

10. The method of claim 1 , wherein encrypting the set of one or more strokes using a set of slowly varying functions comprises:

for each stroke in the set of one or more strokes,

generating a d×n matrix B having the following properties

B

=

(

k

11

k

1

n

k

d

1

k

d

n

)

i

=

1

d

,

j

=

1

n

,

b

(

i

)

=

1

wherein each row element i of the matrix B is computed using a slowly varying function f bi defined on the interval [0, d−1] in the range of [0, 1], b(i) is the i th column vector of the matrix B, d is the number of dimensions (d is an even number) of the respective stroke, and n is the point number of the respective stroke;

transforming the matrix B into a d/2×n matrix B T having the following properties

B

T

=

(

c

11

c

1

j

c

i

1

c

i

j

)

i

=

1

d

2

,

j

=

1

n

,

wherein each element in the matrix B T is presented as a complex number which can be expressed as follows

c

i

j

=

k

i

j

+

j

·

k

(

i

+

d

.2

)

j

,

i

=

1

d

2

,

j

=

1

n

;

multiplying each column of the matrix B T by a corresponding point of the complex representation of the respective stroke z to obtain the vector, denoted {tilde over (z)}, as follows

{tilde over (z)}=B T ·z

wherein

z

(

P

i

)

=

x

(

P

i

)

+

j

·

y

(

P

i

)

,

z

=

(

z

(

P

1

)

z

(

P

n

)

)

wherein P is a point of the respective stroke, P(i) is the i th point, and n is the point number of the respective stroke.

11. A method implemented on an electronic device for updating a blacklist stored on a server, the method comprising:

receiving a gesture password via an input interface on the electronic device, wherein the gesture password comprises a set of one or more strokes, each stroke comprising a set of one or more points;

generating a vector representing the set of one or more strokes of the gesture password, the vector being a similarity-preserving vector generated by encrypting the set of one or more strokes using a set of slowly varying functions;

transmitting the vector, without the gesture password from which the at least one vector is generated, from the electronic device to the server for updating a blacklist stored on the server to include the vector;

receiving an indication from the server that the gesture password has been blacklisted;

outputting a notification to a user interface to select a new password.

12. The method of claim 11 , wherein the at least one vector is a non-invertible representation of the gesture password.

13. The method of claim 11 , wherein encrypting the set of one or more strokes using a set of slowly varying functions comprises:

for each stroke in the set of one or more strokes,

generating a d×n matrix B having the following properties

B

=

(

k

11

k

1

n

k

d

1

k

d

n

)

i

=

1

d

,

j

=

1

n

,

b

(

i

)

=

1

wherein each row element i of the matrix B is computed using a slowly varying function f bi defined on the interval [0, d−1] in the range of [0, 1], b(i) is the i th column vector of the matrix B, d is the number of dimensions (d is an even number) of the respective stroke, and n is the point number of the respective stroke;

transforming the matrix B into a d/2×n matrix B T having the following properties

B

T

=

(

c

11

c

1

j

c

i

1

c

i

j

)

i

=

1

d

2

,

j

=

1

n

,

wherein each element in the matrix B T is presented as a complex number which can be expressed as follows

c

i

j

=

k

i

j

+

j

·

k

(

i

+

d

.2

)

j

,

i

=

1

d

2

,

j

=

1

n

;

multiplying each column of the matrix B T by a corresponding point of the complex representation of the respective stroke z to obtain the at least one vector, denoted {tilde over (z)}, as follows

{tilde over (z)}=B T ·z

wherein

z

(

P

i

)

=

x

(

P

i

)

+

j

·

y

(

P

i

)

,

z

=

(

z

(

P

1

)

z

(

P

n

)

)

wherein P is a point of the respective stroke, P(i) is the i th point, and n is the point number of the respective stroke.

14. A server, comprising:

a hardware processor:

a memory coupled to the hardware processor, the memory storing executable instructions that, when executed by the hardware processor, cause the electronic device to:

receive a vector from an electronic device, the vector representing a gesture password, wherein the gesture password comprises a set of one or more strokes, each stroke comprising a set of one or more points, the vector being a similarity-preserving vector generated by encrypting the set of one or more strokes using a set of slowly varying functions;

associate the received vector with a cluster of vectors each representing the same or similar gesture password based on a low distance from the received vector to the vectors in the cluster of vectors;

determine whether the association of the received vector with the cluster of vectors causes a number of vectors in the cluster to exceed a threshold value for a number of incidences of the same or similar vectors representing the same or similar gesture password;

when the number of vectors in the cluster exceeds the threshold value,

update a blacklist stored on the server to include the vectors within the cluster; and

send to the electronic device a notification that the gesture password has been blacklisted.

15. An electronic device, comprising:

a hardware processor:

a memory coupled to the hardware processor, the memory storing executable instructions that, when executed by the hardware processor, cause the electronic device to:

receive a gesture password via an input interface on the electronic device, wherein the gesture password comprises a set of one or more strokes, each stroke comprising a set of one or more points;

generate a vector representing the set of one or more strokes of the gesture password, the vector being a similarity-preserving vector generated by encrypting the set of one or more strokes using a set of slowly varying functions;

transmit the vector, without the gesture password from which the at least one vector is generated, from the electronic device to a server for updating a blacklist stored on the server to include the vector;

receive an indication from the server that the gesture password has been blacklisted;

output a notification to a user interface to select a new password.

16. A non-transitory machine readable medium having tangibly stored thereon executable instructions for execution by a processor of a server, wherein the executable instructions, when executed by the processor, cause the electronic device to:

receive a vector from an electronic device, the vector representing a gesture password, wherein the gesture password comprises a set of one or more strokes, each stroke comprising a set of one or more points, the vector being a similarity-preserving vector generated by encrypting the set of one or more strokes using a set of slowly varying functions;

associate the received vector with a cluster of vectors each representing the same or similar gesture password based on a low distance from the received vector to the vectors in the cluster of vectors;

determine whether the association of the received vector with the cluster of vectors causes a number of vectors in the cluster to exceed a threshold value for a number of incidences of the same or similar vectors representing the same or similar gesture password;

when the number of vectors in the cluster exceeds the threshold value,

update a blacklist stored on the server to include the vectors within the cluster; and

send to the electronic device a notification that the gesture password has been blacklisted.

17. A non-transitory machine readable medium having tangibly stored thereon executable instructions for execution by a processor of an electronic device, wherein the executable instructions, when executed by the processor, cause the electronic device to:

receive a gesture password via an input interface on the electronic device, wherein the gesture password comprises a set of one or more strokes, each stroke comprising a set of one or more points;

generate at least one vector representing the set of one or more strokes of the gesture password, the at least one vector being a similarity-preserving vector such that similar gesture passwords are mapped to vectors having a low distance between each other, the at least one vector being generated by encrypting the set of one or more strokes using a set of slowly varying functions;

transmit the vector, without the gesture password from which the at least one vector is generated, from the electronic device to a server for updating a blacklist stored on the server to include the vector;

receive an indication from the server that the gesture password has been blacklisted;

output a notification to a user interface to select a new password.

Assignments (5)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064271/0199 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2016
From: THEIMER, WOLFGANG MICHAEL; BALON, THOMAS; NECHYTAYLO, MAXIM
To: BLACKBERRY DEUTSCHLAND GMBH
Reel/Frame 040064/0804 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 20, 2016
From: BLACKBERRY DEUTSCHLAND GMBH
To: BLACKBERRY LIMITED
Reel/Frame 039794/0243 →
CHANGE OF NAME Recorded Nov 3, 2014
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 034143/0567 →