Abstract
Private information retrieval (PIR) enables a client to retrieve a specific element from a server’s database without disclosing the index that was queried. This work introduces three improvements to the efficient single-server PIR protocol Spiral. We found that performing a modulus switching towards expanded ciphertexts can improve the server throughput. Secondly, we apply two techniques called the composite algorithm and approximate decomposition to Spiral to further improve it. We conduct comprehensive experiments to evaluate the concrete performance of our protocol, and the results confirm an approximately 1.7 times faster overall throughput than Spiral.
1. Introduction
The private information retrieval (PIR) protocol [] involves a server holding a database and a client wishing to retrieve a record from the without revealing which record they are querying. PIR protocols are widely applied in various domains, including but not limited to anonymous messaging [,], private contact tracing [], safe browsing [,], and more [].
Chor et al. [] introduced the concept of PIR and in recent years, homomorphic encryption (HE)-based PIR protocols have become highly efficient. Homomorphic encryption enables the hiding of the query message but performs meaningful computations. Specifically, the server holds a database and the client encrypts an index to query the database homomorphically, ensuring that the response is encrypted for the client to decrypt locally.
Kushilevitz and Ostrovsky [] proposed the first construction of single-server PIR. Their construction applies a linearly homomorphic encryption scheme to fetch records. The database of N records is structured as a v-dimension hypercube. The communication of this construction is roughly where F is the expansion factor of the encryption scheme. The server has to perform roughly homomorphic operations to answer each query from the client.
To instantiate Kushilevitz–Ostrovsky construction, PIR protocols in recent years have applied a well-known, highly efficient and post-quantum safe scheme called Ring Learning with Errors () encryption. For example, XPIR [] instantiates to achieve a balance between communication and computation costs. However, in this case, the communication reaches tens of MB per online query for a database of hundreds of MB, for the client has to upload ciphertexts. Large comunication limits the practical deployment of PIR.
This issue was not solved until Chen et al. [] introduced an expansion algorithm. They found that automorphism can eliminate some interval coefficients of the message polynomial in ciphertext. The coefficients of the polynomial can also be rotated by i positions if this ciphertext is multiplied by a monomial . By iteratively running the automorphism algorithm and rotation (on coefficients), the server obtains many ciphertexts that encrypt each coefficient of the input message polynomial. The expansion algorithm greatly reduces the online query size to around tens of KB, which is roughly one thousand times smaller than prior construction. As a trade-off, the server needs to store some client-dependent key-switching keys for these automorphisms.
Subsequently, MulPIR [], OnionPIR [], and Spiral [] additionally use fully homomorphic encryption [] to further reduce the communication cost by a factor of F, and improve the server throughput, i.e., database size divided by server response time. For example, the query size of Spiral is only around 14 KB, and the server throughput reaches more than 300 MB/s. Spiral leverages a series of works, including the expansion algorithm [], Kushilevitz–Ostrovsky’s dimension folding [] as well as the Gentry–Halevi blueprint [], and multiplication [], and thus outperforms previous solutions, e.g., SealPIR [], MulPIR [], and OnionPIR []. The workflow in Spiral primarily includes a query expansion algorithm and two folding algorithms. Specifically, the server expands the query to a sequence of ciphertexts and a sequence of ciphertexts. The ciphertexts are used for multiplying the database , which is inherent. The multiplication is for subsequent folding and ultimately returns a smaller response.
Spiral is applicable to a wide range of scenarios, e.g., small and large records, and small and large databases. It also has significant small communication and client computation, and the highest rate, where rate refers to plaintext size divided by response ciphertext size. This allows it to be deployed in most application scenarios where private information retrieval is required. Recently, Li et al. [] proposed HintlessPIR and Menon and Wu [] proposed YPIR. These two PIR protocols eliminate the need to store a hint in the client side as in Simple/Double PIR [], and they outperform Spiral in terms of server throughput. Moreover, Luo et al. [] proposed a novel -based PIR protocol called KsPIR that also outperform Spiral in terms of server throughput. However, HintlessPIR [], YPIR [] and KsPIR [] do not outperform Spiral in all aspects, especially in terms of communication. We believe that Spiral still offers its unique advantages for applications when the client is resource constrained, or the communication is very expensive.
Our Contribution
The start point of our work is Spiral. Following the design of Spiral [], we propose three optimizations that can accelerate the server’s computation.
- First, we found that the noise introduced by query expansion would impact the subsequent plaintext–plaintext multiplications and ciphertext–ciphertext multiplications. Therefore, we add a modulus switching towards those expanded ciphertexts and ciphertexts. In this way, we propose a Residue Number System (RNS) variant of Spiral.
- Secondly, we apply two existing techniques called the composite algorithm [] and approximate decomposition []. The former is used to execute the algorithm on a composite modulus of two -friendly moduli. The latter is first proposed for the torus variant of and samples in TFHE [] and it works well in our protocol.
- We implement our scheme in C++ with library [] to evaluate the concrete performances. Particularly, our protocol confirms an approximately faster online runtime than that of Spiral. This demonstrates the practicality of our work, and more details are presented in Section 5.
Those three optimizations are easy to understanding and highly efficient. Our work improve Spiral’s server throughput while retaining its advantages, i.e., its significant small communication and client computation, and its high rate, which demonstrates its unique advantages even when compared with other recent state-of-the-art PIR protocols such as HintlessPIR [], YPIR [], and KsPIR [].
2. Preliminary
2.1. Notations
We use , , and to denote the set of natural numbers, integers and real numbers, respectively. log refers to the base-2 logarithm. For a positive , let be the set of integers and let be the set for any integers . For , and denote the rounding to the lower and closest integer, respectively.
In this paper, a vector is always a column vector by default and is denoted by a bold lower-case letter, e.g., . We use to denote the i-th element of . For a vector with k entries, we start the index from 0, i.e., , and the last element is . For convenience, we let . For a v-dimensional hypercube () , indexes the -th position, where starts from 0.
We use to denote the -norm of , i.e., . For a matrix , denotes its i-th column vector without extra instructions, denotes the transpose of , . Given some set S, denotes the set of all matrices with entries in S.
For a set A and a probability distribution , we use to denote that a is uniformly chosen from A and to denote that a is chosen according to the distribution .
2.2. Lattice-Based Encryptions
Regev introduced the Learning with Errors () problem [], whose hardness can be based on some lattice problems. Consider the distribution , where is a distribution over and for modulus . A sample from the distribution is of the form , where , and .
Definition 1
(). Let be a distribution over , and let be an integer modulus. The decision version of is given m samples with the form of and decides whether these pairs are from the uniform distribution or .
Another important variant is in the ring setting, known as the Ring Learning with Errors () problem []. In this work, we only focus on the polynomial ring , where d is a power of 2, also known as the -th cyclotomic ring.
For the problem, now we present the distribution . Let be a distribution over and , and a sample from is of the form where , and . Then, the problem is presented as:
Definition 2
(). For security parameter , let be an integer modulus and be a distribution over . The task of decision is given m pairs of , and decides whether these pairs are from the uniform distribution or .
The hardness of the above two problems have been extensively studied in the NIST’s post-quantum standardization process in recent years. There are a number of plausible encryption schemes based on or [,].
In the following, we use two basic encryption schemes based on the — (1) and (2) . For convenience, we denote as a message hidden by an sample, and sometimes the secret s is specified by . The similar notation is applied to encryption. Further, we denote as the noise of ciphertext , and the same is true for . Clearly, the security of these schemes can be based on the hard problems of (Ring) Learning with Errors. These schemes have been widely used in the lattice-based cryptography [,] and FHE [,,,], which imply various homomorphic operations.
2.3. Useful Algorithms
Here, we present some useful notations and algorithms for our PIR protocol. Let where d is a power of two.
2.3.1. Plaintext–Ciphertext Multiplication
Given a plaintext , and an ciphertext where and , the plaintext–ciphertext multiplication is defined as . The output is an ciphertext with a noise growth.
2.3.2. Ciphertext–Ciphertext Multiplication
Given an ciphertext and an ciphertext where and , the external product of ciphertext–ciphertext multiplication [] is defined as . The output is an ciphertext with a noise growth.
Here, we recall several useful algorithms for Spiral [] and our design: (1) key-switching, (2) sxpansion, and (3) Conversion from (s) to .
2.3.3. Key-Switching
The procedure is denoted as (Key-switching) with the following algorithms:
- (). Given an ciphertext and key-switching key as input, the algorithm outputs an ciphertext by computing
This idea was proposed by [] and was later used widely in the research of FHE [,,,].
2.3.4. Expansion
Given an ciphertext , there is an algorithm that expands it to an r ciphertext , where and . Through the expansion algorithm, the server obtains many ciphertexts that encrypt each coefficient of the input message polynomial . We use to denote this expansion process, where is a proper key-switching key for these automorphisms.
2.3.5. Conversion from (s) to
According to [], there is an algorithm that given ℓ ciphertexts, namely and a proper key-switching key, outputs an ciphertext , where is the decomposition base. We simply call this algorithm s-to-.
2.4. Private Information Retrieval
Here, we describe the syntax of private information retrieval (PIR). PIR is a protocol between two stateful machines, namely the server and the client with the following structure. The server holds a database of size , i.e., the number of entries, while the client would like to retrieve for some private . Implicitly, the security parameter is taken in all procedures below.
- Setup (): This phase is run one time per database. Particularly, the client receives nothing and the server receives a database of size . The server can preprocess to generate some public things, e.g., preprocess the database to a preprocessed , thus it can accelerate the online computation.
- Keygen: The client generates a public and secret key pair . Next, the client sends the public key to the server while privately storing the corresponding secret key . Generally speaking, the usually consists of some key-switching keys and the is used for encryption and decryption.
- Query (): Once given an indice , the client computes an online query and sends the query to the server.
- Response : Input, an online query and the public key from the client, and preprocessed , the server computes a response and sends it back to the client.
- Recover : Input an answer and the secret key , the client outputs the desired record d.
In general, the Setup phase is run one time per database for all clients, i.e., is generated based on the database , which is not relevant with client’s . A PIR protocol formed by the above algorithms should satisfy the following two basic properties: correctness and security.
2.4.1. Correctness
The correctness is satisfied if the client always recovers the desired record, i.e., regardless of the database and indices, and only a negligible probability of decryption failure is allowed. The formal definition of correctness is as follows.
For all configurable , and database size , for all databases and all indices , we say that the PIR protocol is correct if and only if it satisfies
where Response, Query(), Keygen and Setup().
2.4.2. Security
We define that a single-server PIR scheme satisfies security if and only if for any probabilistic polynomial-time (PPT) adversary (such as the server), for any of size , the adversary’s view is computationally indistinguishable for the following experiments: If the query is the encryption of , the adversary outputs 1, otherwise it outputs 0. Given a correct plaintext–ciphertext pair or an unmatched pair, the adversary’s advantage is negligible. Next, we can give the formal definition of security, as follows.
For all integer and all adversaries , there exists a negligible function such that for all configurable and all index , we say that the PIR protocol is safe if and only if the advantage of the adversary satisfies
where and other materials are generated as above.
2.5. Spiral Protocol
The single-server PIR scheme Spiral [] follows the Gentry–Halevi [] blueprint. They rely on two basic encryption schemes: the encryption scheme and the encryption scheme. After a query expansion phase, the server performs plaintext–ciphertext multiplications in the first dimension folding. Then, the server uses an external product to perform ciphertext–ciphertext multiplications, which is also called the subsequent dimensions folding. Thanks to the expansion algorithm and the low noise growth of the external product, Spiral as well as its family outperforms prior PIR protocols, e.g., SealPIR [], FastPIR [], MulPIR [], and OnionPIR [].
Spiral structured its database of records as a hypercube. Each record is a ring element in , where p is the plaintext modulus, and n is the dimension of the matrix. In the following, we only let for simplicity. In the following, we give a brief description about how Spiral works, as in Figure 1.

Figure 1.
A sketch of Spiral protocol. The server in Spiral performs query expansion, a first dimension folding and a subsequent dimension folding to fetch the desired record.
2.5.1. Setup and Keygen Phase
In these two phases, the server preprocesses database and the client prepares and , and then sends to the server.
2.5.2. Query Generation Phase
In this phase, the client would like to retrieve for some private . The client parses into such that , where . The client encodes indicator vector where the u-th element is 1 and the others are 0, and . Then, the client encrypts it to an ciphertext and sends it to the server.
2.5.3. Response Phase
In this phase, the server would like to process the query and response. The server only receives an ciphertext so that it sees nothing about . This phase can be divided into three sub-stages as follow:
- (Query expansion). Once it receives the online query , the server expands it to a series of ciphertexts that can be divided into two groups. The first group consists of ciphertexts that only the u-th ciphertext encrypts as 1 and the remaining encrypt as 0. The second group consists of ciphertexts, which are the input of the s-to- algorithm. The sever converts these ciphertexts belonging to the second group to cipertexts that encrypt .
- (First dimension folding). Once given ciphertexts, that only one of them encrypts as 1 and the others encrypt as 0, the server can do plaintext–ciphertext multiplications and ciphertext–ciphertext additions for each column in the database. For each column, the server obtains one ciphertext. Consequently, the output ciphertexts encrypt the u-th row of the database.
- (Subsequent dimension folding). Once given ciphertexts (generated in the first dimension-folding phase) and ciphertexts (generated in the query expansion phase), the server evaluates many homomorphic functions, i.e., for . Consequently, the server outputs one ciphertext that encrypts the desired record, and relays it to the client.
2.5.4. Recover Phase
In this phase, the client would like to decrypt the answer to recover the desired message .
Remark 1.
The concept of a simpler database structure is a two-dimension matrix. In other words, the server generates ciphertexts and ciphertexts so that the subsequent dimension folding is performed like the first dimension folding, but in a ciphertext–ciphertext manner. Compared with homomorphic function, this way is simpler in concept and faster to computate. However, this setting enables the server to reduce the computation of a subsequent dimension folding from external product operations to , but it increases the number of expansion from to , thus increasing query expansion cost.
3. Our Improvement
Following the design of Spiral [], we propose three optimizations that can accelerate the server’s computation. We found that performing a modulus switching before the first dimension folding will improve the server’s throughput, so we propose a Residue Number System (RNS) variant of Spiral. Then, we apply two existing techniques called the composite algorithm and approximate decomposition to further improve it. These two techniques are independent of PIR protocols, but are compatible with Spiral and work well. We suggest to use them in any application where they can be used.
3.1. RNS Variant of Spiral
The server of the Spiral protocol performs the expansion algorithm and the s-to- algorithm to obtain a series of and ciphertexts. Through the select large decomposition dimension ℓ, Spiral protocol controls the noise growth of the query expansion phase. However, the noise growth introduced by the query expansion phase would consume some space, thereby influencing the subsequent computation, i.e., the first dimension folding and the subsequent dimension folding. The database is multiplied by not only the valid message but also the growth noise introduced by the query expansion phase, which seems to not be worthwhile.
We propose an RNS variant of Spiral, with the core goal to construct nearly fresh expanded ciphertexts. The core technique we used is modulus switching []. Given an ciphertext , modulus switching is defined as
where q is a smaller modulus than Q. The noise growth is where e is a very small noise introduced by modulus switching. The squared sub-Gaussian parameter of is , where h is the Hamming weight of the secret, and is the sub-Gaussian parameter of .
The origin of Spiral works on ring where q is around 56 bits. We select a big modulus as the parameter of the initial work ring where d is a power of two. At a later appropriate time, the server can perform a modulus switching operation to reduce the noise of the ciphertexts. Specifically, the server performs the modulus switching algorithm towards those expanded ciphertexts before the first dimension-folding phase, so that the growth noise introduced by query expansion does not influence the subsequent computation. This method can improve the server’s throughput.
The security level of cryptography mainly depends on the ring dimension d and the modulus Q, and a bigger ring dimension and a smaller modulus lead to higher security []. We have to double the ring dimension to retain the same level of security if we use a bigger modulus Q. Our experiments show that this leads to a slightly bigger query size, but no reduction to the server throughput. For more details about parameter selection and concrete performance, the reader can refer to Secition Section 5.
At the same time, Q is more than 64 bits, so we split it into two smaller rings, and , to align with computations on uint64_t that are used in most computer systems. The additions and multiplications on can be performed by additions and multiplications on two smaller rings, and , respectively. The modulus switching is performed in its RNS variant []. To be precise, it is performed as , where is the input ciphertext. The output ciphertext is in ring and it is a nearly fresh ciphertext, i.e., with a very small amount of noise. In our construction, the server performs RNS modulus switching towards those expanded ciphertexts to improve server throughput. The readers can refer to the full protocol in Section 4 and the concise performance in Section 5.
3.2. Improvement by Composite Algorithm
In the Spiral protocol, the work ring is divided into two smaller rings, and , where . This strategy contributes to plaintext–ciphertext multiplications and ciphertext–ciphertext additions in the first dimension-folding phase. When we perform a large number of plaintext–ciphertext multiplications and then add them up, the server does not have to always have module q. Instead, the server adds the multiplied numbers first and then module q. Modular reduction is a heavier operation compared with addition and multiplication, so reducing the amount of modular reduction can be seen as a more efficient strategy. Specifically, the modulus and are around 28 bits in Spiral so that the multiplication of two elements in (resp. ) will never be beyond 56 bits. Spiral adds many multiplied numbers and then module (resp. ), ensuring that they will not reach .
Spiral performs standard s in and , respectively. The computation is twice that of a single one. We apply a technique called the composite algorithm [] to reduce the computation without any other cost. In the following, we recall the standard algorithm first and show how to apply the composite algorithm to Spiral.
The standard algorithm works on cyclotomic ring only when the -th primitive root exists. There is a well-known fact [] that, when and q is a prime, the -th primitive root exists. At this time, cyclotomic polynomial can be divided into a series of monomials . Then, we have
The standard algorithm [] coverts the element to its form , and the inv- algorithm coverts it back. The input of and the inv- algorithm include and , respectively, as well as a -th primitive root .
The composite algorithm [] reduces the condition of q which is a prime, i.e., in fact, it is not a necessary condition to implement an algorithm. Supposing that where and are primes, and , , we know that the -th primitive root and exist. In fact, there is a that exists such that and . The value can by solved by the Chinese Remainder Theorem (CRT) algorithm, i.e., . At this time, we know that is the -th primitive root in . Therefore,
We can implement a standard algorithm over , where and are two -friendly moduli, by inputing a composite -th primitive root . Whether the input primitive root is composite or not does not affect the computation cost. Therefore, the composite algorithm is a completely lossless improvement and will never bring other extra costs to the server and the client.
3.3. Improvement by Approximate Decomposition
We recall the following lemma which states an algorithm that is heavily used in homomorphic operations over ciphertexts, especially in key-switching-type operations including automorphic transformation and an external product.
Lemma 1
(Adapted from [,,]). For a given integer q and a base integer , let and . Then, there is a randomized, efficiently computable algorithm denoted as : such that the output of the algorithm, , is a sub-Gaussian with parameter , satisfying .
We use another variant of algorithm in our implementation. The high-level insight is that need not always be exact. can be approximately equal to and the difference is counted into noise growth. For distinguishing this, we denote the approximate variant as in the following.
Given a modulus q and , we denote the gadget vector as for some base . Then, we use the algorithm : , such that the output of the algorithm satisfies . The approximate gadget decomposition is first used for the torus variant of and samples in TFHE []. It also works well in our protocol. In the following, we call ℓ, and a decomposition dimension, a decomposition base and an approximate base, respectively.
The advantage of approximate decomposition is a smaller decomposition dimension compared with its standard counterpart. A smaller decomposition dimension ℓ leads to a smaller number of , therefore accelerating the key-switching-type operations, e.g., automorphic transformation and the external product. The growth noise introduced by an approximate is added to the origin noise, which will never lead to a high compact when parameters are reasonably set.
For example, when inputing an ciphertext and a key-switching key , the key-switching operation is performed as
The decomposed vector and b should be converted to the form, and finally, two inv- are required after some Hadmard multiplications and additions in the form. Therefore, these are total /inv- transformations. The noise growth of is where is the initial error of key-switching key . The squared sub-Gaussian parameter is , where , and are the sub-Gaussian parameters of , and , respectively.
When origin decomposition is substituted by approximate decomposition, a key-switching operation consumes /inv- transformations where commonly is smaller than ℓ. The noise growth is . The squared sub-Gaussian parameter is .
In the Spiral protocol, we can apply approximate decomposition in the expansion algorithm, the s-to- algorithm, and the external product, thus improving server throughput.
4. The Full Protocol
In this section, we detail the construction of the full protocol. The basic structure and design principle are the same as those for Spiral, other than the three improvements described in Section 3. For readers who are familiar with Spiral [], we recommend reading Remarks 2 and 3 below to get the differences between our construction and Spiral’s without getting bogged down in details.
4.1. The Description of Full Protocol
Spiral structures its database of records as a hypercube. Each record is a ring element in , where p is the plaintext modulus, and n is the dimension of the plaintext matrix. For simplicity and better server throughput, we only let and treat each record as a ring element in .
Let and be a multiplied modulus of two -friendly moduli, and . The initial work ring is where d is a power of two. Let p be a plaintext modulus, and be the encode factor.
4.1.1. Setup Phase
In this phase, the server inputs security parameter and database , and outputs the structure form . The is parsed into such that , where . Therefore, the record is equal to . Next, the server preprocesses them to forms and stores them as , i.e., preprocess each record to its form .
4.1.2. Keygen Phase
In this phase, the client inputs security parameter , and outputs . The client then generates the key-switching keys , and , which will be used in the expansion algorithm, the s-to- algorithm, and packing the s to the matrix Regev algorithm [], respectively.
4.1.3. Query Generation Phase
In this phase, the client would like to retrieve for some private . The client parses into such that , where . The client encodes indicator vector and , where the u-th element of is 1 and others are zeros, and is the approximate gadget vector.
The client encodes the indicator vector (that will be used in the first dimension folding) as polynomial and (that will be used in the subsequent dimension folding) as polynomial , as
where , , and is the smallest power of two that is bigger than or equal to . We assume that so that only one query ciphertext is required.
Then, the client encodes the packing polynomial
The client encrypts to and sends it to the server.
4.1.4. Response Phase
In this phase, the server would like to process the query and response. The server only receives an ciphertext so that it sees nothing about . This phase can be divided into three sub-stages as follows:
- (Query expansion). Upon receiving the online query , the server first expands it to two ciphertextsFor the property of the expansion algorithm, we know that .Then, the server continues to expand them toWe further know that and .For each , computeFor the property of the s-to- algorithm, we know that .The server performs modulus-switching operations for all expanded ciphertexts and ciphertexts , asConsequently, consists of ciphertexts that only the u-th ciphertext encrypts as 1 and the remaining encrypt as 0, while consists of cipertexts that encrypt .Remark 2.There are two main differences from the original Spiral in the query generation and query expansion phases. The first one is that we work on a bigger ring instead of ring , and we implement the modulus switching algorithm towards those expanded ciphertexts before the first dimension-folding phase. The other is that we use the composite algorithm and approximate decomposition, instead of the standard algorithm and exact decomposition in the original Spiral.
- (First dimension folding). Once given ciphertexts that only one of them encrypts as 1 and the others encrypt as 0, the server can do plaintext–ciphertext multiplications and ciphertext–ciphertext additions for each column of database. For each column, the server obtains one ciphertext, and the output ciphertexts encrypt the u-th row of the database.For each , the server computesIn total, there are plaintext–ciphertext multiplications and ciphertext–ciphertext additions.
- (Subsequent dimension folding). Once given ciphertexts and ciphertexts generated in the first dimension-folding phase, the server can do a ciphertext–ciphertext function, i.e., for . Specifically, inputing two ciphertexts , , and an ciphertext where , the is defined asFor each , let ;For each , the server computesFinally, let . In order to reduce the communication, the server computes a modulus switchingRemark 3.There is no difference in the first dimension-folding phase compared with Spiral. In the subsequent dimension-folding phase, we use the composite algorithm and approximate decomposition.
4.1.5. Recover Phase
In this phase, the client would like to decrypt the answer to an element . The server computes .
4.2. Additional Analysis
We present the noise growth, correctness and security analysis in Appendix A.
4.3. Pack and Stream Variant
Menon and Wu [] also introduce three variants of Spiral, including SpiralPack, SpiralStream and SpiralPackStream. SpiralPack does not apply a matrix Regev ciphertext in the query expansion phase, the first dimension-folding phase and the second dimension-folding phases, i.e., set . The server in SpiralPack performs multiple first-dimension foldings and second-dimension foldings using the same expanded ciphertexts, and obtains multiple ciphertexts. Finally, the server converts them to a matrix Regev ciphertext. SpiralStream directly uploads ciphertexts and ciphertexts, instead of applying the query expansion algorithm. Therefore, the throughput of SpiralStream is much better than tat of Spiral and SpiralPack, but the query size is much worse. SpiralPackStream is similar to SpiralStream, except that it incorporates the insight of SpiralPack.
All three improvements are compatible with SpiralPack. Due to the fact that SpiralStream and SpiralPackStream do not apply the query expansion algorithm, we do not apply the RNS variant to SpiralStream and SpiralPackStream. Certainly, we use the remaining improvements including the composite algorithm and approximate decomposition to improve SpiralStream and SpiralPackStream.
5. Implementation and Evaluation
We implement our protocols in C++ to evaluate their concrete efficiency. Our implementations do not use any existing FHE libraries but adopt the Intel HEXL library (v1.2.5) [] to implement the s. The source code is available at [].
5.1. Parameter Selection
In this section, we present how we select parameters for our protocol.
5.1.1. Lattice Parameters
Our protocol always works over a power-of-two cyclotomic ring. In order to ensure 128 bits of classical security and take the noise growth into account, we set ring dimension , which is twice that of Spiral. Each secret is sampled as a uniform ternary secret, and all the initial noise is sampled from a discrete Gaussian distribution with standard deviation . We set the bigger modulus , where and , is a multiplied modulus of two close -friendly primes and , as in Spiral.
5.1.2. Parameters Compared with Spiral
We add three improvements to Spiral []. Therefore, our parameter set is different from that of Spiral. All the notations are taken from the full protocol in Section 4. p is the plaintext modulus. Q and q are the ciphertext moduli. refer to the numbers of the first dimension and the subsequent dimension of database , respectively. Roughly speaking, our plaintext modulus is much bigger while the decomposition dimension is smaller, i.e., this implies the reason why our server throughput is better than Spiral. Taking the B (256 MB) database as an example, we can achieve around a better overall throughput, as shown in Table 1 and Table 2.

Table 1.
Parameter sets for B (256 MB) database. , , stand for the decomposition dimension, decomposition base and approximate base used in the expansion algorithm, respectively. , , stand for that of the s-to- algorithm while , , stand for that of the external product. stands for the probability of decryption failure. “Server Time” refers to the server response time.

Table 2.
Compared with other PIR protocols. “Server preproc.” stands for the server preprocessing time. “Server resp.” stands for the server response time. “Client comp.” stands for the sum of query generation time and recovery time. “Through.” stands for the server throughput, i.e., the database size/server response time. “Ours-Stream” stands for the stream variant of our protocol.
5.2. Concrete Performances for Our PIR Protocol
In this section, we report the concrete performances of our protocol. Our computing environment is a server with Intel(R) Xeon(R) Gold 6230R CPU @ 2.10 GHz and 256 GB RAM, running Ubuntu 22.04.1. The compiler we used is clang++ 14.0.0.
5.2.1. Compared with Spiral and Prior Works
For a fair comparison with Spiral, we use their C++ implementation [], which adapts procedure from the SEAL library [] and the HEXL library [] to implement s. Moreover, we selected a pre-Spiral PIR protocol, FastPIR [], as another comparison object. The comparison results are given in Table 2. Taking the performance of the 256 MB database as an example, our server’s overall throughput is around faster than that of Spiral. Our online computations are 1.7–2.8× better than those of FastPIR [] and our online communications are much better. We also found that our three optimizations slightly increase the query and response size, but the increase is acceptable. This allows our protocol to perform well even for resource-constrained clients.
5.2.2. Compared with KsPIR
Recently, Luo et al. [] proposed a novel PIR protocol called KsPIR. Instead of applying the expansion algorithm like most -based PIR protocols, they use a BSGS (baby-step giant-step) algorithm to perform multiple homomorphic matrix vector multiplications, and finally they pack these ciphertexts through an packing algorithm. The server throughput of KsPIR is faster than that of Spiral; therefore, it seems to have better application prospects. However, the query of KsPIR consists of an ciphertext and an ciphertext, so the query size is at least bigger than that of Spiral as well as ours. Taking the performance of the 256 MB database as an example, our server’s overall throughput is worse than that of KsPIR [], but our communication is better than that of KsPIR. Moreover, our server storage is around better than that of KsPIR.
6. Recent Works
6.1. -Based PIR Protocols
Henzinger et al. [] proposed two efficient -based PIR protocols called Simple PIR and Double PIR. They can achieve high throughput while the drawback of them is that the client must download and store an around 124 MB (Simple PIR) and 16 MB (Double PIR) hint, respectively. Recently, Li et al. [] proposed HintlessPIR and Menon and Wu [] proposed YPIR. These two PIR protocols eliminate the need to store a hint on the client side, and they outperform Spiral in terms of server throughput. However, their communications, client computations and rate are much worse than those of Spiral. For example, when the database reaches 1 GB, the query and response sizes of Spiral are KB (40 + 22 KB for ours) while those of HintlessPIR are KB and those of YPIR are KB. Therefore, Spiral is still the state-of-the-art low-communication, high-rate PIR solution at present, which makes it still have important application value when the client resources are limited. As PIR is an essential privacy-preserving technology, it is critical to have various options available for users to determine the best tradeoff based on their specific scenarios.
6.2. Efficient Sublinear PIR Protocols
Two-server PIR protocols [] have received widespread attention for they can achieve a sublinear server computation cost. However, two-server PIR protocols require the two servers to store two copies of the same database, which brings difficulties to real-world deployment. Recently, there has been a breakthrough in how to convert a two-server PIR into a single-server PIR []. Piano [] utilizes lightweight cryptography such as PRFs to achieve sublinear server computation. However, their current solution is not optimal. In the preprocessing phase, the communication size is the same as the size of the entire database, although the client does not need to store it. In addition, the client needs to do more than hundreds of seconds of preprocessing. This would not be suitable for clients who are computing-resource constrained.
6.3. Keyword PIR Protocols
Sometimes index PIR cannot meet the requirements of some applications, and keyword PIR is more general. Fortunately, there are some methods to convert an index PIR into a keyword PIR. Refs. [,,] are all using some probabilistic data structure to encode the database; specifically, they are using cuckoo hashing, a random band matrix and a binary fuse filter, respectively. The cuckoo hashing approach is more generic, ref. [] is suitable for some -based protocols, and ref. [] is suitable for some -based protocols. Additionally, these are also other methods that are not based on an index PIR, e.g., ref. [] is based on an equality operator.
Author Contributions
Conceptualization, M.L. and M.W.; Methodology, M.L. and M.W.; Software, M.L.; Writing—original draft, M.L.; Writing—review and editing, M.W. All authors have read and agreed to the published version of the manuscript.
Funding
This research was funded by National Key R&D Program grant number 2020YFA0712303.
Data Availability Statement
No new data were created or analyzed in this study. Data sharing is not applicable to this article.
Conflicts of Interest
The authors declare no conflicts of interest. The funders had no role in the design of the study; in the collection, analyses, or interpretation of data; in the writing of the manuscript; or in the decision to publish the results.
Appendix A
Appendix A.1. Correctness and Security
Our protocol is similar to Spiral, other than three improvements detailed in Section 3. Modulus switching towards expanded ciphertexts does not impact the correctness. The composite algorithm and approximate decomposition can be seen as two small tracks on implementation, thus they have nothing to do with the correctness of the full protocol if the two techniques are correct in themselves.
We say that the PIR is correct if the client always recovers the desired record, and only a negligible probability of decryption failure is allowed. We calculate the probability of decryption failure by heuristic noise analysis. To be more precise, we calculate concrete heuristic noise analysis with sub-Gaussian variables inside of those ciphertexts first, and calculate the probability of decryption failure by formula where and is the sub-Gaussian parameter of the final ciphertext. We say that the PIR protocol is correct if the probability of decryption failure is smaller than , i.e., in fact, our protocol is much better than that.
In general, security of an FHE-based PIR construction follows directly from the semantic security of the encryption schemes, as the query from the client is just one ciphertext, and the setup just consists of some public key-switching/evaluation keys. For our setting, we just need to securely instantiate the underlying and a circular security assumption (key-dependent message security in key-switching keys), and the security of our PIR scheme is simply implied.
Appendix A.2. Heuristic Noise Analysis
In our protocol, all errors in the encryption algorithm are sampled from discrete Gaussian distribution with standard deviation . The Gaussian with deviation is a sub-Gaussian with parameter . All of the secret is sampled from a uniform ternary distribution, so the Hamming weight is . Then, we can calculate the probability of decryption failure by concrete heuristic noise analysis with sub-Gaussian variables. Below, we give the heuristic noise analysis (a rise of sub-Gaussian variables) of our PIR protocol.
Appendix A.2.1. Query Expansion Phase
In the query expansion phase, the server implements the expansion algorithm and the s-to- algorithm. Firstly, the server implements the expansion algorithm to obtain and . Let , and be the decomposition dimension, the decomposition base and the approximate base used in the expansion algorithm, respectively. The squared sub-Gaussian parameter of is . The squared sub-Gaussian parameter of is . Note that the decomposition dimension to generate and can be different but we use the same one for simplicity.
Next, the server impements the s-to- algorithm to obtain . Let , and be the decomposition dimension, the decomposition base and the approximate base used in the s-to- algorithm, respectively. The squared sub-Gaussian parameter of is , where is generated by the multiplication of secret s and the noise in .
Finally, the server performs modulus switching towards those expanded and ciphertexts. Therefore, the squared sub-Gaussian parameter of the updated is . Similarly, the squared sub-Gaussian parameter of the updated is .
Appendix A.2.2. First Dimension-Folding Phase
In the first dimension-folding phase, the server performs plaintex–ciphertext multiplications and ciphertext–ciphertext additions to obtain ciphertexts . We have that the squared sub-Gaussian parameter of is .
Appendix A.2.3. Second Dimension-Folding Phase
In the second dimension-folding phase, the server performs some homomorphic functions and a modulus switching to obtain an ciphertext . Let , and be the decomposition dimension, the decomposition base and the approximate of the external product, respectively. We have that the squared sub-Gaussian parameter of is . Finally, the server performs a modulus switching so that the squared sub-Gaussian parameter of is .
Consequently, we calculate as the probability of decryption failure , where .
References
- Chor, B.; Goldreich, O.; Kushilevitz, E.; Sudan, M. Private Information Retrieval. In Proceedings of the 36th FOCS, Milwaukee, WI, USA, 23–25 October 1995; IEEE Computer Society Press: Washington, DC, USA, 1995; pp. 41–50. [Google Scholar] [CrossRef]
- Angel, S.; Setty, S.T.V. Unobservable Communication over Fully Untrusted Infrastructure. In Proceedings of the 12th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2016, Savannah, GA, USA, 2–4 November 2016; Keeton, K., Roscoe, T., Eds.; USENIX Association: Berkeley, CA, USA, 2016; pp. 551–569. [Google Scholar]
- Angel, S.; Chen, H.; Laine, K.; Setty, S.T.V. PIR with Compressed Queries and Amortized Query Processing. In Proceedings of the 2018 IEEE Symposium on Security and Privacy, San Francisco, CA, USA, 21–23 May 2018; IEEE Computer Society Press: Washington, DC, USA, 2018; pp. 962–979. [Google Scholar] [CrossRef]
- Trieu, N.; Shehata, K.; Saxena, P.; Shokri, R.; Song, D. Epione: Lightweight Contact Tracing with Strong Privacy. IEEE Data Eng. Bull. 2020, 43, 95–107. [Google Scholar]
- Kogan, D.; Corrigan-Gibbs, H. Private Blocklist Lookups with Checklist. In Proceedings of the USENIX Security 2021, Virtual, 11–13 August 2021; Bailey, M., Greenstadt, R., Eds.; USENIX Association: Berkeley, CA, USA, 2021; pp. 875–892. [Google Scholar]
- Henzinger, A.; Hong, M.M.; Corrigan-Gibbs, H.; Meiklejohn, S.; Vaikuntanathan, V. One Server for the Price of Two: Simple and Fast Single-Server Private Information Retrieval. In Proceedings of the USENIX Security 2023, Anaheim, CA, USA, 9–11 August 2023; Calandrino, J.A., Troncoso, C., Eds.; USENIX Association: Berkeley, CA, USA, 2023; pp. 3889–3905. [Google Scholar]
- Wu, D.J.; Zimmerman, J.; Planul, J.; Mitchell, J.C. Privacy-Preserving Shortest Path Computation. In Proceedings of the NDSS 2016, San Diego, CA, USA, 21–24 February 2016; The Internet Society: Reston, VA, USA, 2016. [Google Scholar] [CrossRef]
- Kushilevitz, E.; Ostrovsky, R. Replication is NOT Needed: SINGLE Database, Computationally-Private Information Retrieval. In Proceedings of the 38th FOCS, Miami Beach, FL, USA, 19–22 October 1997; IEEE Computer Society Press: Washington, DC, USA, 1997; pp. 364–373. [Google Scholar] [CrossRef]
- Melchor, C.A.; Barrier, J.; Fousse, L.; Killijian, M. XPIR: Private Information Retrieval for Everyone. Proc. Priv. Enhancing Technol. 2016, 2016, 155–174. [Google Scholar] [CrossRef]
- Ali, A.; Lepoint, T.; Patel, S.; Raykova, M.; Schoppmann, P.; Seth, K.; Yeo, K. Communication-Computation Trade-offs in PIR. In Proceedings of the USENIX Security 2021, Virtual, 11–13 August 2021; Bailey, M., Greenstadt, R., Eds.; USENIX Association: Berkeley, CA, USA, 2021; pp. 1811–1828. [Google Scholar]
- Mughees, M.H.; Chen, H.; Ren, L. OnionPIR: Response Efficient Single-Server PIR. In Proceedings of the ACM CCS 2021, Virtual, 15–19 November 2021; Vigna, G., Shi, E., Eds.; ACM Press: New York, NY, USA, 2021; pp. 2292–2306. [Google Scholar] [CrossRef]
- Menon, S.J.; Wu, D.J. SPIRAL: Fast, High-Rate Single-Server PIR via FHE Composition. In Proceedings of the 2022 IEEE Symposium on Security and Privacy, San Francisco, CA, USA, 22–26 May 2022; IEEE Computer Society Press: Washington, DC, USA, 2022; pp. 930–947. [Google Scholar] [CrossRef]
- Gentry, C. Fully homomorphic encryption using ideal lattices. In Proceedings of the 41st ACM STOC, Bethesda, MD, USA, 31 May–2 June 2009; Mitzenmacher, M., Ed.; ACM Press: New York, NY, USA, 2009; pp. 169–178. [Google Scholar] [CrossRef]
- Gentry, C.; Halevi, S. Compressible FHE with Applications to PIR. In Proceedings of the TCC 2019, Nuremberg, Germany, 1–5 December 2019; Hofheinz, D., Rosen, A., Eds.; Part II, LNCS. Springer: Cham, Switzerland, 2019; Volume 11892, pp. 438–464. [Google Scholar] [CrossRef]
- Chillotti, I.; Gama, N.; Georgieva, M.; Izabachène, M. Faster Fully Homomorphic Encryption: Bootstrapping in Less Than 0.1 Seconds. In Proceedings of the ASIACRYPT 2016, Hanoi, Vietnam, 4–8 December 2016; Cheon, J.H., Takagi, T., Eds.; Part I, LNCS. Springer: Berlin/Heidelberg, Germany, 2016; Volume 10031, pp. 3–33. [Google Scholar] [CrossRef]
- Li, B.; Micciancio, D.; Raykova, M.; Schultz, M. Hintless Single-Server Private Information Retrieval. In Proceedings of the CRYPTO 2024, Santa Barbara, CA, USA, 18–22 August 2024; Reyzin, L., Stebila, D., Eds.; Part IX, LNCS. Springer: Cham, Switzerland, 2024; Volume 14928, pp. 183–217. [Google Scholar] [CrossRef]
- Menon, S.J.; Wu, D.J. YPIR: High-Throughput Single-Server PIR with Silent Preprocessing. In Proceedings of the USENIX Security 2024, Philadelphia, PA, USA, 14–16 August 2024; Balzarotti, D., Xu, W., Eds.; USENIX Association: Berkeley, CA, USA, 2024. [Google Scholar]
- Luo, M.; Liu, F.H.; Wang, H. Faster FHE-Based Single-Server Private Information Retrieval. In Proceedings of the ACM CCS 2024, Salt Lake City, UT, USA, 14–18 October 2024; ACM Press: New York, NY, USA, 2024; pp. 1405–1419. [Google Scholar] [CrossRef]
- Li, Z.; Liu, Y.; Lu, X.; Wang, R.; Wei, B.; Chen, C.; Wang, K. Faster Bootstrapping via Modulus Raising and Composite NTT. IACR Trans. Cryptogr. Hardw. Embed. Syst. 2024, 2024, 563–591. [Google Scholar] [CrossRef]
- Luo, M.; Wang, M. Faster Spiral: Low-Communication, High-Rate Private Information Retrieval. 2024. Available online: https://github.com/mmingluo/fspiral (accessed on 16 February 2025).
- Regev, O. On lattices, learning with errors, random linear codes, and cryptography. In Proceedings of the 37th ACM STOC, Baltimore, MD, USA, 22–24 May 2005; Gabow, H.N., Fagin, R., Eds.; ACM Press: New York, NY, USA, 2005; pp. 84–93. [Google Scholar] [CrossRef]
- Lyubashevsky, V.; Peikert, C.; Regev, O. On Ideal Lattices and Learning with Errors over Rings. In Proceedings of the EUROCRYPT 2010, French Riviera, France, 30 May–3 June 2010; Gilbert, H., Ed.; LNCS. Springer: Berlin/Heidelberg, Germany, 2010; Volume 6110, pp. 1–23. [Google Scholar] [CrossRef]
- Bos, J.W.; Costello, C.; Ducas, L.; Mironov, I.; Naehrig, M.; Nikolaenko, V.; Raghunathan, A.; Stebila, D. Frodo: Take off the Ring! Practical, Quantum-Secure Key Exchange from LWE. In Proceedings of the ACM CCS 2016, Vienna, Austria, 24–28 October 2016; Weippl, E.R., Katzenbeisser, S., Kruegel, C., Myers, A.C., Halevi, S., Eds.; ACM Press: New York, NY, USA, 2016; pp. 1006–1018. [Google Scholar] [CrossRef]
- Bos, J.W.; Ducas, L.; Kiltz, E.; Lepoint, T.; Lyubashevsky, V.; Schanck, J.M.; Schwabe, P.; Seiler, G.; Stehlé, D. CRYSTALS-Kyber: A CCA-Secure Module-Lattice-Based KEM. In Proceedings of the 2018 IEEE European Symposium on Security and Privacy, EuroS&P 2018, London, UK, 24–26 April 2018; IEEE: Piscataway, NJ, USA, 2018; pp. 353–367. [Google Scholar] [CrossRef]
- Fan, J.; Vercauteren, F. Somewhat Practical Fully Homomorphic Encryption. Cryptology ePrint Archive, Paper 2012/144. 2012. Available online: https://eprint.iacr.org/2012/144 (accessed on 1 December 2024).
- Brakerski, Z.; Gentry, C.; Vaikuntanathan, V. (Leveled) fully homomorphic encryption without bootstrapping. In Proceedings of the ITCS 2012, Cambridge, MA, USA, 8–10 January 2012; Goldwasser, S., Ed.; ACM: New York, NY, USA, 2012; pp. 309–325. [Google Scholar] [CrossRef]
- Ducas, L.; Micciancio, D. FHEW: Bootstrapping Homomorphic Encryption in Less Than a Second. In Proceedings of the EUROCRYPT 2015, Sofia, Bulgaria, 26–30 April 2015; Oswald, E., Fischlin, M., Eds.; Part I, LNCS. Springer: Berlin/Heidelberg, Germany, 2015; Volume 9056, pp. 617–640. [Google Scholar] [CrossRef]
- Brakerski, Z.; Vaikuntanathan, V. Efficient Fully Homomorphic Encryption from (Standard) LWE. In Proceedings of the 52nd FOCS, Palm Springs, CA, USA, 22–25 October 2011; Ostrovsky, R., Ed.; IEEE Computer Society Press: Washington, DC, USA, 2011; pp. 97–106. [Google Scholar] [CrossRef]
- Ahmad, I.; Yang, Y.; Agrawal, D.; Abbadi, A.E.; Gupta, T. Addra: Metadata-private voice communication over fully untrusted infrastructure. In Proceedings of the 15th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2021, Virtual, 14–16 July 2021; Brown, A.D., Lorch, J.R., Eds.; USENIX Association: Berkeley, CA, USA, 2021. [Google Scholar]
- Albrecht, M.R.; Player, R.; Scott, S. On the concrete hardness of learning with errors. J. Math. Cryptol. 2015, 9, 169–203. [Google Scholar] [CrossRef]
- Kim, A.; Polyakov, Y.; Zucca, V. Revisiting Homomorphic Encryption Schemes for Finite Fields. In Proceedings of the ASIACRYPT 2021, Virtual, 6–10 December 2021; Tibouchi, M., Wang, H., Eds.; Part III, LNCS. Springer: Cham, Switzerland, 2021; Volume 13092, pp. 608–639. [Google Scholar] [CrossRef]
- Seiler, G. Faster AVX2 Optimized NTT Multiplication for Ring-LWE Lattice Cryptography. Cryptology ePrint Archive, Paper 2018/039. 2018. Available online: https://eprint.iacr.org/2018/039 (accessed on 1 December 2024).
- Micciancio, D.; Peikert, C. Trapdoors for Lattices: Simpler, Tighter, Faster, Smaller. In Proceedings of the EUROCRYPT 2012, Cambridge, UK, 15–19 April 2012; Pointcheval, D., Johansson, T., Eds.; LNCS. Springer: Berlin/Heidelberg, Germany, 2012; Volume 7237, pp. 700–718. [Google Scholar] [CrossRef]
- Alperin-Sheriff, J.; Peikert, C. Faster Bootstrapping with Polynomial Error. In Proceedings of the CRYPTO 2014, Santa Barbara, CA, USA, 17–21 August 2014; Garay, J.A., Gennaro, R., Eds.; Part I, LNCS. Springer: Berlin/Heidelberg, Germany, 2014; Volume 8616, pp. 297–314. [Google Scholar] [CrossRef]
- Boemer, F.; Kim, S.; Seifu, G.; de Souza, F.D.M.; Gopal, V. Intel HEXL: Accelerating Homomorphic Encryption with Intel AVX512-IFMA52. In Proceedings of the 9th on Workshop on Encrypted Computing & Applied Homomorphic Cryptography, Virtual, Republic of Korea, 15 November 2021. Cryptology ePrint Archive Paper 2021/420. [Google Scholar]
- Menon, S.J.; Wu, D.J. SPIRAL: Fast, High-Rate Single-Server PIR via FHE Composition. 2023. Available online: https://github.com/menonsamir/spiral/commit/361ee4 (accessed on 1 December 2024).
- Chen, H.; Laine, K.; Player, R. Simple Encrypted Arithmetic Library-SEAL v2.1. In Proceedings of the FC 2017 Workshops, Sliema, Malta, 7 April 2017; Brenner, M., Rohloff, K., Bonneau, J., Miller, A., Ryan, P.Y.A., Teague, V., Bracciali, A., Sala, M., Pintore, F., Jakobsson, M., Eds.; LNCS. Springer: Cham, Switzerland, 2017; Volume 10323, pp. 3–18. [Google Scholar] [CrossRef]
- Zhou, M.; Park, A.; Shi, E.; Zheng, W. Piano: Extremely Simple, Single-Server PIR with Sublinear Server Computation. Cryptology ePrint Archive, Paper 2023/452. 2023. Available online: https://eprint.iacr.org/2023/452 (accessed on 1 December 2024).
- Patel, S.; Seo, J.Y.; Yeo, K. Don’t be Dense: Efficient Keyword PIR for Sparse Databases. In Proceedings of the USENIX Security 2023, Anaheim, CA, USA, 9–11 August 2023; Calandrino, J.A., Troncoso, C., Eds.; USENIX Association: Berkeley, CA, USA, 2023; pp. 3853–3870. [Google Scholar]
- Celi, S.; Davidson, A. Call Me by My Name: Simple, Practical Private Information Retrieval for Keyword Queries. In ACM CCS 2024; ACM Press: New York, NY, USA, 2024; pp. 4107–4121. [Google Scholar] [CrossRef]
- Mahdavi, R.A.; Kerschbaum, F. Constant-weight PIR: Single-round Keyword PIR via Constant-weight Equality Operators. In Proceedings of the USENIX Security 2022, Boston, MA, USA, 10–12 August 2022; Butler, K.R.B., Thomas, K., Eds.; USENIX Association: Berkeley, CA, USA, 2022; pp. 1723–1740. [Google Scholar]
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2025 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).