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 according to a protocol that differs from a protocol employed by another group of components, wherein the messages 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.
2 Assignments
0 Petitions
Accused Products
Abstract
A system for communicating over electrical wiring in a house or other building is presented. 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.
40 Citations
42 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 according to a protocol that differs from a protocol employed by another group of components, wherein the messages 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)
messages composed and sent by the respective components of said particular group include first message authentication codes that are calculated using a predefined one-way function of data from the messages and of a key value that is shared between components of the particular group;
components of said particular group are configured to calculate a second message authentication code for each received message that is not disregarded, using the predefined one-way function of the data from the message and of the shared key value, and to conclude that the received message is either not authentic or contains a data error if the first and second message authentication codes do not match.
-
-
4. A system as recited in claim 1, wherein:
-
the components authenticate the messages using key values that are shared between components of individual groups;
a sending one of the components is configured to change from a current to a subsequent key value in a sequence of key values without notifying a receiving component;
said receiving component automatically changing from the current to the subsequent key value if the message does not authenticate with the current key value but does authenticate with the subsequent key value;
said receiving component concluding that the received message is either not authentic or contains a data error if the message does not authenticate with the current or the subsequent key value.
-
-
5. A system as recited in claim 1, wherein:
-
the components authenticate the messages using key values that are shared between components of individual groups;
a sending one of the components is configured to change from a current to a subsequent key value in a sequence of key values without notifying a receiving component;
said receiving component automatically changing from the current to the subsequent key value if the message does not authenticate with the current key value but does authenticate with the subsequent key value;
said receiving component automatically changing from the current to a previous key value in the sequence of key values if the message does not authenticate with either the current key value or the subsequent key value, but does authenticate with the previous key value;
said receiving component concluding that the received message is either not authentic or contains a data error if the message does not authenticate with the previous, current, or subsequent key values.
-
-
6. A system as recited in claim 1, wherein the messages include data portions, and wherein different groups of the components use different formats for the data portions.
-
7. A system as recited in claim 1, wherein:
-
messages composed and sent by the respective components of said particular group include first message authentication codes that are calculated using a predefined one-way function of data from the messages and of a key value that is shared between components of the particular group;
components of said particular group are configured to calculate a second message authentication code for each received message that is not disregarded, using the predefined one-way function of the data from the message and of the shared key value, and to conclude that the received message is either not authentic or contains a data error if the first and second message authentication codes do not match;
the messages include data portions;
different groups of the components use different formats for the data portions;
different groups of the components exchange data in the messages use different data exchange protocols.
-
-
8. A system as recited in claim 1, wherein:
-
the messages include data portions;
different groups of the components use different formats for the data portions;
different groups of the components exchange data in the messages use different data exchange protocols.
-
-
9. An electrical component that communicates with other electrical components of a particular component group using electrical power lines in a building, the electrical component 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 to other components in conjunction with the transmitter using a protocol that differs from a protocol employed by other component groups, each message including a group identifier code that is uniquely associated with the particular component group. - View Dependent Claims (10, 11, 12, 13)
a receiver that functions in conjunction with the processor to receive messages from other electrical components using the electrical power lines;
the processor being programmed to disregard messages that include group identifier codes different than the group identifier code of said particular component group.
-
-
14. An 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 according to an exchange protocol that differs from an exchange protocol employed by one or more other groups of 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 identifier codes different than the group identifier code of said particular component group. - View Dependent Claims (15, 16, 17, 18, 19)
the messages include first message authentication codes;
the processor is programmed to calculate a second message authentication code for each received message that is not disregarded, based on a predefined one-way function of the data from the message and of the shared key value, and to conclude that the received message is either not authentic or contains a data error if the first and second message authentication codes do not match.
-
-
18. An electrical component as recited in claim 14, the processor being programmed to perform steps comprising:
-
authenticating the messages using key values that are shared between components of respective component groups;
automatically changing from the current to the subsequent key value of a sequence of key values if a particular message does not authenticate with the current key value but does authenticate with the subsequent key value;
concluding that the received message is either not authentic or contains a data error if said particular message does not authenticate with the current or the subsequent key value.
-
-
19. An electrical component as recited in claim 14, the processor being programmed to perform steps comprising:
-
authenticating the messages using key values that are shared between components of respective component groups;
automatically changing from the current to the subsequent key value of a sequence of key values if a particular message does not authenticate with the current key value but does authenticate with the subsequent key value;
automatically changing from the current to a previous key value in the sequence of key values if the message does not authenticate with either the current key value or the subsequent key value, but does authenticate with the previous key value;
concluding that the received message is either not authentic or contains a data error if said particular message does not authenticate with the previous, current or subsequent key values.
-
-
20. A method of communicating electronically between a plurality of electrical components using electrical power lines in a building, the method 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 according to a data exchange protocol common to the group to which the component belongs, the individual messages specifying the group identifier code of the individual group; and
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 (21, 22, 23, 24, 25)
authenticating the messages by using a message authentication code in each message, the message authentication codes being calculated using a predefined one-way function of message data and of key values that are shared between components of individual groups;
a sending one of the components of a particular group changing from a current to a subsequent key value in a sequence of key values without notifying a receiving component of the group;
said receiving component automatically changing from the current to the subsequent key value if the message does not authenticate with the current key value but does authenticate with the subsequent key value.
-
-
22. A method as recited in claim 20, wherein the transferred messages do not include identifiers of specific electrical components.
-
23. A method as recited in claim 20, further comprising:
-
calculating first message authentication codes for the messages using a predefined one-way function of data from the messages and key values that are shared between components of individual groups;
including the first message authentication codes in the transferred messages;
calculating a second message authentication code for each message when it is received by a particular component, using the predefined one-way function of data from the message and the key value that is shared by said particular component with other components;
said particular component concluding that a received message is either not authentic or contains a data error if the calculated second message authentication code does not match the first message authentication code included in the message.
-
-
24. A method as recited in claim 20, wherein the messages include data portions, comprising a further step of using different formats for the data portions in messages transferred between components of different groups.
-
25. A method as recited in claim 20, further comprising:
-
authenticating the messages using key values that are shared between components of individual groups;
a sending one of the components of a particular group changing from a current to a subsequent key value in a sequence of key values without notifying a receiving component of the group;
said receiving component automatically changing from the current to the subsequent key value if the message does not authenticate with the current key value but does authenticate with the subsequent key value.
-
-
26. 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 using one or more of a plurality of data exchange protocols;
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 (27, 28, 29, 30, 31)
calculating a third message authentication code based on the predefined one-way function of the data from the message and of a subsequent key value in the sequence of key values;
further comparing the first and third message authentication codes to authenticate each message. changing from the current key value to the subsequent key value if the first and second message authentication codes do not match but the first and third message authentication codes do match.
-
-
29. A method as recited in claim 26, wherein the shared key value is from a sequence of key values, the method further comprising:
-
calculating the sequence of key values using a one-way function of a counter value that advances to generate each sequential key value;
calculating a third message authentication code based on the predefined one-way function of the data from the message and of a subsequent key value in the sequence of key values;
further comparing the first and third message authentication codes to authenticate each message;
changing from the current key value to the subsequent key value if the first and second message authentication codes do not match but the first and third message authentication codes do match.
-
-
30. A method component as recited in claim 26, wherein the shared key value is from a sequence of key values, further comprising a step of calculating the sequence of key values using a one-way function of a counter value that advances to generate each sequential key value.
-
31. A method as recited in claim 26, further comprising:
-
assigning different group identifier codes to different groups of components;
specifying the group identifier code of an individual group in messages sent to components of said 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.
-
-
32. An 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 according to a data exchange protocol that differs from a data exchange protocol utilized by another group of components;
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 (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 according to a data exchange protocol common to the group of components to which the sending one of the components belongs;
a receiving one of the components being configured to receive messages in accordance with steps comprising;
receiving a message over the electrical power lines adhering to the group data exchange protocol;
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)
the sending component being further configured to change from a current to a subsequent key value in the sequence without notifying the receiving component;
the receiving component being further configured to calculate a third message authentication code based on the predefined one-way function of the data from the message and of the subsequent key value;
the receiving being further configured to change from the current key value to the subsequent key value if the first and second message authentication codes do not match but the first and third message authentication codes do match.
-
-
37. A home control system as recited in claim 35, wherein the shared key value is from a sequence of key values;
-
the sending component being further configured to change from a current to a subsequent key value in the sequence without notifying the receiving component;
the receiving component being further configured to calculate a third message authentication code based on the predefined one-way function of the data from the message and of the subsequent key value;
the receiving being further configured to change from the current key value to the subsequent key value if the first and second message authentication codes do not match but the first and third message authentication codes do match;
wherein the sending and receiving components calculate the sequence of key values using a one-way function of a counter value that advances to generate each sequential key value.
-
-
38. A home control system as recited in claim 35, wherein the shared key value is from a sequence of key values, and wherein the sending and receiving components calculate the sequence of key values using a one-way function of counter values that advance to generate each sequential key value.
-
39. An 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 according to a data exchange protocol that differs from other data exchange protocols utilized by other component groups, 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 (40, 41, 42)
calculating a third message authentication code based on the predefined one-way function of the data from the message and of a subsequent key value in the sequence of key values;
further comparing the first and third message authentication codes to authenticate each message. changing from the current key value to the subsequent key value if the first and second message authentication codes do not match but the first and third message authentication codes do match.
-
-
41. An electrical component as recited in claim 39, wherein the shared key value is from a sequence of key values, the processor programmed to perform the following steps:
-
calculating the sequence of key values using a one-way function of a counter value that advances to generate each sequential key value;
calculating a third message authentication code based on the predefined one-way function of the data from the message and of a subsequent key value in the sequence of key values;
further comparing the first and third message authentication codes to authenticate each message;
changing from the current key value to the subsequent key value if the first and second message authentication codes do not match but the first and third message authentication codes do match.
-
-
42. An electrical component as recited in claim 39, wherein the shared key value is from a sequence of key values, wherein the processor calculates the sequence of key values using a one-way function of a counter value that advances to generate each sequential key value.
Specification