# Signature Split Method for a PQC-DSA Compliant with V2V Communication Standards
## 3 Proposed Simulation
### Proposed Split Signature Transmission  
In this section, we discuss a methodology to apply PQC-DSA that has large signature sizes such as that of Crystals-Dilithium in V2V protocols. After this, we apply our methodology with V2 Verifier, which can simulate the WAVE protocol. We do not consider changing any component of the payload, as the payload must maintain the IEEE 1609 standard. In the case of Crystals-Dilithium, which requires the signature to be split and transmitted in WAVE protocol, it is necessary that the signature split with up to 4 payloads for transmitting. The headers of the second and lower payload are the same as those of the first payload except the signature; therefore, our goal is to allow the local car to correctly recover the split signature from the payloads and perform signature verification. The two methods proposed in this paper are as follows:  
* _Naive split way_ The first method involves a very simple means for dividing the signature, which is to keep the size of the signature less than 1400 bytes, excluding the header information or payload (approximately 500 bytes). Please note that maximum packet size of the WAVE protocol is 2000 bytes. For example, depending on the level of security of the Crystals-Dilithium, signatures can be split into 2, 3, and 4 blocks (the signature sizes of Crystals-Dilithium are 2420, 3293, and 4595 bytes for security level 2, 3, and 5, respectively). We add an an 8-bit order-bit to the MSB of the partitioned block. Signature verification of Crystals-Dilithium adds a block alignment process, but this is not expensive because in the sorting process, only 4 blocks are searched based on security level 5. _\"Simple split way\"_ is very simple, but not very good in terms of efficiency. As the length of the signature increases, the number of order-bits required for sorting increases; therefore, if an algorithm with a very large signature size is proposed in the future, such as SPHINCS+, the amount of signature that can actually be transmitted will decrease, which is an inefficient method. * _Split way for Crystals-Dilithium_ We aim to analyze the structure of signature of Crystals-Dilithium and observe the signature length for each security level. Algorithm 1 shows the pseudocode of the overall structure of _\"Split way for Crystals-Dilithium\"_. As analyzed in Section 2.1, the signature consists of \(\mathbf{z}\), \(h\), and \(c\). Since the combined sizes of \(c\) and \(h\) are less than 120 bytes, they can be composed of one block. In addition, since \(2\times 640\) bytes can be additionally assigned to its block, the first block can be composed of \(c\), \(h\), and two packed polynomials of \(\mathbf{z}\). From the second block, we continue to construct two packed polynomials of \(\mathbf{z}\). Based on security level 5, if we assign 1 bit to determine the first block and 2 bits to determine the order of each block, the order-bit, which is in the MSB of the block, can be composed of a total of 3 bits. Compared to the above \"Simple split way\" method, the number of blocks is not changed. However, this method has advantages in the long run. In V2 Verifier, the local car receives multiple signature blocks in random order. At this time, the local car checks for the existence of the first block through MSB 1-bit, and if the first block \(c\) and \(h\) are divided, hint information is collected using \(h\) data. After this, the unpacking process is performed on the two packed polynomials of \(\mathbf{z}\) in the first block. If the received signature block is not the first block, the unpacking process can be started immediately because there are only two polynomials in the second and lower block. In the _\"Simple split way\"_ approach, one can wait for the receipt of all signature blocks and start the verification process of Crystals-Dilithium after sorting the blocks. However, our method can start the signature verification process before all the blocks arrive.