Mathematical Problems in Engineering

Mathematical Problems in Engineering / 2014 / Article

Research Article | Open Access

Volume 2014 |Article ID 475678 | 18 pages | https://doi.org/10.1155/2014/475678

Preimage Selective Trapdoor Function: How to Repair an Easy Problem

Academic Editor: Yi-Kuei Lin
Received23 Aug 2013
Accepted09 Mar 2014
Published27 Apr 2014

Abstract

Public key cryptosystems are constructed by embedding a trapdoor into a one-way function. So, the one-wayness and the trapdoorness are vital to public key cryptography. In this paper, we propose a novel public key cryptographic primitive called preimage selective trapdoor function. This scenario allows to use exponentially many preimage to hide a plaintext even if the underlying function is not one-way. The compact knapsack problem is used to construct a probabilistic public key cryptosystem, the underlying encryption function of which is proven to be preimage selective trapdoor one-way functions under some linearization attack models. The constructive method can guarantee the noninjectivity of the underlying encryption function and the unique decipherability for ciphertexts simultaneously. It is heuristically argued that the security of the proposal cannot be compromised by a polynomial-time adversary even if the compact knapsack is easy to solve. We failed to provide any provable security results about the proposal; however, heuristic illustrations show that the proposal is secure against some known attacks including brute force attacks, linearization attacks, and key-recovery attacks. The proposal turns out to have acceptable key sizes and performs efficiently and hence is practical.

1. Introduction

1.1. Background

Public key cryptosystem (PKC) is an important cryptographic primitive in the area of network and information security. The basic idea to construct a PKC is to embed a trapdoor into a mathematically intractable problem. The trapdoor helps the trapdoor holder reverse the underlying one-way function. However, without the trapdoor, one should attack a presumed intractable problem in order to reconstruct the plaintext corresponding to a given ciphertext. So the existence of mathematically hard problems is vital in public key cryptography. This explains why we say bad news in computational complexity is good news for cryptography.

In the cryptographic community, a PKC is always considered as synonymous with the so-called trapdoor one-way function. Bellare et al.’s observation [1] provides a better understanding of the two concepts. On one hand, a probabilistic public key encryption does not necessarily imply a trapdoor one-way function. For example, the underlying encryption function of ElGamal [2] is not one-way in that the auxiliary key randomly chosen by the encrypter cannot be recovered knowing the trapdoor satisfying . On the other hand, in some cases, noninjective trapdoor one-way functions cannot be used to construct PKCs because a PKC is required to recover a unique plaintext from any valid ciphertext. So the encryption function underlying a PKC should be injective. Bellare et al. showed that any one-way function implies a highly noninjective trapdoor one-way function. However, the authors derived no PKCs from their universal constructions. They only showed that if the image of a trapdoor one-way function has polynomially bounded number of preimages, the trapdoor one-way function can be used to derive a PKC.

In this paper, we propose a probabilistic public key encryption algorithm from a highly noninjective one-way function. We think that our construction not only enriches the cryptographic basket and deepens our insights into public key cryptographic designs but also provides weaker cryptographic assumptions. Our confidence in the hardness of noninjective one-way functions rests on the proven fact that it is not easier to reverse a given one-way function equipped with an additional noninjectivity property than an injective one-way function [3]. More importantly, what we observed in this paper is that it remains possible to develop a secure PKC by fully exploiting the noninjectivity property of functions even if these functions turn out to be not one-way.

1.2. Our Contribution

In this paper, we firstly formalize a novel public key cryptographic scenario called preimage selective trapdoor one-way function (PSTOF, for short) and then use the compact knapsack problem to realize such a scenario.

1.2.1. Preimage Selective Trapdoor One-Way Function (See Figure 1)

A PSTOF is in fact a noninjective public key encryption function. When encrypting a message in the message space , the encrypter firstly encodes the message into a plaintext in the plaintext space and then derives a ciphertext in the ciphertext space . When decrypting a ciphertext , the decrypter utilizes the trapdoor to decrypt a valid ciphertext into a unique plaintext and then uniquely decodes into a message .

The scenario allows us to base the security of a PKC on the high noninjectivity rather than the one-wayness of a function (an intractable problem). In this scenario, is a subset of the equivalent plaintext space , and the ciphertext space . For any valid ciphertext , will have many preimages in , which are called equivalent ciphertexts in that all of them can be mapped into under the function , and a unique preimage (the plaintext) with respect to the function , which is a valid plaintext and hence can be further decoded into a meaningful message. The message encoding function simulates the process of randomly selecting a subset as the plaintext space from the whole preimage domain , from which the name PSTOF comes. In other words, the message encoding function imposes some restrictions on the preimage set to get a subset with a predesignated special structure as the plaintext space . The equivalent plaintexts in are used to hide a (valid) plaintext in . If is preassumed one-way, any polynomial-time adversary cannot obtain a preimage in given a ; let alone the unique preimage (the plaintext) . If the underlying function is not one-way and when a has exponentially many preimages in , the corresponding plaintext in is hidden by these exponentially many preimages. A polynomial-time adversary only obtains polynomially many preimages, which can be seen as randomly output from all the exponentially many preimages and hence include the target plaintext with a negligible probability.

1.2.2. Probabilistic Compact Knapsack PKC

By using the concept of PSTOF and from the compact knapsack problem, a probabilistic public key encryption scheme is designed. An easy compact knapsack-type problem is defined, and an algorithm called Onion Algorithm is developed to peel off the solutions to the easy problem. The easy problem is used to construct a probabilistic PKC. The main results are that the trapdoor one-way function underlying the proposal is PSTOFs under different linear attack models (See Theorems 25, 26, and 30), and the images of the PSTOFs have exponentially many preimages (see Table 3). Some design tricks are adopted to make the PKC immune from some known key-recovery attacks such as GCD attack [4, 5], Diophantine approximation attack [6, 7], and orthogonal lattice attack [8, 9].

1.3. Organization

The rest of the paper is organized as follows. In Section 2, we formalize the definition of PSTOF and use the cryptographic scenario to explain some known PKCs. Section 3 provides a concrete probabilistic public key encryption scheme to realize the PSTOF. Sections 4 and 5 discuss the performance and security related issues, respectively. Section 6 gives some concluding remarks.

2. Preimage Selective Trapdoor One-Way Function

2.1. Symbols and Notations

The notations listed at the end of the paper will be used throughout the paper.

2.2. Message Encoding Function

When encrypting a message using a PKC, we need to firstly encode a binary string message into a plaintext (an element in the algebraic structure underlying the PKC) in order that the PKC can deal with the message. However, sometimes, it is not necessary to explicitly specify the encoding algorithm. For example, it is more convenient to just look a message as a binary integer in than to develop an algorithm to transform a message into an element in in case of RSA [10]. Formally, we define a message encoding function as follows.

Definition 1. A function with is called a message encoding function if it satisfies the following conditions.(1)The function is injective.(2)It can be efficiently performed to compute for a given , and for a given .

2.3. Preimage Selective Trapdoor One-Way Function

The PSTOF is formalized as follows.

Definition 2. A function is called a PSTOF if it satisfies the following conditions. (1)For an arbitrary , it is easy to compute .(2) is noninjective.(3)Given any , there exists at most an such that .(4)Given any and the trapdoor, there is a polynomial-time algorithm to output a unique with or the invalid ciphertext symbol .(5)Given any and without knowing the trapdoor, anyone cannot efficiently compute a preimage such that .

Remark 3. The third and the forth conditions in Definition 2 guarantee that when viewed as a public key encryption function, the PSTOF is inverted according to the knowledge of the trapdoor to derive a unique preimage (the plaintext) in , and both conditions in Definition 1 mean that the plaintext can be uniquely decoded into the original message. If we remove the last requirement in Definition 2, we just call a preimage selective trapdoor (not non-way) function.

Definition 4. The preimage density of a noninjective function is defined as the ratio of the cardinality of the preimage set to that of the image set : On average, a ciphertext will have preimages in .

Remark 5. When is exponentially large, we can use the high noninjectivity of the underlying function to hide a plaintext. On average, for a valid ciphertext for a plaintext , will have exponentially many preimages in . So a polynomial-time adversary only can obtain polynomially many preimages in of , which contains the targeted unique valid plaintext with a negligible probability . One may doubt that the function is indeed a trapdoor one-way function mapping from to . So if one breaks the one-wayness of , he also recovers the unique such that . However, if the plaintext space can be seen as randomly chosen from the whole equivalent plaintext space , the adversary cannot use the special structure of to develop an efficient algorithm for reversing the function . We will explain this point later on by using an example.

2.4. Examples
2.4.1. High-Density Knapsack PKCs

To illustrate the aforementioned definitions, we consider high-density 0-1 knapsack (subset sum) PKCs Chor-Rivest [11] and Okamoto-Tanaka-Uchiyama [12]. In both cryptosystems, a bit-string message is encoded into an -dimensional 0-1 plaintext vector with a fixed Hamming weight (the so-called predesignated special plaintext structure) by using the source encoding algorithm (message encoding function) [13]: Let the public key . The underlying PSTOF is ; that is, for , The density of both PKCs defined as can be made sufficiently high (>1), in which case asymptotically (3) will have more than one (i.e., ) binary solution [14]:

The illustrations say that when , a valid ciphertext will have exponentially many preimages in and a unique preimage in . In other words, the plaintext is hidden by exponentially many preimages. Even if a polynomial-time adversary conquers the one-wayness of the underlying subset sum problem and hence the underlying encryption function is only a preimage selective trapdoor (not one-way) function; the adversary just obtains polynomially many preimages to (3) which contain the plaintext with a negligible probability. High-density subset sum PKCs can base their security on the noninjectivity of the underlying function, which is a weaker intractability assumption.

Remark 6. There exist two ways to break Chor-Rivest [11] and the Okamoto-Tanaka-Uchiyama [12] cryptosystems: recovering the secret key [15] and solving the underlying knapsack problem. Some work still was done to make Chor-Rivest immune from key-recovery attacks [1618]. However, some known cryptanalytic algorithms [14, 1921] only can solve the preimages but not necessarily the unique plaintext . So in the adversary’s point of view, the underlying problem remains the knapsack problem. This explains why we say in Remark 5 that the adversary cannot use the special structure of to efficiently reverse the function .

2.4.2. Rabin Cryptosystem

We also can view Rabin cryptosystem [22] as a PSTOF. For convenience of discussions, we just set Rabin encryption function as with being the product of two primes, and . So, the ciphertext space consists of the quadratic residues modulo ; that is, . In order to uniquely recover a plaintext, we need to embed some redundant information in . The redundant information forms the special structure of . The PSTOF underlying Rabin cryptosystem is ; for , . We note that each of the quadratic residues modulo has four roots, from which we use the redundant information to pick out the exact plaintext. Hence, the noninjectivity of the PSTOF for Rabin is given as

3. The Proposed Probabilistic Public Key Encryption Scheme

3.1. Knapsack Problems

Definition 7 (knapsack problem). Given a positive integral vector and an integer , the knapsack or subset sum problem is to find a binary vector such that . A knapsack problem is denoted as . The density of the knapsack problem is defined as .

The density of a compact knapsack problem imposes an important effect on the hardness of the problem. It was shown that if the density , the knapsack problem can be solved with an overwhelming probability [23, 24].

Definition 8 (compact knapsack problem). Given a positive integral vector , an integer , and an integer , the compact or general knapsack problem is to find a vector with such that . A compact knapsack problem is denoted as . The density of a compact knapsack problem is defined as .
If the density of a compact knapsack problem is , it was shown that the compact knapsack problem can almost always be efficiently solved with lattice reduction algorithms [25]. In this paper, we consider the compact knapsack problem with .

3.2. The Proposed Message Encoding Function

The message space consists of blocks with each block 3 bit long; namely, . For a message , we firstly define a message encoding function that maps the message into a vector in under an auxiliary key , which is randomly chosen by the encrypter. We define for as

Remark 9. We note that 97 is a prime and 5 is a primitive root modulo 97, so the function forms a permutation when runs through and hence permutates when and run through and , respectively. We denote It is easy to verify that forms a partition of . So we can deduce that if , , and are uniformly distributed over , and , respectively, is uniformly distributed over . This means that the generating of each can simulate the process of randomly choosing an integer from , which allows the predesignated special structure of defined in (9) as random as possible.

The message encoding function is defined as : where the plaintext space is In the rest of the paper, we also define the equivalent plaintext space including the plaintext space .

Remark 10. Another fact about is for and because . Hence, we have that if , .

Remark 11. Now we remark on how to encode a message and decode a plaintext with respect to . We can construct tables similar to truth-value tables to show the functions . By observing (10), we see that the tables have a periodic structure with period 12. That is to say those sharing a common residue modulo 12 have a same table. So only 12 tables suffice to list the values of . See Table 1. Here, we spend some more words on the message encoding function and Table 1. At present, we only consider the preceding three columns of the 12 subtables in Table 1, which list the values of , , and the corresponding , respectively. To encode a message and given a randomly chosen auxiliary key , for , we determine the one by one by looking up the subtable indexed by in Table 1 denoted as Sub-T. When (or  1, resp.), we only search the 8 rows covered by (or 1, resp.) in Sub-T, and output the integer in the column marked by that lies in the same row with as the value of . For example, to encode under the control of , by looking up Sub-T, we determine . Similarly, we get , , . So, we encode as . On the contrary, we can decode a plaintext by looking up the table. For example, . We search the third column of Sub-T for which lies in the same line with , so . Similarly, we get , , . Hence, .

(a)

(mod 12)
mod (1, 34)mod (2, 17)

000(0, 0)(0, 0)
14(0, 4)(1, 4)
224(0, 24)(0, 7)
327(0, 27)(1, 10)
442(0, 8)(0, 8)
520(0, 20)(0, 3)
67(0, 7)(1, 7)
739(0, 5)(1, 5)

1096(0, 28)(0, 11)
1100(0, 32)(0, 15)
2120(0, 18)(0, 1)
3123(0, 21)(1, 4)
4138(0, 2)(0, 2)
5116(0, 14)(0, 14)
6103(0, 1)(1, 1)
7135(0, 33)(1, 16)

(b)

(mod 12)
mod (1, 33)mod (3, 11)

005(0, 5)(2, 5)
129(0, 29)(2, 7)
252(0, 19)(1, 8)
370(0, 4)(1, 4)
463(0, 30)(0, 8)
528(0, 28)(1, 6)
647(0, 14)(2, 3)
745(0, 12)(0, 1)

10101(0, 2)(2, 2)
1125(0, 26)(2, 4)
2148(0, 16)(1, 5)
3166(0, 1)(1, 1)
4159(0, 27)(0, 5)
5124(0, 25)(1, 3)
6143(0, 11)(2, 0)
7141(0, 9)(0, 9)

(c)

(mod 12)
mod (1, 31)mod (1, 37)

0035(0, 4)(0, 35)
182(0, 20)(0, 8)
226(0, 26)(0, 26)
337(0, 6)(0, 0)
492(0, 30)(0, 18)
576(0, 14)(0, 2)
693(0, 0)(0, 19)
781(0, 19)(0, 7)

10131(0, 7)(0, 20)
1178(0, 23)(0, 30)
2122(0, 29)(0, 11)
3133(0, 9)(0, 22)
4188(0, 2)(0, 3)
5172(0, 17)(0, 24)
6189(0, 3)(0, 4)
7177(0, 22)(0, 29)

(d)

(mod 12)
mod (1, 46)mod (2, 23)

0021(0, 21)(1, 21)
112(0, 12)(0, 12)
264(0, 18)(0, 18)
333(0, 33)(1, 10)
472(0, 26)(0, 3)
573(0, 27)(1, 4)
678(0, 32)(0, 9)
76(0, 6)(0, 6)

10117(0, 25)(1, 2)
1108(0, 16)(0, 1)
2160(0, 22)(0, 22)
3129(0, 37)(1, 14)
4168(0, 30)(0, 7)
5169(0, 31)(1, 8)
6174(0, 36)(0, 13)
7102(0, 10)(0, 10)

(e)

(mod 12)
mod (1, 29)mod (1, 47)

0034(0, 5)(0, 34)
177(0, 19)(0, 30)
21(0, 1)(0, 1)
39(0, 9)(0, 9)
449(0, 20)(0, 2)
555(0, 26)(0, 8)
685(0, 27)(0, 38)
741(0, 12)(0, 41)

10130(0, 14)(0, 36)
1173(0, 28)(0, 32)
297(0, 10)(0, 3)
3105(0, 18)(0, 11)
4145(0, 0)(0, 4)
5151(0, 6)(0, 10)
6181(0, 7)(0, 40)
7137(0, 21)(0, 43)

(f)

(mod 12)
mod (1, 39)mod (3, 13)

0015(0, 15)(0, 2)
179(0, 1)(1, 1)
211(0, 11)(2, 11)
359(0, 20)(2, 7)
48(0, 8)(2, 8)
544(0, 5)(2, 5)
630(0, 30)(0, 4)
757(0, 18)(0, 5)

10111(0, 33)(0, 7)
1175(0, 19)(1, 6)
2107(0, 29)(2, 3)
3155(0, 38)(2, 12)
4104(0, 26)(2, 0)
5140(0, 23)(2, 10)
6126(0, 9)(0, 9)
7153(0, 36)(0, 20)

(g)

(mod 12)
mod (1, 34)mod (2, 17)

0095(0, 27)(1, 10)
191(0, 23)(1, 6)
271(0, 3)(1, 3)
368(0, 0)(0, 0)
453(0, 19)(1, 2)
575(0, 7)(1, 7)
688(0, 20)(0, 3)
756(0, 22)(0, 5)

10191(0, 21)(1, 4)
1187(0, 17)(1, 0)
2167(0, 31)(1, 14)
3164(0, 28)(0, 11)
4149(0, 13)(1, 13)
5171(0, 1)(1, 1)
6184(0, 14)(0, 14)
7152(0, 16)(0, 16)

(h)

(mod 12)
mod (1, 33)mod (3, 11)

0090(0, 24)(0, 2)
166(0, 0)(0, 0)
243(0, 10)(1, 10)
325(0, 25)(1, 3)
432(0, 32)(2, 10)
567(0, 1)(1, 1)
648(0, 15)(0, 4)
750(0, 17)(2, 6)

10186(0, 21)(0, 10)
1162(0, 30)(0, 8)
2139(0, 7)(1, 7)
3121(0, 22)(1, 0)
4128(0, 29)(2, 7)
5163(0, 31)(1, 9)
6144(0, 12)(0, 1)
7146(0, 14)(2, 3)

(i)

(mod 12)
mod (1, 31)mod (1, 37)

0060(0, 29)(0, 23)
113(0, 13)(0, 13)
269(0, 7)(0, 32)
358(0, 27)(0, 21)
43(0, 3)(0, 3)
519(0, 19)(0, 19)
62(0, 2)(0, 2)
714(0, 14)(0, 14)

10156(0, 1)(0, 8)
1109(0, 16)(0, 35)
2165(0, 10)(0, 17)
3154(0, 30)(0, 6)
499(0, 6)(0, 25)
5115(0, 22)(0, 4)
698(0, 5)(0, 24)
7110(0, 17)(0, 36)

(j)

  (mod 12)
mod (1, 46)mod (2, 23)

0074(0, 28)(0, 5)
183(0, 37)(1, 14)
231(0, 31)(1, 8)
362(0, 16)(0, 16)
423(0, 23)(1, 0)
522(0, 22)(0, 22)
617(0, 17)(1, 17)
789(0, 43)(1, 20)

10170(0, 32)(0, 9)
1179(0, 41)(1, 18)
2127(0, 35)(1, 12)
3158(0, 20)(0, 20)
4119(0, 27)(1, 4)
5118(0, 26)(0, 3)
6113(0, 21)(1, 21)
7185(0, 1)(1, 1)

(k)

(mod 12)
mod (1, 29)mod (1, 47)

0061(0, 3)(0, 14)
118(0, 18)(0, 18)
294(0, 7)(0, 0)
386(0, 28)(0, 39)
446(0, 17)(0, 46)
540(0, 11)(0, 40)
610(0, 10)(0, 10)
754(0, 25)(0, 7)

10157(0, 12)(0, 16)
1114(0, 27)(0, 20)
2190(0, 16)(0, 2)
3182(0, 8)(0, 41)
4142(0, 26)(0, 1)
5136(0, 20)(0, 42)
6106(0, 19)(0, 12)
7150(0, 5)(0, 9)

(l)

(mod 12)
mod (1, 39)mod (3, 13)

0080(0, 2)(2, 2)
116(0, 16)(1, 3)
284(0, 6)(0, 6)
336(0, 36)(0, 10)
487(0, 9)(0, 9)
551(0, 12)(0, 12)
665(0, 26)(2, 0)
738(0, 38)(2, 12)

10176(0, 20)(2, 7)
1112(0, 34)(1, 11)
2180(0, 24)(0, 11)
3132(0, 15)(0, 2)
4183(0, 27)(0, 1)
5147(0, 30)(0, 4)
6161(0, 5)(2, 5)
7134(0, 17)(2, 4)

3.3. Onion Algorithm
3.3.1. Indistinguishability and Associated Integer Pairs

Given an integer pair and , we define and the set . In fact, we can look as a transformation on . If the two cardinalities are identical, , the transformation forms a bijection.

Definition 12. Given an integer pair , if , we call to be distinguishable modulo , or is an associated integer pair with .

Example 13. Decide whether is distinguishable modulo and or not, respectively. We note that contains the integers listed in the third column of Sub-T. Calculations show that . The 16 values in are listed in the forth column of Sub-T1. So, is distinguishable modulo . However, in that 4 and 42 modulo produce a same integer pair , and 24 and 138 modulo produce a same integer pair . So is not distinguishable modulo .

Remark 14. When is distinguishable modulo , there is a bijection between the integers in and the integer pairs in . For example, the third and the forth columns of Sub-T1 listed the integers in and the integer pairs in . For example, if we know an integer satisfies , we search the forth column generated by for in Sub- T1 and find that lies in the same line with , so .

Remark 15. From Remark 10, we have that, for congruent indices ’s modulo , we get a same set . For each , we give two integer pairs and associated with , and the corresponding integer pairs modulo and , respectively, in the forth and fifth column of Sub-T. We denote the set consisting of the two integer pairs and as AIP. For example, AIP=AIP . In Table 2, we list all the 12 sets of AIP.


SetAssociated integer pairs

AIP1
AIP2
AIP3
AIP4
AIP5
AIP6
AIP7
AIP8
AIP9
AIP10
AIP11
AIP0


Security level
Moderate Higher Highest

6090120
Public key size212824702582796
Information rate0.490.500.51
Costs for BFA I
Costs for BFA II

Remark 16. Note that is distinguishable modulo if and only if is distinguishable modulo . For example, also contains integer pairs associated with . If we know that an integer satisfies , we also can determine the value of by searching the forth column generated by in Sub-T for , and we find a unique with . So the unique integer is such that .

3.3.2. Simultaneous Diophantine Equation

Now, we consider a simultaneous Diophantine equation problem as follows; given integers and and positive integer sequences and , find defined in (9) such that It is pointed out that if and , for some constants and subject to , will have exponentially many preimages in satisfying (11); namely, which is . What we mean is that if we require and , (11) will be a many-to-one function. In the subsequent contents, we will define a condition such that (11) will have at most one solution in (to guarantee the unique decipherability for ciphertexts) and propose an algorithm to solve (11). Besides, some transformations will be introduced in the construction of the proposed PKC to derive a compact knapsack problem equipped with noninjectivity, a trapdoor, and one-wayness natures.

3.3.3. An Easy Problem and the Algorithm Solving It

For some special and , we can efficiently determine in (11) as stated in the following lemma.

Lemma 17. Assuming that (11) has solutions in , , and , then can be efficiently and uniquely determined.

Proof. We first note that and , for , so the two equations in (11) modulo and , respectively, give and . Observing that , we can invert and similarly : If , we determine the unique corresponding value according to Remark 14. If , we use the method given in Remark 16 to determine the unique .

The above lemma says that for some special and , we can determine the solution to (11) one by one as if we peel off an onion, so the name Onion Algorithm comes.

Theorem 18. Assuming that (11) has solutions in : and that, for , the solution to (11) can be efficiently and uniquely determined.

Proof. From Lemma 17, can be efficiently and uniquely determined.
For , assuming that have been uniquely determined, we know that We note that for , so divides the right side and hence the left side of (16). We set A similar analysis also applies to the second equation of (11), so we set to obtain If we view (18) as a new simultaneous Diophantine equation problem with integer sequences and , what follows shows that the new problem satisfies the conditions in Lemma 17.
Firstly, (11) has solutions, and have been uniquely determined, so (18) must have solutions.
Secondly, recalling the meaning of , we claim that these entries divided by their gcd must be relatively prime:
Thirdly, From (15) and the previous two proven things, we know that (18) indeed satisfies the conditions in Lemma 17. So we can efficiently determine a unique .
Finally, once have been uniquely determined, it is a trivial thing to determine a unique just by computing Both values on the right side of the above equation must be not only identical but also in because (11) has solutions in and have been uniquely determined.

Given the problem (11), satisfying the conditions presented in Theorem 18, the Onion Algorithm for solving (11) is summarized as shown in Algorithm 1.

(1) Compute according to (13).
(2) if     then
(3)  Search for in Sub- generated by
to get such that
. Store .
(4) end if
(5) if     then
(6)  Search for in Sub- generated by
to get such that
. Store .
(7) end if
(8) for     do
(9)  Compute (18) and
 (*)
(10)if     then
(11) Search the column in Sub-   generated
   by modulo
   for such that
    . Store
    .
(12)end if
(13)if     then
(14)  Search the column in Sub- generated
   by modulo
   for such that
    . Store
    .
(15)end if
(16) end for
(17) Compute and store .
(18) return   .

Now we use a toy example to illustrate what we discuss in this subsection about the Onion Algorithm.

Example 19. Assume that the following equations have solutions in ; find the solution to   +    +   ,   +    +   . We can verify that , , , and , so (14) and (15) are satisfied. Hence, we use the Onion Algorithm to compute . We look up Sub-T3 and find that . So . We compute , . Then we compute . We search Sub-T2 for and find that . So we determine . Finally, we get . Thus, a unique is determined.

3.4. The Proposed Probabilistic Public Key Encryption

In this subsection, we use the results obtained in previous subsections to derive a probabilistic public key encryption.

3.4.1. Key Generation

Randomly choose two sequences and , satisfying conditions (14) and (15) given in Theorem 18, and a two-dimensional invertible square matrix with positive integer entries upper bounded by a constant, Compute Randomly choose two primes such that Let . Compute the vector using the Chinese remainder theorem, Randomly choose an integer and compute The public key is . The secret key consists of