Сер. 10. 2009. Вып. 3
ВЕСТНИК САНКТ-ПЕТЕРБУРГСКОГО УНИВЕРСИТЕТА
УДК 003.26 А. Б. Левина
ИСПОЛЬЗОВАНИЕ СПЛАЙНОВ ПЕРВОГО ПОРЯДКА В ШИФРОВАНИИ *)
Введение. Функции, подобные тем, что сейчас называют сплайнами, были известны математикам начиная с Эйлера, но интенсивное их изучение началось только в середине XX в. В 1946 г. Исаак Шёнберг впервые употребил этот термин в качестве обозначения класса полиномиальных сплайнов. До 1960 г. сплайны были в основном инструментом теоретических исследований.
После 1960 г. с развитием вычислительной техники началось использование сплайнов в компьютерной графике, моделировании, а в настоящее время сплайны и вэйвлеты широко применяются для обработки числовых потоков, что позволяет выделять характерные составляющие, экономить ресурсы вычислительной системы и каналов передачи (время обработки и передачи, объемы памяти для хранения информации и т. п.). Перечисленные свойства сохраняются и для предложенных в работах [1-3] алгоритмов шифрования; последние основаны на вэйвлетном разложении пространств сплайнов второго порядка. В данной работе продолжены упомянутые исследования; здесь предлагается более простой алгоритм шифрования, полученный благодаря использованию вэйвлетных разложений пространств сплайнов первого порядка.
Преимущество алгоритмов, построенных на сплайн-вэйвлетных разложениях, в том, что по сравнению с существующими блочными алгоритмами DES и Rijndael (см., например, [4]) они могут работать с блоками, равными 512 и 1024 бит. В алгоритме Rijndael общее число битов ключа раунда равно длине блока, умноженной на количество раундов плюс 1, т. е. для длины блока 128 бит и 10 раундов необходимо 1408 битов ключа раунда. В представленном в настоящей работе алгоритме при длине блока 256 бит проводится 30 раундов, но длина ключа равна 504 бита и на каждом длина ключа раунда уменьшается на 16 бит, что значительно упрощает процесс передачи ключа. При работе данного алгоритма с блоком 512 бит длина ключа составляет 1016 бит.
1. Основные понятия. Предлагаемая криптосистема относится к симметричным, блочным, при шифровании и дешифровании используется один ключ.
Ключом является неравномерная сетка X, порядок выбрасывания узлов из этой сетки y. Обозначим ключ K = (X, y). Количество раундов - K. Все вычисления проводятся в конечных полях, по модулю N (N - простое число). Сетка X является циклически упорядоченным множеством, ее элементы - узлы Xj :
X = {xj }j£No ,
Левина Алла Борисовна — аспирант кафедры параллельных алгоритмов математико-механического факультета Санкт-Петербургского государственного университета. Научный руководитель: проф. Ю. К. Демьянович. Количество опубликованных работ: 8. Научное направление: криптография. E-mail: [email protected], [email protected].
*) Работа выполнена при финансовой поддержке Российского фонда фундаментальных исследований (гранты № 07-01-00269 и 07-01-00451).
© А. Б. Левина, 2009
где N0 - множество натуральных чисел с нулем. Сетка X периодическая, с периодом, равным М, так что х^ = х^+^ для У] € Ъ.
Последовательность номеров выбрасываемых узлов 7: 7 = {'7п}пе[1,...,к], где
К - число раундов шифрования, 7п - номер случайно выбираемого узла х^.
Открытым текстом является последовательность С = {с^}i£J, J С Ъ. Она разбивается на I блоков одинаковой длины, С1\ = М, здесь \С1\ - количество элементов в блоке. При необходимости последовательность {^}.1=0,...,м-к будет продлеваться периодически, период будет равным М — к, здесь М — к - количество оставшихся в блоке элементов на к-м раунде.
Во всех формулах г и ] € N0.
На каждом раунде из сетки выбрасывается один узел с номером 7к, далее при шифровании по формулам декомпозиции считается последовательность {c-k}ie,J, после проведения К раундов получается шифротекст. При дешифровании текст восстанавливается с помощью формул реконструкции.
Замечание. В дальнейшем для простоты формулировок индекс сверху в основном используется для обозначения номера и не является показателем степени; если индекс сверху - показатель степени, то выражение, которое возводится в степень, пишется в квадратных скобках [...].
2. Процесс шифрования. Опишем процесс шифрования. На первом шаге шифрования поступает шифруемая последовательность {с.ь}.1=о,..,м. С помощью ключа К и формул декомпозиции производится первый раунд шифрования.
Первый раунд:
1. Из первоначальной сетки X выбрасывается узел х1г.
2. Обозначим полученную в п. 1 сетку как X-1, а ее узлы - соответственно символами
-1,
-1
x
- = Xj при j <Y1, (2.1)
x- 1 = Xj+i при j >yi, (2.2)
X-1 = {x-1}.
Для выбрасываемого узла введем обозначение xYl = £.
3. Рассмотрим формулы декомпозиции для сплайнов первого порядка:
c-1 = Ci при 0 < i < Y1, (2.3)
c-1 = Ci+1 при 71 < i < M - 1, (2.4)
b 1 = (cYl - (x7i + 1 - x7i1)Ix7i1+1 - £] 1c7l-1-
-(x-11 - ОКн-1 - £]-1c~,i + 1)(m.odN). (2.5)
4. Сдвиг элементов c-1 произведем следующим образом:
c-1 ^ c- 1 ^ c- 1... ^ cM-1 ^ c0 1.
Формулы (2.3)—(2.5) записаны в обозначениях новой сетки X-1. Получили последовательность {c01}i=o,...,M-1 и b-1.
Второй раунд:
Для проведения этого раунда берутся последовательность {c-1}i=o,...,M-1, сетка X-1 и номер узла 72.
xj
1. Выбросим из сетки X 1 узел х- 1.
-і—г О
2. Получаем сетку Xс узлами:
х-2 = х-1 при і < 72,
х-2 = х-+1 при і >72,
X-2 = {х-2}, Є = х-1.
3. Перепишем формулы (2.3)—(2.5) в новых обозначениях:
с-2 = с-1 при 0 < і <72, (2.6)
с-2 = с-+11 при 72 < і < М - 2, (2.7)
Ъ 2 = (С-1 - (х-2+1 - х-2)[х-2 + 1 - ^ 1С-1-1-
-(х-21 - ^)[х-2 + 1 - ^]-1с-2 + 1)(т°аЯ). (2.8)
4. Произведем сдвиг с-2 следующим образом:
сп —> с —> с0 ... —> с
М-2
Установили последовательность {с-2}.1=0,..,м-2 и Ь-2. К-й раунд:
По аналогии с предыдущими раундами имеем
с-к = с
~к+1 при 0 ^ і < 7к,
с-к = сі+і1 + 1 при 7к < і < М - К,
Ъ - к _ (с-к+1 (х - К х - К )[х - К £1 -1с- К
Ъ = (стк - (х1к + 1 - х1к )[хтк + 1 - ^ с1к-1
-(х-к -£)\х-Кк+1-1с-Кк+1 )(т°гї^).
На К-м раунде сдвиг не производится.
Определили последовательность {с-к}і=0,...,м-к и Ъ-к.
В результате К раундов получаются последовательность вложенных сеток
X-к с X-к+1 с ... с X-1 с X0
и две последовательности
{Ь-П}п=1,2,...,к, {с- к}і=0,1,2,...,М-к.
Последовательность {с-к,Ь-п}п=1,2,..,к;і=0,1,2,..,м-к является шифротекстом.
3. Процесс дешифрования. Он проводится по аналогии с процессом шифрования, используются тот же ключ К и формулы реконструкции.
Зная число раундов К, шифротекст {с-к, Ъ-п}п=1..,к і=0,..,М-к разбивается на две последовательности:
{Ъ-П}п=1,2,...,к, {с- к}і=0,1,2,...,М-к.
Зная изначальную сетку X и порядок выбрасывания узлов 7, по формулам (2.1), (2.2) находим сетки X-1,..., X-к+1, X-K.
2
2
с
Первый раунд:
1. Берем сетку X-К, £ = х7к.
2. Выпишем формулы реконструкции:
с- К+1 = С-К при 0 < г < ^к, (3.1)
-К+1 = с--К1 при 7к + 1 < г < М — К + 1, (3.2)
-К+1 = ((х-К ___________ х-к)[х-К _£]-1 с-К +
1к ^х1к + 1 х7к > \-х1к + 1 £-1 с7к-1 '
+ (х-к — £)[х-к + 1 — £] с-к + Ь )(тоёМ). (3.3)
3. Произведем сдвиг с- К+1 следующим образом:
с- +1 с- +1 с- +1... с- +1 с- +1.
с0 ^ с1 ^ с2 ... ^ сМ-К+1 ^ с0 .
Определяем последовательность {с-К+1}г=0,..,М-К+1.
К-й раунд:
1. Берем сетку X-1, £ = х71.
2. Выпишем формулы реконструкции:
с. = с-1 при 0 < г <71, сг = с-}1 при 71 + 1 < г < М,
с71 = ((х-11+1 — х711)[х711+1 — £] 1с11-1 +
+ (х- — £)[х-11+1 — £]-1с-11 + Ь-1)(шоёМ).
На К-м раунде сдвиг не производится.
Таким образом, после К раундов был восстановлен исходный текст {сг}г=0,...,м.
3. Пример. Наглядно продемонстрируем работу представленной криптосистемы. Передаем сообщение {4, 6, 7, 9,1, 8}.
Ключ К = ({1, 3, 5, 9,10}, {2, 3}).
В данном примере число раундов К = 2, N = 11.
Первый раунд:
1. Выпишем сетку X-1 : X-1 = {1, 3, 9,10} а £ = х71 = 5.
2. По формулам (2.3)-(2.5) определяем
с0 = с0 = /4, с-1 = с1 = 6, с-1 = сз = 9,
с-1 = с4 = 1,
с-1 = с5 = 8,
10 9 9 5
Ъ-1 = (7 - ——- • 6 - ——- • 9)(то<Ш) = (7—1-9-6 — 4-9 - 9)(то<й1) = 3.
3. Произведем сдвиг:
со1 = 8 с- = ^ с-1 = 6, с-1 = 9, с-1 = 1.
Получили последовательность с-1 = {8, 4, 6, 9,1} и Ь-1 = 3.
Второй раунд:
1. Выпишем сетку X-2 : X-2 = {1, 3, 9} а £ = х72 = 10.
2. По формулам (2.6)-(2.8) находим
с-2 = с-1 = 8 с0 с0 ,
с-2 = с-2 = 4,
с22 = с31 = 6,
- = с-1 = ^
Ь~2 = (9 — ^• 6 — ^^ • 1)(тос111) = (Э + 2- 8- 6 — 9-8 - 1)(тос111) = 0.
После двух раундов получили последовательности {8,4, 6,1} и {3, 0}. Шифротекстом является последовательность {8, 4, 6,1, 3, 0}.
Попробуем восстановить исходную информацию.
Первый раунд:
1. Изначальная сетка имела вид {1, 3, 5, 9,10}, порядок выбрасывания узлов {2, 3}, следовательно, на последнем шаге была получена сетка {1, 3, 9}, £ = 10. Выполнялось два раунда ^ {с-К}г=0,...,з = {8, 4, 6,1} и {Ь-п}п=1,2 = {3, 0}.
2. По формулам (3.1)-(3.3) находим
с-1 = с-2 = 8 с0 с0 ,
с-1 = с-2 = 4,
с-1 = с-2 = 6 с2 с2 ,
с-1 = с-2 = ^
Сп1 = (——— • 6 + -------— • 1 + 0)(тос111) = 9.
3 4-10 3 — 10 Л ’
3. Произведем сдвиг:
со = 4,
с-1 = 6, с-1 = 9,
сз = 1, с-1 = 8.
Получили последовательность с-1 = {4, 6, 9,1, 8}.
Второй раунд:
1. На этом раунде сетка имеет вид {1, 3, 9,10}, £ = 5.
2. ^
с0 = со = /4,
1 __ а
сі
сз
с
-1
С4 — С— — 1
с2 — (
10-9
С5 — с-1
9 — 5
• 9 + 3)(шоё11) — 7.
10 - 5 10 - 5
Получили последовательность с — {4, 6, 7, 9,1, 8}.
Из примера видно, что передаваемое сообщение было полностью восстановлено.
4. Процесс шифрования при использовании алгоритма в качестве блочного шифра. Данный алгоритм является настраиваемым и может работать с блоками любой длины. Продемонстрируем работу алгоритма при длине блока, равной 256 бит.
При длине блока 32 байт будет проводиться 30 раундов, а количество узлов сетки Ь — 33.
Шифруемым блоком является последовательность элементов открытого текста {со, сі,..., сзі}, а ключ К — {X,^}, X — {хо,хі, ...,хз2}, 7 — {7и}и=о,...,32, К — 30.
Запишем элементы открытого текста в виде матрицы С.
Число столбцов в матрице N — М/4, а строк 4. Для блока, равного 256 бит, матрица С будет являться матрицей 4 х 8, 8 столбцов и 4 строк:
С—
Узлы изначальной сетки записываются в матрицу X, состоящую из 1-го столбца:
х0 х1
X = х2
\ хз2 )
Здесь с0, с1,...., сз1, х0,..., х32 - байты.
Процесс шифрования состоит из четырех процедур:
• вычисление сетки, которая будет использоваться в данном раунде;
• расчет по формулам декомпозиции элементов, применяемых в следующем раунде;
• сдвиг полученных элементов;
• создание матрицы В.
На каждом раунде количество элементов в матрице С будет уменьшаться на один элемент, чтобы сохранить матрицу С в виде матрицы 4 х 8, недостающий элемент заменяется нулем.
/ со сі с2 сз с4 с5 св с7 \
с8 с9 сіо сіі сі2 сіз сі4 сі5
сів сі7 сі8 сі9 с2о с2і с22 с23
V с24 с25 с26 с27 с28 с29 сзо сзі )
с
В то же время на каждом раунде появляется новый элемент Ь-г. Он записывается в матрицу В, размерность матрицы В такая же, как у матрицы С, т. е. в данном примере 4 х 8. Изначально матрица В является нулевой:
B =
/00000000\ 00000000 00000000 \00000000/
На каждом раунде в матрицу B записывается элемент Ь—г, но записывается он начиная с позиции {M — K div N, M — K mod N}. Нумерация строк и столбцов в матрице B начинается с {0,0}.
На первом раунде шифрования получаем матрицу C, сетку X и номер выбрасываемого узла 7\.
Опишем подробнее каждую процедуру:
1. Вычислим сетку, которую будем использовать на первом раунде, обозначим ее X— 1. Новая сетка X— 1 получается при умножении матрицы X на единичную матрицу E, где в строке с номером 71 на диагонали вместо единицы стоит 0:
X— 1 =
( 1 0 0 1
0 0 у 0 0
0 0 \
0 0
1 0 0 1)
I хо \
Х1
(
1
\ Х32
\ Х-1 }
2. Опишем вычисление элементов, используемых в следующем раунде.
По формулам декомпозиции элементы {с-1} при г < 71 равны элементам {с^}, а начиная с элемента с71 происходит сдвиг и {с-1} = {с^+1} при 71 ^ г ^ М — 1, поэтому матрица С-1 принимает следующий вид:
с -
! Со Cl С2 C3 С4 C5 C6 C7 \
C8 ... CYi — 1 CYi + 1 CYi+2 ... ... ...
\
... C31 0 /
3. Производим сдвиг элементов:
/ Co C1 C2 C3 C4 C5 C6 C7 \
C8 ... CYi — 1 CYi + 1 CYi + 2 ... ... ...
\
... C31 0 J
( C31 Co C1 C2 C3 C4
C7 ........ CYi — 1 CYi+1 CYi+2
\
C5 C6
Переписав матрицу C 1 в новых обозначениях, получаем
1
Х
0
1
C-1 =
/ c-1 c1-1 c2-1 c-1 c4-1 c7 1 c6-1 c7-1
-1 -1 -1 -1 -1 -1 -1 7-1
1 = c- c7 c70 c1-11 c72 c73 c1-41 c75
— -1 -1 -1 -1 -1 -1 -1 -1
c16 c17 c18 c19 c201 c211 c221 c23
\ c-1 c24 c-1 c25 c-1 c26 c-1 c27 c-1 c28 c-1 c29 c-1 c30 0 У
4. Матрица B:
b 1 =( 1; -(x-i + 1 - X-11)[X-1 + 1 - £] 1; -(X711 - £)[X-1 + 1 - £] 1 )
Y1
x I CY1-1 I (modW), где £ =
cY1 + 1
'71 ■
На первом раунде в матрицу В записывается элемент Ь 1 ^
B
/00 Ь-1 00000\
00 0 00000
00 0 00000
\ 0 0 0 00000/
Процедуры шифрования на г-м раунде:
1. Сетка X-г вычисляется соответствующим образом:
( 1 0 0 1
0 0 \ 0 0
0 0 \ 0 0
0
... 1 0
... 0 1 /
/
-i+1 с0 + -i+1
-i+1
-i+1
( x-i \
= x0 -i
\ x-U /
2. Определяем матрицу C i:
(
-i+1
C-i =
... ...
-i+1 -i+1 -i+1
c '1 c ^
c-i+1 0 0
cM - i+1 u u
сц-1 СЦ+1 СЦ+2
V 0 0 0 0 0 ""0" ~ 0 0 /
3. Производим сдвиг элементов:
(
-i+1
-i+1 c-i+1 c-i+1
cYi-1 cYi + 1 cYi + 2
c
-i+1
M-i+1
... ...
0 0
\ 0 0 0 0 0 0 00/
.. ... ... ... ...
c
i+1 ... ...
M-i+1 ... ...
c-i+1 c-i+1 c-i+1 cYi-1 c7i+1 cYi + 2
i+1 0 0
\ 0 0 0 0 0
Перепишем матрицу C-i в новых обозначениях:
Mi
x
c
c
С -
О °4 ...1С- с- .С С с- - С6- С7-
СЫ-г 0 0
0 0 0 0 0 0 0 0
4. Вычисляем и записываем новый элемент Ь 1 в матрицу В:
Ь г = ( 1 -(х—+1 - х— )\х—+1 — £] 1,-(х— — £)\х-/+1 — £] 1 )
-г+1 —+1 >1 СЦ + 1
х I С-——1 I (тоёЛ"), где £ =
- +1
В=
/ 0 0 Ь-1 Ь-2 Ь-3 Ь-4 Ь-5 Ь-6 \
Ь-7 ..................................
................ Ь- 0 0 0
\ 0 0 0 0 0 0 0 0/
Процедуры шифрования на К-м раунде:
1. Сетка X-К рассчитывается соответствующим образом:
( 1 0 . . . 0 \
X-К =
0
2. Вычислим матрицу С-К:
/
0 1 /
\ х3
с-К+1
с-™
-К+1
-К
10
К
С
К
/ С-К с-к+1 С2 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
V 0 0 0 0 0 0 0 0
и запишем ее в новых обозначениях:
С-К =
3. Сдвиг не производится.
4. Вычисляем Ь-К и записываем в матрицу В:
/ с-К С-К 0 0 0 0 0 0 \
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
V 0 0 0 0 0 0 0 0 )
Ь
К
( 1 -(х-к +1 - Х7К)\Х-К^+1 - £]-1, -(х-К - £)\х-К+1 - £]-1 ) -К+1
-К+1
С,
1к
х 1 С-К+11 I (тоёЖ), где £ = хк
С-к+1
( 0 0 Ь-1 Ь-2 Ь-3 Ь-4 Ь-5 Ь-6 \
Ь-7 ...
В
\
... Ь-К
к
х
X
Шифротекстом будет являться матрица С = С К + В:
С =
С°-К С1-К Ь-1 Ь-2 Ь-3 Ь-4 Ь-5
Ь-7 ..........................................
V
Ь-6 \
К
/
5. Процесс дешифрования при использовании алгоритма в качестве блочного шифра. При дешифровании поступают матрица С и ключ К, следовательно, известно количество проводимых раундов К, можно посчитать длину блока М = К + 2. Зная длину блока М, можно разбить матрицу С на матрицы С-К и В:
В=
0
Ь-7
...
0 Ь-1 Ь-
Ь-
Ь-
Ь-
Ь-
\
К
С -К °К с-К 0 0 0 0 0 0
С-К = 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
\ 0 0 0 0 0 0 0 0
изначальную сетку X, посчитаем X -1 ... , X - г X -
К
и все эти матрицы
запишем в матрицу X размерностью {Ь — 1, К}, в данном случае {32, 30} :
\
X а11 _________
/
Процесс дешифрования состоит из двух процедур:
• вычисление элементов, используемых в следующем раунде;
• сдвиг элементов.
Опишем процедуры дешифрования для первого раунда:
1. Вычислим по формулам реконструкции элементы с—к+1.
На первом раунде из матрицы Xа11 необходим только последний К-й столбец, его первые Ь — К элементов, в данном случае это первые 3 элемента ^
( х- . х— . К 1 — х
-1 г -К
х1. .. х1 . .. х1
-1 г -К
х21. .. х2 г . .. х2 К
. х— . .. 0
.. 0
\ х311 . .. 0
X
К
—к
°
К
К
Вычислим -К+1
С
'1к
( (х-кК+1 — х-КК )[х-кК+1 — £] 1, (х-КК — £)\х—К+1 — £] 1,Ь К )
С-К
1К -1 С-кК 1к 1
(тоё^), где £ =
Ь
2
3
4
5
6
X
X
По формулам реконструкции элементы {с- к+1} при % < ^к равны элементам {с- к }
а начиная с элемента с1к+1 происходит сдвиг и {с-М — К.
Запишем элементы матрицы С-К+1:
с-к+1
2. Сдвиг элементов происходит в обратном порядке относительно процесса шифрования:
(
( к 1 о с с-к+1 с71 с1-к 0 0 0 0 0 \
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
\ 0 0 0 0 0 0 0 0 /
к 1 О с с- к+1 с с -к 1 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
с-к+1 с71 с-К с -к 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
V 0 0 0 0 0 0 0
Перепишем матрицу С к+1 в новых обозначениях:
С-к+1
/ с-к+1 с0 с-к+1 с1 с-к+1 с2 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
V 0 0 0 0 0 0 0 0
Опишем процедуры дешифрования для г-го раунда:
1. Берем первые Ь — % элементов %-го столбца матрицы Xа11 :
X-
/ х, х х
\
\ х-и /
Вычислим
-¿+1
( (х—¿+1 — x—í)[x—í+l — 1> (х- — £)[х—¿+1 — 1,Ь ¿ ) х
сц -1
х I с- I (шоё^), где £ =
-¿+1
Запишем матрицу С ¿+1:
с
...
с - с ¿+1 с
1г — 1 !г с1
0 0
\ 0 0 0 00000/
—>
—►
с
2. Производим сдвиг элементов матрицы С і+1 следующим образом:
/
С—і с—і+1 С—і
Сц — 1 СЦ СЦ
С
...................\
■МІ-І 0 о
\ о о
I С—
0 0 0 0 0 / .........................\
Си—1 Си
—і+1 с—і
См— с— 0 0
\ 0 0 00 0 000/
Перепишем ее в новых обозначениях:
С—і+1
С—і+1 С0 С—і+1 С1 С—і+1 С2 С—і+1 С3 С—і+1 С4 С—і+1 С5 С—і+1 С6 С—і+1 \
С—*+1 С8 ... С—і + 1 СМ—і+1 0 0
0 0 0 0 0 0 0 0
Опишем процедуры дешифрования для К-го раунда: 1. Берем из матрицы Xа11 1-й столбец ^
( х-1 \
1
\ х—1 )
Вычислим
С
•71
((■
Ж71 + 1 - ХИ ЛХ71
—1
—1 '71 1
Запишем матрицу С:
с„,
)[Ж711+1 - £] 1, (х—11 - £)[Ж711+1 - 1’^ 1 ) Х
'71 — 1
х I с—1 | (шоёЖ), где £ = ж71.
С=
С0
...
С—11—1 с71 С—11
...
С30
Переписываем элементы матрицы С в новых обозначениях:
С
/ Со С1 С2 Сз С4 С5 С6 С7 \
С8 С9 С10 С11 С12 С13 С14 С15
С16 С17 С18 С19 С20 С21 С22 '23
\ С24 С25 С26 С27 '28 '29 С30 С31 )
2. Сдвиг на последнем раунде не производится.
Таким образом, открытый текст был полностью восстановлен.
с
—5-
0
—5-
1
X
1
Литература
1. Демьянович Ю. К., Левина А. Б. О вэйвлетных разложениях линейных пространств над произвольным полем и о некоторых приложениях // Математическое моделирование. 2008. Т. 20, № 11. С. 104-108.
2. Демьянович Ю. К., Левина А. Б. Вэйвлетные разложения и шифрование // Методы вычислений / под ред. В. М. Рябова. СПб.: Изд-во С.-Петерб. ун-та, 2008. Вып. 22. С. 56-64.
3. Левина А. Б. Работа криптосистемы, основанной на формулах реконструкции и декомпозиции на неравномерной сетке // Математические модели: теория и приложения / под ред. М. К. Чиркова. СПб.: Изд-во С.-Петерб. ун-та, 2008. Вып. 9. С. 3-29.
4. Смарт Н. Криптография М: ТЕХНОСФЕРА / пер. с англ. С. А. Кулешова; под ред. С. К. Ландо. М.: Мир, 2005. 528 с.
Статья рекомендована к печати проф. Л. А. Петросяном.
Статья принята к печати 5 марта 2009 г.