Sunteți pe pagina 1din 12

International Journal of Computational Intelligence and Information Security, October 2011 Vol. 2, No.

10


19

A Block Cipher using Feistals Approach Involving Permutation and
Mixing of the Plaintext with Interlacing and Decomposition and Additive
Inverse of Key Matrix

N.Swapna
1
, Dr. Udaya Kumar Susarla
2
, Dr. M.V. Vijaya Sarathi
3

1
Sr. Asst Prof CSE Dept Auroras Engineering College Bhongir, Nalgonda, A.P

2
Principal MVSR Engineering College Nadergul, Hyderabad, A.P
3
nswapna2005@gmail.com
Prof & Head IT Department Auroras Engineering College Bhongir, Nalgonda, A.P
, uksusarla@gmail.com , meduri_vsd@yahoo.co.in

Abstract
In this research, we have developed a block cipher for a block of size 112 bits by using an iterative method
involving interlacing of the plaintext and the subkeys generated in each iteration. Here we have represented the
plaintext as a matrix of size 8 14 , comprising binary bits. In the process of encryption, we have used a key
matrix (K), which also consists of binary bits and generated subkeys from K for each iteration. For decryption,
we have used the Additive Inverse (K
0
)
-1
of the subkeys and decomposition of plaintext . In this, we have
discusseed the cryptanalysis and have shown that the cipher cannot be broken by any cryptanalytic attack.

Keywords: Block cipher, Subkeys, Additive Inverse of the Subkeys, Interlacing, and Decomposition.

1. Introduction
A number of block ciphers [1-6] have been developed in the recent past, which can be found in the
literature. Feistal [2, 3] has used the concepts of Hill cipher [1] and developed the Feistal cipher. However,
subsequently he found that his approach is vulnerable for cryptanalytic attacks. Recently Udaya et al. [4-5]
developed a few block ciphers using Feistals approach and have shown that the ciphers developed by them are
cryptographically stronger.

In the present research, we proposed a block cipher with a different approach based on the Feistal
structure. Here, we use the concept of permutation and diffusion, in the development of cipher. In this, we have
shown that a thorough mixing of the elements of the subkeys and the interlaced plaintext for each iteration will
lead to a cipher, which cannot be broken by any cryptanalytic attack.

2. Development of Cipher
2.1 Key Generation
We first discuss the generation of key matrix from the given key, denoted by K
0
.

Let K
0
= abcdefghijklmnop. (2.1.1)

Now we convert each element in the key, K
0
to its corresponding 7 bit ASCII code. Since the key, K
0
Contains 16 elements, the corresponding ASCII code bits of key, denoted as K
0A
will comprise 112 bits. Thus

K
0A
= [1 1 0 0 0 0 1 1 1 0 0 0 1 0 1 1 0 0 0 1 1 1 1 0 0 1 0 0 1 1 0 0 1 0 1 1 1 0 0 1 1 0 1 1 0 0 1 1 1 1 1 0 1 0 0 0
1 1 0 1 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 1 1 1 1 0 1 1 0 0 1 1 0 1 1 0 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 0 0 0 0 ]
(2.1.2)

Let us now generate a matrix and denote it as 0 K of size 4 28 . The process of generation of 0 K is as
follows:
The first element of the 112 bits of K
0A
is placed in the 1
st
row of 1
st
column of the matrix 0 K . The
second element in K
0A
is placed in the 1
st
row 2
nd
column of 0 K . Then the third and the fourth elements of K
0A

International Journal of Computational Intelligence and Information Security, October 2011 Vol. 2, No. 10


20

are placed in the 1
st
row, 3
rd
and 4
th
columns of 0 K respectively. Now the fifth element of K
0A
is placed in the
2
nd
row 1
st
column, sixth element is placed in 2
nd
row 2
nd
column, the seventh and eighth elements are placed as
2
nd
row 3
rd
and 4
th
columns of 0 K respectively. This process continues until all the elements of K
0A
are
exhausted. Thus, 0 K is generated.

From 0 K let us now generate 8 28 matrix, wherein the elements of 0 K are repeated and permuted
to give rise to a matrix of size 8 28 , denoted as K .

1 1 0 0
0 0 1 1
1 0 0 0
1 0 1 1
0 0 0 1
1 1 1 0
0 1 0 0
1 1 0 0
1 0 1 1
1 0 0 1
1 0 1 1
0 0 1 1
1 1 1 0
1 0 0 0
0
1 1 0 1
0 0 1 1
1 0 1 0
1 0 1 1
0 1 0 1
1 1 1 0
1 1 0 0
1 1 0 1
1 0 1 1
1 0 1 1
1 0 1 1
0 1 1 1
1 1 1 1
0 0 0
' K is
0
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(

(2.1.3)

The procedure for generating K in detail as given under:
The 4 28 matrix of 0 K is placed as it is. Then, the first element under column one in 28
th
row of
0 K is placed in the first row fifth column and the first element in the 27
th
row is placed in the second row fifth
column and so on. Then we get the first column elements of 0 K will appear in the descending order in the fifth
column of K similarly we place the elements in other columns 2, 3, 4 of 0 K in the sixth, seventh and eighth
columns. Thus K is generated.

1 1 0 0 0 0 0 0
0 0 1 1 1 1 1 1
1 0 0 0 0 1 1 1
1 0 1 1 1 0 1 1
0 0 0 1 1 0 1 1
1 1 1 0 1 0 1 1
0 1 0 0 1 1 0 1
1 1 0 0 1 1 0 0
1 0 1 1 1 1 1 0
1 0 0 1 0 1 0 1
1 0 1 1 1 0 1 1
0 0 1 1 1 0 1 0
1 1 1 0 0 0 1 1
1
K =
0 0 0 1 1 0 1
1 1 0 1 1 0 0 0
0 0 1 1 1 1 1 0
1 0 1 0 0 0 1 1
1 0 1 1 1 0 1 1
0 1 0 1 1 0 0 1
1 1 1 0 1 0 1 1
1 1 0 0 1 1 0 0
1 1 0 1 0 1 0 0
1 0 1 1 1 1 1 0
1 0 1 1 0 0 0 1
1 0 1 1 1 0 1 1
0 1 1 1 1 0 0 0
1 1 1 1 0 0 1 1
0 0 0 0 1 1 0 0
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(

(2.1.4)

Now once again permute K to obtain the key matrix K of size 8 28 the procedure for generating K
from K is described as follows:

International Journal of Computational Intelligence and Information Security, October 2011 Vol. 2, No. 10


21

The element in the 15
th
row of the 1
st
column of the matrix K is placed as element in the 1
st
row 1
st

column; the element in the 15
th
row 2
nd
column of the matrix K is placed as the element in the 2
nd
row first
column and so on. This way the eight elements belonging to the 15
th
row have now appeared as the first eight
elements in the first column of the matrix K. We continue in this fashion till we exhaust the first 4 elements of
18
th
row of K this gives the first column of 28 elements in K. We now use the same procedure and obtain the
2
nd,
3
rd
and 4
th
column of K from the remaining elements of 18
th
row (4 bits) till the final element of 28
th
row. We
now come back to row 1 of K and place these eight elements as the first eight elements of the fifth column of
K. Then we take the eight elements of the second row and third row of K respectively and place them as the
next sixteen elements of 5
th
columns of K. We now take the first four elements of the fourth row of K and place
them as the remaining four elements of 5
th
column of K. We continue this process till all the remaining elements
of the fourth row to end of 14
th
row. Thus we have generated key matrix, K is given by,
1 1 1 1 1 1 1 1
1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1
1 1 1 1 0 1 0 1
1 0 0 0 0 0 1 0
0 1 1 1 0 0 1 0
0 0 0 1 0 0 0 1
0 1 0 1 0 1 0 1
0 1 1 1 0 1 1 1
0 0 0 0 0 0 0 0
1 0 1 0 1 1 1 1
1 1 1 0 1 1 1 0
1 1 1 1 1 1 1 1
1
K =
1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
0 0 0 1 1 0 0 0
1 1 1 0 1 1 1 0
0 0 0 0 0 0 0 0
1 1 1 1 0 1 0 1
0 1 1 1 0 1 1 1
0 1 0 0 0 0 0 1
0 1 0 0 1 1 1 0
1 0 0 0 1 0 0 0
1 0 1 0 1 0 1 0
1 1 1 1 1 1 1 1
0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0
1 0 1 0 1 1 1 1
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(

(2.1.5)

Let us now generate the subkeys thirty (30) in number to be used in the thirty (30) iterations with one
subkey in each iteration. The procedure involved in the generation of subkeys is discussed below.

The first subkey K
1
is generated from K as follows:
The element in the 8
th
column of the first row of the matrix K is placed as the element in the first row,
first column of the matrix K
1
. Then the element in the 7
th
column first row of the matrix K is placed as the
element in the 2
nd
row of the first column of the matrix K
1
. This process is continued for the remaining elements
of the first row of the matrix K. Thus, we have the elements of the first row of the matrix K have appeared in the
descending order in the first column as the first eight elements of the matrix K
1
. In a similar manner, this process
is continued for the 2
nd
and 3
rd
rows of K. At this stage, we have twenty four (24) elements in the first column of
the matrix K
1
.

Now, we take the last four (4) elements of the 4
th
row of K and we place them as the remaining
elements in the first column of K
1
. Thus we have 28 elements in the first column of K
1
. Now the first four (4)
elements of the 4
th
row are placed as the first four elements in the second column of K
1
and the elements of 5
th
,
6
th
, 7
th
rows of K appear in descending order in the second column of matrix K
1
. We continue this process of
placing the remaining elements of the matrix K as the remaining elements of the matrix K
1
. Thus we have a
8 28 matrix, K
1
given by

International Journal of Computational Intelligence and Information Security, October 2011 Vol. 2, No. 10


22

1
1 1 1 0 1 0 0 1
1 1 0 1 1 0 1 1
1 1 1 0 1 0 1 1
1 1 0 1 1 0 1 1
1 0 1 0 1 1 0 1
1 1 0 1 1 0 0 0
1 0 1 1 1 1 1 1
1 0 0 1 1 0 0 0
0 0 1 0 0 1 0 1
1 0 1 1 0 1 0 0
0 0 1 1 0 1 0 1
1 1 0 1 1 1 1 0
0 0 1 1 1 1 0 0
1
K =
1 1 1 0 1 0 1
0 0 1 1 0 1 0 0
1 0 0 1 0 0 1 1
1 1 0 1 0 1 0 0
0 1 0 1 1 1 1 1
1 1 0 1 1 1 0 0
0 0 0 1 1 0 1 1
1 1 0 1 0 1 0 1
0 0 0 1 1 0 1 1
1 0 0 1 1 0 0 1
0 0 0 1 1 0 1 1
1 1 1 1 0 0 1 0
0 0 1 1 0 0 1 1
1 0 1 1 0 1 1 0
0 0 1 1 0 0 1 1
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(

(2.1.6)

Now the sub key K
2
is generated from K
1
as follows:

Here, we place the first element of 28
th
row of K
1
as the element in the first row, first column of the
matrix K
2
. We then place the 2
nd
element of the 28
th
row of K
1
as the 2
nd
element of the first column of K
2
.
Similarly we place all the remaining six (6) elements of the 28
th
row of matrix K as the remaining elements of
first column of K
2
Proceeding in a similar, we place the elements belonging to 27
th
and 26
th
rows of K
1
as the
next sixteen (16) elements in the first column of K
2
. We now take the elements of the 25
th
row belonging to
columns 1, 2, 3 and 4 and place them as the remaining 4 elements of the first column of K
2
. At this stage, we
have 28 elements in the first column of K
2
. Similarly the remaining elements of 25
th
row of the columns 5, 6, 7
and 8 of K
1
are placed as the first four elements of the second column of K
2
. Proceeding in this way we place all
the remaining elements of K
1
and obtain K
2
.

2
00111011
00111100
11011011
10111111
00010111
00111011
10000111
11111110
11000011
00010110
11001001
11101011
01111011
10001001
10100100
01110001
01101011
00101100
10010011
11111101
00101111
00101011
10011001
11010110
11000
K =
111
10110010
11001000
11101011
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(

(2.1.7)
International Journal of Computational Intelligence and Information Security, October 2011 Vol. 2, No. 10


23


K
3
is generated from K
2
like the way K
1
was generated from K. In a similar manner K
5
, K
7
, K
9
..K
29

are generated from K
4
, K
6
, K
8
K
28
respectively. K
4
is generated from K
3
using the same procedure adopted in
the generation of K
2
from K
1
. In the same manner K
6
, K
8
, K
10
K
30
are generated from K
5
, K
7
, K
9
K
29

respectively.

We now use the subkey of each iteration (K
1
, K
2
K
30
) which are of size 8 28 matrix and convert
each of them in to 8 14 matrix ) ,........ , ( 30 2 1 K K K by using addition modulo of 2
8
. This was done as
follows.
First two rows of 8 28 matrix (K
1
) are taken and addition modulo 2
8
is performed on these two rows
to give rise to a single row of 8 bits, this is the first row of a new matrix, 1 K of size 8 14 , then the next two
rows i.e. 3
rd
and 4
th
rows of K
1
are taken and addition modulo 2
8
is performed on these two rows, which gives a
row of 8 bits which is the 2
nd
row of 1 K . In a similar manner the 5
th
and 6
th
, 7
th
and 8
th
up to 27
th
and 28
th

rows are taken and addition modulo 2
8
is performed on each pair of rows there by generating the complete
matrix 1 K of size 8 14 .

1
1 1 0 0 0 1 0 0
1 1 0 0 0 1 1 0
1 0 0 0 0 1 0 1
0 1 0 1 0 1 1 1
1 1 0 1 1 0 0 1
0 0 0 1 0 0 1 1
0 0 1 1 0 0 0 1
1 1 0 0 0 1 1 1
0 0 1 1 0 0 1 1
1 1 1 1 0 1 1 1
1 1 1 1 0 0 0 0
1 0 1 1 01 0 0
0 0 1 0 0 1 0 1
1
K =
1 1 0 1 0 0 1
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(

(2.1.8)

Similarly the other matrices 30 3 2 ,...... , K K K , are generated from K
2
, K
3
,., K
30
respectively.

Complementing all the keys 30 2 1 , ,......... , K K K . We get 1 2 30 , ,......., K K K .


1
00111011
00111001
01111010
10101000
00100110
11101100
11001110
00111000
11001100
00001000
00001111
01001011
11011010
00010110
" K
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(

=
(2.1.9)

2.2 Interlacing and Decomposition of Plaintext

Let us now consider the plaintext P
0
comprising 16 characters. By using the ASCII code, each character
can be represented in terms of seven binary bits. Then the plaintext comprising 167 binary bits and converting
into 148 matrix i.e.,

P
jk
where j=1 to 14 and k= 1 to 8.

International Journal of Computational Intelligence and Information Security, October 2011 Vol. 2, No. 10


24

Let us denote the key by i K , i = 1 to 30.
In the process of encryption

C
0
= <P
jk
> where j=1 to 14 k= 1 to 8.

P
jk=
11 18
141 148
a a
a a
| |
|
|
|
\ .



j=1 to 14(m) k= 1 to n (8).

Then all the elements of first column are written in row and then second column like that all columns
are written

[ a
11
a
21
a
31
a
41
a
51
a
61
a
71
a
81
a
91
a
101
a
111
a
121
a
131
a
141
a
12
a
22
a
32
a
42
a
52
a
62
a
72
a
82
a
92
a
102
a
112
a
122
a
132

a
142
a
13
a
23
a
33
a
43
a
53
a
63
a
73
a
83
a
93
a
103
a
113
a
123
a
133
a
143
a
14
a
24
a
34
a
44
a
54
a
64
a
74
a
84
a
94
a
104
a
114
a
124
a
134
a
144
a
15
a
25
a
35
a
45
a
55
a
65
a
75
a
85
a
95
a
105
a
115
a
125
a
135
a
145
a
16
a
26
a
36
a
46
a
56
a
66
a
76
a
86
a
96
a
106
a
116
a
126

a
136
a
146
a
17
a
27
a
37
a
47
a
57
a
67
a
77
a
87
a
97
a
107
a
117
a
127
a
137
a
147
a
18
a
28
a
38
a
48
a
58
a
68
a
78
a
88
a
98
a
108
a
118
a
128

a
138
a
148
]

Then we place the last element of the row, i.e. a
148
as the first element of the first row first column, the
last but one element of the row a
147
as the first element of the first row second column and so on, till we exhaust
all the first elements positions of the first row.

Subsequently, we carry out the process of placing the elements of the row in the second element
position of each of the column and continue the same procedure till we place all the elements of the row in the
column. Thus, finally, all the positions of the matrix are completely filled as we have 14 * 8 elements.

148 147 146 145 144 143 142 141
138 137 136 135 134 133 132 131
128 127 126 125 124 123 122 121
118 117 116 115 114 113 112 111
108 107 106 105 104 103 102
C P
0 0
a a a a a a a a
a a a a a a a a
a a a a a a a a
a a a a a a a a
a a a a a a a
=< > =
101
98 97 96 95 94 93 92 91
88 187 86 85 84 83 82 81
78 77 76 75 74 73 72 71
68 67 66 65 64 63 62 61
58 57 56 55 54 53 52 51
48 47 46 4
a
a a a a a a a a
a a a a a a a a
a a a a a a a a
a a a a a a a a
a a a a a a a a
a a a a 5 44 43 42 41
38 37 36 35 34 33 32 31
28 27 26 25 24 23 22 21
18 17 16 15 14 13 12 11
a a a a
a a a a a a a a
a a a a a a a a
a a a a a a a a
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(



C
i
= (K
i
+ C
i-1)
mod 2
8
i=1 to 30

Where < > denotes the process of interlacing.

In general Interlacing can be written as follows.

C
i-1
= <C
jk
i-1
> where
i is the number of iteration (30) j=1 to 14, k= 1 to 8.

International Journal of Computational Intelligence and Information Security, October 2011 Vol. 2, No. 10


25

The process of decryption, which depends upon iteration and decomposition (a procedure opposite to
that of interlacing) is carried out by reversing all the above steps, one after another, starts from the last step. Now
let us describe the process of decomposition.

Consider the ciphertext C. Divide this into 14 8 matrix.
P
i-1

= > C
i-1
< where i = 1 to 30

Let C=
11 18
141 148
c c
c c
| |
|
|
|
\ .


We place the first element of the first column vector (C
11
) as the last element of the row, the first
element of the second column vector (C
12
) as the last but one element of the row, and so on. Thus by placing the
first elements of the 14 column vectors (C
1 14
) in the row we get the last n elements of the row. Then we place the
second elements of each of the 14 column vectors in a similar manner. We continue this process till we exhaust
all the elements of the vectors. Thus the row consists of 112 elements given by

[ c
148
c
147
c
146
c
145
c
144
c
143
c
142
c
141
c
138
c
137
c
136
c
135
c
134
c
133
c
132
c
131
c
128
c
127
c
126
c
125
c
124
c
123
c
122
c
121
c
118
c
117
c
116
c
115
c
114
c
113
c
112
c
111
c
108
c
107
c
106
c
105
c
104
c
103
c
102
c
101
c
98
c
97
c
96
c
95
c
94
c
93
c
92
c
91
c
88
c
87
c
86
c
85
c
84
c
83
c
82
c
81
c
78
c
77
c
76
c
75
c
74
c
73
c
72
c
71
c
68
c
67
c
66
c
65
c
64
c
63
c
62
c
61
c
58
c
57
c
56
c
55
c
54
c
53
c
52
c
51
c
48
c
47
c
46
c
45
c
44
c
43
c
42
c
41
c
38
c
37
c
36
c
35
c
34
c
33
c
32
c
31
c
28
c
27
c
26
c
25
c
24
c
23
c
22
c
21
c
18
c
17
c
16
c
15
c
14
c
13
c
12
c
11
]

We now divide the row into 14 8 matrix

148 132 114 096 078 062 044 026
147 131 113 095 077 061 043 025
146 128 112 094 076 058 042 024
145 127 111 093 075 057 041 023
144 126 108 092 074 056 038 022
143
c c c c c c c c
c c c c c c c c
c c c c c c c c
c c c c c c c c
c c c c c c c c
c 125 107 091 073 055 037 021
142 124 106 088 072 054 036 018
141 123 105 087 071 053 035 017
138 122 104 086 068 052 034 016
137 121 103 085 067 051 033 015
136 118
c c c c c c c
c c c c c c c c
c c c c c c c c
c c c c c c c c
c c c c c c c c
c c 102 084 066 048 032 014
135 117 101 083 065 047 031 013
134 116 098 082 064 046 028 012
133 115 097 081 063 045 027 011
c c c c c c
c c c c c c c c
c c c c c c c c
c c c c c c c c
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(



We may now write
P
i
= > C
i-1
<

Where > < denotes the process of decomposition.

On obtaining the additive inverse of each K

i
denoted by K

i
-1
, i = 1 to 30, we get

P
i
= (K

i
-1
+ C
i-1
)
mod 2
8
.

It may be noted that i K
-1
such that ( ) ( i K + ) ( i K
-1
) mod 2
8
= 0. Now the process of iteration
governing decryption, which involves the decomposition procedure, can be written as follows.

P
i
= > C
i-1
jk
< where
International Journal of Computational Intelligence and Information Security, October 2011 Vol. 2, No. 10


26

j = 1 to 14, k =1 to 8 and i =30 to 1.

At the end of the iteration, we get the plaintext P
0
.


3. Algorithms

3.1 Algorithm for key generation

1. Initialize key, K
0
by reading 16 characters

2. Generate K
0A
, ASCII code of each character from K
0


3. Find K

0
from K
0A


4. Find K

from K

0


5. Find K from K



6. Find K
i
from K
i-l

for i = 1 to 30 where K
0
= K

7. Find K

i
from K
i
for i = 1 to 30

8. Find K

i

from

K
i
for i=1 to 30

3.2 Algorithm for Encryption

1. Read P
0



2. Read K
i

for i =1 to 30(n)

3. for i = 1 to 30
{
for j=1 to 14
for k=1 to 8
C
i-1
= <C
jk
i-1
>
Where C
0
= P
0

C

i
= ( K
i
+ C
i-1
)mod 2
8
}

4. Find C by concatenating C
30
.

5. Write C.
3.3 Algorithm for Decryption

1. Read C

2. Divide C into 148 matrix

3. for i =1 to 30 read K

i
and
Find K
-1
i

4. for i = 1 to 30
{
for j=1 to 14
for k = 1to 8
International Journal of Computational Intelligence and Information Security, October 2011 Vol. 2, No. 10


27

P
i-1

= > C
i-1
jk
<
C
i-1
=(K
i
-1
+P
i-1
) mod 2
8

}

5. find P from P
30


3.4 Additive Inverse of the subkeys

1. Read K
i
for i to 30

2. for i=1 to 30
Find (K
i
) such that
((K
i
)+( K
i
)
-1
) mod 2
8
=0

4. Illustration of Cipher

Let us consider the plaintext, P
0
given by

P
0
= management study (16). (4.1)

This consists of 16 characters including one blank space. By using the ASCII code of each character, we
represent the plaintext, P
0
in terms of seven (7) binary bits. Let us now place the seven (7) binary bits of each
character in a row and obtain a matrix, P
0A
given by

P
0A
= [1 1 0 1 1 0 1 1 1 0 0 0 0 1 1 1 0 1 1 1 0 1 1 0 0 0 0 1 1 1 0 0 1 1 1 1 1 0 0 1 0 1 1 1 0 1 1 0 1 1 1 0 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 0 0 0 1 0 0 0 0 0 1 1 1 0 0 1 1 1 1 1 0 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 1 1 1 1 0 0 1 ]
(4.2)

Let us now convert the matrix, P
0A
into 14 8 matrix P given by
1 1 0 1 1 0 1 1
1 0 0 0 0 1 1 1
0 1 1 1 0 1 1 0
0 0 0 1 1 1 0 0
1 1 1 1 1 0 0 1
0 1 1 1 0 1 1 0
1 1 1 0 0 1 0 1
1 1 0 1 1 1 0 1
1 1 0 1 0 0 0 1
0 0 0 0 0 1 1 1
0 0 1 1 1 1 1 0
1 0 0 1 1 1 0 1
0 1 1 1 0 0 1 0
0 1 1 1 1 0 0 1
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(

(4.3)
Let us now consider the key K
0
comprising 16 characters which is given by

K
0
=abcdefghijklmnop (4.4)

Each character can be represented by the corresponding 7 bit ASCII numbers .Hence we get 112 bits
(167=112)


K = [1 1 0 0 0 0 1 1 1 0 0 0 1 0 1 1 0 0 0 1 1 1 1 0 0 1 0 0 1 1 0 0 1 0 1 1 1 0 0 1 1 0 1 1 0 0 1 1 1 1 1 0 1 0 0 0 1
1 0 1 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 1 1 1 1 0 1 1 0 0 1 1 0 1 1 0 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 0 0 0 0 ]
(4.5)
Place them in the form 284 matrix. As discussed section 2.1 we generate 30 subkeys K
1
, K
2
K
30
from
these we get K
i
for i=1 to 30 by adopting modulo 2
8
addition .And we obtain K
i
by complementing K
i
for i=1
to 30.

We obtain the corresponding modulo additive inverse (K
i
)
-1
for each K
i
Where in i takes values 1 to 30
satisfying relation

International Journal of Computational Intelligence and Information Security, October 2011 Vol. 2, No. 10


28

((K
i
)+( K
i
)
-1
) mod 2
8
=0. (4.6)

Now on using the algorithm for encryption discussed in section 3.2 we obtain the ciphertext C
corresponding to the plaintext P
0
given by equation 4.1. Thus

C=[01110101011100011100001000100101100111110011000100011100011001110000010011100100110010011
11010101010100000010010] (4.7)

The receiver who has previously obtained the key from the sender uses the decryption algorithm
discussed in section 3.3 by using additive modulo inverse 2
8
as shown in equation 4.5 obtains( K
i
)
-1
for i=1 to
30 and retrieves the original plaintext.
As process of encryption involving the iterative scheme contains equations which mix plaintext and the
key very thoroughly it can therefore be anticipated that the cipher cannot be broken by a cryptanalytic attack,
now we discuss briefly the cryptanalysis.

5. Cryptanalysis

After the first iteration the cipher text can be written as

C
1
=(K
1
+P)mod 2
8
(5.1)

At the end of 2 iteration the cipher can written as

C
2
=(K
2
+C
1

)mod 2
8
(5.2)

It is to be noted here that C
1

is the interlacing of C
1
while K
2
is the permutation of the subkeys K
2
. Similarly
as the number iterations takes values 1 to 30 we have

C
30
=(K
30
+

C'
29
)mod 2
8
(5.3)

and C=C
30
(5.4)


Knowing the final value of C for a given plaintext neither K
30
nor C
30
can be obtained . Hence the cipher can
never be broken by the known plaintext attack (or) for that matter by any other cryptanalytic attack.

6. Avalanche Effect

The strength of any cryptographic algorithm is often evaluated by testing the algorithm against the
avalanche effect. Here, we test our algorithm by considering the avalanche effect. Consider the plaintext given
by

P=network security. (6.1)

The above plaintext is of 16 characters which corresponds to 112 ASCII bits.

Taking the key
K
0
= abcdefghijklmnop. (6.2)

The corresponding 112 ASCII bits of K is given by

K=[11000011100010110001111001001100101110011011001111101000110100111010101101011110110011011
01110111011011111110000] (6.3)

On using the key generation algorithm discussed in section 3.1 and the encryption algorithm discussed
in section 3.2 we obtain the ciphertext C corresponding to the plaintext P given by

International Journal of Computational Intelligence and Information Security, October 2011 Vol. 2, No. 10


29

C=[1010101010010100011011111110110000110101100110100001001110101010100000010011010010110010
100110101010100101010100] (6.4)

Now changing the 10 character in the plaintext from e to d which is equivalent to changing the
plaintext in a single bit position i.e., network security and using the same key K
0
mentioned in 6.2 and
applying encryption algorithm discussed in section 3.2 we obtain the ciphertext given by

C
new
=[100011111111111110001000000011100000101000101111011001001010101101101100000000110110111
1111001000111010111110110] (6.5)

On comparing the above results 6.4 and 6.5 we observe that the two ciphertexts C and C
new
differ in 67
bits out of 112 bits. This indicates that the algorithm exhibits a strong avalanche effect.

Now changing the key given by 6.2 in a single bit position i.e., abcdefghijkllnop(m is replaced by l)
which results in the new key given by


K
new
=[110000111000101100011110010011001011100110110011111010001101001110101011010111101100110
1100110111011011111110000] (6.6)

On using the key generation algorithm discussed in section 3.1 and the encryption algorithm discussed
in section 3.2 we obtain the ciphertext C
knew
corresponding to the plaintext P and the K
new
key is given by 6.6 i.e.,

C
knew
=[00010111100010110010000101010100000111100010010001101011001001110111010110110000110110
00000111011111111110100110] (6.7)

On comparing the above results 6.4 and 6.7 we observe that the two cipher texts C and C
knew
differ in
61 bits out of 112 bits.

This once again clearly proves that the algorithm has pronounced avalanche effect.

7. Experimental Results and Conclusions

In this paper we have developed a block cipher for a block of 112 bits. Here the plaintext and key are
taken as 112 bits each.

In the generation of the cipher the plaintext is interlaced and the subkey generated is permuted in each
iteration. The subkey generation involves a very complex procedure, which involves enough confusion.

The algorithm which involves the interlacing of intermediate ciphertexts and the permutation of
subkeys, in each iteration provides strong diffusion.

Hence the algorithm provides a very strong diffusion and confusion, which are the fundamental
requirements for a block cipher.

In this paper we have briefly discussed the cryptanalysis and have logically deduced that no
cryptanalytic attack can break the cipher.

Towards the end we have evaluated the algorithm against the avalanche effect, which clearly indicated
that this algorithm is indeed a very strong one with inherent cryptographic strength and it cannot be broken by
any cryptanalytic attack.

References

[1] William Stallings, Cryptography and Network Security: Principles and practices, Third edition, 2003,
chapter 2, pp. 37
[2] Feistal, H. Cryptography and Computer Privacy, Scientific American, vol.228, No.5, pp.15-23,1973.
International Journal of Computational Intelligence and Information Security, October 2011 Vol. 2, No. 10


30

[3] Feistal H Notz W., and Smith.J some cryptographic techniques for Machine-to Machine Data
Communications, Proceedings of the IEEE .Vol,63 No 11 PP 1545-1554,Nov 1975.
[4] V.U.K.Sastry ,V. Janaki, On the Modular arithmetic Inverse in the cryptology of Hill Cipher,
Proceedings of North American Technology and Business Conference, September 2005, Montreal,
Canada.
[5] S.Udaya Kumar, V U K Sastry, A Vinay Babu An iterative process involving interlacing and
decomposition in the development of a block cipher IJCSNS Vol 6 No 10 october 2006
[6] Aruna Varnasi , Dr. S.Udaya kumar A Block Cipher using Feistals Approach involving Permutation
and mixing of the Plaintext and the Additive Inverse of Key Matrix JCS Vol 4 No 2: 117-124, 2008

S-ar putea să vă placă și