ЛИТЕРАТУРА
1.
Иванов М.А. Криптографические методы защиты информации в
компьютерных системах и сетях. М.: КУДИЦ-ОБРАЗ, 2001-368с.
2.
Харин. Ю.С. Математические и компьютерные основы криптологии. –
Мн.: Новое знание, 2003.-382с.
3.
Шнайер Б. Прикладная криптография. ТРИУМФ. Москва, 2002г. –816 с.
4.
Молдовян Н.А. Криптография: от примитивов к синтезу алгоритмов.-СПб.:
БХВ-Петербург, 2004.-448 с.: ил.
5.
Арипов М.М., Курьязов Д.М. Об одном алгоритме ЭЦП с составным
модулем. // ДАН Республики Узбекистан. №4. 2012г.
.
6.
Арипов М.М., Курьязов Д.М. ЭЦП основанные на сложности решения двух
трудных задач.// Сборник материалах международной научной
конференций, Актуальные проблемы прикладной математики и
информационных технологий -Аль-Хоразмий 2014. Самарканд 15-17
сентября 2014года, Том 2, стр. 59-63
7.
Курьязов Д.М. Алгоритм ЭЦП на эллиптических кривых. // Вестник НУУ
№2. 2013г.
8.
Молдовян Н.А., Гурьянов Д.Ю. Повышение безопасности протоколов
слепой подписи // Вопросы защиты информации. 2012.№4.С.3-6.
9.
Дернова Е.С., Молдовян Н.А. Синтез алгоритмов цифровой подписи на
основе нескольких вычислительно трудных задач // Вопросы защиты
информации.2008.№1.С.22-26.
10.
Дернова Е.С., Молдовян Н.А. Протоколы коллективной цифровой
подписи, основанные на сложности решения двух трудных задач
// Вопросы защиты информации.2008.№2.С.79-85
40
Aripov M., Tuychiev G.
DEVELOPMENT BLOCK ENCRYPTION ALGORITHM BASED
NETWORKS IDEA16–2 AND RFWKIDEA16–2 USING THE
TRANSFORMATION OF ENCRYPTION ALGORITHM AES
National University of Uzbekistan, Republic of Uzbekistan, Tashkent
Abstract
A block encryption algorithms AES–IDEA 16–2 and AES–RFWKIDEA16–2
based on a network IDEA16–2 and RFWKIDEA16–2. In the encryption algorithm
AES–IDEA16–2 as a round function are chosen transformation SubBytes(),
ShiftRows(), MixColumns(), AddRoundKey() and in the encryption algorithm AES–
RFWKIDEA16–2 as a round function are chosen transformation SubBytes(),
ShiftRows(), MixColumns is developed. The length of the block encryption
algorithm is 512 bits, the number of rounds is 10, 12, 14 and key length varies from
256 bits to 1024 bits in steps of 128 bits.
Introduction
In September 1997 the National Institute of Standards and Technology (NIST)
issued a public call for proposals for a new block cipher to succeed the Data
Encryption Standard (DES). Out of 15 submitted algorithms the Rijndael cipher by
Daemen and Rijmen [1] was chosen to become the new Advanced Encryption
Standard (AES) in November 2001 [2]. The Advanced Encryption Standard is a
block cipher with a fixed block length of 128 bits. It supports three different key
lengths: 128 bits, 192 bits, and 256 bits. Encrypting a 128–bit block means
transforming it in n rounds into a 128–bit output block. The number of rounds n
depends on the key length: n = 10 for 128 bit keys, n = 12 for 192 bit keys, and n =
14 for 256 bit keys. The 16 byte input block (
0
t
,
1
t
, …,
1 5
t
) which is transformed
during encryption is usually written as a 4x4 byte matrix, the called AES State.
41
0
t
4
t
8
t
1 2
t
1
t
5
t
9
t
1 3
t
2
t
6
t
1 0
t
1 4
t
3
t
7
t
1 1
t
1 5
t
The structure of each round of AES can be reduced to four basic transformations
occurring to the elements of the State. Each round consists in applying successively
to the State the SubBytes(), ShiftRows(), MixColumns() and AddRoundKey()
transformations. The first round does the same with an extra AddRoundKey() at the
beginning whereas the last round excludes the MixColumns() transformation.
The SubBytes() transformation is a nonlinear byte substitution that operates
independently on each byte of the State using a substitution table (S–box). Figure 1
illustrates the SubBytes() transformation on the State.
0
t
4
t
8
t
1 2
t
0
s
4
s
8
s
1 2
s
1
t
5
t
9
t
1 3
t
1
s
5
s
9
s
1 3
s
2
t
6
t
1 0
t
1 4
t
2
s
6
s
1 0
s
1 4
s
3
t
7
t
1 1
t
1 5
t
3
s
7
s
1 1
s
1 5
s
Figure 1. SubBytes() transformation
In the ShiftRows() transformation operates on the rows of the State; it
cyclically shifts the bytes in each row by a certain offset. For AES, the first row is left
unchanged. Each byte of the second row is shifted one to the left. Similarly, the third
and fourth rows are shifted by offsets of two and three respectively. Figure 2
illustrates the ShiftRows() transformation.
0
s
4
s
8
s
1 2
s
0
'
s
4
'
s
8
'
s
1 2
'
s
1
s
5
s
9
s
1 3
s
cyclically shifts
1
'
s
5
'
s
9
'
s
1 3
'
s
2
s
6
s
1 0
s
1 4
s
cyclically
shifts
2
'
s
6
'
s
1 0
'
s
1 4
'
s
S-box
42
3
s
7
s
1 1
s
1 5
s
cyclically
shifts
3
'
s
7
'
s
1 1
'
s
1 5
'
s
Figure 2. ShiftRows() transformation.
The MixColumns() transformation operates on the State column–by–column,
treating each column as a four–term polynomial. The columns are considered as
polynomials over GF(
8
2
) and multiplied modulo
1
4
x
with a fixed polynomial
)
(x
a
,
given by
2
3
)
(
2
2
x
x
x
x
a
. Let
'
)
(
s
x
a
p
:
3
...
0
,
'
'
'
'
02
01
01
03
03
02
01
01
01
03
02
01
01
01
03
02
3
4
2
4
1
4
4
3
4
2
4
1
4
4
i
s
s
s
s
p
p
p
p
i
i
i
i
i
i
i
i
As a result of this multiplication, the four bytes in a column are replaced by the
following:
3
4
2
4
1
4
4
4
'
'
)
'
}
03
({
)
'
}
02
({
i
i
i
i
i
s
s
s
s
y
3
4
2
4
1
4
4
1
4
'
)
'
}
03
({
)
'
}
02
({
'
i
i
i
i
i
s
s
s
s
y
)
'
}
03
({
)
'
}
02
({
'
'
3
4
2
4
1
4
4
2
4
i
i
i
i
i
s
s
s
s
y
)
'
}
02
({
'
'
)
'
}
03
({
3
4
2
4
1
4
4
4
4
i
i
i
i
i
s
s
s
s
y
.
Figure 3 illustrates the MixColumns() transformation.
0
'
s
4
'
s
8
'
s
1 2
'
s
0
p
4
p
8
p
1 2
p
1
'
s
5
'
s
9
'
s
1 3
'
s
1
p
5
p
9
p
1 3
p
2
'
s
6
'
s
1 0
'
s
1 4
'
s
2
p
6
p
1 0
p
1 4
p
3
'
s
7
'
s
1 1
'
s
1 5
'
s
3
p
7
p
1 1
p
1 5
p
Figure 3. MixColumns() transformation.
In the AddRoundKey() transformation, a round key is added to the State by a
simple bitwise XOR operation. Figure 4 illustrates the AddRoundKey()
transformation.
0
p
4
p
8
p
1 2
p
0
k
4
k
8
k
1 2
k
0
'
p
4
'
p
8
'
p
12
'
p
MixColumns()
43
1
p
5
p
9
p
1 3
p
1
k
5
k
9
k
1 3
k
1
'
p
5
'
p
9
'
p
13
'
p
2
p
6
p
1 0
p
1 4
p
2
k
6
k
1 0
k
1 4
k
2
'
p
6
'
p
10
'
p
14
'
p
3
p
7
p
1 1
p
1 5
p
3
k
7
k
1 1
k
1 5
k
3
'
p
7
'
p
1 1
'
p
1 5
'
p
Figure 4. AddRoundKey() transformation
Description of networks IDEA16–2 and RFWKIDEA16–2 is given in [7, 10]
and similarly as in the Feistel network, while encryption and decryption the same
algorithm is usid. The network used two round function, having four input and output
blocks and as a round function use any transformation.
Using
SubBytes(),
ShiftRows(),
MixColumns(),
AddRoundKey()
transformation of encryption algorithm AES as a round function networks IDEA8–1
[5], RFWKIDEA8–1 [5], PES8–1 [6], RFWKPES8–1 [7], IDEA16–1 [8], created
encryption algorithms AES–IDEA8–1 [9], AES–RFWKIDEA8–1 [10], AES–PES8–
1 [11], AES–RFWKPES8–1 [12], AES–IDEA16–1 [13].
In this article, developed a new block encryption algorithms AES–IDEA16–2
and AES–RFWKIDEA16–2 based networks IDEA16–2 and RFWKIDEA16–2 using
transformation of the encryption algorithm AES. The block length of encryption
algorithm is 1024 bits, the number of rounds is 10, 12, 14 and key length is variable
and varies from 256 bits to 1024 bits in steps 128 bits, i.e. key length is 256, 384,
512, 640, 768, 896 and 1024 bits.
The structure of the encryption algorithm AES–IDEA16–2
In the encryption algorithm AES–IDEA16–2 as a round function used
SubBytes(), ShiftRows(), MixColumns(), AddRoundKey() transformation of
encryption algorithm AES. The scheme of n–rounded encryption algorithm AES–
IDEA16–2 shown in Figure 5 and the length of the subblocks
0
X
,
1
X
, …,
1 5
X
, the
length of the round keys
)
1
(
1 8
i
K
,
1
)
1
(
18
i
K
, ...,
15
)
1
(
18
i
K
,
1
...
1
n
i
,
16
18
n
K
,
17
18
n
K
, ...,
47
18
n
K
is 32
bits. A length of round keys
16
)
1
(
18
i
K
,
17
)
1
(
18
i
K
,
n
i
...
1
is 128 bits.
44
Fig. 5. The structure of the n–rounded encryption algorithm AES–IDEA16–2
Consider the round function of the encryption algorithm AES–IDEA16–2. First,
32–bit subblocks
0
T
,
1
T
, ...,
7
T
is divided into 8 bit subblocks
0
0
t
,
0
1
t
, ...,
0
1 5
t
and
1
0
t
,
1
1
t
,
...,
1
1 5
t
as follows:
)
(
4
4
mod
0
idiv
i
i
T
sb
t
,
)
(
4
4
4
mod
1
idiv
i
i
T
sb
t
,
15
...
0
i
. Here div–integer part of the
division, mod–remainder of the division and
7
1
0
0
...
)
(
x
x
x
X
sb
,
15
9
8
1
...
)
(
x
x
x
X
sb
,
23
17
16
2
...
)
(
x
x
x
X
sb
,
31
25
24
3
...
)
(
x
x
x
X
sb
,
31
1
0
...x
x
x
X
. As elements of the array State the first
45
round function selected
0
0
t
,
0
1
t
, ...,
0
1 5
t
, as well as the second round function selected
1
0
t
,
1
1
t
, ...,
1
1 5
t
. Then performed SubBytes(), ShiftRows(), MixColumns(), AddRoundKey()
transformation. In the AddRoundKey() transformation 128 bit keys are divided into
32 bit keys, i.e.
j
i
K
16
)
1
(
18
,
j
i
K
17
)
1
(
18
,
3
...
0
j
. Here
3
16
)
1
(
18
2
16
)
1
(
18
1
16
)
1
(
18
0
16
)
1
(
18
16
)
1
(
18
||
||
||
i
i
i
i
i
K
K
K
K
K
,
3
17
)
1
(
18
2
17
)
1
(
18
1
17
)
1
(
18
0
17
)
1
(
18
17
)
1
(
18
||
||
||
i
i
i
i
i
K
K
K
K
K
. The elements of the array of keys the first round
function
0
0
k
,
0
1
k
, …,
0
15
k
and second round function
1
0
k
,
1
1
k
, …,
1
15
k
is calculated as
follows:
)
(
4
32
)
1
(
36
4
mod
0
div
i
i
i
i
K
sb
k
,
)
(
4
33
)
1
(
36
4
mod
1
div
i
i
i
i
K
sb
k
,
15
...
0
i
.
After
AddRoundKey()
transformation 8 bit output values combined and will receive eight 32 bit subblock
0
Y
,
1
Y
, ...,
7
Y
. Here
0
Y
,
1
Y
,
2
Y
,
3
Y
–output value from the first round function,
4
Y
,
5
Y
,
6
Y
,
7
Y
–
output value from the second round function and
0
Y
=
'
| |
'
| |
'
| |
'
0
3
0
2
0
1
0
0
p
p
p
p
,
1
Y
=
'
| |
'
| |
'
| |
'
0
7
0
6
0
5
0
4
p
p
p
p
,
2
Y
=
'
| |
'
| |
'
| |
'
0
11
0
10
0
9
0
8
p
p
p
p
,
3
Y
=
'
||
'
||
'
||
'
0
15
0
14
0
13
0
12
p
p
p
p
,
4
Y
=
'
| |
'
| |
'
| |
'
1
3
1
2
1
1
1
0
p
p
p
p
,
5
Y
=
'
| |
'
| |
'
| |
'
1
7
1
6
1
5
1
4
p
p
p
p
,
6
Y
=
'
||
'
||
'
||
'
1
11
1
10
1
9
1
8
p
p
p
p
,
7
Y
=
'
||
'
||
'
||
'
1
15
1
14
1
13
1
12
p
p
p
p
.
The S–boxes of SubBytes() transformation is given in Table 1 and 2 and the
only nonlinear transformation. The length of the input and output blocks of S–boxes
is equal to eight bits. The first S–box used in the first round function and the second
S–box used in the second round function.
Достарыңызбен бөлісу: |