## 3 System Model
### Join the Network  
When the vehicle enters the V2X network, it will receive a broadcast message from RSU with network information. If the vehicle is 5G-enabled, it would directly send Join Request to Home TA with network information. If the vehicle does not have 5G connectivity, it will use Wi-Fi ad hoc to connect to RSU and send the Join request via RSU. The initial interaction between the joining Vehicle and the V2X network is shown in Figure 2.  
Home TA exposes the Join request functionality via REST API over HTTPS. Since the vehicle is registered with Home TA, it can authenticate the join request. In practice, this can be done using any API security mechanism. However, we proposed to use a PKI-based authentication scheme. Then, the Home TA securely communicates with all third-party TAs on behalf of the joining vehicle and requests partial shares and witnesses. Communication between cloud TAs could be via REST API over HTTPS and could be done in an internal cloud network. This enables the secure transfer of partial secrets to the Home TA. Then, the Home TA can respond to the joining vehicle with all partial shares and witness sets. Since communication between the vehicle and the Home TA is via HTTPS, we propose that it does not need any extra encryption. However, V2X networks such as emergency services or the military, where a higher level of security is required for the Join response, could be encrypted using any asymmetric encryption algorithm. Figure 3 shows the sequence diagram of a vehicle joining the network via an RSU using home TA, local TA, and n number of third-party TAs. Figure 2: Initial interaction between the joining vehicle and the V2X network. Let \(TA_{i}\) i = 0... n, where n is number of trusted authorities and \(TA_{0}\) is the Home TA. JV is a new vehicle that wants to access the V2X network. The vehicle joining algorithm is shown in Algorithm 1. ``` JV: Join request (JV)  When a Vehicle (JV) enters the V2X network, it receives a broadcast message from RSU with network information. Then, it creates a join request (JR) using the following steps: Step 1: JV creates its id (ID\({}_{jv}\)) using Equations (8) and (9) Step 2: JV creates Join request (JOIN\({}_{\text{REQ}(jv)}\))with ID\({}_{jv}\). An example JSON join request is shown below. { \"id\": ID\({}_{jv}\), \"networkId\": <V2X network Id> } Step 3: JV sends JOIN\({}_{\text{REQ}(jv)}\) to the \(TA_{0}\) (Home TA) as a HTTPS POST request. Home TA: Join response. Home TA calls REST API provided by all third-party TAs on behalf of the joining vehicle and request partial shares and witnesses. An example JSON partial share request is shown below. { \"id\": ID\({}_{jv}\), \"networkId\": <V2X network Id>} Step 4: Home TA sends partial share request to Each \(TA_{i}\) as a HTTPS POST request. Step 5: Upon receipt a partial share request, each \(TA_{i}\) calculates partial share (\(Prk_{jn_{i}}\)) using Equation (3). Step 6: Then, each \(TA_{i}\) sends a JSON response to the Home TA with partial share and witnesses. An example of a JSON partial share response is shown below. { \"id\": ID\({}_{jv}\), \"share\": \(Prk_{jn_{i}}\), \"witnesses\": [\(g^{a_{i_{0}}}\), \(g^{a_{i_{1}}}\), \(\ldots\), \(g^{a_{i_{2}}}\)] } Step 5: Upon receipt of all partial share responses, the Home TA constructs a Join response (JOIN\({}_{\text{RSP}(jv)}\)). An example of a JSON Join response is shown below. { \"id\": ID\({}_{jv}\), \"shares\": [\(g^{a_{i_{0}}}\), \(g^{a_{i_{1}}}\), \(\ldots\), \(g^{a_{i_{1}}}\)], \"shares\": [\(g^{a_{i_{0}}}\), \(g^{a_{i_{1}}}\), \(\ldots\), \(g^{a_{i_{2}}}\)],... \"share\": \(Prk_{jn_{i}}\), \"witnesses\": [\(g^{a_{i_{0}}}\), \(g^{a_{i_{1}}}\), \(\ldots\), \(g^{a_{i_{1}}}\)],... ] ] ] Step 6: Send JOIN\({}_{\text{RSP}(jv)}\) to JV. JV: Join response processing. Step 7: For each \(Prk_{jn_{i}}\) in JOIN\({}_{\text{RSP}(jv)}\), verify a validity of partial share received using verifiable secrete sharing, using Equation (10).