# A V2V Identity Authentication and Key Agreement Scheme Based on Identity-Based Cryptograph
## 5 Lightweight V2V Identity Authentication and Key Agreement Scheme
### V2V Identity Authentication and Key Agreement Process  
In the C-V2X system, to ensure the communication equipment is registered equipment, identity authentication is implemented between the equipment. It is necessary to encrypt the communication data between the equipment (vehicle) to achieve data confidentiality and integrity. In the C-V2X system, the vehicle may be moving rapidly, and the process of encrypting communication data should be as fast as possible to reduce communication delay and enhance the real-time performance. Therefore, the symmetric encryption algorithm is used in V2V communication. When Equipment (vehicle) A needs to communicate with Equipment (vehicle) B, A sends an authentication request to B. [PERSON] and B authenticate each other's identities based on identity-based cryptographic technology and synchronously negotiate the subsequent encrypted working key in the authentication process. Through the authentication protocol, the equipment can confirm whether the other equipment is registered and obtain the private key from KMC. Only the equipment with a private key that matches its VID can complete the authentication process; otherwise, the authentication fails. In the authentication process, [PERSON] sends a random number encrypted by the B public key to B and confirms whether [PERSON] decrypted successfully by verifying the response data from B. [PERSON] verifies A the same way. A and B interact with private random numbers in the authentication process. The  
Figure 2: Equipment Registration and Private Key Generation Process. random numbers will be used as the material for generating the working key. The identity authentication and key agreement process is shown in Figure 3.  
(1) Equipment A sends its VID (_VID A_) to Equipment B through the PC5 interface, and _VID A_ is the Equipment A public key. (2) Equipment B sends its VID (_VID B_) to Equipment A through the PC5 interface, and _VID B_ is the Equipment B public key. (3) Equipment A generates a random number, _r1_, obtains the system time, \(T\), and calculates the authentication message, _msg1_, using _VID A_, _r1_, and \(T\). Equipment A sends  
Figure 3: V2V Identity authentication and key agreement process. msg1_ to Equipment B, _pubkb_ is Equipment B public key (_VID B_), and _IBCEnc_ represents the asymmetric encryption function. The _msg1_ calculation method is as follows. \[msg1=IBCEnc_{pubkb}(VID~{}A\|r1\|T) \tag{1}\]  
(4) Equipment B decrypts _msg1_ (received from equipment A) with its private key, _prikb_, obtains _r1_ and \(T\) from _msg1'_; _prikb_ is Equipment B's private key, and _IBCDec_ represents asymmetric decryption function. Equipment B verifies whether \(T\) is expired. If \(T\) is expired, it terminates the process. The _msg1'_ calculation method is as follows. \[msg1^{\prime}=IBCDec_{prikb}(msg1) \tag{2}\]  
(5) Equipment B generates a random number, _r2_, calculates the authentication message _msg2_ using _VID B_, _r1_, _r2_, and \(T\), and sends _msg2_ to Equipment A; _pubba_ is Equipment A's public key. The _msg2_ calculation method is as follows. \[msg2=IBCEnc_{pubka}(VID~{}B~{}\|~{}r1~{}\|~{}r2\|T) \tag{3}\]  
(6) Equipment A decrypts _msg2_ (received from Equipment B) with its private key, _pika_ and obtains _r1_, _r2_, and \(T\) from _msg2'_. Equipment A verifies whether \(T\) has expired. If \(T\) is expired, it terminates the process. Equipment A verifies whether \(T\) is the same as the \(T\) in _msg1_ to determine whether the response is the same session. If they are different, it terminate the process. (7) Equipment A verifies whether _r1_ sent by Equipment B is _r1_ generated previously. If not, it terminates the process. (8) Here, Equipment A completes the authentication of Equipment B. Equipment A calculates the working key, _wk_, encrypts the authentication success message with working key, sends the response message, _msg3_, to Equipment B. _Enc_ represents symmetric encryption function, and \(\oplus\) represents XOR function. The _wk_ and _msg3_ calculation methods are as follows.