Научная статья на тему 'Разработка нового алгоритма шифрования данных с симметричным ключом'

Разработка нового алгоритма шифрования данных с симметричным ключом Текст научной статьи по специальности «Математика»

CC BY
266
21
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АЛГОРИТМ / ALGORITHM / СИММЕТРИЧНЫЙ КЛЮЧ / SYMMETRIC KEY / FEISTEL SCHEME / СЕТИ ФАЙСТЕЛЯ

Аннотация научной статьи по математике, автор научной работы — Умаров Ш.А., Акбаров Д.Е.

В статье описывается алгоритм шифрования данных с симметричным ключом с использованием комбинации практически необратимых преобразований. Предлагаемый алгоритм основан на сети Файстеля.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Умаров Ш.А., Акбаров Д.Е.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Working Out the New Algorithm Enciphered the Data with a Symmetric Key

In this article data encryption algorithm with symmetric key which uses combination of practically irreversible transformations is described. Offered algorithm based on Feistel scheme.

Текст научной работы на тему «Разработка нового алгоритма шифрования данных с симметричным ключом»

Journal of Siberian Federal University. Engineering & Technologies, 2016, 9(2), 214-224

УДК 681.3

Working Out the New Algorithm Enciphered the Data with a Symmetric Key

Shukhrat A. Umarov*a and Davlatali E. Akbarovb

aUShA, Fergana Branch of the Tashkent University Information Technologies

Fergana, Uzbekistan bADE, Fergana Branch of the Tashkent University Information Technologies

Fergana, Uzbekistan

Received 22.05.2015, received in revised form 18.10.2015, accepted 24.01.2016

In this article data encryption algorithm with symmetric key which uses combination of practically irreversible transformations is described. Offered algorithm based on Feistel scheme.

Keywords: algorithm, symmetric key, Feistel scheme.

Citation: Umarov S.A., Akbarov D.E. Working out the new algorithm enciphered the data with a symmetric key, J. Sib. Fed. Univ. Eng. technol., 2016, 9(2), 214-224, DOI: 10.17516/1999-494X-2016-9-2-214-224.

Разработка нового алгоритма шифрования данных с симметричным ключом

Ш.А. Умарова, Д.Е. Акбаров6

аУША, Ферганский филиал Ташкентского университета информационных технологий

Фергана, Узбекистан бАДЕ, Ферганский филиал Ташкентского университета информационных технологий

Фергана, Узбекистан

В статье описывается алгоритм шифрования данных с симметричным ключом с использованием комбинации практически необратимых преобразований. Предлагаемый алгоритм основан на сети Файстеля.

Ключевые слова: алгоритм, симметричный ключ, сети Файстеля.

© Siberian Federal University. All rights reserved Corresponding author E-mail address: sht00357@gmail.com

*

Введение

Предлагаемый симметричный блочный алгоритм шифрования данных основан на сети Фейстеля, который обеспечивает удобную аппаратную реализацию [1, 2].

Математическая модель такого преобразования, реализуемого сетью Файстеля в ,-м цикле шифрования, имеет следующий вид:

где XI = (Ь1Л, Я,ч) - входной блок /-го цикла, разделенный на две половины Дч и Я,ч, а блок У,- = (¿¡, Я) - результат зашифрования блока X, на ключе /-раунда кр1 с помощью функции/.

Алгоритм шифрования реализуется несколькими итерациями преобразования сети Файстеля с использованием ключа к. При этом каждая I -итерация использует в качестве входного блокаХ1 результат предыдущей итерации 7М, т.е. Х1 = У1-1, ключ I -раунда кр1, вычисляемый определенным образом по ключу к, а функция/ зависит или не зависит от номера итерации. Когда функция / не зависит от номера итерации, в каждом раунде используется одна и та же функция / с разными ключевыми параметрами соответствующего раунда.

Ценность преобразований подобного вида заключается в том, что функция / может не быть обратимой функцией, но преобразование сети Файстеля обратимо. Действительно, из математической модели -го цикла, приведенного выше, учитывая свойства двоичного сложения, нетрудно получить соотношения

которые дают математическую модель алгоритма расшифрования в каждой I -й итерации.

Вышеперечисленные блочные симметричные алгоритмы шифрования данных, основанные на сети Файстеля, отличаются друг от друга по конструкции функции /

В предлагаемом алгоритме для конструкции функции f сети Файстеля используются следующие преобразования: битовое сложение открытого текста с раундовым ключом по mod 2; матричное преобразование по mod 256; S-блок; таблица сжатия. Математические модели этих перечисленных преобразований и их свойства отличаются от преобразований известных вышеперечисленных алгоритмов.

Предлагаемый алгоритм, используя комбинацию преобразований: битовое сложение по mod 2; матричное преобразование по mod 256; S-блока и сжатия, осуществляет шифрование 64-битовых блоков данных с помощью 256-битового ключа к.

Решение задачи. В приводимом описании предлагаемого алгоритма использованы следующие обозначения:

- Т0 - 64-разрядные (битовые) блоки открытых данных;

- Тш -64-разрядные (битовые) блоки шифрованных данных;

- t i - i-бит-последовательности открытых данных;

- Li и Ri - левая и правая половина 64-разрядного (битового) блока LR, где i = 0,1,2,.. .,8;

Постановка задачи

- (а1 (г),а2(/),...,а32(г)) - биты левой части /'-раунда преобразования, т.е.

Ц = (а! (/), а2 аз2 0));

- (ь (/),ъ2 (/),...,ь

32 у)) - биты правой части /-раунда преобразования, т.е.

^=(ъ, (/), ъ 2 (О,..., Ъз2 (/));

- м4x1 = (м1,м2,мз,м4) - 32-разрядный (четыре восьмибитных) входной вектор матричного преобразования, где значения байтов х1 на интервале 0 < хг < 255, г = 1,2,3,4;

- Лпх4 - прямоугольная матрица (которая генерируется от ключевой последовательности по заранее определенному правилу, следовательно, она секретная), где п = 2т, т = 2,... ,М, М < элементы а.. (г = 1,...,и; у = 1,2,3,4;) этой матрицы выражаются одним байтом, поэтому удовлетворяют условию 0 < а. < 255;

- Уих1 = (», У г,—, У„) - выходной вектор результата матричного преобразования Лпх4ипх4 по mod 256, т.е. упх4 = Лnх4мnх4(mod 256), гдеу-байты, 0 < у 1 < 255, /=1,2,.,п ;

- Б-блок (который генерируется от ключевой последовательности по заранее определенному правилу, следовательно, он секретный) преобразования, состоящий из 256 узлов замены Б0, Б2,..., Б255, имеющие один байт (восемь битов) входов и выходов:

80 81 82 ... 8255

где 0 < 51, Б2,...,Б256 < 255 и Si Ф / и Б, Ф Б] при / Ф ], т.е. числа Б/ принимают значения в интервале 0 < Б, < 255 произвольным правилом;

- © - операция побитового сложения векторов-блоков по mod 2 (по модулю 2);

- ^их1 = (21,22,-,2и) - вектор, представляющий собой результат преобразования вектора уиХ1 = (У1,у2,...,у„) через 8-блок, т.е. 2ИХ1 = Я(уих1), где -байты, 0 < < 255, /=1,2,.,п;

- к = к1к2...к8 - 256-разрядный ключ, записанный в виде восьми 32-разрядных подклю-чей к, / = 1,...,8;

- к = к1(/)к2(/).к32(/) - 32-разрядный /-подключ;

- к) = к1 (/')к2 (/')...к8 (/),..., к* = к25 (/)к26 (/)...£32 (/)-четыре байта 32-разрядного /-подключа

к;

- к = (к1 (рг )к 2 (р/)...к32 (рг )) - 32-разрядные (битовые) ключи /-го раунда (цикла), где р/ = 1,.,8;

- кн - 64-разрядный начальный ключ;

- кк - 64-разрядный конечный ключ;

- /- функция шифрования;

- ТС - таблица сжатия 16х16 (секретная, передается вместе с ключом или генерируются от ключа по определенному правилу), используемая при генерации раундовых ключей, в ячейках которой в равномерном распределеним расположены числа чу, где 0 < < 15, / = 0,...,15, ] = 0,—,15:

400 ?01 . ?0,15

410 Чи . ?1,15

^15,0 ^15,1 .■■ 415,15

- w„x4 = (w1; w2, w3, w4) - 32-разрядный (4-байтный) вектор результата сжатия.

Кроме перечисленных обозначений использованы промежуточные, которые не были приведены в данном списке.

При шифровании открытые данные разбиваются на 64-разрядные блоки. Процедура зашифрования каждого 64-разрядного блока T0 включает 8 раундов (циклов). В ключевое запоминающее устройство вводится 256-разрядный ключ k, записанный в виде восьми 32-разрядных подключей k, : k = k1k2_k8.

Каждый ключ ,-раунда kpi генерируется по 32-разрядному подключу kt = k1(i)k2(i).k32(i), разделив его на четыре байта, т.е. kt = (к,,к],к?,к*) = (к, {i)к2(i)...k8(i),...,к25(i)k26(i)...k32(/)), и преобразуя эти байты через соответствующие узлы блока S, причем по значениям k\,...,k4 в десятичной системе исчисления (k ')10,..., (k ,4)10 определяются номера узлов преобразования в S-блоке, а результатом преобразования байтов k',..., k4 являются двоичные представления значения S^,..., Sk4, т.е. (Ski)2,., (Sk4)2, соответствующих узлов (k1)10,., (k,4)10:

кр1 = s(kj,..., к4 )=(s(k; >,..., sk ))=((Sk,)2,...,(Sk4)2 )=(к\г,..., k4pi) .

Из исходного 256-разрядного ключа k с использованием таблицы сжатия ТС генерируется 64-разрядный начальный ключ kH.

Исходный 256-разрядный ключ k преобразуется через S-блок, и его результат подвергается сжатию до 64-разрядного (битового) блока, который принимается как конечный ключ kK.

Алгоритм шифрования осуществляется в следующих процессах. Вначале последовательность битов блока T0, подлежащего зашифрованию, побитно суммируется начальным ключом по mod 2, т.е. T0 © kt= T0, и опять присвоив T0 = T0, T0 разбивается на две половины по 32 бита: To = (tl (0), t] (0),..., /32 (0), t зз (0),..., t6A (0))= (a,(0), ^(0),..., ^32 (0), 6,(0), 6](0),..., 632(0)) = (L0, R0).

На первом раунде вычисление значения функции f производится в следующем виде:

1. Блок R0 побитно по модулю 2 складывается 32-разрядным ключом первого раунда kpi = ki(p1)k2(p1)...k32(p1), т.е.

6i(0)62(0).632(0) © ki(pi)k2(pi). k32(pi) =

= (6i(0) © ki(p 1))(62(0) © k2(p1))...(632(0) © k32(pi)) =

= Xi(1)x2(1).x8(1)xi(2)x2(2).x8(2)xi(3)x2(3).x8(3)xi(4)x2(4). ^(4) =

(Х1, X2, X3, X4) x4x1.

2. После этого 32-битовая последовательность, разделенная на четыре подблока, по восемь бит каждый, т.е. x4x1 = (x1, x2, x3, x4) = (X, Y, Z, W), соответствующие элементы которого (x,y,z,w) = (xl(1), xl(2), xl(3), x;(4)), l = 1,...,8; этих подблоков подвергается логическому преобразованию:

F (X, Y, Z ,W) = yw © xw © xzw © xyz = u(1);

G(X,Y, Z,W) = x © y © zw © xzw © xyw = u(2);

R(X,Y,Z, W) = xz © xyz © xzw = u(3);

V(X, Y, Z, W) = w © yz © xzw = u(4);

где выбранные булевы функции Г(Х,У,2^), в(Х,У,2,Ж), Я(Х,У,2^), У{Х^,2Ж) являются сбалансированными, регулярными и максимально нелинейными [3].

3. Результат преобразования предыдущего этапа и4х1 подвергается матричному преобразованию в конечном поле целых чисел по модулю 256, т.е.

>-Их1 = 04ИхlИИхl)mod 256.

4. Каждый /'-байту, / = 1,...п, 8 х п-разрядного (п-байтного) вектораупх1 преобразуется через соответствующие узлы блока 5, причем по значению /-байта (у1(/)у2(/).у8(/)) 2 = у/ в десятичной системе исчисления (у1(/)у2(/).у8(/))2 = (у)10 определяются номера узлов преобразования в 8 -блоке, а результатом преобразования байта является двоичное представление значения 8у , т.е. {б^ )2 соответствующего узла (у/)10 : 2 1 = Б (у 1 ) = Б {у1 (/')у2 (/')...у 8 (')) = )2, следовательно, имеем 8хп-разрядного (п-байтного) вектора 2пх1 = 8(уих1) = (2Ь22,...,2п) как результат преобразования вектора упх1 через 5-блок.

5. По таблице сжатия ТС 8хп-разрядный (п-байтный) вектор 2пх1 сжимается в 32-разрядный (4-байтный) вектор ^х1 = (^1, ^4) следующим образом:

- каждый байт 21 вектора 2пх1 разделяется на полубайты, т.е. полагается, что

2Их1 =(21,..., 2И )= С2'1,"., 2 2« )= 2 2пуЛ ;

- по значениям полубайтов 21 2 1 и 2 2, в десятичной системе исчисления (2 1 )10 и {2 2« )10 соответственно определяются номера строки и столбца ТС, число ^ ^ ^ (полубайт), находящееся в пересечении этой строки и столбца, является результатом сжатия полубайтов 21 и 22, на полубайт байт ^ ^ ^ , далее этот процесс повторяется для всех пар (22, 2 2,-1), (23, г 2,-2), ..., (2,, 2 ,+1), т.е. для всех пар (2 /, г 2п-(/-1)), где /'=1,..., п;

- результат сжатия, полученный на предыдущем шаге с использованием ТС аналогичным образом, подвергается сжатию (т-2) раз и получается результат полного сжатия ^х1 = (^1, ^4) - 32-разрядный (4-байтный) вектор.

6. Результат полного сжатия ^х1 = (^1, ^4) - 32-разрядный (4-байтный) вектор по-битно по модулю 2 сложится левой половиной Ь0 блока данных Т0:

¿0 © w4Уll = /1 (0)/2 (0).../з2 (0)© (1)...^8 (1)^1 (2)...^8 (2)^1 (3)...^ (3)^1 (4)...^8 (4) =

= ¿0 © /кр1 ) = Л,

где функцией/(Я0, кр1) обозначено преобразования пунктов 1-4 блока данных Я0 на ключе кр1.

7. Без каких либо изменений битов блока Я0 полагается: Ь1 = Я0.

Вышеприведенные пункты 1-6 преобразования блока данных Т0 в целом представляют 1-раунд преобразования предлагаемого алгоритма шифрования.

Полагая, что Ьо = ¿1, Яо = Я1 и кр1 = кр2, затем, аналогичным образом повторяя пункты преобразования 1-6, осуществляется 2-раунд преобразования алгоритма. Таким образом, если результат преобразования (/-1)-раунда получен, то, полагая Ь0 = Ь/-1, Я0 = Я/-1 и кр1 кр—1, затем повторяя пункты преобразования 1-6, осуществляется /-раунд алгоритма шифрования. Количество раундов предлагаемого алгоритма шифрования равно 8, т.е. /=1,2,.. .,8.

Блок Тк = Я8 Ь8, образованный из объединения блоков Ь8 и Я8, побитно суммируется по модулю 2 с конечным ключом кк, т.е. Тк © кк =Тш.

Алгоритм дешифрования осуществляется в следующих процессах. По алгоритму Тк = (Л8, Ь8) и Тш-64-разрядный (битовый) блок шифрованного данного образован в виде Тш = Тк © кк = (Л8, Ь8) © кк. Такое создание шифрованных данных обусловлено тем, что в шифровании и расшифровании пользуются одним и тем же алгоритмом, причем при расшифровании принимаются в качестве входного блока данных Тш и начального ключа кк, раундовые ключи используются в обратном порядке: в 1-раунде кр8, во 2-раунде кр7..., 8-раунде кр1 и в качестве конечного ключа к. В итоге следует открытый блок данных.

Выше было отмечено, что прямоугольное матричное преобразование Лпх4 (где п = 2т, т = 2,...,М, М < да), 5"-блок и ТС - таблица сжатия генерируются от ключевой последовательности по заранее определенным правилам. Здесь приведем правила генераций.

Генерация матрицы матричного преобразования. Матрица преобразования Лпх4 имеет пх4 элементов. Каждый элемент а^ ( = 1,...,п;] = 1,2,3,4) содержит по 8 битов=1 байт.

При т = 2 матрица преобразования квадратичная, т.е. Л4х4, она имеет 16 элементов, содержащих по 8 битов. В этом случае 256-битный ключ к циклический сдвигается направо на X бит (где X - любое нечетное число из интервала от 3 до 255) и элементы аи ( = 1,2,3,4;] = 1,2,3,4) образуются из первой 128-битовой сдвинутой последовательности. Например, полагаем первый байт а1Ь следующий байт а12 и так далее шестнадцатый байт а44. Далее сравнением устанавливается, чтобы на каждой строке матрицы хотя бы один элемент был с нечетным значением и все элементы матрицы были с различными значениями.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

При т = 3 матрица преобразования прямоугольная, т.е. Л8х4 она имеет 32 элемента, 256-битный ключ к циклический сдвигается направо на X бит и элементы аи ( = 1,2,3,4,.. .,8;] = 1,2,3,4) образуются из 256-битовой последовательности, полученной в результате сдвига; полагаем, что первый байт а1Ь следующий байт а12 и так далее тридцать второй байт а84. Далее сравнением устанавливается, что на каждой строке матрицы хотя бы один элемент был с нечетным значением, кроме того, все элементы матрицы были с различными значениями.

При т = 4 матрица преобразования прямоугольная, т.е. Л[6х4 и имеет 64 элемента, 256-битный ключ к циклически сдвигается направо на X бит и элементы аи ( = 1,2,3,4, .,8;] = 1,2,3,4) образуются из сдвинутой 256-битовой последовательности; полагаем, что первый байт аш следующий байт ап и так далее тридцать второй байт а84. Далее уже сдвинутый 256-битный ключ к опять циклический сдвигается направо на X бит и элементы а^ ( = 9,...,16;] = 1,2,3,4) образуются из опять сдвинутой 256-битовой последовательности; полагаем, что первый байт а91, следующий байт а92 и так далее тридцать второй байт а16,4. Далее сравнением элементов устанавливается, что элементы любых двух столбцов прямоугольной матрицы Лпх4 должны быть пропорциональными и на каждой строке матрицы хотя бы один элемент имел нечетное значение, кроме того, все элементы матрицы имели различные значения.

По правилу приведенной процедуры образуются элементы Лпх4 при достаточно большом п = 2т, т = 2,...М, М< да.

Генерация ^-блока. В начале процедуры генерации ^-блока 256-битный ключ к разделяется на 32-байта, эти байты попарно сравниваются, в результате сравнения получим попарно различные байты в количестве не больше чем 32 байта, с которых начинается заполнение ячеек ^-блока. Далее исходный 256-битный ключ к циклический сдвигается направо на X = 1 бит, затем полученная последовательность разделяется на 32 байта, и они попарно сравни- 219 -

ваются с содержащими элементами ячеек 5-блока, в результате выявленными попарно различными байтами продолжается заполнение последующих ячеек 5-блока. Далее 256-битный исходный ключ к циклический сдвигается направо на X = 2 бит, затем вновь 32 байта полученной последовательности попарно сравниваются с элементами ячеек 5-блока, выявленными попарно различными байтами, продолжается заполнение последующих ячеек 5-блока и так далее. Этот процесс продолжается со сдвигом X = 3,4,.. .,255, пока не заполнятся все ячейки 5-блока. Если еще не заполнены все ячейки 5-блока, то вычисляется множество чисел по формуле y = xzmod 257, где фиксированное нечетное число z = conct, известное передаваемое вместе с ключом и 0 < x < 256. В результате вычисления в некоторой последовательности образуется совокупность чисел {0 <y < 256 : y = xzmod 257, z = conct, 0 < x < 256}, так как число n = 257 простое. Элементы у множества {0 <y < 256 : y = y mod 256, 0 <y < 256} сравниваются с содержащими элементами ячеек 5-блока, выявленными попарно различными байтами, и продолжается заполнение последующих ячеек 5-блока. Таким образом, полностью заполняются все ячейки 5-блока.

Генерация ТС - таблицы сжатия. В начале процедуры генерации 256-битный ключ к разделяется на 64 полубайта, первый полубайт принимается как первый элемент первой строки, второй полубайт сравнивается с первым полубайтом. Если они не равны, то вторым элементом первой строки принимается второй полубайт, иначе второй полубайт принимается как первый элемент второй строки. Далее третий полубайт сравнивается с первым элементом первой строки, если они равны, то третий полубайт сравнивается со вторым полубайтом первой строки. А когда в качестве второго элемента первой строки был принят второй полубайт, если они не равны, то третий полубайт принимается как третий элемент первой строки, иначе третий полубайт сравнивается с первым элементом второй строки, если они не равны, то третий полубайт принимается как вторым элементом второй строки, иначе третий полубайт принимается как первый элемент третьей строки и так далее аналогичным образом определяются значения элементов таблицы. При этом заполняются не больше 32 ячеек таблицы. Процесс заполнения остальных ячеек полубайтами продолжается с циклическим сдвигом направо на X = 1 бит исходного ключа к, затем полученная последовательность разделяется на полубайты и аналогично к предыдущему они сравниваются с содержащими элементами строк таблицы, в результате выявленными попарно различными полубайтами в строке продолжается заполнение последующих ячеек строк таблицы. Далее исходный ключ к циклический сдвигается направо на X = 2 бит, опять полубайты полученной последовательности попарно сравниваются с содержащими элементами ячеек строк таблицы. Выявленными попарно различными в строке полубайтами продолжается заполнение последующих ячеек строк таблицы и так далее этот процесс продолжается со сдвигом X = 3,4,...,255, пока не заполнятся все ячейки строк таблицы. Если еще не заполнены все ячейки 5-блока, то вычисляется множество чисел по формуле y = xzmod 17, где z = conct, 0 < x < 16. В результате вычисления в некоторой последовательности образуется совокупность чисел {0 < y < 16 : y = xzmod 17, z = conct, 0 < x < 16} , так как число n = 17 простое. Элементы у множества {0 < y < 15 : y = y mod 16, 0 < y < 16} сравниваются с содержащими элементами ячеек в строке таблицы, выявленными попарно различными полубайтами, и продолжается заполнение последующих ячеек строк таблицы. Таким образом, полностью заполняются все ячейки строк таблицы сжатия ТС.

Вместо того чтобы генерировать прямоугольную матрицу Лпх4 (где п = 2т, т = 2,...,М. М < да), ^-блок и ТС от исходного ключа их можно генерировать независимо от исходного ключа, при этом заранее сгенерированные преобразования должны удовлетворять следующим основным требованиям.

Элементы любых двух столбцов прямоугольной матрицы Лпх4 должны быть пропорциональными, на каждой строке хотя бы один элемент должен быть с нечетным значением; кроме того, все элементы должны быть с различными значениями и матрица может быть открытой (или секретной, как долговременный ключ).

Расположение чисел ячеек ^-блока должно быть случайным и может быть открытым (или секретным, как долговременный ключ).

Элементы каждой строки и столбца, а также диагонали таблицы ТС не должны повторяться, и она может быть открытой (или секретной, как долговременный ключ).

В настоящее время многие алгоритмы, основанные на сети Фейстеля, безупречно используются на практике, отвечая требуемой стойкости, но развитие создания высокоскоростных вычислительных средств и информационных технологий требует разработки стойких алгоритмов шифрования данных для обеспечения защиты информации в сети телекоммуникации криптографическими методами. Тот факт, что алгоритмы шифрования данных на основе сети Файстеля имеют ряд достоинств по производительности и реализации в микросхемах, наталкивает на продолжение исследований в области модификации вышеперечисленных алгоритмов.

Приводится блочная схема алгоритма шифрования для /-раунда (рис. 1).

Ниже приводится общее правило модификации сети Файстеля (рис. 2).

Процессор многих серий компьютеров выполняет арифметические операции 32-разрядными числами, представленными в двоичном коде. Создание и массовое применение процессоров 64-разрядных, 128-разрядных и еще больших позволяют осуществлять высокоскоростные вычисления. С учетом такого обстоятельства решается вопрос модификации алгоритмов шифрования данных, основанных на сети Файстеля, оставляя без изменения сущности преобразования, только увеличением длины ключа. При этом сеть Файстеля модифицируется следующим образом.

Здесь:

1. В модифицированном алгоритме длина блока открытого текста, подлежащего зашифрованию, 64 • п бит, если основной алгоритм имеет блок зашифрования открытого текста длиной 64 бит.

2. Длина ключа |К| • п бит, если длина ключа основного алгоритма |К| бит.

3. Ki = Х К2...Кп - подключи / -раунда, где в целом К, - ключ / -раунда.

4. Длины Ь левой и Я правой частей: |Ь| = |Я| = 32 • п бит.

5. Ьм(32 • п бит) - левая часть /-раунда.

6. Ям(32 • п бит) - правая часть / -раунда.

7. Ь1_1 (32 бит), (32 бит),..,Ь"._1 (32 бит) - левые 32-битные части / -раунда.

8. Я'_1 (32 бит), Я,_1 (32 бит),..,Я/п_1 (32 бит) - правые 32-битные части / -раунда.

9. F (Я/1_1, К), ^ (Я, К ]),., ¥ (Я/"_1, Кп) - соответствующие преобразования функции сети Фейстеля -раунда.

Рис. 1

Математическая модель /-раунда модифицированной сети Файстеля выражается следующим образом:

Ь ,'' (32 • п бит) = Я1М(32 • п бит), (3)

Я, (32 • п бит) = Ь_1 (32 • п бит) © F(Я,м, К,)(32 • п бит).

Рис. 2. ,-раунд модифицированной сети Файстеля

Преобразования: логические функции, матричное расширение, S-блок и ТС-таблица сжатия с установленными свойствами являются новыми и используются впервые в конструкции предложенного алгоритма. Эти преобразования обладают следующими свойствами:

- логические функции являются сбалансированными, регулярными и нелинейными [4], позволяют преобразовывать блоки битов, кратные четырём;

- S-блок является нелинейным преобразованием, позволяет преобразовывать блоки битов, кратные восьми;

- ТС-таблица сжатия обеспечивает экспоненциальную сложность, нелинейная позволяет преобразовывать блоки битов, кратные восьми;

- побитное суммирование по mod 2 соответствующих блоков обладает свойством корреляционной иммунности, позволяет преобразовывать блоки битов любой ограниченной длины.

Таким образом, использованные преобразования позволяют осуществить удобную реализацию на современных платформах вычислительных устройств.

Анализ результатов

Отметим, что c целью улучшения криптостойкости для шифрования каждого следующего блока 256-битный ключ k циклический сдвигается влево на X бит (где X - любое нечетное число из интервала от 3 до 255 ). В общем случае если длина ключа равна N, то значение длины сдвига определяется любым взаимно-простым числом X с N, чтобы иметь наибольшую гамму ключа по исходному данному ключу. При этом за счет сдвига исходного ключа каждый блок данного открытого текста шифруется разными ключами.

В предлагаемом алгоритме преобразования конструкции функции f сети Файстеля: сложение открытого текста с раундовым ключом по mod 2, логические преобразования, матричное преобразование по mod 256, S-блок и таблица сжатия являются практически необратимыми. Кроме того, преобразование по таблице сжатия нелинейное, т.е. преобразование по таблице сжатия обладает свойством неоднозначности в процессах шифрования и расшифрования. Нелинейность преобразования по таблице сжатия обеспечена за счет повторения значения эле- 223 -

ментов с равновероятными распределениями в конструкции таблицы. Преобразование по S-блоку линейное, поэтому оно генерируется от ключа по заранее определенному правилу, чтобы иметь секретное расположение в значении ячеек этого преобразования. Преобразование гаммирования битовым сложением открытого текста с раундовым ключом по mod 2 линейное, но неизвестным является данное, которое подлежит к гаммированию с неизвестным раундо-вым ключом. Такое обстоятельство обеспечит практическую необратимость этого преобразования. Преобразование прямоугольной матрицей по mod 256 является линейным, но в конечном поле целых чисел по mod 256 четные числа не имеют обратных элементов. Кроме того, элементы этого матричного преобразования генерируются от ключевой последовательности по заранее определенному правилу. Тем самым обеспечивается практическая необратимость предлагаемого матричного преобразования. Все эти перечисленные свойства преобразований функции f сети Фейстеля предлагаемого алгоритма шифрования данных обеспечат стойкость вместе c неизвестным ключом длиной 256 бита.

Предложенная модификация сети Фейстеля позволяет с успехом воспользоваться существующими алгоритмами шифрования данных, основанных на сети Фейстеля, при этом удлиняя длину ключа и шифруемого блока данных.

Заключение

На основе идеи разработки симметричных блочных алгоритмов шифрования данных, базирующихся на сети Фейстеля, предложен новый симметричный блочный алгоритм, в котором используются комбинации преобразований: побитное сложение по mod 2, матричное преобразование по mod 256 5-блока и таблицы сжатия. Шифрование блоков данных осуществляется с помощью mod 256. Генерация базовых преобразований с указанными свойствами со стороны (по усмотрению) группы пользователей является одним из основных преимуществ в приложениях.

Список литературы

[1] Алферов А.П., Зубов А.Ю., Кузмин А.С., Черемушкин А.В. Основы криптографии. М.: Гелиос АРВ, 2002, 408 с. [Alferov A.P., Zubov A.Iu., Kuzmin A.S., Cheremushkin A.V. The basics of cryptography. Moscow, Gelios ARV, 2002, 408 p. (in Russian)]

[2] Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си. М.: ТРИУМФ, 2003, 816 с. [Shneier B. Applied cryptography. Protocols, algorithms, and source code in C++ . Moscow, Triumf, 2003, 816 p. (in Russian)]

[3] Молдавян А.А., Молдавян Н.А. Криптография от примитивов к синтезу алгоритмов. СПб.: БХВ-Петербург, 2004, 448 с. [Moldavian A.A., Moldavian N.A. Cryptography: from primitives to the synthesis algorithms. St. Petersburg, 2004, 448 p. (in Russian)]

[4] Молдавян А.А., Молдавян Н.А., Гуц Н.Д., Изотов Б.В. Криптография: скоростные шифры. СПб.: БХВ-Петербург, 2004, 496 с. [Moldavian A.A., Moldavian N.A., Guts N.D., Izotov B.V. Cryptography: speed ciphers. St. Petersburg, 2004, 496 p. (in Russian)]

[5] Акбаров Д.Е. Ахборот хавфсизлигини таъминлашнинг криптографикусуллари ва улар-нинг цулланилиши. Тошкент, Узбекистан маркаси, 2009, 432 б. [Akbarov D.E. Tashkent, 2009, 432 p. (in Uzbek)]

i Надоели баннеры? Вы всегда можете отключить рекламу.