Systems and methods for rejoining a second group of nodes with a first group of nodes using a shared group key
Abstract
A method for rejoining a second group of nodes with a first group of nodes is descirbed. A first state of a first group key associated with a first group of nodes is received. The first state of the first group key is multicast to a second group of nodes. The first group key is rekeyed to a second group key associated with the second group of nodes. A second state of the second group key is multicast to the second group of nodes. A third state of a third group key associated with the first group of nodes is received. A rekey command is multicast to the second group of nodes if the third state is different from the second state. The second group key is rekeyed to the third group key.
Term
No projected expiry on record.
- Priority
- Filed
- Granted
- Today
20 claims: 15 independent, 5 dependent
- 1一種用於重新連接一第二節點群組與一第一節點群組的方法,該方法係藉由網路之電腦系統來執行,該方法包含:接收與一第一節點群組相關聯之一第一金鑰群組的一第一狀態;將該第一金鑰群組之該第一狀態群播至一第二節點群組;將該第一金鑰群組重新加密為與該第二節點群組相關聯之一第二金鑰群組;將該第二金鑰群組之一第二狀態群播至該第二節點群組;接收與該第一節點群組相關聯之一第三金鑰群組的一第三狀態;若該第三狀態不同於該第二狀態,則將一重新加密命令群播至該第二節點群組;以及將該第二金鑰群組重新加密為該第三金鑰群組。
- 2如申請專利範圍第1項所述之方法,其中該第一群組係一安全群播節點群組。
- 3如申請專利範圍第1項所述之方法,其中該第一狀態係自該第一節點群組之一管理節點來傳送的。
- 4如申請專利範圍第1項所述之方法,其中該第二狀態係自該第二節點群組之一管理節點來傳送的。
- 5如申請專利範圍第1項所述之方法,其另外包含將該第一節點群組之一或多個節點分割為該第二節點群組。
- 6如申請專利範圍第5項所述之方法,其中該第一節點群組之該管理節點之間的通訊自包含該第二節點群組之該等節點斷開。
- 7如申請專利範圍第1項所述之方法,其中每一狀態包括一金鑰交換金鑰(KEK)。
- 8如申請專利範圍第7項所述之方法,其中包括該金鑰交換金鑰(KEK)之該等節點接收每一狀態。
- 9如申請專利範圍第1項所述之方法,其中每一金鑰群組包括一金鑰群組參數,其中該金鑰群組參數指示每一金鑰群組已由一節點群組利用之時間量。
- 10如申請專利範圍第1項所述之方法,其另外包含選擇一管理節點,該管理節點包含具有最高金鑰群組參數之金鑰群組。
- 11如申請專利範圍第1項所述之方法,其中包含該第一節點群組及該第二節點群組之每一節點包含一節點識別符,其中該節點識別符指示該節點連接該第一節點群組時的次序。
- 12如申請專利範圍第11項所述之方法,其另外包含選擇一包含最低節點識別符之管理節點。
- 13如申請專利範圍第1項所述之方法,其中該重新加密命令係用一金鑰群組來加密的。
- 14如申請專利範圍第1項所述之方法,其中該第二節點群組之一管理節點包含該第一金鑰群組及該第二金鑰群組。
- 15一種用以重新連接一第二節點群組與一第一節點群 組的電腦系統,該電腦系統包含:一處理器;與該處理器電子通訊之記憶體;儲存於該記憶體中之指令,該等指令可執行以:接收與一第一節點群組相關聯之一第一金鑰群組的一第一狀態;將該第一金鑰群組之該第一狀態群播至一第二節點群組;將該第一金鑰群組重新加密為一與該第二節點群組相關聯之第二金鑰群組;將該第二金鑰群組之一第二狀態群播至該第二節點群組;接收與該第一節點群組相關聯之一第三金鑰群組的一第三狀態;若該第三狀態不同於該第二狀態,則將一重新加密命令群播至該第二節點群組;以及將該第二金鑰群組重新加密為該第三金鑰群組。
- 16如申請專利範圍第15項所述之電腦系統,其中每一狀態包括一金鑰交換金鑰(KEK)。
- 17如申請專利範圍第16項所述之電腦系統,其中包括該金鑰交換金鑰(KEK)之該等節點接收每一狀態。
- 18一種電腦可讀式媒體,其包含用於重新連接一第二節點群組與一第一節點群組之可執行指令,該指令係藉由網路之電腦系統來執行,該等指令可執行以:接收與一第一節點群組相關聯之一第一金鑰群組的 一第一狀態;將該第一金鑰群組之該第一狀態群播至一第二節點群組;將該第一金鑰群組重新加密為一與該第二節點群組相關聯之第二金鑰群組;將該第二金鑰群組之一第二狀態群播至該第二節點群組;接收與該第一節點群組相關聯之一第三金鑰群組的一第三狀態;若該第三狀態不同於該第二狀態,則將一重新加密命令群播至該第二節點群組;以及將該第二金鑰群組重新加密為該第三金鑰群組。
- 19如申請專利範圍第18項所述之電腦可讀式媒體,其中每一狀態包括一金鑰交換金鑰(KEK)。
- 20如申請專利範圍第19項所述之電腦可讀式媒體,其中包括該金鑰交換金鑰(KEK)之該等節點接收每一狀態。
Independent claims20
69 paragraphs, as filed
Method, computer system and computer readable medium for reconnecting node group
SYSTEMS AND METHODS FOR REJOINING A SECOND GROUP OF NODES WITH A FIRST GROUP OF NODES USING A SHARED GROUP KEY
A kind of computer and computer-related technology. In particular, it refers to a system and method that uses a shared key group to reconnect a second node group and a first node group.
Computer and communication technology continue to develop rapidly. In fact, computer and communication technology have been involved in many aspects of personal life. For example, many devices used by consumers today have small computers inside. These small computers exhibit a variety of dimensional changes and levels of complexity. These small computer structures span from a single microcontroller to a complete computer system with complete functions. For example, these small computers can be single-chip computers (such as microcontrollers), single-board computers (such as controllers), typical desktop computers (such as IBM-PC compatible systems), and so on.
Computers usually have one or more processors located in the center of the computer. The processor(s) are usually interconnected to different external inputs and outputs and function to manage a specific computer or device. For example, the processor in a thermostat can be connected to a button for selecting a temperature setting, a furnace or an air conditioner for changing the temperature, and a temperature for reading the current temperature displayed on a display Sensor.
Many appliances, devices, etc. include one or more small computers. For example, thermostats, stoves, air conditioning systems, refrigerators, telephones, typewriters, automobiles, vending machines, and many different types of industrial equipment now usually have small computers or processors inside them. Computer software runs the processors of these computers and instructs them how to perform certain tasks. For example In other words, computer software running on the thermostat can cause the air conditioner to stop operating when a certain temperature is reached or can cause the heater to turn on when needed.
These types of small computers that are part of a device, appliance, tool, etc. are usually called embedded devices or embedded systems. (The terms "embedded device" and "embedded system" will be used interchangeably in this article). Embedded systems generally refer to computer hardware and software that are part of a larger system. Embedded systems may not have typical input and output devices (such as keyboards, mice, and/or displays). Usually, one or more processors are located at the center of each embedded system.
Embedded systems can be used to supervise or control many different systems, resources, products, etc. With the development of the Internet and the World Wide Web, more and more embedded systems are connected to the Internet so that they can be remotely monitored and/or controlled. Other embedded systems can be connected to computer networks (including local area networks, wide area networks, etc.). As used herein, the term "computer network" (or simply "network") refers to any system in which a series of nodes are interconnected by a communication path. The term "node" refers to any device that can be connected as part of a computer network.
Some embedded systems can use computer networks to provide data and/or services to other computing devices. Alternatively, a typical computer or computing device can use a computer network to provide data and/or services to other computing devices. Nodes can use a network and share state among them. But the network is not perfect, and sometimes the network is segmented or disconnected. This can lead to loss of connectivity between groups of nodes in communication and cause the group of nodes to leave their shared state. After the division is resolved, the previously communicating nodes may be difficult to communicate again due to the out-of-state. It would be beneficial to minimize this difficulty in re-communication. If there are systems and methods that can be used to use a shared key group to re This benefit can be realized by newly connecting a second node group and a second node group.
A method; the method is used to reconnect a second node group and a first node group. A first state of a first key group associated with a first node group is received. Multicast the first state of the first key group to a second node group. The first key group is re-encrypted into a second key group associated with the second node group. Multicast a second state of the second key group to the second node group. A third state of a third key group associated with the first node group is received. If the third state is different from the second state, broadcast a re-encryption command to the second node group. The second key group is re-encrypted into the third key group.
The first group can be a safe group of multicast nodes. The first state may be transmitted from a management node of the first node group. The second state can be transmitted from a management node of the second node group. One or more nodes in the first node group can be divided into the second node group. The communication between the management nodes of the first node group may be disconnected by the nodes of the second node group.
In one embodiment, each state may include a key exchange key (KEK). The node including the key exchange key (KEK) can receive each state. Each key group may include a key group parameter, where the key group parameter indicates the amount of time that each key group has been used by a node group. A management node can be selected, and the management node includes the key group with the highest key group parameter. Each node including the first node group and the second node group may include a node identifier, where the node identifier indicates the node The sequence when connecting the first node group. A management node containing the lowest node identifier can be selected.
In one embodiment, a key group is used to encrypt the re-encryption command. One of the management nodes of the second node group may include a first key group and a second key group.
It also describes a computer system configured to reconnect a second node group and a first node group. The computer system includes a processor and a memory in electronic communication with the processor. The command is stored in the memory. A first state of a first key group associated with a first node group is received. Multicast the first state of the first key group to a second node group. The first key group is re-encrypted into a second key group associated with the second node group. Multicast a second state of the second key group to the second node group. A third state of a third key group associated with the first node group is received. If the third state is different from the second state, broadcast a re-encryption command to the second node group. The second key group is re-encrypted into the third key group.
A computer-readable medium is also described, which includes executable instructions for reconnecting a second node group and a first node group. A first state of a first key group associated with a first node group is received. Multicast the first state of the first key group to a second node group. The first key group is re-encrypted into a second key group associated with the second node group. Multicast a second state of the second key group to the second node group. A third state of a second key group associated with the first node group is received. If the third state is different from the second state, broadcast a re-encryption command to the second node group. The second key group is re-encrypted into the third key group.
Various embodiments of the present invention will now be described with reference to the figures, in which similar reference numerals represent elements with the same or similar functions. As generally described and illustrated in the figures in this document, the embodiments of the present invention can be configured and designed in a wide variety of different configurations. Therefore, as shown in the figure, the following implementations of several exemplary embodiments of the present invention are not intended to limit the scope of the present invention as claimed, but merely represent embodiments of the present invention.
The term "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any embodiment described herein as "exemplary" need not be construed as favored or advantageous over other embodiments.
Many of the features of the embodiments disclosed herein can be implemented as computer software, electronic hardware, or a combination of both. In order to clearly illustrate this interchangeability of hardware and software, various components will generally be described in terms of their functionality. Whether this functionality is implemented as hardware or software depends on the specific application and design constraints imposed on the entire system. Skilled technicians can implement the described functionality in varying ways for each specific application, but these implementation decisions should not be construed as causing a departure from the scope of the present invention.
In the case of implementing the described functionality as computer software, this software may include any type of computer commands or commands located in a memory device and/or as electronic signals transmitted via a system bus or network Computer executable code. The software that implements the functionality associated with the components described herein can include a single command or many commands, and can be distributed across several different code segments, among different programs, and across several memory devices.
As used herein, unless expressly stated otherwise, the term "one "An embodiment", "an embodiment", "a number of embodiments", "the embodiment", "the embodiments", "one or more embodiments", "some embodiments", "certain implementations" Example, "one embodiment," "another embodiment," and the like mean "one or more (but not necessarily all) embodiments of one (or more) inventions disclosed."
The term "determining" (and its grammatical variants) is used in a very broad sense. The term "determining" encompasses a wide variety of actions and therefore "determining" can include accounting, calculating, processing, obtaining, investigating, checking (for example, checking in a table, database, or another data structure), finding out, and the like. Furthermore, "determining" may include receiving (for example, receiving information), accessing (for example, accessing data in a memory), and the like. again. "Determining" can include solving, choosing, deciding, choosing, establishing, and the like.
Unless specifically stated otherwise, the phrase "based on" does not mean "based on only". In other words, the phrase "based on..." describes both "based only on..." and "based at least on...".
A computer network may include multiple nodes. Nodes can be referred to as computing devices. Multiple nodes can be organized into one or more groups. A single node can communicate with other nodes in its group. In one embodiment, the single node broadcasts information to other nodes in its group. Multicast can include simultaneous transmission of information to each member of a group. The single node can broadcast a state to other nodes in the group. A state may include a unique configuration of a program or other information aspect of a computing device.
The multicast-state is desirable for scalable secure multicast groups. When the network becomes segmented, problems may arise. For example, an original node group Groups can be segmented into various segmented node groups. The state that was once shared between members of the original group may be disengaged as a result. For example, a node group usually controls its own key. Over time, a group can be re-encrypted periodically. The new key can be randomly selected, so it is less likely that different segmented node groups will be re-encrypted to the same key.
Before solving the network problem, the division of the group can be the correct behavior. In other words, assuming that some node groups can still communicate, then this (etc.) group should not be followed by a failure just because of the partition of the hardware failure. However, when the network problem is solved and each of the segmented node groups can communicate with each other again, the state that the groups communicating with each other have different keys should converge as soon as possible.
The system and method are related to determining a node group of a group manager. Any node in the group can act as a manager, and more than one node can act as a manager at any given time. The manager periodically informs the nodes in its group of its status. In addition, the manager informs the state in a way that other segmented node groups can extract the state. One of the main states shared by various segmented node groups is a key exchange key (KEK). Any group of segmented nodes using the same KEK can communicate with each other. Additional states (such as timing parameters and a key group) can be detached over time. These additional state parameters can be notified and protected by the same KEK. In other words, nodes that do not own the same KEK are not allowed to extract the additional state parameters.
When splitting occurs, each segment node group can determine a different manager. When nodes in a segment group stop listening to periodic status notifications from their previous managers, they can automatically determine a manager. If there happens to be multiple managers for a single group at any one time, the multiple managers will listen to each other's notifications. If these multiple notifications If the state in the content is exactly repeated, one of the nodes will stop acting as the manager. The manager with the oldest state or lower node identifier (in the connected state) can continue to be the manager of the segment group. Of course, there are other methods that can be used to determine an available group manager. If a partition occurs but the partition problem is solved before the state is separated, the above logic can solve the problem of multiple managers when the segmented node group starts to communicate again.
If segmentation occurs and the segmentation time lasts for a long time, the state corresponding to each segment group may be separated. When the segmentation situation is resolved and communication is restarted, there will be multiple segment group managers that inform the nodes belonging to the original group of different states. Nodes belonging to each segment group may share the same KEK. Even if a manager may know that a particular notification content is valid, it may still not believe that the packet is the current packet due to the possibility of a replay attack. For example, a malicious node can store a previous notification content, and then replay the notification content at a later time. This kind of replay should not cause other nodes to function.
If a manager of a segmented node group listens to a notification that contains a partial match with its state, it can'connect' to the group identified by the other manager. This connection can be almost the same as the process for a node to connect to the group for the first time, and can be protected from replay attacks. If the connection is successful, the manager of the segment group has two states. The manager can then re-encrypt its inherent segmented node group to match the state of other node groups (this can restore the group very quickly and effectively). The same logic as described above (i.e., which state is older) can be used to determine which manager to re-encrypt, because the two situations are the same (i.e., both managers can listen to each other's notifications).
The first figure is a block diagram illustrating an embodiment; this embodiment A key exchange key (KEK) 104 is transmitted to the server 102 of one or more nodes in the group A 106. In one embodiment, the server 102 is an authentication server. An authentication server can be a server that authenticates nodes that want to connect to group A 106. In one embodiment, the server 102 authenticates a node and the node receives KEK 104. A node can connect to group A 106 by using KEK to verify its ability to connect group A 106 to other nodes belonging to group A 106. In one embodiment, the server 102 maintains a minimum state with respect to each node of the group A 106. For example, the server 102 may only maintain the state of the KEK 104. The server 102 can communicate the changes of the KEK 104 to the nodes of the group A 106.
As illustrated, group A 106 includes node A 108, node B 110, and node C 112. Although the group A 106 is illustrated as having only three nodes, please understand that the group A 106 may include more or fewer nodes. Group A 106 can be referred to as a secure multicast group, because nodes in group A 106 can multicast information to each other in a secure manner. For example, a shared group A key 114 can be used to encrypt the information broadcasted among the nodes of the group A 106. The nodes can use KEK 104 to receive the group A key 114 associated with the group A 106. For example, node N 116 can request to become a member of group A 106 by sending a group request 118 to one or more nodes in group A 106. The node or nodes of group A 106 can determine whether node N 116 includes KEK 104. If the node N 116 includes the KEK 104, the node or nodes can assign the group A key 114 to the node N 116. The group A key 114 can enable a node to transmit information to and receive information from other nodes in the group A 106. The node can use the group A key 114 to encrypt and decrypt the information broadcasted among the nodes of the group A 106.
If the node N 116 does not own the KEK 104, the node N 116 can send a KEK request 120 to the server 102 and request the server 102 to allocate the KEK 104 to the node N 116. The server 102 can authenticate node N 116 and allocate KEK 104. However, if the KEK 104 is not allocated to the node N 116, the node N 116 cannot connect to the group A 106 and receive the group A key 114.
The communication between the server 102, the group A 106 and the node N 116 can be carried out via a network 122. The network 122 may include any communication network, such as (but not limited to) the global communication network, the Internet, a computer network, a telephone network, a pager network, a mobile phone network, a wide area network (WAN), a local area network ( LAN) and so on. In one embodiment, the server 102 can manage multiple node groups and communicate with the multiple node groups via the network 122. The server 102 can be allocated as a KEK unique to each node group.
The second figure is a block diagram illustrating an embodiment; this embodiment partitions a second node group 246 from a first node group 206. The first group 206 may include a group of broadcast nodes (such as group A 106). In one embodiment, node E 226, node F 228, and node G 230 initially belong to the first group 206. Although the depicted embodiment includes seven nodes, understand that more or fewer nodes may be included in the first group 206 and the second group 246.
The node AG (208, 210, 212, 224, 226, 228, 230) may include the KEK 204 and the group A key 214. In one embodiment, the group A key 214 includes a group A key parameter 240. The parameter 240 may indicate the amount of time that the group A key 214 has been used by the members of the first group 206. For example, the members of the first group 206 can control the group A key 214. The group A key 214 can be changed periodically to cause the node to re-encrypt the group A key 214 into a changed new key group. Group A key parameters 240 may indicate the amount of time that the current group A key has been used by members of the first group 206.
In one embodiment, node A 208 includes identifier A 238. The identifier A 238 may indicate the order in which the node A 208 connects to the first group 206. For example, if node A 208 is the third node that will connect to group 206 and node B 210 is the fourth node that will connect to group 206, then identifier A 238 may indicate "3" and identifier B ( Not shown) may indicate "4". Although only node A 238 is illustrated as including an identifier, please understand that each node in group 206 may include a corresponding identifier.
In one embodiment, node A 208 is determined to be the group manager of the first group 206. The group manager can be responsible for broadcasting information about the key group and other parameters to other nodes in the group periodically. In one embodiment, since the identifier A 238 has the lowest value, the node A 208 is determined to be the group manager. In other embodiments, the group manager may be the node that starts to notify first, a node manually set as the manager by the manager, and so on. In other embodiments, any commercially available method can be followed to determine which node is the group manager.
The node A 208 may include a state 234. The status 234 can display the current values of certain parameters. For example, the state 234 may include the KEK 204, the group A key 214, and the timing parameter A 236. The timing parameter A 236 may indicate how often the node A 208 multicasts the state 234 to the nodes in the group 206. In one embodiment, the KEK 204 is used to protect the group A key 214 and the timing parameter A 236. In other words, nodes without KEK 204 are not allowed to extract these parameters from state 234.
The node A 208 can use the router A 242 to multicast the state 234 to the node B 210, the node C 212, and the node D 224. Similarly, node A 208 The state 234 can be multicast to node E 226, node F 228, and node G 230 via router B 244. Although the illustrated embodiment depicts node A 208 multicasting state 234 via two routers, it should be understood that nodes can use any number of routers, switches, other network connection equipment, wiring, etc., to multicast information. The nodes 210, 212, 224, 226, 228, and 230 can use the KEK 204 to extract the group A key 214 and the timing parameter A 236 from the state 234. If the group A key 214 included in the nodes 210, 212, 224, 226, 228, 230 does not match the group A key 214 included in the state 234, these nodes can re-encrypt the group A gold The key 214 matches the key group included in the state 234. As stated previously, the multicast group can change the key group periodically. The state 234 including the group A key 214 is frequently broadcasted so that the nodes can re-encrypt to the current key group associated with the group 206.
In one embodiment, the communication between node A 208 and router B 244 is lost or restricted 209. For example, router B 244 may fail and therefore, the status 234 transmitted from node A 208 may not be transmitted to nodes 226-230 connected to router B 244. In one embodiment, the node E 226, the node F 228, and the node G 230 are divided from the first group 206 into the second group 246. The node A 208 can still multicast the state 234 to the node B 210, the node C 212, and the node D 224 via the router 242. Therefore, the original first group 206 is divided into two groups 206 and 246. Although only two groups 206, 246 are illustrated, please understand that the first group 206 can be divided into more node groups.
The third figure is a block diagram illustrating another embodiment of the second node group 346. In one embodiment, the second group 346 includes node E 326, node F 328, and node G 330. Nodes 326, 328, 330 are available A second group manager is determined when it (326, 328, 330) stops receiving the periodic group broadcast of the state from the manager of the first group 206. For example, nodes EG 326-330 may determine a second group manager when they stop receiving status 234 from node A 208. In one embodiment, any node in the second group 346 can act as the second group manager. In the depicted embodiment, because the node F 328 starts to multicast a state 334 to the nodes belonging to the second group 346, the node F 328 is determined to be the second group manager. The node F 328 may include an identifier F 352, which indicates the order in which the node F 328 connects the original first group 206.
The nodes 326-330 of the second group 346 can initially use the same key group as they were previously used as members of the first group 206. For example, the nodes 326-330 can still use the group A key 314. In another embodiment, the second group manager node F 328 can immediately change the group B key 350 when it becomes the group manager. At a later time, the members of the second group 346 can re-encrypt 354 the group A key 314 into a random new key group (such as the group B key 350). In another embodiment, members still belonging to the first group 206 (not shown) can also re-encrypt the group A 314 into a random new key group. Since each group 206 and 346 randomly re-encrypt the group A key 314, it is possible that the first group 206 and the second group 346 re-encrypt the group A key 314 into the same new key group The sex is low.
In one embodiment, the group B key 350 is now used by the members of the second group 346 to group information to each other. The group B key 350 may include a group B key parameter 341, which indicates the amount of time that the group B key 350 has been used by the second group 346.
As the manager of the second group 346, the node F 328 can change the status 334 Multicast to other members of the second group 346. In one embodiment, the state 334 includes the KEK 304 and the group B key 350. The KEK 304 can protect the group B key 350 so that nodes that do not own the KEK 304 cannot extract the group B key 350 from the state 334. The node E 326 and the node G 330 can extract the group B key 350 from the state 334 to verify that they have the current key group for the second group 346.
The fourth figure is a block diagram illustrating an embodiment; this embodiment connects a management node of the second node group to the first split node group. In one embodiment, node A 408 is a management node of a first group 206 (not shown), and node F 428 is a management node of a second group 246 (not shown). As explained earlier, when the communication between the manager of the first group and the nodes of the second group 246 is lost or restricted for some reason, the nodes of the second group 246 will be removed from the first group. 206 divided out. In one embodiment, communication between node A 408 and router B 444 is lost; therefore, node A 408 cannot multicast state 434 to node E 426, node F 428, and node G 430. At a later time, the communication between the node A 408 and the second group 246 can be re-established via the router B 444.
As explained earlier, when the second group 246 is divided from the first group 206, each group 206, 246 can still use the same key group (such as the group A key 114). At a later time, each group 206, 246 can randomly re-encrypt the group A key 114. For example, the first group can randomly re-encrypt the group A key 114 into a group C key 415, and the second group 246 can randomly re-encrypt the group A key 114 into a group B Key 450.
When the communication between the node A 408 and the nodes of the second group 246 is re-established, the node A 408 can multicast the state 434, the state 434 packet Including KEK 404, group C key 415 and timing parameter C 437. The group C key 415 and the timing parameter C 437 can be protected by the KEK 404. In one embodiment, nodes FG 426-430 each receive status 434 from node A 408. The nodes EG 426-430 may each include a KEK 404; the KEK 404 allows the nodes to extract the protected group C key 415 and the timing parameter C 437 from the state 434. However, the nodes EG 426-430 include a group B key 450; the group B key 450 may be different from the group C key 415. The node E 426 and the node G 430 may ignore the state 434 transmitted from the node A 408 because the state 434 is not transmitted from the manager of the second group 246 (ie, the node F 428).
In one embodiment, the manager of the second group 246 (node F 428) can receive the state 434 from node A 408. Node F 428 can use KEK 404 to extract parameters from state 434. The group C key 415 may include a group C key parameter 440, and the group B key 450 includes a group B key parameter 441. As explained previously, the key group parameter can indicate the amount of time the key group has been utilized. In one embodiment, the node F 428 compares the group C key parameter 440 and the group B key parameter 441. If the group C key parameter 440 indicates that the amount of time for using the group C key 415 is greater than the amount of time for using the group B key 450, the node F 428 may store the group C key 415. Node F 428 can then connect to the group identified by state 434 to verify that it is the current group and has not been replayed. In one embodiment, the node F 428 now belongs to both the first group 206 and the second group 246. In another embodiment, the node F 428 re-encrypts the group B key 450 into the group C key 415. By re-encrypting as the key group 415, the node F 428 determines that the node A 408 should continue to be a management node. Therefore, the node A 408 is responsible for the multicast of the state 434 afterwards.
In one embodiment, the group C key parameter 440 is the same as the group B key parameter 441, which indicates that the amount of time that the group C key 415 is used is the same as the amount of time that the group B key 450 is used. The node A 408 and the node F 428 can determine which node will continue to be the manager node by evaluating the identifier A 438 and the identifier F 452. In one embodiment, the node with the lowest identifier will continue to be the manager. For example, the identifier A 438 may include a value lower than the identifier F 452. Therefore, the node F 452 can re-encrypt the group B key 450 into the group C key 415. In another embodiment, node A 408 and node F 438 may use other methods to determine which node will continue to be the manager. The node that will not continue to be the manager will re-encrypt its group into the key group 114 of other groups.
The fifth figure is a block diagram illustrating an embodiment; this embodiment reconnects the first group 206 to the second group 546. In one embodiment, the key group associated with the second group 546 is re-encrypted to the key group associated with the first group 206. A manager of the second group 546 can multicast a re-encryption command 560 to the nodes in the second group 546. For example, the node F 528 may be the manager of the second group 546. As previously explained, the node F 528 can receive the state 434 about the key group corresponding to the first group 206 (ie, the group C key 515); the node F 528 can verify that the state 434 is currently valid and Has not been replayed. The node F 528 can multicast a packet 532 including the KEK 504 and the re-encryption command 560. In one embodiment, nodes that do not include KEK 504 cannot receive packet 532. In addition, the shared key group of the second group 546 (ie, the group B key 550) can be used to encrypt the re-encryption command 560.
The node E 526 and the node G 530 can receive the packet 532 and use the group B key 550 to decrypt the re-encryption command 560. The re-encryption command 560 may include a command to re-encrypt the shared key group into a different shared key group. For example, the node E 526 and the node G 530 may receive a command to re-encrypt 554 the group B key 550 into the group C key 515. The node F 528 can also re-encrypt 554 the group B key 550 into the group C key 515 after broadcasting the re-encryption command to the nodes of the second group 546. The re-encryption to the group C key 515 allows the nodes EG 526-530 to receive additional data and information from the nodes in the first group 206. In other words, the nodes EG 526-530 are reconnected to the group of which they were members before being divided into the second group 546. In addition, allowing the manager of the second group 546 to broadcast the re-encryption command 560 can minimize requests on the manager of the first group 206. For example, if each node in the second group 546 transmits a re-encryption request to the node A 408, the node A 408 may experience a heavy load due to many requests for the group C key 515. The system and method enable the managers of the second group 546 (or a small group of management nodes) to broadcast the re-encrypted information to the nodes belonging to the second group, thereby eliminating the increase in load on the node A 408.
The sixth figure is a flowchart illustrating an embodiment of a method 600; the embodiment of the method 600 is used to broadcast a re-encryption command to the second node group 246. In one embodiment, the method 600 is implemented by a node designated as the manager of the second group 246. A first state can be received (602). In one embodiment, the first state includes a first key group (such as group A 106) associated with a first node group 206. This status can be received (602) periodically. It is determined (604) whether a predetermined time has expired since the most recent status was received (602). If the time has not expired, the node continues to periodically receive (602) the first state. If the predetermined time expires, the first state is multicast (606) to the second node group 246. In a real In an embodiment, when the first state is not periodically received (602) from one of the management nodes of the first group 206, the second node group 246 is divided from the first node group 206.
It is determined (608) whether additional status is received. For example, a node belonging to the second group 246 may multicast (606) the first state, and the node may also receive one or more states from one or more nodes belonging to the second group 246. If the method 600 determines (608) that the received state or states are the same as the first state, then it is determined (610) whether the received state or states exist for a greater amount of time than the first state exists. In other words, it is determined (610) whether the first state is older than the received state or states. If the received state or states are older than the first state, the method 600 ends. However, if the node has not received one or more states or if the received state or states are not older than the first state, the node in the first state can be grouped as one of the second node group 246 Management node.
The first key group can be re-encrypted (612) into a second key group. In one embodiment, the first key group is randomly re-encrypted (612) into the second key group. A second state including the second key group can be multicast (614) to the second node group 246 periodically. In one embodiment, the nodes in the second group 246 re-encrypt (612) the first key group into the second key group.
It can be determined (616) whether a third state different from the second state is received. The third state may include a third key group associated with the first node group 206. If a third state is not received, the second state continues to be multicast (614) periodically to the second node group. If a third state is received, it is determined 618 whether the amount of time that the third state exists is greater than the amount of time that the second state exists. In other words, it is determined (618) whether the third state is higher than the first The second state is old. If it is determined that the second state is older than the third state, the second state continues to be multicast (614) to the second node group periodically.
However, if it is determined (618) that the third state is older than the second state, a packet including a re-encryption command can be multicast (620) to the second node group 246. The re-encryption command can instruct the second node group 246 to re-encrypt the second key group into the third key group. In one embodiment, the re-encryption command is encrypted with the second key group. The node including the second key group can decrypt the re-encryption command. In one embodiment, the nodes that previously belonged to the second node group 246 can now include a third key group, which can be associated with the first node group 206. In one embodiment, KEK 104 can protect each key group included in each state. In one embodiment, nodes including KEK 104 can receive each key group and each state.
The seventh diagram is a block diagram of hardware components in a node or server 702 that can be configured according to an embodiment. In some implementations, the node or server 702 may be an embedded device. The node or server 702 is usually a computing device. The computing device may include (but is not limited to) a laptop computer, a desktop personal computer (PC), a personal digital assistant (PDA), a tablet PC, a mobile phone, and so on. A processor 704 may be provided to control the operation of the node/server 702 (including other components coupled to the processor 704 via a bus 710). The processor 704 can be implemented as a microprocessor, microcontroller, digital signal processor, or other devices known in the art. The processor 704 performs logic and arithmetic operations based on the program codes stored in the memory. In some embodiments, the memory 706 may be an on-board memory included in the processor 704. For example, microcontrollers usually include some on-board memory.
The node/server 702 may also include a network interface 708. The network interface 708 facilitates communication between the node/server 702 and other devices connected to the network 122, which can be a pager network, a mobile phone network, a global communication network, the Internet, a computer network Roads, telephone networks, etc. The network interface 708 operates in accordance with standard protocols for the applicable network 122.
The node/server 702 may also include a memory 706. The memory 706 may include random access memory (RAM) for storing temporary data. Alternatively or additionally, the memory 706 may include a read-only memory (ROM) for storing more permanent data (such as fixed codes and configuration data). The memory 706 can also be implemented as a magnetic storage device (such as a hard disk drive). The memory 706 can be any type of electronic device capable of storing electronic information.
The node/server 702 may also include one or more communication ports 712, which facilitate communication with other devices. The node/server 702 may also include an input/output device 714 (such as a keyboard, a mouse, a joystick, a touch screen, a display screen, a speaker, a printer, etc.).
Of course, the seventh figure only illustrates one possible configuration of a node/server 702. Various other architectures and components can also be used.
Any of a variety of different processes and technologies can be used to represent information and signals. For example, the data, instructions, commands, information, signals, bits, symbols, and chips referred to throughout the above description can be represented by voltage, current, electromagnetic waves, magnetic fields or particles, light fields or particles, or any combination thereof .
Various illustrative logic blocks, modules, circuits, and algorithm steps described in conjunction with the embodiments disclosed herein can be implemented as electronic hardware, computer software, or a combination of both. In order to clearly illustrate the interchangeability of hardware and software, various descriptive components, blocks, modules, circuits, and steps have been listed above The text is usually described in terms of its functionality. Whether this functionality is implemented as hardware or software depends on the specific application and design constraints imposed on the entire system. Skilled technicians can implement the described functionality in varying ways for each specific application, but these implementation determinations should not be construed as causing a departure from the scope of the present invention.
General-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field programmable gate arrays (FPGA) or other programmable logic devices designed to perform the functions described in this article can be used. Discrete gates or transistors, discrete hardware components, or any combination thereof implement or execute various illustrative logic blocks, modules, and circuits described in conjunction with the embodiments disclosed herein. A general-purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. The processor can also be implemented as a combination of computing devices (for example, a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors combined with a DSP core, or any other such configuration ).
The steps of the method or algorithm described in conjunction with the embodiments disclosed herein can be directly embodied by hardware, a software module executed by a processor, or a combination of the two. A software module can reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, scratchpad, hard disk, removable disk, CR-ROM, or known in the art Any other form of storage media. An exemplary storage medium is coupled to the processor so that the processor can read information from the storage medium and write information to the storage medium. In the alternative, the storage medium may be an integral part of the processor. The processor and storage medium may reside in an ASIC. The ASIC can reside in a user terminal. In the alternative, the processor and the storage medium may be used as discrete components and reside in a user terminal.
The methods disclosed herein include one or more steps or actions for achieving the described methods. The method steps and/or actions can be interchanged without departing from the scope of the present invention. In other words, unless a specific step or sequence of actions is required for proper operation of the embodiment, the sequence and/or use of specific steps and/or actions can be modified without departing from the scope of the present invention.
Although the specific embodiments and applications of the present invention have been illustrated and described, it will be understood that the present invention is not limited to the precise configurations and components disclosed herein. Various modifications, changes and changes that will be obvious to those skilled in the art can be made in the configuration, operation and details of the method and system of the present invention disclosed herein without departing from the spirit and scope of the present invention.
<p>102Server</p><p>104Key Exchange Key (KEK)</p><p>106Group A</p><p>108Node A</p><p>110Node B</p><p>112Node C</p><p>114Group A Key</p><p>116Node N</p><p>118Group request</p><p>120KEK request</p><p>122Internet</p><p>204KEK</p><p>206First group</p><p>208Node A</p><p>210Node B</p><p>212Node C</p><p>214Group A Key</p><p>214Group A Key</p><p>214Group A Key</p><p>224Node D</p><p>226Node E</p><p>228Node F</p><p>230Node G</p><p>234Status</p><p>236Timing parameter A</p><p>238Identifier A</p><p>240Group A key parameters</p><p>242Router A</p><p>244Router B</p><p>246The second group</p><p>304KEK</p><p>314Group A Key</p><p>326Node E</p><p>328Node F</p><p>330Node G</p><p>334Status</p><p>341Group B key parameters</p><p>346The second group</p><p>350Group B Key</p><p>352Identifier F</p><p>354Re-encryption</p><p>404KEK</p><p>408Node A</p><p>415Group C Key</p><p>426Node E</p><p>430Node G</p><p>434Status</p><p>437Timing parameter C</p><p>438Identifier A</p><p>440Group C key parameters</p><p>441Group B key parameters</p><p>444Router B</p><p>450Group B Key</p><p>452Identifier F</p><p>504KEK</p><p>515Group C Key</p><p>526Node E</p><p>528Node F</p><p>530Node G</p><p>532Packet</p><p>546The second group</p><p>550Group B key</p><p>554Re-encryption</p><p>560Re-encryption command</p><p>702Node/Server</p><p>704Processor</p><p>706Memory</p><p>708Network Interface</p><p>710Bus</p><p>712Communication port</p><p>714Input/Output Device</p>
Exemplary embodiments of the present invention will become more fully apparent from the following description and the appended patent scope in conjunction with the accompanying drawings. Please understand that these drawings only depict exemplary embodiments and therefore will not be considered as limiting the scope of the present invention. Exemplary embodiments of the present invention will be additionally described in exact and detail by using the accompanying drawings. Among them: the first figure is a block diagram, which illustrates an embodiment; this embodiment transmits a key exchange key (KEK) to the server of one or more nodes in a secure multicast group; The second figure is a block diagram which illustrates an embodiment; this embodiment divides the second node group from a first node group; the third figure is a block diagram which illustrates one of the second node groups. The embodiment; the fourth figure is a block diagram, which illustrates an embodiment; the embodiment Connect one of the management nodes of the second node group to the first node group; Figure 5 is a block diagram illustrating an embodiment; this embodiment reconnects the first group to the second group; Figure 6 It is a flowchart illustrating an embodiment of a method; the embodiment of the method is used to broadcast a re-encryption command to one or more nodes in a segmented node group; and the seventh diagram can be used for A block diagram of hardware components in a node configured according to an embodiment.
Every citation, both ways
| Document | Relation | Office |
|---|---|---|
| TWI223532 | Cites | Taiwan Province of China |
| TWI248736 | Cites | Taiwan Province of China |
| TW200518516 | Cites | Taiwan Province of China |
| US6195751B1 | Cites | United States of America |
| US6529515B1 | Cites | United States of America |
| US6742045B1 | Cites | United States of America |
| US6870844B2 | Cites | United States of America |
16 members in 8 offices
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 11624521 | United States of America | – | |
| 62452107 | United States of America | A |
Members16
| Document | Office | Kind | |
|---|---|---|---|
| US2008175387A1 | United States of America | A1 | |
| WO2008088084A1 | World Intellectual Property Organization (WIPO) | A1 | |
| TW200840297A | Taiwan Province of China | A | |
| WO2008088084A8 | World Intellectual Property Organization (WIPO) | A8 | |
| EP2104989A1 | European Patent Office (EPO) | A1 | |
| KR20090110334A | Republic of Korea | A | |
| CN101641903A | China | A | |
| JP2010517330A | Japan | A | |
| US7840810B2 | United States of America | B2 | |
| RU2009131314A | Russian Federation | A | |
| RU2420894C2 | Russian Federation | C2 | |
| KR101056104B1 | Republic of Korea | B1 | |
| CN101641903B | China | B | |
| JP5033188B2 | Japan | B2 | |
| TWI389528BThis record | Taiwan Province of China | B | |
| EP2104989A4 | European Patent Office (EPO) | A4 |
1 legal event, as the office reported them to INPADOC
Events
| Event | Code | |
|---|---|---|
| Annulment or lapse of patent due to non-payment of feesLapsedMM4A | MM4A |
Numbers
- Publication
- I389528
- Application
- 97102068
Titles2
- English
- SYSTEMS AND METHODS FOR REJOINING A SECOND GROUP OF NODES WITH A FIRST GROUP OF NODES USING A SHARED GROUP KEY
- Chinese
- 用以重新連接節點群組的方法、電腦系統及電腦可讀式媒體
Classification
- CPC, 6
- H04L9/0833
- H04W12/04
- H04L9/0891
- H04L9/0822
- H04L2209/80
- H04L63/065
- IPC, 1
- H04L29 08