IP Library Granted Patent US 11,558,376
Granted Patent B1
US 11,558,376 · App. 16/948,841 · Granted Jan 17, 2023

Identifying internet of things devices

Inventors: Ohad Levin (Haifa, IL); Dan Feldman (Haifa, IL)
Assignee: SHIELDIOT LTD
H04L63/0853G06K9/6219H04L63/102H04L63/20
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,558,376
App. No.
16/948,841
Granted
Jan 17, 2023
Kind
B1
Abstract

There may be provided a method that includes receiving or generating a first plurality (N) points within a first multi-dimensional space that has M dimensions; M being a positive integer that is smaller than N; wherein the N points represent one or more behaviors of the one or more IOT devices; wherein a clustering of the N points within the first multi-dimensional space results in at least some clusters that are inseparable from each other; generating a representation of the N points within a second multi-dimensional space that has at least N dimensions; wherein a clustering of the N points within the second multi-dimensional space results in clusters that are separable from each other; calculating projections of the N points on a sub-space that has a second plurality (Q) of dimensions; wherein Q is a function of a relationship between a number (K) of clusters and an allowed error (ε); computing a core-set that comprises a weighted subset of the projections; clustering the projections of the weighted subset to provide current clusters; and identifying the one or more IOT devices based on a relationship between the current clusters and identification information regarding IOT devices of known identity.

Claims (38)

1. A method for identifying one or more internet of things (IOT) devices, the method comprises:

receiving or generating a first plurality (N) points within a first multi-dimensional space that has M dimensions, M being a positive integer that is smaller than N, wherein the N points represent one or more behaviors of the one or more IOT devices, wherein a clustering of the N points within the first multi-dimensional space results in at least some clusters that are inseparable from each other;

generating a representation of the N points within a second multi-dimensional space that has at least N dimensions, wherein a clustering of the N points within the second multi-dimensional space results in clusters that are separable from each other;

calculating projections of the N points on a sub-space that has a second plurality (Q) of dimensions, wherein the subspace is calculated to minimize a cost function dependent on distances of the N points from the sub-space, and wherein Q is a function of a relationship between a number (K) of clusters and an allowed error (ε);

computing a core-set that comprises a weighted subset of the projections, wherein the subset of the projections includes a number of projections equal to or greater than K/(ε 2 );

clustering the projections of the weighted subset to provide current clusters; and

identifying the one or more IOT devices based on a relationship between the current clusters and identification information regarding IOT devices of known identity.

2. The method according to claim 1 wherein the cost function is a sum of squared values of the distances of the N points from the sub-space.

3. The method according to claim 2 wherein the number of projections in the subset of the projections is equal to a round value of K/(ε 2 ).

4. The method according to claim 1 wherein Q is a round value of K divided by ε.

5. The method according to claim 1 wherein the core-set has up to a third plurality (s) of projections.

6. The method according to claim 1 wherein the computing of the core-set comprises assigning probabilities to the projections of the N points; selecting projections to be included in the weighted subset based on the probabilities; and assigning weights to the selected projections.

7. The method according to claim 6 wherein a weight of a selected projection is inversely proportional to a probability of the selected projection.

8. The method according to claim 6 wherein a probability of a projection that belongs to a cluster equals [1/(a size of the cluster)]+[a squared distance of the projection point to a center of cluster)/(a sum of squared distances of all projections of the cluster to the center of the cluster)].

9. The method according to claim 6 wherein a probability of a projection that belongs to a cluster equals [1/(a size of the cluster)]+[a distance of the projection point to a center of cluster)/(a sum of distances of all projections of the cluster to the center of the cluster)].

10. The method according to claim 1 wherein the computing of the core-set comprises performing an approximate clustering of the projections, and wherein the clustering of the projections of the weighted subset to provide current clusters comprises performing a full clustering.

11. The method according to claim 10 wherein the identifying of the one or more IOT devices comprises searching for at least one centroid that falls within at least one current cluster.

12. The method according to claim 1 wherein the identification information regarding the IOT devices of known identity comprises centroids that represents the IOT devices of known identity.

13. The method according to claim 1 wherein the generating of the representation of the N points within the second multi-dimensional space comprises or is followed by calculating distances between each one of the N points to each other point of the N points.

14. The method according to claim 1 wherein the behavior of the one or more IOT devices comprises operational activities of the one or more IOT devices.

15. The method according to claim 1 wherein the behavior of the one or more IOT devices comprises one or more communication techniques used by the one or more IOT devices.

16. The method according to claim 1 wherein the behavior of the one or more IOT devices comprises at least one out of a start communicating time, a stop communicating time.

17. The method according to claim 1 wherein the behavior of the one or more IOT devices comprises timing information regarding timings of different packets of a sequence of packets.

18. The method according to claim 1 wherein the behavior of the one or more IOT devices comprises timing information regarding an amount of data within at least one direction of communication.

19. A non-transitory computer readable medium having a set of computer-readable instructions stored thereon, wherein execution of the computer-readable instructions by a computer, results in the computer implementing the following steps:

receiving or generating a first plurality (N) points within a first multi-dimensional space that has M dimensions, M being a positive integer that is smaller than N, wherein the N points represent one or more behaviors of one or more IOT devices, wherein a clustering of the N points within the first multi-dimensional space results in at least some clusters that are inseparable from each other;

generating a representation of the N points within a second multi-dimensional space that has at least N dimensions, wherein a clustering of the N points within the second multi-dimensional space results in clusters that are separable from each other;

calculating projections of the N points on a sub-space that has a second plurality (Q) of dimensions, wherein the sub-space is calculated to minimize a cost function dependent on distances of the N points from the sub-space, and wherein Q is a function of a relationship between a number (K) of cluster and an allowed error (ε);

computing a core-set that comprises a weighted subset of the projections, wherein the subset of the projections includes a number of projections equal to or greater than K/(ε 2 );

clustering the projections of the weighted subset to provide current clusters; and

identifying the one or more IOT devices based on a relationship between the current clusters and identification information regarding IOT devices of known identity.

20. A computerized system that comprises a processing circuit and memory that are configured to cooperate in executing the steps of:

receiving or generating a first plurality (N) points within a first multi-dimensional space that has M dimensions, M being a positive integer that is smaller than N, wherein the N points represent one or more behaviors of one or more IOT devices, wherein a clustering of the N points within the first multi-dimensional space results in at least some clusters that are inseparable from each other;

generating a representation of the N points within a second multi-dimensional space that has at least N dimensions, wherein a clustering of the N points within the second multi-dimensional space results in clusters that are separable from each other;

calculating projections of the N points on a sub-space that has a second plurality (Q) of dimensions, wherein the sub-space is calculated to minimize a cost function dependent on distances of the N points from the sub-space, and wherein Q is a function of a relationship between a number (K) of cluster and an allowed error (ε);

computing a core-set that comprises a weighted subset of the projections, wherein the subset of the projections includes a number of projections equal to or greater than K/(ε 2 );

clustering the projections of the weighted subset to provide current clusters; and

identifying the one or more IOT devices based on a relationship between the current clusters and identification information regarding IOT devices of known identity.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2022
From: LEVIN, OHAD; FELDMAN, DAN
To: SHIELDOT LTD.
Reel/Frame 060841/0574 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 19, 2021
From: LEVIN, OHAD; FELDMAN, DAN
To: SHIELDIOT LTD.
Reel/Frame 058167/0650 →
Continuity (3)
Continuation In Part 16586985 · Sep 29, 2019
Continuation 16947204 · Jul 22, 2020
Provisional Application 62748462 · Oct 21, 2018