Message formatting, authentication, and error detection in home control systems
First Claim
1. A home control system that uses electrical power lines for communications, comprising:
- a plurality of components that are connectable for communications among themselves through the electrical power lines, said components including groups of components, wherein each group is identified collectively by a particular group identifier code;
components of any particular group being configured to compose and send messages that include the group identifier code of their particular group;
components of any particular group being further configured to receive messages from components of different groups and to disregard messages that include a group identifier code different than the group identifier code of their particular group.
1 Assignment
0 Petitions
Accused Products
Abstract
Described herein is a system for communicating over electrical wiring in a house or other building. Components are grouped and each group is assigned a group identifier code. Components communicates only with components of the same group, using the group identifier code. Each message includes the group identifier code, message data, and a message authentication code (MAC) that is calculated for each message. A receiving component disregards any message whose group identifier code is not the same as that of the receiving component. MACs are calculated using a shared key value and a one-way hash function. The shared key value, in turn, is taken from an ordered sequence of key values that is defined for each component group based on a counter value. To change to a new key value, one component of the group simply starts using the new key value. When a receiving component receives a message that does not authenticate using the current key value, it tries the next key value in the sequence. If the message authenticates using the next key value, the next key value is adopted as the current key value for future communications.
20 Citations
57 Claims
-
1. A home control system that uses electrical power lines for communications, comprising:
-
a plurality of components that are connectable for communications among themselves through the electrical power lines, said components including groups of components, wherein each group is identified collectively by a particular group identifier code;
components of any particular group being configured to compose and send messages that include the group identifier code of their particular group;
components of any particular group being further configured to receive messages from components of different groups and to disregard messages that include a group identifier code different than the group identifier code of their particular group. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A electrical component that communicates with other electrical components of a particular component group using electrical power lines in a building, comprising:
-
a processor;
a transmitter that is responsive to the processor to send data using the electrical power lines;
the processor being programmed to compose and send messages in conjunction with the transmitter, each message including a group identifier code that is uniquely associated with the particular component group. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A electrical component that communicates with other electrical components of a particular component group using electrical power lines in a building, comprising:
-
a processor;
a receiver that functions in conjunction with the processor to receive messages from other electrical components using the electrical power lines, such messages including different group identifier codes that are associated uniquely with respective component groups;
the processor being programmed to disregard messages that include group to identifier codes different than the group identifier code of said particular component group. - View Dependent Claims (16, 17, 18, 19, 20)
-
-
21. A method of communicating electronically between a plurality of electrical components using electrical power lines in a building, comprising the following steps:
-
designating groups of the electrical components that communicate among themselves;
assigning different group identifier codes to different groups of components;
transferring messages between components in an individual group, individual messages specifying the group identifier code of the individual group;
determining whether a particular message is intended for a particular component by checking whether the group identifier code of the particular message matches the group identifier code of the particular component'"'"'s group. - View Dependent Claims (22, 23, 24, 25, 26, 27)
-
-
28. A computer-readable storage medium having instructions that are executable by an electrical component that communicates electronically using electrical power lines in a building, the instructions being executable to perform steps comprising:
-
composing and sending data messages over the electrical power lines;
including a group identifier code in each message, wherein the group identifier code is uniquely associated with a particular group of components that are intended to communicate with each other. - View Dependent Claims (29, 30, 31)
-
-
32. A computer-readable storage medium having instructions that are executable by a component that communicates electronically using electrical power lines in a building, the instructions being executable to perform steps comprising:
-
receiving messages from other electrical components using the electrical power lines, such messages including different group identifier codes;
disregarding messages that include a group identifier code different than a group identifier code is uniquely associated with a particular group of components that are intended to communicate with each other. - View Dependent Claims (33, 34)
-
-
35. A home control system that uses electrical power lines for communications, comprising:
-
a plurality of components that are connected for communications among themselves through the electrical power lines;
a sending one of the components being configured to send messages over the electrical power lines in accordance with steps comprising;
calculating a first message authentication code based on a predefined one-way function of data from a message and of a key value that is shared between sending and receiving components;
including the message authentication code in the message;
sending the message over the electrical power lines;
a receiving one of the components being configured to receive messages in accordance with steps comprising;
receiving a message over the electrical power lines;
calculating a second message authentication code based on the predefined one-way function of the data from the message and of the a current shared key value;
concluding that the message is either not authentic or contains a data error if the first and second message authentication codes do not match. - View Dependent Claims (36, 37, 38)
-
-
39. A electrical component that is connected for communications with other electrical components of a particular group using electrical power lines in a building, comprising:
-
a processor;
a transmitter that is responsive to the processor to send data using the electrical power lines;
the processor being programmed to compose and send messages in conjunction with the transmitter, each message including a message authentication code based on a predefined one-way function of data from the message and of a key value that is shared between a plurality of components. - View Dependent Claims (40, 41)
-
-
42. A electrical component that is connected for communications with other electrical components of a particular group using electrical power lines in a building, comprising:
-
a processor;
a receiver that functions in conjunction with the processor to receive messages from other electrical components using the electrical power lines, such messages including first message authentication codes;
the processor being programmed to calculate a second message authentication code for each message based on a predefined one-way function of the data from the message and of a key value that is shared between a plurality of components;
the processor being further programmed to compare the first and second message authentication codes to authenticate each message. - View Dependent Claims (43, 44, 45)
-
-
46. A method of communicating electronically between a plurality of electrical components using electrical power lines in a building, comprising the following steps:
-
designating groups of the electrical components that communicate among themselves;
sharing a key value between components of a particular group;
calculating a first message authentication code based on a predefined one-way function of data from a message and of the key value that is shared by components of the particular group;
including the message authentication code in the message;
sending the message over the electrical power lines;
receiving the message;
calculating a second message authentication code based on the predefined one-way function of the data from the message and of the shared key value;
comparing the first and second message authentication codes to authenticate each message. - View Dependent Claims (47, 48, 49, 50, 51)
-
-
52. A computer-readable storage medium having instructions that are executable by an electrical component that communicates electronically using electrical power lines in a building, the instructions being executable to perform steps comprising:
-
calculating a message authentication code based on a predefined one-way function of data from a message and of a key value that is shared by components of a particular group of electrical components;
including the message authentication code in the message;
sending the message over the electrical power lines. - View Dependent Claims (53, 54)
-
-
55. A computer-readable storage medium having instructions that are executable by an electrical component that communicates electronically using electrical power lines in a building, the instructions being executable to perform steps comprising:
-
receiving a message that contains a first message authentication code;
calculating a second message authentication code based on a predefined one-way function of data from the message and of a key value that is shared by a plurality of electrical components;
concluding that the message is either not authentic or contains a data error if the first and second message authentication codes do not match. - View Dependent Claims (56, 57)
-
Specification