## 7 Multicast Communication
### Key Management for Multicast Communication  
The multicast mode is an option for the transmission of electrical price information as well as remote load control in all different kinds of AMI messages The users who subscribe to a DR project are not permanently set; hence, the group's members that are designated to receive multicast messages should be updated at regular intervals (for example, once every day or once every week) in accordance with the current state of the electric power utilities. As a result, the key management for multicast communication has been split up into two distinct pieces. The first is comparable to a broadcast communication's key. Additionally, each new session must begin with the production of the multicast communication session key. The group key and extra value should be generated and updated with the help of unicast communication for the second key, taking into mind that users might participate in or withdraw from a DR project. The generation and use of session keys within a DR project group are quite similar to broadcast communication. The main factor that distinguishes the receivers is their range. The process for generating a session key is shown in Figure 8.  
It is necessary to generate a session key initially. In steps 1.1 and step 1.2, the value GCountj is used to determine the group key gkj, which is used to generate the session key gskj. The information for transfer is encrypted and signed using this session key before it is sent in Steps 1.3 and 1.4. The receipts of DR project j receive data that have been encrypted together with the signature value. In step 3.1 and step 3.2, the receipts in the DR project regenerate the session key gskj. It is possible to decode the data and verify the signature using the session key provided in Step 3.3 and step 3.4. When a user makes the decision to participate in or withdraw from a DR project, the user is responsible for sending a message to u0. After receiving the acknowledgment, the group key is updated. Figure 8 is an illustration of the procedure as a whole. The implementation of this sub-process makes use of unicast messages. The information includes a total of seven steps, as shown in Figure 9.  
Step 1 is responsible for encrypting and signing the requested information. The request message is sent to u0 in step 2. After receiving the request from the user in step 3, the u0 must first decrypt and validate the request before examining it to decide whether it is a request to subscribe to project j or to exit the project. When the user requests to leave the project, DR projects could be incompatible, and the user must abandon the one they are currently working on in order to subscribe to the new one. \begin{table}
\begin{tabular}{c c c} \hline
**Variable** & **Refreshing Period** & **Refreshing Algorithm** \\ \hline \(K_{0}\) & Periodically & \(K_{0}=H(K_{0})\) \\ \hline \(Count_{0}\) & Every session & \(Count_{0}=Count_{0}+1\) \\ \hline \(C_{0}\) & Every session & \(C_{0}=H(Count_{0})\) \\ \hline \(sk_{0}\) & Every session & \(sk_{0}=H(K_{0}\oplus C_{0})\) \\ \hline \end{tabular}
\end{table} 
Table 3: Refreshing policies for keys and variables in broadcast communication. Figure 8: Steps for generation and usage of a session key in the DR project. Figure 9: Seven steps for regeneration and refreshment of keys in the event that users request to leave or join a DR project. In step 4, the u\({}_{0}\) response to the user's request and creates a new key for the group, as well as an additional value in step 5. In step 6, the u\({}_{0}\) transmit response sends a message to the user. Step 7 is responsible for notifying the user that the request was sent to the DR project and is responsible for determining whether or not it was successful. In the case that certain people join or leave the DR project, it is important to regenerate the group key in addition to the extra value before the update time. Figure 10 depicts steps 8 through 10 for regenerating and dispersing the new group key with an additional value.