## 6 Results
### Experimental Results  
To verify the efficiency, we performed our experiments on a personal computer with an AMD Ryzen 5 3600 3.6 GHz processor with 8 GB memory and running on the Ubuntu Desktop-20.04.1-LTS operating system using python language. We used the charm-crypto library to implement HE operations, PRE operations and VerM operations and used Microsoft SEAL to implement LHE operations. In the experiment, we set the security parameter of LHE to 4096 and that of HE to 1024. We tested the efficiency for the four entities when the matrix size was (\(10\times 10,50\times 50,100\times 100,150\times 150\)). The average time for each experiment was obtained by running it multiple times as shown in the graphs. Figure 3 illustrates the time cost for the function owner, where the blue line presents the time for encrypting the matrix, the red line presents the time for preparing the generation of the verification data, and the gray line represents the time for the generation of the verification data. As shown in Figure 3, the function owner efficiently prepares the generation of verification data once for all parties. The primary overhead is the encryption of matrix parameters; however, since the function owner only needs to encrypt the function once for all parties, the computation cost can be amortized. Note that the vertical axis is on a logarithmic scale with a base of 10, and the same applies to Figures 4 and 5. Figure 4 illustrates the time cost for \(CSP_{1}\). The blue line represents the time for encrypting the ciphertext, the red line represents the time for encrypting the masked ciphertext, and the yellow line represents the time for computing the first part of the result ciphertext. As shown in Figure 4, the time for re-encryption and encrypting masks is nearly identical to that for the function owner to encrypt the matrix, and the homomorphic operations are highly efficient. The computation involving LHE ciphertexts is the most time-consuming, which would significantly burden the user if performed locally. Therefore, it was outsourced to the cloud server for computation. Figure 5 illustrates the time cost for \(CSP_{2}\), where the blue line represents the time for decrypting the masked ciphertext, and the red line represents the time computing the second part of the result ciphertext. As can be seen from Figure 5, the computation  
Figure 3: The time cost for the function owner. with LHE ciphertexts is the most time-consuming, which is the same as \(CSP_{1}\), so it was outsourced to the cloud server. Figure 6 illustrates the time cost for the request user, where the blue line represents the time for encrypting their input vector and the red line represents the time for decrypting the final result ciphertext. As shown in Figure 6, the encryption and decryption for users are very efficient. Figure 7 illustrates the time cost for verification, where the blue line represents the time for private verification, and the red line represents the time for public verification. As shown in Figure 7, the process of private verification is quick and efficient. Public verification, on the other hand, may take more time but is still accessible for the public. Figure 4: The time cost for \(CSP_{1}\). Figure 5: The time cost for \(CSP_{2}\). Next, we present the communication costs in Table 4, where the matrix size is \(m\times d\), \(N\) is the parameter in HE, and \(R_{p}\) is the ring in LHE.