A Block Cipher Involving a Key Bunch Matrix and Including another Key Matrix Supported With Modular Arithmetic Addition

In this paper, we have developed a novel block cipher involving a key bunch matrix supported by a key-based permutation and a key-based substitution. In this analysis, the decryption key bunch matrix is obtained by using the given encryption key bunch matrix and the concept of multiplicative inverse. From the cryptanalysis carried out in this investigation, we have seen that the strength of the cipher is remarkably good and it cannot be broken by any conventional attack.


INTRODUCTION
The development of block ciphers, basing upon a secret key, is a fascinating area of research in cryptography. Though there are several block ciphers, such as Hill Cipher [1], Fiestal Cipher [2], DES [3], together with its variants [4] [5], and AES [6]. In all these ciphers, the processes, namely, iteration, permutation and substitution play a vital role in strengthening the cipher. More often, in all these ciphers, the block length and the key length are maintained as 64, 128, 192, or 256 binary bits.
In a recent investigation, we have developed a set of block ciphers [7], [8], [9], "in press" [10], "unpublished" [11], [12], wherein, a secret key bunch matrix plays a prominent role. In all these ciphers, the encryption key bunch matrix contains a set of keys, in which each key is an odd number lying in . In all these analyses, the corresponding decryption key bunch matrix, which is also containing odd numbers lying in , is obtained by using the concept of the multiplicative inverse [4]. In the development of all these block ciphers, the length of the plaintext can be taken as large as possible, at our will, as the size of the key bunch matrix can be chosen as big as possible, in an effective manner. This feature ensures the strength of the cipher in a remarkable way.
In the present investigation, our objective is to develop a novel block cipher, by using the encryption key bunch matrix, and applying a key-based permutation and substitution which strengthen the cipher in a significant manner. The details of the permutation and the substitution processes are presented later.
In what follows, we mention the plan of the paper. In section 2, we discuss the development of the cipher. Further, we present flowcharts and algorithms required in this investigation. Here we deal with the key based permutation and substitution involved in this analysis. In section 3, we offer an illustration of the cipher. In this, we examine the avalanche effect, which acts as a benchmark in respect of the strength of the cipher. In section 4, we make a study of the cryptanalysis. Finally in section 5, we present the computations carried out in this analysis, and arrive at conclusions.

II. DEVELOPMENT OF THE CIPHER
Consider a plaintext P which can be represented in the form of a matrix given by On assuming that the cipher involoves an iteration process, the flowcharts governing the encryption and the decryption can be drawn as shown in Figs. 1 and 2.
In this analysis, r denotes the number of rounds in the iteration process, and is taken as 16. and   5 16 , x x . This is the basic idea of the permutation process, which we employ in the case of columns 118 | P a g e www.ijacsa.thesai.org of numbers as well as rows of numbers occurring in a matrix. For clarity of this process, we refer to the illustration that we are going to do in section 3, a little later.
Let us firstly discuss the process of the key based permutation applied on a plaintext obtained in any round of the iteration process of the encryption. Consider the plaintext P= [ ij p ], i=1 to n, j=1 to n. Let us consider the first two rows of this matrix. On representing each decimal number ij p in its binary form, and writing the binary bits in a vertical manner, we get a matrix of size 16xn, for these two rows. On assuming that n is divisible by 16 (for convenience), we can represent these two rows in the form of n/16 sub-matrices, wherein each one is a square matrix of size 16. Then on swapping the rows (as pointed out in the case of the numbers x1 to x16) and the columns (subsequently one after another), we get the corresponding permuted matrices. After that, by taking the binary bits in a row-wise manner, we convert them into decimal numbers, and write them in a row-wise manner. Thus we get back a matrix of size 2×n.We carry out this process in a similar manner for every pair of rows and having n columns. Thus we complete the permutation of the entire matrix and get a permuted matrix of size nxn. However if n<16, the process of swapping is restricted according to the value of n. For example, let us suppose that n=4. And P is of the form given by On writing the 16 decimal numbers in terms of binary bits in a column-wise manner, the matrix (2.8) can be represented in the form of a matrix of size 8x16. This is given by Firstly, as suggested by Table-1, we interchange the row pairs (2,3), (4,6), and (7,8). Thus we get We need not interchange rows any more as we have only 8 rows in this matrix. Now, we interchange the columns following the information in Table-1. This will lead to a matrix of size 8x16, which is given by (2.12) On using the basic idea of the key-based permutation process, we permute the rows (firstly) and the columns (subsequently), and obtain the substitution matrix, called SB, given by  68  77  78  72  64  74  73  76  70  71  67  79  69  65  66  75   212  221  222  216  208  218  217  220  214  215  211  223  213  209  210  219   228  237  238  232  224  234  233  236  230  231  227  239  229  225  226  235   132  141  142  136  128  138  137  140  134  135  131  143  133  129  130  139   4  13  14  8  0  10  9  12  6  7  3  15  5  1  2  11   164  173  174  168  160  170  169  172  166  167  163  175  165  161  162  171   148  157  158  152  144  154  153  156  150  151  147  159  149  145  146  155   196  205  206  200  192  202  201  204  198  199  195  207  197  193  194  203   100  109  110  104  96  106  105  108  102  103  99  111  101  97  98  107   116  125  126  120  112  122  121  124  118  119  115  127  117  113  114  123   52  61  62  56  48  58  57  60  54  55  51  63  53  49  50  59   244  253  254  248  240  250  249  252  246  247  243  255  245  241  242  251   84  93  94  88  80  90  89  92  86  87  83  95  85  81  82  91   20  29  30  24  16  26  25  28  22  23  19  31  21  17  18  27   36  45  46  40  32  42  41  44  38  39  35  47  37  33  34  43   180  189  190  184  176  186  185  188  182  183  179  191  181  177 178 187 SB (2.13) The function Substitute() works as follows: On noticing the position of a decimal number (corresponding to a character in the plaintext, at any stage of the iteration process) in the EBCDIC table, we substitute that number in the plaintext by the decimal number occurring in the same position of the substitution matrix.
The functions IPermute() and ISubstitute() denote the reverse processes of the Permute() and the Substitute(), respectively. The function Mult() is used to find the decryption key bunch matrix D for the given encryption key bunch matrix E. www.ijacsa.thesai.org

III. ILLUSTRATION OF THE CIPHER AND THE AVALANCHE EFFECT
Consider the plaintext given below.
Dear Brother-in-law! Up to the time that you went abroad, that is a month back, my mother and father promised to give me to you in marriage. They do not want their daughter to go away to this country. They say that they cannot live without my presence along with this in this country. Now they are searching for an Indian match. You are highly qualified. You did your M.Tech. Now you are doing your Doctorate. How can I forget you? I all the while remember your charming personality and your pleasant talk. It is simply impossible for me to forget you and marry someone else. Whatever my father and mother say to me I want to escape from their clutches and reach you as early as possible. I am finishing my final year exams. I have already passed GRE and TOEFL. I would apply for bank loan with the cooperation of your father and get away from this country very soon and join you without any second thought. (3.1) Let us focus our attention on the first 16 characters of the plaintext. This is given by Now, on using the decryption key bunch matrix D, given by (3.5), the ciphertext C, given by (3.6), and applying the decryption algorithm, we get back the plaintext P, given by (3.3).
Let us now examine the avalanche effect. On replacing the 4th row 2nd column element, 137 by 169, we get a change of one binary bit in the plaintext. On using this modified plaintext, the encryption key bunch matrix E and applying the encryption algorithm, we get a new ciphertext C in the form     On comparing (3.6) and (3.7), after converting them binary form, we notice that these two ciphertexts differ by 68 bits out of 128 bits. Let us now consider the case of a one bit change in the key bunch matrix E. This can be achieved by replacing 101 (the 2nd row 1st column element of E) by 116. Now, on using the modified E, the plaintext P, given by (3.3), and applying the encryption algorithm, we get the corresponding ciphertext C in the form (3.8) On converting the ciphertexts (3.6) and (3.8) into their binary form, and comparing them, we find that these two ciphertexts differ by 71 bits out of 128 bits.
From the above analysis, we conclude that the cipher is expected to be a strong one.

IV. CRYPTANALYSIS
In the literature of the cryptography, the strength of a cipher can be decided by carrying out cryptanalysis. The different attacks that are available for breaking a cipher are 1. Ciphertext only attack (Brute force attack), 2. Known plaintext attack, 3. Chosen plaintext attack, and 4. Chosen ciphertext attack.
Generally every cipher is designed, so that it withstands the first two attacks [4]. However the latter two attacks are examined intuitively and checked up whether the cipher can be broken by those attacks.
Let us now consider the ciphertext only attack. In this cipher, the encryption key bunch matrix is of size n  n. The key matrix used in the development of the permutation and the substitution is a square matrix of size 4. Hence the size of the key space is Let us now consider the known plaintext attack. In order to carry out this one, we know as many pairs of plaintexts and ciphertexts as we require. If we confine our attention to r=1, that is to the first round of the iteration process, then the basic equations governing the cipher are given by p ] mod 256, i = 1 to n, j=1 to n, (4.1) P = Permute(P), (4.2) P = Substitute(P), (4.3) and C = P (4.4) As C is known to us, the P on the right side of (4.4) is known. Thus, though P on the left side of (4.3) is known to us, the P on the right side of (4.3) cannot be determined as the Substitute() and the ISubstitute(), which depend upon the key K, are unknown to us. Hence this cipher cannot be broken by the known plaintext attack, even when r=1, as K is not known. However, if an attempt is made to tackle this problem by the brute force attack, that is choosing K in all possible ways, covering the entire key space of the key K, then the time required for developing the functions Permute() and Substitute() can be shown to be as the length of the key K is 128 binary bits. Here, it is assumed that the time required for the computation of Permute() and Substitute() (together with IPermute() and ISubstitute()) takes 7 10  seconds. As this time is very large, we firmly conclude that this cipher cannot be broken by the known plaintext attack, even when we supplement it with the brute force attack.
As the equations governing the cipher, are non-linear and highly involved, due to permutation, substitution and modular arithmetic operations, we envisage that it is not possible to choose either a plaintext or a ciphertext for breaking the cipher by the third or the fourth attack.
In the light of the above facts, we conclude that, this cipher is a strong one and it cannot be broken by any conventional attack.

V. COMPUTATIONS AND CONCLUSIONS
In this investigation, we have developed a novel block cipher by using a key bunch matrix. In this, we have made use of a permutation process and a substitution process basing upon a key matrix of size 4x4. The strength of a cipher has increased enormously as we have introduced iteration process and the functions Permute() and Substitute().