Modified Hill Cipher with Key Dependent Permutation and Circular Rotation

: In this study, we have modified the Hill cipher, by including a permutation and circular rotation into the cipher. Here both the permutation and the rotation depend upon the key. From the cryptanalysis and the avalanche effect, discussed in this study, we notice that the strength of the cipher is significant.


INTRODUCTION
The study of the block ciphers [1] which depends upon a symmetric key attracted the attention of researchers, in the first part of last century. Hill developed a cipher, by taking a key in the form of a matrix and using the concept of modular arithmetic inverse. However, it was established that the cipher can be broken by the known plaintext attack.
In a recent research [2] , we have examined the cryptology of the Hill cipher and introduced a systematic procedure for the development of the modular arithmetic inverse of a matrix. In this we have shown that the modular arithmetic inverse of a matrix exists only when the matrix is non-singular, and the value of the determinant is relatively prime to N, where N is a positive integer with which modulo operation is carried out. In this we have noticed that the Hill cipher is vulnerable as the matrix multiplication and the modular arithmetic lead to a direct mapping, without any transposition, connecting the plaintext and the ciphertext.
In the present research our objective is to develop a cipher which involves different types of transformations such as permutation and circular rotation in addition to matrix multiplication and modular arithmetic. In this investigation we have made use of iteration in order to enhance the strength of the cipher. This cipher is expected to be a very strong one, and it cannot be broken by any cryptanalytic attack.

DEVELOPMENT OF THE CIPHER
Consider a plaintext P. Let us suppose that it can be represented in the form of a matrix given by be the ciphertext which can be obtained from the plaintext by applying a set of transformations.
In order to facilitate our analysis, let us represent the above matrices in terms of their corresponding vectors p,k,c given by p = [p 1 ,p 2 ,p 3 …p n 2 ], k = [k 1 ,k 2 ,k 3 …k n 2 ] and c = [c 1 ,c 2 ,c 3 …c n 2 ].
In writing these vectors we have arranged the elements of the corresponding matrices in a row wise manner.
The procedures of encryption and decryption concerned to this cipher are shown inFig.1.
This cipher, depends upon the functions: The function Permute( ) permutes the binary bits of a plaintext vector in accordance with the numbers present in the key vector. This process of permutation can be described as follows: Convert the components of p, namely, p 1 , p 2, p 3 ….p n 2 into their corresponding binary bits. Thus we get the binary bits in the form As the numbers in the plaintext are lying between 0 and 127 we have only 7 bits for every number.
Here we have 7n 2 binary bits in the plaintext and n 2 numbers in the key. Thus we divide the string of 7n 2 binary bits into 7 substrings wherein each substring contains n 2 binary bits. Then we interchange the first bit of the first substring with the k 1 th bit of the entire string. Similarly we interchange the second bit of the first substring with the k 2 th bit of the entire string. We continue this process until all the bits in the first substring are over. In the same way, we carry out the process with the second substring and the third substring, and so on. However, if any one of the numbers in k 1 to k n 2 exceeds 7n 2 , the length of the string, then the interchange is ruled out, and it will not be done. For a detailed discussion of the permutation, let us refer to the example given in Appendix 1.
The function Convert( ) is developed for converting a vector into a two dimensional matrix. Iconvert( ) performs the reverse process to that of Convert( ). Now, the process of left circular rotation denoted by Lrotate( ) and the process of right circular rotation denoted by Rrotate( ) are explained below. As it is mentioned above let us represent the numbers p 1 , p 2, p 3 …. p n 2 (the components of p ) in terms of their binary bits. Let the string of binary bits be written as The key vector k has the components k1, k 2 …... k n 2 , where each one of these numbers lies between 0 and 127.Let us now obtain a set of numbers d i , such that In what follows we design the algorithms for encryption and decryption of the cipher.

CRYPTANALYSIS
Let us now consider the cryptanalysis of the cipher. In this the length of the key is 7n 2 binary bits. Thus the size of the key space is 2 7n 2 . Hence the cipher cannot be broken by ciphertext only attack, when n> = 4.
In the case of the known plaintext attack, though we know as many pairs of plaintext and ciphertext as we like, here it is not possible to form a direct equation connecting the plaintext and the ciphertext matrices as there are several transformations, namely, permutation and rotation involved in the process of encryption. Thus the cipher cannot be broken by the known plaintext attack also. Further it may be mentioned that no special choice of the plaintext/ciphertext will enable the cryptanalyst to break the cipher.
In the light of the above discussion we find that this cipher is a very strong one and it cannot be broken by any cryptanalytic attack.

AVALANCHE EFFECT
Let us consider the avalanche effect. On changing the first character 'I' in the plaintext (8) to 'H', the plaintext in its binary form changes by one bit. On