Использование сплайнов первого порядка в шифровании

Сер. 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: Alla_levina239@yahoo.com, alla_levina@mail.ru.

*) Работа выполнена при финансовой поддержке Российского фонда фундаментальных исследований (гранты № 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,

x- 1 = Xj+i при j >yi,

X-1 = {x-1}.

Для выбрасываемого узла введем обозначение xYl = £.

3. Рассмотрим формулы декомпозиции для сплайнов первого порядка:

c-1 = Ci при 0 < i < Y1,

c-1 = Ci+1 при 71 < i < M - 1,

b 1 = (cYl - (x7i + 1 - x7i1)Ix7i1+1 - £] 1c7l-1-

-

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 = с-+11 при 72 < і < М - 2,

Ъ 2 = (С-1 - (х-2+1 - х-2)[х-2 + 1 - ^ 1С-1-1-

-

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 < г < ^к,

-К+1 = с--К1 при 7к + 1 < г < М — К + 1,

-К+1 = ((х-К ___________ х-к)[х-К _£]-1 с-К +

1к ^х1к + 1 х7к > \-х1к + 1 £-1 с7к-1 '

+

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 =

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

х 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

(тоё^), где £ =

Ь

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 г.