**4.2 Computational complexity of the CAC**

In this section, we would validate the computational complexity of the proposed CAC. The computational complexity measures the amount of computational effort required, by the best as of now known techniques, to break a system [2]. However, it is exceptionally hard to demonstrate the computational complexity of public-key cryptosystems [2, 3]. For instance, if the public modulus of RSA is factored into its prime components, at that point the RSA is broken. Be that as it may, it is not demonstrated that breaking RSA is identical to factoring its modulus [41]. Here, we study the computational complexity of the CAC by

providing arguments related to the inversion of the one-way function in CAC to a best known computational algorithm. The complexity of anonymous decryption could be understood as; if we assume that an attacker wants to recover the secret key by using all the information's available to them. Then they need to solve the discrete logarithm problem (DLP) to find the secret key followed by a number of steps described in Algorithm 6. Since, the one-way function is define analogous to discrete logarithm problem (DLP). However, although most mathematicians and computer scientists believe that the DLP is unsolvable [42]. The complexity of the DLP depends on the cyclic group. It is believed to be a hard problem for the multiplicative group of a finite field of large cardinality. Therefore even determining the very first step is nearly unsolvable.

If it is the case that somehow attacker manages to solve the DLP, then they have to determine Eq. (1) and calculate all the solutions corresponding to different pairs ð Þ *a*, *b* <sup>2</sup>*<sup>l</sup>* <sup>2</sup> . Further, it is required to determine the relation matrix based on equality relation among the solutions of Eq. (1). Where entries of the relation matrix are the two-tuple structure of ð Þ *a*, *b* <sup>2</sup>*<sup>l</sup>* <sup>2</sup> . Finally, entries of inverse of the relation matrix are required to replace through the implication of DLP.

Here we could observe the computational complexity as it increases with the value of *p* and 2*l* 2 . Therefore it is nearly impossible to determine the secret key for a large value of *p* and 2*l* 2 ; hence uphold the secure formulation claim of the proposed work.

#### **4.3 An example of the CAC**

In this section, we provide an example for the proposed CAC. The example is designed according to guidelines described in Section 4. The main purpose of this example is to show the reliability of our cryptosystem. It is important to note that this example is non-viable for the proposed CAC, since the values of the parameters are too small.

*Example 1* Let us consider 2*l* <sup>2</sup> <sup>¼</sup> 8 (i.e. *<sup>l</sup>* <sup>¼</sup> 2) and *<sup>p</sup>* <sup>¼</sup> 17. Suppose we want to send a message *X* whose numerical value store in matrix **A** of order 8.


We choose two distinct non-trivial generators of a set of generator in **F**<sup>∗</sup> <sup>17</sup> (the set of generator is obtain by employing Algorithm 2), say *γ*<sup>0</sup> ¼ 11 and *γ*<sup>00</sup> ¼ 3. Now, we evaluate the complex relation between these chosen generators, which can perform by DLP. One can write 3<sup>7</sup> <sup>¼</sup> 11 mod17 ð Þ. Consider that *<sup>r</sup>*<sup>0</sup> <sup>¼</sup> 7. The public key is the public values *l* ¼ 2, *p* ¼ 17 & *γ*<sup>0</sup> ¼ 11 and the private key is the secret values *l* ¼ 2, *p* ¼ 17, *r*<sup>0</sup> ¼ 7 & *γ*<sup>00</sup> ¼ 3. The public values generated cyclotomic matrix of order 8 as required, which is

*A Public Key Cryptosystem Using Cyclotomic Matrices DOI: http://dx.doi.org/10.5772/intechopen.101105*


Determinant of **B**<sup>3</sup> is equal to 1, implies non-singular. Now we encrypt the message **A** by multiplying matrix **B**<sup>3</sup> and **A**, which is as follows:


The matrix **C** is a ciphertext matrix. To transmit the message, entries of the matrix converted into text. To decrypt the message, first, we expand the secret keys which are performed by Algorithm 4. It generates a non-singular cyclotomic matrix of order 8, which is shown by matrix **B**0. Now each entry of equality of cyclotomic matrix (i.e. output matrix of Algorithm 1) is multiplied by *r*<sup>0</sup> ¼ 7. We get matrix *D* whose entries are pair of cyclotomic numbers.

$$\mathbf{D} = \begin{bmatrix} (0,0) & (0,7) & (0,6) & (0,5) & (0,4) & (0,3) & (0,2) & (0,1) \\ (0,7) & (0,1) & (1,2) & (1,6) & (1,5) & (1,4) & (1,3) & (1,2) \\ (0,6) & (1,2) & (0,2) & (1,3) & (2,4) & (2,5) & (2,4) & (1,6) \\ (0,5) & (1,6) & (1,3) & (0,3) & (1,4) & (2,5) & (2,5) & (1,5) \\ (0,4) & (1,5) & (2,4) & (1,4) & (0,4) & (1,5) & (2,4) & (1,4) \\ (0,3) & (1,4) & (2,5) & (2,5) & (1,5) & (0,5) & (1,6) & (1,3) \\ (0,2) & (1,3) & (2,4) & (2,5) & (2,4) & (1,6) & (0,6) & (1,2) \\ (0,1) & (1,2) & (1,6) & (1,5) & (1,4) & (1,3) & (1,2) & (0,7) \end{bmatrix}$$

Now compute the inverse of **D** and substitute the value from **B**<sup>0</sup> to each pair of cyclotomic numbers. The matrix becomes

$$\mathbf{D}^{\*} = \begin{bmatrix} -1 & 1 & 1 & -1 & -1 & 1 & -1 & 1 \\ 1 & 0 & 0 & 1 & 0 & 0 & 0 & -1 \\ 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ -1 & 1 & 0 & -1 & 0 & 1 & -1 & 1 \\ -1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\ -1 & 0 & 0 & 1 & 0 & -1 & 1 & -1 \\ 1 & 0 & 0 & -1 & 0 & 1 & 0 & 1 \\ -1 & 0 & 0 & -1 & 0 & 1 & 0 & 1 \\ 1 & -1 & 0 & 1 & 1 & -1 & 1 & -1 \end{bmatrix}$$

Finally, we obtain **<sup>D</sup>\*** � **C=A**.
